(57)【要約】【課題】より自然な動画の生成を可能にすることを課題とする。【解決手段】画像処理部（１０７）は、処理対象の画像と前記処理対象の画像に対して時間的に前及び後の画像との間でオクルージョンが生ずる双方向オクルージョン領域を検出し、双方向オクルージョン領域の動き量を算出する。そして、画像処理部（１０７）は、双方向オクルージョン領域の動き量に応じて、処理対象の画像に動きブレを付与する画像処理を行う。【選択図】図１
2018174461.tif 000002
【特許請求の範囲】
【請求項１】
処理対象の画像と前記処理対象の画像に対して時間的に前及び後の画像との間でオクルージョンが生ずる双方向オクルージョン領域を検出する検出手段と、
前記双方向オクルージョン領域の動き量を算出する算出手段と、
前記双方向オクルージョン領域の動き量に応じて、前記処理対象の画像に所定の画像処理を行う処理手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記処理対象の画像と前記処理対象の画像に対して時間的に前及び後の画像は、動画のフレームであり、
前記検出手段は、前記処理対象のフレームと前記処理対象のフレームに対して時間軸上で前のフレームとの間で生ずる順方向のオクルージョンと、前記処理対象のフレームと前記処理対象のフレームに対して時間軸上で後のフレームとの間で生ずる逆方向のオクルージョンとを基に、前記双方向オクルージョン領域を検出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記処理対象の画像と前記処理対象の画像に対して時間的に前及び後の画像は、動画のフレームであり、
前記検出手段は、前記処理対象のフレームと前記処理対象のフレームに対して時間軸上で前の複数枚の各フレームとの間で生ずる順方向のオクルージョンと、前記処理対象のフレームと前記処理対象のフレームに対して時間軸上で後の複数枚の各フレームとの間で生ずる逆方向のオクルージョンとを基に、前記双方向オクルージョン領域を検出することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記検出手段は、前記順方向のオクルージョンと前記逆方向のオクルージョンの双方が生ずる場合に、前記双方向オクルージョン領域が生ずると判断することを特徴とする請求項２又は３に記載の画像処理装置。
【請求項５】
前記処理対象の画像の画素毎の奥行情報を取得する取得手段を有し、
前記算出手段は、前記双方向オクルージョン領域の画素毎に取得された奥行情報を基に、前記双方向オクルージョン領域の動き量を推定することを特徴とする請求項１から４の何れか１項に記載の画像処理装置。
【請求項６】
前記取得手段は、前記処理対象の画像の画素毎の奥行情報が配列された奥行マップを取得し、
前記算出手段は、前記奥行マップの中から、前記双方向オクルージョン領域の奥行情報で表される距離と同距離で且つ前記双方向オクルージョン領域ではない領域を選択し、前記選択した領域で算出された動き量を、前記双方向オクルージョン領域の動き量と推定することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記算出手段は、前記双方向オクルージョン領域ではない領域として、前記奥行マップの中から前記双方向オクルージョン領域の奥行情報が取得された画素位置の近傍の領域を選択することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記処理対象の画像を撮像した撮像装置の動き情報を取得する取得手段を有し、
前記算出手段は、前記撮像装置の動き情報を基に、前記双方向オクルージョン領域の動き量を算出することを特徴とする請求項１から４の何れか１項に記載の画像処理装置。
【請求項９】
前記取得手段は、前記撮像装置の動き情報として角速度の情報を取得し、
前記算出手段は、前記角速度から前記撮像装置が移動した角度を算出し、前記撮像装置の画素ピッチで前記角度を除算して画像上での移動量を算出し、前記画像上での移動量を基に前記双方向オクルージョン領域の動き量を算出することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記処理対象の画像の画素毎の奥行情報と、前記処理対象の画像を撮像した撮像装置の動き情報とを取得する取得手段を有し、
前記算出手段は、前記双方向オクルージョン領域の画素毎に取得された奥行情報と、前記撮像装置の動き情報とを基に、前記双方向オクルージョン領域の動き量を算出することを特徴とする請求項１から４の何れか１項に記載の画像処理装置。
【請求項１１】
前記取得手段は、前記撮像装置の動き情報として角速度の情報を取得し、
前記算出手段は、
前記角速度から前記撮像装置が移動した角度を算出し、前記撮像装置の画素ピッチで前記角度を除算して画像上での移動量を算出して、前記画像上での移動量に応じた動き量を算出し、さらに、前記算出した動き量から、前記双方向オクルージョン領域について取得した奥行情報で表される距離を基に前記双方向オクルージョン領域の前記動き量を算出することを特徴とする請求項１０に記載の画像処理装置。
【請求項１２】
前記処理対象の画像の全ての画素の動き量のヒストグラムを取得する取得手段を有し、
前記算出手段は、前記動き量のヒストグラムを基に、前記双方向オクルージョン領域の動き量を推定することを特徴とする請求項１から４の何れか１項に記載の画像処理装置。
【請求項１３】
前記算出手段は、前記動き量のヒストグラムの中で最も頻度が高い動き量を前記双方向オクルージョン領域の動き量とすることを特徴とする請求項１２に記載の画像処理装置。
【請求項１４】
前記処理手段は、前記所定の画像処理として、前記双方向オクルージョン領域の動き量に応じて前記処理対象の画像に動きブレを付与するモーションブラー付与処理を行うことを特徴とする請求項１から１３の何れか１項に記載の画像処理装置。
【請求項１５】
前記処理手段は、前記双方向オクルージョン領域には前記算出手段にて算出された動き量に基づく動きブレを付与し、双方向オクルージョン領域以外の領域には前記処理対象の画像と前記処理対象の画像に対して時間的に後又は前の画像との間で算出された動き量に基づく動きブレを付与することを特徴とする請求項１４に記載の画像処理装置。
【請求項１６】
処理対象の画像と前記処理対象の画像に対して時間的に前及び後の画像との間でオクルージョンが生ずる双方向オクルージョン領域を検出する検出工程と、
前記双方向オクルージョン領域の動き量を算出する算出工程と、
前記双方向オクルージョン領域の動き量に応じて、前記処理対象の画像に所定の画像処理を行う処理工程と、
を有することを特徴とする画像処理装置の画像処理方法。
【請求項１７】
コンピュータを、請求項１から１５の何れか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を処理する画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
ビデオカメラやスチルカメラ等の撮像装置には、撮影した動画の１フレームを切り出し、静止画として記録等する機能を搭載している機種がある。ユーザは、このような機能を使うことにより、「鳥が飛び立つ瞬間」といったような決定的瞬間の静止画を比較的容易に得る事が可能となっている。このように動画のフレームを静止画として取り出す場合、フレームの画像は動体ブレ等が少ない高画質な画像であることが望ましい。動体ブレ等が少ないフレームを撮像するには各フレームの撮像がなされる際の露光時間を短くする必要がある。ただし、露光時間が短いフレームからなる動画を視聴した場合、動きがカクカクした不自然な動画になってしまうことが多い。
【０００３】
このような動画に対し、動体の動きを滑らかにするために動きブレを付与するようなモーションブラー付与技術が存在する。モーションブラーを付与する際には、動画から動きベクトルを検出する必要がある。しかしながら、動画のフレーム間でいわゆるオクルージョンが発生している場合、動きベクトルの検出ができなくなる。
【０００４】
なお、特許文献１には、入力画像と先行画像とを基に算出した第１動きベクトルと、入力画像と後続画像とを基に算出した第２動きベクトルとを基に、オクルージョン領域の動きベクトルを推定する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００５−５１７２５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、例えば移動している人と人との間から見える背景や、停止した物体と物体との間から見える動体などが存在する場合には、特許文献１に記載の技術でも適切な動きベクトルを推定できない。この場合、動画に対し例えばモーションブラーを付与する画像処理において、不自然な動画が生成されてしまうことがある。
【０００７】
そこで、本発明は、より自然な動画の生成を可能にすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、処理対象の画像と前記処理対象の画像に対して時間的に前及び後の画像との間でオクルージョンが生ずる双方向オクルージョン領域を検出する検出手段と、前記双方向オクルージョン領域の動き量を算出する算出手段と、前記双方向オクルージョン領域の動き量に応じて、前記処理対象の画像に所定の画像処理を行う処理手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、より自然な動画の生成が可能となる。
【図面の簡単な説明】
【００１０】
【図１】実施形態の撮像装置の概略構成例を示す図である。
【図２】撮影から画像処理までの処理の流れを示すフローチャートである。
【図３】画像データのデータ構造を示す図である。
【図４】順方向と逆方向の動きベクトル算出処理のフローチャートである。
【図５】動きベクトル算出処理の説明図である。
【図６】動きベクトルを用いたオクルージョン検出処理のフローチャートである。
【図７】動きベクトルを用いたオクルージョン検出例の説明図である。
【図８】双方向オクルージョン検出処理のフローチャートである。
【図９】オクルージョンの発生状態の説明図である。
【図１０】第１の動き量推定処理のフローチャートである。
【図１１】第２の動き量推定処理のフローチャートである。
【図１２】第３の動き量推定処理のフローチャートである。
【図１３】第４の動き量推定処理のフローチャートである。
【図１４】動きベクトルのヒストグラム例を示す図である。
【図１５】動きベクトルに応じた平滑化フィルタ処理のフローチャートである。
【図１６】画像処理に用いる平滑化フィルタの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら、本発明の好適な実施形態について説明する。
本実施形態では、短い露光時間で撮像された各フレームからなる動画に対し、動体の動きを滑らかにするための動きブレを付与するモーションブラー付与処理を行う画像処理装置を例に挙げる。
【００１２】
＜概略構成＞
以下、本実施形態の画像処理装置について説明する。
図１は、本実施形態の画像処理装置の一適用例である撮像装置１００の概略構成例を示すブロック図である。なお、本実施形態における撮像装置１００は、例えば、デジタルカメラやデジタルビデオカメラ、カメラ機能を備えたスマートフォンやタブレット端末等の各種携帯端末、工業用カメラ、車載カメラ、医療用カメラ等の何れにも適用可能である。
【００１３】
制御部１０１は、例えばＣＰＵであり、撮像装置１００が備える各部の動作を制御する動作プログラムを後述するＲＯＭ１０２より読み出し、後述するＲＡＭ１０３に展開して実行する。これにより、制御部１０１は、撮像装置１００が備える各部の動作を制御することができる。ＲＯＭ１０２は、電気的に消去・記録可能な不揮発性メモリであり、前述した動作プログラムに加え、各部の動作に必要なパラメータ等を記憶する。ＲＡＭ１０３は、書き換え可能な揮発性メモリであり、ＲＯＭ１０２から読み出された動作プログラムが展開され、また、撮像装置１００が備える各部の動作において出力されたデータの一時的な記憶領域として用いられる。
【００１４】
光学系１０４は、ズームレンズ、フォーカスレンズを含むレンズ群で構成され、被写体像を後述する撮像部１０５の撮像面上に結像する。なお、光学系１０４は、撮像装置１００に着脱可能な光学系ユニットであってもよい。また図１では図示を省略しているが、撮像装置１００は絞りやシャッター等も備えている。撮像部１０５は、例えばＣＣＤやＣＭＯＳセンサー等の撮像素子であり、光学系１０４により撮像部１０５の撮像面上に結像された光学像を光電変換し、得られたアナログ画像信号をＡ／Ｄ変換部１０６に出力する。Ａ／Ｄ変換部１０６は、入力されたアナログ画像信号をデジタル画像データに変換し、その画像データをＲＡＭ１０３に出力する。これにより、ＲＡＭ１０３には、撮像された画像データが一時的に記憶される。
【００１５】
画像処理部１０７は、ＲＡＭ１０３に一時記憶されている画像データに対して、ホワイトバランス調整、色補間、ガンマ処理など、様々な画像処理を施す。また詳細は後述するが、画像処理部１０７は、モーションブラー付与処理機能も備えており、ＲＡＭ１０３に記憶されている画像や後述する記録部１０８に記録されている画像に対し、動きブレを付与することで、動きが滑らかな動画を生成可能となされている。
【００１６】
記録部１０８は着脱可能なメモリカード等を備えている。記録部１０８には、画像処理部１０７で処理された画像データがＲＡＭ１０３を介して供給され、その画像データをメモリカード等に記録する。また、記録部１０８は、メモリカードに記録されている画像データを読み出し、ＲＡＭ１０３を介して画像処理部１０７に出力することもできる。
表示部１０９は、液晶ディスプレイ（ＬＣＤ）等の表示デバイスであり、ＲＡＭ１０３や記録部１０８に記録されている画像や、ユーザからの指示を受け付けるための操作ユーザインターフェイス画像を表示する。
装置動き検出部１１０は、ジャイロセンサ等のように、撮像装置１００の動きを検出するデバイスである。装置動き検出部１１０は、撮影時に撮像装置１００が例えばユーザによりパン操作やチルト操作されるなどした際の、撮像装置１００の単位時間当たりの角度変化すなわち角速度に基づいて、撮像装置１００のヨー・ピッチ方向等の動きを検出する。
【００１７】
＜撮像装置の動作＞
以下、本実施形態の撮像装置１００の動作について詳細に説明する。
図２は、本実施形態の撮像装置１００において動画が撮影され、その動画のデータが記録部１０８により記録された後、画像処理部１０７によりモーションブラー付与の画像処理が行われるまでの処理の流れを示すフローチャートである。なお、図２のフローチャートでは、処理ステップＳ２０１〜Ｓ２０７をそれぞれＳ２０１〜Ｓ２０７と略記する。図２のフローチャートの処理は、ハードウェア構成により行われてもよいし、本実施形態に係るプログラムをＣＰＵが実行することにより実現されてもよい。また、図２のフローチャートの処理は、一部がソフトウェア構成で残りがハードウェア構成により実現されてもよい。これらのことは後述する他のフローチャートにおいても同様とする。例えば、図２のフローチャートの処理をＣＰＵがプログラムにより実行する場合、Ｓ２０２からＳ２０７までの処理は、本実施形態に係る画像処理プログラムをＣＰＵが実行することにより実現される。また例えばＳ２０１の処理は、撮像装置１００において動画を撮影する際に各部の動作を制御するプログラムを制御部１０１が実行することにより実現される。なお、本実施形態に係るプログラムは、各種記録メディアやネットワークを介して供給され、ＲＡＭに展開されることによりＣＰＵにより実行可能となされる。
【００１８】
図２のＳ２０１において、制御部１０１は、撮像部１０５を制御して光学像を撮像させ、さらに画像処理部１０７によりホワイトバランス調整、色補間、ガンマ処理などの画像処理を行わせた後、その画像処理後の画像データを記録部１０８に記録させる。本実施形態の場合、動画の撮影の際、撮像部１０５では、短い露光時間で各フレームの画像が撮像され、それら各フレームの画像からなる動画のデータが、記録部１０８に記録されるとする。
【００１９】
ここで、記録部１０８により記録される画像データは、例えば図３に示すようなデータ構造となされる。図３に示すように、画像データ１３００は、画像情報１３０２とヘッダ情報１３０１とからなる。画像情報１３０２は、撮影されて画像処理部１０７による画像処理がなされた後の画像そのものの情報である。ヘッダ情報１３０１は、奥行マップ１３０４、撮像装置動き情報１３０５、図示しない撮影日時情報や撮影機種情報、ファイルサイズや画像サイズなどの各種情報を含むメタ情報１３０３を有する。奥行マップ１３０４は、撮像装置１００から被写体等までの距離を表す奥行情報が、画像の各画素位置に対応して配置されたマップ情報である。奥行マップ１３０４の生成は、例えば、複眼の撮像装置や複数台の撮像装置で取得できる視差情報を用いた公知の手法により実現可能であるため、ここではその詳細な説明は省略する。
【００２０】
図２のＳ２０１の後、撮像装置１００の処理は、Ｓ２０２以降に進む。Ｓ２０２以降の各処理は、制御部１０１による制御の下で、画像処理部１０７により行われる。
図２のＳ２０２において、画像処理部１０７は、記録部１０８に記録された動画のフレーム間の動きベクトルを算出する。本実施形態の場合、画像処理部１０７は、記録部１０８に記録されている動画の各フレームのうち、時間軸上で連続したフレームを記録部１０８から取得し、それらフレーム間で動きベクトルを算出する。動きベクトル算出処理の詳細は後述する。
【００２１】
本実施形態では、動画の各フレームのうち、動きベクトル算出の処理対象フレームをＮ番目のフレームとし、以下、このＮ番目のフレームをＮフレームと呼ぶことにする。また、Ｎフレームより時間軸上で前のＮ−１番目のフレームをＮ−１フレーム、Ｎフレームより時間軸上で後のＮ＋１番目のフレームをＮ＋１フレームと呼ぶことにする。詳細は後述するが、画像処理部１０７は、Ｎフレームを基準フレームとし、Ｎ＋１フレームを参照フレームとして用いた動きベクトル検出処理により、第１の動きベクトルを算出する。また、画像処理部１０７は、Ｎ＋１フレームを基準フレームとし、Ｎフレームを参照フレームとして用いた動きベクトル検出処理により、第２の動きベクトルを算出する。同様に、画像処理部１０７は、Ｎ−１フレームを基準フレームとし、Ｎフレームを参照フレームとして用いて第３の動きベクトルを算出し、また、Ｎフレームを基準フレームとし、Ｎ−１フレームを参照フレームとして用いて第４の動きベクトルを算出する。以下、Ｎフレームが基準フレームでＮ＋１フレームが参照フレームとなされて算出された第１の動きベクトルと、Ｎ−１フレームが基準フレームでＮフレームが参照フレームとなされて算出された第３の動きベクトルとを、順方向の動きベクトルと呼ぶ。一方、Ｎ＋１フレームが基準フレームでＮフレームが参照フレームとなされて算出された第２の動きベクトルと、Ｎフレームが基準フレームでＮ−１フレームが参照フレームとなされて算出された第４の動きベクトルとを、逆方向の動きベクトルと呼ぶ。このように、画像処理部１０７は、処理対象のＮフレームについて、第１の動きベクトルと第３の動きベクトルの二つの順方向の動きベクトル、第２の動きベクトルと第４の動きベクトルの二つの逆方向の動きベクトルの、計４パターンの動きベクトルを算出する。
【００２２】
次に、Ｓ２０３において、画像処理部１０７は、Ｓ２０２で処理対象のＮフレームについて算出した４パターンの動きベクトルを用い、双方向オクルージョン領域の検出処理を行う。
ここで、オクルージョンとは、動体等の被写体と他の被写体とが交差等することで、前面側の被写体により後方側の被写体が隠されたり、後方側の被写体が前面側の被写体の陰から出現したりする状態をいう。詳細は後述するが、本実施形態では、前述した順方向の動きベクトルと逆方向の動きベクトルを基に、オクルージョンが生ずるか否かを判定する。
【００２３】
本実施形態では、処理対象をＮフレームとした場合、ＮフレームとＮ＋１フレームを用いて算出した順方向の第１の動きベクトルと逆方向の第２の動きベクトルを基に、オクルージョンが生じているか否かを判定する。これら順方向の第１の動きベクトルと逆方向の第２の動きベクトルを基に、オクルージョンが生じていると判定した場合、そのオクルージョンを順方向のオクルージョンとして検出する。すなわち、順方向のオクルージョンとは、動画のＮフレームを処理対象とした場合、Ｎフレームと、そのＮフレームに対して撮影時間順で後のＮ＋１フレームとを用いて検出されるオクルージョンである。本実施形態における順方向のオクルージョンの検出処理の詳細については後述する。
【００２４】
また、本実施形態では、処理対象をＮフレームとした場合、Ｎ−１フレームとＮフレームを用いて算出した順方向の第３の動きベクトルと逆方向の第４の動きベクトルを基に、オクルージョンが生じているか否かについても判定する。これら順方向の第３の動きベクトルと逆方向の第４の動きベクトルを基に、オクルージョンが生じていると判定した場合、そのオクルージョンを逆方向のオクルージョンとして検出する。すなわち、逆方向のオクルージョンとは、動画のＮフレームを処理対象とした場合、Ｎフレームと、そのＮフレームに対して撮影時間順で前のＮ−１フレームとを用いて検出されるオクルージョンである。本実施形態における逆方向のオクルージョンの検出処理の詳細については後述する。
【００２５】
そして、本実施形態では、順方向のオクルージョンと逆方向のオクルージョンの双方が検出された場合、双方向のオクルージョンが生じている判断する。このように、Ｓ２０３では、処理対象のフレームと時間的に前及び後のフレームとの間でオクルージョンが生ずる、双方向オクルージョン領域の検出処理が行われる。本実施形態における双方向オクルージョン領域の検出処理の詳細については後述する。
【００２６】
次に、Ｓ２０４において、画像処理部１０７は、Ｓ２０３の処理により双方向オクルージョン領域が検出されたか否か、つまり双方向オクルージョン領域が存在しているか否かを判定する。画像処理部１０７は、Ｓ２０４において、双方向オクルージョン領域が存在すると判定（Ｙｅｓ）した場合には、Ｓ２０５に処理を進め、一方、双方向オクルージョン領域が存在しないと判定（Ｎｏ）した場合には、Ｓ２０７に処理を進める。
【００２７】
Ｓ２０５に進んだ場合、画像処理部１０７は、Ｓ２０３で検出された双方向オクルージョン領域の動き量を算出する。双方向オクルージョン領域の動き量の算出は、具体的には後述する第１〜第４の動き量推定処理により行われる。双方向オクルージョン領域の動き量推定処理の詳細は後述する。Ｓ２０５の処理後、画像処理部１０７は、Ｓ２０６に処理を進める。
【００２８】
Ｓ２０６に進むと、画像処理部１０７は、処理対象のＮフレームの画像のうち、Ｓ２０３で検出された双方向オクルージョン領域に対して、Ｓ２０５で推定（算出）した双方向オクルージョン領域の動き量に応じた動きブレを付与する。Ｓ２０６の後、画像処理部１０７は、Ｓ２０７に処理を進める。
【００２９】
ここで、Ｓ２０６の処理後にＳ２０７に進んだ場合、画像処理部１０７は、Ｎフレームの画像のうち、Ｓ２０６で動きブレが付与された双方向オクルージョン領域以外の他の領域に対して、Ｓ２０２で算出された順方向の動きベクトルに応じた動きブレを付与する。一方、Ｓ２０４にて双方向オクルージョン領域が存在しないと判定されてＳ２０７に進んだ場合、画像処理部１０７は、Ｎフレームの全画像領域に対して、Ｓ２０２で算出された順方向の動きベクトルに応じた動きブレを付与する。
【００３０】
つまり、Ｓ２０７では、処理対象のフレームにおいて、双方向オクルージョン領域が存在する場合には、その双方向オクルージョン領域を除いた他の領域に対してのみ、Ｓ２０２で算出された順方向の動きベクトルに基づくモーションブラー付与処理が行われる。一方、処理対象のフレームにおいて、双方向オクルージョン領域が存在しない場合、Ｓ２０７では、その処理対象のフレームの全画像領域に対して、Ｓ２０２で算出された順方向の動きベクトルに基づくモーションブラー付与処理が行われる。このＳ２０７の後、画像処理部１０７は、図２のフローチャートの処理を終了する。
これらＳ２０６、Ｓ２０７で行われるモーションブラー付与処理の詳細については後述する。
【００３１】
＜動きベクトル算出処理＞
以下、図２のＳ２０２において行われる動きベクトル算出処理について、図４及び図５を参照しながら説明する。図４は画像処理部１０７が行う動きベクトル算出処理のフローチャートであり、図５はいわゆるブロックマッチング法による動きベクトル算出例の説明図である。なお、本実施形態では、動きベクトル算出手法の例として、ブロックマッチング法を挙げたが、動きベクトル算出手法はこれに限ったものではなく、例えばオプティカルフロー法を用いてもよい。
【００３２】
図４のＳ３０１において、画像処理部１０７は、制御部１０１による制御の下、記録部１０８に記録されている動画のフレームのうち、時間軸上で連続した２枚のフレーム画像を取得する。そして、画像処理部１０７は、前述した順方向の動きベクトルを算出する際には、時間軸上で前のフレームを基準フレームに設定し、時間軸上で後のフレームを参照フレームに設定する。また、画像処理部１０７は、逆方向の動きベクトルを算出する際には、時間軸上で後のフレームを基準フレームに設定し、時間軸上で前のフレームを参照フレームに設定する。
【００３３】
次にＳ３０２の処理として、画像処理部１０７は、図５に示すように、基準フレーム４０１に対して基準ブロック４０２を設定する。基準ブロック４０２は、縦×横が共に画素数Ｍのブロックである。さらに、Ｓ３０３の処理として、画像処理部１０７は、参照フレーム４０３に対して探索範囲４０５を設定する。探索範囲４０５は、参照フレーム４０３内で、基準フレーム４０１の基準ブロック４０２と同座標位置４０４を中心とした、縦×横が共に画素数Ｍ＋ｍの範囲である。なお、順方向の動きベクトルを算出する場合、基準フレーム４０１は時間的に前のフレーム、参照フレーム４０３は時間的に後のフレームである。一方、逆方向の動きベクトルを算出する場合、基準フレーム４０１は時間的に後のフレーム、参照フレーム４０３は時間的に前のフレームとなる。
【００３４】
次にＳ３０４において、画像処理部１０７は、参照フレーム４０３の探索範囲４０５内で所定のスキャン順に参照ブロック４０６を順次設定し、それらスキャン順の参照ブロック４０６毎に、基準フレーム４０１の基準ブロック４０２との間の相関演算を行う。参照ブロック４０６は、基準ブロック４０２と同様の縦×横が共に画素数Ｍのブロックである。相関演算は、基準ブロック４０２内の各画素値と、参照ブロック４０６内の各画素値との差分絶対値和を求める演算となされている。そして、画像処理部１０７は、Ｓ３０４において、探索範囲４０５内で差分絶対値和の値が最も小さい参照ブロック４０６の座標位置を、最も相関値が高い座標位置として取得する。図５の例では、参照フレーム４０３に設定された探索範囲４０５内の図中の参照ブロック４０６の座標位置で最も相関値が高くなっている例を示している。なお、相関値の算出方法は、差分絶対値和を求める例に限定されず、例えば差分二乗和や正規相互相関値に基づいて相関値が算出されてもよい。
【００３５】
次にＳ３０５の処理として、画像処理部１０７は、基準ブロック４０２の座標位置と、最も高い相関値を示した参照ブロック４０６の座標位置とに基づき動きベクトル４０７を算出する。なお、基準ブロック４０２の座標位置、参照ブロック４０６の座標位置は、それぞれのブロックの中心座標位置とする。図５の例では、参照フレーム４０３内において、基準フレーム４０１の基準ブロック４０２の中心座標位置と同座標位置４０４から、Ｓ３０４で最も高い相関値が得られた参照ブロック４０６の中心座標位置までを表す動きベクトル４０７が算出される。
【００３６】
次にＳ３０６の処理として、画像処理部１０７は、図５の基準フレーム４０１内の全画素について動きベクトルの算出処理が完了したか否か判定し、全画素の動きベクトル算出が完了していないと判定（Ｎｏ）した場合には、Ｓ３０２に処理を戻す。Ｓ３０２に処理を戻した場合、画像処理部１０７は、図５の基準ブロック４０２の座標位置を所定のスキャン順の方向に１画素分移動させた座標位置において基準ブロック４０２を再設定し、以降、Ｓ３０３からＳ３０６までの処理を行う。このように画像処理部１０７は、基準フレーム４０１内の全画素に対応した動きベクトルの算出処理が完了するまで、基準ブロック４０２の位置を順次移動させながら、Ｓ３０２からＳ３０６の処理を繰り返す。そして、Ｓ３０６において、全画素の動きベクトル算出が完了したと判定（Ｙｅｓ）した場合、画像処理部１０７は、Ｓ３０７に処理を進める。なお、画像処理部１０７は、全画素の動きベクトルを算出するのではなく、所定画素毎に動きベクトルを算出してもよい。
【００３７】
次にＳ３０７において、画像処理部１０７は、順方向の動きベクトル及び逆方向の動きベクトルの両方の算出処理が完了したか否か判定し、順方向及び逆方向の動きベクトルの算出処理が完了していないと判定（Ｎｏ）した場合には、Ｓ３０１に処理を戻す。以下、Ｓ３０７において、順方向の動きベクトル及び逆方向の動きベクトルの両方の算出処理が完了したと判定されるまでＳ３０１からＳ３０７の処理を繰り返す。そして、Ｓ３０７において順方向及び逆方向の動きベクトルの算出処理が完了したと判定（Ｙｅｓ）した場合、画像処理部１０７は、図４のフローチャートの処理を終了する。以上説明した図４のフローチャートの処理により、図５の基準フレーム４０１と参照フレーム４０３のフレーム間における順方向及び逆方向の画素毎の動きベクトルが算出される。これら順方向及び逆方向の画素毎の動きベクトルは、ＲＡＭ１０３に送られて一時的に記憶される。
【００３８】
＜オクルージョンの検出処理＞
以下、図２のＳ２０３において双方向オクルージョン領域検出処理の際に行われる順方向のオクルージョン検出処理について、図６及び図７（ａ）、図７（ｂ）を参照しながら説明する。図６は、前述のようにして算出された順方向動きベクトルと逆方向動きベクトルに基づく順方向のオクルージョンの検出処理のフローチャートである。図７（ａ）、図７（ｂ）は、順方向及び逆方向動きベクトルに基づくオクルージョンの検出処理の説明図である。
【００３９】
図６のＳ７０１において、画像処理部１０７は、前述した処理対象のＮフレームとＮ＋１フレームとの間で算出された順方向動きベクトル（第１の動きベクトル）をＲＡＭ１０３から取得する。図７（ａ）は、ＮフレームとＮ＋１フレームとの間で算出された順方向動きベクトル８０１の例を示している。順方向動きベクトル８０１は、Ｎフレーム内の座標（ｘ，ｙ）を始点座標とし、水平成分ｕ、垂直成分ｖで表される動きベクトルであるとする。このため、順方向動きベクトル８０１の終点座標は座標（ｘ＋ｕ，ｙ＋ｖ）となっている。
【００４０】
次のＳ７０２において、画像処理部１０７は、ＮフレームとＮ＋１フレームとの間で算出された逆方向動きベクトル（第２の動きベクトル）をＲＡＭ１０３から取得する。図７（ｂ）は、ＮフレームとＮ＋１フレームとの間で算出された逆方向動きベクトル８０２の例を示している。逆方向動きベクトル８０２は、Ｎ＋１フレームの座標（ｘ'，ｙ'）＝（ｘ＋ｕ，ｙ＋ｖ）を始点座標とし、水平成分ｕ'、垂直成分ｖ'で表される動きベクトルであるとする。このため、逆方向動きベクトル８０２の終点座標は座標（ｘ'＋ｕ'，ｙ'＋ｖ'）となっている。なお、順方向動きベクトル８０１、逆方向動きベクトル８０２の精度は、サブピクセル精度でもよく、この場合、座標に置き換えるときは丸めこみ処理が行われることになる。
【００４１】
次に、画像処理部１０７は、Ｓ７０３の処理として、順方向動きベクトル８０１の始点座標（ｘ，ｙ）の位置と逆方向動きベクトル８０２の終点座標（ｘ'＋ｕ'，ｙ'＋ｖ'）の位置との間のユークリッド距離を算出する。さらに、Ｓ７０３において、画像処理部１０７は、それら座標位置間の距離と所定の閾値とを比較する。
【００４２】
ここで、例えばオクルージョンが発生していない場合、順方向動きベクトル８０１は高い精度で検出でき、且つ逆方向動きベクトル８０２も高精度で検出可能である。このため、逆方向動きベクトル８０２の終点座標（ｘ'＋ｕ'，ｙ'＋ｖ'）の位置は、順方向動きベクトル８０１の始点座標（ｘ，ｙ）の位置と一致又は近傍になるはずである。これに対し、オクルージョンが発生している場合には、順方向動きベクトル８０１を高い精度で算出できないため、終点座標（ｘ＋ｕ，ｙ＋ｖ）は正しく算出されず、また逆方向動きベクトル８０２の始点座標（ｘ'＋ｕ'，ｙ'＋ｖ'）も正しくない座標となる。このため、オクルージョンが発生している場合には、逆方向動きベクトル８０２の終点座標（ｘ'＋ｕ'，ｙ'＋ｖ'）の位置は、順方向動きベクトル８０１の始点座標（ｘ，ｙ）とは大きく異なる位置になり、それら座標位置間の距離が大きくなる。
【００４３】
したがって、画像処理部１０７は、Ｓ７０３において、それら座標位置間の距離が所定の閾値以上になっていると判定（Ｙｅｓ）した場合には、Ｓ７０４に処理を進め、オクルージョンが発生していると判断した後、図６のフローチャートの処理を終了する。このようにオクルージョンが発生していると判断された座標位置の領域は、オクルージョン領域として検出されることになる。
一方、画像処理部１０７は、Ｓ７０３において、それら座標位置間の距離が所定の閾値未満であると判定（Ｎｏ）した場合には、オクルージョンが生じていないとして、図６のフローチャートの処理を終了する。
【００４４】
図６と図７（ａ）、図７（ｂ）の例では、ＮフレームとＮ＋１フレームとの間の順方向のオクルージョン検出を例に挙げたが、Ｎ−１フレームとＮフレーム間の逆方向のオクルージョン検出についても前述同様にして行われる。すなわち、Ｎ−１フレームとＮフレーム間の逆方向のオクルージョン検出の場合、図６のＳ７０１において、画像処理部１０７は、前述した処理対象のＮフレームとＮ−１フレームとの間で算出された順方向動きベクトル（第３の動きベクトル）を取得する。また、Ｓ７０２において、画像処理部１０７は、ＮフレームとＮ−１フレームとの間で算出された逆方向動きベクトル（第４の動きベクトル）を取得する。さらに、Ｓ７０３において、画像処理部１０７は、それら順方向動きベクトル（第３の動きベクトル）の始点座標位置と逆方向動きベクトル（第４の動きベクトル）の終点座標位置との間の距離を算出し、それら座標位置間の距離と所定の閾値とを比較する。そして、画像処理部１０７は、Ｓ７０３で座標位置間の距離が所定の閾値以上であると判定した場合には、Ｓ７０４において逆方向のオクルージョンが発生していると判断する。一方、画像処理部１０７は、Ｓ７０３で座標位置間の距離が所定の閾値未満であると判定した場合には、Ｓ７０４において逆方向のオクルージョンが生じていないと判断する。
【００４５】
＜双方向オクルージョン領域検出処理＞
次に、図２のＳ２０３において、前述のようにして行われた順方向及び逆方向のオクルージョンの検出処理結果を基に、双方向オクルージョン領域を検出する処理について、図８及び図９（ａ）〜図９（ｃ）を参照しながら説明する。図８は、処理対象のＮフレームについて、図６で説明した順方向のオクルージョンと逆方向のオクルージョンの検出処理の結果を基に、双方向オクルージョン領域を検出する処理のフローチャートである。図９（ａ）〜図９（ｃ）は、処理対象のＮフレームとその前後のＮ−１フレーム及びＮ＋１フレームを例に挙げて、順方向や逆方向のオクルージョンと双方向オクルージョンがそれぞれ発生する場合と発生しない場合の例を説明する図である。
【００４６】
図８のＳ５０１において、画像処理部１０７は、図２のＳ２０２で算出された動きベクトルを基に、前述の図６及び図７（ａ）、図７（ｂ）で説明したようにして順方向のオクルージョンが生じている領域を検出するための処理を実行する。そして、次のＳ５０２において、画像処理部１０７は、Ｓ５０１の処理結果を基に、順方向のオクルージョンが発生しているか否かを判定する。
【００４７】
ここで、図９（ａ）は、順方向のオクルージョンが発生しない状態を例示した図である。図９（ａ）の例において、処理対象のＮフレームの画像内には動体６０１が写っており、その動体６０１はＮ−１フレームとＮ＋１フレームの画像内にも写っているとする。また、図９（ａ）の例の場合、動体６０１よりも手前側に他の被写体等が存在しないため、動体６０１が他の被写体等によって隠されることはないとする。図９（ａ）において、Ｎフレーム内の動体６０１はＮ＋１フレーム内にも存在しているため、Ｎフレームを基準フレーム、Ｎ＋１フレームを参照フレームとした場合、動体６０１について精度の高い順方向動きベクトル（第１の動きベクトル）が算出される。同様に、図９（ａ）の場合、動体６０１における逆方位動きベクトル（第２の動きベクトル）も精度の高い動きベクトルとして算出される。このように、精度の高い順方向動きベクトル及び逆方向動きベクトルが算出される場合、前述したように順方向のオクルージョンは発生していないと判定されることになる。したがってこの例の場合、画像処理部１０７は、Ｓ５０２において、順方向のオクルージョンは発生していないと判定する。そして、Ｓ５０２において順方向のオクルージョンが発生していないと判定（Ｎｏ）した場合、画像処理部１０７は、図８のフローチャートの処理を終了する。
【００４８】
これに対し、図９（ｂ）は、順方向のオクルージョンが発生している状態を例示した図である。図９（ｂ）の例において、Ｎ−１フレーム、Ｎフレーム、Ｎ＋１フレーム内に写っている物体６０２は、動体６０１よりも手前側（撮像装置１００に近い側）に存在していて、移動していない被写体等であるとする。また、図９（ｂ）の例の場合、処理対象のＮフレーム内に写っていた動体６０１は、Ｎ−１フレーム内でも物体６０２に隠されることなく写っているとする。一方、Ｎ＋１フレームでは、手前側の物体６０２により動体６０１が隠されるため、Ｎ＋１フレーム内には動体６０１が写っていないとする。この図９（ｂ）の例の場合、動体６０１は、Ｎ＋１フレームでは物体６０２により隠されるため、Ｎフレームを基準フレーム、Ｎ＋１フレームを参照フレームとした場合、動体６０１の順方向動きベクトル（第１の動きベクトル）は高い精度で算出することができない。また、前述の図７（ａ）、図７（ｂ）で説明したように、順方向動きベクトル（第１の動きベクトル）が正しく算出できない場合、逆方向動きベクトル（第２の動きベクトル）も正しく算出できないことになる。したがってこの例の場合、画像処理部１０７は、Ｓ５０２において順方向のオクルージョンが発生していると判定する。そして、Ｓ５０２において順方向のオクルージョンが発生していると判定（Ｙｅｓ）した場合、画像処理部１０７は、Ｓ５０３に処理を進める。
【００４９】
Ｓ５０３の処理に進むと、画像処理部１０７は、図２のＳ２０２で算出された動きベクトルを基に、前述の図６及び図７（ａ）、図７（ｂ）で説明したようにして逆方向のオクルージョンが生じている領域を検出するための処理を実行する。そして、次のＳ５０４において、画像処理部１０７は、Ｓ５０３の処理結果を基に、逆方向のオクルージョンが発生しているか否かを判定する。
【００５０】
前述した図９（ｂ）の例の場合、Ｎフレーム内の動体６０１はＮ−１フレーム内でも物体６０２に隠されることなく写っている。このため、Ｎ−１フレームを基準フレームとし、Ｎフレームを参照フレームとした場合、動体６０１について精度の高い順方向動きベクトル（第３の動きベクトル）を算出できる。同様に、動体６０１における逆方位動きベクトル（第４の動きベクトル）も高い精度で算出できることになる。したがって、図９（ｂ）の例の場合、画像処理部１０７は、Ｓ５０４において、逆方向のオクルージョンは発生していないと判定することになる。
【００５１】
ここで、フレーム間の時間間隔のような短時間内では動体６０１が略々等速直線運動していると仮定すると、動体６０１の逆方向動きベクトル（第４の動きベクトル）を反転させたものは、順方向動きベクトル（第１の動きベクトル）と略々等しいと推定できる。このため、図９（ｂ）の例のように逆方向のオクルージョンが発生していない場合、画像処理部１０７は、Ｓ５０４において、逆方向動きベクトル（第４の動きベクトル）を判定させたものを、順方向動きベクトル（第１の動きベクトル）として推定する。その後、画像処理部１０７は、図８のフローチャートの処理を終了する。
【００５２】
一方、Ｓ５０４において、逆方向のオクルージョンが発生していると判定（Ｙｅｓ）した場合、画像処理部１０７は、Ｓ５０５に処理を進める。Ｓ５０５の処理に進むと、画像処理部１０７は、双方向オクルージョンが発生したと判断し、その後、図８のフローチャートの処理を終了する。
【００５３】
図９（ｃ）は、双方向オクルージョンが発生している状態を表した図である。図９（ｃ）では、図９（ｂ）の例と同様、Ｎ−１フレーム、Ｎフレーム、Ｎ＋１フレーム内に写っている物体６０２は動体６０１よりも手前側で移動していない被写体等であるとする。図９（ｃ）の例の場合、Ｎフレーム内に写っていた動体６０１は、Ｎ−１フレームとＮ＋１フレームの両方において手前側の物体６０２により隠されているとする。この図９（ｃ）の例の場合、動体６０１は、Ｎ−１フレームとＮ＋１フレームの双方において物体６０２により隠されているため、前述した順方向と逆方向の動きベクトル（第１〜第４の動きベクトル）の何れも高い精度で算出することができない。また、図９（ｂ）で説明したように、逆方向の動きベクトルを反転させて順方向の動きベクトルを推定することもできない。したがって、この図９（ｃ）の例の場合、画像処理部１０７は、Ｓ５０５において、順方向と逆方向の両方でオクルージョンが生じていると判定、つまり双方向オクルージョンが発生している判断する。このＳ５０５の後、画像処理部１０７は、図８のフローチャートの処理を終了する。
【００５４】
このように、本実施形態の場合、画像処理部１０７は、処理対象のＮフレームについて、順方向と逆方向でオクルージョンが生ずるか否かを判定し、順方向及び逆方向の両方のオクルージョンが生ずる場合、双方向オクルージョン領域が存在すると判断する。このような双方向のオクルージョンは、例えば移動している人と人との間から見える背景や、停止した物体と物体との間から見える動体などが存在する場合に発生し得る。
【００５５】
なお、本実施形態では、処理対象をＮフレームとしたとき、Ｎフレームに対して時間的に前後の１フレーム（Ｎ−１フレームとＮ＋１フレーム）のみを用いて双方向オクルージョン領域を検出する例を挙げている。本実施形態はこの例に限定されず、例えばＮフレームに対し、時間的に前後の任意の複数枚のフレームを用い、それら複数枚の各フレームについてそれぞれ前述同様にして順方向、逆方向のオクルージョンが生じているか否かを判定してもよい。またこの場合、Ｎフレームの時間的に前後１フレームでは動体が隠れてしまっているが、例えば前後２フレーム離れたフレームでは動体が隠れずに写っているときには、それら動体が写っているフレームから動きベクトルを算出できる。そして、それら前後２フレーム離れたフレームで精度の高い動きベクトルを算出できた場合、その算出できた動きベクトルを用いて、Ｎフレームの前後１フレームで生じているオクルージョン領域における動きベクトルを推定することが可能となる。
【００５６】
＜双方向オクルージョン領域の動き量推定処理＞
以下、図２のＳ２０５における双方向オクルージョン領域の動き量推定処理について説明する。本実施形態では、双方向オクルージョン領域の動き量推定処理として、以下の第１〜第４の動き量推定処理を挙げて説明する。すなわち、画像処理部１０７は、以下に説明する第１〜第４の動き量推定処理の何れかを用いることで双方向オクルージョン領域の動き量を推定する。
【００５７】
第１の動き量推定処理は、図３で説明した奥行マップ１３０４の奥行情報を用いて、双方向オクルージョン領域の動き量を推定する処理である。図１０は、奥行情報を用いた第１の動き量推定処理のフローチャートである。
【００５８】
図１０のＳ９０１において、画像処理部１０７は、図２のＳ２０３で検出された双方向オクルージョン領域を参照して、前述した奥行マップ１３０４から、双方向オクルージョン領域の奥行情報ｚを取得する。ここで、奥行マップ１３０４は、フレーム画像の各画素に対応するようにしてそれぞれ例えば８ビットの奥行情報が配列されたマップであるとする。８ビットの奥行情報は、無限遠の距離を０として、０〜２５５の各値により奥行方向の距離を表しているとする。
【００５９】
次に、Ｓ９０２において、画像処理部１０７は、奥行マップ１３０４の中から、双方向オクルージョン領域の奥行情報ｚと同距離で且つ、双方向オクルージョン領域ではない領域Ｒを選択する。なお、領域Ｒの位置が、奥行情報ｚを取得した画素位置からの距離が遠い場合、それら領域Ｒと奥行情報ｚを取得した画素位置とで動き量が異なっている可能性があるので、領域Ｒの選択の際には、奥行情報ｚを取得した画素位置の近傍から探索する。また、領域Ｒは、画素単位の領域であってもよいし、動きベクトル算出の際のブロック単位の領域であってもよい。
【００６０】
次に、Ｓ９０３において、画像処理部１０７は、Ｓ９０２で選択された領域Ｒ内の各画素について算出されている動きベクトルを、ＲＡＭ１０３から取得する。ここで、Ｓ９０２では、奥行情報ｚを取得した画素位置の近傍から探索された領域Ｒに含まれる各画素において算出されている動きベクトルは、略々同じ動きベクトルであると考えられる。したがって、Ｓ９０３において、画像処理部１０７は、領域Ｒを基に取得された動きベクトルを、双方向オクルージョン領域の動きベクトルとして推定する。第１の動き量推定処理では、この推定された動きベクトルの動き量が、双方向オクルージョン領域の動き量となされる。Ｓ９０３の後、画像処理部１０７は、図１０のフローチャートの処理を終了する。
【００６１】
第２の動き量推定処理は、前述した装置動き検出部１１０により検出された撮像装置１００の動き情報１３０５を用いて、双方向オクルージョン領域の動き量を推定する処理である。図１１は、撮像装置１００の動き情報１３０５を用いた第２の動き量推定処理のフローチャートである。
【００６２】
ここで、双方向オクルージョンが発生する可能性が高い領域としては背景領域が考えられる。オクルージョンは、手前にある物体により、その奥側にある物体等が隠されることにより発生するので、最も奥側に位置する背景領域にオクルージョンが発生し易くなると考えられる。また例えば、撮像装置１００をパンニングさせて撮影が行われている場合、背景領域の動き量は、撮像装置１００の動き情報１３０５から推定することが可能である。
【００６３】
このようなことから、図１１のＳ１００１において、画像処理部１０７は、装置動き検出部１１０により検出された撮像装置１００の動き情報１３０５から、画像上における移動量（動き量）を算出する。装置動き検出部１１０は例えばいわゆるジャイロセンサを有し、そのジャイロセンサから出力される角速度や角加速度の情報が、撮像装置１００の動き情報１３０５として取得される。このため、画像処理部１０７は、ジャイロセンサから出力される角速度や角加速度の情報を、例えば下記式（１）を用いて、画像上における移動量boundaryに変換する。
【００６４】
boundary≒ｆtan（−ω／ｆｐｓ）／ｐｐ          式（１）
なお、式（１）において、ｆは焦点距離（mm）、ωは角速度（rad/sec）、ｆｐｓはフレームレート（frame/sec）、ｐｐは画素ピッチ（mm/pixel）である。
【００６５】
式（１）は、ジャイロセンサより取得された角速度から撮像装置１００が移動した角度を求め、その角度を、撮像部１０５の撮像素子の画素ピッチで除算することにより、画像上における移動量boundaryを求める式である。その他、例えば撮影時の画角が予め判っているのであれば、その画角と、撮像素子の蓄積開始のタイミングから蓄積終了のタイミングまでの各サンプリング周期で出力される角速度を積算した評価値を除算して画像上の移動量を算出等する方法を用いてもよい。
【００６６】
次のＳ１００２において、画像処理部１０７は、Ｓ１００１で算出した画像上の移動量における動き方向を反転させた動きベクトルを算出する。なお、動き方向を反転させるのは、例えば撮像装置１００がパンニングされている場合、背景の動き方向は、パンニング時の撮像装置１００の動き方向とは逆になるためである。第２の動き量推定処理では、このようにして推定した動きベクトルの動き量が、背景における双方向オクルージョン領域の動き量となされる。Ｓ１００２の後、画像処理部１０７は、図１１のフローチャートの処理を終了する。
【００６７】
第３の動き量推定処理は、前述した奥行マップ１３０４と撮像装置１００の動き情報１３０５とを用いて、双方向オクルージョン領域の動き量を推定する処理である。図１２は、奥行マップ１３０４と撮像装置１００の動き情報１３０５とを用いた第３の動き量推定処理のフローチャートである。
【００６８】
ここで、撮像装置１００を例えばパンニングさせて撮影した場合、厳密には背景部分と撮像装置１００に近い部分とでは、画像上での移動量が異なる。すなわち、背景に近いほど画像上の移動量は小さくなり、逆に、撮像装置１００に近いほど画像上の移動量は大きくなる。したがって、撮像装置１００の動き情報と奥行マップ１３０４の奥行情報の両方を用いることで、前述した第２の動き量推定処理より精度の高い動き量推定が可能となる。
【００６９】
図１２のＳ１１０１において、画像処理部１０７は、前述した式（１）を用い、図１１のＳ１００１と同様にして、撮像装置１００の動き情報１３０５から、画像上の移動量を算出する。
次のＳ１１０２において、画像処理部１０７は、図１１のＳ１００２と同様に、Ｓ１１０１で算出した移動量の移動方向を反転させた動きベクトルＶを算出する。また、Ｓ１１０３において、画像処理部１０７は、図１０のＳ９０１と同様に、双方向オクルージョン領域の奥行情報ｚを取得する。
【００７０】
そして、Ｓ１１０４において、画像処理部１０７は、動きベクトルＶと奥行情報ｚとを基に、双方向オクルージョン領域の動きベクトルを算出する。ここでは、動きベクトルを距離の比で算出するために、式（２）の演算を行って、双方向オクルージョン領域の動きベクトルＶ'を算出（推定）する。第３の動き量推定処理では、このようにして推定した動きベクトルの動き量が、背景における奥行情報に応じた双方向オクルージョン領域の動き量となされる。
【００７１】
Ｖ'＝（２５５−ｚ）／２５５＊Ｖ          式（２）
【００７２】
第４の動き量推定処理は、動きベクトルのヒストグラムから画面全体の動きを推定し、その画面全体の動きを基に、双方向オクルージョン領域の動き量を推定する処理である。以下、図１３は動きベクトルのヒストグラムを用いた第４の動き量推定処理のフローチャートである。
【００７３】
図１３のＳ１２０１において、画像処理部１０７は、図２のＳ２０２で処理対象フレームの全画素について求めた各動きベクトルの分布を算出する。図１４は動きベクトルのヒストグラムの一例を示す図である。図１４のヒストグラムは、動きベクトルの頻度、動きベクトルの水平成分ｕと垂直成分ｖにより表されている。
【００７４】
次のＳ１２０２において、画像処理部１０７は、図１４のような動きベクトルのヒストグラムから最も頻度が高い動きベクトルを求め、その最も頻度が高い動きベクトルを双方向オクルージョン領域の動き量とする。動きベクトルの水平成分ｕと垂直成分ｖを（ｕ，ｖ）と表し、図１４の動きベクトルのヒストグラムの中で最も頻度が高い動きベクトルが（ｕ，ｖ）＝（５，５）であるとすると、その（５，５）が双方向オクルージョン領域の動き量として推定される。すなわち、最も頻度が高い動きベクトルを双方向オクルージョン領域の動き量とするのは、例えば背景は画面上で占める割り合いが高いため（つまり頻度が高いため）、背景の領域で発生し易いオクルージョンの動き量であると考えられるためである。第４の動き量推定処理では、このように動きベクトルのヒストグラムを基に推定した動きベクトルの動き量が、双方向オクルージョン領域の動き量となされる。
【００７５】
＜双方向オクルージョン領域の画像処理＞
以下、図２のＳ２０６においける双方向オクルージョン領域の画像処理について説明する。図１５は、図２のＳ２０６で行われる双方向オクルージョン領域の画像処理のフローチャートである。
図１５のＳ１５０１において、画像処理部１０７は、処理対象のフレームの画素毎に、図２のＳ２０５で推定した動きベクトルの向きと大きさに基づいて平滑化フィルタを生成する。図１６は、例えば動きベクトルの水平成分ｕと垂直成分ｖが（ｕ，ｖ）＝（５，０）である場合に、その動きベクトルを基に生成される平滑化フィルタの一例を示す図である。この例の場合、動きベクトルが（ｕ，ｖ）＝（５，０）であるので、画像処理部１０７は、図１６に示すようにタップ数が５で水平方向にのみ暈すようなフィルタを生成する。
【００７６】
次のＳ１５０２において、画像処理部１０７は、Ｓ１５０１で生成した平滑化フィルタを用いたフィルタ処理を、双方向オクルージョン領域に対して適用する。これにより、双方向オクルージョン領域には、Ｓ２０５で推定した双方向オクルージョン領域の動き量に応じた動きブレが付与されることになる。またこの際、双方向オクルージョン領域以外の領域にフィルタ処理が重なってしまう場合には、双方向オクルージョン領域以外の領域の画素にはフィルタ処理を行わないようにする。なお、本実施形態では、画像処理例として平滑化フィルタによるフィルタ処理を行う例を挙げたが、この例には限定されず、他の処理であってもよい。
【００７７】
＜画像処理付与＞
以下、図２のＳ２０７における画像処理付与について説明する。
図２のＳ２０７では、前述したように、双方向オクルージョン領域が存在する場合には、その双方向オクルージョン領域を除く残りの領域に対してのみ動きブレの付与処理が行われる。一方、双方向オクルージョン領域が存在しない場合には、全画像領域に対して、動きブレの付与処理が行われる。すなわち、画像処理部１０７は、双方向オクルージョン領域については前述したように動き量を推定して、その推定した動き量に基づく動きブレを付与する。一方、双方向オクルージョン領域以外の領域の場合、図２のＳ２０２で算出した動きベクトルを用いることができるため、画像処理部１０７は、図２のＳ２０２で算出した動きベクトルを用いて動きブレを付与する画像処理を行う。なお、双方向オクルージョン領域以外の領域に対する動きブレの付与処理は、この例には限定されず、例えばフレーム補間を行って疑似フレームを生成し、その疑似フレームを合成するような処理でもよい。
【００７８】
以上、説明したように、本実施形態によれば、双方向オクルージョン領域を検出して、その領域の動き量を推定することで、より自然な動きブレ付与を行うことができ、画質向上の効果を得ることができる。
【００７９】
＜その他の実施形態＞
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００８０】
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００８１】
１００：撮像装置、１０１：制御部、１０２：ＲＯＭ、１０３：ＲＡＭ、１０４：光学系、１０５：撮像部、１０７：画像処理部、１０８：記録部、１１０：装置動き検出部
【図１】
2018174461.tif 000003
【図２】
2018174461.tif 000004
【図３】
2018174461.tif 000005
【図４】
2018174461.tif 000006
【図５】
2018174461.tif 000007
【図６】
2018174461.tif 000008
【図７】
2018174461.tif 000009
【図８】
2018174461.tif 000010
【図９】
2018174461.tif 000011
【図１０】
2018174461.tif 000012
【図１１】
2018174461.tif 000013
【図１２】
2018174461.tif 000014
【図１３】
2018174461.tif 000015
【図１４】
2018174461.tif 000016
【図１５】
2018174461.tif 000017
【図１６】
2018174461.tif 000018