(57)【要約】      （修正有）【課題】動きベクトルの信頼性が高い領域が少ない場合でも、適切なブレ補正する。【解決手段】画像処理装置は、複数の動きベクトル測定領域に対して測定した動きベクトルの信頼度を算出する動きベクトル信頼度算出部１０５と、高信頼度領域における動きベクトルの頻度を算出する頻度値算出部１０６と、前記高信頼度領域の位置のばらつきの度合を算出する高信頼度領域ばらつき判定部１０８と、第一の閾値以上の出現頻度値に対応する動きベクトルの重み付き平均を画像間の動きベクトルとして算出する画像間動きベクトル算出部１１１と、前記算出されたばらつきの度合が大きい場合に、前記第一の閾値を変更する閾値制御部１１０と、を備える。【選択図】図１
2009272870.tif 000002
【特許請求の範囲】
【請求項１】
画像間の動きベクトルを用いて複数枚の画像の位置合わせ処理を行う画像処理装置であって、
動きベクトルを測定するための複数の動きベクトル測定領域を設定する動きベクトル測定領域設定部と、
前記複数の動きベクトル測定領域の動きベクトルを算出する動きベクトル算出部と、
夫々の動きベクトルの信頼度を算出する動きベクトル信頼度算出部と、
前記信頼度が規定値以上である高信頼度領域における高信頼度動きベクトルについて、動きベクトルの出現頻度に関する出現頻度値を前記高信頼度動きベクトル毎に算出する頻度値算出部と、
前記高信頼度領域の位置のばらつきの度合を算出する高信頼度領域ばらつき判定部と、
第一の閾値以上の出現頻度値に対応する動きベクトルの重み付き平均を前記画像間の動きベクトルとして算出する画像間動きベクトル算出部と、
前記算出されたばらつきの度合が所定のばらつきの度合よりも大きいことを示す場合に、前記第一の閾値を変更する閾値制御部と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記閾値制御部は、前記高信頼度領域の数または割合に応じて前記第一の閾値を変更することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記高信頼度領域ばらつき判定部は、前記高信頼度領域のうちの二つの動きベクトル測定領域間の最長距離を、前記ばらつきの度合として算出し、
前記最長距離が第二の閾値以上の場合に、前記閾値制御部は、前記第一の閾値を小さくするように変更することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記ばらつきの度合が第二の閾値以上の場合、且つ、前記高信頼度領域の数または割合が所定値未満の場合に、前記閾値制御部は、前記第一の閾値を小さくするように変更することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項５】
前記出現頻度値が動きベクトルの出現頻度数を表わす場合に、前記閾値制御部が、前記第一の閾値を、前記高信頼度領域の個数よりも小さい値に変更することを特徴とする請求項１から４のいずれか一つに記載の画像処理装置。
【請求項６】
前記出現頻度値は、前記複数の動きベクトル測定領域の全個数に対する相対頻度、又は、前記高信頼度領域の数に対する相対頻度であることを特徴とする請求項１から５のいずれか一つに記載の画像処理装置。
【請求項７】
前記閾値制御部が、前記第一の閾値を、前記動きベクトル測定領域の全個数に対する前記高信頼度領域の数の割合よりも小さい値に変更することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記高信頼度領域ばらつき判定部は、前記高信頼度領域において、走査線を移動させながら一定方向に各動きベクトル測定領域を走査し、最初と最後に走査された領域間の距離に基づいて、前記ばらつきの度合を算出することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項９】
前記画像間動きベクトル算出部は、前記第一の閾値以上の出現頻度値に対応する動きベクトルのうち、前記出現頻度値が高い動きベクトルほど、大きな重み付けをして、前記動きベクトルの重み付き平均を算出することを特徴とする請求項１から８のいずれか一つに記載の画像処理装置。
【請求項１０】
請求項１に記載の画像処理装置を含む電子機器。
【請求項１１】
画像間の動きベクトルを用いて複数枚の画像の位置合わせ処理を行う画像処理方法であって、
動きベクトルを測定するための複数の動きベクトル測定領域を設定する動きベクトル測定領域設定ステップと、
前記複数の動きベクトル測定領域の動きベクトルを算出する動きベクトル算出ステップと、
夫々の動きベクトルの信頼度を算出する動きベクトル信頼度算出ステップと、
前記信頼度が規定値以上である高信頼度領域における高信頼度動きベクトルについて、動きベクトルの出現頻度に関する出現頻度値を前記高信頼度動きベクトル毎に算出する頻度値算出ステップと、
前記高信頼度領域の位置のばらつきの度合を算出する高信頼度領域ばらつき判定ステップと、
前記算出されたばらつきの度合が所定のばらつきの度合よりも大きいことを示すか否かに応じて、前記出現頻度値に関する第一の閾値を設定する閾値設定ステップと、
前記第一の閾値以上の出現頻度値に対応する動きベクトルの重み付き平均を前記画像間の動きベクトルとして算出する画像間動きベクトル算出ステップと、
を備えることを特徴とする画像処理方法。
【請求項１２】
画像間の動きベクトルを用いて複数枚の画像の位置合わせ処理を行う画像処理プログラムであって、
動きベクトルを測定するための複数の動きベクトル測定領域を設定する動きベクトル測定領域設定手順と、
前記複数の動きベクトル測定領域の動きベクトルを算出する動きベクトル算出手順と、
夫々の動きベクトルの信頼度を算出する動きベクトル信頼度算出手順と、
前記信頼度が規定値以上である高信頼度領域における高信頼度動きベクトルについて、動きベクトルの出現頻度に関する出現頻度値を前記高信頼度動きベクトル毎に算出する頻度値算出手順と、
前記高信頼度領域の位置のばらつきの度合を算出する高信頼度領域ばらつき判定手順と、
前記算出されたばらつきの度合が所定のばらつきの度合よりも大きいことを示すか否かに応じて、前記出現頻度値に関する第一の閾値を設定する閾値設定手順と、
前記第一の閾値以上の出現頻度値に対応する動きベクトルの重み付き平均を前記画像間の動きベクトルとして算出する画像間動きベクトル算出手順と、
を備えることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
複数枚の画像の位置合わせ（画像のブレの補正を含む）を行う画像処理装置、画像処理方法、及び画像処理プログラムに関する。
【背景技術】
【０００２】
従来、画像のブレ補正等において画像の動きベクトルを検出する手段として、ブロックマッチング法や相関演算に基づく相関法が知られている。
【０００３】
ブロックマッチング法では、入力された画像信号を複数の適当な大きさのブロック（例えば８画素×８ライン）に分割し、このブロックの単位で、現在のフィールド（又はフレーム）と前のフィールドの一定範囲との画素値の差分を計算する。さらに、この差分に基づいて、現在のフィールドのあるブロックに対して相関の高い前のフィールドのブロックを探索する。そして、画面間の相対的なズレが、ブロックの動きベクトルとなる。
【０００４】
ブロックマッチングでの相関の高いブロックの探索方法として、画素値の差分の自乗和である誤差自乗和ＳＳＤ、画素値の差分の絶対値和である誤差絶対値和ＳＡＤによって相関を評価することが行われる。ＳＳＤ、ＳＡＤが小さいほど相関が高いと評価する。現在のフィールドのマッチングの基準ブロック領域Ｉ内の画素位置ｐ、前のフィールドの対象とするブロック領域Ｉ'内の画素位置ｑ（画素位置ｐに対応する位置）、さらに画素位置ｐ、ｑの画素値をＬｐ、Ｌｑとすると、ＳＳＤとＳＡＤは、それぞれ以下の数式（１）、（２）で表される。
【０００５】
【数１】
2009272870.tif 000003
【０００６】
【数２】
2009272870.tif 000004
【０００７】
ここで、ｐ及びｑは、２次元の値を持つ量であり、Ｉ、Ｉ'は、それぞれ、現在のフィールドと前のフィールドの２次元の領域を示し、ｐ∈Ｉは、座標ｐが領域Ｉに含まれていること、ｑ∈Ｉ'は、座標ｑが領域Ｉ'に含まれていることを示す。
【０００８】
一方、相関演算に基づく相関法では、マッチングの基準ブロック領域Ｉおよび対象とするブロック領域Ｉ'のそれぞれに含まれる画素ｐ∈Ｉおよび、ｑ∈Ｉ'の平均値Ave(Lp)、Ave(Lq)を算出し、各ブロックに含まれる画素値とこの平均値の差分を以下の数式（３）により計算する。
【０００９】
【数３】
2009272870.tif 000005
【００１０】
続いて、正規化相互相関ＮＣＣを数式（４）により計算する。
【００１１】
【数４】
2009272870.tif 000006
【００１２】
正規化相互相関ＮＣＣの大きいブロックを相関の高いブロックと評価し、最も相関の高いブロックＩ'とＩの間のズレを動きベクトルとする。
【００１３】
画像に含まれている被写体や撮影対象が静止している場合は、個々の領域での動きと画像全体の動きは一致しており、上記の相関演算を行うブロックは、現在のフィールドの任意の固定位置に配置して、その動きベクトルを算出すれば良い。
【００１４】
この様な任意の固定位置に配置し動きベクトルを算出し画像間におけるブレ補正などを行う技術に関して、特許文献１に開示されているような技術がある。この技術は、各領域でＳＡＤやＳＳＤなどの評価値データを使って動きベクトルの信頼性を判定し、信頼性の高い動きベクトルをブレ補正ベクトルの候補としている。
【００１５】
また、このような信頼性の高い動きベクトルを補正ベクトルとして算出する際の技術として、特許文献２に開示されているような技術がある。この技術は、動画撮影用の電子ブレ補正に利用でき、複数の領域で算出した動きベクトルについて、同一方向の動きベクトルの最大頻度がある閾値以上であったら、撮影者が故意にカメラを動かした（動画撮影時のパンニング／チルティング）と判断し、ブレ補正を行わないようにするものである。
【特許文献１】特開２００５−２６０４８１号公報
【特許文献２】特開２００６−６７３９１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
特許文献１によれば、撮影画像内において評価値演算ブロックが、平坦でコントラストが低い場合や繰り返しの模様などの場合は、評価値データから信頼性を判定するとそのブロックの動きベクトルは信頼性が低いと判定される。空や壁のようなコントラストの低い部分の面積が多い画像などでは、そもそも信頼性判定で各ブロックの動きベクトルデータの信頼性が低いため利用できず、エッジのあるような箇所の動きベクトルしか補正ベクトル算出用に利用できない。
【００１７】
一方、特許文献１に従って求めた数少ない信頼性の高い動きベクトルを使用して、特許文献２のような技術を、複数枚撮影した画像を利用した静止画用の電子ブレ補正に応用することも考えられる。この場合には、数少ない信頼性の高い動きベクトルのうち同一の動きベクトルを持つ領域の個数が高頻度閾値と比べて大きかったら（動画撮影時のパンニング／チルティングに相当）、その動きベクトルに基づいて補正ベクトルを求め、動きベクトルをキャンセルするように補正ベクトル分だけ画像をシフトした後加算してブレ補正することが考えられる。逆に、同一の動きベクトルを持つ領域の個数が高頻度閾値と比べて小さいなら、画像間の補正ベクトルを正確に算出できなかったとして、ブレ補正しないようにすることが考えられる。なお、高頻度閾値は、同一の動きベクトルを持つ領域の個数がある程度大きいことを判定するための閾値である。
【００１８】
しかし、空や壁のようなコントラストの低い部分の面積が多い画像では、信頼性のある動きベクトルが少なくなる。そのため、同一方向の動きベクトルの高頻度閾値を超えることが難しいので、補正ベクトルが決定せず、結果として、ブレ補正できない場合など画像の位置合わせが適切になされないという問題が生じる。
【００１９】
本発明は、動きベクトルの信頼性が高い領域が少ない場合でも、適切な画像の位置合わせを可能にする技術を提供することを目的とする。
【課題を解決するための手段】
【００２０】
本発明に係るある態様の画像処理装置は、複数枚の画像間で、動きベクトル算出により画像の位置合わせ処理を行う。この画像処理装置は、  動きベクトルを測定するための複数の動きベクトル測定領域を設定する動きベクトル測定領域設定部と、前記複数の動きベクトル測定領域の動きベクトルを算出する動きベクトル算出部と、夫々の動きベクトルの信頼度を算出する動きベクトル信頼度算出部と、前記信頼度が規定値以上である高信頼度領域における高信頼度動きベクトルについて、動きベクトルの出現頻度に関する出現頻度値を前記高信頼度動きベクトル毎に算出する頻度値算出部と、前記高信頼度領域の位置のばらつきの度合を算出する高信頼度領域ばらつき判定部と、第一の閾値以上の出現頻度値に対応する動きベクトルの重み付き平均を前記画像間の動きベクトルとして算出する画像間動きベクトル算出部と、前記算出されたばらつきの度合が所定のばらつきの度合よりも大きいことを示す場合に、前記第一の閾値を変更する閾値制御部と、を備える。
【００２１】
この態様に係る画像処理装置は、例えば、画像間動きベクトルを決定するために使用する「動きベクトルの出現頻度値に関する第一の閾値」を、信頼性が高い領域の量に応じて小さな値に変更できる。これにより、所定の動きベクトル測定領域において動きベクトルの信頼性が高い領域が少ない場合でも、例えば、信頼性が高い領域の位置のばらつき度合を利用して、適切な画像間動きベクトルを取得することが可能となる。その結果、動きベクトルの信頼性が高い領域が少ない場合にもかかわらず取得可能となった適切な画像間動きベクトルを用いて、適切な画像間の位置合わせができる。
【００２２】
また、第一の閾値以上の出現頻度値を有する動きベクトルの重み付き平均を画像間動きベクトルとして算出するため、出現頻度値の高い動きベクトルをすべて考慮して的確な画像間動きベクトルを求めることができる。この画像間動きベクトルを用いて適切な画像の位置合わせが可能となる。
【発明の効果】
【００２３】
本発明によれば、動きベクトルの信頼性が高い領域が少ない場合でも、適切な画像の位置合わせを可能にする技術を提供できる。
【発明を実施するための最良の形態】
【００２４】
図１−図８を参照して、第一実施形態について説明する。図１は、フレーム間の動きを算出して、画像間の位置合わせと加算処理を行う画像処理装置を示す。なお、第一実施形態に係る画像処理装置は、デジタルカメラやデジタルビデオカメラなどの電子機器に搭載される。この機器は、正しく作動するために電流または電磁界に依存する機器である。
【００２５】
メインコントローラ１００は全体の動作の制御を行う、例えばＤＳＰ（デジタルシグナルプロセッサ）などのＣＰＵが用いられる。図１において、点線は制御信号、細線は動きベクトルや信頼度等のデータの流れ、太線は画像データの流れを表している。
【００２６】
フレーム間の動きを算出する撮像装置において、複数枚撮影時、撮像部１０１から入力された画像は、フレームメモリ１０２にいったん格納された後、基準となるフレームと対象フレームの間の動きが算出される。動きベクトル測定領域設定部１０３は、基準となる基準フレーム（基準画像）と対象フレーム（対象画像）の間の動きを算出するため、フレームメモリ中の基準フレームに対して、所定の動きベクトル測定領域を設定する。例えば、動きベクトル測定領域設定部１０３は、動きベクトル測定領域として、基準画像中にブロック領域（動きベクトル測定ブロック）を格子状に設定する。
【００２７】
動きベクトル算出部１０４は、フレームメモリに格納された基準フレームと対象フレームの画像データと、動きベクトル測定領域設定部１０３で設定されたブロック領域に関するデータを使って、誤差自乗和ＳＳＤ、誤差絶対値和ＳＡＤ、正規化相互相関ＮＣＣ等の相関演算を用いて、基準フレームのブロック領域に対して、対象フレーム中の最も相関の高いブロックの位置を算出する。動きベクトル算出部１０４は、基準フレームのブロックと、対象フレーム中の最も相関の高いブロックの位置の相対的なズレを動きベクトルとして算出する。
【００２８】
動きベクトル信頼度算出部１０５は、各動きベクトル測定領域について算出された動きベクトルの信頼度Si（i=1〜n）を算出する。信頼度Siは、動きベクトル算出部１０４での動きベクトルの算出結果の正確さの程度を示す指標である。なお、動きベクトルの信頼度の具体的な算出方法は後述する。ここで、動きベクトルの信頼度Siが規定値より高い場合に、i番目の動きベクトル測定領域の動きベクトルは信頼性があると判断でき、動きベクトルの信頼度Siが規定値より低い場合に、信頼性がないと判断できる。
【００２９】
頻度値算出部１０６（動きベクトル統計処理部）は、信頼度が規定値以上である高信頼度領域における高信頼度動きベクトルについて、動きベクトルの出現頻度に関する出現頻度値を高信頼度動きベクトル毎に算出する。頻度値算出部１０６では、信頼度が規定値より高い高信頼度領域における動きベクトルを統計処理する。ここで、統計処理とは、動きベクトルの信頼度の高い高信頼度領域の動きベクトルを分類して、同一の方向及び同一の大きさの動きベクトル（同一の動きベクトル）の出現頻度値を計数し、統計データとして、例えばヒストグラムを算出することである。ここで、出現頻度値は、動きベクトルの出現頻度に関するものであり、例えば、同一の動きベクトルが画像中に出現した数そのものや、画像中に出現した動きベクトルの全数に対する同一の動きベクトルの出現頻度数の割合（相対頻度）を示す。後者の場合、実質的に、動きベクトル測定領域の全個数ｎに対する同一の動きベクトルの出現頻度の割合と同値になる。以後、この割合を相対頻度Ａと呼ぶことがある。或いは、出現頻度値は、高信頼度領域の数に対する同一の動きベクトルの頻度の割合（相対頻度）として求めてもよい。以後、この割合を相対頻度Ｂと呼ぶことがある。
【００３０】
なお、ビンで分類することにより、同一のビンに入る略同一方向及び大きさの動きベクトルの数を計数してヒストグラムを作成してもよい。
【００３１】
高信頼度ブロック数／割合算出部１０７では、信頼度の高い高信頼度領域（ブロック）の数ｍ、或いは、高信頼度領域の数ｍの動きベクトル測定領域の全数（全ブロック数）ｎに対する割合ｍ／ｎを算出する。高信頼度領域の数ｍまたは割合ｍ／ｎがそれぞれの所定値（αまたはα'）以上の時は、補正ベクトル算出部１１１（画像間動きベクトル算出部）へ処理が移行する。高信頼度領域の数ｍまたは割合ｍ／ｎが所定値（αまたはα'）未満の時は、ばらつき判定部（高信頼度領域ばらつき判定部）１０８へ処理が移行する。このように、本実施の形態によれば、高信頼度領域の数ｍと所定値αとを比較する、あるいは、高信頼度領域の割合ｍ／ｎと所定値α'とを比較することで、信頼度が規定値以上である高信頼度領域における高信頼度動きベクトルを抽出できる。
【００３２】
補正ベクトル算出部１１１では、上記ヒストグラムから求められる同一の方向及び同一の大きさの動きベクトルの出現頻度値が、第一の閾値β（高頻度閾値）以上であるか判断する。出現頻度値を出現頻度数とする場合、第一の閾値βは例えば、画像中に設定された動きベクトル測定領域の数の３０％や４０％の値であり、予め装置内に設定される。他の例として、このβは実験により定めた値に設定されてもよい。なお、出現頻度値を相対頻度とする場合には、動きベクトル測定領域の全個数や高信頼度領域の数に関係なく、第一の閾値βを、例えば、０．３、０．４等に設定でき簡便となる。
【００３３】
少なくとも一つの動きベクトルの出現頻度値が第一の閾値β以上であれば、その第一の閾値β以上の出現頻度値を有する高頻度の動きベクトル（ビンに分類した場合はビンの中心ベクトル）を重み付き平均したものを補正ベクトルとして算出する。これにより、出現頻度値の高い高頻度の動きベクトルをすべて考慮して、的確に画像間の動きベクトルとしての補正ベクトルを求めることができる。
【００３４】
フレーム加算部１０９では、フレームメモリ中の基準フレームと対象フレームの画像データと補正ベクトルのデータを用いてフレームの加算を行う。
【００３５】
高信頼度領域ばらつき判定部１０８では、高信頼度の領域（ブロック）のうち画像内で一番距離が長くなる領域（ブロック）間の距離を求め、その距離がある第二の閾値以上であれば、高信頼度の領域の位置のばらつきがあると判定する。ばらつきが無いと判定されたら、補正ベクトル算出部１１１へ移行する。ばらつきがある（即ち、高信頼度の領域が広範囲に分布する）と判定されたら、高頻度閾値制御部（閾値設定部）１１０に移行する。
【００３６】
高頻度閾値制御部１１０において、補正ベクトル算出部１１１で使用する第一の閾値βを、ブロック数／割合算出部１０７で算出した高信頼度領域の数ｍまたは割合ｍ／ｎに応じて、小さくなるように変更・設定する。このように、高信頼度領域の数または割合が所定値未満の場合に、最長の領域間距離（ばらつきの度合）が第二の閾値以上であれば、高頻度閾値制御部１１０は、第一の閾値を小さくするように変更することになる。これにより、高信頼度の動きベクトル測定領域が少ない場合でも、この高信頼度の領域の位置のばらつきがあれば、補正ベクトル算出部１１１が補正ベクトルを計算できるようになる。その結果、動きベクトルの信頼性が高い領域が少ない場合でも補正ベクトルを用いて、適切な画像間の位置合わせができる。
【００３７】
ここで、以下、本実施の形態に係る動きベクトル信頼度算出部１０５で行っている動きベクトルの信頼度の算出の概要を説明する。
【００３８】
動きベクトルの信頼度の算出部１０５において、ブロック単位でのフレーム間（画像間）の相関値の統計性に基づいて信頼度を求める。
【００３９】
基準フレームの動きベクトル測定領域とこれに対応する対象フレームの画像領域との間の相関値として、例えば、基準フレームのブロックIiと対象フレームのブロックIjに含まれる画素値の差分の自乗和ＳＳＤ（以下の数式（５）で表される）を用いる。
【００４０】
【数５】
2009272870.tif 000007
【００４１】
ここで、座標（bxi,byi）は、動きベクトル測定領域設定部１０３で設定されたi番目のマッチングブロックの重心位置（又は中心座標）を示し、ブロックの番号iの数ｎだけ用意されている。h,vは、それぞれ、マッチングブロックの水平、垂直方向の大きさである。座標（bxj,byj）は、ｊ番目の対象ブロックの重心位置を示し、ブロックマッチングの探索範囲に対応して用意されている。
【００４２】
i番目のブロックのSSD(i,j)は対象ブロックの番号ｊによって種々の値をとるが、i
番目のブロック（領域）の信頼度Siは、SSD(i,j)の最小値および平均値との差分に基づいて求められる。簡単には、信頼度Siは、SSD(i,j)の最小値および平均値との差分そのままとすればよい。
【００４３】
なお、相関値ＳＳＤの統計性に基づく信頼度は、領域の構造特徴と以下の概念で対応付けられる。（i）エッジ構造が鮮鋭な領域の場合に、動きベクトルの信頼度が高く、結果として、ＳＳＤの最小値を示す対象ブロックの位置の誤差は少ない。ＳＳＤのヒストグラムをとった場合に、最小値を示す位置付近に小さなＳＳＤが集中する。従って、ＳＳＤの最小値と平均値の差分が大きい。（ii）テクスチャや平坦な構造の場合、ＳＳＤのヒストグラムが平坦になり、結果としてＳＳＤの最小値と平均値の差が小さく、信頼度は低い。（iii）繰り返し構造の場合、ＳＳＤの最小値と最大値を示す位置が近く、ＳＳＤが小さい値を示す位置が分散している。結果として最小値と平均値の差が小さく、信頼度は低い。この様に、SSD(i,j)の最小値および平均値との差分に基づいて、i番目のブロック対応した、信頼度の高い動きベクトルを選択する。
【００４４】
なお、信頼度に関して、各ブロックのエッジの量で信頼度を算出することもできる。
【００４５】
図２（ａ）−（ｃ）に、頻度値算出部１０６とブロック数／割合算出部１０７の詳細を示す。図２（ａ）のように、動きベクトル測定領域設定部１０３で設定された動きベクトル測定領域１０００ごとに、動きベクトル算出部１０４で動きベクトル１００１を算出し、前述のように動きベクトル信頼度算出部１０５で算出された動きベクトルの信頼性判定を行い、動きベクトルの信頼度Siが規定値より低く信頼性が無いと判定された測定領域１００２は、動きベクトルが無いとみなす。
【００４６】
頻度値算出部１０６では、図２（ｂ）のように、信頼性があると判定された動きベクトルのうち、同一の大きさと同一の方向の動きベクトルの出現頻度値を算出し保存しておく。なお、図２（ｂ）において、出現頻度値は、出現頻度数、相対頻度Ａ又は相対頻度Ｂとして示されている。
【００４７】
そして、高信頼度領域ブロック数／割合算出部１０７では、図２（ｃ）のように、動きベクトル測定領域の数ｎと信頼性のある領域の数ｍから、信頼性のある領域の数ｍまたは割合ｍ／ｎを算出し、算出結果を所定値（図中のαまたはα'）と比較する。図２（ａ）−（ｃ）の例では、動きベクトル測定領域の数ｎは３５個、信頼性のある領域の数ｍは３１個であり、信頼性のある領域の割合ｍ／ｎは３１／３５である。
【００４８】
動きベクトルの信頼性のある領域の数ｍまたは割合ｍ／ｎが所定値（αまたはα'）以上であれば、画像間の補正ベクトルを算出する補正ベクトル算出部１１１の処理を行う。動きベクトルの信頼性のある領域の数ｍまたは割合ｍ／ｎが所定値（αまたはα'）より小さい場合には、ばらつき判定部１０８で位置ばらつきの判定処理を行う。高信頼度領域に対する位置ばらつきの判定処理の詳細は後述する。
【００４９】
図２（ａ）−（ｃ）の例では、例えば、所定値αが２５、α'が２５／３５であれば、動きベクトルの信頼性のある領域の数ｍ（＝３１）または割合ｍ／ｎ（＝３１／３５）が所定値（αまたはα'）以上となり、画像間の補正ベクトルを算出する補正ベクトル算出部１１１の処理が行われる。
【００５０】
図３に補正ベクトル算出部１１１で行う補正ベクトル算出処理のフローチャートを示す。
【００５１】
補正ベクトル算出処理において、頻度値算出部１０６で保存した統計データから、算出結果の信頼度が規定値以上である高信頼度の動きベクトルと、この動きベクトルに関する出現頻度値を取り出す（Ｓ１）。取り出した出現頻度値と第一の閾値βの比較判定を全ての高信頼度動きベクトルに関して行い、少なくとも一つの出現頻度値が第一の閾値β以上であるか判定する（Ｓ２）。全高信頼度動きベクトルのうちで、出現頻度値が第一の閾値β以上の動きベクトルが少なくとも一つ存在する場合は、出現頻度値が第一の閾値β以上の動きベクトル（Ｖｘ，Ｖｙ)の重み付き平均（重み付き加算）をフレーム加算部１０９における画像間の補正ベクトル（つまり画像間の動きベクトル）とする（Ｓ３）。図２（ｂ）の例では、頻度数に関する第一の閾値βを１０とすると、第一の閾値β以上の出現頻度値に対応する動きベクトル（Ｖｘ，Ｖｙ)は、（２，−２）、（０，−１）となる。一方、出現頻度値が閾値β以上の動きベクトルが存在しない場合は、画像間における動きベクトルが正確に求められなかったとして、補正ベクトルが無いとして扱い、フレーム加算部１０９でフレームの加算を行わない（Ｓ４）。
【００５２】
ここで、各動きベクトル測定領域（測定ブロック）で算出された動きベクトルが、動きベクトル信頼度算出部１０５で信頼度が高いか判定された結果と、画像内の被写体の関係について説明する。
【００５３】
図４Ａに２つのシーンにおける例を示す。シーン１（左上図）は空が大半を占めておりコントラストの低い領域の面積が多い被写体で、シーン２（右上図）はコントラストの高い領域の面積が多い被写体である。
【００５４】
このようなシーンで測定領域ごとに動きベクトルを算出し、動きベクトル信頼度算出部１０５で信頼度を算出すると、図４Ａの左下図のようにシーン１では、信頼性のある動きベクトルが少なく、右下図のようにシーン２では、信頼性のある動きベクトルが多くなる。なお、図４において、信頼度が規定値より高い動きベクトルを有する領域（高信頼度領域）を○印で示し、信頼度が規定値より低く信頼性がない動きベクトルを有する領域を×印で示している。
【００５５】
これら２つのシーンにおいて、前述した頻度値算出部１０６、ブロック数／割合算出部１０７、補正ベクトル算出部１１１の処理を施すと、シーン２においては、動きベクトルの出現頻度値に対する閾値判定（Ｓ２）で、出現頻度値が第一の閾値以上となることが多く、画像間の補正ベクトルが求められる。シーン１においては、そもそも信頼性があると判定された動きベクトルデータが少ないため、閾値判定（Ｓ２）でシーン２と同じ閾値で判定しても、出現頻度値が第一の閾値を超えることができず、画像間の補正ベクトルが求められないため、フレーム加算ができない。
【００５６】
しかしながら、シーン１のような場合、画面内の下部に建物が並んでおり、その箇所を含む領域においては動きベクトルの信頼性がある。もし、これらの信頼性がある下部の領域だけに注目し、動きベクトルの出現頻度値がある程度以上であれば、その出現頻度値の動きベクトルに基づいて画像間の補正ベクトルを求めても良い。ただし、これは、シーン１のように建物が横方向に広がって並んでいるような場合だけに当てはまる。
【００５７】
もし、建物が１棟しか写っていないようなシーンであれば、回転運動と並進運動の区別が付き難い（例えば、その１棟の建物がシーンの四隅の近傍に偏って位置するような場合） (図４Ｂ上図参照)。この場合、その１棟の建物に相当する高信頼度領域の動きベクトルを画像間の補正ベクトルとして扱ってしまうと、画像間で回転方向のブレがあった場合でも並進運動の動きベクトルとして画像全体を補正してしまうため、ブレ補正が失敗する。一方、高信頼度領域のばらつき（或いは長さ）が大きければ(図４Ｂ下図参照)、回転方向のブレがあった場合でも、回転運動と並進運動を混同することは稀であり、並進運動の動きベクトルで画像全体を補正する可能性は小さくなり、誤ったブレ補正が行われなくなる。
【００５８】
このようなシーン１の時にでも適切にブレ補正できるようにするため、ブロック数／割合算出部１０７で高信頼度領域の数ｍや割合ｍ／ｎが所定値（αまたはα'）以上でなかったら、ばらつき判定部１０８で高信頼度領域のばらつきを判定する。ばらつきがあったら、補正ベクトル算出部１１１で使用する第一の閾値βを閾値制御部１１０で小さくなるように変更する。ばらつきがなかったら、第一の閾値βは変えず補正ベクトル算出部１１１で処理を行う。
【００５９】
図５に、ばらつき判定部１０８で行うばらつき判定の詳細を示す。高信頼度領域の位置のばらつきを判定するには、高信頼度領域における２つの動きベクトル測定領域の全ての組み合わせの中で、領域間の距離が最長となる組み合わせを見つける。領域間の最長距離をばらつきの度合として、この領域間の最長距離に基づいて高信頼度領域の位置のばらつきを評価・判定することができる。ばらつきの度合が所定の度合より大きい場合に、ばらつきがあると判定できる。具体的には、領域間の最長距離（ばらつきの度合）が第二の閾値（所定の度合）以上であればばらつきがあると判定できる。このように、領域間の最長距離を用いて、高信頼度領域の位置のばらつきの有無を簡便に判定できる。
【００６０】
全ての組み合わせによる距離を測定すると多大な処理になるので、図５に示すような手法で、領域間の最長距離の目安を求めてもよい。ここでは、高信頼度領域において走査線を移動させながら一定方向に各動きベクトル測定領域を走査して行き、最初と最後に走査された領域間の距離に基づいて、ばらつきの度合を算出する。これにより、より少ない演算処理で、高信頼度領域の位置のばらつきの度合を算出できる。
【００６１】
まず、図５上図のように、走査１〜走査５の順番で縦方向に走査線をずらしながら、横方向に各動きベクトル測定領域を走査し、最初と最後に走査された領域の位置と座標（例えば、動きベクトル測定領域の中心位置座標）を得る。そして、最初と最後に走査された領域間の距離（図５中のＬ１）を求める。次に、図５下図のように、走査６〜走査１２の順番で横方向に走査線をずらしながら、縦方向に各動きベクトル測定領域を走査し、最初と最後に走査された領域の位置と座標（例えば、動きベクトル測定領域の中心位置座標）を得る。そして、最初と最後に走査された領域間の距離（図５中のＬ２）を求める。次に、走査１３〜走査１７（走査１〜５の向きを逆にした走査）の順番で縦方向に走査線をずらしながら、横方向に各動きベクトル測定領域を走査し、最初と最後に走査された領域の位置と座標（例えば、動きベクトル測定領域の中心位置座標）を得る。そして、最初と最後に走査された領域間の距離（図５中のＬ３）を求める。さらに、走査１８〜走査２４（走査６〜１２の向きを逆にした走査）の順番で横方向に走査線をずらしながら、縦方向に各動きベクトル測定領域を走査し、最初と最後に走査された領域の位置と座標（例えば、動きベクトル測定領域の中心位置座標）を得る。そして、最初と最後に走査された領域間の距離（図５中のＬ４）を求める。
【００６２】
そして、求められたＬ１、Ｌ２、Ｌ３、Ｌ４の距離のうち最大距離を領域間の最長距離の目安として求めて、この最大距離を第二の閾値と比較する。Ｌ１−Ｌ４のうちの最大距離（ばらつきの度合）が第二の閾値以上であれば、ばらつきがあると判定し、Ｌ１−Ｌ４のうちの最大距離が第二の閾値より小さければ、ばらつきが無いと判定する。
【００６３】
なお、上記において、高信頼度領域間の最長距離に基づいてばらつきを評価・判定したが、ばらつきを評価する方法は種々考えられる。他の方法として、高信頼度領域内の横方向における領域間の最大間隔や縦方向の領域間の最大間隔をばらつきの度合として求めて、ばらつきを評価・判定できる。また、上記のＬ１、Ｌ２、Ｌ３、Ｌ４のいずれか一つだけを求めて、これをばらつきの度合とすることも考えられる。
【００６４】
ばらつきがある場合には、高頻度閾値制御部１１０で、高信頼度領域のブロック数ｍまたは割合ｍ／ｎに応じて、第一の閾値βを小さくなるように変更する。例えば、動きベクトル測定領域数ｎと変更前の第一の閾値βの比率が、高信頼度領域のブロック数ｍと変更後の第一の閾値β’との比率と、同じになるように変更する。つまり、β／ｎ＝β’／ｍの関係が成立するように変更する。従って、高信頼度領域の数ｍまたは割合ｍ／ｎに応じて、変更後の第一の閾値β’は、β×ｍ／ｎと設定される。高信頼度領域の数ｍまたは割合ｍ／ｎが小さいほど、変更後の第一の閾値β’は小さくなる。このように、高信頼度領域の数または割合に応じて第一の閾値を変更すれば、変更後の第一の閾値β’以上の出現頻度値に対応する動きベクトルが存在する可能性が高まる。この結果、高信頼度の動きベクトル測定領域が少ない場合でも、補正ベクトルの算出ができる状況が多くなる。
【００６５】
同一の動きベクトルの出現頻度値が、出現頻度数そのものである場合には、変更後の第一の閾値β’は高信頼度領域の数ｍよりも小さくなる（即ち、β’＜ｍ）。これは、変更前の第一の閾値βが、動きベクトル測定領域の数ｎより小さい値（例えば０．３ｎや０．４ｎ）設定されており、β／ｎ＜１となるためである。このように変更後の第一の閾値β’は高信頼度領域の数ｍよりも小さいため、第一の閾値β’以上の出現頻度値に対応する動きベクトルが存在し得ないような状況が排除され、適切に重み付き平均が計算できる。
【００６６】
また、同一の動きベクトルの出現頻度値が、動きベクトル測定領域の全個数ｎ、或いは高信頼度領域の数ｍに対する相対頻度である場合には、変更後の第一の閾値β’は、高信頼度領域の割合ｍ／ｎより小さくなる。これは、変更前の第一の閾値β（例えば、０．３や０．４）が１以下に設定されるためである。このように変更後の第一の閾値β’は高信頼度領域の割合ｍ／ｎよりも小さいため、第一の閾値β’以上の出現頻度値に対応する動きベクトルが存在し得ないような状況が排除され、適切に重み付き平均が計算できる。
【００６７】
図２（ａ）−（ｃ）の例では、動きベクトル測定領域の数ｎは３５個、信頼性のある領域の数ｍは３１個である。このため、例えば、第一の閾値βが、動きベクトル測定領域の数ｎの３０％程度の１０であるとすると、変更後の第一の閾値β’は、１０×３１／３５≒９に設定される。
【００６８】
ばらつきがある場合には、第一の閾値βからβ’に変更後、補正ベクトル算出部１１１の補正ベクトル算出処理を施す。ばらつきがない場合には、第一の閾値βは変化させず、そのまま補正ベクトル算出部１１１の補正ベクトル算出処理を施す。このように、ばらつきの度合が所定のばらつきの度合よりも大きいことを示すか否かに応じて、出現頻度値に関する第一の閾値をβ又はβ’に設定している。
【００６９】
次に、図６―図９に、画像間の補正ベクトルを算出する際の重み付き平均の計算例を示す。
【００７０】
図６、図７を参照して、重み付き平均の第一の計算例として、出現頻度値が動きベクトルの出現した回数を示す出現頻度数そのものである場合を説明する。
【００７１】
例えば、図６（ａ）の画像について、高信頼度ブロック数／割合算出部１０７が算出した高信頼度領域の数ｍが、３５個の動きベクトル測定領域のうち１０個であるとする（図６（ｂ））。ここで、高信頼度領域の数１０個が所定値α未満である場合には、高信頼度領域ばらつき判定部１０８が高信頼度領域における位置のばらつきを判定する。ばらつきがあると判定されると、高頻度閾値制御部１１０は第一の閾値βをより小さな値β’に変更する。図７の例では、βは１０個とし、β’は３個としている。
【００７２】
補正ベクトル算出部１１１は、変更後の第一の閾値β’（＝３）と高信頼度領域における動きベクトルの出現頻度数を比較する（Ｓ２）。その結果、出現頻度数５と３の動きベクトル（Ｖｘ１，Ｖｙ１）、（Ｖｘ２，Ｖｙ２）が、第一の閾値β’以上の高頻度であると判定される（Ｓ２）。ここでは、出現頻度数が第一の閾値β’以上の動きベクトルが二つある。このため、補正ベクトル算出部１１１は、以下の数式（６）（７）に示すような重み付き平均演算によって画像間の補正ベクトル（Ｖｘ，Ｖｙ）を求める（Ｓ３）。
【００７３】
【数６】
2009272870.tif 000008
【００７４】
ここで、（Ｖｘ１，Ｖｙ１）＝（２，−２）、（Ｖｘ２，Ｖｙ２）＝（１，−１）である。
【００７５】
重み付き平均において、第一の閾値β’以上の出現頻度数に対応する動きベクトルのうち、出現頻度数が高いもの程、大きな重み付けをする。従って、各動きベクトルの重みａ、ｂは出現頻度数が高いもの程大きい。簡単には、重みａ及びｂは、各動きベクトルの出現頻度数そのままに設定すればよい。図６、図７の例では、ａ＝５、ｂ＝３であり、補正ベクトル（Ｖｘ，Ｖｙ）は、(１．６，−１．６）となる。
【００７６】
このように、第一の閾値β’以上の出現頻度数に対応する動きベクトルの重み付き平均を計算するため、出現頻度数の小さな動きベクトルの影響を排除して的確な補正ベクトルが算出できる。また、動きベクトルのうち出現頻度数が高いもの程大きな重み付けをするので、出現頻度数が高い動きベクトルの影響を大きくしてさらに的確な補正ベクトルが算出できる。この補正ベクトルを用いることにより、動きベクトルの信頼性が高い領域が少ない場合でも適切な画像の位置合わせが可能となる。
【００７７】
図６、図８を参照して、重み付き平均の第二の計算例として、出現頻度値が、動きベクトル測定領域の全個数ｎに対する相対頻度（相対頻度Ａ）である場合を説明する。
【００７８】
図６（ａ）の画像例において、高信頼度領域の数１０個が所定値α未満である場合には、高信頼度領域ばらつき判定部１０８が高信頼度領域における位置のばらつきを判定する。ばらつきがあると判定されると、高頻度閾値制御部１１０は第一の閾値βをより小さな値β’に変更する。図８の例では、βは、１０／３５とし、β’は、３／３５としている。
【００７９】
補正ベクトル算出部１１１は、変更後の第一の閾値β’（＝３／３５）と高信頼度領域における動きベクトルの相対頻度Ａを比較する（Ｓ２）。その結果、相対頻度５／３５と３／３５の動きベクトル（Ｖｘ１，Ｖｙ１）、（Ｖｘ２，Ｖｙ２）が、第一の閾値β’以上の高頻度であると判定される（Ｓ２）。ここでは、相対頻度Ａが第一の閾値β’以上の動きベクトルが二つある。このため、補正ベクトル算出部１１１は、以下の数式（８）（９）に示すような重み付き平均演算によって画像間の補正ベクトル（Ｖｘ，Ｖｙ）を求める（Ｓ３）。
【００８０】
【数７】
2009272870.tif 000009
【００８１】
ここで、（Ｖｘ１，Ｖｙ１）＝（２，−２）、（Ｖｘ２，Ｖｙ２）＝（１，−１）である。重み付き平均において、第一の閾値β’以上の相対頻度Ａに対応する動きベクトルのうち相対頻度Ａが高いもの程、大きな重み付けをする。従って、各動きベクトルの重みａ、ｂは相対頻度Ａが高いもの程大きい。簡単には、重みａ及びｂは、各動きベクトルの相対頻度Ａの値そのままに設定すればよい。図６、図８の例では、ａ＝５／３５、ｂ＝３／３５であり、補正ベクトル（Ｖｘ，Ｖｙ）は、(１．６，−１．６)となる。
【００８２】
このように、第一の閾値β’以上の相対頻度Ａに対応する動きベクトルの重み付き平均を計算するため、相対頻度の小さな動きベクトルの影響を排除して的確な補正ベクトルが算出できる。また、動きベクトルのうち相対頻度Ａが高いもの程大きな重み付けをするので、相対頻度が高い動きベクトルの影響を大きくしてさらに的確な補正ベクトルが算出できる。この補正ベクトルを用いることにより、動きベクトルの信頼性が高い領域が少ない場合でも適切な画像の位置合わせが可能となる。
【００８３】
図６、図９を参照して、重み付き平均の第三の計算例として、出現頻度値が、高信頼度領域の数ｍに対する相対頻度（相対頻度Ｂ）である場合を説明する。
【００８４】
図６（ａ）の画像例において、高信頼度領域の数１０個が所定値α未満である場合には、高信頼度領域ばらつき判定部１０８が高信頼度領域における位置のばらつきを判定する。ばらつきがあると判定されると、高頻度閾値制御部１１０は第一の閾値βをより小さな値β’に変更する。図９の例では、βは、３／１０とし、β’は、１／１０としている。
【００８５】
補正ベクトル算出部１１１は、変更後の第一の閾値β’（＝１／１０）と高信頼度領域における動きベクトルの相対頻度Ｂを比較する（Ｓ２）。その結果、高信頼度領域における全動きベクトル（Ｖｘ１，Ｖｙ１）、（Ｖｘ２，Ｖｙ２）、（Ｖｘ３，Ｖｙ３）、（Ｖｘ４，Ｖｙ４）が、第一の閾値β’以上の高頻度であると判定される（Ｓ２）。ここでは、相対頻度Ｂが第一の閾値β’以上の動きベクトルが四つあるため、補正ベクトル算出部１１１は、下記の数式（１０）（１１）に示すような重み付き平均演算によって画像間の補正ベクトル（Ｖｘ，Ｖｙ）を求める（Ｓ３）。
【００８６】
【数８】
2009272870.tif 000010
【００８７】
ここで、（Ｖｘ１，Ｖｙ１）＝（２，−２）、（Ｖｘ２，Ｖｙ２）＝（１，−１）、（Ｖｘ３，Ｖｙ３）＝（−２，−２）、（Ｖｘ４，Ｖｙ４）＝（−１，１）である。
【００８８】
重み付き平均において、第一の閾値β’以上の相対頻度Ｂに対応する動きベクトルのうち相対頻度Ｂが高いもの程、大きな重み付けをする。従って、各動きベクトルの重みａ、ｂ、ｃ、ｄは相対頻度Ｂが高いもの程大きい。簡単には、重みａ、ｂ、ｃ、ｄは、各動きベクトルの相対頻度Ｂの値そのままに設定すればよく、図６、図７の例では、ａ＝５／１０、ｂ＝３／１０、ｃ＝１／１０、ｄ＝１／１０であり、補正ベクトル（Ｖｘ，Ｖｙ）は、(１．０，−１．４)となる。
【００８９】
このように、第一の閾値β’以上の相対頻度Ｂに対応する動きベクトルの重み付き平均を計算するため、相対頻度の小さな動きベクトルの影響を排除して的確な補正ベクトルが算出できる。また、動きベクトルのうち相対頻度Ｂが高いもの程大きな重み付けをするので、相対頻度が高い動きベクトルの影響を大きくしてさらに的確な補正ベクトルが算出できる。この補正ベクトルを用いることにより、動きベクトルの信頼性が高い領域が少ない場合でも適切な画像の位置合わせが可能となる。
【００９０】
なお、上記の実施形態は、ブレ補正を行う場合について記載されているが、本発明は、複数の重なりのある画像を張り合わすことによって広視野の画像を生成するモザイキング処理における位置合わせなどについても適用できる。
【００９１】
また、上記の実施形態の画像処理装置で行われる処理を、画像処理プログラムが行う構成としてもよく、これにより、特別なハードウェアを必要とせず簡便に画像処理が行える。
【００９２】
本発明は上記の実施の形態に限定されずに、その技術的な思想の範囲内において種々の変更がなしうることは明白である。
【図面の簡単な説明】
【００９３】
【図１】実施形態に係る画像処理装置を示すブロック構成図である。
【図２】実施形態における（ａ）動きベクトル（ｂ）動きベクトル統計処理（ｃ）高信頼度ブロック数／割合算出を示す図である。
【図３】実施形態における補正ベクトル算出処理を示すフローチャートである。
【図４Ａ】実施形態における撮影シーンと動きベクトル信頼度判定結果の例を示す図である。
【図４Ｂ】ブレ補正のエラーが発生するシーンと発生しないシーンを示す図である。
【図５】実施形態における高信頼度領域のばらつき判定処理を示す詳細図である。
【図６】（ａ）高信頼度領域の動きベクトルの一例を示す図である。（ｂ）高信頼度領域の動きベクトルを同一の動きベクトルごとに分類する統計処理の一例を示す図である。
【図７】高信頼度ブロック数／割合算出部、高信頼度領域ばらつき判定部、高頻度閾値制御部、補正ベクトル算出部が実行する処理の第一の例を示す図である。
【図８】高信頼度ブロック数／割合算出部、高信頼度領域ばらつき判定部、高頻度閾値制御部、補正ベクトル算出部が実行する処理の第二の例を示す図である。
【図９】高信頼度ブロック数／割合算出部、高信頼度領域ばらつき判定部、高頻度閾値制御部、補正ベクトル算出部が実行する処理の第三の例を示す図である。
【符号の説明】
【００９４】
１００  メインコントローラ
１０１  撮像部
１０２  フレームメモリ
１０３  動きベクトル測定領域設定部
１０４  動きベクトル算出部
１０５  動きベクトル信頼度算出部
１０６  頻度値算出部（動きベクトル統計処理部）
１０７  高信頼度ブロック数／割合算出部
１０８  高信頼度領域ばらつき判定部
１０９  フレーム加算部
１１０  高頻度閾値制御部（閾値設定部）
１１１  補正ベクトル算出部（画像間動きベクトル算出部）
【図１】
2009272870.tif 000011
【図２】
2009272870.tif 000012
【図３】
2009272870.tif 000013
【図４Ｂ】
2009272870.tif 000014
【図６】
2009272870.tif 000015
【図７】
2009272870.tif 000016
【図８】
2009272870.tif 000017
【図９】
2009272870.tif 000018
【図４Ａ】
2009272870.tif 000019
【図５】
2009272870.tif 000020