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