(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024058041
(43)【公開日】2024-04-25
(54)【発明の名称】情報処理装置、情報処理方法、及びプログラム
(51)【国際特許分類】
G06T 7/70 20170101AFI20240418BHJP
【FI】
G06T7/70
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022165152
(22)【出願日】2022-10-14
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】松本 侑也
(72)【発明者】
【氏名】安倍 次朗
(72)【発明者】
【氏名】住谷 達哉
(72)【発明者】
【氏名】小倉 一峰
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA09
5L096CA05
5L096FA67
5L096FA69
5L096JA03
(57)【要約】
【課題】画像を撮影した際のカメラの位置及び姿勢をより適切に推定すること。
【解決手段】3次元空間の点群データに基づいて、前記3次元空間における各仮想カメラで撮影される仮想カメラ画像をそれぞれ生成する生成部(11)と、前記生成部により生成された複数の仮想カメラ画像のそれぞれと、カメラで撮影されたカメラ画像との類似度に基づいて、前記カメラ画像が撮影された際の前記カメラの位置及び姿勢を推定する推定部(12)と、を有する情報処理装置(10)を提供する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
3次元空間の点群データに基づいて、前記3次元空間における各仮想カメラで撮影される仮想カメラ画像をそれぞれ生成する生成部と、
前記生成部により生成された複数の仮想カメラ画像のそれぞれと、カメラで撮影されたカメラ画像との類似度に基づいて、前記カメラ画像が撮影された際の前記カメラの位置及び姿勢を推定する推定部と、
を有する情報処理装置。
【請求項2】
前記点群データは、LiDAR(Light Detection And Ranging、Laser Imaging Detection and Ranging)、ToF(Time of Flight)カメラ、ステレオカメラ、及び3D(Dimension)スキャナの少なくとも一つにより生成される、
請求項1に記載の情報処理装置。
【請求項3】
前記生成部は、前記点群データに含まれる複数の点に基づいて特定された物体の面の法線方向に基づいて、前記仮想カメラの位置及び姿勢を決定する、
請求項1または2に記載の情報処理装置。
【請求項4】
前記生成部は、前記点群データに基づいて特定の物体の領域及び人間が立ち入り可能な領域の少なくとも一方を認識し、認識した情報に基づいて、前記仮想カメラの位置及び姿勢の少なくとも一方を決定する、
請求項1または2に記載の情報処理装置。
【請求項5】
前記生成部は、前記推定部により推定されたの位置及び姿勢に基づいて、仮想カメラの位置及び姿勢を決定し、前記3次元空間における当該仮想カメラで撮影される仮想カメラ画像を生成する、
請求項1または2に記載の情報処理装置。
【請求項6】
前記推定部は、前記生成部により生成された複数の仮想カメラ画像のそれぞれの画像特徴と、前記カメラ画像の画像特徴と、に基づいて、前記類似度をそれぞれ算出する、
請求項1または2に記載の情報処理装置。
【請求項7】
前記推定部は、前記生成部により生成された複数の仮想カメラ画像のうち、前記カメラ画像との類似度が高い順に少なくとも一つを特定し、前記カメラの位置及び姿勢として推定する、
請求項1または2に記載の情報処理装置。
【請求項8】
前記推定部は、前記カメラにより取得された、前記カメラ画像が撮影された際の前記カメラの位置情報に基づいて、前記生成部により生成された複数の仮想カメラ画像のうち、前記カメラ画像との類似度を算出する複数の仮想カメラ画像を決定する、
請求項1または2に記載の情報処理装置。
【請求項9】
3次元空間の点群データに基づいて、前記3次元空間における各仮想カメラで撮影される仮想カメラ画像をそれぞれ生成し、
生成した複数の仮想カメラ画像のそれぞれと、カメラで撮影されたカメラ画像との類似度に基づいて、前記カメラ画像が撮影された際の前記カメラの位置及び姿勢を推定する、
情報処理方法。
【請求項10】
3次元空間の点群データに基づいて、前記3次元空間における各仮想カメラで撮影される仮想カメラ画像をそれぞれ生成し、
生成した複数の仮想カメラ画像のそれぞれと、カメラで撮影されたカメラ画像との類似度に基づいて、前記カメラ画像が撮影された際の前記カメラの位置及び姿勢を推定する、
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
特許文献1には、三次元点群に含まれる少なくとも1つの物体上の三次元点の三次元座標の集合を得て、入力画像から入力画像に含まれるエッジの端点を表す座標の集合を得て、三次元座標の集合とエッジの端点を表す座標の集合とを用いて、位置姿勢情報を修正することにより、入力画像を撮影した際のカメラの位置及び姿勢を推定する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1記載の技術では、例えば、画像を撮影した際のカメラの位置及び姿勢を推定する処理に比較的時間がかかるという問題点がある。
【0005】
本開示の目的は、上述した課題を鑑み、画像を撮影した際のカメラの位置及び姿勢をより適切に推定できる技術を提供することにある。
【課題を解決するための手段】
【0006】
本開示に係る第1の態様では、3次元空間の点群データに基づいて、前記3次元空間における各仮想カメラで撮影される仮想カメラ画像をそれぞれ生成する生成部と、前記生成部により生成された複数の仮想カメラ画像のそれぞれと、カメラで撮影されたカメラ画像との類似度に基づいて、前記カメラ画像が撮影された際の前記カメラの位置及び姿勢を推定する推定部と、を有する情報処理装置が提供される。
【0007】
また、本開示に係る第2の態様では、3次元空間の点群データに基づいて、前記3次元空間における各仮想カメラで撮影される仮想カメラ画像をそれぞれ生成し、生成した複数の仮想カメラ画像のそれぞれと、カメラで撮影されたカメラ画像との類似度に基づいて、前記カメラ画像が撮影された際の前記カメラの位置及び姿勢を推定する、情報処理方法が提供される。
【0008】
また、本開示に係る第3の態様では、3次元空間の点群データに基づいて、前記3次元空間における各仮想カメラで撮影される仮想カメラ画像をそれぞれ生成し、生成した複数の仮想カメラ画像のそれぞれと、カメラで撮影されたカメラ画像との類似度に基づいて、前記カメラ画像が撮影された際の前記カメラの位置及び姿勢を推定する、処理をコンピュータに実行させるプログラムが提供される。
【発明の効果】
【0009】
一側面によれば、画像を撮影した際のカメラの位置及び姿勢をより適切に推定できる。
【図面の簡単な説明】
【0010】
【
図1】実施形態に係る情報処理装置の構成の一例を示す図である。
【
図2】実施形態に係る情報処理装置のハードウェア構成例を示す図である。
【
図3】実施形態に係る情報処理装置の仮想カメラ画像を生成する処理の一例を示すフローチャートである。
【
図4】実施形態に係る点群データDB(データベース)に記憶される情報の一例を示す図である。
【
図5】実施形態に係る点群データの一例を示す図である。
【
図6】実施形態に係る人間が立ち入り可能な領域の一例を示す図である。
【
図7】実施形態に係る仮想カメラ画像の一例を示す図である。
【
図8】実施形態に係る仮想カメラ画像の一例を示す図である。
【
図9】実施形態に係る仮想カメラ画像の一例を示す図である。
【
図10】実施形態に係る仮想カメラ画像DBに記憶される情報の一例を示す図である。
【
図11】実施形態に係る情報処理装置のカメラ画像の撮影位置及び姿勢を推定する処理の一例を示すフローチャートである。
【
図12】実施形態に係るカメラ画像の一例を示す図である。
【
図13】実施形態に係るカメラ画像の一例を示す図である。
【
図14】実施形態に係る点群データ及びカメラ画像が撮影された際のカメラの位置及び姿勢の表示例の一例を示す図である。
【発明を実施するための形態】
【0011】
本開示の原理は、いくつかの例示的な実施形態を参照して説明される。これらの実施形態は、例示のみを目的として記載されており、本開示の範囲に関する制限を示唆することなく、当業者が本開示を理解および実施するのを助けることを理解されたい。本明細書で説明される開示は、以下で説明されるもの以外の様々な方法で実装される。
以下の説明および特許請求の範囲において、他に定義されない限り、本明細書で使用されるすべての技術用語および科学用語は、本開示が属する技術分野の当業者によって一般に理解されるのと同じ意味を有する。
以下、図面を参照して、本発明の実施形態を説明する。
【0012】
(実施の形態1)
<構成>
図1を参照し、実施形態に係る情報処理装置10の構成について説明する。
図1は、実施形態に係る情報処理装置10の構成の一例を示す図である。情報処理装置10は、生成部11、及び推定部12を有する。これら各部は、情報処理装置10にインストールされた1以上のプログラムと、情報処理装置10のプロセッサ、及びメモリ等のハードウェアとの協働により実現されてもよい。
【0013】
生成部11は、3次元空間の点群データに基づいて、3次元空間における各仮想カメラで撮影される仮想カメラ画像をそれぞれ生成する。推定部12は、生成部11により生成された複数の仮想カメラ画像のそれぞれと、カメラで撮影されたカメラ画像との類似度に基づいて、カメラ画像が撮影された際のカメラの位置及び姿勢を推定する。
【0014】
(実施の形態2)
次に、
図2を参照し、実施形態に係る情報処理装置10の構成について説明する。
<ハードウェア構成>
図2は、実施形態に係る情報処理装置10のハードウェア構成例を示す図である。
図2の例では、情報処理装置10(コンピュータ100)は、プロセッサ101、メモリ102、通信インターフェイス103を含む。これら各部は、バス等により接続されてもよい。メモリ102は、プログラム104の少なくとも一部を格納する。通信インターフェイス103は、他のネットワーク要素との通信に必要なインターフェイスを含む。
【0015】
プログラム104が、プロセッサ101及びメモリ102等の協働により実行されると、コンピュータ100により本開示の実施形態の少なくとも一部の処理が行われる。メモリ102は、任意のタイプのものであってもよい。メモリ102は、非限定的な例として、非一時的なコンピュータ可読記憶媒体でもよい。また、メモリ102は、半導体ベースのメモリデバイス、磁気メモリデバイスおよびシステム、光学メモリデバイスおよびシステム、固定メモリおよびリムーバブルメモリなどの任意の適切なデータストレージ技術を使用して実装されてもよい。コンピュータ100には1つのメモリ102のみが示されているが、コンピュータ100にはいくつかの物理的に異なるメモリモジュールが存在してもよい。プロセッサ101は、任意のタイプのものであってよい。プロセッサ101は、汎用コンピュータ、専用コンピュータ、マイクロプロセッサ、デジタル信号プロセッサ(DSP:Digital Signal Processor)、および非限定的な例としてマルチコアプロセッサアーキテクチャに基づくプロセッサの1つ以上を含んでよい。コンピュータ100は、メインプロセッサを同期させるクロックに時間的に従属する特定用途向け集積回路チップなどの複数のプロセッサを有してもよい。
【0016】
本開示の実施形態は、ハードウェアまたは専用回路、ソフトウェア、ロジックまたはそれらの任意の組み合わせで実装され得る。いくつかの態様はハードウェアで実装されてもよく、一方、他の態様はコントローラ、マイクロプロセッサまたは他のコンピューティングデバイスによって実行され得るファームウェアまたはソフトウェアで実装されてもよい。
【0017】
本開示はまた、非一時的なコンピュータ可読記憶媒体に有形に記憶された少なくとも1つのコンピュータプログラム製品を提供する。コンピュータプログラム製品は、プログラムモジュールに含まれる命令などのコンピュータ実行可能命令を含み、対象の実プロセッサまたは仮想プロセッサ上のデバイスで実行され、本開示のプロセスまたは方法を実行する。プログラムモジュールには、特定のタスクを実行したり、特定の抽象データ型を実装したりするルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造などが含まれる。プログラムモジュールの機能は、様々な実施形態で望まれるようにプログラムモジュール間で結合または分割されてもよい。プログラムモジュールのマシン実行可能命令は、ローカルまたは分散デバイス内で実行できる。分散デバイスでは、プログラムモジュールはローカルとリモートの両方のストレージメディアに配置できる。
【0018】
本開示の方法を実行するためのプログラムコードは、1つ以上のプログラミング言語の任意の組み合わせで書かれてもよい。これらのプログラムコードは、汎用コンピュータ、専用コンピュータ、またはその他のプログラム可能なデータ処理装置のプロセッサまたはコントローラに提供される。プログラムコードがプロセッサまたはコントローラによって実行されると、フローチャートおよび/または実装するブロック図内の機能/動作が実行される。プログラムコードは、完全にマシン上で実行され、一部はマシン上で、スタンドアロンソフトウェアパッケージとして、一部はマシン上で、一部はリモートマシン上で、または完全にリモートマシンまたはサーバ上で実行される。
【0019】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例には、磁気記録媒体、光磁気記録媒体、光ディスク媒体、半導体メモリ等が含まれる。磁気記録媒体には、例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ等が含まれる。光磁気記録媒体には、例えば、光磁気ディスク等が含まれる。光ディスク媒体には、例えば、ブルーレイディスク、CD(Compact Disc)-ROM(Read Only Memory)、CD-R(Recordable)、CD-RW(ReWritable)等が含まれる。半導体メモリには、例えば、ソリッドステートドライブ、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory)等が含まれる。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0020】
<処理>
<<仮想カメラ画像を生成する処理>>
次に、
図3から
図10を参照し、実施形態に係る情報処理装置10の仮想カメラ画像を生成する処理の一例について説明する。
図3は、実施形態に係る情報処理装置10の仮想カメラ画像を生成する処理の一例を示すフローチャートである。なお、
図3の処理は、例えば、情報処理装置10のオペレータ(管理者)により所定の操作が行われた等の際に実行されてもよい。なお、
図3の処理は、矛盾しない限り、適宜順番を変更して実行されてもよい。例えば、ステップS102からステップS104の処理を、各仮想カメラに対して順番に実行するようにしてもよい。
【0021】
ステップS101において、生成部11は、3次元空間の点群データを点群データDB401から取得する。なお、点群データDB401は、情報処理装置10の内部の記憶装置に記憶されてもよいし、外部の記憶装置(例えば、DBサーバ)に記憶されてもよい。点群データDB401の情報は、情報処理装置10のオペレータ等により予め記録されていてもよい。
【0022】
図4は、実施形態に係る点群データDB(データベース)401に記憶される情報の一例を示す図である。
図4の例では、点群データDB401は、場所IDに対応付けて、点群データと、場所情報が記録されている。場所IDは、点群データが計測(取得、測定、生成)された場所(施設)を識別する情報である。
【0023】
点群データは、例えば、LiDAR(Light Detection And Ranging、Laser Imaging Detection and Ranging)、ToF(Time of Flight)カメラ、ステレオカメラ、及び3D(Dimension)スキャナの少なくとも一つにより生成されてもよい。点群データ(ポイントクラウド)は、例えば、3次元空間上の物体の表面上の点(観測点)データの集合でもよい。各点データには、例えば、直交座標系(x,y,z)等における位置を示す値が含まれてもよい。また、各点データには、例えば、色、及び実空間上の位置情報(緯度、経度、標高)等が含まれてもよい。各点の色は、例えば、カメラを有するLiDARにより測定されてもよい。各点の実空間上の位置情報は、例えば、点群データに含まれる複数の点のそれぞれに対してオペレータ等により設定された位置情報に基づいて算出されてもよい。
【0024】
続いて、生成部11は、当該3次元空間における複数の仮想カメラのそれぞれの位置を決定する(ステップS102)。ここで、生成部11は、まず、例えば、FPS(Farthest Point Sampling)等の手法を用いて、点群データをダウンサンプリングしてもよい。
【0025】
また、生成部11は、点群データに基づいて人間が立ち入り可能な領域を認識し、認識した情報に基づいて、仮想カメラの位置を決定してもよい。この場合、生成部11は、点群データに基づいて地面等の領域を、AI(Artificial Intelligence)等を用いて検出し、検出した地面等の領域のうち、物体等により封鎖されていない領域を、人間が立ち入り可能な領域として判定してもよい。これにより、例えば、保守員が撮影位置とする可能性が比較的高いと考えられる位置を検出できる。もしくは、生成部11は、点の法線方向が鉛直方向に類似している(例えば、両方向の差が特定の閾値以内)かを判定することで、地面等の領域を検出してもよい。もしくは、生成部11は、平面フィッティングなどの点群から平面領域を抽出する技術を用いることで、地面等の領域を検出してもよい。そして、生成部11は、人間が立ち入り可能な領域に含まれる位置を、仮想カメラの水平方向の位置(緯度、経度)として決定してもよい。なお、生成部11は、例えば、人間が立ち入り可能な領域の標高から特定の高さ(例えば、1.6メートル)の位置を、仮想カメラの鉛直方向の位置(標高)として決定してもよい。
【0026】
図5は、実施形態に係る点群データ501の一例を示す図である。
図5の例では、特定の室内をLiDARで測定した場合に生成される点群データ501の表示例が示されている。
図6は、実施形態に係る人間が立ち入り可能な領域601の一例を示す図である。
図6の例では、
図5の点群データ501から検出された、人間が立ち入り可能な領域601の一例が示されている。
図6の例では、特定の室内における床面611、及び階段の水平部分612等が、人間が立ち入り可能な領域として検出されている。
【0027】
また、生成部11は、点群データに含まれる複数の点に基づいて特定された物体の面の法線方向に基づいて、仮想カメラの位置及び姿勢を決定してもよい。この場合、生成部11は、例えば、特定の点とその周辺の点群とに基づいて、当該特定の点を含む物体の面を特定してもよい。そして、生成部11は、例えば、人間が立ち入り可能な領域における、当該特定の点から当該法線方向に特定距離離れた水平方向の位置を、仮想カメラの水平方向の位置と決定してもよい。なお、当該面の法線方向は、当該面から見て、点群データを測定した際のLiDAR等のセンサ側の方向としてもよい。また、生成部11は、例えば、当該法線方向の反対方向(仮想カメラの位置から当該特定の点への方向)から所定範囲内の方向を仮想カメラが向くように、仮想カメラの姿勢を決定してもよい。これにより、保守員が当該特定の点を含む物体をカメラで撮影する場合に、保守員が選択する可能性が比較的高いと考えられるカメラの位置及び姿勢を、仮想カメラの位置及び姿勢として決定できる。
【0028】
また、生成部11は、点群データに基づいて特定の物体の領域及び人間が立ち入り可能な領域の少なくとも一方を認識し、認識した情報に基づいて、仮想カメラの位置及び姿勢の少なくとも一方を決定してもよい。この場合、生成部11は、例えば、ディープラーニング等を用いたAI等に基づいて、点群データに含まれる各点が示す物体の種別を特定してもよい。そして、生成部11は、例えば、橋梁、外壁、発電施設等の特定の種別の物体を、当該特定の物体として判定してもよい。これにより、例えば、保守員が被写体として選択する可能性が比較的高いと考えられる物体を検出できる。そして、生成部11は、人間が立ち入り可能な領域から、当該特定の物体の少なくとも一部を撮影できる仮想カメラの位置及び姿勢を、仮想カメラの位置及び姿勢として決定してもよい。
【0029】
(過去に撮影されたカメラ画像に基づいて、仮想カメラの位置及び姿勢を決定する例)
生成部11は、過去に撮影されたカメラ画像に基づいて、仮想カメラの位置及び姿勢を決定してもよい。これにより、例えば、保守員が今後も撮影する可能性が比較的高いと考えられるカメラの位置及び姿勢を、仮想カメラの位置及び姿勢とすることができる。
この場合、生成部11は、推定部12により推定された第1カメラ画像(過去に撮影されたカメラ画像)の位置及び姿勢に基づいて、仮想カメラの位置及び姿勢を決定してもよい。
【0030】
続いて、生成部11は、各仮想カメラで撮影される当該3次元空間の画像(仮想カメラ画像、投影画像)をそれぞれ生成する(ステップS103)。ここで、生成部11は、点群データと、仮想カメラの位置及び姿勢と、仮想カメラの撮影に関する設定と、に基づいて、仮想カメラ画像を生成(レンダリング)する。なお、仮想カメラの撮影に関する設定には、例えば、仮想カメラの画角、焦点距離(ズーム)等の情報が含まれてもよい。
【0031】
この場合、生成部11は、例えば、点群データに含まれる各点を特定の大きさの球体等とした場合に、仮想カメラから見た各方向において最も手前の各点を投影したデータを、仮想カメラ画像として生成してもよい。
【0032】
図7から
図9は、実施形態に係る仮想カメラ画像の一例を示す図である。
図7から
図9のそれぞれには、
図5の点群データ501に基づいて生成された各仮想カメラ画像701、801、901の一例が示されている。
【0033】
続いて、生成部11は、各仮想カメラ画像について、仮想カメラ画像と、仮想カメラの3次元空間における位置及び姿勢を示す情報とを対応付けて(関連付けて)、仮想カメラ画像DB501に記録する(ステップS104)。なお、仮想カメラ画像DB501は、情報処理装置10の内部の記憶装置に記憶されてもよいし、外部の記憶装置(例えば、DBサーバ)に記憶されてもよい。
【0034】
図10は、実施形態に係る仮想カメラ画像DB1001に記憶される情報の一例を示す図である。
図10の例では、仮想カメラ画像DB1001には、場所IDと仮想カメラIDとの組みに対応付けて、仮想カメラ画像と、位置情報と、姿勢情報とが記録されている。位置情報は、仮想カメラの3次元空間における位置を示す情報である。姿勢情報は、仮想カメラの3次元空間における姿勢を示す情報である。姿勢情報には、例えば、3次元空間におけるロール角、ピッチ角、及びヨー角の情報が含まれてもよい。もしくは、姿勢情報には、3次元の回転行列と等価な情報が含まれていてもよい。
【0035】
<<カメラ画像の撮影位置及び姿勢を推定する処理>>
次に、
図11から
図14を参照し、実施形態に係る情報処理装置10のカメラ画像の撮影位置及び姿勢を推定する処理の一例について説明する。
図11は、実施形態に係る情報処理装置10のカメラ画像の撮影位置及び姿勢を推定する処理の一例を示すフローチャートである。なお、
図11の処理は、例えば、情報処理装置10のオペレータ(管理者)により所定の操作が行われた等の際に実行されてもよい。なお、
図11の処理は、矛盾しない限り、適宜順番を変更して実行されてもよい。
【0036】
ステップS201において、推定部12は、カメラで撮影された画像(カメラ画像、クエリ画像)を取得(入力)する。ここで、推定部12は、例えば、オペレータ等により指定されたカメラ画像及び場所IDを取得してもよい。
【0037】
続いて、推定部12は、カメラ画像が撮影された際のカメラの位置及び姿勢を推定する(ステップS202)。ここで、推定部12は、例えば、場所IDに対応付けて仮想カメラ画像DB1001に記録されている各仮想カメラ画像の画像特徴(局所特徴、または大域特徴)と、カメラ画像の画像特徴とに基づいて、各仮想カメラ画像とカメラ画像との類似度をそれぞれ算出してもよい。この場合、推定部12は、例えば、各局所特徴量と対応する基底ベクトルとの差分を集約することで大域特徴量を表現できるVLAD(Vector of Locally Aggregated Descriptors)を比較することにより、当該類似度を算出してもよい。また、推定部12は、例えば、仮想カメラ画像とカメラ画像との局所特徴マッチングを行い、マッチングの数や各マッチングのスコアの和などに基づいて、当該類似度を算出してもよい。スコアは、例えば、各マッチングの類似度、あるいは確信度(局所特徴マッチング処理が算出する各マッチング度合いの強さ)であってもよい。
【0038】
そして、推定部12は、生成部11により生成された複数の仮想カメラ画像のうち、カメラ画像との類似度が高い順に少なくとも一つを特定し、カメラの位置及び姿勢として推定してもよい。この場合、推定部12は、生成部11により生成された複数の仮想カメラ画像のうち、カメラ画像との類似度が最も高い仮想カメラ画像を撮影した仮想カメラの位置及び姿勢を、カメラの位置及び姿勢として推定してもよい。また、推定部12は、当該類似度が高い順に各仮想カメラ画像を撮影した仮想カメラの位置及び姿勢を、カメラの位置及び姿勢の候補として推定してもよい。
【0039】
図12は、実施形態に係るカメラ画像1201の一例を示す図である。
図12に示すカメラ画像が入力された場合、
図7から
図9のそれぞれに示される各仮想カメラ画像701、801、901のうち、類似度が最も高い仮想カメラ画像701を撮影した仮想カメラの位置及び姿勢が、カメラの位置及び姿勢として推定される。
【0040】
また、推定部12は、生成部11により生成された複数の仮想カメラ画像のそれぞれとカメラ画像との各類似度に応じた重み係数と、各仮想カメラの位置及び姿勢と、に基づいて算出した位置及び姿勢を、カメラの位置及び姿勢として推定してもよい。この場合、推定部12は、例えば、各仮想カメラについて、仮想カメラ画像とカメラ画像との類似度が高いほど重み係数を大きな値とし、各仮想カメラの位置及び姿勢を加重平均した値を、カメラの位置及び姿勢として推定してもよい。
【0041】
続いて、推定部12は、推定したカメラ画像が撮影された際のカメラの位置及び姿勢を示す情報を出力する(ステップS203)。
図13は、実施形態に係るカメラ画像1301の一例を示す図である。
図14は、実施形態に係る点群データ及びカメラ画像が撮影された際のカメラの位置及び姿勢の表示例の一例を示す図である。
図13及び
図14の例では、推定部12は、
図13のカメラ画像1301が入力された場合に、
図14に示すように、点群データが投影された画像1401上で、カメラ画像が撮影された際のカメラの位置1411及び姿勢1412を示す図形を重畳して表示させている。
【0042】
(カメラ画像の位置情報を用いる例)
図11のステップS202で、推定部12は、カメラにより取得された、カメラ画像が撮影された際のカメラの位置情報に基づいて、生成部11により生成された複数の仮想カメラ画像のうち、カメラ画像との類似度を算出する複数の仮想カメラ画像を決定してもよい。これにより、例えば、推定処理にかかる時間を削減できる。
【0043】
この場合、カメラの位置情報は、例えば、GPS(Global Positioning System)等の衛星測位システム等を用いて取得され、Exif(Exchangeable image file format)形式のカメラ画像のジオタグ(Geo-tag)として記録されていてもよい。これにより、例えば、屋内または高い建物の谷間等のGPSの精度が低下する位置で撮影されたカメラ画像に対して、より高精度で撮影位置を推定できる。
【0044】
また、ステップS102で、生成部11は、カメラにより取得された、カメラ画像が撮影された際のカメラの位置情報に基づいて、各仮想カメラの位置を決定してもよい。この場合、生成部11は、例えば、点群データにより示される3次元空間における、カメラの位置情報に対応する位置を算出してもよい。そして、生成部11は、例えば、当該位置から特定の範囲内に、各仮想カメラを配置してもよい。これにより、例えば、推定の精度を向上させることができる。
【0045】
<変形例>
情報処理装置10は、一つの筐体に含まれる装置でもよいが、本開示の情報処理装置10はこれに限定されない。情報処理装置10の各部は、例えば1以上のコンピュータにより構成されるクラウドコンピューティングにより実現されていてもよい。
【0046】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【0047】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
3次元空間の点群データに基づいて、前記3次元空間における各仮想カメラで撮影される仮想カメラ画像をそれぞれ生成する生成部と、
前記生成部により生成された複数の仮想カメラ画像のそれぞれと、カメラで撮影されたカメラ画像との類似度に基づいて、前記カメラ画像が撮影された際の前記カメラの位置及び姿勢を推定する推定部と、
を有する情報処理装置。
(付記2)
前記点群データは、LiDAR(Light Detection And Ranging、Laser Imaging Detection and Ranging)、ToF(Time of Flight)カメラ、ステレオカメラ、及び3D(Dimension)スキャナの少なくとも一つにより生成される、
付記1に記載の情報処理装置。
(付記3)
前記生成部は、前記点群データに含まれる複数の点に基づいて特定された物体の面の法線方向に基づいて、前記仮想カメラの位置及び姿勢を決定する、
付記1または2に記載の情報処理装置。
(付記4)
前記生成部は、前記点群データに基づいて特定の物体の領域及び人間が立ち入り可能な領域の少なくとも一方を認識し、認識した情報に基づいて、前記仮想カメラの位置及び姿勢の少なくとも一方を決定する、
付記1または2に記載の情報処理装置。
(付記5)
前記生成部は、前記推定部により推定されたの位置及び姿勢に基づいて、仮想カメラの位置及び姿勢を決定し、前記3次元空間における当該仮想カメラで撮影される仮想カメラ画像を生成する、
付記1または2に記載の情報処理装置。
(付記6)
前記推定部は、前記生成部により生成された複数の仮想カメラ画像のそれぞれの画像特徴と、前記カメラ画像の画像特徴と、に基づいて、前記類似度をそれぞれ算出する、
付記1乃至5のいずれか一つに記載の情報処理装置。
(付記7)
前記推定部は、前記生成部により生成された複数の仮想カメラ画像のうち、前記カメラ画像との類似度が高い順に少なくとも一つを特定し、前記カメラの位置及び姿勢として推定する、
付記1または2に記載の情報処理装置。
(付記8)
前記推定部は、前記生成部により生成された複数の仮想カメラ画像のそれぞれと前記カメラ画像との各類似度に応じた重み係数と、各仮想カメラの位置及び姿勢と、に基づいて算出した位置及び姿勢を、前記カメラの位置及び姿勢として推定する、
付記1または2に記載の情報処理装置。
(付記9)
前記推定部は、前記カメラにより取得された、前記カメラ画像が撮影された際の前記カメラの位置情報に基づいて、前記生成部により生成された複数の仮想カメラ画像のうち、前記カメラ画像との類似度を算出する複数の仮想カメラ画像を決定する、
付記1または2に記載の情報処理装置。
(付記10)
3次元空間の点群データに基づいて、前記3次元空間における各仮想カメラで撮影される仮想カメラ画像をそれぞれ生成し、
生成した複数の仮想カメラ画像のそれぞれと、カメラで撮影されたカメラ画像との類似度に基づいて、前記カメラ画像が撮影された際の前記カメラの位置及び姿勢を推定する、
情報処理方法。
(付記11)
3次元空間の点群データに基づいて、前記3次元空間における各仮想カメラで撮影される仮想カメラ画像をそれぞれ生成し、
生成した複数の仮想カメラ画像のそれぞれと、カメラで撮影されたカメラ画像との類似度に基づいて、前記カメラ画像が撮影された際の前記カメラの位置及び姿勢を推定する、
処理をコンピュータに実行させるプログラム。
【符号の説明】
【0048】
10 情報処理装置
11 生成部
12 推定部