米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 測定; 光学 -> 日本電信電話株式会社

発明の名称 カメラキャリブレーション方法及び装置及びカメラキャリブレーションプログラムを格納した記憶媒体
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2001−264037(P2001−264037A)
公開日 平成13年9月26日(2001.9.26)
出願番号 特願2000−81057(P2000−81057)
出願日 平成12年3月22日(2000.3.22)
代理人 【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
【テーマコード(参考)】
2F065
5B057
【Fターム(参考)】
2F065 AA04 AA17 AA53 EE08 FF04 FF61 JJ03 JJ19 JJ26 QQ03 QQ04 QQ24 QQ28 QQ29 QQ31 QQ32 QQ37 QQ42 
5B057 AA20 BA02 CD12 CD20 CE12 DA20 DB08 DC02 DC14 DC16
発明者 山本 隆二 / 中川 督之 / 杉山 和弘 / 田中 明通 / 木谷 靖
要約 目的


構成
特許請求の範囲
【請求項1】 対象となる計測領域において、該計測領域の3次元位置を求める際に、予め三次元形状が既知なキャリブレーションボードを計測領域に設置し、対象の3次元位置計測のための変換パラメータを導出するカメラキャリブレーション方法において、カメラを用いて対象物を撮影した対象物画像を取込むと共に、キャリブレーションボード画像を入力し、前記キャリブレーションボード画像のコード部分の変形除去及び参照点の画面座標を取得し、投影歪による入力画像のコード部分の変形を除去したコード画像を取得すると共に、参照点の画面座標を取得し、予め入力されたコードパターンと参照点の世界座標情報に基づいて、前記参照点の画面座標と前記参照点の世界座標の対応付けを行い、各参照点の画面座標と世界座標の組のデータを取得し、前記各参照点の画面座標と前記世界座標の組データを用いてカメラ内部のパラメータ計算を行い、前記対象物画像から対象物既知点の画面座標を取得し、予め入力された対象物既知点の模式図と世界座標情報に基づき、対象物既知点の画面座標と世界座標の対応付けを行い、各対象物既知点の画面座標と世界座標の組データを取得し、前記各対象物既知点の画面座標と世界座標の組データを用いてカメラ外部パラメータ計算を行い、対象物未知点の画面座標を取得し、前記対象物未知点の画面座標から前記カメラ内部パラメータと前記カメラ外部パラメータを用いて、画面座標から世界座標への変換を行い、測定すべき対象物未知点の世界座標を取得することを特徴とするカメラキャリブレーション方法。
【請求項2】 対象となる計測領域において、該計測領域の3次元位置を求める際に、予め三次元形状が既知なキャリブレーションボードを計測領域に設置し、対象の3次元位置計測のための変換パラメータを導出するカメラキャリブレーション装置であって、カメラを用いて対象物を撮影した対象物画像を取込むと共に、キャリブレーションボード画像を入力し、該キャリブレーションボード画像のコード部分の変形除去及び参照点の画面座標を取得し、投影歪による入力画像のコード部分の変形を除去したコード画像を取得すると共に、参照点の画面座標を取得する参照点画面座標取得手段と、 予め入力されたコードパターンと参照点の世界座標情報に基づいて、前記参照点の画面座標と、該世界座標情報の世界座標の対応付けを行い、各参照点の画面座標と世界座標の組のデータを取得する参照点対応付け手段と、前記各参照点の画面座標と前記世界座標の組データを用いてカメラ内部のパラメータ計算を行うカメラ内部パラメータ計算手段と、前記対象物画像から対象物既知点の画面座標を取得する対象物既知点画面座標取得手段と、予め入力された対象物既知点の模式図と世界座標情報に基づき、前記対象物既知点の画面座標と世界座標の対応付けを行い、各対象物既知点の画面座標と世界座標の組データを取得する対象物既知点対応付け手段と、前記各対象物既知点の画面座標と世界座標の組データを用いてカメラ外部パラメータ計算を行うカメラ外部パラメータ計算手段と、対象物未知点の画面座標を取得する対象物未知点画面座標取得手段と、前記対象物未知点の画面座標から前記カメラ内部パラメータと前記カメラ外部パラメータを用いて、画面座標から世界座標への変換を行い、測定すべき対象物未知点の世界座標を取得する変換手段とを有することを特徴とするカメラキャリブレーション装置。
【請求項3】 対象となる計測領域において、該計測領域の3次元位置を求める際に、予め三次元形状が既知なキャリブレーションボードを計測領域に設置し、対象の3次元位置計測のための変換パラメータを導出するカメラキャリブレーションプログラムを格納した記憶媒体であって、カメラを用いて対象物を撮影した対象物画像を取り込むと共に、キャリブレーションボード画像を入力し、該キャリブレーションボード画像のコード部分の変形除去及び参照点の画面座標を取得し、投影歪による入力画像のコード部分の変形を除去したコード画像を取得すると共に、参照点の画面座標を取得する参照点画面座標取得プロセスと、予め入力されたコードパターンと参照点の世界座標情報に基づいて、前記参照点の画面座標と、該世界座標情報の世界座標の対応付けを行い、各参照点の画面座標と世界座標の組のデータを取得する参照点対応付けプロセスと、前記各参照点の画面座標と前記世界座標の組データを用いてカメラ内部のパラメータ計算を行うカメラ内部パラメータ計算プロセスと、前記対象物画像から対象物既知点の画面座標を取得する対象物既知点画面座標取得プロセスと、予め入力された対象物既知点の模式図と世界座標情報に基づき、前記対象物既知点の画面座標と世界座標の対応付けを行い、各対象物既知点の画面座標と世界座標の組データを取得する対象物既知点対応付けプロセスと、前記各対象物既知点の画面座標と世界座標の組データを用いてカメラ外部パラメータ計算を行うカメラ外部パラメータ計算プロセスと、対象物未知点の画面座標を取得する対象物未知点画面座標取得プロセスと、前記対象物未知点の画面座標から前記カメラ内部パラメータと前記カメラ外部パラメータを用いて、画面座標から世界座標への変換を行い、測定すべき対象物未知点の世界座標を取得する変換プロセスとを有することを特徴とするカメラキャリブレーションプログラムを格納した記憶媒体。
【請求項4】 参照点画面座標取得プロセスは、二値化処理を行う二値化プロセスと、前記二値化プロセスで取得した二値化画像からコード部分のマスク画像及び、各マスク領域に連続して与えられるラベルとそのマスク領域の重心位置からなるマスク情報を取得するコード部分のマスク画像及びマスク情報取得プロセスと、前記コード部分のマスク画像及びマスク情報に基づいて、キャリブレーションに用いる参照点の選択、及び選択された参照点の画面座標の組である、更新されたマスク情報及び参照点の画面座標を取得する参照点の選択及び、画面座標取得プロセスと、前記二値画像、前記コード部分のマスク画像及びマスク情報及び、前記更新されたマスク情報及び参照点の画面座標に基づいてキャリブレーションのための参照点として用いるマスクのコード部分のみを抽出したコード画像を取得するマスクプロセスと、前記コード画像及び各マスクの4つの参照点の画面座標から射影変換行列を求め、その逆射影変換を行うことで補正したコード画像を取得し、その補正したコード画像と参照点の画面座標データを取得するコード部分の変形除去プロセスとを有する請求項3記載のカメラキャリブレーションプログラムを格納した記憶媒体。
【請求項5】 前記コード部分のマスク画像及びマスク情報取得プロセスは、前記二値画像を読み込むプロセスと、前記コード部分のマスク画像を取得するプロセスと、前記各マスク領域のラベル付けを行うと共に、各マスク領域以外の雑音を除去するプロセスと、ラベル付けされた各マスク領域において、画面上を走査することによりx軸方向、y軸方向への領域の最大値を最小値を求め、マスク領域の重心位置を計算するプロセスとを有する請求項4記載のカメラキャリブレーションプログラムを格納した記憶媒体。
【請求項6】 前記参照点の選択及び、画面座標取得プロセスは、前記コード部分のマスク画像及び前記マスク情報を読み込むプロセスと、前記マスク情報のリストから順次マスクを選択するプロセスと、選択されたマスクの重心位置を前記マスク情報のリストから取得し、コード部分のマスク画像において、選択されたマスク重心位置からy軸方向に順次画素値を走査し、画素値が0から1に変化する輪郭線位置を検出するプロセスと、前記輪郭線位置を起点として、図形を一巡する間に角度変化の大きいコーナーを検出し、参照点の画面座標データとして記録するプロセスと、図形を一巡しないまま画面の端に到達した場合には、前記マスク情報のリストから現在選択されているマスクの情報を削除するプロセスとを有する請求項4記載のカメラキャリブレーションプログラムを格納した記憶媒体。
【請求項7】 前記マスクプロセスは、前記二値画像及び前記コード部分のマスク画像及び前記マスク情報、及び前記更新されたマスク情報及び前記参照点の画像座標を読み込むプロセスと、前記更新されたマスク情報に基づいて、前記コード部分のマスク画像から、キャリブレーションのための参照点として用いるマスク以外のマスク領域を削除するプロセスと、前記更新されたマスク画像と前記二値画像を照合し、画素値が1から0に変化した画素の画素値を0、その他を1とし、コード画像を取得するプロセスとを有する請求項4記載のカメラキャリブレーションプログラムを格納した記憶媒体。
【請求項8】 前記コード部分の変形除去プロセスは、前記コード画像及び前記更新されたマスク情報及び前記参照点の画面座標を読み込むプロセスと、前記更新されたマスク情報のリストから順次マスクを選択するプロセスと、同一平面上の世界座標に単位正方形世界座標を代入し、該単位正方形世界座標に対応する画面座標に、選択されたマスクの参照点の画面座標を代入し、射影変換行列を求めるプロセスと、前記射影変換行列の逆行列を用いて逆射影変換を行い、投影歪を除去したコード画像を取得し、該コード画像に対して必要なスケール変換を行うプロセスとを有する請求項4記載のカメラキャリブレーションプログラムを格納した記憶媒体。
【請求項9】 前記対象物既知点対応付けプロセスは、前記対象物既知点の画面座標及び対象物既知点の模式図と世界座標を読み込むプロセスと、前記対象物既知点の模式図を表示するプロセスと、表示された前記模式図からすでに、前記画面座標の取得時に指定された対象物既知点に対応する模式図上での点を選択し、選択された該点の世界座標を前記組データから読み出して、指定された対象物既知点の画面座標と世界座標の対応付けを行うプロセスとを有する請求項3記載のカメラキャリブレーションプログラムを格納した記憶媒体。
発明の詳細な説明
【0001】
【発明の属する技術分野】本発明は、カメラキャリブレーション方法及び装置及びカメラキャリブレーションプログラムを格納した記憶媒体に係り、特に、対象となる計測領域において、その3次元位置を求める際に、あらからじめ三次元形状が既知なキャリブレーションボードを計測領域に設置することで、対象の3次元位置計測のための変換パラメータの導出を簡便に行うためのカメラキャリブレーション方法及び装置及びカメラキャリブレーションプログラムを格納した記憶媒体に関する。
【0002】
【従来の技術】カメラを用いて対象物の計測を行うためには、予めカメラのキャリブレーションを行っておく必要がある。つまり、画面中での位置と空間中での位置の対応付けを行うためには、カメラの焦点距離、レンズ歪等のカメラ内部パラメータ及び、カメラの位置姿勢であるカメラ外部パラメータを求めておかなくてはならない。
【0003】従来の第1の方法として、カメラのキャリブレーションは、世界座標系内に置かれた座標値が既知の複数の参照点をカメラで撮影し、当該参照点の世界座標値とそれに対応する画面座標値の組を用いて、キャリブレーションアルゴリズムに基づき演算を行うことで達成される。この場合、各参照点の世界座標値と画面座標値の対応付けは、撮影した画像から人間が判断して手動で行うのが一般的である。
【0004】一方、従来の第2の方法として、各参照点の画面座標値と世界座標値との対応付けを、画像処理を用いて自動的に行う方法(特開平4−181106)も提案されている。つまり、互いに異なる形状の図形(例えば、数字、バーコード等)を複数配列したキャリブレーションボードを撮影し、予め教示された図形のテンプレートと世界座標値の組を用い、撮影した画像に対して各図形の画面座標値を計算すると共に、予め教示されたテンプレートとのマッチングを行い、計算した画面座標値に対応する世界座標値を、図形のテンプレートと世界座標値の組から読み出すことで、各参照点の画面座標値と世界座標値との対応付けを行う。
【0005】また、従来の第3の方法として、平面上に分布した参照点を有するキャリブレーションボードを用いてカメラのキャリブレーションを簡便に行う方法が、Roger Y.Tsai等により提案されている(Roger Y.Tsai, "A Versatile Camera Calibration Technique for High-Accuracy 3D Machine Metrology Using Off-the Shelf TV Cameras and Lenses", IEEE J.Robotics and Automation, Vol. RA-3, No4, pp.323-344, 1987)。この方法では、平面上に参照点を複数配置したキャリブレーションボードを斜めから撮影し、各参照点の世界座標値と画面座標値の組からカメラパラメータを決定している。
【0006】
【発明が解決しようとする課題】しかしながら、上記従来の第1の方法では、入力画面中の各参照点のイメージ座標系における座標値とワールド座標系における座標値の対応を、人手によりとる必要があり、キャリブレーションの精度を高めるためには多数の参照点を用いる必要があるため、作業者にかかる負担が大きくなるという問題点と、対応付けの間違いを起こしやすいという問題がある。
【0007】予め教示された図形のテンプレートと世界座標値の組を用いる従来の第2の方法では、前述の第1の情報で生じた問題は起こらない。各図形の配列情報と入力画像とのマッチングにより、自動的に各図形の画面座標値と世界座標値の対応を取る。しかしながら、カメラを用いてキャリブレーションボードを撮影する場合、キャリブレーションボードとカメラの撮像面が傾いていると、キャリブレーションボード上に複数配列された図形は、入力画像中では投影により歪んで写る(以降、投影歪と記す)。そのため、キャリブレーションボードとカメラの撮像面を傾けて撮影した場合には、入力画像中の各参照点の画面座標値との対応付けを自動的に行えないという問題がある。
【0008】さらに、従来の第3の方法である平面上に分布した参照点を有するキャリブレーションボードを用いてカメラのキャリブレーションを行うTsaiらの方法では、キャリブレーションボードとカメラの撮像面を平行に近い状態で配置すると測定精度が悪くなるため、キャリブレーションボードとカメラの撮像面を斜めに傾けて撮影する必要がある。
【0009】本発明は、上記の点に鑑みなされたもので、キャリブレーションボードとカメラの撮像面を斜めに傾けて撮影した場合においても、入力画像中の各参照点の画面座標値と世界座標値との対応付けを自動的に行い、カメラのキャリブレーションを高精度に行うことが可能なカメラキャリブレーション方法及び装置及びカメラキャリブレーションプログラムを格納した記憶媒体を提供することを目的とする。
【0010】
【課題を解決するための手段】図1は、本発明の原理を説明するための図である。
【0011】本発明(請求項1)は、対象となる計測領域において、該計測領域の3次元位置を求める際に、予め三次元形状が既知なキャリブレーションボードを計測領域に設置し、対象の3次元位置計測のための変換パラメータを導出するカメラキャリブレーション方法において、カメラを用いて対象物を撮影した対象物画像を取込むと共に、キャリブレーションボード画像を入力し(ステップ1)、キャリブレーションボード画像のコード部分の変形除去及び参照点の画面座標を取得し、投影歪による入力画像のコード部分の変形を除去したコード画像を取得すると共に、参照点の画面座標を取得し(ステップ2)、予め入力されたコードパターンと参照点の世界座標情報に基づいて、参照点の画面座標と参照点の世界座標の対応付けを行い、各参照点の画面座標と世界座標の組のデータを取得し(ステップ3)、各参照点の画面座標と世界座標の組データを用いてカメラ内部のパラメータ計算を行い(ステップ4)、対象物を撮影し(ステップ5)、対象物画像を取得から対象物既知点の画面座標を取得し(ステップ6)、予め入力された対象物既知点の模式図と世界座標情報に基づき、対象物既知点の画面座標と世界座標の対応付けを行い、各対象物既知点の画面座標と世界座標の組データを取得し(ステップ7)各対象物既知点の画面座標と世界座標の組データを用いてカメラ外部パラメータ計算を行い(ステップ8)、対象物未知点の画面座標を取得し(ステップ9)、対象物未知点の画面座標からカメラ内部パラメータとカメラ外部パラメータを用いて、画面座標から世界座標への変換を行い、測定すべき対象物未知点の世界座標を取得する(ステップ10)。
【0012】図2は、本発明の原理構成図である。
【0013】本発明(請求項2)は、対象となる計測領域において、該計測領域の3次元位置を求める際に、予め三次元形状が既知なキャリブレーションボードを計測領域に設置し、対象の3次元位置計測のための変換パラメータを導出するカメラキャリブレーション装置であって、カメラ101を用いて対象物を撮影した対象物画像を取り込むと共に、キャリブレーションボード画像を入力し、該キャリブレーションボード画像のコード部分の変形除去及び参照点の画面座標を取得し、投影歪による入力画像のコード部分の変形を除去したコード画像を取得すると共に、参照点の画面座標を取得する参照点画面座標取得手段303と、予め入力されたコードパターンと参照点の世界座標情報に基づいて、参照点の画面座標と、該世界座標情報の世界座標の対応付けを行い、各参照点の画面座標と世界座標の組のデータを取得する参照点対応付け手段306と、各参照点の画面座標と世界座標の組データを用いてカメラ内部のパラメータ計算を行うカメラ内部パラメータ計算手段308と、対象物画像から対象物既知点の画面座標を取得する対象物既知点画面座標取得手段312と、予め入力された対象物既知点の模式図と世界座標情報に基づき、対象物既知点の画面座標と世界座標の対応付けを行い、各対象物既知点の画面座標と世界座標の組データを取得する対象物既知点対応付け手段315と、各対象物既知点の画面座標と世界座標の組データを用いてカメラ外部パラメータ計算を行うカメラ外部パラメータ計算手段318と、対象物未知点の画面座標を取得する対象物未知点画面座標取得手段320と、対象物未知点の画面座標からカメラ内部パラメータとカメラ外部パラメータを用いて、画面座標から世界座標への変換を行い、測定すべき対象物未知点の世界座標を取得する変換手段322とを有する。
【0014】本発明(請求項3)は、対象となる計測領域において、該計測領域の3次元位置を求める際に、予め三次元形状が既知なキャリブレーションボードを計測領域に設置し、対象の3次元位置計測のための変換パラメータを導出するカメラキャリブレーションプログラムを格納した記憶媒体であって、カメラを用いて対象物の画像を取込み、コード部分の変形除去及び参照点の画面座標を取得し、投影歪による入力画像のコード部分の変形を除去したコード画像を取得すると共に、参照点の画面座標を取得する参照点画面座標取得プロセスと、予め入力されたコードパターンと参照点の世界座標情報に基づいて、参照点の画面座標と、該世界座標情報の世界座標の対応付けを行い、各参照点の画面座標と世界座標の組のデータを取得する参照点対応付けプロセスと、各参照点の画面座標と世界座標の組データを用いてカメラ内部のパラメータ計算を行うカメラ内部パラメータ計算プロセスと、対象物画像から対象物既知点の画面座標を取得する対象物既知点画面座標取得プロセスと、予め入力された対象物既知点の模式図と世界座標情報に基づき、対象物既知点の画面座標と世界座標の対応付けを行い、各対象物既知点の画面座標と世界座標の組データを取得する対象物既知点対応付けプロセスと、各対象物既知点の画面座標と世界座標の組データを用いてカメラ外部パラメータ計算を行うカメラ外部パラメータ計算プロセスと、対象物未知点の画面座標を取得する対象物未知点画面座標取得プロセスと、対象物未知点の画面座標からカメラ内部パラメータとカメラ外部パラメータを用いて、画面座標から世界座標への変換を行い、測定すべき対象物未知点の世界座標を取得する変換プロセスとを有する。
【0015】本発明(請求項4)は、参照点画面座標取得プロセスにおいて、二値化処理を行う二値化プロセスと、二値化プロセスで取得した二値化画像からコード部分のマスク画像及び、各マスク領域に連続して与えられるラベルとそのマスク領域の重心位置からなるマスク情報を取得するコード部分のマスク画像及びマスク情報取得プロセスと、コード部分のマスク画像及びマスク情報に基づいて、キャリブレーションに用いる参照点の選択、及び選択された参照点の画面座標の組である、更新されたマスク情報及び参照点の画面座標を取得する参照点の選択及び、画面座標取得プロセスと、二値画像、コード部分のマスク画像及びマスク情報及び、更新されたマスク情報及び参照点の画面座標に基づいてキャリブレーションのための参照点として用いるマスクのコード部分のみを抽出したコード画像を取得するマスクプロセスと、コード画像及び各マスクの4つの参照点の画面座標から射影変換行列を求め、その逆射影変換を行うことで補正したコード画像を取得し、その補正したコード画像と参照点の画面座標データを取得するコード部分の変形除去プロセスとを有する。
【0016】本発明(請求項5)は、コード部分のマスク画像及びマスク情報取得プロセスにおいて、二値画像を読み込むプロセスと、コード部分のマスク画像を取得するプロセスと、各マスク領域のラベル付けを行うと共に、各マスク領域以外の雑音を除去するプロセスと、ラベル付けされた各マスク領域において、画面上を走査することによりx軸方向、y軸方向への領域の最大値を最小値を求め、マスク領域の重心位置を計算するプロセスとを有する。
【0017】本発明(請求項6)は、参照点の選択及び、画面座標取得プロセスにおいて、コード部分のマスク画像及びマスク情報を読み込むプロセスと、マスク情報のリストから順次マスクを選択するプロセスと、選択されたマスクの重心位置をマスク情報のリストから取得し、コード部分のマスク画像において、選択されたマスク重心位置からy軸方向に順次画素値を走査し、画素値が0から1に変化する輪郭線位置を検出するプロセスと、輪郭線位置を起点として、図形を一巡する間に角度変化の大きいコーナーを検出し、参照点の画面座標データとして記録するプロセスと、図形を一巡しないまま画面の端に到達した場合には、マスク情報のリストから現在選択されているマスクの情報を削除するプロセスとを有する。
【0018】本発明(請求項7)は、マスクプロセスにおいて、二値画像及びコード部分のマスク画像及びマスク情報、及び更新されたマスク情報及び参照点の画像座標を読み込むプロセスと、更新されたマスク情報に基づいて、コード部分のマスク画像から、キャリブレーションのための参照点として用いるマスク以外のマスク領域を削除するプロセスと、更新されたマスク画像と二値画像を照合し、画素値が1から0に変化した画素の画素値を0、その他を1とし、コード画像を取得するプロセスとを有する。
【0019】本発明(請求項8)は、コード部分の変形除去プロセスにおいて、コード画像及び更新されたマスク情報及び参照点の画面座標を読み込むプロセスと、更新されたマスク情報のリストから順次マスクを選択するプロセスと、同一平面上の世界座標に単位正方形世界座標を代入し、該単位正方形世界座標に対応する画面座標に、選択されたマスクの参照点の画面座標を代入し、射影変換行列を求めるプロセスと、射影変換行列の逆行列を用いて逆射影変換を行い、投影歪を除去したコード画像を取得し、該コード画像に対して必要なスケール変換を行うプロセスとを有する。
【0020】本発明(請求項9)は、対象物既知点対応付けプロセスにおいて、対象物既知点の画面座標及び対象物既知点の模式図と世界座標を読み込むプロセスと、対象物既知点の模式図を表示するプロセスと、表示された模式図からすでに、画面座標の取得時に指定された対象物既知点に対応する模式図上での点を選択し、選択された該点の世界座標を組データから読み出して、指定された対象物既知点の画面座標と世界座標の対応付けを行うプロセスとを有する。
【0021】上記のように、本発明では、コードパターンと参照点の世界座標情報、コード部分の変形除去及び参照点の画面座標獲得の処理、参照点の画面座標と世界座標の対応付けの処理を行い、撮像手段(カメラ)によるコード部分の変形を除去しながら、入力画像中のコードとコードパターンとのマッチングを行い、コードパターンの参照点の世界座標情報から参照点のコードに対応する世界座標値を自動的に取得することが可能であるため、キャリブレーションボードとカメラの撮像面を斜めに傾けて撮影した場合においても、入力画像中の各参照点の画面座標値と世界座標値との対応付けを自動的に行い、高精度なカメラキャリブレーションを行うことが可能となる。
【0022】
【発明の実施の形態】図3は、本発明のカメラキャリブレーション装置の構成を示す。同図に示すカメラキャリブレーション装置104は、カメラ101と接続されている。
【0023】カメラキャリブレーション装置104は、画像取込装置105、フレームメモリ106、演算装置107、表示装置108、データ入力装置109、データ出力装置110から構成される。
【0024】同図において、撮像手段であるカメラ101の視野内に、互いに異なる形状のコードを複数配列したキャリブレーションボード102と測定する対象物103の全て、もしくは、一部分が入るように配置し、画像取込装置105によりキャリブレーションボード102及び対象物103の画像を取得し、フレームメモリ106に記憶する。フレームメモリ106に記憶された画像は、演算装置107に入力される。この演算装置107において、データ入力装置108により予め入力された情報及び表示装置108からの情報をもとに、カメラ内部パラメータ及び外部パラメータを計算する。
【0025】さらに、このカメラ内部パラメータ及び外部パラメータを用いて、対象物103の未知点の世界座標値を算出し、データ出力装置109により算出結果を出力する。
【0026】図4は、本発明の動作の概要を説明するための図である。
【0027】まず、カメラ101からキャリブレーンボード102及び、対象物103の画像を取り込む(ステップ101)。カメラ内部のパラメータを求めるために、キャリブレーションボード画像が入力されると(ステップ102)、コード部分の変形除去及び参照点の画面座標を取得し、投影歪による入力画像のコード部分の変形を除去したコード画像を取得すると共に、参照点の画面座標を取得する(ステップ103)。
【0028】そして、予め入力されたコードパターンと参照点の世界座標情報に基づいて、参照点の画面座標と世界座標の対応付けを行い、各参照点の画面座標と世界座標の組のデータを得る(ステップ104)。
【0029】さらに、この各参照点の画面座標と世界座標の組データを用いてカメラ内部のパラメータ計算を行い(ステップ105)、カメラの内部のパラメータを取得する(ステップ106)。
【0030】次に、カメラの外部パラメータを求めるために、対象物画像が入力されると(ステップ107)、対象物既知点の画面座標を取得する(ステップ108)。そして、予め入力された対象物既知点の模式図と世界座標情報に基づき、対象物既知点の画面座標と世界座標の対応付けを行い、各対象物既知点の画面座標と世界座標の組データを得る(ステップ109)。
【0031】さらに、この各対象物既知点の画面座標と世界座標の組データを用いてカメラ外部パラメータ計算を行い(ステップ110)、カメラの外部パラメータを取得する(ステップ111)。
【0032】さらに、対象物未知点の画面座標を取得し(ステップ112)、このとき得られた測定すべき対象物未知点の画面座標からその世界座標を求めるために、以上の処理で求めたカメラの内部パラメータと外部パラメータを使い、画面座標から世界座標への変換を行い(ステップ113)、測定すべき対象物未知点の世界座標を得る(ステップ114)。
【0033】
【実施例】以下、図面と共に本発明の実施例を説明する。
【0034】図5は、本発明の一実施例のカメラキャリブレーション装置の構成を示す。
【0035】同図に示すカメラキャリブレーション装置は、画像取込部301、参照点画面座標取得部303、参照点対応付け部306、カメラ内部パラメータ計算部308、対象物既知点画面座標取得部312、対象物既知点対応付け部315、カメラ外部パラメータ計算部318、対象物未知点画面座標取得部320、及び変換部322から構成される。
【0036】当該カメラキャリブレーション装置の入力として、カメラ101から参照点画面座標取得部303にキャリブレーションボード画像302が、対象物既知点画面座標取得部312と対象部未知点画面座標取得部320に対象物画像311が、それぞれ入力される。また、予め、コードパターンと参照点の世界座標305及び対象物既知点の模式図と世界座標314が入力される。
【0037】当該カメラキャリブレーション装置の出力として、変換部322から対象物未知点の世界座標323が出力される。
【0038】図6、図7は、本発明の一実施例のカメラキャリブレーション処理のフローチャートである。
【0039】[ステップ201] まず、画像取込部301は、図8に示すように黒く塗りつぶした正方形のブロック内に互いに異なる形状のコードを書き込んだもの(ここでは、数字の1〜9を用いているが、互いに異なる形状のコードであれば何でもよい)を複数配列したキャリブレーションボード102に対して、撮影手段であるカメラ101を斜めに傾けて撮影する。
【0040】[ステップ202] 参照点画面座標取得部303は、画像取込部301で撮影されたキャリブレーションボード画像302を取得する。このように、キャリブレーションボード102とカメラ101の撮影面を斜めに傾けて撮影した場合、キャリブレーションボード画像302は、図9に示すように、投影歪によりコード部分が変形した画像になる。ここで、本実施例では、キャリブレーションボードの参照点として、正方形のブロックの角の点を用いる。
【0041】コード部分の変形除去及び参照点の画面座標取得を行う参照点画面座標取得部303では、キャリブレーションボード撮影を行ったカメラ101からのキャリブレーションボード画像302を入力とし、投影歪によるコード部分の変形を除去すると共に、参照点の画面座標を取得し、補正したコード画像と参照点の画面座標304を出力する。
【0042】ここで、コード部分の変形除去及び参照点の画面座標の取得の動作を説明する。
【0043】図10は、本発明の一実施例の参照点画面座標取得部の動作を示すフローチャートである。同図において、左側に処理を行うための入力データを示し、右側には処理により出力されるデータを示す。
【0044】・図10−ステップ402) 最初に二値化処理では、キャリブレーションボード画像302を入力とし、図8における正方形のブロック部分の画素値が“0”、コード部分及びその他の背景部分の画素値が“1”の値を持つように二値化処理を行い、二値画像403を出力する。ここで、二値化処理の方法としては、例えば、判別分析法(谷内田正彦:コンピュータビション、pp.60-61, 丸善、1990)等を用いる。
【0045】・図10−ステップ404) コード部分のマスク画像及びマスク情報取得処理では、二値化処理(ステップ402)で得られた、二値画像403を入力とし、図11に示すような正方形のブロック内のコード部分を塗りつぶした画像であるコード部分のマスク画像及び、各マスク領域に連続して与えられるラベルとそのマスク領域の重心位置からなるマスク情報を出力する。ここで、図11の黒い部分の画素値は“0”、白い部分の画素値は“1”である。
【0046】ここで、コード部分のマスク画像及びマスク情報取得処理について詳細に説明する。図12は、本発明の一実施例のコード部分のマスク画像及びマスク情報取得処理のフローチャートである。
【0047】ステップ502) 二値画像読み込み処理では、二値画像403をメモリ上に読み込む。
【0048】ステップ503) 穴埋め処理では、例えば、膨張収縮処理(谷内田正彦:コンピュータビション、pp.82-82, 丸善、1990)等を用いて、コード部分のマスク画像を得る。
【0049】ステップ504) ラベリング処理では、例えば、ラベリング処理(谷内田正彦:コンピュータビション、pp.82-82, 丸善、1990)等を用いて、各マスク領域のラベル付けを行うと共に、各マスク領域以外の小さな領域(雑音)を除去する。マスク領域か否かの判別方法としては、事前にマスク領域の最低画素数を指定しておき、それより小さな領域を雑音として除去する。
【0050】ステップ505) マスク領域の重心位置計算処理では、ラベル付けされた各マスク領域において、画像上を順次走査することで、x軸方向への領域の最大値x_maxと最小値x_min及び、y軸方向への領域の最大値y_maxと最小値y_minを求め、以下の数式(1)を用いて、マスク領域の重心位置(x_center,y_center)をそれぞれ計算する。
【0051】
【数1】

ステップ506) コード部分のマスク画像及びマスク情報出力処理では、以上の処理で求めたコード部分のマスク画像とマスク領域のラベル及び重心位置からなるマスク情報405を次の処理のステップに出力する。
【0052】・図10−ステップ406) 参照点の選択及び画面座標取得処理では、前段の処理で得られたコード部分のマスク画像及びマスク情報405を入力とし、キャリブレーションに用いる参照点の選択及び選択された参照点の画面座標を取得し、図13のようなキャリブレーションに用いる参照点として選択されたマスク情報及びその参照点の画面座標の組である、更新されたマスク情報及び参照点の画面座標407を出力する。
【0053】ここで、上記の参照点の選択及び画面座標取得処理(ステップ406)の動作を詳細に説明する。図14は、本発明の一実施例の参照点の選択及び画面座標取得処理のフローチャートである。
【0054】ステップ602) コード部分のマスク画像及びマスク情報読み込み処理として、前段の処理で得られたコード部分のマスク画像及びマスク情報405をメモリ上に読み込む。
【0055】ステップ603) マスク選択処理として、マスク情報のリストから順次マスクを選択する。
【0056】ステップ604) 輪郭線検出処理として、マスク選択処理(ステップ603)により選択されたマスクの重心位置(x_center, y _center) をマスク情報のリストから取得し、コード部分のマスク画像において、選択されたマスクの重心位置からy軸方向に順次画素値を走査(x_center, y _center+1) していき、画素値が“0”から“1”に変化する場所を取得する。
【0057】ステップ605) コーナー検出処理では、輪郭線検出処理(ステップ604)により得られたマスクの輪郭線位置を起点にして、マスクの周辺部を時計回りに追跡する。そして、図形の周囲を一巡する間に角度変化の大きいコーナーを見つけ出す。コーナーの検出の方法としては、例えば、コーナー検出と隣接コーナーの識別処理(高野英彦:形状パターンの認識技術,pp.32-33, 情報調査会,1984)等を用いる。
【0058】ステップ606) ここで、コーナー検出の追跡の際に、画面の端に到達した場合は、ステップ607に移行する。画面の端に到達したか否かの判定は、マスクの周辺部の追跡の際に、x座標もしくはy座標が入力画像の最大座標もしくは最小座標に到達したか否かにより判別できる。到達していない場合には、ステップ608に移行する。
【0059】ステップ607) コーナー検出の追跡の際に、画面の端に到達した場合は、そのマスクをキャリブレーションのための参照点として用いないため、マスク情報からの削除処理により、マスク情報のリストから現在選択されているマスクの情報を削除し、ステップ609に移行する。
【0060】ステップ608) コーナー検出の追跡の際に、画面の端に到達していない場合は、参照点の画面座標記録処理を行う。これは、コーナー検出処理(ステップ605)の際にすでに検出された4つのコーナーの画面座標値を検出された順番にメモリ上に記憶しておく。
【0061】ステップ609) 以上のマスク選択処理(ステップ603)、輪郭線検出処理(ステップ604)、コーナー検出処理(ステップ605)、参照点の画面座標記録処理(ステップ608)及びマスク情報からの削除処理(ステップ607)をマスク情報リストの全てのマスクについて行う。
【0062】ステップ610) 更新されたマスク情報及び参照点の画面座標出力処理として、以上の処理によって得られた、更新されたマスク情報及び参照点の画面座標データ407を出力する。
【0063】・図10−ステップ408) 二値画像403、コード部分のマスク画像及びマスク情報405、更新されたマスク情報及び参照点の画面座標407を入力とし、図15に示すようなキャリブレーションのための参照点として用いるマスクのコード部分のみを抽出したコード画像409を出力する。ここで、マスク処理について詳細に説明する。
【0064】図16は、本発明の一実施例のマスク処理のフローチャートである。
【0065】ステップ702) 二値画像読み込み処理では、二値画像403をメモリ上に読み込む。
【0066】ステップ704) コード部分のマスク画像読み込み処理では、コード部分のマスク画像及びマスク情報405をメモリ上に読み込む。
【0067】ステップ706) 更新されたマスク情報読み込み処理では、メモリ上に更新されたマスク情報及び参照点の画像座標を読み込む。
【0068】ステップ707) マスク画像更新処理では、更新されたマスク情報に基づいて、コード部分のマスク画像から、キャリブレーションのための参照点として用いるマスク以外のマスク領域を削除する。具体的には、更新されたマスク情報にないマスク領域の画素値を“1”にする。
【0069】ステップ708) コード画像抽出処理では、二値画像とマスク画像更新処理(ステップ707)により更新されたマスク画像を照らし合わせ、画素値が“1”から“0”に変化した画素の画素値を“0”、その他の画素値を“1”とすることでコード画像409を出力する。
【0070】・図10−ステップ410) コード部分の変形除去処理として、更新されたマスク情報及び参照点の画面座標407と前段のマスク処理(ステップ408)により生成されたコード画像409を入力とし、図17(a)に示すようなコード画像及び各マスクの4つの参照点の画面座標(U0,V0),(U1,V1),(U2,V2),(U3,V3)から射影変換行列を求め、その逆射影変換を行うことで図17(b)に示すような補正したコード画像を取得し、その補正したコード画像と参照点の画面座標データ304を出力する。
【0071】ステップ410における当該コード部分の変形除去処理について詳細に説明する。
【0072】図18は、本発明の一実施例のコード部分の変形除去処理のフローチャートである。
【0073】ステップ802) コード画像読み込み処理では、メモリ上にコード画像409を読み込む。
【0074】ステップ804) 更新されたマスク情報及び参照点の画面座標読み込み処理では、メモリ上に更新されたマスク情報及び参照点の画面座標を読み込む。
【0075】ステップ805) マスク選択処理では、更新されたマスク情報のリストから順次マスクを選択する。
【0076】ステップ806) 射影変換行列の計算処理では、以下の式で表される3×3の射影変換行列Mqtを計算する。
【0077】
qMqt=wt t (2)
上記の式(2)で、qは同一平面上の世界座標を表す斉次座標、tはそれに対応する画面座標の斉次座標、wt は斉次座標のための変数を示す。
【0078】ここで、同一平面上の世界座標qに単位正方形世界座標(0,0),(1,0),(1,1),(0,1)を代入し、それに対応する画面座標tにマスク選択処理(ステップ805)により選択されたマスクの4つの参照点の画面座標(U0,V0),(U1,V1),(U2,V2),(U3,V3)を代入することで、射影変換行列Mqtを求めることができる。この計算方法は、例えば、Heckbertによる解法(Jim Blinn's Corner: IEEE Computer Graphics and Applicationsjournal, pp.93-98, May/June 1999)等を用いる。ここでは、世界座標として相対的な座標値(0,0),(1,0),(1,1),(0,1)を用いることにより、簡潔に射影変換行列を求めている。
【0079】ステップ807) 画像補正処理として、前段で求めた射影変換行列の逆行列M-1qtを用いて、以下の式による逆射影変換を行う。
【0080】
【数2】

上記(3)式の(X,Y)は、逆射影変換により投影歪を除去した座標値、(U,V)は画面上の座標値、wは斉次行列のための変数を表す。ここで、(3)式の下式を変形し、上式に代入すると、 [X Y 1]=[wU wV w]M-1qt (4)
さらに、両辺をwで割ると、【0081】
【数3】

上記の(5)式の(U,V)に、選択されているマスク領域の画面座標をそれぞれ代入し、投影歪を除去した座標値(X,Y)を得る。そして、画面座標(U,V)に対応するコード画像401上の画素値を座標値(X,Y)に代入することで投影歪を除去したコード画像を得る。しかし、このままでは、単位正方形世界座標への射影であるので、図17(b)のような100×100の画像(画像の大きさは予め入力されるコードパターンの大きさと同じであればよい)に変換するためには、スケール変換を行う必要がある。スケール変換は、以下のような式を用いることで行うことができる。
【0082】
【数4】

ここで、(X* ,Y* )は、スケール変換した座標値(X,Y)は単位正方形世界座標値、Sx ,Sy はスケール変換の倍率である。図17(b)のような100×100の画像に補正したコード画像を生成するためには、Sx ,Sy とも100とする。以上の処理を更新されたマスク情報のリストすべてのマスクについて行い、補正したコード画像と参照点の画面座標の組304を出力する。
【0083】これまでの処理で、図17(b)のような100×100の画像に補正されたコード画像とその参照点の画面座標の組のデータ304が得られた また、図19のようなコード部分の画素値が“0”、その他の背景領域の画素値が“1”である100×100の大きさのコードパターン画像(画像の大きさは補正したコード画像の大きさと同じであればよい)と参照点の世界座標(参照点の選択及び画面座標取得処理で取得した4つの参照点の画面座標と同じ順番が記録されているものとする)の組のデータ305が、予めデータ入力装置から入力される。ここで、コードパターン画像と参照点の世界座標の組のデータは、キャリブレーションボード102上のすべてのコードに対して用意しておく必要がある。本実施例では、数字1から9までのコードパターン画像とそれに対応する参照点の世界座標(図8における正方形の四つの角の点のキャリブレーションボード上での世界座標)の組を用意しておく。参照点の世界座標は、例えば、図8において、“1”のコードが書き込まれた正方形のブロックの左上を原点とし、それを基準として実際にx軸、y軸方向の距離を計ることで求める。
【0084】[ステップ203] 参照点対応付け部306では、上記の2つの組のデータ(補正したコード画像と参照点の画面座標304と、コードパターンと参照点の世界座標305)を入力とし、各補正したコード画像に対して、順次数字1から9までのコードパタン画像との相関値を求め、相関値が最も大きい数字のコードパターンの参照点の世界座標と、補正したコード画像の参照点の画面座標を順番にそれぞれ対応付ける。この処理を補正したコード画像すべてについて行うことで、キャリブレーションに用いる参照点のキャリブレーションデータ307の取得を自動的に行う。ここで、補正したコード画像とコードパターン画像との相関値の算出方法は、例えば、以下のような式を用いる。
【0085】
【数5】

上記の式(7)において、p1(x,y)は、補正したコード画像の座標(x,y)における画素値、p2(x,y)は、コードパターン画像の座標(x,y)における画素値を表す。式(7)では、p1(x,y)とp2(x,y)論理演算NORを行い、コード部分(画素値は“0”)がマッチングしている画素の数をカウントし、相関値としている。相関値の算出方法としては、特に指定するものではなく、別の方法を用いてもよい。また、論理演算NORは、以下のように定義される。
【0086】
【表1】

[ステップ204] カメラ内部パラメータ計算部308は、参照点対応付け部306で得られた参照点のキャリブレーションデータ307を入力とし、カメラキャリブレーションアルゴリズムを用いて、焦点距離、レンズ歪等のカメラ内部パラメータ309を計算する。カメラキャリブレーションアルゴリズムとしては、例えば、従来の技術の項で述べたTsaiの方法を用いる。Tsaiの方法では、カメラ内部パラメータとカメラ外部パラメータを分けて計算することができるため、ここでは、カメラ内部パラメータのみを取得し、測定対象103とカメラ101との位置関係を表すカメラ外部パラメータは後述のカメラ外部パラメータ計算部318で取得する。以下、簡単にTsaiのカメラキャリブレーション方法について説明する。
【0087】図20は、本発明の一実施例のカメラモデルを示す。同図において、点Pが存在する世界座標系Ow内にカメラを基準とした座標系Ocが存在している。このとき、点PをOwから見た座標値(xw,yw,zw)と、Ocから見た座標値(x,y,z)で表すと、その関係は以下の式で表される。
【0088】
【数6】

ここで、R,Tは、それぞれOwからOcへの回転行列、並進ベクトルであり、カメラ外部パラメータである。R,Tはそれぞれ以下のように表される。
【0089】
【数7】

次に、透視変換により点PをOcから焦点距離fだけ離れてz軸に垂直な画像座標Oiに投影したときの、(x,y,z)とOi上での点Pの観測点(Xu、Yu)との関係は以下の式で表される。ここで、焦点距離fは、カメラ内部パラメータの1つである。
【0090】
【数8】

撮像手段であるカメラのレンズには歪があり、実際には(Xd,Yd)へ投影される。そこで、理想的な観測点(Xu,Yu)と実際の観測点(Xd,Yd)との関係は、レンズ歪の量(Dx,Dy)を用いて以下の式で表される。
【0091】
Xd+Dx=Xu Yd+Dy=Yu (11)
ここで、Tsaiの方法では、レンズ歪の量(Dx,Dy)を以下のような式を用いて求めている。k1 ,k2 はレンズ歪係数を示し、カメラ内部パラメータの1つである。
【0092】
【数9】

さらに、画像取込装置内のA/Dコンバータにより量子化され、画面座標系Of上での点(Xf,Yf)へ変換される。このとき、(Xf,Yf)と(Xd,Yd)との関係は、以下の式で表される。
【0093】ここで、Cx、Cyは、それぞれ画面座標系Ofにおける画像の中心位置、dx、dyは、それぞれX軸、Y軸方向のカメラの隣接センサ素子間隔、sx は、Fcをカメラの水平駆動周波数Ffを画像処理装置のA/Dコンバータの周波数とすると、sx =Fc/Ffで表される値を示し、カメラのカタログ等から取得する。
【0094】以上の関係式から、先に求めた参照点のキャリブレーションデータ307をもとに、最小2乗法などを用いてカメラの内部パラメータ及び外部パラメータを求めることができる。
【0095】[ステップ205] 図21のような測定すべき対象物に対して、カメラ101を斜めに傾けて撮影し、対象物画像311を取得する。ここで、対象物としては、測定すべき世界座標が平面上にあるものを用いる。対象物画像の例を図22に示す。
【0096】[ステップ206] 対象物既知点画像座標取得部312では、前段で取得した対象物画像311を入力し、測定すべき対象物の世界座標が予め既知点(ここでは、対象物既知点と呼ぶ。例えば、図21のラインの交点のようなものである)を指定し、その点の画面座標を取得する。対象物既知点の指定方法としては、例えば、マウス等のポインティングデバイスを用いて図22の矢印のように人が指定し、指定された画素の画面座標値をフレームメモリから読み出すことで、指定された対象物既知点の画面座標313を取得する。
【0097】[ステップ207] 対象物既知点対応付け部315では、通常測定すべき対象物に対応付けのための基準となるコードを書き込むことができないため、図23のような対象物既知点の模式図とそれに対応する世界座標値の組データ314を用いる。ここで、対象物既知点対応付け部315の動作を詳細に説明する。
【0098】図24は、本発明の一実施例の対象物既知点対応付け部の動作のフローチャートである。
【0099】ステップ902) まず、前段で取得した対象物既知点の画面座標313をメモリ上に読み込む。
【0100】ステップ904) 予めデータ入力装置109により入力される対象物 既知点の模式図と世界座標314をメモリ上に読み込む。
【0101】ステップ905) 次に、対象物既知点の模式図を表示装置108等の画面上に表示する。
【0102】ステップ906) 表示された模式図からすでに画面座標の取得時に指定された対象物既知点に対応する模式図上での点を選択し、その点の世界座標を上記の組データ314から読み出すことにより、指定された対象物既知点の画面座標と世界座標の対応付けを行う。対象物既知点の模式図上の点の選択方法としては、前段での処理と同じく、マウス等のポインティングデバイスを引いて図23の矢印のように人が指定する。
【0103】ステップ907) 以上の処理により対応付けを行った対象物既知点のキャリブレーションデタータ316を出力する。
【0104】[ステップ208] 対象物既知点画面座標取得部312及び、対象物既知点対応付け部315を対象物画像311に写っている対象物既知点の全てについて繰り返し行うことで、対象物非点のキャリブレーションデータ316を取得する。
【0105】[ステップ209] カメラ外部パラメータ計算部318は、これまでの処理で得られた対象物既知点のキャリブレーションデータ316とカメラ内部パラメータ309を入力とし、カメラキャリブレーションアルゴリズムを用いて、測定対象とカメラとの位置関係を表すカメラ外部パラメータ319を計算する。カメラキャリブレーションアルゴリズムには、例えば、カメラ内部パラメータ計算部308と同じくTsaiの方法を用いる。Tsaiの方法については、既に前述のカメラ内部パラメータ計算部309の項で説明した通りである。
【0106】[ステップ210] 対象物未知点画面座標取得部320は、測定すべき世界座標未知点の画面座標を取得する。つまり、対象物画像311を入力とし、その入力画像において、世界座標を測定する点を指定し、その点に対応する画面座標をフレームメモリから読み出すことにより、対象物未知点の画面座標321を取得する。入力画像において3次元位置を測定する点の指定方法としては、例えば、画面上に入力画像を表示し、マウス等のポインティングデバイスを用いて人が指定する。
【0107】[ステップ211] 変換部322では、すでに求めたカメラ内部パラメータ(f,k1 ,k2 )とカメラ外部パラメータ(R,T)を使って、前段で指定した対象物未知点の画面座標321に対応する対象物未知点の世界座標323を計算する。
【0108】ここで、画面座標から世界座標への変換は、式(8)から式(13)における変換の逆を行えばよい。つまり、まず、画面座標系Of上の点(Xf,Yf)から画像座標系Oi上の点(Xd,Yd)を計算する(式(14))。
【0109】
Xd =sx dx(Xf−Cx)
Yd =dy(Yf−Cy) (14)
次に、画像座標系Oi上の点(Xd,Yd)からレンズ歪を考慮した点(Xu,Yu)を計算する(式(15))。
【0110】
【数10】

式(10)よりカメラ座標系での座標値(x,y,z)と(Xu,Yu)との関係は以下の式で表される。
【0111】
【数11】

ここで、式(8)より、(x,y,z)から世界座標系での座標値(xw,yw,zw)を計算すると、【0112】
【数12】

また、【0113】
【数13】

として、式(17)のzwの値をzについて書き下すと、【0114】
【数14】

ここで、対象物が平面の場合zwの値が0なので、zw=0とおいてzを求めると、【0115】
【数15】

となり、式(15)の(Xu,Yu)からzが求まる。さらに、式(16)からx,yが求まり、これらを式(17)に代入することで、求めるべき世界座標(xw,yw,zw)を得ることができる。
【0116】また、上記の実施例では、図6及び図7に示すフローチャートを用いて、カメラキャリブレーション方法について説明したが、これらのフローチャートをプログラムとして構築し、カメラキャリブレーション装置として利用されるコンピュータに接続されるディスク装置や、フロッピー(登録商標)ディスク、CD−ROM等の可搬記憶媒体に格納しておき、本発明を実施する際にインストールすることにより、容易に本発明を実現できる。
【0117】なお、本発明は、上記の実施例に限定されることなく、特許請求の範囲内において種々変更・応用が可能である。
【0118】
【発明の効果】上述のように、本発明によれば、キャリブレーションボードとカメラの撮像面を斜めに傾けて撮影した場合においても、入力画像中の各参照点の画面座標値と世界座標値との対応付けを自動的に行い、カメラのキャリブレーションを高精度に行うことができる。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013