(57)【要約】  本発明は、画像内を分割してできるブロック数を増やさなくとも複数の画像間の動きを高精度に検出することを目的とする。そのために、本発明の画像処理方法は、前記複数の画像の各ブロックから部分動きベクトルを探索する探索手順（Ｓ３）と、前記各ブロックの部分動きベクトルの中から代表動きベクトルを選出する選出手順（Ｓ４）と、前記代表動きベクトルに基づき前記画像上の動きベクトル分布を近似する近似手順（Ｓ５）とを含むことを特徴とする。因みに、その近似面を平面とすれば、動きベクトル分布を近似するための演算量や、動きベクトル分布を表現するための情報量を最小限に抑えることができる。
2007063675.tif 000002
【特許請求の範囲】
【請求項１】
複数の画像間の動きを検出する画像処理方法であって、
前記複数の画像の各ブロックから部分動きベクトルを探索する探索手順と、
前記各ブロックの部分動きベクトルの中から代表動きベクトルを選出する選出手順と、
前記代表動きベクトルに基づき前記画像上の動きベクトル分布を近似する近似手順と
を含むことを特徴とする画像処理方法。
【請求項２】
請求項１に記載の画像処理方法において、
前記代表動きベクトルは、少なくとも３つ選出され、
前記動きベクトル分布は、前記画像上の位置の一次関数で近似される
ことを特徴とする画像処理方法。
【請求項３】
請求項１又は請求項２に記載の画像処理方法において、
前記各ブロックの探索では、
前記ブロック内の参照領域の特徴量を２方向へ加算してできる２種類の投影データが用いられる
ことを特徴とする画像処理方法。
【請求項４】
請求項３に記載の画像処理方法において、
前記各ブロックの探索では、
前記ブロックの特徴量を前記２方向へ累積加算してできる２種類の累積加算画像が予め作成され、前記２種類の投影データは、前記２種類の累積加算画像の一部から作成される
ことを特徴とする画像処理方法。
【請求項５】
請求項１〜請求項４の何れか一項に記載の画像処理方法において、
前記探索手順、前記選出手順、及び前記近似手順による前記動きベクトル分布の算出処理は、
前記複数の画像を低解像度変換してできる複数の粗い画像に対して施される
ことを特徴とする画像処理方法。
【請求項６】
請求項５に記載の画像処理方法において、
前記複数の粗い画像から算出された前記動きベクトル分布を利用して、前記低解像度変換前の複数の詳細な画像間の動きを検出する再検出手順を更に含む
ことを特徴とする画像処理方法。
【請求項７】
請求項６に記載の画像処理方法において、
前記検出した動きに基づき前記複数の詳細な画像を位置合わせして合成する合成手順を更に含む
ことを特徴とする画像処理方法。
【請求項８】
請求項１〜請求項７の何れか一項に記載の画像処理方法をコンピュータに実行させる
ことを特徴とする画像処理プログラム。
【請求項９】
請求項１〜請求項７の何れか一項に記載の画像処理方法を実行する手段を備えた
ことを特徴とする画像処理装置。
【請求項１０】
被写体を連続的に撮像して複数の画像を取得することの可能な撮像手段と、
請求項９に記載の画像処理装置と
を備えたことを特徴とする撮像装置。
【請求項１１】
複数の画像間の動きベクトルを探索する画像処理方法であって、
前記複数の画像中の参照領域の相関を、その参照領域の位置を前記画像間でずらしながら算出する算出手順を含み、
前記参照領域の相関として、前記参照領域の特徴量を２方向へ加算してできる２種類の投影データの相関を算出する
ことを特徴とする画像処理方法。
【請求項１２】
請求項１１に記載の画像処理方法において、
前記算出手順では、
前記参照領域の特徴量を前記２方向へ累積加算してできる２種類の累積加算画像が予め作成され、前記２種類の投影データは、前記２種類の累積加算画像の一部から作成される
ことを特徴とする画像処理方法。
【請求項１３】
請求項１１又は請求項１２に記載の画像処理方法において、
前記参照領域の特徴量は、
前記参照領域に対し２以上の処理を施して抽出されたものである
ことを特徴とする画像処理方法。
【請求項１４】
請求項１３に記載の画像処理方法において、
前記２以上の処理のうち１つは、
エッジフィルタ処理である
ことを特徴とする画像処理方法。
【請求項１５】
請求項１１〜請求項１４の何れか一項に記載の画像処理方法において、
前記動きベクトルは、
前記画像を分割してできるブロックの動きベクトルである
ことを特徴とする画像処理方法。
【請求項１６】
請求項１１〜請求項１４の何れか一項に記載の画像処理方法において、
前記動きベクトルは、
前記画像の全体の動きベクトルである
ことを特徴とする画像処理方法。
【請求項１７】
請求項１１〜請求項１６の何れか一項に記載の画像処理方法をコンピュータに実行させる
ことを特徴とする画像処理プログラム。
【請求項１８】
請求項１〜請求項１６の何れか一項に記載の画像処理方法を実行する手段を備えた
ことを特徴とする画像処理装置。
【請求項１９】
被写体を連続的に撮像して複数の画像を取得することの可能な撮像手段と、
請求項１８に記載の画像処理装置と
を備えたことを特徴とする撮像装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディジタルカメラ、画像処理ソフトウエアなどに適用される画像処理方法、画像処理プログラムに関する。また、本発明は、ディジタルカメラなどに適用される画像処理装置、ディジタルカメラなどの撮像装置に関する。
【背景技術】
【０００２】
ディジタル処理による手振れ補正は、連続して撮影された複数枚の画像間の動きベクトルを検出し、その動きベクトルに応じてそれらの画像を位置合わせして合成するものである。動きベクトルの検出方法は、特許文献１などに開示されており、例えば、複数の画像の各ブロックから動きベクトル（部分動きベクトル）を検出し、各ブロックの部分動きベクトルに基づき画像全体の動きベクトルを１つ求めている。
【特許文献１】特開平７−３８８００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、部分動きベクトルの中には信頼性の低いものも混ざっているので、この方法で動きベクトルの検出精度を向上させるには、ブロック数を増やす必要があり、その分だけ演算量が増える。また、画像間の動き方によっては、動きベクトルがその動きを的確に表現できていない場合もある。
そこで本発明は、ブロック数を増やさなくとも複数の画像間の動きを高精度に検出することのできる画像処理方法、画像処理プログラム、画像処理装置、及び撮像装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
本発明の第１の画像処理方法は、複数の画像間の動きを検出する画像処理方法であって、前記複数の画像の各ブロックから部分動きベクトルを探索する探索手順と、前記各ブロックの部分動きベクトルの中から代表動きベクトルを選出する選出手順と、前記代表動きベクトルに基づき前記画像上の動きベクトル分布を近似する近似手順とを含むことを特徴とする。【０００５】
なお、前記代表動きベクトルは、少なくとも３つ選出され、前記動きベクトル分布は、前記画像上の位置の一次関数で近似されることが望ましい。
また、前記各ブロックの探索では、前記ブロック内の参照領域の特徴量を２方向へ加算してできる２種類の投影データが用いられることが望ましい。
また、前記各ブロックの探索では、前記ブロックの特徴量を前記２方向へ累積加算してできる２種類の累積加算画像が予め作成され、前記２種類の投影データは、前記２種類の累積加算画像の一部から作成されることが望ましい。【０００６】
また、前記探索手順、前記選出手順、及び前記近似手順による前記動きベクトル分布の算出処理は、前記複数の画像を低解像度変換してできる複数の粗い画像に対して施されてもよい。
さらに、前記複数の粗い画像から算出された前記動きベクトル分布を利用して、前記低解像度変換前の複数の詳細な画像間の動きが検出されてもよい。【０００７】
また、前記検出した動きに基づき前記複数の詳細な画像が位置合わせして合成されてもよい。
また、本発明の第１の画像処理プログラムは、本発明の第１の画像処理方法の何れかをコンピュータに実行させることを特徴とする。
また、本発明の第１の画像処理装置は、本発明の第１の画像処理方法の何れかを実行する手段を備えたことを特徴とする。【０００８】
また、本発明の第１の撮像装置は、被写体を連続的に撮像して複数の画像を取得することの可能な撮像手段と、本発明の第１の画像処理装置の何れかとを備えたことを特徴とする。
（第２の発明）
本発明の第２の画像処理方法は、複数の画像間の動きベクトルを探索する画像処理方法であって、前記複数の画像中の参照領域の相関を、その参照領域の位置を前記画像間でずらしながら算出する算出手順を含み、前記参照領域の相関として、前記参照領域の特徴量を２方向へ加算してできる２種類の投影データの相関を算出することを特徴とする。【０００９】
なお、前記算出手順では、前記参照領域の特徴量を前記２方向へ累積加算してできる２種類の累積加算画像が予め作成され、前記２種類の投影データは、前記２種類の累積加算画像の一部から作成されることが望ましい。
また、前記参照領域の特徴量は、前記参照領域に対し２以上の処理を施して抽出されたものであることが望ましい。【００１０】
また、前記２以上の処理のうち１つは、エッジフィルタ処理であることが望ましい。
また、前記動きベクトルは、前記画像を分割してできるブロックの動きベクトルであってもよい。
また、前記動きベクトルは、前記画像の全体の動きベクトルであってもよい。
また、本発明の第２の画像処理プログラムは、本発明の第２の画像処理方法の何れかをコンピュータに実行させることを特徴とする。【００１１】
また、本発明の第２の画像処理装置は、本発明の第２の画像処理方法の何れかを実行する手段を備えたことを特徴とする。
また、本発明の第２の撮像装置は、被写体を連続的に撮像して複数の画像を取得することの可能な撮像手段と、本発明の第２の画像処理装置とを備えたことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、複数の画像間の動きを高精度に検出することのできる画像処理方法、画像処理プログラム、画像処理装置、及び撮像装置が実現する。
【図面の簡単な説明】
【００１３】
【図１】第１実施形態の電子スチルカメラの構成を示すブロック図である。
【図２】手振れ補正処理の流れを示すフローチャートである。
【図３】ステップＳ３の原理を説明する図である。
【図４】投影データを用いる場合のステップＳ３を説明する図である。
【図５】累積加算画像を用いる場合のステップＳ３を説明する図である。
【図６】ステップＳ４を説明する図である。
【図７】代表動きベクトルＶa，Ｖb，Ｖcを示す図である。
【図８】Δｘの近似平面Ｓｘを示す図である。
【図９】Δｙの近似平面Ｓｙを示す図である。
【図１０】置換後の部分動きベクトルＶiの例を示す図である。
【図１１】第２実施形態の検出処理の流れを示すフローチャートである。
【図１２】第２実施形態（及び第１実施形態）の相関値ｄの算出方法の概念を説明する図である。
【発明を実施するための最良の形態】
【００１４】
［第１実施形態］
以下、本発明の第１実施形態を説明する。本実施形態は、手振れ補正機能付きの電子スチルカメラの実施形態である。
図１は、電子スチルカメラの構成を示すブロック図である。図１に示すとおり、電子スチルカメラ１０には、撮像素子１２、信号処理回路１３、メモリ１４、圧縮・伸張回路１５、記録部１６、画像処理回路１７などが配置される。【００１５】
電子スチルカメラ１０に装着された撮影レンズ１１は、撮像素子１２上に被写体の像を形成する。撮像素子１２は、その被写体の像を撮像して画像を取得する。その画像は、信号処理回路１３において処理された後、メモリ１４へ一時的に格納される。画像処理回路１７は、その画像に対し画像処理を施し、画像処理後の画像は、圧縮・伸張回路１５において圧縮処理が施された後、記録部１６において記録される。【００１６】
特に、電子スチルカメラ１０が手振れ補正モードに設定されているとき、撮像素子１２は、適正露光時間、又は予め設定された露光時間に対してｎ段アンダーかつ微小時間間隔で２×ｎ枚の画像を取得する。画像処理回路１７は、それら複数枚の画像を入力し、手振れ補正処理を実行して補正画像を取得する。その補正画像が、圧縮・伸張回路１５を介して記録部１６に記録される。【００１７】
次に、画像処理回路１７による手振れ補正処理の全体の流れを説明する。
図２は、手振れ補正処理の流れを示すフローチャートである。図２に示すとおり、画像処理回路１７は、複数枚の画像を入力すると（ステップＳ１）、それらを低解像度変換して複数枚の粗い画像を取得し（ステップＳ２）、それら粗い画像の各ブロックから部分動きベクトルを探索する（ステップＳ３）。【００１８】
その後、画像処理回路１７は、部分動きベクトルの中から代表動きベクトルを選出し（ステップＳ４）、それら代表動きベクトルに基づき画像上の動きベクトル分布を近似する（ステップＳ５）。以上のステップＳ２〜Ｓ５の処理は、粗い画像に基づく検出なので「粗検出」に相当する。
そして、画像処理回路１７は、粗検出で取得した動きベクトル分布を利用して、低解像度変換前の複数枚の詳細な画像の各ブロックから、改めて部分動きベクトルを探索する（ステップＳ６）。このステップＳ６の処理は、詳細な画像に基づく検出なので「詳細検出」に相当する。【００１９】
さらに、画像処理回路１７は、ステップＳ６で得た部分動きベクトルに基づき複数枚の詳細な画像を位置合わせして合成し（ステップＳ７）、合成後の画像を補正画像として出力する（ステップＳ８）。
次に、ステップＳ３〜Ｓ７を詳細に説明する。ここでは、簡単のため、画像の枚数を２とする。【００２０】
（ステップＳ３）
図３は、ステップＳ３の原理を説明する図である。
図３に示すとおり、本ステップでは、粗い画像ｆ1，ｆ2に対しそれぞれエッジフィルタ処理が施され、エッジ画像ｇ1，ｇ2が取得される。そして、エッジ画像ｇ1，ｇ2の各々が複数のブロックＲに分割される。ブロックＲの個数は、例えば、画像の水平方向に６、画像の垂直方向に４の合計２４である。以下、画像の水平方向（図の左右方向）を「ｘ方向」とし、画像の垂直方向（図の上下方向）を「ｙ方向」とする。ブロックＲからの部分動きベクトルの探索は、次のとおり行われる。【００２１】
先ず、図３中に拡大して示すとおり、エッジ画像ｇ1，ｇ2のブロックＲ内の参照領域Ｅ1，Ｅ2がそれぞれ参照され、それら参照領域Ｅ1，Ｅ2の間の相関値ｄとして、参照領域Ｅ1，Ｅ2の差分の絶対値が算出される。相関値ｄの算出は、参照領域Ｅ1，Ｅ2の間の位置ずらし量（ｘ方向：α，ｙ方向：β）を変化させながら繰り返し行われる。
この位置ずらし量（α，β）の変化範囲（探索範囲）は十分に広く設定される。例えば、参照領域Ｅ1，Ｅ2のサイズが７５画素×７５画素であるとき、探索範囲は、α：±１５画素、β：±１５画素に設定される。【００２２】
そして、この探索範囲内で相関値ｄが最小となるような位置ずらし量（α，β）の値（Δｘ，Δｙ）が見出される。この値（Δｘ，Δｙ）が、ブロックＲの部分動きベクトルＶと見なされる。
但し、以上の探索では、二次元のデータである参照領域Ｅ1，Ｅ2をそのまま演算に用いると演算量が多くなるので、参照領域Ｅ1，Ｅ2の代わりに、参照領域Ｅ1，Ｅ2をｙ方向に加算してできる一次元の投影データと、参照領域Ｅ1，Ｅ2をｘ方向に加算してできる一次元の投影データとを用いることが望ましい。【００２３】
図４は、投影データを用いる場合のステップＳ３を説明する図である。
図４に示すとおり、この場合、粗い画像ｆ1，ｆ2に対しｘ方向のエッジフィルタ処理が施され、エッジ画像ｇ1ｖ，ｇ2ｖが取得されると共に、粗い画像ｆ1，ｆ2に対しｙ方向のエッジフィルタ処理が施され、エッジ画像ｇ1ｈ，ｇ2ｈが取得される。なお、エッジ画像ｇ1ｖ，ｇ2ｖにはｙ方向のエッジ成分が現れ、エッジ画像ｇ1ｈ，ｇ2ｈには、ｘ方向のエッジ成分が現れる。【００２４】
図４中に拡大して示すとおり、このうち、エッジ画像ｇ1ｖの参照領域Ｅ1がｙ方向に加算され、投影データＬ1ｈが作成される。
また、エッジ画像ｇ2ｖの参照領域Ｅ2がｙ方向に加算され、投影データＬ2ｈが作成される。
また、エッジ画像ｇ1ｈの参照領域Ｅ1がｘ方向に加算され、投影データＬ1ｖが作成される。【００２５】
また、エッジ画像ｇ2ｈの参照領域Ｅ2がｘ方向に加算され、投影データＬ2ｖが作成される。
この場合、参照領域Ｅ1，Ｅ2の間の相関値ｄは、投影データＬ1ｈ，Ｌ2ｈの差分の絶対値と、投影データＬ1ｖ，Ｌ2ｖの差分の絶対値との和で表される。
ここで、これらの投影データＬ1ｈ，Ｌ2ｈ，Ｌ1ｖ，Ｌ2ｖは、参照領域Ｅ1，Ｅ2の位置ずらし量（α，β）が変化する毎に作成される必要がある。しかし、その度に参照領域Ｅ1，Ｅ2を加算していると演算量が多くなるので、予め、エッジ画像ｇ1ｖ，ｇ2ｖ，ｇ1ｈ，ｇ2ｈの累積加算画像を作成しておくとよい。【００２６】
図５は、累積加算画像を用いる場合のステップＳ３を説明する図である。
図５に示すとおり、この場合も、図４の場合と同様に、粗い画像ｆ1，ｆ2からエッジ画像ｇ1ｈ，ｇ2ｈ，ｇ1ｖ，ｇ2ｖが取得される。
このうち、エッジ画像ｇ1ｖがｙ方向に累積加算され、累積加算画像ｈ1が作成される。
また、エッジ画像ｇ2ｖがｙ方向に累積加算され、累積加算画像ｈ2が作成される。【００２７】
また、エッジ画像ｇ1ｈがｘ方向に累積加算され、累積加算画像ｖ1が作成される。
また、エッジ画像ｇ2ｈがｘ方向に累積加算され、累積加算画像ｖ2が作成される。
これら累積加算画像ｈ1，ｈ2，ｖ1，ｖ2の算出式を具体的に示すと、以下の通りである。【００２８】
【数１】
2007063675.tif 000003
そして、図５中に拡大して示すとおり、上述した投影データＬ1ｈは、累積加算画像ｈ1の参照領域Ｅ1の上下２ラインの差分をとることによって作成される。
また、上述した投影データＬ2ｈは、累積加算画像ｈ2の参照領域Ｅ2の上下２ラインの差分をとることによって作成される。【００２９】
また、上述した投影データＬ1ｖは、累積加算画像ｖ1の参照領域Ｅ1の左右２ラインの差分をとることによって作成される。
また、上述した投影データＬ2ｖは、累積加算画像ｖ2の参照領域Ｅ2の左右２ラインの差分をとることによって作成される。
したがって、この場合、参照領域Ｅ1，Ｅ2の間の相関値ｄは、以下の式により、少ない演算量で算出される。但し、Ｂは、ブロックサイズである。【００３０】
【数２】
2007063675.tif 000004
（ステップＳ４）
図６は、ステップＳ４を説明する図である。図６において、符号Ｒ1，Ｒ2，…，Ｒ24で示すのは、画像内の各ブロックであり、符号Ｖ1，Ｖ2，…，Ｖ24で示すのは、ブロックＲ1，Ｒ2，…，Ｒ24から個別に探索された部分動きベクトルのイメージである。以下、このように、ブロックＲの個数を２４とし、各ブロックに関する各量にブロック番号を示す添え字を付して説明する。【００３１】
本ステップでは、先ず、部分動きベクトルＶ1，Ｖ2，…，Ｖ24を評価する。各部分動きベクトルＶiの評価値としては、例えば、次の２種類の評価値ΔＥi，ｅiが用いられる。
第１評価値ΔＥi：
部分動きベクトルＶiの値（Δｘi，Δｙi）と略同等の位置ずらし量を全てのブロックＲ1，Ｒ2，…，Ｒ24に対し試験的に当てはめたときの各ブロックＲ1，Ｒ2，…，Ｒ24の相関値ｄ1，ｄ2，…，ｄ24の総和である。この第１評価値ΔＥiが小さいほど、部分動きベクトルＶiの信頼度を高いと見なせる。【００３２】
但し、ブロックＲkの相関値ｄkを求める際には、次のような探索を行うことが望ましい。すなわち、ブロックＲkの位置ずらし量（α，β）を部分動きベクトルＶiと等しい値（Δｘi，Δｙi）の近傍の狭い範囲で変化させながら相関値ｄを算出し、そのときの最小の相関値ｄの値をブロックＲkの相関値ｄkと見なす。その変化範囲（探索範囲）は、例えば、α：Δｘi±２画素，β：Δｙi±２画素である。【００３３】
なお、第１評価値ΔＥiの算出式を具体的に示すと、以下のとおりである（但し、ブロック数を２４とした。）。【００３４】
【数３】
2007063675.tif 000005
第２評価値ｅi：
部分動きベクトルＶiの探索元であるブロックＲiのエッジ量である。例えば、ｘ方向のエッジフィルタ処理及びｙ方向のエッジフィルタ処理によりブロックＲiの２つのエッジ成分を取得し、それらエッジ成分の絶対値の平均値である。この第２評価値ｅiが大きいほど、部分動きベクトルＶiの信頼度を高いと見なせる。【００３５】
さて、本ステップでは、部分動きベクトルＶ1，Ｖ2，…，Ｖ24の各々に関し第１評価値ΔＥiが生成され、第１評価値ΔＥiの小さい順に部分動きベクトルＶ1，Ｖ2，…，Ｖ24がソートされる。但し、第１評価値ΔＥiが互いに同じとなった部分動きベクトルに関しては、さらに第２評価値ｅiが生成され、第２評価値ｅiの大きい順にソートされる。
以上のソートの結果、第１位となった部分動きベクトルを、第１の代表動きベクトルＶaとして選出する（図７参照）。【００３６】
さらに、第２位以降の部分動きベクトルの中から、以下の条件を満たす第２の代表動きベクトルＶb、第３の代表動きベクトルＶcが選出される（図７参照）。
・代表動きベクトルベクトルＶa，Ｖb，Ｖcの探索元であるブロックＲa，Ｒb，Ｒcの中心座標が同一直線上に存在していない。
・｛ブロックＲa，Ｒb，Ｒcの中心座標を結んでできる三角形の面積｝*｛代表動きベクトルＶa，Ｖb，Ｖcの第２評価値ｅa，ｅb，ｅcの総和｝が最大である。【００３７】
・代表ベクトルＶa，Ｖb，Ｖcの第１評価値ΔＥa，ΔＥb，ΔＥcの総和は、上位３つの部分動きベクトルの第１評価値の総和と同じである。
（ステップＳ５）
図８、図９は、ステップＳ５を説明する図である。
本ステップでは、図８に示すとおり、代表動きベクトルＶa，Ｖb，Ｖcのｘ成分Δｘa，Δｘb，Δｘcに基づき、部分動きベクトルＶのｘ成分Δｘの画像上の分布が近似される。【００３８】
図８では、画像上の二次元座標（ｘ，ｙ）と、Δｘ方向の一次元座標とからなる三次元座標を示した。このとき、Δｘの分布は、図中に点線で示すような平面Ｓｘで近似される。
この平面Ｓｘは、ブロックＲaの中心座標を（ｘa，ｙa，０）とおき、ブロックＲbの中心座標を（ｘb，ｙb，０）とおき、ブロックＲcの中心座標を（ｘc，ｙc，０）とおいたときに、３つの座標（ｘa，ｙa，Δｘa），（ｘb，ｙb，Δｘb），（ｘc，ｙc，Δｘc）を通る平面である。つまり、平面Ｓｘは、上記３つの座標から決まる３つの定数Ａ1，Ａ2，Ａ3により、以下の１次式で特定される。
Ｓｘ：Δｘ＝Ａ1ｘ＋Ａ2ｙ＋Ａ3
同様に、本ステップでは、図９に示すとおり、代表動きベクトルＶa，Ｖb，Ｖcのｙ成分Δｙa，Δｙb，Δｙcに基づき、部分動きベクトルＶのｙ成分Δｙの画像上の分布が近似される。【００３９】
図９では、画像上の二次元座標（ｘ，ｙ）と、Δｙ方向の一次元座標とからなる三次元座標を示した。このとき、Δｙの分布は、図中に点線で示すような平面Ｓｙで近似される。
この平面Ｓｙは、３つの座標（ｘa，ｙa，Δｙa），（ｘb，ｙb，Δｙb），（ｘc，ｙc，Δｙc）を通る平面である。この平面Ｓｙは、上記３つの座標から決まる３つの定数Ｂ1，Ｂ2，Ｂ3により、以下の１次式で特定される。
Ｓｙ：Δｙ＝Ｂ1ｘ＋Ｂ2ｙ＋Ｂ3，
以上の２つの平面Ｓｘ，Ｓｙにより、画像上の動きベクトル分布が表されることになる。【００４０】
ここで、２つの平面Ｓｘ，Ｓｙで表された動きベクトル分布に従い、前述した部分動きベクトルＶ1，Ｖ2，…，Ｖ24の値を置換すると、例えば、図１０に示すようになる。置換後の部分動きベクトルＶ1，Ｖ2，…，Ｖ24のｘ方向の分布、ｙ方向の分布は、何れも直線的になる。
（ステップＳ６）
本ステップでは、置換後の部分動きベクトルＶ1，Ｖ2，…，Ｖ24を利用して、低解像度変換前の２枚の詳細な画像のブロックＲ1，Ｒ2，…，Ｒ24から、改めて部分動きベクトルＶ1，Ｖ2，…，Ｖ24が探索される。【００４１】
探索に当たり、２枚の詳細な画像には、２枚の粗い画像に対し施されたのと同じ処理（エッジフィルタ処理，累積加算画像への変換）が施される。
また、粗い画像による粗検出により大凡の探索は済んでいるので、各ブロックＲiの探索範囲（位置ずらし量（α，β）の変化範囲）は、置換後の部分動きベクトルＶiの値（Δｘi，Δｙi）の近傍に制限される。例えば、参照領域Ｅ1，Ｅ2のサイズが２００画素×２００画素であるとき、探索範囲は、α：Δｘi±６画素、β：Δｙi±６画素に設定される。このように探索範囲を狭い範囲に制限すれば、探索に要する演算量を抑えることができる。【００４２】
但し、置換後の部分動きベクトルＶiは、粗い画像から得られたものなので、小さいサイズで計上されている。よって、値（Δｘi，Δｙi）は、探索前に補正される必要がある。その補正では、粗い画像に対する詳細な画像のサイズ比と等しい係数を値（Δｘi，Δｙi）に対し乗算すればよい。
以上の条件下で、ブロックＲ1，Ｒ2，…，Ｒ24の各々から改めて部分動きベクトルＶ1，Ｖ2，…，Ｖ24が探索される。本ステップで探索された部分動きベクトルＶ1，Ｖ2，…，Ｖ24が、最終的な部分動きベクトルである。【００４３】
（ステップＳ７）
本ステップでは、最終的な部分動きベクトルＶ1，Ｖ2，…Ｖ24に応じて、２枚の詳細な画像のブロックＲ1，Ｒ2，…Ｒ24が位置合わせされ、合成される。これによって、１枚の補正画像が完成する。なお、この合成の際、画像の必要な箇所が画素補間される。
このように、画像の位置合わせをブロック毎に行えば、最終的な部分動きベクトルＶ1，Ｖ2，…Ｖ24が有効利用されることになり、２枚の画像間の動きに回転成分が生じていた場合や、拡大／縮小成分が生じていた場合などにも対処できる（ステップＳ７終了）。【００４４】
以上、本実施形態の手振れ補正処理では、信頼度の高い代表動きベクトルに基づき動きベクトル分布を近似する（ステップＳ３〜Ｓ５）ので、ブロック数を増やさなくとも、画像間の動きを的確に表現することができる。しかも、その近似面を平面としたので、動きベクトル分布を近似するための演算量や、動きベクトル分布を表現するための情報量は、最小限に抑えられる。【００４５】
また、本実施形態の手振れ補正処理では、部分動きベクトルの探索に、投影データを用いるので、エッジ画像をそのまま用いるよりも、探索に関わる演算量が抑えられる。しかも、累積加算画像を予め作成しておくので、投影データの作成に関わる演算量も抑えられる。
また、本実施形態の手振れ補正処理では、粗い画像に基づき大凡の動きベクトル分布を予め求めておき（ステップＳ２〜Ｓ５）、それを利用して少ない演算量で詳細な画像の動きを検出するので（ステップＳ６）、その動きを高精度に検出できるだけでなく、検出に要する演算量を抑えることもできる。【００４６】
（その他）
なお、ステップＳ３，Ｓ６では、フィルタ処理の種類としてエッジフィルタ処理を採用したのでブロックから抽出される特徴量がエッジ情報であったが、他の種類のフィルタ処理を採用し、ブロックから抽出される特徴量を、ブロック内のパターンを示す他の特徴量に代えてもよい。【００４７】
また、ステップＳ４では、代表動きベクトルＶa，Ｖb，Ｖcの選出に上述した第１評価値，第２評価値の組み合わせを用いたが、部分動きベクトルの信頼度を示すのであれば、他の組み合わせに代えてもよい。
また、ステップＳ４，Ｓ５では、動きベクトル分布を平面で近似するのに、３つの代表動きベクトルＶa，Ｖb，Ｖcを用いたが、４以上の代表動きベクトルを用いてもよい。【００４８】
また、ステップＳ４，Ｓ５では、動きベクトル分布の近似面を平面としたが、曲面としてもよい。曲面にすれば、画像間の動きを更に詳細に表現することができる。但し、近似面の次数が多くなるほど、ステップＳ４で選出すべき代表動きベクトルの数も多くなる。
また、本実施形態の手振れ補正処理では、粗い画像の動きベクトル分布を近似してから（ステップＳ３〜Ｓ５）、詳細な画像の動きベクトルを改めて探索した（ステップＳ６）が、同様の近似処理（ステップＳ３〜Ｓ５）を詳細な画像に対して直接施してもよい。但し、本実施形態のように２段階に分けた方が、効率的である。【００４９】
また、本実施形態では、手振れ補正処理を電子スチルカメラの回路（画像処理回路１７）に実行させたが、手振れ補正処理の一部又は全部を、ビデオカメラなどの他の撮像装置、各種の画像入力装置、コンピュータなどに実行させてもよい。なお、コンピュータに処理を実行させる場合、その処理を実行させるためのプログラムをコンピュータにインストールすればよい。【００５０】
［第２実施形態］
以下、本発明の第２実施形態を説明する。本実施形態は、動きベクトルの検出処理の実施形態である。
ここでも簡単のため画像の枚数を２とし、２枚の画像中のブロックの動きベクトルを検出対象とする。また、そのブロックの座標及びサイズは任意とする。よって、ブロックのサイズを大きく設定すれば、２枚の画像の全体の動きベクトルを検出することができる。また、ブロックを複数化し、各ブロックの動きベクトル（＝部分動きベクトル）をそれぞれ検出すれば、第１実施形態のステップＳ３への適用も可能である。【００５１】
図１１は、本実施形態の検出処理の流れを示すフローチャートである。各ステップを詳細に説明する。
（ステップＳ１１，Ｓ２１）
本ステップでは、微小時間間隔で取得された２枚の画像ｆ1（ｘ，ｙ），ｆ2（ｘ，ｙ）が入力される。【００５２】
（ステップＳ１２，Ｓ２２）
本ステップでは、２枚の画像ｆ1（ｘ，ｙ），ｆ2（ｘ，ｙ）の各々に対しエッジフィルタ処理が施される。第１の画像ｆ1（ｘ，ｙ）に関する垂直・水平方向（ｘ・ｙ方向）のフィルタ出力ｇ1ｖ（ｘ，ｙ），ｇ1ｈ（ｘ，ｙ）、第２の画像ｆ2（ｘ，ｙ）に関する垂直・水平方向（ｘ・ｙ方向）のフィルタ出力ｇ2ｖ（ｘ，ｙ），ｇ2ｈ（ｘ，ｙ）は、それぞれ以下の式で表される。【００５３】
g1v(x,y)=-f1(x,ｙ-2)-f1(x,y-1)+f1(x,y+1)+f1(x,y+2)
g2v(x,y)=-f2(x,ｙ-2)-f2(x,y-1)+f2(x,y+1)+f2(x,y+2)
g1h(x,y)=-f1(x-2,ｙ)-f1(x-1,y)+f1(x+1,y)+f1(x+2,y)
g2h(x,y)=-f2(x-2,ｙ)-f2(x-1,y)+f2(x+1,y)+f2(x+2,y)
このうちフィルタ出力ｇ1ｖ（ｘ，ｙ）は、第１実施形態（図５）で説明したエッジ画像ｇ1ｖ（ｘ，ｙ）に相当し、フィルタ出力ｇ2ｖ（ｘ，ｙ）は、第１実施形態で説明したエッジ画像ｇ2ｖ（ｘ，ｙ）に相当し、フィルタ出力ｇ1ｈ（ｘ，ｙ）は、第１実施形態で説明したエッジ画像ｇ1ｈ（ｘ，ｙ）に相当し、フィルタ出力ｇ2ｈ（ｘ，ｙ）は、第１実施形態で説明したエッジ画像ｇ2ｈ（ｘ，ｙ）に相当する。【００５４】
但し、上式によるエッジフィルタ処理は、図１２中に示すようなエッジフィルタＦａ，Ｆｂを想定しており、図５中に示したエッジフィルタとはサイズが異なる。
さらに、本ステップでは、このようなエッジフィルタ処理に他の処理を組み合わせる。例えば、ノイズ低減処理である。ノイズ低減処理では、上述したフィルタ出力ｇ1ｖ（ｘ，ｙ），ｇ1ｈ（ｘ，ｙ），ｇ2ｖ（ｘ，ｙ），ｇ2ｈ（ｘ，ｙ）の各画素値を所定の閾値と比較し、閾値以下となったものについては、その画素値をゼロへと置換する。これによって、フィルタ出力ｇ1ｖ（ｘ，ｙ），ｇ1ｈ（ｘ，ｙ），ｇ2ｖ（ｘ，ｙ），ｇ2ｈ（ｘ，ｙ）のノイズが低減される。【００５５】
（ステップＳ１３，Ｓ２３）
本ステップでは、ノイズ低減後のフィルタ出力ｇ1ｖ（ｘ，ｙ），ｇ2ｖ（ｘ，ｙ），ｇ1ｈ（ｘ，ｙ），ｇ2ｈ（ｘ，ｙ）の各々により画像を作成する。以下、作成された画像を、特徴量画像ｇ1ｖ（ｘ，ｙ），ｇ2ｖ（ｘ，ｙ），ｇ1ｈ（ｘ，ｙ），ｇ2ｈ（ｘ，ｙ）と称す。但し、メモリの使用量を削減するため、本ステップを省略し、次のステップにおいてフィルタ出力ｇ1ｖ（ｘ，ｙ），ｇ2ｖ（ｘ，ｙ），ｇ1ｈ（ｘ，ｙ），ｇ2ｈ（ｘ，ｙ）をそのまま使用することも可能である。【００５６】
（ステップＳ１４，Ｓ２４）
本ステップでは、特徴量画像ｇ1ｖ（ｘ，ｙ），ｇ2ｖ（ｘ，ｙ），ｇ1ｈ（ｘ，ｙ），ｇ2ｈ（ｘ，ｙ）の各々に基づき累積加算画像ｈ1（ｘ，ｙ），ｈ2（ｘ，ｙ），ｖ1（ｘ，ｙ），ｖ2（ｘ，ｙ）を作成する。累積加算画像ｈ1（ｘ，ｙ），ｈ2（ｘ，ｙ），ｖ1（ｘ，ｙ），ｖ2（ｘ，ｙ）の算出式は、第１実施形態で説明した算出式と同じであり、以下のとおりである。【００５７】
【数４】
2007063675.tif 000006
（ステップＳ３５）
本ステップでは、動きベクトルの探索元となるブロックの中心座標（ｃｘ，ｃｙ）及びサイズ（Ｂｘ，Ｂｙ）を決定する。Ｂｘはｘ方向のサイズ、Ｂｙはｙ方向のサイズである。なお、動きベクトルの探索元を画像全体とする場合は、ブロックの中心座標を画像の中心座標とし、ブロックのサイズを画像全体のサイズに一致させればよい。【００５８】
（ステップＳ３６）
本ステップでは、第１の画像ｆ1におけるブロック内の参照領域Ｅ1と、第２の画像ｆ2（ｘ，ｙ）におけるブロック内の参照領域Ｅ2とを設定する。但し、参照領域Ｅ1，Ｅ2のサイズは共通であり、ブロックにおける参照領域Ｅ1の座標は固定なので、ここで設定されるのは、参照領域Ｅ1を基準とした参照領域Ｅ2の位置ずらし量（α，β）のみでよい。【００５９】
（ステップＳ３７）
本ステップでは、参照領域Ｅ1，Ｅ2の間の相関値ｄ（α，β）を算出する。相関値ｄ（α，β）の算出方法は、第１実施形態のそれと基本的に同じである。すなわち、本ステップでは、図１２に概念的に示すとおり、参照領域Ｅ1のｘ・ｙ方向の投影データＬ1ｈ，Ｌ1ｖを作成し、参照領域Ｅ2についても同様の投影データＬ2ｈ，Ｌ2ｖを作成し、それら４種類の投影データＬ1h，Ｌ1v，Ｌ2h，Ｌ2vを加減算することで相関値ｄ（α，β）を算出する。【００６０】
そして、本ステップでも、投影データＬ1h，Ｌ1v，Ｌ2h，Ｌ2vの算出には累積加算画像ｈ1（ｘ，ｙ），ｈ2（ｘ，ｙ），ｖ1（ｘ，ｙ），ｖ2（ｘ，ｙ）が利用される。但し、本実施形態では、ブロックの中心座標（ｃｘ，ｃｙ）及びサイズ（Ｂｘ，Ｂｙ）が任意なので、相関値ｄ（α，β）の算出には、第１実施形態で説明した算出式を一般化した以下の式が使用される。【００６１】
【数５】
2007063675.tif 000007
（ステップＳ３８，Ｓ３９）
以上の相関値ｄ（α，β）の算出は、位置ずらし量（α，β）を変更しながら繰り返し行われる。
（ステップＳ４０）
本ステップでは、相関値ｄ（α，β）が最小となるような位置ずらし量（α，β）の値（Δｘ，Δｙ）が見出され、その値（Δｘ，Δｙ）が動きベクトルＶとして出力される。これによって、動きベクトルの検出処理が終了する。【００６２】
以上、本実施形態でも、動きベクトルＶの探索（ステップＳ３６〜Ｓ３９）に投影データＬ1h，Ｌ1v，Ｌ2h，Ｌ2vを用いるので、特徴量画像ｇ1ｖ（ｘ，ｙ），ｇ2ｖ（ｘ，ｙ），ｇ1ｈ（ｘ，ｙ），ｇ2ｈ（ｘ，ｙ）をそのまま用いるよりも、探索に関わる演算量が抑えられる。しかも、ステップＳ１４，Ｓ２４において累積加算画像ｈ1（ｘ，ｙ），ｈ2（ｘ，ｙ），ｖ1（ｘ，ｙ），ｖ2（ｘ，ｙ）が予め作成されるので、投影データＬ1h，Ｌ1v，Ｌ2h，Ｌ2vの作成、ひいては相関値ｄ（α，β）の算出（ステップＳ３７）に関わる演算量も抑えられる。【００６３】
したがって、本実施形態では動きベクトルＶの探索（ステップＳ３６〜Ｓ３９）が高速に行われる。
また、本実施形態のステップＳ１２，Ｓ２２では、エッジフィルタ処理を含む２以上の処理を画像ｆ1（ｘ，ｙ），ｆ2（ｘ，ｙ）へ施すので、良好な特徴量画像ｇ1ｖ（ｘ，ｙ），ｇ2ｖ（ｘ，ｙ），ｇ1ｈ（ｘ，ｙ），ｇ2ｈ（ｘ，ｙ）を取得することができる。したがって、本実施形態では動きベクトルＶを高精度に検出することができる。【００６４】
（その他）
なお、上述したステップＳ１２，Ｓ２２では、エッジ情報を抽出するためにエッジフィルタ処理を採用したが、特徴量を抽出することができるのであれば他の種類のフィルタ処理を採用してもよい。
また、本実施形態の検出方法は、入力された複数の画像を処理するものであったが、入力された複数の画像を低解像度変換したものを同様に処理してもよい。【００６５】
また、本実施形態の検出方法は、２枚の画像の動きベクトルに基づきそれらの画像を位置合わせして合成する手振れ補正方法に適用可能である。
また、本実施形態の検出方法又は、それが適用された手ぶれ補正方法は、撮像装置、画像入力装置、コンピュータなどによって実行される。コンピュータに実行させる場合、その処理を実行させるためのプログラムをコンピュータにインストールすればよい。
【図１】
2007063675.tif 000008
【図２】
2007063675.tif 000009
【図３】
2007063675.tif 000010
【図４】
2007063675.tif 000011
【図５】
2007063675.tif 000012
【図６】
2007063675.tif 000013
【図７】
2007063675.tif 000014
【図８】
2007063675.tif 000015
【図９】
2007063675.tif 000016
【図１０】
2007063675.tif 000017
【図１１】
2007063675.tif 000018
【図１２】
2007063675.tif 000019
【国際調査報告】
2007063675.tif 000020
2007063675.tif 000021
2007063675.tif 000022
2007063675.tif 000023