(57)【特許請求の範囲】
【請求項１】
レンズシステムを模擬した模擬カメラ系をシミュレートし、シミュレートした該模擬カメラ系で所定の物体を撮像したときの第１の画像を取得する模擬カメラ系画像取得手段と、
前記レンズシステムの設計値での焦点距離を用いたピンホールカメラ系をシミュレートし、シミュレートした該ピンホールカメラ系で前記所定の物体を前記第１の画像を撮影した位置と同一位置から撮像したときの第２の画像を取得するピンホールカメラ系画像取得手段と、
模擬カメラ系画像取得手段により得られる前記第１の画像と、前記ピンホールカメラ系画像取得手段により得られる前記第２の画像とから前記所定の物体の画像上の位置のずれを差分値として出力し、前記ピンホールカメラ系を用いた三角測距の視差に対して、前記差分値を用いて視差誤差の予測値を出力する視差誤差出力手段とを有することを特徴とするカメラシミュレーション装置。
【請求項２】
前記模擬カメラ系に対するキャリブレーションにより内部パラメータを同定する内部パラメータ同定手段と、
前記前記内部パラメータ同定手段により同定された内部パラメータを用いて前記模擬カメラ系画像取得手段から得られる画像に対して補正を行う画像補正手段とを有し、
前記視差誤差出力手段は、前記画像補正手段により得られる第３の画像と、前記第２の画像との差分値を出力し、前記ピンホールカメラ系を用いた三角測距の視差に対し、前記差分値を用いて視差誤差の予測値を出力することを特徴とする請求項１に記載のカメラシミュレーション装置。
【請求項３】
前記視差誤差出力手段から得られる前記予測値を用いて距離を計算して誤差を出力する距離誤差出力手段を有することを特徴とする請求項１又は２に記載のカメラシミュレーション装置。
【請求項４】
前記模擬カメラ系画像取得手段は、
前記設計値に対して設定される製造誤差をランダムに付加した複数の模擬カメラ系を生成し、生成したカメラ系により撮像した画像を取得することを特徴とする請求項３に記載のカメラシミュレーション装置。
【請求項５】
前記距離誤差出力手段は、
前記複数の模擬カメラ系から得られる距離測定誤差を用いて、前記模擬カメラ系の距離測定誤差の最大値の分布を出力することを特徴とする請求項４に記載のカメラシミュレーション装置。
【請求項６】
前記複数の模擬カメラ系の距離測定誤差の最大値の分布が予め設定された範囲に含まれているか否かにより、前記模擬カメラ系に対するキャリブレーション又は公差設定に対する良否を判定するキャリブレーション・公差設定手段を有することを特徴とする請求項５の何れか１項に記載のカメラシミュレーション装置。
【請求項７】
前記キャリブレーション・公差設定手段は、
前記最大値の分布が予め設定された範囲に含まれていないと判断された場合に、前記設計値に与える製造誤差の公差値を再設定することを特徴とする請求項６に記載のカメラシミュレーション装置。
【請求項８】
レンズシステムを模擬した模擬カメラ系をシミュレートし、シミュレートした該模擬カメラ系で所定の物体を撮像したときの第１の画像を取得する模擬カメラ系画像取得工程と、
前記レンズシステムの設計値での焦点距離を用いたピンホールカメラ系をシミュレートし、シミュレートした該ピンホールカメラ系で前記所定の物体を前記第１の画像を撮影した位置と同一位置から撮像したときの第２の画像を取得するピンホールカメラ系画像取得工程と、
模擬カメラ系画像取得工程により得られる前記第１の画像と、前記ピンホールカメラ系画像取得工程により得られる前記第２の画像とから前記所定の物体の画像上の位置のずれを差分値として出力し、前記ピンホールカメラ系を用いた三角測距の視差に対して、前記差分値を用いて視差誤差の予測値を出力する視差誤差出力工程とを有することを特徴とするカメラシミュレーション方法。
【請求項９】
前記模擬カメラ系に対するキャリブレーションにより内部パラメータを同定する内部パラメータ同定工程と、
前記内部パラメータ同定工程により同定された内部パラメータを用いて前記模擬カメラ系画像取得工程から得られる画像に対して補正を行う画像補正工程とを有し、
前記視差誤差出力工程は、前記画像補正工程により得られる第３の画像と、前記第２の画像との差分値を出力し、前記ピンホールカメラ系を用いた三角測距の視差に対し、前記差分値を用いて視差誤差の予測値を出力することを特徴とする請求項８に記載のカメラシミュレーション方法。
【請求項１０】
前記視差誤差出力工程から得られる前記予測値を用いて距離を計算して誤差を出力する距離誤差出力工程を有することを特徴とする請求項８又は９に記載のカメラシミュレーション方法。
【請求項１１】
前記模擬カメラ系画像取得工程は、
前記設計値に対して設定される製造誤差をランダムに付加した複数の模擬カメラ系を生成し、生成したカメラ系により撮像した画像を取得することを特徴とする請求項１０に記載のカメラシミュレーション方法。
【請求項１２】
前記距離誤差出力工程は、
前記複数の模擬カメラ系から得られる距離測定誤差を用いて、前記模擬カメラ系の距離測定誤差の最大値の分布を出力することを特徴とする請求項１１に記載のカメラシミュレーション方法。
【請求項１３】
前記複数の模擬カメラ系の距離測定誤差の最大値の分布が予め設定された範囲に含まれているか否かにより、前記模擬カメラ系に対するキャリブレーション又は公差設定に対する良否を判定するキャリブレーション・公差設定工程を有することを特徴とする請求項１２に記載のカメラシミュレーション方法。
【請求項１４】
前記キャリブレーション・公差設定工程は、
前記最大値の分布が予め設定された範囲に含まれていないと判断された場合に、前記設計値に与える製造誤差の公差値を再設定することを特徴とする請求項１３に記載のカメラシミュレーション方法。
【請求項１５】
コンピュータを、請求項１乃至７の何れか１項に記載されたカメラシミュレーション装置として機能させることを特徴とするカメラシミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラシミュレーション装置、カメラシミュレーション方法、及びカメラシミュレーションプログラムに係り、特に、効率的にカメラパラメータのキャリブレーションを行うためのカメラシミュレーション装置、カメラシミュレーション方法、及びカメラシミュレーションプログラムに関する。
【背景技術】
【０００２】
従来、ステレオカメラを用いた車載用距離測定装置等では、遠距離まで精度よく距離測定ができることや、測定できる視野が広いことが要求される。この要求を実現するためには、カメラの外部パラメータと内部パラメータのキャリブレーションを精度よく行う必要がある。
【０００３】
また従来では、カメラのキャリブレーション方法に関する研究は広く行われており、様々な方法が既に知られている。ステレオカメラを用いた距離測定では、カメラの内部パラメータをカメラのキャリブレーションによって同定し、その内部パラメータを用いて計算機上で模擬されたカメラモデルを使用している。なお、このカメラモデルの左右の差は、距離測定の精度を悪化させる原因となる。また、現実のカメラには、製造誤差が存在するため、各カメラの内部パラメータをカメラのキャリブレーションによって同定し、左右のカメラの計算機上のカメラモデルが等しくなるように補正を行っている。このような補正は、ステレオカメラを用いた距離測定では必須の処理である。カメラの製造誤差が小さいほど、補正後の左右のカメラモデルの差は小さくなるので望ましいが、製造誤差を小さくすることは歩留まりの減少によるコスト増を招くことになる。
【０００４】
また従来では、カメラの光学部材と機構部材の公差を設定する方法として、モンテカルロシミュレーションによるものが既に知られている。これは、光学系の設計値に公差と製造分布を与えた光学系のデータを多数作成し、各々についての光学性能を調べた上で、全データについての光学性能の分布を求めるものである。この結果が所望の分布の範囲内に収まっていれば、公差の設定値が最適だと判断される。
【０００５】
なお従来では、製造に適切な光学ユニットとなるように、設計パラメータに設定した公差や製造分布が光学性能にどの程度の影響を与えるのかを解析する手法を提供し、更にこの解析結果に基づいて公差を変更するパラメータを選定し、設計パラメータの公差を最適にするための光学ユニット設定支援方法が開示されている（例えば、特許文献１参照）。
【０００６】
特許文献１に示される技術は、複数のレンズ群からなり、各レンズ群が少なくとも１つの光学部材と少なくとも１つの機構部材とからなる光学ユニットに関して、光学的設計パラメータの公差と製造分布とを基に、製造誤差のある多数のレンズデータを生成し、また多数のレンズデータを基に光学性能の分布を算出し、その光学性能の分布を基に寄与度解析により光学性能の変動に対する光学的設計パラメータの第一の寄与度を算出する光学ユニット設計支援手法が示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来のステレオカメラのキャリブレーション方法の開発においては、内部パラメータの補正後の距離測定精度の誤差の実測によって、キャリブレーション方法の良否を判断するしかなかったため、距離測定精度の誤差がカメラの製造誤差の大きさに起因するのか、又は、キャリブレーション方法（特にアルゴリズム）に起因するのかを切り分けて考えることができなかった。
【０００８】
また従来では、距離測定精度の誤差の実測のための実験を屋外で行う必要があるため、天候によって距離測定精度が変動し、実験の再現性がないという問題があった。
【０００９】
また、従来のモンテカルロシミュレーションによる公差の設定方法では、光学性能、主にＭＴＦ（Ｍｏｄｕｌａｔｉｏｎ  Ｔｒａｎｓｆｅｒ  Ｆｕｎｃｔｉｏｎ）を基準にして良品率を定義して公差の最適な設定値を定めていたため、そのままではステレオカメラの距離測定精度を基準に公差の設定ができないという問題があった。
【００１０】
また、特許文献１に示された手法においても、キャリブレーション方法の開発をシミュレーション上でできないという問題と、距離測定精度を基準にした公差設定ができないという問題があった。
【００１１】
つまり、上述した各従来手法では、例えば量産等に適した効率的なカメラパラメータのキャリブレーション方法が存在していなかった。
【００１２】
本発明は、上記の課題に鑑みてなされたものであり、効率的にカメラパラメータのキャリブレーションを行うためのカメラシミュレーション装置、カメラシミュレーション方法、及びカメラシミュレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決するために、本件発明は、以下の特徴を有する課題を解決するための手段を採用している。
【００１４】
本発明は、レンズシステムを模擬した模擬カメラ系をシミュレートし、シミュレートした該模擬カメラ系で所定の物体を撮像したときの第１の画像を取得する模擬カメラ系画像取得手段と、前記レンズシステムの設計値での焦点距離を用いたピンホールカメラ系をシミュレートし、シミュレートした該ピンホールカメラ系で前記所定の物体を前記第１の画像を撮影した位置と同一位置から撮像したときの第２の画像を取得するピンホールカメラ系画像取得手段と、模擬カメラ系画像取得手段により得られる前記第１の画像と、前記ピンホールカメラ系画像取得手段により得られる前記第２の画像とから前記所定の物体の画像上の位置のずれを差分値として出力し、前記ピンホールカメラを用いた三角測距の視差に対して、前記差分値を用いて視差誤差の予測値を出力する視差誤差出力手段とを有することを特徴とするカメラシミュレーション装置である。
【００１５】
また本発明は、レンズシステムを模擬した模擬カメラ系をシミュレートし、シミュレートした該模擬カメラ系で所定の物体を撮像したときの第１の画像を取得する模擬カメラ系画像取得工程と、前記レンズシステムの設計値での焦点距離を用いたピンホールカメラ系をシミュレートし、シミュレートした該ピンホールカメラ系で前記所定の物体を前記第１の画像を撮影した位置と同一位置から撮像したときの第２の画像を取得するピンホールカメラ系画像取得工程と、模擬カメラ系画像取得工程により得られる前記第１の画像と、前記ピンホールカメラ系画像取得工程により得られる前記第２の画像とから前記所定の物体の画像上の位置のずれを差分値として出力し、前記ピンホールカメラを用いた三角測距の視差に対して、前記差分値を用いて視差誤差の予測値を出力する視差誤差出力工程とを有することを特徴とするカメラシミュレーション方法である。
【００１６】
また本発明は、コンピュータを、上述したカメラシミュレーション装置として機能させることを特徴とするカメラシミュレーションプログラムである。
【発明の効果】
【００１７】
本発明によれば、効率的にカメラパラメータのキャリブレーションを行うことができる。
【図面の簡単な説明】
【００１８】
【図１】第１の実施形態におけるカメラシミュレーション装置の機能構成例を示す図である。
【図２】本実施形態におけるカメラシミュレーション処理が実現可能なハードウェア構成の一例を示す図である
【図３】第１の実施形態におけるカメラシミュレーション処理手順の一例を示すフローチャートである。
【図４】第２の実施形態におけるカメラシミュレーション装置の機能構成例を示す図である。
【図５】第２の実施形態におけるカメラシミュレーション処理手順の一例を示すフローチャートである
【図６】第３の実施形態におけるカメラシミュレーション装置の機能構成例を示す図である。
【図７】第３の実施形態における距離測定誤差の最大値の分布の一例を示す図である。
【図８】第３の実施形態におけるカメラシミュレーション処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１９】
＜本発明について＞
本発明は、例えば現実のレンズシステムを模擬したカメラ系（模擬カメラ系）で撮像した画像（第１の画像）と、レンズシステムの設計値の焦点距離を用いたピンホールカメラ系で撮像した画像（第２の画像）との差分値を出力し、理想ピンホールカメラを用いた三角測距の視差に対して、上述した両画像の差分値を用いて調整した視差の予測値を出力する。なお、差分値とは、例えば上述した２つのカメラ系で同一の物体（例えば、被写体等）を同一位置から撮影し、その２つの画像を比較したときの画像上の位置等の違い（ずれ）等を示している。したがって、本実施形態における差分値は、例えば模擬カメラ系とピンホールカメラ系でのチャートの格子点の像の座標の差（像のＸ軸方向とＹ軸方向の座標の差）等を示すが本発明においてはこれに限定されるものではなく、画像から得られる他の要素の差であってもよい。
【００２０】
以下に、本発明におけるカメラシミュレーション装置、カメラシミュレーション方法、及びカメラシミュレーションプログラムを好適に実施した形態について、図面を用いて説明する。
【００２１】
＜第１の実施形態：カメラシミュレーション装置：機能構成例＞
図１は、第１の実施形態におけるカメラシミュレーション装置の機能構成例を示す図である。第１の実施形態では、現実のレンズシステムを模擬したカメラ系に対する視差誤差を取得するためのカメラシミュレーション装置を示すものである。
【００２２】
図１に示すカメラシミュレーション装置１０は、入力手段１１と、出力手段１２と、蓄積手段１３と、模擬カメラ系画像取得手段１４と、ピンホールカメラ系画像取得手段１５と、視差誤差出力手段１６と、送受信手段１７と、制御手段１８とを有するように構成されている。
【００２３】
入力手段１１は、ユーザ等からの模擬カメラ系画像取得指示や、ピンホール系画像取得指示、視差誤差出力指示、送受信指示等の各種指示の開始／終了等の入力、本実施形態の実施に必要な各種データの入力等を受け付ける。なお、入力手段２１は、例えばＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の汎用のコンピュータであれば、キーボードやマウス等のポインティングデバイスからなり、携帯端末やスマートフォン等であればタッチパネルや各操作ボタン群等からなる。
【００２４】
出力手段１２は、入力手段１１により入力された内容や、入力内容に基づいて実行された内容等の出力を行う。具体的には、例えば模擬カメラ系画像取得手段１４により得られた取得画像や、ピンホールカメラ系画像により得られた取得画像、視差誤差出力手段１６により得られた視差誤差結果等、各構成における処理の結果等の画面表示や音声出力等を行う。なお、出力手段１２は、ディスプレイやスピーカ等からなる。
【００２５】
更に、出力手段１２は、プリンタ等の印刷機能を有していてもよく、上述の各出力内容を、例えば紙等の各種印刷媒体等に印刷することができる。また、入力手段１１及び出力手段１２は、例えばタッチパネルのような入出力一体型の構成であってもよい。
【００２６】
蓄積手段１３は、本実施形態において必要となる各種情報や各種処理の実行時、又は実行後の各種データを蓄積する。具体的には、蓄積手段１３は、模擬カメラ系画像取得手段１４により得られる画像や、ピンホールカメラ系画像取得手段１５により得られる画像、視差誤差出力手段１６により得られる視差誤差出力結果等の各種データを蓄積する。また、蓄積手段１３は、必要に応じて蓄積されている各種データを読み出すことができる。
【００２７】
模擬カメラ系画像取得手段１４は、現実に撮影で使用される望遠や拡大等の各種レンズシステムを模擬したカメラ系をシミュレートし、そのカメラ系で撮像した画像を出力する。なお、本実施形態におけるレンズシステムとしては、例えばレンズと２次元のイメージセンサとを有するカメラ系で用いられる一般的なレンズシステムを使用することができる。
【００２８】
なお、上述したように、レンズシステムを模擬したカメラ系で仮想的に撮影された画像を取得する技術については、例えばＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）ソフト等の市販のソフトウェア等により提供されている手法を用いることができる。なお、上述したソフトウェアの具体例としては、例えばＣｏｄｅＶ（Ｏｐｔｉｃａｌ  Ｒｅｓｅａｒｃｈ  Ａｓｓｏｃｉａｔｅｓ製）や、ＺＥＭＡＸ（ＺＥＭＡＸ  Ｄｅｖｅｌｏｐｍｅｎｔ  Ｃｏｒｐｏｒａｔｉｏｎ製）等があるが、本発明においてはこれに限定されるものではない。
【００２９】
また、カメラ系とは、例えば、ステレオカメラ等の撮像手段を用いることができるが、本発明においてはこれに限定されるものではない。
【００３０】
また、模擬カメラ系画像取得手段１４は、レンズシステムの設計値に対して、例えば製造誤差をランダムに付加したカメラ系を作成し、その作成された設計値に基づくカメラ系で撮像した画像（第１の画像）を取得する。
【００３１】
ピンホールカメラ系画像取得手段１５は、上述した模擬カメラ系画像取得手段１４におけるレンズシステムの設計値の焦点距離を用いたピンホールカメラ系をシミュレートし、そのピンホールカメラ系で撮像した画像（第２の画像）を取得する。
【００３２】
ここで、模擬カメラ系画像取得手段１４とピンホールカメラ系画像取得手段１５とで取得される両画像は、同一の撮影対象に対して撮影された画像であり、両画像ともシミュレーションにより取得された画像である。
【００３３】
視差誤差出力手段１６は、上述したレンズシステムと同様のレンズシステムの理想値からなる理想ピンホールカメラを用いた三角測距の視差を計算する。また、視差誤差出力手段１６は、模擬カメラ系画像取得手段１４及びピンホールカメラ系画像取得手段１５で取得される両画像の差分値を抽出する。
【００３４】
更に、視差誤差出力手段１６は、理想ピンホールカメラを用いた三角測距の視差に対して、両画像の差分値を用いて調整し、調整した視差の予測値を出力する。具体的には、視差誤差出力手段１６は、例えば、理想ピンホールカメラを用いた三角測距の視差に対して、両画像の差分値を視差誤差として付加することで、視差の予測値を出力する。なお、本発明における調整内容については、これに限定されるものではなく、両画像を用いて得られた値に基づいて他の調整を行うこともできる。
【００３５】
送受信手段１７は、通信ネットワーク等を介して接続可能な外部装置から所望する外部画像や、本発明における各処理を実現するための実行プログラム等を取得するためのインタフェースである。また、送受信手段１７は、カメラシミュレーション装置１０内で得られる各種情報を外部装置等に送信することができる。
【００３６】
制御手段１８は、カメラシミュレーション装置１０の各構成部全体の制御を行う。具体的には、制御手段１８は、例えばユーザ等による入力手段１１からの指示等に基づいて、各種画像の取得や視差誤差出力等の各処理における制御等を行う。
【００３７】
ここで、上述した、カメラシミュレーション装置１０においては、各機能をコンピュータに実行させることができる実行プログラム（カメラシミュレーションプログラム）を生成し、例えば汎用のＰＣ、サーバ等にその実行プログラムをインストールすることにより、本発明におけるカメラシミュレーション処理等を実現することができる。
【００３８】
ここで、本実施形態におけるカメラシミュレーション処理が実現可能なコンピュータのハードウェア構成例について図を用いて説明する。図２は、本実施形態におけるカメラシミュレーション処理が実現可能なハードウェア構成の一例を示す図である。
【００３９】
図２におけるコンピュータ本体には、入力装置２１と、出力装置２２と、ドライブ装置２３と、補助記憶装置２４と、メモリ装置２５と、各種制御を行うＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２６と、ネットワーク接続装置２７とを有するように構成されており、これらはシステムバスＢで相互に接続されている。
【００４０】
入力装置２１は、ユーザ等が操作するキーボード及びマウス等のポインティングデバイスを有しており、ユーザ等からのプログラムの実行等、各種操作信号を入力する。また、入力装置２１は、模擬カメラ系画像取得手段１４により得られた取得画像や、ピンホールカメラ系画像により得られた取得画像等を入力する画像入力ユニットを有していてもよい。
【００４１】
出力装置２２は、本実施形態における処理を行うためのコンピュータ本体を操作するのに必要な各種ウィンドウやデータ等を表示するディスプレイを有し、ＣＰＵ２６が有する制御プログラムによりプログラムの実行経過や結果等を表示することができる。
【００４２】
ここで、本発明においてコンピュータ本体にインストールされる実行プログラムは、例えばＣＤ−ＲＯＭやＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ等の可搬型の記録媒体２８等により提供される。プログラムを記録した記録媒体２８は、例えばドライブ装置２３等にセット可能であり、記録媒体２８に含まれる実行プログラムが、記録媒体２８からドライブ装置２３を介して補助記憶装置２４にインストールされる。
【００４３】
補助記憶装置２４は、ハードディスク等のストレージ手段であり、本発明における実行プログラムやコンピュータに設けられた制御プログラム等を蓄積し、必要に応じて入出力を行うことができる。
【００４４】
メモリ装置２５は、ＣＰＵ２６により補助記憶装置２４から読み出された実行プログラムや処理中のデータ等を一時的に格納する。なお、メモリ装置２５は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等からなる。
【００４５】
ＣＰＵ２６は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）等の制御プログラム、及びメモリ装置２５に格納されている実行プログラムに基づいて、各種演算や各ハードウェア構成部とのデータの入出力等、コンピュータ全体の処理を制御して、本実施形態における各処理を実現することができる。なお、プログラムの実行中に必要な各種情報等は、補助記憶装置２４から取得することができ、また実行結果等を格納することもできる。
【００４６】
ネットワーク接続装置２７は、通信ネットワーク等と接続することにより、実行プログラムを通信ネットワークに接続されている他の端末等から取得したり、プログラムを実行することで得られた実行結果又は本発明における実行プログラム自体を他の端末等に提供することができる。
【００４７】
上述したようなハードウェア構成により、特別な装置構成を必要とせず、低コストで効率的に本実施形態におけるカメラシミュレーション処理を実行することができる。また、プログラムをインストールすることにより、汎用のＰＣ等で本発明におけるカメラシミュレーション処理を容易に実現することができる。
【００４８】
次に、上述したカメラシミュレーションプログラム等におけるカメラシミュレーション処理手順について、フローチャートを用いて説明する。
【００４９】
＜第１の実施形態におけるカメラシミュレーション処理手順＞
図３は、第１の実施形態におけるカメラシミュレーション処理手順の一例を示すフローチャートである。図３に示す処理では、まず模擬カメラ系で撮像した画像を取得する（Ｓ０１）。次に、理想ピンホールカメラ系で撮像した画像を取得する（Ｓ０２）。なお、Ｓ０１及びＳ０２の処理で得られる画像は、シミュレーションにより得られる画像である。また、Ｓ０１及びＳ０２の処理は、逆の順序でもよく、また同時に行われてもよい。
【００５０】
次に、Ｓ０１及びＳ０２の処理により得られる両画像の差分値を視差誤差として出力する（Ｓ０３）。更に、理想ピンホールカメラを用いた三角測距の視差に、Ｓ０３で得られた視差誤差を付加して視差の予測値を出力する（Ｓ０４）。なお、上述したように誤差を付加する場合には、例えば視差画像の画素毎に誤差の値を加算する等の処理を行うことができるが、本発明においてはこれに限定されるものではない。
【００５１】
上述した第１の実施形態により、例えば種々の製造誤差が付与されたカメラについてカメラパラメータのキャリブレーションを行った後の距離測定誤差等を効率的にシミュレーションすることができる。これにより、量産に適したカメラパラメータのキャリブレーション方法の開発を迅速に行うことができ、更にステレオカメラに最適なカメラの公差等を決定することができる。
【００５２】
＜第２の実施形態：カメラシミュレーション装置：機能構成例＞
次に、第２の実施形態におけるカメラシミュレーション装置の機能構成例について図を用いて説明する。図４は、第２の実施形態におけるカメラシミュレーション装置の機能構成例を示す図である。なお、以下に示す説明において、第１の実施形態とほぼ同様の処理を行う構成については、同一の符号番号を付するものとし、ここでの具体的な説明は省略する。また、ハードウェア構成についても上述した第１の実施形態と同様に汎用のコンピュータ等で行うことができるため、ここでの説明は省略する。
【００５３】
図４に示すカメラシミュレーション装置３０は、入力手段１１と、出力手段１２と、蓄積手段１３と、模擬カメラ系画像取得手段１４と、ピンホールカメラ系画像取得手段１５と、視差誤差出力手段１６と、送受信手段１７と、制御手段１８と、内部パラメータ同定手段３１と、画像補正手段３２と、距離誤差出力手段３３とを有するように構成されている。
【００５４】
ここで、上述した第１の実施形態と第２の実施形態とを比較すると、第２の実施形態には、内部パラメータ同定手段３１と、画像補正手段３２と、距離誤差出力手段３３とが新たに設けられている。
【００５５】
第２の実施形態において、模擬カメラ系画像取得手段１４は、上述した第１の実施形態に示す処理に加えて、予め設定されたレンズシステムに対する設計値に製造誤差をランダムに付加したカメラ系を作成し、そのカメラ系で撮像した画像を取得する。なお、製造誤差は、上述したようにランダムに与えるだけでなく、例えば予め設定された誤差入力テーブル等を参照して所定の順序の製造誤差を加えてもよい。なお、上述した誤差入力テーブルは、例えば蓄積手段１３等に蓄積され、必要時に読み出して使用することができる。
【００５６】
内部パラメータ同定手段３１は、上述したように模擬カメラ系画像取得手段１４から得られる製造誤差等を設けた画像に対して、キャリブレーションにより内部パラメータを同定する。ここで、内部パラメータとは、カメラとレンズとの組み合わせによって決まるパラメータであり、例えば焦点距離ｆやレンズ歪み係数ｋ１，ｋ２、レンズ中心Ｃｘ，Ｃｙ、アスペクト比α、せん断歪み係数β、及び画像の角度係数等のうち、少なくとも１つのパラメータを示すが、本発明においてはこれに限定されるものではない。
【００５７】
また、カメラキャリブレーションとは、調整対象のカメラで何らかの物体（例えば、被写体等）を撮影し、その２次元画像から投影モデルに従ってカメラの内部パラメータ（例えば、焦点距離、レンズ中心、レンズ歪等）等を推定する処理等を示す。ここで、本実施形態では、主に内部パラメータに対するカメラキャリブレーションを行うこととするが、本発明においてはこれに限定されるものではなく、例えば内部パラメータの他にも外部パラメータ（例えば、姿勢、位置等）も用いることができ、これらを組み合わせることもできる。
【００５８】
なお、第２の実施形態におけるキャリブレーション方法としては、様々な手法を用いることができるが、例えばチャート等を用いてキャリブレーションする手法（例えば、特許第４２３４０５９号公報、又は、非特許文献「Ｚ．Ｚｈａｎｇ，"Ａ  ｆｌｅｘｉｂｌｅ  ｎｅｗ  ｔｅｃｈｎｉｑｕｅ  ｆｏｒ  ｃａｍｅｒａ  ｃａｌｉｂｒａｔｉｏｎ"，ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｐａｔｔｅｒｎ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｌｌｉｇｅｎｃｅ，２２：１３３０−１３３４，２０００．」等を参照）や、チャート以外に、例えばレーザ等を用いてキャリブレーションする手法（例えば、「佐川立昌，八木康史，"２つの平行光の観測による内部カメラパラメータの安定なキャリブレーション"，画像の認識・理解シンポジウム（ＭＩＲＵ２００７）予稿集，ｐｐ．６１５−６２０」等を参照）等を用いることができる。また、第２の実施形態では、複数のキャリブレーション方法のうち、処理精度（誤差）や処理時間、装置性能等に基づいて適宜選択して処理を行わせることができる。
【００５９】
画像補正手段３２は、内部パラメータ同定手段３１におけるキャリブレーションで同定された内部パラメータを用いて模擬カメラ系画像取得手段１４で取得した画像に対して画像処理による補正を行い、その補正した後の画像（第３の画像）を出力する。なお、補正内容としては、例えば、歪曲収差や画像の倍率等を補正する。また、本発明においてはこれに限定されるものではなく、その他にも例えば倍率色収差等を補正してもよい。
【００６０】
つまり、第２の実施形態における補正は、模擬カメラ系画像取得手段１４で取得した画像が、レンズシステムの設計値の焦点距離を用いたピンホールカメラ系（理想ピンホールカメラ系）で撮像した画像に近づくように補正を行う。
【００６１】
なお、第２の実施形態における視差誤差出力手段１６は、画像補正手段３２により得られる第３の画像と、上述したピンホールカメラ系画像取得手段１５により得られる画像（第２の画像）との差分値を出力し、ピンホールカメラを用いた三角測距の視差に対し、差分値を付加して視差誤差の予測値を出力する。
【００６２】
距離誤差出力手段３３は、視差誤差出力手段１６により得られた視差誤差の予測値に対する距離を計算し、その距離の誤差を出力する。
【００６３】
ここで、第２の実施形態では、例えば視差誤差出力手段１６や距離誤差出力手段３３における誤差算出の際には、ランダム値や予め設定された複数の異なる条件等により複数回（所定回数分）処理を行い、その平均値や最大誤差、最小誤差等を出力する処理を行うことができる。なお、所定回数分の処理を行う場合には、例えば上述した模擬カメラ系を複数設けることにより実現することができるが、本発明においてはこれに限定されるものではない。
【００６４】
更に、距離誤差出力手段３３は、例えば多数のカメラ系で距離誤差を取得した場合には、その距離誤差の最大値の分布を作成して出力してもよい。このとき、距離誤差出力手段３３は、視差の予測値を用いて距離を計算して誤差を出力し、多数のカメラの距離測定誤差の最大値の分布を出力した後、距離測定誤差の最大値の分布が所望の範囲に入っているか否かを判断する。そして、距離誤差出力手段３３は、最大値の分布が所望の範囲に入っていない場合に、所定の範囲内に入るように制御を行う。
【００６５】
＜第２の実施形態におけるカメラシミュレーション処理手順＞
次に、第２の実施形態におけるカメラシミュレーション処理手順について、フローチャートを用いて説明する。図５は、第２の実施形態におけるカメラシミュレーション処理手順の一例を示すフローチャートである。図５に示す処理では、まず設計値に製造誤差をランダムに付加した模擬カメラ系（リアルカメラ系）を作成する（Ｓ１１）。なお、Ｓ１１の処理では、模擬カメラ系として、例えば、各光学要素と機構部品に公差幅と製造誤差の発生のし易さを表す製造分布を与え、モンテカルロシミュレーション等により光学系の設計値に製造誤差を付加した光学系のデータを複数（例えば、１００〜１０００通り等）作成する。
【００６６】
次に、模擬カメラ系で撮像した画像を取得する（Ｓ１２）。ここで、Ｓ１２の処理では、例えば視差計算に用いる基準画像等を模擬カメラ系で撮像した画像を出力する。また、上述した基準画像としては、例えば格子状のチャートを用いることができる。格子状のチャートを用いた場合には、幾何光学的な計算だけで撮像のシミュレーションが可能であり、チャートの像のセンサ上での座標が出力される。
【００６７】
次に、キャリブレーションで内部パラメータを同定する（Ｓ１３）。具体的には、内部パラメータとして、例えば焦点距離ｆやレンズ歪み係数ｋ１，ｋ２、レンズ中心Ｃｘ，Ｃｙ、アスペクト比α、及びせん断歪み係数β等を取得する。次に、キャリブレーションで同定された内部パラメータを用いた画像処理で補正を行い、補正した後の画像を出力する（Ｓ１４）。ここでの補正は、上述したように、例えばレンズシステムの設計値の焦点距離を用いたピンホールカメラ系（理想ピンホールカメラ系）で得られた画像に近づけるような補正を行う。
【００６８】
次に、レンズシステムの設計値の焦点距離を用いたピンホールカメラ系（理想ピンホールカメラ系）で撮像した画像を取得する（Ｓ１５）。ここで、Ｓ１５の処理では、例えば視差計算に用いる基準画像を理想ピンホールカメラ系で撮像した画像を出力する。なお、基準画像は、上述したＳ１２で使用したものと同じものを用いる。これは、リアルカメラ系で撮像した画像と、理想ピンホールカメラ系で撮像した画像との差分値を比較するためである。
【００６９】
次に、両画像の差分値を視差誤差として出力する（Ｓ１６）。Ｓ１６の処理では、例えば、基準画像上の特定の点の理想ピンホールカメラ系での結像位置と、リアルカメラ系での結像位置との差をセンサ上での水平方向（ｕ軸方向）と垂直方向（ｖ軸方向）について計算し、その計算結果を視差誤差として出力する。なお、上述した基準画像上の特定の点の例としては、例えば格子状のチャートの格子点がある。この場合、チャートの各格子点について理想ピンホールカメラ系での結像位置と、リアルカメラ系での結像位置との差を出力する。また、第２の実施形態では、像の大きさがセンササイズと等しくなるようなチャートを選択することで、センサ全体での視差誤差の分布をシミュレーションすることができる。
【００７０】
次に、理想ピンホールカメラを用いた三角測距の視差に、Ｓ１６の処理にて得られた両画像の差分値を付加して視差の予測値を出力する（Ｓ１７）。なお、理想ピンホールカメラでの三角測距の視差の値ｄは、例えば、以下に示す式（１）で計算される。
ｄ＝Ｂ＊ｆ／Ｚ  ・・・（１）
ここで、上述した式（１）において、Ｂはステレオカメラにおける両カメラ間の基線長を示し、ｆはレンズ系の焦点距離の設計値を示し、Ｚはカメラから物体（例えば、被写体等）への距離を示している。
【００７１】
次に、Ｓ１７の処理で得られた視差の予測値を用いて距離を計算して誤差を出力する（Ｓ１８）。なお、Ｓ１８の処理において、視差の予測値を用いて距離Ｚを計算する場合には、例えば、以下に示す式（２）等を用いることができる。
Ｚ＝Ｂ＊ｆ／（ｄ＋△ｄ）  ・・・（２）
ここで、上述した式（２）において、Ｂはステレオカメラにおける両カメラ間の基線長を示し、ｆはレンズ系の焦点距離の設計値を示し、ｄ＋△ｄは視差誤差を付加した視差の予測値を示している。
【００７２】
なお、基準画像として格子状のチャートを用いた場合は、チャートの各格子点について視差の予測値を用いて計算した距離と、予め定めた距離の真値との差を格子点毎に出力する。
【００７３】
ここで、ランダム値等により予め設定された回数分（所定回数分）の処理を行ったか否かを判断し（Ｓ１９）。所定回数分の処理を行っていない場合（Ｓ１９において、ＮＯ）、Ｓ１１に戻り、設計値に付加する製造誤差をランダムに変更してＳ１１以降の処理を行う。
【００７４】
また、Ｓ１９の処理において、所定回数分の処理を行った場合（Ｓ１９において、ＹＥＳ）、複数の模擬カメラ系から得られる距離測定誤差に基づいて距離誤差を出力する（Ｓ２０）。なお、Ｓ２０の処理では、例えば複数の模擬カメラ系から得られる距離測定誤差の平均値を出力したり、最大の距離測定誤差を出力したり、最小の距離測定誤差を出力したり、標準偏差に基づく距離測定誤差を出力することができる。なお、本発明においては上述した出力手法に限定されるものではなく、例えば上述した出力手法の複数を組み合わせてもよい。
【００７５】
上述したように、第２の実施形態によれば、種々の製造誤差が付与されたカメラについてカメラパラメータのキャリブレーションを行った後の距離測定誤差をシミュレーションすることで、量産に適したカメラパラメータのキャリブレーション方法の開発を迅速に行うことができる。また、第２の実施形態によれば、距離測定誤差をシミュレーションすることで、ステレオカメラに最適なカメラの公差を決定することができる。
【００７６】
＜第３の実施形態：カメラシミュレーション装置：機能構成例＞
次に、第３の実施形態におけるカメラシミュレーション装置の機能構成例について図を用いて説明する。図６は、第３の実施形態におけるカメラシミュレーション装置の機能構成例を示す図である。なお、以下に示す説明では、第１及び第２の実施形態とほぼ同様の処理を行う構成については、同一の符号番号を付するものとし、ここでの具体的な説明は省略する。また、ハードウェア構成についても上述した第１の実施形態と同様に汎用のコンピュータ等で行うことができるため、ここでの説明は省略する。
【００７７】
図６に示すカメラシミュレーション装置４０は、入力手段１１と、出力手段１２と、蓄積手段１３と、模擬カメラ系画像取得手段１４と、ピンホールカメラ系画像取得手段１５と、視差誤差出力手段１６と、送受信手段１７と、制御手段１８と、内部パラメータ同定手段３１と、画像補正手段３２と、距離誤差出力手段３３と、キャリブレーション・公差設定手段４１とを有するように構成されている。
【００７８】
ここで、上述した第２の実施形態と第３の実施形態とを比較すると、第３の実施形態には、キャリブレーション・公差設定手段４１が新たに設けられている。
【００７９】
第３の実施形態において、キャリブレーション・公差設定手段４１は、距離誤差出力手段３３により得られる距離測定誤差の最大値の分布が、予め設定された範囲に入っているか否かを判断し、その判断結果を出力する。また、キャリブレーション・公差設定手段４１は、判断結果において、距離測定誤差の最大値の分布が予め設定された範囲内に入っていない場合には、再度、設計値に与える製造誤差の公差値等を修正し、新たな設定値を設定する。なお、キャリブレーション・公差設定手段４１は、公差値を再設定するだけでなく、例えばキャリブレーション方法を変更してもよく、またキャリブレーション方法及び公差値の両方を再設定してもよい。また、キャリブレーション・公差設定手段４１は、新たな設定値によりカメラシミュレーションを再度行うように制御手段１８等に指示を行う。
【００８０】
＜距離測定誤差の最大値の分布例＞
ここで、第３の実施形態における多数のカメラの距離測定誤差の最大値の分布を出力した結果の例について、図を用いて説明する。図７は、第３の実施形態における距離測定誤差の最大値の分布の一例を示す図である。なお、図７において、横軸は１００ｍからの誤差（ｍ）を示し、縦軸は頻度（回数）を示している。
【００８１】
つまり、図７の例では、カメラから１００ｍ前方にある物体を測距計算した際の誤差の画像上での最大値を横軸に取り、１０００個（パターン）のレンズシステムについて試行した際の出現頻度を縦軸に取ったヒストグラムを示している。
【００８２】
第３の実施形態におけるキャリブレーション・公差設定手段４１は、この距離測定誤差の最大値の分布が予め設定された範囲に入っているか否か、言い換えれば、この距離測定誤差の分布のうち、所望の範囲内に収まるレンズの割合が、基準値を満たすか否かにより、キャリブレーション方法及び／又は公差設定の良否を判断する。
【００８３】
なお、図７に示す横軸の値としては、所定距離からの誤差に限定されるものではなく、例えば距離測定誤差の平均値や分散、標準偏差等を用いることができる。また、本発明において、設定を変更して距離測定誤差を取得するためのレンズシステムの数についてもこれに限定されるものではなく、例えば１００以上の所定の個数であってもよい。
【００８４】
＜第３の実施形態におけるカメラシミュレーション処理手順＞
次に、第３の実施形態におけるカメラシミュレーション処理手順について、フローチャートを用いて説明する。図８は、第３の実施形態におけるカメラシミュレーション処理手順の一例を示すフローチャートである。
【００８５】
なお、図８に示す処理において、Ｓ２１〜Ｓ２９における処理は、上述した第２の実施形態におけるカメラシミュレーション処理のＳ１１〜Ｓ１９と同様であるため、ここでの説明は省略する。
【００８６】
第３の実施形態におけるＳ２９の処理において、所定回数分の処理を行った場合（Ｓ２９において、ＹＥＳ）、複数の模擬カメラ系から得られる距離測定誤差の最大値の分布を出力する（Ｓ３０）。なお、Ｓ３０の処理は、例えば、予め設定された複数のカメラの距離測定誤差の最大値の分布を出力する工程であり、キャリブレーション方法の良否の判断に用いる指標としては、例えば、その他に距離測定誤差の平均値や標準偏差等を用いることもでき、それらを組み合わせることもできる。
【００８７】
次に、Ｓ３０の処理終了後、最大値の分布が所定の範囲内にあるか否かを判断する（Ｓ３１）。ここで、Ｓ３１の処理において、最大値の分布が所定の範囲内にない場合（Ｓ３１において、ＮＯ）、キャリブレーション方法又は公差設定の良否判定を「否」と判定し（Ｓ３２）、設計値に与える製造誤差の公差値を修正し（Ｓ３３）、新たな設定値を用いて、上述したＳ２１の処理に戻り、後続の処理を再度行う。なお、上述したＳ３３の処理においては、キャリブレーション方法を変更してもよく、また、キャリブレーション方法及び公差値を変更（再設定）してもよい。
【００８８】
また、Ｓ３１の処理において、最大の分布が所定の範囲内にある場合（Ｓ３１において、ＹＥＳ）、キャリブレーション方法又は公差設定の良否判定を「良」と判定し（Ｓ３４）、処理を終了する。
【００８９】
つまり、上述したＳ３１〜Ｓ３４の処理では、距離測定誤差の分布が所望の範囲内にあるかでキャリブレーション方法又は公差設定の良否を判断する工程であり、距離測定誤差の分布が所望の範囲内にない場合はキャリブレーション方法又は公差設定を変更して、最初から繰り返す。
【００９０】
上述したように、第３の実施形態によれば、種々の製造誤差が付与されたカメラについてカメラパラメータのキャリブレーションを行った後の距離測定誤差をシミュレーションすることで、量産に適したカメラパラメータのキャリブレーション方法の開発を迅速に行うことができる。また、第３の実施形態によれば、ステレオカメラに最適なカメラの公差を決定することができる。なお、上述した第１〜第３の実施形態は、各構成の一部を適宜組み合わせて適用することができる。
【００９１】
上述したように、本実施形態によれば、効率的にカメラパラメータのキャリブレーションを行うことができる。具体的には、本発明によれば、種々の製造誤差が付与されたカメラについてカメラパラメータのキャリブレーションを行った後の距離測定誤差を、実際のカメラを使用せずにシミュレーションにより求めることができる。つまり、現実のレンズシステムを模擬した模擬カメラ系による画像と、ステレオ法による距離計算に用いる理想のカメラ系による画像との比較がシミュレーション上で実現することで、量産に適したカメラパラメータのキャリブレーション方法の開発を迅速に行うことができる。
【００９２】
更に、本発明によれば、例えば、ある公差値を入力してシミュレーションを行い、出力された測距誤差が所望の範囲外であれば、公差値を再設定した後に再度シミュレーションを行い、測距誤差が所望の範囲内になるまでシミュレーションを繰り返し行う。これにより、本発明は、距離測定精度を基準にして公差設定を行うことができ、ステレオカメラに最適なカメラの公差を決定することができる。
【００９３】
なお、本発明に係るカメラシミュレーション装置、カメラシミュレーション方法、及びカメラシミュレーションプログラムは、例えばステレオカメラ等における各種カメラのレンズシステムの開発、或いはステレオカメラ等を用いた測距装置や３次元形状認識装置等に適用したり、例えば車載用のステレオカメラ等において、本発明におけるシミュレーション結果に基づいて適切なレンズシステムを採用する等といった広い分野に適用することができる。
【００９４】
以上本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【符号の説明】
【００９５】
１０，３０，４０  カメラシミュレーション装置
１１  入力手段
１２  出力手段
１３  蓄積手段
１４  模擬カメラ系画像取得手段
１５  ピンホールカメラ系画像取得手段
１６  視差誤差出力手段
１７  送受信手段
１８  制御手段
２１  入力装置
２２  出力装置
２３  ドライブ装置
２４  補助記憶装置
２５  メモリ装置
２６  ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）
２７  ネットワーク接続装置
２８  記録媒体
３１  内部パラメータ同定手段
３２  画像補正手段
３３  距離誤差出力手段
４１  キャリブレーション・公差設定手段
【先行技術文献】
【特許文献】
【００９６】
【特許文献１】特開２００６−９８５５８号公報
【図１】
0005760558.tif 000002
【図２】
0005760558.tif 000003
【図３】
0005760558.tif 000004
【図４】
0005760558.tif 000005
【図５】
0005760558.tif 000006
【図６】
0005760558.tif 000007
【図７】
0005760558.tif 000008
【図８】
0005760558.tif 000009