(57)【要約】  容易かつ高精度に３次元測定を行う。  ３次元測定装置（１０）は、基線長ＢＬの第１撮像部（１１）及び第２撮像部（１２）と、画像から特徴点を検出する特徴点検出部（２１）と、特徴点の対応点を検出する対応点検出部（２２）と、回転行列算出部（２３）と、並進行列算出部（２４）と、並進距離算出部（２５）と、３次元データ算出部（２６）と、を備える。回転行列算出部（２３）は、特徴点と対応点に基づき、第１撮影位置を基準として、第２撮影位置の回転方向及び回転量を表す回転行列を算出する。並進行列算出部（２４）は、特徴点と対応点に基づき、第１撮影位置を基準として、第２撮影位置の並進移動方向を表す並進行列を算出する。並進距離算出部（２５）は、回転行列及び並進行列と、基線長に基づいて、第１撮影位置を基準とした第２撮影位置の並進距離を算出する。３次元データ算出部（２６）は、並進距離を用いて３次元データを算出する。
2014002849.tif 000002
【特許請求の範囲】
【請求項１】
被写体を撮像する第１撮像部と、
前記第１撮像部に対して所定の基線長をおいて配置され、前記第１撮像部が撮像する前記被写体の少なくとも一部を含む範囲を撮像する第２撮像部と、
第１撮影位置において前記第１撮像部及び前記第２撮像部によって前記被写体を撮像して得た２枚の画像のうち少なくともいずれか一方の画像から複数の特徴点を検出する特徴点検出部と、
前記第１撮影位置とは異なる第２撮影位置において前記第１撮像部及び前記第２撮像部によって前記被写体を撮像して得た２枚の画像の各々について、前記特徴点に対応する対応点を検出する対応点検出部と、
前記特徴点と前記対応点に基づき、前記第１撮影位置における前記第１撮像部または前記第２撮像部の向きを基準として、前記第２撮影位置における前記第１撮像部の回転方向及び回転量を表す第１回転行列と、前記第２撮像部の回転方向及び回転量を表す第２回転行列を算出する回転行列算出部と、
前記特徴点と前記対応点に基づき、前記第１撮影位置における前記第１撮像部または前記第２撮像部の位置を基準として、前記第２撮影位置における前記第１撮像部の並進移動方向を表す第１並進行列と、前記第２撮像部の並進移動方向を表す第２並進行列を算出する並進行列算出部と、
前記第１回転行列、前記第２回転行列、前記第１並進行列、及び前記第２並進行列と、前記基線長に基づいて、前記第１撮影位置における前記第１撮像部または前記第２撮像部を基準とした前記第２撮影位置における前記第１撮像部または前記第２撮像部の並進距離を算出する並進距離算出部と、
前記並進距離に基づいて、前記被写体の３次元データを算出する３次元データ算出部と、
を備える３次元測定装置。
【請求項２】
前記並進距離算出部は、基線長ベクトルの先端と前記第１方向または前記第２方向のうち他方の距離が最小になる前記基線長ベクトルの位置を求め、当該位置にある前記基線長ベクトルの基端及び先端の位置に基づいて、各々の前記並進距離を算出し、
前記基線長ベクトルは、前記基線長の長さを有し、前記第１回転行列及び前記第２回転行列によって定まる基線長ベクトルの基端を、前記第１並進行列が表す第１方向または前記第２並進行列が表す第２方向のうち一方の上に置かれているものである請求の範囲第１項記載の３次元測定装置。
【請求項３】
前記並進距離算出部は、前記第１方向と前記第２方向のうち前記他方の方向と前記基線長ベクトルの先端との距離の最小値を所定閾値と比較し、前記最小値が前記所定閾値よりも小さい場合に、条件を変えて前記並進距離を再算出する請求の範囲第２項記載の３次元測定装置。
【請求項４】
前記並進距離算出部は、前記第１撮影位置及び前記第２撮影位置で得た４枚の画像のうち任意の組み合わせの複数の画像を用いて算出した第１の前記並進距離と、前記第１の並進距離を算出する場合に使用した前記複数の画像とは異なる組み合わせの複数の画像を用いて算出し、前記第１の並進距離と同じ撮像部間の距離を表す第２の前記並進距離との差が所定閾値よりも大きい場合に、条件を変えて前記並進距離を再算出する請求の範囲第１項記載の３次元測定装置。
【請求項５】
前記並進距離算出部が前記並進距離を再算出する場合に、前記対応点検出部は前記対応点を検出するための条件を変えて、前記対応点を再検出し、前記回転行列算出部，前記並進行列算出部及び前記並進距離算出部は、前記特徴点と再検出した前記対応点に基づいて、前記回転行列、前記並進行列、及び前記並進距離を再算出する請求の範囲第３項記載の３次元測定装置。
【請求項６】
前記対応点を再検出する場合に変える条件は、前記特徴点の組み合わせである請求の範囲第５項記載の３次元測定装置。
【請求項７】
前記対応点検出部は、前記対応点の検出を、前記特徴点を含む前記第１撮影位置で撮影した画像のうち前記特徴点を含む部分画像と、前記第２撮影位置で撮影した画像を部分毎に比較して一致度が高い前記部分を前記対応点とするブロックマッチング法により行い、
前記対応点を再検出する場合に変える条件には、前記部分画像と前記第２撮影位置で撮影した画像を部分毎に比較するときの前記部分画像の拡大縮小率または回転角度のうちいずれかを含む請求の範囲第５項記載の３次元測定装置。
【請求項８】
前記特徴点検出部は、前記特徴点の検出条件を変えて、前記特徴点を再検出し、前記対応点検出部，前記回転行列算出部，前記並進行列算出部及び前記並進距離算出部は、再検出された前記特徴点に基づいて、前記対応点の検出、前記回転行列、前記並進行列、及び前記並進距離を再算出する請求の範囲第３項記載の３次元測定装置。
【請求項９】
前記回転行列算出部は、前記第１撮像部の並進距離である仮定値、前記第１回転行列及び前記第１並進行列に基づいて、前記第２回転行列を再算出し、
前記並進行列算出部は、前記仮定値、前記第１回転行列及び前記第１並進行列に基づいて、前記第２並進行列を再算出し、
前記並進距離算出部は、前記仮定値と再算出した前記第２回転行列及び前記第２並進行列に基づいて、前記第２撮影位置で得た画像上で少なくとも１つの前記特徴点について定まるエピポーラ線を算出し、前記エピポーラ線上において前記特徴点との一致度を求め、さらに前記仮定値を変更して前記一致度の算出を繰り返し行って、前記一致度が最も高くなる前記エピポーラ線を選出することにより前記第２撮影位置を特定して、前記並進距離を再算出する請求の範囲第３項記載の３次元測定装置。
【請求項１０】
前記並進距離算出部は、複数の前記特徴点のうち前記対応点を検出する前記特徴点の組み合わせ、または前記対応点を検出するための条件が異なる複数の条件で前記並進距離を予め算出し、
前記３次元データ算出部は、前記第１方向と前記第２方向のうち前記他方の方向と前記基線長ベクトルの先端との距離の最小値を比較して、前記最小値が小さい前記条件で算出された前記並進距離を使用する請求の範囲第２項記載の３次元測定装置。
【請求項１１】
前記３次元データは、前記被写体の実空間上での寸法または前記被写体の３次元モデルデータである請求の範囲第１項記載の３次元測定装置。
【請求項１２】
被写体を撮像する第１撮像部と、前記第１撮像部に対して所定の基線長をおいて配置され、前記第１撮像部が撮像する前記被写体の少なくとも一部を含む範囲を撮像する第２撮像部とを有する１つまたは２つのステレオカメラによって、第１撮影位置と第２撮影位置でそれぞれ撮影した画像を記憶する記憶部と、
前記第１撮影位置において前記第１撮像部及び前記第２撮像部によって前記被写体を撮像して得た２枚の画像のうち少なくともいずれか一方の画像から複数の特徴点を検出する特徴点検出部と、
前記第２撮影位置において前記第１撮像部及び前記第２撮像部によって前記被写体を撮像して得た２枚の画像の各々について、前記特徴点に対応する対応点を検出する対応点検出部と、
前記特徴点と前記対応点に基づき、前記第１撮影位置における前記第１撮像部または前記第２撮像部の向きを基準として、前記第２撮影位置における前記第１撮像部の回転方向及び回転量を表す第１回転行列と、前記第２撮像部の回転方向及び回転量を表す第２回転行列を算出する回転行列算出部と、
前記特徴点と前記対応点に基づき、前記第１撮影位置における前記第１撮像部または前記第２撮像部の位置を基準として、前記第２撮影位置における前記第１撮像部の並進移動方向を表す第１並進行列と、前記第２撮像部の並進移動方向を表す第２並進行列を算出する並進行列算出部と、
前記第１回転行列、前記第２回転行列、前記第１並進行列、及び前記第２並進行列と、前記基線長に基づいて、前記第１撮影位置における前記第１撮像部または前記第２撮像部を基準とした前記第２撮影位置における前記第１撮像部または前記第２撮像部の並進距離を算出する並進距離算出部と、
前記並進距離に基づいて、前記被写体の３次元データを算出する３次元データ算出部と、
を備える画像処理装置。
【請求項１３】
Ａ．被写体を撮像する第１撮像部と、前記第１撮像部に対して所定の基線長をおいて配置され、前記第１撮像部が撮像する前記被写体の少なくとも一部を含む範囲を撮像する第２撮像部とを有する１つまたは２つのステレオカメラと、
Ｂ．第１撮影位置と第２撮影位置でそれぞれ撮影した画像を記憶する記憶部と、前記第１撮影位置において前記第１撮像部及び前記第２撮像部によって前記被写体を撮像して得た２枚の画像のうち少なくともいずれか一方の画像から複数の特徴点を検出する特徴点検出部と、前記第２撮影位置において前記第１撮像部及び前記第２撮像部によって前記被写体を撮像して得た２枚の画像の各々について、前記特徴点に対応する対応点を検出する対応点検出部と、前記特徴点と前記対応点に基づき、前記第１撮影位置における前記第１撮像部または前記第２撮像部の向きを基準として、前記第２撮影位置における前記第１撮像部の回転方向及び回転量を表す第１回転行列と、前記第２撮像部の回転方向及び回転量を表す第２回転行列を算出する回転行列算出部と、前記特徴点と前記対応点に基づき、前記第１撮影位置における前記第１撮像部または前記第２撮像部の位置を基準として、前記第２撮影位置における前記第１撮像部の並進移動方向を表す第１並進行列と、前記第２撮像部の並進移動方向を表す第２並進行列を算出する並進行列算出部と、前記第１回転行列、前記第２回転行列、前記第１並進行列、及び前記第２並進行列と、前記基線長に基づいて、前記第１撮影位置における前記第１撮像部または前記第２撮像部を基準とした前記第２撮影位置における前記第１撮像部または前記第２撮像部の並進距離を算出する並進距離算出部と、前記並進距離に基づいて、前記被写体の３次元データを算出する３次元データ算出部とを有する画像処理装置と、
を備える３次元測定システム。
【請求項１４】
前記ステレオカメラが車載カメラである請求の範囲第１３項記載の３次元測定システム。
【請求項１５】
被写体を撮像する第１撮像部と、前記第１撮像部に対して所定の基線長をおいて配置され、前記第１撮像部が撮像する前記被写体の少なくとも一部を含む範囲を撮像する第２撮像部とを有する１つまたは２つのステレオカメラを用いて被写体の３次元データを求める３次元測定方法において、
第１撮影位置において前記第１撮像部と前記第２撮像部で前記被写体を撮像して得た２枚の画像のうち少なくともいずれか一方の画像から複数の特徴点を検出する特徴点検出ステップと、
前記ステレオカメラによって前記第１撮影位置とは異なる第２撮影位置において前記被写体を撮像して得た２枚の画像の各々について、前記特徴点に対応する対応点を検出する対応点検出ステップと、
前記特徴点と前記対応点に基づき、前記第１撮影位置における前記第１撮像部または前記第２撮像部の向きを基準として、前記第２撮影位置における前記第１撮像部の回転方向及び回転量を表す第１回転行列と、前記第２撮像部の回転方向及び回転量を表す第２回転行列を算出する回転行列算出ステップと、
前記特徴点と前記対応点に基づき、前記第１撮影位置における前記第１撮像部または前記第２撮像部の位置を基準として、前記第２撮影位置における前記第１撮像部の並進移動方向を表す第１並進行列と、前記第２撮像部の並進移動方向を表す第２並進行列を算出する並進行列算出ステップと、
前記第１回転行列、前記第２回転行列、前記第１並進行列、及び前記第２並進行列と、前記基線長に基づいて、前記第１撮影位置における前記第１撮像部または前記第２撮像部を基準とした前記第２撮影位置における前記第１撮像部または前記第２撮像部の並進距離を算出する並進距離算出ステップと、
前記並進距離に基づいて、前記被写体の３次元データを算出する３次元データ算出ステップと、
を備える３次元測定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影した画像から被写体の３次元データを求めるための３次元測定方法、装置及びシステム、並びに画像処理装置に関する。
【背景技術】
【０００２】
２地点から被写体を撮影して得た２つの画像に基づいて、被写体の３次元データ（例えば、寸法）を算出する３次元測定装置が知られている。３次元測定装置は、例えば、左右に所定間隔（以下、基線長という）をあけて配置された２つのカメラと、これらの２つのカメラで得た視差のある画像から３次元データを算出する処理装置等で形成される。【０００３】
３次元測定に必要となる２つの画像は、同じ被写体が写されていて、かつ互いに視差のある画像であればよいので、例えば、２つの撮影レンズを有するステレオカメラで得た画像を用いることも可能である。しかし、３次元測定装置による３次元データの測定精度は、被写体のスケールと基線長の長さの関係に依存するので、ステレオカメラの基線長に対して測定する被写体のスケールが大きい場合には、一応の３次元データを得ることができるとしても誤差が大きく、信頼できる値が得られないことがある。このため、建物等のスケールが比較的大きい被写体の３次元データを高精度に測定する場合には、基線長を長くしておく必要がある。例えば、特許文献１の３次元測定装置は、自動車に２台のカメラを取り付けることにより、全体として巨大なステレオカメラを形成している。【０００４】
また、３次元測定を高精度に行うためには、基線長を正確に知っておく必要がある。通常のステレオカメラでは製造時点で基線長が所定長さになるように予め高精度に位置合わせされている。しかし、特許文献１のように２台のカメラを用いて巨大なステレオカメラを形成する場合に、基線長を正確に所定値に合わせることや、正確に基線長を測定しておくことは容易ではない。このため、特許文献１は、基線長を予め正確に測定しておくためのキャリブレーションの方法を開示している。また、特許文献２にも、正確に基線長を測定しておくためのキャリブレーション方法が記載されている。【０００５】
さらに、近年では、基線長が短いステレオカメラで２つの撮影位置から被写体を撮影し、各撮影位置で得た画像を用いて高精度に３次元データを測定可能な３次元測定装置も知られている。但し、特許文献３の３次元測定装置は、２つの撮影位置間の距離を知るために、形状や寸法等が既知の基準被写体を、３次元データを測定する被写体とともに撮影する。移動前後のステレオカメラの全体を巨大な１つのステレオカメラと捉えれば、２つの撮影位置間の距離は、この巨大なステレオカメラの基線長に相当する。このため、特許文献３の３次元測定装置も、基線長が既知であることを前提にしていることは、特許文献１，２の３次元測定装置と同様である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２６３６６９号公報
【特許文献２】特開２００５−２４１３２３号公報
【特許文献３】特開２０１１−２３２３３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
２つのカメラを使用して基線長（カメラ間距離）が長い巨大なステレオカメラを形成して３次元測定をする場合には、特許文献１，２に開示されているように、基線長を予め高精度に求めておかなければならないが、被写体を上手く撮影範囲におさめるために各カメラの配置を変更すれば、当然ながら、再び煩雑なキャリブレーションを行わなければならない。例えば、特許文献１のように、２つのカメラを自動車に取り付けると、２つのカメラで被写体をうまく捉えるためには自動車の向きを変えなければならないが、道幅が狭い道路から撮影をしなければならい場合や、車両が進入禁止の場所で撮影しなければならない場合等では、カメラの配置を変えざるを得ない。【０００８】
基線長が長い巨大なステレオカメラを自動車に取り付けずに運搬することも考えられるが、巨大であるために現実的ではない。また、２つのカメラを個別に運び、キャリブレーションを行わずに、基線長が所定値になるように再配置することはほぼ不可能である。このように、基線長が長い巨大なステレオカメラを用いる場合には、キャリブレーションをやり直さなければならないシチュエーションが多々あり、不便である。【０００９】
また、通常サイズの基線長が短いステレオカメラを用いて３次元測定をする場合に、特許文献３のように基準被写体を持ち運び、適切な位置に配置して被写体を撮影することは可能ではあるが、不便である。例えば、被写体の３次元測定に邪魔にならないように基準被写体の配置を工夫しなければならない上、高い位置にある被写体の寸法等が知りたい場合等、基準被写体を被写体とともに撮影範囲にうまく配置できない場合には３次元測定ができないこともある。撮影時の状況に依らず、いつでも巨大なステレオカメラの基線長を高精度に算出可能にするための基準被写体の形状や材質等の選定も容易ではない。【００１０】
このように、従来の装置では、キャリブレーションが必要なために操作が面倒であり、またキャリブレーションを省略したり、あるいは基線長を正確に測定しなかった場合には、高精度の３次元測定を行うことできない。【００１１】
本発明は、操作が容易で、かつ高精度の３次元測定が可能な３次元測定方法、装置及びシステム、並びに画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の３次元測定装置は、第１撮像部と、第２撮像部と、特徴点検出部と、対応点検出部と、回転行列算出部と、並進行列算出部と、並進距離算出部と、３次元データ算出部と、を備える。第１撮像部と第２撮像部は所定の基線長をおいて配置され、第２撮像部は、第１撮像部が撮像する被写体の少なくとも一部を含む範囲を撮像する。特徴点検出部は、第１撮影位置において第１撮像部及び第２撮像部によって被写体を撮像して得た２枚の画像のうち少なくともいずれか一方の画像から複数の特徴点を検出する。対応点検出部は、第１撮影位置とは異なる第２撮影位置において第１撮像部及び第２撮像部によって被写体を撮像して得た２枚の画像の各々について、特徴点に対応する対応点を検出する。回転行列算出部は、特徴点と対応点に基づき、第１撮影位置における第１撮像部または第２撮像部の向きを基準として、第２撮影位置における第１撮像部の回転方向及び回転量を表す第１回転行列と、第２撮像部の回転方向及び回転量を表す第２回転行列を算出する。並進行列算出部は、特徴点と対応点に基づき、第１撮影位置における第１撮像部または第２撮像部の位置を基準として、第２撮影位置における第１撮像部の並進移動方向を表す第１並進行列と、第２撮像部の並進移動方向を表す第２並進行列を算出する。並進距離算出部は、第１回転行列、第２回転行列、第１並進行列、及び第２並進行列と、基線長に基づいて、第１撮影位置における第１撮像部または第２撮像部を基準とした第２撮影位置における第１撮像部または第２撮像部の並進距離を算出する。３次元データ算出部は、並進距離に基づいて、被写体の３次元データを算出する。【００１３】
並進距離算出部は、基線長ベクトルの先端と第１方向または第２方向のうち他方の距離が最小になる基線長ベクトルの位置を求め、この位置にある基線長ベクトルの基端及び先端の位置に基づいて、各々の並進距離を算出することが好ましい。基線長ベクトルは、基線長の長さを有し、第１回転行列及び第２回転行列によって定まる基線長ベクトルの基端を、第１並進行列が表す第１方向または第２並進行列が表す第２方向のうち一方の上に置かれているものである。【００１４】
並進距離算出部は、第１方向と第２方向のうち他方の方向と基線長ベクトルの先端との距離の最小値を所定閾値と比較し、最小値が所定閾値よりも小さい場合に、条件を変えて並進距離を再算出することが好ましい。【００１５】
並進距離算出部は、第１撮影位置及び第２撮影位置で得た４枚の画像のうち任意の組み合わせの複数の画像を用いて算出した第１の並進距離と、第１の並進距離を算出する場合に使用した複数の画像とは異なる組み合わせの複数の画像を用いて算出し、第１の並進距離と同じ撮像部間の距離を表す第２の並進距離との差が所定閾値よりも大きい場合に、条件を変えて並進距離を再算出することが好ましい。【００１６】
並進距離算出部が並進距離を再算出する場合に、対応点検出部は対応点を検出するための条件を変えて、対応点を再検出し、回転行列算出部，並進行列算出部及び並進距離算出部は、特徴点と再検出した対応点に基づいて、回転行列、並進行列、及び並進距離を再算出することが好ましい。【００１７】
対応点を再検出する場合に変える条件は、特徴点の組み合わせでも良い。【００１８】
対応点検出部は、対応点の検出を、特徴点を含む第１撮影位置で撮影した画像のうち特徴点を含む部分画像と、第２撮影位置で撮影した画像を部分毎に比較して一致度が高い部分を対応点とするブロックマッチング法により行う。そして、対応点を再検出する場合に変える条件には、部分画像と第２撮影位置で撮影した画像を部分毎に比較するときの部分画像の拡大縮小率または回転角度のうちいずれかを含むことが好ましい。【００１９】
特徴点検出部は、特徴点の検出条件を変えて、特徴点を再検出し、対応点検出部，回転行列算出部，並進行列算出部及び並進距離算出部は、再検出された特徴点に基づいて、対応点の検出、回転行列、並進行列、及び並進距離を再算出しても良い。【００２０】
回転行列算出部は、第１撮像部の並進距離である仮定値、第１回転行列及び前記第１並進行列に基づいて、前記第２回転行列を再算出し、並進行列算出部は、仮定値、第１回転行列及び第１並進行列に基づいて、第２並進行列を再算出し、並進距離算出部は、仮定値と再算出した第２回転行列及び第２並進行列に基づいて、第２撮影位置で得た画像上で少なくとも１つの特徴点について定まるエピポーラ線を算出し、エピポーラ線上において特徴点との一致度を求める。そして、仮定値を変更して一致度の算出を繰り返し行って、一致度が最も高くなるエピポーラ線を選出することにより第２撮影位置を特定して、並進距離を再算出しても良い。【００２１】
並進距離算出部は、複数の特徴点のうち対応点を検出する特徴点の組み合わせ、または対応点を検出するための条件が異なる複数の条件で並進距離を予め算出し、３次元データ算出部は、第１方向と第２方向のうち他方の方向と基線長ベクトルの先端との距離の最小値を比較して、最小値が小さい条件で算出された並進距離を使用しても良い。【００２２】
３次元データは、例えば被写体の実空間上での寸法または被写体の３次元モデルデータである。【００２３】
本発明の画像処理装置は、記憶部と、特徴点検出部と、対応点検出部と、回転行列算出部と、並進行列算出部と、並進距離算出部と、３次元データ算出部と、を備える。記憶部は、被写体を撮像する第１撮像部と、第１撮像部に対して所定の基線長をおいて配置され、第１撮像部が撮像する被写体の少なくとも一部を含む範囲を撮像する第２撮像部とを有する１つまたは２つのステレオカメラによって、第１撮影位置と第２撮影位置でそれぞれ撮影した画像を記憶する。特徴点検出部は、第１撮影位置において第１撮像部及び第２撮像部によって被写体を撮像して得た２枚の画像のうち少なくともいずれか一方の画像から複数の特徴点を検出する。対応点検出部は、第２撮影位置において第１撮像部及び第２撮像部によって被写体を撮像して得た２枚の画像の各々について、特徴点に対応する対応点を検出する。回転行列算出部は、特徴点と対応点に基づき、第１撮影位置における第１撮像部または第２撮像部の向きを基準として、第２撮影位置における第１撮像部の回転方向及び回転量を表す第１回転行列と、第２撮像部の回転方向及び回転量を表す第２回転行列を算出する。並進行列算出部は、特徴点と対応点に基づき、第１撮影位置における第１撮像部または第２撮像部の位置を基準として、第２撮影位置における第１撮像部の並進移動方向を表す第１並進行列と、第２撮像部の並進移動方向を表す第２並進行列を算出する。並進距離算出部は、第１回転行列、第２回転行列、第１並進行列、及び第２並進行列と、基線長に基づいて、第１撮影位置における第１撮像部または第２撮像部を基準とした第２撮影位置における第１撮像部または第２撮像部の並進距離を算出する。３次元データ算出部は、並進距離に基づいて、被写体の３次元データを算出する。【００２４】
本発明の３次元測定システムは、１つまたは２つのステレオカメラと、上述の画像処理装置とを備える。ステレオカメラは、被写体を撮像する第１撮像部と、第１撮像部に対して所定の基線長をおいて配置され、第１撮像部が撮像する被写体の少なくとも一部を含む範囲を撮像する第２撮像部とを有する。【００２５】
ステレオカメラは車載カメラであることが好ましい。【００２６】
本発明の３次元測定方法は、被写体を撮像する第１撮像部と、第１撮像部に対して所定の基線長をおいて配置され、第１撮像部が撮像する前記被写体の少なくとも一部を含む範囲を撮像する第２撮像部とを有する１つまたは２つのステレオカメラを用いて被写体の３次元データを求める３次元測定方法であり、特徴点検出ステップと、対応点検出ステップと、回転行列算出ステップと、並進行列算出ステップと、並進距離算出ステップと、３次元データ算出ステップと、を備える。特徴点検出ステップでは、第１撮影位置において第１撮像部と第２撮像部で被写体を撮像して得た２枚の画像のうち少なくともいずれか一方の画像から複数の特徴点を検出する。ステレオカメラは、被写体を撮像する第１撮像部と、第１撮像部に対して所定の基線長をおいて配置され、第１撮像部が撮像する被写体の少なくとも一部を含む範囲を撮像する第２撮像部とを有するカメラである。対応点検出ステップでは、ステレオカメラによって第１撮影位置とは異なる第２撮影位置において被写体を撮像して得た２枚の画像の各々について、特徴点に対応する対応点を検出する。回転行列算出ステップでは、特徴点と対応点に基づき、第１撮影位置における第１撮像部または第２撮像部の向きを基準として、第２撮影位置における第１撮像部の回転方向及び回転量を表す第１回転行列と、第２撮像部の回転方向及び回転量を表す第２回転行列を算出する。並進行列算出ステップでは、特徴点と対応点に基づき、第１撮影位置における第１撮像部または第２撮像部の位置を基準として、第２撮影位置における第１撮像部の並進移動方向を表す第１並進行列と、第２撮像部の並進移動方向を表す第２並進行列を算出する。並進距離算出ステップでは、第１回転行列、第２回転行列、第１並進行列、及び第２並進行列と、基線長に基づいて、第１撮影位置における第１撮像部または第２撮像部を基準とした第２撮影位置における第１撮像部または第２撮像部の並進距離を算出する。３次元データ算出ステップでは、並進距離に基づいて、被写体の３次元データを算出する。
【発明の効果】
【００２７】
本発明によれば、基線長が定まった２つの撮像部を用いて２つの撮影位置でそれぞれ撮影して得られた画像から、これらを撮影した各撮像部間の距離（巨大なステレオカメラの基線長に相当）を算出するようにしたので、キャリブレーションを行わず、また、基準被写体を用いずに、単に３次元データを測定したい被写体を撮影して得た画像だけで、高精度な３次元測定を行うことができる。
【図面の簡単な説明】
【００２８】
【図１】３次元測定装置の説明図である。
【図２】測定部のブロック図である。
【図３】回転行列，並進行列，及び並進距離を示す説明図である。
【図４】並進距離の任意性を示す説明図である。
【図５】３次元測定の手順を示すフローチャートである。
【図６】特徴点の概要を示す説明図である。
【図７】対応点検出の概要を示す説明図である。
【図８】第２撮影位置Ｂを探索する原理を示す説明図である。
【図９】３次元データをディスプレイに表示する様子を示す説明図である。
【図１０】基線長ベクトルとＴ１ａ−Ｔ２ａ平面の関係を示す説明図である。
【図１１】第２実施形態の３次元測定の手順を示すフローチャートである。
【図１２】第３実施形態で算出する回転行列及び並進行列と並進距離を示す説明図である。
【図１３】第３実施形態で第２撮影位置を探索する原理を示す説明図である。
【図１４】第３実施形態のより好ましい３次元測定手順を示すフローチャートである。
【図１５】第３実施形態のより好ましい３次元測定手順を示すフローチャートである。
【図１６】第３実施形態の変形例における３次元測定手順を示すフローチャートである。
【図１７】第３実施形態の変形例における３次元測定手順を示すフローチャートである。
【図１８】別の３次元測定手順を示すフローチャートである。
【図１９】エピポーラ線の例を示す説明図である。
【図２０】エピポーラ線に沿って一致度を算出する様子を示す説明図である。
【図２１】エピポーラ線を用いた３次元測定をする場合の測定部の構成を示すブロック図である。
【図２２】３次元測定システムを示すブロック図である。
【図２３】複数のステレオカメラを備えた３次元測定システムを示すブロック図である。
【図２４】ステレオカメラとして車載カメラを用いる例を示す説明図である。
【発明を実施するための形態】
【００２９】
［第１実施形態］
図１に示すように、３次元測定装置１０は、第１撮像部１１と第２撮像部１２と、測定部１５、ディスプレイ１６等を備える。すなわち、３次元測定装置１０は、いわゆるステレオカメラに測定部１５を搭載し、撮影した画像から被写体の３次元データを算出できるようにしたものである。また、３次元測定装置１０は、簡単に持ち運べる程度（従来の単なるステレオカメラ程度）にコンパクトに形成されている。
【００３０】
第１撮像部１１と第２撮像部１２は、それぞれ３次元測定装置１０の左右に配置され、撮影光軸Ｌ１，Ｌ２は平行である。基線長ＢＬの長さは３次元測定装置１０の製造時に精密に定められており、第１，第２撮像部１１，１２による撮影画像を用いた３次元測定をする場合には、基線長ＢＬは既知量である。なお、基線長ＢＬは、第１撮像部１１と第２撮像部１２の配置間隔であり、より具体的には、撮影光軸Ｌ１，Ｌ２の間隔である。撮影光軸Ｌ１，Ｌ２を非平行にする場合は、例えば各撮像部１１，１２の主点の間隔が基線長ＢＬである。
【００３１】
また、第１撮像部１１と第２撮像部１２の撮影範囲は少なくとも一部が重複しており、第１撮像部１１と第２撮像部１２は重複する撮影範囲において同じ被写体を同時に撮影して、左右に視差のある１対の画像を出力する。なお、本明細書において、被写体とは３次元データを測定する対象を表すものとする。このため、以下では、第１撮像部１１と第２撮像部１２で各々得られる画像には、ともに３次元データを測定する被写体が写っているものとするが、重複する撮影範囲内に他の構造物（建物等）を捉え、これを基準にして、第１撮像部１１（または第２撮像部１２）で得た画像にだけ写った被写体の３次元データを算出することもできる。
【００３２】
第１撮像部１１は、撮像レンズ１１ａやイメージセンサ１１ｂ等を備える。撮像レンズ１１ａは、被写体の像をイメージセンサ１１ｂに結像させる。図示を省略するが、撮像レンズ１１ａには、絞りや可動レンズ、及びこれらを動作させるためのカムやギア等を含んでおり、ＡＦや変倍も可能である。イメージセンサ１１ｂは、例えばＣＭＯＳやＣＣＤ等であり、撮像レンズ１１ａによって撮像面に結像された被写体の像を画素毎に光電変換することにより、被写体の画像を測定部１５に出力する。
【００３３】
第２撮像部１２は、撮像レンズ１２ａやイメージセンサ１２ｂ等を備える。撮像レンズ１２ａやイメージセンサ１２ｂは、第１撮像部１１の撮像レンズ１１ａやイメージセンサ１１ｂと同じものである。但し、第１撮像部１１と第２撮像部１２の各部は厳密に同一の構成である必要はなく、それぞれ異なっていても良い。第２撮像部１２は、撮像して得た画像を測定部１５に出力することも第１撮像部１１と同様である。
【００３４】
なお、第１撮像部１１及び第２撮像部１２の各部の動作は、図示しないＣＰＵ等により所定のプログラムにしたがって制御される。また、３次元測定装置１０には、図示しない画像処理回路やメモリ、Ａ／Ｄ変換回路等を備えており、第１撮像部１１及び第２撮像部１２が出力する画像は、Ａ／Ｄ変換やホワイトバランス補正やガンマ補正等の各種画像処理が施された後に測定部１５に入力される。
【００３５】
測定部１５は、少なくとも２つの異なる撮影位置において、第１撮像部１１及び第２撮像部１２で撮影して得た４種の画像に基づいて、被写体の３次元データを算出する。測定部１５が算出する３次元データとは、例えば、２点間距離（長さ、高さ、幅等）、曲線の長さ、曲率、面積、体積、位置座標等の実空間における寸法等や、被写体をワイヤフレームやポリゴンで表した仮想空間上の３次元モデルデータである。測定部１５は、設定に応じてこれらのうち１つまたは複数を３次元データとして算出する。また、測定部１５は、設定に応じて、算出した３次元データをディスプレイ１６に表示する。例えば、測定部１５は、撮影した画像に実空間における被写体の寸法等を重畳してディスプレイ１６に表示させる。また、測定部１５は、撮影した画像と算出した３次元データを関連付けて記憶装置（図示しないメモリや着脱自在なメディアカード等）に記憶する。ディスプレイ１６への表示は任意であり、算出した３次元データを他の装置（コンピュータ等）で使用可能なように記憶しておく場合にはディスプレイ１６に３次元データを表示しなくても良い。
【００３６】
なお、測定部１５による３次元データの算出には、少なくとも２以上の異なる撮影位置で被写体を撮影した画像が必要である。このため、以下では、第１撮影位置Ａと第２撮影位置Ｂの２箇所で被写体の撮影をし、４種類の画像ＰＡＬ，ＰＡＲ，ＰＢＬ，ＰＢＲを得るものとする。第１の添字は撮影位置を表し、第２の添字は撮像部（第１撮像部１１によるものがＬ、第２撮像部１２によるものがＲ）を表す。例えば、画像ＰＡＬは第１撮影位置Ａにおいて第１撮像部１１で得た画像であり、画像ＰＡＲは第１撮影位置Ａにおいて第２撮像部１２で得た画像である。同様に、画像ＰＢＬは第２撮影位置Ｂにおいて第１撮像部１１で得た画像であり、画像ＰＢＲは第２撮影位置Ｂにおいて第２撮像部１２で得た画像である。測定部１５では、これら４種の画像ＰＡＬ，ＰＡＲ，ＰＢＬ，ＰＢＲ-のうち少なくとも３つの画像を使用して被写体の３次元データを算出する。
【００３７】
図２に示すように、測定部１５は、特徴点検出部２１、対応点検出部２２、回転行列算出部２３、並進行列算出部２４、並進距離算出部２５、３次元データ算出部２６を備える。
【００３８】
特徴点検出部２１は、入力された画像の特徴点を複数検出し、座標等の特徴点の情報を対応点検出部２２や回転行列算出部２３、並進行列算出部２４に入力する。特徴点は、例えば、被写体の角（コーナー）、線分の端点、交差点、分岐点等である。これらのどれを検出するか等、特徴点検出部２１が検出する特徴点の具体的な種類は任意である。また、特徴点検出部２１が行う特徴点検出処理のアルゴリズムは任意であり、例えば、コーナーを特徴点として検出するには、例えば、MoravecやHarrisのアルゴリズムを用いることができる。
【００３９】
なお、３次元データの算出には少なくとも８点の特徴点が必要なので、８点以上の特徴点が検出されるように、特徴点の種類が選定される。また、検出した特徴点が８点に満たない場合、特徴点検出部２１は、検出する特徴点の種類または特徴点を検出するためのアルゴリズムを変更して、必ず８点以上の特徴点を検出する。もちろん、特徴点の種類や検出アルゴリズムを変更しても特徴点を８点検出できない場合には、エラーを通知し、使用する画像の変更（あるいは撮影のやり直し）を促す。
【００４０】
具体的な被写体の形状等にもよるが、多くの場合、特徴点検出部２１は８点以上の多数の特徴点を検出する。このため、特徴点検出部２１は、検出した多数の特徴点から、使用する特徴点を８点〜十数点程度を選出する。多数の特徴点が検出された場合に、特徴点検出部２１が選出する特徴点の個数は８点以上であれば任意である。検出したすべての特徴点を使用しても良いが、後に行う対応点の検出等で長大な時間を要することになるので、精度が確保できる範囲内で上述のように少数の特徴点を選出して用いることが好ましい。
【００４１】
対応点検出部２２は、特徴点検出部２１から特徴点の情報を受けると、特徴点を検出した画像とは異なる画像から、各特徴点に対応する対応点をそれぞれ検出する。対応点検出部２２が行う対応点検出処理のアルゴリズムは任意であり、例えば、ブロックマッチング法やＫＬＴ追跡法等を用いることができる。ブロックマッチング法により、対応点を検出する場合、特徴点を検出した画像から、特徴点を含む所定サイズの部分画像を切り出し、この部分画像を拡大（縮小）したり、回転させたりしながら、対応点を検出する画像と比較し、一致度（類似度とも言う）の高い箇所を対応点として検出する。対応点検出部２２が検出した対応点の座標等の対応点の情報は、回転行列算出部２３と並進行列算出部２４に入力される。
【００４２】
また、対応点検出部２２は、１回の３次元測定において、２つの画像から対応点を検出する。例えば、特徴点検出部２１で画像ＰＡＬまたは画像ＰＡＲの一方から特徴点を検出した場合には、対応点検出部２２は、画像ＰＢＬ及び画像ＰＢＲから対応点を検出する。本実施形態では、このパターンに対応する例を説明する。一方、特徴点検出部２１で画像ＰＡＬと画像ＰＡＲからそれぞれ特徴点を検出した場合には、画像ＰＡＬの特徴点に対応する対応点を画像ＰＢＬまたは画像ＰＢＲのいずれか一方から検出し、他方の画像から画像ＰＡＲの特徴点に対応する対応点を検出することもある。これは、後述する第３実施形態の場合である（図１４，図１５参照）。これらのパターンの違いは、設定により変更可能である。
【００４３】
回転行列算出部２３は、特徴点を検出した画像及び検出された特徴点の情報と、対応点を検出した画像及び検出した対応点の情報とに基づき、特徴点を検出した画像を撮影した撮像部の位置を基準として、対応点を検出した画像を撮影した撮像部の回転方向及び回転量を表す回転行列を算出する。
【００４４】
例えば、図３に示すように、回転行列算出部２３は、画像ＰＡＬの特徴点と画像ＰＢＬの対応点に基づいて、第１撮影位置Ａにおける第１撮像部１１を基準とした第２撮影位置Ｂにおける第１撮像部１１の回転方向及び回転量を表す回転行列Ｒ１ａを算出する。
【００４５】
回転行列Ｒ１ａは、例えば、水平面内での回転角θと鉛直方向からの回転角φの２つのパラメータを用いて表される。もちろん、実空間上に互いに直交するＸ軸、Ｙ軸、Ｚ軸を定め、回転行列Ｒ１ａをこれらの各軸の周りの回転角α，β，γを用いて表すこともできる。θ及びφで表した回転行列Ｒ１ａと、α〜γで表した回転行列Ｒ１ａは、表記の仕方は異なるが実質的に同じものである。
【００４６】
同様に、回転行列算出部２３は、画像ＰＡＬの特徴点と画像ＢＰＲの対応点に基づいて、第１撮影位置Ａにおける第１撮像部１１を基準とした第２撮影位置Ｂにおける第２撮像部１２の回転方向及び回転量を表す回転行列Ｒ２ａを算出する。なお、図３では平面的に図示しているため、回転行列Ｒ１ａ，Ｒ２ａが同じ回転を表しているようにも見えるが、３次元測定装置１０が鉛直方向にも回転している場合には回転行列Ｒ１ａ，Ｒ２ａは異なるものであり、回転行列Ｒ２ａは回転行列Ｒ１ａとは異なる回転角θ２，φ２で表される。水平方向にだけ回転している場合には回転行列Ｒ１ａ，Ｒ２ａは等しい。こうして回転行列算出部２３が算出した回転行列Ｒ１ａ，Ｒ２ａは、並進距離算出部２５に入力される。
【００４７】
なお、特徴点を検出した画像及び検出された特徴点の情報と、対応点を検出した画像及び検出した対応点の情報から回転行列を算出する具体的な方法は、例えば、特開平９−２３７３４１号公報に記載されているものを用いることができる。
【００４８】
並進行列算出部２４は、特徴点を検出した画像及び検出された特徴点の情報と、対応点を検出した画像及び検出した対応点の情報とに基づき、特徴点を検出した画像を撮影した撮像部の位置を基準として、対応点を検出した画像を撮影した撮像部の並進移動の方向を表す並進行列を算出する。
【００４９】
具体的には、並進行列算出部２４は、画像ＰＡＬの特徴点と画像ＰＢＬの対応点に基づいて、第１撮影位置Ａにおける第１撮像部１１を基準とした第２撮影位置Ｂにおける第１撮像部１１の並進移動方向を表す並進行列Ｔ１ａを算出する（図３参照）。但し、並進行列Ｔ１ａは規格化されたものだけが算出可能であるために、並進距離の情報は含まれない。
【００５０】
同様に、並進行列算出部２４は、画像ＰＡＬの特徴点と画像ＢＰＲの対応点に基づいて、第１撮影位置Ａにおける第１撮像部１１を基準とした第２撮影位置Ｂにおける第２撮像部１２の方向を表す並進行列Ｔ２ａを算出する。並進行列Ｔ２ａは、第１撮像部１１と第２撮像部１２の位置関係を表すものであるため、厳密には第１撮像部１１や第２撮像部１２の移動を表していないが、本明細書では、第１撮影位置Ａの撮像部（第１撮像部１１または第２撮像部１２）と第２撮像部Ｂの撮像部と位置関係を並進移動と称す。また、第１撮影位置Ａと第２撮影位置Ｂの各撮像部間の距離を並進距離と称す。並進行列Ｔ２ａが規格化されており、並進距離の情報が含まれていないことは並進行列Ｔ１ａと同様である。
【００５１】
こうして並進行列算出部２４が算出した並進行列Ｔ１ａ，Ｔ２ａは、並進距離算出部２５に入力される。
【００５２】
特徴点を検出した画像及び検出された特徴点の情報と、対応点を検出した画像及び検出した対応点の情報から並進行列を算出する具体的な方法は、回転行列の算出方法と同様に、例えば、特開平９−２３７３４１号公報に記載されているものを用いることができる。また、本明細書では説明のために回転行列算出部２３と並進行列算出部２４を別個にしているが、回転行列と並進行列はほぼ同時に対になって算出される。このため、回転行列算出部２３と並進行列算出部２４は、全体として回転行列及び並進行列を算出する一体の回路等である。
【００５３】
上述のように、回転行列は回転方向と回転量を表しているのに対し、並進行列は並進移動の方向だけを表しているので、一組の回転行列と並進行列（Ｒ１ａとＴ１ａ、またはＲ２ａとＴ２ａ）だけでは、第１撮影位置Ａの撮像部に対する第２撮影位置Ｂの撮像部が特定できない。具体的には、図４に示すように、並進行列Ｔ１ａによって第１撮像部１１の並進移動方向が定まり、回転行列Ｒ１ａによって並進移動方向に対する第１撮像部１１の回転方向及び回転角度を定まるが、並進距離が未定であるために、第２撮影位置Ｂの位置には任意性がある。
【００５４】
このため、３次元測定装置１０は、２組の回転行列と並進行列を用いて、第１撮影位置Ａにおける撮像部と第２撮影位置Ｂにおける撮像部間の並進距離を算出する並進距離算出部２５を備える。並進距離算出部２５は、回転行列Ｒ１ａ及び並進行列Ｔ１ａと、回転行列Ｒ２ａ及び並進行列Ｔ２ａを用いて第１撮影位置Ａの第１撮像部１１を基準とした第２撮影位置Ｂにおける第１撮像部１１の並進距離Ｄ１ａ（図３参照）を算出する。並進距離Ｄ１ａが算出されると、並進距離Ｄ１ａと、回転行列Ｒ１ａ，Ｒ２ａ及び並進行列Ｔ１ａ，Ｔ２ａによって、第１撮影位置Ａの撮像部に対する第２撮影位置Ｂの撮像部の位置や向きの任意性はなくなるので、第１撮影位置Ａにおける第１撮像部１１を基準とした第２撮影位置Ｂにおける第２撮像部１２の並進距離Ｄ２も自動的に決まる。また、第１撮影位置Ａにおける第２撮像部１２を基準とした第２撮影位置Ｂにおける第１，第２撮像部１１，１２の並進距離（図示しない）も同様に自動的に定まる。並進距離Ｄ１ａを先に算出しているが、もちろん並進距離Ｄ２を先に算出しても良い。並進距離算出部２５が算出した並進距離Ｄ１ａ，Ｄ２は３次元データ算出部２６に入力される。
【００５５】
３次元データ算出部２６は、下記数１の式に基づいて、画像ＰＡＬ上の座標（ｕ，ｖ）を実空間上の座標（Ｘ，Ｙ，Ｚ）に対応付ける。「ｗ」は画像ＰＡＬと画像ＰＢＬの視差、「ｆ」は画像ＰＡＬを撮影した時の焦点距離、「ｐ」はイメージセンサ１１ｂの画素ピッチである。視差は特徴点と対応点の画素座標の差で表される。例えば、第１撮影位置Ａと第２撮影位置Ｂで水平方向にだけ３次元測定装置１０が回転していた場合には、特徴点のｕ座標と対応点のｕ座標の差（ｗ＝ｕ特−ｕ対）である。なお、並進距離Ｄ１ａ，視差「ｗ」，焦点距離「ｆ」，画素ピッチ「ｐ」を適切なものに置き換えることにより、数１を用いて画像ＰＢＬや画像ＰＢＲ上の座標を実空間上の座標に変換することができる。
【００５６】
【数１】
2014002849.tif 000003
【００５７】
３次元データ算出部２６は、上述のように、画像ＰＡＬ上の座標から算出された実空間上の座標を用いて、被写体の３次元データを算出する。また、特徴点間の長さ等実空間上の寸法等を算出した場合、３次元データ算出部２６は算出した寸法等を画像ＰＡＬに重畳する合成処理をし、ディスプレイ１６に表示させる。また、３次元データ算出部２６で３次元モデルデータを算出した場合は、３次元モデルデータをディスプレイ１６に表示させる。
【００５８】
なお、測定部１５の各部２１〜２６は、具体的には、メモリや各種演算回路と、これらの回路等の動作を統括的に制御するＣＰＵ及び制御用プログラムで構成される。各部２１〜２６を形成する回路等は、各部２１〜２６で一部または全部が共用されているものがあっても良い。
【００５９】
上述のように構成される３次元測定装置１０の作用を説明する。図５に示すように、３次元測定装置１０を用いて第１撮影位置Ａと第２撮影位置Ｂから３次元データを測定する被写体を撮影し、４枚の画像ＰＡＬ，ＰＡＲ，ＰＢＬ，ＰＢＲを取得する（撮影ステップＳ１０）。このとき、第１撮像部１１と第２撮像部１２の重複する撮影範囲内で、できるだけ近い位置に被写体があるようにすることが好ましい。被写体距離が遠いほど、後に算出する３次元データの分解能が低下し、特に、画像の奥行方向の分解能の低下が著しいからである。具体的には、撮影する被写体は１〜３ｍ以内にあることが好ましい。被写体距離がこの程度の範囲内であれば、奥行き方向においても、被写体距離に対して１％程度の分解能が得られる。
【００６０】
４枚の画像ＰＡＬ，ＰＡＲ，ＰＢＬ，ＰＢＲが得られると、まず、画像ＰＡＬから特徴点が検出される（特徴点検出ステップＳ１１）。具体的には、図６に示すように、画像ＰＡＬに被写体Ｈ１，Ｈ２があるとすると、特徴点検出部２１はこれらの被写体Ｈ１，Ｈ２のコーナー等を、それぞれ特徴点Ｆ１〜Ｆ１４として検出する。また、特徴点Ｆ１〜Ｆ１４は全部で１４点あるので、３次元データの算出に使用する８点の特徴点が選出される。例えば、特徴点Ｆ１，Ｆ３，Ｆ４，Ｆ８，Ｆ９，Ｆ１１，Ｆ１３，Ｆ１４が選出されたとする。
【００６１】
こうして特徴点が検出及び選出されると、対応点検出部２２は画像ＰＢＬ及び画像ＰＢＲから対応点を検出する（対応点検出ステップＳ１２）。具体的には、図７に示すように、対応点検出部２２は特徴点を検出した画像ＰＡＬから、特徴点Ｆ１を含む画像ＰＡＬの部分画像３１を切り出し、部分画像３１を適宜拡大させたり、回転させたりしながら、画像ＰＢＬの部分と比較する。そして、一致度が最も高い部分を対応点Ｃ１として検出する。同様にして、他の選出された特徴点Ｆ３，Ｆ４，Ｆ８，Ｆ９，Ｆ１１，Ｆ１３，Ｆ１４の対応点Ｃ３，Ｃ４，Ｃ８，Ｃ９，Ｃ１１，Ｃ１３，Ｃ１４をそれぞれ検出する。また、同様にして、対応点検出部２２は画像ＰＢＲから対応点を検出する。
【００６２】
なお、撮影位置及び撮影の向きによる視差があるために、画像ＰＡＬと画像ＰＢＬでは、各画像内の被写体Ｈ１，Ｈ２の位置や向きが異なっているので、選出した特徴点に対応する対応点が画像ＰＢＬで検出できないことがある。例えば、特徴点Ｆ２や特徴点Ｆ５（図６参照）は、画像ＰＢＬには写っていないので、これらの対応点を画像ＰＢＬで検出することができない。また、一致度が最も高くても、特徴点に全く関係のない部分が対応点として検出されてしまう。このように、対応点が検出できない場合、あるいは、最も高い一致度が規定値に満たない場合には、特徴点が選出し直され、新たに選出された特徴点について再び対応点が検出される。
【００６３】
対応点が検出されると、特徴点と対応点に基づいて回転行列及び並進行列が算出される（ステップＳ１３，１４）。ステップＳ１３，１４は、それぞれ回転行列算出テップでもあり、並進行列算出ステップでもある。
【００６４】
ステップＳ１３では、画像ＰＡＬの特徴点と画像ＰＢＬの対応点の各画像内座標に基づいて、回転行列Ｒ１ａと並進行列Ｔ１ａが算出される。また、ステップＳ１４では、画像ＰＡＬの特徴点と画像ＰＢＲの対応点の各画像内座標に基づいて、回転行列Ｒ２ａと並進行列Ｔ１ａが算出される。すなわち、ステップＳ１３，Ｓ１４によって、第１撮影位置Ａの第１撮像部１１と第２撮影位置Ｂの第１撮像部１１のペア（第１ペア）と、第１撮影位置Ａの第１撮像部１１と第２撮影位置Ｂの第２撮像部１２のペア（第２ペア）のそれぞれについて、回転行列と並進行列が算出される。
【００６５】
回転行列Ｒ１ａ，Ｒ２ａ及び並進行列Ｔ１ａ，Ｔ２ａが算出されると、並進距離算出部２５はこれらを用いて、第２撮影位置Ｂにおける基線長ベクトル３２（図８参照）の位置を探索する（ステップＳ１５）。そして、求めた第２撮影位置Ｂにおける基線長ベクトル３２の位置に基づいて並進距離Ｄ１ａを算出する（ステップＳ１６）。ステップＳ１５及びステップＳ１６が並進距離算出ステップである。
【００６６】
図８に示すように、基線長ベクトル３２は、基線長ＢＬの長さと、回転行列Ｒ１ａ，Ｒ２ａで定まる向きを有し、第２撮影位置Ｂにおける３次元測定装置１０の第１撮像部１１と第２撮像部１２をそれぞれ基点３２ａ及び先端３２ｂとするベクトルである。並進距離算出部２５は、第１撮影位置Ａの第１撮像部１１を基準として並進行列Ｔ１ａが示す直線（以下、Ｔ１ａ方向という）上の任意の点に基線長ベクトル３２の基点３２ａを置き、第１撮影位置Ａの第１撮像部１１を基準として並進行列Ｔ２ａが示す直線（以下、Ｔ２ａ方向という）と先端３２ｂの距離を算出する。そして、Ｔ２ａ方向と先端３２ｂの距離が最も小さくなる基線長ベクトル３２の基点３２ａ及び先端３２ｂの座標を求める。
【００６７】
Ｔ１ａ方向及びＴ２ａ方向は、それぞれ第２撮影位置Ｂの第１撮像部１１と第２撮像部１２がある方向を表しており、Ｔ１ａ方向とＴ２ａ方向の間隔は、第１撮影位置Ａから離れるにしたがって広くなる。しかし、基線長ＢＬの長さは不変であるから、基線長ベクトル３２の基端３２ａをＴ１ａ方向上の任意の位置に置いて第２撮影位置Ｂにおける第１撮像部１１の位置を仮定した場合に、この位置が真の第２撮影位置Ｂであれば、第２撮影位置Ｂにおける第２撮像部１２の位置を示す基線長ベクトル３２の先端３２ｂはＴ２ａ方向上にあるはずである。
【００６８】
すなわち、矢印ｂ１及び矢印ｂ３で示すように、基線長ベクトル３２の基端３２ａを第１撮影位置Ａに対して近くまたは遠くに置きすぎれば、先端３２ｂはＴ２ａ方向から離れるので、基端３２ａの位置をＴ１ａ方向上で変化させながら、先端３２ｂとＴ２ａ方向の距離を算出すれば、矢印ｂ２で示すように、先端３２ｂがＴ２ａ方向に最も近くなった（理想的にはＴ２ａ方向に合致した）位置を第２撮影位置Ｂであると判別できる。
【００６９】
こうして第２撮影位置Ｂの位置が確定すれば、第２撮影位置Ｂにおける第１撮像部１１と第２撮像部１２の位置や、第１撮影位置Ａにおける第１撮像部１１を基準とした各撮像部の並進距離Ｄ１ａ，Ｄ２が定まる。すなわち、基線長ベクトル３２の基端３２ａは、第２撮影位置Ｂにおける第１撮像部１１の位置であり、先端３２ｂは第２撮影位置Ｂにおける第２撮像部１２の位置であるから、第１撮影位置Ａの第１撮像部１１から基端３２ａまでの長さが並進距離Ｄ１ａであり、先端３２ｂまでの長さが並進距離Ｄ２である
【００７０】
上述のように、並進距離Ｄ１ａ，Ｄ２が求まると、３次元データ算出部２６は、並進距離Ｄ１ａと、画像ＰＡＬを撮影した時の焦点距離「ｆ」、視差「ｗ」、イメージセンサ１１ｂの画素ピッチ「ｐ」を用い、前述の数１の式にしたがって画像ＰＡＬ内の座標を実空間座標に対応付けることにより、被写体Ｈ１，Ｈ２の３次元データを算出する（３次元データ算出ステップＳ１７）。そして、３次元データ算出部２６は算出した３次元データをディスプレイ１６に表示する（表示ステップＳ１８）。例えば、図９に示すように、３次元データとして特徴点間の距離を算出した場合には、画像ＰＡＬに特徴点間の距離の表示を重畳して、ディスプレイ１６に表示する。
【００７１】
上述のように、３次元測定装置１０は、基線長ＢＬが既知の第１撮像部１１及び第２撮像部１２を備え、これらによって２箇所の撮影位置から被写体を撮影した画像ＰＡＬ，ＰＢＬ，ＰＢＲを用いることにより、３次元測定装置１０の移動前後の位置関係（並進距離Ｄ１ａ，Ｄ２）及び３次元データを算出する。このため、３次元測定装置１０は、特許文献１，２のように巨大なステレオカメラを形成するために事前に高精度なキャリブレーションを行う必要はなく、特許文献３のように基準被写体を同時に撮影する必要もない。すなわち、３次元測定装置１０は自由に持ち運びながら被写体を撮影するだけで、簡単にかつ高精度に被写体の３次元データを算出することができる。
【００７２】
また、３次元測定装置１０は、３次元データの算出に、画像ＰＡＬと画像ＰＢＬ，画像ＰＡＬと画像ＰＢＲをそれぞれペアにして用い、回転行列や並進行列を算出している。これは、第１撮影位置Ａにおける第１撮像部１１と第２撮影位置Ｂにおける第１撮像部１１のペアや、第１撮影位置Ａにおける第１撮像部１１と第２撮影位置Ｂにおける第２撮像部１２のペアが、実質的に巨大なステレオカメラを形成しているのと等しい。そして、これらのペアの基線長（並進距離Ｄ１ａ，Ｄ２）は基線長ＢＬに比べて長い。このため、３次元測定装置１０は高精度に３次元データを算出することができる。
【００７３】
［第２実施形態］
上述の第１実施形態では、基線長ベクトル３２が正しく求められており、基線長ベクトル３２の基端３２ａをＴ１ａ方向上に置いた場合に、先端３２ｂがＴ２ａ方向にほぼ合致する基線長ベクトル３２の位置があることを前提にしている。しかし、そもそも基線長ベクトル３２が正しく求められていない場合には、先端３２ｂとＴ２ａ方向の距離が最小になったとしても、その位置は第２撮影位置Ｂを表さない。
【００７４】
図１０に示すように、基線長ベクトル３２が、Ｔ１ａ方向とＴ２ａ方向とで定まる面（以下、Ｔ１ａ−Ｔ２ａ平面という）に対してねじれていることがある。例えば、図１０において基端３２ａをＴ１ａ方向上で動かしながら、先端３２ｂとＴ２ａ方向の距離σ１〜σ５を算出すると、距離σ３が最小である。このため、上述の第１実施形態では先端３２ｂとＴ２ａ方向の距離がσ３の基線長ベクトル３２の位置が第２撮影位置Ｂと判別される。
【００７５】
しかし、そもそも基線長ベクトル３２はＴ１ａ−Ｔ２ａ平面内にあるはずのものであるから、基線長ベクトル３２の向きまたはＴ１ａ−Ｔ２ａ平面の少なくともどちらかが誤っているか、誤差が大きいと言える。このような場合には、当然ながら、先端３２ｂとＴ２ａ方向の距離が最小になったとしても、その基線長ベクトル３２の位置が第２撮影位置Ｂを表さない。また、σ１〜σ５の中では最小とはいえ、距離σ３は大きな値であることもある。このように、基線長ベクトル３２がＴ１ａ−Ｔ２ａ平面から浮いているような場合には、回転行列Ｒ１ａ，Ｒ２ａや並進行列Ｔ１ａ，Ｔ２ａを算出し直す必要がある。これは、前述のように基線長ベクトル３２は回転行列Ｒ１ａ，Ｒ２ａによって、Ｔ１ａ−Ｔ２ａ平面は並進行列Ｔ１ａ，Ｔ２ａによって定まるからである。
【００７６】
このため、例えば図１１に示すように、第２撮影位置Ｂを表す基線長ベクトル３２の位置を求めた場合に、その先端３２ｂとＴ２ａ方向の距離の最小値σｍｉｎを閾値σＴＨと比較することにより、回転行列Ｒ１ａ，Ｒ２ａや並進行列Ｔ１ａ，Ｔ２ａの信頼性を検査する（信頼性検査ステップＳ２１）。最小値σｍｉｎが所定閾値σＴＨよりも小さい場合（σｍｉｎ＜σＴＨ）には、基線長ベクトル３２はほぼＴ１ａ−Ｔ２ａ平面内にあるので、求めた基線長ベクトル３２の位置を信頼し、この基線長ベクトル３２の位置に基づいて並進距離Ｄ１ａ，Ｄ２の算出等をする（第１実施形態と同じステップＳ１６〜Ｓ１８）。
【００７７】
一方、最小値σｍｉｎが所定閾値σＴＨ以上の場合（σｍｉｎ≧σＴＨ）には、基線長ベクトル３２がＴ１ａ−Ｔ２ａ平面から浮いていると判断し、条件を変更して、画像ＰＢＬ及び画像ＰＢＲの対応点を検出し直す（対応点再検出ステップＳ２２）。そして、検出し直した対応点に基づいて、新たな回転行列Ｒ１ａ，Ｒ２ａや並進行列Ｔ１ａ，Ｔ２ａし、これらを用いて第２撮影位置Ｂを表す基線長ベクトル３２の位置を算出する（第１実施形態と同じステップＳ１３〜Ｓ１６）。
【００７８】
このように、条件を変えて対応点を再検出することにより、対応点検出の精度を上げれば、回転行列Ｒ１ａ，Ｒ２ａや並進行列Ｔ１ａ，Ｔ２ａの誤差が減少する。回転行列Ｒ１ａ，Ｒ２ａや並進行列Ｔ１ａ，Ｔ２ａの制度が向上すれば、最小値σｍｉｎを閾値σＴＨより小さく抑えられるので、結果として精度良く並進距離や３次元データを算出することができる。また、誤った第２撮影位置Ｂを求めてしまい、結果的に誤差が大きい３次元データを算出してしまうことを防止できる。
【００７９】
なお、対応点を検出し直す場合に変更する条件とは、例えば、使用する特徴点の組み合わせを変更すること、部分画像３１の大きさを変えること、部分画像３１の拡大率や縮小率（拡大縮小率）を変えること、処理を速くするために部分画像３１の拡大や回転をせずに対応点を検出していた場合には部分画像３１の拡大や回転も行うようにすること、対応点検出のアルゴリズムを変更すること等のいずれか、またはこれらの組み合わせである。
【００８０】
また、上述の第２実施形態では、対応点を検出し直すが、特徴点の検出からやり直しても良い。特徴点の算出をやり直す場合には、先に検出した特徴点から選出する特徴点の組み合わせを選出し直しても良いし、特徴点を検出するアルゴリズムを変更して、新たな特徴点を検出しても良い。上述の第２実施形態のように、対応点の再検出を試みた後、対応点の再検出だけでは最小値σｍｉｎを閾値σＴＨより小さく抑えられなかった場合に、特徴点の再検出を行うようにしても良い。逆に、特徴点の再検出を先に試み、特徴点の再検出だけでは最小値σｍｉｎを閾値σＴＨより小さく抑えられなかった場合に、対応点の再検出を試みるようにしても良い。
【００８１】
［第３実施形態］
上述の第１，第２実施形態では、画像ＰＡＬと画像ＰＢＬ，ＰＢＲを用いることにより、第１撮影位置Ａの第１撮像部１１と第２撮影位置Ｂの第１撮像部１１のペアについての回転行列Ｒ１ａ及び並進行列Ｔ１ａと、第１撮影位置Ａの第１撮像部１１と第２撮影位置Ｂの第２撮像部１２のペアについての回転行列Ｒ２ａ及び並進行列Ｔ２ａを用いるが、この他のペアについて算出した回転行列や並進行列を用いることも可能である。また、全４種のペアのうち、３次元データの算出に用いる２種のペアは任意である。
【００８２】
例えば、図１２に示すように、第１撮影位置Ａの第１撮像部１１と第２撮影位置Ｂの第１撮像部１１のペアについて回転行列Ｒ１ａと並進行列Ｔ１ａを算出し、第１撮影位置Ａの第２撮像部１２と第２撮影位置Ｂの第２撮像部１２のペアについて回転行列Ｒ２ｂと並進行列Ｔ２ｂを算出する。そして、これらの回転行列Ｒ１ａ，Ｒ２ｂ及び並進行列Ｔ１ａ，Ｔ２ｂを用いて、並進距離Ｄ１ａ，Ｄ２ｂを算出し、さらに３次元データを算出することができる。
【００８３】
この例ではＴ１ａ方向とＴ２ｂ方向が交差しているが、図１３に示すように、第２撮影位置Ｂを表す基線長ベクトル３２の探索方法は第１，第２実施形態と同様である。すなわち、真の第２撮影位置Ｂから離れるほど、基線長ベクトル３２の先端３２ｂとＴ２ｂ方向の距離が離れるので、この距離が最小になる基線長ベクトル３２の位置を第２撮影位置Ｂの位置と判別することができる。
【００８４】
このように、第１撮影位置Ａの第１撮像部１１と第２撮影位置Ｂの第１撮像部１１のペアと、第１撮影位置Ａの第２撮像部１２と第２撮影位置Ｂの第２撮像部１２のペアについての回転行列Ｒ１ａ，Ｒ２ｂ及び並進行列Ｔ１ａ，Ｔ２ｂを利用するには、画像ＰＡＬ及びＰＡＲからそれぞれ特徴点を算出し、画像ＰＢＬから画像ＰＡＬの特徴点に対応する対応点を検出し、画像ＰＢＲから画像ＰＡＲの特徴点に対応する対応点を検出する必要がある。このため、回転行列Ｒ１ａ，Ｒ２ｂ及び並進行列Ｔ１ａ，Ｔ２ｂを利用する場合、第１実施形態の場合よりも特徴点ステップが増えるが、特徴点検出や対応点検出の誤差の影響を受け難い。例えば、第１実施形態の場合には、特徴点検出や対応点検出に誤差があれば、その誤差の大きさがそのまま直接的に３次元データの算出誤差につながる。一方、上述のように回転行列Ｒ１ａ，Ｒ２ｂ及び並進行列Ｔ１ａ，Ｔ２ｂを利用する場合、回転行列Ｒ１ａ及び並進行列Ｔ１ａの元になる特徴点及び対応点と、回転行列Ｒ２ｂ及び並進行列Ｔ２ｂの元になる特徴点及び対応点は各々別々に検出されるので、一方に前述と同量の誤差があったとしても、他方に誤差がなければ、３次元データの算出誤差は概ね半分程度に抑えられる。
【００８５】
また、回転行列Ｒ１ａ，Ｒ２ｂ及び並進行列Ｔ１ａ，Ｔ２ｂは次のように利用することが特に好ましい。図１４及び図１５に示すように、まずは第１実施形態と同様に、画像ＰＡＬと画像ＰＡＲ，ＰＢＲを用いて回転行列Ｒ１ａ，Ｒ２ａ及び並進行列Ｔ１ａ，Ｔ２ａを算出し、並進距離Ｄ１ａ，Ｄ２を算出する（Ｓ１０〜Ｓ１６）。次に、画像ＰＡＲから特徴点を検出して、使用する特徴点を選出し（第２特徴点検出ステップＳ３１）、この画像ＰＡＲの特徴点に対応する対応点を画像ＰＢＲから検出する（第２対応点検出ステップＳ３２）。そして、画像ＰＡＲの特徴点と画像ＰＢＲの対応点に基づいて、回転行列Ｒ２ｂと並進行列Ｔ２ｂを算出する（ステップＳ３３）。ステップＳ３３は、第２の回転行列算出ステップであり、第２の並進行列算出ステップである。こうして算出した回転行列Ｒ２ｂと並進行列Ｔ２ｂと、先にステップＳ１４で算出した回転行列Ｒ１ａと並進行列Ｔ１ａを用いて、第２撮影位置Ｂに対応する基線長ベクトル３２の位置を探索し（Ｓ３４）、求めた第２撮影位置Ｂに対応する基線長ベクトル３２の位置から並進距離Ｄ１ａを算出する（Ｓ３５）。
【００８６】
算出した並進距離Ｄ１ａは、第１撮影位置Ａの第１撮像部１１と第２撮影位置Ｂの第１撮像部１１の距離ではあるが、使用した画像の組み合わせ（回転行列及び並進行列）が異なるので、先にステップＳ１６で算出した値と異なることがある。このため、以下では、区別のためにステップＳ３４，Ｓ３５で算出する並進距離を並進距離Ｄ１ｂと表記する。
【００８７】
３次元データ算出部２６は、上述のようにして使用する画像の組み合わせを変えて算出された同じ距離を表すはずの２つの並進距離Ｄ１ａと並進距離Ｄ１ｂを所定の閾値ＤＴＨと比較する（Ｓ３６）。並進距離Ｄ１ａと並進距離Ｄ１ｂの差が閾値ＤＴＨよりも小さい場合には（｜Ｄ１ａ−Ｄ１ｂ｜＜ＤＴＨ）、３次元データ算出部２６は、並進距離Ｄ１ａを用いて３次元データを算出し、ディスプレイ１６に表示する（Ｓ１７，Ｓ１８）。これは、２種類の方法で算出した同じ長さの誤差が小さければ、元の算出方法が信頼できると判断できるからである。
【００８８】
一方、並進距離Ｄ１ａと並進距離Ｄ１ｂの差が閾値ＤＴＨ以上の値であった場合には（｜Ｄ１ａ−Ｄ１ｂ｜≧ＤＴＨ）、並進距離Ｄ１ａと並進距離Ｄ１ｂのうち少なくとも一方は誤差が大きいと判断し、第２実施形態のように、対応点の検出条件を変更する（Ｓ３７）。そして変更後の条件で対応点を再検出し、回転行列や並進行列、さらには並進距離Ｄ１ａ及び並進距離Ｄ１ｂを算出し直す。対応点を再検出する場合に変更する条件は、第２実施形態と同様である。また、前述のように、特徴点を再算出しても良いこと等も第２実施形態と同様である。
【００８９】
上述のように、回転行列Ｒ１ａ，Ｒ２ｂ及び並進行列Ｔ１ａ，Ｔ２ｂを利用すれば、単に並進距離を算出できるだけでなく、回転行列Ｒ１ａ，Ｒ２ｂ及び並進行列Ｔ１ａ，Ｔ２ｂが３次元データの算出精度のチェックにも利用できるので効率的である。
【００９０】
なお、上述の第３実施形態では、並進距離Ｄ１ａと並進距離Ｄ１ｂを比較したが、並進距離Ｄ１ａを用いた３次元データと並進距離Ｄ１ｂを用いて算出した３次元データを比較しても良い。３次元データの比較とは、例えば、同一の特徴点の実空間座標の比較、同一の特徴点間距離の比較等である。
【００９１】
なお、上述の第３実施形態では、並進距離Ｄ１ａと並進距離Ｄ１ｂの差が閾値ＤＴＨよりも小さい場合に、並進距離Ｄ１ａに基づいて３次元データを算出するが、並進距離Ｄ１ｂを用いて３次元データを算出しても良い。
【００９２】
なお、上述の第３実施形態では、第１撮影位置Ａの第１撮像部１１と第２撮影位置Ｂの第１撮像部１１の第１ペアと、第１撮影位置Ａの第１撮像部１１と第２撮影位置Ｂの第２撮像部１２の第２ペアと、第１撮影位置Ａの第２撮像部１２と第２撮影位置Ｂの第２撮像部１２の第３ペアの回転行列及び並進行列を利用しているが、並進距離Ｄ１ａを算出するために用いる２つのペアと並進距離Ｄ１ｂを算出するために用いる２つのペアは任意である。当然、第１撮影位置Ａにおける第２撮像部１２と第２撮影位置Ｂにおける第１撮像部１１との第４ペアを用いることもできる。但し、並進距離Ｄ１ａを算出するために用いる２つのペアのうち１つと、並進距離Ｄ１ｂを算出するために用いる２つのペアのうちの１つは共通でなければならない。
【００９３】
なお、上述の第３実施形態では、２種類の方法で同じ並進距離Ｄ１ａ，Ｄ１ｂを算出し、これらの差が大きい場合には対応点を再検出するが、図１６及び図１７に示すように、並進距離Ｄ１ａ，Ｄ１ｂを算出する元になった、基線長ベクトル３２の先端３２基線長ベクトル３２の先端３２とＴ２ａ方向，Ｔ２ｂ方向の距離の最小値σａ，σｂを比較しても良い（Ｓ４１）。このとき、例えば、最小値σａが最小値σｂよりも小さい場合には（σａ＜σｂ）、誤差がより小さい並進距離Ｄ１ａを信頼し、並進距離Ｄ１ａに基づいて３次元データを算出する（Ｓ４２）。一方、最小値σａが最小値σｂ以上の値の場合には（σａ≧σｂ）、誤差がより小さい並進距離Ｄ１ｂを信頼し、並進距離Ｄ１ｂに基づいて３次元データを算出する（Ｓ４３）。こうすると、誤差が大きい３次元データが算出されてしまうことを防止しつつ、対応点等を再検出する場合に比べれば速く３次元データを算出することができる。
【００９４】
さらに、上述の変形例では、回転行列及び並進行列を算出する撮像部のペアを２種類にしているが、使用する特徴点の組み合わせや、対応点を検出するための条件が異なる２つの条件で並進距離Ｄ１ａ，Ｄ１ｂを算出し、これらの並進距離Ｄ１ａ，Ｄ１ｂを算出した時の最小値σａと最小値σｂを比較しても良い。
【００９５】
なお、上述の第２，第３実施形態では、３次元データの算出精度が良くないと判断される場合に、対応点検出や特徴点検出し、同じ方法で３次元データの算出をやり直すが、代わりに上述の第１〜第３実施形態とは全く別の方法で３次元データの算出をやり直しても良い。また、対応点検出や特徴点検出をやり直しても、３次元データの算出精度が向上しなかった場合には、この別の方法で３次元データの算出をやり直すことが好ましい。
【００９６】
別の方法とは、例えば、図１８に示す方法である。具体的には、まず、第１撮影位置Ａの第１撮像部１１で得た画像ＰＡＬから特徴点を検出し（Ｓ５１）、第２撮影位置Ｂの第１撮像部１１で得た画像ＰＢＬにおいてその対応点を検出する（Ｓ５２）。そして、検出した特徴点と対応点を用いて回転行列Ｒ１ａと並進行列Ｔ１ａを算出する（Ｓ５３）。このステップＳ５１〜Ｓ５３の特徴点検出、対応点検出、及び回転行列と並進行列の算出は省略しても良い。また、検出条件を変えてステップＳ５４及びＳ５５を実行し、ステップＳ５３で回転行列Ｒ１ａと並進行列Ｔ１ａを算出しても良い。
【００９７】
次に、並進距離を任意値「ｄ」と仮定し、この並進距離の仮定値ｄ（以下、仮想並進距離ｄという）と回転行列Ｒ１ａと並進行列Ｔ１ａを用いて、第１撮影位置Ａの第１撮像部１１に対する第２撮影位置Ｂの第２撮像部１２の回転行列ｒ１と並進行列ｔ２を算出する（Ｓ５４）。さらに、こうして求めた回転行列ｒ１と並進行列ｔ２と仮想並進距離「ｄ」を用い、第１撮影位置Ａの第１撮像部１１から所定の特徴点への視線を表すエピポーラ線を画像ＰＢＲ上で算出する（Ｓ５５）。図１９に示すように、エピポーラ線は特徴点毎に引くことができ、例えば、エピポーラ線Ｅ１，Ｅ１０，Ｅ１３は、特徴点Ｆ１，Ｆ１０，Ｆ１３を通るエピポーラ線である。画像ＰＢＲのエピポーラ線とは、こうしたエピポーラ線を画像ＰＢＲ上で描いた直線である。
【００９８】
次いで、算出したエピポーラ線に沿って、所定の特徴点との一致度を算出する（Ｓ５６）。そして、上述のステップＳ５５及びステップＳ５６のエピポーラ線の算出と一致度の算出を、仮想並進距離「ｄ」を変えながら繰り返し行うことにより、一致度が最も高くなるエピポーラ線を選出する（Ｓ５７）。
【００９９】
具体的には、図２０に示すように、仮想並進距離「ｄ」をｄ１〜ｄ４に変えながら特徴点Ｆ１０のエピポーラ線Ｅ１０を算出すると、仮想並進距離がｄ１の場合のエピポーラ線Ｅ１０［ｄ１］、仮想並進距離がｄ２の場合のエピポーラ線Ｅ１０［ｄ２］、仮想並進距離がｄ３の場合のエピポーラ線Ｅ１０［ｄ３］、仮想並進距離がｄ４の場合のエピポーラ線Ｅ１０［ｄ４］はそれぞれ異なる。本来のエピポーラ線は特徴点を通るはずだが、エピポーラ線を算出するために用いた並進距離が仮想値であるために、仮想並進距離「ｄ」が真の並進距離「ｄ」と異なると、その分、画像ＰＢＲ上の対応点Ｃ１０から離れた位置を通る。このため、エピポーラ線Ｅ１０［ｄ１］〜Ｅ１０［ｄ４］の各々に沿って、特徴点Ｅ１０を含む部分画像３１と画像ＰＢＲを比較すると、特徴点Ｅ１０の対応点Ｃ１０を通るエピポーラ線Ｅ１０［ｄ２］において、一致度が最も高くなる点がある。前述のように、エピポーラ線は本来特徴点を通るものなので、一致度が最も高い点があるエピポーラ線Ｅ１０［ｄ２］が、仮想並進距離「ｄ」が正しい本来のエピポーラ線であると推定できる。なお、図２０では、対応点Ｃ１０を説明のために記載しているが、対応点Ｃ１０を検出する必要はない。一致度の算出が対応点Ｃ１０の検出に相当している。
【０１００】
こうして一致度が最も高いエピポーラ線Ｅ１０［ｄ２］が選出されれば、このエピポーラ線Ｅ１０［ｄ２］を算出するために使用した仮想並進距離ｄ２が、真の並進距離であると推定できるので、仮想並進距離ｄ２を用いて３次元データを算出することができる（Ｓ５７）。
【０１０１】
なお、上述のようにエピポーラ線を用いて並進距離を求めるには、図２１に示すように、測定部１５にエピポーラ線算出部４１と一致度評価部４２を設けておく必要がある。エピポーラ線算出部４１は、仮想並進距離「ｄ」と、回転行列ｒ２ａ及び並進行列ｔ２ａとを用いたエピポーラ線の算出（Ｓ５５）を行う。一致度評価部４２は、エピポーラ線算出部４１で算出したエピポーラ線上での一致度の算出と、一致度が最も高いエピポーラ線の選出を行う（Ｓ５６〜Ｓ５７）。仮想並進距離「ｄ」を用いた回転行列ｒ２ａと並進行列ｔ２ａの算出（Ｓ５４）は、それぞれ回転行列算出部２３と並進行列算出部２４で行えば良い。
【０１０２】
なお、上述の第１〜第３実施形態では、３次元測定装置１０に第１撮像部１１と第２撮像部１２を備え、さらに測定部１５も内蔵しているが、これらは分離していても良い。すなわち、図２２に示すように、第１撮像部１１と第２撮像部１２を備えるステレオカメラ５１と、測定部１５を備える画像処理装置５２によって３次元測定システム５３を構成しても良い。この場合、ステレオカメラ５１は、基線長ＢＬが既知の２つの撮像部（第１撮像部１１と第２撮像部１２）を備えていなければならないことを除けば、その他の構成は任意である。また、画像処理装置５２は、例えば、ＣＰＵや各種演算回路等で測定部１５を構成したコンピュータであり、測定部１５の他には、例えば、ステレオカメラ５１から画像ＰＡＬ，ＰＡＲ，ＰＢＬ，ＰＢＲを受け取るためのインターフェイスや、これらの画像を少なくとも一時的に記憶するメモリ５４、測定部１５で算出した３次元データを表示するディスプレイ５５等を備える。
【０１０３】
また、上述のようにステレオカメラと画像処理装置を分離して３次元測定システムにする場合には、図２３に示すように、２台のステレオカメラ５１ａ，５１ｂと、画像処理装置５２とで３次元測定システム５６を構成しても良い。そして、第１撮影位置Ａにおいては一方のステレオカメラ５１ａを用いて被写体を撮影し、第２撮影位置Ｂにおいては他方のステレオカメラ５１ｂを用いて被写体を撮影しても良い。画像処理装置５２では、このように２つの撮影位置Ａ，Ｂにおいてそれぞれ別々のステレオカメラ５１ａ，５１ｂを用いて撮影した画像を用いても３次元データを算出することができる。ステレオカメラ５１ａ，５１ｂは同機種であることが好ましいが、基線長ＢＬが等しい（または基線長ＢＬを他方に合わせることができる）ならば、異なる機種を用いることもできる。また、１つの３次元測定システムに、３台以上のステレオカメラを備えるようにしても良い。この場合、３以上の撮影位置で撮影した画像のうち、２つの撮影位置で撮影した画像を選択的に用いて３次元データを算出することができる。
【０１０４】
さらに、上述のように３次元測定装置１０をステレオカメラ５１と画像処理装置５２に分離して設けた３次元測定システム１０では、図２４に示すように、ステレオカメラ５１を車載カメラにすることもできる。この場合、自動車５７で被写体Ｈ１，Ｈ２の周辺を走りながら撮影をし、その後、撮りためた画像を画像処理装置５２に取り込んで、被写体Ｈ１，Ｈ２の３次元データを算出することができる。このように、ステレオカメラ５１を車載カメラにすれば、移動速度の利点を活かしつつ、容易かつ精密に被写体の３次元データを得ることができる。但し、ステレオカメラ５１を車載カメラにする場合でも、特許文献１のような巨大なステレオカメラにする必要はなく、基線長ＢＬが既知のコンパクトなステレオカメラ５１を用いることができ、かつ、配置や向きを精密に測定したりする必要もない。ステレオカメラ５１は単に被写体Ｈ１，Ｈ２を撮影可能なように車載すれば良い。このため、自動車５７の向き等によって、第１撮像部１１と第２撮像部１２の重複する撮影範囲にうまく被写体がおさまらない場合には、適宜ステレオカメラ５１の位置や向きを調節すれば良い。このため、自動車５７の大きさや道路の向き、ステレオカメラの向きの調節のし難さ等によるデメリットはない。当然、測定部１５を含む３次元測定装置１０自体を車載しても良い。
【０１０５】
なお、上述の第１〜第３実施形態では、３次元測定装置１０の基線長ＢＬが不変であるが、基線長を可変にしても良い。但し、３次元データの算出に使用する全ての画像は、同じ基線長で撮影されなければならない。また、少なくとも３次元データを算出する場合に、変化させた基線長ＢＬは既知でなければならない。また、３次元データの測定精度を劣化させないためには、変化させた基線長ＢＬは、３次元データの算出に必要な程度に精密に測定されている必要がある。
【０１０６】
なお、上述の第１〜第３実施形態では、基線長ベクトル３２の基端３２ａをＴ１ａ方向上に置き、先端３２ｂとＴ２ａ方向の距離を算出することによって第２撮影位置Ｂを特定したが、先端３２ａをＴ２ａ方向上に置き、基端３２ａとＴ１ａ方向の距離を算出することによっても第２撮影位置Ｂを特定することができる。また、基線長ベクトル３２の基端３２ａと先端３２ｂを逆に定義しても良い。
【０１０７】
なお、上述の第１〜第３実施形態では、第１撮像部１１と第２撮像部１２の各撮影光軸Ｌ１，Ｌ２が平行であるが、第１撮像部１１と第２撮像部１２を相対的に傾けて配置し、各撮影光軸Ｌ１，Ｌ２を非平行にしても良い。この場合、３次元データを算出する計算が煩雑になるが、基本的な原理は、上述の第１〜第３実施形態と同様である。具体的には、基線長ベクトル３２をＴ１ａ方向上で動かす場合に、基点を置く位置と撮影光軸Ｌ１，Ｌ２のなす角度に応じて基線長ベクトル３２を適宜拡大または縮小し、第２撮影位置Ｂの探索をすれば良い。
【０１０８】
なお、上述の実施形態では、第１撮像部１１と第２撮像部１２は同時に撮影を行うが、第１撮像部１１と第２撮像部１２の撮影タイミングは厳密に同時である必要はない。撮影位置や３次元測定装置１０の傾き等が変化しないとみなせる範囲内でほぼ同時に撮影をすることができれば、例えば第１撮像部１１と第２撮像部１２で順に撮影するようにしても良い。
【符号の説明】
【０１０９】
１０  ３次元測定装置
１１  第１撮像部
１２  第２撮像部
１５  測定部
２１  特徴点検出部
２２  対応点検出部
２３  回転行列算出部
２４  並進行列算出部
２５  並進距離算出部
２６  ３次元データ算出部
３１  部分画像
３２  基線長ベクトル
４１  エピポーラ線算出部
４２  一致度評価部
５１  ステレオカメラ
５２  画像処理装置
【図１】
2014002849.tif 000004
【図２】
2014002849.tif 000005
【図３】
2014002849.tif 000006
【図４】
2014002849.tif 000007
【図５】
2014002849.tif 000008
【図６】
2014002849.tif 000009
【図７】
2014002849.tif 000010
【図８】
2014002849.tif 000011
【図９】
2014002849.tif 000012
【図１０】
2014002849.tif 000013
【図１１】
2014002849.tif 000014
【図１２】
2014002849.tif 000015
【図１３】
2014002849.tif 000016
【図１４】
2014002849.tif 000017
【図１５】
2014002849.tif 000018
【図１６】
2014002849.tif 000019
【図１７】
2014002849.tif 000020
【図１８】
2014002849.tif 000021
【図１９】
2014002849.tif 000022
【図２０】
2014002849.tif 000023
【図２１】
2014002849.tif 000024
【図２２】
2014002849.tif 000025
【図２３】
2014002849.tif 000026
【図２４】
2014002849.tif 000027
【手続補正書】
【提出日】平成27年2月4日(2015.2.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
被写体を撮像する第１撮像部と、
前記第１撮像部に対して所定の基線長をおいて配置され、前記第１撮像部が撮像する前記被写体の少なくとも一部を含む範囲を撮像する第２撮像部と、
第１撮影位置において前記第１撮像部及び前記第２撮像部によって前記被写体を撮像して得た２枚の画像のうち少なくともいずれか一方の画像から複数の特徴点を検出する特徴点検出部と、
前記第１撮影位置とは異なる第２撮影位置において前記第１撮像部及び前記第２撮像部によって前記被写体を撮像して得た２枚の画像の各々について、前記特徴点に対応する対応点を検出する対応点検出部と、
前記特徴点と前記対応点に基づき、前記第１撮影位置における前記第１撮像部または前記第２撮像部の向きを基準として、前記第２撮影位置における前記第１撮像部の回転方向及び回転量を表す第１回転行列と、前記第２撮像部の回転方向及び回転量を表す第２回転行列を算出する回転行列算出部と、
前記特徴点と前記対応点に基づき、前記第１撮影位置における前記第１撮像部または前記第２撮像部の位置を基準として、前記第２撮影位置における前記第１撮像部の並進移動方向を表す第１並進行列と、前記第２撮像部の並進移動方向を表す第２並進行列を算出する並進行列算出部と、
前記第１回転行列または前記第２回転行列の少なくとも一方が零行列でない場合に、前記第１回転行列、前記第２回転行列、前記第１並進行列、及び前記第２並進行列と、前記基線長に基づいて、前記第１撮影位置における前記第１撮像部または前記第２撮像部を基準とした前記第２撮影位置における前記第１撮像部または前記第２撮像部の並進距離を算出する並進距離算出部と、
前記並進距離に基づいて、前記被写体の３次元データを算出する３次元データ算出部と、
を備える３次元測定装置。
【請求項２】
前記並進距離算出部は、基線長ベクトルの先端と前記第１方向または前記第２方向のうち他方の距離が最小になる前記基線長ベクトルの位置を求め、当該位置にある前記基線長ベクトルの基端及び先端の位置に基づいて、各々の前記並進距離を算出し、
前記基線長ベクトルは、前記基線長の長さを有し、前記第１回転行列及び前記第２回転行列によって定まる基線長ベクトルの基端を、前記第１並進行列が表す第１方向または前記第２並進行列が表す第２方向のうち一方の上に置かれているものである請求項１に記載の３次元測定装置。
【請求項３】
前記並進距離算出部は、前記第１方向と前記第２方向のうち前記他方の方向と前記基線長ベクトルの先端との距離の最小値を所定閾値と比較し、前記最小値が前記所定閾値以上の場合に、条件を変えて前記並進距離を再算出する請求項２に記載の３次元測定装置。
【請求項４】
前記並進距離算出部は、前記第１撮影位置及び前記第２撮影位置で得た４枚の画像のうち任意の組み合わせの複数の画像を用いて算出した第１の前記並進距離と、前記第１の並進距離を算出する場合に使用した前記複数の画像とは異なる組み合わせの複数の画像を用いて算出し、前記第１の並進距離と同じ撮像部間の距離を表す第２の前記並進距離との差が所定閾値よりも大きい場合に、条件を変えて前記並進距離を再算出する請求項１に記載の３次元測定装置。
【請求項５】
前記並進距離算出部が前記並進距離を再算出する場合に、前記対応点検出部は前記対応点を検出するための条件を変えて、前記対応点を再検出し、前記回転行列算出部，前記並進行列算出部及び前記並進距離算出部は、前記特徴点と再検出した前記対応点に基づいて、前記回転行列、前記並進行列、及び前記並進距離を再算出する請求項３に記載の３次元測定装置。
【請求項６】
前記対応点を再検出する場合に変える条件は、前記特徴点の組み合わせである請求項５に記載の３次元測定装置。
【請求項７】
前記対応点検出部は、前記対応点の検出を、前記特徴点を含む前記第１撮影位置で撮影した画像のうち前記特徴点を含む部分画像と、前記第２撮影位置で撮影した画像を部分毎に比較して一致度が高い前記部分を前記対応点とするブロックマッチング法により行い、
前記対応点を再検出する場合に変える条件には、前記部分画像と前記第２撮影位置で撮影した画像を部分毎に比較するときの前記部分画像の拡大縮小率または回転角度のうちいずれかを含む請求項５に記載の３次元測定装置。
【請求項８】
前記特徴点検出部は、前記特徴点の検出条件を変えて、前記特徴点を再検出し、前記対応点検出部，前記回転行列算出部，前記並進行列算出部及び前記並進距離算出部は、再検出された前記特徴点に基づいて、前記対応点の検出、前記回転行列、前記並進行列、及び前記並進距離を再算出する請求項３に記載の３次元測定装置。
【請求項９】
前記回転行列算出部は、前記第１撮像部の並進距離である仮定値、前記第１回転行列及び前記第１並進行列に基づいて、前記第２回転行列を再算出し、
前記並進行列算出部は、前記仮定値、前記第１回転行列及び前記第１並進行列に基づいて、前記第２並進行列を再算出し、
前記並進距離算出部は、前記仮定値と再算出した前記第２回転行列及び前記第２並進行列に基づいて、前記第２撮影位置で得た画像上で少なくとも１つの前記特徴点について定まるエピポーラ線を算出し、前記エピポーラ線上において前記特徴点との一致度を求め、さらに前記仮定値を変更して前記一致度の算出を繰り返し行って、前記一致度が最も高くなる前記エピポーラ線を選出することにより前記第２撮影位置を特定して、前記並進距離を再算出する請求項３に記載の３次元測定装置。
【請求項１０】
前記並進距離算出部は、複数の前記特徴点のうち前記対応点を検出する前記特徴点の組み合わせ、または前記対応点を検出するための条件が異なる複数の条件で前記並進距離を予め算出し、
前記３次元データ算出部は、前記第１方向と前記第２方向のうち前記他方の方向と前記基線長ベクトルの先端との距離の最小値を比較して、前記最小値が小さい前記条件で算出された前記並進距離を使用する請求項２に記載の３次元測定装置。
【請求項１１】
前記３次元データは、前記被写体の実空間上での寸法または前記被写体の３次元モデルデータである請求項１に記載の３次元測定装置。
【請求項１２】
被写体を撮像する第１撮像部と、前記第１撮像部に対して所定の基線長をおいて配置され、前記第１撮像部が撮像する前記被写体の少なくとも一部を含む範囲を撮像する第２撮像部とを有する１つまたは２つのステレオカメラによって、第１撮影位置と第２撮影位置でそれぞれ撮影した画像を記憶する記憶部と、
前記第１撮影位置において前記第１撮像部及び前記第２撮像部によって前記被写体を撮像して得た２枚の画像のうち少なくともいずれか一方の画像から複数の特徴点を検出する特徴点検出部と、
前記第２撮影位置において前記第１撮像部及び前記第２撮像部によって前記被写体を撮像して得た２枚の画像の各々について、前記特徴点に対応する対応点を検出する対応点検出部と、
前記特徴点と前記対応点に基づき、前記第１撮影位置における前記第１撮像部または前記第２撮像部の向きを基準として、前記第２撮影位置における前記第１撮像部の回転方向及び回転量を表す第１回転行列と、前記第２撮像部の回転方向及び回転量を表す第２回転行列を算出する回転行列算出部と、
前記特徴点と前記対応点に基づき、前記第１撮影位置における前記第１撮像部または前記第２撮像部の位置を基準として、前記第２撮影位置における前記第１撮像部の並進移動方向を表す第１並進行列と、前記第２撮像部の並進移動方向を表す第２並進行列を算出する並進行列算出部と、
前記第１回転行列または前記第２回転行列の少なくとも一方が零行列でない場合に、前記第１回転行列、前記第２回転行列、前記第１並進行列、及び前記第２並進行列と、前記基線長に基づいて、前記第１撮影位置における前記第１撮像部または前記第２撮像部を基準とした前記第２撮影位置における前記第１撮像部または前記第２撮像部の並進距離を算出する並進距離算出部と、
前記並進距離に基づいて、前記被写体の３次元データを算出する３次元データ算出部と、
を備える画像処理装置。
【請求項１３】
Ａ．被写体を撮像する第１撮像部と、前記第１撮像部に対して所定の基線長をおいて配置され、前記第１撮像部が撮像する前記被写体の少なくとも一部を含む範囲を撮像する第２撮像部とを有する１つまたは２つのステレオカメラと、
Ｂ．第１撮影位置と第２撮影位置でそれぞれ撮影した画像を記憶する記憶部と、前記第１撮影位置において前記第１撮像部及び前記第２撮像部によって前記被写体を撮像して得た２枚の画像のうち少なくともいずれか一方の画像から複数の特徴点を検出する特徴点検出部と、前記第２撮影位置において前記第１撮像部及び前記第２撮像部によって前記被写体を撮像して得た２枚の画像の各々について、前記特徴点に対応する対応点を検出する対応点検出部と、前記特徴点と前記対応点に基づき、前記第１撮影位置における前記第１撮像部または前記第２撮像部の向きを基準として、前記第２撮影位置における前記第１撮像部の回転方向及び回転量を表す第１回転行列と、前記第２撮像部の回転方向及び回転量を表す第２回転行列を算出する回転行列算出部と、前記特徴点と前記対応点に基づき、前記第１撮影位置における前記第１撮像部または前記第２撮像部の位置を基準として、前記第２撮影位置における前記第１撮像部の並進移動方向を表す第１並進行列と、前記第２撮像部の並進移動方向を表す第２並進行列を算出する並進行列算出部と、前記第１回転行列または前記第２回転行列の少なくとも一方が零行列でない場合に、前記第１回転行列、前記第２回転行列、前記第１並進行列、及び前記第２並進行列と、前記基線長に基づいて、前記第１撮影位置における前記第１撮像部または前記第２撮像部を基準とした前記第２撮影位置における前記第１撮像部または前記第２撮像部の並進距離を算出する並進距離算出部と、前記並進距離に基づいて、前記被写体の３次元データを算出する３次元データ算出部とを有する画像処理装置と、
を備える３次元測定システム。
【請求項１４】
前記ステレオカメラが車載カメラである請求項１３に記載の３次元測定システム。
【請求項１５】
被写体を撮像する第１撮像部と、前記第１撮像部に対して所定の基線長をおいて配置され、前記第１撮像部が撮像する前記被写体の少なくとも一部を含む範囲を撮像する第２撮像部とを有する１つまたは２つのステレオカメラを用いて被写体の３次元データを求める３次元測定方法において、
第１撮影位置において前記第１撮像部と前記第２撮像部で前記被写体を撮像して得た２枚の画像のうち少なくともいずれか一方の画像から複数の特徴点を検出する特徴点検出ステップと、
前記ステレオカメラによって前記第１撮影位置とは異なる第２撮影位置において前記被写体を撮像して得た２枚の画像の各々について、前記特徴点に対応する対応点を検出する対応点検出ステップと、
前記特徴点と前記対応点に基づき、前記第１撮影位置における前記第１撮像部または前記第２撮像部の向きを基準として、前記第２撮影位置における前記第１撮像部の回転方向及び回転量を表す第１回転行列と、前記第２撮像部の回転方向及び回転量を表す第２回転行列を算出する回転行列算出ステップと、
前記特徴点と前記対応点に基づき、前記第１撮影位置における前記第１撮像部または前記第２撮像部の位置を基準として、前記第２撮影位置における前記第１撮像部の並進移動方向を表す第１並進行列と、前記第２撮像部の並進移動方向を表す第２並進行列を算出する並進行列算出ステップと、
前記第１回転行列または前記第２回転行列の少なくとも一方が零行列でない場合に、前記第１回転行列、前記第２回転行列、前記第１並進行列、及び前記第２並進行列と、前記基線長に基づいて、前記第１撮影位置における前記第１撮像部または前記第２撮像部を基準とした前記第２撮影位置における前記第１撮像部または前記第２撮像部の並進距離を算出する並進距離算出ステップと、
前記並進距離に基づいて、前記被写体の３次元データを算出する３次元データ算出ステップと、
を備える３次元測定方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
本発明の３次元測定装置は、第１撮像部と、第２撮像部と、特徴点検出部と、対応点検出部と、回転行列算出部と、並進行列算出部と、並進距離算出部と、３次元データ算出部と、を備える。第１撮像部と第２撮像部は所定の基線長をおいて配置され、第２撮像部は、第１撮像部が撮像する被写体の少なくとも一部を含む範囲を撮像する。特徴点検出部は、第１撮影位置において第１撮像部及び第２撮像部によって被写体を撮像して得た２枚の画像のうち少なくともいずれか一方の画像から複数の特徴点を検出する。対応点検出部は、第１撮影位置とは異なる第２撮影位置において第１撮像部及び第２撮像部によって被写体を撮像して得た２枚の画像の各々について、特徴点に対応する対応点を検出する。回転行列算出部は、特徴点と対応点に基づき、第１撮影位置における第１撮像部または第２撮像部の向きを基準として、第２撮影位置における第１撮像部の回転方向及び回転量を表す第１回転行列と、第２撮像部の回転方向及び回転量を表す第２回転行列を算出する。並進行列算出部は、特徴点と対応点に基づき、第１撮影位置における第１撮像部または第２撮像部の位置を基準として、第２撮影位置における第１撮像部の並進移動方向を表す第１並進行列と、第２撮像部の並進移動方向を表す第２並進行列を算出する。並進距離算出部は、第１回転行列または第２回転行列の少なくとも一方が零行列でない場合に、第１回転行列、第２回転行列、第１並進行列、及び第２並進行列と、基線長に基づいて、第１撮影位置における第１撮像部または第２撮像部を基準とした第２撮影位置における第１撮像部または第２撮像部の並進距離を算出する。３次元データ算出部は、並進距離に基づいて、被写体の３次元データを算出する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
並進距離算出部は、第１方向と第２方向のうち他方の方向と基線長ベクトルの先端との距離の最小値を所定閾値と比較し、最小値が所定閾値以上の場合に、条件を変えて並進距離を再算出することが好ましい。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
本発明の画像処理装置は、記憶部と、特徴点検出部と、対応点検出部と、回転行列算出部と、並進行列算出部と、並進距離算出部と、３次元データ算出部と、を備える。記憶部は、被写体を撮像する第１撮像部と、第１撮像部に対して所定の基線長をおいて配置され、第１撮像部が撮像する被写体の少なくとも一部を含む範囲を撮像する第２撮像部とを有する１つまたは２つのステレオカメラによって、第１撮影位置と第２撮影位置でそれぞれ撮影した画像を記憶する。特徴点検出部は、第１撮影位置において第１撮像部及び第２撮像部によって被写体を撮像して得た２枚の画像のうち少なくともいずれか一方の画像から複数の特徴点を検出する。対応点検出部は、第２撮影位置において第１撮像部及び第２撮像部によって被写体を撮像して得た２枚の画像の各々について、特徴点に対応する対応点を検出する。回転行列算出部は、特徴点と対応点に基づき、第１撮影位置における第１撮像部または第２撮像部の向きを基準として、第２撮影位置における第１撮像部の回転方向及び回転量を表す第１回転行列と、第２撮像部の回転方向及び回転量を表す第２回転行列を算出する。並進行列算出部は、特徴点と対応点に基づき、第１撮影位置における第１撮像部または第２撮像部の位置を基準として、第２撮影位置における第１撮像部の並進移動方向を表す第１並進行列と、第２撮像部の並進移動方向を表す第２並進行列を算出する。並進距離算出部は、第１回転行列または第２回転行列の少なくとも一方が零行列でない場合に、第１回転行列、第２回転行列、第１並進行列、及び第２並進行列と、基線長に基づいて、第１撮影位置における第１撮像部または第２撮像部を基準とした第２撮影位置における第１撮像部または第２撮像部の並進距離を算出する。３次元データ算出部は、並進距離に基づいて、被写体の３次元データを算出する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００２６
【補正方法】変更
【補正の内容】
【００２６】
本発明の３次元測定方法は、被写体を撮像する第１撮像部と、第１撮像部に対して所定の基線長をおいて配置され、第１撮像部が撮像する前記被写体の少なくとも一部を含む範囲を撮像する第２撮像部とを有する１つまたは２つのステレオカメラを用いて被写体の３次元データを求める３次元測定方法であり、特徴点検出ステップと、対応点検出ステップと、回転行列算出ステップと、並進行列算出ステップと、並進距離算出ステップと、３次元データ算出ステップと、を備える。特徴点検出ステップでは、第１撮影位置において第１撮像部と第２撮像部で被写体を撮像して得た２枚の画像のうち少なくともいずれか一方の画像から複数の特徴点を検出する。ステレオカメラは、被写体を撮像する第１撮像部と、第１撮像部に対して所定の基線長をおいて配置され、第１撮像部が撮像する被写体の少なくとも一部を含む範囲を撮像する第２撮像部とを有するカメラである。対応点検出ステップでは、ステレオカメラによって第１撮影位置とは異なる第２撮影位置において被写体を撮像して得た２枚の画像の各々について、特徴点に対応する対応点を検出する。回転行列算出ステップでは、特徴点と対応点に基づき、第１撮影位置における第１撮像部または第２撮像部の向きを基準として、第２撮影位置における第１撮像部の回転方向及び回転量を表す第１回転行列と、第２撮像部の回転方向及び回転量を表す第２回転行列を算出する。並進行列算出ステップでは、特徴点と対応点に基づき、第１撮影位置における第１撮像部または第２撮像部の位置を基準として、第２撮影位置における第１撮像部の並進移動方向を表す第１並進行列と、第２撮像部の並進移動方向を表す第２並進行列を算出する。並進距離算出ステップでは、第１回転行列または第２回転行列の少なくとも一方が零行列でない場合に、第１回転行列、第２回転行列、第１並進行列、及び第２並進行列と、基線長に基づいて、第１撮影位置における第１撮像部または第２撮像部を基準とした第２撮影位置における第１撮像部または第２撮像部の並進距離を算出する。３次元データ算出ステップでは、並進距離に基づいて、被写体の３次元データを算出する。
【国際調査報告】
2014002849.tif 000028
2014002849.tif 000029
2014002849.tif 000030
2014002849.tif 000031