(57)【要約】【課題】ステレオ法を用いた三次元測定に適したカメラ校正を行い、三次元位置の測定における測定精度を向上させることができるカメラ校正方法を提供すること。【解決手段】複数の特徴点が設けられ、各特徴点の相対位置が既知である校正器を撮像する（Ｓ２）。撮像した校正器の画像情報から校正器の特徴点を抽出する（Ｓ３）。２つのカメラそれぞれのカメラパラメータの初期値を算出する（Ｓ４）。算出したカメラパラメータを用いて、２つ以上の特徴点の三次元位置座標を算出する（Ｓ５）。三次元位置座標を算出した各特徴点のうち、２つの特徴点間の距離を算出する（Ｓ６）。算出した距離と実際の距離との誤差を算出する（Ｓ７）。算出した誤差を用いてカメラパラメータの修正量を算出する（Ｓ８）。算出した修正量の分、カメラパラメータを修正して更新する（Ｓ９）。【選択図】図３
2012202694.tif 000002
【特許請求の範囲】
【請求項１】
被測定物を撮像する複数のカメラと、前記各カメラにより前記被測定物を撮像して得られたそれぞれの画像データを前記カメラのカメラパラメータを用いて補正し、補正後の各画像データを用いて前記被測定物の三次元位置の測定を行う処理部とを有するステレオ撮像装置における前記各カメラのカメラパラメータを校正するカメラ校正方法において、
複数の特徴点が設けられ前記各特徴点の相対位置が既知である校正器を、前記各カメラで撮像してそれぞれの校正用画像データを取得する撮像工程と、
前記各校正用画像データにおける前記各特徴点の画像上の位置を抽出する抽出工程と、
前記抽出工程で得られた前記各校正用画像データにおける前記各特徴点の画像上の位置および前記各特徴点の既知である相対位置から前記各カメラのカメラパラメータの初期値を算出する初期値算出工程と、
ステレオ法により前記各カメラのカメラパラメータを用いて前記各校正用画像データにおける前記複数の特徴点のうち２つ以上の特徴点の三次元位置座標を算出する特徴点座標算出工程と、
前記特徴点座標算出工程で算出された各特徴点の三次元位置座標から２つの特徴点の間の距離を算出する距離算出工程と、
前記距離算出工程で算出された２つの特徴点の間の距離と、実際の２つの特徴点の間の距離との誤差を算出する誤差算出工程と、
前記誤差算出工程で算出された誤差から前記各カメラのカメラパラメータの修正量を算出する修正量算出工程と、
前記修正量算出工程で算出された修正量の分、前記各カメラのカメラパラメータを修正するカメラパラメータ修正工程と、を備えたことを特徴とするカメラ校正方法。
【請求項２】
閾値を設定する閾値設定工程と、
前記修正量算出工程で算出された修正量と前記閾値設定工程で設定された閾値とを比較する比較工程と、を備え、
前記比較工程による比較の結果、前記修正量算出工程で算出された修正量が前記閾値設定工程で設定された閾値を上回る場合、前記特徴点座標算出工程、前記距離算出工程、前記誤差算出工程、前記修正量算出工程及び前記カメラパラメータ修正工程を再度実行することを特徴とする請求項１に記載のカメラ校正方法。
【請求項３】
前記特徴点座標算出工程、前記距離算出工程、前記誤差算出工程、前記修正量算出工程及び前記カメラパラメータ修正工程の一連の工程を実行した数をカウントするカウント工程と、
前記カウント工程におけるカウント数の上限を示すカウント数上限値を設定する上限値設定工程と、を備え、
前記カウント工程におけるカウント数が、前記上限値設定工程で設定されたカウント数上限値に達するまで、前記一連の工程を繰り返し実行することを特徴とする請求項１に記載のカメラ校正方法。
【請求項４】
被測定物を撮像する複数のカメラと、前記各カメラにより前記被測定物を撮像して得られたそれぞれの画像データを前記カメラのカメラパラメータを用いて補正し、補正後の各画像データを用いて前記被測定物の三次元位置の測定を行う処理部とを有するステレオ撮像装置における前記各カメラのカメラパラメータを校正するカメラ校正方法において、
複数の特徴点が設けられ前記各特徴点の相対位置が既知である校正器を、前記各カメラで撮像してそれぞれの校正用画像データを取得する撮像工程と、
前記各校正用画像データにおける前記各特徴点の画像上の位置を抽出する抽出工程と、
前記抽出工程で得られた前記各校正用画像データにおける前記各特徴点の画像上の位置および前記各特徴点の既知である相対位置から前記各カメラのカメラパラメータの初期値を算出する初期値算出工程と、
ステレオ法により前記各カメラのカメラパラメータを用いて前記各校正用画像データにおける前記複数の特徴点のうち２つ以上の特徴点の三次元位置座標を算出する特徴点座標算出工程と、
前記特徴点座標算出工程で算出された各特徴点の三次元位置座標から２つの特徴点の間の距離を算出する距離算出工程と、
前記距離算出工程で算出された前記２つの特徴点の間の距離と、実際の前記２つの特徴点の間の距離との誤差を算出する誤差算出工程と、
閾値を設定する閾値設定工程と、
前記誤差算出工程で算出された誤差と前記閾値設定工程で設定された閾値とを比較する比較工程と、
前記比較工程による比較の結果、前記誤差算出工程で算出された誤差が、前記閾値設定工程で設定された閾値を上回る場合に、前記誤差算出工程で算出された誤差から前記各カメラのカメラパラメータの修正量を算出する修正量算出工程と、
前記修正量算出工程で算出された修正量の分、前記各カメラのカメラパラメータを修正するカメラパラメータ修正工程と、を備えたことを特徴とするカメラ校正方法。
【請求項５】
前記カメラパラメータ修正工程にて前記各カメラのカメラパラメータを修正した後、前記特徴点座標算出工程、前記距離算出工程、前記誤差算出工程及び前記比較工程を再度実行することを特徴とする請求項４に記載のカメラ校正方法。
【請求項６】
被測定物を撮像する複数のカメラと、前記各カメラにより前記被測定物を撮像して得られたそれぞれの画像データを前記カメラのカメラパラメータを用いて補正し、補正後の各画像データを用いて前記被測定物の三次元位置の測定を行う処理部とを有するステレオ撮像装置における前記各カメラのカメラパラメータを校正するカメラ校正方法において、
複数の特徴点が設けられ、前記複数の特徴点のうち少なくとも１つの特徴点の実際の三次元位置座標が既知である校正器を、前記各カメラで撮像してそれぞれの校正用画像データを取得する撮像工程と、
前記各校正用画像データにおける前記各特徴点の画像上の位置を抽出する抽出工程と、
前記抽出工程で得られた前記各校正用画像データにおける前記各特徴点の画像上の位置および前記各特徴点の既知である相対位置から前記各カメラのカメラパラメータの初期値を算出する初期値算出工程と、
ステレオ法により前記各カメラのカメラパラメータを用いて前記各校正用画像データにおける実際の三次元位置座標が既知の特徴点の三次元位置座標を算出する特徴点座標算出工程と、
前記特徴点座標算出工程で算出された特徴点の三次元位置座標と、実際の特徴点の三次元位置座標との誤差を算出する誤差算出工程と、
前記誤差算出工程で算出された誤差から前記各カメラのカメラパラメータの修正量を算出する修正量算出工程と、
前記修正量算出工程で算出された修正量の分、前記各カメラのカメラパラメータを修正するカメラパラメータ修正工程と、を備えたことを特徴とするカメラ校正方法。
【請求項７】
閾値を設定する閾値設定工程と、
前記修正量算出工程で算出された修正量と前記閾値設定工程で設定された閾値とを比較する比較工程と、を備え、
前記比較工程による比較の結果、前記修正量算出工程で算出された修正量が前記閾値設定工程で設定された閾値を上回る場合、前記特徴点座標算出工程、前記誤差算出工程、前記修正量算出工程及び前記カメラパラメータ修正工程を再度実行することを特徴とする請求項６に記載のカメラ校正方法。
【請求項８】
前記特徴点座標算出工程、前記誤差算出工程、前記修正量算出工程及び前記カメラパラメータ修正工程の一連の工程を実行した数をカウントするカウント工程と、
前記カウント工程におけるカウント数の上限を示すカウント数上限値を設定する上限値設定工程と、を備え、
前記カウント工程におけるカウント数が、前記上限値設定工程で設定されたカウント数上限値に達するまで、前記一連の工程を繰り返し実行することを特徴とする請求項６に記載のカメラ校正方法。
【請求項９】
被測定物を撮像する複数のカメラと、前記各カメラにより前記被測定物を撮像して得られたそれぞれの画像データを前記カメラのカメラパラメータを用いて補正し、補正後の各画像データを用いて前記被測定物の三次元位置の測定を行う処理部とを有するステレオ撮像装置における前記各カメラのカメラパラメータを校正するカメラ校正方法において、
複数の特徴点が設けられ、前記複数の特徴点のうち少なくとも１つの特徴点の実際の三次元位置座標が既知である校正器を、前記各カメラで撮像してそれぞれの校正用画像データを取得する撮像工程と、
前記各校正用画像データにおける前記各特徴点の画像上の位置を抽出する抽出工程と、
前記抽出工程で得られた前記各校正用画像データにおける前記各特徴点の画像上の位置および前記各特徴点の既知である相対位置から前記各カメラのカメラパラメータの初期値を算出する初期値算出工程と、
ステレオ法により前記各カメラのカメラパラメータを用いて前記各校正用画像データにおける実際の三次元位置座標が既知の特徴点の三次元位置座標を算出する特徴点座標算出工程と、
前記特徴点座標算出工程で算出された特徴点の三次元位置座標と、実際の特徴点の三次元位置座標との誤差を算出する誤差算出工程と、
閾値を設定する閾値設定工程と、
前記誤差算出工程で算出された誤差と前記閾値設定工程で設定された閾値とを比較する比較工程と、
前記比較工程による比較の結果、前記誤差算出工程で算出された誤差が、前記閾値設定工程で設定された閾値を上回る場合に、前記誤差算出工程で算出された誤差から前記各カメラのカメラパラメータの修正量を算出する修正量算出工程と、
前記修正量算出工程で算出された修正量の分、前記各カメラのカメラパラメータを修正するカメラパラメータ修正工程と、を備えたことを特徴とするカメラ校正方法。
【請求項１０】
前記カメラパラメータ修正工程にて前記各カメラのカメラパラメータを修正した後、前記特徴点座標算出工程、前記誤差算出工程及び前記比較工程を再度実行することを特徴とする請求項９に記載のカメラ校正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、校正器の各特徴点の相対位置又は三次元位置座標が既知であり、特徴点の位置をステレオ法により測定し、その測定値の誤差を評価することで各カメラのカメラパラメータの校正を行うカメラ校正方法に関するものである。
【背景技術】
【０００２】
通常、カメラを用いて被撮像物を撮像した場合にレンズ等による歪みを考慮し、撮像により得た二次元の画像データを、カメラパラメータを用いて補正している。また、補正した画像データを処理することで測定対象を抽出し、その抽出した画像空間上での位置を実画像空間上での位置にカメラパラメータを用いて換算している。このカメラパラメータはカメラに応じて異なるため、予めカメラパラメータを校正しておく必要がある。
【０００３】
従来のカメラ校正方法は、校正器の特徴点をカメラにより様々な位置・姿勢で撮像し、各特徴点の画像上での位置を抽出する。そして、その抽出した特徴点の位置よりカメラパラメータを算出したり、カメラの設計値をもとにしたりして、カメラパラメータの初期値を算出し、このカメラパラメータを用いて各特徴点の画像上での位置を算出する。その算出した画像上での各特徴点の位置と、実際の画像上に写っている各特徴点の位置との差である再投影誤差が最小になるように、カメラパラメータを修正することでカメラ校正を行っている（非特許文献１，２参照）。
【０００４】
ここで述べるカメラパラメータとは、焦点距離、レンズ歪み係数、画像中心、アスペクト比、せん断歪み係数といったカメラの内部パラメータと、カメラの位置・姿勢といった外部パラメータのことである。このカメラパラメータを修正することをカメラ校正と呼ぶ。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Z.Zhang, “A flexible new techniquefor camera calibration”, IEEE Transactions on Pattern Analysis and MachineIntelligence, 22(11):1330-1334, 2000.
【非特許文献２】Roger Y. Tsai, “A Versatile CameraCalibration Technique for High-Accuracy 3D Machine Vision Metrology UsingOff-the-Self TV Cameras and Lensed”, IEEE Journal of Robotics and Automation,vol.RA-3, No.4, pp.323-344(1987)
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、２つ以上のカメラを有するステレオ撮像装置を用いた、ステレオ法による三次元測定では、カメラの内部パラメータにより各カメラをモデル化する。そして、各カメラの外部パラメータを用いて三角測量を行う。
【０００７】
しかしながら、上述したカメラ校正方法により求めたカメラパラメータは、再投影誤差を基準としているため、ステレオ法を用いた三次元測定に対して最適であるとは言えない。すなわち、上述したカメラ校正方法により求めたカメラパラメータは、ステレオ法による三次元測定を想定したものではないので、そのまま三次元測定に用いたのでは測定誤差が大きく、三次元測定における測定精度の向上が望まれていた。
【０００８】
そこで、本発明は、ステレオ法を用いた三次元測定に適したカメラパラメータの校正を行い、三次元測定における測定精度を向上させることができるカメラ校正方法を提供することを目的とするものである。
【課題を解決するための手段】
【０００９】
本発明は、被測定物を撮像する複数のカメラと、前記各カメラにより前記被測定物を撮像して得られたそれぞれの画像データを前記カメラのカメラパラメータを用いて補正し、補正後の各画像データを用いて前記被測定物の三次元位置の測定を行う処理部とを有するステレオ撮像装置における前記各カメラのカメラパラメータを校正するカメラ校正方法において、複数の特徴点が設けられ前記各特徴点の相対位置が既知である校正器を、前記各カメラで撮像してそれぞれの校正用画像データを取得する撮像工程と、前記各校正用画像データにおける前記各特徴点の画像上の位置を抽出する抽出工程と、前記抽出工程で得られた前記各校正用画像データにおける前記各特徴点の画像上の位置および前記各特徴点の既知である相対位置から前記各カメラのカメラパラメータの初期値を算出する初期値算出工程と、ステレオ法により前記各カメラのカメラパラメータを用いて前記各校正用画像データにおける前記複数の特徴点のうち２つ以上の特徴点の三次元位置座標を算出する特徴点座標算出工程と、前記特徴点座標算出工程で算出された各特徴点の三次元位置座標から２つの特徴点の間の距離を算出する距離算出工程と、前記距離算出工程で算出された２つの特徴点の間の距離と、実際の２つの特徴点の間の距離との誤差を算出する誤差算出工程と、前記誤差算出工程で算出された誤差から前記各カメラのカメラパラメータの修正量を算出する修正量算出工程と、前記修正量算出工程で算出された修正量の分、前記各カメラのカメラパラメータを修正するカメラパラメータ修正工程と、を備えたことを特徴とする。
【００１０】
また、本発明は、被測定物を撮像する複数のカメラと、前記各カメラにより前記被測定物を撮像して得られたそれぞれの画像データを前記カメラのカメラパラメータを用いて補正し、補正後の各画像データを用いて前記被測定物の三次元位置の測定を行う処理部とを有するステレオ撮像装置における前記各カメラのカメラパラメータを校正するカメラ校正方法において、複数の特徴点が設けられ前記各特徴点の相対位置が既知である校正器を、前記各カメラで撮像してそれぞれの校正用画像データを取得する撮像工程と、前記各校正用画像データにおける前記各特徴点の画像上の位置を抽出する抽出工程と、前記抽出工程で得られた前記各校正用画像データにおける前記各特徴点の画像上の位置および前記各特徴点の既知である相対位置から前記各カメラのカメラパラメータの初期値を算出する初期値算出工程と、ステレオ法により前記各カメラのカメラパラメータを用いて前記各校正用画像データにおける前記複数の特徴点のうち２つ以上の特徴点の三次元位置座標を算出する特徴点座標算出工程と、前記特徴点座標算出工程で算出された各特徴点の三次元位置座標から２つの特徴点の間の距離を算出する距離算出工程と、前記距離算出工程で算出された前記２つの特徴点の間の距離と、実際の前記２つの特徴点の間の距離との誤差を算出する誤差算出工程と、閾値を設定する閾値設定工程と、前記誤差算出工程で算出された誤差と前記閾値設定工程で設定された閾値とを比較する比較工程と、前記比較工程による比較の結果、前記誤差算出工程で算出された誤差が、前記閾値設定工程で設定された閾値を上回る場合に、前記誤差算出工程で算出された誤差から前記各カメラのカメラパラメータの修正量を算出する修正量算出工程と、前記修正量算出工程で算出された修正量の分、前記各カメラのカメラパラメータを修正するカメラパラメータ修正工程と、を備えたことを特徴とする。
【００１１】
また、本発明は、被測定物を撮像する複数のカメラと、前記各カメラにより前記被測定物を撮像して得られたそれぞれの画像データを前記カメラのカメラパラメータを用いて補正し、補正後の各画像データを用いて前記被測定物の三次元位置の測定を行う処理部とを有するステレオ撮像装置における前記各カメラのカメラパラメータを校正するカメラ校正方法において、複数の特徴点が設けられ、前記複数の特徴点のうち少なくとも１つの特徴点の実際の三次元位置座標が既知である校正器を、前記各カメラで撮像してそれぞれの校正用画像データを取得する撮像工程と、前記各校正用画像データにおける前記各特徴点の画像上の位置を抽出する抽出工程と、前記抽出工程で得られた前記各校正用画像データにおける前記各特徴点の画像上の位置および前記各特徴点の既知である相対位置から前記各カメラのカメラパラメータの初期値を算出する初期値算出工程と、ステレオ法により前記各カメラのカメラパラメータを用いて前記各校正用画像データにおける実際の三次元位置座標が既知の特徴点の三次元位置座標を算出する特徴点座標算出工程と、前記特徴点座標算出工程で算出された特徴点の三次元位置座標と、実際の特徴点の三次元位置座標との誤差を算出する誤差算出工程と、前記誤差算出工程で算出された誤差から前記各カメラのカメラパラメータの修正量を算出する修正量算出工程と、前記修正量算出工程で算出された修正量の分、前記各カメラのカメラパラメータを修正するカメラパラメータ修正工程と、を備えたことを特徴とする。
【００１２】
また、本発明は、被測定物を撮像する複数のカメラと、前記各カメラにより前記被測定物を撮像して得られたそれぞれの画像データを前記カメラのカメラパラメータを用いて補正し、補正後の各画像データを用いて前記被測定物の三次元位置の測定を行う処理部とを有するステレオ撮像装置における前記各カメラのカメラパラメータを校正するカメラ校正方法において、複数の特徴点が設けられ、前記複数の特徴点のうち少なくとも１つの特徴点の実際の三次元位置座標が既知である校正器を、前記各カメラで撮像してそれぞれの校正用画像データを取得する撮像工程と、前記各校正用画像データにおける前記各特徴点の画像上の位置を抽出する抽出工程と、前記抽出工程で得られた前記各校正用画像データにおける前記各特徴点の画像上の位置および前記各特徴点の既知である相対位置から前記各カメラのカメラパラメータの初期値を算出する初期値算出工程と、ステレオ法により前記各カメラのカメラパラメータを用いて前記各校正用画像データにおける実際の三次元位置座標が既知の特徴点の三次元位置座標を算出する特徴点座標算出工程と、前記特徴点座標算出工程で算出された特徴点の三次元位置座標と、実際の特徴点の三次元位置座標との誤差を算出する誤差算出工程と、閾値を設定する閾値設定工程と、前記誤差算出工程で算出された誤差と前記閾値設定工程で設定された閾値とを比較する比較工程と、前記比較工程による比較の結果、前記誤差算出工程で算出された誤差が、前記閾値設定工程で設定された閾値を上回る場合に、前記誤差算出工程で算出された誤差から前記各カメラのカメラパラメータの修正量を算出する修正量算出工程と、前記修正量算出工程で算出された修正量の分、前記各カメラのカメラパラメータを修正するカメラパラメータ修正工程と、を備えたことを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ステレオ法による特徴点の三次元位置座標の算出結果を用いてカメラパラメータの校正を行うため、三次元位置の測定精度を向上させることができる。また、カメラパラメータの初期値を算出するための撮像作業が、それに続くカメラパラメータの校正のための撮像作業も兼ねるので、撮像作業を簡略化することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１実施形態に係るステレオ撮像装置の概略構成を示す説明図である。
【図２】カメラ校正を実行するために校正器を５種類の姿勢で撮像した様子を示した模式図である。
【図３】本発明の第１実施形態に係るステレオ撮像装置の制御装置による各カメラのカメラ校正の処理動作を示すフローチャートである。
【図４】本発明の第２実施形態に係るステレオ撮像装置の制御装置による各カメラのカメラ校正の処理動作を示すフローチャートである。
【図５】本発明の第３実施形態に係るステレオ撮像装置の制御装置による各カメラのカメラ校正の処理動作を示すフローチャートである。
【図６】第４実施形態においてカメラ校正を実行するために校正器を撮像している様子を示す模式図である。
【図７】本発明の第４実施形態に係るステレオ撮像装置の制御装置による各カメラのカメラ校正の処理動作を示すフローチャートである。
【図８】本発明の第５実施形態に係るステレオ撮像装置の制御装置による各カメラのカメラ校正の処理動作を示すフローチャートである。
【図９】本発明の第６実施形態に係るステレオ撮像装置の制御装置による各カメラのカメラ校正の処理動作を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【００１６】
［第１実施形態］
図１は、本発明の第１実施形態に係るステレオ撮像装置の概略構成を示す説明図である。ステレオ撮像装置１００は、被測定物を撮像する複数（本第１実施形態では２台）のカメラ１Ｌとカメラ１Ｒが接続された制御装置２と、制御装置２に接続された入力装置３とを備えている。制御装置２は、ＣＰＵ２ａ及び記憶部２ｂ等を備えたコンピュータであり、装置全体を制御するものである。そして、制御装置２は、被測定物の三次元位置を測定する測定モードと、各カメラ１Ｌ，１Ｒのカメラパラメータ（内部パラメータ及び外部パラメータ）を校正する校正モードとに切り替え可能に構成されている。制御装置２は、測定モードでは、各カメラ１Ｌ，１Ｒにより被測定物を撮像して得られたそれぞれの画像データをカメラ１Ｌ，１Ｒのカメラパラメータを用いて補正し、補正後の各画像データを用いて被測定物の三次元位置の測定を行う処理部として機能する。
【００１７】
入力装置３は、キーボードやタッチパネル等で構成され、制御装置２に接続されており、オペレータの操作に応じた入力信号を制御装置２に送出する。制御装置２は、入力装置３からの入力信号を入力して、各種設定等を行う。
【００１８】
本第１実施形態では、校正モードにて各カメラ１Ｌ，１Ｒのカメラパラメータを校正するための校正用のプログラムが、制御装置２の記憶部２ｂに記憶されている。制御装置２のＣＰＵ２ａは、校正モードに設定された場合に校正用のプログラムを読み出して、校正処理を実行する。
【００１９】
本第１実施形態では、各カメラ１Ｌ，１Ｒのカメラパラメータを校正する際に、図１に示す校正器Ｃ１を使用する。この校正器Ｃ１は、平面プレートに黒白の市松模様が印刷されて構成されており、黒（白）の正方形の辺の長さ、つまり黒（白）の正方形の頂点間の長さが既知のものである。本第１実施形態では、黒（白）の正方形の各頂点を特徴点Ｐ１〜Ｐ１２としている。つまり、各特徴点Ｐ１〜Ｐ１２の相対位置が既知であり、予め、各特徴点の相対位置が記憶部２ｂに記憶されている。
【００２０】
図２はカメラ校正を実行するために校正器Ｃ１を５種類の姿勢で撮像した様子を示しており、以下、図２（ａ）〜図２（ｅ）に示した各撮像により得た画像データをそれぞれ校正用画像データＩ１〜Ｉ５と呼ぶ。図２においては、簡単のため、２台のカメラ１Ｌ，１Ｒが、同一水平面上に光軸があり、かつその光軸が平行になる構成とした。なお、実際のカメラ１Ｌ，１Ｒの構成は、測定対象を撮像することができればどのような構成でも良い。
【００２１】
図３は、本発明の第１実施形態に係るステレオ撮像装置の制御装置による各カメラのカメラ校正の処理動作を示すフローチャートである。まず、制御装置２のＣＰＵ２ａは、予めオペレータの操作による入力装置３の指示により、後述する比較工程で比較するために用いられるカメラパラメータの修正量に対する閾値を設定する（Ｓ１：閾値設定工程）。ここで、閾値を設定するとは、閾値を示すデータをＣＰＵ２ａが閾値として読み出し可能な状態で記憶部２ｂに記憶させることである。この閾値を示すデータは、例えば入力装置３から得られる。なお、この閾値設定の動作は、校正モードに切り替えられた際に毎回行うようにしてもよいし、校正モードに切り替えられた最初の１回だけ行うようにしてもよい。また、オペレータが随時閾値設定を行えるように構成してもよい。また、記憶部２ｂに校正用のプログラムを記憶させる際に、閾値のデータを校正用のプログラムと共に記憶部２ｂに記憶させるようにしてもよい。
【００２２】
ＣＰＵ２ａは、各カメラ１Ｌ，１Ｒに校正器Ｃ１を撮像させて、それぞれの校正用画像データを取得する（Ｓ２：撮像工程）。本第１実施形態では、１つの平面状の校正器Ｃ１を撮像しているため、各カメラ１Ｌ，１Ｒにより撮像する校正器Ｃ１の姿勢は、３種類以上である。なお、校正器が立体のものであれば、撮像する校正器Ｃ１の姿勢は、１種類以上であればよい。
【００２３】
次に、ＣＰＵ２ａは、各校正用画像データにおける各特徴点Ｐ１〜Ｐ１２の画像上の位置を画像処理により抽出する（Ｓ３：抽出工程）。例えば、図２に示すように、各カメラ１Ｌ，１Ｒにて校正器Ｃ１を５種類の姿勢で撮像した場合、カメラ１Ｌによる撮像により得られる校正用画像データをＩ１Ｌ〜Ｉ５Ｌとし、カメラ１Ｒによる撮像により得られる校正用画像データをＩ１Ｒ〜Ｉ５Ｒとする。ＣＰＵ２ａは、カメラ１Ｌによる撮像により得られた校正用画像データＩ１Ｌ〜Ｉ５Ｌにおける各特徴点Ｐ１〜Ｐ１２の画像上の位置を画像処理により抽出する。同様に、ＣＰＵ２ａは、カメラ１Ｒによる撮像により得られた校正用画像データＩ１Ｒ〜Ｉ５Ｒにおける各特徴点Ｐ１〜Ｐ１２の画像上の位置を画像処理により抽出する。
【００２４】
次に、ＣＰＵ２ａは、各校正用画像データにおける各特徴点Ｐ１〜Ｐ１２の画像上の位置および記憶２ｂに記憶されている各特徴点の相対位置から各カメラ１Ｌ，１Ｒのカメラパラメータの初期値を算出する（Ｓ４：初期値算出工程）。ここでは、例えば非特許文献１に示されているような公知の方法により、各カメラ１Ｌ，１Ｒのカメラパラメータの初期値を算出する。具体的には、ＣＰＵ２ａは、各校正用画像データＩ１Ｌ〜Ｉ５Ｌにおける各特徴点Ｐ１〜Ｐ１２の画像上の位置からカメラ１Ｌの内部パラメータの初期値を算出する。同様に、ＣＰＵ２ａは、各校正用画像データＩ１Ｒ〜Ｉ５Ｒにおける各特徴点Ｐ１〜Ｐ１２の画像上の位置からカメラ１Ｒの内部パラメータの初期値を算出する。また、各校正用画像データＩ１Ｌ〜Ｉ５Ｌ、Ｉ１Ｒ〜Ｉ５Ｒにおける各特徴点Ｐ１〜Ｐ１２の画像上の位置からカメラ１Ｌ，１Ｒの外部パラメータの初期値を算出する。ここで、これのカメラパラメータの初期値を算出するには、少なくとも３種類の位置姿勢の校正器を撮像した画像データが必要であるため、本第１実施形態では、撮像する校正器Ｃ１の位置姿勢を５種類としている。なお、内部パラメータについては、各カメラ別々に撮像を行い、別途算出しておいてもよい。
【００２５】
算出されたカメラ１Ｌ，１Ｒのカメラパラメータのうち内部パラメータをカメラ行列ＡＬ、ＡＲとして以下の数１及び数２に示す。なお、ｆＬは、カメラ１Ｌの焦点距離を示す内部パラメータ、ｆＲは、カメラ１Ｒの焦点距離を示す内部パラメータである。また、ｋｕＬは、カメラ１Ｌにおけるスケールを示す内部パラメータ、ｋｕＲは、カメラ１Ｒにより撮像された画像におけるスケールを示す内部パラメータである。
【００２６】
【数１】
2012202694.tif 000003
【００２７】
【数２】
2012202694.tif 000004
【００２８】
また、カメラパラメータのうち各カメラ１Ｌ，１Ｒの相対位置（カメラ１Ｌを基準としたカメラ１Ｒの位置）を表わす外部パラメータＴを以下の数３に示す。
【００２９】
【数３】
2012202694.tif 000005
【００３０】
なお、ここでは簡単のため、内部パラメータにおいてスキューを考慮していないが、実際は考慮してもよい。
【００３１】
ここで、ＣＰＵ２ａは、ステップＳ４の処理において、内部パラメータとしてレンズ歪みを表わす放射状歪み係数ｋ１，ｋ２を算出している。そして、ＣＰＵ２ａは、以下の数４及び数５で表される関係式に算出した係数ｋ１，ｋ２を適用して、各校正用画像データにおいて、歪みのあるカメラ座標（ｘ’，ｙ’）を歪みのないカメラ座標（ｘ，ｙ）に補正しておく。
【００３２】
【数４】
2012202694.tif 000006
【００３３】
【数５】
2012202694.tif 000007
【００３４】
次に、ＣＰＵ２ａは、補正された各校正用画像データにおいて、各カメラ１Ｌ，１Ｒのカメラパラメータを用いて、検出済みである画像上の複数の特徴点のうち２つ以上の特徴点についてステレオ法により三次元位置の測定を行う（Ｓ５：特徴点座標算出工程）。
【００３５】
例えば、ＣＰＵ２ａは、補正された校正用画像データＩ４Ｌ，Ｉ４Ｒにおいて、各カメラ１Ｌ，１Ｒのカメラパラメータを用いて、検出済みである画像上の特徴点Ｐ１，Ｐ４，Ｐ９，Ｐ１２についてステレオ法により三次元位置の測定を行う。同様に、ＣＰＵ２ａは、補正された校正用画像データＩ５Ｌ，Ｉ５Ｒにおいて、各カメラ１Ｌ，１Ｒのカメラパラメータを用いて、検出済みである画像上の特徴点Ｐ１，Ｐ４，Ｐ９，Ｐ１２についてステレオ法により三次元位置の測定を行う。ここでは、三次元測定を行う座標系は、いずれか１つのカメラ（例えばカメラ１Ｌ）のカメラ座標系とする。だたし、座標系の設定は座標系設定用のポイントを測定することで行ってもよく、この限りではない。
【００３６】
以下、特徴点座標算出工程の処理について具体的に説明する。校正用画像データＩ４Ｌ，Ｉ４Ｒにおける特徴点Ｐ１の画像座標をそれぞれ（ｕ４Ｌｐ１，ｖ４Ｌｐ１），（ｕ４Ｒｐ１，ｖ４Ｒｐ１）とする。特徴点Ｐ１の三次元位置座標Ｘ４ｐ１（ｘ４ｐ１，ｙ４ｐ１，ｚ４ｐ１）Ｔは以下の数６及び数７のように表される。
【００３７】
【数６】
2012202694.tif 000008
【００３８】
【数７】
2012202694.tif 000009
【００３９】
ＣＰＵ２ａは、ステップＳ５において、数６及び数７の右辺の差の大きさが最小になるように、係数ｋ，ｌを算出する。そして、ＣＰＵ２ａは、算出した係数ｋ，ｌを数６及び数７に代入してそれぞれ求めたＸ４ｐ１の中点として、校正用画像データＩ４Ｌ，Ｉ４Ｒにおける特徴点Ｐ１の三次元位置座標Ｘ４ｐ１が求まる。
【００４０】
同様に、校正用画像データＩ４Ｌ，Ｉ４Ｒにおける特徴点Ｐ４，Ｐ９，Ｐ１２の三次元位置座標Ｘ４ｐ４，Ｘ４ｐ９，Ｘ４ｐ１２も求まる。また同様に、校正用画像データＩ５Ｌ，Ｉ５Ｒにおける特徴点Ｐ１，Ｐ４，Ｐ９，Ｐ１２の三次元位置座標Ｘ５ｐ１，Ｘ５ｐ４，Ｘ５ｐ９，Ｘ５ｐ１２も求まる。
【００４１】
このように、本実施形態では、ステップＳ４においてカメラパラメータの初期値を算出するための特徴点と、ステップＳ５においてステレオ法を用いた三次元座標を算出するための特徴点を同一の特徴点としている。したがって、校正器において、高精度に製作もしくは印刷しなければならない特徴点の数や種類を削減することができる。
【００４２】
次に、ＣＰＵ２ａは、ステップＳ５で算出した各特徴点の三次元位置座標から２つの特徴点の間の距離を算出する（Ｓ６：距離算出工程）。例えば、校正用画像データＩ４Ｌ，Ｉ４Ｒにおいて、三次元位置座標Ｘ４ｐ１，Ｘ４ｐ４，Ｘ４ｐ９，Ｘ４ｐ１２から２つの特徴点Ｐ１，Ｐ４の間の距離Ｌ４ｐ１−４と、２つの特徴点Ｐ９，Ｐ１２の間の距離Ｌ４ｐ９−１２とを算出する。同様に、校正用画像データＩ５Ｌ，Ｉ５Ｒにおいて、三次元位置座標Ｘ５ｐ１，Ｘ５ｐ４，Ｘ５ｐ９，Ｘ５ｐ１２から２つの特徴点Ｐ１，Ｐ４の間の距離Ｌ５ｐ１−４と、２つの特徴点Ｐ９，Ｐ１２の間の距離Ｌ５ｐ９−１２とを算出する。
【００４３】
次に、ＣＰＵ２ａは、ステップＳ６で算出した２つの特徴点の間の距離と、実際の２つの特徴点（記憶部２ｂに記憶された相対位置）の間の距離（真値）との誤差を算出する（Ｓ７：誤差算出工程）。例えば、算出した距離Ｌ４ｐ１−４、Ｌ５ｐ１−４、Ｌ４ｐ９−１２、Ｌ５ｐ９−１２と予め記憶部２ｂに記憶された距離Ｌｐ１−４、Ｌｐ９−１２との誤差ΔＬ４ｐ１−４、ΔＬ５ｐ１−４、ΔＬ４ｐ９−１２、ΔＬ５ｐ９−１２を算出する。
【００４４】
次に、ＣＰＵ２ａは、ステップＳ７で算出した誤差から各カメラ１Ｌ，１Ｒのカメラパラメータの修正量を算出する（Ｓ８：修正量算出工程）。例えば、ＣＰＵ２ａは、カメラパラメータとしての内部パラメータｆＬ，ｆＲ及び外部パラメータｂの修正量ΔｆＬ，ΔｆＲ，Δｂを算出する。
【００４５】
このカメラパラメータの修正量の算出手法としては、１次収束となる最小二乗法、ヘッセ行列を用いたニュートン法、レーベンバーグ・マーカート法などの各種手法が考えられるが、以下、最小二乗法を例に説明する。
【００４６】
以下、修正量算出工程における修正量算出動作について具体的に説明する。まず、ＣＰＵ２ａは、以下の数８で表されるように、算出した距離Ｌ４ｐ１−４，Ｌ５ｐ１−４，Ｌ４ｐ９−１２，Ｌ５ｐ９−１２のカメラパラメータｆＬ，ｆＲ，ｂに対する勾配を表わす行列Ｇを算出する。
【００４７】
【数８】
2012202694.tif 000010
【００４８】
そして、ＣＰＵ２ａは、この行列Ｇについての一般化逆行列と、算出した距離と真値との誤差ΔＬ４ｐ１−４、ΔＬ５ｐ１−４、ΔＬ４ｐ９−１２、ΔＬ５ｐ９−１２と、を用いて、以下の数９に表す数式に基づき、修正量ΔｆＬ，ΔｆＲ，Δｂを算出する。
【００４９】
【数９】
2012202694.tif 000011
【００５０】
以上のＣＰＵ２ａの演算処理により修正量ΔｆＬ，ΔｆＲ，Δｂが算出される。
【００５１】
次に、ＣＰＵ２ａは、ステップＳ８で算出された修正量ΔｆＬ，ΔｆＲ，Δｂの分、各カメラパラメータに加算処理を行うことで、各カメラパラメータｆＬ，ｆＲ，ｂを更新（修正）する（Ｓ９：カメラパラメータ修正工程）。これにより、各カメラパラメータｆＬ，ｆＲ，ｂが校正されたこととなる。なお、修正量ΔｆＬ，ΔｆＲ，Δｂが負の値の場合は、カメラパラメータに負の値の修正量を加算することとなる。
【００５２】
このように、ステレオ法による特徴点の三次元位置座標の算出結果を用いてカメラパラメータｆＬ，ｆＲ，ｂの校正を行うため、三次元位置の測定における測定精度を向上させることができる。また、カメラパラメータｆＬ，ｆＲ，ｂの初期値を算出するための撮像作業が、それに続くカメラパラメータｆＬ，ｆＲ，ｂの校正のための撮像作業も兼ねるので、撮像作業を簡略化することができる。
【００５３】
ここで、このカメラパラメータｆＬ，ｆＲ，ｂの修正動作を１回だけ行ってもよいが、本第１実施形態では、これらカメラパラメータの修正量がそれぞれの閾値以下となるまで繰り返すことで、カメラ校正を行うようにしている。
【００５４】
つまり、ＣＰＵ２ａは、ステップＳ９のカメラパラメータ修正工程における修正処理を終了した後、ステップＳ８で算出した修正量とステップＳ１で設定した閾値とを比較する（Ｓ１０：比較工程）。そして、ＣＰＵ２ａは、ステップＳ１０における比較の結果、ステップＳ８で算出した修正量がステップＳ１で設定された閾値を上回る場合（Ｓ１０：Ｎｏ）、ステップＳ５の処理に戻り、ステップＳ５〜Ｓ９の処理を再度実行する。具体的には、ＣＰＵ２ａは、カメラパラメータの修正量が一つでも閾値を上回る場合（Ｓ１０：Ｎｏ）には、再度、カメラ校正を実施し、全てのカメラパラメータの修正量が閾値以下となった場合（Ｓ１０：Ｙｅｓ）に、カメラ校正を終了する。
【００５５】
例えば、カメラパラメータｆＬの修正量｜ΔｆＬ｜に対しては、ステップＳ１で閾値ｔｈ１が設定される。また、カメラパラメータｆＲの修正量｜ΔｆＲ｜に対しては、ステップＳ１で閾値ｔｈ２が設定される。また、カメラパラメータｂの修正量｜Δｂ｜に対しては、ステップＳ１で閾値ｔｈ３が設定される。
【００５６】
そして、ＣＰＵ２ａは、修正量｜ΔｆＬ｜と閾値ｔｈ１とを、修正量｜ΔｆＲ｜と閾値ｔｈ２とを、修正量｜Δｂ｜と閾値ｔｈ３とをそれぞれ比較し、全ての修正量が閾値以下となった場合に、カメラ校正を終了する。
【００５７】
なお、これら閾値ｔｈ１，ｔｈ２，ｔｈ３の値については、以下のようにして定めている。まず、ステレオカメラを用いる用途において必要となる校正精度を求め、この校正精度の数分の１の値を校正のバラツキ許容値とする。そして、各カメラパラメータの変動が校正のバラツキに及ぼす影響を算出しておき、この影響がバラツキ許容値以下となる各カメラパラメータの変動値を閾値とする。なお、この閾値の設定値については、これに限定するものではなく、バラツキ許容値の０．１％以下の値などの共通の値にしてもよく、オペレータが任意に設定できる値である。
【００５８】
このように、各修正量が閾値以下となるまで各カメラパラメータの修正を行うことで、１回のみ各カメラパラメータを修正する場合よりも、更に三次元位置の測定における測定精度が向上する。
【００５９】
なお、本実施形態では、内部パラメータｆＬ，ｆＲと外部パラメータｂの３パラメータを校正したが、その他にもスケールｋｖＬ，ｋｕＬ，ｋｖＲ，ｋｕＲや画像中心ｕ０Ｌ，ｖ０Ｌ，ｕ０Ｒ，ｖ０Ｒも含めたりしてもよく、校正するパラメータはこの限りでない。さらに、ピント合わせをした時は内部パラメータのみを校正したり、カメラの取り付けを変更した場合は外部パラメータのみを校正したりと、校正するパラメータの選択は状況に応じて選択できる。
【００６０】
また、本実施形態では、画像の歪みを数４及び数５のように表しているが、放射状歪み係数κを用いて、以下の数１０及び数１１のように表してもよい。
【００６１】
【数１０】
2012202694.tif 000012
【００６２】
【数１１】
2012202694.tif 000013
【００６３】
その他にも、近似の次数を上げたり、接線方向の歪みを考慮したりしても良い。
【００６４】
また、本実施形態では、１つの画像中での校正器の特徴点間の距離について計測値と真値の比較を行った。これに対し、撮像データＩ２と撮像データＩ３について、校正器を高精度ステージで移動させ、その移動量に計測値と真値の比較を行うなど、校正器の移動量を用いて校正を行ってもよい。
【００６５】
［第２実施形態］
次に、本発明の第２実施形態に係るステレオ撮像装置におけるカメラ校正方法について説明する。図４は、本発明の第２実施形態に係るステレオ撮像装置の制御装置による各カメラのカメラ校正の処理動作を示すフローチャートである。なお、本第２実施形態のステレオ撮像装置では、上記第１実施形態のステレオ撮像装置と同様の構成であり、また、校正器も同一の構成であるので、各構成については上記第１実施形態と同様の符号を用いて説明する。また、図４のフローチャートの各ステップの説明において、図３のフローチャートのステップと同様の処理を行うものについては、同一符号を付してその詳細な説明を省略する。
【００６６】
ＣＰＵ２ａは、予めオペレータの操作による入力装置３の指示により、カウント数Ｎの上限を示すカウント数上限値Ｎ０を設定する（Ｓ２１：上限値設定工程）。カウント数Ｎは、カメラパラメータの修正回数を示している。ここで、カウント数上限値Ｎ０を設定するとは、カウント数上限値Ｎ０を示すデータをＣＰＵ２ａがカウント数上限値Ｎ０として読み出し可能な状態で記憶部２ｂに記憶させることである。なお、このカウント数上限値Ｎ０の設定の動作は、校正モードに切り替えられた際に毎回行うようにしてもよいし、校正モードに切り替えられた最初の１回だけ行うようにしてもよい。また、オペレータが随時、カウント数上限値Ｎ０の設定を行えるように構成してもよい。また、記憶部２ｂに校正用のプログラムを記憶させる際に、カウント数上限値Ｎ０のデータを校正用のプログラムと共に記憶部２ｂに記憶させるようにしてもよい。
【００６７】
次に、ＣＰＵ２ａは、カウント数Ｎを初期化（Ｎ＝０）する（Ｓ２２）。そして、ＣＰＵ２ａは、上記第１実施形態と同様に、ステップＳ２〜Ｓ９の処理を実行し、ステップＳ９でカメラパラメータを修正した後、カウント数Ｎを１インクリメントする（Ｓ２３）。つまり、このカウント数Ｎは、カメラパラメータの修正回数を示しているので、カメラパラメータを修正する度にカウント数Ｎを１インクリメントする。
【００６８】
次に、ＣＰＵ２ａは、カウント数Ｎがカウント数上限値Ｎ０に達したか否かを判断する（Ｓ２４）。ＣＰＵ２ａは、カウント数Ｎがカウント数上限値Ｎ０に達していないと判断した場合（Ｓ２４：Ｎｏ）は、ステップＳ５の処理に戻り、ステップＳ５〜Ｓ９の一連の工程を実行する。これにより、カウント数Ｎがカウント数上限値Ｎ０に達するまで、ステップＳ５〜Ｓ９一連の工程を繰り返し実行されることとなる。
【００６９】
そして、ＣＰＵ２ａは、カウント数Ｎがカウント数上限値Ｎ０に達したと判断した場合（Ｓ２４：Ｙｅｓ）は、カメラ校正を終了する。
【００７０】
以上、本第２実施形態では、予め設定された値Ｎ０の数の分、カメラパラメータを修正することとなり、更に三次元位置の測定における測定精度が向上する。
【００７１】
［第３実施形態］
次に、本発明の第３実施形態に係るステレオ撮像装置におけるカメラ校正方法について説明する。図５は、本発明の第３実施形態に係るステレオ撮像装置の制御装置による各カメラのカメラ校正の処理動作を示すフローチャートである。なお、本第３実施形態のステレオ撮像装置では、上記第１実施形態のステレオ撮像装置と同様の構成であり、また、校正器も同一の構成であるので、各構成については上記第１実施形態と同様の符号を用いて説明する。また、図５のフローチャートの各ステップの説明において、図３のフローチャートのステップと同様の処理を行うものについては、同一符号を付してその詳細な説明を省略する。
【００７２】
まず、ＣＰＵ２ａは、上記第１実施形態と同様に、予めオペレータの操作による入力装置３の指示により、後述する比較工程で比較するために用いられる閾値を設定する（Ｓ３１：閾値設定工程）。この閾値設定の動作は、上記第１実施形態と同様であるが、設定される閾値のデータが異なる。上記第１実施形態では、カメラパラメータの修正量に対する閾値を設定したが、本第３実施形態では、特徴点間の距離の誤差に対する閾値を設定する。例えば、誤差ΔＬ４ｐ１−４，ΔＬ５ｐ１−４，ΔＬ４ｐ９−１２，ΔＬ５ｐ９−１２に対して閾値ｔｈａ，ｔｈｂ，ｔｈｃ，ｔｈｄが設定される。
【００７３】
ここで、閾値ｔｈａ〜ｔｈｄの値については、ステレオカメラを用いる用途において、ここでいう誤差と、測定対象に対して行う画像処理による追加の誤差との和が、必要となる精度よりも小さくなるようにオペレータが設定すればよい。
【００７４】
次いで、ＣＰＵ２ａは、上記第１実施形態と同様に、ステップＳ２〜Ｓ７の処理を実行する。そして、ＣＰＵ２ａは、ステップＳ７で誤差ΔＬ４ｐ１−４，ΔＬ５ｐ１−４，ΔＬ４ｐ９−１２，ΔＬ５ｐ９−１２を算出した後、当該誤差と、ステップＳ１で設定された閾値ｔｈａ，ｔｈｂ，ｔｈｃ，ｔｈｄとを比較する（Ｓ３２：比較工程）。
【００７５】
ＣＰＵ２ａは、ステップＳ３２における比較の結果、ステップＳ７で算出した誤差が、ステップＳ３１で設定された閾値を上回る場合（Ｓ３２：Ｎｏ）に、上記第１実施形態と同様のステップＳ８（修正量算出工程）の処理を実行する。次いで、ＣＰＵ２ａは、上記第１実施形態と同様にステップＳ９（カメラパラメータ修正工程）の処理を実行する。つまり、誤差ΔＬ４ｐ１−４，ΔＬ５ｐ１−４，ΔＬ４ｐ９−１２，ΔＬ５ｐ９−１２のうち、１つでも閾値を上回るものがあれば、カメラパラメータの修正処理を実行する。
【００７６】
なお、ＣＰＵ２ａは、ステップＳ３２における比較の結果、ステップＳ７で算出した誤差が、ステップＳ３１で設定された閾値以下の場合（Ｓ３２：Ｙｅｓ）には、カメラパラメータを修正する必要がないので、カメラ校正を終了する。つまり、算出された全ての誤差ΔＬ４ｐ１−４，ΔＬ５ｐ１−４，ΔＬ４ｐ９−１２，ΔＬ５ｐ９−１２が閾値以下であれば、カメラ校正を終了する。
【００７７】
ここで、本第３実施形態では、各誤差が閾値以下となるまで、カメラパラメータの修正動作を行う。具体的には、ＣＰＵ２ａは、ステップＳ９の処理にて各カメラ１のカメラパラメータを修正した後、ステップＳ５，Ｓ６，Ｓ７，Ｓ３２の処理を再度実行する。
【００７８】
そして、再度、ステップＳ３２の比較処理で誤差が閾値を上回ると判断した場合（Ｓ３２：Ｎｏ）、再度、ステップＳ８の修正量算出工程の処理及びステップＳ９のカメラパラメータ修正工程の処理が実行される。
【００７９】
以上、本第３実施形態では、算出した誤差が閾値以下となるまでカメラパラメータが修正され、誤差が閾値以下となったら、カメラパラメータの修正の処理を終了させている。したがって、カメラパラメータの過剰な修正動作が抑制され、更に三次元位置の測定における測定精度が向上する。また、誤差が閾値以下にならないことが懸念される場合は、無限に演算されることを避けるために、第２実施形態で述べたように繰り返し回数による上限も決めておいてもよい。
【００８０】
［第４実施形態］
次に、本発明の第４実施形態に係るステレオ撮像装置におけるカメラ校正方法について説明する。図６は、カメラ校正を実行するために校正器を撮像している様子を示す模式図である。上記第１〜第３実施形態では、平面状の校正器Ｃ１を用いたが、本第４実施形態では、姿勢の異なる３面の平面を有する校正器Ｃ２を用いている。なお、本第４実施形態のステレオ撮像装置では、上記第１実施形態のステレオ撮像装置と同様の構成であり、各構成については上記第１実施形態と同様の符号を用いて説明する。
【００８１】
本第４実施形態では、校正器Ｃ２の各面に、格子状に等間隔に配置した丸形状の複数（９つ）の特徴点（第１の特徴点）Ｑが印刷されている。本第４実施形態では、カメラ１Ｌ，１Ｒを使用して三次元位置測定を行う座標系は、図６に示したＸＹＺ座標系、即ち校正器Ｃ２の座標系（校正器座標系）とする。そして、校正器Ｃ２のＸＹＺ軸のそれぞれの軸上には、特徴点（第２の特徴点）Ｔ１，Ｔ２，Ｔ３が印刷されている。各特徴点Ｔ１，Ｔ２，Ｔ３は、校正器座標系における三次元位置座標が既知ものであり、予め、その実際の三次元位置座標が記憶部２ｂに記憶されている。つまり、校正器Ｃ２には、三次元位置座標が既知の特徴点Ｔ１，Ｔ２，Ｔ３が設けられている。
【００８２】
図７は、本発明の第４実施形態に係るステレオ撮像装置の制御装置による各カメラのカメラ校正の処理動作を示すフローチャートである。
【００８３】
まず、ＣＰＵ２ａは、上記第１実施形態と同様に、カメラパラメータの修正量に対する閾値を設定する（Ｓ４１：閾値設定工程）。
【００８４】
次に、ＣＰＵ２ａは、各カメラ１Ｌ，１Ｒに校正器Ｃ２を撮像させて、それぞれの校正用画像データを取得する（Ｓ４２：撮像工程）。本第４実施形態では、校正器Ｃ２が立体形状のものであるため、撮像する校正器Ｃ２の姿勢は、１種類以上であればよい。なお、校正器が１つの平面状のものである場合は、各カメラ１Ｌ，１Ｒにより撮像する校正器の姿勢は、３種類以上である。
【００８５】
次に、ＣＰＵ２ａは、各校正用画像データにおける各特徴点Ｑ，Ｔ１，Ｔ２，Ｔ３の画像上の位置を画像処理により抽出する（Ｓ４３：抽出工程）。例えば、校正器Ｃ２を撮像した際の姿勢が１種類である場合、カメラ１Ｌにより撮像されて得られる校正用画像データをＩＬ、カメラ１Ｒにより撮像されて得られる校正用画像データをＩＲとする。ＣＰＵ２ａは、校正用画像データＩＬにおける各特徴点Ｑ，Ｔ１，Ｔ２，Ｔ３の画像上の位置を抽出する。同様に、ＣＰＵ２ａは、校正用画像データＩＲにおける各特徴点Ｑ，Ｔ１，Ｔ２，Ｔ３の画像上の位置を抽出する。
【００８６】
次に、ＣＰＵ２ａは、各校正用画像データにおける各特徴点Ｑの画像上の位置および記憶２ｂに記憶されている各特徴点の位置から各カメラ１Ｌ，１Ｒのカメラパラメータの初期値を算出する（Ｓ４４：初期値算出工程）。ここでは、例えば非特許文献２に示されているような公知の方法により、各カメラ１Ｌ，１Ｒのカメラパラメータの初期値を算出する。本第４実施形態では、この初期値算出工程の処理では、各第１の特徴点Ｑの画像上の位置からカメラパラメータの初期値を算出する。つまり、第１の特徴点Ｑは、このステップＳ４４における初期値算出工程の処理でカメラパラメータの初期値を算出するために設けられたものである。具体的には、ＣＰＵ２ａは、校正用画像データＩＬにおける各特徴点Ｑの画像上の位置からカメラ１Ｌの内部パラメータの初期値を算出する。同様に、ＣＰＵ２ａは、校正用画像データＩＲにおける各特徴点Ｑの画像上の位置からカメラ１Ｒの内部パラメータの初期値を算出する。また、各校正用画像データＩＬ、ＩＲにおける各特徴点Ｑの画像上の位置からカメラ１Ｌ、１Ｒの外部パラメータの初期値を算出する。ここで、このカメラパラメータの初期値を算出するには、平面の校正器であれば少なくとも３種類の位置姿勢の校正器を撮像した画像データが必要であるが、本第４実施形態では、３面の校正器Ｃ２を撮像しているため、校正器Ｃ２の位置姿勢は１種類でよい。なお、内部パラメータについては、各カメラ別々に撮像を行い、別途算出しておいてもよい。
【００８７】
算出されたカメラ１Ｌ，１Ｒのカメラパラメータのうち内部パラメータをカメラ行列ＡＬ、ＡＲとして以下の数１２及び数１３に示す。なお、ｐ１〜ｐ１２は、カメラパラメータのうちの内部パラメータである。
【００８８】
【数１２】
2012202694.tif 000014
【００８９】
【数１３】
2012202694.tif 000015
【００９０】
また、カメラパラメータのうち各カメラ１Ｌ，１Ｒの校正器座標系を基準とした位置及び姿勢を表わすベクトルＴＬ，ＴＲを以下の数１４及び数１５に示す。なお、ｐ１２〜ｐ２３はカメラパラメータのうちの外部パラメータである。
【００９１】
【数１４】
2012202694.tif 000016
【００９２】
【数１５】
2012202694.tif 000017
【００９３】
ここで、ＣＰＵ２ａは、ステップＳ４４の処理において、内部パラメータとしてレンズ歪みを表わす放射状歪み係数ｐ２４，ｐ２５，ｐ２６及び偏心歪み係数をｐ２７，ｐ２８を算出する。そして、ＣＰＵ２ａは、以下の数１６及び数１７で表される関係式に算出した係数ｐ２４〜ｐ２８を適用して、各校正用画像データにおいて、歪みのあるカメラ座標（ｘ’，ｙ’）を歪みのないカメラ座標（ｘ，ｙ）に補正しておく。なお、この数１６及び数１７においてｒはｘ２＋ｙ２の平方根を表わす。
【００９４】
【数１６】
2012202694.tif 000018
【００９５】
【数１７】
2012202694.tif 000019
【００９６】
次に、ＣＰＵ２ａは、各校正用画像データにおいて、各カメラ１Ｌ，１Ｒのカメラパラメータを用いて、検出済みである画像上の複数の特徴点のうち第２の特徴点Ｔ１，Ｔ２，Ｔ３についてステレオ法により三次元位置の測定を行う（Ｓ４５：特徴点座標算出工程）。ここで、三次元測定を行う座標系は校正器座標系であり、本第４実施形態では、第２の特徴点Ｔ１，Ｔ２，Ｔ３の実際の三次元位置座標が既知であるので、ステレオ法によりこれら特徴点Ｔ１〜Ｔ３の三次元位置測定を行う。なお、校正器座標系で三次元位置座標が既知であれば、特徴点Ｑを用いてもよく、また、それらの数は３つに限定されるものではなく、少なくとも１つあればよい。
【００９７】
以下、特徴点座標算出工程の処理について具体的に説明する。校正用画像データＩＬ，ＩＲにおける特徴点Ｔ１の画像座標をそれぞれ（ｕＬｔ１，ｖＬｔ１）、（ｕＲｔ１，ｖＲｔ１）とする。特徴点Ｔ１の三次元位置座標Ｘｔ１（ｘｔ１，ｙｔ１，ｚｔ１）Ｔは以下の数１８及び数１９のように表される。
【００９８】
【数１８】
2012202694.tif 000020
【００９９】
【数１９】
2012202694.tif 000021
【０１００】
この数１８及び数１９に示した式において、ＲｏｔＬ、ＲｏｔＲは数１４及び数１５に示す外部パラメータを示すベクトルＴＬ、ＴＲより算出した、カメラ１Ｌ、１Ｒの校正器座標系に対する回転行列である。また、ＴｒａｎｓＬ、ＴｒａｎｓＲは、外部パラメータを示すベクトルＴＬ、ＴＲより算出した、カメラ１Ｌ、１Ｒの校正器座標系に対する平行移動行列である。
【０１０１】
この数１８より求めた座標Ｘｔ１と数１９より求めた座標Ｘｔ１との差の大きさが最小になるように、係数ｇ，ｈを算出し、その係数ｇ，ｈよりそれぞれ求めた座標Ｘｔ１の中点として、特徴点Ｔ１の三次元位置座標Ｘｔ１が求まる。同様にして、特徴点Ｔ２、Ｔ３の三次元位置座標Ｘｔ２、Ｘｔ３も求まる。
【０１０２】
次に、ＣＰＵ２ａは、ステップＳ４５で算出した特徴点Ｔ１〜Ｔ３の三次元位置座標と、実際の特徴点Ｔ１〜Ｔ３の三次元位置座標（真値）との誤差を算出する（Ｓ４６：誤差算出工程）。つまり、ＣＰＵ２ａは、算出した三次元位置座標Ｘｔ１、Ｘｔ２、Ｘｔ３と記憶部２ｂに記憶された真値との誤差ΔＸｔ１、ΔＸｔ２、ΔＸｔ３を算出する。
【０１０３】
次に、ＣＰＵ２ａは、ステップＳ４６で算出した誤差ΔＸｔ１、ΔＸｔ２、ΔＸｔ３から各カメラ１Ｌ，１Ｒのカメラパラメータの修正量を算出する（Ｓ４７：修正量算出工程）。
【０１０４】
以下、修正量算出工程における修正量算出動作について具体的に説明する。まず、ＣＰＵ２ａは、以下の数２０で表される誤差の二乗和を求める。
【０１０５】
【数２０】
2012202694.tif 000022
【０１０６】
以下、この二乗和が最小になるようにカメラ校正を行うが、最小化する対象は、以下の数２１で表わすようにＸ方向とＹ方向とＺ方向にそれぞれ重みづけを行ったものとするなど、この限りでない。
【０１０７】
【数２１】
2012202694.tif 000023
【０１０８】
ＣＰＵ２ａは、このｅにおいて、以下の数２２及び数２３に示す勾配∇ｅとヘッセ行列Ｈを算出する。
【０１０９】
【数２２】
2012202694.tif 000024
【０１１０】
【数２３】
2012202694.tif 000025
【０１１１】
次いで、ＣＰＵ２ａは、ニュートン法を用いて、以下の数２４に示すカメラパラメータＰ＝（ｐ１，…，ｐ２８）Ｔの修正量ΔＰ＝（Δｐ１，…，Δｐ２８）Ｔを算出する。
【０１１２】
【数２４】
2012202694.tif 000026
【０１１３】
次に、ＣＰＵ２ａは、ステップＳ４７で算出された修正量ΔＰの分加算処理を行うことで、各カメラパラメータＰを更新（修正）する（Ｓ４８：カメラパラメータ修正工程）。これにより、各カメラパラメータｐ１，…，ｐ２８が校正されたこととなる。なお、修正量Δｐ１，…，Δｐ２８が負の値の場合は、カメラパラメータに負の値の修正量を加算することとなる。
【０１１４】
このように、ステレオ法による特徴点の三次元位置座標の算出結果を用いてカメラパラメータｐ１，…，ｐ２８の校正を行うため、三次元位置の測定における測定精度を向上させることができる。また、カメラパラメータｐ１，…，ｐ２８の初期値を算出するための撮像作業が、それに続くカメラパラメータｐ１，…，ｐ２８の校正のための撮像作業も兼ねるので、撮像作業を簡略化することができる。
【０１１５】
ここで、このカメラパラメータｐ１，…，ｐ２８の修正動作を１回だけ行ってもよいが、本第４実施形態では、これらカメラパラメータの修正量がそれぞれの閾値以下となるまで繰り返すことで、カメラ校正を行うようにしている。
【０１１６】
つまり、ＣＰＵ２ａは、ステップＳ４８のカメラパラメータ修正工程における修正処理を終了した後、ステップＳ４７で算出した修正量とステップＳ４１で設定した閾値とを比較する（Ｓ４９：比較工程）。そして、ＣＰＵ２ａは、ステップＳ４９における比較の結果、ステップＳ４７で算出した修正量がステップＳ４１で設定された閾値を上回る場合（Ｓ４９：Ｎｏ）、ステップＳ４５の処理に戻り、ステップＳ４５〜Ｓ４８の処理を再度実行する。つまり、ＣＰＵ２ａは、カメラパラメータの修正量が一つでも閾値を上回る場合（Ｓ４９：Ｎｏ）には、再度、カメラ校正を実施し、全てのカメラパラメータの修正量が閾値以下となった場合（Ｓ４９：Ｙｅｓ）に、カメラ校正を終了する。
【０１１７】
具体的には、カメラパラメータｐ１〜ｐ２８の修正量｜Δｐ１｜〜｜Δｐ２８｜に対しては、ステップＳ４１で閾値ｔｈ１〜ｔｈ２８が設定される。そして、ＣＰＵ２ａは、修正量｜Δｆ１｜〜｜Δｐ２８｜と閾値ｔｈ１〜ｔｈ２８とをそれぞれ比較し、全ての修正量が閾値以下となった場合に、カメラ校正を終了する。
【０１１８】
なお、これら閾値ｔｈ１〜ｔｈ２８の値の設定については、以下のようにしている。まず、ステレオカメラを用いる用途において必要となる校正精度を求め、この校正精度の数分の１の値を校正のバラツキ許容値とする。そして、各カメラパラメータの変動が校正のバラツキに及ぼす影響を算出しておき、この影響がバラツキ許容値以下となる各カメラパラメータの変動値を閾値とする。なお、この閾値の設定値については、これに限定するものではなく、バラツキ許容値の０．１％以下の値などの共通の値にしてもよく、オペレータが任意に設定できる値である。
【０１１９】
このように、各修正量が閾値以下となるまで各カメラパラメータの修正を行うことで、１回のみ各カメラパラメータを修正する場合よりも、更に三次元位置の測定における測定精度が向上する。
【０１２０】
［第５実施形態］
次に、本発明の第５実施形態に係るステレオ撮像装置におけるカメラ校正方法について説明する。図８は、本発明の第５実施形態に係るステレオ撮像装置の制御装置による各カメラのカメラ校正の処理動作を示すフローチャートである。なお、本第５実施形態のステレオ撮像装置では、上記第１及び第４実施形態のステレオ撮像装置と同様の構成であり、各構成については上記第１実施形態と同様の符号を用いて説明する。また、校正器も上記第４実施形態と同一の構成であるので、上記第４実施形態と同様の符号を用いて説明する。また、図８のフローチャートの各ステップの説明において、図７のフローチャートのステップと同様の処理を行うものについては、同一符号を付してその詳細な説明を省略する。
【０１２１】
ＣＰＵ２ａは、予めオペレータの操作による入力装置３の指示により、カウント数Ｎの上限を示すカウント数上限値Ｎ０を設定する（Ｓ５１：上限値設定工程）。カウント数Ｎは、カメラパラメータの修正回数を示している。ここで、カウント数上限値Ｎ０を設定するとは、カウント数上限値Ｎ０を示すデータをＣＰＵ２ａがカウント数上限値Ｎ０として読み出し可能な状態で記憶部２ｂに記憶させることである。なお、このカウント数上限値Ｎ０の設定の動作は、校正モードに切り替えられた際に毎回行うようにしてもよいし、校正モードに切り替えられた最初の１回だけ行うようにしてもよい。また、オペレータが随時、カウント数上限値Ｎ０の設定を行えるように構成してもよい。また、記憶部２ｂに校正用のプログラムを記憶させる際に、カウント数上限値Ｎ０のデータを校正用のプログラムと共に記憶部２ｂに記憶させるようにしてもよい。
【０１２２】
次に、ＣＰＵ２ａは、カウント数Ｎを初期化（Ｎ＝０）する（Ｓ５２）。そして、ＣＰＵ２ａは、上記第４実施形態と同様に、ステップＳ４２〜Ｓ４８の処理を実行し、ステップＳ４８でカメラパラメータを修正した後、カウント数Ｎを１インクリメントする（Ｓ５３）。つまり、このカウント数Ｎは、カメラパラメータの修正回数を示しているので、カメラパラメータを修正する度にカウント数Ｎを１インクリメントする。
【０１２３】
次に、ＣＰＵ２ａは、カウント数Ｎがカウント数上限値Ｎ０に達したか否かを判断する（Ｓ５４）。ＣＰＵ２ａは、カウント数Ｎがカウント数上限値Ｎ０に達していないと判断した場合（Ｓ５４：Ｎｏ）は、ステップＳ４５の処理に戻り、ステップＳ４５〜Ｓ４８の一連の工程を実行する。これにより、カウント数Ｎがカウント数上限値Ｎ０に達するまで、ステップＳ４５〜Ｓ４８の一連の工程を繰り返し実行されることとなる。
【０１２４】
そして、ＣＰＵ２ａは、カウント数Ｎがカウント数上限値Ｎ０に達したと判断した場合（Ｓ５４：Ｙｅｓ）は、カメラ校正を終了する。
【０１２５】
以上、本第５実施形態では、予め設定された値Ｎ０の数の分、カメラパラメータを修正することとなり、更に三次元位置の測定における測定精度が向上する。
【０１２６】
［第６実施形態］
次に、本発明の第６実施形態に係るステレオ撮像装置におけるカメラ校正方法について説明する。図９は、本発明の第６実施形態に係るステレオ撮像装置の制御装置による各カメラのカメラ校正の処理動作を示すフローチャートである。なお、本第６実施形態のステレオ撮像装置では、上記第１及び第４実施形態のステレオ撮像装置と同様の構成であるので、各構成については上記第１実施形態と同様の符号を用いて説明する。また、校正器も上記第４実施形態と同一の構成であるので、上記第４実施形態と同様の符号を用いて説明する。また、図９のフローチャートの各ステップの説明において、図７のフローチャートのステップと同様の処理を行うものについては、同一符号を付してその詳細な説明を省略する。
【０１２７】
まず、ＣＰＵ２ａは、上記第４実施形態と同様に、予めオペレータの操作による入力装置３の指示により、後述する比較工程で比較するために用いられる閾値を設定する（Ｓ６１：閾値設定工程）。この閾値設定の動作は、上記第４実施形態と同様であるが、設定される閾値のデータが異なる。上記第４実施形態では、カメラパラメータの修正量に対する閾値を設定したが、本第６実施形態では、特徴点の三次元位置座標の誤差に対する閾値を設定する。例えば、誤差ΔＸｔ１，ΔＸｔ２，ΔＸｔ３に対して閾値ｔｈｔ１，ｔｈｔ２，ｔｈｔ３が設定される。
【０１２８】
ここで、閾値ｔｈｔ１〜ｔｈｔ３の値については、ステレオカメラを用いる用途において、ここでいう誤差と、測定対象に対して行う画像処理による追加の誤差との和が、必要となる精度よりも小さくなるようにオペレータが設定すればよい。
【０１２９】
次いで、ＣＰＵ２ａは、上記第４実施形態と同様に、ステップＳ４２〜Ｓ４６の処理を実行する。そして、ＣＰＵ２ａは、ステップＳ４６で誤差ΔＸｔ１，ΔＸｔ２，ΔＸｔ３を算出した後、当該誤差と、ステップＳ６１で設定された閾値ｔｈｔ１，ｔｈｔ２，ｔｈｔ３とを比較する（Ｓ６２：比較工程）。
【０１３０】
ＣＰＵ２ａは、ステップＳ６２における比較の結果、ステップＳ４６で算出した誤差が、ステップＳ６１で設定された閾値を上回る場合（Ｓ６２：Ｎｏ）に、上記第４実施形態と同様のステップＳ４７（修正量算出工程）の処理を実行する。次いで、ＣＰＵ２ａは、上記第４実施形態と同様にステップＳ４８（カメラパラメータ修正工程）の処理を実行する。つまり、誤差ΔＸｔ１，ΔＸｔ２，ΔＸｔ３のうち、１つでも閾値を上回るものがあれば、カメラパラメータの修正処理を実行する。
【０１３１】
なお、ＣＰＵ２ａは、ステップＳ６２における比較の結果、ステップＳ４６で算出した誤差が、ステップＳ６１で設定された閾値以下の場合（Ｓ６２：Ｙｅｓ）には、カメラパラメータを修正する必要がないので、カメラ校正を終了する。つまり、算出された全ての誤差ΔＸｔ１，ΔＸｔ２，ΔＸｔ３が閾値以下であれば、カメラ校正を終了する。
【０１３２】
ここで、本第６実施形態では、各誤差が閾値以下となるまで、カメラパラメータの修正動作を行う。具体的には、ＣＰＵ２ａは、ステップＳ４８の処理にて各カメラ１のカメラパラメータを修正した後、ステップＳ４５，Ｓ４６，Ｓ６２の処理を再度実行する。
【０１３３】
そして、再度、ステップＳ６２の比較処理で誤差が閾値を上回ると判断した場合（Ｓ６２：Ｎｏ）、再度、ステップＳ４７の修正量算出工程の処理及びステップＳ４８のカメラパラメータ修正工程の処理が実行される。
【０１３４】
以上、本第６実施形態では、算出した誤差が閾値以下となるまでカメラパラメータが修正され、誤差が閾値以下となったら、カメラパラメータの修正の処理を終了させている。したがって、カメラパラメータの過剰な修正動作が抑制され、更に三次元位置の測定における測定精度が向上する。また、誤差が閾値以下にならないことが懸念される場合は、無限に演算されることを避けるために、第２実施形態で述べたように繰り返し回数による上限も決めておいてもよい。
【０１３５】
なお、上記第１〜第６実施形態に基づいて本発明を説明したが、本発明はこれに限定されるものではない。校正器としては、上記第１〜第６実施形態において例示した校正器Ｃ１，Ｃ２に限定されるものではなく、特徴点を抽出できるものであれば、特徴点はいかなる形状であってもよい。
【符号の説明】
【０１３６】
１Ｌ，１Ｒ…カメラ、２…制御装置、２ａ…ＣＰＵ、２ｂ…記憶部、３…入力装置、Ｃ１，Ｃ２…校正器、Ｐ１〜Ｐ１２…特徴点、Ｑ…特徴点、Ｔ１，Ｔ２，Ｔ３…特徴点
【図１】
2012202694.tif 000027
【図２】
2012202694.tif 000028
【図３】
2012202694.tif 000029
【図４】
2012202694.tif 000030
【図５】
2012202694.tif 000031
【図６】
2012202694.tif 000032
【図７】
2012202694.tif 000033
【図８】
2012202694.tif 000034
【図９】
2012202694.tif 000035