(57)【要約】【課題】非常に短い間隔で撮像された画像に対してリアルタイムで３次元情報を高速に生成する。【解決手段】画像処理装置は、第１撮像部により連続的に撮影された複数の第１の画像と第２撮像部により連続的に撮影された複数の第２の画像と第１撮像部の姿勢情報とを受信し、第１及び第２の画像に基づき第１の３次元情報を算出し、第１の画像と第１の３次元情報と姿勢情報とに基づき第２の３次元情報を算出し、第１撮像部の姿勢情報に基づき、第１の３次元情報を算出するタイミングを制御し、第１の３次元情報又は第２の３次元情報を出力する。【選択図】図２Ｂ
2018022255.tif 000002
【特許請求の範囲】
【請求項１】
第１撮像部により連続的に撮影された複数の第１の画像と、第２撮像部により連続的に撮影された複数の第２の画像とを受信する第１の入力部と、
前記第１撮像部の姿勢情報を受信する第２の入力部と、
前記第１及び前記第２の画像に基づき第１の３次元情報を算出する第１の算出部と、
前記第１の画像と前記第１の３次元情報と前記姿勢情報とに基づき第２の３次元情報を算出する第２の算出部と、
前記姿勢情報に基づき、前記第１の３次元情報を算出するタイミングを制御する制御部と
前記第１の３次元情報又は前記第２の３次元情報を出力する出力部
とを備えることを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記制御部が前記姿勢情報より生成される前記撮像部の動きの度合いを示す評価値が所定閾値を超えると判断した場合、前記第１の算出部は新たな前記第１の３次元情報を算出し、前記出力部は前記新たな第１の３次元情報を出力し、
前記制御部が前記評価値が前記所定閾値を超えないと判断した場合、前記第２の算出部は新たな前記第２の３次元情報を算出し、前記出力部は前記新たな第２の３次元情報を出力する
ことを特徴とする画像処理装置。
【請求項３】
請求項２に記載の画像処理装置であって、
前記制御部が、前記評価値が前記所定閾値を超えず、前記第１の算出部が最新の前記第１の３次元情報を算出してから所定期間が経過したと判断した場合、前記第１の算出部は新たな前記第１の３次元情報を算出し、前記出力部は前記新たな第１の３次元情報を出力する
ことを特徴とする画像処理装置。
【請求項４】
請求項３に記載の画像処理装置であって、
前記制御部は、
所定時間における前記回転３軸の回転角及び並列３軸の位置の差分値が第１の閾値よりも高いという条件を満たす場合の評価値を満たさない場合の評価値よりも高く設定し、
連続した複数の所定時間における前記回転３軸の回転角及び並列３軸の位置の全ての差分値が第２の閾値以内という条件を満たす場合の評価値を満たさない場合の評価値よりも高く設定し、
所定時間における前記回転３軸の回転角及び並列３軸の位置の差分値の符号が反転するという条件を満たす場合の評価値を満たさない場合の評価値よりも高く設定する
ことを特徴とする画像処理装置。
【請求項５】
第１撮像部により連続的に撮影された複数の第１の画像と、第２撮像部により連続的に撮影された複数の第２の画像と、前記第１撮像部の姿勢情報とを受信し、
前記第１及び前記第２の画像に基づき第１の３次元情報を算出し、
前記第１の画像と前記第１の３次元情報と前記姿勢情報とに基づき第２の３次元情報を算出し、
前記姿勢情報に基づき、前記第１の３次元情報を算出するタイミングを制御し
前記第１の３次元情報又は前記第２の３次元情報を出力する
ことを特徴とする画像処理方法。
【請求項６】
請求項５に記載の画像処理方法であって、
前記制御部が前記姿勢情報より生成される前記撮像部の動きの度合いを示す評価値が所定閾値を超えると判断した場合、前記第１の算出部は新たな前記第１の３次元情報を算出し、前記出力部は前記新たな第１の３次元情報を出力し、
前記制御部が前記評価値が前記所定閾値を超えないと判断した場合、前記第２の算出部は新たな前記第２の３次元情報を算出し、前記出力部は前記新たな第２の３次元情報を出力する
ことを特徴とする画像処理方法。
【請求項７】
請求項６に記載の画像処理方法であって、
前記制御部が、前記評価値が前記所定閾値を超えず、前記第１の算出部が最新の前記第１の３次元情報を算出してから所定期間が経過したと判断した場合、前記第１の算出部は新たな前記第１の３次元情報を算出し、前記出力部は前記新たな第１の３次元情報を出力する
ことを特徴とする画像処理方法。
【請求項８】
請求項７に記載の画像処理方法であって、
所定時間における前記回転３軸の回転角及び並列３軸の位置の差分値が第１の閾値よりも高いという条件を満たす場合の評価値を満たさない場合の評価値よりも高く設定し、
連続した複数の所定時間における前記回転３軸の回転角及び並列３軸の位置の全ての差分値が第２の閾値以内という条件を満たす場合の評価値を満たさない場合の評価値よりも高く設定し、
所定時間における前記回転３軸の回転角及び並列３軸の位置の差分値の符号が反転するという条件を満たす場合の評価値を満たさない場合の評価値よりも高く設定する
ことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び画像処理方法に関する。特に、多視点画像を用いて３次元情報を生成する画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
近年、カメラで撮影された画像を解析し、画像に含まれる物体の３次元位置をより正確に求める研究が盛んである。例えば、特許文献１では、１台のカメラから入力された複数の時系列画像から、特徴点を検出し、各特徴点の３次元位置、特徴量、各画像内位置、各フレームにおけるカメラの位置と姿勢を算出し、検出された特徴点の数など３種類の評価値を算出し、算出された評価値が所定の条件を満たす場合のみＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）処理に適用する画像群として選択することで精度の高い３次元情報の生成を行う情報処理装置が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許０５０１２６１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の発明では、評価値の算出に特徴点を検出するなどの処理が必要である。この処理は、画像全体を走査して処理するため、一般的に長い処理時間を要する。したがって、非常に短い間隔で撮像された画像を用いて３次元情報を生成しようとした場合、評価値の算出中に撮影された画像の一部は、飛ばされてしまうという問題があった。
【０００５】
本発明は、上記のような課題を解決するためになされたものであり、非常に短い間隔で撮像された画像に対して３次元情報を高速に生成する３次元情報算出装置や３次元情報算出方法の提供を目的とする。
【課題を解決するための手段】
【０００６】
本発明の形態に係る３次元情報算出装置は、第１撮像部により連続的に撮影された複数の第１の画像と、第２撮像部により連続的に撮影された複数の第２の画像とを受信する第１の入力部と、前記第１撮像部の姿勢情報を受信する第２の入力部と、前記第１及び前記第２の画像に基づき第１の３次元情報を算出する第１の算出部と、前記第１の画像と前記第１の３次元情報と前記姿勢情報とに基づき第２の３次元情報を算出する第２の算出部と、前記姿勢情報に基づき、前記第１の３次元情報を算出するタイミングを制御する制御部と前記第１の３次元情報又は前記第２の３次元情報を出力する出力部とを備える。
【発明の効果】
【０００７】
本発明による３次元情報算出装置は、非常に短い間隔で撮像された画像に対して３次元情報を高速に生成できる。
【図面の簡単な説明】
【０００８】
【図１Ａ】自律移動装置の構成を示すブロック図である。
【図１Ｂ】情報処理装置の構成を示すブロック図である。
【図２Ａ】情報処理装置の機能構成を示すブロック図である。
【図２Ｂ】３次元情報算出部の機能構成を示すブロック図である。
【図３】３次元情報を算出する処理を示すフローチャートである。
【図４】物体検出装置の動作例を示すタイミングチャートである。
【図５】評価値の算出する処理を示すフローチャートである。
【図６】第２の３次元情報を算出する処理を示すフローチャートである。
【図７】第２の３次元情報を算出する処理を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態を、図面を用いて説明する。なお、各図面において、同一の符号が付されている構成要素は同一の機能を有することとする。
【００１０】
図１Ａは、自律移動装置の構成を示すブロック図である。自律移動装置１は、物体検出装置２と、自律移動装置１を自律的に移動させる自律移動システム１５０、表示装置１４０と通信を行う送受信装置１２６と、を備える。自律移動装置としては、例えば、ステレオカメラを搭載した自動車などが想定される。
【００１１】
物体検出装置２は、自律移動装置２の周囲を撮影する第１カメラ１２１、および第２カメラ１２２と、内界測定装置１２９と、第１カメラ１２１が撮影して得られた画像を取り込む第１画像入力部１２１Ａと、第２カメラ１２２が撮影して得られた画像を取り込む第２画像入力部１２２Ａと、内界測定装置１２９の出力を取り込む内界情報入力部１２９Ａと、第１画像入力部１２１Ａおよび第２画像入力部１２２Ａから取り込まれた画像を処理する情報処理装置１２５とを備える。第１画像入力部１２１Ａと、第２画像入力部１２２Ａと、内界情報入力部１２９Ａと、情報処理装置１２５と、送受信装置１２６とは、内部バスにより接続されており、相互に情報を授受する。
【００１２】
第１カメラ１２１、および第２カメラ１２２は、自律移動装置１の周囲を撮影し、撮影して得られた画像を、それぞれ第１画像入力部１２１Ａ、および第２画像入力部１２２Ａに出力する。後述するように、第１画像入力部１２１Ａから入力される画像が主に使用され、第２画像入力部１２２Ａから入力される画像は、三次元位置を算出される際に使用される。
【００１３】
自律移動システム１５０は、物体検出装置２を自律的に移動させるシステムであり、たとえば、外界測定装置で自律移動システム１５０の外部（実環境）における相対位置や絶対位置を計測し、モータと車輪とから構成される移動機構を制御して、計測された位置に基づいて目標位置まで移動する。また、物体検出装置１が物体を検出すると、その物体を避けるように移動する。
【００１４】
情報処理装置１２５は、第１カメラ１２１、および第２カメラ１２２で撮影して得られた画像を処理して、自律移動装置１の前方の物体を検出する。情報処理装置１２５の構成は後述する。
【００１５】
送受信装置１２６は、表示装置１４０と無線による通信を行う。送受信装置１２６は、ユーザによる表示装置１４０から自律移動装置１への指令を受信し、情報処理装置１２５の処理結果を表示装置１４０へ出力する。
【００１６】
内界測定装置１２９は、たとえば、ジャイロセンサを備える。ジャイロセンサは、第１カメラ１２１の位置と姿勢情報算出に必要な値、すなわち回転３軸の角速度、および並進３軸の加速度を計測する。内界測定装置１２９は、測定値を内界情報入力部１２９Ａに出力する。
【００１７】
表示装置１４０は、例えば、通信機能やＧＵＩ機能付きの表示画面を有する端末である。
【００１８】
図１Ｂは、情報処理装置１２５の構成を示すブロック図である。
【００１９】
情報処理装置１２５は、ＣＰＵ１３１と、主記憶部１３２と、補助記憶部１３３と、バス１３４とを備える。ＣＰＵ１３１と、主記憶部１３２と、補助記憶部１３３とは、バス１３４により接続され、相互にデータの送受信が行われる。
【００２０】
ＣＰＵ１３１は、主記憶部１３２または補助記憶部１３３に格納されているプログラムを読み出す。ＣＰＵ１３１は、演算を実行し、主記憶部１３２や補助記憶部１３３や機構制御部１２３に演算結果を出力する。 
主記憶部１３２は、ランダムアクセスメモリにより構成される。主記憶部１３２には、ＣＰＵ１３１によって実行されるプログラムや、ＣＰＵ１３１によって実行される演算結果や、情報処理装置１２５で利用される３次元情報や姿勢情報などが保存される。主記憶部１３２には、第１画像入力部１２１Ａや第２画像入力部１２２Ａが取得した画像が過去画像として一定数保存される。主記憶部１３２には、３次元情報や姿勢情報も保存される。
【００２１】
補助記憶部１３３には、ＣＰＵ１３１によって実行されるプログラムや、ＣＰＵ１３１によって実行される演算の結果や、情報処理装置１２５で利用される設定情報が格納される。補助記憶部１３３は、特に、主記憶部１３２に格納しきれないデータの格納や、電源遮断された状態でもデータを保持する目的で使用される。補助記憶部１３３は、たとえば、ハードディスクドライブなどの磁気ディスクドライブ、あるいはフラッシュメモリ等の不揮発性メモリ等を、単体あるいは複数組み合わせて構成される。
【００２２】
＜情報処理装置の機能ブロック＞
図２Ａは、情報処理装置１２５のＣＰＵ１３１が主記憶部１３２に格納される処理プログラムを実行することで実現される機能構成を示すブロック図である。情報処理装置１２５は、３次元情報算出部２０１、および姿勢情報算出部２０２を備える。３次元情報算出部２０１は、第１画像入力部１２１Ａ、および第２画像入力部１２２Ａから入力された画像と姿勢情報算出装置２０２から入力された姿勢を用いて３次元情報を出力する。詳しくは後述する。
【００２３】
姿勢情報算出部２０２は、内界情報入力部１２９Ａから内界測定装置１２９の測定値および、これらの測定値から算出される第１のカメラ１２１の位置と姿勢情報を出力する。例えば、並進３軸における基準からの位置と、回転３軸における基準からの回転角を出力する。
【００２４】
＜物体検出部の詳細＞
図２Ｂは、３次元情報算出部２０１の機能構成を示すブロック図である。３次元情報算出部２０１は、第１の３次元情報算出部２１１と、第２の３次元算出部２１２と、３次元情報算出制御部２１３と、３次元情報記憶装置２１５、とを備える。
【００２５】
第１の３次元情報算出部２１１は、画像内の各画素に対応する３次元情報を、第１カメラ１２１が取得した第１画像と第２カメラ１２２が取得した第２画像間の対応点探索処理によって算出する。
【００２６】
第２の３次元情報算出部２１２は、姿勢情報算出部２０２が算出した姿勢情報と、３次元情報記憶装置２１５に保存されている１つ前のタイミングで算出された３次元情報と、第１カメラ１２１が取得した第１画像を用いて、３次元情報を算出する。第２の３次元情報算出部２１２は、第１の３次元情報算出部２１１の処理と比較して計算量が低いものとする。
【００２７】
３次元情報算出制御部２１３は、第１の第１の３次元情報算出部２１１の実行開始タイミングを制御し、かつ、第１の３次元情報算出部２１１が算出した３次元情報と、第２の３次元情報算出部２１２が算出した３次元情報のどちらを最終的な出力とするため、セレクタ２１４に信号を送る。
【００２８】
セレクタ２１４は、３次元情報算出制御部２１３からの信号を受けて、第１の３次元情報算出部２１１が算出した３次元情報と、第２の３次元情報算出部２１２が算出した３次元情報の出力を切り替える。
【００２９】
３次元情報記憶装置２１５は、不揮発性メモリにより構成される。３次元情報記憶装置２１５には、１タイミング前の３次元情報が保存される。保存された３次元情報は、第２の３次元情報算出部２１２の３次元情報算出に用いられる。
【００３０】
＜フローチャート＞
図３〜６を参照して、物体検出装置２のあるタイミングにおける処理の流れ、すなわち自律移動装置１が３次元情報を算出する処理の流れを説明する。
【００３１】
図３は物体検出装置２の情報処理装置１２５が実行するプログラムの動作を表すフローチャートである。以下に説明するこのフローチャートの実行主体は、情報処理装置１２５のＣＰＵ１３１である。
【００３２】
第１カメラ１２１、および第２カメラ１２２は所定時間ごとに、自律移動装置１の周囲を撮影し、画像を取得する。内界測定装置１２９は所定時間ごとに、位置と姿勢情報の算出に必要な計測値、すなわち回転３軸の角速度、および並進３軸の加速度を取得する。第１カメラの自律移動装置１の周囲を撮影し、情報処理装置１２５は、第１カメラ１２１、および第２カメラ１２２が撮影を行い、内界測定装置１２９がデータを取得すると、以下のプログラムを実行する。
【００３３】
ステップＳ３０１において、情報処理装置１２５は、第１画像入力部１２１Ａ、および第２画像入力部１２２Ａを用いて、第１カメラ１２１および第２カメラ１２２から最新の撮影画像を取得し、ステップＳ３０２に進む。以後、第１画像入力部１２１Ａが取得した最新の画像を最新第１画像、第２画像入力部１２２Ａが取得した最新の画像を最新第２画像、と呼ぶ。
【００３４】
ステップＳ３０２において、情報処理装置１２５は、内界情報入力部１２９Ａを用いて、内界測定装置１２９から計測値、すなわち回転３軸の角速度、および並進３軸の加速度を取得し、姿勢情報算出部２０２が、取得された回転３軸の角速度、および並進３軸の加速度から初期位置などの基準からの現在の回転３軸の回転角、および並進３軸の位置を算出し、ステップＳ３０３に進む。
【００３５】
ステップＳ３０３において、３次元情報記憶装置２１５に１つ前のタイミングの３次元情報が保存されているか否かを確認する。確認の結果、３次元情報がある場合（Ｓ３０３，Ｙ）は、ステップＳ３０４に進む。３次元情報がない場合（Ｓ３０３，Ｎ）は、ステップＳ３０５Ａに進む。
【００３６】
ステップＳ３０４において、第２の３次元情報算出部２１２が３次元情報を算出し、ステップＳ３０５に進む。
【００３７】
ステップＳ３０５において、第１の３次元情報算出部２１１が３次元情報の算出を実行しているかどうかを確認する。確認の結果、３次元情報の算出を実行中の場合（Ｓ３０５，Ｙ）は、ステップＳ３１２に進む。３次元情報の算出を実行していない場合（Ｓ３０５，Ｎ）は、ステップＳ３０６に進む。
【００３８】
ステップＳ３０５Ａにおいて、第１の３次元情報算出部２１１が３次元情報の算出を実行しているかどうかを確認する。確認の結果、３次元情報の算出を実行中の場合（Ｓ３０５Ａ，Ｙ）は、処理を終了する。３次元情報の算出を実行していない場合（Ｓ３０５Ａ，Ｎ）は、ステップＳ３０９に進む。
【００３９】
ステップＳ３０６において、３次元情報算出制御部２１３が姿勢情報についての評価値を算出し、ステップＳ３０７に進む。評価値の算出フローの詳細は後述する。
【００４０】
ステップＳ３０７において、算出された評価値と予め設定されたしきい値Ｔより大きい場合、ステップＳ３０９に進む。算出された評価値と予め設定されたしきい値Ｔ以下の場合、ステップＳ３０８に進む。
【００４１】
ステップＳ３０８において、遅延回数Ｐ２Ｔが予め設定されたしきい値Ｔｏより大きい場合、ステップＳ３０９に進む。遅延回数Ｐ２Ｔが予め設定されたしきい値Ｔｏ以下の場合、ステップＳ３１０に進む。遅延回数Ｐ２Ｔは、第１の３次元情報の算出するタイミングを遅らせた回数を表す変数であり、ステップＳ３０８では、第１の３次元情報の算出するタイミングがしきい値Ｔo以上遅れた場合に、ステップＳ３０９に進み、第１の３次元情報算出部２１１が３次元情報の算出を開始する。
【００４２】
ステップＳ３１０において、遅延回数Ｐ２Ｔをインクリメントし、ステップＳ３１２に進む。
【００４３】
ステップＳ３０９において、第１の３次元情報算出部２１１が３次元情報の算出を開始し、３次元情報の算出の完了を待つことなく、ステップＳ３１０に進む。
【００４４】
ステップＳ３１１において、遅延回数Ｐ２Ｔをゼロに設定し、ステップＳ３１２に進む。
【００４５】
ステップＳ３１２において、セレクタ２１４に入力された制御信号に基づいて、出力する３次元情報を選択し、プログラムを終了する。
【００４６】
上述のように、評価値がしきい値よりも低い場合、自律移動装置の動きが少なく、すなわちカメラが撮影する対象物体が大きくずれていない場合、新たに取得した多視点画像から生成された３次元情報に代わり、以前に生成した３次元情報と新たに取得した単視点画像とカメラの姿勢情報とに基づき生成された３次元情報が出力される。以前に生成した３次元情報を利用して新たな３次元情報を生成する場合、画像の特徴点の抽出処理が不要になるため、非常に短い間隔で撮影された画像に合わせた３次元情報の生成が可能になる。これにより、例えば、ステレオカメラを搭載した自動車での物体検知の精度を向上させることができる。  図４は、図３の各ステップを実行する際のデータフローの一例をタイミングチャートで説明する図である。以下、各タイミングにおける関連する一連の動作毎のデータフローを説明する。
【００４７】
＜画像取得と姿勢情報算出＞
まず、第１画像入力部１２１Ａと第２画像入力部１２２Ａにおける画像取得（Ｓ３０１）のデータフローについて説明する。 
図４に示すように、一定のタイミングで、ステップＳ３０１が実行され、第１のカメラ１２１と第２のカメラ１２２が前方の空間を撮影し、第１画像入力部１２１Ａが第１画像（Ｉａ）を取得し、第２画像入力部１２２Ａが第２画像（Ｉb）を取得する。画像が取得されるタイミングと同じタイミングでステップＳ３０２が実行され、姿勢情報算出部２０２が現在の回転３軸の回転角、および並進３軸（Ｐ）の位置を算出する（Ｓ３０２）。
【００４８】
＜第１の３次元情報算出＞
第１の３次元情報算出部２１１における３次元情報算出の際のデータフロー（Ｓ３０3、Ｓ３０５、Ｓ３０５Ａ、Ｓ３０６−Ｓ３０９）について説明する。
【００４９】
まず、処理を開始したタイミングｔaでの動作について説明する。ステップＳ３０3が実行され、このタイミングでは３次元情報がないため、ステップＳ３０５Ａに進む。次にステップＳ３０5Ａが実行され、第１の３次元情報の算出が実行されていないため、ステップＳ３０９に進む。ステップＳ３０９が実行され、第１の３次元情報算出部２１１が３次元情報の算出を開始する（Ｃ０）。
【００５０】
続いて、第１の３次元情報の算出が開始されたタイミングｔa+1からｔa+4までの動作について説明する。タイミングｔa+1からタイミングｔa+4までは、３次元情報がないため、ステップＳ３０3からステップＳ３０5Ａに進む。ステップＳ３０5Ａが実行され、第１の３次元情報算出部２１１が３次元情報を算出中のため、処理を終了する。図４ではタイミングta+5の直前に第１の３次元情報算出が完了し、タイミングta+5の段階で３次元情報（Ｗ0）が得られている。
【００５１】
続いて、タイミングta+5での動作について説明する。タイミングta+5では、ステップＳ３０3が実行され、３次元情報（Ｗ０）が得られていることから、ステップＳ３０4に進む。ステップＳ３０4を実行後、ステップＳ３０５に進む。ステップＳ３０５が実行され、第１の３次元情報算出は完了しているため、ステップＳ３０６に進む。ステップＳ３０６が実行され、３次元情報算出制御部２１３が姿勢情報の評価値を算出し、ステップＳ３０7に進む。ステップ３０７が実行され、算出された評価値が所定のしきい値以下のため、ステップＳ３０8に進む。ステップＳ３０８が実行され、遅延回数Ｐ２Ｔは０であり、Ｔｏ（＝４）より小さいため、ステップＳ３１０に進む。ステップＳ３１０が実行され、遅延回数Ｐ２Ｔがインクリメントされ、１になる。
【００５２】
続いて、タイミングta+6での動作について説明する。タイミングta+6では、ステップＳ３０3が実行され、３次元情報（Ｗ１）が得られていることから、ステップＳ３０4に進む。ステップＳ３０4を実行後、ステップＳ３０５に進む。ステップＳ３０５が実行され、第１の３次元情報算出は完了しているため、ステップＳ３０６に進む。ステップＳ３０６が実行され、３次元情報算出制御部２１３が姿勢情報の評価値を算出し、ステップＳ３０7に進む。ステップ３０７が実行され、算出された評価値が所定のしきい値以上のため、ステップＳ３０９に進む。ステップＳ３０９が実行され、第１の３次元情報算出部２１１が３次元情報の算出を開始し（Ｃ６）、ステップＳ３１１に進む。ステップＳ３１1が実行され、遅延回数Ｐ２Ｔを０にセットし、処理を終了する。
【００５３】
続いて、タイミングｔa+7からｔa+10での動作について説明する。タイミングｔa+7からタイミングｔa+10までは、３次元情報（Ｗ１〜Ｗ５）が得られていることから、ステップＳ３０3からステップＳ３０4に進む。ステップＳ３０4を実行後、ステップＳ３０５に進む。ステップＳ３０５が実行され、第１の３次元情報算出部２１１が３次元情報を算出中のため、ステップＳ３１2に進み、ステップＳ３１2を実行後、処理を終了する。図４ではタイミングta+11の直前に第１の３次元情報算出が完了し、タイミングta+11の段階で３次元情報（Ｗ6）が得られている。
【００５４】
続いて、タイミングta+11からta+14での動作について説明する。タイミングta+11からta+14では、ステップＳ３０3が実行され、３次元情報（Ｗ６）が得られていることから、ステップＳ３０4に進む。ステップＳ３０4を実行後、ステップＳ３０５に進む。ステップＳ３０５が実行され、第１の３次元情報算出は完了しているため、ステップＳ３０６に進む。ステップＳ３０６が実行され、３次元情報算出制御部２１３が姿勢情報の評価値を算出し、ステップＳ３０7に進む。ステップ３０７が実行され、算出された評価値が所定のしきい値以下のため、ステップＳ３０8に進む。ステップＳ３０８が実行され、遅延回数Ｐ２ＴがＴｏ（＝４）より小さいため、ステップＳ３１０に進む。ステップＳ３１０が実行され、遅延回数Ｐ２Ｔがインクリメントされる。
【００５５】
続いて、タイミングta+15での動作について説明する。タイミングta+15では、ステップＳ３０3が実行され、３次元情報が得られていることから、ステップＳ３０4に進む。ステップＳ３０4を実行後、ステップＳ３０５に進む。ステップＳ３０５が実行され、第１の３次元情報算出は完了しているため、ステップＳ３０６に進む。ステップＳ３０６が実行され、３次元情報算出制御部２１３が姿勢情報の評価値を算出し、ステップＳ３０7に進む。ステップ３０７が実行され、算出された評価値が所定のしきい値以下のため、ステップＳ３０8に進む。ステップＳ３０８が実行され、遅延回数Ｐ２Ｔは４であり、Ｔｏ（＝４）以上のため、ステップＳ３０９に進む。ステップＳ３０９が実行され、第１の３次元情報算出部２１１が３次元情報の算出を開始し（Ｃ１５）、ステップＳ３１１に進む。ステップＳ３１1が実行され、遅延回数Ｐ２Ｔを０にセットし、処理を終了する。
＜第２の３次元情報算出＞
第２の３次元情報算出部２１２が３次元情報を算出するＳ３０４のデータフローについて説明する。
【００５６】
図４に示すように、ステップＳ３０４は、３次元情報が得られはじめたタイミングta+5から実行され、毎タイミングで実行される。その処理に利用される画像は、初めて３次元情報が得られるまでの遅延タイミング数（４）前の第１画像を用いる。タイミングta+5においてはタイミングta+1での第１画像を使用する。
【００５７】
＜出力３次元情報の選択＞
セレクタ２１４が入力された制御信号に基づいて出力する３次元情報を選択するフロー（Ｓ３１２）について説明する。
【００５８】
３次元情報算出制御部２１３は、第１の３次元情報算出部２１１によって得られた３次元情報を優先して出力するように信号を生成する。図４ではタイミングta+5、ta+１１において第１の３次元情報算出部２１１から３次元情報が出力されており、そのときにはセレクタ２１４への制御信号を０に設定される。それ以外のタイミングではセレクタ２１４への制御信号は１に設定される。
【００５９】
図５は、３次元情報算出制御部２１３において評価値を算出するフローチャートである。
【００６０】
ステップＳ５０１において、３次元情報算出制御部２１３は、姿勢情報算出部２０２が算出した現在の位置と姿勢情報、すなわち回転３軸の回転角、および並進３軸の位置と、前回の処理タイミングにおける姿勢情報、すなわち回転３軸の回転角、および並進３軸の位置の差分を算出し、ステップＳ５０２に進む。
【００６１】
ステップＳ５０２において、３次元情報算出制御部２１３は評価値を０に設定し、ステップＳ５０３に進む。
【００６２】
ステップＳ５０３において、３次元情報算出制御部２１３は、算出された姿勢情報、すなわち回転３軸、および並進３軸の差分値がすべて所定の値以内を満たす場合（Ｓ５０３，Ｙ）、ステップＳ５０５に進む。算出された姿勢情報と位置、すなわち回転３軸の回転角、および並進３軸の位置の差分値がすべて所定の値以内を満たさない場合（Ｓ５０３，Ｎ）、ステップＳ５０４に進む。ここで、閾値となる所定の値は、回転３軸と並進３軸の６つのパラメータそれぞれに設定するものとする。
【００６３】
ステップＳ５０４において、３次元情報算出制御部２１３は、直前のＮ個の姿勢すなわち回転３軸、および並進３軸の加速度がすべて所定の値以内を満たす場合（Ｓ５０４，Ｙ）、ステップＳ５０７に進む。直前のＮ個の姿勢情報、すなわち回転３軸の回転角、および並進３軸の位置の差分値がすべて所定の値以内を満たさない場合（Ｓ５０４，Ｎ）、ステップＳ５０６に進む。
【００６４】
ステップＳ５０５において、３次元情報算出制御部２１３は、評価値を２に設定し、プログラムを終了する。
【００６５】
ステップＳ５０６において、３次元情報算出制御部２１３は、姿勢すなわち回転３軸の回転角、および並進３軸の位置の差分値がの現在と直前で符号が反転したことを満たす場合（Ｓ５０６，Ｙ）、ステップＳ５０８に進む。姿勢情報、すなわち回転３軸の回転角、および並進３軸の位置の差分値が現在と直前で符号が反転したことを満たさない場合（Ｓ５０６，Ｎ）、ステップＳ５０９に進む。
【００６６】
ステップＳ５０７において、３次元情報算出制御部２１３は、評価値を４に設定し、プログラムを終了する。
【００６７】
ステップＳ５０８において、３次元情報算出制御部２１３は、評価値を８に設定し、プログラムを終了する。
【００６８】
ステップＳ５０９において、３次元情報算出制御部２１３は、評価値を６に設定し、プログラムを終了する。  以上の処理により、カメラの動きの度合い、すなわち、カメラの撮影対象の物体の動きの度合いによって、評価値に重み付けがされる。この評価値に応じて、負荷の高い多視点画像の生成有無が判断される。評価値が所定の閾値より低い場合、すなわち、カメラの撮影対象の物体の動きが少ないと判断された場合は、以前に生成した３次元情報を利用して新たな３次元情報を生成することで、３次元情報生成にかかる時間を削減することが可能になる。
【００６９】
図６、図７は第２の３次元情報算出部２１２の動作を表すフローチャートである。以下に説明するこのフローチャートの実行主体は、情報処理装置１２５のＣＰＵ１３１である。
【００７０】
ステップＳ６０１において、第２の３次元情報算出部２１２は、直前に算出された３次元情報を取得し、ステップＳ６０２に進む。以降の説明では、直前に算出された３次元情報を第１の３次元情報と称する。
【００７１】
ステップＳ６０２において、第１の３次元情報から物体を検出し、検出された物体ごとに第１の３次元情報を分割し、ステップＳ６０３に進む。
【００７２】
ステップＳ６０３において、姿勢情報算出部２０２から現在の位置・姿勢情報を入力し、ステップＳ６０４に進む。
【００７３】
ステップＳ６０４において、入力された位置の移動ベクトルと角度の差分ベクトルを算出し、ステップＳ６０５に進む。
【００７４】
ステップＳ６０５において、ステップＳ６０４で算出された位置の移動ベクトルと角度の差分ベクトルを用いて、物体ごとに第１の３次元情報を平行移動・回転し、ステップＳ６０６に進む。以降の説明では、ステップＳ６０５において得られた３次元情報を第２の３次元情報と称する。
【００７５】
ステップＳ６０６において、物体ごとに第１の３次元情報をカメラ１２１の仮想的な撮像平面上に投影し、第１の２次元点を算出し、ステップＳ６０７に進む。
【００７６】
ステップＳ６０７において、物体ごとの第１の２次元点に対して画像特徴量を算出し、ステップＳ６１０に進む。以降の説明では、ステップＳ６０７において算出された画像特徴量を第１の画像特徴量と称する。
【００７７】
ステップＳ６０８において、物体ごとに第２の３次元情報をカメラ１２１の仮想的な撮像平面上に投影し、第２の２次元点を算出し、ステップＳ６０７に進む。
【００７８】
ステップＳ６０９において、物体ごとの第２の２次元点に対して画像特徴量を算出し、ステップＳ６１０に進む。以降の説明では、ステップＳ６０９において算出された画像特徴量を第２の画像特徴量と称する。
【００７９】
ステップＳ６１０において、物体ごとに第１の画像特徴量と第２の画像特徴量の距離を算出し、ステップＳ６１１に進む。ステップＳ６１１以降は物体ごとに処理される。
【００８０】
ステップＳ６１１において、処理対象の物体を選択し、選択された物体に対する画像特徴量の距離が所定のしきい値Ｔより大きい場合は、ステップＳ６１２に進む。一方、選択された物体に対する画像特徴量の距離が所定のしきい値Ｔ以下の場合は、ステップＳ６１７に進む。
【００８１】
ステップＳ６１２において、ステップＳ６１３の処理した回数（シフト回数）が所定のしきい値Ｓより大きい場合は、ステップＳ６２１に進む。一方、ステップＳ６１３の処理した回数（シフト回数）が所定のしきい値Ｓ以下の場合は、ステップＳ６１３に進む。
【００８２】
ステップＳ６１３において、処理対象の物体の第２の２次元点をシフト回数と関連付けられた場所にシフトし、ステップＳ６１４に進む。
【００８３】
ステップＳ６１４において、シフト回数をインクリメントし、ステップＳ６１５に進む。
【００８４】
ステップＳ６１５において、処理対象の物体のシフト後の第２の２次元点に対して画像特徴量を算出し、ステップＳ６１６に進む。
【００８５】
ステップＳ６１６において、処理対象の物体の第１の画像特徴量とシフト後の第２の画像特徴量の距離を算出し、ステップＳ６１１に進む。
【００８６】
ステップＳ６１７において、Ｓ６１３の処理した回数（シフト回数）が０であった場合、ステップＳ６１８に進む。一方、Ｓ６１３の処理した回数（シフト回数）が０でない場合、ステップＳ６１９に進む。
【００８７】
ステップＳ６１８において、処理対象の物体の第２の３次元情報を出力される３次元情報に統合し、ステップＳ６２１に進む。
【００８８】
ステップＳ６１９において、処理対象の物体の第１の２次元点と第２の２次元点の対応関係から、３次元情報を算出し、ステップＳ６２０に進む。以降の説明では、ステップＳ６１９で算出された３次元情報を第３の３次元情報と称する。
【００８９】
ステップＳ６２０において、処理対象の物体の第３の３次元情報を出力される３次元情報に統合し、ステップＳ６２１に進む。
【００９０】
ステップＳ６２１において、全ての物体についてＳ６１１以降の処理が完了していれば、３次元情報算出部２１２の処理を終了する。一方、Ｓ６１１以降の処理されていない物体が存在するならば、それらの中の１つを選択し、Ｓ６１１に進む。
【００９１】
以上の処理及び構成により、非常に短い間隔で撮影された画像に合わせて３次元情報を高速に生成することが可能になる。
【００９２】
本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。上記実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることもできる。また、ある実施形態の構成に他の実施形態の構成を加えることもできる。また、各実施形態の構成の一部について、他の構成を追加・削除・置換することもできる。
【００９３】
上記各構成、機能、処理部、処理手段等は、それらの一部や全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に格納することができる。
【符号の説明】
【００９４】
２：物体検出装置
１２１：第１のカメラ
１２２：第２のカメラ
１２５：情報処理装置
１２６：送受信装置
１２９：内界測定装置
１４０：表示装置
１５０：自律移動システム
２１１：第１の３次元情報算出部
２１２：第２の３次元情報算出部
２１３：３次元情報算出制御
２１５：３次元情報記憶装置
１：自律移動装置
【図１Ａ】
2018022255.tif 000003
【図１Ｂ】
2018022255.tif 000004
【図２Ａ】
2018022255.tif 000005
【図２Ｂ】
2018022255.tif 000006
【図３】
2018022255.tif 000007
【図４】
2018022255.tif 000008
【図５】
2018022255.tif 000009
【図６】
2018022255.tif 000010
【図７】
2018022255.tif 000011