(57)【特許請求の範囲】
【請求項１】
対になるカメラの撮影範囲が重複する領域を示す重複領域の画像を、異なる重複領域毎に取得する画像取得部と、
所定の形状の対象物の画像と前記重複領域の画像とを比較して、前記重複領域の画像に含まれる前記対象物の画像を抽出し、抽出した対象物の画像を該画像を撮影したカメラと対応づけて記憶部に保存する対象物抽出部と、
前記異なる重複領域毎に、前記対になるカメラがそれぞれ撮影した対象物の画像が前記記憶部に記憶された場合に、各対象物の特徴点の位置と所定の寸法とに基づいて、各特徴点の位置の誤差を算出する誤差算出部と、
を備えたことを特徴とする画像処理装置。
【請求項２】
前記カメラの位置または角度を含むパラメータに基づいて、各カメラが撮影した画像を合成する画像合成部と、前記誤差算出部が算出した誤差に基づいて前記パラメータを調整するパラメータ調整部とを更に備えたことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記対象物抽出部は、前記対象物の画像を前記記憶部に保存する場合に、前記対象物の画像が撮影された時間を対応づけて記憶し、前記誤差算出部は、前記記憶部に記憶された異なる重複領域毎の対象物の画像の撮影時間の差が所定時間内の場合に、各特徴点の位置の誤差を算出すること特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記パラメータ調整部は、対のカメラに対応する対象物の特徴点の誤差の総和が最小となるように前記パラメータを調整することを特徴とする請求項２に記載の画像処理装置。
【請求項５】
コンピュータに、
対になるカメラの撮影範囲が重複する領域を示す重複領域の画像を、異なる重複領域毎に取得する画像取得手順と、
所定の形状の対象物の画像と前記重複領域の画像とを比較して、前記重複領域の画像に含まれる前記対象物の画像を抽出し、抽出した対象物の画像を該画像を撮影したカメラと対応づけて記憶部に保存する対象物抽出手順と、
前記異なる重複領域毎に、前記対になるカメラがそれぞれ撮影した対象物の画像が前記記憶部に記憶された場合に、各対象物の特徴点の位置と所定の寸法とに基づいて、各特徴点の位置の誤差を算出する誤差算出手順と、
を実行させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理プログラムに関する。
【背景技術】
【０００２】
車両の上方の位置から車両全体を撮影したような俯瞰画像をモニタに表示することで、ドライバの運転操作を支援する画像変換装置が存在する。例えば、この画像変換装置は、車両の前後左右に設置された４台の車載カメラがそれぞれ撮影した４つの画像を合成することで俯瞰画像を生成する。
【０００３】
画像変換装置は、車載カメラの設置位置や設置角度などのカメラパラメータを利用して俯瞰画像を生成する。このため、カメラパラメータに誤差が生じると、各画像を合成する際にずれなどが発生してしまい、正確な俯瞰画像を生成することができない。パラメータに生じる誤差は、車両の走行中に何らかの原因で発生し得る。したがって、ドライバは、自動車ディーラーなどに車両を持って行き、カメラパラメータの誤差の修正を依頼する。
【０００４】
カメラパラメータの誤差を修正する技術には様々なものが存在する。例えば、車載カメラの撮影範囲が重なる領域に形状が既知のマーカを配置し、マーカの特徴点を用いてカメラパラメータの誤差を修正するという技術が存在する。また、路面上の特徴部分をマーカに見立ててカメラパラメータの誤差を修正するという技術も存在する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１４８４７４号公報
【特許文献２】特許第３２８６３０６号公報
【特許文献３】特開２００８−１８７５６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来技術では、カメラパラメータを修正する場合に車両を所定の場所に停止させることが前提条件となっており、車両の走行中にパラメータを修正することができないという問題があった。なお、かかる問題は、車両の車載カメラだけでなく、その他の移動体のカメラのパラメータを修正する場合にも同様に発生し得る。
【０００７】
開示の技術は、上記に鑑みてなされたものであって、移動体の走行中にカメラのパラメータを修正することができる画像処理装置および画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本願の開示する画像処理装置は、対になるカメラの撮影範囲が重複する領域を示す重複領域の画像を異なる重複領域毎に取得する画像取得部と、所定の形状の対象物の画像と前記重複領域の画像とを比較して、前記重複領域の画像に含まれる前記対象物の画像を抽出し、抽出した対象物の画像を該画像を撮影したカメラと対応づけて記憶部に保存する対象物抽出部と、前記異なる重複領域毎に、前記対になるカメラがそれぞれ撮影した対象物の画像が前記記憶部に記憶された場合に、各対象物の特徴点の位置と所定の寸法とに基づいて、各特徴点の位置の誤差を算出する誤差算出部とを備えたことを要件とする。
【発明の効果】
【０００９】
本願の開示する画像処理装置の一つの態様によれば、移動体の走行中にカメラのパラメータを修正することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、本実施例１にかかる画像処理装置の構成を示す図である。
【図２】図２は、車載カメラの配置位置とオーバーラップ部分を示す図である。
【図３】図３は、本実施例２にかかるキャリブレーション装置の構成を示す図である。
【図４】図４は、画像管理テーブルのデータ構造の一例を示す図である。
【図５】図５は、テンプレートデータのデータ構造の一例を示す図である。
【図６】図６は、テンプレートの特徴点の一例を示す図である。
【図７】図７は、キャリブレーション実行部の構成を示す図である。
【図８】図８は、各種画像データを抽出するタイミングを示す図である。
【図９】図９は、対象物画像管理テーブルのデータ構造の一例を示す図である。
【図１０】図１０は、カメラパラメータ調整部の処理を説明するための図である。
【図１１】図１１は、本実施例２にかかるキャリブレーション装置の処理手順を示すフローチャートである。
【図１２】図１２は、カメラパラメータ調整処理の処理手順を示すフローチャートである。
【図１３】図１３は、調整候補判定処理の処理手順を示すフローチャートである。
【図１４】図１４は、画像データを対象物画像管理テーブルに登録する処理手順を示すフローチャートである。
【図１５】図１５は、実施例にかかるキャリブレーション装置を構成するコンピュータのハードウェア構成を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示する画像処理装置および画像処理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１２】
図１は、本実施例１にかかる画像処理装置の構成を示す図である。図１に示すように、この画像処理装置１０は、画像取得部１１、対象物抽出部１２、記憶部１３、誤差算出部１４を有する。画像取得部１１は、対になるカメラの撮影範囲が重複する領域を示す重複領域の画像を異なる重複領域毎に取得する。
【００１３】
対象物抽出部１２は、所定の形状の対象物の画像と重複領域の画像とを比較して、重複領域の画像に含まれる対象物の画像を抽出し、抽出した対象物の画像を該画像を撮影したカメラと対応づけて記憶部１３に保存する。
【００１４】
記憶部１３は、対象物の画像とこの画像を撮影したカメラとを対応づけて記憶する。誤差算出部１４は、異なる重複領域毎に、対になるカメラがそれぞれ撮影した対象物の画像が記憶部１３に記憶された場合に、各対象物の特徴点の位置と所定の寸法に基づいて、各特徴点の位置の誤差を算出する。
【００１５】
通常、車両に配置されたカメラのカメラパラメータを調整する場合には、重複領域に含まれる対象物の画像が、異なる重複領域毎に必要である。このため、従来技術では、車両を一旦停止させて、異なる重複領域毎に対象物をそれぞれ配置し、異なる重複領域毎の画像を取得していた。
【００１６】
これに対して、上記画像処理装置１０は、カメラが撮影した重複領域の画像に対象物が含まれている場合に、重複領域の画像を記憶部１３に記憶しておき、記憶部１３に異なる重複領域毎の対象物の画像が記憶されるのを待つ。そして、画像処理装置１０は、記憶部１３に異なる重複領域毎の対象物の画像が記憶された後に、各対象物の特徴点と所定の寸法とを比較して、各特徴点の位置の誤差を算出する。このような構成にすることで、画像処理装置１０は、例えば、車両が走行中であっても、記憶部１３に必要な対象物の画像を記憶することができる。また、各対象物の特徴点の位置の誤差を利用することで、カメラパラメータを調整することも可能である。このため、本実施例１にかかる画像処理装置１０は、車両の走行中にカメラのパラメータを修正することができるという効果を奏する。
【実施例２】
【００１７】
まず、車載カメラの配置位置およびオーバーラップ部分の一例について説明する。オーバーラップ部は、各車載カメラの撮影範囲が重複する部分を示す。図２は、車載カメラの配置位置とオーバーラップ部分を示す図である。図２に示すように、車両５０の前後左右に車載カメラＣＦ、ＣＢ、ＣＬ、ＣＲが配置されている。具体的には、車両５０の前側に車載カメラＣＦが配置され、車両５０の後側に車載カメラＣＢが配置される。また、車両５０の左側に車載カメラＣＬが配置され、車両５０の右側に車載カメラＣＲが配置される。
【００１８】
車載カメラＣＦの撮影範囲を５０Ｆとし、車載カメラＣＢの撮影範囲を５０Ｂとする。車載カメラＣＬの撮影範囲を５０Ｌとし、車載カメラＣＲの撮影範囲を５０Ｒとする。そして、車載カメラＣＦの撮影範囲５０Ｆと車載カメラＣＲの撮影範囲５０Ｒとのオーバーラップ部をＡＦＲとし、車載カメラＣＲの撮影範囲５０Ｒと車載カメラＣＢの撮影範囲５０Ｂとのオーバーラップ部をＡＲＢとする。車載カメラＣＢの撮影範囲５０Ｂと車載カメラＣＬの撮影範囲５０Ｌとのオーバーラップ部分をＡＢＬとし、車載カメラＣＬの撮影範囲５０Ｌと車載カメラＣＦの撮影範囲５０Ｆとのオーバーラップ部分をＡＬＦとする。
【００１９】
次に、本実施例２にかかるキャリブレーション装置の構成について説明する。このキャリブレーション装置は、例えば、車両５０の内部に配置される。図３は、本実施例２にかかるキャリブレーション装置の構成を示す図である。図３に示すように、このキャリブレーション装置１００は、記憶部１１０、画像入力部１２０、画像補正部１３０、キャリブレーション実行部１４０、画像合成部１５０、表示部１６０を有する。また、キャリブレーション装置１００は、車載カメラＣＦ、ＣＲ、ＣＢ、ＣＬに接続される。
【００２０】
記憶部１１０は、各種のデータを記憶する記憶部である。この記憶部１１０は、画像管理テーブル１１０ａ、キャリブレーションポイント１１０ｂ、テンプレートデータ１１０ｃ、対象物画像管理テーブル１１０ｄ、カメラパラメータ１１０ｅを記憶する。
【００２１】
画像管理テーブル１１０ａは、車載カメラＣＦ、ＣＲ、ＣＢ、ＣＬが撮影した画像データを記憶するテーブルである。図４は、画像管理テーブルのデータ構造の一例を示す図である。図４に示すように、この画像管理テーブル１１０ａは、カメラ識別情報と画像データと撮影時間とを対応づけて記憶する。カメラ識別情報は、画像データを撮影した車載カメラを一意に識別する情報である。画像データは、各車載カメラが撮影した画像データである。撮影時間は、車載カメラが画像を撮影した時間である。図４では一例として、各車載カメラの撮影範囲の画像データを記憶する場合を示したが、撮影範囲のうち、オーバーラップ部分の画像データのみを記憶してもよい。
【００２２】
キャリブレーションポイント１１０ｂは、所定の座標情報を有する。この座標情報に対応する位置周辺には、交差点や道路標識、路上のマークなどが存在する。例えば、路上のマークには、前方に横断歩道ありの意味を持つ「ひし形」マークや、Ｕターン禁止の意味を持つ「バツ」マーク、進行方向を示す「矢印」マークが存在する。以下の説明において、交差点、道路標識、路上のマークをまとめて対象物と表記する。
【００２３】
テンプレートデータ１１０ｃは、対象物の形状データをそれぞれ記憶する。図５は、テンプレートデータのデータ構造の一例を示す図である。図５に示すように、このテンプレートデータ１１０ｃは、テンプレート識別情報と形状データと特徴点間の寸法とを対応づけて記憶する。テンプレート識別情報は、テンプレートを一意に識別する情報である。形状データは、テンプレートの形状を示すデータである。特徴点間の寸法は、テンプレートに含まれる特徴点間の寸法を示す。
【００２４】
テンプレートの特徴点は、テンプレートによって異なる。図６は、テンプレートの特徴点の一例を示す図である。図６に示すように、テンプレートＡの形状が矢印の場合には、テンプレートＡの特徴点は矢印の各端Ａ１〜Ａ５となる。テンプレートＢの形状がバツ印の場合には、テンプレートＢの特徴点はバツ印の各端Ｂ１〜Ｂ８となる。テンプレートＣの形状がひし形の場合には、テンプレートＣの特徴点はひし形の各端Ｃ１〜Ｃ４となる。
【００２５】
対象物画像管理テーブル１１０ｄは、オーバーラップ部分ＡＬＦ、ＡＦＲ、ＡＲＢ、ＡＢＬに含まれる対象物の画像データを記憶する。カメラパラメータ１１０ｅは、車載カメラＣＦ、ＣＲ、ＣＢ、ＣＬの設置位置や設置角度などをそれぞれ記憶する。
【００２６】
画像入力部１２０は、車載カメラＣＦ、ＣＲ、ＣＢ、ＣＬから画像データを取得し、取得した各画像データを画像補正部１３０に出力する処理部である。各画像データは、撮影範囲の画像の他に、画像を撮影した車載カメラを識別する情報や撮影時刻の情報を含んでいるものとする。
【００２７】
画像補正部１３０は、各画像データに対して、レンズの歪み補正などの画像補正を行う処理部である。画像補正部１３０は、画像補正を行った後に、各画像データを画像管理テーブル１１０ａに記憶する。
【００２８】
キャリブレーション実行部１４０は、オーバーラップ部分ＡＬＦ、ＡＦＲ、ＡＲＢ、ＡＢＬに対象物が含まれるたびに、対象物の画像データを対象物画像管理テーブル１１０ｄに登録する。そして、キャリブレーション実行部１４０は、オーバーラップ部分ＡＬＦ、ＡＦＲ、ＡＲＢ、ＡＢＬに対応する対象物の画像データが全て揃った場合に、対象物の特徴点の誤差を算出する。キャリブレーション実行部１４０は、かかる誤差を利用してカメラパラメータ１１０ｅを調整する。キャリブレーション実行部１４０の処理の詳細は後述する。
【００２９】
画像合成部１５０は、車載カメラＣＦ、ＣＲ、ＣＢ、ＣＬが撮影した画像データを画像管理テーブル１１０ａから取得し、カメラパラメータ１１０ｅに基づいて各画像データを合成することで、合成画像データを生成する処理部である。画像合成部１５０は、合成画像データを表示部１６０に出力する。
【００３０】
表示部１６０は、合成画像データをディスプレイなどの表示装置に表示させる処理部である。この合成画像データは、例えば、車両５０を上方の位置から車両５０全体を撮影したような俯瞰画像に対応する。
【００３１】
上記の画像入力部１２０、画像補正部１３０、キャリブレーション実行部１４０、画像合成部１５０、表示部１６０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）や、ＦＰＧＡ（Field  Programmable  Gate  Array）などの集積装置に対応する。また、上記処理部１３０、１４０、１５０、１６０は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。
【００３２】
上記の記憶部１１０は、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
【００３３】
次に、図３に示したキャリブレーション実行部１４０の構成について説明する。図７は、キャリブレーション実行部の構成を示す図である。図７に示すように、このキャリブレーション実行部１４０は、位置データ取得部１４０ａ、誤差補正判定部１４０ｂ、オブジェクト探索部１４０ｃ、有効画像判定部１４０ｄ、カメラパラメータ調整部１４０ｅを有する。
【００３４】
位置データ取得部１４０ａは、車両５０の位置データを取得し、位置データをオブジェクト探索部１４０ｃに出力する。この位置データは、車両５０の位置座標を含む。位置データ取得部１４０ａは、例えば、ＧＰＳ（Global  Positioning  System）等の機能を利用して、車両５０の位置座標を取得する。
【００３５】
誤差補正判定部１４０ｂは、カメラパラメータ１１０ｅの調整を行うか否かを判定し、判定結果をカメラパラメータ調整部１４０ｅに出力する。例えば、誤差補正判定部１４０ｂは、外部の入力装置を介して、利用者からカメラパラメータの調整指示を受け付けた場合に、カメラパラメータ１１０ｅの調整を行うと判定する。また例えば、誤差補正判定部１４０ｂは、カメラパラメータを調整した前回のタイミングから経過した時間が、所定時間以上である場合に、カメラパラメータ１１０ｅの調整を行うと判定しても良い。この場合に、所定時間は、走行中の振動や季節の温度差によるボディの変化などのカメラパラメータに誤差を生じさせる原因を考慮して設定することが考えられる。
【００３６】
オブジェクト探索部１４０ｃは、テンプレートデータ１１０ｃに記憶された対象物の形状データと、画像管理テーブル１１０ａの各画像データとを比較して、対象物を含む画像データを抽出する。オブジェクト探索部１４０ｃは、対象物の画像データを対象物画像管理テーブル１１０ｄに記憶する。
【００３７】
ここで、オブジェクト探索部１４０ｃが対象物の画像データを抽出する処理の一例について説明する。オブジェクト探索部１４０ｃは、テンプレートデータ１１０ｃの形状データの向きや大きさを所定の割合で変化させながら、画像管理テーブル１１０ａの各画像データとパターンマッチングを行う。そして、オブジェクト探索部１４０ｃは、形状データと一致する画像データを、対象物の画像データとして抽出する。
【００３８】
オブジェクト探索部１４０ｃは、対象物の画像データを抽出した場合には、対象物の画像データを対象物画像管理テーブル１１０ｄに登録する。なお、オブジェクト探索部１４０ｃは、対の車載カメラが撮影した対象物の画像データを対応づけて、対象物画像管理テーブル１１０ｄに登録する。
【００３９】
ここでは一例として、車載カメラＣＦ、ＣＲの組、車載カメラＣＲ、ＣＢの組、車載カメラＣＢ、ＣＬの組、車載カメラＣＬ、ＣＲの組を対の車載カメラとする。また、車載カメラＣＦ、ＣＲがそれぞれ撮影した画像データの組をＡＦＲデータとし、車載カメラＣＲ、ＣＢがそれぞれ撮影した画像データの組をＡＲＢデータとする。また、車載カメラＣＢ、ＣＬがそれぞれ撮影した画像データの組をＡＢＬデータとし、車載カメラＣＬ、ＣＦがそれぞれ撮影した画像データの組をＡＬＦデータとする。
【００４０】
図８、図９を用いて、オブジェクト探索部１４０ｃが各種画像データを対象物画像管理テーブル１１０ｄに登録する処理を説明する。図８は、各種画像データを抽出するタイミングを示す図である。図８の横軸は時間軸である。図８に示すように、オブジェクト探索部１４０ｃは、時間ｔ１において、ＡＲＦデータ１を抽出し、時間ｔ２において、ＡＬＦデータ１を抽出する。また、オブジェクト探索部１４０ｃは、時間ｔ３において、ＡＦＲデータ２を抽出し、時間ｔ４において、ＡＲＢデータ１、ＡＢＬデータ１を抽出する。
【００４１】
図９は、対象物画像管理テーブルのデータ構造の一例を示す図である。図９に示すように、対象物画像管理テーブル１１０ｄは、時間と、ＡＬＦデータ、ＡＦＲデータ、ＡＲＢデータ、ＡＢＬデータとを対応づけて記憶する。時間は、各種データを取得した時間を示す。
【００４２】
オブジェクト探索部１４０ｃは、時間ｔ１にＡＦＲデータ１を抽出するので、時間ｔ１のＡＦＲデータに対応するデータ領域にＡＦＲデータ１を登録する。オブジェクト探索部１４０ｃは、時間ｔ２にＡＬＦデータ１を抽出するので、時間ｔ２のＡＬＦデータに対応するデータ領域にＡＬＦデータ１を登録する。また、オブジェクト探索部１４０ｃは、ＡＦＲデータ１を、時間ｔ２のＡＦＲデータに対応するデータ領域に繰り越す。
【００４３】
オブジェクト探索部１４０ｃは、時間ｔ３にＡＦＲデータ２を抽出するので、時間ｔ３のＡＦＲデータに対応するデータ領域にＡＦＲデータ２を登録する。また、オブジェクト探索部１４０ｃは、ＡＬＦデータ１を、時間ｔ３のＡＬＦデータに対応するデータ領域に繰り越す。
【００４４】
オブジェクト探索部１４０ｃは、時間ｔ４にＡＲＢデータ１、ＡＢＬデータ１を抽出する。このため、オブジェクト探索部１４０ｃは、時間ｔ４のＡＲＢデータに対応するデータ領域にＡＲＢデータ１を登録する。また、オブジェクト探索部１４０ｃは、時間ｔ４のＡＢＬデータに対応するデータ領域にＡＢＬデータ１を登録する。また、オブジェクト探索部１４０ｃは、ＡＬＦデータ１を、時間ｔ４のＡＬＦデータに対応するデータ領域に繰り越す。オブジェクト探索部１４０ｃは、ＡＦＲデータ２を、時間ｔ４のＡＦＲデータに対応するデータ領域に繰り越す。上記のような処理をオブジェクト探索部１４０ｃが実行することで、オブジェクト探索部１４０ｃは、対象物の画像データを対象物画像管理テーブル１１０ｄに記憶する。
【００４５】
なお、オブジェクト探索部１４０ｃは、車両５０の位置に応じて、対象物の画像データを対象物画像管理テーブル１１０ｄに登録する処理を制限してもよい。オブジェクト探索部１４０ｃは、位置データ取得部１４０ａから取得する位置データと、キャリブレーションポイント１１０ｂとを比較する。そして、オブジェクト探索部１４０ｃは、車両５０の位置が、キャリブレーションポイント１１０ｂの座標情報に含まれている場合には、対象物の画像データを対象物画像管理テーブル１１０ｄに登録する処理を継続する。このように車両５０の位置が、キャリブレーションポイント１１０ｂの座標情報に含まれている場合には、周辺に対象物が存在する可能性が高いため、効率よく対象物の画像データを収集できる。
【００４６】
これに対して、オブジェクト探索部１４０ｃは、車両５０の位置が、キャリブレーションポイント１１０ｂの座標情報に含まれてない場合には、対象物の画像データを対象物画像管理テーブル１１０ｄに登録する処理を中断する。このように車両５０の位置が、キャリブレーションポイント１１０ｂの座標情報に含まれてない場合には、周辺に対象物が存在する可能性が低いため、オブジェクト探索部１４０ｃにかかる負荷を軽減させることができる。
【００４７】
また、オブジェクト探索部１４０ｃは、ＡＬＦデータ、ＡＦＲデータ、ＡＲＢデータ、ＡＢＬデータをはじめて取得した場合には、対象物が存在するしないにかかわらず、対象物画像管理テーブル１１０ｄに登録してもよい。また、図９に示した例では、オブジェクト探索部１４０ｃは、ＡＦＲデータ１を取得した後に、ＡＦＲデータ２を取得した場合に、ＡＦＲデータ１をＡＦＲデータ２で上書きしているがこれに限定されるものではない。オブジェクト探索部１４０ｃは、最適なデータを選択して、データを対象物画像管理テーブル１１０ｄに登録してもよい。例えば、オブジェクト探索部１４０ｃは、各データのうち、対象物の特徴点を多く含んでいる方の画像を最適なデータと判定する。
【００４８】
図７の説明に戻る。有効画像判定部１４０ｄは、対象物画像管理テーブル１１０ｄを参照し、ＡＬＦデータ、ＡＦＲデータ、ＡＲＢデータ、ＡＢＬデータが揃ったか否かを判定する。有効画像判定部１４０ｄは、ＡＬＦデータ、ＡＦＲデータ、ＡＲＢデータ、ＡＢＬデータが揃ったと判定した場合には、最初に登録されたデータの登録時間から、最後に登録されたデータの登録時間までの時間がＴＣ時間以内であるか否かを判定する。
【００４９】
有効画像判定部１４０ｄは、最初に登録されたデータの登録時間から、最後に登録されたデータの登録時間までの時間がＴＣ時間以内の場合には、ＡＬＦデータ、ＡＦＲデータ、ＡＲＢデータ、ＡＢＬデータを、カメラパラメータ調整部１４０ｅに出力する。
【００５０】
図９に示す例では、時間ｔ４にＡＬＦデータ、ＡＦＲデータ、ＡＲＢデータ、ＡＢＬデータが揃っている。このデータのうち、最初に登録されたデータはＡＬＦデータ１であり、登録時間はｔ２である。また、最後に登録されたデータはＡＲＢデータ１、ＡＢＬデータ１であり、登録時間はｔ４である。時間ｔ２から時間ｔ４までの時間がＴＣ以内であるとする。この場合には、有効画像判定部１４０ｄは、ＡＬＦデータ１、ＡＦＲデータ２、ＡＲＢデータ１、ＡＢＬデータ１をカメラパラメータ調整部１４０ｅに出力する。
【００５１】
カメラパラメータ調整部１４０ｅは、異なる重複領域の対象物の画像を基にして、カメラパラメータ１１０ｅを調整する処理部である。この異なる重複領域の対象物の画像は、上記のＡＬＦデータ、ＡＦＲデータ、ＡＲＢデータ、ＡＢＬデータに対応する。また、カメラパラメータ調整部１４０ｅは、カメラパラメータ１１０ｅの調整を行う旨の判定結果を誤差補正判定部１４０ｂから通知されている場合に、カメラパラメータ１１０ｅの調整を行うものとする。
【００５２】
以下において、カメラパラメータ調整部１４０ｅの処理を具体的に説明する。まず、カメラパラメータ調整部１４０ｅは、対象物の特徴点の座標を算出する。そして、カメラパラメータ調整部１４０ｅは、各特徴点の座標の誤差を算出し、誤差が最大となる車載カメラを判定する。誤差が大きいほど、該当する車載カメラのカメラパラメータがずれていることを意味する。
【００５３】
ここでは一例として、ＡＬＦデータを用いて説明する。このＡＬＦデータは上記のように、車載カメラＣＬが撮影した対象物の画像データと、車載カメラＣＦが撮影した対象物の画像データとを含んでおり、実空間上で各対象物は同一である。
【００５４】
図１０は、カメラパラメータ調整部の処理を説明するための図である。図１０の対象物ＤＬは、車載カメラＣＬが撮影した対象物に対応し、対象物ＤＦは、車載カメラＣＦが撮影した対象物に対応する。
【００５５】
カメラパラメータ調整部１４０ｅは、車載カメラＣＬが撮影した対象物ＤＬの特徴点ＤＬ１〜ＤＬ４を、所定の位置を基準としたグローバル座標系の座標に変換する。また、カメラパラメータ調整部１４０ｅは、車載カメラＣＦが撮影した対象物ＤＦの特徴点ＤＦ１〜ＤＦ４を、グローバル座標系の座標に変換する。例えば、カメラパラメータ調整部１４０ｅは、画像上の座標とグローバル座標系の座標とを対応付けた座標変換テーブルを用いて、特徴点の座標を求める。
【００５６】
カメラパラメータ調整部１４０ｅは、グローバル座標のＤＬ１とＤＦ１との誤差ｄ１、ＤＬ２とＤＦ２との誤差ｄ２、ＤＬ３とＤＦ３との誤差ｄ３、ＤＬ４とＤＦ４との誤差ｄ４を算出し、ｄ１、ｄ２、ｄ３、ｄ４を平均化することで平均誤差を算出する。具体的に、平均誤差は
平均誤差＝（ｄ１＋ｄ２＋ｄ３＋ｄ４）／４
となる。
【００５７】
カメラパラメータ調整部１４０ｅは、上記処理と同様の処理をＡＦＲデータ、ＡＲＢデータ、ＡＢＬデータに対して実行し、各データから平均誤差を算出する。以下では、ＡＬＦデータから求めた平均誤差をＤ１、ＡＦＲデータから求めた平均誤差をＤ２、ＡＲＢデータから求めた平均誤差をＤ３、ＡＢＬデータから求めた平均誤差をＤ４とする。
【００５８】
カメラパラメータ調整部１４０ｅは、各平均誤差の所定の組み合わせの和となるＤＣ１〜ＤＣ４を算出し、算出結果に基づいて調整対象の車載カメラを判定する。具体的に、カメラパラメータ調整部１４０ｅは、ＤＣ１〜ＤＣ４を
ＤＣ１＝Ｄ１＋Ｄ２
ＤＣ２＝Ｄ２＋Ｄ３
ＤＣ３＝Ｄ３＋Ｄ４
ＤＣ４＝Ｄ４＋Ｄ１
により算出する。
【００５９】
カメラパラメータ調整部１４０ｅは、ＤＣ１〜ＤＣ４のうち最大のものを判定し、判定結果に基づいて調整対象の車載カメラを特定する。カメラパラメータ調整部１４０ｅは、ＤＣ１が最大となる場合には、車載カメラＣＦを調整対象の車載カメラとする。カメラパラメータ調整部１４０ｅは、ＤＣ２が最大となる場合には、車載カメラＣＲを調整対象の車載カメラとする。カメラパラメータ調整部１４０ｅは、ＤＣ３が最大となる場合には、車載カメラＣＢを調整対象の車載カメラとする。カメラパラメータ調整部１４０ｅは、ＤＣ４が最大となる場合には、車載カメラＣＬを調整対象の車載カメラとする。
【００６０】
続いて、カメラパラメータ調整部１４０ｅは、ＡＬＦデータ、ＡＦＲデータ、ＡＲＢデータ、ＡＢＬデータそれぞれについて、実際の特徴点間の寸法と、画像上から求めた対象物の特徴点間の寸法とのずれを示す評価関数ｆを作成する。この評価関数ｆの値は、カメラパラメータ１１０ｅの値に依存する。また、実際の特徴点間の寸法は、テンプレートデータ１１０ｃに登録されている。
【００６１】
カメラパラメータ調整部１４０ｅは、調整対象となるカメラパラメータの値を所定の割合で変化させていき、各評価関数ｆの総和が最小となるカメラパラメータの値を算出する。カメラパラメータ調整部１４０ｅは、算出したカメラパラメータの値により、カメラパラメータ１１０ｅを更新する。なお、カメラパラメータ調整部１４０ｅは、例えば、特開２００９−２９４１０９に記載された技術を利用して、カメラパラメータの値を算出してもよい。
【００６２】
次に、本実施例２にかかるキャリブレーション装置１００の処理手順について説明する。図１１は、本実施例２にかかるキャリブレーション装置の処理手順を示すフローチャートである。図１１に示す処理は、例えば、車載カメラＣＦ、ＣＲ、ＣＢ、ＣＬから画像データを取得したことを契機にして実行される。
【００６３】
図１１に示すように、キャリブレーション装置１００は、オーバーラップ上の画像データを取得し（ステップＳ１０１）、該当オーバーラップ部分において、初の画像データか否かを判定する（ステップＳ１０２）。キャリブレーション装置１００は、該当オーバーラップ部分において、初の画像データではない場合には（ステップＳ１０２，Ｎｏ）、最適な画像データを判定し、最適な画像データを対象物画像管理テーブル１１０ｄに保存する（ステップＳ１０３）。キャリブレーション装置１００は、最適な画像データを対象物画像管理テーブル１１０ｄに保存した後に、ステップＳ１０５に移行する。
【００６４】
キャリブレーション装置１００は、該当オーバーラップ部分において、初の画像データの場合には（ステップＳ１０２，Ｙｅｓ）、画像データを対象物画像管理テーブル１１０ｄに保存する（ステップＳ１０４）。
【００６５】
キャリブレーション装置１００は、ＴＣ時間以内に画像データが全てそろっていない場合には（ステップＳ１０５，Ｎｏ）、再度ステップＳ１０１に移行する。一方、キャリブレーション装置１００は、ＴＣ時間以内に画像データが全てそろった場合には（ステップＳ１０５，Ｙｅｓ）、カメラパラメータを調整するか否かを判定する（ステップＳ１０６）。
【００６６】
キャリブレーション装置１００は、カメラパラメータを調整する場合には（ステップＳ１０６，Ｙｅｓ）、カメラパラメータ調整処理を実行する（ステップＳ１０７）。一方、キャリブレーション装置１００は、カメラパラメータを調整しない場合には（ステップＳ１０６，Ｎｏ）、処理を終了する。
【００６７】
次に、図１１のステップＳ１０７に示したカメラパラメータ調整処理の処理手順について説明する。図１２は、カメラパラメータ調整処理の処理手順を示すフローチャートである。キャリブレーション実行部１４０は、Ｄ１〜Ｄ４を算出する（ステップＳ２０１）。
【００６８】
キャリブレーション実行部１４０は、誤差が閾値未満の場合には（ステップＳ２０２，Ｙｅｓ）、カメラパラメータ調整処理を終了する。キャリブレーション実行部１４０は、誤差が閾値以上の場合には（ステップＳ２０２，Ｎｏ）、カメラ候補判定処理を実行する（ステップＳ２０３）。
【００６９】
キャリブレーション実行部１４０は、調整候補の車載カメラと、前回調整したカメラとが同じ場合には（ステップＳ２０４，Ｙｅｓ）、カメラパラメータ調整処理を終了する。一方、キャリブレーション実行部１４０は、調整候補の車載カメラと、前回調整したカメラとが異なる場合には（ステップＳ２０４，Ｎｏ）、調整候補の車載カメラのカメラパラメータを算出する（ステップＳ２０５）。
【００７０】
キャリブレーション実行部１４０は、カメラパラメータ１１０ｅを調整する（ステップＳ２０６）。キャリブレーション実行部１４０は、調整前のカメラパラメータと調整後のカメラパラメータとの差分の絶対値が閾値未満の場合には（ステップＳ２０７，Ｙｅｓ）、カメラパラメータ調整処理を終了する。一方、キャリブレーション実行部１４０は、調整前のカメラパラメータと調整後のカメラパラメータとの差分の絶対値が閾値以上の場合には（ステップＳ２０７，Ｎｏ）、再度ステップＳ２０１に移行する。
【００７１】
次に、図１２のステップＳ２０３に示した調整候補判定処理の処理手順について説明する。図１３は、調整候補判定処理の処理手順を示すフローチャートである。キャリブレーション実行部１４０は、Ｎに車載カメラの台数を代入し（ステップＳ３０１）、誤差の最大値Ｄｍａｘを初期値に設定する（ステップＳ３０２）。
【００７２】
キャリブレーション実行部１４０は、ｉに１を代入し（ステップＳ３０３）、ｉの値がＮの値より大きい場合には（ステップＳ３０４，Ｙｅｓ）、処理を終了する。一方、キャリブレーション実行部１４０は、ｉの値がＮの値以下の場合には（ステップＳ３０４，Ｎｏ）、ＤｍａｘがＤＣｉ未満であるか否かを判定する（ステップＳ３０５）。
【００７３】
キャリブレーション実行部１４０は、Ｄｍａｘの値がＤＣｉの値以上の場合には（ステップＳ３０５，Ｎｏ）、ステップＳ３０８に移行する。一方、キャリブレーション実行部１４０は、Ｄｍａｘの値がＤＣｉの値未満の場合には（ステップＳ３０５，Ｙｅｓ）、ＤｍａｘにＤＣｉの値を代入する（ステップＳ３０６）。
【００７４】
キャリブレーション実行部１４０は、ＤＣｉに対応する車載カメラを調整カメラ候補に設定する（ステップＳ３０７）。キャリブレーション実行部１４０は、ｉの値に１を加算した値をｉに代入し（ステップＳ３０８）、再度ステップＳ３０４に移行する。
【００７５】
次に、キャリブレーション実行部１４０が画像データを対象物画像管理テーブル１１０ｄに登録する処理手順について説明する。図１４は、画像データを対象物画像管理テーブルに登録する処理手順を示すフローチャートである。例えば、図１４に示す処理は、キャリブレーション実行部１４０が車両の位置データを取得したことを契機にして実行される。
【００７６】
図１４に示すように、キャリブレーション実行部１４０は、位置データを取得し（ステップＳ４０１）、車両の位置がキャリブレーションポイントの付近であるか否かを判定する（ステップＳ４０２）。
【００７７】
キャリブレーション実行部１４０は、車両の位置がキャリブレーションポイントの付近ではない場合には（ステップＳ４０２，Ｎｏ）、処理を終了する。一方、キャリブレーション実行部１４０は、車両の位置がキャリブレーションポイントの付近の場合には（ステップＳ４０２，Ｙｅｓ）、対の車載カメラによって撮影されたオーバーラップ部の画像データをそれぞれ取得する（ステップＳ４０３）。
【００７８】
キャリブレーション実行部１４０は、画像データがテンプレートの形状データと一致しない場合には（ステップＳ４０４，Ｎｏ）、処理を終了する。一方、キャリブレーション実行部１４０は、画像データがテンプレートの形状データと一致する場合には（ステップＳ４０４，Ｙｅｓ）、画像データを対象物画像管理テーブルに保存する（ステップＳ４０５）。
【００７９】
上述してきたように、キャリブレーション装置１００は、車載カメラＣＦ、ＣＲ、ＣＢ、ＣＬが撮影した重複領域ＡＬＦ、ＡＦＲ、ＡＲＢ、ＡＢＬの画像に対象物が含まれている場合に、重複領域の画像を対象物画像管理テーブル１１０ｄに登録しておく。また、キャリブレーション装置１００は、対象物画像管理テーブル１１０ｄに、ＡＬＦデータ、ＡＦＲデータ、ＡＬＢデータ、ＡＢＬデータが揃った場合に、対象物の特徴点の誤差とテンプレートデータ１１０ｃとを基にして、カメラパラメータ１１０ｅを調整する。カメラパラメータ１１０ｅの調整で必要となる対象物画像管理テーブル１１０ｄのＡＬＦデータ、ＡＦＲデータ、ＡＢＬデータは、車両走行中に順次記憶することができる。このため、キャリブレーション装置１００によれば、車両の走行中にカメラのパラメータを修正することができるという効果を奏する。
【００８０】
また、上記キャリブレーション装置１００は、ＡＬＦデータ、ＡＦＲデータ、ＡＲＢデータ、ＡＢＬデータが、所定の時間幅ＴＣ内に撮影された場合に、かかるＡＬＦデータ、ＡＦＲデータ、ＡＲＢデータ、ＡＢＬデータを利用してカメラパラメータを調整する。このため、車載カメラの長期的な経年変化の影響を除外して、カメラパラメータを精度よく調整することができる。
【００８１】
なお、時間幅ＴＣを長く設定すると、人の乗り降りが発生し、車載カメラの状態を一定に保つことができなくなる。このため、キャリブレーション装置１００は、時間幅ＴＣを短く設定することで、例えば、利用者が車両に乗り降りすることによる影響を除外して、カメラパラメータを精度よく調整することができる。
【００８２】
また、上記キャリブレーション装置１００は、評価関数を利用して、対象物の特徴点の誤差が最小となるようにカメラパラメータを調整する。このため、簡易な方法により、カメラパラメータを再調整することが可能となる。
【００８３】
なお、本実施例２では、移動体の一例として、車両を用いて実施例の説明を行ったがこれに限定されるものではない。例えば、路面電車、自動二輪車等の車両を含む移動体にも同様にして本願発明を適用することができる。
【００８４】
ところで、図３に示したキャリブレーション装置１００の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、キャリブレーション装置１００の分散、統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００８５】
例えば、キャリブレーション装置１００に通信機能を持たせ、キャリブレーション実行部１４０の機能をネットワーク上のサーバ装置に持たせ、テンプレートデータ１１０ｃ、対象物画像管理テーブル１１０ｄをサーバ装置に記憶させる。そして、キャリブレーション装置１００は、各画像データをサーバ装置に送信し、カメラパラメータ１１０ｅの修正依頼を行ってもよい。
【００８６】
キャリブレーション装置１００は、既知のパーソナルコンピュータ、ワークステーション、携帯電話、ＰＨＳ端末、移動体通信端末またはＰＤＡなどの情報処理装置に、キャリブレーション装置１００の各機能を搭載することによって実現することもできる。
【００８７】
図１５は、実施例にかかるキャリブレーション装置を構成するコンピュータのハードウェア構成を示す図である。図１５に示すように、このコンピュータ２００は、各種演算処理を実行するＣＰＵ（Central  Processing  Unit）２０１と、ユーザからのデータの入力を受け付ける入力装置２０２と、モニタ２０３を有する。また、コンピュータ２００は、記憶媒体からプログラム等を読取る媒体読み取り装置２０４と、ネットワークを介して他のコンピュータとの間でデータの授受を行うネットワークインターフェース装置２０５を有する。また、コンピュータ２００は、画像を撮影する複数のカメラ２０６と、各種情報を一時記憶するＲＡＭ（Random  Access  Memory）２０７と、ハードディスク装置２０８を有する。各装置２０１〜２０８は、バス２０９に接続される。
【００８８】
そして、ハードディスク装置２０８には、図３に示した画像補正部１３０、キャリブレーション実行部１４０に対応するキャリブレーションプログラム２０８ａを記憶する。また、ハードディスク装置２０８は、図３に示した画像合成部１５０に対応する画像合成プログラム２０８ｂを記憶する。また、ハードディスク装置２０８は、各種データ２０８ｃを記憶する。この各種データ２０８ｃは、図３の各種データ１１０ａ〜１１０ｅに対応する。
【００８９】
ＣＰＵ２０１がキャリブレーションプログラム２０８ａをハードディスク装置２０８から読み出してＲＡＭ２０７に展開することにより、キャリブレーションプログラム２０８ａは、キャリブレーションプロセス２０７ａとして機能するようになる。ＣＰＵ２０１が画像合成プログラム２０８ｂをハードディスク装置２０８から読み出してＲＡＭ２０７に展開することにより、画像合成プログラム２０８ｂは、画像合成プロセス２０７ｂとして機能するようになる。また、ＣＰＵ２０１は、各種データ２０８ｃを読み出して、ＲＡＭ２０７に格納する。
【００９０】
キャリブレーションプロセス２０７ａは、重複領域の画像データを利用して、各種データ２０７ｃに含まれるカメラパラメータを調整する。画像合成プロセス２０７ｂは、各種データ２０７ｃに含まれるカメラパラメータを基にして、各画像データを合成し、モニタに合成画像を表示させる。
【００９１】
なお、上記のキャリブレーションプログラム２０８ａ、画像合成プログラム２０８ｂは、必ずしもハードディスク装置２０８に格納されている必要はない。例えば、ＣＤ−ＲＯＭ等の記憶媒体に記憶されたキャリブレーションプログラム２０８ａ、画像合成プログラム２０８ｂを、コンピュータ２００が読み出して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等にこのキャリブレーションプログラム２０８ａ、画像合成プログラム２０８ｂを記憶させておいてもよい。この場合、コンピュータ２００がこれらからキャリブレーションプログラム２０８ａ、画像合成プログラム２０８ｂを読み出して実行するようにしてもよい。
【００９２】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９３】
（付記１）対になるカメラの撮影範囲が重複する領域を示す重複領域の画像を、異なる重複領域毎に取得する画像取得部と、
所定の形状の対象物の画像と前記重複領域の画像とを比較して、前記重複領域の画像に含まれる前記対象物の画像を抽出し、抽出した対象物の画像を該画像を撮影したカメラと対応づけて記憶部に保存する対象物抽出部と、
前記異なる重複領域毎に、前記対になるカメラがそれぞれ撮影した対象物の画像が前記記憶部に記憶された場合に、各対象物の特徴点の位置と所定の寸法とに基づいて、各特徴点の位置の誤差を算出する誤差算出部と、
を備えたことを特徴とする画像処理装置。
【００９４】
（付記２）前記カメラの位置または角度を含むパラメータに基づいて、各カメラが撮影した画像を合成する画像合成部と、前記誤差算出部が算出した誤差に基づいて前記パラメータを調整するパラメータ調整部とを更に備えたことを特徴とする付記１に記載の画像処理装置。
【００９５】
（付記３）前記対象物抽出部は、前記対象物の画像を前記記憶部に保存する場合に、前記対象物の画像が撮影された時間を対応づけて記憶し、前記誤差算出部は、前記記憶部に記憶された異なる重複領域毎の対象物の画像の撮影時間の差が所定時間内の場合に、各特徴点の位置の誤差を算出すること特徴とする付記１または２に記載の画像処理装置。
【００９６】
（付記４）前記パラメータ調整部は、対のカメラに対応する対象物の特徴点の誤差の総和が最小となるように前記パラメータを調整することを特徴とする付記２または３に記載の画像処理装置。
【００９７】
（付記５）コンピュータに、
対になるカメラの撮影範囲が重複する領域を示す重複領域の画像を、異なる重複領域毎に取得する画像取得手順と、
所定の形状の対象物の画像と前記重複領域の画像とを比較して、前記重複領域の画像に含まれる前記対象物の画像を抽出し、抽出した対象物の画像を該画像を撮影したカメラと対応づけて記憶部に保存する対象物抽出手順と、
前記異なる重複領域毎に、前記対になるカメラがそれぞれ撮影した対象物の画像が前記記憶部に記憶された場合に、各対象物の特徴点の位置と所定の寸法とに基づいて、各特徴点の位置の誤差を算出する誤差算出手順と、
を実行させることを特徴とする画像処理プログラム。
【００９８】
（付記６）前記カメラの位置または角度を含むパラメータに基づいて、各カメラが撮影した画像を合成する画像合成手順と、前記誤差算出手順が算出した誤差に基づいて前記パラメータを調整するパラメータ調整手順とを更にコンピュータに実行させることを特徴とする付記５に記載の画像処理プログラム。
【００９９】
（付記７）前記対象物抽出手順は、前記対象物の画像を前記記憶部に保存する場合に、前記対象物の画像が撮影された時間を対応づけて記憶し、前記誤差算出手順は、前記記憶部に記憶された異なる重複領域毎の対象物の撮影時間の差が所定時間内の場合に、各特徴点の位置の誤差を算出すること特徴とする付記５または６に記載の画像処理プログラム。
【０１００】
（付記８）前記パラメータ調整手順は、対のカメラに対応する対象物の特徴点の誤差の総和が最小となるように前記パラメータを調整することを特徴とする付記６または７に記載の画像処理プログラム。
【符号の説明】
【０１０１】
１０  画像処理装置
１１  画像取得部
１２  対象物抽出部
１３  記憶部
１４  誤差算出部
【図１】
0005552892.tif 000002
【図２】
0005552892.tif 000003
【図３】
0005552892.tif 000004
【図４】
0005552892.tif 000005
【図５】
0005552892.tif 000006
【図６】
0005552892.tif 000007
【図７】
0005552892.tif 000008
【図８】
0005552892.tif 000009
【図９】
0005552892.tif 000010
【図１０】
0005552892.tif 000011
【図１１】
0005552892.tif 000012
【図１２】
0005552892.tif 000013
【図１３】
0005552892.tif 000014
【図１４】
0005552892.tif 000015
【図１５】
0005552892.tif 000016