画像処理装置および方法、並びにプログラム
【課題】高品質のパノラマ画像を容易に生成できるようにする。
【解決手段】動き補償パラメータ算出部303は、撮像方向を順次変化させて撮像を行った撮像装置の相対的な動きを補償するパラメータを算出する。第1接続ライン設定部305は隣接する撮像画像の重複領域における撮像方向の変化方向に対する中央位置を第1接続ラインとする。動被写体検出部306は重複領域における動被写体を検出して被写体情報を生成する。被写体情報射影部307は、被写体情報をスイープ軸に射影する。第2接続ライン設定部308は、射影された被写体情報に基づいて第2接続ラインを設定する。
撮像条件検出部304は、撮像画像間の2次元の回転を生じる撮像条件を検出する。接続ライン選択部309は、検出された撮像条件に応じて、第1接続ラインまたは第2接続ラインを隣接する撮像画像の接続ラインとする。
【解決手段】動き補償パラメータ算出部303は、撮像方向を順次変化させて撮像を行った撮像装置の相対的な動きを補償するパラメータを算出する。第1接続ライン設定部305は隣接する撮像画像の重複領域における撮像方向の変化方向に対する中央位置を第1接続ラインとする。動被写体検出部306は重複領域における動被写体を検出して被写体情報を生成する。被写体情報射影部307は、被写体情報をスイープ軸に射影する。第2接続ライン設定部308は、射影された被写体情報に基づいて第2接続ラインを設定する。
撮像条件検出部304は、撮像画像間の2次元の回転を生じる撮像条件を検出する。接続ライン選択部309は、検出された撮像条件に応じて、第1接続ラインまたは第2接続ラインを隣接する撮像画像の接続ラインとする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像処理装置および方法、並びにプログラムに関する。詳しくは、高品質なパノラマ画像を得ることができるようにした画像処理装置および方法、並びにプログラムに関する。
【背景技術】
【0002】
従来、カメラ一体型デジタルVCR等で撮像された複数の静止画像を重ね合わせて合成することで、パノラマ画像を生成する技術が知られている(例えば、特許文献1参照)。パノラマ画像は、複数の静止画像を並べて合成することで得られる画像であるので、パノラマ画像によれば、1つの静止画像の撮像時に撮像対象となる空間上の領域よりも、より広い領域を被写体として表示することができる。
【0003】
また、静止画像の張り合わせを行うときのつなぎ目を決定する方法として、グラフ理論における最短経路問題の解法を利用する方法が提案されている(例えば、非特許文献1参照)。
【0004】
この方法では、例えば図1に示すように、隣接する2つの静止画像I(t)と静止画像I(t+1)の互いに重複する領域内に位置する、つなぎ目SJが決定される。なお、図1において、横方向および縦方向は、それぞれx方向およびy方向を示しており、静止画像I(t)および静止画像I(t+1)は、xy座標系上に重ねられて並べられている。また、重複する領域の四隅の座標は、「(Qx0,Qy0),(Qx0,Qy1),(Qx1,Qy0),(Qx1,Qy1)」とする。
【0005】
図1の例では、静止画像I(t)と静止画像I(t+1)との重なる領域において算出されたコスト値から、最小コストとなるつなぎ目SJの算出が行われる。具体的には、静止画像上の動被写体には高いコストが設定され、逆に静止している被写体には低いコストが設定されて2次元のグラフが生成され、最小コストのつなぎ目SJが決定される。したがって、静止画像上の動被写体が分断されないようなつなぎ目SJが得られることになる。
【0006】
つなぎ目SJが算出されると、静止画像I(t)の左側の端からつなぎ目SJ近傍の領域までの部分と、静止画像I(t+1)のつなぎ目SJ近傍の領域から静止画像I(t+1)の右端までの部分とが合成されて、パノラマ画像とされる。
【0007】
このようにつなぎ目SJを求めて、各静止画像を合成することで、合成時における画像のつなぎ目が目立たない位置で接続されるため、より高品質なパノラマ画像を得ることができるようになる。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2003−198902号公報
【非特許文献】
【0009】
【非特許文献1】飯吉建彰,三橋渉著「パノラマ画像作成のための画像モザイク生成方法」画像ラボ2008年6月号、日本工業出版、2008年8月5日発行、p.6-11
【発明の概要】
【発明が解決しようとする課題】
【0010】
ところで、グローバルモーションベクトルで動き補償を行うパノラマ合成処理において、重複領域における撮像方向の変化方向に対する中央位置で接続を行う場合は、スイープ速度が一定とみなせる状況では各画像における接続ラインの位置はほぼ一定となる。これに対し、画像のつなぎ目が動被写体の位置とならないように画像合成を行う場合、動被写体の有無によって接続ラインの位置は画像間で一定とはならない。この性質のため、合成する画像間で回転成分を有している場合、重複領域における撮像方向の変化方向に対する中央位置で接続を行う場合は、回転成分による接続誤差は画像間で一定になるが、画像のつなぎ目が動被写体の位置とならないように画像合成を行う場合は画像間でまちまちとなるため、合成されたパノラマ画像は、つなぎ目の接続誤差による破綻の影響が非常に大きくなる。
【0011】
そこで、この発明では、高品質のパノラマ画像を容易に生成できる画像処理装置および方法、並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明の第1の側面は、撮像方向を順次変化させて撮像を行うことにより得られた複数枚の撮像画像間の前記撮像を行った撮像装置における相対的な動きを補償するパラメータを算出する動き補償パラメータ算出部と、前記動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、該重複領域における前記撮像方向の変化方向に対する中央位置を第1接続ラインとする第1接続ライン設定部と、前記動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、該重複領域における撮像画像を用いて動被写体の検出を行い被写体情報を生成する動被写体検出部と、前記重複領域における前記被写体情報を前記撮像方向の変化方向であるスイープ軸に射影する被写体情報射影部と、前記射影された被写体情報に基づいて第2接続ラインの設定を行う第2接続ライン設定部と、前記撮像画像間の2次元の回転を生じる撮像条件について検出を行う撮像条件検出部と、前記検出された撮像条件に応じて、前記第1接続ラインまたは前記第2接続ラインを選択して、選択した接続ラインを前記隣接する撮像画像の接続ラインとする接続ライン選択部とを有する画像処理装置にある。
【0013】
本発明において、動き補償パラメータ算出部は、撮像方向を順次変化させて撮像を行うことにより得られた複数枚の撮像画像間の撮像を行った撮像装置における相対的な動きを補償するパラメータ、例えばグローバルベクトルを算出する。第1接続ライン設定部は、動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、重複領域における撮像方向の変化方向、すなわちスイープ方向の中央位置を第1接続ラインとする。動被写体検出部は撮像画像が重なる重複領域における撮像画像を用いて動被写体の検出を行い、例えば動き量に応じた評価値を被写体情報とする。被写体情報射影部は、スイープ軸と直交する方向にある撮像画像上の各位置の評価値を積分することで被写体情報をスイープ軸に射影する。第2接続ライン設定部は、射影後の被写体情報すなわち評価値の積分値が最小となる位置を第2接続ラインとする。撮像条件検出部は、撮像画像間の2次元の回転を生じる撮像条件について検出を行う。例えば撮像画像間の2次元の回転角度、または姿勢検出部によってスイープ軸に対して直交する撮像装置の撮像方向の角度を検出する。接続ライン選択部は、回転角度または撮像方向の角度が予め設定されている閾値範囲よりも大きいとき第1接続ラインを選択して、閾値範囲内であるとき第2接続ラインを選択する。さらに、動き補償パラメータを利用して、複数枚の撮像画像を画像射影部によってパノラマ座標系に射影して、この射影された撮像画像の接続を選択された接続ラインの位置で画像合成部によって行う。
【0014】
本発明の第2の側面は、動き補償パラメータ算出部で、撮像方向を順次変化させて撮像を行うことにより得られた複数枚の撮像画像間の前記撮像を行った撮像装置における相対的な動きを補償するパラメータを算出するステップと、第1接続ライン設定部で、前記動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、該重複領域における前記撮像方向の変化方向に対する中央位置を第1接続ラインとするステップと、動被写体検出部で、前記動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、該重複領域における撮像画像を用いて動被写体の検出を行い被写体情報を生成するステップと、被写体情報射影部で、前記重複領域における前記被写体情報を前記撮像方向の変化方向であるスイープ軸に射影するステップと、第2接続ライン設定部で、前記射影された被写体情報に基づいて第2接続ラインの設定を行うステップと、撮像条件検出部で、前記撮像画像間の2次元の回転を生じる撮像条件について検出を行うステップと、接続ライン選択部で、前記検出された撮像条件に応じて、前記第1接続ラインまたは前記第2接続ラインを選択して、選択した接続ラインを前記隣接する撮像画像の接続ラインとするステップとを具備する画像処理方法にある。
【0015】
本発明の第3の側面は、コンピュータを、撮像方向を順次変化させて撮像を行うことにより得られた複数枚の撮像画像間の前記撮像を行った撮像装置における相対的な動きを補償するパラメータを算出する動き補償パラメータ算出部として動作させる機能手段と、前記動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、該重複領域における前記撮像方向の変化方向に対する中央位置を第1接続ラインとする第1接続ライン設定部として動作させる機能手段と、前記動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、該重複領域における撮像画像を用いて動被写体の検出を行い被写体情報を生成する動被写体検出部として動作させる機能手段と、前記重複領域における前記被写体情報を前記撮像方向の変化方向であるスイープ軸に射影する被写体情報射影部として動作させる機能手段と、前記射影された被写体情報に基づいて第2接続ラインの設定を行う第2接続ライン設定部として動作させる機能手段と、前記撮像画像間の2次元の回転を生じる撮像条件について検出を行う撮像条件検出部として動作させる機能手段と、前記検出された撮像条件に応じて、前記第1接続ラインまたは前記第2接続ラインを選択して、選択した接続ラインを前記隣接する撮像画像の接続ラインとする接続ライン選択部として動作させる機能手段として機能させるためのプログラムにある。
【0016】
なお、本発明のプログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、光ディスクや磁気ディスク、半導体メモリなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【発明の効果】
【0017】
本発明によれば、撮像方向を順次変化させて撮像を行うことにより得られた複数枚の撮像画像間の撮像を行った撮像装置における相対的な動きを補償するパラメータが算出される。この動き補償パラメータに基づき撮像画像が互いに重なる重複領域を判別して、この重複領域におけるスイープ方向の中央位置が第1接続ライン設定部で信号第1接続ラインと設定される。また、重複領域における撮像画像を用いて動被写体の検出が行われて被写体情報が生成されて、被写体情報が撮像方向の変化方向であるスイープ軸に射影される。この射影された被写体情報に基づいて第2接続ラインが設定される。また、撮像画像間の2次元の回転を生じる撮像条件について検出が行われて、検出された撮像条件に応じて第1接続ラインまたは第2接続ラインが選択されて、選択された接続ラインが隣接する撮像画像の接続ラインとされる。このため、撮像条件に適した接続ラインが選択されて、選択された接続ライン位置で撮像画像を接続することで、高品質のパノラマ画像を容易に生成できる。
【図面の簡単な説明】
【0018】
【図1】従来のつなぎ目の探索方法を説明する図である。
【図2】本発明を適用した撮像装置の一実施の形態の構成例を示す図である。
【図3】画像処理部の構成例を示す図である。
【図4】パノラマ画像の生成処理を説明するフローチャートである。
【図5】撮像画像の円筒面への射影について説明する図である。
【図6】撮像面と円筒面の関係を説明する図である。
【図7】撮像方向の傾きと撮像画像間の回転角度の関係を説明する図である。
【図8】第1接続ラインの設定について説明する図である。
【図9】動被写体の検出と被写体情報の生成について説明する図である。
【図10】スイープ軸の各位置の動被写体スコアについて説明する図である。
【図11】接続ラインの探索について説明する図である。
【図12】接続ラインの設定順序について説明する図である。
【図13】選択された接続ラインを例示した図である。
【図14】撮像画像の接続について説明する図である。
【図15】パノラマ画像のトリミングについて説明する図である。
【図16】被写体情報の他の例について説明する図である。
【図17】被写体情報の他の例について説明する図である。
【図18】被写体情報の他の例について説明する図である。
【図19】接続ラインの決定順について説明する図である。
【図20】接続ラインの決定順について説明する図である。
【図21】コンピュータの構成例を示す図である。
【発明を実施するための形態】
【0019】
以下、発明を実施するための形態について説明する。なお、説明は以下の順序で行う。
1.撮像装置の構成
2.撮像装置の動作
3.画像処理部の構成
4.パノラマ画像の生成処理
5.被写体情報の他の例
6.接続ラインの決定順の他の例
7.処理をプログラムにより実行する場合
【0020】
[1.撮像装置の構成]
図2は、本発明を適用した撮像装置の一実施の形態の構成を示す図である。撮像装置10は、光学系、信号処理系、記録系、表示系、および制御系から構成される。
【0021】
光学系は、被写体の光画像を集光するレンズ21、レンズ21からの光画像の光量を調整する絞り22、および集光された光画像を光電変換して電気信号に変換する撮像素子23から構成される。撮像素子23は、例えばCCD(Charge Coupled Devices)イメージセンサやCMOS(Complementary Metal Oxide Semiconductor)イメージセンサなどからなる。
【0022】
信号処理系は、サンプリング部24、A/D(Analog/Digital)変換部25、および画像処理部30から構成される。サンプリング部24は、例えば、相関2重サンプリング部(CDS:Correlated Double Sampling)によって実現され、撮像素子23からの電気信号をサンプリングしてアナログ信号を生成する。これにより、撮像素子23において発生するノイズが軽減される。サンプリング部24において得られるアナログ信号は、撮像された被写体の画像を表示させる画像信号である。
【0023】
A/D変換部25は、サンプリング部24から供給されるアナログ信号をデジタル信号に変換して、画像処理部30に出力して、画像処理部30は、A/D変換部25から入力されるデジタル信号に所定の画像処理を施す。
【0024】
また、記録系は、画像信号を符号化または復号する符号化/復号化部41と、画像信号を記録するメモリ42とから構成される。符号化/復号化部41は、画像処理部30によって処理されたデジタル信号である画像信号を符号化してメモリ42に記録させたり、メモリ42から画像信号を読み出して復号し、画像処理部30に出力したりする。
【0025】
表示系は、D/A(Digital/Analog)変換部43、ビデオエンコーダ44、および表示部45から構成される。
【0026】
D/A変換部43は、画像処理部30によって処理された画像信号をアナログ化してビデオエンコーダ44に出力して、ビデオエンコーダ44は、D/A変換部43からの画像信号を表示部45に適合する形式のビデオ信号にエンコードする。表示部45は、例えば、LCD(Liquid Crystal Display)等により実現され、ビデオエンコーダ44におけるエンコードで得られたビデオ信号に基づいて、ビデオ信号に対応する画像を表示する。また、表示部45は、被写体の撮像時にはファインダとしても機能する。
【0027】
制御系は、タイミング生成部46、操作入力部47、ドライバ48、および制御部50から構成される。また、画像処理部30、符号化/復号化部41、メモリ42、タイミング生成部46、操作入力部47、および制御部50は、バス51を介して相互に接続されている。
【0028】
タイミング生成部46は、撮像素子23、サンプリング部24、A/D変換部25、および画像処理部30の動作のタイミングを制御する。操作入力部47は、ボタンやスイッチなどからなり、ユーザによるシャッタ操作やその他のコマンド入力を受け付けて、ユーザの操作に応じた信号を制御部50に出力する。
【0029】
ドライバ48には所定の周辺機器が接続され、ドライバ48は接続された周辺機器を駆動する。例えばドライバ48は、周辺機器として接続された磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ等の記録媒体からデータを読み出して制御部50に出力する。なお、撮像装置10に姿勢検出部49を設けてもよい。姿勢検出部49は、撮像時における撮像装置10の姿勢を検出して、検出結果を画像処理部30に出力する。姿勢検出部49としては、例えば加速度センサや角速度センサ、傾斜センサ等を用いて撮像装置10の姿勢を検出する。
【0030】
制御部50は、撮像装置10の全体を制御する。例えば、制御部50は、ドライバ48を介して、ドライバ48に接続されている記録媒体から制御用プログラムを読み出して、制御用プログラムや操作入力部47からのコマンド等に基づいて、撮像装置10全体の動作を制御する。
【0031】
[2.撮像装置の動作]
次に、撮像装置10の動作について説明する。撮像装置10では、被写体からの入射光、すなわち被写体の光画像は、レンズ21および絞り22を介して撮像素子23に入射し、撮像素子23によって光電変換されて電気信号とされる。撮像素子23で得られた電気信号は、サンプリング部24によってノイズ成分が除去され、A/D変換部25によってデジタル化された後、画像処理部30が内蔵する図示せぬ画像メモリに一時的に格納される。
【0032】
なお、通常の状態、つまりシャッタ操作前の状態では、タイミング生成部46による信号処理系に対するタイミング制御により、画像処理部30の画像メモリには、一定のフレームレートで、絶えずA/D変換部25からの画像信号を上書きするようになされている。画像処理部30の画像メモリ内の画像信号は、D/A変換部43によってデジタル信号からアナログ信号に変換され、ビデオエンコーダ44によってビデオ信号に変換されて、ビデオ信号に対応する画像が表示部45に表示される。
【0033】
この場合において、表示部45は、撮像装置10のファインダとしての機能も担っており、ユーザは、表示部45に表示される画像を見ながら構図を定め、操作入力部47としてのシャッタボタンを押下して、画像の撮像を指示する。シャッタボタンが押下されると、制御部50は、操作入力部47からの信号に基づいて、タイミング生成部46に対し、シャッタボタンが押下された直後の画像信号が保持されるように指示する。これにより、画像処理部30の画像メモリに画像信号が上書きされないように、信号処理系が制御される。
【0034】
そして、その後、画像処理部30の画像メモリに保持されている画像信号が、符号化/復号化部41によって符号化されてメモリ42に記録される。以上のような撮像装置10の動作によって、1枚の画像信号の取り込みが完了する。
【0035】
[3.画像処理部の構成]
図3は、図2に示す画像処理部30の構成を示している。画像処理部30は、撮像画像保持部301、円筒射影部302、動き補償パラメータ算出部303、撮像条件検出部304、第1接続ライン設定部305、動被写体検出部306、被写体情報射影部307、第2接続ライン設定部308、接続ライン選択部309、画像射影部310、および画像合成部311から構成される。
【0036】
撮像画像保持部301には、撮像装置10により撮像された被写体の画像(以下、撮像画像と称する)が供給される。撮像画像保持部301は、供給された複数の撮像画像を保持する。撮像画像保持部301に供給される撮像画像は、撮像装置10が所定方向に移動(スイープ)している状態で連続して撮像された画像であり、撮像画像の撮像時には、連続して撮像される2つの撮像画像上に同じ被写体が含まれるように、撮像装置10が移動される。
【0037】
なお、以下、連続して撮像された撮像画像のうち、t番目に撮像された撮像画像をフレームF(t)の撮像画像I(t)とも称することとする。
【0038】
円筒射影部302は、撮像画像保持部301から撮像画像を読み出して、読み出した撮像画像を円筒面に射影する。円筒射影部302は、円筒面に射影された撮像画像を、動き補償パラメータ算出部303、動被写体検出部306および画像射影部310に出力する。
【0039】
動き補償パラメータ算出部303は、円筒射影部302からの撮像画像に基づいて、撮像画像のフレーム間における、撮像装置10の動き(移動)を補償する動き補償パラメータを算出する。また、動き補償パラメータ算出部303は、算出した動き補償パラメータを、撮像条件検出部304、第1接続ライン設定部305、動被写体検出部306、被写体情報射影部307、および画像射影部310に出力する。動き補償パラメータは、例えば、複数の撮像画像のそれぞれを、同じ被写体がほぼ重なるように並べた場合における、撮像画像同士の相対的な位置関係を示す情報である。
【0040】
撮像条件検出部304は、動き補償パラメータ算出部303から供給された動き補償パラメータを用いて、撮影時の各種条件の検出を行い、検出結果を接続ライン選択部309に出力する。撮像条件検出部304は、例えば撮像画像間の2次元の回転を生じる撮像条件について検出を行う。
【0041】
第1接続ライン設定部305は、動き補償パラメータ算出部303から出力された動き補償パラメータに基づいて、連続するフレームの撮像画像から重複領域を判別する。また、第1接続ライン設定部305は、重複領域における撮像方向の変化方向に対する中央位置を第1接続ラインとする。すなわち、第1接続ライン設定部305は、重複領域において、撮像装置10の回転移動方向(スイープ軸の方向)における中点を通り、スイープ軸に対して直交する直線を第1接続ラインとする。第1接続ライン設定部は、設定した第1接続ラインを示す第1接続ライン情報を接続ライン選択部309に出力する。なお、スイープ軸とは、撮像画像の撮像時に撮像装置10を移動させる方向と同じ方向の軸をいい、スイープ軸の方向は予め定められている。また、スイープ軸の方向は、ユーザが操作入力部47を操作することにより、撮像画像の撮像前または後に、複数の方向のなかから、スイープ軸の方向を選択できるようにしてもよい。また、動き補償パラメータは、撮像装置10の動き(移動)を補償するためのパラメータであることから、この動き補償パラメータに基づき、スイープ軸の方向を自動的に決定するようにしてもよい。
【0042】
動被写体検出部306は、動き補償パラメータ算出部303からの動き補償パラメータと、円筒射影部302からの撮像画像とを用いて、隣接する撮像画像が互いに重なる重複領域に対する動被写体の検出を行い被写体情報を生成する。また、動被写体検出部306は生成した被写体情報を被写体情報射影部307に出力する。動被写体検出部306は、例えば被写体情報として動被写体の動き量を示す評価値を生成する。
【0043】
被写体情報射影部307は、動き補償パラメータ算出部303からの動き補償パラメータを用いて、動被写体検出部306からの被写体情報をスイープ軸に射影して、その射影結果を第2接続ライン設定部308に出力する。
【0044】
第2接続ライン設定部308は、被写体情報射影部307から供給された、被写体情報の射影結果に基づいて、連続するフレームの撮像画像を互いに接続するときの第2接続ラインを設定する。また、第2接続ライン設定部308は、設定した第2接続ラインを示す第2接続ライン情報を接続ライン選択部309に出力する。ここで、第2接続ライン設定部308は、被写体情報の射影結果に基づいて、接続位置に動被写体が含まれないように第2接続ラインを設定する。
【0045】
接続ライン選択部309は、撮像条件検出部304での検出結果に基づき第1接続ラインまたは第2接続ラインを選択する。すなわち、接続ライン選択部309は、第1接続ライン設定部305で生成された第1接続ライン情報と、第2接続ライン設定部308で生成された第2接続ライン情報のいずれかを、撮影条件検出結果に基づき選択して画像合成部311に出力する。
【0046】
画像射影部310は、動き補償パラメータ算出部303からの動き補償パラメータを用いて、円筒射影部302からの撮像画像をパノラマ座標系上に射影し、射影された撮像画像を画像合成部311に出力する。ここで、パノラマ座標系は、スイープ軸に垂直な軸と、スイープ軸とを軸とする2次元座標系、つまり所定の平面とされ、パノラマ座標系は予め定められている。
【0047】
画像合成部311は、接続ライン選択部309で選択された接続ライン情報が示す接続ラインで、画像射影部310から供給された射影後の撮像画像を互いに接続し、1枚のパノラマ画像を生成する。パノラマ画像は、複数の撮像画像の撮像時に撮像対象となった撮像空間上の全領域を被写体とする画像とされる。
【0048】
[4.パノラマ画像の生成処理]
撮像装置10は、ユーザが操作入力部47を操作して、パノラマ画像の生成を指示したとき、撮像画像を撮像してパノラマ画像を生成する処理であるパノラマ画像の生成処理を開始する。以下、図4のフローチャートを参照して、撮像装置10によるパノラマ画像の生成処理について説明する。
【0049】
ステップST11において、撮像素子23は、被写体の撮像を行う。撮像素子23は、撮像装置10の撮像方向が順次変化されている状態で被写体の撮像を行い、複数枚の撮像画像を生成してステップST12に進む。例えば、ユーザは撮像装置10を所定方向に回動させながら、複数枚の撮像画像を連続して撮像装置10に撮像させる。
【0050】
被写体からの光はレンズ21および絞り22を介して撮像素子23に入射するので、撮像素子23は入射した光を光電変換することにより、撮像画像を撮像する。得られた撮像画像(画像信号)は、撮像素子23から、サンプリング部24、A/D変換部25、画像処理部30、符号化/復号化部41を介してメモリ42に供給され、記録される。このとき、撮像画像は符号化/復号化部41により符号化される。また、メモリ42への記録時において、各撮像画像には撮像順にフレーム番号が付される。
【0051】
複数の撮像画像がメモリ42に順次記録されると、それらの撮像画像は、符号化/復号化部41によりメモリ42から読み出されて復号され、画像処理部30の撮像画像保持部301に供給されて保持される。
【0052】
なお、撮像により得られた撮像画像が、メモリ42に記録されずに、直接、撮像画像保持部301に供給されるようにしてもよい。また、撮像画像は、撮像された1つの静止画像であってもよいし、撮影された動画像を構成する1フレーム分の画像であってもよい。
【0053】
ステップST12において、円筒射影部302は、撮像画像を円筒面に射影する。円筒射影部302は、撮像画像保持部301に保持されている撮像画像を順番に読み出して、読み出した撮像画像を、撮像画像の撮像時の焦点距離に基づいて、所定の円筒面に射影する。また、円筒射影部302は、射影された撮像画像を動き補償パラメータ算出部303、動被写体検出部306、および画像射影部310に出力してステップST13に進む。
【0054】
図5は、撮像画像の円筒面への射影を説明する図である。例えば、撮像画像の撮像時におけるレンズ21の焦点距離FDを半径とする円筒の側面を円筒面CSとして、撮像面PSを撮像して得られた撮像画像が、円筒面CSに射影(投影)される。すなわち、撮像面PSの円筒面投影が行われる。図5の例では、円筒面CSは、撮像面PSの中央に接する面とされている。なお、レンズ21の焦点距離は、撮像画像の撮像時におけるレンズ21の位置等から得られる。
【0055】
このように撮像画像を円筒面に射影することで、パノラマ画像の生成時に、接続する撮像画像間の被写体の位置のずれ(誤差)をより小さく抑えることができる。
【0056】
図6は撮像面と円筒面の関係を示している。図6に示すように、光学中心点C11に撮像装置10の光学中心が位置する状態で、光学中心点C11を中心として時計回りの方向に撮像装置10をスイープ(回動)させながら、ユーザが撮像装置10で複数の撮像画像の生成を行わせたとする。なお、図6において図5における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【0057】
図6において、5つの撮像面PS-0乃至撮像面PS-4で撮像が行われて、5つの撮像画像が生成される。そして、得られた撮像画像は、それぞれ円筒面CSに射影される。円筒面CSは、光学中心点C11を中心とし、焦点距離を半径とする円筒の側面である。
【0058】
この場合、撮像された撮像画像を、そのまま合成してパノラマ画像を生成することを考える。図6において、互いに隣接する撮像面の端近傍に位置する画像の重複部分は、空間的に円筒面CSの半径方向にずれている。このため、撮像画像同士をそのまま重ねて並べると、被写体の位置にずれが生じて、同じ被写体が重ならなくなり、パノラマ画像の品質が劣化してしまう。
【0059】
そこで、各撮像画像を円筒面CSに射影してから、射影された撮像画像同士を重ねて合成してパノラマ画像を生成する。このようにパノラマ画像を生成することで、撮像画像を円筒面に射影することなく合成する場合と比べて、撮像画像間の被写体の位置ずれ(誤差)をより小さく抑えることができる。したがって、撮像画像を円筒面CSに射影して、射影後の画像を合成してパノラマ画像を生成すれば、撮像画像間において生じる被写体の位置の誤差が軽減されて、より高品質なパノラマ画像を得ることができる。
【0060】
図4のステップST13において、動き補償パラメータ算出部303は、円筒射影部302から供給された各撮像画像について、撮像画像の動き補償パラメータを算出する。動き補償パラメータ算出部303は、算出した動き補償パラメータを撮像条件検出部304、第1接続ライン設定部305、動被写体検出部306、被写体情報射影部307および画像射影部310に出力してステップST14に進む。
【0061】
例えば、動き補償パラメータ算出部303は、連続する2つのフレームの撮像画像を用いて、特徴点の抽出やブロックマッチングにより、撮像画像のグローバルモーションベクトルを動き補償パラメータとして算出する。
【0062】
グローバルモーションベクトルとは、撮像画像上の被写体全体のフレーム間の動きを示すグローバルな動きベクトルである。撮像画像上の被写体の多くは、実空間上において動きのない静止物体であるので、グローバルモーションベクトルは、撮像画像上の静止物体のフレーム間の動き、つまり撮像画像の撮像時における撮像装置10の動きを示すベクトルであるということができる。
【0063】
なお、動き補償パラメータは、グローバルモーションベクトルに限らず、撮像装置10の動きを補償可能とするパラメータ例えば平面射影行列やアフィン行列などであってもよい。これらの平面射影行列やアフィン行列も、連続する2つのフレームの撮像画像を用いた、特徴点の抽出やブロックマッチングにより求めることができる。動き補償パラメータとして、グローバルモーションベクトルを採用する場合には、平面射影行列やアフィン行列を採用する場合よりも、より低い計算コストで動き補償パラメータを得ることができる。
【0064】
ステップST14において、撮像条件検出部304は、動き補償パラメータ算出部303から出力された動き補償パラメータを用いて撮影時の撮像条件の検出を行う。スイープ中に撮像を行って得られた撮像画像は、撮像装置10の撮像方向がスイープ動作の回転軸と直交する方向に対して傾きを有している場合、撮像画像間で2次元の回転を有するようになる。
【0065】
図7は、撮像装置10の撮像方向の傾きと撮像画像間の回転角度の関係を説明する図である。例えば図7の(C)に示すように、スイープ動作の回転軸ARと撮像方向VPとの角度が90度である場合、撮像画像間で2次元の回転は生じていない。次に、図7の(B)に示すように、スイープ動作の回転軸ARに対して撮像方向VPの角度が90度よりも小さく、撮像方向VPがスイープ動作の回転軸ARと直交する方向に対して仰角θaを有している場合、撮像画像間で2次元の回転角度を生じる。また、図7の(A)に示すように、仰角θaが大きくなると撮像画像間での回転角度が大きくなる。図7の(D)に示すように、スイープ動作の回転軸ARに対して撮像方向VPの角度が90度よりも大きく、撮像方向VPがスイープ動作の回転軸ARと直交する方向に対して俯角θbを有している場合、撮像画像間で回転角度を生じる。また、図7の(E)に示すように、俯角θbが大きくなると画像間での回転角度が大きくなる。なお、俯角θbを有している場合の撮像画像の回転は、仰角θaを有している場合の回転に対して逆方向となる。
【0066】
このように、撮像画像間で2次元の回転を生じる場合があることから、撮像条件検出部304は、撮像画像間の2次元の回転を生じる撮像条件を検出する。具体的には、撮像条件検出部304は、動き補償パラメータ算出部303で算出された動き補償パラメータ(例えばグローバルモーションベクトル)に基づき、撮像画像間の2次元の回転角度を検出する。さらに、撮像条件検出部は、検出した回転角度を撮像条件として接続ライン選択部309に出力する。また、撮像条件検出部304は、撮像画像を回転後の位置に幾何変換するアフィン行列を求めて、このアフィン行列から回転角度を得るようにしてもよい。また、撮像画像間の2次元の回転は、スイープ動作の回転軸と直交する方向に対して撮像方向が仰角や俯角を有しているとき生じる。したがって、撮像装置10に姿勢検出部49を設けるようにして、この姿勢検出部49でスイープ動作の回転軸に対する撮像方向の角度を検出して、検出した角度を撮像条件としてもよい。また、撮像画像間の2次元の回転が、スイープ動作の回転軸に対する撮像方向の角度だけでなく、他の撮像条件によって変化する場合、他の撮像条件の検出も行うようにする。
【0067】
ステップST15において、第1接続ライン設定部305は、第1接続ラインを設定する。第1接続ライン設定部305は、動き補償パラメータ算出部303からの動き補償パラメータに基づき、撮像画像が互いに重なる重複領域を判別する。さらに、第1接続ライン設定部305は、重複領域におけるスイープ方向の中央位置に、スイープ方向と直交する第1接続ラインを設定して、設定した第1接続ラインを示す第1接続ライン情報を接続ライン選択部309に出力してステップST16に進む。
【0068】
図8は、第1接続ラインの設定について説明する図である。第1接続ライン設定部305は、撮像画像I(t)と撮像画像I(t+1)とを合成するときの第1接続ラインを定めるとき、撮像画像I(t)と撮像画像I(t+1)が互いに重なる重複領域に対応するスイープ軸上の位置Qx0から位置Qx1までの範囲を検出する。ここで、位置Qx0は、撮像画像I(t+1)をスイープ軸に射影したときの撮像画像I(t+1)の左端の位置であり、位置Qx1は、撮像画像I(t)をスイープ軸に射影したときの撮像画像I(t)の右端の位置である。
【0069】
第1接続ライン設定部305は、スイープ軸上の位置Qx0から位置Qx1までの中央の位置SCを、撮像画像I(t)と撮像画像I(t+1)を接続する第1接続ラインとする。すなわち、第1接続ライン設定部305は、位置Qx0から位置SCまでの距離Ld0と位置SCから位置Qx1の距離Ld1が等しくなるように第1接続ラインを設定する。
【0070】
図4のステップST16において、動被写体検出部306は動被写体検出を行う。動被写体検出部306は、動き補償パラメータ算出部303からの動き補償パラメータと、円筒射影部302からの撮像画像とを用いて、撮像画像が互いに重なる重複領域における動被写体を検出する。また、動被写体検出部306は、検出した動被写体を示す被写体情報を生成して被写体情報射影部307に出力してステップST17に進む。
【0071】
例えば、図9に示すように、動被写体検出部306は、動き補償パラメータを用いて、連続する2つのフレームF(t)の撮像画像I(t)と、フレームF(t+1)の撮像画像I(t+1)とを、それらの撮像画像上の同じ被写体がほぼ重なるように並べる。
【0072】
そして、動被写体検出部306は、撮像画像I(t)における、撮像画像I(t+1)と重なる領域である重複領域DRをいくつかの領域(以下、ブロックと称する)に分割し、ブロックマッチングによりブロックごとに動きベクトルLMVを求める。
【0073】
すなわち、各ブロックの動きベクトルLMVは、撮像画像I(t+1)上において、撮像画像I(t)上の処理対象のブロックとの差分が最も小さい領域を探索することにより、求められる。例えば、ブロックとの差分は、ブロック内の画素の画素値と、その画素に対応する撮像画像I(t+1)の画素の画素値との差分絶対値和とされる。
【0074】
図9では、重複領域DR内の点線で表された1つの正方形が1つのブロックを示しており、各ブロック内の矢印は、それらのブロックの動きベクトルLMVを表している。この動きベクトルLMVは、動き補償パラメータを用いて、撮像画像I(t)と撮像画像I(t+1)を並べた状態における、撮像画像の各領域の被写体のフレーム間の動きを示すベクトルである。
【0075】
次に、動被写体検出部306は、求めた各ブロックの動きベクトルLMVを用いて、撮像画像I(t)全体の動きを示す動きベクトルGMV(グローバルモーションベクトル)を算出する。例えば、全体の動きベクトルGMVは、各ブロックの動きベクトルLMVの中央値とされる。
【0076】
なお、動きベクトルGMVは、ロバスト推定により求められてもよいし、求められたブロックの動きベクトルLMVのうち、最も多く検出された方向および大きさの動きベクトルLMVとされてもよい。
【0077】
このようにして求められた全体の動きベクトルGMVは、撮像画像上の被写体全体の動きを示しているので、この動きベクトルGMVと異なる動きベクトルLMVを有するブロックには、実空間上において動きのある被写体である動被写体が含まれていることになる。
【0078】
さらに、動被写体検出部306は、求めた全体の動きベクトルGMVと、各ブロックの動きベクトルLMVとを用いて、撮像画像I(t)上の重複領域DRの各位置における、動被写体の有無と、その動きの大きさ(動きの程度)を示す評価値(コスト値)を算出する。
【0079】
具体的には、動被写体検出部306は、図9に示す重複領域DRの例えば左上の頂点を基準とするxy座標系を考え、重複領域DRにおけるxy座標系上の座標が(x,y)である位置の評価値(コスト値)cost(x,y)を次式(1)に基づいて算出する。なお、図9では、横方向がx方向とされ、縦方向がy方向とされている。また、スイープ軸は、x方向とする。
cost(x,y)=|GMV−LMV(x,y)| ・・・(1)
【0080】
なお、式(1)において、GMVは撮像画像I(t)全体の動きベクトルGMVを示しており、LMV(x,y)は座標(x,y)の位置が含まれるブロックの動きベクトルLMVを示している。つまり、各位置の評価値は、全体の動きベクトルGMVと、ブロックの動きベクトルLMVとの差分絶対値とされる。
【0081】
したがって、重複領域DR内の位置の評価値が大きいほど、その位置には、より大きく動いている動被写体が表示されていることになる。動被写体検出部306は、このようにして求められた評価値を、被写体情報として被写体情報射影部307に出力する。
【0082】
なお、図9では、ブロック単位で動被写体の検出、つまり動きベクトルの検出が行われる例について説明したが、重複領域DR内の画素ごとに動きベクトルが検出されるようにしてもよい。
【0083】
また、被写体情報として、動被写体の有無、およびその動被写体の動きの程度を示す評価値を求める例について説明したが、重複領域DR内の各位置の被写体情報は、その位置に動被写体が含まれているか否かを示す2値の値とされてもよい。
【0084】
但し、被写体情報を多値の情報とすれば、後述する第2接続ライン設定部308において、より被写体の位置ずれの少ない位置を接続ラインとして求めることができるようになる。
【0085】
すなわち、第2接続ライン設定部308は、パノラマ画像を生成するために、連続して撮像された撮像画像同士を接続するときの接続ラインを設定する。このとき、より高品質なパノラマ画像を得るには、動被写体が分断されるような接続ラインが定められることをなるべく避ける必要があるが、動被写体の領域が大きいなどの理由で、どうしても動被写体の位置を接続ラインとしなければならない場合がある。このような場合、被写体情報に、動被写体の動きの程度を示す情報が多値の情報として含まれていれば、最も被写体の動きの小さい位置を接続ラインとして求めることができる。これにより、互いに接続される撮像画像の接続位置近傍における画像のずれ、つまり2つの撮像画像を重ねたときの被写体の位置のずれを最小限にとどめることができ、パノラマ画像の品質の劣化を抑制することができる。
【0086】
図4のステップST17において、被写体情報射影部307は、被写体情報を射影する。被写体情報射影部307は、動き補償パラメータ算出部303からの動き補償パラメータを用いて、動被写体検出部306からの被写体情報のスイープ軸への射影を行い、スイープ軸上の位置ごとに評価値の総和を算出して動被写体スコアを生成する。被写体情報射影部307は、生成した動被写体スコアを第2接続ライン設定部308に出力してステップST18に進む。
【0087】
すなわち、被写体情報射影部307は、スイープ軸と垂直な方向にある撮像画像上の各位置の評価値を積分して動被写体スコアとすることにより、評価値のスイープ軸への射影を行う。射影結果としての動被写体スコアは、撮像画像の対応する領域における動被写体の面積(大きさ)に応じて大きくなる。
【0088】
例えば、図9のようにスイープ軸をx方向としていると、スイープ軸の各位置の被写体スコアは、x座標が、そのスイープ軸の位置のx座標と同じ値である撮像画像の位置における評価値の総和となる。具体的には、スイープ軸上の所定の位置に対応するxy座標系の値が例えば「x0」であったとする。この場合、重複領域DR上のx座標が「x0」である位置のcost(x0,y)の総和が、スイープ軸上の所定の位置における動被写体スコアとして求められる。
【0089】
その結果、例えば図10に示すように、スイープ軸の各位置における動被写体スコアが得られる。なお、図10の(A)は、撮像画像I(t)を示しており、図10の(B)は撮像画像I(t)の動被写体スコアを示している。なお、図10の(B)において、横方向はスイープ軸の方向を示しており、縦方向はスイープ軸の各位置における動被写体スコアである。また、スコア線MSは、スイープ軸の各位置における動被写体スコアを示す線である。
【0090】
撮像画像I(t)では、撮像画像I(t)の中央からやや右側に動被写体が含まれているため、その動被写体の部分に対応するスイープ軸の位置では、動被写体スコアが大きくなっている。逆に、動被写体の含まれない部分の評価値は「0」であり、また、隣接する撮像画像と重複しない領域では評価値は求められないので、撮像画像I(t)の動被写体が存在していない領域に対応するスイープ軸の位置では、動被写体スコアは「0」となっている。
【0091】
このようにして被写体情報射影部307は、全ての撮像画像について、被写体情報としての評価値をスイープ軸に射影し、スイープ軸の各位置の動被写体スコアを求める。なお、被写体情報射影部307において、各撮像画像の領域ごとの評価値を、スイープ軸のどの位置に射影させるかは、撮像画像ごとの動き補償パラメータにより知ることができる。
【0092】
被写体情報をスイープ軸に射影して、スイープ軸の各位置における動被写体スコアを求めることで、接続ラインを定めるのに用いられる2次元の情報を1次元の情報に変換することができる。これにより、接続ラインの決定に必要な情報の量を削減するとともに、その情報の記録のためのメモリ容量を節約することができる。
【0093】
図4のステップST18において、第2接続ライン設定部308は、第2接続ラインの設定を行う。第2接続ライン設定部308は、被写体情報射影部307からの動被写体スコアに基づいて撮像画像を接続するときの第2接続ラインを設定して、この第2接続ラインを示す第2接続ライン情報を接続ライン選択部309に出力してステップST19に進む。
【0094】
図11は、接続ラインの探索について説明する図である。例えば、図11に示すように、撮像画像I(t)から、スコア線MStにより示される動被写体スコアが得られたとする。なお、図11の(A)は、撮像画像I(t)と撮像画像I(t+1)を示しており、図11の(B)は、動被写体スコアを示しており、横方向はスイープ軸の方向、縦方向はスイープ軸の各位置における動被写体スコアの大きさである。
【0095】
第2接続ライン設定部308は、撮像画像I(t)と撮像画像I(t+1)とを合成するときの接続ラインを定めるにあたり、撮像画像I(t)と撮像画像I(t+1)が互いに重なる重複領域に対応するスイープ軸上の位置Qx0から位置Qx1までの範囲を探索範囲とする。ここで、位置Qx0は、撮像画像I(t+1)をスイープ軸に射影したときの撮像画像I(t+1)の左端の位置であり、位置Qx1は、撮像画像I(t)をスイープ軸に射影したときの撮像画像I(t)の右端の位置である。
【0096】
第2接続ライン設定部308は、スイープ軸上の位置Qx0から位置Qx1を探索範囲として、探索範囲内において最も動被写体スコアが小さい位置を、撮像画像I(t)と撮像画像I(t+1)を接続する第2接続ラインとする。
【0097】
なお、図11では、スイープ軸上の探索範囲内の位置SMにおいて、スコア線MStにより示される動被写体スコアが最小となっているので、位置SMが第2接続ラインとされる。したがって、第2接続ライン設定部308は、スイープ軸の位置が位置SMであって、スイープ軸に対して垂直な直線を第2接続ラインとして設定する。
【0098】
第2接続ラインは、探索範囲内において最も動被写体スコアが小さい位置SMであるので、スイープ軸の各位置のうちで、最も被写体の動きの小さい位置である。つまり、位置SMは、撮像画像I(t)と撮像画像I(t+1)を動き補償パラメータに基づいて、同じ被写体がほぼ重なるように所定面上に並べた場合に、撮像画像のずれ、例えば撮像画像上の被写体の位置ずれや、互いに重なる領域の画素の色誤差などが最も小さい位置である。
【0099】
このように、第2接続ライン設定部308では、動被写体の分断スコアが最小となるスイープ軸の位置の探索という、一次元の探索処理により、簡単かつ迅速に接続ラインを定めることができる。
【0100】
また、第1接続ライン設定部305と第2接続ライン設定部308は、上述のような処理を行って、全ての撮像画像について、隣接する撮像画像の第1接続ラインと第2接続ラインを設定する。
【0101】
第1接続ライン設定部305と第2接続ライン設定部308は、例えばフレーム番号の小さい順、つまり撮像時刻の古い順に、撮像画像の第1接続ラインと第2接続ラインを定めていく。図12は、第1接続ラインと第2接続ラインの設定をフレーム番号の小さい順に行った場合を示している。
【0102】
図12では、3つの連続するフレームF(t-1),フレームF(t),フレームF(t+1)の撮像画像I(t-1),撮像画像I(t),撮像画像I(t+1)のそれぞれが、動き補償パラメータに基づいて並べられている。撮像画像I(t-1),撮像画像I(t),撮像画像I(t+1)のうち、最もフレーム番号が小さいものは撮像画像I(t-1)である。したがって、第1接続ライン設定部305と第2接続ライン設定部308は、撮像画像I(t-1)と撮像画像I(t)との重複領域に第1接続ラインと第2接続ラインを定める。
【0103】
すなわち、図12の(A)に示すように、第1接続ライン設定部305と第2接続ライン設定部308は、隣接する撮像画像I(t-1)と撮像画像I(t)が重なる、スイープ軸上の位置Qx1(t-1,t)〜Qx1(t-1,t)までの範囲内に第1接続ラインと第2接続ラインを定める。その結果、位置Qx1(t-1,t)と位置Qx1(t-1,t)との中央の位置SC(t-1,t)が第1接続ラインとなる。また、位置Qx1(t-1,t)から位置Qx1(t-1,t)まで範囲において動被写体スコアが最小となる位置SM(t-1,t)が第2接続ラインとなる。
【0104】
次に、第1接続ライン設定部305と第2接続ライン設定部308は、図12の(B)に示すように撮像画像I(t)と撮像画像I(t+1)に対する第1接続ラインと第2接続ラインを定める。第1接続ライン設定部305は、上述のように互いに隣接する撮像画像I(t)と撮像画像I(t+1)との互いに重なる範囲の中央の位置SC(t,t+1)が第1接続ラインとされる。
【0105】
また、撮像画像I(t)と撮像画像I(t+1)が互いに重なる領域の左側の端、つまり撮像画像I(t+1)の左端の位置は、先に定めた撮像画像I(t-1)と撮像画像I(t)の接続ラインの位置SM(t-1,t)よりも左側に位置している。したがって、第2接続ライン設定部308は、位置SM(t-1,t)よりも左側の領域は、探索範囲から除外して、位置SM(t-1,t)から撮像画像I(t)の右端である位置Qx1(t,t+1)までの範囲を探索範囲として第2接続ラインを定める。その結果、探索範囲において動被写体スコアが最小となる位置SM(t,t+1)が第2接続ラインとされる。
【0106】
図4のステップST19において、接続ライン選択部309は、接続ラインの選択を行う。接続ライン選択部309は、撮像条件検出部304によって検出された撮像条件に基づき、第1接続ライン設定部305で生成された第1接続ライン情報または第2接続ライン設定部308で生成された第2接続ライン情報のいずれかを選択する。また、接続ライン選択部309は、選択した接続ライン情報を画像合成部311に出力してステップST20に進む。
【0107】
撮像画像間で2次元の回転がない場合や回転が小さい場合、第2接続ライン設定部308で設定した第2接続ラインで画像の接続を行ってパノラマ画像を生成すると、動被写体でのつなぎ目の破綻が起こらない。このため、第1接続ライン設定部305で設定した第1接続ラインで画像の接続を行った場合に比べて、パノラマ画像が良好な結果となる。また、撮像画像間で2次元の回転が大きい場合、回転による誤差が大きくなる。このため、第1接続ライン設定部305で設定した第1接続ラインで画像の接続を行うことで、第2接続ライン設定部308で設定した第2接続ラインで画像の接続を行った場合よりもパノラマ画像が良好な結果となる。よって、接続ライン選択部309は、撮像条件検出部304から入力された撮像条件と閾値を比較して、2次元の回転が閾値範囲よりも大きい場合、第1接続ライン情報を選択して画像合成部311に出力する。また、2次元の回転が閾値範囲内である場合は第2接続ライン情報を選択して画像合成部311に出力する。例えば、接続ライン選択部309は、撮像画像間の2次元の回転確度やスイープ動作の回転軸に対する撮像方向の角度が、閾値範囲よりも大きい場合、第1接続ライン情報を選択して画像合成部311に出力する。また、接続ライン選択部309は、撮像画像間の2次元の回転確度やスイープ動作の回転軸に対する撮像方向の角度が、閾値範囲内である場合は第2接続ライン情報を選択して画像合成部311に出力する。
【0108】
図13は、選択された接続ラインを例示した図である。例えば、図12に示すように、位置SC(t-1,t),SC(t,t+1)は第1接続ライン、位置SM(t-1,t),SM(t,t+1)は第2接続ラインとする。この場合、接続ライン選択部309は、撮像画像間で2次元の回転がない場合や回転が小さい場合、図13の(A)に示す第2接続ラインを示す第2接続ライン情報を画像合成部311に出力する。また、接続ライン選択部309は、撮像画像間で2次元の回転が大きい場合、図13の(B)に示す第1接続ラインを示す第1接続ライン情報を画像合成部311に出力する。
【0109】
図4のステップST20において、画像射影部310は、撮像画像をパノラマ座標系に射影する。画像射影部310は、動き補償パラメータ算出部303からの動き補償パラメータを用いて、円筒射影部302からの撮像画像をパノラマ座標系上に射影する。また、画像射影部310は、射影された撮像画像を画像合成部311に出力してステップST21に進む。
【0110】
この射影により、撮像画像上の同じ被写体がほぼ重なるように、複数の撮像画像がパノラマ座標系上に並べられることになる。なお、パノラマ座標系は、スイープ方向に垂直な軸と、スイープ軸とを軸とする平面とされる。例えば、スイープ軸が、撮像画像の撮像時における撮像空間の鉛直方向と垂直な方向とされる場合には、スイープ軸に垂直な軸は、鉛直方向とされる。
【0111】
ステップST21において、画像合成部311は、撮像画像を合成してパノラマ画像を生成する。画像合成部311は、接続ライン選択部309で選択された接続ライン情報で示された接続ラインで、画像射影部310から供給されたパノラマ座標系に射影された撮像画像の接続を行い、1枚のパノラマ画像を生成する。また、接続ラインで撮像画像を接続した場合、接続ラインで色の違い等が目立ってしまうおそれがある。したがって、画像合成部311は、接続ラインを基準として接続領域を設けて、この接続領域においてブレンディング処理を行い、接続する撮像画像を重み付き加算するようにしてもよい。
【0112】
図14は、撮像画像の接続について説明する図である。図14は、位置SM(t-1,t)である第2接続ラインで、撮像画像I(t-1)と撮像画像I(t)を接続する場合を示している。なお、図14において横方向はスイープ方向を示しており、2つの連続するフレームの撮像画像I(t-1)と撮像画像I(t)が、パノラマ座標系上に並べられている。また、図14の(A)は、パノラマ画像に用いられる有効領域を斜線の領域として示している。図14の(B)は、撮像画像I(t-1)に対する重みW(t-1)、図14の(C)は、撮像画像I(t)に対する重みW(t)を示している。
【0113】
例えば、接続領域は、接続ラインの位置SM(t-1,t)が接続領域の中央位置となるように、位置SL(t-1,t)から位置SR(t-1,t)までの範囲とする。このとき、撮像画像I(t-1)では、位置SR(t-1,t)までの領域が有効領域R(t-1)となる。また、撮像画像I(t)では、位置SL(t-1,t)からの領域が撮像画像I(t)の有効領域R(t)となる。
【0114】
重み付けは、接続領域における有効領域の端部側で「0」として他方の端部側で「1」とする。また、図14の(B)(C)では、線OMa,OMbによって重み付けが設定される。なお、重み付けは線OMa,OMbによって設定する場合に限られるものではない。重み付けは、接続領域の各位置で撮像画像I(t-1)に対する重み付けと撮像画像I(t)に対する重み付けの和が「1」であって、有効領域の端部側で「0」となるように順次減少させるように設定する。
【0115】
このように接続ラインを基準として接続領域を設定して、接続領域内で撮像画像I(t-1)と撮像画像I(t)との合成比率を変化させて、撮像画像I(t-1)から撮像画像I(t)への画像の切り換えを順次行う。したがって、より高品質なパノラマ画像を得ることができる。すなわち、接続される2つの有効領域の互いに重なる部分において、被写体の位置にずれがあったり、画素の色が異なったりする場合であっても、重み付き加算によりスムージング効果が得られる。これにより、被写体の一部が欠損したり、パノラマ画像に色のむらが生じたりすることを抑制することができ、より自然なパノラマ画像を得ることができる。
【0116】
画像合成部311は、このようにして、パノラマ座標系上の互いに隣接する撮像画像の有効領域を接続し、1つのパノラマ画像を生成する。さらに、画像合成部311は、トリミングを行い、接続された有効領域からなる1つの画像の一部の領域をパノラマ画像としてもよい。
【0117】
図15は、パノラマ画像のトリミングについて説明する図である。例えば、撮像装置10をスイープさせて撮像画像を生成すると、撮像装置10が仰角を生じている場合、図15の(A)に示すように、連続して撮像された撮像画像I(0)〜I(6)は、画像間で2次元の回転を生じて、パノラマ座標系上で上下方向にばらつきを生じる。なお、スイープ軸は、各撮像画像の長手方向となっている。
【0118】
そのため、各撮像画像の有効領域を接続して得られる1つの画像は、矩形状とならなくなる。そこで、画像合成部311は、図15の(B)に示すように、撮像画像I(0)〜I(6)の有効領域を接続して得られる画像全体の領域に内接する、最も大きい矩形領域P11を切り出して、パノラマ画像とする。このとき、矩形領域P11の長辺は、スイープ軸と平行になるようにされる。このように、トリミングを行うことにより、矩形状のパノラマ画像を得ることができる。
【0119】
このようにしてパノラマ画像が生成されると、画像合成部311は、生成したパノラマ画像を出力して、撮像装置10におけるパノラマ画像の生成処理は終了する。
【0120】
例えば、画像合成部311から出力されたパノラマ画像は、符号化/復号化部41で符号化されてメモリ42に記録されたり、D/A変換部43およびビデオエンコーダ44を介して表示部45に出力されて画像表示が行われる。
【0121】
以上のように、撮像装置10は、撮像画像から異なる複数のアルゴリズムで接続ラインを定める。また、撮像装置10は、被写体情報をスイープ方向に射影して接続ラインを定める。さらに、撮像装置10は、撮像条件に応じて、最適なパノラマ画像が得られるように接続ラインを選択して、選択した接続ラインで撮像画像の接続(合成)を行いパノラマ画像を生成する。
【0122】
このように、撮像装置10では、被写体情報をスイープ方向に射影して接続ラインを定めるようにしたので、より低い計算コストで、より高品質なパノラマ画像を得ることができる。
【0123】
すなわち、従来の技術では、図1を参照して説明したように、2次元探索により接続ライン(つなぎ目SL)を定めれば、動被写体がぼけてしまったり、動被写体が分断されてしまったりするという問題を解決して、より高品質なパノラマ画像を得ることができる。しかしながら2次元探索では、計算コストが高く、2次元探索のために必要なメモリの記録容量も多く必要となってしまう。
【0124】
これに対して、撮像装置10では、各領域の被写体情報からなる2次元の情報をスイープ軸という1次元の軸に射影するため、1次元探索により接続ラインを定めることができる。これにより、動被写体のぼけや分断を防止し、より低い計算コストで、より高品質なパノラマ画像を得られるだけでなく、メモリの記録容量も削減することができる。
【0125】
また、複数のアルゴリズムで接続ラインが設定されて、撮像条件に応じて最適な接続ラインが選択される。このため、撮像画像間で2次元の回転を生じるような撮像条件で撮像を行っても、撮像条件に応じて最適な接続ラインが選択されるので、つなぎ目の目立たない高品質のパノラマ画像を容易に生成できる。
【0126】
さらに、撮像条件に応じて最適な接続ラインが自動的に選択されるので、接続ラインを設定するアルゴリズムを、ユーザーが撮影の前あるいは後に明示的に選択、指示をしなくても高画質なパノラマ画像を高速に得ることができるようになる。このため、ユーザーの利便性を向上させることができる。
【0127】
[5.被写体情報の他の例]
なお、以上においては、被写体情報としての評価値は、撮像画像全体の動きベクトルと、ブロックの動きベクトルとの差分絶対値とされると説明したが、被写体情報は、撮像画像上の被写体に関する情報であれば、どのようなものであってもよい。
【0128】
例えば、図16に示す撮像画像I(t)と撮像画像I(t+1)との重なる部分の領域である重複領域DR内の画素について、撮像画像I(t)の画素の画素値と、その画素と同じ位置にある撮像画像I(t+1)の画素の画素値との差分絶対値とされてもよい。なお、図16において、この場合、撮像画像I(t)と撮像画像I(t+1)とが動き補償パラメータに基づいて、並べられている。
【0129】
動被写体検出部306は、撮像画像I(t)のxy座標系上の位置(x,y)の画素の評価値cost(x,y)を、次式(2)により算出する。なお、図16において、横方向はx方向とされ、縦方向はy方向とされている。また、重複領域DRの左上の頂点がxy座標系の基準位置とされており、x方向はスイープ軸の方向と同じ方向とされている。
cost(x,y)=|It(x,y)−It+1(x,y)| ・・・(2)
【0130】
ここで、式(2)において、It(x,y)およびIt+1(x,y)は、座標が(x,y)である撮像画像I(t)および撮像画像I(t+1)の画素の画素値を示している。
【0131】
このような評価値を被写体情報とする場合には、撮像画像上の画素値の差分絶対値が小さい領域では、接続による被写体の位置ずれは小さいと判断されることになる。画素値の差分絶対値を評価値とすれば、動被写体の動きによる位置ずれだけでなく、視差や撮像装置10の動きに対する動き補償の精度不足による被写体の位置ずれなども、評価値に反映することができるというメリットがある。
【0132】
さらに、図17に示すように、人の顔の検出を利用して、人の顔らしさを指標とする評価値を被写体情報として求めるようにしてもよい。なお、図17では、撮像画像I(t)と撮像画像I(t+1)とが動き補償パラメータに基づいて、並べられている。
【0133】
動被写体検出部306は、撮像画像I(t)における、撮像画像I(t+1)と重なる重複領域を対象として、人の顔を検出する。その結果、撮像画像I(t)上の人の顔が含まれると推定される所定の大きさの領域(以下、顔領域と称する)と、その顔領域に対する人の顔の領域らしさの度合いを示す得点とが得られる。この得点は、顔領域が人の顔らしいほど高くなる。
【0134】
そして、動被写体検出部306は、撮像画像I(t)の重複領域の位置ごとに評価値を求める。すなわち、その位置が顔領域に含まれていれば、顔領域の得点の値がその位置の評価値とされ、その位置が顔領域に含まれていなければ、その位置の評価値は「0」とされる。
【0135】
同様の処理を行って、動被写体検出部306は、撮像画像I(t+1)における撮像画像I(t)と重なる領域を対象として人の顔を検出し、撮像画像I(t+1)の各位置における評価値を求める。さらに動被写体検出部306は、撮像画像I(t)の重複領域の各位置について求めた評価値に、それらの位置と重なる撮像画像I(t+1)の位置の評価値を加算して得られた値を、撮像画像I(t)の重複領域の各位置の最終的な評価値とする。
【0136】
図17の例では、重複領域のほぼ中央に人の顔が含まれているので、重複領域の中央付近の位置の評価値が高くなるはずである。撮像画像には、動被写体として人が含まれることが多いが、人の顔を指標とする評価値を被写体情報とする方法は、撮像画像の接続時において、人の手足や胴体よりも顔の部分が接続ラインにより分断されることを回避したい場合に有効である。
【0137】
さらに、図18に示すように、人検出を利用して、人らしさを指標とする評価値を被写体情報として求めるようにしてもよい。なお、図18では、撮像画像I(t)と撮像画像I(t+1)とが動き補償パラメータに基づいて、並べられている。
【0138】
動被写体検出部306は、撮像画像I(t)における、撮像画像I(t+1)と重なる重複領域を対象として、人を検出する。その結果、撮像画像I(t)上の人が含まれると推定される所定の大きさの領域(以下、人領域と称する)と、その人領域に対する人の領域らしさの度合いを示す得点とが得られる。この得点は、人領域が人らしいほど高くなる。
【0139】
そして、動被写体検出部306は、撮像画像I(t)の重複領域の位置ごとに評価値を求める。すなわち、その位置が人領域に含まれていれば、人領域の得点の値がその位置の評価値とされ、その位置が人領域に含まれていなければ、その位置の評価値は「0」とされる。
【0140】
同様の処理を行って、動被写体検出部306は、撮像画像I(t+1)における撮像画像I(t)と重なる領域を対象として人を検出し、撮像画像I(t+1)の各位置における評価値を求める。さらに動被写体検出部306は、撮像画像I(t)の重複領域の各位置について求めた評価値に、それらの位置と重なる撮像画像I(t+1)の位置の評価値を加算して得られた値を、撮像画像I(t)の重複領域の各位置の最終的な評価値とする。
【0141】
図18の例では、重複領域の中央から右側および左側に、それぞれ人が含まれているので、重複領域の中央からやや右側および左側の位置の評価値が高くなるはずである。このように、人全体を指標とする評価値を被写体情報とする方法は、撮像画像の接続時において、人全体が接続ラインにより分断されることを回避したい場合に有効である。
【0142】
また、図9および図16乃至図18のそれぞれを参照して説明した評価値のいくつかを組み合わせて、被写体情報とするようにしてもよい。
【0143】
例えば、図9を参照して説明した評価値と、図17を参照して説明した評価値との和を、撮像画像の各位置の評価値(被写体情報)としてもよい。この場合、人の顔の領域に対して、より大きい評価値を設定することができる。
【0144】
また、例えば、図9を参照して説明した評価値と、図17を参照して説明した評価値との和を被写体情報としてもよく、図9、図17、および図18を参照して説明した評価値のそれぞれの和を被写体情報としてもよい。これらの場合には、撮像画像上の位置ごとに評価値の和が求められ、求められた和が各位置の被写体情報とされる。
【0145】
[6.接続ラインの決定順の他の例]
さらに、以上においては、フレーム番号の小さい順に、撮像画像の接続ラインを定めていくと説明したが、接続ラインを定める順番は、どのような順番であってもよい。すなわち、所定のフレームを基準として、そのフレームの撮像画像から順番に接続ラインを定めていってもよい。
【0146】
例えば、図19の(A)に示すように、撮像画像の撮像対象となる撮像空間上の領域において、動被写体としての人が、左から右方向に移動していたとする。このような状態において、左から右方向をスイープ方向として撮像装置10が複数の撮像画像を撮像した結果、図19の(B)に示すように、撮像画像I(0)〜I(6)の7つの撮像画像が得られたとする。
【0147】
この例では、撮像画像I(2)〜I(4)に、動被写体として同じ人が含まれている。撮像画像の撮像時においては、動被写体としての人は、左から右方向に移動するので、最初に人が含まれるフレームの撮像画像I(2)では、画像の左端に人が表示されている。また、次に人が含まれる撮像画像I(3)では、画像の中央に人が表示されており、さらにその次に人が含まれる撮像画像I(4)では、画像の右側に人が表示されている。
【0148】
このような場合、撮像画像I(0)から撮像画像I(6)まで順番に接続ラインを定めていってもよい。しかしながら、接続ラインは、動被写体の領域を回避するように定められるため、所定の接続ラインにおける動被写体の領域の回避のしわ寄せが、次の接続ラインの決定に影響を与える場合がある。すなわち、動被写体が含まれるフレームが連続しているようなシーンでは、接続ラインを決定する順番によって、どのようなパノラマ画像が得られるかが異なる場合がある。
【0149】
そこで、第2接続ライン設定部308において、どのフレームの撮像画像を優先的に扱うかを決定し、決定されたフレームを基準フレームとする。さらに、基準フレームの撮像画像から、撮像画像が撮像された順番であるフレーム番号の昇順および降順のそれぞれの方向に、順次接続ラインが決定されてもよい。
【0150】
そのような場合、基準フレームを決定する指標として、例えば動被写体の中央度が考えられる。すなわち、動被写体検出部306は、撮像画像I(0)〜I(6)について、連続する2つのフレームの撮像画像を用いて、各撮像画像から動被写体を検出する。動被写体の検出は、例えば図9を用いて説明したように、撮像画像の重複領域をブロックに分割し、ブロックごとの動きベクトルと撮像画像全体の動きベクトルとの差分を求めることで行われる。これにより、撮像画像の各領域における動被写体の有無が検出される。例えば、求めた差分の絶対値が所定の閾値以上の領域が動被写体の領域とされる。
【0151】
次に、動被写体検出部306は、動被写体の検出結果に基づいて、撮像画像ごとに、動被写体の中央度のスコアを求める。例えば、中央度のスコアは、撮像画像における動被写体の位置により定められ、動被写体の位置が撮像画像の中央に近いほど、より中央度のスコアが高くなるようにされる。なお、1つの撮像画像に複数の動被写体が含まれる場合には、それらの動被写体ごとに求められたスコアの総和が最終的な中央度のスコアとされる。
【0152】
したがって、より中央に近い位置に動被写体が含まれる撮像画像ほど、中央度のスコアは高くなることになる。また、より多くの動被写体が含まれる撮像画像ほど、中央度のスコアは高くなる。中央度のスコアによれば、複数の撮像画像のうち、動被写体が最も画像上の中央に近い位置にある撮像画像を特定することができる。
【0153】
図19の例では、撮像画像I(3)の中央度のスコアが最も高くなる。このようにして求められたフレームごとの中央度のスコアは、被写体情報とともに動被写体検出部306から被写体情報射影部307を介して、第2接続ライン設定部308に出力される。
【0154】
そして、第2接続ライン設定部308では、撮像画像の各フレームのうち、最も中央度のスコアの高いフレームを基準フレームとして、基準フレームの撮像画像から順番に、第2接続ラインが決定される。
【0155】
したがって図19の例では、撮像画像I(3)のフレームが基準とされて、まず、撮像画像I(3),I(4)との第2接続ラインが定められ、その後、昇順に撮像画像I(4),I(5)との第2接続ライン、撮像画像I(5),I(6)との第2接続ラインが順番に定められる。さらに、その後、基準フレームから降順に、撮像画像I(3),I(2)との第2接続ライン、撮像画像I(2),I(1)との第2接続ライン、および撮像画像I(1),I(0)との第2接続ラインが順番に定められる。
【0156】
すると、第2接続ラインを用いてパノラマ画像の生成が行われたとき、図20の(A)に示すように、動被写体が中央に表示されるパノラマ画像が得られることになる。
【0157】
撮像画像の撮像時においては、撮像対象となる全領域の中央付近に人体が位置するように、撮像装置10がスイープされながら複数の撮像画像が撮像されることが多い。そのため、人体が含まれる連続するフレームのうち、それらのフレームの真ん中付近のフレームにおいて、撮像対象となる全領域の中央付近に人体が存在し、そのフレームでは撮像画像の中央に人体が位置しているはずである。
【0158】
したがって、人体が含まれるフレームのうち、撮像画像の中央に人体が位置しているフレームを基準フレームとして、基準フレームから順番に接続ラインを決定する。このようにすれば、図20の(A)に示すようにほぼ中央に動被写体が表示されるパノラマ画像が得られることになる。
【0159】
なお、図19の(B)において、左端付近に動被写体がある撮像画像I(2)のフレームを基準フレームとして、撮像画像I(2)から順番に第2接続ラインを定めると、図20の(B)に示されるように、中央からやや左側に動被写体が表示されるパノラマ画像が得られる。同様に、図19の(B)において、右端付近に人体がある撮像画像I(4)のフレームを基準フレームとして、撮像画像I(4)から順番に接続ラインを定めると、図20の(C)に示すように、中央からやや右側に動被写体が表示されるパノラマ画像が得られる。
【0160】
このように、撮像画像における動被写体の位置などを指標として、特定の基準フレームの撮像画像から順番に、第2接続ラインを定めれば、より見映えのよいパノラマ画像を得ることができるようになる。
【0161】
[7.処理をプログラムにより実行する場合]
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【0162】
図21は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【0163】
コンピュータ60において、CPU(Central Processing Unit)61、ROM(Read Only Memory)62、RAM(Random Access Memory)63は、バス64により相互に接続されている。
【0164】
バス64には、さらに、入出力インタフェース65が接続されている。入出力インタフェース65には、キーボード、マウス、マイクロホンなどよりなる入力部66、ディスプレイ、スピーカなどよりなる出力部67、ハードディスクや不揮発性のメモリなどよりなる記録部68、ネットワークインタフェースなどよりなる通信部69、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどのリムーバブルメディア80を駆動するドライブ71が接続されている。
【0165】
以上のように構成されるコンピュータでは、CPU61が、例えば、記録部68に記録されているプログラムを、入出力インタフェース65およびバス64を介して、RAM63にロードして実行することにより、上述した一連の処理が行われる。
【0166】
コンピュータ(CPU61)が実行するプログラムは、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD−ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア80に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
【0167】
そして、プログラムは、リムーバブルメディア80をドライブ71に装着することにより、入出力インタフェース65を介して、記録部68にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部69で受信し、記録部68にインストールすることができる。その他、プログラムは、ROM62や記録部68に、あらかじめインストールしておくことができる。
【0168】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであってもよいし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであってもよい。
【0169】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であり、本発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【産業上の利用可能性】
【0170】
この発明の画像処理装置および方法、並びにプログラムでは、撮像方向を順次変化させて撮像を行うことにより得られた複数枚の撮像画像間の撮像を行った撮像装置における相対的な動きを補償するパラメータが算出される。この動き補償パラメータに基づき撮像画像が互いに重なる重複領域を判別して、この重複領域におけるスイープ方向の中央位置が第1接続ライン設定部で信号第1接続ラインと設定される。また、重複領域における撮像画像を用いて動被写体の検出が行われて被写体情報が生成されて、被写体情報が撮像方向の変化方向であるスイープ軸に射影される。この射影された被写体情報に基づいて第2接続ラインが設定される。さらに、撮像画像間の2次元の回転を生じる撮像条件について検出が行われて、検出された撮像条件に応じて第1接続ラインまたは第2接続ラインが選択されて、選択された接続ラインが隣接する撮像画像の接続ラインとされる。このため、撮像条件に適した接続ラインが選択されて、選択された接続ライン位置で撮像画像を接続することで、高品質のパノラマ画像を容易に生成できるので、デジタルカメラ等の撮像装置や、撮像方向を順次変化させて撮像を行うことにより得られた複数枚の撮像画像を処理する画像処理装置に適している。
【符号の説明】
【0171】
10・・・撮像装置、21・・・レンズ、22・・・絞り、23・・・撮像素子、24・・・サンプリング部、25・・・A/D変換部、30・・・ 画像処理部、41・・・符号化/復号化部、42・・・メモリ、43・・・D/A変換部、44・・・ビデオエンコーダ、45・・・表示部、46・・・タイミング信号生成部、47・・・操作入力部、48・・・ドライバ、50・・・制御部、51・・・バス、60・・・コンピュータ、61・・・CPU、62・・・ROM、63・・・RAM、64・・・バス、65・・・入出力インタフェース部、66・・・入力部、67・・・出力部、68・・・記録部、69・・・通信部、71・・・ドライブ、80・・・リムーバブルメディア、301・・・撮像画像保持部、302・・・円筒射影部、303・・・動き補償パラメータ算出部、304・・・撮像条件検出部、305・・・第1接続ライン設定部、306・・・動被写体検出部、307・・・被写体情報射影部、308・・・第2接続ライン設定部、309・・・接続ライン選択部、310・・・画像射影部、311・・・画像合成部
【技術分野】
【0001】
本発明は画像処理装置および方法、並びにプログラムに関する。詳しくは、高品質なパノラマ画像を得ることができるようにした画像処理装置および方法、並びにプログラムに関する。
【背景技術】
【0002】
従来、カメラ一体型デジタルVCR等で撮像された複数の静止画像を重ね合わせて合成することで、パノラマ画像を生成する技術が知られている(例えば、特許文献1参照)。パノラマ画像は、複数の静止画像を並べて合成することで得られる画像であるので、パノラマ画像によれば、1つの静止画像の撮像時に撮像対象となる空間上の領域よりも、より広い領域を被写体として表示することができる。
【0003】
また、静止画像の張り合わせを行うときのつなぎ目を決定する方法として、グラフ理論における最短経路問題の解法を利用する方法が提案されている(例えば、非特許文献1参照)。
【0004】
この方法では、例えば図1に示すように、隣接する2つの静止画像I(t)と静止画像I(t+1)の互いに重複する領域内に位置する、つなぎ目SJが決定される。なお、図1において、横方向および縦方向は、それぞれx方向およびy方向を示しており、静止画像I(t)および静止画像I(t+1)は、xy座標系上に重ねられて並べられている。また、重複する領域の四隅の座標は、「(Qx0,Qy0),(Qx0,Qy1),(Qx1,Qy0),(Qx1,Qy1)」とする。
【0005】
図1の例では、静止画像I(t)と静止画像I(t+1)との重なる領域において算出されたコスト値から、最小コストとなるつなぎ目SJの算出が行われる。具体的には、静止画像上の動被写体には高いコストが設定され、逆に静止している被写体には低いコストが設定されて2次元のグラフが生成され、最小コストのつなぎ目SJが決定される。したがって、静止画像上の動被写体が分断されないようなつなぎ目SJが得られることになる。
【0006】
つなぎ目SJが算出されると、静止画像I(t)の左側の端からつなぎ目SJ近傍の領域までの部分と、静止画像I(t+1)のつなぎ目SJ近傍の領域から静止画像I(t+1)の右端までの部分とが合成されて、パノラマ画像とされる。
【0007】
このようにつなぎ目SJを求めて、各静止画像を合成することで、合成時における画像のつなぎ目が目立たない位置で接続されるため、より高品質なパノラマ画像を得ることができるようになる。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2003−198902号公報
【非特許文献】
【0009】
【非特許文献1】飯吉建彰,三橋渉著「パノラマ画像作成のための画像モザイク生成方法」画像ラボ2008年6月号、日本工業出版、2008年8月5日発行、p.6-11
【発明の概要】
【発明が解決しようとする課題】
【0010】
ところで、グローバルモーションベクトルで動き補償を行うパノラマ合成処理において、重複領域における撮像方向の変化方向に対する中央位置で接続を行う場合は、スイープ速度が一定とみなせる状況では各画像における接続ラインの位置はほぼ一定となる。これに対し、画像のつなぎ目が動被写体の位置とならないように画像合成を行う場合、動被写体の有無によって接続ラインの位置は画像間で一定とはならない。この性質のため、合成する画像間で回転成分を有している場合、重複領域における撮像方向の変化方向に対する中央位置で接続を行う場合は、回転成分による接続誤差は画像間で一定になるが、画像のつなぎ目が動被写体の位置とならないように画像合成を行う場合は画像間でまちまちとなるため、合成されたパノラマ画像は、つなぎ目の接続誤差による破綻の影響が非常に大きくなる。
【0011】
そこで、この発明では、高品質のパノラマ画像を容易に生成できる画像処理装置および方法、並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明の第1の側面は、撮像方向を順次変化させて撮像を行うことにより得られた複数枚の撮像画像間の前記撮像を行った撮像装置における相対的な動きを補償するパラメータを算出する動き補償パラメータ算出部と、前記動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、該重複領域における前記撮像方向の変化方向に対する中央位置を第1接続ラインとする第1接続ライン設定部と、前記動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、該重複領域における撮像画像を用いて動被写体の検出を行い被写体情報を生成する動被写体検出部と、前記重複領域における前記被写体情報を前記撮像方向の変化方向であるスイープ軸に射影する被写体情報射影部と、前記射影された被写体情報に基づいて第2接続ラインの設定を行う第2接続ライン設定部と、前記撮像画像間の2次元の回転を生じる撮像条件について検出を行う撮像条件検出部と、前記検出された撮像条件に応じて、前記第1接続ラインまたは前記第2接続ラインを選択して、選択した接続ラインを前記隣接する撮像画像の接続ラインとする接続ライン選択部とを有する画像処理装置にある。
【0013】
本発明において、動き補償パラメータ算出部は、撮像方向を順次変化させて撮像を行うことにより得られた複数枚の撮像画像間の撮像を行った撮像装置における相対的な動きを補償するパラメータ、例えばグローバルベクトルを算出する。第1接続ライン設定部は、動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、重複領域における撮像方向の変化方向、すなわちスイープ方向の中央位置を第1接続ラインとする。動被写体検出部は撮像画像が重なる重複領域における撮像画像を用いて動被写体の検出を行い、例えば動き量に応じた評価値を被写体情報とする。被写体情報射影部は、スイープ軸と直交する方向にある撮像画像上の各位置の評価値を積分することで被写体情報をスイープ軸に射影する。第2接続ライン設定部は、射影後の被写体情報すなわち評価値の積分値が最小となる位置を第2接続ラインとする。撮像条件検出部は、撮像画像間の2次元の回転を生じる撮像条件について検出を行う。例えば撮像画像間の2次元の回転角度、または姿勢検出部によってスイープ軸に対して直交する撮像装置の撮像方向の角度を検出する。接続ライン選択部は、回転角度または撮像方向の角度が予め設定されている閾値範囲よりも大きいとき第1接続ラインを選択して、閾値範囲内であるとき第2接続ラインを選択する。さらに、動き補償パラメータを利用して、複数枚の撮像画像を画像射影部によってパノラマ座標系に射影して、この射影された撮像画像の接続を選択された接続ラインの位置で画像合成部によって行う。
【0014】
本発明の第2の側面は、動き補償パラメータ算出部で、撮像方向を順次変化させて撮像を行うことにより得られた複数枚の撮像画像間の前記撮像を行った撮像装置における相対的な動きを補償するパラメータを算出するステップと、第1接続ライン設定部で、前記動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、該重複領域における前記撮像方向の変化方向に対する中央位置を第1接続ラインとするステップと、動被写体検出部で、前記動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、該重複領域における撮像画像を用いて動被写体の検出を行い被写体情報を生成するステップと、被写体情報射影部で、前記重複領域における前記被写体情報を前記撮像方向の変化方向であるスイープ軸に射影するステップと、第2接続ライン設定部で、前記射影された被写体情報に基づいて第2接続ラインの設定を行うステップと、撮像条件検出部で、前記撮像画像間の2次元の回転を生じる撮像条件について検出を行うステップと、接続ライン選択部で、前記検出された撮像条件に応じて、前記第1接続ラインまたは前記第2接続ラインを選択して、選択した接続ラインを前記隣接する撮像画像の接続ラインとするステップとを具備する画像処理方法にある。
【0015】
本発明の第3の側面は、コンピュータを、撮像方向を順次変化させて撮像を行うことにより得られた複数枚の撮像画像間の前記撮像を行った撮像装置における相対的な動きを補償するパラメータを算出する動き補償パラメータ算出部として動作させる機能手段と、前記動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、該重複領域における前記撮像方向の変化方向に対する中央位置を第1接続ラインとする第1接続ライン設定部として動作させる機能手段と、前記動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、該重複領域における撮像画像を用いて動被写体の検出を行い被写体情報を生成する動被写体検出部として動作させる機能手段と、前記重複領域における前記被写体情報を前記撮像方向の変化方向であるスイープ軸に射影する被写体情報射影部として動作させる機能手段と、前記射影された被写体情報に基づいて第2接続ラインの設定を行う第2接続ライン設定部として動作させる機能手段と、前記撮像画像間の2次元の回転を生じる撮像条件について検出を行う撮像条件検出部として動作させる機能手段と、前記検出された撮像条件に応じて、前記第1接続ラインまたは前記第2接続ラインを選択して、選択した接続ラインを前記隣接する撮像画像の接続ラインとする接続ライン選択部として動作させる機能手段として機能させるためのプログラムにある。
【0016】
なお、本発明のプログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、光ディスクや磁気ディスク、半導体メモリなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【発明の効果】
【0017】
本発明によれば、撮像方向を順次変化させて撮像を行うことにより得られた複数枚の撮像画像間の撮像を行った撮像装置における相対的な動きを補償するパラメータが算出される。この動き補償パラメータに基づき撮像画像が互いに重なる重複領域を判別して、この重複領域におけるスイープ方向の中央位置が第1接続ライン設定部で信号第1接続ラインと設定される。また、重複領域における撮像画像を用いて動被写体の検出が行われて被写体情報が生成されて、被写体情報が撮像方向の変化方向であるスイープ軸に射影される。この射影された被写体情報に基づいて第2接続ラインが設定される。また、撮像画像間の2次元の回転を生じる撮像条件について検出が行われて、検出された撮像条件に応じて第1接続ラインまたは第2接続ラインが選択されて、選択された接続ラインが隣接する撮像画像の接続ラインとされる。このため、撮像条件に適した接続ラインが選択されて、選択された接続ライン位置で撮像画像を接続することで、高品質のパノラマ画像を容易に生成できる。
【図面の簡単な説明】
【0018】
【図1】従来のつなぎ目の探索方法を説明する図である。
【図2】本発明を適用した撮像装置の一実施の形態の構成例を示す図である。
【図3】画像処理部の構成例を示す図である。
【図4】パノラマ画像の生成処理を説明するフローチャートである。
【図5】撮像画像の円筒面への射影について説明する図である。
【図6】撮像面と円筒面の関係を説明する図である。
【図7】撮像方向の傾きと撮像画像間の回転角度の関係を説明する図である。
【図8】第1接続ラインの設定について説明する図である。
【図9】動被写体の検出と被写体情報の生成について説明する図である。
【図10】スイープ軸の各位置の動被写体スコアについて説明する図である。
【図11】接続ラインの探索について説明する図である。
【図12】接続ラインの設定順序について説明する図である。
【図13】選択された接続ラインを例示した図である。
【図14】撮像画像の接続について説明する図である。
【図15】パノラマ画像のトリミングについて説明する図である。
【図16】被写体情報の他の例について説明する図である。
【図17】被写体情報の他の例について説明する図である。
【図18】被写体情報の他の例について説明する図である。
【図19】接続ラインの決定順について説明する図である。
【図20】接続ラインの決定順について説明する図である。
【図21】コンピュータの構成例を示す図である。
【発明を実施するための形態】
【0019】
以下、発明を実施するための形態について説明する。なお、説明は以下の順序で行う。
1.撮像装置の構成
2.撮像装置の動作
3.画像処理部の構成
4.パノラマ画像の生成処理
5.被写体情報の他の例
6.接続ラインの決定順の他の例
7.処理をプログラムにより実行する場合
【0020】
[1.撮像装置の構成]
図2は、本発明を適用した撮像装置の一実施の形態の構成を示す図である。撮像装置10は、光学系、信号処理系、記録系、表示系、および制御系から構成される。
【0021】
光学系は、被写体の光画像を集光するレンズ21、レンズ21からの光画像の光量を調整する絞り22、および集光された光画像を光電変換して電気信号に変換する撮像素子23から構成される。撮像素子23は、例えばCCD(Charge Coupled Devices)イメージセンサやCMOS(Complementary Metal Oxide Semiconductor)イメージセンサなどからなる。
【0022】
信号処理系は、サンプリング部24、A/D(Analog/Digital)変換部25、および画像処理部30から構成される。サンプリング部24は、例えば、相関2重サンプリング部(CDS:Correlated Double Sampling)によって実現され、撮像素子23からの電気信号をサンプリングしてアナログ信号を生成する。これにより、撮像素子23において発生するノイズが軽減される。サンプリング部24において得られるアナログ信号は、撮像された被写体の画像を表示させる画像信号である。
【0023】
A/D変換部25は、サンプリング部24から供給されるアナログ信号をデジタル信号に変換して、画像処理部30に出力して、画像処理部30は、A/D変換部25から入力されるデジタル信号に所定の画像処理を施す。
【0024】
また、記録系は、画像信号を符号化または復号する符号化/復号化部41と、画像信号を記録するメモリ42とから構成される。符号化/復号化部41は、画像処理部30によって処理されたデジタル信号である画像信号を符号化してメモリ42に記録させたり、メモリ42から画像信号を読み出して復号し、画像処理部30に出力したりする。
【0025】
表示系は、D/A(Digital/Analog)変換部43、ビデオエンコーダ44、および表示部45から構成される。
【0026】
D/A変換部43は、画像処理部30によって処理された画像信号をアナログ化してビデオエンコーダ44に出力して、ビデオエンコーダ44は、D/A変換部43からの画像信号を表示部45に適合する形式のビデオ信号にエンコードする。表示部45は、例えば、LCD(Liquid Crystal Display)等により実現され、ビデオエンコーダ44におけるエンコードで得られたビデオ信号に基づいて、ビデオ信号に対応する画像を表示する。また、表示部45は、被写体の撮像時にはファインダとしても機能する。
【0027】
制御系は、タイミング生成部46、操作入力部47、ドライバ48、および制御部50から構成される。また、画像処理部30、符号化/復号化部41、メモリ42、タイミング生成部46、操作入力部47、および制御部50は、バス51を介して相互に接続されている。
【0028】
タイミング生成部46は、撮像素子23、サンプリング部24、A/D変換部25、および画像処理部30の動作のタイミングを制御する。操作入力部47は、ボタンやスイッチなどからなり、ユーザによるシャッタ操作やその他のコマンド入力を受け付けて、ユーザの操作に応じた信号を制御部50に出力する。
【0029】
ドライバ48には所定の周辺機器が接続され、ドライバ48は接続された周辺機器を駆動する。例えばドライバ48は、周辺機器として接続された磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ等の記録媒体からデータを読み出して制御部50に出力する。なお、撮像装置10に姿勢検出部49を設けてもよい。姿勢検出部49は、撮像時における撮像装置10の姿勢を検出して、検出結果を画像処理部30に出力する。姿勢検出部49としては、例えば加速度センサや角速度センサ、傾斜センサ等を用いて撮像装置10の姿勢を検出する。
【0030】
制御部50は、撮像装置10の全体を制御する。例えば、制御部50は、ドライバ48を介して、ドライバ48に接続されている記録媒体から制御用プログラムを読み出して、制御用プログラムや操作入力部47からのコマンド等に基づいて、撮像装置10全体の動作を制御する。
【0031】
[2.撮像装置の動作]
次に、撮像装置10の動作について説明する。撮像装置10では、被写体からの入射光、すなわち被写体の光画像は、レンズ21および絞り22を介して撮像素子23に入射し、撮像素子23によって光電変換されて電気信号とされる。撮像素子23で得られた電気信号は、サンプリング部24によってノイズ成分が除去され、A/D変換部25によってデジタル化された後、画像処理部30が内蔵する図示せぬ画像メモリに一時的に格納される。
【0032】
なお、通常の状態、つまりシャッタ操作前の状態では、タイミング生成部46による信号処理系に対するタイミング制御により、画像処理部30の画像メモリには、一定のフレームレートで、絶えずA/D変換部25からの画像信号を上書きするようになされている。画像処理部30の画像メモリ内の画像信号は、D/A変換部43によってデジタル信号からアナログ信号に変換され、ビデオエンコーダ44によってビデオ信号に変換されて、ビデオ信号に対応する画像が表示部45に表示される。
【0033】
この場合において、表示部45は、撮像装置10のファインダとしての機能も担っており、ユーザは、表示部45に表示される画像を見ながら構図を定め、操作入力部47としてのシャッタボタンを押下して、画像の撮像を指示する。シャッタボタンが押下されると、制御部50は、操作入力部47からの信号に基づいて、タイミング生成部46に対し、シャッタボタンが押下された直後の画像信号が保持されるように指示する。これにより、画像処理部30の画像メモリに画像信号が上書きされないように、信号処理系が制御される。
【0034】
そして、その後、画像処理部30の画像メモリに保持されている画像信号が、符号化/復号化部41によって符号化されてメモリ42に記録される。以上のような撮像装置10の動作によって、1枚の画像信号の取り込みが完了する。
【0035】
[3.画像処理部の構成]
図3は、図2に示す画像処理部30の構成を示している。画像処理部30は、撮像画像保持部301、円筒射影部302、動き補償パラメータ算出部303、撮像条件検出部304、第1接続ライン設定部305、動被写体検出部306、被写体情報射影部307、第2接続ライン設定部308、接続ライン選択部309、画像射影部310、および画像合成部311から構成される。
【0036】
撮像画像保持部301には、撮像装置10により撮像された被写体の画像(以下、撮像画像と称する)が供給される。撮像画像保持部301は、供給された複数の撮像画像を保持する。撮像画像保持部301に供給される撮像画像は、撮像装置10が所定方向に移動(スイープ)している状態で連続して撮像された画像であり、撮像画像の撮像時には、連続して撮像される2つの撮像画像上に同じ被写体が含まれるように、撮像装置10が移動される。
【0037】
なお、以下、連続して撮像された撮像画像のうち、t番目に撮像された撮像画像をフレームF(t)の撮像画像I(t)とも称することとする。
【0038】
円筒射影部302は、撮像画像保持部301から撮像画像を読み出して、読み出した撮像画像を円筒面に射影する。円筒射影部302は、円筒面に射影された撮像画像を、動き補償パラメータ算出部303、動被写体検出部306および画像射影部310に出力する。
【0039】
動き補償パラメータ算出部303は、円筒射影部302からの撮像画像に基づいて、撮像画像のフレーム間における、撮像装置10の動き(移動)を補償する動き補償パラメータを算出する。また、動き補償パラメータ算出部303は、算出した動き補償パラメータを、撮像条件検出部304、第1接続ライン設定部305、動被写体検出部306、被写体情報射影部307、および画像射影部310に出力する。動き補償パラメータは、例えば、複数の撮像画像のそれぞれを、同じ被写体がほぼ重なるように並べた場合における、撮像画像同士の相対的な位置関係を示す情報である。
【0040】
撮像条件検出部304は、動き補償パラメータ算出部303から供給された動き補償パラメータを用いて、撮影時の各種条件の検出を行い、検出結果を接続ライン選択部309に出力する。撮像条件検出部304は、例えば撮像画像間の2次元の回転を生じる撮像条件について検出を行う。
【0041】
第1接続ライン設定部305は、動き補償パラメータ算出部303から出力された動き補償パラメータに基づいて、連続するフレームの撮像画像から重複領域を判別する。また、第1接続ライン設定部305は、重複領域における撮像方向の変化方向に対する中央位置を第1接続ラインとする。すなわち、第1接続ライン設定部305は、重複領域において、撮像装置10の回転移動方向(スイープ軸の方向)における中点を通り、スイープ軸に対して直交する直線を第1接続ラインとする。第1接続ライン設定部は、設定した第1接続ラインを示す第1接続ライン情報を接続ライン選択部309に出力する。なお、スイープ軸とは、撮像画像の撮像時に撮像装置10を移動させる方向と同じ方向の軸をいい、スイープ軸の方向は予め定められている。また、スイープ軸の方向は、ユーザが操作入力部47を操作することにより、撮像画像の撮像前または後に、複数の方向のなかから、スイープ軸の方向を選択できるようにしてもよい。また、動き補償パラメータは、撮像装置10の動き(移動)を補償するためのパラメータであることから、この動き補償パラメータに基づき、スイープ軸の方向を自動的に決定するようにしてもよい。
【0042】
動被写体検出部306は、動き補償パラメータ算出部303からの動き補償パラメータと、円筒射影部302からの撮像画像とを用いて、隣接する撮像画像が互いに重なる重複領域に対する動被写体の検出を行い被写体情報を生成する。また、動被写体検出部306は生成した被写体情報を被写体情報射影部307に出力する。動被写体検出部306は、例えば被写体情報として動被写体の動き量を示す評価値を生成する。
【0043】
被写体情報射影部307は、動き補償パラメータ算出部303からの動き補償パラメータを用いて、動被写体検出部306からの被写体情報をスイープ軸に射影して、その射影結果を第2接続ライン設定部308に出力する。
【0044】
第2接続ライン設定部308は、被写体情報射影部307から供給された、被写体情報の射影結果に基づいて、連続するフレームの撮像画像を互いに接続するときの第2接続ラインを設定する。また、第2接続ライン設定部308は、設定した第2接続ラインを示す第2接続ライン情報を接続ライン選択部309に出力する。ここで、第2接続ライン設定部308は、被写体情報の射影結果に基づいて、接続位置に動被写体が含まれないように第2接続ラインを設定する。
【0045】
接続ライン選択部309は、撮像条件検出部304での検出結果に基づき第1接続ラインまたは第2接続ラインを選択する。すなわち、接続ライン選択部309は、第1接続ライン設定部305で生成された第1接続ライン情報と、第2接続ライン設定部308で生成された第2接続ライン情報のいずれかを、撮影条件検出結果に基づき選択して画像合成部311に出力する。
【0046】
画像射影部310は、動き補償パラメータ算出部303からの動き補償パラメータを用いて、円筒射影部302からの撮像画像をパノラマ座標系上に射影し、射影された撮像画像を画像合成部311に出力する。ここで、パノラマ座標系は、スイープ軸に垂直な軸と、スイープ軸とを軸とする2次元座標系、つまり所定の平面とされ、パノラマ座標系は予め定められている。
【0047】
画像合成部311は、接続ライン選択部309で選択された接続ライン情報が示す接続ラインで、画像射影部310から供給された射影後の撮像画像を互いに接続し、1枚のパノラマ画像を生成する。パノラマ画像は、複数の撮像画像の撮像時に撮像対象となった撮像空間上の全領域を被写体とする画像とされる。
【0048】
[4.パノラマ画像の生成処理]
撮像装置10は、ユーザが操作入力部47を操作して、パノラマ画像の生成を指示したとき、撮像画像を撮像してパノラマ画像を生成する処理であるパノラマ画像の生成処理を開始する。以下、図4のフローチャートを参照して、撮像装置10によるパノラマ画像の生成処理について説明する。
【0049】
ステップST11において、撮像素子23は、被写体の撮像を行う。撮像素子23は、撮像装置10の撮像方向が順次変化されている状態で被写体の撮像を行い、複数枚の撮像画像を生成してステップST12に進む。例えば、ユーザは撮像装置10を所定方向に回動させながら、複数枚の撮像画像を連続して撮像装置10に撮像させる。
【0050】
被写体からの光はレンズ21および絞り22を介して撮像素子23に入射するので、撮像素子23は入射した光を光電変換することにより、撮像画像を撮像する。得られた撮像画像(画像信号)は、撮像素子23から、サンプリング部24、A/D変換部25、画像処理部30、符号化/復号化部41を介してメモリ42に供給され、記録される。このとき、撮像画像は符号化/復号化部41により符号化される。また、メモリ42への記録時において、各撮像画像には撮像順にフレーム番号が付される。
【0051】
複数の撮像画像がメモリ42に順次記録されると、それらの撮像画像は、符号化/復号化部41によりメモリ42から読み出されて復号され、画像処理部30の撮像画像保持部301に供給されて保持される。
【0052】
なお、撮像により得られた撮像画像が、メモリ42に記録されずに、直接、撮像画像保持部301に供給されるようにしてもよい。また、撮像画像は、撮像された1つの静止画像であってもよいし、撮影された動画像を構成する1フレーム分の画像であってもよい。
【0053】
ステップST12において、円筒射影部302は、撮像画像を円筒面に射影する。円筒射影部302は、撮像画像保持部301に保持されている撮像画像を順番に読み出して、読み出した撮像画像を、撮像画像の撮像時の焦点距離に基づいて、所定の円筒面に射影する。また、円筒射影部302は、射影された撮像画像を動き補償パラメータ算出部303、動被写体検出部306、および画像射影部310に出力してステップST13に進む。
【0054】
図5は、撮像画像の円筒面への射影を説明する図である。例えば、撮像画像の撮像時におけるレンズ21の焦点距離FDを半径とする円筒の側面を円筒面CSとして、撮像面PSを撮像して得られた撮像画像が、円筒面CSに射影(投影)される。すなわち、撮像面PSの円筒面投影が行われる。図5の例では、円筒面CSは、撮像面PSの中央に接する面とされている。なお、レンズ21の焦点距離は、撮像画像の撮像時におけるレンズ21の位置等から得られる。
【0055】
このように撮像画像を円筒面に射影することで、パノラマ画像の生成時に、接続する撮像画像間の被写体の位置のずれ(誤差)をより小さく抑えることができる。
【0056】
図6は撮像面と円筒面の関係を示している。図6に示すように、光学中心点C11に撮像装置10の光学中心が位置する状態で、光学中心点C11を中心として時計回りの方向に撮像装置10をスイープ(回動)させながら、ユーザが撮像装置10で複数の撮像画像の生成を行わせたとする。なお、図6において図5における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【0057】
図6において、5つの撮像面PS-0乃至撮像面PS-4で撮像が行われて、5つの撮像画像が生成される。そして、得られた撮像画像は、それぞれ円筒面CSに射影される。円筒面CSは、光学中心点C11を中心とし、焦点距離を半径とする円筒の側面である。
【0058】
この場合、撮像された撮像画像を、そのまま合成してパノラマ画像を生成することを考える。図6において、互いに隣接する撮像面の端近傍に位置する画像の重複部分は、空間的に円筒面CSの半径方向にずれている。このため、撮像画像同士をそのまま重ねて並べると、被写体の位置にずれが生じて、同じ被写体が重ならなくなり、パノラマ画像の品質が劣化してしまう。
【0059】
そこで、各撮像画像を円筒面CSに射影してから、射影された撮像画像同士を重ねて合成してパノラマ画像を生成する。このようにパノラマ画像を生成することで、撮像画像を円筒面に射影することなく合成する場合と比べて、撮像画像間の被写体の位置ずれ(誤差)をより小さく抑えることができる。したがって、撮像画像を円筒面CSに射影して、射影後の画像を合成してパノラマ画像を生成すれば、撮像画像間において生じる被写体の位置の誤差が軽減されて、より高品質なパノラマ画像を得ることができる。
【0060】
図4のステップST13において、動き補償パラメータ算出部303は、円筒射影部302から供給された各撮像画像について、撮像画像の動き補償パラメータを算出する。動き補償パラメータ算出部303は、算出した動き補償パラメータを撮像条件検出部304、第1接続ライン設定部305、動被写体検出部306、被写体情報射影部307および画像射影部310に出力してステップST14に進む。
【0061】
例えば、動き補償パラメータ算出部303は、連続する2つのフレームの撮像画像を用いて、特徴点の抽出やブロックマッチングにより、撮像画像のグローバルモーションベクトルを動き補償パラメータとして算出する。
【0062】
グローバルモーションベクトルとは、撮像画像上の被写体全体のフレーム間の動きを示すグローバルな動きベクトルである。撮像画像上の被写体の多くは、実空間上において動きのない静止物体であるので、グローバルモーションベクトルは、撮像画像上の静止物体のフレーム間の動き、つまり撮像画像の撮像時における撮像装置10の動きを示すベクトルであるということができる。
【0063】
なお、動き補償パラメータは、グローバルモーションベクトルに限らず、撮像装置10の動きを補償可能とするパラメータ例えば平面射影行列やアフィン行列などであってもよい。これらの平面射影行列やアフィン行列も、連続する2つのフレームの撮像画像を用いた、特徴点の抽出やブロックマッチングにより求めることができる。動き補償パラメータとして、グローバルモーションベクトルを採用する場合には、平面射影行列やアフィン行列を採用する場合よりも、より低い計算コストで動き補償パラメータを得ることができる。
【0064】
ステップST14において、撮像条件検出部304は、動き補償パラメータ算出部303から出力された動き補償パラメータを用いて撮影時の撮像条件の検出を行う。スイープ中に撮像を行って得られた撮像画像は、撮像装置10の撮像方向がスイープ動作の回転軸と直交する方向に対して傾きを有している場合、撮像画像間で2次元の回転を有するようになる。
【0065】
図7は、撮像装置10の撮像方向の傾きと撮像画像間の回転角度の関係を説明する図である。例えば図7の(C)に示すように、スイープ動作の回転軸ARと撮像方向VPとの角度が90度である場合、撮像画像間で2次元の回転は生じていない。次に、図7の(B)に示すように、スイープ動作の回転軸ARに対して撮像方向VPの角度が90度よりも小さく、撮像方向VPがスイープ動作の回転軸ARと直交する方向に対して仰角θaを有している場合、撮像画像間で2次元の回転角度を生じる。また、図7の(A)に示すように、仰角θaが大きくなると撮像画像間での回転角度が大きくなる。図7の(D)に示すように、スイープ動作の回転軸ARに対して撮像方向VPの角度が90度よりも大きく、撮像方向VPがスイープ動作の回転軸ARと直交する方向に対して俯角θbを有している場合、撮像画像間で回転角度を生じる。また、図7の(E)に示すように、俯角θbが大きくなると画像間での回転角度が大きくなる。なお、俯角θbを有している場合の撮像画像の回転は、仰角θaを有している場合の回転に対して逆方向となる。
【0066】
このように、撮像画像間で2次元の回転を生じる場合があることから、撮像条件検出部304は、撮像画像間の2次元の回転を生じる撮像条件を検出する。具体的には、撮像条件検出部304は、動き補償パラメータ算出部303で算出された動き補償パラメータ(例えばグローバルモーションベクトル)に基づき、撮像画像間の2次元の回転角度を検出する。さらに、撮像条件検出部は、検出した回転角度を撮像条件として接続ライン選択部309に出力する。また、撮像条件検出部304は、撮像画像を回転後の位置に幾何変換するアフィン行列を求めて、このアフィン行列から回転角度を得るようにしてもよい。また、撮像画像間の2次元の回転は、スイープ動作の回転軸と直交する方向に対して撮像方向が仰角や俯角を有しているとき生じる。したがって、撮像装置10に姿勢検出部49を設けるようにして、この姿勢検出部49でスイープ動作の回転軸に対する撮像方向の角度を検出して、検出した角度を撮像条件としてもよい。また、撮像画像間の2次元の回転が、スイープ動作の回転軸に対する撮像方向の角度だけでなく、他の撮像条件によって変化する場合、他の撮像条件の検出も行うようにする。
【0067】
ステップST15において、第1接続ライン設定部305は、第1接続ラインを設定する。第1接続ライン設定部305は、動き補償パラメータ算出部303からの動き補償パラメータに基づき、撮像画像が互いに重なる重複領域を判別する。さらに、第1接続ライン設定部305は、重複領域におけるスイープ方向の中央位置に、スイープ方向と直交する第1接続ラインを設定して、設定した第1接続ラインを示す第1接続ライン情報を接続ライン選択部309に出力してステップST16に進む。
【0068】
図8は、第1接続ラインの設定について説明する図である。第1接続ライン設定部305は、撮像画像I(t)と撮像画像I(t+1)とを合成するときの第1接続ラインを定めるとき、撮像画像I(t)と撮像画像I(t+1)が互いに重なる重複領域に対応するスイープ軸上の位置Qx0から位置Qx1までの範囲を検出する。ここで、位置Qx0は、撮像画像I(t+1)をスイープ軸に射影したときの撮像画像I(t+1)の左端の位置であり、位置Qx1は、撮像画像I(t)をスイープ軸に射影したときの撮像画像I(t)の右端の位置である。
【0069】
第1接続ライン設定部305は、スイープ軸上の位置Qx0から位置Qx1までの中央の位置SCを、撮像画像I(t)と撮像画像I(t+1)を接続する第1接続ラインとする。すなわち、第1接続ライン設定部305は、位置Qx0から位置SCまでの距離Ld0と位置SCから位置Qx1の距離Ld1が等しくなるように第1接続ラインを設定する。
【0070】
図4のステップST16において、動被写体検出部306は動被写体検出を行う。動被写体検出部306は、動き補償パラメータ算出部303からの動き補償パラメータと、円筒射影部302からの撮像画像とを用いて、撮像画像が互いに重なる重複領域における動被写体を検出する。また、動被写体検出部306は、検出した動被写体を示す被写体情報を生成して被写体情報射影部307に出力してステップST17に進む。
【0071】
例えば、図9に示すように、動被写体検出部306は、動き補償パラメータを用いて、連続する2つのフレームF(t)の撮像画像I(t)と、フレームF(t+1)の撮像画像I(t+1)とを、それらの撮像画像上の同じ被写体がほぼ重なるように並べる。
【0072】
そして、動被写体検出部306は、撮像画像I(t)における、撮像画像I(t+1)と重なる領域である重複領域DRをいくつかの領域(以下、ブロックと称する)に分割し、ブロックマッチングによりブロックごとに動きベクトルLMVを求める。
【0073】
すなわち、各ブロックの動きベクトルLMVは、撮像画像I(t+1)上において、撮像画像I(t)上の処理対象のブロックとの差分が最も小さい領域を探索することにより、求められる。例えば、ブロックとの差分は、ブロック内の画素の画素値と、その画素に対応する撮像画像I(t+1)の画素の画素値との差分絶対値和とされる。
【0074】
図9では、重複領域DR内の点線で表された1つの正方形が1つのブロックを示しており、各ブロック内の矢印は、それらのブロックの動きベクトルLMVを表している。この動きベクトルLMVは、動き補償パラメータを用いて、撮像画像I(t)と撮像画像I(t+1)を並べた状態における、撮像画像の各領域の被写体のフレーム間の動きを示すベクトルである。
【0075】
次に、動被写体検出部306は、求めた各ブロックの動きベクトルLMVを用いて、撮像画像I(t)全体の動きを示す動きベクトルGMV(グローバルモーションベクトル)を算出する。例えば、全体の動きベクトルGMVは、各ブロックの動きベクトルLMVの中央値とされる。
【0076】
なお、動きベクトルGMVは、ロバスト推定により求められてもよいし、求められたブロックの動きベクトルLMVのうち、最も多く検出された方向および大きさの動きベクトルLMVとされてもよい。
【0077】
このようにして求められた全体の動きベクトルGMVは、撮像画像上の被写体全体の動きを示しているので、この動きベクトルGMVと異なる動きベクトルLMVを有するブロックには、実空間上において動きのある被写体である動被写体が含まれていることになる。
【0078】
さらに、動被写体検出部306は、求めた全体の動きベクトルGMVと、各ブロックの動きベクトルLMVとを用いて、撮像画像I(t)上の重複領域DRの各位置における、動被写体の有無と、その動きの大きさ(動きの程度)を示す評価値(コスト値)を算出する。
【0079】
具体的には、動被写体検出部306は、図9に示す重複領域DRの例えば左上の頂点を基準とするxy座標系を考え、重複領域DRにおけるxy座標系上の座標が(x,y)である位置の評価値(コスト値)cost(x,y)を次式(1)に基づいて算出する。なお、図9では、横方向がx方向とされ、縦方向がy方向とされている。また、スイープ軸は、x方向とする。
cost(x,y)=|GMV−LMV(x,y)| ・・・(1)
【0080】
なお、式(1)において、GMVは撮像画像I(t)全体の動きベクトルGMVを示しており、LMV(x,y)は座標(x,y)の位置が含まれるブロックの動きベクトルLMVを示している。つまり、各位置の評価値は、全体の動きベクトルGMVと、ブロックの動きベクトルLMVとの差分絶対値とされる。
【0081】
したがって、重複領域DR内の位置の評価値が大きいほど、その位置には、より大きく動いている動被写体が表示されていることになる。動被写体検出部306は、このようにして求められた評価値を、被写体情報として被写体情報射影部307に出力する。
【0082】
なお、図9では、ブロック単位で動被写体の検出、つまり動きベクトルの検出が行われる例について説明したが、重複領域DR内の画素ごとに動きベクトルが検出されるようにしてもよい。
【0083】
また、被写体情報として、動被写体の有無、およびその動被写体の動きの程度を示す評価値を求める例について説明したが、重複領域DR内の各位置の被写体情報は、その位置に動被写体が含まれているか否かを示す2値の値とされてもよい。
【0084】
但し、被写体情報を多値の情報とすれば、後述する第2接続ライン設定部308において、より被写体の位置ずれの少ない位置を接続ラインとして求めることができるようになる。
【0085】
すなわち、第2接続ライン設定部308は、パノラマ画像を生成するために、連続して撮像された撮像画像同士を接続するときの接続ラインを設定する。このとき、より高品質なパノラマ画像を得るには、動被写体が分断されるような接続ラインが定められることをなるべく避ける必要があるが、動被写体の領域が大きいなどの理由で、どうしても動被写体の位置を接続ラインとしなければならない場合がある。このような場合、被写体情報に、動被写体の動きの程度を示す情報が多値の情報として含まれていれば、最も被写体の動きの小さい位置を接続ラインとして求めることができる。これにより、互いに接続される撮像画像の接続位置近傍における画像のずれ、つまり2つの撮像画像を重ねたときの被写体の位置のずれを最小限にとどめることができ、パノラマ画像の品質の劣化を抑制することができる。
【0086】
図4のステップST17において、被写体情報射影部307は、被写体情報を射影する。被写体情報射影部307は、動き補償パラメータ算出部303からの動き補償パラメータを用いて、動被写体検出部306からの被写体情報のスイープ軸への射影を行い、スイープ軸上の位置ごとに評価値の総和を算出して動被写体スコアを生成する。被写体情報射影部307は、生成した動被写体スコアを第2接続ライン設定部308に出力してステップST18に進む。
【0087】
すなわち、被写体情報射影部307は、スイープ軸と垂直な方向にある撮像画像上の各位置の評価値を積分して動被写体スコアとすることにより、評価値のスイープ軸への射影を行う。射影結果としての動被写体スコアは、撮像画像の対応する領域における動被写体の面積(大きさ)に応じて大きくなる。
【0088】
例えば、図9のようにスイープ軸をx方向としていると、スイープ軸の各位置の被写体スコアは、x座標が、そのスイープ軸の位置のx座標と同じ値である撮像画像の位置における評価値の総和となる。具体的には、スイープ軸上の所定の位置に対応するxy座標系の値が例えば「x0」であったとする。この場合、重複領域DR上のx座標が「x0」である位置のcost(x0,y)の総和が、スイープ軸上の所定の位置における動被写体スコアとして求められる。
【0089】
その結果、例えば図10に示すように、スイープ軸の各位置における動被写体スコアが得られる。なお、図10の(A)は、撮像画像I(t)を示しており、図10の(B)は撮像画像I(t)の動被写体スコアを示している。なお、図10の(B)において、横方向はスイープ軸の方向を示しており、縦方向はスイープ軸の各位置における動被写体スコアである。また、スコア線MSは、スイープ軸の各位置における動被写体スコアを示す線である。
【0090】
撮像画像I(t)では、撮像画像I(t)の中央からやや右側に動被写体が含まれているため、その動被写体の部分に対応するスイープ軸の位置では、動被写体スコアが大きくなっている。逆に、動被写体の含まれない部分の評価値は「0」であり、また、隣接する撮像画像と重複しない領域では評価値は求められないので、撮像画像I(t)の動被写体が存在していない領域に対応するスイープ軸の位置では、動被写体スコアは「0」となっている。
【0091】
このようにして被写体情報射影部307は、全ての撮像画像について、被写体情報としての評価値をスイープ軸に射影し、スイープ軸の各位置の動被写体スコアを求める。なお、被写体情報射影部307において、各撮像画像の領域ごとの評価値を、スイープ軸のどの位置に射影させるかは、撮像画像ごとの動き補償パラメータにより知ることができる。
【0092】
被写体情報をスイープ軸に射影して、スイープ軸の各位置における動被写体スコアを求めることで、接続ラインを定めるのに用いられる2次元の情報を1次元の情報に変換することができる。これにより、接続ラインの決定に必要な情報の量を削減するとともに、その情報の記録のためのメモリ容量を節約することができる。
【0093】
図4のステップST18において、第2接続ライン設定部308は、第2接続ラインの設定を行う。第2接続ライン設定部308は、被写体情報射影部307からの動被写体スコアに基づいて撮像画像を接続するときの第2接続ラインを設定して、この第2接続ラインを示す第2接続ライン情報を接続ライン選択部309に出力してステップST19に進む。
【0094】
図11は、接続ラインの探索について説明する図である。例えば、図11に示すように、撮像画像I(t)から、スコア線MStにより示される動被写体スコアが得られたとする。なお、図11の(A)は、撮像画像I(t)と撮像画像I(t+1)を示しており、図11の(B)は、動被写体スコアを示しており、横方向はスイープ軸の方向、縦方向はスイープ軸の各位置における動被写体スコアの大きさである。
【0095】
第2接続ライン設定部308は、撮像画像I(t)と撮像画像I(t+1)とを合成するときの接続ラインを定めるにあたり、撮像画像I(t)と撮像画像I(t+1)が互いに重なる重複領域に対応するスイープ軸上の位置Qx0から位置Qx1までの範囲を探索範囲とする。ここで、位置Qx0は、撮像画像I(t+1)をスイープ軸に射影したときの撮像画像I(t+1)の左端の位置であり、位置Qx1は、撮像画像I(t)をスイープ軸に射影したときの撮像画像I(t)の右端の位置である。
【0096】
第2接続ライン設定部308は、スイープ軸上の位置Qx0から位置Qx1を探索範囲として、探索範囲内において最も動被写体スコアが小さい位置を、撮像画像I(t)と撮像画像I(t+1)を接続する第2接続ラインとする。
【0097】
なお、図11では、スイープ軸上の探索範囲内の位置SMにおいて、スコア線MStにより示される動被写体スコアが最小となっているので、位置SMが第2接続ラインとされる。したがって、第2接続ライン設定部308は、スイープ軸の位置が位置SMであって、スイープ軸に対して垂直な直線を第2接続ラインとして設定する。
【0098】
第2接続ラインは、探索範囲内において最も動被写体スコアが小さい位置SMであるので、スイープ軸の各位置のうちで、最も被写体の動きの小さい位置である。つまり、位置SMは、撮像画像I(t)と撮像画像I(t+1)を動き補償パラメータに基づいて、同じ被写体がほぼ重なるように所定面上に並べた場合に、撮像画像のずれ、例えば撮像画像上の被写体の位置ずれや、互いに重なる領域の画素の色誤差などが最も小さい位置である。
【0099】
このように、第2接続ライン設定部308では、動被写体の分断スコアが最小となるスイープ軸の位置の探索という、一次元の探索処理により、簡単かつ迅速に接続ラインを定めることができる。
【0100】
また、第1接続ライン設定部305と第2接続ライン設定部308は、上述のような処理を行って、全ての撮像画像について、隣接する撮像画像の第1接続ラインと第2接続ラインを設定する。
【0101】
第1接続ライン設定部305と第2接続ライン設定部308は、例えばフレーム番号の小さい順、つまり撮像時刻の古い順に、撮像画像の第1接続ラインと第2接続ラインを定めていく。図12は、第1接続ラインと第2接続ラインの設定をフレーム番号の小さい順に行った場合を示している。
【0102】
図12では、3つの連続するフレームF(t-1),フレームF(t),フレームF(t+1)の撮像画像I(t-1),撮像画像I(t),撮像画像I(t+1)のそれぞれが、動き補償パラメータに基づいて並べられている。撮像画像I(t-1),撮像画像I(t),撮像画像I(t+1)のうち、最もフレーム番号が小さいものは撮像画像I(t-1)である。したがって、第1接続ライン設定部305と第2接続ライン設定部308は、撮像画像I(t-1)と撮像画像I(t)との重複領域に第1接続ラインと第2接続ラインを定める。
【0103】
すなわち、図12の(A)に示すように、第1接続ライン設定部305と第2接続ライン設定部308は、隣接する撮像画像I(t-1)と撮像画像I(t)が重なる、スイープ軸上の位置Qx1(t-1,t)〜Qx1(t-1,t)までの範囲内に第1接続ラインと第2接続ラインを定める。その結果、位置Qx1(t-1,t)と位置Qx1(t-1,t)との中央の位置SC(t-1,t)が第1接続ラインとなる。また、位置Qx1(t-1,t)から位置Qx1(t-1,t)まで範囲において動被写体スコアが最小となる位置SM(t-1,t)が第2接続ラインとなる。
【0104】
次に、第1接続ライン設定部305と第2接続ライン設定部308は、図12の(B)に示すように撮像画像I(t)と撮像画像I(t+1)に対する第1接続ラインと第2接続ラインを定める。第1接続ライン設定部305は、上述のように互いに隣接する撮像画像I(t)と撮像画像I(t+1)との互いに重なる範囲の中央の位置SC(t,t+1)が第1接続ラインとされる。
【0105】
また、撮像画像I(t)と撮像画像I(t+1)が互いに重なる領域の左側の端、つまり撮像画像I(t+1)の左端の位置は、先に定めた撮像画像I(t-1)と撮像画像I(t)の接続ラインの位置SM(t-1,t)よりも左側に位置している。したがって、第2接続ライン設定部308は、位置SM(t-1,t)よりも左側の領域は、探索範囲から除外して、位置SM(t-1,t)から撮像画像I(t)の右端である位置Qx1(t,t+1)までの範囲を探索範囲として第2接続ラインを定める。その結果、探索範囲において動被写体スコアが最小となる位置SM(t,t+1)が第2接続ラインとされる。
【0106】
図4のステップST19において、接続ライン選択部309は、接続ラインの選択を行う。接続ライン選択部309は、撮像条件検出部304によって検出された撮像条件に基づき、第1接続ライン設定部305で生成された第1接続ライン情報または第2接続ライン設定部308で生成された第2接続ライン情報のいずれかを選択する。また、接続ライン選択部309は、選択した接続ライン情報を画像合成部311に出力してステップST20に進む。
【0107】
撮像画像間で2次元の回転がない場合や回転が小さい場合、第2接続ライン設定部308で設定した第2接続ラインで画像の接続を行ってパノラマ画像を生成すると、動被写体でのつなぎ目の破綻が起こらない。このため、第1接続ライン設定部305で設定した第1接続ラインで画像の接続を行った場合に比べて、パノラマ画像が良好な結果となる。また、撮像画像間で2次元の回転が大きい場合、回転による誤差が大きくなる。このため、第1接続ライン設定部305で設定した第1接続ラインで画像の接続を行うことで、第2接続ライン設定部308で設定した第2接続ラインで画像の接続を行った場合よりもパノラマ画像が良好な結果となる。よって、接続ライン選択部309は、撮像条件検出部304から入力された撮像条件と閾値を比較して、2次元の回転が閾値範囲よりも大きい場合、第1接続ライン情報を選択して画像合成部311に出力する。また、2次元の回転が閾値範囲内である場合は第2接続ライン情報を選択して画像合成部311に出力する。例えば、接続ライン選択部309は、撮像画像間の2次元の回転確度やスイープ動作の回転軸に対する撮像方向の角度が、閾値範囲よりも大きい場合、第1接続ライン情報を選択して画像合成部311に出力する。また、接続ライン選択部309は、撮像画像間の2次元の回転確度やスイープ動作の回転軸に対する撮像方向の角度が、閾値範囲内である場合は第2接続ライン情報を選択して画像合成部311に出力する。
【0108】
図13は、選択された接続ラインを例示した図である。例えば、図12に示すように、位置SC(t-1,t),SC(t,t+1)は第1接続ライン、位置SM(t-1,t),SM(t,t+1)は第2接続ラインとする。この場合、接続ライン選択部309は、撮像画像間で2次元の回転がない場合や回転が小さい場合、図13の(A)に示す第2接続ラインを示す第2接続ライン情報を画像合成部311に出力する。また、接続ライン選択部309は、撮像画像間で2次元の回転が大きい場合、図13の(B)に示す第1接続ラインを示す第1接続ライン情報を画像合成部311に出力する。
【0109】
図4のステップST20において、画像射影部310は、撮像画像をパノラマ座標系に射影する。画像射影部310は、動き補償パラメータ算出部303からの動き補償パラメータを用いて、円筒射影部302からの撮像画像をパノラマ座標系上に射影する。また、画像射影部310は、射影された撮像画像を画像合成部311に出力してステップST21に進む。
【0110】
この射影により、撮像画像上の同じ被写体がほぼ重なるように、複数の撮像画像がパノラマ座標系上に並べられることになる。なお、パノラマ座標系は、スイープ方向に垂直な軸と、スイープ軸とを軸とする平面とされる。例えば、スイープ軸が、撮像画像の撮像時における撮像空間の鉛直方向と垂直な方向とされる場合には、スイープ軸に垂直な軸は、鉛直方向とされる。
【0111】
ステップST21において、画像合成部311は、撮像画像を合成してパノラマ画像を生成する。画像合成部311は、接続ライン選択部309で選択された接続ライン情報で示された接続ラインで、画像射影部310から供給されたパノラマ座標系に射影された撮像画像の接続を行い、1枚のパノラマ画像を生成する。また、接続ラインで撮像画像を接続した場合、接続ラインで色の違い等が目立ってしまうおそれがある。したがって、画像合成部311は、接続ラインを基準として接続領域を設けて、この接続領域においてブレンディング処理を行い、接続する撮像画像を重み付き加算するようにしてもよい。
【0112】
図14は、撮像画像の接続について説明する図である。図14は、位置SM(t-1,t)である第2接続ラインで、撮像画像I(t-1)と撮像画像I(t)を接続する場合を示している。なお、図14において横方向はスイープ方向を示しており、2つの連続するフレームの撮像画像I(t-1)と撮像画像I(t)が、パノラマ座標系上に並べられている。また、図14の(A)は、パノラマ画像に用いられる有効領域を斜線の領域として示している。図14の(B)は、撮像画像I(t-1)に対する重みW(t-1)、図14の(C)は、撮像画像I(t)に対する重みW(t)を示している。
【0113】
例えば、接続領域は、接続ラインの位置SM(t-1,t)が接続領域の中央位置となるように、位置SL(t-1,t)から位置SR(t-1,t)までの範囲とする。このとき、撮像画像I(t-1)では、位置SR(t-1,t)までの領域が有効領域R(t-1)となる。また、撮像画像I(t)では、位置SL(t-1,t)からの領域が撮像画像I(t)の有効領域R(t)となる。
【0114】
重み付けは、接続領域における有効領域の端部側で「0」として他方の端部側で「1」とする。また、図14の(B)(C)では、線OMa,OMbによって重み付けが設定される。なお、重み付けは線OMa,OMbによって設定する場合に限られるものではない。重み付けは、接続領域の各位置で撮像画像I(t-1)に対する重み付けと撮像画像I(t)に対する重み付けの和が「1」であって、有効領域の端部側で「0」となるように順次減少させるように設定する。
【0115】
このように接続ラインを基準として接続領域を設定して、接続領域内で撮像画像I(t-1)と撮像画像I(t)との合成比率を変化させて、撮像画像I(t-1)から撮像画像I(t)への画像の切り換えを順次行う。したがって、より高品質なパノラマ画像を得ることができる。すなわち、接続される2つの有効領域の互いに重なる部分において、被写体の位置にずれがあったり、画素の色が異なったりする場合であっても、重み付き加算によりスムージング効果が得られる。これにより、被写体の一部が欠損したり、パノラマ画像に色のむらが生じたりすることを抑制することができ、より自然なパノラマ画像を得ることができる。
【0116】
画像合成部311は、このようにして、パノラマ座標系上の互いに隣接する撮像画像の有効領域を接続し、1つのパノラマ画像を生成する。さらに、画像合成部311は、トリミングを行い、接続された有効領域からなる1つの画像の一部の領域をパノラマ画像としてもよい。
【0117】
図15は、パノラマ画像のトリミングについて説明する図である。例えば、撮像装置10をスイープさせて撮像画像を生成すると、撮像装置10が仰角を生じている場合、図15の(A)に示すように、連続して撮像された撮像画像I(0)〜I(6)は、画像間で2次元の回転を生じて、パノラマ座標系上で上下方向にばらつきを生じる。なお、スイープ軸は、各撮像画像の長手方向となっている。
【0118】
そのため、各撮像画像の有効領域を接続して得られる1つの画像は、矩形状とならなくなる。そこで、画像合成部311は、図15の(B)に示すように、撮像画像I(0)〜I(6)の有効領域を接続して得られる画像全体の領域に内接する、最も大きい矩形領域P11を切り出して、パノラマ画像とする。このとき、矩形領域P11の長辺は、スイープ軸と平行になるようにされる。このように、トリミングを行うことにより、矩形状のパノラマ画像を得ることができる。
【0119】
このようにしてパノラマ画像が生成されると、画像合成部311は、生成したパノラマ画像を出力して、撮像装置10におけるパノラマ画像の生成処理は終了する。
【0120】
例えば、画像合成部311から出力されたパノラマ画像は、符号化/復号化部41で符号化されてメモリ42に記録されたり、D/A変換部43およびビデオエンコーダ44を介して表示部45に出力されて画像表示が行われる。
【0121】
以上のように、撮像装置10は、撮像画像から異なる複数のアルゴリズムで接続ラインを定める。また、撮像装置10は、被写体情報をスイープ方向に射影して接続ラインを定める。さらに、撮像装置10は、撮像条件に応じて、最適なパノラマ画像が得られるように接続ラインを選択して、選択した接続ラインで撮像画像の接続(合成)を行いパノラマ画像を生成する。
【0122】
このように、撮像装置10では、被写体情報をスイープ方向に射影して接続ラインを定めるようにしたので、より低い計算コストで、より高品質なパノラマ画像を得ることができる。
【0123】
すなわち、従来の技術では、図1を参照して説明したように、2次元探索により接続ライン(つなぎ目SL)を定めれば、動被写体がぼけてしまったり、動被写体が分断されてしまったりするという問題を解決して、より高品質なパノラマ画像を得ることができる。しかしながら2次元探索では、計算コストが高く、2次元探索のために必要なメモリの記録容量も多く必要となってしまう。
【0124】
これに対して、撮像装置10では、各領域の被写体情報からなる2次元の情報をスイープ軸という1次元の軸に射影するため、1次元探索により接続ラインを定めることができる。これにより、動被写体のぼけや分断を防止し、より低い計算コストで、より高品質なパノラマ画像を得られるだけでなく、メモリの記録容量も削減することができる。
【0125】
また、複数のアルゴリズムで接続ラインが設定されて、撮像条件に応じて最適な接続ラインが選択される。このため、撮像画像間で2次元の回転を生じるような撮像条件で撮像を行っても、撮像条件に応じて最適な接続ラインが選択されるので、つなぎ目の目立たない高品質のパノラマ画像を容易に生成できる。
【0126】
さらに、撮像条件に応じて最適な接続ラインが自動的に選択されるので、接続ラインを設定するアルゴリズムを、ユーザーが撮影の前あるいは後に明示的に選択、指示をしなくても高画質なパノラマ画像を高速に得ることができるようになる。このため、ユーザーの利便性を向上させることができる。
【0127】
[5.被写体情報の他の例]
なお、以上においては、被写体情報としての評価値は、撮像画像全体の動きベクトルと、ブロックの動きベクトルとの差分絶対値とされると説明したが、被写体情報は、撮像画像上の被写体に関する情報であれば、どのようなものであってもよい。
【0128】
例えば、図16に示す撮像画像I(t)と撮像画像I(t+1)との重なる部分の領域である重複領域DR内の画素について、撮像画像I(t)の画素の画素値と、その画素と同じ位置にある撮像画像I(t+1)の画素の画素値との差分絶対値とされてもよい。なお、図16において、この場合、撮像画像I(t)と撮像画像I(t+1)とが動き補償パラメータに基づいて、並べられている。
【0129】
動被写体検出部306は、撮像画像I(t)のxy座標系上の位置(x,y)の画素の評価値cost(x,y)を、次式(2)により算出する。なお、図16において、横方向はx方向とされ、縦方向はy方向とされている。また、重複領域DRの左上の頂点がxy座標系の基準位置とされており、x方向はスイープ軸の方向と同じ方向とされている。
cost(x,y)=|It(x,y)−It+1(x,y)| ・・・(2)
【0130】
ここで、式(2)において、It(x,y)およびIt+1(x,y)は、座標が(x,y)である撮像画像I(t)および撮像画像I(t+1)の画素の画素値を示している。
【0131】
このような評価値を被写体情報とする場合には、撮像画像上の画素値の差分絶対値が小さい領域では、接続による被写体の位置ずれは小さいと判断されることになる。画素値の差分絶対値を評価値とすれば、動被写体の動きによる位置ずれだけでなく、視差や撮像装置10の動きに対する動き補償の精度不足による被写体の位置ずれなども、評価値に反映することができるというメリットがある。
【0132】
さらに、図17に示すように、人の顔の検出を利用して、人の顔らしさを指標とする評価値を被写体情報として求めるようにしてもよい。なお、図17では、撮像画像I(t)と撮像画像I(t+1)とが動き補償パラメータに基づいて、並べられている。
【0133】
動被写体検出部306は、撮像画像I(t)における、撮像画像I(t+1)と重なる重複領域を対象として、人の顔を検出する。その結果、撮像画像I(t)上の人の顔が含まれると推定される所定の大きさの領域(以下、顔領域と称する)と、その顔領域に対する人の顔の領域らしさの度合いを示す得点とが得られる。この得点は、顔領域が人の顔らしいほど高くなる。
【0134】
そして、動被写体検出部306は、撮像画像I(t)の重複領域の位置ごとに評価値を求める。すなわち、その位置が顔領域に含まれていれば、顔領域の得点の値がその位置の評価値とされ、その位置が顔領域に含まれていなければ、その位置の評価値は「0」とされる。
【0135】
同様の処理を行って、動被写体検出部306は、撮像画像I(t+1)における撮像画像I(t)と重なる領域を対象として人の顔を検出し、撮像画像I(t+1)の各位置における評価値を求める。さらに動被写体検出部306は、撮像画像I(t)の重複領域の各位置について求めた評価値に、それらの位置と重なる撮像画像I(t+1)の位置の評価値を加算して得られた値を、撮像画像I(t)の重複領域の各位置の最終的な評価値とする。
【0136】
図17の例では、重複領域のほぼ中央に人の顔が含まれているので、重複領域の中央付近の位置の評価値が高くなるはずである。撮像画像には、動被写体として人が含まれることが多いが、人の顔を指標とする評価値を被写体情報とする方法は、撮像画像の接続時において、人の手足や胴体よりも顔の部分が接続ラインにより分断されることを回避したい場合に有効である。
【0137】
さらに、図18に示すように、人検出を利用して、人らしさを指標とする評価値を被写体情報として求めるようにしてもよい。なお、図18では、撮像画像I(t)と撮像画像I(t+1)とが動き補償パラメータに基づいて、並べられている。
【0138】
動被写体検出部306は、撮像画像I(t)における、撮像画像I(t+1)と重なる重複領域を対象として、人を検出する。その結果、撮像画像I(t)上の人が含まれると推定される所定の大きさの領域(以下、人領域と称する)と、その人領域に対する人の領域らしさの度合いを示す得点とが得られる。この得点は、人領域が人らしいほど高くなる。
【0139】
そして、動被写体検出部306は、撮像画像I(t)の重複領域の位置ごとに評価値を求める。すなわち、その位置が人領域に含まれていれば、人領域の得点の値がその位置の評価値とされ、その位置が人領域に含まれていなければ、その位置の評価値は「0」とされる。
【0140】
同様の処理を行って、動被写体検出部306は、撮像画像I(t+1)における撮像画像I(t)と重なる領域を対象として人を検出し、撮像画像I(t+1)の各位置における評価値を求める。さらに動被写体検出部306は、撮像画像I(t)の重複領域の各位置について求めた評価値に、それらの位置と重なる撮像画像I(t+1)の位置の評価値を加算して得られた値を、撮像画像I(t)の重複領域の各位置の最終的な評価値とする。
【0141】
図18の例では、重複領域の中央から右側および左側に、それぞれ人が含まれているので、重複領域の中央からやや右側および左側の位置の評価値が高くなるはずである。このように、人全体を指標とする評価値を被写体情報とする方法は、撮像画像の接続時において、人全体が接続ラインにより分断されることを回避したい場合に有効である。
【0142】
また、図9および図16乃至図18のそれぞれを参照して説明した評価値のいくつかを組み合わせて、被写体情報とするようにしてもよい。
【0143】
例えば、図9を参照して説明した評価値と、図17を参照して説明した評価値との和を、撮像画像の各位置の評価値(被写体情報)としてもよい。この場合、人の顔の領域に対して、より大きい評価値を設定することができる。
【0144】
また、例えば、図9を参照して説明した評価値と、図17を参照して説明した評価値との和を被写体情報としてもよく、図9、図17、および図18を参照して説明した評価値のそれぞれの和を被写体情報としてもよい。これらの場合には、撮像画像上の位置ごとに評価値の和が求められ、求められた和が各位置の被写体情報とされる。
【0145】
[6.接続ラインの決定順の他の例]
さらに、以上においては、フレーム番号の小さい順に、撮像画像の接続ラインを定めていくと説明したが、接続ラインを定める順番は、どのような順番であってもよい。すなわち、所定のフレームを基準として、そのフレームの撮像画像から順番に接続ラインを定めていってもよい。
【0146】
例えば、図19の(A)に示すように、撮像画像の撮像対象となる撮像空間上の領域において、動被写体としての人が、左から右方向に移動していたとする。このような状態において、左から右方向をスイープ方向として撮像装置10が複数の撮像画像を撮像した結果、図19の(B)に示すように、撮像画像I(0)〜I(6)の7つの撮像画像が得られたとする。
【0147】
この例では、撮像画像I(2)〜I(4)に、動被写体として同じ人が含まれている。撮像画像の撮像時においては、動被写体としての人は、左から右方向に移動するので、最初に人が含まれるフレームの撮像画像I(2)では、画像の左端に人が表示されている。また、次に人が含まれる撮像画像I(3)では、画像の中央に人が表示されており、さらにその次に人が含まれる撮像画像I(4)では、画像の右側に人が表示されている。
【0148】
このような場合、撮像画像I(0)から撮像画像I(6)まで順番に接続ラインを定めていってもよい。しかしながら、接続ラインは、動被写体の領域を回避するように定められるため、所定の接続ラインにおける動被写体の領域の回避のしわ寄せが、次の接続ラインの決定に影響を与える場合がある。すなわち、動被写体が含まれるフレームが連続しているようなシーンでは、接続ラインを決定する順番によって、どのようなパノラマ画像が得られるかが異なる場合がある。
【0149】
そこで、第2接続ライン設定部308において、どのフレームの撮像画像を優先的に扱うかを決定し、決定されたフレームを基準フレームとする。さらに、基準フレームの撮像画像から、撮像画像が撮像された順番であるフレーム番号の昇順および降順のそれぞれの方向に、順次接続ラインが決定されてもよい。
【0150】
そのような場合、基準フレームを決定する指標として、例えば動被写体の中央度が考えられる。すなわち、動被写体検出部306は、撮像画像I(0)〜I(6)について、連続する2つのフレームの撮像画像を用いて、各撮像画像から動被写体を検出する。動被写体の検出は、例えば図9を用いて説明したように、撮像画像の重複領域をブロックに分割し、ブロックごとの動きベクトルと撮像画像全体の動きベクトルとの差分を求めることで行われる。これにより、撮像画像の各領域における動被写体の有無が検出される。例えば、求めた差分の絶対値が所定の閾値以上の領域が動被写体の領域とされる。
【0151】
次に、動被写体検出部306は、動被写体の検出結果に基づいて、撮像画像ごとに、動被写体の中央度のスコアを求める。例えば、中央度のスコアは、撮像画像における動被写体の位置により定められ、動被写体の位置が撮像画像の中央に近いほど、より中央度のスコアが高くなるようにされる。なお、1つの撮像画像に複数の動被写体が含まれる場合には、それらの動被写体ごとに求められたスコアの総和が最終的な中央度のスコアとされる。
【0152】
したがって、より中央に近い位置に動被写体が含まれる撮像画像ほど、中央度のスコアは高くなることになる。また、より多くの動被写体が含まれる撮像画像ほど、中央度のスコアは高くなる。中央度のスコアによれば、複数の撮像画像のうち、動被写体が最も画像上の中央に近い位置にある撮像画像を特定することができる。
【0153】
図19の例では、撮像画像I(3)の中央度のスコアが最も高くなる。このようにして求められたフレームごとの中央度のスコアは、被写体情報とともに動被写体検出部306から被写体情報射影部307を介して、第2接続ライン設定部308に出力される。
【0154】
そして、第2接続ライン設定部308では、撮像画像の各フレームのうち、最も中央度のスコアの高いフレームを基準フレームとして、基準フレームの撮像画像から順番に、第2接続ラインが決定される。
【0155】
したがって図19の例では、撮像画像I(3)のフレームが基準とされて、まず、撮像画像I(3),I(4)との第2接続ラインが定められ、その後、昇順に撮像画像I(4),I(5)との第2接続ライン、撮像画像I(5),I(6)との第2接続ラインが順番に定められる。さらに、その後、基準フレームから降順に、撮像画像I(3),I(2)との第2接続ライン、撮像画像I(2),I(1)との第2接続ライン、および撮像画像I(1),I(0)との第2接続ラインが順番に定められる。
【0156】
すると、第2接続ラインを用いてパノラマ画像の生成が行われたとき、図20の(A)に示すように、動被写体が中央に表示されるパノラマ画像が得られることになる。
【0157】
撮像画像の撮像時においては、撮像対象となる全領域の中央付近に人体が位置するように、撮像装置10がスイープされながら複数の撮像画像が撮像されることが多い。そのため、人体が含まれる連続するフレームのうち、それらのフレームの真ん中付近のフレームにおいて、撮像対象となる全領域の中央付近に人体が存在し、そのフレームでは撮像画像の中央に人体が位置しているはずである。
【0158】
したがって、人体が含まれるフレームのうち、撮像画像の中央に人体が位置しているフレームを基準フレームとして、基準フレームから順番に接続ラインを決定する。このようにすれば、図20の(A)に示すようにほぼ中央に動被写体が表示されるパノラマ画像が得られることになる。
【0159】
なお、図19の(B)において、左端付近に動被写体がある撮像画像I(2)のフレームを基準フレームとして、撮像画像I(2)から順番に第2接続ラインを定めると、図20の(B)に示されるように、中央からやや左側に動被写体が表示されるパノラマ画像が得られる。同様に、図19の(B)において、右端付近に人体がある撮像画像I(4)のフレームを基準フレームとして、撮像画像I(4)から順番に接続ラインを定めると、図20の(C)に示すように、中央からやや右側に動被写体が表示されるパノラマ画像が得られる。
【0160】
このように、撮像画像における動被写体の位置などを指標として、特定の基準フレームの撮像画像から順番に、第2接続ラインを定めれば、より見映えのよいパノラマ画像を得ることができるようになる。
【0161】
[7.処理をプログラムにより実行する場合]
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【0162】
図21は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【0163】
コンピュータ60において、CPU(Central Processing Unit)61、ROM(Read Only Memory)62、RAM(Random Access Memory)63は、バス64により相互に接続されている。
【0164】
バス64には、さらに、入出力インタフェース65が接続されている。入出力インタフェース65には、キーボード、マウス、マイクロホンなどよりなる入力部66、ディスプレイ、スピーカなどよりなる出力部67、ハードディスクや不揮発性のメモリなどよりなる記録部68、ネットワークインタフェースなどよりなる通信部69、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどのリムーバブルメディア80を駆動するドライブ71が接続されている。
【0165】
以上のように構成されるコンピュータでは、CPU61が、例えば、記録部68に記録されているプログラムを、入出力インタフェース65およびバス64を介して、RAM63にロードして実行することにより、上述した一連の処理が行われる。
【0166】
コンピュータ(CPU61)が実行するプログラムは、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD−ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア80に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
【0167】
そして、プログラムは、リムーバブルメディア80をドライブ71に装着することにより、入出力インタフェース65を介して、記録部68にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部69で受信し、記録部68にインストールすることができる。その他、プログラムは、ROM62や記録部68に、あらかじめインストールしておくことができる。
【0168】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであってもよいし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであってもよい。
【0169】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であり、本発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【産業上の利用可能性】
【0170】
この発明の画像処理装置および方法、並びにプログラムでは、撮像方向を順次変化させて撮像を行うことにより得られた複数枚の撮像画像間の撮像を行った撮像装置における相対的な動きを補償するパラメータが算出される。この動き補償パラメータに基づき撮像画像が互いに重なる重複領域を判別して、この重複領域におけるスイープ方向の中央位置が第1接続ライン設定部で信号第1接続ラインと設定される。また、重複領域における撮像画像を用いて動被写体の検出が行われて被写体情報が生成されて、被写体情報が撮像方向の変化方向であるスイープ軸に射影される。この射影された被写体情報に基づいて第2接続ラインが設定される。さらに、撮像画像間の2次元の回転を生じる撮像条件について検出が行われて、検出された撮像条件に応じて第1接続ラインまたは第2接続ラインが選択されて、選択された接続ラインが隣接する撮像画像の接続ラインとされる。このため、撮像条件に適した接続ラインが選択されて、選択された接続ライン位置で撮像画像を接続することで、高品質のパノラマ画像を容易に生成できるので、デジタルカメラ等の撮像装置や、撮像方向を順次変化させて撮像を行うことにより得られた複数枚の撮像画像を処理する画像処理装置に適している。
【符号の説明】
【0171】
10・・・撮像装置、21・・・レンズ、22・・・絞り、23・・・撮像素子、24・・・サンプリング部、25・・・A/D変換部、30・・・ 画像処理部、41・・・符号化/復号化部、42・・・メモリ、43・・・D/A変換部、44・・・ビデオエンコーダ、45・・・表示部、46・・・タイミング信号生成部、47・・・操作入力部、48・・・ドライバ、50・・・制御部、51・・・バス、60・・・コンピュータ、61・・・CPU、62・・・ROM、63・・・RAM、64・・・バス、65・・・入出力インタフェース部、66・・・入力部、67・・・出力部、68・・・記録部、69・・・通信部、71・・・ドライブ、80・・・リムーバブルメディア、301・・・撮像画像保持部、302・・・円筒射影部、303・・・動き補償パラメータ算出部、304・・・撮像条件検出部、305・・・第1接続ライン設定部、306・・・動被写体検出部、307・・・被写体情報射影部、308・・・第2接続ライン設定部、309・・・接続ライン選択部、310・・・画像射影部、311・・・画像合成部
【特許請求の範囲】
【請求項1】
撮像方向を順次変化させて撮像を行うことにより得られた複数枚の撮像画像間の前記撮像を行った撮像装置における相対的な動きを補償するパラメータを算出する動き補償パラメータ算出部と、
前記動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、該重複領域における前記撮像方向の変化方向に対する中央位置を第1接続ラインとする第1接続ライン設定部と、
前記動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、該重複領域における撮像画像を用いて動被写体の検出を行い被写体情報を生成する動被写体検出部と、
前記重複領域における前記被写体情報を前記撮像方向の変化方向であるスイープ軸に射影する被写体情報射影部と、
前記射影された被写体情報に基づいて第2接続ラインの設定を行う第2接続ライン設定部と、
前記撮像画像間の2次元の回転を生じる撮像条件について検出を行う撮像条件検出部と、
前記検出された撮像条件に応じて、前記第1接続ラインまたは前記第2接続ラインを選択して、選択した接続ラインを前記隣接する撮像画像の接続ラインとする接続ライン選択部と
を有する画像処理装置。
【請求項2】
前記撮像条件検出部は、前記撮像画像間の2次元の回転角度、または、前記スイープ軸に対して直交する前記撮像装置の撮像方向の角度を検出して、
前記接続ライン選択部は、前記回転角度または前記撮像方向の角度が予め設定されている閾値範囲よりも大きいとき前記第1接続ラインを選択して、前記閾値範囲内であるとき前記第2接続ラインを選択する請求項1記載の画像処理装置。
【請求項3】
前記撮像装置に姿勢を検出する姿勢検出部が設けられており、
前記撮像条件検出部は、前記姿勢検出部からの検出信号を用いて前記角度を検出する請求項2記載の画像処理装置。
【請求項4】
前記動被写体検出部は、前記被写体情報として前記動被写体検出で検出した動被写体の動き量に応じた評価値を用い、
前記被写体情報射影部は、前記スイープ軸と直交する方向にある撮像画像上の各位置の評価値を積分することで被写体情報を前記スイープ軸に射影し、
前記第2接続ライン設定部は、前記射影した評価値が最小となる位置で前記スイープ軸と直交する方向を前記第2接続ラインとする請求項2記載の画像処理装置
【請求項5】
前記動き補償パラメータを利用して、前記複数枚の撮像画像をパノラマ座標系に射影する画像射影部と、
前記選択された接続ラインで前記パノラマ座標系に射影された撮像画像の接続を行いパノラマ画像を生成する画像合成部とを有する請求項1記載の画像処理装置。
【請求項6】
動き補償パラメータ算出部で、撮像方向を順次変化させて撮像を行うことにより得られた複数枚の撮像画像間の前記撮像を行った撮像装置における相対的な動きを補償するパラメータを算出するステップと、
第1接続ライン設定部で、前記動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、該重複領域における前記撮像方向の変化方向に対する中央位置を第1接続ラインとするステップと、
動被写体検出部で、前記動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、該重複領域における撮像画像を用いて動被写体の検出を行い被写体情報を生成するステップと、
被写体情報射影部で、前記重複領域における前記被写体情報を前記撮像方向の変化方向であるスイープ軸に射影するステップと、
第2接続ライン設定部で、前記射影された被写体情報に基づいて第2接続ラインの設定を行うステップと、
撮像条件検出部で、前記撮像画像間の2次元の回転を生じる撮像条件について検出を行うステップと、
接続ライン選択部で、前記検出された撮像条件に応じて、前記第1接続ラインまたは前記第2接続ラインを選択して、選択した接続ラインを前記隣接する撮像画像の接続ラインとするステップとを具備する画像処理方法。
【請求項7】
コンピュータを、
撮像方向を順次変化させて撮像を行うことにより得られた複数枚の撮像画像間の前記撮像を行った撮像装置における相対的な動きを補償するパラメータを算出する動き補償パラメータ算出部として動作させる機能手段と、
前記動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、該重複領域における前記撮像方向の変化方向に対する中央位置を第1接続ラインとする第1接続ライン設定部として動作させる機能手段と、
前記動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、該重複領域における撮像画像を用いて動被写体の検出を行い被写体情報を生成する動被写体検出部として動作させる機能手段と、
前記重複領域における前記被写体情報を前記撮像方向の変化方向であるスイープ軸に射影する被写体情報射影部として動作させる機能手段と、
前記射影された被写体情報に基づいて第2接続ラインの設定を行う第2接続ライン設定部として動作させる機能手段と、
前記撮像画像間の2次元の回転を生じる撮像条件について検出を行う撮像条件検出部として動作させる機能手段と、
前記検出された撮像条件に応じて、前記第1接続ラインまたは前記第2接続ラインを選択して、選択した接続ラインを前記隣接する撮像画像の接続ラインとする接続ライン選択部として動作させる機能手段として機能させるためのプログラム。
【請求項1】
撮像方向を順次変化させて撮像を行うことにより得られた複数枚の撮像画像間の前記撮像を行った撮像装置における相対的な動きを補償するパラメータを算出する動き補償パラメータ算出部と、
前記動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、該重複領域における前記撮像方向の変化方向に対する中央位置を第1接続ラインとする第1接続ライン設定部と、
前記動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、該重複領域における撮像画像を用いて動被写体の検出を行い被写体情報を生成する動被写体検出部と、
前記重複領域における前記被写体情報を前記撮像方向の変化方向であるスイープ軸に射影する被写体情報射影部と、
前記射影された被写体情報に基づいて第2接続ラインの設定を行う第2接続ライン設定部と、
前記撮像画像間の2次元の回転を生じる撮像条件について検出を行う撮像条件検出部と、
前記検出された撮像条件に応じて、前記第1接続ラインまたは前記第2接続ラインを選択して、選択した接続ラインを前記隣接する撮像画像の接続ラインとする接続ライン選択部と
を有する画像処理装置。
【請求項2】
前記撮像条件検出部は、前記撮像画像間の2次元の回転角度、または、前記スイープ軸に対して直交する前記撮像装置の撮像方向の角度を検出して、
前記接続ライン選択部は、前記回転角度または前記撮像方向の角度が予め設定されている閾値範囲よりも大きいとき前記第1接続ラインを選択して、前記閾値範囲内であるとき前記第2接続ラインを選択する請求項1記載の画像処理装置。
【請求項3】
前記撮像装置に姿勢を検出する姿勢検出部が設けられており、
前記撮像条件検出部は、前記姿勢検出部からの検出信号を用いて前記角度を検出する請求項2記載の画像処理装置。
【請求項4】
前記動被写体検出部は、前記被写体情報として前記動被写体検出で検出した動被写体の動き量に応じた評価値を用い、
前記被写体情報射影部は、前記スイープ軸と直交する方向にある撮像画像上の各位置の評価値を積分することで被写体情報を前記スイープ軸に射影し、
前記第2接続ライン設定部は、前記射影した評価値が最小となる位置で前記スイープ軸と直交する方向を前記第2接続ラインとする請求項2記載の画像処理装置
【請求項5】
前記動き補償パラメータを利用して、前記複数枚の撮像画像をパノラマ座標系に射影する画像射影部と、
前記選択された接続ラインで前記パノラマ座標系に射影された撮像画像の接続を行いパノラマ画像を生成する画像合成部とを有する請求項1記載の画像処理装置。
【請求項6】
動き補償パラメータ算出部で、撮像方向を順次変化させて撮像を行うことにより得られた複数枚の撮像画像間の前記撮像を行った撮像装置における相対的な動きを補償するパラメータを算出するステップと、
第1接続ライン設定部で、前記動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、該重複領域における前記撮像方向の変化方向に対する中央位置を第1接続ラインとするステップと、
動被写体検出部で、前記動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、該重複領域における撮像画像を用いて動被写体の検出を行い被写体情報を生成するステップと、
被写体情報射影部で、前記重複領域における前記被写体情報を前記撮像方向の変化方向であるスイープ軸に射影するステップと、
第2接続ライン設定部で、前記射影された被写体情報に基づいて第2接続ラインの設定を行うステップと、
撮像条件検出部で、前記撮像画像間の2次元の回転を生じる撮像条件について検出を行うステップと、
接続ライン選択部で、前記検出された撮像条件に応じて、前記第1接続ラインまたは前記第2接続ラインを選択して、選択した接続ラインを前記隣接する撮像画像の接続ラインとするステップとを具備する画像処理方法。
【請求項7】
コンピュータを、
撮像方向を順次変化させて撮像を行うことにより得られた複数枚の撮像画像間の前記撮像を行った撮像装置における相対的な動きを補償するパラメータを算出する動き補償パラメータ算出部として動作させる機能手段と、
前記動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、該重複領域における前記撮像方向の変化方向に対する中央位置を第1接続ラインとする第1接続ライン設定部として動作させる機能手段と、
前記動き補償パラメータに基づき隣接する撮像画像が互いに重なる重複領域を判別して、該重複領域における撮像画像を用いて動被写体の検出を行い被写体情報を生成する動被写体検出部として動作させる機能手段と、
前記重複領域における前記被写体情報を前記撮像方向の変化方向であるスイープ軸に射影する被写体情報射影部として動作させる機能手段と、
前記射影された被写体情報に基づいて第2接続ラインの設定を行う第2接続ライン設定部として動作させる機能手段と、
前記撮像画像間の2次元の回転を生じる撮像条件について検出を行う撮像条件検出部として動作させる機能手段と、
前記検出された撮像条件に応じて、前記第1接続ラインまたは前記第2接続ラインを選択して、選択した接続ラインを前記隣接する撮像画像の接続ラインとする接続ライン選択部として動作させる機能手段として機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【公開番号】特開2011−130327(P2011−130327A)
【公開日】平成23年6月30日(2011.6.30)
【国際特許分類】
【出願番号】特願2009−288859(P2009−288859)
【出願日】平成21年12月21日(2009.12.21)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
【公開日】平成23年6月30日(2011.6.30)
【国際特許分類】
【出願日】平成21年12月21日(2009.12.21)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
[ Back to top ]