(57)【要約】  ステレオカメラシステムにおいて、対応点位置の認識誤差に対しロバストなセルフキャリブレーションを実現する。  複数のカメラそれぞれが撮影した画像の組のうち少なくとも１枚から、無限遠の物体のみが存在する領域を抽出し、その領域内の対応点を無限遠対応点として検出し、それ以外の対応点を一般対応点とし、無限遠対応点を用いて各カメラ間の相対姿勢を同定し、同定した相対姿勢と一般対応点を用いて各カメラ間の相対位置を同定することによりセルフキャリブレーションを行う。
2013145025.tif 000002
【特許請求の範囲】
【請求項１】
複数の撮像部と、
前記複数の撮像部それぞれが撮影した画像を用いて前記複数の撮像部間の相対姿勢及び相対位置を特定する演算部と、を有するステレオカメラシステムであって、
前記演算部は、
前記複数の撮像部それぞれが撮影した画像の組のうち少なくとも１枚から、無限遠の物体が投影されている領域を無限遠領域として抽出し、
前記画像の組から対応する点の組を対応点として検出し、
前記無限遠領域に含まれる前記対応点を無限遠対応点として検出し、
前記無限遠領域に含まれない前記対応点を一般対応点として検出し、
前記無限遠対応点を用いて前記複数の撮像部間の相対姿勢を特定し、
前記一般対応点と前記特定された相対姿勢とを用いて、前記複数の撮像部間の相対位置を特定するステレオカメラシステム。
【請求項２】
請求項１に記載のステレオカメラシステムであって、
前記撮像部が撮像可能な無限遠の物体を表すテンプレートを保持する記録部を有し、
前記演算部は、前記テンプレートに基づいて、前記画像の組のうち少なくとも１枚から前記テンプレートが表す無限遠の物体が投影されている領域を前記無限遠領域として抽出するステレオカメラシステム。
【請求項３】
請求項１に記載のステレオカメラシステムであって、
前記記録部は地図情報を記録し、
前記演算部は前記撮像部が撮像した物体までの距離を前記地図情報を用いて算出し、前記距離が所定値を超える物体が投影されている領域を前記無限遠領域として抽出するステレオカメラシステム。
【請求項４】
請求項１に記載のステレオカメラシステムであって、
複数の光波長における空の輝度値の範囲と雲の輝度値の範囲を記録する記録部を有し、
前記演算部は、
前記画像の各画素における複数の光波長の輝度値と、前記空の輝度値の範囲と前記雲の輝度値の範囲とを比較し、
前記画像の組のうち少なくとも１枚から雲を含む空が投影されている領域を前記無限遠領域として抽出するステレオカメラシステム。
【請求項５】
請求項１に記載のステレオカメラシステムであって、
前記演算部は、前記特定された相対姿勢及び相対位置を用いて、前記複数の撮像部が撮像する被写体の３次元位置を算出するステレオカメラシステム。
【請求項６】
複数の撮像部と、
前記複数の撮像部それぞれが撮影した画像を用いて前記複数の撮像部間の相対姿勢及び相対位置を特定する演算部と、
駆動部と、を有する移動体であって、
前記演算部は、
前記複数の撮像部それぞれが撮影した画像の組のうち少なくとも１枚から、無限遠の物体が投影されている領域を無限遠領域として抽出し、
前記画像の組から対応する点の組を対応点として検出し、
前記無限遠領域に含まれる前記対応点を無限遠対応点として検出し、
前記無限遠領域に含まれない前記対応点を一般対応点として検出し、
前記無限遠対応点を用いて前記複数の撮像部間の相対姿勢を特定し、
前記一般対応点と前記特定された相対姿勢とを用いて、前記複数の撮像部間の相対位置を特定し、
前記特定された相対姿勢及び相対位置を用いて、前記複数の撮像部が撮像する被写体の３次元位置を算出し、
前記被写体の３次元位置に基づき前記移動体の走行経路を算出して前記駆動部を制御し、
前記駆動部は、前記制御に基づいて前記移動体を移動させる移動体。
【請求項７】
請求項６に記載の移動体であって、
前記撮像部が撮像可能な無限遠の物体を表すテンプレートを保持する記録部を有し、
前記演算部は、前記テンプレートに基づいて、前記画像の組のうち少なくとも１枚から前記テンプレートが表す無限遠の物体が投影されている領域を前記無限遠領域として抽出する移動体。
【請求項８】
請求項６に記載の移動体であって、
前記記録部は地図情報を記録し、
前記演算部は前記撮像部が撮像した物体までの距離を前記地図情報を用いて算出し、前記距離が所定値を超える物体が投影されている領域を前記無限遠領域として抽出する移動体。
【請求項９】
請求項６に記載の移動体であって、
複数の光波長における空の輝度値の範囲と雲の輝度値の範囲を記録する記録部を有し、
前記演算部は、
前記画像の各画素における複数の光波長の輝度値と、前記空の輝度値の範囲と前記雲の輝度値の範囲とを比較し、
前記画像の組のうち少なくとも１枚から雲を含む空が投影されている領域を前記無限遠領域として抽出する移動体。
【請求項１０】
請求項６に記載の移動体であって、
前記移動体の加速度を計測する揺動検知部を有し、
前記演算部は、
前記計測された加速度が所定の基準値を超えた場合に、記録部に記録されている前記無限遠対応点及び一般対応点を消去し、
前記無限遠対応点及び一般対応点を再度検出し、
前記再度検出した無限遠対応点及び一般対応点を用いて前記複数の撮像部間の相対姿勢及び相対位置を特定する移動体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２台以上のカメラで被写体を撮影することによりその被写体の３次元位置を認識するステレオカメラシステム、及びそれを搭載する移動体に関する。
【背景技術】
【０００２】
２台以上のカメラで同一の被写体を撮影することによりその被写体の３次元位置を認識するシステムはステレオカメラシステムとして知られている。今後、自動車や建設機械などの車両にステレオカメラシステムを搭載することにより、車両の自動操縦機能や操作支援機能が実現可能になると期待されている。【０００３】
３次元位置を正しく認識するためには、ステレオカメラシステムの内部パラメータと外部パラメータを正確に同定する必要がある。これを校正あるいはキャリブレーションと呼ぶ。内部パラメータとは個々のカメラの焦点距離、画像中心位置、レンズ歪みを指し、外部パラメータとは各カメラ間の相対位置姿勢を指す。事前に精度良くキャリブレーションする方法として、チェッカーパターンを持つ平面など幾何形状が既知の物体を撮影する方法が広く採用されている。【０００４】
ただし、ステレオカメラシステムの運用中において、ステレオカメラシステムへの物理的な衝撃が影響し外部パラメータが変化することがある。そのため、運用中における外部パラメータの再校正が必要となるが、運用中に形状既知の物体を準備し撮影することは作業コストが掛かる。そのため、運用中に撮影した画像を利用して外部パラメータを自動的に校正することが要求されており、これをセルフキャリブレーションと呼ぶ。【０００５】
セルフキャリブレーションの従来技術として、非特許文献１には、各カメラによって同時に撮影された画像から同一の点を表す組を対応点として複数組抽出し、それらの対応点の画像上の位置を用いて推定した基礎行列を特異値分解することで外部パラメータを求める手法が記載されている。また、特許文献１には、外部パラメータが変化しても被写体までの距離計測を可能にする手法として、未校正状態で求めた視差分布から視差の補正量を算出する手法が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０９−１３３５２５号公報
【非特許文献】
【０００７】
【非特許文献１】基礎行列の分解：焦点距離の直接的表現（著：金谷健一他、情報処理学会研究報告、２０００−ＣＶＩＭ−１２０−７、２０００年１月２０日、ｐｐ．４９−５６）
【非特許文献２】詳解  ＯｐｅｎＣＶ―コンピュータビジョンライブラリを使った画像処理・認識（著：Ｇａｒｙ  Ｂｒａｄｓｋｉ他、株式会社オライリー・ジャパン、２００９年８月２４日、ｐｐ．３２２−３４３、ｐｐ．４０９−４１０、ｐｐ．４３８−４６２）
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ここで、被写体となる物体とステレオカメラシステムとの距離の大小によって、ステレオカメラシステムによる撮影結果と外部パラメータとの関係は異なってくる。例えば、水平画角５０度で水平方向画素数１０００のカメラでは５ｋｍ先の物体の分解能は２．３ｍ程度である。そのため、完全に同一方向を向いている２カメラの距離が１ｍ程度の場合、５ｋｍ以上遠方の物体を撮影してもほぼ同一の撮影結果が得られる。このように、撮影結果がカメラ間の相対位置に依存しないほどの距離に被写体がある場合、その距離は無限遠とみなすことができ、無限遠にある物体の撮影結果はカメラ間の相対姿勢のみに依存する。このことから、無限遠の物体のみでは相対位置を同定することはできない。逆に、相対姿勢を同定する際には無限遠の物体のみを用いた方が、対応点位置の認識誤差に対しロバスト性が高くなる。このように、本発明者らは、セルフキャリブレーションにおいては、無限遠の物体とそれ以外の物体とを区別して取り扱うことに着目した。【０００９】
非特許文献１に記載の手法は、無限遠の物体とそれ以外の物体とを区別して取り扱っておらず、相対位置と相対姿勢を同時に求めている。そのため、対応点の画像上の位置の認識誤差に対し、ロバスト性の低い手法となっている。【００１０】
また、特許文献１に記載の手法では、運用中はほぼ正しい距離計測が可能な状態を常に保っていることを想定し、校正前の状態で各被写体までの距離に関係する視差を求め、その視差に基づき無限遠の物体を識別し、無限遠の物体の視差から全被写体に共通する視差の補正値を決定する。無限遠の物体に着目した手法ではあるが、外部パラメータそのものを求めていないため精度が低い。さらに、強い衝撃などで外部パラメータが突如大きく変化する際には、無限遠物体の認識に誤りが発生し、低精度な校正結果となるなどロバスト性にも問題がある。【００１１】
以上に記述したように、外部パラメータの変化に対応するための従来手法は、自動あるいは半自動システムを構築するためにはロバスト性が不十分である。そこで、本発明は、対応点位置の認識誤差に対しロバストなセルフキャリブレーションが可能なステレオカメラシステムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、下記のとおりである。【００１３】
複数の撮像部と、複数の撮像部それぞれが撮影した画像を用いて複数の撮像部間の相対姿勢及び相対位置を特定する演算部と、を有するステレオカメラシステムである。演算部は、複数の撮像部それぞれが撮影した画像の組のうち少なくとも１枚から、無限遠の物体が投影されている領域を無限遠領域として抽出し、画像の組から対応する点の組を対応点として検出し、無限遠領域に含まれる対応点を無限遠対応点として検出し、無限遠領域に含まれない対応点を一般対応点として検出し、無限遠対応点を用いて複数の撮像部間の相対姿勢を特定し、一般対応点と特定された相対姿勢とを用いて、複数の撮像部間の相対位置を特定する。
【発明の効果】
【００１４】
本発明のステレオカメラシステムによれば、対応点位置の認識誤差に対しロバストなセルフキャリブレーションが行われる。
【図面の簡単な説明】
【００１５】
【図１】実施例１におけるステレオカメラシステムの構成例を表す模式図である。
【図２】実施例１における記憶部に格納される情報の構成例を表す模式図である。
【図３】実施例１における記憶部が格納する共通情報の構成例を表す模式図である。
【図４】実施例１における演算部の処理例を説明するフローチャートである。
【図５】実施例１における各撮像部が同時に撮影した画像の組の例を表す模式図である。
【図６】実施例１における特定無限遠物体のテンプレートの例を表す模式図である。
【図７】実施例１における予め特定した無限遠物体が投影されている領域を無限遠領域として画像から抽出した結果の例を表す模式図である。
【図８】実施例１における画像から対応点を検出した結果の例を表す模式図である。
【図９】実施例１における画像上の対応点を分類した結果の例を表す模式図である。
【図１０】実施例２における記憶部に格納される情報の構成例を表す模式図である。
【図１１】実施例２における各撮像部が同時に撮影した画像の組の例を表す模式図である。
【図１２】実施例２における空・雲領域を無限遠領域として画像から抽出した結果の例を表す模式図である。
【図１３】実施例２における画像から対応点を検出した結果の例を表す模式図である。
【図１４】実施例２における画像上の対応点を分類した結果の例を表す模式図である。
【図１５】実施例３における車両の構成例を表す模式図である。
【図１６】実施例３における記憶部に格納される情報の構成例を表す模式図である。
【図１７】実施例３における演算部の処理例を説明するフローチャートである。
【図１８】実施例４における車両の構成例を表す模式図である。
【図１９】実施例４における記憶部に格納される情報の構成例を表す模式図である。
【図２０】実施例４における演算部の処理例を説明するフローチャートである。
【発明を実施するための形態】
【００１６】
以下、実施例を説明する。
【実施例１】
【００１７】
本実施例では、被写体の３次元位置を出力するステレオカメラシステム１００ａの例を説明する。【００１８】
図１は、本実施例におけるステレオカメラシステム１００ａの構成例を表す模式図である。ステレオカメラシステム１００ａは、複数の撮像部１０１（１０１ａ、１０１ｂ）、演算部１０２、記憶部１０３を備え、ユーザ１０からの指令に基づき被写体の３次元位置を取得し、ユーザ１０に提供する。【００１９】
撮像部１０１は自身の視野内に存在する被写体を撮影する機器であり、モノクロームカメラ、カラーカメラ、赤外線カメラ、ハイパースペクトルカメラなどとして実装される。各撮像部１０１は同一の被写体を撮影できるような相対位置姿勢関係にある。なお、本実施例では撮像部が２台の例を示したが、３台以上でもよい。【００２０】
演算部１０２は、ユーザ１０からの指令の理解、撮像部１０１の制御、記憶部１０３の制御、被写体の３次元位置の算出、セルフキャリブレーションにおける演算処理、算出した被写体３次元位置のユーザ１０への提供を行い、ＣＰＵとＲＡＭの組合せとして実装される。演算部１０２は役割毎に分けられた複数のＣＰＵ及びＲＡＭで構成されていても良い。また、演算部１０２は各撮像部１０１に同期を取るための信号を送る。これにより、各撮像部１０１は同時に同一の被写体を撮影することが可能となる。ＣＰＵは、記憶部１０３に記録されている各種プログラムをＲＡＭに読み出して実行することにより、後述する各種機能を実現する。【００２１】
記憶部１０３は外部記憶装置であり、ハードディスク、フレキシブルディスク、ＵＳＢメモリなどとして実装され、演算部１０２からの指令に基づき、情報の読出し、変更、追加、削除を行う。【００２２】
図２は、本実施例の記憶部１０３に格納される情報の構成例を表す模式図である。記憶部１０３は、共通情報１０４、特定無限遠物体領域抽出プログラム１４０、特定無限遠物体テンプレート１０７を格納する。【００２３】
また、図３は、全実施例の記憶部１０３が共通して格納する共通情報１０４の構成例を表す模式図である。【００２４】
記憶部１０３は、ユーザ１０や撮像部１０１との通信プロトコル（１１１〜１１３）、撮像部１０１の制御プログラム（１１４、１１５）、セルフキャリブレーションにおける各要素機能を実行するためのプログラム（１１６〜１２０）、被写体３次元位置算出プログラム（１２１）、セルフキャリブレーションにおける各種判定基準（１２２〜１２４）、各撮像部１０１の内部パラメータ（１２５、１２６）、各撮像部１０１間の外部パラメータ１２７、演算部１０２が検出した対応点（１０９、１１０）とその検出した日時（１２８、１２９）、前回セルフキャリブレーションを実行した日時（１３０）を格納する。共通情報１０４は、実施例１における記憶部１０３に格納される情報のうち、無限遠領域抽出プログラム及びその判定基準以外の情報である。【００２５】
ユーザ１０は、被写体３次元位置を必要とする他のコンピュータであり、通信用ケーブルを介してステレオカメラシステム１００と繋がっている。ユーザ１０の例として、自動車や建設機械を被写体３次元位置に基づき制御するコンピュータが挙げられる。ユーザ１０は、予め定められた通信プロトコルに基づき、ステレオカメラシステム１００に対し被写体３次元位置取得開始及び終了の指令、セルフキャリブレーション実行の指令を与え、ステレオカメラシステム１００から被写体３次元位置を受け取る。ユーザ１０は、開始指令を与えてから終了指令を与えるまで、被写体３次元位置を受け取り続ける。【００２６】
図４は、本実施例における演算部１０２の処理例を説明するフローチャートである。本フローチャートは、演算部１０２がユーザ１０から開始指令を受けた状態から始まっている。まず、演算部１０２は、記憶部１０３に格納されている各撮像部１０１との通信プロトコル及び各撮像部１０１の制御プログラムに基づき、各撮像部１０１に同期信号と共に撮影命令を与え、各撮像部１０１が同時に撮影した画像１０５の組を取得する（Ｓ１０１）。ここで、画像１０５を撮影した日時を記録し、ＲＡＭに保持しておく。【００２７】
図５は、実施例１における各撮像部１０１が同時に撮影した画像の組の例を表す模式図である。撮像部１０１ａで撮影された画像１０５ａと撮像部１０１ｂで撮影された画像１０５ｂには、共通の被写体が撮影されている。【００２８】
続いて、演算部１０２は、取得した画像１０５の組のうち少なくともどれか１枚を対象として、無限遠の物体のみが投影されている領域を無限遠領域１０６として抽出する（Ｓ１０２）。この抽出には無限遠領域が存在するか否かの判定も含まれており、無限遠領域１０６が抽出されない場合があっても良い。実施例１では、ステレオカメラシステム１００ａが運用される地域から撮像部１０１が撮影可能な無限遠の物体を予め特定しておき、その特定無限遠物体を表すテンプレート１０７を記憶部１０３に予め保持させておき、演算部１０２は、そのテンプレート１０７と記憶部１０３に予め保存されている特定無限遠物体領域抽出プログラムに基づき、特定無限遠物体が投影されている領域を無限遠領域１０６として抽出する。【００２９】
図６は、実施例１における特定無限遠物体のテンプレート１０７（１０７ａ、１０７ｂ）の例を表す模式図である。図６のように、テンプレート１０７を複数用意しても良い。複数用意することにより、無限遠に存在する物体が投影されている領域であるにもかかわらず無限遠領域１０６として抽出されない、という現象を回避し易くなる。テンプレート１０７は、ステレオカメラシステム１００ａの運用前に、撮像部１０１で撮影した画像から特定無限遠物体が投影されている領域を切り出すことで予め準備することができる。【００３０】
図７は実施例１における画像１０５ａから特定無限遠物体領域を無限遠領域１０６（１０６ａ、１０６ｂ）として抽出した結果の例を表す模式図である。特定無限遠物体領域抽出プログラムでは、画像１０５ａ上でテンプレート１０７を移動させ、テンプレート１０７と重なっている領域の輝度分布が一致したとき、その領域を特定無限遠物体領域として抽出する。【００３１】
ここで、注目した物体が無限遠とみなすことが可能か否かを判定する際に、ステレオカメラが運用される地域の地図情報を用いても良い。地図情報は予め記憶部１０３に格納されている。撮像した物体とステレオカメラシステム１００ａが運用される地域との距離を算出し、その距離が所定値を超える場合、撮像した物体が無限遠とみなす。これにより、撮像した物体を無限遠とみなすことが可能か否かを容易に判定できる。【００３２】
続いて、演算部１０２は、記憶部１０３に保存されている対応点検出プログラム１１６に基づき、画像１０５の組に共通して投影されている同一点の組を対応点１０８として検出する（Ｓ１０３）。図８は、実施例１における画像１０５から対応点１０８（１０８ａ、１０８ｂ）を検出した結果の例を表す模式図である。検出方法の一例として、画像１０５の組のうちの１枚１０５ａに対し、輝度値Ｉの２次微分の行列に基づきコーナーを抽出し、そのコーナーを含む微小領域を他の画像から検索する方法が考えられる。画像の横方向をｘ、縦方向をｙとすると、画像上の点｛ｕ，ｖ｝における２次微分の行列は数１で表現される。【００３３】
【数１】
2013145025.tif 000003
この２次微分の行列の２つ固有値のうち小さい方の固有値が、予め記憶部１０３に保存されているコーナー判定の基準よりも大きい場合、画像上の点｛ｕ，ｖ｝をコーナーとして抽出する。この方法に関しては非特許文献２のｐｐ．３２２〜３４３に詳しい説明が記載されている。通常は、数十個程度の対応点１０８が検出されるが、全く検出されない場合があっても良い。対応点１０８が検出されなかった場合は、Ｓ１０４とＳ１０５の処理は省略される。【００３４】
そして、演算部１０２は、対応点分類プログラム１１７に基づき、対応点１０８を無限遠対応点１０９と一般対応点１１０に分類する（Ｓ１０４）。【００３５】
図９は、実施例１における対応点１０８を分類した結果の例を表す模式図である。検出した対応点１０８のうちの無限遠領域１０６の抽出（Ｓ１０２）で利用された画像１０５ａ上での点が無限遠領域１０６に含まれている場合、その対応点を無限遠対応点１０９とし、それ以外の対応点を一般対応点１１０とする。【００３６】
ここで、これらの対応点１０８は画像中心位置やレンズ歪みによって歪められている。演算部１０２は、記憶部１０３に格納されている各撮像部１０１の内部パラメータと対応点補正プログラム１１８に基づき、検出した対応点１０８の各画像１０５での点を補正する（Ｓ１０５）。例えば、内部パラメータは、焦点距離｛ｆｘ，ｆｙ｝、画像中心位置｛ｃｘ，ｃｙ｝、歪みパラメータ｛ｋ１，ｋ２，ｋ３，ｐ１，ｐ２｝で表現することができる。画像の幅をｗ、画像の高さをｈとするとき、歪んだ画像上の点の座標｛ｕｄ，ｖｄ｝と補正後の画像上の点の座標｛ｕｐ，ｖｐ｝との関係は数２で表現することができる。【００３７】
【数２】
2013145025.tif 000004
数２は｛ｕｐ，ｖｐ｝に関する連立７次方程式であり、｛ｕｐ，ｖｐ｝が｛ｕｄ，ｖｄ｝の近傍であることを利用すると、ニュートン法を用いることで｛ｕｐ，ｖｐ｝を求めることができる。【００３８】
対応点１０８を補正した後、演算部１０２は、それらの対応点１０８の記憶部１０３への保存と、予め記憶部１０３に格納してある対応点削除判定の共通基準に基づき古い対応点の削除を行う（Ｓ１０６）。まず、対応点１０８の保存の際、ＲＡＭに保持しておいた画像１０５の取得日時を対応点取得日時とし、対応点１０８と対応点取得日時を対として保存する。全ての対応点１０８を保存し終えたら、ＲＡＭに保持しておいた画像１０５の取得日時を削除する。【００３９】
対応点１０８の削除方法の例として、対応点１０８の個数の上限を対応点削除判定の共通基準として予め定め、対応点１０８の追加によりその上限を超えた分だけ古い順に削除する方法がある。撮像部１０１の外部パラメータは経時変化することから、古い対応点１０８よりも新しい対応点１０８の方が現在の外部パラメータ推定に適している。この方法により、セルフキャリブレーションをロバストに行うために必要な対応点１０８の個数を保ちつつ、常に最新の対応点１０８を用いてキャリブレーションを行うことができる。【００４０】
また、対応点１０８の削除方法の別の例として、対応点１０８の保存期間の上限を対応点削除判定の共通基準として予め定めておき、保存期間が過ぎている対応点１０８を削除する方法が考えられる。この方法により、長期間使用していなかったステレオカメラシステム１００を使用する際に、過去に使用していた頃に取得した対応点１０８を利用せずに新規に取得した対応点１０８のみを用いてセルフキャリブレーションをすることが可能となる。【００４１】
続いて、演算部１０２は、記憶部１０３に保存してあるキャリブレーション実行判定の共通基準に基づき、セルフキャリブレーションが必要か否か、及び、セルフキャリブレーションが可能か否かを判定する（Ｓ１０７）。不要あるいは不可と判定された場合は、Ｓ１０８〜Ｓ１１０の作業は省略される。【００４２】
必要か否かの判定方法の例として、セルフキャリブレーションを行った際にその日時を記憶部１０３に記録し、キャリブレーション実行判定の共通基準としてセルフキャリブレーションを必要としない期間を予め定めておき、その期間が過ぎた場合にセルフキャリブレーションが必要と判断する方法が考えられる。この方法により、事前に測定した各撮像部１０１間の外部パラメータの経時変化率に基づき、経時変化が許容範囲を超える可能性のある期間毎にセルフキャリブレーションを実行させることができる。【００４３】
他の判定方法の例として、ユーザ１０からのセルフキャリブレーションの要求指令があった場合にセルフキャリブレーションが必要と判断する方法もある。例えば、ステレオカメラシステム１００に大きな衝撃が加わった際に、その事実をユーザ１０が認識できる場合において、この方法により、ユーザ１０は即座にステレオカメラシステム１００にセルフキャリブレーションを実行させることができるようになる。【００４４】
また、可能か否かの判定方法の例として、対応点１０８の個数の下限をキャリブレーション実行判定の共通基準として予め定めておき、記憶部１０３に保存されている対応点１０８の個数が下限を上回っている場合にセルフキャリブレーションが可能と判断する方法がある。対応点１０８が少ない場合、その画像１０５上の位置の誤差がキャリブレーション結果に大きく影響を与え、キャリブレーション以前よりも外部パラメータの精度を悪化させることが起こり得るが、この方法により、対応点１０８の数が少ない場合はセルフキャリブレーションを実行せずに、この現象を回避することができるようになる。【００４５】
Ｓ１０７にてセルフキャリブレーションが必要かつ可能と判断された場合、演算部１０２は、まず、記憶部１０３に保存されている無限遠対応点１０９と相対姿勢同定プログラム１１９に基づき、各撮像部１０１間の相対姿勢を同定する（Ｓ１０８）。例えば、記憶部１０３に無限遠対応点１０９がｎ個保存され、ｉ番目の無限遠対応点１０９ｉのうち、撮像部１０１ａが撮影した画像１０５ａに関連付けられる点の座標が｛ｕａｉ，ｖａｉ｝、撮像部１０１ｂが撮影した画像１０５ｂに関連付けられる点の座標が｛ｕｂｉ，ｖｂｉ｝と表現されるとする。撮像部１０１ａの焦点距離を｛ｆｘａ，ｆｙａ｝、画像の幅をｗａ、画像の高さをｈａとし、撮像部１０１ｂの焦点距離を｛ｆｘｂ，ｆｙｂ｝、画像の幅をｗｂ、画像の高さをｈｂとするとき、無限遠対応点１０９ｉと撮像部１０１間の相対姿勢Ｒとの関係は数３で表現できる。【００４６】
【数３】
2013145025.tif 000005
まず、η１〜η８に関する２×ｎ本の連立方程式を最小２乗法などで解き、その後に相対姿勢Ｒを求めることができる。ここで求めた相対姿勢ＲをＲｏｄｒｉｇｕｅｓ変換により３パラメータ｛ｒｘ，ｒｙ，ｒｚ｝の軸−強度表現に変換し、その軸−強度表現からさらにＲｏｄｒｉｇｕｅｓ変換して行列表現に戻したものを相対姿勢Ｒとしても良く、これにより相対姿勢Ｒは回転行列の特性を過不足無く含むことができる。Ｒｏｄｒｉｇｕｅｓ変換について、行列表現Ｒから軸−強度表現｛ｒｘ，ｒｙ，ｒｚ｝への変換は数４で、その逆の変換は数５で表され、非特許文献２のｐｐ．４０９〜４１０に詳しい説明が記載されている。【００４７】
【数４】
2013145025.tif 000006
【００４８】
【数５】
2013145025.tif 000007
撮像部１０１が３台以上で構成されている場合は、２台の撮像部１０１の組合せ全てに対して相対姿勢Ｒを求める。【００４９】
続いて、演算部１０２は、Ｓ１０８にて同定した相対姿勢Ｒと記憶部１０３に保存されている一般対応点１１０と相対位置同定プログラム１２０に基づき、各撮像部１０１間の相対位置を同定する（Ｓ１０９）。例えば、記憶部１０３に一般対応点１１０がｍ個保存され、ｊ番目の一般対応点１１０ｊのうち、撮像部１０１ａが撮影した画像１０５ａに関連付けられる点の座標が｛ｕａｊ，ｖａｊ｝、撮像部１０１ｂが撮影した画像１０５ｂに関連付けられる点の座標が｛ｕｂｊ，ｖｂｊ｝と表現されるとする。このとき、一般対応点１１０ｉと撮像部１０１間の相対位置｛Ｔｘ，Ｔｙ，Ｔｚ｝の関係は数６で表現できる。【００５０】
【数６】
2013145025.tif 000008
数６は相対位置｛Ｔｘ，Ｔｙ，Ｔｚ｝に関するｍ本の連立方程式であり、最小２乗法などで解くことができる。撮像部１０１が３台以上で構成されている場合は、２台の撮像部１０１の組み合わせ全てに対して相対位置｛Ｔｘ，Ｔｙ，Ｔｚ｝を求める。外部パラメータの同定後、演算部１０２は、記憶部１０３に保存している外部パラメータを更新する（Ｓ１１０）。【００５１】
これらの後、演算部１０２は、画像１０５の組と記憶部１０３に保存されている内部パラメータ、外部パラメータ、被写体３次元位置算出プログラム１２１に基づき、被写体の３次元位置を算出する（Ｓ１１１）。算出方法の例として、各撮像部１０１の内部パラメータを用いた画像１０５の組の歪み補正と、外部パラメータが存在する状態でのＢｏｕｇｕｅｔのアルゴリズムによるステレオ平行化処理と、ブロックマッチングによるステレオ対応点探索を段階的に行い、得られたステレオ対応点の組の視差と撮像部１０１間相対位置｛Ｔｘ，Ｔｙ，Ｔｚ｝に基づき、そのステレオ対応点が表す被写体の３次元位置を算出する方法がある。この方法において、画像１０５の組の歪み補正では数２に基づき補正後の画像の組を作成し、ステレオ並行化処理では撮像部１０１間の相対姿勢Ｒと相対位置｛Ｔｘ，Ｔｙ，Ｔｚ｝に基づき補正後の画像の組をそれぞれ透視投影変換する。また、ステレオ対応点探索では、画像１０５ａを変換して得られた画像上の全ての点について小さいウィンドウを切り出し、画像１０５ｂを変換して得られた画像の同じ行において先ほど切り出したウィンドウと一致する点が存在するかを探索し、一致した点をステレオ対応点として抽出する。これらの手法は非特許文献２のｐｐ．４３８〜４６２に詳しい説明が記載されている。【００５２】
演算部１０２は、この算出結果を、記憶部１０３に保存されているユーザ１０との通信プロトコルに基づき、ユーザ１０へ提供する（Ｓ１１２）。最後に、演算部１０２は、ユーザ１０からの終了指令の有無を確認し（Ｓ１１３）、終了指令があった場合はフローを終了し、無ければＳ１０１からのフローを継続する。【００５３】
以上のように、本実施例では、テンプレートを用いて画像から無限遠の物体のみが存在する領域を抽出し、その領域内の対応点を無限遠対応点として検出し、それ以外の対応点を一般対応点とする。無限遠対応点のみを用いて各カメラ間の相対姿勢を同定し、同定した相対姿勢と一般対応点を用いて各カメラ間の相対位置を同定することによりセルフキャリブレーションを行う。これにより、対応点位置の認識誤差に対しロバストなセルフキャリブレーションが行われ、高精度な被写体の３次元位置認識が長期間継続される。
【実施例２】
【００５４】
本実施例では、予め無限遠物体を特定不可能な場合においても、無限遠領域１０６を抽出しロバストなセルフキャリブレーションを実現可能なステレオカメラシステム１００ｂの例を説明する。【００５５】
本実施例におけるステレオカメラシステム１００ｂの構成例は実施例１のステレオカメラシステム１００ａと同一であり、その模式図は図１に示される。撮像部１０１、演算部１０２、記憶部１０３の基本的な機能や、ステレオカメラシステム１００ｂとユーザ１０の関係などは、実施例１のステレオカメラシステム１００ａと同様である。ただし、本実施例では、撮像部１０１から得られる複数の光波長の輝度値を用いて無限遠領域１０６を抽出する。そのため、本実施例の撮像部１０１はカラーカメラやハイパースペクトルカメラなど複数の光波長の輝度値を取得可能とする。図１０は実施例２における記憶部１０３に格納される情報の構成例を表す模式図である。記憶部１０３には、共通情報１０４と、空・雲領域抽出プログラム１３１と、複数の光波長における空の輝度値の範囲１３２と、複数の光波長における雲の輝度値の範囲１３３を記録する。【００５６】
本実施例における演算部１０２の処理例は、図４を用いて説明する。演算部１０２は、実施例１と同様に各撮像部１０１に撮影指令を与え、画像１０５の組を取得する（Ｓ１０１）。図１１は、実施例２における各撮像部１０１が同時に撮影した画像１０５の組の例を表す模式図であり、画像１０５ｃ、１０５ｄはそれぞれ撮像部１０１ａ、１０１ｂが撮影した画像を表している。【００５７】
続いて、演算部１０２は、実施例１と同様に取得した画像１０５の組のうち少なくともどれか１枚を対象として無限遠領域１０６として抽出する（Ｓ１０２）。実施例２では、ステレオカメラシステム１００ｂが運用される地域から撮像部１０１が撮影可能な無限遠の物体を予め特定することが困難な場合を想定し、複数の光波長における空及び雲の輝度値の範囲（１３２、１３３）を予め記憶部１０３に保持しておく。そして演算部１０２は、その輝度値の範囲と予め記憶部１０３に保存されている空・雲領域抽出プログラム１３１に基づき、どの地域においても無限遠の物体とみなすことが可能な空と雲が投影されている領域を、無限遠領域１０６として抽出する。【００５８】
図１２は実施例２における空・雲領域を無限遠領域１０６ｃとして画像１０５ｃから抽出した結果の例を表す模式図である。演算部１０２は、まず、画像１０５のうちのいずれか１枚について、全ての画素に対しその輝度値が空の輝度値の範囲にあるか否かを調査し、該当する画素を空の輝度値を持つ領域と見なす。【００５９】
続いて、空の輝度値を持つ近接した領域同士を結合し続け、最終的に作成された領域を空領域として抽出する。また、空領域と画像の上辺、左辺、右辺に囲まれた領域で、その領域内の全ての画素の輝度値が雲の輝度値の範囲にある領域を、雲領域として抽出する。隣接する空領域と雲領域を結合して得られた空・雲領域を無限遠領域１０６として抽出する。【００６０】
この方法により、ステレオカメラシステム１００ｂを利用する地域から撮像部１０１が撮影可能でかつ事前に特定可能である無限遠物体が存在しない場合においても、無限遠領域１０６を抽出することが可能となる。【００６１】
また、演算部１０２は、得られた空・雲領域の中で画像の上辺、左辺、右辺のいずれかに接しているもののみを、無限遠領域１０６として抽出しても良い。これにより、空や雲の輝度値を持っているが空や雲ではない物体が投影されている領域を排除することが可能になる。【００６２】
続いて、演算部１０２は、実施例１と同様の手法により、画像１０５の組に共通して投影されている同一点の組を対応点１０８として検出する（Ｓ１０３）。図１３は、実施例２における画像１０５ｃ及び１０５ｄから対応点１０８（１０８ｃ、１０８ｄ）を検出した結果の例を表す模式図である。また、演算部１０２は、実施例１と同様の手法により、対応点１０８を無限遠対応点１０９と一般対応点１１０に分類する（Ｓ１０４）。図１４は、実施例２における画像１０５ｃ及び１０５ｄから検出した対応点１０８を分類した結果の例を表す模式図である。１０９ｂが無限遠対応点であり、１１０ｂが一般対応点である。【００６３】
実施例２における演算部１０２のフローのうち、Ｓ１０５〜Ｓ１１３については、実施例１と同様である。
【実施例３】
【００６４】
本実施例では、ステレオカメラの原理に基づき周囲に存在する物体の３次元位置を算出し、その結果に基づき自律的に移動する移動体として車両２００ａの例を説明する。【００６５】
図１５は、本実施例における車両２００ａの構成例を表す模式図である。車両２００ａは、実施例１あるいは実施例２で説明したステレオカメラシステム１００が備える複数の撮像部１０１、演算部１０２、記憶部１０３に加え、駆動部２０１、車両位置取得部２０２、通信部２０３を備える。車両２００ａは、通信部２０３が受信したユーザ１０からの指令に基づき自律的に移動する。【００６６】
撮像部１０１は、実施例１あるいは実施例２で説明したステレオカメラシステム１００に搭載される機器と同等の機能及び構成を有し、同様の動作を行う。【００６７】
演算部１０２は、実施例１あるいは実施例２で説明したステレオカメラシステム１００に搭載される機器と同等の機能及び構成を有し、ユーザ１０からの指令の理解、撮像部１０１の制御、記憶部１０３の制御、被写体の３次元位置の算出、セルフキャリブレーションにおける演算処理の他、車両２００ａの走行経路再計画、駆動部２０１の制御、車両位置取得部２０２の制御、通信部２０３の制御を行う。また、演算部１０２は各撮像部１０１に同期を取るための信号を送る。【００６８】
記憶部１０３は、実施例１あるいは実施例２で説明したステレオカメラシステム１００に搭載される機器と同等の機能及び構成を有し、同様の動作を行う。図１６は、本実施例の記憶部１０３に格納される情報の構成例を表す模式図である。【００６９】
記憶部１０３は、実施例１あるいは実施例２で説明したステレオカメラシステム１００のものと同様の情報を格納する他、駆動部２０１や車両位置取得部２０２、通信部２０３との通信プロトコル（１３４〜１３６）、駆動部２０１や車両位置取得部２０２、通信部２０３の制御プログラム（１３７〜１３９）、車両２００の走行経路再計画プログラム１４１、車両２００の移動制御のための各種判定基準（１４２、１４３）、走行経路１４４を格納する。【００７０】
駆動部２０１は、車両２００を移動させるための機器であり、加減速装置、操舵装置、車輪の組合せなどとして実装される。駆動部２０１は、役割に応じて複数の機器に分割されていても良い。駆動部２０１は、演算部１０２からの制御に基づき、車両２００ａを移動させる。【００７１】
車両位置取得部２０２は、自身の地球座標系上の３次元的な位置姿勢を取得する機器であり、ＧＰＳ電波受信機と、ジャイロセンサと、受信機で受信した情報やセンサで計測した結果に基づき自身の３次元的な位置姿勢を算出し出力するコンピュータとの組合せとして実装される。車両位置取得部２０２は、演算部１０２からの制御に基づき、ＧＰＳ電波の受信、姿勢の計測、３次元的な位置姿勢の算出、位置姿勢の演算部１０２への出力を行う。【００７２】
通信部２０３は、ユーザ１０からの命令を無線で受信するための機器であり、無線ＬＡＮ電波受信機と受信した命令を出力するコンピュータとの組合せとして実装される。通信部２０３は、演算部１０２が起動した直後に、演算部１０２からの制御に基づき、無線ＬＡＮ電波の受信準備を行い、受信待機状態になる。無線ＬＡＮ電波形式のユーザ１０からの命令を受信した際には、即座に演算部１０２にその命令を出力する。【００７３】
ユーザ１０は、作業員が車両２００に移動開始または移動停止を命令するために利用するコンピュータであり、通信部２０３に命令を送信するための無線ＬＡＮ電波送信機を有する。ユーザ１０は、予め定められた通信プロトコルに基づき、車両２００に対し移動開始命令、移動停止命令、セルフキャリブレーション実施命令を送信する。移動開始命令を送信する際には、地球座標系の緯度経度の軌跡で表現される走行経路を併せて送信する。【００７４】
図１７は、本実施例における演算部１０２の処理例を説明するフローチャートである。本フローチャートは、ユーザ１０が送信した移動開始命令及び走行経路を通信部２０３が受信し、通信部２０３が演算部１０２にそれらの情報を伝達した状態から始まっている。演算部１０２は、まず、受信した走行経路を記憶部１０３に格納する（Ｓ２０１）。その後、演算部１０２は、実施例１あるいは実施例２におけるＳ１０１〜Ｓ１１１の処理を実行する（Ｓ２０２）。ここで、演算部１０２は、Ｓ１０７の処理を実施するためにユーザ１０からのセルフキャリブレーションの要求指令を確認する必要がある場合、通信部２０３に受信情報の有無を確認し、受信情報がある場合はその情報がセルフキャリブレーションの要求指令であるか否かを確認する。【００７５】
続いて、演算部１０２は、記憶部１０３に予め格納されている車両位置取得部２０２との通信プロトコル１３５及び車両位置取得部２０２の制御プログラム１３８に基づき、車両位置取得部２０２から車両位置姿勢を取得する（Ｓ２０３）。まず、演算部１０２は、車両位置取得部２０２へ位置姿勢取得の指令を与える。すると、車両位置取得部２０２は、ＧＰＳ電波受信機を用いてＧＰＳ電波を受信し、ジャイロセンサを用いて姿勢を計測し、受信結果と計測結果から自身の３次元的な位置姿勢を算出し、演算部１０２へその位置姿勢へ伝達する。演算部１０２は伝達された位置姿勢を車両位置姿勢としてＲＡＭに保持する。【００７６】
続いて、演算部１０２は、Ｓ２０２の処理で算出した被写体３次元位置と、Ｓ２０３の処理で取得した車両位置姿勢と、Ｓ２０１の処理で記憶部１０３に格納した走行経路と、予め記憶部１０３に格納している障害物判定基準とに基づき、今後走行する走行経路上に障害物が存在するか否かを判定する（Ｓ２０４）。【００７７】
予め、被写体が走行経路上に存在するとみなす被写体と走行経路との距離の最大値を、障害物判定基準として記憶部１０３に格納しておく。まず、演算部１０２は、車両位置に最も近い走行経路上の点を抽出し、その点以降の走行経路を半経路とし、半径路上に障害物が存在するか否かを判定する。各被写体３次元位置に対し、半径路との距離を算出し、障害物判定基準と算出した距離に基づきその被写体が半径路上にあるか否かを判定し、半径路上にある場合は障害物とみなす。【００７８】
障害物が存在する場合、演算部１０２は、その障害物に対応する被写体３次元位置と、記憶部１０３に格納されている走行経路と、Ｓ２０３の処理で取得した車両位置姿勢と、車両２００の走行経路再計画プログラム１４１に基づき、走行経路を再計画し、記憶部１０３に対し古い走行経路を破棄し新たな走行経路を格納する（Ｓ２０５）。走行経路再計画プログラムは、走行経路のうち障害物が存在する地点について、障害物の大きさ分迂回するように経路を修正する。この走行経路再計画により、車両２００は障害物に衝突することなく安全に経路の終端まで自律的に移動することができるようになる。【００７９】
続いて、演算部１０２は、記憶部１０３に格納されている走行経路と、Ｓ２０３の処理で取得した車両位置姿勢と、駆動部２０１との通信プロトコル１３４と、駆動部２０１の制御プログラム１３７とに基づき、車両２００が走行経路に沿って移動するように駆動部２０１を制御する（Ｓ２０６）。演算部１０２は、車両２００が走行経路に沿って移動するように加減速量と操舵量を決定し、その加減速量と操舵量を駆動部２０１へ伝達する。駆動部２０１は、伝達された加減速量と操舵量となるように加減速装置と操舵装置を作動させ車輪を制御する。【００８０】
その後、演算部１０２は、通信部２０３との通信プロトコル１３６と、通信部２０３の制御プログラムに基づき、通信部２０３にユーザ１０からの情報の有無を問い合わせ、情報がある場合はユーザ１０との通信プロトコルに基づきそれが移動停止命令か否かを確認する（Ｓ２０７）。通信部２０３は、演算部１０２の問い合わせを受けると、新規の無線ＬＡＮ電波受信の有無を確認し、新規の受信がある場合はその情報を演算部１０２に伝達し、新規の受信が無い場合は無い旨を演算部１０２に伝達する。【００８１】
移動停止命令が無い場合、演算部１０２は、記憶部１０３に格納されている走行経路と、Ｓ２０３の処理で取得した車両位置姿勢と、予め記憶部１０３に格納されている走行経路終端への到達判定基準に基づき、車両２００が走行経路の終端に到達しているか否かを判定する（Ｓ２０８）。予め、走行経路の終端に到達しているとみなす走行経路終端と車両位置との距離の最大値を、走行経路終端への到達判定基準として記憶部１０３に格納しておく。演算部１０２は、走行経路の終端位置と現在の車両位置との距離を算出し、その距離が走行経路終端への到達判定基準よりも小さい場合に、車両２００が走行経路の終端に到達したと判断する。【００８２】
ユーザ１０からの移動停止命令が無く、車両２００が走行経路の終端に到達していない場合、演算部１０２は、Ｓ２０２から処理を繰り返す。ユーザ１０からの移動停止命令が有る場合、あるいは、車両２００が走行経路の終端に到達している場合、演算部１０２は、予め記憶部１０３に格納してある駆動部２０１との通信プロトコル及び駆動部２０１の制御プログラムに基づき、車両２００が静止するように駆動部２０１を制御する（Ｓ２０９）。演算部１０２は、車両が静止するように加減速量と操舵量を決定し、その加減速量と操舵量を駆動部２０１へ伝達する。駆動部２０１は、伝達された加減速量と操舵量となるように加減速装置と操舵装置を作動させ車輪を制御する。【００８３】
演算部１０２は、Ｓ２０９の処理を終えると、通信部２０３がユーザ１０からの移動開始命令と新たな走行経路を受信するまで待機し続ける。【００８４】
本実施例の車両２００ａは、搭載する複数の撮像部１０１について対応点位置の認識誤差に対しロバストなセルフキャリブレーションを行うため、ステレオカメラの原理に基づく周囲物体の３次元位置の高精度算出とその結果に基づく安全な自律移動を、長時間継続することができる。
【実施例４】
【００８５】
本実施例では、複数の撮像部１０１を搭載し、強い振動や衝撃が加わったことを検知し、それらの撮像部１０１についてセルフキャリブレーションを行う車両２００ｂの例を説明する。【００８６】
図１８は、本実施例における車両２００ｂの構成例を表す模式図である。車両２００ｂは、実施例３で説明した車両２００ａと同様に、複数の撮像部１０１、演算部１０２、記憶部１０３、駆動部２０１、車両位置取得部２０２、通信部２０３を備え、通信部２０３が受信したユーザ１０からの指令に基づき自律的に移動する。また、本実施例における車両２００ｂは、揺動検知部２０４を備える。【００８７】
撮像部１０１、駆動部２０１、車両位置取得部２０２、通信部２０３は、実施例３で説明した車両２００ａに搭載される機器と同等の機能及び構成を有し、同様の動作を行う。【００８８】
演算部１０２は、実施例３で説明したステレオカメラシステム１００に搭載される機器と同等の機能及び構成を有し、ユーザ１０からの指令の理解、撮像部１０１の制御、記憶部１０３の制御、駆動部２０１の制御、車両位置取得部２０２の制御、通信部２０３の制御、被写体の３次元位置の算出、セルフキャリブレーションにおける演算処理、車両２００の移動計画の他、揺動検知部２０４の制御を行う。また、演算部１０２は各撮像部１０１に同期を取るための信号を送る。【００８９】
記憶部１０３は、実施例３で説明した車両２００ａに搭載される機器と同等の機能及び構成を有し、同様の動作を行う。図１９は、本実施例の記憶部１０３に格納される情報の構成例を表す模式図である。【００９０】
記憶部１０３は、実施例３で説明した車両２００ａのものと同様の情報を格納する他、揺動検知部２０４との通信プロトコル１４５、揺動検知部２０４の制御プログラム１４６、キャリブレーションの要否判定のための加速度基準１４７、キャリブレーション要求日時１４８を格納する。【００９１】
揺動検知部２０４は、加速度を取得する機器であり、加速度計と、加速度計で計測した加速度を出力するコンピュータとの組合せとして実装される。揺動検知部２０４は、演算部１０２からの制御に基づき、加速度の計測、加速度の演算部１０２への出力を行う。【００９２】
図２０は、本実施例における演算部１０２の処理例を説明するフローチャートである。本フローチャートは、実施例３のものと同様に、ユーザ１０が送信した移動開始命令及び走行経路を通信部２０３が受信し、通信部２０３が演算部１０２にそれらの情報を伝達した状態から始まっている。演算部１０２は、実施例３で説明した処理Ｓ２０１を実行する（Ｓ３０１）。その後、演算部１０２は、実施例１あるいは実施例２にて説明したＳ１０１〜Ｓ１０５の処理を実行する（Ｓ３０２）。【００９３】
続いて、演算部１０２は、揺動検知部２０４から加速度を取得し（Ｓ３０３）、取得した加速度と、予め記憶部１０３に格納しているキャリブレーション要否の加速度基準と、対応点削除判定の共通基準とに基づき、記憶部１０３に対し対応点１０８の追加と削除を行う（Ｓ３０４）。被写体３次元位置の算出に無視できない誤差を与えるほど各撮像部１０１間の外部パラメータが突発的に変化する加速度のうち、最小値を予め計測しておき、これをキャリブレーション要否の加速度基準として記憶部１０３に格納しておく。演算部１０２は、取得した加速度の大きさがキャリブレーション要否の加速度基準以上の場合、記憶部１０３に対し新たに検出した対応点１０８を追加せず、記憶部１０３に保存している全ての対応点を削除し、現在の日時をキャリブレーション要求日時として記憶部１０３に格納する。この処理により、車両２００に大きな衝撃が加わった際には、揺動検知部２０４から得られる加速度に基づきその衝撃を検知し、各撮像部１０１間の外部パラメータが大きく変化した可能性があると判断し、衝撃以前の対応点１０８を用いることなくセルフキャリブレーションを行うことが可能になる。取得した加速度の大きさが基準未満の場合、演算部１０２は、実施例１において説明したＳ１０６の処理を行う。【００９４】
続いて、演算部１０２は、セルフキャリブレーションの要否及び可否を判定する（Ｓ３０５）。演算部１０２は、記憶部１０３に格納されている前回キャリブレーション実行日時とキャリブレーション要求日時を比較し、キャリブレーション要求日時の方が新しい場合にセルフキャリブレーションが必要と判断する。それ以外の場合については、演算部１０２は、実施例１において説明したＳ１０７の処理を実施する。【００９５】
セルフキャリブレーションが必要かつ可能と判断された場合、演算部１０２は、実施例１において説明したＳ１０８〜Ｓ１１０の処理を実行する（Ｓ３０６）。セルフキャリブレーションが不要あるいは不可と判定された場合は、Ｓ３０６の処理は省略される。【００９６】
続いて、演算部１０２は、被写体３次元位置の算出可否を判定する（Ｓ３０７）。演算部１０２は、記憶部１０３に格納されている前回キャリブレーション実行日時とキャリブレーション要求日時を比較し、キャリブレーション要求日時の方が新しい場合は被写体３次元位置の算出は不可と判定する。これ以外の場合は、算出可能と判定する。被写体３次元位置の算出が不可と判定された場合は、実施例３で説明したＳ２０９の処理を実行し車両２００を一時停止し（Ｓ３０８）、その後、Ｓ３０２の処理に戻り、セルフキャリブレーションを実行するまでＳ３０２〜３０７の処理を繰り返す。この処理により、記憶部１０３に保持している外部パラメータが実際のものと大きく異なる可能性がある際に、被写体３次元計測とその結果に基づく自律移動を、新たにセルフキャリブレーションを実行するまで一時停止させることが可能となる。【００９７】
被写体３次元位置を算出可能な場合、演算部１０２は、実施例１において説明したＳ１１１の処理を実行し（Ｓ３０９）、その後、実施例３で説明したＳ２０３〜Ｓ２０８の処理を実行し、処理継続の要否を判定する（Ｓ３１０）。演算部１０２は、Ｓ２０８の処理の結果、車両２００が走行経路終端に到達していないと判断した場合は、継続必要と判定し、それ以外の場合は継続不要と判定する。継続必要と判定した場合、演算部１０２はＳ３０２からの処理を継続する。継続不要と判定した場合、演算部１０２は実施例３において説明したＳ２０９の処理を実行し、車両２００を停止させる。【００９８】
演算部１０２は、Ｓ３１１の処理を終えると、通信部２０３がユーザ１０からの移動開始命令と新たな走行経路を受信するまで待機し続ける。【００９９】
本実施例の車両２００ｂは、搭載する複数の撮像部１０１について、強い振動や衝撃が加わった際にはそれを検知し新たに対応点を集め直した上で、対応点位置の認識誤差に対しロバストなセルフキャリブレーションを行うため、凹凸が激しい路面上を走行中であっても、ステレオカメラの原理に基づく周囲物体の３次元位置の高精度算出とその結果に基づく安全な自律移動を長時間継続することができる。【０１００】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されるものではなく、種々変形実施可能であり、上述した各実施形態を適宜組み合わせることが可能であることは、当業者に理解されよう。
【符号の説明】
【０１０１】
１０    ユーザ
１００  ステレオカメラシステム
１０１  撮像部
１０２  演算部
１０３  記憶部
１０４  共通情報
１０５  画像
１０６  無限遠領域
１０７  特定無限遠物体テンプレート
１０８  対応点
１０９  無限遠対応点
１１０  一般対応点
２００  車両
２０１  駆動部
２０２  車両位置取得部
２０３  通信部
２０４  揺動検知部
【図１】
2013145025.tif 000009
【図２】
2013145025.tif 000010
【図３】
2013145025.tif 000011
【図４】
2013145025.tif 000012
【図５】
2013145025.tif 000013
【図６】
2013145025.tif 000014
【図７】
2013145025.tif 000015
【図８】
2013145025.tif 000016
【図９】
2013145025.tif 000017
【図１０】
2013145025.tif 000018
【図１１】
2013145025.tif 000019
【図１２】
2013145025.tif 000020
【図１３】
2013145025.tif 000021
【図１４】
2013145025.tif 000022
【図１５】
2013145025.tif 000023
【図１６】
2013145025.tif 000024
【図１７】
2013145025.tif 000025
【図１８】
2013145025.tif 000026
【図１９】
2013145025.tif 000027
【図２０】
2013145025.tif 000028
【国際調査報告】
2013145025.tif 000029
2013145025.tif 000030
2013145025.tif 000031
2013145025.tif 000032