以下、情報処理装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において説明する情報処理装置は、各地点において観測装置から取得される三次元データを用いて、属性を決定しないままオブジェクトを認識するとともに、当該観測地点とオブジェクトの位置関係(例えば、距離等)に応じて、適切な特徴量を取得する(例えば、遠距離なら全体寸法、近距離なら表面形状等)。さらに、情報処理装置は、GPS等の機器または後述する自己位置認識技術等により取得された各観測地点の位置、あるいはオブジェクトのトラッキング技術に基づき、各観測地点で認識された同一のオブジェクトを同定し、これらの特徴量を合成することで、オブジェクトの識別子(種類)を識別する。
また、本実施の形態において、元情報群を用いて取得した三次元の図である出力図を構成し、出力する情報処理装置について説明する。
図1は、本実施の形態における情報処理装置1のブロック図である。
情報処理装置1は、格納部11、受付部12、処理部13、および出力部14を備える。
格納部11は、元情報格納部111、学習器格納部112、および対応表格納部113を備える。
処理部13は、元情報取得部131、移動体位置情報取得部132、元情報蓄積部133、オブジェクト抽出部134、特徴量取得部135、絶対位置情報取得部136、同一オブジェクト認識部137、特徴量合成部138、オブジェクト認識部139、および出力図構成部140を備える。
出力部14は、図出力部141、およびオブジェクト識別子出力部142を備える。
格納部11には、各種の情報が格納される。各種の情報とは、例えば、2以上のレーザー発信手段情報である。レーザー発信手段情報とは、レーザー発信手段を識別するレーザー識別子とレーザー発信手段の位置を特定する発信手段位置情報とレーザー発信手段のレーダー発信の方向を特定する発信手段方向情報とを有する情報である。なお、レーザー発信手段とは、レーザーを発信し、その反射の信号を受信する手段である。例えば、LIDARは、多数のレーザー発信手段を具備する。
また、各種の情報とは、例えば、後述する元情報群である。元情報群は、元情報取得部131が取得した情報である。また、各種の情報とは、例えば、後述する学習器、後述する対応表である。
元情報格納部111には、移動体位置情報に対応付けて、2以上の元情報群が格納される。移動体位置情報は、2以上の各時点の移動体の位置を示す情報である。移動体位置情報は、2以上の各時点の移動体の位置を示す移動体位置情報を取得する移動体位置情報取得部132が取得する。なお、移動体は、移動する観測装置である。なお、元情報群の詳細については後述する。
学習器格納部112には、オブジェクトの特徴量集合とオブジェクト識別子とを有する2以上の組情報を用いて、機械学習のアルゴリズムにより学習処理されて取得された学習器が格納される。機械学習は、例えば、SVM、決定木、ランダムフォレスト、深層学習等であるが、機械学習のアルゴリズムは問わない。
対応表格納部113には、オブジェクトの特徴量集合とオブジェクト識別子との対である2以上の対応情報を有する対応表が格納される。特徴量集合は、例えば、オブジェクトの幅の範囲の情報、オブジェクトの高さの範囲の情報、オブジェクトの1面の表面形状の情報、オブジェクトの縦横比を有する。オブジェクト識別子は、オブジェクを識別する情報であり、例えば、オブジェク名、オブジェクのID等である。
なお、オブジェクト識別子を取得する場合に使用される情報は、学習器でも対応表でも良い。
受付部12は、各種の指示や情報等を受け付ける。各種の指示や情報等とは、例えば、情報処理装置1の動作開始指示、動作終了指示、出力指示である。また、動作開始指示は、情報処理装置1の動作の開始の指示であるが、移動体の移動の開始の指示でも良い。動作終了指示は、情報処理装置1の動作の終了の指示である。また、出力指示は、出力図を出力する指示であり、例えば、出力図の元になった元情報群が取得された時点を識別する時点識別子を有する。
ここで、受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。
各種の指示や情報等の入力手段は、タッチパネルやキーボードやマウスやメニュー画面によるもの等、何でも良い。
処理部13は、各種の処理を行う。各種の処理とは、例えば、元情報取得部131、移動体位置情報取得部132、元情報蓄積部133、オブジェクト抽出部134、特徴量取得部135、絶対位置情報取得部136、同一オブジェクト認識部137、特徴量合成部138、オブジェクト認識部139、出力図構成部140が行う処理である。
元情報取得部131は、2以上の各時点における元情報群を取得する。元情報群は、1または2以上の元情報を有する。
元情報取得部131は、一の時点における、移動体の周辺の360度をカバーする1以上の元情報を取得しても良い。なお、元情報取得部131は、360度をカバーする2以上の元情報を取得する場合に、360度の範囲内の領域によって、時間遅れが発生していても良い。
元情報は、移動体の周辺に存在するオブジェクトの三次元空間における位置を特定する元になる情報である。元情報は、移動体の周辺に存在するオブジェクトの特定の部分(特定の点)の3次元座標である。元情報は、図示しない観測装置の3次元データを有する。元情報群は、観測装置から観測される、周辺に存在する人やモノなどの特定の部分の3D座標を表す点の集合であり、例えば、点群(Point Cloud)データまたは距離画像データである。なお、観測装置は、観測データとして、3Dデータを連続的に取得可能な装置である。観測装置は、例えば、上述したLIDAR、3次元カメラ、ToFセンサ、ステレオカメラ等である。観測装置は、結果として同一の座標系の3Dデータを出力するものであれば、2以上の装置を組み合わせて構成されるシステムであってもよい。また、元情報取得部131は、観測装置を含むと考えても良いし、観測装置から元情報を取得すると考えても良い。また、3次元データは、例えば、観測装置または移動体を原点とする3次元の相対的な座標値である。
元情報は、例えば、レーザー情報である。レーザー情報は、戻り時間とレーザー識別子との組である。レーザー識別子は、レーザー発信手段を識別する情報である。レーザー識別子は、照射したレーザーの位置を特定する情報でも良い。元情報取得部131は、例えば、2以上の各レーザー発信手段により発信されたレーザーの反射を受信し、レーザーの発信からその反射の受信までの戻り時間を取得し、戻り時間とレーザー発信手段を識別するレーザー識別子との組であるレーザー情報を、レーザー発信手段ごとに取得するし。元情報取得部131は、レーザーを発信するLIDARを含むと考えても良いし、LIDARから元情報を取得するソフトウェアとMPU等から実現されても良い。なお、LIDARは、LiDARと言っても良い。
元情報群は、例えば、距離画像でも良い。元情報取得部131は、例えば、距離画像カメラが撮影した1または2以上の距離画像を取得する。なお、距離画像は、画像の中の各画素の3次元空間上の座標値を含む。また、元情報取得部131は、距離画像を撮影するカメラ(距離画像センサと言っても良い)を含むと考えても良いし、カメラが撮影した距離画像を取得するソフトウェアとMPU等から実現されても良い。
移動体位置情報取得部132は、移動体位置情報を取得する。移動体位置情報は、通常、三次元空間(以下、単に「空間」という場合がある。)における位置を特定する情報である。移動体位置情報とは、通常、(x,y,z)の構造を有する。
移動体位置情報取得部132は、例えば、GPS受信機を含み、当該GPS受信機により、絶対位置の座標値(緯度,経度,高度)を取得する。
移動体位置情報取得部132は、例えば、元情報取得部131が取得した1以上の元情報群を用いて、移動する移動体の移動体位置情報を取得する。また、移動体位置情報は、例えば、相対的な位置を示す情報である。移動体位置情報が相対的な位置を示す情報である場合、例えば、移動体の出発地点が原点(0,0,0)である。なお、移動体の出発地点の絶対位置(通常、(緯度,経度,高度))が分かれば、移動体位置情報は、絶対的な位置を示す情報に変換し得る。つまり、本明細書で扱う移動体位置情報やオブジェクト位置情報等の位置情報は、相対的な位置を示す情報でも良いし、絶対的な位置を示す情報でも良い。なお、オブジェクト位置情報は、オブジェクトを構成する点の位置を示す情報である。オブジェクト位置情報は、移動体位置情報を原点とする相対的な位置情報であることは好適である。
移動体位置情報取得部132は、例えば、2以上の元情報群を用いて、2以上の各時点における移動体位置情報を取得する。
さらに具体的には、移動体位置情報取得部132は、例えば、異なる時点の2つの各元情報から特徴点を抽出し、2つの元情報の対応する2つの特徴点(例えば、(x11,y11,z11)と(x12,y12,z12))を検知し、当該特徴点の差異から移動量(例えば、(x12−x11,y12−y11,z12−z11)を算出する。そして、移動体位置情報取得部132は、例えば、移動体の直前の位置を示す移動体位置情報(例えば、(x0,y0,z0))と移動量(例えば、(x12−x11,y12−y11,z12−z11)とを用いて、現時点の移動体位置情報(例えば、(x0+x12−x11,y0+y12−y11,z0+z12−z11))を算出する。なお、特徴点とは、オブジェクトの角の点、オブジェクトの輪郭線上の特定の点などである。3次元データの集合である元情報から特徴点を取得する技術は公知技術である。
元情報蓄積部133は、元情報取得部131が取得した元情報と、当該元情報に対応する時点において移動体位置情報取得部132が取得した移動体位置情報とを対応付けて、元情報格納部111に蓄積する。
オブジェクト抽出部134は、2以上の各時点に対応付けている元情報群を用いて、1以上のオブジェクトを抽出する。
オブジェクト抽出部134は、元情報群を用いて、1以上のオブジェクトを特定(「特定」を「認識」、と言っても良い)する。つまり、オブジェクト抽出部134は、元情報群が有する2以上の三次元座標情報の連続する点群を特定する。なお、三次元座標情報の連続する点群がオブジェクトの特定位置の点の集合である。また、点群の特定とは、オブジェクトごとに点群を取得すること、オブジェクトごとに点群を対応付けること等であり、オブジェクトの特定位置の点の集合がグループとして認識されれば良い。また、三次元座標情報の連続する点群は、例えば、距離が閾値以内または閾値より小さい点の集合である。三次元座標情報の連続する点群は、一のオブジェクトの特定の位置(点)の集合である、また、点群とは、三次元座標情報の集合である。
ここで、オブジェクト抽出部134は、特定した各オブジェクトの点群に対して、オブジェクトの全体の点群であるか否かを示すフラグを対応付けることは好適である。つまり、オブジェクト抽出部134は、一の時点の元情報群の中に、オブジェクトの全体の情報を有するか、オブジェクトの一部分のみの情報を有するかを示すフラグを、オブジェクトごとに取得することは好適である。オブジェクト抽出部134は、例えば、一の時点の元情報群の中で、認識したオブジェクトの特定の点の集合である連続する点群のうちのいずれの点の三次元座標情報も、元情報の外枠の点の三次元座標情報では無い場合に、一の時点の元情報の中に認識したオブジェクトの全体の情報が存在する、と判断する。また、オブジェクト抽出部134は、例えば、認識したオブジェクトの特定の点の集合である連続する点群のうちのいずれかの点の三次元座標情報が元情報の外枠の点の三次元座標情報ではある場合に、一の時点の元情報の中に認識したオブジェクトの一部分のみの情報が存在する、と判断する。
特徴量取得部135は、2以上の各時点に対応付けている元情報群を用いて、オブジェクト抽出部134が抽出した1以上の各オブジェクトの特徴量を取得する。オブジェクトの特徴量は、例えば、サイズ情報、および形状情報である。オブジェクトの特徴量は、例えば、主成分分析から得られる外接直方体の各辺の比、縦横比である。
特徴量取得部135は、2以上の各時点に対応付けている元情報群の中の、オブジェクトの特定の点の集合である点群を用いて、オブジェクト抽出部134が抽出した1以上の各オブジェクトの特徴量を取得する。
特徴量取得部135は、第一時点の元情報群であり、一のオブジェクトの全体が特定可能な元情報群を用いて、当該一のオブジェクトの全体特徴量を取得することは好適である。おこで、全体特徴量は、オブジェクトの全体に対する特徴量である。全体特徴量は、例えば、オブジェクトのサイズ情報またはオブジェクトの縦横比である。
特徴量取得部135は、第一時点の元情報群であり、一のオブジェクトの全体が特定可能な元情報群を用いて、当該一のオブジェクトのサイズ情報を取得することは好適である。
特徴量取得部135が2以上の各時点の元情報群であり、一のオブジェクトの全体が特定可能な各元情報群からサイズ情報を取得できた場合、最もサイズが大きいサイズ情報を採用することは好適である。
特徴量取得部135が2以上の各時点の元情報群であり、一のオブジェクトの全体が特定可能な各元情報群からサイズ情報を取得できた場合、最も後の時点の元情報群から取得されたサイズ情報を採用することは好適である。かかる場合、観測装置が一のオブジェクトに近づきながら移動している場合である。
特徴量取得部135が2以上の各時点の元情報群であり、一のオブジェクトの全体が特定可能な各元情報群からサイズ情報を取得できた場合、元情報群の中に占めるオブジェクトの割合が最も大きい(オブジェクトが最も大きく占めている)元情報群から取得されたサイズ情報を採用することは好適である。
特徴量取得部135は、第二時点の元情報群であり、一のオブジェクトの一部のみが特定可能な元情報群を用いて、一のオブジェクトの部分特徴量を取得することは好適である。部分特徴量とは、オブジェクトの部分の特徴量である。部分特徴量は、例えば、オブジェクトの形状情報である。
特徴量取得部135は、第二時点の元情報群であり、一のオブジェクトの一部が特定可能な元情報群を用いて、当該一のオブジェクトの形状情報を取得することは好適である。
なお、第二時点は、第一時点とは異なる時点である。また、第二時点は、通常、第一時点より後の時点である。また、形状情報は、表面形状の情報であり、例えば、観測装置に対して正面の位置の表面の情報である。
絶対位置情報取得部136は、2以上の各時点に対応付けている元情報群と2以上の各時点の移動体位置情報とを用いて、オブジェクト抽出部134が抽出した1以上の各オブジェクトの絶対位置に関する1または2以上の絶対位置情報を取得する。なお、絶対位置情報は、(緯度,経度,高度)でも良いし、特定の点を原点(0,0,0)とした三次元空間における(x,y,z)でも良い。絶対位置情報は、オブジェクトの特定の点の絶対的な3次元座標の情報である。
絶対位置情報取得部136は、通常、元情報群に含まれる各元情報が有する各三次元の座標情報と移動体位置情報とを用いて、2以上の絶対位置情報を算出する。つまり、絶対位置情報取得部136は、元情報が有する三次元の座標情報(例えば、(xa,ya,za))にオフセットとして移動体位置情報(例えば、(xb,yb,zb))を加えて、相対的な三次元の座標情報であるオブジェクト位置情報(例えば、(xa+xb,ya+yb,za+zb))を算出する。
絶対位置情報取得部136は、オブジェクト抽出部134が特定したオブジェクトごとの点群を構成する各点の三次元座標情報と移動体位置情報とを用いて、2以上の絶対位置情報を算出する。つまり、絶対位置情報取得部136は、オブジェクト抽出部134が特定したオブジェクトごとの点群を構成する各点の三次元座標情報(例えば、(xa,ya,za))にオフセットとして移動体位置情報(例えば、(xb,yb,zb))を加えて、相対的な三次元の座標情報である絶対位置情報(例えば、(xa+xb,ya+yb,za+zb))を算出する。
また、絶対位置情報取得部136は、取得したオブジェクトごとの絶対位置情報の集合を対応付けることは好適である。なお、絶対位置情報の集合を絶対位置情報群と言っても良い。
同一オブジェクト認識部137は、2以上の異なる時点の同一のオブジェクトの対応を取る。なお、同一オブジェクト認識部137が2以上の異なる時点の同一のオブジェクトの対応を取るアルゴリズムは問わない。
同一オブジェクト認識部137は、2以上の各時点に対応付けている元情報群を用いて、2以上の異なる時点の同一のオブジェクトの対応を取る。
同一オブジェクト認識部137は、例えば、絶対位置情報取得部136が取得した2以上の各時点ごと、1以上の各オブジェクトごとの1または2以上の絶対位置情報を用いて、2以上の異なる時点の同一のオブジェクトの対応を取る。ここで、対応を取ることは、例えば、同一のオブジェクトの絶対位置情報群を対応付けることである。対応を取ることは、例えば、対応がとれたオブジェクトの2以上の各時点の絶対位置情報群をすべて含む絶対位置情報群を当該オブジェクトの絶対位置情報群とすることである。
同一オブジェクト認識部137は、例えば、2以上の異なる時点の元情報群から抽出されたオブジェクトの絶対位置情報群により得られるオブジェクトの位置を用いて、位置が近接している異なる時点のオブジェクトを同一のオブジェクトである、と判断する。2つのオブジェクトの位置が近接していることは、例えば、各絶対位置情報群により抽出される輪郭により構成される図形の空間的な距離が小さいこと等である。なお、絶対位置情報群の代わりに、オブジェクトごとの点群を構成する各点の三次元座標情報の集合を用いてもよい。また空間的な距離の判定に際して、過去の履歴から、カルマンフィルタ等に基づき、より古い時点1からより新しい時点2に至るまでのオブジェクトの移動ベクトルを予測し、オブジェクトの予測位置と、時点2における各オブジェクトの位置を比較してもよい。
同一オブジェクト認識部137は、例えば、2以上の各時点で取得された1以上の特徴量を用いて、2以上の異なる時点の同一のオブジェクトの対応を取っても良い。つまり、例えば、時点1で特徴量A,Bが取得されているオブジェクトと、時点2で特徴量A,Cが取得されているオブジェクトがあり、、かつ共通する特徴量Aが類似している場合、同一オブジェクト認識部137は、かかる時点1のオブジェクトと、時点2のオブジェクトとを同一のオブジェクトである、と判断する。
また、同一オブジェクト認識部137は、例えば、上記のオブジェクトの位置と特徴量の双方を用いて、2以上の異なる時点の同一のオブジェクトの対応を取っても良い。例えば、時点1のオブジェクト1と一定の距離以内に、時点2においてオブジェクトが複数存在する場合、時点1のオブジェクトと、特徴量が最も類似する時点2のオブジェクトとを同一のオブジェクトである、と判断する。また、例えば、時点1のオブジェクトの特徴量と時点2のオブジェクトの特徴量の類似度を、各オブジェクトの空間的な距離によって重み付けを行った上でスコアを算出し、時点1のオブジェクトと、時点2において最もスコアの高いオブジェクトとを同一のオブジェクトである、と判断する。
同一オブジェクト認識部137は、上述したように、2以上の異なる時点の元情報群から取得されたオブジェクトの位置情報を用いて、2以上の異なる時点の同一のオブジェクトの対応を取ることは好適である。なお、ここでのオブジェクトの位置情報は、上記の絶対位置情報でも良いし、相対位置情報でも良い。相対位置情報とは、例えば、移動体の位置を原点とする位置情報、つまり、元情報が有する三次元の座標情報である。
特徴量合成部138は、同一オブジェクト認識部137が対応を取った同一のオブジェクトの2以上の特徴量を取得し、2以上の特徴量を用いて、同一のオブジェクトの特徴量集合を取得する。なお、特徴量集合とは、例えば、サイズ情報と形状情報である。形状情報は、例えば、オブジェクトの表面形状の情報である。表面形状の情報は、例えば、オブジェクトの一面の表面形状の情報である。また、表面形状の情報は、例えば、平滑度である。
オブジェクト認識部139は、特徴量合成部138が取得した特徴量集合を用いて、同一のオブジェクトを識別するオブジェクト識別子を取得する。
オブジェクト認識部139は、例えば、特徴量合成部138が取得した特徴量集合を学習器に適用し、機械学習のアルゴリズムにより、オブジェクト識別子を取得する。機械学習のアルゴリズムは、上述したように問わない。
オブジェクト認識部139は、例えば、特徴量合成部138が取得した特徴量集合(例えば、特徴量ベクトル)に最も近似する特徴量集合(例えば、特徴量ベクトル)を対応表から検索し、当該特徴量集合と対になるオブジェクト識別子を対応表から取得する。
オブジェクト認識部139は、道路上の電柱、信号、またはポストのうちの1種類以上のオブジェクトを識別するオブジェクト識別子を取得することは好適である。
オブジェクト抽出部134、特徴量取得部135、絶対位置情報取得部136、同一オブジェクト認識部137、特徴量合成部138、オブジェクト認識部139は、例えば、以下の(1)〜(3)のいずれかの処理により、2以上の時点の元情報群を用いて、オブジェクト識別子を取得する。
(1)オブジェクト識別子の取得の第一の処理例
第一の処理例は、独立した認識処理によりオブジェクト認識と自己位置認識を行う場合のオブジェクト認識の処理である。自己位置認識とは、観測装置の位置の認識である。
処理部13は、例えば、元情報群が有する3次元座標値(「3D点」という。)の集合を用いて、以下のような処理を行う。まず、処理部13は、1または2以上の3D点の集合を用いて、オブジェクト認識処理を行う。オブジェクト認識処理は、一つのオブジェクトを構成する3D点の集合を特定する処理である。次に、処理部13は、例えば、各オブジェクトの3D点の集合から、各オブジェクトの形状に関する特徴量である1または2以上の特徴量を取得する。特徴量は、例えば、サイズ(例えば、幅、高さ、奥行き)、平滑度等である。次に、処理部13は、例えば、1以上の特徴量を用いて、オブジェクトの種類(オブジェクトの属性値の一例)を決定する。オブジェクトの種類は、オブジェクト識別子である。なお、オブジェクトの種類を決定する処理は、例えば、決定木、深層学習、サポートベクターマシン、決定木等の機械学習の技術が利用可能である。次に、処理部13は、決定したオブジェクトの種類の情報に対応付けて、3D点(オブジェクト位置情報と言っても良い。)の集合を取得する。
なお、オブジェクト認識処理は、具体的には、例えば、以下の方法がある。まず、第一のオブジェクト認識処理について説明する。処理部13は、複数の各3D点の距離が予め決められた条件を満たすほど近い点の集合を同一のオブジェクトを構成する点である、と判断し、オブジェクトごとに3D点をまとめる。
また、処理部13は、例えば、以下のグリッドマップの手法である第二の方法によるオブジェクト認識処理を行っても良い。つまり、処理部13は、3次元空間の複数のBOXに区切る。そして、処理部13は、各BOXに存在するすべての3D点を同一のオブジェクトを構成する3D点である、と仮定する。次に、処理部13は、各BOXの3D点から特徴点(例えば、最も中心に近い点、複数の点の中央値など)を取得する。次に、特徴点が予め決められた条件を満たすほど近いBOXを同一のオブジェクトを構成するBOXである、と判断する。以上により、一のオブジェクトを構成する3D点の集合が検知できた(オブジェクト認識ができた)。なお、BOXとは、通常、3次元の立方体または直方体である。
また、処理部13は、例えば、法線ベクトルを用いて、第三の方法によるオブジェクト認識処理を行っても良い。かかる方法は、領域拡張法(Region Growing Segmentation)と言われている公知の技術である。つまり、処理部13は、例えば、注目する点(開始点)を中心とした一定範囲に存在する点群から算出される法線ベクトルを取得する。そして、処理部13は、開始点から法線ベクトルが類似する近傍点を領域として結合して、オブジェクトを構成する。
そして、例えば、処理部13は、一の元情報群から取得された移動体位置情報に対応付けて、各オブジェクトの2以上のオブジェクト位置情報を図示しないバッファに蓄積する。なお、処理部13は、各オブジェクトの属性値をも一緒に、図示しないバッファに蓄積することは好適である。
(2)第二の処理例
第二の処理例は、過去に認識したオブジェクトの履歴を保存しておき、自己位置の変化を踏まえて、今回のオブジェクトに該当する過去のオブジェクトを取得する処理である。第二の処理例では、オブジェクトの位置変化量(速度)をオブジェクト認識に利用できる。また、第二の処理例では、過去に認識済みの属性も利用できる。なお、自己位置とは、観測装置または移動体の位置である。
なお、第二の処理例では、過去の各オブジェクトの(基準座標系での)位置と移動ベクトルの履歴」から、過去の各オブジェクトが今回存在し得る(基準座標系での)位置を推定し、それを基に過去の各オブジェクトと現在のオブジェクトの関連付けを行うものである。かかる位置推定の処理には、カルマンフィルタ等が利用可能である。なお、この処理の実現には、少なくとも過去の1以上の時点における、移動体の位置と各オブジェクトの位置が保存されている必要がある。
さらに具体的には、まず、移動体位置情報取得部132は、上述した処理により、特徴点の移動量(例えば、(xt−xt−1,yt−yt−1,zt−zt−1))算出する。そして、移動体位置情報取得部132は、過去の一時点(例えば、その直前の時点)(t−1)の移動体位置情報(例えば、(xt−1,yt−1,zt−1))と移動量とから、現時点(t)の移動体位置情報(例えば、(xt,yt,zt))を取得する。
次に、処理部13は、現時点の1以上の元情報が有する3D点の集合を用いて、上記のオブジェクト認識処理により、オブジェクトを認識する。次に、処理部13は、例えば、各オブジェクトの3D点の集合から、各オブジェクトの形状に関する特徴量である1または2以上の特徴量を取得する。次に、処理部13は、例えば、1以上の特徴量から現時点のオブジェクトの属性値(例えば、オブジェクトの種類)を取得する。
次に、処理部13は、過去の1以上の時点のオブジェクトと現時点のオブジェクトの対応付けを行うために、現時点のオブジェクトのオブジェクト位置情報を、移動体位置情報を用いて補正する。次に、過去の各オブジェクトの現時点における位置を、過去の移動量の履歴から推定する。なお、かかる処理において、カルマンフィルタ等を用いる処理がある。次に、現時点のオブジェクトの属性値と過去のオブジェクトの属性値とを比較し、現時点のオブジェクトと過去のオブジェクトとの対応付けを行う。なお、対応付けられる現時点のオブジェクトと過去のオブジェクトとは、同一または類似の属性値を有し、現時点における位置に対応する座標値と予測位置に対応する座標値との差異が予め決められた範囲の差異に留まるオブジェクトである。また、過去の1以上の時点のオブジェクトと現時点のオブジェクトの対応付けが行えた場合、現時点のオブジェクトの1または2以上のオブジェクト位置情報が取得される。
そして、例えば、処理部13は、同一の元情報から取得された移動体位置情報に対応付けて、各オブジェクトの1または2以上のオブジェクト位置情報を図示しないバッファに蓄積する。なお、処理部13は、各オブジェクトの属性値をも一緒に、図示しないバッファに蓄積することは好適である。
(3)第三の処理例
第三の処理例は、過去の3D点の集合を保存しておき、自己位置の変化を反映した3D点の集合と比較し、動体と非動体に分けて3D点の集合を検知する方法である。第三の処理例において、定点観測時の差分処理と同様の効果があるため、移動観測の場合でも、オブジェクト点群の取得をより堅牢に行うことが可能となる。なお、ここで「動体」とは、「一部または全体の(基準座標系における)位置が変化するオブジェクト」である。一部の位置が変化するオブジェクトは、例えば、手だけが動いている人間である。 さらに具体的には、まず、移動体位置情報取得部132は、上述した処理により、特徴点の移動量(例えば、(xt−xt−1,yt−yt−1,zt−zt−1))算出する。そして、移動体位置情報取得部132は、過去の一時点(例えば、その直前の時点)(t−1)の移動体位置情報(例えば、(xt−1,yt−1,zt−1))と移動量とから、現時点(t)の移動体位置情報(例えば、(xt,yt,zt))を取得する。
次に、処理部13は、過去の1以上の時点(例えば、直前の時点)の3D点の集合と現時点の3D点の集合との同期を取るために、現時点の3D点の集合を、移動体位置情報を用いて補正する。
次に、処理部13は、現時点の3D点の集合に対してオブジェクト認識処理を行う。
具体的には、処理部13は、過去の3D点と同じ位置に存在するかどうかを考慮して、現在の各3D点が動体に属するかどうかを判定しながら、現時点の3D点の集合に対してオブジェクト認識処理を行う。ここで、考慮するとは、例えば、複数の各3D点の距離を基準としてオブジェクトを構成する3D点の集合を特定する際に、その複数の3D点が双方とも過去の3D点と同じ位置に存在するかどうかによって距離に重みづけを行うことをいう。
次に、処理部13は、過去の時点(例えば、直前の時点)の3D点の集合から得られた各オブジェクトの1または2以上の各オブジェクト位置情報または/および属性値と、現時点の3D点の集合に対する各オブジェクトの1または2以上の各オブジェクト位置情報または/および属性値とを対比し、過去の時点の3D点の集合から得られた各オブジェクトと現時点の3D点の集合に対する各オブジェクトとの対応を決定する。
なお、過去の時点において動体または非動体であったオブジェクトが、現時点においては、過去の判断とは異なり、非動体または動体として判断される場合がある。例えば、立ち止まっていた人間が歩き始めた、動いていた車が駐車した等の場合である。また、オブジェクトが動体であるか非動体であるかのフラグ情報は、オブジェクトの属性値の一種である、とする。なお、ここで、(2)で説明した、過去のオブジェクトの移動量を考慮したオブジェクトの対応付けを行ってもよい。
そして、例えば、処理部13は、同一の元情報から取得された移動体位置情報に対応付けて、各オブジェクトの1または2以上のオブジェクト位置情報を図示しないバッファに蓄積する。なお、処理部13は、各オブジェクトの属性値をも一緒に、図示しないバッファに蓄積することは好適である。なお、オブジェクト位置情報は、絶対位置情報と同じでも良い。
処理部13は、例えば、元情報取得部131が取得した2以上の各レーザー情報が有するレーザー識別子と対になる発信手段位置情報と発信手段方向情報と、レーザー情報が有する戻り時間とを用いて、オブジェクトのオブジェクト位置情報をレーザー情報ごとに取得し、取得した2以上のオブジェクト位置情報を用いて、1以上のオブジェクトを特定し、1以上の各オブジェクトと各オブジェクトの2以上のオブジェクト位置情報とを対応付ける。
処理部13は、2以上の各時点において、1以上のオブジェクトを特定し、1以上の各オブジェクトと各オブジェクトの2以上のオブジェクト位置情報とを対応付けることは好適である。
元情報がレーザー識別子と戻り時間との組である場合、処理部13は、元情報から、移動体位置情報に対する三次元空間内の相対位置を示すオブジェクト位置情報を取得する。例えば、2以上のオブジェクト位置情報(または絶対位置情報)からオブジェクトの輪郭抽出を行い、輪郭に対応する特徴量を取得し、当該特徴量を用いてオブジェクト識別子を取得する。そして、オブジェクト識別子で識別されるオブジェクトの輪郭を構成する2以上のオブジェクト位置情報とオブジェクト識別子とを対にして保持する。なお、処理部13は、オブジェクトの輪郭を構成する2以上のオブジェクト位置情報に加えて、オブジェクトの内部のオブジェクト位置情報をもオブジェクト識別子と対にして保持しても良いことは言うまでもない。
また、元情報が距離画像の場合、距離画像から空間内のオブジェクトを認識し、オブジェクト識別子を取得する。画像からオブジェクトを認識する技術は公知技術である。処理部13は、深層学習などの機械学習技術やオブジェクト情報とのパターンマッチングの技術等が利用可能である。そして、処理部13は、オブジェクト識別子と認識したオブジェクトを構成する2以上のオブジェクト位置情報とを対にして保持する。
なお、処理部13がオブジェクト識別子と2以上のオブジェクト位置情報とを対にして保持する場所は、格納部11でも良いし、図示しないバッファ等でも良い。
出力図構成部140は、移動体位置情報と1以上の各オブジェクトの2以上の絶対位置情報とを用いて、移動体と1以上の各オブジェクトの相対的な位置関係が認識可能な三次元の図である出力図を構成する。
ここで、出力図とは、移動体と1以上の各オブジェクトの相対的な位置関係が認識可能な三次元の図である。出力図の具体例は後述する。なお、出力図構成部140が用いる移動体位置情報と絶対位置情報とは、同一の1以上の元情報群から取得された情報である。また、1以上の各オブジェクトの2以上の絶対位置情報とは、1以上の各オブジェクトの認識結果である、と言っても良い。
出力図構成部140は、2以上の各時点において、オブジェクト抽出部134が抽出した1以上のオブジェクトが含まれる図である出力図を構成する。
出力図構成部140は、移動体位置情報取得部132が取得した2以上の各時点における移動体位置情報により構成される移動体の移動軌跡を示す軌跡情報をも含まれる図である出力図を構成することは好適である。また、出力図構成部140は、オブジェクト識別子をも含む出力図を構成することは好適である。
出力部14は、オブジェクト認識部139が取得したオブジェクト識別子と、同一のオブジェクトの絶対位置情報とを出力する。
ここで、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
図出力部141は、出力図構成部140が構成した出力図を出力する。
オブジェクト識別子出力部142は、オブジェクト認識部139が取得したオブジェクト識別子を、同一のオブジェクトの絶対位置情報に対応する位置に出力する。なお、絶対位置情報に対応する位置とは、出力図上のオブジェクトに対応するような態様でオブジェクト識別子が出力されれば良く、広く解する。
格納部11、元情報格納部111、学習器格納部112、および対応表格納部113は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
格納部11等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部11等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部11等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部11等で記憶されるようになってもよい。
受付部12は、タッチパネルやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
処理部13、元情報取得部131、移動体位置情報取得部132、元情報蓄積部133、オブジェクト抽出部134、特徴量取得部135、絶対位置情報取得部136、同一オブジェクト認識部137、特徴量合成部138、オブジェクト認識部139、および出力図構成部140は、通常、MPUやメモリ等から実現され得る。処理部13等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
出力部14、図出力部141、およびオブジェクト識別子出力部142は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。出力部14等は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、情報処理装置1の動作について、図2のフローチャートを用いて説明する。
(ステップS201)受付部12は、動作開始指示を受け付けたか否かを判断する。動作開始指示を受け付けた場合はステップS202に行き、動作開始指示を受け付けなかった場合はステップS208に行く。
(ステップS202)処理部13は、カウンタiに1を代入する。
(ステップS203)元情報取得部131は、i番目の時点における元情報群を取得する。かかる元情報群を取得する元情報取得処理の例について、図3のフローチャートを用いて説明する。
(ステップS204)移動体位置情報取得部132は、i番目の時点における移動体位置情報を取得する。移動体位置情報取得処理の例について、図4のフローチャートを用いて説明する。なお、
(ステップS205)元情報蓄積部133は、ステップS203で取得された元情報群とステップS204で取得された移動体位置情報とを対応付けて、元情報格納部111に蓄積する。
(ステップS206)受付部12は、動作終了指示を受け付けたか否かを判断する。動作終了指示を受け付けた場合はステップS201に戻り、動作終了指示を受け付けなかった場合はステップS207に行く。
(ステップS207)処理部13は、カウンタiを1、インクリメントする。ステップS203に戻る。
(ステップS208)処理部13は、オブジェクト認識のタイミングであるか否かを判断する。オブジェクト認識のタイミングである場合はステップS209に行き、オブジェクト認識のタイミングでない場合はステップS214に行く。なお、オブジェクト認識のタイミングは、例えば、ユーザから指示を受け付けたこと、または予め決められた時刻になったこと等である。ただし、そのタイミングは問わない。
(ステップS209)処理部13は、カウンタiに1を代入する。
(ステップS210)処理部13は、i番目の時点の元情報群が元情報格納部111に存在するか否かを判断する。i番目の時点の元情報群が存在する場合はステップS211に行き、存在しない場合はステップS213に行く。
(ステップS211)オブジェクト抽出部134は、i番目の時点の元情報群を用いて、1以上のオブジェクトを抽出する。かかるオブジェクト抽出処理について、図5のフローチャートを用いて説明する。
(ステップS212)処理部13は、カウンタiを1、インクリメントする。ステップS210に戻る。
(ステップS213)処理部13は、オブジェクト認識処理を行う。ステップS201に戻る。なお、かかるオブジェクト認識処理について、図6のフローチャートを用いて説明する。
(ステップS214)受付部12は、出力指示を受け付けたか否かを判断する。出力指示を受け付けた場合はステップS215に行き、出力指示を受け付けなかった場合はステップS201に戻る。
(ステップS215)出力図構成部140は、出力図を構成する処理を行う。出力図構成処理について、図7のフローチャートを用いて説明する。
(ステップS216)図出力部141は、ステップS215で構成された出力図を出力する。ステップS201に戻る。
なお、図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS203の元情報取得処理の例について、図3のフローチャートを用いて説明する。
(ステップS301)元情報取得部131は、カウンタiに1を代入する。
(ステップS302)元情報取得部131は、i番目のレーザー発信手段が存在するか否かを判断する。i番目のレーザー発信手段が存在する場合はステップS303に行き、i番目のレーザー発信手段が存在しない場合はステップS307に行く。
(ステップS303)元情報取得部131は、i番目のレーザー発信手段のレーザー識別子を取得する。なお、レーザー識別子は、通常、格納部11に格納されている。
(ステップS304)元情報取得部131は、i番目のレーザー発信手段が発信したレーザーの戻り時間を取得する。なお、かかる処理は、LIDARの公知技術である。
(ステップS305)元情報取得部131は、ステップS303で取得したレーザー識別子とステップS304で取得した戻り時間とを有する元情報を構成する。なお、元情報取得部131は、レーザー識別子と戻り時間とから3次元座標値を算出し、当該3次元座標値を有する元情報を構成しても良い。かかる場合、元情報取得部131は、戻り時間から原点に対する距離を取得し、レーザー識別子に対応する原点に対する角度を取得し、当該距離と角度とから、原点に対する3次元座標値を算出する。かかる処理は公知技術である。また、レーザー識別子に対応付けて、原点に対する角度が、格納部11に格納されている。
(ステップS306)元情報取得部131は、カウンタiを1、インクリメントする。ステップS302に戻る。
(ステップS307)元情報取得部131は、この時点の元情報群を構成し、図示しないバッファに一時蓄積する。上位処理にリターンする。なお、元情報群は、ステップS305で構成された2以上の元情報の集合である。
なお、図3のフローチャートにおいて、この時点の元情報群は、例えば、一時点における移動体の周辺、360度(一周)分の元情報の集合であっても良いし、180度(正面)の分の元情報の集合であっても良い。取得される元情報群の、観測装置からの範囲(角度)は問わない。
また、図3のフローチャートにおいて、元情報取得部131は、移動体の周辺の1以上の距離画像を取得しても良い。
次に、ステップS203の移動体位置情報取得処理の例について、図4のフローチャートを用いて説明する。
(ステップS401)移動体位置情報取得部132は、元情報取得部131が取得した1以上の各元情報が有する3次元空間上の座標値の集合、または1以上の各元情報から取得される3次元空間上の座標値の集合から、1以上の特徴点を取得し、図示しないバッファに一時蓄積する。なお、特徴点は、3Dの座標値である。
(ステップS402)移動体位置情報取得部132は、図示しないバッファに、直前の時点の1以上の特徴点が格納されているか否かを判断する。1以上の特徴点が格納されている場合はステップS403に行き、格納されていない場合はステップS408に行く。
(ステップS403)移動体位置情報取得部132は、移動体位置情報取得部132は、図示しないバッファから、直前の時点の1以上の特徴点を読み出す。
(ステップS404)移動体位置情報取得部132は、ステップS401で取得した1以上の特徴点のうちのいずれか1以上の各特徴点に対応する特徴点であり、直前の時点の1以上の特徴点を決定する。
(ステップS405)移動体位置情報取得部132は、対応する2つの特徴点の差異である移動量を算出する。なお、対応する2つの特徴点は、ステップS401で取得した現時点の特徴点と、直前の時点の特徴点である。対応するとは、例えば、周辺の点の集合から構成される形状が類似し、距離が一定範囲に留まることである。また、ここで、移動量を算出するために使用する特徴点は、非動体のオブジェクトの特徴点である。また、移動体位置情報取得部132は、2以上の特徴点の組の差異を算出し、最も多い値の差異を移動量としても良い。なお、特徴点の組とは、対応する2つの特徴点である。
(ステップS406)移動体位置情報取得部132は、図示しないバッファから、直前の時点の移動体位置情報を読み出す。
(ステップS407)移動体位置情報取得部132は、ステップS406で読み出した移動体位置情報と、ステップS405で取得した移動量とから、現時点の移動体位置情報を算出する。上位処理にリターンする。
(ステップS408)移動体位置情報取得部132は、ステップS401で取得した1以上の特徴点に対して、原点を対応付ける。なお、原点は、開始時の移動体位置情報である。上位処理にリターンする。
次に、ステップS211のオブジェクト抽出処理について、図5のフローチャートを用いて説明する。
(ステップS501)オブジェクト抽出部134は、カウンタjに1を代入する。
(ステップS502)オブジェクト抽出部134は、着目する元情報群にj番目の元情報が存在するか否かを判断する。j番目の元情報が存在する場合はステップS503に行き、j番目の元情報が存在しない場合はステップS506に行く。
(ステップS503)オブジェクト抽出部134は、j番目の元情報と、着目する元情報群に対応する移動体位置情報とを用いて、絶対位置情報を取得する。なお、かかる絶対位置情報は、j番目の元情報に対応する絶対位置情報である。
(ステップS504)オブジェクト抽出部134は、着目する元情報群またはj番目の元情報または移動体位置情報に対応付けて、ステップS503で取得した絶対位置情報をバッファに蓄積する。なお、オブジェクト抽出部134は、絶対位置情報を格納部11等に蓄積しても良い。
(ステップS505)オブジェクト抽出部134は、カウンタjを1、インクリメントする。ステップS502に戻る。
(ステップS506)オブジェクト抽出部134は、カウンタkに1を代入する。
(ステップS507)オブジェクト抽出部134は、ステップS504で蓄積した絶対位置情報の中に、k番目の絶対位置情報が存在するか否かを判断する。k番目の絶対位置情報が存在する場合はステップS508に行き、k番目の絶対位置情報が存在しない場合は上位処理にリターンする。なお、k番目の絶対位置情報は、検出されたオブジェクトを構成しない絶対位置情報である。
(ステップS508)オブジェクト抽出部134は、ステップS504で蓄積した絶対位置情報の中から、k番目の絶対位置情報を取得する。
(ステップS509)オブジェクト抽出部134は、k番目の絶対位置情報とともに、一のオブジェクトを構成する1以上((N−1)個)の絶対位置情報を、ステップS504で蓄積した絶対位置情報の中から取得する。そして、オブジェクト抽出部134は、k番目の絶対位置情報と取得した1以上の絶対位置情報とを有する絶対位置情報群を取得する。なお、オブジェクト抽出部134は、k番目の絶対位置情報または一のオブジェクトを構成する他のいずれかの絶対位置情報が示す点との距離が閾値以内または閾値より小さい点を示す絶対位置情報を取得する。
(ステップS510)オブジェクト抽出部134は、ステップS509で取得した絶対位置情報群を構成するいずれかの絶対位置情報に対応する元情報のいずれかが、元情報群の中の端の位置の元情報であるか否かを判断する(つまり、オブジェクトのいずれかの点が元情報群の端の点であるか否かを判断する)。端の点が存在する場合はステップS511に行き、端の点が存在しない場合はステップS512に行く。
(ステップS511)オブジェクト抽出部134は、一のオブジェクトを構成する絶対位置情報群に対応付けて、「部分」を示すフラグを付加する。なお、「部分」を示すフラグとは、元情報群の中のオブジェクトは、当該一のオブジェクトの部分であり、全体ではないことを示すフラグである。
(ステップS512)オブジェクト抽出部134は、一のオブジェクトを構成する絶対位置情報群に対応付けて、「全体」を示すフラグを付加する。なお、「全体」を示すフラグとは、元情報群の中のオブジェクトは、当該一のオブジェクトの全体であることを示すフラグである。
(ステップS513)特徴量取得部135は、一のオブジェクトの絶対位置情報群を用いて、1または2以上の特徴量を取得し、当該絶対位置情報群に対応付けて蓄積する。
(ステップS514)オブジェクト抽出部134は、カウンタkにNを加える。ステップS507に戻る。
なお、図5のフローチャートの処理により、各時点の元情報群または絶対位置情報群に対応付けて、1以上の各オブジェクトを構成する2以上の絶対位置情報群が特定される。また、各オブジェクトに対応付けて、「部分」または「全体」を示すフラグが蓄積される。また、各オブジェクトに対応付けて、1または2以上の特徴量が蓄積された。
次に、ステップS213のオブジェクト認識処理について、図6のフローチャートを用いて説明する。
(ステップS601)処理部13は、カウンタiに1を代入する。
(ステップS602)処理部13は、カウンタjに1を代入する。
(ステップS603)同一オブジェクト認識部137は、j番目の時点における、i番目の未処理のオブジェクトが存在するか否かを判断する。i番目の未処理のオブジェクトが存在する場合はステップS604に行き、i番目の未処理のオブジェクトが存在しない場合はステップS612に行く。なお、未処理のオブジェクトとは、ステップS604またはステップS606で検出されていないオブジェクトである。
(ステップS604)同一オブジェクト認識部137は、i番目の未処理のオブジェクトに対応する絶対位置情報群と特徴量とを取得する。
(ステップS605)同一オブジェクト認識部137は、カウンタkにj+1を代入する。
(ステップS606)同一オブジェクト認識部137は、ステップS604で取得した絶対位置情報群と同一または近似する絶対位置情報群が、k番目の時点のオブジェクトの絶対位置情報群の中で存在するか否かを判断する。近似する絶対位置情報群が存在する場合はステップS607に行き、近似する絶対位置情報群が存在しない場合はステップS609に行く。近似する2つの絶対位置情報群は、同一のオブジェクトを特定する絶対位置情報群である。また、2つの絶対位置情報群が近似することは、2つの絶対位置情報群が同一のオブジェクトを構成する点群であることであり、例えば、2つの絶対位置情報群が示す3次元空間内の領域が閾値以上または閾値より多く重なること、各絶対位置情報群を構成する、対応する絶対位置情報の差異の絶対値の合計が閾値以下または閾値より小さいこと等である。
(ステップS607)同一オブジェクト認識部137は、ステップS606で近似すると判断された絶対位置情報群を取得する。また、特徴量合成部138は、当該絶対位置情報群と対になる1以上の特徴量を取得する。
(ステップS608)同一オブジェクト認識部137は、カウンタkを1、インクリメントする。ステップS606に戻る。
(ステップS609)特徴量合成部138は、同一のオブジェクトの絶対位置情報群から取得された2以上の特徴量であり、ステップS607で取得した2以上の特徴量を対応付けて、図示しないバッファに一時蓄積する。
(ステップS610)オブジェクト認識部139は、ステップS609で取得された2以上の特徴量を用いて、オブジェクト識別子を取得し、当該オブジェクトの1以上の絶対位置情報群と対にして、蓄積する。なお、ここで、オブジェクト認識部139は、例えば、学習器または対応表を用いてオブジェクト識別子を取得する。
(ステップS611)処理部13は、カウンタiを1、インクリメントする。ステップS603に戻る。
(ステップS612)処理部13は、カウンタjを1、インクリメントする。
(ステップS613)処理部13は、j番目の時点が存在するか否かを判断する。j番目の時点が存在する場合はステップS614に行き、j番目の時点が存在しない場合は上位処理にリターンする。
(ステップS614)処理部13は、カウンタiに1を代入する。ステップS603に戻る。
次に、ステップS215の出力図構成処理について、図7のフローチャートを用いて説明する。
(ステップS701)出力図構成部140は、受け付けられた出力指示が有する時点識別子を取得する。
(ステップS702)出力図構成部140は、時点識別子と対になる絶対位置情報群を取得する。
(ステップS703)出力図構成部140は、カウンタiに1を代入する。
(ステップS704)出力図構成部140は、ステップS702で取得した絶対位置情報群の中の絶対位置情報により特定されるi番目のオブジェクトが存在するか否かを判断する。存在する場合はステップS705に行き、存在しない場合は上位処理にリターンする。
(ステップS705)出力図構成部140は、i番目のオブジェクトに対応する絶対位置情報群を取得する。
(ステップS706)出力図構成部140は、ステップS705で取得した絶対位置情報群を用いて、i番目のオブジェクトを描画する。なお、出力図構成部140は、オブジェクトによって、絶対位置情報群を構成する絶対位置情報の点の色を変えて、オブジェクトを描画することは好適である。また、オブジェクトを描画することは、例えば、絶対位置情報群を構成する絶対位置情報の点を三次元空間内に配置することである。
(ステップS707)出力図構成部140は、i番目のオブジェクトのオブジェクト識別子を取得する。
(ステップS708)出力図構成部140は、ステップS707で取得したオブジェクト識別子を、i番目のオブジェクトに対応する絶対位置情報が示す位置に対応する領域に配置する。
(ステップS709)出力図構成部140は、カウンタiを1、インクリメントする。ステップS704に戻る。
なお、図7のフローチャートにおいて、出力図構成部140は、ステップS702で取得した絶対位置情報群を構成する各絶対位置情報を三次元空間内に配置し、出力図を構成しても良い。
以下、本実施の形態における情報処理装置1の具体的な動作について説明する。情報処理装置1の概念図は図8である。図8において、801は、情報処理装置1である。802は、LIDARであり、多数のレーザー発信手段を有する。802は、上述した観測装置である。また、情報処理装置1は、例えば、ロボット、または自動車、AGV(無人搬送車)等の移動体である。
また、観測装置802が移動体に搭載されて、街中を移動していく、とする。そして、観測装置802が移動していく中で、2以上の各時点の元情報群が元情報格納部111に蓄積された、とする。例えば、観測装置802が移動体に搭載されて、街中を移動していく中で、図9に示すように、観測タイミング「T1」および「T2」の時点で、2つの各時点の元情報群が元情報格納部111に蓄積された、とする。また、観測タイミング「T1」において、電柱のオブジェクト901は全体が観測され、観測タイミング「T2」において、電柱のオブジェクト902は部分のみが観測されることとなる。
また、対応表格納部113には、図10に示す対応表が管理されている、とする。対応表は、2以上の対応情報を有する。対応情報は、「オブジェクト識別子」「特徴量」を有する。「オブジェクト識別子」は、ここでは、オブジェクトの種類またはオブジェクトの名前である。「特徴量」は、ここでは、サイズ情報、形状情報を含む。「サイズ情報」は、幅の範囲、高さの範囲の情報である。また、「形状情報」は、ここでは、表面形状、三次元形状を含む。また、「表面形状」は、ここでは平滑度である。さらに、「三次元形状」は、形状の名称でも良いし、形状を示す画像でも良い。また、三次元形状は、例えば、3Dモデルのデータを表すものであるが、3Dモデルのデータそのものでも良く、そのデータ構造は問わない。
かかる状況において、ユーザは、オブジェクト認識の指示を情報処理装置1に入力した、とする。すると、受付部12は、オブジェクト認識の指示を受け付ける。そして、処理部13は、オブジェクト認識のタイミングであると判断する。
次に、オブジェクト抽出部134は、上述したオブジェクト抽出処理により、時点「T1」の元情報群から、901の電柱(全体)を抽出する。また、オブジェクト抽出部134は、上述したオブジェクト抽出処理により、時点「T2」の元情報群から、902の電柱(部分)を抽出する。また、特徴量取得部135は、電柱901の絶対位置情報群を用いて、上述した処理により、サイズ情報(幅:Xa,高さ:Ya)を取得した、とする。さらに、特徴量取得部135は、電柱902の絶対位置情報群を用いて、上述した処理により、表面形状(平滑度:Sa)を取得した、とする。なお、平滑度は、例えば、上述の三次元形状を構成する表面と、実際の点群との誤差の大きさとして算出される。
次に、同一オブジェクト認識部137は、上述したオブジェクト認識処理のうちの一部の処理により、電柱901と電柱902とは同じオブジェクトである、と認識する。
そして、特徴量合成部138は、電柱901のサイズ情報(幅:Xa,高さ:Ya)、電柱902の表面形状(平滑度:Sa)を取得する。なお、「Sa」は、「S2」以下である、とする。
次に、オブジェクト認識部139は、サイズ情報(幅:Xa,高さ:Ya)、表面形状(平滑度:Sa)に合致する対応情報を、図10の対応表から検索する。つまり、オブジェクト認識部139は、「ID=2」のレコードを検出する。次に、オブジェクト認識部139は、「ID=2」のレコードのオブジェクト識別子「電柱」を取得する。そして、オブジェクト認識部139は、当該オブジェクトの絶対位置情報群にオブジェクト識別子「電柱」を対応付けて蓄積する。
以上、本実施の形態によれば、移動体の周辺に存在するオブジェクトの特定の部分の3次元座標の集合である2以上の元情報群を用いて、オブジェクトを認識することが容易にできる。
なお、本実施の形態における出力図の例を図11に示す。出力図構成部140が構成し、図出力部141が出力した図である。図11では、オブジェクト識別子が配置されていないが、オブジェクト識別子が配置されることは好適である。また、図11の自己位置は、当該時点の移動体位置情報が示す位置である。
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、例えば、移動体の周辺に存在するオブジェクトの三次元空間における位置を特定する元になる情報であり、前記オブジェクトの特定の部分の3次元座標の集合である2以上の元情報である元情報群を、2以上の各時点の前記移動体の位置を示す移動体位置情報に対応付けて格納される元情報格納部にアクセス可能なコンピュータを、前記2以上の各時点に対応付けている元情報群を用いて、1以上のオブジェクトを抽出するオブジェクト抽出部と、前記2以上の各時点に対応付けている元情報群を用いて、前記オブジェクト抽出部が抽出した1以上の各オブジェクトの特徴量を取得する特徴量取得部と、前記2以上の各時点に対応付けている元情報群と前記2以上の各時点の移動体位置情報とを用いて、前記オブジェクト抽出部が抽出した1以上の各オブジェクトの絶対位置に関する絶対位置情報を取得する絶対位置情報取得部と、前記絶対位置情報取得部が取得した2以上の各時点ごと、1以上の各オブジェクトごとの絶対位置情報を用いて、2以上の異なる時点の同一のオブジェクトの対応を取る同一オブジェクト認識部と、前記同一オブジェクト認識部が対応を取った同一のオブジェクトの2以上の特徴量を取得し、当該2以上の特徴量を用いて、前記同一のオブジェクトの特徴量集合を取得する特徴量合成部と、前記特徴量合成部が取得した特徴量集合を用いて、前記同一のオブジェクトを識別するオブジェクト識別子を取得するオブジェクト認識部と、前記オブジェクト認識部が取得したオブジェクト識別子と、前記同一のオブジェクトの絶対位置情報とを出力する出力部として機能させるためのプログラムである。
図12は、本実施の形態におけるプログラムを実行して、情報処理装置1を実現するコンピュータシステム300の外観図である。
本実施の形態の各装置は、コンピュータハードウェアおよびその上で実行されるコンピュータプログラムによって実現され得る。図12において、コンピュータシステム300は、ディスクドライブ305を含むコンピュータ301と、キーボード302と、マウス303と、ディスプレイ304とを備える。なお、キーボード302やマウス303やディスプレイ304をも含むシステム全体をコンピュータと呼んでもよい。
図13は、コンピュータシステム300の内部構成の一例を示す図である。図13において、コンピュータ301は、MPU3013と、ブートアッププログラム等のプログラムを記憶するためのROM3015と、MPU3013等に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM3016と、アプリケーションプログラム、システムプログラム、およびデータを記憶するハードディスク3017と、MPU3013やROM3015等を相互に接続するバス3014と等を備える。
コンピュータシステム300に、情報処理装置1の機能を実行させるプログラムは、例えば、CD−ROM等のディスク3101に記憶されて、ディスクドライブ3012に挿入され、ハードディスク3017に転送されてもよい。これに代えて、そのプログラムは、ネットワークを介してコンピュータ301に送信され、ハードディスク3017に記憶されてもよい。プログラムは、実行の際にRAM3016にロードされる。なお、プログラムは、ハードディスク3016、またはネットワークから直接、ロードされてもよい。また、ハードディスク3016に代えて他の着脱可能な記録媒体(例えば、DVDやメモリカード等)を介して、プログラムがコンピュータシステム300に読み込まれてもよい。
プログラムは、コンピュータの詳細を示す901に、情報処理装置1の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能やモジュールを呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム300がどのように動作するのかについては周知であり、詳細な説明は省略する。なお、以上は例示であり、情報処理装置1を実現するコンピュータのハードウェア構成は問わない。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、各処理は、単一の装置によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることはいうまでもない。