説明

カメラシミュレーション装置、カメラシミュレーション方法、及びカメラシミュレーションプログラム

【課題】効率的にカメラパラメータのキャリブレーションを行う。
【解決手段】カメラシミュレーション装置において、レンズシステムを模擬した模擬カメラ系で撮像した画像を取得する模擬カメラ系画像取得手段と、前記レンズシステムの設計値での焦点距離を用いたピンホールカメラ系で撮像した画像を取得するピンホールカメラ系画像取得手段と、模擬カメラ系画像取得手段により得られる第1の画像と、前記ピンホールカメラ系画像取得手段により得られる第2の画像との差分値を出力し、前記ピンホールカメラを用いた三角測距の視差に対して、前記差分値を用いて視差誤差の予測値を出力する視差誤差出力手段とを有することで、上記課題を解決する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、カメラシミュレーション装置、カメラシミュレーション方法、及びカメラシミュレーションプログラムに係り、特に、効率的にカメラパラメータのキャリブレーションを行うためのカメラシミュレーション装置、カメラシミュレーション方法、及びカメラシミュレーションプログラムに関する。
【背景技術】
【0002】
従来、ステレオカメラを用いた車載用距離測定装置等では、遠距離まで精度よく距離測定ができることや、測定できる視野が広いことが要求される。この要求を実現するためには、カメラの外部パラメータと内部パラメータのキャリブレーションを精度よく行う必要がある。
【0003】
また従来では、カメラのキャリブレーション方法に関する研究は広く行われており、様々な方法が既に知られている。ステレオカメラを用いた距離測定では、カメラの内部パラメータをカメラのキャリブレーションによって同定し、その内部パラメータを用いて計算機上で模擬されたカメラモデルを使用している。なお、このカメラモデルの左右の差は、距離測定の精度を悪化させる原因となる。また、現実のカメラには、製造誤差が存在するため、各カメラの内部パラメータをカメラのキャリブレーションによって同定し、左右のカメラの計算機上のカメラモデルが等しくなるように補正を行っている。このような補正は、ステレオカメラを用いた距離測定では必須の処理である。カメラの製造誤差が小さいほど、補正後の左右のカメラモデルの差は小さくなるので望ましいが、製造誤差を小さくすることは歩留まりの減少によるコスト増を招くことになる。
【0004】
また従来では、カメラの光学部材と機構部材の公差を設定する方法として、モンテカルロシミュレーションによるものが既に知られている。これは、光学系の設計値に公差と製造分布を与えた光学系のデータを多数作成し、各々についての光学性能を調べた上で、全データについての光学性能の分布を求めるものである。この結果が所望の分布の範囲内に収まっていれば、公差の設定値が最適だと判断される。
【0005】
なお従来では、製造に適切な光学ユニットとなるように、設計パラメータに設定した公差や製造分布が光学性能にどの程度の影響を与えるのかを解析する手法を提供し、更にこの解析結果に基づいて公差を変更するパラメータを選定し、設計パラメータの公差を最適にするための光学ユニット設定支援方法が開示されている(例えば、特許文献1参照)。
【0006】
特許文献1に示される技術は、複数のレンズ群からなり、各レンズ群が少なくとも1つの光学部材と少なくとも1つの機構部材とからなる光学ユニットに関して、光学的設計パラメータの公差と製造分布とを基に、製造誤差のある多数のレンズデータを生成し、また多数のレンズデータを基に光学性能の分布を算出し、その光学性能の分布を基に寄与度解析により光学性能の変動に対する光学的設計パラメータの第一の寄与度を算出する光学ユニット設計支援手法が示されている。
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上述した従来のステレオカメラのキャリブレーション方法の開発においては、内部パラメータの補正後の距離測定精度の誤差の実測によって、キャリブレーション方法の良否を判断するしかなかったため、距離測定精度の誤差がカメラの製造誤差の大きさに起因するのか、又は、キャリブレーション方法(特にアルゴリズム)に起因するのかを切り分けて考えることができなかった。
【0008】
また従来では、距離測定精度の誤差の実測のための実験を屋外で行う必要があるため、天候によって距離測定精度が変動し、実験の再現性がないという問題があった。
【0009】
また、従来のモンテカルロシミュレーションによる公差の設定方法では、光学性能、主にMTF(Modulation Transfer Function)を基準にして良品率を定義して公差の最適な設定値を定めていたため、そのままではステレオカメラの距離測定精度を基準に公差の設定ができないという問題があった。
【0010】
また、特許文献1に示された手法においても、キャリブレーション方法の開発をシミュレーション上でできないという問題と、距離測定精度を基準にした公差設定ができないという問題があった。
【0011】
つまり、上述した各従来手法では、例えば量産等に適した効率的なカメラパラメータのキャリブレーション方法が存在していなかった。
【0012】
本発明は、上記の課題に鑑みてなされたものであり、効率的にカメラパラメータのキャリブレーションを行うためのカメラシミュレーション装置、カメラシミュレーション方法、及びカメラシミュレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【0013】
上述した課題を解決するために、本件発明は、以下の特徴を有する課題を解決するための手段を採用している。
【0014】
本発明は、レンズシステムを模擬した模擬カメラ系で撮像した画像を取得する模擬カメラ系画像取得手段と、前記レンズシステムの設計値での焦点距離を用いたピンホールカメラ系で撮像した画像を取得するピンホールカメラ系画像取得手段と、模擬カメラ系画像取得手段により得られる第1の画像と、前記ピンホールカメラ系画像取得手段により得られる第2の画像との差分値を出力し、前記ピンホールカメラを用いた三角測距の視差に対して、前記差分値を用いて視差誤差の予測値を出力する視差誤差出力手段とを有することを特徴とするカメラシミュレーション装置である。
【0015】
また本発明は、レンズシステムを模擬した模擬カメラ系で撮像した画像を取得する模擬カメラ系画像取得工程と、前記レンズシステムの設計値での焦点距離を用いたピンホールカメラ系で撮像した画像を取得するピンホールカメラ系画像取得工程と、模擬カメラ系画像取得工程により得られる第1の画像と、前記ピンホールカメラ系画像取得手段により得られる第2の画像との差分値を出力し、前記ピンホールカメラを用いた三角測距の視差に対して、前記差分値を用いて視差誤差の予測値を出力する視差誤差出力工程とを有することを特徴とするカメラシミュレーション方法である。
【0016】
また本発明は、コンピュータを、上述したカメラシミュレーション装置として機能させることを特徴とするカメラシミュレーションプログラムである。
【発明の効果】
【0017】
本発明によれば、効率的にカメラパラメータのキャリブレーションを行うことができる。
【図面の簡単な説明】
【0018】
【図1】第1の実施形態におけるカメラシミュレーション装置の機能構成例を示す図である。
【図2】本実施形態におけるカメラシミュレーション処理が実現可能なハードウェア構成の一例を示す図である
【図3】第1の実施形態におけるカメラシミュレーション処理手順の一例を示すフローチャートである。
【図4】第2の実施形態におけるカメラシミュレーション装置の機能構成例を示す図である。
【図5】第2の実施形態におけるカメラシミュレーション処理手順の一例を示すフローチャートである
【図6】第3の実施形態におけるカメラシミュレーション装置の機能構成例を示す図である。
【図7】第3の実施形態における距離測定誤差の最大値の分布の一例を示す図である。
【図8】第3の実施形態におけるカメラシミュレーション処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0019】
<本発明について>
本発明は、例えば現実のレンズシステムを模擬したカメラ系(模擬カメラ系)で撮像した画像(第1の画像)と、レンズシステムの設計値の焦点距離を用いたピンホールカメラ系で撮像した画像(第2の画像)との差分値を出力し、理想ピンホールカメラを用いた三角測距の視差に対して、上述した両画像の差分値を用いて調整した視差の予測値を出力する。なお、差分値とは、例えば上述した2つのカメラ系で同一の物体(例えば、被写体等)を同一位置から撮影し、その2つの画像を比較したときの画像上の位置等の違い(ずれ)等を示している。したがって、本実施形態における差分値は、例えば模擬カメラ系とピンホールカメラ系でのチャートの格子点の像の座標の差(像のX軸方向とY軸方向の座標の差)等を示すが本発明においてはこれに限定されるものではなく、画像から得られる他の要素の差であってもよい。
【0020】
以下に、本発明におけるカメラシミュレーション装置、カメラシミュレーション方法、及びカメラシミュレーションプログラムを好適に実施した形態について、図面を用いて説明する。
【0021】
<第1の実施形態:カメラシミュレーション装置:機能構成例>
図1は、第1の実施形態におけるカメラシミュレーション装置の機能構成例を示す図である。第1の実施形態では、現実のレンズシステムを模擬したカメラ系に対する視差誤差を取得するためのカメラシミュレーション装置を示すものである。
【0022】
図1に示すカメラシミュレーション装置10は、入力手段11と、出力手段12と、蓄積手段13と、模擬カメラ系画像取得手段14と、ピンホールカメラ系画像取得手段15と、視差誤差出力手段16と、送受信手段17と、制御手段18とを有するように構成されている。
【0023】
入力手段11は、ユーザ等からの模擬カメラ系画像取得指示や、ピンホール系画像取得指示、視差誤差出力指示、送受信指示等の各種指示の開始/終了等の入力、本実施形態の実施に必要な各種データの入力等を受け付ける。なお、入力手段21は、例えばPC(Personal Computer)等の汎用のコンピュータであれば、キーボードやマウス等のポインティングデバイスからなり、携帯端末やスマートフォン等であればタッチパネルや各操作ボタン群等からなる。
【0024】
出力手段12は、入力手段11により入力された内容や、入力内容に基づいて実行された内容等の出力を行う。具体的には、例えば模擬カメラ系画像取得手段14により得られた取得画像や、ピンホールカメラ系画像により得られた取得画像、視差誤差出力手段16により得られた視差誤差結果等、各構成における処理の結果等の画面表示や音声出力等を行う。なお、出力手段12は、ディスプレイやスピーカ等からなる。
【0025】
更に、出力手段12は、プリンタ等の印刷機能を有していてもよく、上述の各出力内容を、例えば紙等の各種印刷媒体等に印刷することができる。また、入力手段11及び出力手段12は、例えばタッチパネルのような入出力一体型の構成であってもよい。
【0026】
蓄積手段13は、本実施形態において必要となる各種情報や各種処理の実行時、又は実行後の各種データを蓄積する。具体的には、蓄積手段13は、模擬カメラ系画像取得手段14により得られる画像や、ピンホールカメラ系画像取得手段15により得られる画像、視差誤差出力手段16により得られる視差誤差出力結果等の各種データを蓄積する。また、蓄積手段13は、必要に応じて蓄積されている各種データを読み出すことができる。
【0027】
模擬カメラ系画像取得手段14は、現実に撮影で使用される望遠や拡大等の各種レンズシステムを模擬したカメラ系をシミュレートし、そのカメラ系で撮像した画像を出力する。なお、本実施形態におけるレンズシステムとしては、例えばレンズと2次元のイメージセンサとを有するカメラ系で用いられる一般的なレンズシステムを使用することができる。
【0028】
なお、上述したように、レンズシステムを模擬したカメラ系で仮想的に撮影された画像を取得する技術については、例えばCAD(Computer Aided Design)ソフト等の市販のソフトウェア等により提供されている手法を用いることができる。なお、上述したソフトウェアの具体例としては、例えばCodeV(Optical Research Associates製)や、ZEMAX(ZEMAX Development Corporation製)等があるが、本発明においてはこれに限定されるものではない。
【0029】
また、カメラ系とは、例えば、ステレオカメラ等の撮像手段を用いることができるが、本発明においてはこれに限定されるものではない。
【0030】
また、模擬カメラ系画像取得手段14は、レンズシステムの設計値に対して、例えば製造誤差をランダムに付加したカメラ系を作成し、その作成された設計値に基づくカメラ系で撮像した画像(第1の画像)を取得する。
【0031】
ピンホールカメラ系画像取得手段15は、上述した模擬カメラ系画像取得手段14におけるレンズシステムの設計値の焦点距離を用いたピンホールカメラ系をシミュレートし、そのピンホールカメラ系で撮像した画像(第2の画像)を取得する。
【0032】
ここで、模擬カメラ系画像取得手段14とピンホールカメラ系画像取得手段15とで取得される両画像は、同一の撮影対象に対して撮影された画像であり、両画像ともシミュレーションにより取得された画像である。
【0033】
視差誤差出力手段16は、上述したレンズシステムと同様のレンズシステムの理想値からなる理想ピンホールカメラを用いた三角測距の視差を計算する。また、視差誤差出力手段16は、模擬カメラ系画像取得手段14及びピンホールカメラ系画像取得手段15で取得される両画像の差分値を抽出する。
【0034】
更に、視差誤差出力手段16は、理想ピンホールカメラを用いた三角測距の視差に対して、両画像の差分値を用いて調整し、調整した視差の予測値を出力する。具体的には、視差誤差出力手段16は、例えば、理想ピンホールカメラを用いた三角測距の視差に対して、両画像の差分値を視差誤差として付加することで、視差の予測値を出力する。なお、本発明における調整内容については、これに限定されるものではなく、両画像を用いて得られた値に基づいて他の調整を行うこともできる。
【0035】
送受信手段17は、通信ネットワーク等を介して接続可能な外部装置から所望する外部画像や、本発明における各処理を実現するための実行プログラム等を取得するためのインタフェースである。また、送受信手段17は、カメラシミュレーション装置10内で得られる各種情報を外部装置等に送信することができる。
【0036】
制御手段18は、カメラシミュレーション装置10の各構成部全体の制御を行う。具体的には、制御手段18は、例えばユーザ等による入力手段11からの指示等に基づいて、各種画像の取得や視差誤差出力等の各処理における制御等を行う。
【0037】
ここで、上述した、カメラシミュレーション装置10においては、各機能をコンピュータに実行させることができる実行プログラム(カメラシミュレーションプログラム)を生成し、例えば汎用のPC、サーバ等にその実行プログラムをインストールすることにより、本発明におけるカメラシミュレーション処理等を実現することができる。
【0038】
ここで、本実施形態におけるカメラシミュレーション処理が実現可能なコンピュータのハードウェア構成例について図を用いて説明する。図2は、本実施形態におけるカメラシミュレーション処理が実現可能なハードウェア構成の一例を示す図である。
【0039】
図2におけるコンピュータ本体には、入力装置21と、出力装置22と、ドライブ装置23と、補助記憶装置24と、メモリ装置25と、各種制御を行うCPU(Central Processing Unit)26と、ネットワーク接続装置27とを有するように構成されており、これらはシステムバスBで相互に接続されている。
【0040】
入力装置21は、ユーザ等が操作するキーボード及びマウス等のポインティングデバイスを有しており、ユーザ等からのプログラムの実行等、各種操作信号を入力する。また、入力装置21は、模擬カメラ系画像取得手段14により得られた取得画像や、ピンホールカメラ系画像により得られた取得画像等を入力する画像入力ユニットを有していてもよい。
【0041】
出力装置22は、本実施形態における処理を行うためのコンピュータ本体を操作するのに必要な各種ウィンドウやデータ等を表示するディスプレイを有し、CPU26が有する制御プログラムによりプログラムの実行経過や結果等を表示することができる。
【0042】
ここで、本発明においてコンピュータ本体にインストールされる実行プログラムは、例えばCD−ROMやUSB(Universal Serial Bus)メモリ等の可搬型の記録媒体28等により提供される。プログラムを記録した記録媒体28は、例えばドライブ装置23等にセット可能であり、記録媒体28に含まれる実行プログラムが、記録媒体28からドライブ装置23を介して補助記憶装置24にインストールされる。
【0043】
補助記憶装置24は、ハードディスク等のストレージ手段であり、本発明における実行プログラムやコンピュータに設けられた制御プログラム等を蓄積し、必要に応じて入出力を行うことができる。
【0044】
メモリ装置25は、CPU26により補助記憶装置24から読み出された実行プログラムや処理中のデータ等を一時的に格納する。なお、メモリ装置25は、ROM(Read Only Memory)やRAM(Random Access Memory)等からなる。
【0045】
CPU26は、OS(Operating System)等の制御プログラム、及びメモリ装置25に格納されている実行プログラムに基づいて、各種演算や各ハードウェア構成部とのデータの入出力等、コンピュータ全体の処理を制御して、本実施形態における各処理を実現することができる。なお、プログラムの実行中に必要な各種情報等は、補助記憶装置24から取得することができ、また実行結果等を格納することもできる。
【0046】
ネットワーク接続装置27は、通信ネットワーク等と接続することにより、実行プログラムを通信ネットワークに接続されている他の端末等から取得したり、プログラムを実行することで得られた実行結果又は本発明における実行プログラム自体を他の端末等に提供することができる。
【0047】
上述したようなハードウェア構成により、特別な装置構成を必要とせず、低コストで効率的に本実施形態におけるカメラシミュレーション処理を実行することができる。また、プログラムをインストールすることにより、汎用のPC等で本発明におけるカメラシミュレーション処理を容易に実現することができる。
【0048】
次に、上述したカメラシミュレーションプログラム等におけるカメラシミュレーション処理手順について、フローチャートを用いて説明する。
【0049】
<第1の実施形態におけるカメラシミュレーション処理手順>
図3は、第1の実施形態におけるカメラシミュレーション処理手順の一例を示すフローチャートである。図3に示す処理では、まず模擬カメラ系で撮像した画像を取得する(S01)。次に、理想ピンホールカメラ系で撮像した画像を取得する(S02)。なお、S01及びS02の処理で得られる画像は、シミュレーションにより得られる画像である。また、S01及びS02の処理は、逆の順序でもよく、また同時に行われてもよい。
【0050】
次に、S01及びS02の処理により得られる両画像の差分値を視差誤差として出力する(S03)。更に、理想ピンホールカメラを用いた三角測距の視差に、S03で得られた視差誤差を付加して視差の予測値を出力する(S04)。なお、上述したように誤差を付加する場合には、例えば視差画像の画素毎に誤差の値を加算する等の処理を行うことができるが、本発明においてはこれに限定されるものではない。
【0051】
上述した第1の実施形態により、例えば種々の製造誤差が付与されたカメラについてカメラパラメータのキャリブレーションを行った後の距離測定誤差等を効率的にシミュレーションすることができる。これにより、量産に適したカメラパラメータのキャリブレーション方法の開発を迅速に行うことができ、更にステレオカメラに最適なカメラの公差等を決定することができる。
【0052】
<第2の実施形態:カメラシミュレーション装置:機能構成例>
次に、第2の実施形態におけるカメラシミュレーション装置の機能構成例について図を用いて説明する。図4は、第2の実施形態におけるカメラシミュレーション装置の機能構成例を示す図である。なお、以下に示す説明において、第1の実施形態とほぼ同様の処理を行う構成については、同一の符号番号を付するものとし、ここでの具体的な説明は省略する。また、ハードウェア構成についても上述した第1の実施形態と同様に汎用のコンピュータ等で行うことができるため、ここでの説明は省略する。
【0053】
図4に示すカメラシミュレーション装置30は、入力手段11と、出力手段12と、蓄積手段13と、模擬カメラ系画像取得手段14と、ピンホールカメラ系画像取得手段15と、視差誤差出力手段16と、送受信手段17と、制御手段18と、内部パラメータ同定手段31と、画像補正手段32と、距離誤差出力手段33とを有するように構成されている。
【0054】
ここで、上述した第1の実施形態と第2の実施形態とを比較すると、第2の実施形態には、内部パラメータ同定手段31と、画像補正手段32と、距離誤差出力手段33とが新たに設けられている。
【0055】
第2の実施形態において、模擬カメラ系画像取得手段14は、上述した第1の実施形態に示す処理に加えて、予め設定されたレンズシステムに対する設計値に製造誤差をランダムに付加したカメラ系を作成し、そのカメラ系で撮像した画像を取得する。なお、製造誤差は、上述したようにランダムに与えるだけでなく、例えば予め設定された誤差入力テーブル等を参照して所定の順序の製造誤差を加えてもよい。なお、上述した誤差入力テーブルは、例えば蓄積手段13等に蓄積され、必要時に読み出して使用することができる。
【0056】
内部パラメータ同定手段31は、上述したように模擬カメラ系画像取得手段14から得られる製造誤差等を設けた画像に対して、キャリブレーションにより内部パラメータを同定する。ここで、内部パラメータとは、カメラとレンズとの組み合わせによって決まるパラメータであり、例えば焦点距離fやレンズ歪み係数k1,k2、レンズ中心Cx,Cy、アスペクト比α、せん断歪み係数β、及び画像の角度係数等のうち、少なくとも1つのパラメータを示すが、本発明においてはこれに限定されるものではない。
【0057】
また、カメラキャリブレーションとは、調整対象のカメラで何らかの物体(例えば、被写体等)を撮影し、その2次元画像から投影モデルに従ってカメラの内部パラメータ(例えば、焦点距離、レンズ中心、レンズ歪等)等を推定する処理等を示す。ここで、本実施形態では、主に内部パラメータに対するカメラキャリブレーションを行うこととするが、本発明においてはこれに限定されるものではなく、例えば内部パラメータの他にも外部パラメータ(例えば、姿勢、位置等)も用いることができ、これらを組み合わせることもできる。
【0058】
なお、第2の実施形態におけるキャリブレーション方法としては、様々な手法を用いることができるが、例えばチャート等を用いてキャリブレーションする手法(例えば、特許第4234059号公報、又は、非特許文献「Z.Zhang,"A flexible new technique for camera calibration",IEEE Transactions on Pattern Analysis and Machine Intelligence,22:1330−1334,2000.」等を参照)や、チャート以外に、例えばレーザ等を用いてキャリブレーションする手法(例えば、「佐川立昌,八木康史,"2つの平行光の観測による内部カメラパラメータの安定なキャリブレーション",画像の認識・理解シンポジウム(MIRU2007)予稿集,pp.615−620」等を参照)等を用いることができる。また、第2の実施形態では、複数のキャリブレーション方法のうち、処理精度(誤差)や処理時間、装置性能等に基づいて適宜選択して処理を行わせることができる。
【0059】
画像補正手段32は、内部パラメータ同定手段31におけるキャリブレーションで同定された内部パラメータを用いて模擬カメラ系画像取得手段14で取得した画像に対して画像処理による補正を行い、その補正した後の画像(第3の画像)を出力する。なお、補正内容としては、例えば、歪曲収差や画像の倍率等を補正する。また、本発明においてはこれに限定されるものではなく、その他にも例えば倍率色収差等を補正してもよい。
【0060】
つまり、第2の実施形態における補正は、模擬カメラ系画像取得手段14で取得した画像が、レンズシステムの設計値の焦点距離を用いたピンホールカメラ系(理想ピンホールカメラ系)で撮像した画像に近づくように補正を行う。
【0061】
なお、第2の実施形態における視差誤差出力手段16は、画像補正手段32により得られる第3の画像と、上述したピンホールカメラ系画像取得手段15により得られる画像(第2の画像)との差分値を出力し、ピンホールカメラを用いた三角測距の視差に対し、差分値を付加して視差誤差の予測値を出力する。
【0062】
距離誤差出力手段33は、視差誤差出力手段16により得られた視差誤差の予測値に対する距離を計算し、その距離の誤差を出力する。
【0063】
ここで、第2の実施形態では、例えば視差誤差出力手段16や距離誤差出力手段33における誤差算出の際には、ランダム値や予め設定された複数の異なる条件等により複数回(所定回数分)処理を行い、その平均値や最大誤差、最小誤差等を出力する処理を行うことができる。なお、所定回数分の処理を行う場合には、例えば上述した模擬カメラ系を複数設けることにより実現することができるが、本発明においてはこれに限定されるものではない。
【0064】
更に、距離誤差出力手段33は、例えば多数のカメラ系で距離誤差を取得した場合には、その距離誤差の最大値の分布を作成して出力してもよい。このとき、距離誤差出力手段33は、視差の予測値を用いて距離を計算して誤差を出力し、多数のカメラの距離測定誤差の最大値の分布を出力した後、距離測定誤差の最大値の分布が所望の範囲に入っているか否かを判断する。そして、距離誤差出力手段33は、最大値の分布が所望の範囲に入っていない場合に、所定の範囲内に入るように制御を行う。
【0065】
<第2の実施形態におけるカメラシミュレーション処理手順>
次に、第2の実施形態におけるカメラシミュレーション処理手順について、フローチャートを用いて説明する。図5は、第2の実施形態におけるカメラシミュレーション処理手順の一例を示すフローチャートである。図5に示す処理では、まず設計値に製造誤差をランダムに付加した模擬カメラ系(リアルカメラ系)を作成する(S11)。なお、S11の処理では、模擬カメラ系として、例えば、各光学要素と機構部品に公差幅と製造誤差の発生のし易さを表す製造分布を与え、モンテカルロシミュレーション等により光学系の設計値に製造誤差を付加した光学系のデータを複数(例えば、100〜1000通り等)作成する。
【0066】
次に、模擬カメラ系で撮像した画像を取得する(S12)。ここで、S12の処理では、例えば視差計算に用いる基準画像等を模擬カメラ系で撮像した画像を出力する。また、上述した基準画像としては、例えば格子状のチャートを用いることができる。格子状のチャートを用いた場合には、幾何光学的な計算だけで撮像のシミュレーションが可能であり、チャートの像のセンサ上での座標が出力される。
【0067】
次に、キャリブレーションで内部パラメータを同定する(S13)。具体的には、内部パラメータとして、例えば焦点距離fやレンズ歪み係数k1,k2、レンズ中心Cx,Cy、アスペクト比α、及びせん断歪み係数β等を取得する。次に、キャリブレーションで同定された内部パラメータを用いた画像処理で補正を行い、補正した後の画像を出力する(S14)。ここでの補正は、上述したように、例えばレンズシステムの設計値の焦点距離を用いたピンホールカメラ系(理想ピンホールカメラ系)で得られた画像に近づけるような補正を行う。
【0068】
次に、レンズシステムの設計値の焦点距離を用いたピンホールカメラ系(理想ピンホールカメラ系)で撮像した画像を取得する(S15)。ここで、S15の処理では、例えば視差計算に用いる基準画像を理想ピンホールカメラ系で撮像した画像を出力する。なお、基準画像は、上述したS12で使用したものと同じものを用いる。これは、リアルカメラ系で撮像した画像と、理想ピンホールカメラ系で撮像した画像との差分値を比較するためである。
【0069】
次に、両画像の差分値を視差誤差として出力する(S16)。S16の処理では、例えば、基準画像上の特定の点の理想ピンホールカメラ系での結像位置と、リアルカメラ系での結像位置との差をセンサ上での水平方向(u軸方向)と垂直方向(v軸方向)について計算し、その計算結果を視差誤差として出力する。なお、上述した基準画像上の特定の点の例としては、例えば格子状のチャートの格子点がある。この場合、チャートの各格子点について理想ピンホールカメラ系での結像位置と、リアルカメラ系での結像位置との差を出力する。また、第2の実施形態では、像の大きさがセンササイズと等しくなるようなチャートを選択することで、センサ全体での視差誤差の分布をシミュレーションすることができる。
【0070】
次に、理想ピンホールカメラを用いた三角測距の視差に、S16の処理にて得られた両画像の差分値を付加して視差の予測値を出力する(S17)。なお、理想ピンホールカメラでの三角測距の視差の値dは、例えば、以下に示す式(1)で計算される。
d=B*f/Z ・・・(1)
ここで、上述した式(1)において、Bはステレオカメラにおける両カメラ間の基線長を示し、fはレンズ系の焦点距離の設計値を示し、Zはカメラから物体(例えば、被写体等)への距離を示している。
【0071】
次に、S17の処理で得られた視差の予測値を用いて距離を計算して誤差を出力する(S18)。なお、S18の処理において、視差の予測値を用いて距離Zを計算する場合には、例えば、以下に示す式(2)等を用いることができる。
Z=B*f/(d+△d) ・・・(2)
ここで、上述した式(2)において、Bはステレオカメラにおける両カメラ間の基線長を示し、fはレンズ系の焦点距離の設計値を示し、d+△dは視差誤差を付加した視差の予測値を示している。
【0072】
なお、基準画像として格子状のチャートを用いた場合は、チャートの各格子点について視差の予測値を用いて計算した距離と、予め定めた距離の真値との差を格子点毎に出力する。
【0073】
ここで、ランダム値等により予め設定された回数分(所定回数分)の処理を行ったか否かを判断し(S19)。所定回数分の処理を行っていない場合(S19において、NO)、S11に戻り、設計値に付加する製造誤差をランダムに変更してS11以降の処理を行う。
【0074】
また、S19の処理において、所定回数分の処理を行った場合(S19において、YES)、複数の模擬カメラ系から得られる距離測定誤差に基づいて距離誤差を出力する(S20)。なお、S20の処理では、例えば複数の模擬カメラ系から得られる距離測定誤差の平均値を出力したり、最大の距離測定誤差を出力したり、最小の距離測定誤差を出力したり、標準偏差に基づく距離測定誤差を出力することができる。なお、本発明においては上述した出力手法に限定されるものではなく、例えば上述した出力手法の複数を組み合わせてもよい。
【0075】
上述したように、第2の実施形態によれば、種々の製造誤差が付与されたカメラについてカメラパラメータのキャリブレーションを行った後の距離測定誤差をシミュレーションすることで、量産に適したカメラパラメータのキャリブレーション方法の開発を迅速に行うことができる。また、第2の実施形態によれば、距離測定誤差をシミュレーションすることで、ステレオカメラに最適なカメラの公差を決定することができる。
【0076】
<第3の実施形態:カメラシミュレーション装置:機能構成例>
次に、第3の実施形態におけるカメラシミュレーション装置の機能構成例について図を用いて説明する。図6は、第3の実施形態におけるカメラシミュレーション装置の機能構成例を示す図である。なお、以下に示す説明では、第1及び第2の実施形態とほぼ同様の処理を行う構成については、同一の符号番号を付するものとし、ここでの具体的な説明は省略する。また、ハードウェア構成についても上述した第1の実施形態と同様に汎用のコンピュータ等で行うことができるため、ここでの説明は省略する。
【0077】
図6に示すカメラシミュレーション装置40は、入力手段11と、出力手段12と、蓄積手段13と、模擬カメラ系画像取得手段14と、ピンホールカメラ系画像取得手段15と、視差誤差出力手段16と、送受信手段17と、制御手段18と、内部パラメータ同定手段31と、画像補正手段32と、距離誤差出力手段33と、キャリブレーション・公差設定手段41とを有するように構成されている。
【0078】
ここで、上述した第2の実施形態と第3の実施形態とを比較すると、第3の実施形態には、キャリブレーション・公差設定手段41が新たに設けられている。
【0079】
第3の実施形態において、キャリブレーション・公差設定手段41は、距離誤差出力手段33により得られる距離測定誤差の最大値の分布が、予め設定された範囲に入っているか否かを判断し、その判断結果を出力する。また、キャリブレーション・公差設定手段41は、判断結果において、距離測定誤差の最大値の分布が予め設定された範囲内に入っていない場合には、再度、設計値に与える製造誤差の公差値等を修正し、新たな設定値を設定する。なお、キャリブレーション・公差設定手段41は、公差値を再設定するだけでなく、例えばキャリブレーション方法を変更してもよく、またキャリブレーション方法及び公差値の両方を再設定してもよい。また、キャリブレーション・公差設定手段41は、新たな設定値によりカメラシミュレーションを再度行うように制御手段18等に指示を行う。
【0080】
<距離測定誤差の最大値の分布例>
ここで、第3の実施形態における多数のカメラの距離測定誤差の最大値の分布を出力した結果の例について、図を用いて説明する。図7は、第3の実施形態における距離測定誤差の最大値の分布の一例を示す図である。なお、図7において、横軸は100mからの誤差(m)を示し、縦軸は頻度(回数)を示している。
【0081】
つまり、図7の例では、カメラから100m前方にある物体を測距計算した際の誤差の画像上での最大値を横軸に取り、1000個(パターン)のレンズシステムについて試行した際の出現頻度を縦軸に取ったヒストグラムを示している。
【0082】
第3の実施形態におけるキャリブレーション・公差設定手段41は、この距離測定誤差の最大値の分布が予め設定された範囲に入っているか否か、言い換えれば、この距離測定誤差の分布のうち、所望の範囲内に収まるレンズの割合が、基準値を満たすか否かにより、キャリブレーション方法及び/又は公差設定の良否を判断する。
【0083】
なお、図7に示す横軸の値としては、所定距離からの誤差に限定されるものではなく、例えば距離測定誤差の平均値や分散、標準偏差等を用いることができる。また、本発明において、設定を変更して距離測定誤差を取得するためのレンズシステムの数についてもこれに限定されるものではなく、例えば100以上の所定の個数であってもよい。
【0084】
<第3の実施形態におけるカメラシミュレーション処理手順>
次に、第3の実施形態におけるカメラシミュレーション処理手順について、フローチャートを用いて説明する。図8は、第3の実施形態におけるカメラシミュレーション処理手順の一例を示すフローチャートである。
【0085】
なお、図8に示す処理において、S21〜S29における処理は、上述した第2の実施形態におけるカメラシミュレーション処理のS11〜S19と同様であるため、ここでの説明は省略する。
【0086】
第3の実施形態におけるS29の処理において、所定回数分の処理を行った場合(S29において、YES)、複数の模擬カメラ系から得られる距離測定誤差の最大値の分布を出力する(S30)。なお、S30の処理は、例えば、予め設定された複数のカメラの距離測定誤差の最大値の分布を出力する工程であり、キャリブレーション方法の良否の判断に用いる指標としては、例えば、その他に距離測定誤差の平均値や標準偏差等を用いることもでき、それらを組み合わせることもできる。
【0087】
次に、S30の処理終了後、最大値の分布が所定の範囲内にあるか否かを判断する(S31)。ここで、S31の処理において、最大値の分布が所定の範囲内にない場合(S31において、NO)、キャリブレーション方法又は公差設定の良否判定を「否」と判定し(S32)、設計値に与える製造誤差の公差値を修正し(S33)、新たな設定値を用いて、上述したS21の処理に戻り、後続の処理を再度行う。なお、上述したS33の処理においては、キャリブレーション方法を変更してもよく、また、キャリブレーション方法及び公差値を変更(再設定)してもよい。
【0088】
また、S31の処理において、最大の分布が所定の範囲内にある場合(S31において、YES)、キャリブレーション方法又は公差設定の良否判定を「良」と判定し(S34)、処理を終了する。
【0089】
つまり、上述したS31〜S34の処理では、距離測定誤差の分布が所望の範囲内にあるかでキャリブレーション方法又は公差設定の良否を判断する工程であり、距離測定誤差の分布が所望の範囲内にない場合はキャリブレーション方法又は公差設定を変更して、最初から繰り返す。
【0090】
上述したように、第3の実施形態によれば、種々の製造誤差が付与されたカメラについてカメラパラメータのキャリブレーションを行った後の距離測定誤差をシミュレーションすることで、量産に適したカメラパラメータのキャリブレーション方法の開発を迅速に行うことができる。また、第3の実施形態によれば、ステレオカメラに最適なカメラの公差を決定することができる。なお、上述した第1〜第3の実施形態は、各構成の一部を適宜組み合わせて適用することができる。
【0091】
上述したように、本実施形態によれば、効率的にカメラパラメータのキャリブレーションを行うことができる。具体的には、本発明によれば、種々の製造誤差が付与されたカメラについてカメラパラメータのキャリブレーションを行った後の距離測定誤差を、実際のカメラを使用せずにシミュレーションにより求めることができる。つまり、現実のレンズシステムを模擬した模擬カメラ系による画像と、ステレオ法による距離計算に用いる理想のカメラ系による画像との比較がシミュレーション上で実現することで、量産に適したカメラパラメータのキャリブレーション方法の開発を迅速に行うことができる。
【0092】
更に、本発明によれば、例えば、ある公差値を入力してシミュレーションを行い、出力された測距誤差が所望の範囲外であれば、公差値を再設定した後に再度シミュレーションを行い、測距誤差が所望の範囲内になるまでシミュレーションを繰り返し行う。これにより、本発明は、距離測定精度を基準にして公差設定を行うことができ、ステレオカメラに最適なカメラの公差を決定することができる。
【0093】
なお、本発明に係るカメラシミュレーション装置、カメラシミュレーション方法、及びカメラシミュレーションプログラムは、例えばステレオカメラ等における各種カメラのレンズシステムの開発、或いはステレオカメラ等を用いた測距装置や3次元形状認識装置等に適用したり、例えば車載用のステレオカメラ等において、本発明におけるシミュレーション結果に基づいて適切なレンズシステムを採用する等といった広い分野に適用することができる。
【0094】
以上本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【符号の説明】
【0095】
10,30,40 カメラシミュレーション装置
11 入力手段
12 出力手段
13 蓄積手段
14 模擬カメラ系画像取得手段
15 ピンホールカメラ系画像取得手段
16 視差誤差出力手段
17 送受信手段
18 制御手段
21 入力装置
22 出力装置
23 ドライブ装置
24 補助記憶装置
25 メモリ装置
26 CPU(Central Processing Unit)
27 ネットワーク接続装置
28 記録媒体
31 内部パラメータ同定手段
32 画像補正手段
33 距離誤差出力手段
41 キャリブレーション・公差設定手段
【先行技術文献】
【特許文献】
【0096】
【特許文献1】特開2006−98558号公報

【特許請求の範囲】
【請求項1】
レンズシステムを模擬した模擬カメラ系で撮像した画像を取得する模擬カメラ系画像取得手段と、
前記レンズシステムの設計値での焦点距離を用いたピンホールカメラ系で撮像した画像を取得するピンホールカメラ系画像取得手段と、
模擬カメラ系画像取得手段により得られる第1の画像と、前記ピンホールカメラ系画像取得手段により得られる第2の画像との差分値を出力し、前記ピンホールカメラを用いた三角測距の視差に対して、前記差分値を用いて視差誤差の予測値を出力する視差誤差出力手段とを有することを特徴とするカメラシミュレーション装置。
【請求項2】
前記模擬カメラ系に対するキャリブレーションにより内部パラメータを同定する内部パラメータ同定手段と、
前記前記内部パラメータ同定手段により同定された内部パラメータを用いて前記模擬カメラ系画像取得手段から得られる画像に対して補正を行う画像補正手段とを有し、
前記視差誤差出力手段は、前記画像補正手段により得られる第3の画像と、前記第2の画像との差分値を出力し、前記ピンホールカメラを用いた三角測距の視差に対し、前記差分値を付加して視差誤差の予測値を出力することを特徴とする請求項1に記載のカメラシミュレーション装置。
【請求項3】
前記視差誤差出力手段から得られる前記予測値を用いて距離を計算して誤差を出力する距離誤差出力手段を有することを特徴とする請求項1又は2に記載のカメラシミュレーション装置。
【請求項4】
前記模擬カメラ系画像取得手段は、
前記設計値に対して設定される製造誤差をランダムに付加した複数の模擬カメラ系を生成し、生成したカメラ系により撮像した画像を取得することを特徴とする請求項1乃至3の何れか1項に記載のカメラシミュレーション装置。
【請求項5】
前記距離誤差出力手段は、
前記複数の模擬カメラ系から得られる距離測定誤差を用いて、前記模擬カメラ系の距離測定誤差の最大値の分布を出力することを特徴とする請求項4に記載のカメラシミュレーション装置。
【請求項6】
前記複数のカメラ系の距離測定誤差の最大値の分布が予め設定された範囲に含まれているか否かにより、前記模擬カメラ系に対するキャリブレーション又は公差設定に対する良否を判定するキャリブレーション・公差設定手段を有することを特徴とする請求項1乃至5の何れか1項に記載のカメラシミュレーション装置。
【請求項7】
前記キャリブレーション・公差設定手段は、
前記最大値の分布が予め設定された範囲に含まれていないと判断された場合に、前記設計値に与える製造誤差の公差値を再設定することを特徴とする請求項6に記載のカメラシミュレーション装置。
【請求項8】
レンズシステムを模擬した模擬カメラ系で撮像した画像を取得する模擬カメラ系画像取得工程と、
前記レンズシステムの設計値での焦点距離を用いたピンホールカメラ系で撮像した画像を取得するピンホールカメラ系画像取得工程と、
模擬カメラ系画像取得工程により得られる第1の画像と、前記ピンホールカメラ系画像取得手段により得られる第2の画像との差分値を出力し、前記ピンホールカメラを用いた三角測距の視差に対して、前記差分値を用いて視差誤差の予測値を出力する視差誤差出力工程とを有することを特徴とするカメラシミュレーション方法。
【請求項9】
前記模擬カメラ系に対するキャリブレーションにより内部パラメータを同定する内部パラメータ同定工程と、
前記内部パラメータ同定工程により同定された内部パラメータを用いて前記模擬カメラ系画像取得工程から得られる画像に対して補正を行う画像補正工程とを有し、
前記視差誤差出力工程は、前記画像補正工程により得られる第3の画像と、前記第2の画像との差分値を出力し、前記ピンホールカメラを用いた三角測距の視差に対し、前記差分値を付加して視差誤差の予測値を出力することを特徴とする請求項8に記載のカメラシミュレーション方法。
【請求項10】
前記視差誤差出力工程から得られる前記予測値を用いて距離を計算して誤差を出力する距離誤差出力工程を有することを特徴とする請求項8又は9に記載のカメラシミュレーション方法。
【請求項11】
前記模擬カメラ系画像取得工程は、
前記設計値に対して設定される製造誤差をランダムに付加した複数の模擬カメラ系を生成し、生成したカメラ系により撮像した画像を取得することを特徴とする請求項8乃至10の何れか1項に記載のカメラシミュレーション方法。
【請求項12】
前記距離誤差出力工程は、
前記複数の模擬カメラ系から得られる距離測定誤差を用いて、前記模擬カメラ系の距離測定誤差の最大値の分布を出力することを特徴とする請求項11に記載のカメラシミュレーション方法。
【請求項13】
前記複数のカメラ系の距離測定誤差の最大値の分布が予め設定された範囲に含まれているか否かにより、前記模擬カメラ系に対するキャリブレーション又は公差設定に対する良否を判定するキャリブレーション・公差設定工程を有することを特徴とする請求項8乃至12の何れか1項に記載のカメラシミュレーション方法。
【請求項14】
前記キャリブレーション・公差設定工程は、
前記最大値の分布が予め設定された範囲に含まれていないと判断された場合に、前記設計値に与える製造誤差の公差値を再設定することを特徴とする請求項13に記載のカメラシミュレーション方法。
【請求項15】
コンピュータを、請求項1乃至7の何れか1項に記載されたカメラシミュレーション装置として機能させることを特徴とするカメラシミュレーションプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−198076(P2012−198076A)
【公開日】平成24年10月18日(2012.10.18)
【国際特許分類】
【出願番号】特願2011−61728(P2011−61728)
【出願日】平成23年3月18日(2011.3.18)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】