(58)【調査した分野】(Int.Cl.,DB名)
前記カメラモデルが、前記他の1つのワールド座標の座標値と前記2次元の画素座標の2つの座標値の関数を要素とした複数の2次元ベクトル関数の線形和によって、前記ワールド座標空間の直線を表す請求項1に記載の較正装置。
前記カメラモデルが、前記2次元の画素座標平面上の点の2つの画素座標値と、前記光学系によって前記画素座標平面と光学的に共役な平面上の点の2つのワールド座標値との結像関係を表す線形の結像モデルの各係数を、前記他の1つのワールド座標の1次式で置換した数式で表現される請求項2に記載の較正装置。
前記較正データ取得部が、前記ワールド座標空間の2つの平面上のそれぞれの点の各3つの座標値と、前記それぞれの点に対応する前記2次元の画素座標の2つの座標値との対応を表す較正データを複数取得する請求項1に記載の較正装置。
前記パラメータ算出部が、前記ワールド座標空間の2つの平面上のそれぞれの点の各3つの座標値と、前記それぞれの点に対応する前記2次元の画素座標の2つの座標値との対応を表す複数の較正データに、前記カメラモデルを当てはめる請求項1に記載の較正装置。
前記較正データ取得部が、前記2次元の画素座標の2つの座標値と、前記ワールド座標の直線の傾きおよび切片との対応を表す複数の較正データを取得する請求項1に記載の較正装置。
前記パラメータ算出部が、前記較正データ取得部により取得された較正データの内、3次元のワールド座標を、該ワールド座標の回転を表す3つの回転角の1以上の回転角で回転したワールド座標に変換した較正データに、前記カメラモデルを当てはめて、該カメラモデルの残差が最小になる1以上の回転角を求める請求項1に記載の較正装置。
前記パラメータ算出部が、前記較正データ取得部により取得された較正データの内、3次元のワールド座標を、該ワールド座標の平行移動を表す3つの平行移動成分の1以上の成分で平行移動したワールド座標に変換した較正データに、前記カメラモデルを当てはめて、該カメラモデルの残差が最小になる1以上の平行移動成分を求める請求項1または請求項8に記載の較正装置。
複数の画素を有する2次元の画像変換素子と、該画像変換素子と3次元のワールド座標空間との間で結像関係を形成する光学系とを備える光学装置の前記画像変換素子の2次元の画素座標と、前記ワールド座標空間の3次元のワールド座標との対応を示す較正データを取得するステップと、
取得された較正データに、前記3次元のワールド座標の内の2つの座標値を、他の1つのワールド座標の座標値および前記2次元の画素座標の2つの座標値の関数として表したカメラモデルを当てはめて、該カメラモデルのパラメータを算出するステップとを含む較正方法。
前記カメラモデルが、前記他の1つのワールド座標の座標値と前記2次元の画素座標の2つの座標値の関数を要素とした複数の2次元ベクトル関数の線形和によって、前記ワールド座標空間の直線を表す請求項13に記載の較正方法。
前記カメラモデルが、前記2次元の画素座標平面上の点の2つの画素座標値と、前記光学系によって前記画素座標平面と光学的に共役な平面上の点の2つのワールド座標値との結像関係を表す線形の結像モデルの各係数を、前記他の1つのワールド座標の1次式で置換した数式で表現される請求項14に記載の較正方法。
前記較正データを取得するステップが、前記ワールド座標空間の2つの平面上の2つの座標値と、前記2次元の画素座標の2つの座標値との対応を表す複数の較正データを取得する請求項13に記載の較正方法。
前記パラメータを算出するステップが、前記ワールド座標空間の2つの平面上の2つの座標値と、前記2次元の画素座標の2つの座標値との対応を表す複数の較正データに、前記カメラモデルを当てはめる請求項13に記載の較正方法。
前記較正データを取得するステップが、前記2次元の画素座標の2つの座標値と、前記ワールド座標の直線の傾きおよび切片との対応を表す複数の較正データを取得する請求項13に記載の較正方法。
前記パラメータを算出するステップが、前記較正データを取得するステップにより取得された較正データの内、3次元のワールド座標を、該ワールド座標の回転を表す3つの回転角の1以上の回転角で回転したワールド座標に変換した較正データに、前記カメラモデルを当てはめて、該カメラモデルの残差が最小になる1以上の回転角を求める請求項13に記載の較正方法。
前記パラメータを算出するステップが、前記較正データを取得するステップにより取得された較正データの内、3次元のワールド座標を、該ワールド座標の平行移動を表す3つの平行移動成分の1以上の成分で平行移動したワールド座標に変換した較正データに、前記カメラモデルを当てはめて、該カメラモデルの残差が最小になる1以上の平行移動成分を求める請求項13または請求項20に記載の較正方法。
前記カメラモデルにより、前記3次元のワールド座標の内の2つの座標値を、他の1つのワールド座標の座標値と前記2次元の画素座標の2つの座標値から求めるワールド座標算出部を備える請求項22から請求項24のいずれかに記載の光学装置。
前記カメラモデルにより、前記2次元の画素座標の2つの座標値から、該画素座標に対応するワールド座標空間の直線を求める直線算出部を備える請求項22から請求項24のいずれかに記載の光学装置。
前記カメラモデルにより、前記画像変換素子により取得あるいは形成された画像の画素座標に対応する前記ワールド座標を求め、歪みを補正した画像を生成する歪み補正画像生成部を備える請求項22から請求項24のいずれかに記載の光学装置。
前記回転角および/または前記平行移動成分により、回転および/または平行移動後のワールド座標を回転および/または平行移動前のワールド座標に変換するワールド座標回転部および/またはワールド座標平行移動部を備える請求項28に記載の光学装置。
請求項11に記載の較正装置において用いられた前記カメラモデルと、前記較正装置により算出された請求項30に記載の1つ以上の撮影装置の前記カメラモデルの前記パラメータとを用いて、前記撮影装置により取得された複数の視点での画像の画素座標から被写体の注目点の3次元座標を計算する計測方法。
請求項11に記載の較正装置である第1の較正装置および請求項12に記載の較正装置である第2の較正装置において用いられた前記カメラモデルと、前記第1の較正装置により算出された請求項30に記載された1つ以上の撮影装置の前記カメラモデルの前記パラメータと、前記第2の較正装置により算出された請求項31に記載の1つ以上の投影装置の前記カメラモデルの前記パラメータとを用いて、前記投影装置からの構造化光が投影された被写体を前記撮影装置で撮影した画像の画素座標から前記被写体の注目点の3次元座標を計算する計測方法。
【発明の概要】
【発明が解決しようとする課題】
【0017】
特許文献1および非特許文献1の較正装置では、全ての逆投影直線がカメラの光学中心で交わるという想定に基づいたカメラモデルを用いている。しかしながら、一般には光学系は瞳収差を伴うために、全ての逆投影直線が入射瞳上の1点では交わらない。特に、画角が大きな広角レンズを用いている場合には、瞳収差が顕著である。
【0018】
また、特許文献1のカメラモデルを初めとする従来の標準的なカメラモデルは数1から数4に示される複数の数式からなる非線形モデルであり、測定データからカメラパラメータを求める過程で、最終的に全てのカメラパラメータを繰り返し最適化する必要がある。そのため、次の2つの問題が生じる。
【0019】
第1に、非線形モデルの最適化の評価関数には複数の極小値が存在する可能性があり、適切な初期値を設定しないと誤った最小値に収束するという問題がある。第2に、複数のカメラパラメータの最適化演算を繰り返し行う必要があるため、膨大な計算時間が必要となる場合があるという問題がある。
【0020】
本発明は上述した事情に鑑みてなされたものであって、カメラパラメータを短時間に精度よく求めることができる較正装置、較正方法、光学装置、撮影装置、投影装置、計測システムおよび計測方法を提供することを目的としている。
【課題を解決するための手段】
【0021】
本発明の一態様は、複数の画素を有する2次元の画像変換素子と、該画像変換素子と3次元のワールド座標空間との間で結像関係を形成する光学系とを備える光学装置の較正装置であって、前記画像変換素子の2次元の画素座標と、前記ワールド座標空間の3次元のワールド座標との対応を示す較正データを取得する較正データ取得部と、該較正データ取得部により取得された較正データに、前記3次元のワールド座標の内の2つの座標値を、他の1つのワールド座標の座標値および前記2次元の画素座標の2つの座標値の関数として表したカメラモデルを当てはめて、該カメラモデルのパラメータを算出するパラメータ算出部とを備える較正装置である。
【0022】
本態様によれば、較正データ取得部により取得された、画像変換素子の2次元の画素座標とワールド座標空間の3次元のワールド座標との対応を示す較正データに、パラメータ算出部においてカメラモデルが当てはめられることにより、カメラモデルのパラメータが算出される。パラメータの算出においては、3次元のワールド座標の内の2つの座標値を、他の1つのワールド座標の座標値および2次元の画素座標の2つの座標値の関数として表したカメラモデルを用いることにより、歪曲収差を含むワールド座標と画素座標との結像関係を示す線形モデルによって、過度な繰り返し最適化を行うことなくカメラモデルのパラメータを短時間に精度よく求めることができる。
【0023】
上記態様においては、前記カメラモデルが、前記他の1つのワールド座標の座標値と前記2次元の画素座標の2つの座標値の関数を要素とした複数の2次元ベクトル関数の線形和によって、前記ワールド座標空間の直線を表してもよい。
このようにすることで、画像変換素子の2次元の画素の座標値と、1つのワールド座標の座標値とから、2次元の画像の各画素に対応するワールド座標空間内の直線を簡易に求めるパラメータを短時間に精度よく求めることができる。
【0024】
また、上記態様においては、前記カメラモデルが、前記2次元の画素座標平面上の点の2つの画素座標値と、前記光学系によって前記画素座標平面と光学的に共役な平面上の点の2つのワールド座標値との結像関係を表す線形の結像モデルの各係数を、前記他の1つのワールド座標の1次式で置換した数式で表現されてもよい。
また、上記態様においては、前記較正データ取得部が、前記ワールド座標空間の2つの平面上のそれぞれの点の各3つの座標値と、前記それぞれの点に対応する前記2次元の画素座標の2つの座標値との対応を表す較正データを複数取得してもよい。
【0025】
また、上記態様においては、前記パラメータ算出部が、前記ワールド座標空間の2つの平面上のそれぞれの点の各3つの座標値と、前記それぞれの点に対応する前記2次元の画素座標の2つの座標値との対応を表す複数の較正データに、前記カメラモデルを当てはめてもよい。
また、上記態様においては、前記較正データ取得部が、前記2次元の画素座標の2つの座標値と、前記ワールド座標の直線の傾きおよび切片との対応を表す複数の較正データを取得してもよい。
【0026】
また、上記態様においては、前記パラメータ算出部が、前記カメラモデルを線形の最小二乗法で前記較正データに当てはめてもよい。
また、上記態様においては、前記パラメータ算出部が、前記較正データ取得部により取得された較正データの内、3次元のワールド座標を、該ワールド座標の回転を表す3つの回転角の1以上の回転角で回転したワールド座標に変換した較正データに、前記カメラモデルを当てはめて、該カメラモデルの残差が最小になる1以上の回転角を求めてもよい。
【0027】
また、上記態様においては、前記パラメータ算出部が、前記較正データ取得部により取得された較正データの内、3次元のワールド座標を、該ワールド座標の平行移動を表す3つの平行移動成分の1以上の成分で平行移動したワールド座標に変換した較正データに、前記カメラモデルを当てはめて、該カメラモデルの残差が最小になる1以上の平行移動成分を求めてもよい。
【0028】
また、上記態様においては、前記光学装置が、複数の画像変換素子および該画像変換素子と3次元のワールド座標空間との間で結像関係を形成する光学系を備え、前記較正データ取得部が各前記画像変換素子および前記光学系の較正データを取得し、前記パラメータ算出部が、各前記画像変換素子および前記光学系の較正データに、各該画像変換素子の2次元の画素座標の関数として表したカメラモデルを当てはめてもよい。
【0029】
また、上記態様においては、前記光学装置が撮影装置であり、前記画像変換素子が撮像素子であり、前記光学系が撮像光学系であってもよい。
また、上記態様においては、前記光学装置が投影装置であり、前記画像変換素子が画像形成素子であり、前記光学系が投影光学系であってもよい。
【0030】
また、本発明の他の態様は、複数の画素を有する2次元の画像変換素子と、該画像変換素子と3次元のワールド座標空間との間で結像関係を形成する光学系とを備える光学装置の前記画像変換素子の2次元の画素座標と、前記ワールド座標空間の3次元のワールド座標との対応を示す較正データを取得するステップと、取得された較正データに、前記3次元のワールド座標の内の2つの座標値を、他の1つのワールド座標の座標値および前記2次元の画素座標の2つの座標値の関数として表したカメラモデルを当てはめて、該カメラモデルのパラメータを算出するステップとを含む較正方法である。
【0031】
上記態様においては、前記カメラモデルが、前記他の1つのワールド座標の座標値と前記2次元の画素座標の2つの座標値の関数を要素とした複数の2次元ベクトル関数の線形和によって、前記ワールド座標空間の直線を表してもよい。
また、上記態様においては、前記カメラモデルが、前記2次元の画素座標平面上の点の2つの画素座標値と、前記光学系によって前記画素座標平面と光学的に共役な平面上の点の2つのワールド座標値との結像関係を表す線形の結像モデルの各係数を、前記他の1つのワールド座標の1次式で置換した数式で表現されてもよい。
【0032】
また、上記態様においては、前記較正データを取得するステップが、前記ワールド座標空間の2つの平面上の2つの座標値と、前記2次元の画素座標の2つの座標値との対応を表す複数の較正データを取得してもよい。
また、上記態様においては、前記パラメータを算出するステップが、前記ワールド座標空間の2つの平面上の2つの座標値と、前記2次元の画素座標の2つの座標値との対応を表す複数の較正データに、前記カメラモデルを当てはめてもよい。
【0033】
また、上記態様においては、前記較正データを取得するステップが、前記2次元の画素座標の2つの座標値と、前記ワールド座標の直線の傾きおよび切片との対応を表す複数の較正データを取得してもよい。
また、上記態様においては、前記パラメータを算出するステップが、前記カメラモデルを線形の最小二乗法で較正データに当てはめてもよい。
【0034】
また、上記態様においては、前記パラメータを算出するステップが、前記較正データを取得するステップにより取得された較正データの内、3次元のワールド座標を、該ワールド座標の回転を表す3つの回転角の1以上の回転角で回転したワールド座標に変換した較正データに、前記カメラモデルを当てはめて、該カメラモデルの残差が最小になる1以上の回転角を求めてもよい。
【0035】
また、上記態様においては、前記パラメータを算出するステップが、前記較正データを取得するステップにより取得された較正データの内、3次元のワールド座標を、該ワールド座標の平行移動を表す3つの平行移動成分の1以上の成分で平行移動したワールド座標に変換した較正データに、前記カメラモデルを当てはめて、該カメラモデルの残差が最小になる1以上の平行移動成分を求めてもよい。
【0036】
また、本発明の他の態様は、上記較正装置により算出されたパラメータが設定されたカメラモデルを搭載した光学装置である。
また、上記態様においては、前記カメラモデルを、複数の画素座標と2つの平面上のワールド座標との対応を表す離散データとして保持してもよい。
【0037】
また、上記態様においては、前記カメラモデルを、複数の画素座標とワールド座標空間の直線の傾きおよび切片の対応を表す離散データとして保持してもよい。
【0038】
また、上記態様においては、前記カメラモデルにより、前記3次元のワールド座標の内の2つの座標値を、他の1つのワールド座標の座標値と前記2次元の画素座標の2つの座標値から求めるワールド座標算出部を備えていてもよい。
このようにすることで、ワールド座標算出部により、取得された画像の画素座標から3次元のワールド座標内の2つの座標値を簡易に求めることができる。
【0039】
また、上記態様においては、前記カメラモデルにより、前記2次元の画素座標の2つの座標値から、該画素座標に対応するワールド座標空間の直線を求める直線算出部を備えていてもよい。
【0040】
さらに、上記態様においては、前記カメラモデルにより、前記画像変換素子により取得あるいは形成された画像の画素座標に対応する前記ワールド座標を求め、歪みを補正した画像を生成する歪み補正画像生成部を備えていてもよい。
【0041】
また、本発明の他の態様は、上記較正装置により取得された回転角および/または平行移動成分がパラメータとして設定されたカメラモデルを搭載した撮影装置である。
上記態様においては、前記回転角および/または前記平行移動成分により、回転および/または平行移動後のワールド座標を回転および/または平行移動前のワールド座標に変換するワールド座標回転部および/またはワールド座標平行移動部を備えていてもよい。
また、本発明の他の態様は、上記光学装置からなる撮影装置である。
また、本発明の他の態様は、上記光学装置からなる投影装置である。
【0042】
また、本発明の他の態様は、上記較正装置と、上記1つ以上の撮影装置と、該撮影装置により取得された複数の視点での画像の画素座標から被写体の注目点の3次元座標を計算する3次元座標計算処理部とを備え、該3次元座標計算処理部が、前記較正装置において用いられた前記カメラモデルと、前記較正装置により算出された前記撮影装置の前記カメラモデルの前記パラメータとを用いる計測システムである。
【0043】
また、本発明の他の態様は、上記の較正装置である第1の較正装置と、上記の較正装置である第2の較正装置と、上記の1つ以上の撮影装置と、上記の1つ以上の投影装置と、前記投影装置からの構造化光が投影された被写体を前記撮影装置で撮影した画像の画素座標から前記被写体の注目点の3次元座標を計算する3次元座標計算処理部とを備え、該3次元座標計算処理部が、前記第1および第2の較正装置において用いられた前記カメラモデルと、前記第1の較正装置により算出された前記撮影装置の前記カメラモデルの前記パラメータと、前記第2の較正装置により算出された前記投影装置の前記カメラモデルの前記パラメータとを用いる計測システムである。
【0044】
また、本発明の他の態様は、上記較正装置において用いられた前記カメラモデルと、前記較正装置により算出された上記1つ以上の撮影装置の前記カメラモデルの前記パラメータとを用いて、前記撮影装置により取得された複数の視点での画像の画素座標から被写体の注目点の3次元座標を計算する計測方法である。
【0045】
また、本発明の他の態様は、上記の較正装置である第1の較正装置および上記の較正装置である第2の較正装置において用いられた前記カメラモデルと、前記第1の較正装置により算出された上記1つ以上の撮影装置の前記カメラモデルの前記パラメータと、前記第2の較正装置により算出された上記1つ以上の投影装置の前記カメラモデルの前記パラメータとを用いて、前記投影装置からの構造化光が投影された被写体を前記撮影装置で撮影した画像の画素座標から前記被写体の注目点の3次元座標を計算する計測方法である。
【発明の効果】
【0046】
本発明によれば、カメラパラメータを短時間に精度よく求めることができるという効果を奏する。
【発明を実施するための形態】
【0048】
本発明の第1の実施形態に係る較正装置およびカメラ較正方法について、図面を参照して以下に説明する。
本実施形態に係る較正装置は、カメラ較正装置(第1の較正装置)1であって、撮像した画像を所定のフォーマットの画像ファイルとして外部に転送するカメラ(撮影装置)2を較正対象としている。本実施形態においては、光学装置の一例として、カメラ2を用いている。
【0049】
本実施形態に係るカメラ較正装置1は、
図1に示されるように、較正対象であるカメラ2を固定するベース3と、該ベース3に設けられたz軸移動ステージ4と、該z軸移動ステージ4によって移動させられる可動部5に固定された較正チャート6と、カメラ2およびz軸移動ステージ4に接続されたコンピュータ7とを備えている。カメラ較正装置1の3次元の座標軸は
図1のように定義されている。カメラ2を固定するベース3、較正チャート6およびz軸移動ステージ4により、較正データ取得部8が構成されている。
【0050】
z軸移動ステージ4は、モータ4aにより駆動され可動部5を直線的に移動させる直線駆動機構である。カメラ較正装置1においては、可動部5の移動方向をz軸とし、z軸に垂直な面内の水平方向および垂直方向をx軸およびy軸と定義している。
座標原点の位置は任意で構わないが、本実施形態においてはカメラレンズ9の先端付近に定義されている。
【0051】
カメラ2は、その光軸がz軸に平行になるように、かつ、撮像面の水平方向および垂直方向がx軸およびy軸に平行になるように、かつ、座標原点がカメラ2の所定の位置と一致するように、ベース3に取り付けられるようになっている。
【0052】
較正チャート6は、カメラ較正で広く利用されている
図2のチェスボード10であり、ベース3に固定されたカメラ2と正対するように、すなわち、z軸に垂直な面内に配置されるように可動部5に固定されている。較正チャート6は複数の特徴点を備えた図表であればどのようなものでも構わない。
【0053】
較正チャート6は、z軸移動ステージ4によってz軸方向の任意の位置に移動可能になっている。z軸移動ステージ4の可動部5の移動範囲は、カメラ較正が必要な物体距離(=カメラ2と撮像対象との距離)の範囲を包含している。
【0054】
コンピュータ7は、カメラ2の撮像を制御して、撮像された画像を所定のフォーマットの画像ファイルとして読み込むように機能する。また、コンピュータ7はz軸移動ステージ4を制御して、較正チャート6をz軸方向の所定の位置に移動するように機能する。さらにコンピュータ7は、取得された構成データにカメラモデルを当てはめてカメラパラメータを算出するパラメータ算出部としても機能する。
【0055】
ここで、
図2を参照して、較正チャート6として使用されるチェスボード10について説明する。
チェスボード10は、平面上に黒と白の正方形が正方格子を成すように並んだ市松模様のパターンを有する平板状部材であり、各正方形の頂点に相当する交点をカメラ較正の特徴点として利用するようになっている(以下、これらの特徴点を格子点11と呼ぶ。)。
【0056】
チェスボード10としては、カメラ較正に十分な数の格子点11がカメラ2の撮像範囲内に入るものが使用される。撮像されるチェスボード10の範囲は物体距離によって変化するが、各物体距離で少なくとも10×10個程度の格子点11が撮像されることが好ましい。また、撮像された格子点11の画素座標と較正チャート6上での格子点11のワールド座標との対応をとるために、較正チャート6の中央付近に1つの基準位置マーク12を設けている。
【0057】
この基準位置マーク12の右下最近傍の格子点(中央の格子点13)がz軸上に位置し、同時にチェスボード10の縦横がx軸およびy軸に平行になるように、チェスボード10をカメラ較正装置1に設置する。これにより、チェスボード10の正方格子の格子間隔とz軸移動ステージ4の移動位置とから、各格子点11,13のワールド座標(x,y,z)が既知の値として確定する。
【0058】
このように構成された本実施形態に係るカメラ較正装置1を用いたカメラ較正方法について以下に説明する。
本実施形態に係るカメラ較正装置1を用いてカメラ2を較正するには、操作者は、初めに較正対象のカメラ2を座標軸の定義に従ってカメラ較正装置1に取り付け、コンピュータ7に接続する。その後に、コンピュータ7内部の測定プログラムを開始する。
【0059】
以下、測定プログラムにより、自動的に複数の物体距離の較正チャート6の画像がカメラ2によって撮像され、それらの画像から格子点11の画素座標が取得される。測定プログラムについて、
図3のフローチャートを参照して説明する。
【0060】
測定が開始されると、まず、カメラ2を較正する物体距離の範囲のカメラ2に近い側の端に較正チャート6が位置するように、z軸移動ステージ4が移動される(ステップS1)。次に、カメラ2により較正チャート6が撮像され、その画像ファイルがコンピュータ7に転送される(ステップS2)。そして、所定回数の撮像が行われるまで、これらのステップS1,S2が繰り返される(ステップS3)。所定回数としては、例えば、5回以上の回数が設定されている。
【0061】
このとき、ステップS1では1回の繰り返しごとに、カメラ2から較正チャート6までの物体距離が所定の間隔で大きくなるようにz軸移動ステージ4により可動部5を移動させる。可動部5の移動量は等間隔でなくてもよいが、カメラ2を較正する物体距離の範囲内で少なくとも5カ所程度の異なる物体距離で較正チャート6を撮像することが好ましい。そして、所定の撮像枚数に達したら、次のステップS4に進む。
【0062】
ステップS1〜S3でコンピュータ7に転送された複数の画像ファイルが画像処理されることにより、撮像範囲内の各格子点11の画素座標が求められ、各画像ファイルの基準位置マーク12の重心の画素座標が求められる(ステップS4)。なお、チェスボード10の格子点11の画素座標をサブピクセルで求める方法は、以下の文献等により公知なので、ここでの説明は省略する。G.Bradski,A.Kaehler(松田 晃一訳)「詳解 OpenCV−コンピュータビジョンライブラリを使った画像処理・認識」(オライリー・ジャパン,2009)p.325−326
【0063】
次いで、ステップS4で求めた各格子点11の画素座標が、較正チャート6上の格子点11のワールド座標に対応付けられる(ステップS5)。上述したように基準位置マーク12の右下最近傍の中央の格子点13はワールド座標のz軸上にあるので、それを基準にして各格子点11,13の画素座標とワールド座標とを対応付けることができる。最後に、対応付けられた全ての画素座標およびワールド座標が測定データファイルに書き出されて、測定が終了する。上記手順でカメラパラメータの最適化に必要な測定データが得られる。
【0064】
ここで、本実施形態において用いられるカメラモデルについて
図4Aから
図4Cを参照して説明する。
図4Aは、カメラ2の画素座標と物体側の逆投影直線の関係を説明するカメラ2の断面図である。カメラ2は、レンズ15,16および開口絞り17を有する撮像光学系14と、撮像素子(画像変換素子とを備えている。
【0065】
物体側のワールド座標(x,y,z)を
図1と同様に定義する。また、撮像素子18の撮像面に、撮像素子18の横方向および縦方向と平行に画素座標のu軸およびv軸を定義する。
図4Aには、撮像光学系14を通して撮像素子18の各画素の中央に入射する主光線19が描かれている。
【0066】
主光線19とは、撮像光学系14の開口絞り17の中心を通る光線である。ここでは、1つの画素の中心に結像する像点20とその主光線19を例に、主光線19の概念を説明する。初めに、撮像素子18の撮像面と共役な平面21を考える。その平面21と主光線19の交点にある物点22は、撮像光学系14によって像点20に結像する。すなわち、物点22を通る全ての光線は、収差を無視すれば、像点20の1点に入射する。
【0067】
次に、共役な物点22から主光線19に沿って、撮像面と共役でない平面23上に移動した物点24を考える。共役でない物点24を通る各光線は像点20の1点に集まらないので、撮像面上の像点はボケて広がる。
【0068】
そのとき、コマ収差を無視すると、ボケ像は、開口絞り17の中心を通る主光線19の入射位置を中心に広がるので、ボケた像点の光強度の重心を取って像位置とするならば、像点20の位置は変わらない。したがって、物体側の主光線19上にある全ての物点22,24は、1つの像点20に結像する。言い換えると、物体側の主光線19は像点20の逆投影直線である。
【0069】
次に、瞳収差について説明する。開口絞り17をそれより物体側のレンズ15で結像した仮想的な開口が入射瞳25である。物体側の主光線群は入射瞳25の中心付近を通過するが、開口絞り17の場合と異なり、入射瞳25の中心の1点では交わらない。それは、開口絞り17と入射瞳25の結像関係にレンズ15の収差が介在するからである。これが瞳収差である。
【0070】
続いて、瞳収差に起因して、撮像光学系14の歪曲収差が物体距離によって変化することについて説明する。撮像光学系14の結像に樽型の歪曲収差があるとき、像側から物体側への逆方向の結像は糸巻き型の歪曲収差を伴う。すなわち、
図4Cに示されるような撮像素子18の正方格子の画素配列26は、物体側の共役な平面21上に、
図4Bに示されるような糸巻き型に歪んだ像27として結像する。
【0071】
ここで仮に、瞳収差が無く、物体側の全ての主光線19が入射瞳25の中心の1点で交わる状況を想定する。このとき、共役な平面21と平行な、共役でない平面23と
図4Cに示される画素配列26の図形に対応する主光線群の交点は、
図4Bに示されるような共役な平面21上の像27と相似な図形をなす。つまり、歪曲収差の形は物体距離によって変化しない。しかし、実際の撮像光学系14には瞳収差があるので、物体距離が変わると歪曲収差の形が変化することになる。
【0072】
このような状況に適合するように作成した、本発明のカメラモデルを説明する。初めに、撮像素子18上の像点20の画素座標(u,v)と共役な平面21上の物点22のワールド座標(x1,y1,z1)の結像関係を歪曲収差を含む結像式で表す。本実施形態では、数5のブラウンのモデルを基に、数6の結像式を定義する。
【0073】
【数6】
ここで、ブラウンのモデルから結像式への変更箇所は次のとおりである。(1)画素座標からワールド座標への横倍率を表す係数k0の項を追加した。(2)3次の動径歪曲k1と2次の接線歪曲(p1,p2)のみを考慮した。(3)ワールド座標に対する画素座標の横移動(Δu,Δv)を追加した。
【0074】
共役でない平面23上の物点24のワールド座標(x2,y2,z2)との結像関係も数6と同形の結像式で表される。ただし、物体距離の変化に伴って横倍率と歪曲収差が変わるので各係数は変化する。そこで、数7に示されるように、その結像式の各係数にプライムを付けた。
【0076】
一方、物体側の主光線19は直線なので、x方向およびy方向の傾き(a,c)と切片(b,d)とによって、数8のように表される。
【0078】
そして、物点22と物点24とは共通の主光線19上にあるので、数9および数10が成り立つ。
【0080】
ここで、係数(a,b,c,d)は画素座標(u,v)の関数であり、数9および数10において係数(a,b,c,d)は共通である。ここで、数6と数9、および、数7と数10の左辺はそれぞれ共通なので、それらの右辺はそれぞれ等しいという連立方程式が成り立つ。それを解いて係数(a,b,c,d)を求める。
【0082】
ただし、数11および数12の係数kA0,kB0は、数6および数7の係数k0,k′0と数13の関係にある。
【数13】
【0083】
数11および数12の他の係数と数6および数7の係数の関係も同様である。数11および数12を数8に代入して、数14の本実施形態のカメラモデルを得る。
【0085】
このように、数14に示される本実施形態のカメラ較正装置1に用いられるカメラモデルは、画素座標に対応する物体側の逆投影直線を直接モデル化したものである。それは、歪曲収差を含むワールド座標と画素座標の結像関係を表す数6の線形モデルを基に構築される。そして、物体距離で変化する横倍率と歪曲収差を表現できるように、結像関係を表す数6の線形モデルの各係数をzの1次式で置き換えた形になっているという特徴がある。
【0086】
添え字Aを付けた数14の各係数は逆投影直線のz軸に対する傾きを表す。一方、(z=0のときに残る)添え字Bを付けた各係数は逆投影直線とz=0平面との交点、すなわち、切片を表す。
【0087】
また、本実施形態のカメラ較正装置1に用いられるカメラモデルのもう1つの特徴は、変数(u,v;z)からなる線形独立な2次元の基底関数ベクトルの線形和で物体座標ベクトル(x,y)を表すことにある。基底関数ベクトルの線形和なので、x座標とy座標を表すモデルの係数は共通である。そのため、各基底関数ベクトルの係数を全ての測定データから線形の最小二乗法で求めることができる。それを以下に述べる。
【0088】
まず、
図3に示される上記測定プログラムにおいて、ワールド座標(x,y,z)と画素座標(u,v)の対応を表す測定データを求める。続いて、独立変数(u,v;z)と従属変数(x,y)の数14に示されるカメラモデルを、全ての格子点の測定データに線形の最小二乗法で当てはめて、数14のカメラモデルの各係数(カメラパラメータ)を求める。本実施形態のカメラ較正はこれで終了する。
【0089】
本実施形態で求めたカメラパラメータが設定されたカメラモデルを、それを搭載したカメラ2を含む撮影装置で次のように使うことができる。なお、撮影装置は、3次元のワールド座標の内の2つの座標値を算出するワールド座標算出部(図示省略)と、画素座標に対応するワールド座標空間の直線を算出する直線算出部(図示省略)と、歪みを補正した画像を生成する歪み補正画像生成部(図示省略)とをさらに備えている。
【0090】
第1に、物体距離zが既知のとき、ワールド座標算出部において、較正されたカメラ2で撮像した画像の注目する画素座標(u,v)と物体距離zとを数14のカメラモデルに代入することにより、上述した特徴点のワールド座標(x,y)を求めることができる。第2に、ワールド座標での逆投影直線を求めたいときには、直線算出部において、注目する画素座標(u,v)を数11および数12に代入することにより、逆投影直線の傾きと切片を求めることができる。
【0091】
第3に、較正されたカメラ2で撮像した画像の歪みを歪み補正画像生成部によって補正することができる。その方法を説明する。ワールド座標で表される物体は、カメラ2で撮像されて歪んだ画像になる。したがって、得られた画像を上述したカメラモデルでワールド座標に投影すれば、歪みを補正することができる。既知の物体距離zの平面上にある物体を撮像したときは、画素座標(u,v)と物体距離zを数14のカメラモデルに代入することにより、画素座標(u,v)をワールド座標(x,y)に投影できる。
【0092】
一方、そのような平面上にない物体を撮像した画像では、歪補正の基準物体距離を定義して、その物体距離zのワールド座標(x,y)に投影する。物体距離による歪曲収差の変化が小さければ、このような歪補正で十分である。ただし、ワールド座標に投影すると、画像が拡大あるいは縮小してしまう。そこで、投影したワールド座標を数14のカメラモデルの横倍率(kA0z+kB0)で規格化する。これにより、元の画像とほぼ等倍の歪補正画像を得ることができる。
【0093】
歪補正画像の作成は、歪補正後の画像の画素座標(整数)に対応する元の画像の画素値を、歪補正後の画素座標に代入する一連の手続きである。その手順を
図5のフローチャートを参照して説明する。歪補正が開始されると、最初の歪補正後の画素座標(uc,vc)が決定される(ステップS11)。
【0094】
次いで、歪補正前の画素座標(u,v)に初期値(0,0)を与える(ステップS12)。なお、何らかの方法で歪補正後の画素座標(uc,vc)に対応する歪補正前の画素座標(u,v)を推定できるときは、それを初期値にしてもよい。
【0095】
歪補正前の画素座標(u,v)と歪補正の基準物体距離zを数14のカメラモデルに代入して、ワールド座標(x,y)を求める(ステップS13)。そして、求められたワールド座標(x,y)を横倍率(kA0z+kB0)で規格化して、画素座標(u′,v′)を求める(ステップS14)。
【0096】
求められた画素座標(u′,v′)と歪補正後の画素座標(uc,vc)の距離を求める(ステップS15)。求められた距離が所定の値より小さいときには、ステップS18に進む。それ以外のときには、歪補正前の画素座標(u,v)を更新するステップS17を経て、ステップS13に戻る(ステップS16)。
【0097】
繰り返し最適化のステップS13〜S17は、滑降シンプレックス法などの一般的なアルゴリズムで実行できる。画素座標(u,v)の更新方法は、そのアルゴリズムに従う。
【0098】
繰り返し最適化が収束したときの歪補正前の画素座標(u,v)は、数14のカメラモデルを介して歪補正後の画素座標(uc,vc)に対応している。その画素座標(u,v)は一般に非整数である。そこで、その画素座標に近接する4つの画素の画素値からバイリニア補間で画素座標(u,v)の画素値を求める。そして、それを歪補正後の画素座標(uc,vc)の画素値とする(ステップS18)。なお、画素値の補間にはバイキュービック補間などの他の手法を採用してもよい。全ての歪補正後の画素座標(uc,vc)について、上記S11〜S18を繰り返し(ステップS19)、歪補正を終了する。
【0099】
上述した第1から第3のカメラモデルの利用例では、画素座標に対応するワールド座標を数14のカメラモデルでその度に計算した。一方、それらを予め計算してデータ配列として保持しておくことにより、計算の高速化を図ることもできる。
【0100】
例えば、第2の利用例では、各画素座標に対応する逆投影直線の傾きと切片をそれぞれデータ配列として予め計算しておく。あるいは、2つの物体距離の平面と各画素座標に対応する逆投影直線の交点をデータ配列として予め計算しておく。そして、それらのデータ配列を補間して、注目する画素の逆投影直線を求めるようにしてもよい。他の利用例でも同様である。
【0101】
本実施形態では、平面のチェスボード10上に正方格子で並んだ格子点11,13の測定データでカメラ較正を実施した。しかし、較正チャート6上の特徴点は、格子点11,13以外のパターンでもよい。
【0102】
例えば、平面上に分布したドットマークを撮像して、その重心位置を画素座標とするような測定データの作成方法でもよい。さらに、本発明のカメラ較正で用いる特徴点は、ワールド座標空間に規則的に配列されている必要もない。特徴点の配置がランダムであっても、そのワールド座標と画素座標の対応を測定あるいはシミュレーション等で知ることができれば、それらに本発明のカメラモデルを線形の最小二乗法で当てはめることができる。
【0103】
このように、本実施形態のカメラ較正の測定データに要求される条件は、ワールド座標と画素座標との対応が明らかになっていることのみである。そのような測定データは、例えば、次のような方法でも取得可能である。まず、ワールド座標側にx,y,z軸方向に移動可能な点光源を用意する。それから、その点光源をカメラ2で撮像した画像の注目する画素座標に点光源の像が位置するように、点光源をx,y,z軸方向に移動する。そのような測定を繰り返すことによってもワールド座標と画素座標との対応を求めることができる。
【0104】
本実施形態では、3次の動径歪曲と2次の接線歪曲のみを考慮した数14のカメラモデルを採用した。しかし、歪曲収差がさらに大きいカメラ2を較正するときは、より高次の歪曲収差や回転非対称の歪曲の項を追加したカメラモデルも採用できる。その場合、撮像素子18の撮像面とそれと共役な平面21との結像関係を表す数6の結像式のような線形モデルを用意する。
【0105】
それから、この線形モデルの各係数を数14のカメラモデルのように、物体距離zの1次式で置き換えることにより、新たなカメラモデルを構築することができる。各係数を求める最適化の方法は本実施形態と同様である。
【0106】
逆に、カメラモデルから不要な項を省略することもできる。例えば、回転非対称な歪曲成分が常に無視できるほど小さいカメラ2を較正するときは、数14のカメラモデルの接線歪曲の項を省略した方がよい。それにより、格子点11の測定誤差によって、カメラモデルが無意味に変形して不正確になることを防止できる。他の項についても同様である。
【0107】
本実施形態では、ワールド座標(x,y,z)と画素座標(u,v)との対応を表す、全ての格子点11,13の測定データに線形の最小二乗法で当てはめて、数14のカメラモデルを求めた。一方、それとは異なる方法で、本実施形態のカメラモデルを求めることもできる。以下の2つの方法は、カメラ2による特徴点の結像関係をシミュレーションで求めてカメラモデルを作成する場合に特に有効である。
【0108】
1つ目は、ワールド座標の2つの平面上の特徴点とそれに対応する画素座標のデータを用いる方法である。初めに、第1の平面上の複数の特徴点のワールド座標と画素座標の対応を表すデータに、線形の最小二乗法で数6の結像式を当てはめる。次に、第2の平面上の特徴点についても同様に、数7の結像式を当てはめる。そして、両者の係数から数13によって、数14のカメラモデルの各係数を求めることができる。
【0109】
2つ目は、逆投影直線の傾きと切片のモデルを個別に算出する方法である。上記の2つの平面のうち1つをワールド座標のz=0平面にして、複数の画素座標から光線追跡した主光線との交点を求めると、逆投影直線の切片のデータが得られる。それに数12を当てはめると、本実施形態のカメラモデルの添え字Bを付けた切片の係数を求めることができる。
【0110】
さらに、同じ複数の画素座標から光線追跡した主光線ともう1つの平面の交点を求めると、各画素座標に対応する逆投影直線の傾きのデータが得られる。それに数11を当てはめると、本実施形態のカメラモデルの添え字Aを付けた傾きの係数を求めることができる。このようにして、数14のカメラモデルの各係数を求めてもよい。
【0111】
このように、本実施形態に係るカメラ較正装置1およびカメラ較正方法によれば、本実施形態のカメラモデルによって、撮像光学系14の瞳収差を的確にモデル化することができる。さらに、回転非対称な歪曲収差と瞳収差もモデル化できる。それにより、物体距離で変化する歪曲収差とそれを反映した逆投影直線群を正確に表現でき、カメラモデルの精度を向上させることができる。
【0112】
また、本実施形態のカメラ較正装置1およびカメラ較正方法に用いられるカメラモデルは線形モデルなので、線形の最小二乗法で測定データに当てはめることができる。したがって、繰り返し最適化を用いる従来例と異なり、最適化の失敗が無く、かつ計算時間を大幅に短縮することができる。
【0113】
また、本実施形態のカメラ較正装置1およびカメラ較正方法に用いる特徴点は規則的に配列している必要がない。したがって、ワールド座標と画素座標の対応さえ明確にできれば、較正されるカメラ2に適した任意の測定あるいは計算による取得方法を選択することが可能になる。
【0114】
次に、本発明の第2の実施形態に係るカメラ較正方法について、図面を参照して以下に説明する。第1の実施形態においては、
図1のように較正されるカメラ2の光軸がカメラ較正装置1のz軸と平行であり、かつ撮像面の水平方向と垂直方向がx軸とy軸と平行であるときのカメラ較正の方法を説明した。本実施形態では、その条件を満たさないときのカメラ較正の方法を説明する。
【0115】
ワールド座標に対するカメラ2の位置と姿勢には、数2の3軸の回転行列Rと平行移動ベクトルTの合計6つの自由度がある。このうち、x,y,z軸方向の平行移動は、数14のカメラモデルの係数ΔuB,ΔvBおよび添え字Bを付けた切片を表す各係数の項で表すことができる。
【0116】
残る3つの自由度、すなわちx,y,z軸回りの回転は、それらが大きくなると、数14のカメラモデルでは表現できなくなる。このことを
図6Aおよび
図6Bを参照して説明する。
図6Aは、
図1のカメラ較正装置1の側面からの概略図である。カメラ2は、カメラ較正装置1で定義されるワールド座標のx軸回りに回転して取り付けられている。そのため、撮像光学系14の光軸はワールド座標のz軸に平行にはなっていない。
【0117】
また、
図6Aには複数の物体距離に移動した較正チャート6とその格子点11が描かれている。このとき、正方格子に並んだ格子点11の格子配列28は、撮像素子18の撮像面上に台形歪曲を伴う像29の形で結像する。
【0118】
一般に、微小な台形歪曲は数14のカメラモデルの接線歪曲の項に吸収されてしまうことが知られている。しかし、x,y軸回りの回転角が大きくなり、それに伴う台形歪曲も大きくなると、数14のカメラモデルとの乖離が顕著になる。
【0119】
その結果、格子点11のワールド座標と画素座標の測定データに数14のカメラモデルを当てはめたときの残差が大きくなり、得られたカメラモデルも不正確になる。その対策について、
図6Bを用いて説明する。
【0120】
図6Bは、ワールド座標の座標軸をx軸回りに回転して、回転後のz′軸が撮像光学系14の光軸に平行になった状態を図示している。このとき、格子点11は回転後のz′軸方向からの見かけ上、台形状の格子配列30になる。そのため、回転後のワールド座標の座標値に変換した格子点11のワールド座標(x′,y′,z′)と格子点11が結像する画素座標(u,v)との関係は、歪曲収差を無視すると、台形格子30から台形格子31への相似な結像関係になる。その結果、数14のカメラモデルが良好に当てはまるようになる。
【0121】
回転前の格子点11のワールド座標(x,y,z)から回転後のワールド座標(x′,y′,z′)への変換は、x,y,z軸回りの回転角θx,θy,θzによる回転行列で数15のように表される。
【0123】
そこで、第2の実施形態では、
図6Aの配置で測定した複数の格子点11のワールド座標(x,y,z)と画素座標(u,v)の対応を表す測定データのうち、ワールド座標のみを数15で(x′,y′,z′)に変換してから、数14のカメラモデルを当てはめる。
【0124】
そして、その残差が最小になるように回転角θx,θy,θzを最適化する。一般に、
図6Bのように、撮像光学系14の光軸と回転後のz′軸が平行になり、かつ撮像面の水平方向と垂直方向がx軸とy軸と平行になるとき、数14のカメラモデルの残差が最小になる。
【0125】
次に、第2の実施形態に係るカメラ較正方法を用いてカメラモデルを最適化する手順を説明する。初めに、第1の実施形態と同様にして、ワールド座標(x,y,z)と画素座標(u,v)との対応を表す測定データを求める。
【0126】
次に、測定データの画素座標(u,v)と回転後のワールド座標(x′,y′,z′)に、数14のカメラモデルを線形の最小二乗法で当てはめたときの残差の標準偏差を評価関数として、最適化パラメータである回転角θx,θy,θzを繰り返し最適化する。回転角θx,θy,θzの初期値はゼロでよい。あるいは、何らかの方法でカメラ2の回転角を推定できるときは、それを初期値にしてもよい。
【0127】
この繰り返し最適化は、滑降シンプレックス法などの一般的なアルゴリズムで実行できる。評価関数が最小値に収束したときの回転角θx,θy,θzが最適な回転角である。最適な回転角とその回転角でのカメラモデルの各係数を取得して、カメラ較正を終了する。
【0128】
本実施形態に係るカメラ較正方法を用いて求めたカメラパラメータが設定されたカメラモデルを、それを搭載したカメラ2を含む撮影装置で第1の実施形態と同様に利用することができる。ただし、注目する画素座標から数14のカメラモデルで得られるワールド座標は、回転後のワールド座標(x′,y′,z′)である。用途によっては、注目する画素座標に対応する回転前のワールド座標あるいは逆投影直線を求めたい場合もある。この場合には、カメラ2を含む撮影装置が、回転後のワールド座標(x′,y′,z′)を回転前(x,y,z)のワールド座標に変換するワールド座標回転部(図示省略)を備えている。
【0129】
これは、例えば、以下の手順で実現できる。初めに、回転後の適当な2つの物体距離z1′とz2′で画素座標に対応するワールド座標(x1′,y1′)と(x2′,y2′)を数14のカメラモデルで求める。次に、それら2つのワールド座標(x1′,y1′,z1′)と(x2′,y2′,z2′)を、ワールド座標回転部によって、最適な回転角θx,θy,θzによる数15の逆変換で回転前のワールド座標(x1,y1,z1)と(x2,y2,z2)に変換する。
【0130】
変換により求められた2点を通る直線が回転前のワールド座標の逆投影直線である。その逆投影直線に回転前の物体距離zを代入すると、画素座標に対応する回転前のワールド座標(x,y)を求めることができる。
【0131】
本実施形態では、3つの回転角θx,θy,θzを最適化した。しかし、それらの中のいくつかの回転角が既知のときは、それらを既知の値で固定して、最適化パラメータから外してもよい。そのときは、残りの未知の1つあるいは複数の回転角のみを最適化すればよい。このようにすると最適化パラメータの数が減るので、計算時間を短縮することができる。
【0132】
なお、3次元座標の3つの回転角の定義には任意性がある。本実施形態ではx,y,z軸回りの回転角という定義を採用して説明した。しかし、それ以外の定義であっても本発明を適用できることは言うまでもない。
【0133】
このように、本実施形態に係るカメラ較正方法によれば、ワールド座標に対するカメラ2の位置と姿勢が適切にアライメントされていない場合でも、高精度なカメラモデルを取得することができる。また、歪曲収差などの多くのカメラパラメータが必要な場合でも、繰り返し最適化のパラメータ数は3つ以下の回転角に限定されるので、カメラモデルの最適化の失敗が無く、かつ計算時間を大幅に短縮することができる。
【0134】
次に、本発明の第3の実施の形態に係るカメラ較正装置32およびカメラ較正方法について、図面を参照して以下に説明する。本実施形態に係るカメラ較正装置32は、3次元形状復元を目的とした多視点カメラ33,34,35の較正に適用するものである。以下、3台からなる多視点カメラの較正を例示して説明するが、それ以外の台数のカメラの較正にも適用できる。
【0135】
本実施形態に係るカメラ較正装置32においては、
図7に示されるように、較正対象の3台のカメラ33,34,35が、多視点カメラの使用条件と同じ配置でカメラ固定台36に固定される。そして、各々のカメラ33,34,35が較正チャート6を撮像できるように、カメラ固定台36がカメラ較正装置32に取り付けられるようになっている。較正チャート6とz軸移動ステージ4、コンピュータ7など、それ以外の構成は
図1と同様であり、説明を省略する。
【0136】
このように構成された本実施形態に係るカメラ較正装置32の作用について、以下に説明する。本実施形態に係るカメラ較正装置32の動作は、第1の実施形態に係るカメラ較正装置1と同様である。初めに、
図3のフローチャートの測定プログラムにより、自動的に複数の物体距離の較正チャート6の画像がカメラ33,34,35によって撮像され、その画像から較正チャート6の格子点11の画素座標が取得される。ただし、
図3のフローチャートのステップS2,S4,S5は3台のカメラに対してそれぞれ実行される。
【0137】
続いて、各カメラ33,34,35の上記の測定データから、各カメラ33,34,35のカメラモデルが求められる。その手順は、カメラ33,34,35の光軸がカメラ較正装置32のz軸とほぼ平行であり、かつ、撮像面の水平方向と垂直方向がx軸とy軸と平行であるときは第1の実施形態と同様であり、そうでないときは第2の実施形態と同様に最適な回転角θx,θy,θzも併せて最適化する。
【0138】
本実施形態に係るカメラ較正装置32で求めたカメラパラメータを設定した各カメラモデルを、それらを搭載した各カメラ33,34,35を含む撮影装置で第1および第2の実施形態と同様に利用することができる。特に、各カメラ33,34,35の画素座標に対応するワールド座標あるいは逆投影直線を1つの共通なワールド座標で扱いたい用途では、第2の実施形態で述べた回転前のワールド座標あるいは逆投影直線を求める手順を適用すればよい。
【0139】
なお、多視点の各カメラ33,34,35の測定データを必ずしも同時に測定する必要は無い。例えば、
図3のフローチャートの測定プログラムを各カメラに対して個別に順次、実行してもよい。さらに、各カメラ33,34,35の測定データを測定するときに、較正チャート6が測定対象の各カメラに正対するようにz軸移動ステージ4の設置位置をカメラ較正装置32上で変更してもよい。
【0140】
ただし、その設置位置の変更量を把握して、それを較正チャート6の格子点11のワールド座標に反映した測定データを作成する必要がある。このようなカメラ較正方法は、多視点カメラ33,34,35が観察領域を取り囲むように配置されているために、1方向に固定された較正チャート6を撮像できないカメラが存在する場合に有効である。
【0141】
このように本実施形態に係るカメラ較正装置32およびカメラ較正方法によれば、多視点カメラ33,34,35を使用条件と同じ配置でカメラ較正できる。そして、各カメラ33,34,35の画素座標に対応するワールド座標あるいは逆投影直線を、1つの共通なワールド座標で取り扱うことができるという利点がある。
【0142】
次に、本発明の一実施形態に係る計測システムおよび計測方法について、図面を参照して説明する。
本実施形態に係る計測システムは、
図7に示されるように、第3の実施形態に係るカメラ較正装置32と、多視点カメラ33,34,35と、3次元座標計算処理部(コンピュータ7)とを備えている。
【0143】
カメラ較正装置32を用いてカメラ較正を実行することで、多視点カメラ33,34,35のそれぞれのカメラパラメータを設定した各カメラモデルが、数14から求められる。
コンピュータ7に内蔵された3次元座標計算処理部は、下記のステップの計算処理で多視点カメラ33,34,35によって撮影された被写体の表面上の注目点のワールド座標を計算する。多視点カメラ33,34,35のそれぞれの光軸が平行と見なせる場合は、
図9に示す通りとなる。
【0144】
ステップS101:多視点カメラ33,34,35によって撮影された3枚の被写体画像I33,I34,I35を取り込む。
ステップS102:ユーザが画像I34上で指定した各画素の画素座標に対応する画像I33の画素の画素座標を対応点探索処理で求める。
ステップS103:I34で指定した画素座標とカメラ34のカメラパラメータを数14に代入した式と、ステップS102で求めたI33の対応する画素の座標とカメラ33のカメラパラメータを数14に代入した式とで連立方程式を解き、画像I34の各画素に対応する被写体表面上の注目点のワールド座標Aを求める
【0145】
ステップS104:画像I34の各画素に対応する画像I35の画素の画素座標を対応点探索処理で求める。
ステップS105:I34で指定した画素座標とカメラ34のカメラパラメータを数14に代入した式と、ステップS104で求めたI35の対応する画素の座標とカメラ35のカメラパラメータを数14に代入した式とで連立方程式を解き、画像I34の各画素に対応する被写体表面上の注目点のワールド座標Bを求める。
【0146】
ステップS106:画像I34の各画素について、ワールド座標A,Bの2点間距離D1を求める。
ステップS107:画像I34の各画素について、2点間距離D1が所定の閾値以下あるか否かを判定する。
【0147】
ステップS108:閾値以下であれば、ワールド座標A,Bは、どちらもその誤差が小さいとみなし、2つのワールド座標A,Bの中点の座標を対応する被写体の表面上の注目点のワールド座標とする。
ステップS109:閾値より大きい場合には対応する被写体の表面状の注目点は「結果なし」とするか、誤差が大きいとの警告情報つきのワールド座標とする。
【0148】
画像間の対応点探索処理にはブロックマッチングに代表される画像の輝度値の分布の類似度を評価するアルゴリズムを用いる。類似度の計算方法は計算速度と計算精度の要求に合わせて差の2乗和SSD、差の絶対値の和SAD、正規化相互相関NCC、ゼロ平均正規化相互相関ZNCC等の複数の計算手法を用いることができる。カメラ33,34,35毎の撮影される画像の明るさの差に対するロバスト性を考慮すると、ZNCCが望ましい。また、計算時間とのバランスからこれら複数の類似度計算手法から選択できるようにしてもよい。
また、対応点探索処理に用いる画像I33、I34、I35には第1の実施例で示した歪補正処理を適用することが望ましい。歪補正処理を適用した画像上で対応点探索処理を行うことで、カメラ間の光学特性の差の影響を低減したより精度の高い対応点座標を求めることができる。
【0149】
ステップS105においては、連立方程式は、まずxとzの式で解き、求めたzを用いてyを求める。yを求める式は、画素の指定に用いる画像I34に対応したカメラ34のカメラパラメータを設定した数14によるカメラモデルを用いる。多視点カメラ33,34,35のそれぞれの光軸が平行と見なせない場合は、較正の段階で第2の実施形態と同様の方法で求めておいた回転角もカメラパラメータとして用いて、多視点カメラ33,34,35のそれぞれのカメラパラメータを設定した数14と数15によるカメラモデルとなる。数15でワールド座標を補正してから数14の連立方程式を解く。
【0150】
ステップS108においては、2つのワールド座標A,Bの中点のワールド座標を用いることで、求めるワールド座標の誤差をさらに小さくする効果がある。
ここでは、3視点のカメラを例として挙げたが、2視点のカメラであってもよい。その場合、上記のステップS104以降の処理は不要となる。
【0151】
なお、各ステップの説明ではユーザが画像I34上で指定した画素についてワールド座標を計算しているが、画像I34に対して実行される特徴点抽出処理によって特徴があると判定された複数の画素について自動的にワールド座標を計算するようにしてもよいし、計算資源の制約が小さい場合には画像I34の全ての画素について計算するようにしてもよい。
【0152】
次に、本発明の第4の実施形態に係る較正装置について、
図8を参照して以下に説明する。本実施形態に係る較正装置は、プロジェクタ較正装置(第2の較正装置)37であって、その内部に液晶素子などの画像形成素子(画像変換素子:図示省略)と、投影光学系(光学系:図示省略)とを備えており、その画像を外部へ投影するプロジェクタ(投影装置)38を較正するための装置である。本実施形態においては、光学装置の一例として、プロジェクタ38を用いている。
【0153】
プロジェクタ較正装置37は、較正対象のプロジェクタ38を固定するベース39と、該ベース39に設けられたz軸移動ステージ4と、該z軸移動ステージ4の可動部5に固定された較正チャート6と、プロジェクタ38と隣接する位置に配置され、較正チャート6の像を撮影するカメラ2とを備えている。カメラ2とプロジェクタ38とは、それらの光軸がプロジェクタ較正装置37のz軸と平行になるように、かつ、プロジェクタ38の所定の位置が座標原点と一致するように、プロジェクタ較正装置37に取り付けられるようになっている。
【0154】
なお、カメラ2の撮像範囲はプロジェクタ38の画像投影範囲を包含していることが好ましい。較正チャート6とz軸移動ステージ4、コンピュータ7など、それ以外の構成は
図1と同様である。ただし、本実施形態において使用される較正チャート6としては、
図2のチェスボード10と無地のスクリーンとを交換可能になっている。また、コンピュータ7は、プロジェクタ38を制御して、所定の画像をプロジェクタ38に投影させる機能を併せ持っている。
【0155】
このように構成された本実施形態に係るプロジェクタ較正装置37を用いてプロジェクタ38を較正するには、初めに、
図2のチェスボード10を較正チャート6として設置した状態で、カメラ2を較正する。その手順は第1の実施形態と同様である。
【0156】
続いて、較正チャート6を無地のスクリーンに交換する。そして、プロジェクタ38から、投影光学系を通して
図2のチェスボード10のパターンを較正チャート6に投影する。このとき、プロジェクタ38内部の画像形成素子(図示省略)上で定義される画素座標において、チェスボード10の各格子点11,13の画素座標は既知である。
【0157】
この状態で、第1の実施形態と同様に、
図3のフローチャートの測定プログラムにより、自動的に複数の物体距離でチェスボード10のパターンが投影された較正チャート6の画像がカメラ2によって撮像され、その画像からチェスボード10のパターンの格子点11の画素座標が取得される。
【0158】
この後に、取得された画素座標(u,v)と較正チャート6の物体距離zとから、前記の手順で較正されたカメラ2のカメラモデルで、較正チャート6上に投影されたチェスボード10のパターンの格子点11のワールド座標(x,y)を求める。以上の手順で、プロジェクタ38の画素座標(u,v)とワールド座標(x,y,z)との対応を表す測定データが得られる。その測定データに数14のカメラモデルを当てはめて、プロジェクタ38のカメラパラメータを求める方法は第1の実施形態と同様である。
【0159】
このようにして求められたプロジェクタ38のカメラパラメータを設定したカメラモデルを、それを搭載したプロジェクタ38で次のように使うことができる。第1に、物体距離zが既知のとき、注目する特徴点の画素座標(u,v)と物体距離zとを数14のカメラモデルに代入することにより、較正されたプロジェクタ38で投影された特徴点のワールド座標(x,y)を求めることができる。第2に、注目する画素座標(u,v)に対応するワールド座標での投影直線を求めたいときは、注目する画素座標(u,v)を数11および数12に代入することにより、投影直線の傾きと切片を求めることができる。
【0160】
第3に、歪みが無い画像を投影したいときは、プロジェクタ38の画像形成素子で形成する画像に、投影で生じる歪みを相殺するような画像歪みを予め加えておけばよい。そのような歪補正画像の画素座標を求める手順は、
図5に示される第1の実施形態のフローチャートと同様である。
【0161】
なお、プロジェクタ38で投影するパターンはチェスボード10に限らない。カメラ2で撮像した画像から特徴点の画素座標を算出できる、ドットマークなどのパターンも適用可能である。あるいは、プロジェクタ38の離散した各画素を点灯する方法でもよい。
【0162】
また、本実施形態では、プロジェクタ38で投影された特徴点のワールド座標(x,y)を、予め較正したカメラ2で測定した。その測定は、較正チャート6の代わりに撮像素子を設置して、投影されたパターンを直接撮像する、という方法でも実現可能である。さらに、ワールド座標と画素座標の対応さえ明確にできれば、それ以外の取得方法も選択可能である。このように、本実施形態に係るプロジェクタ較正装置37によれば、プロジェクタ38をカメラモデルによって較正することができる。
【0163】
次に、本発明の他の実施形態に係る計測システムおよび計測方法について、図面を参照して説明する。
本実施形態に係る計測システムは、第4の実施形態に係るプロジェクタ較正装置37と、プロジェクタ38と、3次元座標計算処理部(コンピュータ7)とを備えている。
【0164】
プロジェクタ較正装置37を用いてプロジェクタ38の較正を実行することで、プロジェクタ38のカメラパラメータを設定したカメラモデルが、数14により求められる。第4の実施形態のカメラ2に対して第2の実施形態のカメラ較正を実行することで、カメラ2のカメラパラメータを設定したカメラモデルが数14により求められる。
【0165】
プロジェクタ38が投影するパターンはランダムドットパターン画像I38とする。コンピュータ7に内蔵された3次元計算処理部は、下記のステップの計算処理でカメラ2によって撮影された被写体の表面上の注目点のワールド座標を計算する。ランダムドットパターンは、公知の方法で生成できる。また、M系列に代表される疑似乱数系列を2次元に配列することで作成してもよい。
プロジェクタ38とカメラ2の光軸がほぼ平行に配置されている場合には、計測方法は
図10に示す通りである。
【0166】
ステップS111:プロジェクタ38によってパターン(構造化光)を投影された被写体をカメラ2で撮影した被写体画像I2を取り込む。
ステップS112:ユーザが画像I2上で指定した各画素に対応する画像I38の画素の画素座標を対応点探索処理で求める。
【0167】
ステップS113:I2で指定した画素座標とカメラ2のカメラパラメータを数14に代入した式と、ステップS112で求めたI38の対応する画素の座標とプロジェクタ38のカメラパラメータを数14に代入した式とで連立方程式を解き、画像I2の各画素に対応する被写体表面上の注目点のワールド座標を求める。
ステップS113においては、連立方程式は、まずxとzの式で解き、求めたzを用いてyを求める。yを求める式は画素の指定に用いるI2に対応したカメラ2のカメラパラメータを設定した数14のカメラモデルを用いる。プロジェクタ38とカメラ2の光軸が平行と見なせない場合は、較正の段階で第2の実施形態と同様の手順で求めておいたそれぞれの回転角もカメラパラメータとして用いて、プロジェクタ38とカメラ2の数14と式15によるカメラモデルとなる。式15でワールド座標を補正してから式14の連立方程式を解く。
【0168】
ここでは、プロジェクタ38はパターンとして一種類の疑似ランダムパターンを投影する例を挙げたが、位相をずらした複数の縞を時間差で投影した複数枚の被写体画像を用いる位相シフト方式や、複数の解像度の2値パターンを投影した複数枚の画像を用いる空間コード化方式であってもよい。また、プロジェクタ38が1台の例を挙げたが、ひとつのカメラ2に対して複数のプロジェクタ38、あるいは複数のカメラ2に対して複数のプロジェクタ38があってもよい。
【0169】
なお、各ステップの説明ではユーザが画像I2上で指定した各画素についてワールド座標を計算しているが、画像I2に対して実行される特徴点抽出処理によって特徴があると判定された複数の画素について自動的に3次元座標を計算するようにしてもよいし、計算資源の制約が小さい場合には画像I2の全ての画素について計算するようにしてもよい。
【0170】
次に、本発明の第5の実施形態に係るカメラ較正方法について、
図1、
図4Aおよび
図6Aを参照して以下に説明する。
第1から第4の実施形態においては、較正されるカメラ2の瞳収差を無視できないときのカメラ較正の方法を説明した。本実施形態では、瞳収差を無視できるときのカメラ較正の方法を説明する。
【0171】
カメラ2の瞳収差を無視できることは、全ての逆投影直線が入射瞳25の中心の1点で交わることと等価である。従って、数14のカメラモデルから添え字Bを付けた各係数を省略した、数16のカメラモデルでカメラ2を較正できる。
【数16】
【0172】
ただし、
図4Aの入射瞳25の中心とワールド座標(x,y,z)の原点は必ずしも一致していない。そこで、両者の平行移動を表す数2の平行移動ベクトルTで、格子点11のワールド座標(x,y,z)を数17のようにワールド座標(x′,y′,z′)に変換すると、数16のカメラモデルに当てはまるようになる。
【0174】
すなわち、第5の実施形態では、
図1の配置で測定した複数の格子点11のワールド座標(x,y,z)と画素座標(u,v)の対応を表す測定データのうち、ワールド座標のみを数17で(x′,y′,z′)に変換してから、数16のカメラモデルを当てはめる。
【0175】
次に、第5の実施形態に係るカメラ較正方法を用いてカメラモデルを最適化する手順を説明する。
初めに、第1の実施形態と同様にして、ワールド座標(x,y,z)と画素座標(u,v)との対応を表す測定データを求める。次に、測定データの画素座標(u,v)と平行移動後のワールド座標(x′,y′,z′)に、数16のカメラモデルを線形の最小二乗法で当てはめたときの残差の標準偏差を評価関数として、最適化パラメータである平行移動ベクトルの成分tx,ty,tzを繰り返し最適化する。
【0176】
平行移動ベクトルの成分tx,ty,tzの初期値はゼロでよい。あるいは、何らかの方法でそれらを推定できるときは、それを初期値にしてもよい。
この繰り返し最適化は、滑降シンプレックス法などの一般的なアルゴリズムで実行できる。評価関数が最小値に収束したときの平行移動ベクトルの成分tx,ty,tzが最適な平行移動ベクトルである。
【0177】
このようにして求めた数16のカメラモデルは、平行移動後のワールド座標(x′,y′,z′)におけるカメラモデルである。その数16のカメラモデルは、最適化した平行移動ベクトルの成分tx,ty,tzと数17を用いて、元のワールド座標(x,y,z)における数14のカメラモデルの形式に変換できる。
【0178】
したがって、本実施形態に係るカメラ較正方法を用いて求めたカメラパラメータが設定されたカメラモデルを、それを搭載したカメラ2を含む撮影装置で第1から第4の実施形態と同様に利用することができる。
本実施形態では、3つの平行移動ベクトルの成分tx,ty,tzを最適化した。しかし、それらの中のいくつかの平行移動成分が既知のときは、それらを既知の値で固定して、最適化パラメータから外してもよい。そのときは、残りの未知の1つあるいは複数の平行移動成分のみを最適化すればよい。このようにすると最適化パラメータの数が減るので、計算時間を短縮することができる。
【0179】
また、本実施形態を第2の実施形態と併用することも可能である。すなわち、
図6Aのようにワールド座標軸に平行でないカメラ2を、瞳収差を無視した数16のカメラモデルで較正するときは、数16のカメラモデルを線形の最小二乗法で当てはめたときの残差の標準偏差を評価関数として、最適化パラメータである平行移動ベクトルの成分tx,ty,tzおよび回転角θx,θy,θzの中から必要な成分を繰り返し最適化すればよい。
【0180】
このように、本実施形態に係るカメラ較正方法によれば、瞳収差を無視できるカメラ2を較正する場合に、カメラパラメータの数を減らすことができる。また、歪曲収差などの多くのカメラパラメータが必要な場合でも、繰り返し最適化のパラメータ数は3つ以下の平行移動成分および3つ以下の回転角に限定されるので、カメラモデルの最適化の失敗が無く、かつ計算時間を大幅に短縮することができる。
【0181】
また、本発明の第1から第5の実施形態において、カメラ2あるいはプロジェクタ38のフォーカス、ズーム、絞りなどの設定変更にそれぞれ対応した、複数のカメラ較正を実施することにしてもよい。また、それらのカメラモデルを補間して、任意の設定に対応したカメラモデルを求めることにしてもよい。
【0182】
さらに、光源の複数の波長の下で、カメラ較正を実施することにしてもよい。また、波長別の画像を撮影するカメラで、波長別のカメラモデルを使用することにしてもよい。また、本発明の第1から第5の実施形態に記載の光学装置において、画像変換素子の一例として、撮像素子18や画像形成素子を用いたが、これに限られるものではなく、画像と映像信号とを相互に変換するものであればよい。