(57)【特許請求の範囲】
【請求項１】
所定の位置を含む領域が撮影範囲となるように前記所定の位置を含む領域の周囲に設置された少なくとも２つの撮影装置それぞれが撮影した複数の入力画像を用いて、前記所定の位置を仮想的な視点である仮想視点として前記仮想視点からの距離を表す複数の異なる奥行きの合成画像を生成し、生成した複数の合成画像それぞれからコントラストを算出し、算出した前記コントラストに基づいて複数の合成画像のうちコントラストが最も大きい合成画像の奥行きを各入力画像の最適奥行きに決定する決定部を備え、
前記決定部は、コントラストが最も大きい合成画像の奥行きと、前記コントラストが最も大きい合成画像の奥行きの近傍の奥行きとの間において所定数の奥行きを求め、前記コントラストが最も大きい合成画像の奥行きと、選択した所定数の奥行きとを含む新たな奥行き候補群の中からコントラストが最も大きい合成画像の奥行きを決定する処理を実行し、前記処理を所定の回数繰り返し行った時点におけるコントラストが最も大きい合成画像の奥行きを前記最適奥行きに決定する最適奥行き決定装置。
【請求項２】
前記決定部は、前記撮影装置によって撮影された各時刻における入力画像の最適奥行きを決定し、決定した前記各時刻における最適奥行きの値を暫定最適奥行きとして時系列順に並べ、前記各時刻の暫定最適奥行きの値を時間方向に平滑化することによって得られる各時刻の最適奥行きの推定値を前記撮影装置によって撮影された各時刻における入力画像の最適奥行きに決定する、請求項１に記載の最適奥行き決定装置。
【請求項３】
前記決定部は、ある時刻において前記撮影装置それぞれで撮影された各入力画像の最適奥行きを、前記ある時刻よりも前の時刻における前記撮影装置の入力画像の最適奥行きに基づいて決定する、請求項１又は２に記載の最適奥行き決定装置。
【請求項４】
所定の位置を含む領域が撮影範囲となるように前記所定の位置を含む領域の周囲に設置された少なくとも２つの撮影装置それぞれが撮影した複数の入力画像を用いて、前記所定の位置を仮想的な視点である仮想視点として前記仮想視点からの距離を表す複数の異なる奥行きの合成画像を生成し、生成した複数の合成画像それぞれからコントラストを算出し、算出した前記コントラストに基づいて複数の合成画像のうちコントラストが最も大きい合成画像の奥行きを各入力画像の最適奥行きに決定する決定ステップを有し、
前記決定ステップにおいて、コントラストが最も大きい合成画像の奥行きと、前記コントラストが最も大きい合成画像の奥行きの近傍の奥行きとの間において所定数の奥行きを求め、前記コントラストが最も大きい合成画像の奥行きと、選択した所定数の奥行きとを含む新たな奥行き候補群の中からコントラストが最も大きい合成画像の奥行きを決定する処理を実行し、前記処理を所定の回数繰り返し行った時点におけるコントラストが最も大きい合成画像の奥行きを前記最適奥行きに決定する最適奥行き決定方法。
【請求項５】
所定の位置を含む領域が撮影範囲となるように前記所定の位置を含む領域の周囲に設置された少なくとも２つの撮影装置それぞれが撮影した複数の入力画像を用いて、前記所定の位置を仮想的な視点である仮想視点として前記仮想視点からの距離を表す複数の異なる奥行きの合成画像を生成し、生成した複数の合成画像それぞれからコントラストを算出し、算出した前記コントラストに基づいて複数の合成画像のうちコントラストが最も大きい合成画像の奥行きを各入力画像の最適奥行きに決定する決定ステップをコンピュータに実行させ、
前記決定ステップにおいて、コントラストが最も大きい合成画像の奥行きと、前記コントラストが最も大きい合成画像の奥行きの近傍の奥行きとの間において所定数の奥行きを求め、前記コントラストが最も大きい合成画像の奥行きと、選択した所定数の奥行きとを含む新たな奥行き候補群の中からコントラストが最も大きい合成画像の奥行きを決定する処理を実行し、前記処理を所定の回数繰り返し行った時点におけるコントラストが最も大きい合成画像の奥行きを前記最適奥行きに決定するためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の撮影装置によって撮影された画像の処理技術に関する。
【背景技術】
【０００２】
近年、３６０度のパノラマ画像を撮影できるカメラ（以下、「全天球カメラ」という。）が普及し始めている。全天球カメラによって撮影されたパノラマ画像（以下、「全天球画像」という。）は、所望の視点位置に全天球カメラを設置することで撮影することができる。しかしながら、競技中の競技者の邪魔となるためサッカーコートやバスケットコートなどの競技用コートの中には全天球カメラを設置することができない。そのため、競技用コートの中の所望の視点位置における競技中の全天球画像を撮影することができない。
【０００３】
そこで、全天球カメラを設置することのできない場所に仮想的な視点である仮想視点を設定して、この仮想視点において全天球カメラで撮影したかのような全天球画像を、コートの外側に設置された複数のカメラによって撮影された画像を合成することによって得る技術が提案されている（例えば、非特許文献１参照）。以下の説明において、仮想視点における全天球画像を、仮想全天球画像と記載する。
【０００４】
仮想全天球画像を複数のカメラによって撮影された画像の合成によって得るシステムの具体例について説明する。
図１３は、従来システムにおいて仮想全天球画像を得るためのシステムを示す図である。図１３に示すように、画像処理システム１は、全天球カメラ２と、複数のカメラ３−１、３−２、３−３、・・・、３−Ｎ（以下、「カメラ群３」という。）（Ｎは４以上の整数）と、画像処理装置４と、表示装置５とを備える。画像処理システム１は、競技用コート１０内に仮想視点１１を設定した場合に、競技用コート１０外に設置したカメラ群３によって撮影された画像の合成によって仮想視点１１における仮想全天球画像を得る。
【０００５】
全天球カメラ２は、全天球画像を撮影するカメラである。全天球カメラ２は、競技が行われる前のタイミングで競技用コート１０内の仮想視点１１の位置に設置される。全天球カメラ２は、仮想視点１１の位置から、仮想全天球画像の背景となる画像（以下、「背景画像」という。）を撮影する。全天球カメラ２で撮影された背景画像は、画像処理装置４に入力されて蓄積される。このように、画像処理装置４は、予め背景画像を蓄積する。
【０００６】
競技用コート１０の周囲には、カメラ群３が設置されている。カメラ群３の各カメラ３−１、３−２、３−３、・・・、３−Ｎは、それぞれ仮想視点１１を含む画角となるように競技用コート１０の周囲に設置されている。カメラ群３は、仮想視点１１を含む領域を撮影する。画像処理装置４は、カメラ群３の各カメラ３−１、３−２、３−３、・・・、３−Ｎによって撮影された画像に対して画像処理を施して、背景画像に画像処理後の画像を合成して仮想全天球画像を生成する。表示装置５は、液晶ディスプレイ、有機ＥＬ（Electro Luminescence）ディスプレイ、ＣＲＴ（Cathode Ray Tube）ディスプレイ等の画像表示装置である。表示装置５は、画像処理装置４で生成した仮想全天球画像を表示する。
【０００７】
次に、画像処理システム１における画像処理の具体例について図４を用いて説明する。
図１４は、画像処理システム１における画像処理の流れを説明するための図である。図１４（Ａ）は、背景画像２０の具体例を示す図である。背景画像２０には、仮想視点１１を中心として全方位（３６０度）の被写体が撮影されている。背景画像２０は、競技用コート１０内に人物がいない状態で撮影される画像であるので競技用コート１０内には人物が撮影されない。
【０００８】
図１４（Ｂ）は、各カメラ３−１、３−２及び３−３で撮影された画像を示す図である。図１４（Ｂ）には、左からカメラ３−１で撮影された画像２１と、カメラ３−２で撮影された画像２２と、カメラ３−３で撮影された画像２３とが示されている。画像処理装置４は、画像２１〜２３のそれぞれから仮想視点１１を含む領域２１１、２２１、２３１を抽出する。画像処理装置４は、抽出した領域２１１、２２１、２３１の画像に対して、画像処理を行うことで背景画像２０に合成可能な部分画像２１１ａ、２２１ａ、２３１ａを生成する。
【０００９】
画像処理装置４は、背景画像２０に対して部分画像２１１ａ、２２１ａ、２３１ａを合成することによって仮想全天球画像２４を生成する。図１４（Ｃ）は、画像処理装置４が生成する仮想全天球画像２４の例を示す図である。図１４（Ｃ）に示すように、仮想全天球画像２４の所定の領域には部分画像２１１ａ、２２１ａ、２３１ａが合成されている。そのため、仮想全天球画像２４として、競技用コート１０上に被写体（例えば、人物）が撮影されている画像が生成される。従来の画像処理システム１は、合成に用いているカメラ群３の光学中心及び仮想視点１１において想定する全天球カメラ２の光学中心がそれぞれ異なる。そのため、合成された仮想全天球画像２４は幾何学的に正しくない画像を含む。これを防ぐためには、画像処理装置４は、部分画像２１１ａ、２２１ａ、２３１ａを、仮想視点１１からの距離を示す奥行きの一点で整合性が保たれるよう画像処理を行い背景画像２０に合成する必要がある。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】高橋康輔、外３名、「複数カメラ映像を用いた仮想全天球映像合成に関する検討」、社団法人電子情報通信学会、信学技報、2015年6月、vol.115、no.76、p.43-48
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、整合性が保たれる奥行きに存在せずに別の奥行に存在している被写体（例えば、人物）の部分画像を背景画像２０に合成する場合には、画像処理により奥行きの整合性を保つことができない。このような奥行きに整合性のない被写体は、仮想全天球画像２４において、その画像が多重像になってしまったり、消失したりする現象が発生する。このように、被写体の奥行きが不明な場合には、適切な合成が出来なくなってしまうという問題があった。なお、このような問題は、複数の撮影装置のそれぞれで撮影された画像を合成する場合全てに共通する問題である。
【００１２】
上記事情に鑑み、本発明は、複数の撮影装置のそれぞれで撮影された画像の最適な奥行きを決定することができる技術の提供を目的としている。
【課題を解決するための手段】
【００１３】
本発明の一態様は、所定の位置を含む領域が撮影範囲となるように前記所定の位置を含む領域の周囲に設置された少なくとも２つの撮影装置それぞれが撮影した複数の入力画像を用いて、前記所定の位置を仮想的な視点である仮想視点として前記仮想視点からの距離を表す複数の異なる奥行きの合成画像を生成し、生成した複数の合成画像それぞれからコントラストを算出し、算出した前記コントラストに基づいて複数の合成画像のうちコントラストが最も大きい合成画像の奥行きを各入力画像の最適奥行きに決定する決定部を備える最適奥行き決定装置である。
【００１４】
本発明の一態様は、上記の最適奥行き決定装置であって、コントラストが最も大きい合成画像の奥行きと、前記コントラストが最も大きい合成画像の奥行きの近傍の奥行きとの間において所定数の奥行きを求め、前記コントラストが最も大きい合成画像の奥行きと、選択した所定数の奥行きとを含む新たな奥行き候補群の中からコントラストが最も大きい合成画像の奥行きを決定する処理を実行し、前記処理を所定の回数繰り返し行った時点におけるコントラストが最も大きい合成画像の奥行きを前記最適奥行きに決定する。
【００１５】
本発明の一態様は、上記の最適奥行き決定装置であって、前記決定部は、前記撮影装置によって撮影された各時刻における入力画像の最適奥行きを決定し、決定した前記各時刻における最適奥行きの値を暫定最適奥行きとして時系列順に並べ、前記各時刻の暫定最適奥行きの値を時間方向に平滑化することによって得られる各時刻の最適奥行きの推定値を前記撮影装置によって撮影された各時刻における入力画像の最適奥行きに決定する。
【００１６】
本発明の一態様は、上記の最適奥行き決定装置であって、前記決定部は、ある時刻において前記撮影装置それぞれで撮影された各入力画像の最適奥行きを、前記ある時刻よりも前の時刻における前記撮影装置の入力画像の最適奥行きに基づいて決定する。
【００１７】
本発明の一態様は、所定の位置を含む領域が撮影範囲となるように前記所定の位置を含む領域の周囲に設置された少なくとも２つの撮影装置それぞれが撮影した複数の入力画像を用いて、前記所定の位置を仮想的な視点である仮想視点として前記仮想視点からの距離を表す複数の異なる奥行きの合成画像を生成し、生成した複数の合成画像それぞれからコントラストを算出し、算出した前記コントラストに基づいて複数の合成画像のうちコントラストが最も大きい合成画像の奥行きを各入力画像の最適奥行きに決定する決定ステップを有する最適奥行き決定方法である。
【００１８】
本発明の一態様は、所定の位置を含む領域が撮影範囲となるように前記所定の位置を含む領域の周囲に設置された少なくとも２つの撮影装置それぞれが撮影した複数の入力画像を用いて、前記所定の位置を仮想的な視点である仮想視点として前記仮想視点からの距離を表す複数の異なる奥行きの合成画像を生成し、生成した複数の合成画像それぞれからコントラストを算出し、算出した前記コントラストに基づいて複数の合成画像のうちコントラストが最も大きい合成画像の奥行きを各入力画像の最適奥行きに決定する決定ステップをコンピュータに実行させるためのコンピュータプログラムである。
【発明の効果】
【００１９】
本発明により、複数の撮影装置のそれぞれで撮影された画像の最適な奥行きを決定することが可能となる。
【図面の簡単な説明】
【００２０】
【図１】本発明における画像処理システム１００のシステム構成を示す図である。
【図２】合成情報テーブルの具体例を示す図である。
【図３】最適奥行き情報テーブルの具体例を示す図である。
【図４】コントラストの算出結果の具体例を示す図である。
【図５】画像処理装置８０の処理の流れを示すフローチャートである。
【図６】第２実施形態における画像処理装置８０ａの機能構成を表す概略ブロック図である。
【図７】画像処理装置８０ａの処理の流れを示すフローチャートである。
【図８】第３実施形態における画像処理装置８０ｂの機能構成を表す概略ブロック図である。
【図９】決定部８０３ｂの具体的な処理について説明するための図である。
【図１０】画像処理装置８０ｂの処理の流れを示すフローチャートである。
【図１１】第４実施形態における画像処理装置８０ｃの機能構成を表す概略ブロック図である。
【図１２】画像処理装置８０ｃの処理の流れを示すフローチャートである。
【図１３】従来システムにおいて仮想全天球画像を得るためのシステムを示す図である。
【図１４】画像処理システム１における画像処理の流れを説明するための図である。
【発明を実施するための形態】
【００２１】
以下、本発明の一実施形態を、図面を参照しながら説明する。
図１は、本発明における画像処理システム１００のシステム構成を示す図である。
画像処理システム１００は、全天球カメラ６０、複数のカメラ７０−１〜７０−Ｍ（Ｍは２以上の整数）及び画像処理装置８０を備える。なお、以下の説明では、カメラ７０−１〜７０−Ｍについて特に区別しない場合には、カメラ７０と記載する。
【００２２】
全天球カメラ６０は、撮影対象領域８１内の仮想視点８２の位置に設置される。撮影対象領域８１は、例えばサッカーコートやバスケットコートなどの競技用コートなどである。仮想視点８２は、所定の領域（本実施形態では、撮影対象領域８１）内に仮想的に設定された視点である。全天球カメラ６０は、仮想視点８２の位置における全天球画像を撮影する。本実施形態における全天球画像は、仮想視点８２を中心として撮影対象領域８１全体を含む。全天球カメラ６０による処理は、画像処理装置８０による処理の開始前に行われる。全天球カメラ６０は、撮影した全天球画像を背景画像として画像処理装置８０に出力する。
【００２３】
Ｍ台のカメラ７０−１、７０−２、・・・、７０−Ｍは、撮影対象領域８１の外側に設けられ、画像を動画（映像）で撮影するカメラであり、仮想視点８２を含む領域を撮影する。Ｍ台のカメラ７０−１、７０−２、・・・、７０−Ｍのそれぞれで撮影された動画は、複数フレームの画像により構成される。図１に示すように、カメラ７０−１には仮想視点８２の位置上を通過する光線７１が入力され、カメラ７０−２には仮想視点８２の位置上を通過する光線７２が入力される。以下、カメラ７０に入力される光線を実光線と記載する。図１では示していないが、カメラ７０は撮影対象領域８１の周囲に設置される。つまり、カメラ７０は、それぞれ仮想視点８２を含む画角となるように撮影対象領域８１の周囲を取り囲むように設置される。図１においてＭは、２以上の整数であり、同程度の画質の仮想全天球画像を得ようとするのであれば撮影対象領域８１が大きいほど大きな値となる。また、撮影対象領域８１の大きさが同じであれば、Ｍの値が大きい程、合成領域（仮想全天球画像において、Ｍ台のカメラ７０からの画像を合成した領域）の面積が大きくなり、あるいは合成領域の大きさが同じであれば合成領域における画質が向上する仮想全天球画像の画質を高いものにしようとするほど大きな値となる。
【００２４】
画像処理装置８０は、Ｍ台のカメラ７０−１、７０−２、・・・、７０−Ｍのそれぞれで撮影されたそれぞれの動画から入力画像を事前に取得する。撮影されたそれぞれの動画は複数フレームの画像で構成されており、本実施形態における画像処理装置８０は処理対象となるフレームの画像を入力画像として取得する。画像処理装置８０は、全天球カメラ６０によって撮影された全天球画像と、Ｍ台のカメラ７０−１、７０−２、・・・、７０−Ｍのそれぞれで撮影された動画からそれぞれ取得された入力画像とに基づいて仮想全天球画像を生成する。具体的には、画像処理装置８０は、入力画像から最適な奥行きを決定し、決定した奥行きに基づいて入力画像から領域を抽出し、抽出した領域を全天球画像に重畳することによって仮想全天球画像を生成する。
以下、画像処理装置８０の具体的な構成について複数の実施形態（第１実施形態〜第４実施形態）を例に説明する。
【００２５】
（第１実施形態）
第１実施形態では、画像処理システム１００に２台のカメラ７０（カメラ７０−１及び７０−２）が隣接して備えられている場合を例に説明する。また、以下の説明では、隣接するカメラ７０の組（例えば、カメラ７０−１と７０−２との組）をカメラペアと記載する。
画像処理装置８０は、バスで接続されたＣＰＵ（Central Processing Unit）やメモリや補助記憶装置などを備え、画像処理プログラムを実行する。画像処理プログラムの実行によって、画像処理装置８０は、入力画像記憶部８０１、合成情報記憶部８０２、決定部８０３、最適奥行き記憶部８０４、背景画像記憶部８０５、画像合成部８０６を備える装置として機能する。なお、画像処理装置８０の各機能の全て又は一部は、ＡＳＩＣ（Application Specific Integrated Circuit）やＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されてもよい。また、画像処理プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、画像処理プログラムは、電気通信回線を介して送受信されてもよい。
【００２６】
入力画像記憶部８０１は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。入力画像記憶部８０１は、各カメラ７０を識別するためのカメラＩＤに関連付けて、カメラ７０毎の入力画像を時系列順に記憶する。入力画像は、撮影時刻及び動画の画像データを含む。
合成情報記憶部８０２は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。合成情報記憶部８０２は、合成情報テーブルを記憶する。合成情報テーブルは、背景画像に対して画像を重畳するために用いられる情報（以下、「合成情報」という。）を表すレコード（以下、「合成情報レコード」という。）によって構成される。
【００２７】
図２は、合成情報テーブルの具体例を示す図である。
合成情報テーブルは、合成情報レコードを複数有する。合成情報レコードは、カメラＩＤ及び合成情報の各値を有する。カメラＩＤの値は、カメラ７０を識別するための識別情報を表す。例えば、図２におけるカメラＩＤ“Ｃ１”で識別されるカメラ７０はカメラ７０−１であり、カメラＩＤ“Ｃ１”で識別されるカメラ７０はカメラ７０−１である。
合成情報の値は、同じ合成情報レコードのカメラＩＤで識別されるカメラ７０で撮影された画像（入力画像）から生成される画像を背景画像に重畳するために用いられる情報を表す。合成情報の具体例として、奥行き、抽出領域情報及び変換情報がある。
【００２８】
ある合成情報レコードの奥行きの値は、カメラＩＤで識別されるカメラ７０の仮想視点８２からの距離を表す。図２に示す例では、合成情報テーブルには、カメラＩＤ毎にＮ段階の奥行きが登録されている。なお、Ｎは２以上の整数である。奥行き１〜奥行きＮは、仮想視点８２から撮影対象領域８１の端までの間で設定される。設定される奥行きの数は、最適奥行きの決定精度がある程度保障される数であることが好ましい。
ある合成情報レコードの抽出領域情報の値は、カメラＩＤで識別されるカメラ７０で撮影された画像（入力画像）から抽出する領域（以下、「抽出領域」という。）に関する情報を表す。抽出領域情報の具体例として、左上座標、幅及び高さがある。左上座標は、抽出領域の左上の座標を表す。幅は、抽出領域の幅を表す。高さは、抽出領域の高さを表す。なお、幅及び高さは、抽出領域の左上座標を基準とし、かつ、仮想視点８２を含む範囲に設定される。抽出領域は、背景画像に重畳された画像上において、隣接するカメラ７０の画像の間に隙間ができないような領域に設定されることが望ましい。なお、以下の説明では、抽出領域情報に応じて入力画像から抽出された部分領域の画像を部分領域画像と記載する。
【００２９】
ある合成情報レコードの変換情報の値は、抽出領域情報に応じて抽出された部分領域画像を部分画像に変換するための情報を表す。部分画像は、部分領域画像を背景画像の対応領域に違和感なく重畳するために、部分領域画像に対して変換情報に応じて拡大、縮小、回転等の変形処理を行うことによって生成される。この変形処理は、例えば、画像に対してアフィン変換を施すことによって行う。画像に対してアフィン変換を施す場合の変換情報は、例えばアフィン変換行列である。以下、部分領域画像に対して行う変形処理としてアフィン変換を用いる例を示すが、変形処理はアフィン変換に限定される必要はなく、変換情報に応じて拡大、縮小、回転等による画像の変換を行う処理であればどのような処理であってもよい。なお、アフィン変換行列には、背景画像において部分画像を重畳する領域を示す情報（以下、「重畳情報」という。）が含まれる。
【００３０】
アフィン変換行列は、以下に示す方法により予め取得して合成情報記憶部８０２に記憶される。例えば、仮想視点８２から複数種類の距離（奥行）（図２の例では、奥行き１〜奥行きＮ）の位置それぞれに格子模様のチェスボードを設置して、仮想視点８２に設置した全天球カメラ６０で撮影したチェスボードを含む画像と、カメラ７０で撮影したチェスボードを含む画像とを比較する。そして、チェスボードの各格子について、全天球カメラ６０で撮影した画像中のチェスボードの格子と、カメラ７０で撮影した画像中のチェスボードの格子が対応するように画像を変換するアフィン変換行列を求める。このようにして、チェスボードを設置した奥行き１〜奥行きＮそれぞれに対応したアフィン変換行列を求める。
【００３１】
図２に示されるように、合成情報テーブルには、カメラＩＤ毎にＮ段階の奥行きが登録され、各奥行き１〜Ｎそれぞれに対して変換情報が登録されている。図２において、合成情報テーブルの最上段に登録されている合成情報レコードは、カメラＩＤの値が“Ｃ１”、奥行きの値が“奥行き１”、左上座標の値が“（Ａ，Ｂ）”、幅の値が“Ｃ”、高さの値が“Ｄ”、変換情報の値が“Ａ１ｊ１”である（ｊは１以上の整数）。すなわち、カメラＩＤ“Ｃ１”で識別されるカメラ７０−１において奥行き１の場合には、入力画像から左上座標（Ａ，Ｂ）、幅Ｃ、高さＤで表される部分領域を抽出し、抽出された部分領域に対して“Ａ１ｊ１”の変形処理を施すことが表されている。
【００３２】
図１に戻って、画像処理装置８０の説明を続ける。
決定部８０３は、入力画像記憶部８０１に記憶されているカメラペアの入力画像と、合成情報記憶部８０２に記憶されている合成情報テーブルとを入力とする。決定部８０３は、入力されたカメラペアの入力画像と合成情報テーブルとに基づいて、各カメラ７０の各入力画像の最適奥行きを決定する。ここで、最適奥行きとは、入力画像に撮像されている被写体に関して多重像や消失が他の奥行きに比べて視認しにくい奥行きを表す。
【００３３】
次に、決定部８０３の具体的な処理について説明する。
まず決定部８０３は、合成情報テーブルの１つの奥行き（例えば、奥行き１）に対する抽出領域情報に基づいて、入力画像それぞれから部分領域を抽出することによって各入力画像の部分領域画像を生成する。次に、決定部８０３は、生成した各入力画像の部分領域画像に対して、合成情報テーブルの１つの奥行き（例えば、奥行き１）に対する変換情報のアフィン変換行列に基づく変形処理を行うことによって各入力画像の部分画像を生成する。次に、決定部８０３は、生成した各入力画像の部分画像を用いて、各入力画像の最適な奥行きを決定するための合成画像（以下、「奥行き決定用合成画像」という。）を生成する。例えば、決定部８０３は、変換情報に含まれる重畳情報に基づいて奥行き決定用合成画像を生成する。決定部８０３は、生成した奥行き決定用合成画像の重複領域に対するコントラストを算出する。本実施形態では、コントラストを輝度差で求める場合を例に説明する。なお、コントラストを輝度差で求める場合には後述する式１が用いられる。決定部８０３は、上記の処理を全ての奥行き１〜Ｎに対して行う。そして、決定部８０３は、全ての奥行き１〜Ｎにおいて算出したコントラストの中でコントラストが最も大きい奥行き決定用合成画像の奥行きをカメラペアの各入力画像の最適奥行きに決定する。決定部８０３は、決定したカメラペアの各入力画像の最適奥行きから各カメラ７０の各入力画像の最適奥行きを決定する。なお、決定部８０３は、本実施形態のようにカメラペアが１つの場合には、カメラペアの各入力画像の最適奥行きを各カメラ７０の各入力画像の最適奥行きに決定してもよい。カメラペアが複数ある場合の説明は後述する。決定部８０３は、決定した各カメラ７０の各入力画像の最適奥行き情報を最適奥行き記憶部８０４に記憶させる。決定部８０３は、以上の処理を各時刻におけるカメラペアの入力画像に対して行う。
【００３４】
最適奥行き記憶部８０４は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。最適奥行き記憶部８０４は、最適奥行き情報テーブルを記憶する。最適奥行き情報テーブルは、各カメラ７０の各入力画像の最適奥行きに関する情報を表すレコード（以下、「最適奥行き情報レコード」という。）によって構成される。
【００３５】
図３は、最適奥行き情報テーブルの具体例を示す図である。
最適奥行き情報テーブルは、最適奥行き情報レコードを複数有する。最適奥行き情報レコードは、時刻及び最適奥行きの各値を有する。時刻の値は、入力画像が撮影された時刻を表す。ある最適奥行き情報レコードの最適奥行きの値は、ある時刻に撮影された各カメラ７０の入力画像の最適奥行きを表す。
【００３６】
図３に示される例では、最適奥行き情報テーブルには各時刻における最適奥行きの情報が登録されている。図３において、最適奥行き情報テーブルの最上段に登録されている最適奥行き情報レコードは、時刻の値が“ｔ”、カメラ７０−１の入力画像の最適奥行きの値が“ｄ１(ｔ)”、カメラ７０−２の入力画像の最適奥行きの値が“ｄ２(ｔ)”である。すなわち、時刻ｔにカメラ７０−１及び７０−２によって撮影された画像（入力画像）それぞれの最適奥行きが“ｄ１(ｔ)”、“ｄ２(ｔ)”であることが表されている。
背景画像記憶部８０５は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。背景画像記憶部８０５は、全天球カメラ６０によって撮影された全天球画像を背景画像として記憶する。
【００３７】
画像合成部８０６は、入力画像記憶部８０１に記憶されている各カメラ７０の入力画像と、合成情報記憶部８０２に記憶されている合成情報テーブルと、最適奥行き記憶部８０４に記憶されている最適奥行き情報テーブルと、背景画像記憶部８０５に記憶されている背景画像とを入力とする。画像合成部８０６は、入力された各カメラ７０の入力画像と、合成情報テーブルと、最適奥行き情報テーブルと、背景画像とに基づいて仮想全天球画像を生成する。具体的には、画像合成部８０６は、最適奥行き情報テーブルを参照して、ある時刻（例えば、時刻ｔ）におけるあるカメラ７０（例えば、カメラ７０−１）の入力画像の最適な奥行きの情報を取得する。画像合成部８０６は、取得したカメラ７０の入力画像の最適な奥行きに基づいて、合成情報テーブルからあるカメラ７０（例えば、カメラ７０−１）の最適な奥行きに対応する抽出領域情報を取得する。画像合成部８０６は、取得した抽出領域情報に基づいて、入力画像から部分領域を抽出することによって部分領域画像を生成する。
【００３８】
画像合成部８０６は、合成情報テーブルからあるカメラ７０（例えば、カメラ７０−１）の最適な奥行きに対応する変換情報を取得する。画像合成部８０６は、生成した部分領域画像に対して、取得した変換情報のアフィン変換行列に基づく変形処理を行うことによって入力画像の部分画像を生成する。画像合成部８０６は、部分画像生成までの処理をある時刻における各カメラ７０の入力画像に対して行う。その後、画像合成部８０６は、アフィン変換行列に含まれる重畳情報に基づいて、生成した部分画像を背景画像に重畳することで仮想全天球画像を生成する。より具体的には、画像合成部８０６は、部分画像の画素値で、背景画像上の部分画像を重畳する領域の画素値を置き換えることによって仮想全天球画像を生成する。画像合成部８０６は、仮想全天球画像生成の処理を各時刻の入力画像に対して行うことによって各時刻における仮想全天球画像を生成する。画像合成部８０６は、生成した仮想全天球画像を出力する。
以下の説明では、画像合成部８０６による上記の全ての処理を画像合成処理ステップと記載する。
【００３９】
図４は、コントラストの算出結果の具体例を示す図である。
図４において、縦軸はコントラストを表し、横軸は奥行きを表す。奥行きの値が０に近いほど仮想視点８２からの距離が近い奥行きを表し、奥行きの値が高くなるほど仮想視点８２からの距離が遠い奥行きを表す。図４では、円９０で示される奥行きｄのコントラストが最も大きい。この場合、決定部８０３は、奥行きｄをカメラペアの各入力画像の最適奥行きに決定する。
【００４０】
図５は、画像処理装置８０の処理の流れを示すフローチャートである。
決定部８０３は、カメラペアの同時刻における入力画像を入力画像記憶部８０１から読み出す（ステップＳ１０１）。次に、決定部８０３は、読み出した入力画像と、合成情報記憶部８０２に記憶されている合成情報テーブルとに基づいて、１つの奥行きに対する変換情報を用いて奥行き決定用合成画像を生成する（ステップＳ１０２）。１つの奥行きの選択方法は、処理が行なわれていない奥行きを選択できればどのような補法であってもよい。例えば、決定部８０３は、仮想視点８２に近い奥行から順番に奥行きを選択してもよいし、ランダムに奥行きを選択してもよいし、その他の方法で奥行きを選択してもよい。次に、決定部８０３は、生成した奥行き決定用合成画像の重複領域のコントラストを以下の式１に基づいて算出する（ステップＳ１０３）。なお、式１はコントラストの求め方の一例である。また、式１のＬｍｉｎは画像中の重複領域の最小輝度値を表し、Ｌｍａｘは画像中の重複領域の最大輝度値を表す。
【００４１】
【数１】
0006392742.tif 000002
【００４２】
その後、決定部８０３は、全ての奥行きに対してコントラストを算出する処理を行ったか否か判定する（ステップＳ１０４）。全ての奥行きに対してコントラストを算出する処理を行っていない場合（ステップＳ１０４−ＮＯ）、決定部８０３はステップＳ１０２以降の処理を繰り返し実行する。
一方、全ての奥行きに対してコントラストを算出する処理を行った場合（ステップＳ１０４−ＹＥＳ）、決定部８０３は算出した全ての奥行き対するコントラストに基づいてカメラペアの各入力画像の最適奥行きを決定する（ステップＳ１０５）。
なお、以下の説明では、図５のステップＳ１０２からステップＳ１０５までの処理をカメラペア奥行き決定処理と記載する。
【００４３】
以上のように構成された画像処理装置８０によれば、複数の撮影装置のそれぞれで撮影された画像の最適な奥行きを決定することが可能になる。以下、この効果について詳細に説明する。
画像処理装置８０は、カメラペアの入力画像を用いて全ての奥行きに対する奥行き決定用合成画像を生成する。次に、画像処理装置８０は、生成した全ての奥行きに対する奥行き決定用合成画像それぞれからコントラストを算出し、算出したコントラストが最も大きい奥行き決定用合成画像を選択する。コントラストが低い場合には画像がぼやけている可能性が高い。つまり、合成による多重像や消失が発生している画像である可能性が高い。したがって、画像処理装置８０は、コントラストが最も大きい奥行き決定用合成画像を選択することによって、多重像や消失が発生していない可能性の高い画像を選択することができる。そのため、複数の撮影装置のそれぞれで撮影された画像の最適な奥行きを決定することが可能になる。
【００４４】
＜変形例＞
画像処理装置８０における入力画像記憶部８０１、合成情報記憶部８０２、決定部８０３及び最適奥行き記憶部８０４は、最適奥行き決定装置として構成されてもよい。
本実施形態では、カメラペアが１つの場合について説明したが、カメラペアが複数ある場合には各カメラ７０には２つの最適奥行きが存在することになる。例えば、あるカメラＣｉ（ｉは２以上の整数）に関しては（Ｃｉ−１,Ｃｉ）のペアと（Ｃｉ,Ｃｉ＋１）のペアがあり、それぞれのカメラペアに関して最適奥行きが決定される。そこで、決定部８０３は、カメラペアが複数ある場合にはそれぞれのペア（例えば、（Ｃｉ−１,Ｃｉ）のペアと（Ｃｉ,Ｃｉ＋１）のペア）で決定された最適奥行きに基づいてカメラＣｉの最適奥行きを決定する。この方法としては、２つの最適奥行きのうち仮想視点８２に近い奥行をカメラＣｉの最適奥行きと決定する方法などがある。決定部８０３は、この処理を全てのカメラペアに対して行うことによってカメラペアが複数ある場合においても各カメラ７０の各入力画像の最適奥行きを決定することができる。そして、決定部８０３は、決定した各カメラ７０の各入力画像の最適奥行きの情報を最適奥行き記憶部８０４に記憶させる。その後、画像合成部８０６は、画像合成処理ステップを実行してもよいし、合成画像の生成指示が入力されたタイミングで画像合成処理ステップを実行してもよいし、その他のタイミングで画像合成処理ステップを実行してもよい。
また、カメラペアを選ぶ際に、（Ｃｉ−１,Ｃｉ）のペアと（Ｃｉ＋１,Ｃｉ＋２）のペアとするなど１台のカメラ７０には２つの最適奥行きが存在しないようにする方法をとってもよい。
【００４５】
（第２実施形態）
第２実施形態では、第１実施形態よりも処理の高速化を実現する。具体的には、第１実施形態ではＮ個の奥行き全てに対してコントラストを算出する処理が行なわれているのに対して、第２実施形態では、画像処理装置は、第１実施形態よりも少ない奥行きに基づいてカメラペアの各入力画像の最適奥行きを決定する。より具体的には、第２実施形態では、画像処理装置は、処理を繰り返す度に奥行き候補群に含まれる各奥行きの間隔が狭くなるように新たな奥行き候補群を作成し、所定の回数繰り返した時点の最終的な奥行き候補群に含まれる奥行きの中から最適な奥行きを決定する。また、第２実施形態では、第１実施形態と同様に、画像処理システム１００に２台のカメラ７０（カメラ７０−１及び７０−２）がカメラペアとして備えられている場合を例に説明する。
【００４６】
図６は、第２実施形態における画像処理装置８０ａの機能構成を表す概略ブロック図である。画像処理装置８０ａは、バスで接続されたＣＰＵやメモリや補助記憶装置などを備え、画像処理プログラムを実行する。画像処理プログラムの実行によって、画像処理装置８０ａは、入力画像記憶部８０１、合成情報記憶部８０２、決定部８０３ａ、最適奥行き記憶部８０４、背景画像記憶部８０５、画像合成部８０６を備える装置として機能する。なお、画像処理装置８０ａの各機能の全て又は一部は、ＡＳＩＣやＰＬＤやＦＰＧＡ等のハードウェアを用いて実現されてもよい。また、画像処理プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、画像処理プログラムは、電気通信回線を介して送受信されてもよい。
【００４７】
画像処理装置８０ａは、決定部８０３に代えて決定部８０３ａを備える点で画像処理装置８０と構成が異なる。画像処理装置８０ａは、他の構成については画像処理装置８０と同様である。そのため、画像処理装置８０ａ全体の説明は省略し、決定部８０３ａについて説明する。
【００４８】
決定部８０３ａは、入力画像記憶部８０１に記憶されているカメラペアの入力画像と、合成情報記憶部８０２に記憶されている合成情報テーブルとを入力とする。決定部８０３ａは、入力されたカメラペアの入力画像と合成情報テーブルとに基づいて、各カメラ７０の各入力画像の最適奥行きを決定する。
【００４９】
次に、決定部８０３ａの具体的な処理について説明する。
まず決定部８０３ａは、Ｎ個の奥行きのうち特定の奥行き（例えば、Ｓ個の奥行き）を選択する。ここで、特定の奥行きの選択方法としては、等間隔（Ｎ／Ｓ個置き）に奥行きを選択する方法などが挙げられる。以下、このようなＮ個の奥行きのうち特定の奥行きを選択する処理を初期処理と記載する。初期処理で選択された奥行きを初期奥行き候補群と記載する。次に、決定部８０３ａは、合成情報テーブルを参照して、初期奥行き候補群に含まれる奥行きそれぞれについて奥行き決定用合成画像を生成し、生成した奥行き決定用合成画像のコントラストを算出する。奥行き決定用合成画像の生成及びコントラストの算出に関する処理については第１実施形態と同様である。この処理によって、決定部８０３ａは、初期奥行き候補群に含まれる各奥行きの奥行き決定用合成画像の生成及びコントラストの算出を行う。そして、決定部８０３ａは、算出したコントラストの中でコントラストが最も大きい奥行きを含む新たな奥行き候補群を作成する。なお、決定部８０３ａは、新たな奥行き候補群を作る際には、コントラストが最も大きかった奥行きが中心になるような範囲から新たな奥行き候補群を作成する。中心になるような範囲は、予め定められる。
【００５０】
以下、コントラストが最も大きい奥行きを含む新たな奥行き候補群を作成する処理について説明する。この説明では、コントラストが最も大きかった奥行きが中心になるような範囲の定め方の一例を示しながら新たな奥行き候補群を作成する処理について説明する。一例として、５個の奥行き（Ｎ＝５。Ｓ１、Ｓ２、Ｓ３、Ｓ４、Ｓ５（Ｓ１＜Ｓ２＜Ｓ３＜Ｓ４＜Ｓ５）の５つの奥行き）があるとする。
決定部８０３ａは、コントラストが最も大きい奥行きと、コントラストが最も大きい奥行きに隣接する奥行きとの間において所定の数の奥行きを選択する。例えば、Ｓ３がコントラストが最も大きい奥行きであれば、隣接する奥行きはＳ２及びＳ４となる。このように、決定部８０３ａは、コントラストが最も大きい奥行きに隣接する奥行きの間（例えば、Ｓ２とＳ４の間）を「コントラストが最も大きかった奥行きが中心になるような範囲」とする。そして、決定部８０３ａは、「コントラストが最も大きかった奥行きが中心になるような範囲」の中（例えば、Ｓ２とＳ４の間）からＴ（Ｔは１以上の整数）個の奥行きを選択する。例えば、Ｔ個の奥行きは、合成情報テーブルに記憶されている、コントラストが最も大きい奥行きに隣接する奥行きの間（コントラストが最も大きかった奥行きが中心になるような範囲）の奥行きの中から等間隔に選択されてもよい。その後、決定部８０３ａは、コントラストが最も大きい奥行き（例えば、Ｓ３）と、コントラストが最も大きい奥行きに隣接する奥行きの間（例えば、Ｓ２及びＳ４の間）の奥行きの中から選択されたＴ個の奥行きと、を含む新たな奥行き候補群を作成する。つまり、決定部８０３ａは、Ｔ＋１個の奥行きを含む新たな奥行き候補群を作成する。
【００５１】
決定部８０３ａは、作成した新たな奥行き候補群に含まれる奥行きそれぞれについて奥行き決定用合成画像を生成し、生成した奥行き決定用合成画像のコントラストを算出する。なお、この際、決定部８０３ａは、既にコントラストを算出している奥行きに対しては処理を行わなくてもよい。決定部８０３ａは、上記処理を所定の回数行う。そして、所定の回数実行後の奥行き候補群の中でコントラストが最も大きい奥行きをカメラペアの各入力画像の最適奥行きに決定する。決定部８０３ａは、以上の処理を各時刻におけるカメラペアの入力画像に対して行う。
【００５２】
図７は、画像処理装置８０ａの処理の流れを示すフローチャートである。
決定部８０３ａは、カメラペアの同時刻における入力画像を入力画像記憶部８０１から読み出し、入力する（ステップＳ２０１）。次に、決定部８０３ａは、Ｎ個の奥行きのうちＳ個の奥行きを選択することによって、初期奥行き候補群を作成する（ステップＳ２０２）。具体的には、決定部８０３ａは、予め設定されている複数の奥行きの中から特定の数の奥行きを選択することによって初期奥行き候補群を作成する。なお、初期奥行き候補群を作成する処理は、初期処理にのみ行われる。決定部８０３ａは、読み出した入力画像と、合成情報記憶部８０２に記憶されている合成情報テーブルとに基づいて、奥行き候補群に含まれる１つの奥行きに対する変換情報を用いて奥行き決定用合成画像を生成する（ステップＳ２０３）。決定部８０３ａは、生成した奥行き決定用合成画像の重複領域のコントラストを上記の式１に基づいて算出する（ステップＳ２０４）。その後、決定部８０３ａは、奥行き候補群に含まれる奥行きの全てに対してコントラストを算出する処理を行ったか否か判定する（ステップＳ２０５）。奥行き候補群に含まれる奥行きの全てに対してコントラストを算出する処理を行っていない場合（ステップＳ２０５−ＮＯ）、決定部８０３ａは奥行き候補群に含まれる奥行きの全てに対してコントラストを算出する処理を行うまでステップＳ２０３及びステップＳ２０４の処理を繰り返し実行する。
【００５３】
一方、奥行き候補群に含まれる奥行きの全てに対してコントラストを算出する処理を行った場合（ステップＳ２０５−ＹＥＳ）、決定部８０３ａは最新の奥行き候補群の中でコントラストが最も大きい奥行きを含む、新たな奥行き候補群を作成する。なお、新たな奥行き候補群を作成する場合の奥行き候補群の選択方法は前述の通りである。つまり、決定部８０３ａは、コントラストが最も大きい奥行きと、選択されたＴ個の奥行きとを含む新たな奥行き候補群を作成する。その後、決定部８０３ａは、作成した新たな奥行き候補群に含まれる各奥行きに対してステップＳ２０３から２０５までの処理を行う（ステップＳ２０６）。その後、決定部８０３ａは、ステップＳ２０６の処理を所定の回数行なったか否か判定する（ステップＳ２０７）。ステップＳ２０６の処理を所定の回数行なっていない場合（ステップＳ２０７−ＮＯ）、決定部８０３ａはステップＳ２０６の処理を所定の回数に達するまで繰り返し実行する。
一方、ステップＳ２０６の処理を所定の回数行なった場合（ステップＳ２０７−ＹＥＳ）、決定部８０３ａは最終的な奥行き候補群の中でコントラストが最も大きい奥行きをカメラペアの各入力画像の最適奥行きに決定する（ステップＳ２０８）。ここで、最終的な奥行き候補群とは、ステップＳ２０６の処理を所定の回数行なった時点の奥行き候補群を表す。
【００５４】
以上のように構成された画像処理装置８０ａによれば、第１実施形態と同様の構成を得ることができる。
また、画像処理装置８０ａは、第１実施形態と比べて少数の奥行きに基づいた推定を行いながら最適奥行きを決定する。そのため、第１実施形態に比べて処理を高速化することが可能になる。
【００５５】
＜変形例＞
第２実施形態は、第１実施形態と同様に変形されてもよい。
処理を繰り返す度に新たな奥行き候補群を作成し、作成した新たな候補群から最適解（本実施形態では、最適奥行き）を決定する処理として、Ｃｏａｒｓｅ−ｔｏ−ｆｉｎｅな方法や、シンプレックス法などが用いられてもよい。
本実施形態では、ステップＳ２０６の処理が所定の回数行なわれた場合にステップＳ２０８の処理が実行される例を示したが、ステップＳ２０８の処理は記憶されている奥行き候補の最小単位に行き着いた場合に行われてもよい。
本実施形態では、合成情報テーブルに登録されている奥行きの中から選択して奥行き候補群を作成する構成を示したが、決定部８０３ａは合成情報テーブルに登録されている奥行き以外の奥行きを含めて奥行き候補群を作成するように構成されてもよい。例えば、仮想視点８２からの距離が１である奥行きα（奥行きα＝１）と、仮想視点８２からの距離が３である奥行きβ（奥行きβ＝３）とが合成情報テーブルに登録されている場合、決定部８０３ａは２つの奥行きの間の奥行きである仮想視点８２からの距離が２（奥行きαと奥行きβの間の奥行きγ＝２）の奥行きγを含めて奥行き候補群を作成する。このように、合成情報テーブルに登録されている奥行き以外の奥行きを奥行き候補群に含めて用いる場合、決定部８０３ａは合成情報テーブルに登録されている奥行き以外の奥行きの変換情報を登録されている奥行きの変換情報から補間するなどして求める。例えば、変換情報がアフィン変換行列であり、奥行きα＝１のときのアフィン変換行列Ａ１ｊ１、奥行きβ＝３のときのアフィン変換行列Ａ１ｊ２であるとすると、奥行きαと奥行きβの間の奥行きγのアフィン変換行列の各要素は、Ａ１ｊ１の行列の各要素と、Ａ１ｊ２の行列の各要素とを平均するなどして求めればよい。なお、この例は一例であり、決定部８０３ａは２つの奥行きの間（例えば、奥行きαと奥行きβの間）の奥行きとして複数の奥行きを含めて奥行き候補群を作成してもよい。
【００５６】
決定部８０３ａは、以下の方法で新たな奥行き候補群を作成してもよい。上記の５個の奥行き（Ｎ＝５。Ｓ１、Ｓ２、Ｓ３、Ｓ４、Ｓ５の５つの奥行き）を例に説明する。
（第１の方法）
第１の方法は、コントラストが最も大きい奥行きと、コントラストが最も大きい奥行きに隣接する奥行きそれぞれとの間においてそれぞれ所定の数の奥行きを選択し、選択したそれぞれの所定の数の奥行きと、コントラストが最も大きい奥行きと、を含む新たな奥行き候補群を作成する方法である。以下、具体的に説明する。
まず決定部８０３ａは、上記のように「コントラストが最も大きかった奥行きが中心になるような範囲」を定める。つまり、Ｓ３がコントラストが最も大きい奥行きであれば、隣接する奥行きはＳ２及びＳ４となり、Ｓ２とＳ４の間が「コントラストが最も大きかった奥行きが中心になるような範囲」になる。ここで、コントラストが最も大きい奥行き（例えば、Ｓ３）とコントラストが最も大きい奥行きに隣接する奥行きの一方（例えば、Ｓ２）との間を第１範囲とし、コントラストが最も大きい奥行きとコントラストが最も大きい奥行きに隣接する奥行きの他方（例えば、Ｓ４）との間を第２範囲とする。次に、決定部８０３ａは、第１範囲においてＵ（Ｕは１以上の整数）個の奥行きを選択し、第２範囲においてＶ（Ｖは１以上の整数）個の奥行きを選択する。例えば、Ｕ個の奥行きは、合成情報テーブルに記憶されている、第１範囲内の奥行きの中から等間隔に選択されてもよい。また、例えば、Ｖ個の奥行きは、合成情報テーブルに記憶されている、第２範囲内の奥行きの中から等間隔に選択されてもよい。なお、ＵとＶは同じ値であってもよいし、異なる値であってもよい。その後、決定部８０３ａは、コントラストが最も大きい奥行き（例えば、Ｓ３）と、第１範囲の奥行きの中から選択されたＵ個の奥行きと、第２範囲の奥行きの中から選択されたＶ個の奥行きと、を含む新たな奥行き候補群を作成する。つまり、決定部８０３ａは、Ｕ＋Ｖ＋１個の奥行きを含む新たな奥行き候補群を作成する。
【００５７】
（第２の方法）
第２の方法は、コントラストが最も大きい奥行きと、コントラストが最も大きい奥行きに隣接する奥行きの一方との間において所定の数の奥行きを選択し、選択した所定の数の奥行きと、コントラストが最も大きい奥行きと、を含む新たな奥行き候補群を作成する方法である。以下、具体的に説明する。
まず決定部８０３ａは、上記のように「コントラストが最も大きかった奥行きが中心になるような範囲」を定める。つまり、Ｓ３がコントラストが最も大きい奥行きであれば、隣接する奥行きはＳ２及びＳ４となり、Ｓ２とＳ４の間が「コントラストが最も大きかった奥行きが中心になるような範囲」になる。ここで、コントラストが最も大きい奥行き（例えば、Ｓ３）とコントラストが最も大きい奥行きに隣接する奥行きの一方（例えば、Ｓ２）との間を第３範囲とする。次に、決定部８０３ａは、第３範囲においてＺ（Ｚは１以上の整数）個の奥行きを選択する。例えば、Ｚ個の奥行きは、合成情報テーブルに記憶されている、第３範囲内の奥行きの中から等間隔に選択されてもよい。その後、決定部８０３ａは、コントラストが最も大きい奥行き（例えば、Ｓ３）と、第３範囲の奥行きの中から選択されたＺ個の奥行きと、を含む新たな奥行き候補群を作成する。つまり、決定部８０３ａは、Ｚ＋１個の奥行きを含む新たな奥行き候補群を作成する。
【００５８】
（第３実施形態）
第１実施形態及び第２実施形態では、各時刻における各カメラ７０の各入力画像の最適奥行きを決定する構成について説明した。このように決定された最適奥行きに基づいて生成される合成画像（仮想全天球画像）を映像として再生した場合、各時刻における最適奥行きが異なるため違和感のある映像になってしまうおそれがある。そこで、第３実施形態では、画像処理装置は、各時刻における各カメラ７０の各入力画像の最適奥行きが時間方向に滑らかに変化するように平滑化（スムージング）処理を行う。また、第３実施形態では、画像処理システム１００に複数のカメラペアが存在する場合を例に説明する。
【００５９】
図８は、第３実施形態における画像処理装置８０ｂの機能構成を表す概略ブロック図である。画像処理装置８０ｂは、バスで接続されたＣＰＵやメモリや補助記憶装置などを備え、画像処理プログラムを実行する。画像処理プログラムの実行によって、画像処理装置８０ｂは、入力画像記憶部８０１、合成情報記憶部８０２、決定部８０３ｂ、最適奥行き記憶部８０４、背景画像記憶部８０５、画像合成部８０６を備える装置として機能する。なお、画像処理装置８０ｂの各機能の全て又は一部は、ＡＳＩＣやＰＬＤやＦＰＧＡ等のハードウェアを用いて実現されてもよい。また、画像処理プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、画像処理プログラムは、電気通信回線を介して送受信されてもよい。
【００６０】
画像処理装置８０ｂは、決定部８０３に代えて決定部８０３ｂを備える点で画像処理装置８０と構成が異なる。画像処理装置８０ｂは、他の構成については画像処理装置８０と同様である。そのため、画像処理装置８０ｂ全体の説明は省略し、決定部８０３ｂについて説明する。
【００６１】
決定部８０３ｂは、入力画像記憶部８０１に記憶されているカメラペアの入力画像と、合成情報記憶部８０２に記憶されている合成情報テーブルとを入力とする。決定部８０３ｂは、入力されたカメラペアの入力画像と合成情報テーブルとに基づいて第１実施形態における決定部８０３と同様の処理を行うことによって各カメラ７０の各入力画像の最適奥行きを決定する。決定部８０３ｂは、決定した最適奥行きを暫定最適奥行きとして最適奥行き記憶部８０４に記憶させる。決定部８０３ｂは、最適奥行き記憶部８０４に記憶されている暫定最適奥行きを入力とする。決定部８０３ｂは、入力された暫定最適奥行きに基づいて、各カメラ７０の暫定最適奥行きを時間方向にスムージングすることによって各時刻における各カメラ７０の各入力画像の最適奥行きを決定する。決定部８０３ｂの具体的な処理について図９を用いて説明する。
【００６２】
図９は、決定部８０３ｂの具体的な処理について説明するための図である。
図９において、縦軸は奥行きを表し、横軸は時刻を表す。図９に示す複数の円は各時刻における暫定最適奥行きを表す。なお、図９では、あるカメラ７０の各時刻における暫定最適奥行きの例を示している。各時刻において暫定最適奥行きが決定されるため、図９に示す円９２のように前後の暫定最適奥行きと大幅にずれている暫定最適奥行きが存在する場合がある。このような場合には、映像として再生すると違和感のある映像になってしまう可能性がある。そこで、決定部８０３ｂは、各時刻における暫定最適奥行きの値を時間軸上に並べてなめらかになるようにスムージングする。例えば、決定部８０３ｂは、多項式近似することによって各時刻における暫定最適奥行きから、映像として再生した場合に違和感が軽減されるような最適奥行きの推定値を求める。図９に示される線９３が多項式近似によって得られた各時刻における最適奥行きの推定値である。決定部８０３ｂは、この処理によって得られた各時刻における最適奥行きの推定値をあるカメラ７０の各時刻における最適奥行きとして決定する。そして、決定部８０３ｂは、決定した最適奥行きで、最適奥行き記憶部８０４に記憶されている暫定最適奥行きを上書きすることによって最適奥行きを更新する。
【００６３】
図１０は、画像処理装置８０ｂの処理の流れを示すフローチャートである。
決定部８０３ｂは、あるカメラペアのある時刻における入力画像を入力画像記憶部８０１から読み出す（ステップＳ３０１）。次に、決定部８０３ｂは、読み出した入力画像と、合成情報記憶部８０２に記憶されている合成情報テーブルとに基づいてカメラペア奥行き決定処理を行う（ステップＳ３０２）。決定部８０３ｂは、全てのカメラペアの各入力画像の最適奥行きを決定したか否か判定する（ステップＳ３０３）。全てのカメラペアの各入力画像の最適奥行きを決定していない場合（ステップＳ３０３−ＮＯ）、決定部８０３ｂは他のカメラペアを選択する（ステップＳ３０４）。ここで、選択される他のカメラペアは、カメラペア奥行き決定処理が行なわれていないカメラペアである。その後、決定部８０３ｂは、選択した他のカメラペアに対してステップＳ３０１からステップＳ３０２までの処理を実行する。
【００６４】
一方、全てのカメラペアの各入力画像の最適奥行きを決定した場合（ステップＳ３０３−ＹＥＳ）、決定部８０３ｂは決定したカメラペアの各入力画像の最適奥行きに基づいて各カメラ７０の各入力画像の最適奥行きを決定する（ステップＳ３０５）。その後、決定部８０３ｂは、ステップＳ３０５の処理で決定した各カメラ７０の各入力画像の最適奥行きを暫定最適奥行きとして最適奥行き記憶部８０４に記憶させる（ステップＳ３０６）。決定部８０３ｂは、ステップＳ３０１からステップＳ３０６までの処理を所定の時刻分行ったか否か判定する（ステップＳ３０７）。ステップＳ３０１からステップＳ３０６までの処理を所定の時刻分行っていない場合（ステップＳ３０７−ＮＯ）、決定部８０３ｂはステップＳ３０１以降の処理を繰り返し実行する。
【００６５】
一方、ステップＳ３０１からステップＳ３０６までの処理を所定の時刻分行った場合（ステップＳ３０７−ＹＥＳ）、決定部８０３ｂは最適奥行き記憶部８０４に記憶されているあるカメラ７０の所定の時刻分の暫定最適奥行きに関して時間方向にスムージングを行う（ステップＳ３０８）。例えば、決定部８０３ｂは、多項式近似することによって所定の時刻分の暫定最適奥行きから、あるカメラ７０の最適奥行きの推定値を求める。その後、決定部８０３ｂは、あるカメラ７０の最適奥行きの推定値をあるカメラ７０の各時刻における最適奥行きとして最適奥行き記憶部８０４に記憶させる（ステップＳ３０９）。決定部８０３ｂは、ステップＳ３０８及びステップＳ３０９の処理を全てのカメラ７０に対して行ったか否か判定する（ステップＳ３１０）。ステップＳ３０８及びステップＳ３０９の処理を全てのカメラ７０に対して行っていない場合（ステップＳ３１０−ＮＯ）、決定部８０３ｂはステップＳ３０８及びステップＳ３０９の処理を全てのカメラに対して行うまで処理を繰り返し実行する。
一方、ステップＳ３０８及びステップＳ３０９の処理を全てのカメラ７０に対して行った場合（ステップＳ３１０−ＹＥＳ）、画像合成部８０６は画像合成処理ステップを実行する（ステップＳ３１１）。
【００６６】
以上のように構成された画像処理装置８０ｂによれば、各時刻における入力画像を用いてそれぞれ生成された仮想全天球画像を映像で出力する場合に生じる可能性がある違和感を軽減することが可能になる。以下、この効果について詳細に説明する。
画像処理装置８０ｂは、各時刻における暫定最適奥行きの情報を用いて、各時刻における最適奥行きの値が滑らかになるようにスムージングを行う。これにより、画像処理装置８０ｂは、ある時刻における最適奥行きが他の最適奥行きと大幅にずれている場合であっても前後の時刻における最適奥行きから、大幅にずれている時刻における最適奥行きを補正することができる。そのため、各時刻における入力画像を用いてそれぞれ生成された仮想全天球画像を映像で出力する場合に生じる可能性がある違和感を軽減することが可能になる。
【００６７】
＜変形例＞
画像処理装置８０ｂにおける入力画像記憶部８０１、合成情報記憶部８０２、決定部８０３ｂ及び最適奥行き記憶部８０４は、最適奥行き決定装置として構成されてもよい。
本実施形態では、決定部８０３ｂが決定部８０３と同様の処理を行うことによって各カメラ７０の各入力画像の最適奥行きを決定する構成を示したが、決定部８０３ｂは決定部８０３ａと同様の処理を行うことによって各カメラ７０の各入力画像の最適奥行きを決定するように構成されてもよい。
【００６８】
（第４実施形態）
第４実施形態では、仮想全天球画像をリアルタイムに映像として出力する場合について説明する。具体的には、第４実施形態では、ある時刻ｔにおけるカメラ７０の入力画像の最適奥行きを直前の時刻（例えば、時刻ｔ−１、ｔ−２など）の最適奥行きに基づいて決定する。また、第４実施形態では、画像処理システム１００に複数のカメラペアが存在する場合を例に説明する。
【００６９】
図１１は、第４実施形態における画像処理装置８０ｃの機能構成を表す概略ブロック図である。画像処理装置８０ｃは、バスで接続されたＣＰＵやメモリや補助記憶装置などを備え、画像処理プログラムを実行する。画像処理プログラムの実行によって、画像処理装置８０ｃは、入力画像記憶部８０１、合成情報記憶部８０２、決定部８０３ｃ、最適奥行き記憶部８０４ｃ、背景画像記憶部８０５、画像合成部８０６を備える装置として機能する。なお、画像処理装置８０ｃの各機能の全て又は一部は、ＡＳＩＣやＰＬＤやＦＰＧＡ等のハードウェアを用いて実現されてもよい。また、画像処理プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、画像処理プログラムは、電気通信回線を介して送受信されてもよい。
【００７０】
画像処理装置８０ｃは、決定部８０３及び最適奥行き記憶部８０４に代えて決定部８０３ｃ及び最適奥行き記憶部８０４ｃを備える点で画像処理装置８０と構成が異なる。画像処理装置８０ｃは、他の構成については画像処理装置８０と同様である。そのため、画像処理装置８０ｃ全体の説明は省略し、決定部８０３ｃ及び最適奥行き記憶部８０４ｃについて説明する。
【００７１】
最適奥行き記憶部８０４ｃは、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。最適奥行き記憶部８０４ｃは、最適奥行き情報テーブルを記憶する。第１実施形態から第３実施形態における最適奥行き記憶部８０４が記憶する最適奥行き情報テーブルには各時刻における各カメラ７０の各入力画像の最適奥行き情報が登録されていた。それに対して、第４実施形態における最適奥行き記憶部８０４ｃが記憶する最適奥行き情報テーブルには、処理開始時には現時刻（例えば、リアルタイムに出力する仮想全天球画像を生成する時刻）ｔにおける各カメラ７０の各入力画像の最適奥行き情報は登録（記憶）されておらず、現時刻ｔよりも前の時刻（例えば、時刻ｔ−１、ｔ−２など）における各カメラ７０の各入力画像の最適奥行き情報が登録（記憶）されている。
【００７２】
決定部８０３ｃは、入力画像記憶部８０１に記憶されているカメラペアの入力画像と、合成情報記憶部８０２に記憶されている合成情報テーブルとを入力とする。決定部８０３ｂは、入力されたカメラペアの入力画像と合成情報テーブルとに基づいて第１実施形態における決定部８０３と同様の処理を行うことによって各カメラ７０の各入力画像の最適奥行きを決定する。また、決定部８０３ｃは、現時刻ｔより前の時刻（例えば、時刻ｔ−１、ｔ−２など）における最適奥行き情報に基づいて、現時刻ｔにおける最適奥行きを決定する。なお、第４実施形態では、現時刻ｔより前の時刻の最適奥行き情報に基づいて決定する方法として時系列フィルタの一つであるパーティクルフィルタによる実現方法を説明する。なお，以下の処理において作成するパーティクルの数はＰであるとする。
【００７３】
図１２は、画像処理装置８０ｃの処理の流れを示すフローチャートである。
決定部８０３ｃは、時刻ｔに撮影されたカメラペアの入力画像を入力画像記憶部８０１から読み出す（ステップＳ４０１）。なお、処理開始時には、時刻ｔは初期時刻である。初期時刻とは全ての時刻における最初の時刻を設定することが一般的であるが、今回導入しているような時系列フィルタリングの考え方は誤差が蓄積して望ましくない値に収束する場合がある（ドリフトと呼ばれている）。このような場合、適当な条件を満たした時、例えば時刻ｔで最大尤度が閾値以下になった時に時刻ｔ＋１を初期時刻としてもよい。
【００７４】
決定部８０３ｃは、読み出した入力画像に関して、全ての奥行き（例えば、奥行き１〜奥行きＮ）の中からＰ個の奥行き候補群を選択する（ステップＳ４０２）。初期時刻において全ての奥行きの中からＰ個の奥行きを選択する方法として、ランダムにＰ個選択する方法、又は、全ての奥行きをＰ等分してＰ個選択する方法がある。初期時刻以外では、基本的に前の時刻において選択した奥行き候補群を用いてもよい。決定部８０３ｃは、奥行き候補群のある奥行きについて予測モデルを用いて奥行きの予想値を算出する（ステップＳ４０３）。予測モデルには、等速直線運動や等加速度運動、あるいはランダムウォークなどがある（これは、一般的なパーティクルフィルタの「予測」にあたるステップである。）。
【００７５】
その後、決定部８０３ｃは、ステップＳ３０３の処理で算出した奥行きの予想値に対して尤度を算出する（ステップＳ４０４）。尤度を求める方法として、ある奥行きに対応する合成情報に基づいて生成された奥行き決定用合成画像の重複領域に対するコントラストなどがある。この場合、コントラストが大きいほど尤度が大きいとする（これは、一般的なパーティクルフィルタの「重み付け」にあたるステップである。）。決定部８０３ｃは、全ての奥行き候補群に対して尤度を算出したか否か判定する（ステップＳ４０５）。全ての奥行き候補群に対して尤度を算出していない場合（ステップＳ４０５−ＮＯ）、決定部８０３ｃは全ての奥行き候補群に対して尤度を算出するまでステップＳ４０２からステップＳ４０４までの処理を繰り返し実行する。
【００７６】
一方、全ての奥行き候補群に対して尤度を算出した場合（ステップＳ４０５−ＹＥＳ）、決定部８０３ｃはステップＳ４０４の処理で算出した尤度に基づいて時刻ｔにおけるカメラペアの各入力画像の最適奥行きを決定する（ステップＳ４０６）。最適奥行きを求める方法として、尤度の最も大きい奥行きを最適奥行きとして求める方法、尤度の重み付き平均値を最適奥行きとする方法などがある（これは、一般的なパーティクルフィルタの「状態推定」にあたるステップである。）。次に、決定部８０３ｃはステップＳ４０４の処理で算出した尤度に基づいて時刻ｔ＋１の奥行き候補群を選択する（ステップＳ４０７）。尤度に基づいて時刻ｔ＋１の奥行き候補群を選択する方法として、尤度の大きさを用いる方法がある。具体的には、各奥行きについて尤度の大きさに基づいてその奥行き付近で選択する候補の数を変動させる。例えば、尤度の小さい奥行きの近くでは候補をほとんど選択せず、尤度の大きい奥行きの近くでは多くの候補を選択する。この時、候補の合計がＰ個になるようにする（これは、一般的なパーティクルフィルタの「リサンプリング」にあたるステップである。）。
【００７７】
決定部８０３ｃは、ステップＳ４０１からステップ４０７までの処理を全てのカメラペアに対して行ったか否か判定する（ステップＳ４０８）。ステップＳ４０１からステップ４０７までの処理を全てのカメラペアに対して行っていない場合（ステップＳ３０８−ＮＯ）、決定部８０３ｃはステップ４０１以降の処理を全てのカメラペアに対して行う。
一方、ステップＳ４０１からステップ４０７までの処理を全てのカメラペアに対して行った場合（ステップＳ４０８−ＹＥＳ）、決定部８０３ｃは時刻ｔにおけるカメラペアの各入力画像の最適奥行きから各カメラ７０の各入力画像の最適奥行きを決定する（ステップＳ４０９）。その後、決定部８０３ｃは、時刻ｔにおける各カメラ７０の各入力画像の最適奥行きを最適奥行き記憶部８０４ｃに記憶させる。その後、画像合成部８０６は、画像合成処理ステップを実行する（ステップＳ３１１）。
【００７８】
以上のように構成された画像処理装置８０ｃによれば、リアルタイムに各カメラ７０の入力画像の最適奥行きを決定することが可能になる。以下、この効果について詳細に説明する。
画像処理装置８０ｃは、時刻ｔにおける各カメラ７０の入力画像の最適奥行きを過去の時刻（例えば、直前の時刻）の入力画像の最適奥行きから推定する。具体的には、まず画像処理装置８０ｃは、時刻ｔにおけるカメラペアの各入力画像の奥行きを決定するための奥行き候補群に含まれる奥行きについて予測モデルを用いて奥行きの予想値を算出する。次に、画像処理装置８０ｃは、算出した奥行きの予想値の尤度を算出する。そして、画像処理装置８０ｃは、算出した尤度に基づいて時刻ｔにおけるカメラペアの入力画像の最適奥行きを決定する。その後、画像処理装置８０ｃは、同様の処理を全てのカメラペアの入力画像に対して行う。そのため、リアルタイムに各カメラ７０の入力画像の最適奥行きを決定することが可能になる。
【００７９】
＜変形例＞
画像処理装置８０ｃにおける入力画像記憶部８０１、合成情報記憶部８０２、決定部８０３ｃ及び最適奥行き記憶部８０４ｃは、最適奥行き決定装置として構成されてもよい。
【００８０】
以下、各実施形態に共通する変形例について説明する。
本発明は、全天球画像の場合に限らず、複数のカメラ７０で撮影された画像を背景画像に重畳することによって合成画像を生成する場合に適用可能である。
本実施形態では、合成情報テーブルに登録されている幅の値が全てのカメラＩＤで同じであるが、幅の値はカメラＩＤ毎に異なっていてもよいし、一部のカメラＩＤで異なっていてもよい。
決定部８０３は、１つの入力画像の所定の領域毎にそれぞれ最適奥行きを決定してもよい。
【００８１】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００８２】
６０…全天球カメラ，７０（７０−１〜７０−Ｍ）…カメラ，  ４、８０、８０ａ、８０ｂ、８０ｃ…画像処理装置，  ８０１…入力画像記憶部，  ８０２…合成情報記憶部，  ８０３、８０３ａ、８０３ｂ、８０３ｃ…決定部，  ８０４、８０４ｃ…最適奥行き記憶部，  ８０５…背景画像記憶部，  ８０６…画像合成部
【図１】
0006392742.tif 000003
【図２】
0006392742.tif 000004
【図３】
0006392742.tif 000005
【図４】
0006392742.tif 000006
【図５】
0006392742.tif 000007
【図６】
0006392742.tif 000008
【図７】
0006392742.tif 000009
【図８】
0006392742.tif 000010
【図９】
0006392742.tif 000011
【図１０】
0006392742.tif 000012
【図１１】
0006392742.tif 000013
【図１２】
0006392742.tif 000014
【図１３】
0006392742.tif 000015
【図１４】
0006392742.tif 000016