(57)【要約】【課題】  同一被写体を含む複数の画像を接合してパノラマ画像を生成するために、各画像をより適切な位置合わせする。【解決手段】  互いに異なる方向を向き、かつ一部重複するように撮像して得られた少なくとも２つの画像を取得する画像取得手段と、前記取得手段が取得した各画像において、同一の被写体に対応する画像間の対応点を探索する探索手段と、前記対応点に基づいて、前記取得手段が取得した各画像の位置関係を決定する位置決定手段と、前記位置決定手段により決定された前記画像それぞれの位置関係に基づいて、前記少なくとも２つの画像を接合し、合成することで、パノラマ画像を生成する合成手段と、有し、前記位置決定手段は、前記２つの画像に撮像された被写体の見えの角度依存性に基づいて、前記探索手段が検出した対応点の信頼度を設定し、各対応点の信頼度を参照して前記画像それぞれの位置関係を決定することを特徴とする。【選択図】  図２
2017085297.tif 000002
【特許請求の範囲】
【請求項１】
互いに異なる方向を向き、かつ一部重複するように撮像して得られた少なくとも２つの画像を取得する画像取得手段と、
前記取得手段が取得した各画像において、同一の被写体に対応する画像間の対応点を探索する探索手段と、
前記対応点に基づいて、前記取得手段が取得した各画像の位置関係を決定する位置決定手段と、
前記位置決定手段により決定された前記画像それぞれの位置関係に基づいて、前記少なくとも２つの画像を接合することで、パノラマ画像を生成する合成手段と、有し、
前記位置決定手段は、前記２つの画像に撮像された被写体の見えの角度依存性に基づいて、前記探索手段が検出した対応点の信頼度を設定し、各対応点の信頼度を参照して前記画像それぞれの位置関係を決定することを特徴とする画像処理装置。
【請求項２】
前記位置決定手段は、見る方向によって特徴点の見え方が異なる被写体における対応点の信頼度を低く設定し、見る方向によって特徴点の見え方があまり変わらない被写体における対応点の信頼度を高く設定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
さらに、前記取得手段が取得した画像それぞれに対応する距離情報を取得する距離情報取得手段と、
前記距離情報を所定の領域ごとに距離情報の変化の勾配を解析する解析手段を有し、
前記位置決定手段は、前記解析手段による解析の結果に基づいて、前記所定の領域ごとに前記信頼度を設定することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記解析手段は、前記距離画像を前記所定の領域ごとの周波数解析を実行し、
前記位置決定手段は、前記解析手段から得られる周波数成分のパワースペクトルが、所定の閾値より大きい周波数成分を有する領域に対しては前記信頼度を低く設定し、前記所定の閾値より大きい周波数成分のない領域に対しては前記信頼度を高く設定することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
さらに、前記取得手段が取得した画像それぞれに対応する距離情報を取得できる距離情報取得手段を有し、
前記位置決定手段は、前記画像それぞれの位置と被写体との距離に基づいて、前記信頼度を設定することを特徴とする請求項１に記載の画像処理装置。
【請求項６】
さらに、前記画像における被写体を識別する識別手段を有し、
前記位置決定手段は、前記識別手段による識別結果を用いて、各被写体に対応する信頼度を設定することを特徴とする請求項１乃至５のいずれか一項に記載の画像処理装置。
【請求項７】
前記位置決定手段は、前記画像それぞれの位置関係を仮定し、仮定された位置関係と各対応点または距離情報との誤差の大きさに基づいて、前記信頼度を設定し、設定された信頼度に基づいて前記画像それぞれの位置関係を再計算することを特徴とする請求項１乃至６のいずれか一項に記載の画像処理装置。
【請求項８】
さらに、前記位置決定手段が設定した前記信頼度をディスプレイに表示する表示手段を有し、
前記表示手段は、前記ユーザの指示を受け付け、前記位置決定手段は、前記指示に基づいて前記信頼度を変更することを特徴とする請求項１乃至７のいずれか一項に記載の画像処理装置。
【請求項９】
コンピュータを、互いに異なる方向を向き、かつ一部重複するように撮像して得られた少なくとも２つの画像を取得する画像取得手段と、
前記取得手段が取得した各画像において、同一の被写体に対応する画像間の対応点を探索する探索手段と、
前記２つの画像に撮像された被写体の見えの角度依存性に基づいて、前記探索手段が検出した対応点の信頼度を設定し、各対応点の信頼度を参照して前記画像それぞれの位置関係を決定する前記取得手段が取得した各画像の位置関係を決定する位置決定手段と、
前記位置決定手段により決定された前記画像それぞれの位置関係に基づいて、前記少なくとも２つの画像を接合することで、パノラマ画像を生成する合成手段として機能させるためのプログラム。
【請求項１０】
互いに異なる方向を向き、かつ一部重複するように撮像して得られた少なくとも２つの画像を取得しと、
前記取得した各画像において、同一の被写体に対応する画像間の対応点を探索し、
前記２つの画像に撮像された被写体の見えの角度依存性に基づいて、前記探索手段が検出した対応点の信頼度を設定し、前記対応点と各対応点の信頼度とに基づいて、前記取得した各画像の位置関係を決定し、
前記決定された前記画像それぞれの位置関係に基づいて、前記少なくとも２つの画像を接合することで、パノラマ画像を生成することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数の画像を合成して広視野角（パノラマ）画像を生成する処理に関する。
【背景技術】
【０００２】
複数の画像をつなげるように合成することにより得られる、広視野角を収めたパノラマ画像が知られている。特許文献１には、撮影位置が異なる同一被写体を写した複数の画像を合成するために、位置合わせをする方法が記載されている。位置合わせを行う際、各画像の撮影起点の近隣に位置するランドマークを特定し、ランドマークを基準にして位置合わせを行っている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−０８６９４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一般に、複数の画像間において、同一被写体の対応点を探索する。しかしながら各撮影装置が撮影する方向が大きく異なっている場合や、被写体が複雑な形状である場合には、適切に対応点を検出できないことがある。誤った対応点に基づいて画像の位置関係を取得すると、パノラマ画像において画像の繋ぎ目が目立ってしまう。
【０００５】
そこで本発明は、同一被写体を含む複数の画像を接合してパノラマ画像を生成するために、各画像をより適切な位置合わせすることを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明は、互いに異なる方向を向き、かつ一部重複するように撮像して得られた少なくとも２つの画像を取得する画像取得手段と、前記取得手段が取得した各画像において、同一の被写体に対応する画像間の対応点を探索する探索手段と、前記対応点に基づいて、前記取得手段が取得した各画像の位置関係を決定する位置決定手段と、前記位置決定手段により決定された前記画像それぞれの位置関係に基づいて、前記少なくとも２つの画像を接合することで、パノラマ画像を生成する合成手段と、有し、前記位置決定手段は、前記２つの画像に撮像された被写体の見えの角度依存性に基づいて、前記探索手段が検出した対応点の信頼度を設定し、各対応点の信頼度を参照して前記画像それぞれの位置関係を決定することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、同一被写体を含む複数の画像を接合してパノラマ画像を生成するために、各画像をより適切な位置合わせすることができる。
【図面の簡単な説明】
【０００８】
【図１】画像処理システムを示す模式図
【図２】画像処理装置の機能構成を示すブロック図
【図３】画像処理装置が行う処理の流れを示すフローチャート
【図４】画像処理装置によるパノラマ画像合成の例
【図５】位置決定部２０５が行う処理の流れを示すフローチャート
【図６】カメラと被写体の関係を示す模式図
【図７】取得した画像の一例を示す模式図
【図８】パワースペクトルを判定する閾値の例を表す図
【図９】カメラと被写体の関係を示す模式図
【図１０】取得した画像の一例を示す模式図
【図１１】位置決定部２０５が行う処理のフローチャート
【図１２】カメラ９０１とＡ面法線との関係を示す図
【図１３】位置決定部２０５が行う処理のフローチャート
【図１４】位置決定部２０５が行う処理のフローチャート
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。なお、以下の実施形態において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
【００１０】
＜第１実施形態＞
第１実施形態では、２つの撮像装置（カメラ）により撮像して得られる画像を繋ぐ合成により、パノラマ画像を生成する。図１は、第１実施形態に適用可能なパノラマ画像を生成する画像処理システムを示す。画像処理装置１００については、ハードウェア構成を示している。画像処理装置１００は、例えばパーソナルコンピュータ（ＰＣ）や、タブレット端末などにより実現される。なお本実施形態における画像処理装置１００は、撮像装置１１０とＩ／Ｆを介して接続された装置を例に説明するが、撮像装置（カメラ）に内蔵された、画像処理チップとして実現することもできる。
【００１１】
ＣＰＵ１０１は、画像処理装置１００内の各部を統括的に制御するプロセッサである。ＲＡＭ１０２は、ＣＰＵ１０１の主メモリ、ワークエリア等として機能する。ＲＯＭ１０３は、ＣＰＵ１０１によって実行されるプログラム群を格納している。ＨＤＤ１０４は、ＣＰＵ１０１によって実行されるアプリケーションや、画像処理に用いられるデータ等を記憶する。出力Ｉ／Ｆ１０５は、例えばＤＶＩやＨＤＭＩ（登録商標）等の画像出力インタフェースであり、液晶ディスプレイなどの出力装置１０６を接続する。入力Ｉ／Ｆ１０７は、例えばＵＳＢやＩＥＥＥ１３９４等のシリアルバスインタフェースであり、ユーザが各種の指示操作を行うためのキーボードやマウスなどの入力装置１０８を接続する。撮像Ｉ／Ｆ１０９は、例えば、３Ｇ／ＨＤ−ＳＤＩやＨＤＭＩ（登録商標）等の画像入力インタフェースであり、撮像装置（カメラ）１１０を接続する。汎用Ｉ／Ｆ１１１も入力Ｉ／Ｆ同様ＵＳＢやＩＥＥＥ１３９４等のシリアルバスインタフェースであり、撮像装置と同じシーンに対して撮影位置からの距離を測定することのできる距離計測装置１１２を接続する。距離計測装置１１２は公知なものを任意に用いることができる。例えば赤外線パターンのパルスを投光し、物体に投影されたパターンを認識して距離を推定する装置などが知られている。ただし距離計測装置１１２は撮像装置１１０と一体であってもよい。また必要に応じて汎用Ｉ／Ｆ１１１を介し、外部記憶１１３を接続する。
【００１２】
図２は、第１実施形態における画像処理装置１００の機能構成を示すブロック図である。ＣＰＵ１０１は、ＲＯＭ１０３又はＨＤＤ１０４に格納されたプログラムを読み出してＲＡＭ１０２をワークエリアとして実行することで、図２に示す各機能ブロックとしての役割を果たす。なお、全ての機能ブロックの役割をＣＰＵ１０１が果たす必要はなく、各機能ブロックに対応する専用の処理回路を設けるようにしてもよい。画像処理装置１００は、画像入力部２０２、距離情報取得部２０３、画像補正部２０４、位置決定部２０５、繋ぎ目決定部２０６、画像合成部２０７、画像出力部２０８と、入力端子２０１、出力端子２０９を有する。
【００１３】
画像取得部２０２は、パノラマ画像を生成するための複数の画像を取得する。ここで取得する複数の画像は、少なくとも２つの画像において一部重複した撮影領域を有するように撮影して得られた画像である。距離情報取得部２０３は、画像入力部２０２が取得した複数の画像に対応する距離情報（デプスマップ）を取得する。距離情報とは、各画素に撮影位置からの距離を示す情報が格納されたデータである。画像を構成する各画素と、同じ位置にある距離情報における各画素は対応している。従って、画像に撮像された各被写体について、視点（撮像装置の位置）からの距離がわかる。
【００１４】
画像補正部２０４は、各画像データに対して各種の画像処理を施す。ここでは、レンズによる光学歪みを補正する補正処理をする。画像補正部２０４は、撮像時に使用されたレンズの特性に基づいて画素を再配置する。
【００１５】
位置決定部２０５は、パノラマ合成に用いる各画像の位置関係を決定する。本実施形態ではまず、２つの画像の互いに重複する領域における対応点を探索する。探索の結果検出された対応点を用いて、各カメラの位置姿勢を決定した後、さらに各画像の位置関係を決定する。繋ぎ目決定部２０６は、位置決定部２０５によって決定された各画像の位置関係を参照し、２つの画像を接合するための繋ぎ目の位置を決定する。
【００１６】
画像合成部２０７は、繋ぎ目決定部２０６が決定した繋ぎ目を参照して、２つの画像を接合し、接合した境界が自然になるよう境界付近に境界処理を施し、パノラマ画像を合成する。パノラマ画像は、各画像よりも大きく、より広い視野を撮像して得られたかのような画像である。なお、パノラマ画像を生成するための画像をつなぐ合成処理は、スティッチ処理とも言う。画像出力部２０８は、画像合成部２０７から得られるパノラマ画像を出力する。
【００１７】
図３は、第１実施形態における画像処理装置１００が実行する処理の流れを示すフローチャートである。ＣＰＵ１０１は、以下のフローチャートに沿ったプログラムを読み込み、実行させる。ここでは図４に示す画像データ４０１および４０２から、パノラマ画像４０３を生成する場合を例に説明する。
【００１８】
ステップＳ３０１において、画像入力部２０２は入力端子２０１から入力された複数の入力画像を取得する。ここでは画像４０１および４０２を取得する。ステップＳ３０２において距離情報取得部２０３は、各入力画像それぞれに対応する距離情報を取得する。距離情報取得部２０３は、入力画像における各画素と、対応する距離情報における各画素を結びつけて、入力画像における各画素の距離を参照できるようにする。具体的には、入力画像における各画素の画素位置を示す位置情報を、距離情報における各画素に対応づけておく。
【００１９】
ステップＳ３０３において画像補正部２０４は、各入力画像に対してレンズによる光学歪みの影響を補正するための補正処理を実行する。撮像装置１１０から取得した撮像時に使用されたレンズの特性に応じて、各画素を再配置する。再配置をしない画素については、位置情報を変更しない。再配置をする画素については、位置情報を更新する。このとき、ステップＳ３０２において距離情報取得部２０３により各画素の位置情報と対応付けられた距離情報も、同時に再配置されることになり、対応関係は失われない。
【００２０】
ステップＳ３０４において位置決定部２０５は、各画像の位置関係を決定し、位置合わせをする。パノラマ画像において隣接して接合される少なくとも２つの画像の一部は、同じシーンを重複して撮影した重複領域がある。図７は、２つの画像の重複領域を示す図である。画像４０１における領域７０３と、画像４０２における領域７０４は、同じシーンをそれぞれが撮像した領域である。ここで各画像の重複領域において、同じ被写体の同じ位置を表している画素を探索して対応づけることにより、位置合わせをする。ステップＳ３０４における処理の詳細は、後に詳述する。
【００２１】
ステップＳ３０５において繋ぎ目決定部２０６は、パノラマ画像における各画像の繋ぎ目の位置を決定する。ここで繋ぎ目とは、複数の画像データがして撮影した領域について、いずれの画像を用いるかを定める境界である。本実施形態において繋ぎ目決定部２０６は、画素値の差分をエネルギーコストとしたグラフカットの手法を用いて繋ぎ目位置を決定する。この手法では、画素をノード、隣接画素間をエッジと考え、画素値に応じて各エッジに定められるエネルギーコストに対する最小カットを繋ぎ目として採用する。隣接する画素ｖ，ｕ間のエッジに対するエネルギーコストＥ（ｖ，ｕ）は式（１）（２）のように定める。
【００２２】
【数１】
2017085297.tif 000003
【００２３】
【数２】
2017085297.tif 000004
ここでＩ＿１（ｖ）は重複画像１の画素ｖにおける画素値（Ｒ，Ｇ，Ｂ）を表し、ｎｏｒｍ２Ｌ（ｘ）はベクトルｘに対する２−ノルム（ユークリッドノルム）を表す。また、ｇｒａｄ（ｖ，ｕ）は画素ｖ，ｕ間の画素値の勾配を表す。より具体的には、Ｓｏｂｅｌ＿１＿ｕ−ｖ（）は重複画像１に対するｕ−ｖ方向へのＳｏｂｅｌフィルタ処理を表す。式式（１）は、重複画像それぞれにおいてｕ−ｖ方向の１次のＳｏｂｅｌフィルタを施した後の、画素ｖまたはｕにおける画素値のＬ２ノルムの和を表す。全体としてＥ（ｖ，ｕ）は、各重複画像で画素値が近い値であれば小さく、隣接画素で画素値が近い値であれば大きくなる性質を持つエネルギーコストになる。このようなエネルギーコストのエッジの最小カットを求める。結果、重複画像においてずれが小さい部分、画像のエッジ部分が選ばれやすくなるように繋ぎ目が求められる。
【００２４】
ステップＳ３０６において画像合成部２０７は、ステップＳ３０５において決定された繋ぎ目の位置に基づいて複数の画像を合成し、１枚のパノラマ画像を作成する。まず画像合成部２０７は、パノラマ画像における繋ぎ目の位置を参照して、パノラマ画像における各画素の画素値として、各画像における画素の画素値を取得する。つまりパノラマ画像における各画素の画素値は、入力された複数の画像うち、いずれかの画像を構成する画素の画素値である。さらに、パノラマ画像において繋ぎ目が知覚されるのを抑制するために、境界付近の領域に対して境界処理を行う。境界処理の具体的な方法としては、繋ぎ目近傍でオーバーラップした画像同士を混合するアルファ・ブレンディングなどが挙げられる。ステップＳ３０７において画像出力部２０８は、ステップＳ３０６において得られたパノラマ画像を、ＨＤＤ１０４や出力装置１０６、外部記憶１１３などに出力する。以上により、パノラマ画像の合成処理は完了する。
【００２５】
次に、位置決定部２０５が実行するステップＳ３０４における処理の詳細について説明する。本実施形態における位置決定部２０５は、パノラマ画像を生成するための複数の画像における領域毎に、対応点を探索するに適切な領域であるか否かを判定する。図６は、図４に示す画像４０１および４０２を撮影したときのカメラの配置及びシーンの状況を示している。２台のカメラ６０１、６０２によって、それぞれが看板６０３と樹木６０４を含むシーンを撮像している。カメラ６０１により画像４０１が、カメラ６０２により画像６０２が取得される。いずれの画像にも、看板６０３と樹木６０４が存在している。位置決定部２０５は、画像４０１における重複領域７０３の特徴点と画像４０２における重複領域７０４の特徴点から、対応点を探索する。
【００２６】
被写体を見る方向（角度）が変わると、看板６０３も樹木６０４も見え方は変わる。ただし、見る方向に応じた見え方の変化は、看板６０３と樹木６０４とでは異なる。看板６０３については、見る方向が変わった場合においても、看板６０３に描かれた模様などの特徴点の見えは大きく変化しない。従って、画像４０１における看板６０３の特徴点と、画像４０２における看板６０３の特徴点とは、対応づけやすい。他方、樹木６０４は、見る方向が異なる画像４０１と画像４０２とでは、枝葉の重なり方や光の差し方が大きく変わって見える。このように見る方向によって大きく見え方が変化する被写体では、見る方向によって見え方が大きく変化しない被写体に比べ、対応点を誤検出しやすくなると考えられる。なぜならば、見る方向によって大きく見えが変化する被写体では、実空間上の一点が、見る方向の異なる２枚の画像においては、必ずしも同じようには見えていないためである。特に、図６に示すように各カメラの見る方向（撮影方向）が大きく異なる場合、見る方向によって特徴点の見え方が異なる被写体に基づいて対応点を検出すると、誤検出しやすい。例えば図６に示すように、２つのカメラ光軸の成す角θが３０度〜１５０度などの場合、特に対応点を見つけにくい。これらのことから、見る方向によって大きく見えが変化する被写体上の対応点よりも、そうでない被写体上での対応点の方が、信頼度が高いと言える。
【００２７】
そこで位置決定部２０５は、各画像における領域毎に、検出した対応点の信頼度を設定する。信頼度は、領域ごとに被写体が、見る方向によって見え方が大きく変化するか否かに応じて設定され、各領域に対応点がある場合、その対応点の信頼度を示すものである。位置決定部２０６は、距離情報に基づいて、被写体が見る方向によって見えが大きく変化する変化するか否かを判断する。見る方向によって見えが大きく変化する被写体とは、距離情報の変化が激しく、複雑に入り組んだ被写体であると考える。樹木６０４はこの例である。一方、見る方向が変わっても見えが大きく変化しない被写体とは、距離情報に大きな変化がなく、比較的なだらかに値が変化する。つまり、平面状であり、カメラに対して奥行き方向に距離が変化するが、その変化の勾配は一定となる被写体である。看板６０３はこの例である。このような被写体は見る角度が変わっても見えが大きく変化しないと考えられる。
【００２８】
本実施形態において位置決定部２０５は、対応点を用いてカメラの位置姿勢を決定し、各カメラに対応する画像の位置関係を決定する。信頼度が大きい領域における対応点の情報を、そうでない対応点よりも重点的あるいは優先的に参照して、カメラの位置姿勢を決定する。
【００２９】
図５は、ステップＳ３０４における処理の詳細なフローチャートである。ステップＳ５０１において位置決定部２０５は、画像補正部２０４により補正された画像データそれぞれについて、特徴点を抽出する。この特徴点抽出はＳＵＲＦ（Ｓｐｅｅｄ−Ｕｐｐｅｄ  Ｒｏｂｕｓｔ  Ｆｅａｔｕｒｅ）やＯｒｂ（Ｏｒｉｅｎｔｅｄ−ＢＲＩＥＦ）等の公知の技術を用いることができる。ここでは、画像４０１における特徴点と画像４０２における特徴点を複数抽出できたものとする。
【００３０】
ステップＳ５０２において位置決定部２０５は、各画像における特徴点それぞれについて、複数の画像間で対応付けられる特徴点を探索する。対応づけられた特徴点は、対応点として検出される。このような対応点探索は、複数の画像データのいて同一被写体の同一点が写っていないかを調べることに相当する。ステップＳ５０３において位置決定部２０５は、各画像および距離情報を所定の領域ごとに分割する。ここでは、画像を３２画素×３２画素の領域に分割する。ただしここで分割する領域は、３２画素×３２画素に限らない。解像度や画角、画像処理装置の処理能力に応じて設定すればよい。さらに位置決定部２０５は、距離情報における領域ごとに、周波数解析（フーリエ変換）を行う。フーリエ変換して得られた係数のパワーを求めることで、領域内の２次元周波数のパワースペクトルＰ（ｆｘ、ｆｙ）を算出する。
【００３１】
次にステップＳ５０４〜Ｓ５１０のループ１に入る。各領域において、ステップＳ５０３における周波数解析の結果に基づいて、画像の各領域に対して信頼度を設定する。距離情報が高周波成分を持つ領域には、対応点を誤検出しやすい領域とみなし、低い信頼度を与える。距離情報が低周波成分のみから成る領域は、適切に対応点を検出できる領域とみなし、高い信頼度を与える。これにより所定の領域ごとに信頼度を設定した信頼度マップを作成する。本実施形態ではまず、パワースペクトルＰ（ｆｘ、ｆｙ）と所定の閾値を比較することにより、距離情報が低周波成分のみから成る領域、強い高周波成分を含む領域、その他の領域に区分する。まずステップＳ５０５において、ｆｘ≧２、ｆｙ≧２の範囲においてパワーＰ（ｆｘ、ｆｙ）と閾値Ｔｈ１とを比較する。ここでは、高周波成分がほぼないことを判定するために閾値Ｔｈ１を用いるため、０に近い値にする。ただし閾値Ｔｈ１は、距離情報のノイズよりは大きい値を設定する。ここでは周波数成分ｆが０の時のパワースペクトルを１としてＴｈ１＝０．０３とする。
【００３２】
ｆｘ≧２、ｆｙ≧２の範囲において常に周波数成分のパワースペクトルＰ（ｆｘ、ｆｙ）が閾値Ｔｈ１以下であれば、この領域は十分に低周波成分のみから成るとみなす。この場合、処理対象の領域にうつる被写体においては距離の変化がなだらかであり、見る角度によって見え方が変化しにくいと考えられる。そこでステップＳ５０６に進み、この領域には信頼度のフラグ「高」を設定する。一方、ステップＳ５０５でパワースペクトルＰ（ｆｘ、ｆｙ）が閾値Ｔｈ１より大きい周波数成分が存在した場合、ステップＳ５０７に進む。ステップＳ５０７においては更に高周波成分であるｆｘ≧４、ｆｙ≧４の範囲において、パワースペクトルＰ（ｆｘ、ｆｙ）と閾値Ｔｈ２とを比較する。閾値Ｔｈ２は、処理対象の領域の距離情報が高周波成分を含むか否かを判定するために用いるため、大きすぎる値を設定すると、見る方向によって見え方が変わる被写体を判定できなくなる。例えば閾値Ｔｈ２は、閾値Ｔｈ１よりも大きく、周波数成分ｆが０の時のパワースペクトルを１としてＴｈ２＝０．１５とする。
【００３３】
処理対象の領域において、パワースペクトルＰ（ｆｘ、ｆｙ）が閾値Ｔｈ２以上をみたす周波数成分があれば、領域には十分に高周波成分が存在するとみなす。処理対象の領域において距離情報が高周波成分を含む場合、その領域に撮像されている被写体は、複雑な構造であり、見る角度によって見え方が変化しやすいと考えられる。そこでステップＳ５０８に進み、この領域には信頼度のフラグ「低」を設定する。上記の条件のいずれも該当しなかった場合は、その他の場合としてステップＳ５０９に進み、処理対象の領域に対して信頼度のフラグ「中」を設定する。
【００３４】
図８に、ある領域における１次元方向の距離情報とパワースペクトルＰ（ｆ）の例を示す。図８（ａ）は、距離情報の値の変化がなだらかな場合を示す。図８（ｂ）は、距離情報の値の変化が激しい場合を示している。また、それぞれ周波数解析した結果を示す。ただしパワースペクトルは、周波数成分ｆ＝０でＰ（０）＝１になるように正規化して表示している。図８（ａ）に示す場合、閾値Ｔｈ１との比較により、処理対象の領域には信頼度「高」が与えられる。図８（ｂ）に示す場合、閾値Ｔｈ１および閾値Ｔｈ２を用いた比較の結果、信頼度「低」を設定する。ステップＳ５１０においてループ１を繰り返し、全ての領域に信頼度を示すフラグを決定し、領域ごとの信頼度を示す信頼度マップを作成する。本実施形態では、３段階の信頼度を２ビットで表し、画像と同じ解像度の信頼度マップを作成するとする。つまり領域に含まれるすべての画素について、設定した信頼度を示す情報を設定する。
【００３５】
ステップＳ５１１において位置決定部２０５は、対応点に基づいてカメラの位置姿勢を決定する。補正された画像における対応点ｉの座標をｘｉ、パノラマ画像における対応点ｉの座標位置をｐｉ、両者の関係付けるホモグラフィ行列をＨとおくと、これらの関係は式（３）のようになる。
【００３６】
ｐｉ＝Ｈｘｉ・・・（３）
ただし座標は同次座標系で表し、ｘｉ＝（ｘｉ，ｙｉ，ｗｉ）Ｔ、ｐｉ＝（Ｘｉ，Ｙｉ，Ｗｉ）Ｔ、Ｈの第ｋ行ｌ列の要素をｈｋｌ（ただし１≦ｋ，ｌ≦３）とする。このとき行列Ｈにカメラ位置姿勢の情報が含まれる。今、ｐｉ、ｘｉは既知であり、Ｈが求める未知数である。ここでｐｉ×Ｈｘｉ＝０  （×はベクトル外積）の式と、同次座標系のスケールを１と置くことによって、（３）式は行列Ｈに関して式（４）の通りに書き変えることができる。
【００３７】
【数３】
2017085297.tif 000005
これを新たにｙｉ  ＝  Ａｉｈとおく。以上はある着目対応点ｉについての式であるが、実際には対応点は複数検出される。この場合、画像が同じであればカメラ位置姿勢を表すｈは共通であるので、式（５）に示すように対応点の分だけ式（４）と同じ形式でｙとＡの行が追加される形でまとめられる。この式（５）をｙ＝  Ａｈとおく。
【００３８】
【数４】
2017085297.tif 000006
対応点ｉについてのパノラマ画像上の座標の２乗誤差ｅｉは式（６）の通りに表すことができる。
【００３９】
【数５】
2017085297.tif 000007
もし対応点座標とカメラ位置姿勢が厳密に求められるとすれば誤差ｅｉ＝０となるはずである。しかし実際には対応点座標を厳密に求めるのは困難であり、得られるＡｉやｙｉには誤差を含む。また対応点は複数見つかることがほとんどであり式（５）においてｈの未知数を求めるのに必要な数よりも多くの方程式が得られる。よって各対応点が発生する誤差ｅｉができるだけ小さくなるようなｈを求めることでカメラの位置姿勢を決定する。ただし、上述の対応点が存在する領域（または画素）の信頼度に応じて、信頼度の大きな対応点からの誤差ｅｉが小さくなることを重視する。すなわち対応点ｉに対する重み係数をｗｉとして
【００４０】
【数６】
2017085297.tif 000008
を満たすｈを求める。本実施形態ではｗｉの値を、信頼度「高」は重み係数１．３、信頼度「中」は１．０、信頼度「低」は０．５に変換して適用する。
（７）式は、重み付き疑似逆行列の考え方を用いて、
【００４１】
【数７】
2017085297.tif 000009
と求められる。ここでＷは重みを表す行列であり、２×２の対角行列Ｅ２に重み係数ｗｉを乗じたｗｉＥ２を順に並べたブロック対角行列である（Ｗ＝ｄｉａｇ［ｗ１Ｅ２，  ｗ２Ｅ２，  ｗ３Ｅ２，  …］）。またＴは転置を表す。このようにして、カメラ位置姿勢ｈを決定することが可能である。各対応点の信頼度に応じた重み係数ｗｉを用いることで、被写体に応じた各対応点の寄与を反映させつつカメラの位置姿勢を求めることができる。
【００４２】
図７の例では、看板６０３を含む領域の対応点に大きな重み係数、樹木６０４を含む領域の対応点に小さな重み係数が与えられ、樹木よりも看板を重視して各画像の位置関係を決定することに相当する。
【００４３】
以上のように対応点の信頼度に応じた対応点を用いてカメラの位置を決定することで、誤検出した対応点を用いるため各画像の位置合わせの精度が低下するのを抑制することができる。被写体の見る方向が変わったときの見え方の変化を考慮し、検出された対応点の信頼度を判定し、信頼できる対応点を優先したカメラの位置姿勢決定が実現できる。これによって、パノラマ画像を合成する際、画像データの位置合わせを精度よく行うことができる。
【００４４】
なお第１実施形態において、見る方向によって見えが大きく変化する被写体とは、距離の値の変化が激しく複雑に入り組んだ被写体であると考え、距離画像の周波数解析を行ってパワースペクトルを求めた。しかし距離画像における値の変化を調べる方法はこれに限らない。例えば距離情報を、平滑化した後に、２次以上の微分を求めることで距離画像における値の変化の激しさを調べることができる。
【００４５】
また第１実施形態ではフーリエ変換を行うため、信頼度のフラグを与える単位領域をＮ×Ｎ画素単位のブロック状としていた。しかし、フーリエ変換を用いない場合、信頼度フラグを設定する領域の分割方法はより柔軟に設定できる。例えば、画像の色の変化やエッジを検出し、色の変化やエッジに沿って、オブジェクトごとに動的に領域を決定してもよい。これにより、単純に分割した領域ごとではなく、画像中の被写体ごとに信頼度フラグを与えることが可能となる。なお、このとき領域決定のために計算が必要にはなるが、後にＳ３０５において画像の繋ぎ目を決定する際には画素の表す色情報やその勾配に応じて繋ぎ目を決定するので、その際にこのときの計算結果を利用することができる。
【００４６】
＜第２実施形態＞
第１実施形態では、領域に対応する距離情報の周波数解析の結果に基づいて、検出した対応点の信頼度を設定する方法について説明した。第２実施形態では、対応点を検出した後、検出された対応点が各カメラから見えるか否かを判定した結果に基づいて信頼度を設定する方法について説明する。前述の実施形態と同様の構成については、同一の符号を付し、その説明を省略する。
【００４７】
図９は、異なる２つの光軸を有するカメラの配置及びシーンの状況を示す。２台のカメラ９０１、９０２それぞれの画角の重複領域には、三角柱状のオブジェクト９０３が存在している。図９に示す十強において各カメラ９０１、９０２によって撮像された画像を、図１０に示す。画像１００１は、カメラ９０１によって撮像された結果得られた画像であり、画像１００２は、カメラ９０２によって撮像された結果得られた画像である。画像１００１における領域１００３と画像１００２における領域１００４は、空間上重複している領域である。
【００４８】
図１０に示すように、重複している領域１００３と領域１００４には、同じオブジェクト９０３が写っている。しかしそれぞれのカメラから見えているオブジェクト９０３の側面は異なる。同じオブジェクト９０３のＡ面、Ｂ面が似たテクスチャを持っている場合、領域１００３におけるＡ面上の点と領域１００４におけるＢ面上の点が対応点として検出される可能性がある。しかしながら、その対応点は実空間上で同一の点ではない。以上のことから、このオブジェクト９０３上の対応点を手掛かりにカメラの位置姿勢を決定すると、正しい推定ができない。そこで第２実施形態では、このようなオブジェクトの見えの角度依存性に着目する。
【００４９】
図１２は、第２実施形態に適用可能な、位置決定部２０５が実行する位置決定処理のフローチャートである。図１１におけるステップＳ５０１〜Ｓ５０２は第１実施形態と同様のステップである。ステップＳ１１０１において位置決定部２０５は、各画像の距離情報を参照し、撮影対象とするシーン全体の距離情報と各カメラの位置姿勢を、仮定的に決定する。これには公知の手法を用いることができる。
【００５０】
ステップＳ１１０２において位置決定部２０５は、各カメラから取得できる距離情報を用いて、画像中の平面部の法線を計算する。ここで平面部とは、オブジェクト自体が平面的である領域であり、画像上で距離変化がないことを条件とするものではない。平面部は、例えば第１実施形態の信頼度が「高」とされた領域を特定することで探索することができる。ただしＮの値は必ずしも同一である必要はなく、例えばさらに大きな面積を持つことを条件にしてもよい。距離情報が取得されているので、平面部の法線方向を計算することができる。
【００５１】
次にステップＳ１１０３において位置決定部２０５は、各平面部上に対応点が存在する場合、その平面部の法線とカメラの仮定の位置姿勢との関係を調べる。図１２は、平面部の法線とカメラの位置姿勢との関係を説明する図である。カメラ９０１が撮像した画像１００１において、オブジェクト９０３のＡ面の法線は、カメラ９０１側から見て左方向へ向かう位置関係にある。このような場合、オブジェクト９０３のＡ面は、カメラ９０１から見て右側に配置されたカメラからは見えにくいことになる。したがって、カメラ９０１より右に配置されたカメラに対して、オブジェクト９０３のＡ面上にある対応点の信頼度は低いとみなすことができる。逆に、もし画像１００１中に撮像された平面部の法線が、カメラ９０１側から見て右へ向かっている場合には、その平面部はカメラ９０１より左に配置されたカメラから見えにくいということになる。このときはカメラ９０１より左に配置されたカメラに対して、平面部上の対応点の信頼度は低いとみなす。以上のように、単にオブジェクト９０３のＡ面上にあるために信頼度が低いと設定するのではなく、カメラ９０１より右側に存在するカメラ画像との対応点に対して、オブジェクト９０３のＡ面上にある対応点の信頼度を低く設定する。上記のようにステップＳ１１０３で信頼度を設定しきたら、ステップＳ５１１に移って信頼度に基づき重み係数を決定し、カメラの位置姿勢を決定する。
【００５２】
このようにして、対応点を有する被写体が各カメラに対してどの方向を向いているかに基づいて信頼度を設定し、重み係数に反映させることで、対応点の精度を向上することができる。
【００５３】
なお第２実施形態では、距離情報からカメラの位置姿勢を仮定的に求めた上で、距離情報を参照して被写体が各カメラから見えるか否かを判定し信頼度を設定する方法を述べた。メラの仮定的な位置関係を求める方法としては、画像撮影時にＧＰＳなどによって取得された情報を活用し、各カメラの位置を求めて仮定値としてもよい。また、ユーザが各カメラの大雑把な位置を入力することによって、仮定的なカメラ位置を得ることとしてもよい。例えば、図９において「カメラ９０２はカメラ９０１の右側にある」ことや、「カメラ９０１とカメラ９０２は互いに外向きに配置されている」程度のことを、ユーザがマウス等で指示し、それを仮定的な位置関係の参考として活用することができる。
【００５４】
＜第３実施形態＞
第３実施形態は、距離情報が取得できない場合に、取得した画像のみから被写体の見えが方向によって大きく変わるか否かを推定し、信頼度のフラグを設定する方法について説明する。被写体を見る方向によって被写体の見え方が大きく変化するか否かは、被写体の特性から推定できる。例えば、文字が書かれている被写体は、看板のように平面構造を持っていることが多い。そこで文字が書かれている被写体は、見る方向が変わっても見えは大きく変化しにくいとみなすことができる。あるいは、ビルのような建物も平面的な構造であり、見る方向が変わっても見え方は大きく変化しにくいとみなすことができる。さらに、空や雲などは通常、カメラからの距離が十分に大きい（無限遠である）ために、カメラの撮影する方向が変化しても、見え方は変わりにくいと考えられる。一方、樹木の枝葉や花のようなものは複雑な構造を持っており、見る方向によって大きく見え方が変わる可能性が高いと考えられる。
【００５５】
第３実施形態では、以上のような特定の被写体と見えの方向依存性の対応関係を利用する。具体的には、取得した画像において、特定の被写体を検出し、特定の被写体に予め対応づけた信頼度を設定する。
【００５６】
図１３は、第３実施形態に適用可能な位置決定部２０５が実行する位置決定の処理のフローチャートである。ステップＳ５０１〜Ｓ５０２は第１実施形態と同様のステップである。ステップＳ１３０３において位置決定部２０５は、画像に特定の被写体が存在するか否か判定し、特定の被写体を検出する。ステップＳ１３０４において、ステップＳ１３０３の識別結果に基づいて、所定の被写体が存在すると識別された領域に、被写体に対応する信頼度を、領域の信頼度として設定する。
【００５７】
なおステップＳ１３０３における特定の被写体を識別する処理については、例えばテンプレートマッチングを用いることができる。あらかじめ空のテンプレートを持っておき、ステップＳ１３０３で空であると識別された領域には、ステップＳ１３０４で信頼度「高」を設定する。また、葉や樹木のテンプレートを持ち、ステップＳ１３０３で葉や樹木であると識別された領域には、ステップＳ１３０４において判定された領域に「低」の信頼度フラグを与える。さらに、ステップＳ１３０３における識別処理に文字認識を用いることもできる。ステップＳ１３０３において文字が存在すると認識された領域には、ステップＳ１３０４で信頼度「高」のフラグを与える。ステップＳ１３０３の識別処理に、直線認識を用いることで、直線に囲まれた領域を建物様の人工物であるとみなし、ステップＳ１３０４で信頼度「高」を与えるとしてもよい。なお、これらの処理を組み合わせて行ってもよい。このような処理を行うことによって、距離情報が取得できない場合にも被写体の見えの方向依存性に基づいて、対応点の信頼度を設定することができる。以上のように設定された信頼度フラグに基づいて、Ｓ１３０５で画像の位置関係の決定を行う。この処理はＳ５１１と同様である。
【００５８】
＜第４実施形態＞
第４実施形態では、位置姿勢を決定した後に、その結果に基づいて対応点の信頼度を設定する方法について述べる。カメラの位置姿勢が決定されると、決定された１つの位置姿勢に対して、手掛かりとなった対応点それぞれの位置の誤差が求められる（式（１）の各ｉ）。ここで各カメラの撮影する方向によって被写体の見えが異なり、誤った対応点を含む場合は、それら対応点の誤差はばらつく可能性が高い。つまり、カメラ位置姿勢を求めた後、そのカメラ位置姿勢に対する各対応点の誤差が大きくばらつく領域は、領域内の被写体の見えが異なるために正しく対応点を探せなかった可能性があると決定される。そのような領域の信頼度を低く設定したのち、再度位置姿勢を計算することにより、より信頼できる対応点を優先してカメラの位置姿勢を求めることができる。
【００５９】
図１４は、第４実施形態に適用可能な位置決定部２０５による位置決定処理のフローチャートである。まずステップＳ５０１〜Ｓ５１１は第１実施形態と同様の処理であり、各画像の位置姿勢を決定する。
【００６０】
ステップＳ１４０１において位置決定部２０５は、所定のブロックにおいて各対応点のカメラ位置姿勢との誤差を調べる。この誤差が所定の許容値を超える場合には、ステップＳ１４０２に進む。ステップＳ１４０２において位置決定部２０５は、処理対象ブロックの信頼度を下げてカメラの位置姿勢を再計算する。これを繰り返して、最終的なカメラの位置姿勢を求める。
【００６１】
なお、このような算出した結果の誤差と許容量とを参照して当該被写体の対応点の信頼度を下げる方法は、対応点の誤差以外にもある。例えば、カメラの位置姿勢を決定した後に、距離情報や平面部の法線との矛盾があることが分かれば、その被写体上の対応点の信頼度を下げたうえで再計算するようにしてもよい。
【００６２】
＜その他の実施形態＞
これまで記述してきた実施形態は、それぞれを単独で用いるだけでなく、組み合わせて実施することもできる。さらにそれぞれの変形例として、以下のような形態も考えられる。  また、上述の実施形態では、信頼度のフラグを「高」「中」「低」の３つに分けて説明をしてきた。しかし信頼度の設定の仕方はこれに限定するものではない。例えば２つでもよいし、４つ以上でもよい。また、フラグではなく、重み係数を表す連続値を信頼度として用いてもよい。
【００６３】
また、上述の実施形態では説明を簡単にするため、入力画像を２枚として説明してきたが、入力画像は２枚に限らない。２枚以上の複数の画像によりパノラマ画像を生成する場合でも、同様に上述の実施形態を適用することができる。その際、複数のカメラが周囲の全方位をカバーするように配置し、３６０度の全方位パノラマ画像を合成する場合であっても問題なく本実施形態を適用できる。さらに、立体視用の画像を取得するためのステレオ撮像装置であってもよい。また、複数のカメラが互いに外側を向く配置ではなく、互いに内側を向いて配置されていてもよい。あるいは、１つカメラの向きを変えて複数の入力画像を取得する形式であってもよい。具体的には図６において、カメラ６０１と６０２を同時に用いるのではなく、１つのカメラでまず６０１の位置の画像を取得し、次いでカメラを６０２の位置に移動し、画像を取得するようであってもよい。この場合、パノラマ画像を生成するための画像は、時間差を持って撮影されることになるが、必ずしも同時刻ではなくても同じシーンであれば問題なく実施形態を適用できる。
【００６４】
また、前述の実施形態では位置補正部２０５が、画像間の対応点探索、距離情報の解析や被写体判定、信頼度の設定、カメラの位置推定を行う構成とした。しかしながら、それぞれまたは少なくとも一部を、別の手段により実現してもよい。例えば、対応点探索部が画像間の対応点を探索し、検出した対応点を出力する。解析手段や被写体判定手段が、各画像に撮影された被写体の角度依存度に応じた評価を行い、評価結果を出力する。さらに、信頼度設定部が評価結果に基づいて各対応点の信頼度を設定し、位置決定部が信頼度に応じた重みと各対応点に基づいて画像の位置決定を行うとしてもよい。実際に繋ぎ目の無い高品質なパノラマ画像を作成しようとする場合、最後はユーザが合成画像を確認した上で、ユーザの一致点やパラメータの手入力によって微妙な訂正や調整を施した後にパノラマ画像を出力するケースも多い。上記のように各構成を独立にすることにより、上述の実施形態において設定された信頼度を出力装置（モニタ）を介してユーザに提示することができる。この場合ユーザは、各対応点の信頼度を手動調整の参考にすることができる。さらに入力装置を介して、ユーザが領域に設定された信頼度を任意に訂正したり設定したりできるようにしてもよい。これによってユーザは、画像を確認しながら画像位置合わせを制御し、所望のパノラマ画像を得ることができるようになる。
【００６５】
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００６６】
２０５  位置決定部
２０６  繋ぎ目決定部
２０７  画像合成部
【図１】
2017085297.tif 000010
【図２】
2017085297.tif 000011
【図３】
2017085297.tif 000012
【図４】
2017085297.tif 000013
【図５】
2017085297.tif 000014
【図６】
2017085297.tif 000015
【図７】
2017085297.tif 000016
【図８】
2017085297.tif 000017
【図９】
2017085297.tif 000018
【図１０】
2017085297.tif 000019
【図１１】
2017085297.tif 000020
【図１２】
2017085297.tif 000021
【図１３】
2017085297.tif 000022
【図１４】
2017085297.tif 000023