(57)【特許請求の範囲】
【請求項１】
少なくともレンズ歪みを含むカメラの内部パラメータを決定する装置であって、
ａ．既知の格子点パターンを撮影して得られる画像信号に基づいて前記カメラを移動しつつ前記カメラのレンズ歪み中心を設定するレンズ歪み中心設定手段、
ｂ．前記設定されたレンズ歪み中心に基づいて調整された前記カメラと格子点パターンの位置に基づき、前記カメラの基準位置を設定する基準位置設定手段、
ｃ．前記基準位置に設定されたカメラから前記格子点を撮影して得られる画像信号をストアする第１の画像信号ストア手段、
ｄ．前記ストアされた画像信号に基づいて格子点の座標を測定してレンズ歪み量を算出する歪み量算出手段、
ｅ．前記設定された基準位置から前または後方向に前記カメラを移動し、撮影して得られた複数個の画像信号をストアする第２の画像信号ストア手段、
ｆ．前記算出されたレンズ歪み中心およびレンズ歪み量に基づき、前記ストアされた複数個の画像信号を修正するレンズ歪み修正手段、
および
ｇ．前記修正された複数個の画像信号に基づいて前記カメラの内部パラメータを決定するパラメータ決定手段、
を備えたことを特徴とするカメラの内部パラメータ決定装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はカメラの内部パラメータ決定装置に関し、より詳しくはレンズによる画像の歪みを補正して内部パラメータを適正に決定するようにしたものに関する。
【０００２】
【従来の技術】
一般に、カメラ、例えばＣＣＤカメラの画像から撮影対象までの位置（あるいは離間距離）を測定する場合、例えばカメラの焦点距離、画像中心およびＣＣＤ画像をディジタイズした場合の１画素の大きさ、あるいはアスペクト比などのカメラパラメータが、測定精度に大きく影響する。
【０００３】
従来、これらのカメラパラメータは、特開昭６３─１３６８９２号公報に示されるように算出されている。即ち、予め用意された基準となるｎ個（ｎ≧４）の格子点を撮影し、その格子点ｉ（ｉ＝１，２，．．ｎ）の３次元上（平面１２上の物体座標系）の座標（ａｉ，ｂｉ）と画像上の座標（ｐｉ，ｑｉ）の組を複数個求める。
【０００４】
次いで、その３次元上の座標と既知のパラメータから計算によって求めた画像上の座標と、実際に測定した画像上の座標とが同値、あるいはその差が最も小さくなるように未知のパラメータ、具体的には、焦点距離ｆ、光軸点（オフセット量）（ｆｐ，ｆｑ）、アスペクト比ｓを決定している。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記した従来の手法では、これら内部パラメータとカメラ位置・姿勢のパラメータとを１回の撮影、測定（決定）から同時に求めることができるものの、充分な精度を得ることができなかった。
【０００６】
即ち、一般に撮影対象からの入射光がレンズを透過して画像に映り込む際、レンズ中心線から入射光がレンズを透過する角度によっては、画像周辺では画像中心（あるいは画像周辺）寄りに歪む傾向がある。
【０００７】
従来技術においては、このレンズによる画像の歪みを補正せずに各パラメータを決定しているため、カメラの内部パラメータを正確に決定することができなかった。また、補正項を入れた場合でも、歪み量は他のパラメータの量に比べて微小であり、他のパラメータと同時に求めていたため、正確な値を得ることが困難であった。
【０００８】
従って、この発明の目的は上記した不都合を解消することにあり、レンズによる画像の歪みを補正して内部パラメータを正確に決定するようにしたカメラの内部パラメータ決定装置を提供することにある。
【０００９】
【課題を解決するための手段】
上記した目的を解決するために、請求項１項に示す如く、少なくともレンズ歪みを含むカメラの内部パラメータを決定する装置であって、既知の格子点パターンを撮影して得られる画像信号に基づいて前記カメラを移動しつつ前記カメラのレンズ歪み中心を設定するレンズ歪み中心設定手段、前記設定されたレンズ歪み中心に基づいて調整された前記カメラと格子点パターンの位置に基づき、前記カメラの基準位置を設定する基準位置設定手段、前記基準位置に設定されたカメラから前記格子点を撮影して得られる画像信号をストアする第１の画像信号ストア手段、前記ストアされた画像信号に基づいて格子点の座標を測定しレンズ歪み量を算出する歪み量算出手段、前記設定された基準位置から前または後方向に前記カメラを移動し、撮影して得られた複数個の画像信号をストアする第２の画像信号ストア手段、前記算出されたレンズ歪み中心およびレンズ歪み量に基づき、前記ストアされた複数個の画像信号を修正するレンズ歪み修正手段、および前記修正された複数個の画像信号に基づいて前記カメラの内部パラメータを決定するパラメータ決定手段を備える如く構成した。
【００１０】
これによって、レンズによる画像の歪みを補正して内部パラメータを正確に決定することができる。また、構成としても簡易である。さらに、内部パラメータを正確に決定することで、ワークの位置決め、障害物検知などの精度を向上させることができる。
【００１１】
【発明の実施の形態】
以下、添付図面に即してこの発明の実施の形態を説明する。
【００１２】
図１はこの発明に係るカメラの内部パラメータ決定装置の構成を全体的に示す概略図である。
【００１３】
図１において、符号１０はカメラ、より具体的にはＣＣＤカメラ（以下単に「カメラ」という）を示す。カメラ１０は、レンズ１２およびカメラ本体１４からなる。カメラ１０は、雲台１６上に載置され、固定される。
【００１４】
雲台１６は、Ｘステージ１６ａ，Ｙステージ１６ｂおよびＺステージ１６ｃからなり、Ｘ，Ｙ，Ｚ軸方向に数μｍごとに並進（移動）可能であると共に、矢印１６ｄ，１６ｅ，１６ｆに示す如く、Ｘ，Ｙ，Ｚ軸回りに数分（１／６０ｄｅｇ）ごとに回転可能、即ち６自由度を有するように構成される。
【００１５】
カメラ１０の正面前方には、ボード１８が配置される。ボード１８には図２に示す如く、撮影対象として、格子１８ａ（格子幅約４０ｍｍ（離間距離１ｍとするとき））が正確に表示される。撮影対象からの入射光はレンズ１２を透過してカメラ本体１４のＣＣＤ素子に像を結ぶ。
【００１６】
カメラ本体１４の下部にはハウジング（図示せず）が設けられ、その中にマイクロコンピュータからなる処理ユニット２０が収納される。カメラ１０の出力（ＣＣＤ素子からの出力）は、マイクロコンピュータからなる処理ユニット２０に送られ、その中の画像入力ボードＡ／Ｄ変換処理によってディジタイズされ、別体に設けられたディジタル画像表示装置（図示せず）に画像を表示する。ディジタル画像表示装置は、６４０＊４８０の画素を備える。尚、この明細書および図面で＊は乗算記号を示す。
【００１７】
ここで、カメラ（内部）パラメータを説明する。図３は、格子１８ａを撮影するとき、カメラ１０をピンホール・カメラでモデル化して示す説明図である。
【００１８】
図３に示す如く、撮影対象（格子１８ａ）からの入射光は焦点Ｏｇを通って直進し、ＣＣＤ面上に画像を結ぶ。しかしながら、実際にはこのとき、レンズ１２の歪みによって、実際の像は直進した光よりも少し内側（中心寄り）に歪んで写る。尚、レンズによっては先にも触れたように外側寄りに歪んで写る場合もあるが、以下では内側に歪む場合を例にとって説明する。
【００１９】
図４はレンズの歪みによって画像の歪む状態を表す概略図である。即ち、図４に示すように、画像は、レンズの歪みによって画像周辺では直線は湾曲する。
【００２０】
一般に、レンズによる歪み量は画像中心からの距離によって決まるため、画像中心に対して対称になる。しかし画像中心はディジタイズした画像メモリの中心と一致しているとは限らない。
【００２１】
従って、画像から撮影対象（物体）を位置決めする場合、レンズによる画像の歪み中心および歪み量を決定して考慮する必要がある。
【００２２】
図５は、レンズによる画像の歪みをモデル化して示す説明図である。図５において、点Ｏ’は画像メモリの中心座標、点Ｏ（ｏｘ，ｏｙ）はレンズ歪みの中心座標である。
【００２３】
ここで、撮影した点の３Ｄ上の位置から焦点を中心に比例配分して得られるＣＣＤ画像上の理論点（レンズ歪みがないとした時の画像上の点）を点Ｐｉ’（ｘｉ’，ｙｉ’）、実際の測定により得られる点を点Ｐｉ（ｘｉ，ｙｉ）とすると、点Ｐｉはレンズ歪みにより点Ｐｉ’より点Ｏ（レンズ歪み中心）側に寄る。尚、ｉは格子点番号を意味する。
【００２４】
点Ｐｉ，Ｐｉ’のレンズ歪み中心Ｏからの距離をそれぞれｒ，ｒ’とすると、前記したレンズ歪みの量は、ｒ，ｒ’の関数ｆとして数１のように表すことができる。以下、この関数ｆを「レンズ歪みの関数」という。
【００２５】
【数１】
0003913901.tif 000002
【００２６】
レンズ歪みの関数ｆはレンズの設計によって決まるが、計算によって求めるため、距離ｒ’の多項式により数２のように近似する。
【００２７】
【数２】
0003913901.tif 000003
【００２８】
即ち、実際に測定した歪みの量を画像中央からの距離を横軸とした多項式で最小２乗近似し、それぞれの係数Ａ1 ，Ａ2 ，Ａ3 ，．．を求める。以下、この係数Ａｉを「レンズ歪み係数」という。
【００２９】
以上から、歪みによる影響を考慮すると、図３に示す３次元上の点Ｐｇ（ｘｇ，ｙｇ，Ｌ）［ｍｍ］とレンズ歪みがない場合の格子点の像である画像上の点Ｐｄｉ（ｘｄｉ，ｙｄｉ）［ｄｏｔ］との関係は、数３のように表すことができる。
【００３０】
【数３】
0003913901.tif 000004
【００３１】
ここで、ｉは前記の如く格子点番号、Ｘａは水平方向の画素サイズ、Ｙａは垂直方向の画素サイズ、Ｆは、図３に示す如く、ピンホールカメラで近似した場合のＣＣＤ面（撮像面）から焦点までの距離、Ｌは撮影対象から焦点までの距離である。
【００３２】
画素サイズ（Ｘａ，Ｙａ）は、ディジタイズした画像がＣＣＤ面上にあると考えたときの１画素の縦と横の長さである。これはＣＣＤ素子の画素サイズではなく、画像入力ボードのＡ／Ｄ変換処理によって得たディジタル画像の１画素のサイズである。故に、ＣＣＤ素子の画素サイズの他、Ａ／Ｄ回路の特性によっても変化するため、ＣＣＤカメラ１０の仕様および測定によって決定する。
【００３３】
レンズ１２は複数枚のレンズを組み合わせた複合レンズを使用しており、レンズ１２の位置といってもかなりの幅を持っているが、図３のようにピンホールカメラで近似すると、焦点の位置を決めることができる。
【００３４】
しかし、この焦点の位置もＣＣＤ面などのように実体があってカメラの外部から知ることができる位置ではないので、測定によって決定する。ここでは撮影対象物から焦点までの距離Ｌ［ｍｍ］として求める。
【００３５】
しかしながら、上記した数３において、レンズ歪み中心座標Ｏ、レンズ歪み関数ｆ、画素サイズ（Ｘａ，Ｙａ）、焦点位置Ｏｇ（または焦点距離Ｌ）はいずれも未知である。
【００３６】
そこで以下にそれぞれのパラメータの決定手法について述べる。
【００３７】
図４に示すように、画像は、レンズの歪みによって画像周辺では直線は樽型に写る。従って、例えばカメラ１０を上下に動かしながら水平線を撮影し、最も上下方向の歪みの少ない位置をレンズ歪み中心のＹ座標ｏｙ［ｄｏｔ］とする。また同様に、左右方向の歪みの少ない位置をレンズ歪み中心のＸ座標ｏｘ［ｄｏｔ］とする。撮影する際には測定したレンズ歪み中心位置と格子の中心位置とを合わせる。また、レンズ歪みを含んだ画像でも歪みの量は歪み中心に対称になるので、中心から等距離にある格子点が画像上でも等距離になるようにカメラの位置と角度を調節することで、撮影対象の格子と撮像面を平行にする。
【００３８】
また数１および数２によりレンズ歪みの関数ｆを求めるためには、撮像データの他に、レンズ歪み中心座標Ｏと、前述したレンズ歪みがない場合の格子点の像Ｐｄｉのデータが必要であるが、レンズ歪み中心の座標以外はこの時点では求められていない。
【００３９】
そこで、オペレータによってカメラ１０の位置を少し前方（撮影対象物に近づく方向）に移動して撮影する。図６はカメラ１０の位置を移動した状態を説明する説明図である。
【００４０】
尚、移動前の撮影で得られる画像データを「遠い」データとし、そのときの水平軸上の各格子点の画像上の座標値をＸｍｉ’とする。同様に、移動後に得られる画像データを「近い」データとし、そのときの水平軸上の各格子点の画像上の座標値をＸｎｉ’とする。
【００４１】
レンズ１２に歪みがなければ、３Ｄ上の点の位置Ｗｉと座標値Ｘｉの関係は、格子１８ａとの距離Ｌ、カメラ１０の平行移動量Ｄ、焦点距離Ｆ、画素のサイズＸａで決まる傾きを持った比例関係にある。
【００４２】
図７は、歪みのない場合の格子点の３Ｄ上の位置と画像上の位置の関係を表すグラフ図である。尚、図中の直線Ｓ１は「近い」場合の比例直線を、Ｓ２は「遠い」の場合の比例直線を表す。この関係は、具体的には、レンズ歪みのない場合の「遠い」および「近い」場合の座標値をＸｍｉ，Ｘｎｉとすると、数４のように表すことができる。
【００４３】
【数４】
0003913901.tif 000005
【００４４】
尚、以下で特に明示しない限り、比例係数とは、ＷｉとＸｉの比例係数、より具体的には「遠い」の場合ではＦ／（Ｌ＊Ｘａ）、「近い」場合ではＦ／｛（Ｌ−Ｄ）＊Ｘａ｝を示す。
【００４５】
しかし、実際のカメラキャリブレーションの場合に測定できるのは、レンズ１２による画像の歪みが加わったデータであるので、このレンズ歪みを含むデータからレンズ歪みの量を求めなければならない。
【００４６】
図８は、レンズ１２による画像の歪みが加わったときの格子の３Ｄ上の位置と画像上の位置の関係を表すグラフ図である。Ｓ１，Ｓ２にレンズ歪みが加わったデータをＳ１’，Ｓ２’とする。実際の測定ではＳ１’，Ｓ２’のデータが得られる。
【００４７】
そこで、レンズ歪みのない場合の「遠い」の比例直線、より具体的には、その傾き（以下「遠い」の比例係数という）を適当に設定する。図８に、その「遠い」の比例直線を破線でＳ２と示す。比例直線Ｓ２と測定した曲線Ｓ２’から、レンズ歪みの関数ｆ（Ｘｉ）をＸｉの多項式で近似して求める。尚、比例直線はどのように設定しても良いが、図８ではＳ２はＳ２’の原点近傍での傾きにほぼ等しくなるように設定した。
【００４８】
また、レンズ歪み量はレンズ歪み中心からの位置で決まるため、図８に示すように画像上のある点Ｘｉ１に対応する歪みの量は、「近い」場合も「遠い」場合も同じ値になるはずである。従って、「近い」の曲線Ｓ１’も、このレンズ歪みの関数ｆ（Ｘｉ）によって補正し、比例直線Ｓ１を得る。
【００４９】
一方、画素のサイズＸａ、撮影対象と焦点との間の距離Ｌは、数４を変形した数５のように求めることができる。
【００５０】
【数５】
0003913901.tif 000006
【００５１】
図６において、カメラ１０の平行移動量Ｄ、各格子点の「遠い」および「近い」の画像座標値Ｘｍｉ’，Ｘｎｉ’および３次元上の格子点の位置Ｗｉ（中心から格子点までの距離）は測定可能である。そこで、レンズ歪みを含む画像座標値Ｘｍｉ’，Ｘｎｉ’をレンズ歪みの関数ｆを用いて補正し、補正した値をＸｍｉ，Ｘｎｉとする。
【００５２】
以上から、画素サイズＸａおよび撮影対象と焦点との距離Ｌを決定するために必要なパラメータ（平行移動距離Ｄ、格子点位置Ｗｉ、上記求めたＸｎｉ，Ｘｍｉ）を得ることができるので、それらからＬ，Ｘａを決定することができる。
【００５３】
しかし、実際には各格子点ごとにＸａ，Ｌを求めると、本来同じはずのＸａやＬの値のばらつきが大きいため、直接計算することはできない。
【００５４】
そこで数４のＷｉとＸｎｉの「近い」場合の比例係数Ｘｎｉ／Ｗｉ（直線Ｓ１の傾き）をＡｎとし、複数の測定値を使ってＡｎの値を最小２乗近似によって求める。同様にＸｍｉについても、「遠い」場合の比例係数Ｘｍｉ／Ｗｉ（Ｓ２の傾き）をＡｍとし、測定値から最小２乗近似によって求める。
【００５５】
次いで、求めた比例係数Ａｎ，Ａｍを、数５の右辺をＷｉ（ＸａはＷｉ2 ）で除算して得た数６に代入し、よってＸａ，Ｌを求めることができる。
【００５６】
【数６】
0003913901.tif 000007
【００５７】
数６から明らかなように、カメラ１０の平行移動量Ｄの精度は直接計算結果の精度となるので、十分な精度で決定する必要がある。尚、ここで得られるＸａ，Ｌの値も、先に設定した「遠い」の比例係数から計算している。このような比例係数は、図８の測定曲線の付近ならば、自由に設定することができる。例えば、比例係数が原点での測定値曲線Ｓ２’の傾きと一致するように設定しても良く、あるいは歪み量の和が最小となるように設定しても良い。
【００５８】
上記は画素サイズの水平方向の値Ｘａの決定手法についての説明であるが、垂直方向の値Ｙａについても同様の手法によって求めることができる。
【００５９】
即ち、格子の垂直方向の中心にレンズ歪みの中心垂直座標ｏｙを合わせ、かつ、中心から垂直方向に等距離にある格子点が画像上でも等距離になるようにカメラの位置と角度を調節することで、撮影対象の格子と撮像面を平行にして撮影し、この距離を「遠い」距離とする。また、撮影データから、格子の垂直方向の座標Ｗｉに対する画像垂直座標Ｙｍｉ’のデータを測定する。
【００６０】
レンズ歪みがない場合の各格子の画像上の座標をＹｍｉとすると、３Ｄ上の格子点座標Ｗｉとの関係は、数４を変形して数７のように表すことができる。
【００６１】
【数７】
0003913901.tif 000008
【００６２】
敷衍すると、水平方向の歪みの関数ｆ（Ｘｉ）＝Ａ1 Ｘｉ＋Ａ2 Ｘｉ2 ＋．．．は、Ｘ座標の関数なので、数８に示す如く、Ｙ座標の関数に変換する。しかし、この時点ではＹａはまだ求められていないため、Ｙａは仮設定する。
【００６３】
【数８】
0003913901.tif 000009
【００６４】
数７のＷｉとＹｍｉの比例係数Ｙｍｉ／Ｗｉ（＝Ｆ／（Ｌ＊Ｙａ））をＢｍとし、水平方向の場合と同様に、複数の測定値からＢｍの値を最小２乗近似によって求める。撮影対象と焦点との間の距離Ｌは既に求まっているので、その値ＬとＢｍからＹａを決定することができる。
【００６５】
しかし、上記で求まるＹａも、先に仮設定したＹａから計算しているため、正しい値となっているとは限らない。そこで、求めたＹａと仮設定のＹａの値を比較して一致する場合、Ｙａは正しいと考えることができる。従って、一致するまでＹａの仮設定値を適宜変更して調節する。
【００６６】
以上の如くして、カメラ内部パラメータとしてレンズ歪みパラメータ（レンズ歪み中心位置、レンズ歪み量（または関数））、画素サイズ（Ｘａ，Ｙａ）および撮影対象と焦点との間の距離Ｌを求めることができる。
【００６７】
次いで、この発明に係る装置の動作を説明する。
【００６８】
図９は、図１に示す装置において、レンズ歪み中心位置およびレンズ歪み関数を求める計算手順を示すブロック図である。図１０は、水平方向の画素のサイズおよび撮影対象物から焦点までの間の距離Ｌを求める計算手順を示すブロックである。図１１は垂直方向の画素のサイズを求める計算手順を示すブロック図である。これら図９ないし図１１に示す手順は、一連の計算手順である。
【００６９】
また、図１２は、同様の動作を示すフロー・チャートである。
【００７０】
以下、図１２フロー・チャートを中心に、図９ないし図１１ブロック図を参照しつつ、この発明に係る装置の動作を説明する。
【００７１】
先ず、Ｓ１０において内部パラメータを測定（決定）するカメラ１０を設置する。次いでＳ１２に進んでカメラ１０のピントをボード１８の格子１８ａに合わせ、Ｓ１４に進んでレンズ歪み中心位置を求める。具体的には以下のように中心位置を決定する。
【００７２】
先ず、格子１８ａの間隔を目分量で０．１［ｍｍ］まで計測し、次いでオペレータの手作業を介してカメラ１０の角度を上下に動かしながら水平線を撮影する。
【００７３】
このとき、最も上下方向の歪みの少ない（直線に近い）線分を、レンズ歪み中心のＹ座標ｏｙとする。同様に、カメラ１０の角度を左右に動かしながら垂直線を撮影し、最も左右方向の歪みの少ない（直線に近い）線分を、レンズ歪み中心のＸ座標ｏｘとする。このようにして得られた座標を、レンズ歪みの中心点Ｏ（ｏｘ，ｏｙ）［ｄｏｔ］とする。
【００７４】
次いでＳ１６に進み、格子１８ａの中心にレンズ歪みの中心を合わせ、かつＣＣＤ面を格子１８ａに平行にする。具体的には以下の手順で中心を合わせる。
【００７５】
先ず、中心格子から等距離にあって画像の左右の端近くにある格子と、中心格子との距離が画像上でも（即ち、実際にも）左右で等しくなるように（０．１［ｄｏｔ］以内において）、左右方向の位置と角度を調節する。
【００７６】
次いで画像の上下方向についても、同様に端近くにある格子と中心との距離が上下で等しくなるように（０．１［ｄｏｔ］以内）、高さと角度を調節し、目標格子の中心にレンズ歪みの中心を合わせる。次いで、Ｓ１８に進んで格子１８ａを撮影する。
【００７７】
尚、ここでのカメラ１０と格子１８ａとの距離を「遠い」距離とする。次いでＳ２０に進んで、カメラ１０を前方に所定距離移動し、「近い」距離で撮影する。
【００７８】
尚、実際の撮影ではレンズ１２のピントを変えると焦点距離が微妙に変化するため、「遠い」距離にピントを合わせ、そのまま「近い」距離で撮影する。同時にカメラ１０の先端、より具体的にはレンズ１２の先端と格子１８ａとの距離Ｄも測定する。
【００７９】
次いでＳ２２に進み、「近い」「遠い」距離で撮影した画像から、その画像上の格子点の座標を測定し、「近い」「遠い」場合のデータ化、グラフ化をする。尚、実際はアナログ系のノイズなどの影響を平均化するため、各位置で複数回の撮影を行い格子点座標の平均の値を求めて利用する。
【００８０】
次いでＳ２４に進んで比例係数を設定し、Ｓ２６に進んで水平方向の歪みのパラメータを求め、Ｓ２８に進んで画像の歪みを修正し、Ｓ３０に進んで「近い」の比例係数を測定値から求め、Ｓ３２に進んで水平方向の画素サイズＸａと、目標格子からの距離、即ち、撮影対象と焦点との間の距離Ｌを算出する。
【００８１】
以下にその算出手順を、図９および図１０ブロック図を参照しながら説明する。
【００８２】
Ｓ１８からＳ２２までの処理で得られる「近い」「遠い」場合の画像データは、レンズ歪み中心の画像中心からのずれがＳ１６において既に補正されているが、ここでの画像データは特に水平方向（Ｘ方向）のずれの補正をしたものを用いる。
【００８３】
このレンズ歪み中心のずれを補正した画像を、以下、中心画像データという。図９、図１０ブロック図に、「近い」「遠い」場合の中心画像データをそれぞれ符号１００，１０２で示す。
【００８４】
例えば、「遠い」場合の比例係数の設定について図９を参照して説明すると、「遠い」比例係数を比例係数設定部１０６で、図８に示す測定曲線の付近に歪み補正後の直線が引かれるような範囲の中で適当な値を設定する。また、３次元上の実格子データ１０８から比例画像データ１１０（レンズ歪みがない場合の画像上の格子点位置）を求め、レンズ歪み中心のずれを補正して中心比例画像データ１１２とする。
【００８５】
即ち、中心画像データ１００と中心比例画像データ１１２の差分を求め、レンズ歪みの関数演算部１１４に入力する。レンズ歪みの関数演算部１１４では各格子点のレンズ歪み中心座標からの距離Ｘｉでの歪み量を求め、それをレンズ歪み中心を通る曲線で中心からの距離Ｘｉの関数ｆ（Ｘｉ）として最小２乗近似して求める。
【００８６】
尚、実際の測定では３次までの近似式でほぼ０．１［ｄｏｔ］以下の近似となって十分な精度が得られること、また４次までの近似式でもあまり近似精度が改善されないことから、この実施の形態では３次までの近似を行う。
【００８７】
次いで、図１０に示す如く、「近い」「遠い」場合の中心画像データ１００，１０２を得られたレンズ歪みの関数ｆ（Ｘｉ）を用いて歪み補正し、歪み補正中心画像データ１１６，１１８とする。
【００８８】
次いで、歪み補正中心画像データ１１６（Ｘｍｉ），１１８（Ｘｎｉ）と実格子データ１０８のレンズ歪み中心を原点とした中心実格子データ１２２（Ｗｉ）を比例係数算出部１２４に入力し、比例係数算出部１２４において「遠い」「近い」場合のそれぞれの比例係数Ａｍ，Ａｎを最小２乗推定して求める。
【００８９】
そして、水平方向の画素のサイズと目標格子からの距離を求める。
【００９０】
即ち、「遠い」の比例係数Ａｍおよび「近い」の比例係数Ａｎの連立方程式１２６から、より具体的には、数６から水平方向の画素サイズＸａ、撮影対象と焦点との間の距離Ｌを算出する。移動距離Ｄは既知であり、またＣＣＤ面と焦点との間の距離Ｆも、Ｘａと従属関係にあるので、固定値で良い。
【００９１】
図１２の説明に戻ると、次いでＳ３４，Ｓ３６に進んで得られた値を出力し、Ｓ３８ないしＳ４６に進んで垂直方向の画素のサイズＹａを決定する。
【００９２】
即ち、仮設定した垂直方向の画素のサイズと計算結果のサイズが、完全にあるいは略一致するまで（Ｓ３８）、垂直方向の画素のサイズを仮設定し、垂直方向の画素のサイズを測定結果から求める（Ｓ４０からＳ４６）。尚、垂直方向の画素サイズの算出に、ここでは「遠い」の画像データを用いる。
【００９３】
この中心画像データを、図１１に符号２００で示す。同様に、垂直方向のレンズ歪み中心を原点とした実格子データを中心実格子データ２０２とする。
【００９４】
レンズ歪み係数は先に得られているが、水平方向の画素Ｘｉの関数となっているので垂直方向の画素Ｙｉの関数に変換する。垂直方向の画素サイズＹａを適宜な値に仮設定し、数８に示すようにそれと水平方向のレンズ歪みの係数から垂直方向の歪みの関数ｇ（Ｙｉ）を求める。求めた垂直方向の歪みの関数ｇ（Ｙｉ）により、中心画像データ２００の歪みを補正して歪み補正中心画像データ２０４とする。
【００９５】
歪み補正中心画像データ２０４と中心実格子データ２０２とから、比例係数算出部２０６において目標格子１８の画像垂直方向座標Ｙｉと３Ｄ上の垂直方向座標Ｗｉの比例係数Ｂｍを最小２乗推定で算出する。
【００９６】
目標格子と焦点との間の距離Ｌは先に得られているので、値Ｌおよび上記で算出したＢｍを用いて方程式２０８、即ち、数９に従って垂直方向の画素のサイズＹａを求める。
【００９７】
【数９】
0003913901.tif 000010
【００９８】
ここで求められるＹａは、先に適宜な値に仮設定したＹａと比較され、一致すると判断されるときのＹａの値を、真の値とする。尚、一致しないと判断されるときは、一致するまで上記したＳ３６からＳ４０までの処理を繰り返す。
【００９９】
続いてＳ４８に進んで上記の如く決定した垂直方向の画素のサイズＹａの値を出力する。
【０１００】
上記の如く、この実施の形態は、少なくともレンズ歪みを含むカメラ１０の内部パラメータを決定する装置であって、既知の格子点パターン１８ａを撮影して得られる画像信号に基づいて前記カメラを移動しつつ前記カメラのレンズ歪み中心を設定するレンズ歪み中心設定手段（処理ユニット２０，Ｓ１４）、前記設定されたレンズ歪み中心に基づいて調整された前記カメラと格子点パターンの位置に基づき、前記カメラの基準位置を設定する基準位置設定手段（処理ユニット２０，１６ｄから１６ｆ，Ｓ１６）、前記基準位置に設定されたカメラから前記格子点を撮影して得られる画像信号をストアする第１の画像信号ストア手段（処理ユニット２０，Ｓ１８）、前記ストアされた画像信号に基づいて格子点の座標を測定してレンズ歪み量を算出する歪み量算出手段（処理ユニット２０，Ｓ２６，Ｓ４２）、前記設定された基準位置から前または後方向に前記カメラを移動し、撮影して得られた複数個の画像信号をストアする第２の画像信号ストア手段（処理ユニット２０，１６ａ，Ｓ２０）、前記算出されたレンズ歪み中心およびレンズ歪み量に基づき、前記ストアされた複数個の画像信号を修正するレンズ歪み修正手段（処理ユニット２０，Ｓ２８，Ｓ４４）、および前記修正された複数個の画像信号に基づいて前記カメラの内部パラメータを決定するパラメータ決定手段（処理ユニット２０，Ｓ３０，Ｓ３２，Ｓ３８，Ｓ４６）を備える如く構成した。
【０１０１】
上記の如く構成したことから、レンズ１２による画像の歪みを補正することで、カメラの内部パラメータを正確に決定することができる。また、構成として簡易である。さらに、カメラの内部パラメータを正確に決定できることで、ワークの位置決め、障害物検知などに用いるときも、精度を向上させることができる。
【０１０２】
尚、上記において、焦点距離Ｆを固定して水平方向の画素のサイズＸａと距離Ｌを求め、次いで垂直方向の画素のサイズＹａを求めたが、水平方向の画素のサイズＸａを固定し、数１０に従って焦点距離Ｆと距離Ｌを求め、垂直方向の画素のサイズＹａを求めても良い。
【０１０３】
【数１０】
0003913901.tif 000011
【０１０４】
さらには、垂直方向の画素のサイズＹａを固定し、数１１に従って焦点距離Ｆと距離Ｌを求め、次いで水平方向の画素のサイズＸａを求めても良い。
【０１０５】
【数１１】
0003913901.tif 000012
【０１０６】
【発明の効果】
請求項１項にあっては、レンズによる画像の歪みを補正することで、内部パラメータを正確に決定することができる。また、構成として簡易である。さらに、内部パラメータを正確に決定することで、ワークの位置決め、障害物検知などに用いるとき、精度を向上させることができる。
【図面の簡単な説明】
【図１】この発明に係るカメラの内部パラメータ決定装置の構成を全体的に示す概略図である。
【図２】図１に示すボード上に表示された格子（撮影対象）を示す説明図である。
【図３】図１に示すカメラをピンホール・カメラでモデル化して示す説明図である。
【図４】図１に示すカメラのレンズの歪みによって画像の歪む状態を示す説明図である。
【図５】図１に示すカメラのレンズによる画像の歪みをモデル化して示すモデル図である。
【図６】図１に示すカメラの前後方向への移動を示す説明図である。
【図７】図１に示すカメラにおいて、歪みのない場合の格子点の３Ｄ上の位置と画像上の位置の関係を表すグラフ図である。
【図８】図１に示すカメラにおいて、レンズによる画像の歪みが加わったときの格子の３Ｄ上の位置と画像上の位置の関係を表すグラフ図である。
【図９】図１に示す装置の動作を示す、レンズ歪み中心位置およびレンズ歪み関数を求める計算手順を示すブロック図である。
【図１０】図１に示す装置の動作を示す、水平方向の画素のサイズおよび撮影対象物から焦点までの間の距離Ｌを求める計算手順を示す、図９に連続するブロック図である。
【図１１】図１に示す装置の動作を示す、垂直方向の画素のサイズを求める計算手順を示す、図９に連続するブロック図である。
【図１２】図１に示す装置の動作を示す、フロー・チャートである。
【符号の説明】
１０  カメラ（ＣＣＤカメラ）
１２  レンズ
１４  カメラ本体
１６  雲台
１８  ボード
２０  処理ユニット
１１４  レンズ歪みの関数演算部
【図１】
0003913901.tif 000013
【図２】
0003913901.tif 000014
【図３】
0003913901.tif 000015
【図４】
0003913901.tif 000016
【図５】
0003913901.tif 000017
【図６】
0003913901.tif 000018
【図７】
0003913901.tif 000019
【図８】
0003913901.tif 000020
【図９】
0003913901.tif 000021
【図１０】
0003913901.tif 000022
【図１１】
0003913901.tif 000023
【図１２】
0003913901.tif 000024