(57)【特許請求の範囲】
【請求項１】
交互にそのマス目内の色が反転するように配色された格子状の平面パターンと、この平面パターン内の所定の位置に設けられた基準マークとを有するキャリブレーションパターンを少なくとも３方向からカメラで撮像し、この撮像された各キャリブレーションパターンと実際のキャリブレーションパターンとの間の射影変換行列の本行列を各個に算出し、これら算出された射影変換行列の本行列から前記カメラの校正パラメータを算出するカメラのキャリブレーション方法であって、
前記基準マークが入るように前記カメラによって前記キャリブレーションパターンを撮像するパターン撮像ステップと、
このパターン撮像ステップによって撮像されたキャリブレーションパターンより任意の四角形を形成するようにそのキャリブレーションパターン中の任意のマス目の交点座標を検出する交点座標検出ステップと、
この交点座標検出ステップによって検出された交点座標に基づいて、前記パターン撮像ステップによって撮像されたキャリブレーションパターンと前記実際のキャリブレーションパターンとの間の射影変換行列を仮の射影変換行列として算出する仮行列算出ステップと、
この仮行列算出ステップによって算出された仮の射影変換行列に基づいて、前記パターン撮像ステップによって撮像されたキャリブレーションパターン中の各マス目の交点候補位置を算出し、この各マス目の交点候補位置のそれぞれについて実際に交点になっているか否かを確認し、この確認結果に基づいて各マス目の交点座標を推定する交点座標推定ステップと、
前記パターン撮像ステップによって撮像されたキャリブレーションパターン中の前記基準マークを検出する基準マーク検出ステップと、
この基準マーク検出ステップによって検出された基準マークの位置を座標基準とし、前記交点座標推定ステップによって推定された各マス目の交点座標に基づいて、前記パターン撮像ステップによって撮像されたキャリブレーションパターンと前記実際のキャリブレーションパターンとの間の射影変換行列の本行列を算出する本行列算出ステップと
を備えることを特徴とするカメラのキャリブレーション方法。
【請求項２】
請求項１に記載されたカメラのキャリブレーション方法において、
前記交点座標推定ステップは、
前記各マス目の交点候補位置のそれぞれについて実際に交点になっているか否かを判定する交点判定ステップと、
この交点判定ステップによって実際に交点になっていると判定された交点候補位置についてのみその交点座標の推定を行う交点推定ステップと
を備えることを特徴とするカメラのキャリブレーション方法。
【請求項３】
請求項２に記載されたカメラのキャリブレーション方法において、
前記交点判定ステップは、
前記各マス目の交点候補位置のそれぞれについて、その交点候補位置を中心とした小領域を抽出する小領域抽出ステップと、
この小領域抽出ステップによって抽出された小領域のそれぞれについて、当該小領域の画像データを２値化する２値化処理ステップと、
この２値化処理ステップによって２値化された前記小領域の画像データに基づいて、その小領域の抽出元の交点候補位置が実際に交点になっているか否かを判定する判定ステップと
を備えることを特徴とするカメラのキャリブレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、カメラの位置や向き、カメラが持つ画像中心やスケールなどのカメラの校正パラメータを算出するカメラのキャリブレーション方法に関するものである。
【背景技術】
【０００２】
従来より、撮像された２枚の画像に基づいて測定対象物の３次元形状の計測を行うためのカメラとして、ステレオカメラが用いられている。このステレオカメラでは、その取り付け位置のずれが直接、撮像データ間のずれに影響するため、生産時や現場への取り付け時に高精度の位置調整が要求される。
【０００３】
そこで、ステレオカメラを用いた３次元計測においては、カメラの位置や向き、カメラが持つ画像中心やスケールなどのカメラの校正パラメータを求めることが必須となる。このカメラの校正パラメータを求めることをキャリブレーションと呼んでいる。また、このキャリブレーションによって求める校正パラメータをキャリブレーションパラメータと呼んでいる。
【０００４】
〔キャリブレーションパラメータ〕
図１９にステレオカメラを用いた３次元計測の概要を示す。この図において、Ｇ１は左カメラの画像、Ｇ２は右カメラの画像である。今、空間上の点を
【０００５】
【数１】
0005432835.tif 000002
【０００６】
、左カメラの画像Ｇ１上の点を
【０００７】
【数２】
0005432835.tif 000003
【０００８】
とし、空間上の点Ｍが左カメラの画像Ｇ１上の点ｍの位置に映ったとする。
この場合、Ｍとｍには以下の関係がある。
ｓｍ＝Ａ〔Ｒｔ〕Ｍ＝ＰＭ    ・・・・（１）
【０００９】
ここで、ｓはスケールパラメータを表す。Ｒはカメラの姿勢を表す３×３の回転行列、ｔはカメラの位置を表す３×１の並進ベクトルである。２つを合わせた３×４の行列〔Ｒｔ〕を外部パラメータと呼ぶ。Ａは下記（２）式で表される３×３の行列である。
【００１０】
【数３】
0005432835.tif 000004
【００１１】
ここで、〔ｕ0，ｖ0〕は画像中心、αuとαvはそれぞれ、ｕ軸、ｖ軸のスケール因子を表し、ｂは２つの軸のねじれを表す。ｕ軸は画像の横方向、ｖ軸は画像の縦方向を表しており、画像の左上が原点である。行列Ａはカメラの内部変数のみによって構成されており、カメラの内部パラメータと呼ばれる。
【００１２】
また、行列Ｐ＝Ａ〔Ｒｔ〕は３次元中の点（３次元データ）を画像上の点（２次元データ）に投影する３×４の行列であり、Ｐ行列と呼ばれる。キャリブレーションではこのＰ行列を、すなわち内部パラメータと外部パラメータとから構成されるＰ行列を、キャリブレーションパターンとして求める。
【００１３】
なお、上記（１）式の関係はピンホールカメラモデルを仮定したものである（詳細は非特許文献１を参照）。
【００１４】
〔３次元計測の原理〕
次に、２つのカメラで３次元物体を撮像し得られた画像から、もとの３次元物体の形状を計測する方法を述べる。３次元点Ｍ＝〔Ｘ，Ｙ，Ｚ，１〕Tを２つのカメラで撮像し、左カメラに投影された点をｍ＝〔ｕ，ｖ，１〕T 、右カメラに投影された点をｍ’＝ 〔ｕ’，ｖ’，１〕T とすると、ｓｍ＝ＰＭ、ｓｍ’＝ＰＭ’というような関係がある。但し、
【００１５】
【数４】
0005432835.tif 000005
【００１６】
であり、それぞれのカメラのＰ行列を表している。上記の関係は下記の(３)式に変形できる。
【００１７】
【数５】
0005432835.tif 000006
【００１８】
この連立方程式は未知数の数が３に対して、方程式の数は４なので、空間上の点Ｍを計算することができる。
【００１９】
以上から、ステレオカメラそれぞれのＰ行列が分かっていれば、２つのカメラで観測した点ｍ＝〔ｕ，ｖ，１〕T およびｍ’＝ 〔ｕ’，ｖ’，１〕T から３次元点Ｍ＝〔Ｘ，Ｙ，Ｚ，１〕Tを求めることができる。なお、ここでは、２枚の画像上の点ｍとｍ’との対応は分かっていることを前提としている。
【００２０】
〔内部パラメータの計算〕
３次元空間の座標を、３次元平面がＺ＝０となるように置くと、上記(１)式は下記(４)式のように変形できる。
ｓｍ＝Ａ〔Ｒｔ〕〔Ｘ，Ｙ，０，１〕T＝Ａ〔ｒ1ｒ2ｔ〕〔Ｘ，Ｙ，１〕T    ・・・・(４)
【００２１】
ここで、回転行列ＲをＲ＝〔ｒ1ｒ2ｒ3〕としている。また、３次元平面がＺ＝０ととなるように置くという意味は、後述するキャリブレーションパターンと垂直な方向をＺ軸と考え、キャリブレーションパターンの位置がＺ軸の原点、つまりＺ＝０となるように座標系を取ることである。
【００２２】
ここで、射影変換行列としてＨ＝Ａ〔ｒ1ｒ2ｔ〕を定義すると、上記（４）式は下記（５）式となる。
ｓ〔ｕ，ｖ，１〕T＝Ｈ〔Ｘ，Ｙ，１〕T    ・・・・（５）
【００２３】
射影変換行列はHomography行列とも呼ばれ、平面座標から平面座標への変換を表す。以下、射影変換行列をＨ行列と呼ぶ。このＨ行列は３次元平面上と画像上の対応点が４つ以上あれば、計算することができる。ここで、〔ｈ1ｈ2ｈ3〕＝λＡ〔ｒ1ｒ2ｔ〕とおき、ｒ1とｒ2が直交する単位ベクトルであることを利用すると以下の式が得られる。
【００２４】
【数６】
0005432835.tif 000007
【００２５】
１枚の画像からは上記の２つのカメラ内部変数に関する拘束式が得られる。５つのカメラ内部変数を解く場合は、少なくとも３枚の画像が必要となる。このために、後述するように、異なる視点からキャリブレーションパラメータを３回以上撮像する必要がある。行列Ｂ＝Ａ-TＡ-1を定義し、その要素を並べたベクトルをｂ＝〔Ｂ11，Ｂ12，Ｂ22，Ｂ13，Ｂ23，Ｂ33〕Tと定義すると、
ｈiTＢｈj＝ｖijTｂ  ・・・・（７）
となる。
ここで、
【００２６】
【数７】
0005432835.tif 000008
【００２７】
である。さらに、上記（６）式と（７）式は、下記（８）式となる。
【００２８】
【数８】
0005432835.tif 000009
【００２９】
上記（８）式は１つのＨ行列から得られる式である。もし３つ以上のＨ行列が得られば、それらを積み重ねることによりｂを計算できる。ｂが求まれば、内部パラメータは次式から算出できる。
【００３０】
【数９】
0005432835.tif 000010
【００３１】
〔外部パラメータの計算〕
外部パラメータＲ＝〔ｒ1ｒ2ｒ3〕およびｔについては、内部パラメータＡが求まれば、以下の式により計算できる。
【００３２】
【数１０】
0005432835.tif 000011
【００３３】
このようにして、内部パラメータと外部パラメータとを計算することができ、この内部パラメータと外部パラメータとによってキャリブレーションパラメータであるＰ行列を求めることができる。このＰ行列を求めるにあたっては、上述の説明から分かるように、撮像画像と撮像する平面物体との対応であるＨ行列を求めることが重要となる。
【００３４】
〔キャリブレーションパターン〕
図２０にステレオカメラのキャリブレーションに用いられている従来のキャリブレーションパターンの一例を示す。このキャリブレーションパターン１は、交互にそのマス目内の色が反転するように配色された格子状の平面パターンとされ、この例では白と黒とのマス目を交互に格子状に並べた市松模様のパターンとされている。
【００３５】
図２１にこのキャリブレーションパターン１を用いたキャリブレーションの流れ図を示す。図２２にこの流れ図に従ってキャリブレーションを実施するシステムの概略を示す。このシステムでは、キャリブレーションパターン１をステレオカメラ２で撮影（撮像）し、このステレオカメラ２で撮像された画像を画像処理装置３へ送る。画像処理装置３は半自動でステレオカメラ２のキャリブレーションを実施する。
【００３６】
なお、ここでは、説明を簡単とするため、ステレオカメラ２の左カメラのキャリブレーションが行われる様子を説明する。右カメラのキャリブレーションも同様にして行われる。
【００３７】
先ず、操作者は、キャリブレーションパターン１をステレオカメラ２で任意の方向から撮影（撮像）する（ステップＳ１０１）。図２３にステレオカメラ２で撮像されたキャリブレーションパターン１の画像例（左カメラの画像）を示す。この画像は画像処理装置３へ送られる。
【００３８】
操作者は、この撮像されたキャリブレーションパターン１において、そのパターン内のマス目の交点を４点手動で指定する（ステップＳ１０２）。ここでは、図２３に示すように、４隅のマス目の交点Ｘ１，Ｘ２，Ｘ３，Ｘ４を指定する。
【００３９】
画像処理装置３は、交点Ｘ１，Ｘ２，Ｘ３，Ｘ４が指定されると、その指定された４つの交点の内部にある交点の座標を全て検出（自動検出）する（ステップＳ１０３）。
【００４０】
次に、操作者は、カメラの方向を変えて（ステップＳ１０５）、キャリブレーションパターン１を撮影（撮像）し（ステップＳ１０１）、上述と同様にして、その撮像されたキャリブレーションパターン１において、そのパターン内のマス目の交点を４点手動で指定する（ステップＳ１０２）。
【００４１】
すると、画像処理装置３は、上述と同様にして、指定された４つの交点の内部にある交点の座標を全て検出（自動検出）する（ステップＳ１０３）。
【００４２】
操作者は、このようにして、少なくとも３方向からキャリブレーションパターン１を撮像し、その撮像されたキャリブレーションパターン１における任意のマス目の交点の手動指定を繰り返す。
【００４３】
画像処理装置３は、Ｎ枚以上（この例では、１眼につき３枚以上）の撮像されたキャリブレーションパターン１について、その交点座標の自動検出が終了すると（ステップＳ１０４のＹＥＳ）、その検出された交点座標に基づいてキャリブレーションパラメータの計算を行う（ステップＳ１０６）。
【００４４】
この場合、画像処理装置３は、Ｎ方向から撮像されたキャリブレーションパターン１の各々について、実際のキャリブレーションパターン１との間の交点座標を対応付けてＨ行列を各個に算出し（図２４参照）、これら算出されたＨ行列から左カメラのキャリブレーションパラメータを算出する。
【先行技術文献】
【特許文献】
【００４５】
【特許文献１】特開２００３−３０７４６６号公報
【非特許文献】
【００４６】
【非特許文献１】写真から作る３次元ＣＧ，徐剛（著），近代科学社会，2001。
【非特許文献２】「OpenCV、カメラキャリブレーション]、〔平成２２年５月１３日検索〕、インターネット＜URL：http://opencv.jp/sample/camera_calibration.html#calibration＞
【非特許文献３】C. Harris and M. Stephens: “A Combined Corner And Edge Detector”, The Plessey Company plc. 1988．
【発明の概要】
【発明が解決しようとする課題】
【００４７】
しかしながら、上述したキャリブレーション方法（以下、従来方式と呼ぶ）によると、撮像されたキャリブレーションパターンに対して手動で任意のマス目の交点を指定しなければならず、キャリブレーションの処理時間が増大するという問題があった。また、交点の指定を手作業で行うために、人手によるミスが発生する虞もあった。また、キャリブレーションパターンの４隅が映るように撮影を行う必要があり、撮影時の調整に手間を要する。また、キャリブレーションパターンを画面全体に映すことができないため（画面に背景が入る）、キャリブレーションの精度の低下を招くという問題もあった。
【００４８】
なお、特許文献１では、キャリブレーションパターンとして２種類のマークを使用し、一方のパターンの位置を人手で指定し、その結果に基づいてもう一方のパターンを自動で認識し、精密な対応づけを行うようにしている。しかし、この特許文献１に示された方法では、精度の高いパターンの認識が可能であること、カメラのレンズ歪みへ対応できるなどの特徴があるが、上述した従来方式と同様に、人手による作業が含まれるため、処理の自動化が難しく、人手によるミスが発生する虞もある。
【００４９】
また、非特許文献２では、キャリブレーションパターンの認識を自動化するようにしているが、この非特許文献２に示された方法では、対象となるパターンに映っている市松模様の数が分かっていること、またそのパターン全てが映っていることが前提とされる。このため、上述した従来方式と同様、撮影時の調整に手間を要し、また、キャリブレーションパターンを画面全体に映すことができず（画面に背景が入る）、キャリブレーションの精度の低下を招くなどの問題がある。
【００５０】
本発明は、このような課題を解決するためになされたもので、その目的とするところは、人手によるミスの排除、処理時間の短縮、精度の向上を図ることが可能なカメラのキャリブレーション方法を提供することにある。
【課題を解決するための手段】
【００５１】
このような目的を達成するために本発明は、交互にそのマス目内の色が反転するように配色された格子状の平面パターンと、この平面パターン内の所定の位置に設けられた基準マークとを有するキャリブレーションパターンを少なくとも３方向からカメラで撮像し、この撮像された各キャリブレーションパターンと実際のキャリブレーションパターンとの間の射影変換行列（Ｈ行列）の本行列を各個に算出し、これら算出されたＨ行列の本行列からカメラの校正パラメータを算出するカメラのキャリブレーション方法であって、基準マークが入るようにカメラによってキャリブレーションパターンを撮像するパターン撮像ステップと、このパターン撮像ステップによって撮像されたキャリブレーションパターンより任意の四角形を形成するようにそのキャリブレーションパターン中の任意のマス目の交点座標を検出する交点座標検出ステップと、この交点座標検出ステップによって検出された交点座標に基づいて、パターン撮像ステップによって撮像されたキャリブレーションパターンと実際のキャリブレーションパターンとの間のＨ行列を仮のＨ行列として算出する仮行列算出ステップと、この仮行列算出ステップによって算出された仮のＨ行列に基づいて、パターン撮像ステップによって撮像されたキャリブレーションパターン中の各マス目の交点候補位置を算出し、この各マス目の交点候補位置のそれぞれについて実際に交点になっているか否かを確認し、この確認結果に基づいて各マス目の交点座標を推定する交点座標推定ステップと、パターン撮像ステップによって撮像されたキャリブレーションパターン中の基準マークを検出する基準マーク検出ステップと、この基準マーク検出ステップによって検出された基準マークの位置を座標基準とし、交点座標推定ステップによって推定された各マス目の交点座標に基づいて、パターン撮像ステップによって撮像されたキャリブレーションパターンと実際のキャリブレーションパターンとの間のＨ行列の本行列を算出する本行列算出ステップとを設けたことを特徴とする。
【００５２】
本発明において、キャリブレーションパターンは、交互にそのマス目内の色が反転するように配色された格子状の平面パターン（以下、この平面パターンをチェックパターンと呼ぶ）と、このチェックパターン内の所定の位置に設けられた基準マークとから構成されている。このキャリブレーションパターンにおいて、基準マークはチェックパターンと区別することができればよく、ドットマークとしたり、三角形としたり、×印としたりしてもよい。また、例えば、チェックパターンのマス目の１つを色を変えて、その色を変えたマス目を基準マークとするなどとしてもよい。
【００５３】
本発明では、この基準マークが入るように、少なくとも３方向からキャリブレーションパターンをカメラで撮像する。そして、撮像された各キャリブレーションパターンについて、実際のキャリブレーションパターンとの間のＨ行列の本行列を各個に算出する。このＨ行列の本行列の算出は次のようにして行う。
【００５４】
先ず、撮像されたキャリブレーションパターンより、任意の四角形を形成するようにそのキャリブレーションパターン中の任意のマス目の交点座標を検出する。例えば、撮像されたキャリブレーションパターンの中心付近でマス目の交点を１つ見つけ、見つけた交点付近で３つ以上の交点を見つけるというようにして、任意の四角形を形成するようにキャリブレーションパターン中の任意のマス目の交点座標を検出する。そして、この検出した交点座標に基づいて、撮像されたキャリブレーションパターンと実際のキャリブレーションパターンとの間のＨ行列を仮のＨ行列として算出し、この算出した仮のＨ行列に基づいて撮像されたキャリブレーションパターン中の各マス目の交点候補位置を算出する。
【００５５】
この場合、各マス目の交点候補位置は、実際に各マス目の交点になっているとは限らない。そこで、各マス目の交点候補位置のそれぞれについて、実際に交点になっているか否かを確認し、この確認結果に基づいて各マス目の交点座標を推定する。例えば、各マス目の交点候補位置のそれぞれについて、その交点候補位置を中心とした小領域を抽出し、その小領域の画像データを２値化し、この２値化した小領域の画像データに基づいて実際に交点になっているか否かを判定し、実際に交点になっていると判定された交点候補位置についてのみその交点座標の推定を行う。そして、撮像されたキャリブレーションパターン中の基準マークを検出し、この検出した基準マークの位置を座標基準とし、各マス目の推定された交点座標に基づいて、実際のキャリブレーションパターンとの間のＨ行列の本行列を算出する。
【００５６】
このようにして、本発明では、撮像された各キャリブレーションパターンと実際のキャリブレーションパターンとの間のＨ行列の本行列を各個に算出し、これら算出されたＨ行列の本行列からカメラの校正パラメータ（キャリブレーションパラメータ）を算出する。
【発明の効果】
【００５７】
本発明によれば、基準マークが入るように撮像されたキャリブレーションパターンより、任意の四角形を形成するようにそのキャリブレーションパターン中の任意のマス目の交点座標が検出され、この検出された交点座標に基づいて各マス目の交点候補位置が算出され、この算出された交点候補位置から各マス目の交点座標が推定され、この推定された各マス目の交点座標に基づいて、基準マークの位置を座標基準とし、撮像されたキャリブレーションパターンと実際のキャリブレーションパターンとの間のＨ行列の本行列が算出されるものとなり、手動で交点座標の指定を行うことなく、全自動でカメラの校正パラメータを求めることができるようになり、人手によるミスを排除し、処理時間の短縮を図ることが可能となる。
【００５８】
また、本発明によれば、基準マークが入るようにキャリブレーションパターンを撮像すればよく、キャリブレーションパターン全体の撮像は不要であるので（チェックパターンは画面からはみ出てもよい）、撮像時の調整の手間を大幅に削減することができるようになる。また、画面全体にキャリブレーションパターンを映すことができ（画面に背景が含まれない）、キャリブレーションの精度を向上させることが可能となる。
【図面の簡単な説明】
【００５９】
【図１】本発明に係るカメラのキャリブレーション方法で用いるキャリブレーションパターンの一例を示す図である。
【図２】このキャリブレーションパターンを用いて実施されるキャリブレーションの流れ図である。
【図３】この流れ図に従ってキャリブレーションを実施するシステムの概略を示す図である。
【図４】ステレオカメラで撮像されたキャリブレーションパターンの画像例を示す図である。
【図５】撮像されたキャリブレーションパターンと実際のキャリブレーションパターンとの間のＨ行列の本行列の算出処理の流れ図である。
【図６】撮像されたキャリブレーションパターンの画像の中心付近で１つの交点が検出される様子を示す図である。
【図７】検出した１つの交点付近で４角形を形成するように３つ以上の交点が検出される様子を示す図である。
【図８】４角形を形成するように交点を検出する他の例を示す図である。
【図９】撮像されたキャリブレーションパターンと実際のキャリブレーションパターンとの間の仮のＨ行列を算出する際の交点座標の対応を示す図である。
【図１０】算出された仮のＨ行列に基づいて算出された撮像されたキャリブレーションパターン中の交点候補位置を示す図である。
【図１１】算出された交点候補位置について実際に交点になっているか否かを判定する交点判定処理の流れ図である。
【図１２】撮像されたキャリブレーションパターンの画像から交点候補位置を中心とした小領域の画像ブロックが切り出される様子を示す図である。
【図１３】切り出した小領域の画像ブロックの画像データに対して輝度値に連動した２値化処理が行われる様子を示す図である。
【図１４】２値化された小領域の画像ブロックに交点が含まれるか否かの判定処理が行われる様子を示す図である。
【図１５】実際に交点が含まれると判定された小領域の画像ブロックにおいて交点位置が高精度で推定される様子を示す図である。
【図１６】撮像されたキャリブレーションパターン中の推定された交点座標を示す図である。
【図１７】撮像されたキャリブレーションパターンと実際のキャリブレーションパターンとの間のＨ行列の本行列を算出する際の交点座標の対応を示す図である。
【図１８】画像処理装置の要部の機能ブロック図である。
【図１９】ステレオカメラを用いた３次元計測の概要を示す図である。
【図２０】ステレオカメラのキャリブレーションに用いられている従来のキャリブレーションパターンの一例を示す図である。
【図２１】このキャリブレーションパターンを用いたキャリブレーションの流れ図（従来方式）である。
【図２２】この流れ図に従ってキャリブレーションを実施するシステムの概略を示す図である。
【図２３】ステレオカメラで撮像されたキャリブレーションパターンの画像例を示す図である。
【図２４】撮像されたキャリブレーションパターンと実際のキャリブレーションパターンとの間のＨ行列を算出する際の交点座標の対応を示す図である。
【発明を実施するための形態】
【００６０】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００６１】
〔キャリブレーションパターン〕
図１は本発明に係るカメラのキャリブレーション方法で用いるキャリブレーションパターンの一例を示す図である。このキャリブレーションパターン４は、交互にそのマス目内の色が反転するように配色された格子状の平面パターン（チェックパターン）４Ａと、このチェックパターン４Ａ内の所定の位置に設けられた基準マーク４Ｂとから構成されている。
【００６２】
この実施の形態において、チェックパターン４Ａは、白と黒とのマス目を交互に格子状に並べた市松模様のパターンとされている。また、基準マーク４Ｂは、チェックパターン４Ａの中心部のマス目の中にドットマークとして記されている。
【００６３】
なお、基準マーク４Ｂは、チェックパターン４Ａと区別することができればよく、三角形としたり、×印としたりしてもよい。また、チェックパターン４Ａのマス目の色を変え（灰色、赤など）、その色を変えたマス目を基準マークとして用いるようにしてもよい。
【００６４】
図２にこのキャリブレーションパターン４を用いて実施されるキャリブレーションの流れ図を示す。図３にこの流れ図に従ってキャリブレーションを実施するシステムの概略を示す。このシステムでは、キャリブレーションパターン４をステレオカメラ２で撮影（撮像）し、このステレオカメラ２で撮像された画像を画像処理装置５へ送る。画像処理装置５は全自動でステレオカメラ２のキャリブレーションを実施する。
【００６５】
画像処理装置５は、プロセッサや記憶装置からなるハードウェアと、これらのハードウェアと協働して各種機能を実現させるプログラムとによって実現され、本実施の形態特有の機能として自動キャリブレーション機能を有している。
【００６６】
なお、ここでは、説明を簡単とするため、ステレオカメラ２の右カメラのキャリブレーションが行われる様子を説明する。左カメラのキャリブレーションも同様にして行われる。
【００６７】
先ず、操作者は、少なくとも３方向から基準マーク４Ｂが入るようにステレオカメラ２でキャリブレーションパターン４を撮影（撮像）する（ステップＳ２０１）。図４にステレオカメラ２によって撮像されたキャリブレーションパターン４の画像例（右カメラで撮像された画像）を示す。この画像は画像処理装置５へ送られる。
【００６８】
すると、画像処理装置５は、撮像された各キャリブレーションパターン４と実際のキャリブレーションパターン４との間のＨ行列の本行列を各個に算出し（ステップＳ２０２）、これら算出されたＨ行列の本行列から右カメラのキャリブレーションパラメータを算出する（ステップＳ２０３）。
【００６９】
〔Ｈ行列の本行列の算出〕
図５にステップＳ２０２でのＨ行列の本行列の算出処理の流れ図を示す。画像処理装置５は、この流れ図に従い、先ずＨ行列の仮行列を算出し、この算出したＨ行列の仮行列から撮像されたキャリブレーションパターン中の交点候補位置を算出し、この交点候補位置から交点座標を推定し、この推定した交点座標に基づいて基準マークの位置を座標基準としてＨ行列の本行列を求める以下、その詳細について述べる。
【００７０】
〔交点の検出〕
画像処理装置５は、撮像されたキャリブレーションパターン４の画像の中心付近で、その画像に含まれているキャリブレーションパターン４のマス目の交点を１つ見つける（ステップＳ３０１）。図６に示すＰ１が検出された交点である。なお、図６中、×印は交点でないと判断されたものである。また、探索範囲は画像中心付近で、探索のための刻み幅は切り出しブロックサイズの１／３程度である。
【００７１】
次に、画像処理装置５は、ステップＳ３０１で見つけた交点付近で３つ以上の交点を見つける（ステップＳ３０２）。このとき、得られた点の少なくとも４点で４角形をなすように交点を見つける。
【００７２】
この場合、例えば、交点が１直線に並ぶように点を取ってはいけない。また、見つかった交点の相対的な位置関係が分かっている必要がある。これらの制約はＨ行列の計算に必須の条件である。
【００７３】
図７に四角形をなすように交点を見つけた例を示す。この例では、最初に見つけた交点Ｐ１付近で、任意の四角形を形成するように交点Ｐ２，Ｐ３，Ｐ４，Ｐ５を見つけている。なお、図８（ａ）に示すように、１つのマス目の４つの角を交点Ｐ１，Ｐ２，Ｐ３，Ｐ４として見つけるようにしてもよいし、図８（ｂ）に示すように、４つのマス目で構成される四角形を形成するように、交点Ｐ２〜Ｐ９を見つけるようにしてもよい。
【００７４】
〔仮のＨ行列の算出〕
画像処理装置５は、ステップＳ３０１，Ｓ３０２で検出した交点Ｐ１，Ｐ２，Ｐ３，Ｐ４，Ｐ５の交点の座標（交点座標）に基づいて、撮像されたキャリブレーションパターン４と実際のキャリブレーションパターン４との間のＨ行列を仮のＨ行列として算出する（ステップＳ３０３：図９参照）。
【００７５】
この場合、Ｈ行列は、前述した式（５）から算出できる。ここで、Ｈ行列を仮としている理由は、実際のキャリブレーションパターン４と撮像されたキャリブレーションパターン４とで対応する交点の位置がずれているからである。最終的には、撮像されたキャリブレーションパターン４の中にある基準マーク４Ｂの位置を座標基準として、双方の交点座標を対応づける。この処理は、後述するステップＳ３０７，Ｓ３０８で実施する。
【００７６】
〔交点候補位置の算出〕
次に、画像処理装置５は、ステップＳ３０３で算出した仮のＨ行列に基づいて、撮像されたキャリブレーションパターン４中の各マス目の交点候補位置を算出する（ステップＳ３０４）。図１０に算出された交点候補位置（図中の×印）を示す。
【００７７】
Ｈ行列が分かると前述した式（５）と実際のキャリブレーションパターン４の交点座標から撮像されたキャリブレーションパターン４上の交点座標を推定できる。実際のキャリブレーションパターン４の交点座標については、あらかじめ決められたマス目のサイズをそのまま用いればよい。
【００７８】
図１０に示されている結果から分かるように、交点候補と思われる位置には、全て×印がつけられている。ここでは、画像内に含まれる交点候補位置をすべて表示しているため、画像端などパターンが途切れている部分がある。また、図からは視認し難いが、交点候補位置と実際の交点の位置には微妙なずれがある。この問題点は続くステップＳ３０５，Ｓ３０６の処理で解消する。
【００７９】
〔交点の判定〕
画像処理装置５は、ステップＳ３０４で算出した各マス目の交点候補位置のそれぞれについて、実際に交点になっているか否かを判定する（ステップＳ３０５）。図１１にこの場合の交点判定処理の流れ図を示す。
【００８０】
画像処理装置５は、撮像されたキャリブレーションパターン４の画像から、各マス目の交点候補位置のそれぞれについて、その交点候補位置を中心とした小領域の画像ブロックＢＬを切り出す（ステップＳ４０１：図１２参照）。
【００８１】
この例では、画像ブロックＢＬのサイズを１１×１１ピクセル以上としている。ブロックサイズが小さい方が画像上のマス目のサイズが小さくても検出できるようになるが、１１×１１ピクセルより小さくなると検出精度が悪くなるためこの値とした。また、キャリブレーションパターン４は、画像上でのマス目のサイズが２０×２０以上にするのが望ましい。なお、キャリブレーションパターン４のマス目のサイズは自由に決めることができる。
【００８２】
次に、画像処理装置５は、ステップＳ４０１で切り出した小領域の画像ブロックＢＬのそれぞれに対して、輝度値に連動した２値化処理を行う（ステップＳ４０２、図１３参照）。具体的には、画像ブロックＢＬ内の平均輝度値を使って２値化する。対象となるパターンは常に一定の明るさで撮影されるとは限らないので、この処理により、正しく白のパターンと黒のパターンに分けることができる。
【００８３】
そして、画像処理装置５は、２値化された画像の４隅の領域を時計回りに見て、黒→白→黒→白、もしくは白→黒→白→黒と並ぶかによって、抽出した画像ブロックＢＬに交点が含まれるか否かを判定する（ステップＳ４０３、図１４参照）。すなわち、黒→白→黒→白、もしくは白→黒→白→黒と並んでいれば、その小領域の画像ブロックＢＬの抽出元の交点候補位置が実際に交点になっていると判定する。
【００８４】
ここで、処理を安定させるために、４隅の４点の値だけではなく、４隅から２×２の小ブロックをそれぞれ切り出し、その結果を投票して判定する。全体としては、２×２の小ブロックが４つの合計１６点のデータが得られ、その中で１４点以上が黒白の判定条件に一致していれば交点と判断する。この処理は、４隅のデータがたまたま条件に合致して誤判定するのを防ぐ効果がある。
【００８５】
なお、対象となるマス目のパターンがカメラの視線方向の軸（Ｚ軸）を基準にして４５度など大きく回転していると、交点判定ができない。しかしながら、対象パターンを大きく回転させてキャリブレーションすることがないため、考慮しないこととする。
【００８６】
〔交点座標の推定〕
次に、画像処理装置５は、ステップＳ３０５において実際に交点になっていると判定された交点候補位置についてのみ、その画像ブロックＢＬ中の交点位置を高精度で推定し（図１５参照）、推定した交点座標を交点位置として更新する（ステップＳ３０６）。
【００８７】
なお、このステップＳ３０６での交点位置の高精度推定は、ハリスコーナ検出器（非特許文献３参照）によって行う。ハリスコーナ検出器の基本的な考え方は、縦方向と横方向の輝度値の勾配を見て、一番変化が激しい部分を検出するものである。もし画像中に交点があれば、その点が縦方向にも横方向にも輝度変化が大きくなるため検出されるという仕組みである。
【００８８】
図１６にステップＳ３０６で推定された交点座標（図中の●印）を示す。ステップＳ３０５での交点判定によって、図１０では交点候補位置（図中の×印）となっていた画像の端の点がはじかれて、無くなっているのが分かる。
【００８９】
〔基準マークの検出〕
次に、画像処理装置５は、撮像されたキャリブレーションパターン４中の基準マーク４Ｂを検出する（ステップＳ３０７）。この処理では、１つ１つのマス目の位置が分かっているため、白色のマス目の中にドットマークがあるかどうかによって基準マーク４Ｂを見つけている。この処理で基準マーク４Ｂが見つかるため、実際のキャリブレーションパターン４と撮像されたキャリブレーションパターン４との間の交点の正しい対応が分かる。
【００９０】
〔Ｈ行列の本行列の計算〕
次に、画像処理装置５は、基準マーク４Ｂの位置を座標基準とし、ステップＳ３０６によって推定された各マス目の交点座標に基づいて、撮像されたキャリブレーションパターン４と実際のキャリブレーションパターン４との間のＨ行列の本行列を算出する（ステップＳ３０８）。
【００９１】
これにより、基準マーク４Ｂが設けられているマス目の交点座標を基準点として、撮像されたキャリブレーションパターン４と実際のキャリブレーションパターン４との間のＨ行列の本行列が算出される（図１７参照）
【００９２】
以上の説明から分かるように、本実施の形態では、基準マーク４Ｂが入るように撮像されたキャリブレーションパターン４より、自動的に、任意の四角形を形成するようにそのキャリブレーションパターン４中の任意のマス目の交点座標が検出され、この検出された交点座標に基づいて各マス目の交点候補位置が算出され、この算出された交点候補位置から各マス目の交点座標が推定され、この推定された各マス目の交点座標に基づいて、基準マーク４Ｂの位置を座標基準として、撮像されたキャリブレーションパターン４と実際のキャリブレーションパターン４との間のＨ行列の本行列が算出されるものとなる。これにより、手動で交点座標の指定を行うことなく、全自動でキャリブレーションパラメータが求められるものとなり、人手によるミスを排除し、処理時間の短縮を図ることができるようになる。
【００９３】
また、本実施の形態によれば、基準マーク４Ｂが入るようにキャリブレーションパターン４を撮影すればよく、キャリブレーションパターン４全体の撮影は不要であるので（チェックパターン４Ａは画面からはみ出てもよい）、撮影時の調整の手間を大幅に削減することができる。すなわち、従来方式では、画面全体にキャリブレーションパターンを映そうとすると、手動で指定する４点が画像端ぎりぎりになるように調整する作業が必要となるが、本実施の形態によれば、基準マーク４Ｂさえ映っていればよく、キャリブレーションパターン４を映す調整の手間を大幅に削減できる。また、画面全体にキャリブレーションパターン４を映すことができるので（画面に背景が含まれない）、キャリブレーションの精度を向上させることができる。
【００９４】
図１８に画像処理装置５の要部の機能ブロック図を示す。画像処理装置５は、実際のキャリブレーションパターン４の各マス目の交点座標や基準マーク４Ｂの位置などのデータを実パターンのデータとして記憶する実パターン記憶部５１と、ステレオカメラ２によって撮像されたキャリブレーションパターン４の画像を取り込む画像取込部５２と、この画像取込部５２によって取り込まれた画像より任意の四角形を形成するように撮像されたキャリブレーションパターン４の任意のマス目の交点座標を検出する交点座標検出部５３とを備えている。なお、ステレオカメラ２でキャリブレーションパターン４を撮影する際には、基準マーク４Ｂが入るようにキャリブレーションパターン４を撮影するようにし、撮像されたキャリブレーションパターン４に必ず基準マーク４Ｂが含まれるものとする。
【００９５】
また、画像処理装置５は、交点座標検出部５３によって検出された交点座標に基づいて、撮像されたキャリブレーションパターン４と実際のキャリブレーションパターン４との間のＨ行列を仮のＨ行列として算出する仮行列算出部５４と、仮行列算出部５４によって算出された仮のＨ行列に基づいて、撮像されたキャリブレーションパターン４中の各マス目の交点候補位置を算出し、この各マス目の交点候補位置のそれぞれについて実際に交点になっているか否かを確認し、この確認結果に基づいて各マス目の交点座標を推定する交点座標推定部５５と、撮像されたキャリブレーションパターン４中の基準マーク４Ｂを検出する基準マーク検出部５６とを備えている。
【００９６】
また、画像処理装置５は、基準マーク検出部５６によって検出された基準マーク４Ｂの位置を座標基準とし、交点座標推定部５５によって推定された各マス目の交点座標に基づいて、撮像されたキャリブレーションパターン４と実際のキャリブレーションパターン４との間のＨ行列の本行列を算出する本行列算出部５７と、本行列算出部５７によって算出された少なくとも３つのＨ行列の本行列からステレオカメラ２のキャリブレーションパラメータを算出するキャリブレーションパラメータ算出部５８とを備えている。
【００９７】
また、画像処理装置５において、交点座標推定部５５は、各マス目の交点候補位置のそれぞれについて実際に交点になっているか否かを判定する交点判定部５５Ａと、交点判定部５５Ａによって実際に交点になっていると判定された交点候補位置についてのみその交点座標の推定を行う交点推定部５５Ｂとを備えている。交点判定部５５Ａは、各マス目の交点候補位置のそれぞれについて、その交点候補位置を中心とした小領域を抽出する小領域抽出部５５Ａ１と、小領域抽出部５５Ａ１によって抽出された小領域のそれぞれについて、当該小領域の画像データを２値化する２値化処理部５５Ａ２と、２値化処理部５５Ａ２によって２値化された小領域の画像データに基づいて、その小領域の抽出元の交点候補位置が実際に交点になっているか否かを判定する判定部５５Ａ３とを備えている。
【産業上の利用可能性】
【００９８】
本発明のカメラのキャリブレーション方法は、カメラの位置や向き、カメラが持つ画像中心やスケールなどのカメラの校正パラメータを算出するカメラのキャリブレーション方法として、ステレオカメラなど各種のカメラに適用することができ、処理の高速化、人手によるミスの排除、性能向上など様々な利点を期待できるる。また、ステレオカメラの量産化への対応、現場での簡便なキャリブレーションの実現が可能になる。
【符号の説明】
【００９９】
２…ステレオカメラ、４…キャリブレーションパターン、４Ａ…平面パターン（チェックパターン）、４Ｂ…基準マーク、５…画像処理装置、５１…実パターン記憶部、５２…画像取込部、５３…交点座標検出部、５４…仮行列算出部、５５…交点座標推定部、５５Ａ…交点判定部、５５Ａ１…小領域抽出部、５５Ａ２…２値化処理部、５５Ａ３…判定部、５５Ｂ…交点推定部、５６…基準マーク検出部、５７…本行列算出部、５８…キャリブレーションパラメータ算出部、ＢＬ（ＢＬ１，ＢＬ２）…画像ブロック、Ｇ１…左カメラの画像、Ｇ２…右カメラの画像、Ｐ１〜Ｐ９…交点。
【図１】
0005432835.tif 000012
【図２】
0005432835.tif 000013
【図３】
0005432835.tif 000014
【図４】
0005432835.tif 000015
【図５】
0005432835.tif 000016
【図６】
0005432835.tif 000017
【図７】
0005432835.tif 000018
【図８】
0005432835.tif 000019
【図９】
0005432835.tif 000020
【図１０】
0005432835.tif 000021
【図１１】
0005432835.tif 000022
【図１２】
0005432835.tif 000023
【図１３】
0005432835.tif 000024
【図１４】
0005432835.tif 000025
【図１５】
0005432835.tif 000026
【図１６】
0005432835.tif 000027
【図１７】
0005432835.tif 000028
【図１８】
0005432835.tif 000029
【図１９】
0005432835.tif 000030
【図２０】
0005432835.tif 000031
【図２１】
0005432835.tif 000032
【図２２】
0005432835.tif 000033
【図２３】
0005432835.tif 000034
【図２４】
0005432835.tif 000035