(57)【要約】  画像処理装置（１０）は、複数の撮像画像（１０１ａ〜１０１ｄ）の各々を撮影した撮像装置（１ａ〜１ｄ）の特定情報と撮影時刻を示す時刻情報と関連付けて記憶部（１１４，１１５）に記録する画像記録部（１０２）と、記憶部（１１４，１１５）に記録された複数の撮像画像から、複数の撮像装置（１ａ〜１ｄ）の各々の推定移動量を計算する移動量推定部（１０４）と、撮影時刻が同じである複数の撮像画像を合成することによって生成された合成画像の複数の撮像画像の重複領域におけるずれ量の評価値を取得する処理、推定移動量及びずれ量の評価値に基づいて複数の撮像装置（１ａ〜１ｄ）の各々の外部パラメータを更新する処理、及び更新された外部パラメータを用いて撮影時刻が同じである複数の撮像画像を合成する処理、を含むずれ補正処理を繰り返し実行するずれ補正部（１００）とを有する。
2020170288.tif 000002
【特許請求の範囲】
【請求項１】
複数の撮像装置によって撮影された複数の撮像画像を合成する処理を行う画像処理装置であって、
前記複数の撮像画像の各々を、前記複数の撮像画像の各々を撮影した撮像装置の特定情報と撮影時刻を示す時刻情報と関連付けて記憶部に記録する画像記録部と、
前記記憶部に記録された前記複数の撮像画像から、前記複数の撮像装置の各々の推定移動量を計算する移動量推定部と、
撮影時刻が同じである前記複数の撮像画像を合成することによって生成された合成画像を構成する前記複数の撮像画像の重複領域におけるずれ量の評価値を取得する処理、前記推定移動量及び前記ずれ量の前記評価値に基づいて前記複数の撮像装置の各々の外部パラメータを更新する処理、及び更新された外部パラメータを用いて撮影時刻が同じである前記複数の撮像画像を合成する処理、を含むずれ補正処理を繰り返し実行するずれ補正部と、
を有することを特徴とする画像処理装置。
【請求項２】
前記ずれ補正部は、前記ずれ量の前記評価値が予め決められた条件を満たすまで前記ずれ補正処理を繰り返し実行することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記移動量推定部は、前記複数の撮像装置の各々について、前記画像記録部から指定期間内における前記撮像画像を取得し、時間順に並ぶ複数の撮像画像から隣接画像期間における移動量を求め、前記隣接画像期間における移動量を用いた計算によって前記推定移動量を取得することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記推定移動量は、前記指定期間内に存在する前記隣接画像期間における移動量の合計値であることを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記隣接画像期間における移動量が予め決められた外れ値の条件を満たすか否かを判定する外れ値除外部をさらに有し、
前記移動量推定部は、前記外れ値の条件を満たす前記隣接画像期間における移動量を、前記推定移動量を算出する計算に用いない
ことを特徴とする請求項３又は４に記載の画像処理装置。
【請求項６】
前記ずれ補正部が前記ずれ補正処理を実行するタイミングを生成する補正タイミング決定部をさらに有することを特徴とする請求項１から５のいずれか１項に記載の画像処理装置。
【請求項７】
前記ずれ補正部は、前記ずれ補正処理の対象が前記複数の撮像装置である場合に、前記ずれ補正処理において用いられる前記ずれ量の前記評価値として、前記合成画像における複数のずれ量を合計して得られた合計値を用いることを特徴とする請求項１から６のいずれか１項に記載の画像処理装置。
【請求項８】
複数の撮像装置によって撮影された複数の撮像画像を合成する処理を行う画像処理方法であって、
前記複数の撮像画像の各々を、前記複数の撮像画像の各々を撮影した撮像装置の特定情報と撮影時刻を示す時刻情報と関連付けて記憶部に記録するステップと、
前記記憶部に記録された前記複数の撮像画像から、前記複数の撮像装置の各々の推定移動量を計算するステップと、
撮影時刻が同じである前記複数の撮像画像を合成することによって生成された合成画像を構成する前記複数の撮像画像の重複領域におけるずれ量の評価値を取得する処理、前記推定移動量及び前記ずれ量の前記評価値に基づいて前記複数の撮像装置の各々の外部パラメータを更新する処理、及び更新された外部パラメータを用いて撮影時刻が同じである前記複数の撮像画像を合成する処理、を含むずれ補正処理を繰り返し実行するステップと、
を有することを特徴とする画像処理方法。
【請求項９】
複数の撮像装置によって撮影された複数の撮像画像を合成する処理をコンピュータに実行させる画像処理プログラムであって、
前記複数の撮像画像の各々を、前記複数の撮像画像の各々を撮影した撮像装置の特定情報と撮影時刻を示す時刻情報と関連付けて記憶部に記録するステップと、
前記記憶部に記録された前記複数の撮像画像から、前記複数の撮像装置の各々の推定移動量を計算するステップと、
撮影時刻が同じである前記複数の撮像画像を合成することによって生成された合成画像を構成する前記複数の撮像画像の重複領域におけるずれ量の評価値を取得する処理、前記推定移動量及び前記ずれ量の前記評価値に基づいて前記複数の撮像装置の各々の外部パラメータを更新する処理、及び更新された外部パラメータを用いて撮影時刻が同じである前記複数の撮像画像を合成する処理、を含むずれ補正処理を繰り返し実行するステップと、
を前記コンピュータに実行させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、及び画像処理プログラムに関する。
【背景技術】
【０００２】
複数のカメラによって撮影された複数の撮像画像を合成することによって合成画像を生成する装置が提案されている（例えば、特許文献１を参照）。この装置は、車両の姿勢の変動前に撮影された撮像画像における特徴点と車両の姿勢の変動後に撮影された撮像画像における特徴点とを用いて複数のカメラの各々のカメラパラメータをキャリブレーションして、複数の撮像画像の境界部分におけるずれを補正している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１７／０６９１９１号（例えば、段落００４１、図５参照）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の装置は、短時間に発生する撮像装置の変化を、位置姿勢変化前後の撮像画像内の特徴点同士のマッチングによって推定している。このため、長期間（数日〜数年）におけるカメラの位置姿勢変化を推定する場合、位置姿勢変化前後の撮像画像の特徴が大きく変化することから、特徴点同士のマッチングがうまくいかない可能性がある。また、ずれの補正後に、複数の撮像画像の境界部分におけるずれが正確に補正されているかどうかを評価していない。このため、合成画像における境界部分にずれが残るという課題がある。【０００５】
本発明は、上記した従来の課題を解決するためになされたものであり、複数の撮像装置の位置姿勢の変化によって合成画像を構成する複数の撮像画像の重複領域に生じたずれを高精度に補正することができる画像合成装置、画像合成方法、及び画像合成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一態様に係る画像処理装置は、複数の撮像装置によって撮影された複数の撮像画像を合成する処理を行う装置であって、前記複数の撮像画像の各々を、前記複数の撮像画像の各々を撮影した撮像装置の特定情報と撮影時刻を示す時刻情報と関連付けて記憶部に記録する画像記録部と、前記記憶部に記録された前記複数の撮像画像から、前記複数の撮像装置の各々の推定移動量を計算する移動量推定部と、撮影時刻が同じである前記複数の撮像画像を合成することによって生成された合成画像を構成する前記複数の撮像画像の重複領域におけるずれ量の評価値を取得する処理、前記推定移動量及び前記ずれ量の前記評価値に基づいて前記複数の撮像装置の各々の外部パラメータを更新する処理、及び更新された外部パラメータを用いて撮影時刻が同じである前記複数の撮像画像を合成する処理、を含むずれ補正処理を繰り返し実行するずれ補正部と、を有することを特徴とする。【０００７】
また、本発明の他の態様に係る画像処理方法は、複数の撮像装置によって撮影された複数の撮像画像を合成する処理を行う方法であって、前記複数の撮像画像の各々を、前記複数の撮像画像の各々を撮影した撮像装置の特定情報と撮影時刻を示す時刻情報と関連付けて記憶部に記録するステップと、前記記憶部に記録された前記複数の撮像画像から、前記複数の撮像装置の各々の推定移動量を計算するステップと、撮影時刻が同じである前記複数の撮像画像を合成することによって生成された合成画像を構成する前記複数の撮像画像の重複領域におけるずれ量の評価値を取得する処理、前記推定移動量及び前記ずれ量の前記評価値に基づいて前記複数の撮像装置の各々の外部パラメータを更新する処理、及び更新された外部パラメータを用いて撮影時刻が同じである前記複数の撮像画像を合成する処理、を含むずれ補正処理を繰り返し実行するステップと、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、複数の撮像装置の位置姿勢の変化によって合成画像を構成する複数の撮像画像の重複領域に生じたずれを高精度に補正することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態１に係る画像処理装置のハードウェア構成の例を示す図である。
【図２】実施の形態１に係る画像処理装置の構成を概略的に示す機能ブロック図である。
【図３】（Ａ）及び（Ｂ）は、実施の形態１に係る画像処理装置の合成テーブル生成部及び合成処理部によって実行される処理の例を示す説明図である。
【図４】（Ａ）及び（Ｂ）は、実施の形態１に係る画像処理装置の合成テーブル生成部及び合成処理部によって実行される処理の他の例を示す説明図である。
【図５】実施の形態１に係る画像処理装置によって実行される処理の概要を示すフローチャートである。
【図６】実施の形態１に係る画像処理装置の画像記録部によって実行される処理を示すフローチャートである。
【図７】実施の形態１に係る画像処理装置の移動量推定部によって実行される処理を示すフローチャートである。
【図８】記録された撮像画像と移動量との関係を示す図である。
【図９】実施の形態１に係る画像処理装置の外れ値除外部によって実行される処理を示すフローチャートである。
【図１０】外れ値除外部によって実行される外れ値の除外のための処理を示す説明図である。
【図１１】実施の形態１に係る画像処理装置の補正タイミング決定部によって実行される処理を示すフローチャートである。
【図１２】実施の形態１に係る画像処理装置によって実行されるパラメータ最適化処理（すなわち、ずれ補正処理）を示すフローチャートである。
【図１３】実施の形態１に係る画像処理装置のパラメータ最適化部によって実行される外部パラメータの更新に用いられる計算式を示す説明図である。
【図１４】実施の形態１に係る画像処理装置のパラメータ最適化部によって実行されるずれ補正処理の例を示す説明図である。
【図１５】（Ａ）から（Ｄ）は、実施の形態１に係る画像処理装置のパラメータ最適化部によって実行されるずれ補正処理の他の例を示す説明図である。
【図１６】（Ａ）から（Ｃ）は、実施の形態１に係る画像処理装置のパラメータ最適化部によって実行されるずれ補正処理の他の例を示す説明図である。
【図１７】実施の形態１に係る画像処理装置の合成テーブル生成部によって実行される処理を示すフローチャートである。
【図１８】実施の形態１に係る画像処理装置の合成処理部によって実行される処理を示すフローチャートである。
【図１９】（Ａ）から（Ｃ）は、実施の形態１に係る画像処理装置のずれ量評価部によって実行されるずれ量の評価値の取得のための処理を示す説明図である。
【図２０】実施の形態１に係る画像処理装置のずれ量評価部によって実行される処理を示すフローチャートである。
【図２１】実施の形態１に係る画像処理装置の重複領域抽出部によって実行される処理を示すフローチャートである。
【図２２】実施の形態１に係る画像処理装置の表示画像出力部によって実行される処理を示すフローチャートである。
【図２３】本発明の実施の形態２に係る画像処理装置によって実行されるパラメータ最適化処理（すなわち、ずれ補正処理）を示すフローチャートである。
【図２４】実施の形態２に係る画像処理装置のパラメータ最適化部によって実行されるずれ補正処理の例を示す説明図である。
【図２５】（Ａ）から（Ｄ）は、実施の形態２に係る画像処理装置のパラメータ最適化部によって実行されるずれ補正処理の他の例を示す説明図である。
【発明を実施するための形態】
【００１０】
以下に、本発明の実施の形態に係る画像処理装置、画像処理方法、及び画像処理プログラムを、図面を参照しながら説明する。以下の実施の形態は、例にすぎず、本発明の範囲内で種々の変更が可能である。
【００１１】
《１》実施の形態１．
《１−１》構成
図１は、本発明の実施の形態１に係る画像処理装置１０のハードウェア構成の例を示す図である。図１に示されるように、画像処理装置１０は、プロセッサ１１と、主記憶装置であるメモリ１２と、補助記憶装置である記憶装置１３と、画像入力インタフェース１４と、表示機器インタフェース１５とを備えている。プロセッサ１１は、メモリ１２に記憶されているプログラムを実行することにより、各種の演算処理及び各種のハードウェア制御処理を行う。メモリ１２に記憶されているプログラムは、実施の形態１に係る画像処理プログラムを含む。画像処理プログラムは、例えば、インターネットを経由して取得される。また、画像処理プログラムは、これが記録されて磁気ディスク、光ディスク、半導体メモリ、などの記録媒体から取得されてもよい。記憶装置１３は、例えば、ハードディスク装置、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、などである。画像入力インタフェース１４は、撮像装置であるカメラ１ａ，１ｂ，１ｃ，１ｄから提供された撮像画像すなわちカメラ画像を、撮像画像データに変換して取り込む。表示機器インタフェース１５は、撮像画像データ又は後述する合成画像データをディスプレイである表示装置１８に出力する。図１には、４台のカメラ１ａ〜１ｄが示されているが、カメラの台数は４台に限定されない。
【００１２】
カメラ１ａ〜１ｄは、画像を撮影する機能を有する。カメラ１ａ〜１ｄの各々は、ＣＣＤ（Ｃｈａｒｇｅｄ−Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）イメージセンサ、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ−Ｏｘｉｄｅ−Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）イメージセンサ、などの撮像素子と、１枚以上のレンズを含むレンズ部とを備えている。カメラ１ａ〜１ｄは、互いに同一の構造を持つ同一種類の機器である必要はない。カメラ１ａ〜１ｄは、例えば、レンズ部が固定されておりズーム機能を備えない固定カメラ、レンズ部が可動式でありズーム機能を備えたズームカメラ、又はパン・チルト・ズーム（ＰＴＺ  Ｐａｎ  Ｔｉｌｔ  Ｚｏｏｍ）カメラ、などである。実施の形態１では、カメラ１ａ〜１ｄが固定カメラである場合を説明する。
【００１３】
カメラ１ａ〜１ｄは、画像処理装置１０の画像入力インタフェース１４と接続されている。この接続は、有線接続又は無線接続のいずれであってもよい。カメラ１ａ〜１ｄと画像入力インタフェース１４との接続は、例えば、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワークによるものである。カメラ１ａ〜１ｄと画像入力インタフェース１４との接続は、他の種類の接続であってもよい。
【００１４】
画像入力インタフェース１４は、カメラ１ａ〜１ｄから撮像画像（すなわち、画像データ）を受け取る。受け取った撮像画像は、メモリ１２又は記憶装置１３に記憶される。プロセッサ１１は、メモリ１２又は記憶装置１３に記憶されたプログラムを実行して、カメラ１ａ〜１ｄから受け取った複数の撮像画像に合成処理を施すことによって、合成画像（すなわち、合成画像データ）を生成する。合成画像は、表示機器インタフェース１５を介してディスプレイとしての表示装置１８へ送られる。表示装置１８は、受け取った合成画像に基づいて画像を表示する。
【００１５】
＜画像処理装置１０＞
図２は、実施の形態１に係る画像処理装置１０の構成を概略的に示す機能ブロック図である。画像処理装置１０は、実施の形態１に係る画像処理方法を実施することができる装置である。図２に示されるように、画像処理装置１０は、画像記録部１０２と、記憶部１１４と、タイミング決定部１０３と、移動量推定部１０４と、特徴点抽出部１０５と、パラメータ最適化部１０６と、補正タイミング決定部１０７と、合成テーブル生成部１０８と、合成処理部１０９と、ずれ量評価部１１０と、重複領域抽出部１１１と、表示画像出力部１１２とを備えている。パラメータ最適化部１０６、合成テーブル生成部１０８、合成処理部１０９、ずれ量評価部１１０、及び重複領域抽出部１１１は、合成画像における撮像画像の重複領域におけるずれを補正するずれ補正部１００を構成している。また、画像処理装置１０は、外れ値除外部１１３を備えてもよい。また、画像記録部１０２は、撮像画像１０１ａ〜１０１ｄを記憶する外部記憶部１１５と接続される。記憶部１１４は、例えば、図１に示されるメモリ１２、記憶装置１３、又はそれらの一部である。外部記憶部１１５は、例えば、図１に示される外部記憶装置１７又はその一部である。
【００１６】
画像処理装置１０は、カメラ１ａ〜１ｄから撮像画像１０１ａ〜１０１ｄを受け取り、撮像画像１０１ａ〜１０１ｄを合成して、１つの合成画像を生成する。画像記録部１０２は、カメラ１ａ〜１ｄが撮像した撮像画像１０１ａ〜１０１ｄを記憶部１１４又は外部記憶部１１５又はこれらの両方に記録する。
【００１７】
タイミング決定部１０３は、画像記録部１０２が撮像画像１０１ａ〜１０１ｄを記録するタイミングを指示する。
【００１８】
移動量推定部１０４は、カメラ１ａ〜１ｄの各々の推定移動量（すなわち、位置姿勢ずれ量）を計算する。移動量は、例えば、カメラ１ａ〜１ｄの並進移動成分と回転移動成分とで表される。並進移動成分は、ＸＹＺ直交座標系におけるＸ軸、Ｙ軸、Ｚ軸方向の３成分を含む。回転移動成分は、ロール、ピッチ、ヨーの３成分を含む。なお、カメラの移動量が一意に決まるものであれば、ここではパラメータの形式は問わない。また、移動量は、上記複数の成分のうちの一部の成分から構成されてもよい。カメラ１ａ〜１ｄの移動（すなわち、位置姿勢ずれ）は、例えば、３つの並進移動成分と３つの回転移動成分とを要素とする移動ベクトルで表記することができる。移動ベクトルの例は、後述の図１３に移動ベクトルＰｔとして示される。
【００１９】
外れ値除外部１１３は、移動量推定部１０４によって推定されたカメラ１ａ〜１ｄの各々の指定期間中における移動量（以下「推定移動量」ともいう。）を決定する過程で、隣接画像の間の期間における移動量（以下「隣接画像期間における移動量」ともいう。）＃１〜＃Ｎ−１が外れ値に該当するか否かを判定し、外れ値に該当する隣接画像期間における移動量を、移動量推定部１０４で生成される推定移動量の決定のための計算に用いない。ここで、Ｎは正の整数である。隣接画像期間における移動量のいずれかが外れ値に該当するか否かの判定は、隣接画像期間における移動量が起こり得ない値であるか否かで行われことができる。例えば、外れ値除外部１１３は、隣接画像期間における移動量が予め決められた閾値を超えた場合に、隣接画像期間における移動量は外れ値であると判定する。隣接画像期間における移動量が外れ値であるか否かの判定の具体例は、後述の図９及び図１０で説明される。
【００２０】
特徴点抽出部１０５は、撮像画像１０１ａ〜１０１ｄからカメラ１ａ〜１ｄの各々の推定移動量を計算するための特徴点を抽出する。
【００２１】
パラメータ最適化部１０６は、移動量推定部１０４によって計算された推定移動量と、後述するずれ量評価部１１０から提供されるずれ量の評価値とに基づいて、合成画像を構成する撮像画像間の重複領域におけるずれを補正する最適な外部パラメータを求め、これを用いて外部パラメータを更新する。撮像画像間の重複領域におけるずれは、「合成画像におけるずれ」ともいう。この量は、後述の図１３に示される。
【００２２】
補正タイミング決定部１０７は、合成画像におけるずれを補正するタイミングを決定する。
【００２３】
合成テーブル生成部１０８は、パラメータ最適化部１０６から提供された外部パラメータに対応する撮像画像の各々のマッピングテーブルである合成テーブルを生成する。合成処理部１０９は、合成テーブル生成部１０８から提供された合成テーブルを用いて撮像画像１０１ａ〜１０１ｄを１枚の画像に合成することで、合成画像を生成する。
【００２４】
ずれ量評価部１１０は、合成画像におけるずれの量、すなわち、ずれ量を計算して、ずれ量の計算値をずれ量の評価値として出力する。ずれ量の評価値は、パラメータ最適化部１０６に提供される。重複領域抽出部１１１は、合成処理部１０９において撮像画像１０１ａ〜１０１ｄを合成する際に、合成画像を構成する撮像画像１０１ａ〜１０１ｄ間の重複領域を抽出する。表示画像出力部１１２は、ずれが補正された合成画像、すなわち、ずれ補正処理後の合成画像を出力する。
【００２５】
＜画像記録部１０２＞
画像記録部１０２は、タイミング決定部１０３によって指定されたタイミングにおいて撮像画像１０１ａ〜１０１ｄを、記憶部１１４又は外部記憶部１１５又はこれらの両方に記録する。撮像画像１０１ａ〜１０１ｄを記録する際には、画像記録部１０２は、撮像画像１０１ａ〜１０１ｄの各々に、撮像画像１０１ａ〜１０１ｄを生成したカメラを特定するための識別情報である装置ＩＤと撮影時刻とを関連付けて、装置ＩＤと撮影時刻も記録する。装置ＩＤ及び撮影時刻は、「付随情報」ともいう。つまり、画像記録部１０２は、付随情報が関連付けられた撮像画像１０１ａ〜１０１ｄを、記憶部１１４又は外部記憶部１１５又はこれらの両方に記録する。
【００２６】
撮像画像１０１ａ〜１０１ｄと付随情報とを関連付けて記録する方法として、例えば、撮像画像１０１ａ〜１０１ｄのデータ内に付随情報を含める方法、ＲＤＢＭＳ（リレーショナルデータベースマネジメントシステム）などの関係データベースによって関連付けを行う方法、などがある。撮像画像１０１ａ〜１０１ｄと付随情報とを関連付けて記録する方法は、上記以外の方法であってもよい。
【００２７】
＜タイミング決定部１０３＞
タイミング決定部１０３は、カメラ１ａ〜１ｄから提供された撮像画像を記録するタイミングを、例えば、ユーザによって指定された条件に基づいて決定し、画像記録部１０２に伝える。指定された条件とは、予め決められた一定時間間隔ごと、又は予め決められた状況が発生した時点ごと、などである。予め決められた時間間隔は、秒、分、時間、日、月、などの単位を用いて指定される一定の時間間隔である。予め決められた状況が発生した時点とは、例えば、カメラ１ａ〜１ｄの撮像画像から特徴点が検出されたとき（例えば、日中におけるある時点）、又はカメラ１ａ〜１ｄの撮像画像において動く物体が検出されないとき、などである。また、撮像画像を記録するタイミングは、カメラ１ａ〜１ｄの各々の特性及び設置位置の状況に応じて、カメラ１ａ〜１ｄの各々について、個別に決定されてもよい。
【００２８】
＜特徴点抽出部１０５＞
特徴点抽出部１０５は、撮像画像１０１ａ〜１０１ｄに基づいて、カメラ１ａ〜１ｄの各々の推定移動量を計算するために、撮像画像１０１ａ〜１０１ｄの各々における特徴点を抽出し、特徴点の座標を検出する。特徴点の検出アルゴリズムの代表例としては、ＡＫＡＺＥがある。ただし、特徴点の検出アルゴリズムは、上記例に限定されない。
【００２９】
＜移動量推定部１０４＞
移動量推定部１０４は、画像記録部１０２によって記録された撮像画像１０１ａ〜１０１ｄの特徴点からカメラ１ａ〜１ｄの各々の推定移動量を計算する、すなわち、推定移動量を計算する。カメラ１ａ〜１ｄの各々の推定移動量は、例えば、カメラ１ａ〜１ｄが設置された時点を基準時とし、この基準時における位置からの移動量である。カメラ１ａ〜１ｄの各々の推定移動量は、例えば、指定された開始日と終了日との間の期間中における移動量である。カメラ１ａ〜１ｄの各々の推定移動量は、開始時刻と終了時刻とを指定することで、開始時刻と終了時刻との期間中におけるカメラ１ａ〜１ｄの各々の推定移動量であってもよい。移動量推定部１０４は、撮像画像１０１ａ〜１０１ｄの各々についての２つの時点の特徴点の座標に基づいて、カメラ１ａ〜１ｄの各々の推定移動量を計算する。
【００３０】
また、移動量推定部１０４は、ずれ補正部１００によってパラメータ最適化処理（すなわち、ずれ補正処理）が実行されたときに、パラメータ最適化部１０６からフィードバック情報を受け取る。具体的には、移動量推定部１０４は、パラメータ最適化部１０６がカメラ１ａ〜１ｄの各々の外部パラメータを最適化し及び更新したタイミングで、当該カメラ１ａ〜１ｄの各々について計算された推定移動量をゼロに設定（すなわち、リセット）する。あるいは、移動量推定部１０４は、パラメータ最適化部１０６から受け取ったフィードバック情報に基づいて、機械学習ベースで推定移動量の計算を行ってもよい。その後、移動量推定部１０４は、フィードバック情報を受け取った時点を基準時として、推定移動量の計算を行う。
【００３１】
移動量推定部１０４によって提供される推定移動量は、カメラ１ａ〜１ｄの並進移動成分と回転移動成分とで表される。並進移動成分は、Ｘ軸、Ｙ軸、Ｚ軸方向の３成分を含み、回転移動成分は、ロール、ピッチ、ヨーの３成分を含む。なお、カメラの移動量が一意に決まるものであれば、ここではパラメータの形式は問わない。並進移動成分及び回転移動成分は、ベクトル又は行列の形式で出力されてもよい。なお、カメラ１ａ〜１ｄの各々の推定移動量の計算のための処理は、上記の処理に限定されない。カメラ１ａ〜１ｄの各々の推定移動量の回転移動成分は、センサが取り付けられたカメラ又はセンサが内蔵されたカメラ（例えば、ＰＴＺカメラ）におけるロータリーエンコーダの出力などに基づいて取得されてもよい。
【００３２】
＜パラメータ最適化部１０６＞
パラメータ最適化部１０６は、補正タイミング決定部１０７がパラメータ最適化処理（すなわち、ずれ補正処理）の対象であると判断したカメラについて、移動量推定部１０４から提供されたカメラ１ａ〜１ｄの各々の推定移動量と、ずれ量評価部１１０によって計算された合成画像におけるずれ量の評価値（「ずれ量の計算値」ともいう。）とに基づいて、合成画像におけるずれを補正するために用いられる外部パラメータを求める。外部パラメータは、例えば、並進移動成分であるＸ軸、Ｙ軸、Ｚ軸方向の３成分と、回転移動成分であるロール、ピッチ、ヨーの３成分と、からなる。なお、カメラの位置姿勢が一意に決まるものであれば、外部パラメータの形式は問わない。
【００３３】
パラメータ最適化部１０６は、移動量推定部１０４によって得られたカメラ１ａ〜１ｄの各々の推定移動量と、ずれ量評価部１１０によって得られた合成画像におけるずれ量の評価値とに基づいて、合成画像におけるずれ量を小さくするように、合成画像におけるずれを補正するために用いられる外部パラメータを算出する。各カメラの外部パラメータの最適化処理は、例えば、以下の処理（Ｈ１）〜（Ｈ５）を行った後に、処理（Ｈ２）〜（Ｈ５）を、この順番に繰り返すことで、実行される。
（Ｈ１）パラメータ最適化部１０６がカメラ１ａ〜１ｄの各々の外部パラメータを更新する処理。
（Ｈ２）合成テーブル生成部１０８がカメラ１ａ〜１ｄの各々のパラメータ（すなわち、内部パラメータ、ゆがみ補正パラメータ、及び外部パラメータ）に対応する合成テーブルを生成する処理。
（Ｈ３）合成処理部１０９がカメラ１ａ〜１ｄの各々の合成テーブルを用いて撮像画像１０１ａ〜１０１ｄを合成して、合成画像を生成する処理。
（Ｈ４）ずれ量評価部１１０がこの合成画像におけるずれ量の評価値を求めて、これをフィードバックする処理。
（Ｈ５）パラメータ最適化部１０６がずれ量の評価値をフィードバック情報として用いて、外部パラメータを更新する処理。
【００３４】
また、パラメータ最適化部１０６は、カメラ１ａ〜１ｄのうちの２つ以上のカメラに位置姿勢ずれが生じた場合は、撮像画像１０１ａ〜１０１ｄの中から基準となる撮像画像を決定する処理と、ずれ補正処理の対象となるカメラの順番を決定する処理とを行う。また、パラメータ最適化部１０６は、ずれ補正処理を実行したタイミングで、各カメラの推定移動量をリセットするためのフィードバック情報を、移動量推定部１０４へ提供する。このフィードバック情報は、移動量のリセットの対象となるカメラを示す装置ＩＤと、補正後の外部パラメータとを含む。
【００３５】
＜補正タイミング決定部１０７＞
補正タイミング決定部１０７は、指定された条件を満たすタイミングを、合成画像におけるずれを補正するためのずれ補正処理の実行のタイミングとして、パラメータ最適化部１０６へ提供する。ここで、指定された条件とは、パラメータ最適化部１０６を介し移動量推定部１０４から得られるカメラ１ａ〜１ｄの推定移動量が閾値を超えたという条件、又はずれ量評価部１１０から得られる合成画像におけるずれ量の評価値が予め決められた閾値を超えたという条件、などである。カメラ１ａ〜１ｄの各々の推定移動量が閾値を超えたという条件は、例えば、「指定期間中における推定移動量」が閾値を超えたという条件、などである。補正タイミング決定部１０７は、パラメータ最適化部１０６に、合成画像におけるずれを補正するためのずれ補正処理を実行させる指示を出力する。なお、ずれ補正処理のタイミングは、マウス又はキーボードなどの入力インタフェースを用いて、利用者によって指定されてもよい。
【００３６】
＜合成テーブル生成部１０８＞
合成テーブル生成部１０８は、カメラ１ａ〜１ｄの各々の内部パラメータ及びゆがみ補正パラメータと、パラメータ最適化部１０６から提供されるカメラ１ａ〜１ｄの各々の外部パラメータとに基づいて、合成画像を生成するための合成テーブルを生成する。
【００３７】
図３（Ａ）及び（Ｂ）は、合成テーブル生成部１０８及び合成処理部１０９によって実行される処理を示す説明図である。図３（Ａ）は、カメラ１ａ〜１ｄの位置及び姿勢を示す。図３（Ｂ）は、カメラ１ａ〜１ｄによって撮影された撮像画像２０２ａ，２０２ｂ，２０２ｃ，２０２ｄと、合成画像２０５と、合成画像２０５を生成するために用いられる合成テーブル２０４ａ，２０４ｂ，２０４ｃ，２０４ｄとを示す。
【００３８】
合成テーブル生成部１０８は、カメラ１ａ〜１ｄの各々の内部パラメータ及びゆがみ補正パラメータと、パラメータ最適化部１０６から提供されるカメラ１ａ〜１ｄの各々の外部パラメータとに基づいて、合成テーブル２０４ａ〜２０４ｄを合成処理部１０９に与える。合成処理部１０９は、撮像画像２０２ａ〜２０２ｄに基づいて合成画像２０５を生成する。
【００３９】
なお、カメラ１ａ〜１ｄの位置関係及び撮影範囲を変更することによって、合成画像として、俯瞰合成画像、パノラマ合成画像、又はアラウンドビュー画像、などを生成することができる。合成テーブル生成部１０８は、撮像画像２０２ａ〜２０２ｄの画素と合成画像２０５の画素との対応を合成テーブルとして出力する。合成テーブル生成部１０８は、例えば、合成テーブル２０４ａ〜２０４ｄが２行２列の撮像画像の合成に用いられるものである場合、撮像画像２０２ａ〜２０２ｄを２行２列に並べる。
【００４０】
図４（Ａ）及び（Ｂ）は、合成テーブル生成部１０８及び合成処理部１０９が行う他の処理を示す説明図である。図４（Ａ）は、カメラ１ａ〜１ｄの位置及び姿勢を示す。図４（Ｂ）は、カメラ１ａ〜１ｄによって撮影された撮像画像２０６ａ，２０６ｂ，２０６ｃ，２０６ｄと、合成画像２０８と、合成画像２０８を生成するために用いられる合成テーブル２０７ａ，２０７ｂ，２０７ｃ，２０７ｄとを示す。
【００４１】
合成テーブル生成部１０８は、カメラ１ａ〜１ｄの各々の内部パラメータ及びゆがみ補正パラメータと、パラメータ最適化部１０６から提供されるカメラ１ａ〜１ｄの各々の外部パラメータとに基づいて、合成テーブル２０７ａ〜２０７ｄを合成処理部１０９に与える。合成処理部１０９は、撮像画像２０６ａ〜２０６ｄに基づいて合成画像２０８を生成する。
【００４２】
なお、カメラ１ａ〜１ｄの位置関係及び撮影範囲を変更することによって、合成画像として、俯瞰合成画像、パノラマ合成画像、又はアラウンドビュー画像、などを生成することができる。合成テーブル生成部１０８は、撮像画像２０６ａ〜２０６ｄの画素と合成画像２０８の画素との対応を合成テーブルとして出力する。合成テーブル生成部１０８は、例えば、合成テーブル２０７ａ〜２０７ｄが１行４列の撮像画像の合成に用いられるものである場合、撮像画像２０６ａ〜２０６ｄを１行４列に並べる。
【００４３】
＜合成処理部１０９＞
合成処理部１０９は、合成テーブル生成部１０８によって生成されたカメラ１ａ〜１ｄの各々の合成テーブルと、カメラ１ａ〜１ｄの撮像画像とを受け取り、撮像画像を合成して１枚の合成画像を生成する。合成処理部１０９は、撮像画像同士が重複する部分に対して、ブレンディング処理を行う。
【００４４】
＜ずれ量評価部１１０＞
ずれ量評価部１１０は、合成処理部１０９によって生成された合成画像と合成時に使用した合成テーブルとから合成画像におけるずれの大きさを示すずれ量の評価値を計算し、このずれ量の評価値をパラメータ最適化部１０６へ提供することで、合成画像におけるずれを補正するためのずれ補正処理の結果をパラメータ最適化部１０６にフィードバックする。合成画像におけるずれは、撮像画像同士を繋ぎ合わせた境界部分で発生する。境界部分は、重複領域又は重複部分ともいう。合成画像におけるずれ量の評価値の計算では、繋ぎ合わせる撮像画像の重複領域における、輝度値の差、又は対応する特徴点の間の距離、又は画像類似度、などの数値が用いられる。ずれ量の評価値は、撮像画像同士の組み合わせごとに計算される。例えば、カメラ１ａ〜１ｄが存在する場合には、カメラ１ａのずれ量の評価値は、カメラ１ａと１ｂ、カメラ１ａと１ｃ、及びカメラ１ａと１ｄについて計算される。また、ずれ量の評価値を計算するために使用される範囲は、自動的に検出されるが、利用者の操作によって指定されてもよい。
【００４５】
＜重複領域抽出部１１１＞
重複領域抽出部１１１は、合成処理部１０９によって生成された合成画像における撮像画像同士の重複領域を抽出する。抽出された重複領域を示す情報は、ずれ量評価部１１０に提供される。
【００４６】
＜表示画像出力部１１２＞
表示画像出力部１１２は、合成処理部１０９から提供された合成画像を表示装置（例えば、図１に示される）などに出力する。
【００４７】
《１−２》動作
《１−２−１》概要
図５は、画像処理装置１０によって実行される処理の概要を示すフローチャートである。図５に示されるように、画像処理装置１０は、画像記録処理群Ｓ１０と、移動量推定処理群Ｓ２０と、パラメータ最適化処理群（すなわち、ずれ補正処理群）Ｓ３０と、合成・表示処理群Ｓ４０とを並列に実行する。
【００４８】
画像記録処理群Ｓ１０において、画像記録部１０２は、タイミング決定部１０３からトリガを受け取ったときに（ステップＳ１１）、撮像画像１０１ａ〜１０１ｄを取得し（ステップＳ１２）、記憶部１１４又は外部記憶部１１５又はこれらの両方に撮像画像１０１ａ〜１０１ｄを記録する（ステップＳ１３）。
【００４９】
移動量推定処理群Ｓ２０において、移動量推定部１０４は、画像記録部１０２から撮像画像１０１ａ〜１０１ｄを受け取り、外れ値除外部１１３によって除外されなかった撮像画像、すなわち、予め決められた条件を満たす撮像画像を選択する（ステップＳ２１）。次に、移動量推定部１０４は、選択された撮像画像における特徴点を特徴点抽出部１０５から受け取る（ステップＳ２２）。次に、移動量推定部１０４は、カメラ１ａ〜１ｄの各々の推定移動量を計算する（ステップＳ２３）。移動量推定部１０４は、推定移動量が閾値を超えた場合、パラメータ最適化部１０６に推定移動量を提供する（ステップＳ２４）。
【００５０】
パラメータ最適化処理群Ｓ３０において、パラメータ最適化部１０６は、補正タイミング決定部１０７から補正指示を受け取ると（ステップＳ３１）、移動量推定部１０４からカメラ１ａ〜１ｄの各々の推定移動量を取得する（ステップＳ３２）。パラメータ最適化部１０６は、カメラ１ａ〜１ｄの外部パラメータの初期値を設定し（ステップＳ３３）、外部パラメータを更新する（ステップＳ３４）。次に、合成テーブル生成部１０８は、マッピングテーブルである合成テーブルを生成し（ステップＳ３５）、合成処理部１０９は合成テーブルを用いて画像を合成する（ステップＳ３６）。次に、ずれ量評価部１１０は、合成画像におけるずれ量の評価値を計算する（ステップＳ３７）。ステップＳ３４〜Ｓ３７の処理は、最適解が求まるまで、繰り返し実行される。
【００５１】
合成・表示処理群Ｓ４０において、合成処理部１０９は、撮像画像を取得し（ステップＳ４１）、合成テーブルを用いて撮像画像を合成する（ステップＳ４２）。表示画像出力部１１２は、合成画像を表示装置に出力する。表示装置は、合成画像に基づく映像を表示する（ステップＳ４３）。
【００５２】
《１−２−２》画像記録処理群Ｓ１０の詳細
図６は、画像記録部１０２によって実行される処理を示すフローチャートである。先ず、画像記録部１０２は、タイミング決定部１０３からトリガを受け取ったかどうかを判断する（ステップＳ１１０）。トリガは、撮影画像１ａ〜１ｄを記憶部１１４又は外部記憶部１１５又はこれらの両方に記録するタイミングを与える。トリガには、記憶する撮像画像を撮影したカメラを特定する装置ＩＤが含まれている。
【００５３】
画像記録部１０２は、トリガを受け取ったときに、カメラの装置ＩＤを取得する（ステップＳ１１１）。次に、画像記録部１０２は、トリガが発生した時刻を示す時刻情報を取得する（ステップＳ１１２）。例えば、画像記録部１０２は、画像処理装置１０を構成するコンピュータに搭載されている時計からトリガが発生した時刻を取得する。なお、時刻情報は、記録される撮像画像の順序関係が分かる順序番号などの情報であってもよい。
【００５４】
次に、画像記録部１０２は、カメラの現在の撮像画像を取得する（ステップＳ１１３）。最後に、画像記録部１０２は、撮像画像に、カメラの装置ＩＤと撮影時刻を示す時刻情報とを関連付けて、記憶部１１４又は外部記憶部１１５又はこれらの両方に記録する（ステップＳ１１４）。なお、画像記録部１０２は、トリガを受け取ったタイミングにおいて、設置されている複数のカメラの撮像画像を記録してもよい。また、画像記録部１０２は、トリガを受け取ったタイミングにおいて、予め決められた条件を満たすカメラの撮像画像のみを記録してもよい。また、画像記録部１０２は、移動量推定部１０４から記録した撮像画像の要求があった場合は、要求された撮像画像を、移動量推定部１０４に提供する。移動量推定部１０４は、撮像画像の要求に際し、カメラの装置ＩＤと、撮影時刻又は撮像期間とによって、要求する撮像画像を指定する。
【００５５】
《１−２−３》移動量推定処理群Ｓ２０の詳細
移動量推定処理群Ｓ２０では、画像記録処理群Ｓ１０において記録されたカメラ１ａ〜１ｄの各々の撮像画像から、特徴点を抽出し、カメラ１ａ〜１ｄの各々の推定移動量を計算する。推定移動量は、例えば、並進移動成分であるＸ軸、Ｙ軸、Ｚ軸方向の３成分と、回転移動成分であるロール、ピッチ、ヨーの３成分とを含む。推定移動量の計算は、補正タイミング決定部１０７によって実行される補正タイミングの決定の処理と、並列で実行される。推定移動量を計算するタイミングは、一定時間間隔が経過する度でもよいし、又は、画像記録処理群Ｓ１０において撮像画像が更新されたときであってもよい。
【００５６】
図７は、移動量推定部１０４によって実行される処理を示すフローチャートである。図８は、画像記録部１０２によって記録された撮像画像と、隣接画像期間における移動量（＃１〜＃Ｎ−１）３０２との関係を示す図である。
【００５７】
先ず、移動量推定部１０４は、画像記録部１０２によって記録された、各カメラの撮像画像の中から、推定移動量の計算を行うための指定期間中に記録された撮像画像３００ａを受け取る（ステップＳ１２０）。
【００５８】
次に、移動量推定部１０４は、受け取った複数の撮像画像３００ａを、画像記録部１０２が記録した順番で整列させる（ステップＳ１２１）。撮像画像３００ａは、撮像画像＃１〜＃Ｎの順に並ぶ。ここで、Ｎは、撮像画像の撮影時刻の順番を示す正の整数である。
【００５９】
次に、移動量推定部１０４は、隣接画像期間における移動量３０２を画像解析によって求める（ステップＳ１２２）。図８に示されるように、隣接画像期間は、Ｋが撮像画像の撮影時刻の順番を示す１以上Ｎ−１以下の整数であるときに、撮像画像＃Ｋから撮像画像＃Ｋ＋１までの期間である。隣接画像期間における移動量＃１〜＃Ｎ−１は、並進移動成分であるＸ軸、Ｙ軸、Ｚ軸方向の成分と、回転移動成分であるロール、ピッチ、ヨーの成分とを含む。図８の例では、Ｎ−１個の移動量（＃１〜＃Ｎ−１）３０２が得られる。画像解析には、例えば、５点アルゴリズムが用いられる。ただし、画像解析は、撮像画像中の特徴からカメラの位置姿勢を求めることができるものであれば、他の方法によって実行されてもよい。なお、「位置姿勢」は、位置又は姿勢又はこれらの両方を意味する。
【００６０】
このときの画像解析では、特徴点抽出部１０５によって撮像画像間で画像マッチングした特徴点の座標が用いられる。特徴点抽出部１０５が画像マッチングした特徴点を検出できなかった場合は、移動量推定部１０４は、その隣接画像期間における移動量を算出しない。
【００６１】
最後に、移動量推定部１０４は、隣接画像期間における移動量３０２において、予め決められた条件を満たす移動量３０２を合計し、それを指定期間中における各カメラの移動量すなわち推定移動量３０１として出力する。ここで、予め決められた条件とは、隣接画像期間における移動量＃１〜＃Ｎのうちの外れ値となっている移動量に該当しないことである。つまり、画像解析によって求められた隣接画像期間における移動量＃１〜＃Ｎの中から、外れ値となっている移動量を除外してえられた、移動量の合計が推定移動量３０１として算出される。予め条件を満たさない移動量を除外する処理は、外れ値除外部１１３によって実行される。
【００６２】
外れ値除外部１１３は、移動量推定部１０４において隣接画像期間における移動量３０２の中で外れ値となっているものを、指定期間中における推定移動量３０１の計算に用いないようにする機能を持つ。具体的には、外れ値除外部１１３は、カメラ１ａ〜１ｄの並進移動成分が閾値を超える大きな値である場合、回転移動成分が閾値を超える大きな値である場合など、移動量が通常は起こりえない値である場合に、この移動量を、指定期間中における推定移動量３０１の計算に用いないようにする。
【００６３】
外れ値除外部１１３は、図９及び図１０に示されるように、隣接画像期間における移動量３０２の時間的な前後関係を考慮に入れて、外れ値の除外を行うことも可能である。図９は、外れ値除外部１１３によって実行される処理を示すフローチャートである。図１０は、外れ値除外部１１３によって実行される外れ値の除外のための処理を示す説明図である。なお、Ｍは正の整数である。
【００６４】
図１０に示される複数の撮像画像３１０は、画像記録部１０２によって記録された各カメラの撮像画像を、記録した順番で整列させた状態を示すものである。Ｍ番目に撮像された撮像画像（＃Ｍ）３１２によって、外れ値に該当する移動量が存在するか否かを判断する場合、外れ値除外部１１３は、Ｍ番目に記録された撮像画像（＃Ｍ）３１２とその直前に記録された撮像画像（＃Ｍ−１）３１１とから隣接画像期間における移動量としてＧ１＝“移動量３１４”を計算し、Ｍ番目に記録された撮像画像（＃Ｍ）３１２とその直後に記録された撮像画像（＃Ｍ＋１）３１３とから隣接画像期間における移動量としてＧ２＝“移動量３１５”を求める（ステップＳ１３０，Ｓ１３１）。
【００６５】
次に、外れ値除外部１１３は、Ｍ番目に記録された撮像画像（＃Ｍ）３１２の直前と直後に記録された撮像画像（＃Ｍ−１）３１１と撮像画像（＃Ｍ＋１）３１３とから、Ｇ３＝“移動量３１６”を求める（ステップＳ１３２）。このとき、理想的に移動量が取得できた場合は、Ｇ１＋Ｇ２＝Ｇ３が成立する。
【００６６】
この性質を利用して、Ｇ１＋Ｇ２がＧ３と大きく異なる場合、外れ値除外部１１３は、Ｇ１＝“移動量３１４”又はＧ２＝“移動量３１５”に外れ値が含まれていると判断する（ステップＳ１３３）。つまり、外れ値除外部１１３は、｜Ｇ１＋Ｇ２−Ｇ３｜が予め決められた閾値以上である場合に、移動量であるＧ１又はＧ２が外れ値であると判断する。
【００６７】
｜Ｇ１＋Ｇ２−Ｇ３｜が予め決められた閾値以上である場合、外れ値除外部１１３は、外れ値を除外するために、Ｇ１＝“移動量３１４”とＧ２＝“移動量３１５”とを除外し、Ｇ３＝“移動量３１６”を、推定移動量の計算に含めるようにする。外れ値除外部１１３は、このようにして、Ｍ番目の撮像画像（＃Ｍ）３１２における移動量を外れ値として扱い、推定移動量の計算からＭ番目の撮像画像（＃Ｍ）３１２を用いて得られた移動量であるＧ１＝“移動量３１４”及びＧ２＝“移動量３１５”を除外する（ステップＳ１３４）。
【００６８】
《１−２−４》パラメータ最適化処理群Ｓ３０の詳細
パラメータ最適化処理群Ｓ３０では、補正タイミング決定部１０７は、移動量推定部１０４から提供されたカメラ１ａ〜１ｄの各々の推定移動量と、ずれ量評価部１１０から提供されたカメラ１ａ〜１ｄの各々の合成画像におけるずれ量の評価値とから、パラメータ最適化処理すなわちずれ補正処理の対象であるカメラの装置ＩＤを判定する。その後、パラメータ最適化部１０６は、パラメータ最適化処理の対象であるカメラの外部パラメータを求める。外部パラメータは、例えば、並進移動成分であるＸ軸、Ｙ軸、Ｚ軸方向の３成分と、回転移動成分であるロール、ピッチ、ヨーの３成分とを含む。
【００６９】
パラメータ最適化部１０６は、補正タイミング決定部１０７から、パラメータ最適化処理の対象であるカメラの装置ＩＤを受信後、パラメータ最適化処理の対象であるカメラの外部パラメータの値を、移動したカメラの外部パラメータとして設定する。
【００７０】
次に、パラメータ最適化部１０６は、パラメータ最適化処理の対象であるカメラの外部パラメータを変化させる。変化のさせ方は、パラメータ最適化処理の手法によって異なる。そして、パラメータ最適化部１０６は、複数のカメラの現在の外部パラメータを合成テーブル生成部１０８へ提供する。
【００７１】
合成テーブル生成部１０８は、パラメータ最適化部１０６から提供されたカメラ１ａ〜１ｄの各々の外部パラメータと、カメラ１ａ〜１ｄの各々の内部パラメータ及びゆがみ補正パラメータとに基づいて、合成画像を生成するための合成テーブルを、各カメラについて生成する。
【００７２】
合成処理部１０９は、合成テーブル生成部１０８によって生成された合成テーブルを用いて、カメラ１ａ〜１ｄの各々の撮像画像を合成して、１枚の合成画像を生成する。
【００７３】
ずれ量評価部１１０は、生成された合成画像と、合成画像の生成時に使用された合成テーブルとに基づいて、生成された合成画像におけるずれ量の評価値を求め、ずれ量の評価値をパラメータ最適化部１０６へフィードバックする。パラメータ最適化部１０６は、フィードバックされたずれ量の評価値に基づいて、パラメータ最適化処理の対象であるカメラの外部パラメータを変化させ、ずれ量の評価値が小さくなるように、パラメータ最適化処理を実行する。
【００７４】
図１１は、補正タイミング決定部１０７によって実行される処理を示すフローチャートである。補正タイミング決定部１０７は、カメラの外部パラメータの最適化処理が必要になったタイミングで、パラメータ最適化処理の対象であるカメラの装置ＩＤをパラメータ最適化部１０６に伝える。複数のカメラに位置姿勢ずれ（すなわち、移動）が発生している場合には、補正タイミング決定部１０７は、パラメータ最適化部１０６に、複数のカメラの装置ＩＤを通知する。パラメータ最適化処理（すなわち、ずれ補正処理）のタイミングは、各カメラの推定移動量と合成画像におけるずれ量の評価値とから自動的に決定される。ただし、このタイミングは、利用者によって行われる手動操作によって決定されてもよい。
【００７５】
以下に、補正するタイミングを自動的に決定する方法について説明する。先ず、補正タイミング決定部１０７は、パラメータ最適化処理が必要であるか否かを判断する指標として、各カメラの推定移動量、又は合成画像におけるずれ量の評価値、又はそれらの両方を、移動量推定部１０４又はずれ量評価部１１０から取得する（ステップＳ１４０，Ｓ１４１）。
【００７６】
次に、補正タイミング決定部１０７は、取得した各カメラの推定移動量を閾値と比較する、又は取得した合成画像におけるずれ量の評価値を閾値と比較する（ステップＳ１４２）。例えば、推定移動量がその閾値を超えた場合又はずれ量の評価値がその閾値を超えた場合は、補正タイミング決定部１０７は、パラメータ最適化処理の実行をパラメータ最適化部１０６に伝える（ステップＳ１４３）。閾値を用いたずれ補正処理の実行の条件は、各カメラの推定移動量がその閾値を超えた場合、又は合成画像におけるずれ量の評価値がその閾値を超えた場合、又はこれらの両方が成立した場合など、様々な条件に設定されることができる。
【００７７】
また、補正タイミング決定部１０７は、ずれ補正処理を実行できない状況の発生を、合成画像におけるずれ量の評価値と予め決められた閾値との比較の結果に基づいて検出し、利用者に通知する構成を有してもよい。ずれ補正処理ができない場合は、例えば、撮像画像同士の重複領域がなくなるほど大きな位置姿勢ずれがカメラに生じたときである。また、利用者に伝える仕組みは、例えば、表示する合成画像上に通知を重ねて表示する、などである。
【００７８】
パラメータ最適化部１０６は、移動量推定部１０４から各カメラの推定移動量を受け取り、ずれ量評価部１１０から合成画像におけるずれ量の評価値を受け取り、ずれ補正処理のための外部パラメータを出力する。なお、合成画像におけるずれの補正処理のためのパラメータ最適化処理は、移動量推定部１０４とずれ補正部１００とによって実行される。
【００７９】
図１２は、実施の形態１に係る画像処理装置１０によって実行されるパラメータ最適化処理（すなわち、ずれ補正処理）を示すフローチャートである。先ず、パラメータ最適化部１０６は、補正タイミング決定部１０７から、ずれ補正処理の対象であるカメラの装置ＩＤを受け取る（ステップＳ１５０）。
【００８０】
次に、パラメータ最適化部１０６は、移動量推定部１０４から、パラメータ最適化処理の対象である各カメラの推定移動量を受け取る（ステップＳ１５１）。推定移動量は、例えば、並進移動成分であるＸ軸、Ｙ軸、Ｚ軸方向の３成分と、回転移動成分であるロール、ピッチ、ヨーの３成分とを含む。
【００８１】
次に、パラメータ最適化部１０６は、パラメータ最適化処理の対象であるカメラの外部パラメータを移動量推定部１０４から取得したカメラ１ａ〜１ｄの各々の推定移動量に基づいて変更する（ステップＳ１５２）。なお、カメラの設置時又はカメラの初回起動時における外部パラメータは、カメラキャリブレーションパターンを備えたキャリブレーション用ボードを使用したカメラキャリブレーション作業によって取得される。
【００８２】
図１３は、パラメータ最適化部１０６によって実行される外部パラメータの更新に用いられる計算式を示す説明図である。図１３に示されるように、
更新後の（すなわち、時刻ｔにおける）外部パラメータ（すなわち、外部パラメータベクトル）Ｐ１は、以下のように表記される。
Ｐ１＝（Ｘ，Ｙ，Ｚ，ｒｏｌｌ，ｐｉｔｃｈ，ｙａｗ）
ここで、Ｘ，Ｙ，Ｚは、Ｘ軸、Ｙ軸、Ｚ軸方向の外部パラメータを示し、ｒｏｌｌ，ｐｉｔｃｈ，ｙａｗは、ロール、ピッチ、ヨー方向の外部パラメータを示す。
【００８３】
また、更新前の（すなわち、時刻０における）外部パラメータ（すなわち、外部パラメータベクトル）Ｐ０は、以下のように表記される。
Ｐ０＝（Ｘ＿０，Ｙ＿０，Ｚ＿０，ｒｏｌｌ＿０，ｐｉｔｃｈ＿０，ｙａｗ＿０）
ここで、Ｘ＿０，Ｙ＿０，Ｚ＿０は、Ｘ軸、Ｙ軸、Ｚ軸方向の外部パラメータを示し、ｒｏｌｌ＿０，ｐｉｔｃｈ＿０，ｙａｗ＿０は、ロール、ピッチ、ヨー方向の外部パラメータを示す。
【００８４】
また、時刻０から時刻ｔまでの移動すなわち位置姿勢ずれを示す移動ベクトルＰｔは、以下のように表記される。
Ｐｔ＝（Ｘ＿ｔ，Ｙ＿ｔ，Ｚ＿ｔ，ｒｏｌｌ＿ｔ，ｐｉｔｃｈ＿ｔ，ｙａｗ＿ｔ）
ここで、Ｘ＿ｔ，Ｙ＿ｔ，Ｚ＿ｔは、Ｘ軸、Ｙ軸、Ｚ軸方向の移動量（すなわち、距離）を示し、ｒｏｌｌ＿ｔ，ｐｉｔｃｈ＿ｔ，ｙａｗ＿ｔは、ロール、ピッチ、ヨー方向の移動量（すなわち、角度）を示す。
【００８５】
この場合、以下の式（１）が成立する。
Ｐ１＝Ｐ０＋Ｐｔ            （１）
なお、初回更新時における更新前の外部パラメータＰ０は、カメラキャリブレーションによって取得された外部パラメータである。つまり、式（１）に示されるように、更新後の外部パラメータは、設置時における外部パラメータに、移動量推定部１０４によって取得した移動ベクトルＰｔの要素を加算したものである。
【００８６】
次に、パラメータ最適化部１０６は、補正タイミング決定部１０７から受け取ったカメラの装置ＩＤの数から、パラメータ最適化処理の対象であるカメラの台数を判定する（ステップＳ１５３）。パラメータ最適化処理の対象であるカメラが無い場合は、パラメータ最適化部１０６によるパラメータ最適化処理を終了する。
【００８７】
パラメータ最適化処理の対象であるカメラがある場合は（すなわち、ステップＳ１５３において判断がＹＥＳの場合）、合成画像におけるずれを補正するために、パラメータ最適化処理を実行する（ステップＳ１５４）。このとき、パラメータ最適化処理の対象であるカメラの台数が２台以上である場合は、移動量推定部１０４から取得した推定移動量が小さいカメラの外部パラメータの最適化処理を先に実施する。これは、推定移動量が小さいカメラは、誤差の小さいものであり、信頼性が高いと考えられるからである。
【００８８】
図１４は、実施の形態１に係る画像処理装置１０のパラメータ最適化部１０６によって実行されるずれ補正処理（すなわち、パラメータ最適化処理）の例を示す説明図である。図１４は、パラメータ最適化処理の対象であるカメラの台数が２台である場合を示している。このとき、パラメータ最適化処理の対象であるカメラの撮像画像３５３に対して、撮像画像が重複するカメラが２台存在し且つその内の１台のカメラがパラメータ最適化されていない状態である。つまり、パラメータ最適化処理の対象であるカメラの撮像画像３５３に対して、撮像画像３５２と３５４が重複している。この場合、撮像画像３５２を撮影したカメラのずれ補正は未実施（すなわち、未補正）である。
【００８９】
次に、パラメータ最適化部１０６は、ずれ補正処理のための外部パラメータを求め、この外部パラメータを用いてカメラの外部パラメータを更新する処理を繰り返し（ステップＳ１５４）、ずれ補正処理が完了したカメラをパラメータ最適化処理の対象から除外し、ずれ補正済みのカメラとしてみなす（ステップＳ１５５）。また、パラメータ最適化部１０６は、外部パラメータの更新時に、ずれ補正済みのカメラの装置ＩＤと補正後の外部パラメータを移動量推定部１０４へフィードバックする（ステップＳ１５６）。
【００９０】
パラメータ最適化部１０６は、パラメータ最適化処理（ステップＳ１５４）において、カメラの外部パラメータを変え、そのときの合成画像におけるずれ量の評価値を受け取り、ずれ量の評価値が小さくなるように処理を繰り返す。このときに用いられるパラメータ最適化処理のアルゴリズムとしては、遺伝的アルゴリズムなどの様々な手法を用いることができる。
【００９１】
先ず、パラメータ最適化部１０６は、最適化対象となるカメラのずれ量の評価値をずれ量評価部１１０から取得する（ステップＳ１５４１）。ずれ量の評価値は、合成時に撮像画像が重複するカメラの撮像画像ごとに取得する。パラメータ最適化部１０６は、ずれ量評価部１１０から、ずれ量の評価値を、撮像画像同士の組み合わせごとに受け取る。例えば、カメラ１ａ〜１ｄが存在する場合、パラメータ最適化部１０６は、カメラ１ａのずれ量の評価値として、カメラ１ａと１ｂの撮像画像間の重複領域のずれ量の評価値、カメラ１ａと１ｃの撮像画像間の重複領域のずれ量の評価値、及びカメラ１ａと１ｄの撮像画像間の重複領域のずれ量の評価値を出力する。
【００９２】
その後、パラメータ最適化部１０６は、取得したずれ量の評価値に基づいて各カメラの外部パラメータを更新する（ステップＳ１５４２）。外部パラメータの更新処理は、使用する最適化アルゴリズムによって異なる。代表的な最適化アルゴリズムとしては、ニュートン法又は遺伝的アルゴリズムなどの手法がある。ただし、各カメラの外部パラメータの更新処理の方法は、これらに限定されない。
【００９３】
次に、パラメータ最適化部１０６は、更新したカメラの外部パラメータに加えて他のカメラの外部パラメータを合成テーブル生成部１０８へ送る（ステップＳ１５４３）。合成テーブル生成部１０８は、各カメラの外部パラメータから、合成時に使用する合成テーブルを各カメラについて生成する（ステップＳ１５４４）。
【００９４】
合成処理部１０９は、合成テーブル生成部１０８で生成された各カメラの合成テーブルを用いて、各カメラから取得した撮像画像を合成して、１枚の合成画像を生成する（ステップＳ１５４５）。
【００９５】
ずれ量評価部１１０は、合成処理部１０９が画像合成時に使用した各カメラの合成テーブルと撮像画像とから、各カメラのずれ量の評価値を求め、パラメータ最適化部１０６へ出力する（ステップＳ１５４６）。以上の処理を、ずれ量の評価値が一定の閾値以下になるまで繰り返すことで、合成画像におけるずれを補正する外部パラメータを算出する。もしくは、あらかじめ指定された回数まで繰り返し、補正する外部パラメータを算出するのでも良い。
【００９６】
図１５（Ａ）から（Ｄ）及び図１６（Ａ）から（Ｃ）は、カメラ１ａ〜１ｄの外部パラメータの補正をする順序を示す説明図である。図において、４００ａ〜４００ｄは、それぞれカメラ１ａ〜１ｄが撮影した撮像画像を示す。図１５（Ａ）にステップＳ１０として示されるように、カメラ１ａ〜１ｄは、補正タイミング決定部１０７によって、パラメータ最適化処理の対象となっている。
【００９７】
図１５（Ｂ）にステップＳ１１として示されるように、パラメータ最適化部１０６は、移動量推定部１０４よりパラメータ最適化処理の対象となる各カメラの推定移動量Ｑａ〜Ｑｄの値Ｊ１〜Ｊ４を取得し、取得した値Ｊ１〜Ｊ４に基づいて、カメラ１ａ〜１ｄの各々の外部パラメータを更新する（図１２におけるステップＳ１５０〜Ｓ１５２）。
【００９８】
次に、図１５（Ｃ）にステップＳ１２として示されるように、パラメータ最適化部１０６は、推定移動量の小さいカメラから順にパラメータ最適化処理の対象に設定する。ここで、撮像画像４００ａ〜４００ｄを撮影したカメラ１ａ〜１ｄの推定移動量Ｑａ〜Ｑｄの値をＪ１〜Ｊ４とした場合に、Ｊ１＜Ｊ２＜Ｊ３＜Ｊ４の関係が成立する例について説明する。したがって、推定移動量Ｑａ＝Ｊ１の場合の撮像画像４００ａを撮影したカメラ１ａについて１番目にパラメータ最適化処理を実行する。ここで、パラメータ最適化部１０６は、ずれ量評価部１１０からカメラ１ａ〜１ｄの重複領域におけるずれ量の評価値を取得し、カメラの外部パラメータを最適化する。この場合、重複する撮像画像を出力するカメラ４００ｂ、４００ｃ、４００ｄは、ずれ未補正の状態となっている。したがって、カメラ１ａの補正は、ずれ量の評価値によるフィードバック（図１２におけるステップＳ１５４）を実施せずに確定させる。
【００９９】
次に、図１５（Ｄ）にステップＳ１３として示されるように、移動量が２番目に小さい移動量Ｑｂ＝Ｊ２の場合の撮像画像４００ｂを撮影したカメラ１ｂのパラメータ最適化処理を実行する。カメラ１ｂのパラメータ最適化処理は、撮像画像４００ａと４００ｂの重複領域におけるずれ量の評価値に基づいて、実行される（図１２におけるステップＳ１５４）。
【０１００】
次に、図１６（Ａ）にステップＳ１４として示されるように、移動量が３番目に小さい移動量Ｑｃ＝Ｊ３の場合の撮像画像４００ｃを撮影したカメラ１ｃのパラメータ最適化処理を実行する。カメラ１ｃのパラメータ最適化処理は、撮像画像４００ａと４００ｃの重複領域におけるずれ量の評価値に基づいて、実行される（図１２におけるステップＳ１５４）。
【０１０１】
次に、図１６（Ｂ）にステップＳ１５として示されるように、移動量が４番目に小さい移動量Ｑｄ＝Ｊ４の場合の撮像画像４００ｄを撮影したカメラ１ｄのパラメータ最適化処理を実行する。カメラ１ｄのパラメータ最適化処理は、撮像画像４００ｂと４００ｄの重複領域におけるずれ量の評価値に基づいて、及び撮像画像４００ｃと４００ｄの重複領域におけるずれ量の評価値に基づいて、実行される（図１２におけるステップＳ１５４）。以上の処理を行うことで、ずれが発生した複数のカメラの補正が実行される（ステップＳ１６）。
【０１０２】
合成テーブル生成部１０８は、パラメータ最適化部１０６から受け取ったカメラ１ａ〜１ｄの各々のパラメータに基づいて、画像合成時に用いられる合成テーブルを生成する。パラメータは、外部パラメータと、内部パラメータ及びゆがみ補正パラメータとを含む。
【０１０３】
図１７は、合成テーブル生成部１０８によって実行される処理を示すフローチャートである。先ず、合成テーブル生成部１０８は、パラメータ最適化部１０６からカメラの外部パラメータを取得する（ステップＳ１６０）。
【０１０４】
次に、合成テーブル生成部１０８は、カメラの内部パラメータとゆがみ補正パラメータを取得する。なお、カメラの内部パラメータ及びゆがみ補正パラメータは、例えば、合成テーブル生成部１０８に備えられたメモリに予め記憶されていてもよい。
【０１０５】
最後に、合成テーブル生成部１０８は、受け取った各カメラの外部パラメータと、カメラにおける内部パラメータ及びゆがみ補正パラメータとに基づいて、合成テーブルを生成する。生成された合成テーブルは、合成処理部１０９に提供される。
【０１０６】
以上の処理は、各カメラについて実行される。なお、合成テーブルの生成方法は、使用するカメラに応じて変更される。例えば、合成テーブルの生成には、射影方式（例えば、中心射影方式、等距離射影方式など）が使用される。また、レンズ歪みの補正には、歪みモデル（例えば、半径方向歪みモデル、円周方向歪みモデルなど）が使用される。ただし、合成テーブルの生成方法は、上記例に限定されない。
【０１０７】
図１８は、合成処理部１０９によって実行される処理を示すフローチャートである。先ず、合成処理部１０９は、合成テーブル生成部１０８からカメラに対応する合成テーブルを取得する（ステップＳ１７０）。次に、合成処理部１０９は、カメラによって撮影された撮像画像を取得する（ステップＳ１７１）。最後に、合成処理部１０９は、合成テーブルに基づいて撮像画像を投影（すなわち、表示）する（ステップＳ１７２）。例えば、図３（Ｂ）における撮像画像２０２ａから、合成テーブル２０４ａによって画像２０５の一部が生成される。同様の処理を各カメラについて実行することで、撮像画像を合成して、１枚の合成画像を生成する。例えば、図３（Ｂ）における撮像画像２０２ｂ、２０２ｃ、２０２ｄから、合成テーブル２０４ｂ、２０４ｃ、２０４ｄによって画像２０５の残りの部分が生成される。なお、画像が重なり合う重複領域に対して、アルファブレンドを行ってもよい。アルファブレンドは、２つの画像を係数であるα値を用いて合成する方法である。α値は、［０，１］の範囲の値を取る係数であり、透明度を表す値である。
【０１０８】
図１９（Ａ）から（Ｃ）は、ずれ量評価部１１０によって実行されるずれ量の評価値の取得のための処理を示す説明図である。図１９（Ａ）から（Ｃ）に示されるように、ずれ量評価部１１０は、合成処理部１０９によって合成されたカメラ１ａ〜１ｄの各々の撮像画像３００ａ〜３００ｄと、合成時に用いるマッピングテーブルである合成テーブルとから、カメラ１ａ〜１ｄの各々のずれ量の評価値を出力する。図１９（Ｂ）に示されるように、カメラ１ａ〜１ｄの各々の撮像画像３００ａ〜３００ｄは、他の撮像画像と重複する部分が存在する。図１９（Ｂ）に示されるように、撮像画像３００ａにおける斜線部分３０１ａは、他の撮像画像と重複する重複領域の部分である。
【０１０９】
図１９（Ｃ）に示されるように、ずれ量評価部１１０は、この重複領域の部分に基づいてずれ量の評価値を求める。以下に、２つの撮像画像３１０ａと３１０ｂを合成したときの、合成画像３１０ｃのずれ量の評価値の取得のための処理について説明する。合成画像３１０ｃは、位置３１１を境界として撮像画像３１０ａと３１０ｂとを合成することで生成される。このとき、２つの撮像画像３１０ａと３１０ｂとは、波線部分（すなわち、右側の領域）と斜線部分（すなわち、左側の領域）に画素が重複する部分ができる。ずれ量評価部１１０は、この重複した部分からずれ量の評価値を求める。
【０１１０】
図２０は、ずれ量評価部１１０によって実行される処理を示すフローチャートである。先ず、ずれ量評価部１１０は、合成画像と、合成処理部１０９からカメラ１ａ〜１ｄの各々の撮像画像と、合成時に用いるマッピングテーブルである合成テーブルとを取得する（ステップＳ１８０）。次に、ずれ量評価部１１０は、重複領域抽出部１１１から、画像同士が重複する部分を取得する（ステップＳ１８１）。その後、ずれ量評価部１１０は、重複する部分に基づいて、ずれ量の評価値を求める（ステップＳ１８２）。
【０１１１】
ずれ量評価部１１０は、重複領域における画素同士の輝度の差を累積することで、ずれ量の評価値を計算してもよい。また、ずれ量評価部１１０は、重複領域における特徴点のマッチングを行い、それらの距離を累積することでずれ量の評価値を計算してもよい。また、ずれ量評価部１１０は、ＥＣＣ（Ｅｌｌｉｐｔｉｃ  Ｃｕｒｖｅ  Ｃｒｙｐｔｏｇｒａｐｈｙ）アルゴリズムによって画像類似度を求めることでずれ量の評価値を計算してもよい。さらに、ずれ量評価部１１０は、位相限定相関を求めることで画像同士のずれ量の評価値を計算してもよい。また、ずれ量の評価値を最小となるように最適化する評価値ではなく、評価値を最大化することで最適化する評価値を用いることも可能である。さらに、評価値が０になるときに最適となる評価値を用いることも可能である。以上の処理を各カメラについて行うことで、各カメラのずれ量の評価値を求めることができる。
【０１１２】
図２１は、重複領域抽出部１１１によって実行される処理を示すフローチャートである。重複領域抽出部１１１は、撮像画像の合成処理を行うときに、隣り合う撮像画像同士の重複領域を出力する。先ず、重複領域抽出部１１１は、ずれ量評価部１１０から、撮像画像と、マッピングテーブルである合成テーブルとを受け取る（ステップＳ１９０）。次に、重複領域抽出部１１１は、合成テーブルから、２つの撮像画像が合成時に重複する重複領域の画像を、又は領域を数値として表現したものを出力する（ステップＳ１９１）。
【０１１３】
《１−２−５》合成・表示処理群Ｓ４０の詳細
図５に示される合成・表示処理群Ｓ４０では、合成テーブル生成部１０８が生成した各カメラの合成テーブルに基づいて、複数のカメラで撮影された複数の撮像画像を１枚の画像に合成し、表示機器インタフェース１５を介して、合成画像を表示装置１８に出力する。
【０１１４】
図２２は、表示画像出力部１１２によって実行される処理を示すフローチャートである。表示画像出力部１１２は、合成処理部１０９によって生成された合成画像（例えば、俯瞰合成画像）を取得する（ステップＳ２００）。次に、表示画像出力部１１２は、取得した合成画像を表示装置が対応可能な形式の映像データ（例えば、俯瞰合成映像）に変換して出力する（ステップＳ２０１）。
【０１１５】
《１−３》効果
以上に説明したように、実施の形態１に係る画像処理装置１０、画像処理方法、又は画像処理プログラムを用いれば、合成画像におけるずれ量の評価値を、パラメータ最適化処理（すなわち、ずれ補正処理）にフィードバックしているので、カメラ１ａ〜１ｄの位置姿勢の変化によって合成画像を構成する複数の撮像画像の重複領域に生じたずれを、高精度に補正することができる。
【０１１６】
また、実施の形態１に係る画像処理装置１０、画像処理方法、又は画像処理プログラムを用いれば、合成画像を構成する複数の撮像画像の特徴点のマッチングを取りやすい時間間隔でカメラ１ａ〜１ｄの推定移動量を計算しているので、カメラ１ａ〜１ｄの位置姿勢の変化によって合成画像を構成する複数の撮像画像の重複領域に生じたずれを、高精度に補正することができる。
【０１１７】
また、実施の形態１に係る画像処理装置１０、画像処理方法、又は画像処理プログラムを用いれば、合成画像を構成する複数の撮像画像の重複領域に生じたずれを補正するために、カメラ１ａ〜１ｄの各々の外部パラメータを最適化している。このため、人手によるキャリブレーション作業を行わずに、合成画像における重複領域に生じるずれを、補正することができる。
【０１１８】
さらに、実施の形態１に係る画像処理装置１０、画像処理方法、又は画像処理プログラムを用いれば、高精度且つ人手によらずに、ずれを補正することができるので、複数のカメラを監視用途で用いる監視システムにおける保守費用を抑制することができる。
【０１１９】
《２》実施の形態２．
実施の形態２に係る画像処理装置は、パラメータ最適化部１０６が行う処理の点で、実施の形態１に係る画像処理装置１０と相違する。他の点に関して、実施の形態２は、実施の形態１と同じである。したがって、実施の形態２の説明においては、図１及び図２を参照する。
【０１２０】
実施の形態２において、パラメータ最適化部１０６は、移動量推定部１０４から取得したカメラ１ａ〜１ｄの各々の推定移動量と、ずれ量評価部１１０から取得した合成画像におけるずれ量の評価値とに基づいて、合成画像におけるずれを補正するために用いられる外部パラメータを、カメラ１ａ〜１ｄの各々について求める。外部パラメータは、並進移動成分であるＸ軸、Ｙ軸、Ｚ軸方向の３成分と、回転移動成分であるロール、ピッチ、ヨーの３成分と、からなる。
【０１２１】
パラメータ最適化部１０６は、移動量推定部１０４によって得られたカメラ１ａ〜１ｄの各々の推定移動量と、ずれ量評価部１１０によって得られた合成画像におけるずれ量の評価値とに基づいて、合成画像におけるずれ量の評価値を小さくするように、外部パラメータを変更する。各カメラの外部パラメータの最適化処理は、例えば、上記処理（Ｈ１）〜（Ｈ５）を行った後に、処理（Ｈ２）〜（Ｈ５）を、この順番に繰り返すことで、実行される。
【０１２２】
また、パラメータ最適化部１０６は、カメラ１ａ〜１ｄのうちの２つ以上のカメラに位置姿勢ずれが起きた場合は、撮像画像１０１ａ〜１０１ｄの中から基準となる撮像画像を決定する処理と、ずれ補正処理の順番を決定する処理とを行う。また、パラメータ最適化部１０６は、ずれ補正処理を実行したタイミングで、カメラの推定移動量をリセットするためのフィードバック情報を、移動量推定部１０４へ提供する。このフィードバック情報は、推定移動量のリセットの対象となるカメラを示す装置ＩＤと、補正後の外部パラメータとを含む。
【０１２３】
実施の形態２においては、パラメータ最適化部１０６は、カメラ１ａ〜１ｄのうちの２台以上のカメラに位置姿勢ずれが起きた場合は、位置姿勢ずれが起きた全カメラのずれを同時に補正する。また、パラメータ最適化部１０６は、ずれ補正処理を実行したタイミングで、カメラの推定移動量をリセットするためのフィードバック情報を、移動量推定部１０４へ提供する。このフィードバック情報は、推定移動量のリセットの対象となるカメラを示す装置ＩＤと、補正後の外部パラメータとを含む。
【０１２４】
その後、パラメータ最適化部１０６は、移動量推定部１０４からカメラの推定移動量を受け取り、ずれ量評価部１１０から合成画像におけるずれ量の評価値を受け取り、ずれ補正処理のための外部パラメータを出力する。なお、合成画像におけるずれを補正するためのずれ補正処理は、移動量推定部１０４と、パラメータ最適化部１０６、合成テーブル生成部１０８、合成処理部１０９、及びずれ量評価部１１０からなるフィードバックループと、によって実行される。
【０１２５】
図２３は、実施の形態２に係る画像処理装置によって実行されるパラメータ最適化処理（すなわち、ずれ補正処理）を示すフローチャートである。先ず、パラメータ最適化部１０６は、補正タイミング決定部１０７から、ずれ補正処理の対象すなわちパラメータ最適化処理の対象であるカメラの装置ＩＤを受け取る（ステップＳ２１０）。
【０１２６】
その後、パラメータ最適化部１０６は、移動量推定部１０４から、パラメータ最適化処理の対象であるカメラの推定移動量を受け取る（ステップＳ２１１）。推定移動量は、例えば、並進移動成分であるＸ軸、Ｙ軸、Ｚ軸方向の３成分と、回転移動成分であるロール、ピッチ、ヨーの３成分とを含む。
【０１２７】
次に、パラメータ最適化部１０６は、パラメータ最適化処理の対象であるカメラの外部パラメータを移動量推定部１０４から取得したカメラ１ａ〜１ｄの各々の推定移動量に基づいて変更する（ステップＳ２１２）。なお、カメラの設置時又はカメラの初回起動時における外部パラメータは、カメラキャリブレーションパターンを備えたキャリブレーション用ボードを使用したカメラキャリブレーション作業によって取得される。パラメータ最適化部１０６によって実行される外部パラメータの更新に用いられる計算式は、図１３に示される。
【０１２８】
パラメータ最適化処理の対象であるカメラがある場合は、外部パラメータの最適化処理を実行する（ステップＳ２１３）。このとき、パラメータ最適化処理の対象であるカメラの台数が２台以上である場合は、同時に２台以上のカメラの外部パラメータを最適化する。図２４は、実施の形態２に係る画像処理装置のパラメータ最適化部１０６によって実行されるずれ補正処理の例を示す説明図である。図２４では、パラメータ最適化処理の対象であるずれ未補正の２台のカメラ１ｂ、１ｃが存在する。これら２台のカメラ１ｂ、１ｃによって撮影された撮像画像３６２及び３６３、並びに、カメラ１ａ、１ｄによって撮影された撮像画像３６１及び３６４には、重複領域が存在している。また、撮像画像３６１と３６２の間にはずれ量Ｄ３が存在し、撮像画像３６２と３６３の間にはずれ量Ｄ１が存在し、撮像画像３６３と３６４の間にはずれ量Ｄ２が存在する。
【０１２９】
次に、パラメータ最適化部１０６は、ずれを補正するために用いられる外部パラメータが求められた場合、それをカメラの外部パラメータとして更新し、パラメータ最適化処理を終了する。また、パラメータ最適化部１０６は、外部パラメータの更新時、補正したカメラの装置ＩＤと補正後の外部パラメータを移動量推定部１０４へフィードバックする（ステップＳ２１４）。
【０１３０】
パラメータ最適化部１０６は、パラメータ最適化処理（ステップＳ２１３）において、カメラの外部パラメータを変え、そのときの合成画像におけるずれ量の評価値を受け取り、ずれ量の評価値が小さくなるように処理を繰り返す。パラメータ最適化処理のアルゴリズムとしては、例えば、遺伝的アルゴリズムを用いることができる。ただし、パラメータ最適化処理のアルゴリズムは、他のアルゴリズムであってもよい。
【０１３１】
先ず、パラメータ最適化部１０６は、最適化対象となる１台以上のカメラのずれ量の評価値をずれ量評価部１１０から取得する（ステップＳ２１３１）。このずれ量の評価値は、合成時に撮像画像が重複するカメラの撮像画像ごとに取得する。パラメータ最適化部１０６は、ずれ量評価部１１０から、ずれ量の評価値を、撮像画像同士の組み合わせごとに受け取る。例えば、カメラ１ａ〜１ｄが存在する場合、パラメータ最適化部１０６は、図２４に示されるように、最適化対象＃１のカメラ１ｂについて、ずれ量Ｄ３とＤ１の評価値を取得し、最適化対象＃２のカメラ１ｃについて、ずれ量Ｄ２とＤ１の評価値を取得する。
【０１３２】
その後、パラメータ最適化部１０６は、取得したずれ量の評価値のすべてを合計したものをずれ量の評価値として、対象となる複数のカメラの外部パラメータを更新する（ステップＳ２１３２）。外部パラメータの更新処理は、使用する最適化アルゴリズムによって異なる。代表的な最適化アルゴリズムとしては、ニュートン法又は遺伝的アルゴリズムなどの手法がある。ただし、外部パラメータの更新処理の方法は、これらに限定されない。
【０１３３】
次に、パラメータ最適化部１０６は、更新したカメラの外部パラメータに加えて他のカメラの外部パラメータを合成テーブル生成部１０８へ送る（ステップＳ２１３３）。合成テーブル生成部１０８は、複数のカメラの外部パラメータから、合成時に使用する合成テーブルをカメラごとに生成する（ステップＳ２１３４）。
【０１３４】
合成処理部１０９は、合成テーブル生成部１０８で生成された各カメラの合成テーブルを用いて、カメラから取得した撮像画像を合成して、１枚の合成画像を生成する（ステップＳ２１３５）。
ずれ量評価部１１０は、合成処理部１０９が画像合成時に使用した各カメラの合成テーブルと撮像画像から、カメラごとにずれ量の評価値を求め、パラメータ最適化部１０６へ出力する（ステップＳ２１３６）。以上の処理を、ずれ量の評価値が一定の閾値以下になるまで繰り返すことで、合成画像におけるずれを補正するために用いられる外部パラメータを計算する。もしくは、あらかじめ指定された回数まで繰り返し、補正する外部パラメータを算出するのでも良い。
【０１３５】
図２５（Ａ）から（Ｄ）は、複数のカメラの補正をする順序を示す説明図である。図において、５００ａ〜５００ｄは、カメラ１ａ〜１ｄが撮影した撮像画像を示す。図２５（Ａ）にステップＳ２０として示されるように、すべてのカメラ１ａ〜１ｄは、補正タイミング決定部１０７よって、パラメータ最適化処理の対象となっている。
【０１３６】
図２５（Ｂ）にステップＳ２１として示されるように、パラメータ最適化部１０６は、移動量推定部１０４よりパラメータ最適化処理の対象となる各カメラの推定移動量Ｑａ〜Ｑｄの値Ｊ１〜Ｊ４を取得し、取得した値Ｊ１〜Ｊ４に基づいて、カメラ１ａ〜１ｄの各々の外部パラメータを更新する（図２３におけるステップＳ２１０〜Ｓ２１２）。
【０１３７】
次に、図２５（Ｃ）にステップＳ２２として示されるように、パラメータ最適化部１０６は、複数のカメラの外部パラメータの最適化を同時に実行する（図２３におけるステップＳ２１３）。
【０１３８】
次に、図２５（Ｄ）にステップＳ２３として示されるように、パラメータ最適化部１０６は、ずれ量評価部１１０から、複数の撮像画像におけるずれ量の評価値を取得し、ずれ量の評価値を合計したものを評価値として、その評価値が最小又は最大となる複数のカメラの外部パラメータを求める。以上の処理を行うことで、ずれが発生したカメラの補正を同時に実行する。
【０１３９】
以上に説明したように、実施の形態２に係る画像処理装置、画像処理方法、又は画像処理プログラムを用いれば、合成画像におけるずれ量の評価値を、パラメータ最適化処理（すなわち、ずれ補正処理）にフィードバックしているので、カメラ１ａ〜１ｄの位置姿勢の変化によって合成画像を構成する複数の撮像画像の重複領域に生じたずれを、高精度に補正することができる。
【０１４０】
また、実施の形態２に係る画像処理装置、画像処理方法、又は画像処理プログラムを用いれば、複数のずれ量の評価値の合計値に基づいてパラメータ最適化処理を実行しているので、演算量を減らすことができる。
【符号の説明】
【０１４１】
１ａ〜１ｄ  カメラ、  １０  画像処理装置、  １１  プロセッサ、  １２  メモリ、  １３  記憶装置、  １４  画像入力インタフェース、  １５  表示機器インタフェース、  １７  外部記憶装置、  １８  表示装置、  １００  ずれ補正部、  １０１ａ〜１０１ｄ  撮像画像、  １０２  画像記録部、  １０３  タイミング決定部、  １０４  移動量推定部、  １０５  特徴点抽出部、  １０６  パラメータ最適化部、  １０７  補正タイミング決定部、  １０８  合成テーブル生成部、  １０９  合成処理部、  １１０  ずれ量評価部、  １１１  重複領域抽出部、  １１２  表示画像出力部、  １１３  外れ値除外部、  １１４  記憶部、  １１５  外部記憶部、  ２０２ａ〜２０２ｄ，２０６ａ〜２０６ｄ  撮像画像、  ２０４ａ〜２０４ｄ，２０７ａ〜２０７ｄ，５００ａ〜５００ｄ  合成テーブル、  ２０５，２０８  合成画像。
【図１】
2020170288.tif 000003
【図２】
2020170288.tif 000004
【図３】
2020170288.tif 000005
【図４】
2020170288.tif 000006
【図５】
2020170288.tif 000007
【図６】
2020170288.tif 000008
【図７】
2020170288.tif 000009
【図８】
2020170288.tif 000010
【図９】
2020170288.tif 000011
【図１０】
2020170288.tif 000012
【図１１】
2020170288.tif 000013
【図１２】
2020170288.tif 000014
【図１３】
2020170288.tif 000015
【図１４】
2020170288.tif 000016
【図１５】
2020170288.tif 000017
【図１６】
2020170288.tif 000018
【図１７】
2020170288.tif 000019
【図１８】
2020170288.tif 000020
【図１９】
2020170288.tif 000021
【図２０】
2020170288.tif 000022
【図２１】
2020170288.tif 000023
【図２２】
2020170288.tif 000024
【図２３】
2020170288.tif 000025
【図２４】
2020170288.tif 000026
【図２５】
2020170288.tif 000027
【手続補正書】
【提出日】令和1年6月28日(2019.6.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の撮像装置によって撮影された複数の撮像画像を合成する処理を行う画像処理装置であって、
前記複数の撮像画像の各々を、前記複数の撮像画像の各々を撮影した撮像装置の特定情報と撮影時刻を示す時刻情報と関連付けて記憶部に記録する画像記録部と、
前記記憶部に記録された前記複数の撮像画像から、前記複数の撮像装置の各々の推定移動量を計算する移動量推定部と、
撮影時刻が同じである前記複数の撮像画像を合成することによって生成された合成画像における前記複数の撮像画像の重複領域のずれ量の評価値を取得する処理、前記推定移動量及び前記ずれ量の前記評価値に基づいて前記複数の撮像装置の各々の外部パラメータを更新する処理、及び更新された外部パラメータを用いて撮影時刻が同じである前記複数の撮像画像を合成する処理、を含むずれ補正処理を繰り返し実行するずれ補正部と、
を有することを特徴とする画像処理装置。
【請求項２】
前記ずれ補正部は、前記ずれ量の前記評価値が予め決められた条件を満たすまで前記ずれ補正処理を繰り返し実行することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記移動量推定部は、前記複数の撮像装置の各々について、前記画像記録部から指定期間内における前記撮像画像を取得し、時間順に並ぶ複数の撮像画像から隣接画像期間における移動量を求め、前記隣接画像期間における移動量を用いた計算によって前記推定移動量を取得することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記推定移動量は、前記指定期間内に存在する前記隣接画像期間における移動量の合計値であることを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記隣接画像期間における移動量が予め決められた外れ値の条件を満たすか否かを判定する外れ値除外部をさらに有し、
前記移動量推定部は、前記外れ値の条件を満たす前記隣接画像期間における移動量を、前記推定移動量を算出する計算に用いない
ことを特徴とする請求項３又は４に記載の画像処理装置。
【請求項６】
前記ずれ補正部が前記ずれ補正処理を実行するタイミングを生成する補正タイミング決定部をさらに有することを特徴とする請求項１から５のいずれか１項に記載の画像処理装置。
【請求項７】
前記ずれ補正部は、前記ずれ補正処理の対象が前記複数の撮像装置である場合に、前記ずれ補正処理において用いられる前記ずれ量の前記評価値として、前記合成画像における複数のずれ量を合計して得られた合計値を用いることを特徴とする請求項１から６のいずれか１項に記載の画像処理装置。
【請求項８】
複数の撮像装置によって撮影された複数の撮像画像を合成する処理を行う画像処理方法であって、
前記複数の撮像画像の各々を、前記複数の撮像画像の各々を撮影した撮像装置の特定情報と撮影時刻を示す時刻情報と関連付けて記憶部に記録するステップと、
前記記憶部に記録された前記複数の撮像画像から、前記複数の撮像装置の各々の推定移動量を計算するステップと、
撮影時刻が同じである前記複数の撮像画像を合成することによって生成された合成画像における前記複数の撮像画像の重複領域のずれ量の評価値を取得する処理、前記推定移動量及び前記ずれ量の前記評価値に基づいて前記複数の撮像装置の各々の外部パラメータを更新する処理、及び更新された外部パラメータを用いて撮影時刻が同じである前記複数の撮像画像を合成する処理、を含むずれ補正処理を繰り返し実行するステップと、
を有することを特徴とする画像処理方法。
【請求項９】
複数の撮像装置によって撮影された複数の撮像画像を合成する処理をコンピュータに実行させる画像処理プログラムであって、
前記複数の撮像画像の各々を、前記複数の撮像画像の各々を撮影した撮像装置の特定情報と撮影時刻を示す時刻情報と関連付けて記憶部に記録するステップと、
前記記憶部に記録された前記複数の撮像画像から、前記複数の撮像装置の各々の推定移動量を計算するステップと、
撮影時刻が同じである前記複数の撮像画像を合成することによって生成された合成画像における前記複数の撮像画像の重複領域のずれ量の評価値を取得する処理、前記推定移動量及び前記ずれ量の前記評価値に基づいて前記複数の撮像装置の各々の外部パラメータを更新する処理、及び更新された外部パラメータを用いて撮影時刻が同じである前記複数の撮像画像を合成する処理、を含むずれ補正処理を繰り返し実行するステップと、
を前記コンピュータに実行させることを特徴とする画像処理プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
本発明の一態様に係る画像処理装置は、複数の撮像装置によって撮影された複数の撮像画像を合成する処理を行う装置であって、前記複数の撮像画像の各々を、前記複数の撮像画像の各々を撮影した撮像装置の特定情報と撮影時刻を示す時刻情報と関連付けて記憶部に記録する画像記録部と、前記記憶部に記録された前記複数の撮像画像から、前記複数の撮像装置の各々の推定移動量を計算する移動量推定部と、撮影時刻が同じである前記複数の撮像画像を合成することによって生成された合成画像における前記複数の撮像画像の重複領域のずれ量の評価値を取得する処理、前記推定移動量及び前記ずれ量の前記評価値に基づいて前記複数の撮像装置の各々の外部パラメータを更新する処理、及び更新された外部パラメータを用いて撮影時刻が同じである前記複数の撮像画像を合成する処理、を含むずれ補正処理を繰り返し実行するずれ補正部と、を有することを特徴とする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
また、本発明の他の態様に係る画像処理方法は、複数の撮像装置によって撮影された複数の撮像画像を合成する処理を行う方法であって、前記複数の撮像画像の各々を、前記複数の撮像画像の各々を撮影した撮像装置の特定情報と撮影時刻を示す時刻情報と関連付けて記憶部に記録するステップと、前記記憶部に記録された前記複数の撮像画像から、前記複数の撮像装置の各々の推定移動量を計算するステップと、撮影時刻が同じである前記複数の撮像画像を合成することによって生成された合成画像における前記複数の撮像画像の重複領域のずれ量の評価値を取得する処理、前記推定移動量及び前記ずれ量の前記評価値に基づいて前記複数の撮像装置の各々の外部パラメータを更新する処理、及び更新された外部パラメータを用いて撮影時刻が同じである前記複数の撮像画像を合成する処理、を含むずれ補正処理を繰り返し実行するステップと、を有することを特徴とする。
【国際調査報告】
2020170288.tif 000028
2020170288.tif 000029