(57)【特許請求の範囲】
【請求項１】
動画像中の複数のフレームを基に、前記動画像を撮像した撮像手段の動きを検出する画像処理装置において、
前記動画像を取得する取得手段と、
前記取得手段により取得された前記動画像内の任意の間隔毎の前記フレーム間の動きベクトルであるフレーム間動きベクトルを検出する動きベクトル検出手段と、
前記動きベクトル検出手段により検出された前記フレーム間動きベクトルを、前記撮像手段の直進移動または並進移動による第１の動きベクトルと、前記撮像手段の光軸回りの回転を含む回転による第２の動きベクトルとに分離する分離手段と、
前記撮像手段の移動を検出して前記撮像手段の移動情報を得る移動情報検出手段と
を備え、
前記分離手段は、
前記動画像中の前記フレームにおける十分遠方の被写体が撮像された領域である遠方領域を推定する遠方領域推定手段と、
前記遠方領域において、前記動きベクトル検出手段により検出された前記フレーム間動きベクトルから、前記第２の動きベクトルを除去する除去手段と、
前記除去手段により前記第２の動きベクトルが除去された前記フレーム間動きベクトルを基に、前記移動情報検出手段により検出された前記移動情報と、前記第１の動きベクトルとの関係を推定する移動関係推定手段と、
前記移動関係推定手段により推定された前記関係に基づいて、前記フレーム間動きベクトルから前記第２の動きベクトルを抽出する回転抽出手段と、
前記第２の動きベクトルに基づいて、前記フレーム間動きベクトルから前記第１の動きベクトルを抽出する移動抽出手段と
を備える
画像処理装置。
【請求項２】
前記フレームに対して、アフィン変換を用いて前記撮像手段の回転動きを補正して、過去のフレームに変換する回転動き補正手段をさらに備え、
前記移動情報検出手段は、前記回転動き補正手段により変換された前記過去のフレームと、前記フレームとの動きベクトルを検出し、検出された動きベクトルを反転することにより、前記移動情報を得る
請求項１に記載の画像処理装置。
【請求項３】
前記除去手段は、前記フレームの前記遠方領域の各画素において、前記フレームの中心点を回転中心点とした点対称な位置を算出し、点対称な位置どうしの前記フレーム間動きベクトルを足し合わせることにより、前記第２の動きベクトルを除去する
請求項１に記載の画像処理装置。
【請求項４】
前記遠方領域推定手段は、前記フレーム間動きベクトルのノルム、角度、または、近傍サンプル点との変化率のうちの少なくとも１つを算出し、算出された値を統計的に処理して、前記遠方領域を推定する
請求項１に記載の画像処理装置。
【請求項５】
前記遠方領域推定手段は、前記フレーム間動きベクトルのノルムの値が最小を示す位置を求めることにより、前記遠方領域を推定する
請求項４に記載の画像処理装置。
【請求項６】
前記遠方領域推定手段は、前記フレーム間動きベクトルのノルムの最小値と、それぞれの位置における前記フレーム間動きベクトルのノルムとの差が、前記フレーム間動きベクトルのノルムの最小値を取る点における変化率以下の値になる領域を、前記遠方領域として推定する
請求項５に記載の画像処理装置。
【請求項７】
前記遠方領域推定手段は、前記フレーム内の全画素における前記フレーム間動きベクトルのノルムの値を正規化して得られる値を重み付けとして用いることにより、前記遠方領域を推定する
請求項４に記載の画像処理装置。
【請求項８】
前記第２の動きベクトルは、前記撮像手段の光軸回りの回転およびパンチルトの回転による動きベクトルであり、
前記移動関係推定手段は、前記関係と、前記第２の動きベクトルのうちの前記撮像手段のパンチルトの回転による動きベクトルとを推定し、
前記回転抽出手段は、前記関係と前記撮像手段のパンチルトの回転による動きベクトルに基づいて、前記フレーム間動きベクトルから前記第２の動きベクトルのうちの前記撮像手段の光軸回りの回転による動きベクトルを抽出する
請求項１に記載の画像処理装置。
【請求項９】
前記移動関係推定手段は、前記移動情報と、前記フレームの前記第１の動きベクトルとそのフレームより前のフレームの前記第１の動きベクトルの比との前記関係を推定する
請求項１に記載の画像処理装置。
【請求項１０】
動画像中の複数のフレームを基に、前記動画像を撮像した撮像手段の動きを検出する画像処理装置の画像処理方法において、
前記動画像を取得する取得ステップと、
前記取得ステップの処理により取得された前記動画像内の任意の間隔毎の前記フレーム間の動きベクトルであるフレーム間動きベクトルを検出する動きベクトル検出ステップと、
前記動きベクトル検出ステップの処理により検出された前記フレーム間動きベクトルを、前記撮像手段の直進移動または並進移動による第１の動きベクトルと、前記撮像手段の光軸回りの回転を含む回転による第２の動きベクトルとに分離する分離ステップと、
前記撮像手段の移動を検出して前記撮像手段の移動情報を得る移動情報検出ステップと
を含み、
前記分離ステップは、
前記動画像中の前記フレームにおける十分遠方の被写体が撮像された領域である遠方領域を推定する遠方領域推定ステップと、
前記遠方領域において、前記動きベクトル検出ステップの処理により検出された前記フレーム間動きベクトルから、前記第２の動きベクトルを除去する除去ステップと、
前記除去ステップの処理により前記第２の動きベクトルが除去された前記フレーム間動きベクトルを基に、前記移動情報検出ステップの処理により検出された前記移動情報と、前記第１の動きベクトルとの関係を推定する移動関係推定ステップと、
前記移動関係推定ステップの処理により推定された前記関係に基づいて、前記フレーム間動きベクトルから前記第２の動きベクトルを抽出する回転抽出ステップと、
前記第２の動きベクトルに基づいて、前記フレーム間動きベクトルから前記第１の動きベクトルを抽出する移動抽出ステップと
を含む
画像処理方法。
【請求項１１】
撮像手段により撮像された動画像中の複数のフレームからカメラ動きを検出する処理をコンピュータに実行させるためのプログラムであって、
前記動画像を取得する取得ステップと、
前記取得ステップの処理により取得された前記動画像内の任意の間隔毎の前記フレーム間の動きベクトルであるフレーム間動きベクトルを検出する動きベクトル検出ステップと、
前記動きベクトル検出ステップの処理により検出された前記フレーム間動きベクトルを、前記撮像手段の直進移動または並進移動による第１の動きベクトルと、前記撮像手段の光軸回りの回転を含む回転による第２の動きベクトルとに分離する分離ステップと、
前記撮像手段の移動を検出して前記撮像手段の移動情報を得る移動情報検出ステップと
を含み、
前記分離ステップは、
前記動画像中の前記フレームにおける十分遠方の被写体が撮像された領域である遠方領域を推定する遠方領域推定ステップと、
前記遠方領域において、前記動きベクトル検出ステップの処理により検出された前記フレーム間動きベクトルから、前記第２の動きベクトルを除去する除去ステップと、
前記除去ステップの処理により前記第２の動きベクトルが除去された前記フレーム間動きベクトルを基に、前記移動情報検出ステップの処理により検出された前記移動情報と、前記第１の動きベクトルとの関係を推定する移動関係推定ステップと、
前記移動関係推定ステップの処理により推定された前記関係に基づいて、前記フレーム間動きベクトルから前記第２の動きベクトルを抽出する回転抽出ステップと、
前記第２の動きベクトルに基づいて、前記フレーム間動きベクトルから前記第１の動きベクトルを抽出する移動抽出ステップと
を含む
処理をコンピュータに実行させるプログラム。
【請求項１２】
請求項１１に記載のプログラムが記録されている記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、および、画像処理方法、プログラム、並びに、記録媒体に関し、特に、撮像された動画像のブレの補正を行う場合に用いて好適な、画像処理装置、および、画像処理方法、プログラム、並びに、記録媒体に関する。
【背景技術】
【０００２】
従来から、銀塩カメラやビデオカメラにおいて、ブレを補正する装置が多く提案されている。従来におけるブレの補正の手法は、角速度センサなどを用いてカメラの振動（手ブレ）を検出し、検出されたブレ情報に基づいて、撮影光学系を駆動することにより被写体像がブレるのを防ぐようになされている。
【０００３】
また、ビデオカメラにおいては、撮影光学系を駆動する代わりに、撮像センサの画像読み出し範囲を、検出されたブレの方向および速度に合わせてシフトさせる方法も提案されている。
【０００４】
これに対し、撮像して得られた画像を処理する段階において、手ブレとパン・チルトとの動きを区別し、画像処理によって、ブレ画像を補正する技術がある（例えば、特許文献１）。
【０００５】
【特許文献１】特許第３２１８６１２号公報
【０００６】
例えば、角速度センサなどを用いてカメラの振動を検出する場合などにおいては、パン・チルト等のカメラワークを手ブレの動きと誤って検出してしまう恐れがあり、撮影光学系を駆動させたり、撮像センサの読み出し範囲をシフトさせるような、画像撮像段階における補正を用いた場合、誤検出によって、本来得るべき画を得ることができない可能性がある。これに対して、画像処理を用いてブレてしまった画像を補正する技術は、ブレを誤検出してしまっても、補正されていない画像を残しておいてその画像を表示または出力することができ、さらに、リアルタイムで処理する際に、大容量のメモリを必要としないという点で、画像撮像段階における補正と比較して、非常にメリットがあった。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述した特許文献１に記載されている技術に代表される、画像処理によってブレ画像を補正する手法では、画像から、手ブレを補正するためのカメラの動き検出が重要となってくる。
【０００８】
カメラ動きは、本来、図１に示されるように、Ｘ軸、Ｙ軸、Ｚ軸回りの回転と、Ｘ軸、Ｙ軸、Ｚ軸方向の移動から構成され、各カメラ動きに起因する撮影画像の見かけの変化は異なり、検出される動きベクトルも異なる。例えば、Ｘ軸、Ｙ軸回りの回転が存在するとき（いわゆる、パン・チルト）には、図２、図３に示されるように、例えば、縦方向や横方向、または、図示されていないが、これらが合成された斜め方向の動きなど、画面全体に一様の動きを示す動きベクトルが検出され、Z軸回りの回転（いわゆる、光軸回りの回転）では、図４に示されるように、画像中心からの距離に応じた動きベクトルが検出される。
【０００９】
一方、図５に示されるように、カメラの位置に、Ｘ軸方向の動きが存在する場合、カメラの移動に起因する各画素の動きの大きさは一律ではなく、カメラと被写体との距離に反比例し、実際のカメラ動きの大きさに比例する。すなわち、カメラの動きが小さい場合よりも大きく動いた場合の方が、各画素の動きは大きくなるが、いずれの場合においても、カメラから近い被写体の動きは、カメラから遠い被写体の動きよりも大きい。また、Ｙ軸方向、Ｚ軸方向のカメラ移動についても、同様である。
【００１０】
このように、カメラの位置および角度が変化することにより、画像内に様々な動きが発生する。しかしながら、上述した特許文献１に記載されている技術に代表される、画像処理によってブレ画像を補正する従来の技術においては、画像内の変化は様々なカメラ動きに起因しているにも関わらず、カメラの移動は考慮されておらず、画像内の平行移動量をパン、チルトとして推定し、手ブレ補正を行ってきた。
【００１１】
そのため、従来のブレ補正においては、実際にはカメラが移動しているにも関わらず、手ブレしていると判断（誤検出）して、逆補正をかけてしまったり、そもそも、カメラ動き検出自体を誤り、誤って補正してしまう恐れがある。
【００１２】
さらに、カメラ動きが正しく推定でき、カメラ動きをキャンセルする逆補正をかけたとしても、カメラの移動による視点のずれを正しく考慮しなければ、本来撮影者が意図した映像を提示することは困難である。
【００１３】
本発明はこのような状況に鑑みてなされたものであり、カメラの動きを考慮して、画像を補正することができるようにするものである。
【課題を解決するための手段】
【００１４】
本発明の一側面の画像処理装置は、動画像中の複数のフレームを基に、前記動画像を撮像した撮像手段の動きを検出する画像処理装置であって、前記動画像を取得する取得手段と、前記取得手段により取得された前記動画像内の任意の間隔毎の前記フレーム間の動きベクトルであるフレーム間動きベクトルを検出する動きベクトル検出手段と、前記動きベクトル検出手段により検出された前記フレーム間動きベクトルを、前記撮像手段の直進移動または並進移動による第１の動きベクトルと、前記撮像手段の光軸回りの回転を含む回転による第２の動きベクトルとに分離する分離手段と、前記撮像手段の移動を検出して前記撮像手段の移動情報を得る移動情報検出手段とを備え、前記分離手段は、前記動画像中の前記フレームにおける十分遠方の被写体が撮像された領域である遠方領域を推定する遠方領域推定手段と、前記遠方領域において、前記動きベクトル検出手段により検出された前記フレーム間動きベクトルから、前記第２の動きベクトルを除去する除去手段と、前記除去手段により前記第２の動きベクトルが除去された前記フレーム間動きベクトルを基に、前記移動情報検出手段により検出された前記移動情報と、前記第１の動きベクトルとの関係を推定する移動関係推定手段と、前記移動関係推定手段により推定された前記関係に基づいて、前記フレーム間動きベクトルから前記第２の動きベクトルを抽出する回転抽出手段と、前記第２の動きベクトルに基づいて、前記フレーム間動きベクトルから前記第１の動きベクトルを抽出する移動抽出手段とを備える。
【００１６】
前記フレームに対して、アフィン変換を用いて前記撮像手段の回転動きを補正して、過去のフレームに変換する回転動き補正手段をさらに備えさせることができ、前記移動情報検出手段には、前記回転動き補正手段により変換された前記過去のフレームと、前記フレームとの動きベクトルを検出し、検出された動きベクトルを反転することにより、前記移動情報を取得させるようにすることができる。
【００１７】
前記除去手段には、前記フレームの前記遠方領域の各画素において、前記フレームの中心点を回転中心点とした点対称な位置を算出させ、点対称な位置どうしの前記フレーム間動きベクトルを足し合わせさせることにより、前記第２の動きベクトルを除去させるようにすることができる。
【００１８】
前記遠方領域推定手段には、前記フレーム間動きベクトルのノルム、角度、または、近傍サンプル点との変化率のうちの少なくとも１つを算出させ、算出された値を統計的に処理させて、前記遠方領域を推定させるようにすることができる。
【００１９】
前記遠方領域推定手段には、前記フレーム間動きベクトルのノルムの値が最小を示す位置を求めさせることにより、前記遠方領域を推定させるようにすることができる。
【００２０】
前記遠方領域推定手段には、前記フレーム間動きベクトルのノルムの最小値と、それぞれの位置における前記フレーム間動きベクトルのノルムとの差が、前記フレーム間動きベクトルのノルムの最小値を取る点における変化率以下の値になる領域を、前記遠方領域として推定させるようにすることができる。
【００２１】
前記遠方領域推定手段は、前記フレーム内の全画素における前記フレーム間動きベクトルのノルムの値を正規化して得られる値を重み付けとして用いさせることにより、前記遠方領域を推定させるようにすることができる。
【００２２】
前記第２の動きベクトルは、前記撮像手段の光軸回りの回転およびパンチルトの回転による動きベクトルであり、前記移動関係推定手段には、前記関係と、前記第２の動きベクトルのうちの前記撮像手段のパンチルトの回転による動きベクトルとを推定させ、前記回転抽出手段には、前記関係と前記撮像手段のパンチルトの回転による動きベクトルに基づいて、前記フレーム間動きベクトルから前記第２の動きベクトルのうちの前記撮像手段の光軸回りの回転による動きベクトルを抽出させるようにすることができる。
【００２３】
前記移動関係推定手段には、前記移動情報と、前記フレームの前記第１の動きベクトルとそのフレームより前のフレームの前記第１の動きベクトルの比との前記関係を推定させるようにすることができる。
【００２９】
本発明の一側面の画像処理方法およびプログラムは、前記動画像を取得する取得ステップと、前記取得ステップの処理により取得された前記動画像内の任意の間隔毎の前記フレーム間の動きベクトルであるフレーム間動きベクトルを検出する動きベクトル検出ステップと、前記動きベクトル検出ステップの処理により検出された前記フレーム間動きベクトルを、前記撮像手段の直進移動または並進移動による第１の動きベクトルと、前記撮像手段の光軸回りの回転を含む回転による第２の動きベクトルとに分離する分離ステップと、前記撮像手段の移動を検出して前記撮像手段の移動情報を得る移動情報検出ステップとを含み、前記分離ステップは、前記動画像中の前記フレームにおける十分遠方の被写体が撮像された領域である遠方領域を推定する遠方領域推定ステップと、前記遠方領域において、前記動きベクトル検出ステップの処理により検出された前記フレーム間動きベクトルから、前記第２の動きベクトルを除去する除去ステップと、前記除去ステップの処理により前記第２の動きベクトルが除去された前記フレーム間動きベクトルを基に、前記移動情報検出ステップの処理により検出された前記移動情報と、前記第１の動きベクトルとの関係を推定する移動関係推定ステップと、前記移動関係推定ステップの処理により推定された前記関係に基づいて、前記フレーム間動きベクトルから前記第２の動きベクトルを抽出する回転抽出ステップと、前記第２の動きベクトルに基づいて、前記フレーム間動きベクトルから前記第１の動きベクトルを抽出する移動抽出ステップとを含む。
【００３０】
本発明の一側面においては、動画像が取得され、動画像内の任意の間隔毎のフレーム間の動きベクトルであるフレーム間動きベクトルが検出され、フレーム間動きベクトルが、撮像手段の直進移動または並進移動による第１の動きベクトルと、撮像手段の光軸回りの回転を含む回転による第２の動きベクトルとに分離され、撮像手段の移動が検出されて撮像手段の移動情報が得られる。なお、第１の動きベクトルと第２の動きベクトルの分離は、動画像中のフレームにおける十分遠方の被写体が撮像された領域である遠方領域が推定され、遠方領域において、フレーム間動きベクトルから、第２の動きベクトルが除去され、第２の動きベクトルが除去されたフレーム間動きベクトルを基に、移動情報と、第１の動きベクトルとの関係が推定され、その関係に基づいて、フレーム間動きベクトルから第２の動きベクトルが抽出され、第２の動きベクトルに基づいて、フレーム間動きベクトルから第１の動きベクトルが抽出されることにより行われる。
【００３１】
なお、画像処理装置は、独立した装置であっても良いし、撮像装置の画像処理を行うブロックであっても良い。また、記録装置は、独立した装置であっても良いし、撮像装置の記録処理を行うブロックであっても良い。また、表示装置も、独立した装置であっても良いし、撮像装置の表示処理を行うブロックであっても良い。
【発明の効果】
【００３２】
以上のように、本発明の一側面によれば、画像の動きベクトルを検出することができ、特に、動きベクトルを、撮像手段の移動による第１の動きベクトルと、撮像手段の回転による第２の動きベクトルとに分離して、精度よく画像を補正することができる。
【発明を実施するための最良の形態】
【００３３】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００３４】
本発明の一側面の画像処理装置は、動画像中の複数のフレームを基に、前記動画像を撮像した撮像手段の動きを検出する画像処理装置であって、前記動画像を取得する取得手段（例えば、図７の＃１フレームメモリ８１）と、前記取得手段により取得された前記動画像内の任意の間隔毎の前記フレーム間の動きベクトルであるフレーム間動きベクトルを検出する動きベクトル検出手段（例えば、図７の動きベクトル検出部８３）と、前記動きベクトル検出手段により検出された前記フレーム間動きベクトルを、前記撮像手段の直進移動または並進移動による第１の動きベクトルと、前記撮像手段の光軸回りの回転を含む回転による第２の動きベクトルとに分離する分離手段（例えば、図７のカメラ動き分離部８４）と、前記撮像手段の移動を検出して前記撮像手段の移動情報を得る移動情報検出手段（例えば、図７のカメラ移動情報演算部８８）と
を備え、
前記分離手段は、
前記動画像中の前記フレームにおける十分遠方の被写体が撮像された領域である遠方領域を推定する遠方領域推定手段（例えば、図１２の遠方領域推定手段１１１）と、
前記遠方領域において、前記動きベクトル検出手段により検出された前記フレーム間動きベクトルから、前記第２の動きベクトルを除去する除去手段（例えば、図１２の光軸回りの回転成分除去処理部１１２）と、
前記除去手段により前記第２の動きベクトルが除去された前記フレーム間動きベクトルを基に、前記移動情報検出手段により検出された前記移動情報と、前記第１の動きベクトルとの関係を推定する移動関係推定手段（例えば、図１２のパンチルト成分と並進運動の分離処理部１１３）と、
前記移動関係推定手段により推定された前記関係に基づいて、前記フレーム間動きベクトルから前記第２の動きベクトルを抽出する回転抽出手段（例えば、図１２の光軸回りの回転成分の抽出処理部１１６）と、
前記第２の動きベクトルに基づいて、前記フレーム間動きベクトルから前記第１の動きベクトルを抽出する移動抽出手段（例えば、図１２の直進運動と並進運動の分離処理部１１７）と
を備える。
【００３６】
前記フレームに対して、アフィン変換を用いて前記撮像手段の回転動きを補正して、過去のフレームに変換する回転動き補正手段（例えば、図７のカメラ回転動き補正部８６）をさらに備えることができ、前記移動情報検出手段は、前記回転動き補正手段により変換された前記過去のフレームと、前記フレームとの動きベクトルを検出し、検出された動きベクトルを反転することにより、前記移動情報を得ることができる。
【００４２】
本発明の一側面の画像処理方法およびプログラムは、前記動画像を取得する取得ステップ（例えば、図１６のステップＳ１においてＹｅｓと判断されたとき）と、前記取得ステップの処理により取得された前記動画像内の任意の間隔毎の前記フレーム間の動きベクトルであるフレーム間動きベクトルを検出する動きベクトル検出ステップ（例えば、図１６のステップＳ２の処理）と、前記動きベクトル検出ステップの処理により検出された前記フレーム間動きベクトルを、前記撮像手段の直進移動または並進移動による第１の動きベクトルと、前記撮像手段の光軸回りの回転を含む回転による第２の動きベクトルとに分離する分離ステップ（例えば、図１６のステップＳ３の処理）と、前記撮像手段の移動を検出して前記撮像手段の移動情報を得る移動情報検出ステップとを含み、前記分離ステップは、前記動画像中の前記フレームにおける十分遠方の被写体が撮像された領域である遠方領域を推定する遠方領域推定ステップと、前記遠方領域において、前記動きベクトル検出ステップの処理により検出された前記フレーム間動きベクトルから、前記第２の動きベクトルを除去する除去ステップと、前記除去ステップの処理により前記第２の動きベクトルが除去された前記フレーム間動きベクトルを基に、前記移動情報検出ステップの処理により検出された前記移動情報と、前記第１の動きベクトルとの関係を推定する移動関係推定ステップと、前記移動関係推定ステップの処理により推定された前記関係に基づいて、前記フレーム間動きベクトルから前記第２の動きベクトルを抽出する回転抽出ステップと、前記第２の動きベクトルに基づいて、前記フレーム間動きベクトルから前記第１の動きベクトルを抽出する移動抽出ステップとを含む。
【００４３】
以下、図を参照して、本発明の実施の形態について説明する。
【００４４】
図６は、本発明を適用した、撮像装置５１の構成を示すブロック図である。
【００４５】
撮像装置５１には、画像を処理するためのユニットとして、撮像処理部６１、画像データ記録部６２、画像処理部６３、表示制御部６４、および、表示部６５が設けられており、さらに、ユーザの操作入力を受ける図示しない操作入力部と、ユーザの操作入力を基に、撮像装置５１の全体を制御する図示しない全体制御部とが設けられている。
【００４６】
撮像処理部６１は、例えば、レンズや、CMOS、またはCCD（Charge-Coupled Device）等の固体撮像素子などからなり、被写体を撮像して、得られた撮像画像データを画像データ記憶部６２に供給する。
【００４７】
画像データ記憶部６２は、例えば、ハードディスクドライブ（ＨＤＤ）、半導体メモリ、光ディスク、光磁気ディスク、または、磁気ディスクなど、内部に設けられた、または、着脱可能な記録媒体により構成され、撮像処理部６１から供給された、補正前の撮像画像データを記憶して、画像処理部６３に供給するとともに、画像処理部６３において補正されて得られる補正後の画像データを記録する。また、画像データ記憶部６３は、図示しない全体制御部の制御に基づいて、記録されている撮像画像データまたは補正後の画像データを表示制御部６４に供給する。
【００４８】
画像処理部６３は、画像データ記憶部６２に記録されている撮像画像データの供給を受け、これを補正する処理を実行する。
【００４９】
従来の画像ブレに対する補正処理においては、パン・チルト（図１に示されるカメラのＸ軸回りの回転およびＹ軸回りの回転）、および、光軸回りの回転（図１に示されるカメラのＺ軸回りの回転）など、画像を撮像するカメラなどの撮像装置の回転動きのみを対象として、そのカメラ動きを検出して補正する手ブレ補正がなされていた。しかし、このような従来の手法では、例えば、車窓からの映像など、画像を撮像するカメラなどの撮像装置が移動しながら撮影する場合や、大きな物体がカメラの撮像範囲内に入ってきた場合などには、これらの動きが想定されていないため、ブレであると誤検出してしまう可能性があった。
【００５０】
そこで、画像処理部６３は、撮像装置５１が移動した時に生じる画面内の被写体の位置関係の変化と、撮像装置５１が回転した時に生じる画面内動きを定式化し、分離する処理を行うことにより、画像を補正して、補正された画像データを、表示制御部６４、または、画像データ記録部６２に供給する。画像処理部６３の処理についての詳細は後述する。
【００５１】
表示制御部６４は、画像処理部６３または画像データ記録部６２から供給される撮像画像データまたは補正された画像データに対応する画像の表示部６５への表示を制御する。
【００５２】
表示部６５は、例えば、ＬＣＤ（Liquid Crystal Display）などにより構成され、表示制御部６４の制御に基づいて、画像を表示する。
【００５３】
なお、表示部６５は、撮像装置５１の外部に独立した表示装置として設けられているものであっても良いことは言うまでもない。さらに、撮像処理部６１と画像処理部６３とが異なる装置に設けられているものであっても良いことは言うまでもない。
【００５４】
図７は、画像処理部６３のさらに詳細な構成を示すブロック図である。
【００５５】
画像処理部６３は、＃１フレームメモリ８１、＃２フレームメモリ８２、動きベクトル検出部８３、カメラ動き分離部８４、フレームディレイ８５、カメラ回転動き補正部８６、＃３フレームメモリ８７、カメラ移動情報演算部８８、補正情報生成部８９、および、補正画像生成部９０で構成されている。
【００５６】
＃１フレームメモリ８１は、画像データ記録部６２から撮像画像データを取得し、＃２フレームメモリ８２および動きベクトル検出部８３に供給する。
【００５７】
＃２フレームメモリ８２は、＃１フレームメモリ８１から供給された撮像画像データを１フレーム保持する。
【００５８】
なお、ここでは、＃２フレームメモリ８２に保持されているフレームを基準として、タイミングｔにおいて撮像されたフレーム画像データ（ｔフレーム）であるものとして説明する。すなわち、＃１フレームメモリ８１に保存されているフレームは、＃２フレームメモリ８２に保持されているフレームの次のフレーム（ｔ＋１フレーム）である。
【００５９】
動きベクトル検出部８３は、＃１フレームメモリ８１に保持されているｔ＋１フレームと、＃２フレームメモリ８２に保持されているｔフレームとの、ｔフレームを基準としたフレーム間の動きベクトルを検出する。動きベクトル検出部８３は、例えば、特開２００４-１３４９９２号公報に記載されているブロックマッチング手法を用いることにより動きベクトルを取得する。なお、動きベクトル検出部８３において、動画シーケンスから動きベクトルを検出する手法としては、画素毎、または、ある間隔毎に動きベクトルを検出できれば、たとえば、一般的なブロックマッチング、勾配法、その他の動きベクトル検出方法のいずれであっても構わない。
【００６０】
カメラ動き分離部８４は、動きベクトル検出部８３により検出された、ｔフレームとｔ＋１フレームとの動きベクトルと、後述するカメラ移動情報演算部８８により演算される過去フレームのカメラ移動情報を基に、カメラの回転情報とカメラの移動情報を演算し、カメラの回転情報およびカメラの移動情報を補正情報生成部８９に供給するとともに、カメラの回転情報を、フレームディレイ８５を介して、カメラ回転動き補正部８６に供給する。カメラ動き分離部８４の詳細については後述する。
【００６１】
フレームディレイ８５は、カメラ動き分離部８４から供給されるカメラの回転情報を、１フレームの処理時間分遅延させて、カメラ回転動き補正部８６に供給する。すなわち、＃２フレームメモリ８２に保持されているフレームがｔフレームであるとき、フレームディレイ８５からカメラ回転動き補正部８６に供給されるカメラの回転情報は、ｔ−１フレームにおけるカメラの回転情報である。
【００６２】
カメラ回転動き補正部８６は、＃２フレームメモリ８２から、ｔフレームのフレーム画像データを取得し、フレームディレイ８５から供給されるｔ−１フレームにおけるカメラの回転情報を基に、例えば、後述するアフィン変換などを用いて、カメラの回転動きを補正し、補正後のｔ−１フレームのフレーム画像データを＃３フレームメモリ８７に供給する。
【００６３】
＃３フレームメモリ８７は、回転動きが補正されたｔ−１フレームのフレーム画像データを保持する。
【００６４】
カメラ移動情報演算部８８は、＃２フレームメモリ８２から、ｔフレームのフレーム画像データを取得するとともに、＃３フレームメモリ８７から、回転動きが補正されたｔ−１フレームのフレーム画像データを取得して、現在のフレームから過去フレームへの動きベクトルを求めて、カメラ移動情報を演算し、カメラ動き分離部８４に供給する。ここで得られた動きベクトルは、撮像装置５１の回転成分が完全に除去されているので、オクルージョンの箇所をのぞけば、撮像装置５１の移動によって生じた動きベクトルである。
【００６５】
補正情報生成部８９は、カメラ動き分離部８４から供給されたカメラ回転情報およびカメラ移動情報を基に、ｔフレームのフレーム画像データのブレを補正するための補正情報を生成し、補正画像生成部９０に供給する。
【００６６】
補正画像生成部９０は、＃２フレームメモリ８２から、ｔフレームのフレーム画像データを取得し、補正情報生成部８９から供給された補正情報を基に、ｔフレームのフレーム画像データを補正して、画像データ記録部６２または表示制御部６４に出力する。
【００６７】
なお、補正情報生成部８９により生成された補正情報を単独で画像データ記録部６２に供給して記録しておくようにしても良い。画像データ記録部６２には、補正前の撮像画像データも保存されているので、補正情報と補正前の撮像画像データを基に、例えば、異なる装置において補正処理を行うようにしても良い。
【００６８】
次に、図７を用いて説明した画像処理部６３における補正の原理について説明する。
【００６９】
カメラ（撮像装置５１、または、そのうちの撮像処理部６１）の動きには、一般的にＸ軸、Ｙ軸、Ｚ軸の回転動きと、Ｘ軸方向、Ｙ軸方向、Ｚ軸方向のカメラ移動動きとの６自由度の動きが存在する。ここで、図１におけるＺ軸方向（光軸方向）のカメラの動きを直進方向の動きと称し、Ｘ軸方向のカメラの動きを並進方向の動きと証するものとする。
【００７０】
例えば、ここでは、カメラの各方向の移動成分を含むカメラ移動モデルを、図８に示されるように、回転動き（光軸回りの回転動きおよびパン・チルト）をしてから、移動動き（直進運動および並進運動）をすると考えるものとする。
【００７１】
この場合、撮像される画像内に生じる動きベクトルmv(t)（動きベクトルであるので、本来は、mvに対してその上部にベクトルを示す矢印が記載されるべきであるが、ここでは省略し、後述する数式において示す）は、カメラ回転で点がどこに移動するかを定義した関数をR(x)とし、カメラ移動で点がどこに移動するかを定義した関数をT(x)とすると、式（１）により求められる。
【００７２】
【数１】
0004661514.tif 000002
・・・・（１）
【００７３】
カメラの動きが、パン・チルト、光軸回りの回転の３つのみのとき、カメラの視点は移動しないので、カメラとオブジェクト（被写体）との距離関係は一切変化しない。このようなカメラ動きは一般的にアフィン変換で定義することができる。このことについては、例えば、[A Computational Vision Approach to Image Registration, IEEE TRANSACTIONS ON IMAGE PROCESSING, Vol2 ,No3 , JULY 1993]などにおいても説明されている。
【００７４】
つまり、ズームを考慮しないカメラの回転動きを考えたとき、撮像された画像フレーム内のパンチルトの回転による動きを(P(t),Q(t))とし、光軸回りの回転をθ(t)として、画像フレームの中心を原点（0,0）とした場合のフレーム内の座標(x,y)は、次の式（２）に従って移動する。
【００７５】
【数２】
0004661514.tif 000003
・・・（２）
【００７６】
これに対して、カメラの位置が移動する場合、撮像されて得られるフレーム間の各画素の移動量は、被写体とカメラとの距離に応じて異なるものとなる。
【００７７】
すなわち、カメラの移動の動きをベクトルＶ（動きベクトルであるので、本来は、Ｖに対してその上部にベクトルを示す矢印が記載されるべきであるが、ここでは省略する）を、ベクトルＶ＝(Ｖx(t),Ｖy(t),Ｖz(t))と表記すると、カメラ動きに対して被写体がフレーム上でどのように動くかをモデル化することができる。
【００７８】
ここでは、カメラの位置の移動を２方向に分解し、図８を用いて説明したモデルに基づいて、カメラの撮像面と垂直の方向に直進した後、撮像面と並進の方向に移動するという過程をとるものとして考える。
【００７９】
まずは、カメラが撮像面の垂直の方向に移動する直進移動しかしない、つまりベクトルＶにＶzの成分しか無い場合における各画素の動きのモデルを図９に示す。
【００８０】
すなわち、カメラが、図９中、Camera Position(t-1)と示される位置から、Camera Position(t)と示される位置へ、距離Ｖz移動し、カメラの位置からImage Plane（映像面）までの距離をｋｗとし、遠方の被写体とCamera Position(t-1)との垂直方向の距離をdaとする。
【００８１】
図９に示されるモデルより、フレーム内の各点の移動は、式（３）で示される。
【００８２】
【数３】
0004661514.tif 000004
・・・（３）
【００８３】
次に、カメラが撮像面の並進の方向に移動する、つまりベクトルＶにＶｘの成分しか無い場合における各画素の動きのモデルを図１０に示す。
【００８４】
図１０に示されるモデルにおいては、カメラの位置が、(t-1)と示される位置から(t)と示される位置へ、距離Ｖｘ移動し、カメラの位置からImage Plane（映像面）までの距離をｋｗとし、遠方の被写体とカメラとの垂直方向の距離をda−Ｖzとしている（すなわち、図９を用いて説明した垂直方向の移動の後に並進方向へ移動している）。
【００８５】
このとき、図１１に示されるようにして、フレーム内の被写体ａの移動量を示すＶamベクトル（動きベクトルであるので、本来は、Ｖamに対してその上部にベクトルを示す矢印が記載されるべきであるが、ここでは省略し、後述する数式において示す）を求めることができるので、これを基に、撮像面の中心を原点とした各画素の点の動きは、式（４）で求められる。
【００８６】
【数４】
0004661514.tif 000005
・・・（４）
【００８７】
すなわち、カメラ移動による３次元空間上の動きは、式（３）および式（４）に基づいて、次の式（５）で示される。
【００８８】
【数５】
0004661514.tif 000006
・・・（５）
【００８９】
すなわち、カメラの６自由度の動きを、図８に示されるモデルで考えた場合（カメラの6 自由度のある動きを図８のような順番で移動させたものとして分解した場合）の各画素の動きは、上述した式（２）を式（５）に代入することにより、次の式（６）として表現することができる。
【００９０】
【数６】
0004661514.tif 000007
・・・（６）
【００９１】
このように、図８による、撮像された画像内のそれぞれの点の移動が、式（６）から求められたので、x(t-1)からx(t)、および、ｙ(t-1)からｙ(t)の動きベクトルは、次の式（７）で示される。
【００９２】
【数７】
0004661514.tif 000008
・・・（７）
【００９３】
以上説明した内容を用いて、図７を用いて説明した各部の動作について説明する。
【００９４】
カメラ回転動き補正部８６は、式（２）のアフィン変換を基にカメラ回転動きを補正する。すなわち、カメラ回転動き補正部８６は、カメラ動き分離部８４から、フレームディレイ８５を介して供給されるカメラ回転動き情報(P(t),Q(t),θ(t)) に基づいて、＃２フレームメモリ８２から取得される画像を、式（２）に基づいて変換する。
【００９５】
そして、カメラ移動情報演算部８８では、アフィン変換されて得られた過去フレーム（t−１フレーム）の画像と、現在のフレーム（tフレーム）の画像を用いて、現在のフレームと過去フレームとの動きベクトルを求め、その動きベクトルの方向を反転させる。
【００９６】
ここで得られた動きベクトルは、カメラの回転成分を完全に除去しているので、オクルージョンの箇所をのぞけば、カメラ移動によって生じた動きベクトルである。このカメラ移動情報の動きベクトルdv（動きベクトルであるので、本来は、dvに対してその上部にベクトルを示す矢印が記載されるべきであるが、ここでは省略し、後述する数式において示す）は、式（５）に基づいて、次の式（８）で表現することができる。
【００９７】
【数８】
0004661514.tif 000009
・・・（８）
【００９８】
式（８）で示される動きベクトルは、特に、十分遠方の領域もしくは直進成分がほとんどない場合において、すなわち、da＞＞Ｖzにおける場合において、式（９）で表すことができる。
【００９９】
【数９】
0004661514.tif 000010
・・・（９）
【０１００】
この式（９）より、十分遠方の領域では、Vx,Vyのカメラ移動情報が、dvx(t),dvy(t)と物体距離と比例の関係にあることが言える。
【０１０１】
そして、カメラ動き分離部８４は、カメラ移動情報演算部８８により演算された、前フレーム（ｔ−１フレーム）と現在のフレーム（ｔフレーム）とのカメラ移動情報を用いて、フレーム間で得られた動きベクトルから、カメラの移動による動きと、カメラの回転による動きを分離する。すなわち、カメラ動き分離部８４は、上述した式（７）を解く。
【０１０２】
しかしながら、上述した式（７）は、未知数P(t),Q(t),θ(t),da,Vx,Vy,Vzからなるのでこれを解くことは容易ではない。
【０１０３】
そこで、カメラ動き分離部８４は、様々な未知数が含まれた画像から、統計的にパラメータを求める。
【０１０４】
図１２は、カメラ動き分離部８４が有する機能を説明するための機能ブロック図である。図１２を参照して、カメラ動き分離部８４が、様々な未知数が含まれた画像から、統計的にパラメータを求める方法の一例について説明する。
【０１０５】
カメラ動き分離部８４は、遠方領域検出部１１１、光軸回りの回転成分除去処理部１１２、パンチルト成分と並進運動の分離処理部１１３、パンチルト成分取得部１１４、並進運動による動きベクトル取得部１１５、光軸回りの回転成分の抽出処理部１１６、および、直進運動と並進運動の分離処理部１１７の機能を有している。
【０１０６】
遠方領域検出部１１１は、統計処理を行うための前処理として、動きベクトル検出部８２から供給された、ｔフレームとｔ＋１フレームとの動きベクトルを基に、フレーム内において、遠方領域を検出する。
【０１０７】
遠方領域検出部１１１は、遠方領域を検出するために、動きベクトルのノルム、角度、および、変化率を算出する。
【０１０８】
まず、動きベクトルノルムvnorm(x, y)は、各画素毎に、動きベクトルのx，y成分を用いて、次の式（１０）により算出される。
【０１０９】
【数１０】
0004661514.tif 000011
・・・（１０）
【０１１０】
つぎに、動きベクトルの角度θは、各画素毎に、動きベクトルのx，y成分を用いて、次の式（１１）により算出される。
【０１１１】
【数１１】
0004661514.tif 000012
・・・（１１）
【０１１２】
そして、動きベクトルの変化率AveGradは、ｎ×ｎの領域で隣接する画素８点（間隔＝ｍ）（ｍ，ｎは整数）とのベクトルノルム差分の平均値Gradを式（１２）により算出し、平均値Gradを用いて、式（１３）により算出する。
【０１１３】
【数１２】
0004661514.tif 000013
・・・（１２）
【０１１４】
【数１３】
0004661514.tif 000014
・・・（１３）
【０１１５】
なお、式（１２）において、（ｉ，ｊは整数)であり、式（１３）において、（ｋ，ｌは整数)である。
【０１１６】
なお、検出された動きベクトルが誤差を含み、値が暴れてしまう可能性があるので、安定した結果を得るために、例えば、画素毎の動きベクトルの値を、領域毎に平均値か、メディアン値に置き換える処理を、予め行うようにしても良い。
【０１１７】
次に、遠方領域検出部１１１が、動きベクトル検出結果の統計処理により、フレーム内の十分遠方な領域を抽出する方法について、２つの例を示す。
【０１１８】
まず、第１の例について説明する。
【０１１９】
図１３は、実際にベクトルノルムを算出したときのフレーム内のベクトルノルムの分布の例である。遠方領域検出部１１１は、遠方領域は近方領域と比較して動きベクトルのノルムが小さいという性質を用い、動きベクトルのノルムの最小値を示す位置を、最も遠い点と推定することができる。そして、遠方領域検出部１１１は、最も遠い点を推定した後、画像内を再度探索し、各画素のベクトルノルムと、最も遠い点のベクトルノルムの差が、最も遠い点のベクトルのノルムの変化率以下になる位置を十分遠方な領域と推定する。
【０１２０】
次に、第２の方法について説明する。
【０１２１】
遠方領域検出部１１１は、図１３の分布自体を重みの係数と見なすことで最も遠い点を推定することができる。例えば、遠方領域検出部１１１は、各画素の動きベクトルのノルムを以下の式で正規化することで、次の式（１４）に示されるようにして、重み係数coef(x, y)を算出することができる。
【０１２２】
【数１４】
0004661514.tif 000015
・・・（１４）
【０１２３】
式（１４）において、vnormmax(x,y)，vnormmin(x,y)は、それぞれ、ベクトルノルムの最大、および、最小である。これにより、各画素位置をp(x,y)とすると、以下の式（１５）を用いて、最も遠い点P(x,y) を算出することが可能となる。
【０１２４】
【数１５】
0004661514.tif 000016
・・・（１５）
【０１２５】
式（１５）におけるw，hは、画像の水平幅および垂直幅である。
【０１２６】
遠方領域検出部１１１は、第１の方法における場合と同様にして、最も遠い点のベクトルのノルムの変化率以下になる位置を十分遠方な領域と推定する。正規化の方法としては、他に、例えば、平均値vnormave(x,y)，最小値vnormmin(x,y)などを用いる方法も考えられる。
【０１２７】
これらの方法により、遠方領域検出部１１１は、充分遠方な領域を検出することができる。そして、十分遠方な領域においては、カメラ移動による動きベクトルが生じないという条件を用いることができるので、この条件を基に、カメラ回転による動きベクトルのみを推定することが可能となる。したがって、上述した場合と同様の条件により、以降の統計処理で、十分遠方な領域に重みを付けて、カメラ動きを推定することが可能となる。
【０１２８】
そして、光軸回りの回転成分除去処理部１１２は、十分遠方な領域であるという条件のもと、光軸回りの回転成分を除去する。
【０１２９】
すなわち、図８のような移動モデルを想定したとき、ある点（ｘ，ｙ）に対して、式（１６）および式（１７）に示されるような中止点に対する対称点（ｘ´，ｙ´）を考える。各画素において回転中心からの点対称の点を足しあわせれば、すなわち、式（７）を基にして、式（７）にｘ（ｔ−１）とｙ（ｔ−１）を代入したものと、式（７）にｘ´（ｔ−１）とｙ´（ｔ−１）を代入したものとを足し合わせることにより、次の式（１８）を得ることができる。
【０１３０】
【数１６】
0004661514.tif 000017
・・・（１６）
【０１３１】
【数１７】
0004661514.tif 000018
・・・（１７）
【０１３２】
【数１８】
0004661514.tif 000019
・・・（１８）
【０１３３】
ここで、十分な遠方の領域もしくは直進成分がほとんどない領域ではVz＜＜daとみなせるので、次の式（１９）が成り立つ。
【０１３４】
【数１９】
0004661514.tif 000020
・・・（１９）
【０１３５】
すなわち、この式（１９）は、Vzがdaに対して十分小さい場合について考えると、点対称を利用して回転成分を除去することにより、Vx,da(x,y),P(t)と、Vy,da(x,y),Q(t)の３変数の関数で表現することができることを示している。
【０１３６】
次に、パンチルト成分と並進運動の分離処理部１１３は、カメラ移動情報演算部８８から供給された過去フレームとのカメラ移動情報を取得し、式（１９）を基に、Vx,da(x,y),P(t)の３変数を求め、パンチルトと並進運動とのそれぞれの成分を分離する。
【０１３７】
すなわち、十分遠方の領域、または、直進移動がほとんどない場合においては、上述した式（９）が成り立つので、式（９）から得られるカメラ移動情報の動きベクトルdv（ｔ）（動きベクトルであるので、本来は、dvに対してその上部にベクトルを示す矢印が記載されるべきであるが、ここでは省略し、後述する数式において示す）より、式（１９）は次の式（２０）として表すことができる。
【０１３８】
【数２０】
0004661514.tif 000021
・・・（２０）
【０１３９】
これは、速度比Vx(t)/Vx(t−1)とパンチルト成分P(t),Q(t)の方程式と見なすことができる。この方程式を解くための具体的な方法の例を以下に３つ示す。
【０１４０】
まず、１つ目の方法として、mv(t)＋mv´(t)とdv(t)＋dv´(t)との関係（動きベクトルであるので、本来は、mv，mv´，dv，dv´に対してその上部にベクトルを示す矢印が記載されるべきであるが、ここでは省略する。以下同様）を、速度比とパンチルトの座標上に写像する方法について説明する。
【０１４１】
図１４に示されるように、速度比とパンチルト成分を２軸とする座標系を考える。各点で与えられるmv(t)とdv(t)は、座標上で直線と表現することができる。すなわち、十分遠方の領域、または、直進移動がほとんどない場合において、速度比とパンチルト成分の座標系で、これらの直線が一番多く交わる交点（例えば、図中点αで示される座標）を求めることにより、速度比とパンチルト成分を推定することができる。
【０１４２】
次に、２つ目の方法として、mv(t)＋mv´(t)とdv(t)＋ｄv´(t)との統計値を利用する方法について説明する。
【０１４３】
mv(t)とdv(t)のヒストグラムは、式（２０）より、図１５に示されるようになる。すなわち、図１５において、mv(t)＋mv´(t)とdv(t)＋ｄv´(t)とのそれぞれの値の平均値の差がパンチルト成分を表し、mv(t)＋mv´(t)とdv(t)＋ｄv´(t)とのそれぞれの標準偏差の比が速度比を表す。これは、式（２１）、および、式（２２）で示される。
【０１４４】
【数２１】
0004661514.tif 000022
・・・（２１）
【０１４５】
【数２２】
0004661514.tif 000023
・・・（２２）
【０１４６】
２つ目の方法においては、このようにして、速度比とパンチルト成分を推定することができる。
【０１４７】
そして、３つ目の方法として、Vx(t)／Vx（t−１）＝１を初期値として、パンチルト成分を求める方法について説明する。
【０１４８】
カメラの速度が１フレームの間で急激に変化することは少ない。このことを利用して、カメラがフレーム間で等速運動をしているという仮定を立てると、Vx(t)／Vx（t−１）＝１と考えることができる。このことを利用すると、平均値もしくはヒストグラムの最頻値がパンチルト成分と考えることができる。
【０１４９】
パンチルト成分と並進運動の分離処理部１１３は、例えば、これらの３つの方法のうちのいずれかを用いることにより、速度比とパンチルト成分を求めることができる。
【０１５０】
そして、パンチルト成分取得部１１４は、パンチルト成分と並進運動の分離処理部１１３により分離されたパンチルト成分を取得する。
【０１５１】
並進運動による動きベクトル取得部１１５は、パンチルト成分と並進運動の分離処理部１１３により分離された並進運動による動きベクトルを取得する。
【０１５２】
そして、光軸回りの回転成分の抽出処理部１１６は、パンチルト成分取得部１１４から供給されたパンチルト成分、および、並進運動による動きベクトル取得部１１５から供給された並進運動による動きベクトルを基に、動きベクトル検出部８２から供給された、ｔフレームとｔ＋１フレームとの動きベクトルから、光軸回りの回転成分を抽出する。
【０１５３】
上述した演算により、パンチルト成分と速度比が求められているので、式（７）より、十分遠方の領域または直進移動がほとんどない場合、da(x,y)＞＞Vz(t)と見なせるので、次の式（２３）が成り立つ。
【０１５４】
【数２３】
0004661514.tif 000024
・・・（２３）
【０１５５】
光軸回りの回転成分の抽出処理部１１６は、この式（２３）の方程式を解くことにより、光軸回りの回転成分θ(t)を求め、カメラ回転情報を補正情報生成部８９およびフレームディレイ８５に供給することができる。
【０１５６】
直進運動と並進運動の分離処理部１１７は、動きベクトル検出部８２から供給された、ｔフレームとｔ＋１フレームとの動きベクトルから、直進運動と並進運動の分離を行う。
【０１５７】
上述した演算により、パンチルト成分、光軸回りの回転成分が求められているので、上述した式（６）にパンチルト成分、光軸回りの回転成を代入して変形すると、次の式（２４）を得ることができる。
【０１５８】
【数２４】
0004661514.tif 000025
・・・（２４）
【０１５９】
そして、式（２４）を式（９）を用いて変形すると、次の式（２５）を得ることができる。
【０１６０】
【数２５】
0004661514.tif 000026
・・・（２５）
【０１６１】
この式（２５）は、Vx(t)とVz(t)/kwの方程式とみなすことができる。直進運動と並進運動の分離処理部１１７は、図１４を用いて説明した場合と同様にして写像を行ったり、図１５を用いて説明した場合と同様にして統計値を利用することなどにより、式（２５）からVx(t)とVz(t)/kwとを求める計算を実行することができ、得られたカメラ移動情報を、補正情報生成部８９に供給する。
【０１６２】
以上説明した処理により、図１２を用いて説明したカメラ動き分離部８４は、撮像装置５１の回転と移動を分離して、カメラ回転情報とカメラ移動情報を生成することができる。
【０１６３】
図７に示される画像処理６３においては、このようにして得られたカメラ回転情報とカメラ移動情報を基にして、補正情報生成部８９において、撮像装置５１の回転のみならず、移動を考慮した補正情報が生成され、補正画像生成部９０において、フレーム画像が補正されて出力される。
【０１６４】
これにより、撮像装置５１の動き検出精度が向上し、また、手ブレを効果的に除去して画像を補正することができる。また、動き推定結果に基づき、補正画像を生成するので、画像処理６３の処理により、本来撮影者が意図した見え方で、補正画像を提示することが可能になる。
【０１６５】
次に、図１６のフローチャートを参照して、撮像装置５１が画像処理装置６３を用いて撮像画像データの補正を行う場合の処理について説明する。
【０１６６】
ステップＳ１において、画像処理装置６３の＃１フレームメモリ８１は、撮像処理部６１により画像が撮像され、画像データ記録部６２を介して、撮像画像データが供給されたか否かを判断する。ステップＳ１において、画像が撮像されていないと判断された場合、画像が撮像されたと判断されるまで、ステップＳ１の処理が繰り返される。
【０１６７】
ステップＳ１において、画像が撮像されたと判断された場合、ステップＳ２において、動きベクトル検出部８３およびカメラ移動情報演算部８８は、動きベクトルを検出する。
【０１６８】
具体的には、動きベクトル検出部８３は、図１７に示される、ｔとｔ＋１のフレームの動きベクトルを、上述したようにして検出し、カメラ移動情報演算部８８は、カメラ回転動き補正部８６の処理によりカメラの回転動きが補正されたｔ−１フレームの画像データを基に、図１７に示される、ｔとｔ−１のフレームの動きベクトルを、上述したようにして検出し、それぞれ、カメラ動き分離部８４に供給する。
【０１６９】
ステップＳ３において、カメラ動き分離部８４は、図１２乃至図１５を用いて説明したようにして、カメラ移動とカメラ回転を分離して推定し、その結果得られるカメラ移動情報およびカメラ回転情報を、補正情報生成部８９に供給する。
【０１７０】
ステップＳ４において、画像処理装置６３の＃１フレームメモリ８１は、次のフレームがあるか否かを判断する。
【０１７１】
ステップＳ４において、次のフレームがあると判断された場合、ステップＳ５において、補正情報生成部８９は、カメラ移動情報およびカメラ回転情報を基に、撮像画像データを補正するための補正情報を生成し、補正画像生成部９０に供給する。補正画像生成部９０は、補正情報生成部８９から供給された補正情報を基に、撮像画像データの補正を行う。
【０１７２】
そして、ステップＳ６において、正画像生成部９０は、補正された画像を、画像データ記録部６２または表示制御部６４に出力し、処理は、ステップＳ２に戻り、それ以降の処理が繰り返される。
【０１７３】
ステップＳ４において、次のフレームがないと判断された場合、ステップＳ７において、補正情報生成部８９は、カメラ移動情報およびカメラ回転情報を基に、撮像画像データを補正するための補正情報を生成し、補正画像生成部９０に供給する。補正画像生成部９０は、補正情報生成部８９から供給された補正情報を基に、撮像画像データの補正を行う。
【０１７４】
そして、ステップＳ８において、正画像生成部９０は、補正された画像を、画像データ記録部６２または表示制御部６４に出力し、処理は終了される。
【０１７５】
このような処理により、撮像装置５１の動きを、カメラ回転動きとカメラ並進動きを区別して推定することができるので、撮像装置５１の動き検出精度が向上し、また、手ブレのみを純粋に（すなわち、撮像装置５１の移動と誤検出することなく）、効果的に除去して画像を補正することができる。
【０１７６】
また、撮像装置５１の動き推定結果に基づき補正画像を生成するので、画像処理６３における処理により、本来撮影者が意図した見え方で、補正画像を提示することが可能になる。さらに、画像処理６３において統計処理を用いていることから、カメラ動き推定のロバスト性が高い。
【０１７７】
このようにして、本発明を適用した撮像装置５１においては、撮影光学系を駆動させたり、撮像センサの読み出し範囲をシフトさせるような、画像撮像段階における補正と比較して、ブレを誤検出してしまっても、補正されていない画像を残しておいてその画像を表示または出力することができるという優位点と、リアルタイムで処理する際に、大容量のメモリを必要としないという優位点を備えるとともに、実際にはカメラが移動しているにも関わらず、手ブレしていると判断（誤検出）して、逆補正をかけてしまったり、そもそも、カメラ動き検出自体を誤り、誤って補正してしまうことを防止して、精度の良いブレの補正が可能となる。
【０１７８】
また、本発明は、手ブレのみならず、シャッター時間内において被写体が動いてしまうようなブレも、基本的に同様にして補正することができるのはいうまでもない。
【０１７９】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウェアにより実行させることもできる。この場合、上述した処理は、図１８に示されるようなパーソナルコンピュータ５００により実行される。
【０１８０】
図１８において、CPU（Central Processing Unit）５０１は、ROM(Read Only Memory)５０２に記憶されているプログラム、または、記憶部５０８からRAM(Random Access Memory)５０３にロードされたプログラムに従って各種の処理を実行する。RAM５０３にはまた、CPU５０１が各種の処理を実行する上において必要なデータなどが適宜記憶される。
【０１８１】
CPU５０１、ROM５０２、およびRAM５０３は、内部バス５０４を介して相互に接続されている。この内部バス５０４にはまた、入出力インターフェース５０５も接続されている。
【０１８２】
入出力インターフェース５０５には、キーボード、マウスなどよりなる入力部５０６、CRT，LCDなどよりなるディスプレイ、スピーカなどよりなる出力部５０７、ハードディスクなどより構成される記憶部５０８、並びに、モデム、ターミナルアダプタなどより構成される通信部５０９が接続されている。通信部５０９は、電話回線やCATVを含む各種のネットワークを介しての通信処理を行う。
【０１８３】
入出力インターフェース５０５にはまた、必要に応じてドライブ５１０が接続され、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどによりなるリムーバブルメディア５２１が適宜装着され、それから読み出されたコンピュータプログラムが、必要に応じて記憶部５０８にインストールされる。
【０１８４】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、ネットワークやプログラム格納媒体からインストールされる。
【０１８５】
このプログラム格納媒体は、図１８に示されるように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されているリムーバブルメディア５２１よりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM５０２や記憶部５０８が含まれるハードディスクなどで構成される。
【０１８６】
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１８７】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０１８８】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０１８９】
【図１】カメラの動きについて説明するための図である。
【図２】Ｘ軸回りの回転について説明するための図である。
【図３】Ｙ軸回りの回転について説明するための図である。
【図４】Ｚ軸回りの回転について説明するための図である。
【図５】カメラのＸ軸方向の移動について説明するための図である。
【図６】本発明を適用した撮像装置の構成を示すブロック図である。
【図７】図６の画像処理部の構成を示すブロック図である。
【図８】動きベクトルについて説明するための図である。
【図９】カメラが撮像面の垂直の方向に移動する場合について説明するための図である。
【図１０】カメラが撮像面に対して並進の方向に移動する場合について説明するための図である。
【図１１】フレーム内の被写体ａの移動量を示すＶamベクトルについて説明するための図である。
【図１２】図７のカメラ動き分離部の機能について説明するための機能ブロック図である。
【図１３】ベクトルノルムの分布について説明するための図である。
【図１４】速度比とパンチルト成分を２軸とする座標系について説明するための図である。
【図１５】v(t)とdv(t)のヒストグラムについて説明するための図である。
【図１６】撮像装置の処理について説明するためのフローチャートである。
【図１７】動きベクトルとその分解について説明するための図である。
【図１８】パーソナルコンピュータの構成を示すブロック図である。
【符号の説明】
【０１９０】
５１  撮像装置，  ６３  画像処理部，  ８３  動きベクトル検出部，  ８４  カメラ動き分離部，  ８６  カメラ回転動き補正部，  ８８  カメラ移動情報演算部，  ８９  補正情報生成部，  ９０  補正画像生成部，  １１１  遠方領域検出部，  １１２  光軸回りの回転成分除去処理部，  １１３  パンチルト成分と並進運動の分離処理部，  １１６  光軸回りの回転成分の抽出処理部，  １１７  直進運動と並進運動の分離処理部
【図１】
0004661514.tif 000027
【図２】
0004661514.tif 000028
【図３】
0004661514.tif 000029
【図４】
0004661514.tif 000030
【図５】
0004661514.tif 000031
【図６】
0004661514.tif 000032
【図７】
0004661514.tif 000033
【図８】
0004661514.tif 000034
【図９】
0004661514.tif 000035
【図１０】
0004661514.tif 000036
【図１１】
0004661514.tif 000037
【図１２】
0004661514.tif 000038
【図１３】
0004661514.tif 000039
【図１４】
0004661514.tif 000040
【図１５】
0004661514.tif 000041
【図１６】
0004661514.tif 000042
【図１７】
0004661514.tif 000043
【図１８】
0004661514.tif 000044