(57)【要約】【課題】画像の合成ずれを補償すること。【解決手段】補償装置１００は、カメラの像高および焦点距離を含むパラメータで定義される入射角と、像高との関係を示す第１線分を推定し、焦点距離を変化させた場合の像高と入射角との関係を示す第２線分を算出する。補償装置１００は、第１線分と第２線分と基準入射角の線分とを基にして特定される像高ずれおよび入射角ずれを画素ずれに変換することで、焦点距離の変化量と、画素ずれと対応付けたテーブルを生成する。補償装置１００は、第１カメラに撮影された画像をパラメータで展開した第１展開画像と、第２カメラに撮影された画像をパラメータで展開した第２展開画像とを基にして画素ずれを特定し、特定した画素ずれとテーブルとを基にして、焦点距離のずれ量を算出する。【選択図】図１
2019201292.tif 000002
【特許請求の範囲】
【請求項１】
カメラの像高および焦点距離を含むパラメータで定義される入射角と、前記像高との関係を示す第１線分を推定し、
前記焦点距離を変化させた場合の前記像高と前記入射角との関係を示す第２線分を算出し、
前記第１線分と前記第２線分と基準入射角の線分とを基にして特定される像高ずれおよび入射角ずれを画素ずれに変換することで、前記焦点距離の変化量と、前記画素ずれと対応付けたテーブルを生成し、
第１カメラに撮影された画像を前記パラメータで展開した第１展開画像と、第２カメラに撮影された画像を前記パラメータで展開した第２展開画像とを基にして画素ずれを特定し、
特定した画素ずれと前記テーブルとを基にして、焦点距離のずれ量を算出する
処理をコンピュータに実行させることを特徴とする補償プログラム。
【請求項２】
前記焦点距離のずれ量を基にして、前記パラメータに含まれる焦点距離を修正する処理を更にコンピュータに実行させることを特徴とする請求項１に記載の補償プログラム。
【請求項３】
前記焦点距離のずれ量を基にして、前記第１展開画像を展開する際の像高および前記第２展開画像を展開する際の像高を修正する処理を更にコンピュータに実行させることを特徴とする請求項１に記載の補償プログラム。
【請求項４】
前記第１展開画像と前記第２展開画像とを合成する処理を更にコンピュータに実行させることを特徴とする請求項２または３に記載の補償プログラム。
【請求項５】
コンピュータが実行する補償方法であって、
カメラの像高および焦点距離を含むパラメータで定義される入射角と、前記像高との関係を示す第１線分を推定し、
前記焦点距離を変化させた場合の前記像高と前記入射角との関係を示す第２線分を算出し、前記第１線分と前記第２線分と基準入射角とを基にして特定される像高ずれおよび入射角ずれを画素ずれに変換することで、前記焦点距離の変化量と、前記画素ずれと対応付けたテーブルを生成し、
第１カメラに撮影された画像を前記パラメータで展開した第１展開画像と、第２カメラに撮影された画像を前記パラメータで展開した第２展開画像とを基にして画素ずれを特定し、
特定した画素ずれと前記テーブルとを基にして、焦点距離のずれ量を算出する
処理を実行することを特徴とする補償方法。
【請求項６】
カメラの像高および焦点距離を含むパラメータで定義される入射角と、前記像高との関係を示す第１線分を推定する推定部と、
前記焦点距離を変化させた場合の前記像高と前記入射角との関係を示す第２線分を算出し、前記第１線分と前記第２線分と基準入射角とを基にして特定される像高ずれおよび入射角ずれを画素ずれに変換することで、前記焦点距離の変化量と、前記画素ずれと対応付けたテーブルを生成する生成部と、
第１カメラに撮影された画像を前記パラメータで展開した第１展開画像と、第２カメラに撮影された画像を前記パラメータで展開した第２展開画像とを基にして画素ずれを特定し、特定した画素ずれと前記テーブルとを基にして、焦点距離のずれ量を算出する算出部と
を有することを特徴とする補償装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、補償プログラム等に関する。
【背景技術】
【０００２】
近年、複数の円周魚眼レンズを用いたカメラは、３６０度全方位を撮影することが可能であり、ＶＲ（Virtual  Reality）、ＡＲ（Augmented  Reality）等に適用することが考えられている。ここで、円周魚眼レンズのカメラで撮影される画像には歪みが含まれるため、キャリブレーションを行うことで、カメラパラメータを推定し、カメラパラメータを基にして、歪みを取り除く補正が行われる。以下の説明では、円周魚眼レンズを用いたカメラを、単に「カメラ」と表記する。
【０００３】
図１３および図１４は、従来のキャリブレーションを説明するための図である。従来技術は、各格子の長さが既知の格子パターン１０を複数のカメラで撮影する。たとえば、図１３に示すように、２つのカメラで格子パターン１０をそれぞれ撮影すると、画像１１ａ，１１ｂが撮影される。画像１１ａ、１１ｂをまとめて画像１１と表記する。
【０００４】
なお、一つのカメラの単体のキャリブレーションでは、各格子の長さが既知の格子パターン１０を複数の位置に配置したものを撮影しており、複数の画像から内部パラメータと、格子の外部パラメータを推定する。また、例えば一方のカメラと他方のカメラが同じ位置に配置された格子パターンを撮影した結果から、相対位置を推定する。
【０００５】
従来技術は、キャリブレーションを行う際に、画像１１から格子点を検出し、格子点の入射角と像高との関係を推定する。円周魚眼レンズでは、仮想球面を仮定して、格子点を、像面に写像している。図１４に示す例では、格子点１０ａは、仮想球面５に入射角θａで入射し、像面２０上の点２０ａに写像されている。なお、入射角θａの像高は、像高２１ａとなる。
【０００６】
ここで、図１４で説明した仮想球面のモデルでは、入射角は対象物の距離に依存せず、光軸中心の高さは常に同一であると仮定している。図１５は、従来のモデルを説明するための図である。図１５に示すように、格子点１０ｂ，１０ｃは、入射角θｂにより入射し、光軸中心５ａを通って、入射角θｂに対応する像高に写像される。格子点１０ｄ，１０ｅは、入射角θｄにより入射し、光軸中心５ａを通り、入射角θｄに対応する像高に写像される。
【０００７】
従来技術は、各格子点の３次元上の座標と、上記仮想球面のモデルに各格子点を入射した場合の像高とを関係を基にして、カメラの内部パラメータおよび外部パラメータを推定する。なお、第１カメラおよび第２カメラに対するキャリブレーションでは、カメラパラメータとして、第１カメラの内部パラメータ、第２カメラの内部パラメータ、第１カメラと第２カメラとの相対的な外部パラメータが推定される。
【０００８】
続いて、推定したカメラパラメータを用いて、複数のカメラにより撮影した画像を合成する従来技術について説明する。図１６は、従来の画像の合成処理を説明するための図である。図１６に示す例では、カメラ１５ａ，１５ｂを用いて、対象物１６ａ，１６ｂ，１６ｃを撮影するものとする。カメラ１５ａ，１５ｂは、円周魚眼レンズを用いたカメラである。
【０００９】
従来技術は、カメラ１５ａの内部パラメータと、相対的な外部パラメータとを基にして、カメラ１５ａが撮影した画像から、第１正距円筒図を展開する。従来技術は、カメラ１５ｂの内部パラメータと、相対的な外部パラメータとを基にして、カメラ１５ｂが撮影した画像から、第２正距円筒図を展開する。従来技術は、第１正距円筒図と、第２正距円筒図とを合成することで、全方位の画像を生成する。従来技術では、対象物１６ａ，１６ｂのように、距離が近い対象物については、視差の影響を考慮して視差補正を行う場合がある。なお、対象物１６ａ、１６ｂからの距離が十分遠い対象物１６ｃについては、合成ずれがないことを前提としている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１３−２５２５５号公報
【特許文献２】特開２０１３−１８７８６０号公報
【特許文献３】特開２００５−２４４８６１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、上述した従来技術では、画像の合成ずれを補償することができないという問題がある。
【００１２】
図１５で説明したように、従来技術で用いる仮想球面のモデルでは、対象物の距離、入射角によらず光軸中心の高さは同一であると仮定している。しかし、実際の光学系では、入射角によって、光軸中心の高さが異なる。また、光軸中心の高さを同一と仮定すると、対象物の距離によって入射角が一意に定まらない。
【００１３】
図１７は、仮想球面のモデルと光学系との乖離を説明するための図である。格子点１０ｄ，１０ｅは、入射角θｄにより入射し、球面６の光軸中心６ａを通って、入射角θｂに対応する像高に写像される。これに対して、格子点１０ｂ，１０ｃは、入射角θｂ’により入射し、球面６の光軸中心６ｂを通って、入射角θｂ’に対応する像高に写像される。なお、光学中心の高さを同一と仮定すると、格子点１０ｂの入射角はθＢとなり、格子点１０ｃの入射角はθＣとなり、一意に定まらない。円周魚眼レンズでは、水平に近い対象物ほど、対象物の距離によって入射角が一意に定まらないという特徴がある。
【００１４】
上記のように、仮想球面のモデルと光学系とが乖離しているため、仮想球面のモデルを用いたキャリブレーションを行ってカメラパラメータを求めると、第１正距円筒図と、第２正距円筒図とを合成した場合に、遠方の対象物について合成ずれが生じる。図１８は、合成ずれの一例を示す図である。図１８に示す例では、領域７において、合成ずれが生じている。
【００１５】
１つの側面では、本発明は、画像の合成ずれを補償することができる補償プログラム、補償方法および補償装置を提供することを目的とする。
【課題を解決するための手段】
【００１６】
第１の案では、補償プログラムは、コンピュータに以下の処理を実行させる。コンピュータは、カメラの像高および焦点距離を含むパラメータで定義される入射角と、像高との関係を示す第１線分を推定し、焦点距離を変化させた場合の像高と入射角との関係を示す第２線分を算出する。コンピュータは、第１線分と第２線分と基準入射角の線分とを基にして特定される像高ずれおよび入射角ずれを画素ずれに変換することで、焦点距離の変化量と、画素ずれと対応付けたテーブルを生成する。コンピュータは、第１カメラに撮影された画像をパラメータで展開した第１展開画像と、第２カメラに撮影された画像をパラメータで展開した第２展開画像とを基にして画素ずれを特定し、特定した画素ずれとテーブルとを基にして、焦点距離のずれ量を算出する。
【発明の効果】
【００１７】
画像の合成ずれを補償することができる。
【図面の簡単な説明】
【００１８】
【図１】図１は、本実施例１に係る補償装置の構成を示す機能ブロック図である。
【図２】図２は、本実施例１に係るルックアップテーブルのデータ構造の一例を示す図である。
【図３】図３は、本実施例１に係る生成部の処理を説明するための図である。
【図４】図４は、本実施例１に係る算出部の処理を説明するための図である。
【図５】図５は、修正前後の入射角および像高の関係を示す図である。
【図６】図６は、焦点距離と像高との関係を示す図である。
【図７】図７は、修正前後の合成画像情報の一例を示す図である。
【図８】図８は、本実施例１に係る補償装置の処理手順を示すフローチャートである。
【図９】図９は、ルックアップテーブル生成処理の処理手順を示すフローチャートである。
【図１０】図１０は、本実施例２に係る補償装置の構成を示す機能ブロック図である。
【図１１】図１１は、本実施例２に係る補償装置の処理手順を示すフローチャートである。
【図１２】図１２は、補償装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【図１３】図１３は、従来のキャリブレーションを説明するための図（１）である。
【図１４】図１４は、従来のキャリブレーションを説明するための図（２）である。
【図１５】図１５は、従来のモデルを説明するための図である。
【図１６】図１６は、従来の画像の合成処理を説明するための図である。
【図１７】図１７は、仮想球面のモデルと光学系との乖離を説明するための図である。
【図１８】図１８は、合成ずれの一例を示す図である。
【発明を実施するための形態】
【００１９】
以下に、本願の開示する補償プログラム、補償方法および補償装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００２０】
図１は、本実施例１に係る補償装置の構成を示す機能ブロック図である。図１に示すように、この補償装置１００は、カメラ１１０ａ，１１０ｂと、通信部１２０と、入力部１３０と、表示部１４０と、記憶部１５０と、制御部１６０とを有する。
【００２１】
カメラ１１０ａ，１１０ｂは、円周魚眼レンズによって画像を撮影するカメラである。カメラ１１０ａ，１１０ｂは、撮影した画像の情報（画像情報）を、制御部１６０に出力する。なお、カメラ１１０ａ，１１０ｂは、ネットワーク上に接続されていてもよい。以下の説明では、特に区別する場合を除いて、カメラ１１０ａ，１１０ｂをまとめて、「カメラ１１０」と表記する。
【００２２】
通信部１２０は、ネットワークを介して、他の装置とデータ通信を実行する処理部である。たとえば、ネットワーク上にカメラ１１０が接続されている場合には、通信部１２０は、ネットワークを介して、カメラ１１０から画像情報を受信し、受信した画像情報を制御部１６０に出力する。
【００２３】
入力部１３０は、利用者が各種の情報を入力するための入力装置である。入力部１３０は、キーボードやマウス、タッチパネル等に対応する。
【００２４】
たとえば、利用者は、補償装置１００にキャリブレーションを実行させる場合に、予め定められた位置に、格子パターン１０を配置し、カメラ１１０に撮影させる。予め定められた位置に格子パターン１０を配置することで、補償装置１００は、格子パターン１０の格子点の３次元座標を既知のものとして取り扱うことができる。たとえば、利用者は、格子パターン１０を配置した際に、入力部１３０を操作して、キャリブレーションの実行要求を、補償装置１００に入力する。
【００２５】
表示部１４０は、制御部１６０から出力される情報を表示する表示装置である。表示部１４０は、液晶ディスプレイやタッチパネル等に対応する。たとえば、表示部１４０は、制御部１６０により生成される合成画像情報１５０ｅを表示する。合成画像情報１５０ｅは、カメラ１１０ａ，１１０ｂにより撮影された各画像情報を合成した情報である。
【００２６】
記憶部１５０は、バッファ１５０ａ、カメラパラメータ情報１５０ｂ、ルックアップテーブル１５０ｃ、展開図情報１５０ｄ、合成画像情報１５０ｅを有する。記憶部１５０は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子や、ＨＤＤ（Hard  Disk  Drive）などの記憶装置に対応する。
【００２７】
バッファ１５０ａは、カメラ１１０により撮影された各画像情報を格納するバッファである。たとえば、バッファ１５０ａは、カメラ１１０ａにより撮影された画像情報と、カメラ１１０ｂにより撮影された画像情報とを区別して格納する。
【００２８】
カメラパラメータ情報１５０ｂは、カメラ１１０の各カメラパラメータを保持する情報である。たとえば、カメラパラメータ情報１５０ｂは、カメラ１１０ａの内部パラメータ、カメラ１１０ｂの内部パラメータ、カメラ１１０ａとカメラ１１０ｂとの相対的な外部パラメータを含む。
【００２９】
内部パラメータは、焦点距離、光軸点の座標、歪み係数、後述する係数等を含む。相対的な外部パラメータは、カメラ１１０ａとカメラ１１０ｂとの相対的な向き（回転ベクトル）、相対的なカメラの位置（並進ベクトル）とを含む。３次元上の座標は、内部パラメータおよび外部パラメータに基づいて、２次元上の座標と対応付けられる。
【００３０】
ここで、本実施例１では、カメラ１１０ａの像高ρ１と焦点距離ｆ１との比で、入射角θ１を定義し、式（１）に示すものとなる。また、カメラ１１０ｂの像高ρ２と焦点距離ｆ２との比で、入射角θ２を定義し、式（２）に示すものとなる。式（１）に含まれるｋ１１、ｋ１２、ｋ１３、ｋ１４は、カメラ１１０ａの内部パラメータの一部である。式（２）に含まれるｋ２１、ｋ２２、ｋ２３、ｋ２４は、カメラ１１０ｂの内部パラメータの一部である。
【数１】
2019201292.tif 000003
【数２】
2019201292.tif 000004
【００３１】
ルックアップテーブル１５０ｃは、画素ずれと、焦点距離の誤差との関係を示すテーブルである。画素ずれは、カメラ１１０により撮影された画像情報の正距円筒図と、カメラ１１０ｂにより撮影された画像情報の正距円筒図との画素ずれを示すものである。なお、ルックアップテーブル１５０ｃは、カメラ１１０ａに対応するルックアップテーブルと、カメラ１１０ｂに対応するルックアップテーブルとを有するが、ここでは一例として、カメラ１１０ａに対応するルックアップテーブルについて説明を行う。カメラ１１０ｂに対応するルックアップテーブルの説明は省略する。
【００３２】
図２は、本実施例１に係るルックアップテーブルのデータ構造の一例を示す図である。図２に示すように、ルックアップテーブル１５０ｃにおいて、縦軸は画素ずれの大きさ（たとえば、ピクセル）を示す。横軸は焦点距離の誤差（ｄｆ）を示す。ルックアップテーブル１５０ｃにより、画素ずれが決まると、焦点距離の誤差ｄｆが一意に定まる。このルックアップテーブル１５０ｃは、後述する生成部１６０ｄにより生成される。
【００３３】
展開図情報１５０ｄは、第１正距円筒図と第２正距円筒図とを含む。第１正距円筒図は、カメラ１１０ａにより撮影された画像情報に基づいて生成される正距円筒図である。第２正距円筒図は、カメラ１１０ｂにより撮影された画像情報に基づいて生成される正距円筒図である。
【００３４】
合成画像情報１５０ｅは、第１正距円筒図と、第２正距円筒図とを合成（ブレンド処理）することで得られる画像情報である。
【００３５】
制御部１６０は、取得部１６０ａ、キャリブレーション実行部１６０ｂ、推定部１６０ｃ、生成部１６０ｄ、展開部１６０ｅ、合成部１６０ｆ、算出部１６０ｇを有する。制御部１６０は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などによって実現できる。また、制御部１６０は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などのハードワイヤードロジックによっても実現できる。
【００３６】
取得部１６０ａは、カメラ１１０から画像情報を取得し、取得した画像情報をバッファ１５０ａに格納する処理部である。
【００３７】
キャリブレーション実行部１６０ｂは、バッファ１５０ａに格納された画像情報を基にして、キャリブレーションを実行し、カメラパラメータ情報１５０ｂを生成する処理部である。キャリブレーション実行部１６０ｂは、入力部１３０から、キャリブレーションの実行要求を受け付けた場合に、処理を実行する。
【００３８】
キャリブレーション実行部１６０ｂは、どのような従来技術を用いてカメラパラメータ情報１５０ｂを生成してもよい。なお、キャリブレーション実行部１６０ｂがキャリブレーションを実行する場合には、図１５で説明した、仮想球面のモデルを用いる。この仮想球面のモデルは、対象物（格子点）の距離、入射角によらず光軸中心の高さは同一であると仮定するモデルである。
【００３９】
たとえば、キャリブレーション実行部１６０ｂは、バッファ１５０ａに格納された画像情報から各格子点を検出する。キャリブレーション実行部１６０ｂは、仮想球面のモデルによる入射角と像高との関係から、各格子点をそれぞれ写像し、写像された各格子点を結んだ線分が、格子状の直線となるような内部パラメータを探索する。キャリブレーション実行部１６０ｂは、カメラ１１０ａ、カメラ１１０ｂについて、内部パラメータを探索し、カメラパラメータ情報１５０ｂに設定する。
【００４０】
キャリブレーション実行部１６０ｂは、画像情報上の各格子点の２次元座標と、既知となる各格子点の３次元座標との対応関係から、外部パラメータを探索する。キャリブレーション実行部１６０ｂは、カメラ１１０ａ、カメラ１１０ｂについて、外部パラメータを探索する。キャリブレーション実行部１６０ｂは、各外部パラメータの相対値を、相対的な外部パラメータとして算出し、カメラパラメータ情報１５０ｂに設定する。
【００４１】
推定部１６０ｃは、カメラ１１０で用いられる円周魚眼レンズについて、光学系の入射角と像高との関係を推定する処理部である。推定部１６０ｃは、推定結果を生成部１６０ｄに出力する。
【００４２】
たとえば、推定部１６０ｃは、既知となる格子パターン１０の各格子の交点と、画像情報から検出される各格子の交点との対応に基づき、像高ρと焦点距離ｆとの多項式により、入射角と像高との関係を推定する。像高ρと焦点距離ｆとの多項式は、式（１）、（２）に示す多項式である。ここでは、推定部１６０ｃが、自動で光学系の入射角と像高との関係を推定する場合について説明したが、利用者が手動で、光学系の入射角と像高との関係を推定し、推定結果を補償装置１００に入力してもよい。推定部１６０ｃは、カメラ１１０ａにおける、光学系の入射角と像高との関係、および、カメラ１１０ｂにおける、光学系の入射角と像高との関係を、それぞれ推定するものとする。
【００４３】
生成部１６０ｄは、光学系の入射角と像高との関係を用いて、ルックアップテーブル１５０ｃを生成する処理部である。図３は、本実施例１に係る生成部の処理を説明するための図である。図３のグラフの横軸は像高に対応するものであり、縦軸は入射角に対応するものである。線分２５ａは、推定部１６０ｃから取得する、光学系の入射角と像高との関係を示す線分である。
【００４４】
生成部１６０ｄは、式（３）に示す焦点距離の誤差ｄｆを変更することで、焦点距離ｆを変更する。生成部１６０ｄは、誤差ｄｆを変更し、入射角と像高との関係を変更し、変更結果から得られる像高ずれおよび入射角ずれを画素ずれに変換する処理を繰り返し実行することで、焦点距離の誤差と画素ずれの関係を得、ルックアップテーブル１５０ｃを生成する。
【００４５】
ｆ＝ｆ（１＋ｄｆ）・・・（３）
【００４６】
図３に示す線分２５ａは、「ｄｆ＝０」の場合の入射角と像高との関係を示す図である。たとえば、生成部１６０ｄは、「ｄｆ＝０．０１５」に設定することで焦点距離ｆを変更し、この変更した焦点距離ｆと、式（１）とを基にして、入射角と像高との関係を示す線分２５ｂを得る。生成部１６０ｄは、入射角０を通る線分３０と、線分２６ｂとの交点２６ｂを通る線分２７ｂを設定する。生成部１６０ｄは、交点２６ａと交点２６ｂとの距離を、「像高ずれ（像高半径ずれ）」として算出する。交点２６ａは、線分３０と線分２５ａとの交点である。生成部１６０ｄは、交点２８ａと交点２６ｂとの入射角（ｒａｄ）を、「入射角ずれ」として算出する。交点２８ａは、線分２５ａと線分２７ｂとの交点である。
【００４７】
生成部１６０ｄは、入射角ずれと、画素ずれとの関係を定義した画素ずれ変換テーブル（図示略）を保持している。生成部１６０ｄは、交点２８ａと交点２６ｂとの入射角ずれと、画素ずれ変換テーブルとを比較して、画素ずれを得る。これにより、生成部１６０ｄは、焦点距離の誤差ｄｆ＝０．０１５と、画素ずれとの関係を特定することができる。
【００４８】
また、生成部１６０ｄは、「ｄｆ＝−０．０１５」に設定することで焦点距離ｆを変更し、この変更した焦点距離ｆと、式（１）とを基にして、入射角と像高との関係を示す線分２５ｃを得る。生成部１６０ｄは、入射角０を通る線分３０と、線分２６ｃとの交点２６ｃを通る線分２７ｃを設定する。生成部１６０ｄは、交点２６ａと交点２６ｃとの距離を、「像高ずれ（像高半径ずれ）」として算出する。生成部１６０ｄは、交点２８ｂと交点２６ｃとの入射角（ｒａｄ）を、「入射角ずれ」として算出する。交点２８ｂは、線分２５ａと線分２７ｃとの交点である。
【００４９】
生成部１６０ｄは、交点２８ｂと交点２６ｃとの入射角ずれと、画素ずれ変換テーブルとを比較して、画素ずれを得る。これにより、生成部１６０ｄは、焦点距離の誤差ｄｆ＝−０．０１５と、画素ずれとの関係を特定することができる。
【００５０】
生成部１６０ｄは、焦点距離の誤差ｄｆを変えながら、誤差ｄｆと画素ずれとの関係を算出する処理を繰り返し実行することで、カメラ１１０ａに対応するルックアップテーブル１５０ｃの情報を生成する。同様に、生成部１６０ｄは、式（２）を基にして、焦点距離の誤差ｄｆを変えながら、誤差ｄｆと画素ずれとの関係を算出する処理を繰り返し実行することで、カメラ１１０ｂに対応するルックアップテーブル１５０ｃの情報を生成する。
【００５１】
図１の説明に戻る。後述する展開部１６０ｅ、合成部１６０ｆ、算出部１６０ｇは、上述したキャリブレーション実行後に処理を行う。また、展開部１６０ｅ、合成部１６０ｆ、算出部１６０ｇが処理を行う場合には、格子パターン１０は配置されていなくてもよい。
【００５２】
展開部１６０ｅは、カメラパラメータ情報１５０ｂと、バッファ１５０ａに格納された画像情報とを基にして、展開図情報１５０ｄを生成する処理部である。たとえば、展開部１６０ｅは、カメラ１１０ａに撮影された画像情報、カメラ１１０ａの内部パラメータ、相対的な外部パラメータを基にして、第１正距円筒図の情報を生成する。展開部１６０ｅは、カメラ１１０ｂに撮影された画像情報と、カメラ１１０ｂの内部パラメータ、相対的な外部パラメータを基にして、第２正距円筒図の情報を生成する。
【００５３】
展開部１６０ｅは、第１正距円筒図の情報を生成する場合に、内部パラメータ、相対的な外部パラメータを基にして、第１正距円筒図上の赤道中心位置を特定し、特定した赤道中心位置の情報を、第１正距円筒図の情報に付与する。展開部１６０ｅは、第２正距円筒図の情報を生成する場合に、内部パラメータ、相対的な外部パラメータを基にして、第２正距円筒図上の赤道中心位置を特定し、特定した赤道中心位置の情報を、第２正距円筒図の情報に付与する。
【００５４】
合成部１６０ｆは、展開図情報１５０ｄに含まれる第１正距円筒図と、第２正距円筒図とを合成（ブレンド処理）し、合成画像情報１５０ｅを生成する処理部である。たとえば、合成部１６０ｆは、第１正距円筒図の赤道中心位置と、第２正距円筒図の赤道中心位置とを重複させて、合成画像情報１５０ｅを生成する。
【００５５】
算出部１６０ｇは、合成画像情報１５０ｅを基にして、画素ずれを算出する処理部である。たとえば、算出部１６０ｇは、合成画像情報１５０ｅに含まれる第１正距円筒図と第２正距円筒図とのつなぎ目付近の領域を走査して、画素ずれを算出する。
【００５６】
図４は、本実施例１に係る算出部の処理を説明するための図である。図４に示す合成画像情報１５０ｅは、第１正距円筒図１５１ａと、第２正距円筒図１５１ｂとが、赤道１５２ａ（つなぎ目）により合成されているものとする。算出部１６０ｇは、赤道１５２ａを基準とする所定の範囲１５２ｂについて、形状検出（エッジ検出等）を行い、画素ずれを推定する。
【００５７】
図４に示す例では、所定の範囲１５２ｂから、形状４０ａ，４０ｂと、形状４１ａ，４１ｂとが検出されている。算出部１６０ｇは、画素値の一致率などを基にして、類似度を算出し、類似度を基にして、類似する形状の組を特定する。たとえば、形状４０ａは、形状４０ｂに対応し、形状４１ａは、形状４１ｂに対応するものとする。
【００５８】
算出部１６０ｇは、形状４０ａと形状４０ｂとの画素ずれ４０ｃを算出する。算出部１６０ｇは、形状４１ａと形状４１ｂとの画素ずれ４１ｃを算出する。算出部１６０ｇは、類似する形状の組が複数存在する場合には、各画素ずれの平均値、最大値、または、最小値を、最終的な画素ずれとして算出する。以下の説明では、最終的な画素ずれを、単に「画素ずれ」と表記する。
【００５９】
続いて、算出部１６０ｇは、画素ずれを算出すると、画素ずれとルックアップテーブル１５０ｃとを比較して、ずれ補償パラメータを特定し、ずれ補償パラメータにより、カメラパラメータ情報１５０ｂを修正する処理を実行する。
【００６０】
算出部１６０ｇは、画素ずれと、カメラ１１０ａに対応するルックアップテーブル１５０ｃの情報とを比較して、焦点距離の誤差ｄｆを特定する。算出部１６０ｇは、特定した誤差ｄｆを、カメラ１１０ａに対応する、ずれ補償パラメータｄｆ１とする。算出部１６０ｇは、ずれ補償パラメータｄｆ１により、カメラパラメータ情報１５０ｂを修正する。具体的には、算出部１６０ｇは、カメラ１１０ａに対応する内部パラメータの焦点距離を焦点距離ｆ１から焦点距離ｆ１（１＋ｄｆ１）に修正する。
【００６１】
算出部１６０ｇが、上記の修正を行うことで、入射角と像高との関係は、式（４）に示すものとなる。
【００６２】
【数３】
2019201292.tif 000005
【００６３】
算出部１６０ｇは、画素ずれと、カメラ１１０ｂに対応するルックアップテーブル１５０ｃの情報とを比較して、焦点距離の誤差ｄｆを特定する。算出部１６０ｇは、特定した誤差ｄｆを、カメラ１１０ｂに対応する、ずれ補償パラメータｄｆ２とする。算出部１６０ｇは、ずれ補償パラメータｄｆ２により、カメラ１１０ｂに対応する内部パラメータの焦点距離を焦点距離ｆ２から焦点距離ｆ２（１＋ｄｆ２）に修正する。
【００６４】
算出部１６０ｇが、上記の修正を行うことで、入射角と像高との関係は、式（５）に示すものとなる。
【００６５】
【数４】
2019201292.tif 000006
【００６６】
図５は、修正前後の入射角および像高の関係を示す図である。ここでは一例として、カメラ１１０ａの円周魚眼レンズの入射角および像高の関係について説明する。図５の縦軸は入射角に対応し、横軸は像高に対応する。線分２５ｄは、焦点距離を修正する前の入射角と像高との関係を示すものである。線分２５ｅは、焦点距離を修正した後に入射角と像高との関係を示すものである。線分２５ｅは、光学系の入射角と像高との関係に合わせたものであるため、線分２５ｄの関係で合成画像情報１５０ｅを作成した場合に発生する画素ずれを補償することが可能となる。
【００６７】
図１５および図１７で説明したように、実際の光学系と仮想球面のモデルとでは、入射角が異なっており、入射角が異なるということは、焦点距離ｆが異なっていることに相当するといえる。このため、焦点距離ｆの誤差を、ずれ補償パラメータで修正することで、像高のずれを補償し、画素ずれを補償する。
【００６８】
図６は、焦点距離と像高との関係を示す図である。たとえば、ある入射角で入射した点に対応する像高は、実際にはρ（１＋ｄｆ）となるが、仮想球面のモデルを用いると、像高はρとなる。この像高ρと像高ρ（１＋ｄｆ）との相違により、画素ずれが発生する。このため、補償装置１００は、ずれ補償パラメータにより、焦点距離を焦点距離ｆから焦点距離ｆ（１＋ｄｆ）に修正することで、像高ρを像高ρ（１＋ｄｆ）に修正し、画素ずれを補償する。
【００６９】
カメラパラメータ情報１５０ｂが修正されると、上述した展開部１６０ｅは、カメラパラメータ情報１５０ｂを基にして、第１正距円筒図および第２正距円筒図を再度生成し、合成部１６０ｆに出力する。
【００７０】
合成部１６０ｆは、再度生成された第１正距円筒図および第２正距円筒図を合成することで、合成画像情報１５０ｅを再度生成する。再度生成された合成画像情報１５０ｅは、画像ずれの影響を補償した画像情報となる。合成部１６０ｆは、合成画像情報１５０ｅを、表示部１４０に出力して表示させてもよいし、ネットワーク上の外部装置に送信して表示させてもよい。
【００７１】
図７は、修正前後の合成画像情報の一例を示す図である。図７において、合成画像情報１５０ｅａは、修正前の合成画像情報を示す。合成画像情報１５０ｅｂは、修正後の合成画像情報を示す。合成画像情報１５０ｅａでは、領域７ａに画素ずれが発生している。これに対して、合成画像情報１５０ｅｂでは、領域７ｂに画素ずれが発生していない。すなわち、ずれ補償パラメータにより、カメラパラメータ情報１５０ｂを修正することで、画素ずれを補償することができる。
【００７２】
次に、本実施例１に係る補償装置１００の処理手順の一例について説明する。図８は、本実施例１に係る補償装置の処理手順を示すフローチャートである。図８に示すように、補償装置１００のキャリブレーション実行部１６０ｂは、各カメラ１１０のキャリブレーションを実行することで、内部パラメータと相対的な外部パラメータとを特定し、カメラパラメータ情報１５０ｂを生成する（ステップＳ１０１）。
【００７３】
補償装置１００の推定部１６０ｃおよび生成部１６０ｄは、ルックアップテーブル生成処理を実行する（ステップＳ１０２）。補償装置１００の展開部１６０ｅは、各カメラの画像情報を正距円筒図に展開する（ステップＳ１０３）。
【００７４】
補償装置１００の合成部１６０ｆは、各正距円筒図を合成することで、合成画像情報１５０ｅを生成する（ステップＳ１０４）。補償装置１００の算出部１６０ｇは、合成画像情報１５０ｅを基にして、画素ずれを算出する（ステップＳ１０５）。算出部１６０ｇは、ルックアップテーブル１５０ｃと画素ずれとを基にして、ずれ補償パラメータを算出する（ステップＳ１０６）。
【００７５】
算出部１６０ｇは、ずれ補償パラメータを基にして、カメラパラメータ情報１５０ｂの内部パラメータを修正する（ステップＳ１０７）。展開部１６０ｅは、修正された内部パラメータを基にして各カメラの画像情報を円距円筒図に展開する（ステップＳ１０８）。
【００７６】
合成部１６０ｆは、各円距円筒図を合成することで、合成画像情報１５０ｅを生成する（ステップＳ１０９）。合成部１６０ｆは、合成画像情報１５０ｅを表示部１４０に出力し、表示させる（ステップＳ１１０）。
【００７７】
次に、図８のステップＳ２０１に示したルックアップテーブル生成処理の処理手順の一例について説明する。図９は、ルックアップテーブル生成処理の処理手順を示すフローチャートである。図９に示すように、補償装置１００の推定部１６０ｃは、光学系の像高と入射角との関係を推定する（ステップＳ２０１）。
【００７８】
補償装置１００の生成部１６０ｄは、焦点距離ｄｆを変更する（ステップＳ２０２）。生成部１６０ｄは、変更した焦点距離ｄｆにより、像高と入射角との関係を変更する（ステップＳ２０３）。生成部１６０ｄは、入射角０における像高ずれを算出する（ステップＳ２０４）。
【００７９】
生成部１６０ｄは、像高ずれに対応する入射角ずれを算出する（ステップＳ２０５）。生成部１６０ｄは、入射角ずれを画素ずれに換算する（ステップＳ２０６）。生成部１６０ｄは、ルックアップテーブル１５０ｃに、焦点距離ｄｆと画素ずれとの関係を登録する（ステップＳ２０７）。
【００８０】
生成部１６０ｄは、ルックアップテーブル１５０ｃを生成する処理を終了する場合には（ステップＳ２０８，Ｙｅｓ）、処理を終了する。一方、生成部１６０ｄは、ルックアップテーブル１５０ｃを生成する処理を終了しない場合には（ステップＳ２０８，Ｎｏ）、ステップＳ２０２に移行する。
【００８１】
次に、本実施例１に係る補償装置１００の効果について説明する。補償装置１００は、円周魚眼レンズの光学系の入射角と像高との関係を推定し、焦点距離ｄｆを変更しつつ、入射角と像高との関係を変更することで、焦点距離ｄｆに対応する画素ずれを特定して、ルックアップテーブル１５０ｃを生成する。補償装置１００は、修正前のカメラパラメータ情報１５０ｂを基にして生成される合成画像情報の画素ずれと、ルックアップテーブル１５０ｃとを基にして、ずれ補償パラメータを特定し、ずれ補償パラメータにより、カメラパラメータ情報１５０ｂの内部パラメータを修正する。これにより、ずれ補償パラメータにより、入射角による像高ずれを補償でき、画素ずれの発生を抑止することができる。
【００８２】
たとえば、図５、図６で説明したように、ずれ補償パラメータにより、仮想球面のモデルによる入射角および像高の関係を、光学系の入射角および像高の関係に合わせることができ、画素ずれを補償することができる。
【実施例２】
【００８３】
次に、本実施例２に係る補償装置について説明する。本実施例２に係る補償装置は、実施例１の補償装置１００と同様にして、ルックアップテーブルを生成し、合成画像情報の画素ずれと、ルックアップテーブル１５０ｃとを基にして、ずれ補償パラメータを特定する。本実施例２に係る補償装置は、ずれ補償パラメータにより、像高を修正し、画素ずれを補償する。
【００８４】
たとえば、実施例１の補償装置１００では、図６で説明したように、内部パラメータの焦点距離を焦点距離ｆから焦点距離ｆ（１＋ｄｆ）に修正することで、実際の像高ρ（１＋ｄｆ）に合わせていた。これに対して、実施例２の補償装置は、焦点距離を修正しないで、直接、像高を像高ρから像高ρ（１＋ｄｆ）に修正する。
【００８５】
図１０は、本実施例２に係る補償装置の構成を示す機能ブロック図である。図１０に示すように、この補償装置２００は、カメラ２１０，２１０ｂと、通信部２２０と、入力部２３０と、表示部２４０と、記憶部２５０と、制御部２６０とを有する。
【００８６】
カメラ２１０ａ，２１０ｂは、円周魚眼レンズによって画像を撮影するカメラである。カメラ２１０ａ，２１０ｂは、撮影した画像の情報（画像情報）を、制御部２６０に出力する。なお、カメラ２１０ａ，２１０ｂは、ネットワーク上に接続されていてもよい。以下の説明では、特に区別する場合を除いて、カメラ２１０ａ，２１０ｂをまとめて、「カメラ２１０」と表記する。
【００８７】
通信部２２０は、ネットワークを介して、他の装置とデータ通信を実行する処理部である。たとえば、ネットワーク上にカメラ２１０が接続されている場合には、通信部２２０は、ネットワークを介して、カメラ２１０から画像情報を受信し、受信した画像情報を制御部２６０に出力する。
【００８８】
入力部２３０は、利用者が各種の情報を入力するための入力装置である。入力部２３０は、キーボードやマウス、タッチパネル等に対応する。利用者は、実施例１と同様にして、予め定められた位置に、格子パターン１０を配置し、入力部２３０を操作して、キャリブレーションの実行要求を、補償装置２００に入力する。
【００８９】
表示部２４０は、制御部２６０から出力される情報を表示する表示装置である。表示部２４０は、液晶ディスプレイやタッチパネル等に対応する。たとえば、表示部２４０は、制御部２６０により生成される合成画像情報２５０ｅを表示する。合成画像情報２５０ｅは、カメラ２１０ａ，２１０ｂにより撮影された各画像情報を合成した情報である。
【００９０】
記憶部２５０は、バッファ２５０ａ、カメラパラメータ情報２５０ｂ、ルックアップテーブル２５０ｃ、展開図情報２５０ｄ、合成画像情報２５０ｅを有する。記憶部２５０は、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの半導体メモリ素子や、ＨＤＤなどの記憶装置に対応する。
【００９１】
バッファ２５０ａは、カメラ２１０により撮影された各画像情報を格納するバッファである。たとえば、バッファ２５０ａは、カメラ２１０ａにより撮影された画像情報と、カメラ２１０ｂにより撮影された画像情報とを区別して格納する。
【００９２】
カメラパラメータ情報２５０ｂは、カメラ１１０の各カメラパラメータを保持する情報である。たとえば、カメラパラメータ情報２５０ｂは、カメラ２１０ａの内部パラメータ、カメラ２１０ｂの内部パラメータ、カメラ２１０ａとカメラ２１０ｂとの相対的な外部パラメータを含む。
【００９３】
内部パラメータは、焦点距離、光軸点の座標、歪み係数、後述する係数等を含む。相対的な外部パラメータは、カメラ２１０ａとカメラ２１０ｂとの相対的な向き（回転ベクトル）、相対的なカメラの位置（並進ベクトル）とを含む。３次元上の座標は、内部パラメータおよび外部パラメータに基づいて、２次元上の座標と対応付けられる。
【００９４】
ルックアップテーブル２５０ｃは、画素ずれと、焦点距離の誤差との関係を示すテーブルである。ルックアップテーブル２５０ｃのデータ構造は、図２で説明したルックアップテーブル１５０ｃのデータ構造と同様である。
【００９５】
展開図情報２５０ｄは、第１正距円筒図と第２正距円筒図とを含む。第１正距円筒図は、カメラ２１０ａにより撮影された画像情報に基づいて生成される正距円筒図である。第２正距円筒図は、カメラ２１０ｂにより撮影された画像情報に基づいて生成される正距円筒図である。
【００９６】
合成画像情報２５０ｅは、第１正距円筒図と、第２正距円筒図とを合成（ブレンド処理）することで得られる画像情報である。
【００９７】
制御部２６０は、取得部２６０ａ、キャリブレーション実行部２６０ｂ、推定部２６０ｃ、生成部２６０ｄ、展開部２６０ｅ、合成部２６０ｆ、算出部２６０ｇを有する。制御部２６０は、ＣＰＵやＭＰＵなどによって実現できる。また、制御部２６０は、ＡＳＩＣやＦＰＧＡなどのハードワイヤードロジックによっても実現できる。
【００９８】
取得部２６０ａは、カメラ２１０から画像情報を取得し、取得した画像情報をバッファ２５０ａに格納する処理部である。
【００９９】
キャリブレーション実行部２６０ｂは、バッファ２５０ａに格納された画像情報を基にして、キャリブレーションを実行し、カメラパラメータ情報２５０ｂを生成する処理部である。キャリブレーション実行部２６０ｂの処理は、実施例１で説明したキャリブレーション実行部１６０ｂの処理と同様である。
【０１００】
推定部２６０ｃは、カメラ２１０で用いられる円周魚眼レンズについて、光学系の入射角と像高との関係を推定する処理部である。推定部２６０ｃは、推定結果を生成部２６０ｄに出力する。推定部２６０ｃの処理は、実施例１で説明した推定部１６０ｃの処理と同様である。
【０１０１】
生成部２６０ｄは、光学系の入射角と像高との関係を用いて、ルックアップテーブル１５０ｃを生成する処理部である。生成部２６０ｄの処理は、実施例１で説明した生成部１６０ｄの処理と同様である。
【０１０２】
後述する展開部２６０ｅ、合成部２６０ｆ、算出部２６０ｇは、上述したキャリブレーション実行後に処理を行う。また、展開部２６０ｅ、合成部２６０ｆ、算出部２６０ｇが処理を行う場合には、格子パターン１０は配置されていなくてもよい。
【０１０３】
展開部２６０ｅは、カメラパラメータ情報２５０ｂと、バッファ２５０ａに格納された画像情報とを基にして、展開図情報２５０ｄを生成する処理部である。展開部２６０ｅの処理は、実施例１で説明した展開部１６０ｅの処理と同様である。
【０１０４】
合成部２６０ｆは、展開図情報２５０ｄに含まれる第１正距円筒図と、第２正距円筒図とを合成（ブレンド処理）し、合成画像情報２５０ｅを生成する処理部である。たとえば、合成部２６０ｆは、第１正距円筒図の赤道中心位置と、第２正距円筒図の赤道中心位置とを重複させて、合成画像情報２５０ｅを生成する。
【０１０５】
算出部２６０ｇは、合成画像情報２５０ｅを基にして、画素ずれを算出する処理部である。また、算出部２６０ｇは、画素ずれと、ルックアップテーブル２５０ｃとを基にして、ずれ補償パラメータを特定する。算出部２６０ｇが、画素ずれを算出する処理、ずれ補償パラメータを特定する処理は、実施例１で説明した算出部１６０ｇの処理と同様である。
【０１０６】
算出部２６０ｇは、ずれ補償パラメータの情報を、展開部２６０ｅに出力する。ここで、カメラ２１０ａに対応するずれ補償パラメータを、ずれ補償パラメータｄｆ１とする。カメラ２１０ｂに対応するずれ補償パラメータを、ずれ補償パラメータｄｆ２とする。
【０１０７】
ここで、展開部２６０ｅは、算出部２６０ｇは、ずれ補償パラメータの情報を取得すると、カメラパラメータ情報１５０ｂと、バッファ１５０ａに格納された画像情報とを基にして、展開図情報１５０ｄを生成する際に、像高を修正する。たとえば、展開部２６０ｅは、第１正距円筒図を生成する場合の像高を、式（６）に示すように修正する。展開部２６０ｅは、第２正距円筒図を生成する場合の像高を、式（７）に示すように修正する。これによって、カメラパラメータ情報２５０ｂに基づいて写像される画像情報の各点の位置（像高）を修正することができ、画素ずれを補償することができる。
【０１０８】
ρ１＝ρ１×（１＋ｄｆ）・・・（６）
ρ２＝ρ２×（１＋ｄｆ）・・・（７）
【０１０９】
次に、本実施例２に係る補償装置２００の処理手順の一例について説明する。図１１は、本実施例２に係る補償装置の処理手順を示すフローチャートである。図１１に示すように、補償装置２００のキャリブレーション実行部２６０ｂは、各カメラ２１０のキャリブレーションを実行することで、内部パラメータと相対的な外部パラメータとを特定し、カメラパラメータ情報２５０ｂを生成する（ステップＳ３０１）。
【０１１０】
補償装置２００の推定部２６０ｃおよび生成部２６０ｄは、ルックアップテーブル生成処理を実行する（ステップＳ３０２）。補償装置２００の展開部２６０ｅは、各カメラの画像情報を正距円筒図に展開する（ステップＳ３０３）。
【０１１１】
補償装置１００の合成部２６０ｆは、各正距円筒図を合成することで、合成画像情報２５０ｅを生成する（ステップＳ３０４）。補償装置２００の算出部２６０ｇは、合成画像情報２５０ｅを基にして、画素ずれを算出する（ステップＳ３０５）。算出部２６０ｇは、ルックアップテーブル１５０ｃと画素ずれとを基にして、ずれ補償パラメータを算出する（ステップＳ３０６）。
【０１１２】
展開部２６０ｅは、ずれ補償パラメータにより像高を修正しつつ、カメラパラメータ情報２５０ｂを基にして、各カメラ２１０の画オズ情報を正距円筒図に展開する（ステップＳ３０７）。合成部２６０ｆは、各円距円筒図を合成することで、合成画像情報２５０ｅを生成する（ステップＳ３０８）。合成部２６０ｆは、合成画像情報２５０ｅを表示部２４０に出力し、表示させる（ステップＳ３０９）。
【０１１３】
次に、本実施例２に係る補償装置２００の効果について説明する。補償装置２００は、カメラパラメータ情報２５０ｂと、バッファ２５０ａに格納された画像情報とを基にして、展開図情報２５０ｄを生成する際に、ずれ補償パラメータを用いて、像高を修正する。これによって、カメラパラメータ情報２５０ｂにより特定される像高が異なっていても、ずれ補償パラメータにより像高の位置が修正されるため、合成画像情報２５０ｅの画素ずれを補償することができる。
【０１１４】
次に、上記実施例１、２に示した補償装置１００，２００と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図１２は、補償装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【０１１５】
図１２に示すように、コンピュータ３００は、各種演算処理を実行するＣＰＵ３０１と、ユーザからのデータの入力を受け付ける入力装置３０２と、ディスプレイ３０３とを有する。また、コンピュータ３００は、記憶媒体からプログラム等を読み取る読み取り装置３０４と、有線または無線ネットワークを介して他の装置との間でデータの授受を行うインタフェース装置３０５とを有する。また、コンピュータ３００は、各種情報を一時記憶するＲＡＭ３０６と、ハードディスク装置３０７とを有する。そして、各装置３０１〜３０７は、バス３０８に接続される。
【０１１６】
ハードディスク装置３０７は、取得プログラム３０７ａ、キャリブレーション実行プログラム３０７ｂ、推定プログラム３０７ｃ、生成プログラム３０７ｄ、展開プログラム３０７ｅ、合成プログラム３０７ｆ、算出プログラム３０７ｇを有する。また、ハードディスク装置３０７は、各プログラム３０７ａ〜３０７ｇを読み出してＲＡＭ３０６に展開する。
【０１１７】
取得プログラム３０７ａは、取得プロセス３０６ａとして機能する。キャリブレーション実行プログラム３０７ｂは、キャリブレーション実行プロセス３０６ｂとして機能する。推定プログラム３０７ｃは、推定プロセス３０６ｃとして機能する。生成プログラム３０７ｄは、生成プロセス３０６ｄとして機能する。展開プログラム３０７ｅは、展開プロセス３０６ｅとして機能する。合成プログラム３０７ｆは、合成プロセス３０６ｆとして機能する。算出プログラム３０７ｇは、算出プロセス３０６ｇとして機能する。
【０１１８】
取得プロセス３０６ａの処理は、取得部１６０ａ，２６０ａの処理に対応する。キャリブレーション実行プロセス３０６の処理は、キャリブレーション実行部１６０ｂ，２６０ｂの処理に対応する。推定プロセス３０６ｃの処理は、推定部１６０ｃ，２６０ｃの処理に対応する。生成プロセス３０６ｄの処理は、生成部１６０ｄ，２６０ｄの処理に対応する。展開プロセス３０６ｅの処理は、展開部３６０ｅの処理に対応する。合成プロセス３０６ｆの処理は、合成部１６０ｆ，２６０ｆの処理に対応する。算出プロセス３０６ｇの処理は、算出部１６０ｇ，２６０ｇの処理に対応する。
【０１１９】
なお、各プログラム３０７ａ〜３０７ｅについては、必ずしも最初からハードディスク装置３０７に記憶させておかなくても良い。例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤ、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ３００が各プログラム３０７ａ〜３０７ｅを読み出して実行するようにしても良い。
【０１２０】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１２１】
（付記１）カメラの像高および焦点距離を含むパラメータで定義される入射角と、前記像高との関係を示す第１線分を推定し、
前記焦点距離を変化させた場合の前記像高と前記入射角との関係を示す第２線分を算出し、
前記第１線分と前記第２線分と基準入射角の線分とを基にして特定される像高ずれおよび入射角ずれを画素ずれに変換することで、前記焦点距離の変化量と、前記画素ずれと対応付けたテーブルを生成し、
第１カメラに撮影された画像を前記パラメータで展開した第１展開画像と、第２カメラに撮影された画像を前記パラメータで展開した第２展開画像とを基にして画素ずれを特定し、
特定した画素ずれと前記テーブルとを基にして、焦点距離のずれ量を算出する
処理をコンピュータに実行させることを特徴とする補償プログラム。
【０１２２】
（付記２）前記焦点距離のずれ量を基にして、前記パラメータに含まれる焦点距離を修正する処理を更にコンピュータに実行させることを特徴とする付記１に記載の補償プログラム。
【０１２３】
（付記３）前記焦点距離のずれ量を基にして、前記第１展開画像を展開する際の像高および前記第２展開画像を展開する際の像高を修正する処理を更にコンピュータに実行させることを特徴とする付記１に記載の補償プログラム。
【０１２４】
（付記４）前記第１展開画像と前記第２展開画像とを合成する処理を更にコンピュータに実行させることを特徴とする付記２または３に記載の補償プログラム。
【０１２５】
（付記５）コンピュータが実行する補償方法であって、
カメラの像高および焦点距離を含むパラメータで定義される入射角と、前記像高との関係を示す第１線分を推定し、
前記焦点距離を変化させた場合の前記像高と前記入射角との関係を示す第２線分を算出し、前記第１線分と前記第２線分と基準入射角とを基にして特定される像高ずれおよび入射角ずれを画素ずれに変換することで、前記焦点距離の変化量と、前記画素ずれと対応付けたテーブルを生成し、
第１カメラに撮影された画像を前記パラメータで展開した第１展開画像と、第２カメラに撮影された画像を前記パラメータで展開した第２展開画像とを基にして画素ずれを特定し、
特定した画素ずれと前記テーブルとを基にして、焦点距離のずれ量を算出する
処理を実行することを特徴とする補償方法。
【０１２６】
（付記６）前記焦点距離のずれ量を基にして、前記パラメータに含まれる焦点距離を修正する処理を更に実行することを特徴とする付記５に記載の補償方法。
【０１２７】
（付記７）前記焦点距離のずれ量を基にして、前記第１展開画像を展開する際の像高および前記第２展開画像を展開する際の像高を修正する処理を更にコンピュータに実行させることを特徴とする付記５に記載の補償方法。
【０１２８】
（付記８）前記第１展開画像と前記第２展開画像とを合成する処理を更に実行することを特徴とする付記６または７に記載の補償方法。
【０１２９】
（付記９）カメラの像高および焦点距離を含むパラメータで定義される入射角と、前記像高との関係を示す第１線分を推定する推定部と、
前記焦点距離を変化させた場合の前記像高と前記入射角との関係を示す第２線分を算出し、前記第１線分と前記第２線分と基準入射角とを基にして特定される像高ずれおよび入射角ずれを画素ずれに変換することで、前記焦点距離の変化量と、前記画素ずれと対応付けたテーブルを生成する生成部と、
第１カメラに撮影された画像を前記パラメータで展開した第１展開画像と、第２カメラに撮影された画像を前記パラメータで展開した第２展開画像とを基にして画素ずれを特定し、特定した画素ずれと前記テーブルとを基にして、焦点距離のずれ量を算出する算出部と
を有することを特徴とする補償装置。
【０１３０】
（付記１０）前記算出部は、前記焦点距離のずれ量を基にして、前記パラメータに含まれる焦点距離を修正することを特徴とする付記９に記載の補償装置。
【０１３１】
（付記１１）前記算出部は、前記焦点距離のずれ量を基にして、前記第１展開画像を展開する際の像高および前記第２展開画像を展開する際の像高を修正することを特徴とする付記９に記載の補償装置。
【０１３２】
（付記１２）前記第１展開画像と前記第２展開画像とを合成する合成部を更に有することを特徴とする付記１０または１１に記載の補償装置。
【符号の説明】
【０１３３】
１１０ａ，１１０ｂ，２１０ａ，２１０ｂ  カメラ
１２０，２２０      通信部
１３０，２３０      入力部
１４０，２４０      表示部
１５０，２５０      記憶部
１５０ａ，２５０ａ  バッファ
１５０ｂ，２５０ｂ  カメラパラメータ情報
１５０ｃ，２５０ｃ  ルックアップテーブル
１５０ｄ，２５０ｄ  展開図情報
１５０ｅ，２５０ｅ  合成画像情報
１６０，２６０      制御部
１６０ａ，２６０ａ  取得部
１６０ｂ，２６０ｂ  キャリブレーション実行部
１６０ｃ，２６０ｃ  推定部
１６０ｄ，２６０ｄ  生成部
１６０ｅ，２６０ｅ  展開部
１６０ｆ，２６０ｆ  合成部
１６０ｇ，２６０ｇ  算出部
【図１】
2019201292.tif 000007
【図２】
2019201292.tif 000008
【図３】
2019201292.tif 000009
【図４】
2019201292.tif 000010
【図５】
2019201292.tif 000011
【図６】
2019201292.tif 000012
【図７】
2019201292.tif 000013
【図８】
2019201292.tif 000014
【図９】
2019201292.tif 000015
【図１０】
2019201292.tif 000016
【図１１】
2019201292.tif 000017
【図１２】
2019201292.tif 000018
【図１３】
2019201292.tif 000019
【図１４】
2019201292.tif 000020
【図１５】
2019201292.tif 000021
【図１６】
2019201292.tif 000022
【図１７】
2019201292.tif 000023
【図１８】
2019201292.tif 000024