(57)【要約】【課題】特定の被写体が画像上に存在しない場合に、画像の端を基準に高精度の動きベクトルを求めてブレ補正を行うと、二重線や像ボケが生じる可能性がある。【解決手段】画像から特定の被写体を検出する処理を行うとともに、複数枚の画像間の動きベクトルを測定するための複数の動きベクトル測定領域を画像上に設定し、設定した複数の動きベクトル測定領域の各々において、複数枚の画像間の動きベクトルを求める。そして、特定の被写体の検出の有無に基づいて、複数枚の画像間の位置ずれ量を算出する際の算出精度を決定し、決定した算出精度と求めた全部または一部の動きベクトルとに基づいて、複数枚の画像間の位置ずれ量を算出する。【選択図】図７
2009302731.tif 000002
【特許請求の範囲】
【請求項１】
複数枚の画像間の位置ずれ量を用いて複数枚の画像の位置合わせ処理を行う画像処理装置であって、
画像から特定の被写体を検出する特定被写体検出部と、
前記複数枚の画像間の動きベクトルを測定するための複数の動きベクトル測定領域を画像上に設定する動きベクトル測定領域設定部と、
前記複数の動きベクトル測定領域の各々において、前記複数枚の画像間の動きベクトルを求める動きベクトル算出部と、
前記特定の被写体の検出の有無に基づいて、前記複数枚の画像間の位置ずれ量を算出する際の算出精度を決定する算出精度決定部と、
前記求められた全部または一部の動きベクトルと、前記決定された算出精度とに基づいて、前記複数枚の画像間の位置ずれ量を算出する位置ずれ量算出部と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記動きベクトル測定領域設定部は、前記特定の被写体の検出の有無に応じて、前記複数の動きベクトル測定領域を設定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記動きベクトル測定領域設定部は、前記特定の被写体が検出された場合には、検出された特定の被写体上に前記複数の動きベクトル測定領域を設定し、前記特定の被写体が検出されなかった場合には、画像の全体に前記複数の動きベクトル測定領域を設定することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記算出精度決定部は、前記特定の被写体が検出された場合の算出精度に比べて、前記特定の被写体が検出されなかった場合の算出精度を低くすることを特徴とする請求項１から請求項３のいずれか一項に記載の画像処理装置。
【請求項５】
前記算出精度決定部は、前記特定の被写体が検出されなかった場合の算出精度を画素精度の算出精度とし、前記特定の被写体が検出された場合の算出精度をサブピクセル精度の算出精度とすることを特徴とする請求項１から請求項４のいずれか一項に記載の画像処理装置。
【請求項６】
前記求められた全部または一部の動きベクトルとして、前記複数枚の画像間の位置ずれ量を算出するために用いる動きベクトルを選択する動きベクトル選択部をさらに備えることを特徴とする請求項１から請求項５のいずれか一項に記載の画像処理装置。
【請求項７】
前記複数の動きベクトル測定領域の各々において求められた動きベクトルの信頼度を算出する動きベクトル信頼度算出部をさらに備え、
前記動きベクトル選択部は、前記動きベクトルごとに求められた信頼度に基づいて、信頼度の高い動きベクトルを選択し、選択した信頼度の高い動きベクトルに基づいて、前記複数枚の画像間の位置ずれ量を算出するために用いる動きベクトルを選択することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記特定被写体検出部は、前記特定の被写体として、人物の顔を検出することを特徴とする請求項１から請求項７のいずれか一項に記載の画像処理装置。
【請求項９】
請求項１から請求項８のいずれか一項に記載の画像処理装置を有することを特徴とする電子機器。
【請求項１０】
複数枚の画像間の位置ずれ量を用いて複数枚の画像の位置合わせ処理を行う画像処理方法であって、
画像から特定の被写体を検出するステップと、
前記複数枚の画像間の動きベクトルを測定するための複数の動きベクトル測定領域を画像上に設定するステップと、
前記複数の動きベクトル測定領域の各々において、前記複数枚の画像間の動きベクトルを求めるステップと、
前記特定の被写体の検出の有無に基づいて、前記複数枚の画像間の位置ずれ量を算出する際の算出精度を決定するステップと、
前記求められた全部または一部の動きベクトルと、前記決定された算出精度とに基づいて、前記複数枚の画像間の位置ずれ量を算出するステップと、
を備えることを特徴とする画像処理方法。
【請求項１１】
複数枚の画像間の位置ずれ量を用いて複数枚の画像の位置合わせ処理をコンピュータに実行させるための画像処理プログラムであって、
画像から特定の被写体を検出するステップと、
前記複数枚の画像間の動きベクトルを測定するための複数の動きベクトル測定領域を画像上に設定するステップと、
前記複数の動きベクトル測定領域の各々において、前記複数枚の画像間の動きベクトルを求めるステップと、
前記特定の被写体の検出の有無に基づいて、前記複数枚の画像間の位置ずれ量を算出する際の算出精度を決定するステップと、
前記求められた全部または一部の動きベクトルと、前記決定された算出精度とに基づいて、前記複数枚の画像間の位置ずれ量を算出するステップと、
を備えることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像間の重ね合わせ技術や、画像間のブレ補正技術など、複数枚画像の位置合わせ技術に関する。
【背景技術】
【０００２】
デジタルカメラなどの電子撮像機器において、シャッタ速度が遅くなると手ブレや被写体ブレに起因する像ブレが発生しやすくなることが知られている。手ブレによる像ブレを抑制する方法として、機械式手ブレ補正と電子式手ブレ補正がある。
【０００３】
機械式手ブレ補正には、レンズシフト方式とセンサシフト方式等がある。レンズシフト方式は、ジャイロセンサなどを用いて変位量を測定し、撮像光軸を偏心させる補正光学系を駆動することにより像ブレ補正を行う方式である。センサシフト方式は、同じくジャイロセンサなどを用いて測定した変位量に基づいて、撮像素子を移動させることにより像ブレ補正を行う方式である。
【０００４】
一方、電子式手ブレ補正は、高速・時系列に複数枚画像を撮像し、それら画像間の位置ずれ量を、センサもしくは画像処理手法を用いて測定し、位置ずれ量を補償したうえで画像加算することで、像ブレのない画像を生成する手法である。
【０００５】
画像間の位置ずれ量を求める技術としてブロックマッチング法が一般的に知られている。ブロックマッチング法は、基準画像において適当な大きさのブロック（例えば８画素×８ライン）を定義し、比較画像の該当箇所から一定範囲内において一致指標値を計算し、その一致指標値が最も大きくなる（または小さくなる）位置を求めて、画像間の位置ずれ量を計算する手法である。
【０００６】
一致指標値としては、画素値の差分の自乗和である誤差自乗和ＳＳＤ(Sum of Squared intensity Difference)、画素値の差分の絶対値和である誤差絶対値和ＳＡＤ(Sum of Absolute intensity Difference)などがある。ＳＳＤ、ＳＡＤが小さいほど、一致度が高いと判断する。マッチングの基準ブロック領域Ｉおよび対象とするブロック領域Ｉ'において、画素位置ｐ∈Ｉおよび、ｑ∈Ｉ'(ｐ，ｑは２次元の値を持つ量で、Ｉ，Ｉ'は２次元の領域、ｐ∈Ｉは座標ｐが領域Ｉに含まれていることを示す)の画素値をそれぞれＬｐ、Ｌｑとすると、ＳＳＤ、ＳＡＤは、それぞれ次式（１）、（２）で表される。
【０００７】
【数１】
2009302731.tif 000003
【０００８】
【数２】
2009302731.tif 000004
【０００９】
その他に、正規化相互相関ＮＣＣ(Normalized Cross-Correlation)を用いる方法がある。ゼロ平均相関は、マッチングの基準ブロック領域Ｉおよび対象とするブロック領域Ｉ'の各々に含まれる画素ｐ∈Ｉおよび、ｑ∈Ｉ'の平均値Ａｖｅ（Ｌｐ）、Ａｖｅ（Ｌｑ）を算出し、各ブロックに含まれる画素値との差分を次式（３）、（４）により計算する。
【００１０】
【数３】
2009302731.tif 000005
【００１１】
【数４】
2009302731.tif 000006
【００１２】
続いて、正規化相互相関ＮＣＣを次式（５）により計算する。
【００１３】
【数５】
2009302731.tif 000007
【００１４】
正規化相互相関ＮＣＣの大きいブロックを一致度の高い（相関の高い）ブロックと判断し、最も一致度の高いブロックＩ'とＩの間の相対的ズレ量を動きベクトルとする。
【００１５】
ここで、撮象画像に含まれている被写体が静止している場合は、個々の領域での動きと画像全体の動きは、一致する。従って、上記のマッチング処理では、相関演算を行うためのブロック領域を任意の固定位置に配置して、動きベクトルを算出することができる。
【００１６】
このような任意の固定位置にブロック領域を配置して動きベクトルを算出する技術として、特許文献１に記載されているものがある。特許文献１に記載の技術では、各領域においてＳＡＤやＳＳＤなどの一致指標値を用いて動きベクトルの信頼度を算出し、算出した信頼度や領域の大きさに基づいて、画像全体の動きベクトルを求めている。
【特許文献１】特開平８−２５１４７４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
ここで、例えば、特定の被写体が画像上に存在しない場合に、信頼度の高い動きベクトルが画像の端に集中する場合がある。この場合、画像の端に集中した動きベクトルから、例えば、サブピクセル精度の高精度の動きベクトルを求めてブレ補正を行うと、画像の端においては高精度なブレ補正が可能になるが、その端から遠い領域においては、位置合わせ誤差が大きくなり、二重線や像ボケが生じる可能性がある。
【００１８】
本発明は上記の課題に鑑みてなされたものであり、その目的は、特定被写体の有無に応じて、画像間の位置ずれ量を算出する際の算出精度を決定して、画像間の位置合わせを精度良く行うことである。
【課題を解決するための手段】
【００１９】
本発明のある態様に係る画像処理装置は、複数枚の画像間の位置ずれ量を用いて複数枚の画像の位置合わせ処理を行う画像処理装置であって、画像から特定の被写体を検出する特定被写体検出部と、前記複数枚の画像間の動きベクトルを測定するための複数の動きベクトル測定領域を画像上に設定する動きベクトル測定領域設定部と、前記複数の動きベクトル測定領域の各々において、前記複数枚の画像間の動きベクトルを求める動きベクトル算出部と、前記特定の被写体の検出の有無に基づいて、前記複数枚の画像間の位置ずれ量を算出する際の算出精度を決定する算出精度決定部と、前記求められた全部または一部の動きベクトルと、前記決定された算出精度とに基づいて、前記複数枚の画像間の位置ずれ量を算出する位置ずれ量算出部と、を備えることを特徴とする。
【００２０】
本発明の別の態様に係る画像処理方法は、複数枚の画像間の位置ずれ量を用いて複数枚の画像の位置合わせ処理を行う画像処理方法であって、画像から特定の被写体を検出するステップと、前記複数枚の画像間の動きベクトルを測定するための複数の動きベクトル測定領域を画像上に設定するステップと、前記複数の動きベクトル測定領域の各々において、前記複数枚の画像間の動きベクトルを求めるステップと、前記特定の被写体の検出の有無に基づいて、前記複数枚の画像間の位置ずれ量を算出する際の算出精度を決定するステップと、前記求められた全部または一部の動きベクトルと、前記決定された算出精度とに基づいて、前記複数枚の画像間の位置ずれ量を算出するステップと、を備えることを特徴とする。
【００２１】
本発明のさらに別の態様に係る画像処理プログラムは、複数枚の画像間の位置ずれ量を用いて複数枚の画像の位置合わせ処理をコンピュータに実行させるための画像処理プログラムであって、画像から特定の被写体を検出するステップと、前記複数枚の画像間の動きベクトルを測定するための複数の動きベクトル測定領域を画像上に設定するステップと、前記複数の動きベクトル測定領域の各々において、前記複数枚の画像間の動きベクトルを求めるステップと、前記特定の被写体の検出の有無に基づいて、前記複数枚の画像間の位置ずれ量を算出する際の算出精度を決定するステップと、前記求められた全部または一部の動きベクトルと、前記決定された算出精度とに基づいて、前記複数枚の画像間の位置ずれ量を算出するステップと、を備えることを特徴とする。
【００２２】
これら態様によれば、画像上の特定の被写体の有無に応じて、画像間の位置ずれ量を算出する際の算出精度を決定して、位置ずれ量を算出するので、特定の被写体の有無に応じた適切な算出精度で位置ずれ量を算出して、画像間の位置合わせを精度良く行うことができる。
【発明の効果】
【００２３】
本発明によれば、画像間の位置合わせを精度良く行うことができる。
【発明を実施するための最良の形態】
【００２４】
図１は、一実施の形態における画像処理装置の構成を示すブロック図である。図中、点線は制御信号、細線は動きベクトルや信頼度等のデータの流れ、太線は画像データの流れを表している。なお、本実施形態に係る画像処理装置は、デジタルカメラ、デジタルビデオカメラや内視鏡など、正しく作動するために電流または電磁界に依存する機器である電子機器に搭載される。
【００２５】
メインコントローラ１００は、装置全体の動作制御を行うプロセッサであり、例えば、ＤＳＰ（デジタルシグナルプロセッサ）などのＣＰＵが用いられる。
【００２６】
撮像部１０１で撮像された複数フレームの画像は、時系列に連続的に、フレームメモリ１０２に入力され、格納される。フレームメモリ１０２に格納された入力画像には、位置合わせの基準となる画像（以下、基準画像と呼ぶ）と、基準画像に対して位置合わせを行う画像（以下、対象画像と呼ぶ）とがある。
【００２７】
位置合わせ画像生成部１１２は、基準画像および対象画像を、それぞれ位置合わせに適した画像へ変換することにより、位置合わせ画像を生成する。
【００２８】
特定被写体領域検出部１１３は、特定の被写体が写り込んでいる画像上の領域を検出する。
【００２９】
動きベクトル測定領域設定部１０３は、特定被写体領域検出部１１３による特定被写体の検出結果に基づいて、動きベクトルを測定するための複数の動きベクトル測定領域を画像上に設定する。以下では、「動きベクトル測定領域」を単に「測定領域」とも呼ぶ。
【００３０】
動きベクトル算出部１０４は、フレームメモリ１０２に格納されている位置合わせ画像のデータと、動きベクトル測定領域のデータとを用いて、各測定領域において、対象画像から基準画像への写像を表す動きベクトルを算出する。
【００３１】
利用領域選択部１０５は、動きベクトル信頼度算出部１０５ａと、動きベクトル統合処理部１０５ｂとを備える。動きベクトル信頼度算出部１０５ａは、各測定領域の動きベクトル、および、位置合わせ画像に基づいて、各動きベクトルの信頼性（確からしさ）を表す信頼度を算出する。
【００３２】
動きベクトル統合処理部１０５ｂは、各測定領域の動きベクトルおよび各動きベクトルの信頼度に基づいて、高信頼度の動きベクトルを選択し、選択した複数の高信頼度の動きベクトルの中から、最も頻度の高い動きベクトル、すなわち、最も数の多い同一の動きベクトルを選択する。
【００３３】
補正ベクトル算出精度決定部１０８は、特定被写体領域検出部１１３による特定被写体の検出結果に基づいて、補正ベクトルを算出する際の算出精度を決定する。補正ベクトルは、基準画像および対象画像間の代表動きベクトルであって、その大きさは、基準画像および対象画像間の位置ずれ量を表す。
【００３４】
補正ベクトル算出部１１０は、補正ベクトル算出精度決定部１０８で決定された算出精度と、利用領域選択部１０５で求められた動きベクトルとから、基準画像および対象画像間の代表動きベクトルである補正ベクトルを算出する。
【００３５】
フレーム加算部１０９は、フレームメモリ１０２に格納されている基準画像および対象画像と、補正ベクトル算出部１１０で算出された補正ベクトルとに基づいて、フレーム加算を行う。すなわち、対象画像を補正ベクトルに基づいてシフトさせた後、シフト後の画像を基準画像に加算する処理を行う。
【００３６】
図２は、一実施の形態における画像処理装置によって行われる処理の処理手順を示すフローチャートである。ステップＳ１０において、位置合わせ画像生成部１１２は、フレームメモリ１０２に格納されている基準画像と対象画像のそれぞれについて、位置合わせ用の画像である位置合わせ用基準画像と位置合わせ用対象画像を生成する。位置合わせ用基準画像および位置合わせ用対象画像は、基準画像および対象画像をそれぞれ縮小した画像である。生成された位置合わせ用基準画像および位置合わせ用対象画像は、フレームメモリ１０２に格納される。
【００３７】
ステップＳ２０において、特定被写体領域検出部１１３は、位置合わせ用対象画像から特定被写体を検出する。ここでは、特定被写体を人物の顔として説明する。ただし、特定被写体が人物の顔に限定されることはない。
【００３８】
人物の顔検出の方法としては、既知の方法、例えば、Paul Viola, Michael Jones : Robust Realtime Object Detection Second International Workshop on Statistical and Computational Theories of Vision-Modeling, Learning, Computing and Sampling 2001に記載されている方式およびその応用を用いる。この顔検出アルゴリズムでは、顔の位置および顔のおよその大きさを求めることができる。
【００３９】
ステップＳ３０において、動きベクトル測定領域設定部１０３は、ステップＳ２０における特定被写体検出結果に応じて、フレームメモリ１０２に格納されている位置合わせ用対象画像に対して、複数の動きベクトル測定領域を設定する。
【００４０】
図３（ａ）は、特定被写体が検出されなかった場合に、位置合わせ用対象画像３１に設定される動きベクトル測定領域３０１の一例を示す図である。動きベクトル測定領域３０１は、位置合わせの基準領域となるテンプレート領域である。特定被写体が検出されなかった場合、図３（ａ）に示すように、動きベクトル測定領域３０１は、位置合わせ用対象画像の全体に、格子状に複数設定される。なお、ここでは、測定領域３０１を所定の大きさの矩形領域としたが、矩形領域に限定されることはない。
【００４１】
図３（ｂ）は、位置合わせ用基準画像３２上に設定された探索領域３０２を示す図である。探索領域３０２は、位置合わせ時に測定領域３０１を移動させる範囲を示すものであり、位置合わせ用基準画像３２において、測定領域３０１の相当する座標近傍に、測定領域３０１より広い範囲で設定される。
【００４２】
なお、位置合わせ用基準画像３２において動きベクトル測定領域３０１を、位置合わせ用対象画像３１において、動きベクトル測定領域３０１の相当する座標近傍に探索領域３０２を配置してもよい。
【００４３】
図４は、特定被写体が検出された場合に、位置合わせ用対象画像３１に設定される動きベクトル測定領域３０１の一例を示す図である。特定被写体が検出された場合、検出された特定被写体上に、測定領域３０１を複数設定する。本実施の形態では、特定被写体を人物の顔としているため、図４に示すように、人物の顔の領域上に、測定領域３０１を複数設定する。
【００４４】
図２のフローチャートのステップＳ４０において、動きベクトル算出部１０４は、各動きベクトル測定領域３０１の動きベクトルを算出する。動きベクトル演算では、位置合わせ用対象画像３１の動きベクトル測定領域３０１を、位置合わせ用基準画像３２の探索領域３０２内において位置合わせを行うことにより、画素精度での動きベクトルを求める。この位置合わせは、ＳＡＤ、ＳＳＤ、ＮＣＣ等の一致指標値を演算するブロックマッチング手法を用いて行う。
【００４５】
また、ブロックマッチングの代わりに、オプティカルフローに置き換えてもよい。画素精度での動きベクトルは、動きベクトル測定領域３０１の各々に対して求める。
【００４６】
ステップＳ５０およびステップＳ６０の処理は、利用領域選択部１０５によって行われる。ステップＳ５０において、動きベクトル信頼度算出部１０５ａは、ステップＳ４０で求められた各動きベクトルの信頼度を算出する。動きベクトルの信頼度は、次式（６）で示される誤差自乗和ＳＳＤに基づいて算出する。
【００４７】
【数６】
2009302731.tif 000008
【００４８】
式（６）において、ｂｘｉ、ｂｙｉはそれぞれ、動きベクトル測定領域設定部１０３で設定された動きベクトル測定領域３０１の重心位置のｘ座標およびｙ座標であり、測定領域の数ｉだけ用意されている。また、ｈ、ｖはそれぞれ、動きベクトル測定領域３０１の水平方向および垂直方向の大きさである。ｂｘｊ、ｂｙｊはそれぞれ、ブロックマッチングに用いる、測定領域３０１に対応する位置合わせ用基準画像３２上の領域の重心位置であり、探索領域３０２の範囲に対応して用意されている。
【００４９】
ｉ番目の測定領域３０１の信頼度は、ＳＳＤ（ｉ，ｊ）の最小値および平均値の偏差に基づいて求められる。簡単には、ＳＳＤ（ｉ，ｊ）の最小値と平均値との偏差を信頼度とする。ＳＳＤ（ｉ，ｊ）の統計性に基づく信頼度は、領域の構造特徴と以下の（ｉ）〜（ｉｉｉ）の概念で対応付けられる。
（ｉ）エッジ構造が鮮鋭な領域の場合、動きベクトルの信頼性が高い。このため、ＳＳＤの最小値を示す位置の誤差は少なく、ＳＳＤのヒストグラムをとった場合に、最小値を示す位置付近に小さな差分値が集中する。従って、ＳＳＤの最小値と平均値の差が大きい。
（ｉｉ）テクスチャや平坦な構造の場合、差分値のヒストグラムが平坦になる。このため、最小値と平均値の差は小さく、信頼度は低い。
（ｉｉｉ）繰り返し構造の場合、差分の最小値と最大値を示す位置が近く、差分が小さい値を示す位置が分散している。このため、最小値と平均値の差は小さく、信頼度は低い。
【００５０】
なお、信頼性に関しては、各測定領域内のエッジの量に応じて判定することもできる。
【００５１】
ステップＳ６０において、動きベクトル統合処理部１０５ｂは、まず、ステップＳ５０で求められた各動きベクトルの信頼度に基づいて、信頼度の高い動きベクトルを選択する。
【００５２】
図５（ａ）は、特定被写体が検出されなかった場合に、各測定領域３０１において求められた動きベクトルの一例を示す図、図５（ｂ）は、信頼度の低い動きベクトルを除外して、信頼度の高い動きベクトルを選択した様子の一例を示す図である。図５（ａ）、（ｂ）では、各測定領域３０１で求められた動きベクトルを矢印で示している。また、図５（ｂ）に示す例では、信頼度の低い動きベクトル（例えば、信頼度が所定のしきい値より低い動きベクトル）を除外するためのフィルタリング処理を行うことにより、信頼度の高い動きベクトルを選択している。
【００５３】
図６（ａ）は、図４に示すように、特定被写体（人物の顔）が検出された場合に、特定被写体上に設定された各測定領域３０１において求められた動きベクトルの一例を示す図、図６（ｂ）は、信頼度の低い動きベクトルを除外して、信頼度の高い動きベクトルを選択した様子の一例を示す図である。図６（ｂ）に示す例においても、信頼度の低い動きベクトル（例えば、信頼度が所定のしきい値より低い動きベクトル）を除外するためのフィルタリング処理を行うことにより、信頼度の高い動きベクトルを選択している。
【００５４】
続いて、動きベクトル統合処理部１０５ｂは、選択した信頼度の高い複数の動きベクトルに対して投票処理を行い、最も頻度の高い動きベクトル、すなわち、最も数の多い同一の動きベクトルを選択する。
【００５５】
図２のフローチャートのステップＳ７０、ステップＳ８０、および、ステップＳ１００の処理は、補正ベクトル算出精度決定部１０８によって行われる。ステップＳ７０では、ステップＳ２０の処理において、特定被写体が検出されたか否かを判定する。特定被写体が検出されていないと判定するとステップＳ８０に進む。ステップＳ８０では、補正ベクトルを算出する際の算出精度を「低い精度」に決定する。
【００５６】
一方、ステップＳ７０において、特定被写体が検出されたと判定するとステップＳ１００に進む。ステップＳ１００では、補正ベクトルを算出する際の算出精度を「高い精度」に決定する。
【００５７】
図７は、特定被写体の検出の有無に応じて、補正ベクトルを算出する際の算出精度を決定する方法を分かりやすく示した図である。上述したように、特定被写体が検出されていない場合には、算出精度を「低い精度」に決定し、特定被写体が検出された場合には、算出精度を「高い精度」に決定する。
【００５８】
ステップＳ９０、ステップＳ１１０、および、ステップＳ１２０の処理は、補正ベクトル算出部１１０によって行われる。ステップＳ９０では、ステップＳ６０で求められた最頻度の動きベクトルに基づいて、補正ベクトルを求める。このため、まず、最頻度の動きベクトルを、縮小後の位置合わせ用の画像を縮小前の画像に変換する際の変換率で変換する。縮小後の位置合わせ用の画像を縮小前の画像に変換する際の変換率は、基準画像および対象画像から位置合わせ用基準画像および位置合わせ用対象画像を生成する際の縮小率の逆数として算出する。例えば、基準画像および対象画像をそれぞれ４分の１に縮小して、位置合わせ用基準画像および位置合わせ用対象画像を生成した場合には、求めた最頻度の動きベクトルを４倍する。
【００５９】
続いて、倍率を変更したベクトルを、フレーム加算部１０９でシフト可能な単位に近似することにより、補正ベクトルを求める。例えば、フルカラーデータをシフトする場合のように、シフト可能な単位が１画素である場合には、倍率変更後の動きベクトルが１画素単位になるように近似する。１画素単位の動きベクトルへの近似は、例えば、小数点１位以下の数字を四捨五入することにより行う。例えば、最頻度の動きベクトルが（2.2，2.6）で、変換率が４倍の場合、倍率変更後の動きベクトルは（8.8，10.4）となるため、小数点１位以下の数字を四捨五入して、１画素単位の（9，10）と近似する。
【００６０】
また、シフト可能な単位が２画素単位である場合、例えば、ＲＡＷデータのカラー配列上の制限により、ＲＡＷデータでシフト加算するような場合には、倍率変更後の動きベクトルが２画素単位になるように近似する。２画素単位の近似は、例えば、倍率変更後の動きベクトルが最も近い偶数になるように近似する。例えば、最頻度の動きベクトルが（2.2，2.6）で、変換率が４倍の場合、倍率変更後の動きベクトルは（8.8，10.4）となるため、最も近い偶数の（8，10）と近似する。
【００６１】
さらに、シフト可能な単位が画素精度よりも精度の高いサブピクセル精度の場合には、そのサブピクセル精度の単位に近似する。例えば、サブピクセル精度の単位が0.1画素単位である場合に、倍率変更後の動きベクトルが（8.8，10.4）であれば、0.1画素単位となっているため、その動きベクトルをそのまま用いる。
【００６２】
上述したように、ステップＳ６０で求められた最頻度の動きベクトルを、縮小後の位置合わせ用の画像を縮小前の画像に変換する際の変換率で変換し、変換後の動きベクトルをフレーム加算部１０９でシフト可能な単位に近似した動きベクトルを補正ベクトルとする。
【００６３】
一方、ステップＳ１００において、算出精度が「高い精度」であると判定された後に進むステップＳ１１０では、ステップＳ６０で求められた画素精度の最頻度の動きベクトルから、サブピクセル精度の動きベクトルを求める。サブピクセル精度の動きベクトルの求め方を以下で説明する。
【００６４】
まず、一致度が最も大きいことを示す一致指標値の画素位置を中心とする上下左右の４近傍の画素位置において、再度、一致指標値を求める。一致度が最も大きいことを示す一致指標値の画素位置とは、例えば、一致指標値としてＳＳＤを求めた場合には、ＳＳＤが最小となる画素位置である。
【００６５】
図８は、一致度が最も大きいことを示す一致指標値の画素位置を中心とする上下左右の４近傍の画素位置を示す図である。一致度が最も大きいことを示す一致指標値の画素位置を黒丸で、上下左右の４近傍の画素位置を白丸でそれぞれ示している。
【００６６】
続いて、上下左右の４近傍の画素位置において求めた一致指標値をフィッティングし、一致指標値のピーク位置を求めることでサブピクセル精度の動きベクトルを求める。フィッティングとしては、等角直線フィッティングや、パラボラフィッティング等の既知の方法を用いることができる。
【００６７】
図９（ａ）は、等角直線フィッティングを用いてサブピクセル精度の動きベクトルを求める方法を示す図である。例えば、画素単位の一致指標値が最高となる画素位置における一致指標値をＲ（０）とし、一致指標値が最高となる画素位置の左隣および右隣の画素位置の一致指標値をそれぞれＲ（−１）、Ｒ（１）とすると、Ｘ方向のサブピクセル精度のずれ量ｄは、次式（７）で表される。
【００６８】
【数７】
2009302731.tif 000009
【００６９】
同様に、上隣および下隣の画素位置の一致指標値をそれぞれＲ（１）、Ｒ（−１）として、式（７）よりＹ方向のサブピクセル精度のずれ量を求めることにより、サブピクセル精度の動きベクトルを求める。
【００７０】
図９（ｂ）は、パラボラフィッティングを用いてサブピクセル精度の動きベクトルを求める方法を示す図である。この場合、サブピクセル精度のずれ量ｄは、次式（８）で表される。
【００７１】
【数８】
2009302731.tif 000010
【００７２】
この場合も、式（８）に基づいて、Ｘ方向およびＹ方向のサブピクセル精度のずれ量を求めることにより、サブピクセル精度の動きベクトルを求める。
【００７３】
サブピクセル精度の動きベクトルを求める処理は、最頻度の動きベクトル全てを対象として行う。
【００７４】
ステップＳ１２０では、ステップＳ１１０で求めたサブピクセル精度の動きベクトルを、縮小後の位置合わせ用の画像を縮小前の画像に変換する際の変換率で変換する。この変換処理は、ステップＳ９０の処理で行った変換処理と同じであるため、詳しい説明は省略する。続いて、変換後の動きベクトルを、フレーム加算部１０９でシフト可能な単位に近似することにより、補正ベクトルを求める。シフト可能な単位に近似する処理についても既に説明しているため、ここでは詳しい説明は省略する。
【００７５】
ステップＳ１３０において、フレーム加算部１０９は、フレームメモリ１０２に格納されている基準画像および対象画像と、ステップＳ９０またはステップＳ１２０で求めた補正ベクトルとに基づいて、フレーム加算処理を行う。すなわち、対象画像を補正ベクトルに基づいてシフトさせて、シフト後の画像を基準画像に加算する処理を行う。
【００７６】
ステップＳ１４０では、規定フレームを全て処理し終えたか否かを判定する。規定フレームを全て処理し終えればフローチャートの処理を終了し、未処理フレームが残っていれば、ステップＳ１０に戻って、上記処理を繰り返す。
【００７７】
以上、一実施の形態における画像処理装置によれば、画像から特定の被写体を検出する処理を行うとともに、複数の動きベクトル測定領域を画像上に設定して、複数の動きベクトル測定領域の各々において動きベクトルを求める。また、複数の動きベクトル測定領域の各々において求められた動きベクトルのうち、複数枚の画像間の位置ずれ量を算出するために用いる動きベクトルを選択し、特定の被写体の検出の有無に基づいて、位置ずれ量を算出する際の算出精度を決定する。そして、決定した算出精度と、選択した動きベクトルとに基づいて、画像間の位置ずれ量を算出する。これにより、画像上における特定の被写体の検出の有無に応じて適切な算出精度を決定して、画像間の位置ずれ量を精度良く求めることができる。
【００７８】
特に、特定の被写体が検出された場合の算出精度に比べて、特定の被写体が検出されなかった場合の算出精度を低くするので、特定の被写体が検出されなかった場合に、高い算出精度で位置ずれ量を求めて二重線や像ボケが生じるのを防ぐことができる。また、特定の被写体が検出された場合には、高い精度で位置ずれ量を求めるので、画像間の位置合わせを精度良く行うことができる。
【００７９】
また、一実施の形態における画像処理装置では、特定の被写体の検出の有無に応じて、複数の動きベクトル測定領域を設定する。特に、特定の被写体が検出された場合には、検出された特定の被写体上に複数の動きベクトル測定領域を設定し、特定の被写体が検出されなかった場合には、画像の全体に複数の動きベクトル測定領域を設定する。これにより、特定の被写体が検出された場合には、特定の被写体を基準に位置合わせを行い、特定の被写体が検出されなかった場合には、画像全体を基準に位置合わせを行うことができる。
【００８０】
なお、上述した一実施の形態の説明では、画像処理装置が行う処理としてハードウェアによる処理を前提としていたが、このような構成に限定される必要はない。例えば、別途ソフトウェアにて処理する構成も可能である。この場合、画像処理装置は、ＣＰＵ、ＲＡＭ等の主記憶装置、上記処理の全て或いは一部を実現させるためのプログラムが記憶されたコンピュータ読み取り可能な記憶媒体を備えている。ここでは、このプログラムを画像処理プログラムと呼ぶ。そして、ＣＰＵが上記記憶媒体に記憶されている画像処理プログラムを読み出して、情報の加工・演算処理を実行することにより、上述の画像処理装置と同様の処理を実現させる。
【００８１】
ここで、コンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、この画像処理プログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該画像処理プログラムを実行するようにしても良い。
【００８２】
本発明は、上述した一実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。例えば、上述した一実施の形態では、基準画像と対象画像のそれぞれを縮小することにより、位置合わせ用基準画像と位置合わせ用対象画像を生成し、生成した位置合わせ用画像を用いて、動きベクトルを求めた。しかし、位置合わせ用画像を生成せずに、基準画像および対象画像を用いて、動きベクトルを求めるようにしてもよい。
【００８３】
上述した一実施の形態では、画像間の位置ずれ量を算出するために用いる動きベクトルとして、各動きベクトル測定領域で求められた複数の動きベクトルの中から、信頼度が高い動きベクトルを選択し、選択した複数の動きベクトルの中で最も頻度の高い動きベクトルを選択した（図２のステップＳ６０の処理）。しかし、信頼度が所定のしきい値以上である信頼度の高い動きベクトルを用いるようにしてもよい（結果として、全ての動きベクトルを用いることもあり得る）。画素精度で補正ベクトルを算出するために、例えば、信頼度の高い動きベクトルの平均ベクトルを算出して用いてもよいし、信頼度の高い複数の動きベクトルを、信頼度に応じて重み付け加算して得られるベクトルを用いてもよい。サブピクセル精度で補正ベクトルを算出する場合には、信頼度の高い複数の動きベクトルのそれぞれに対して、サブピクセル精度の動きベクトルを求め、求めたサブピクセル精度の動きベクトルの平均ベクトルを算出して用いてもよいし、求めたサブピクセル精度の動きベクトルを、信頼度に応じて重み付け加算して得られるベクトルを用いてもよい。
【００８４】
図１に示す構成では、フレーム加算の例を示したが、画像間の位置ずれ量を用いて、基準画像に対する対象画像の位置あわせを行う動画ブレ補正を行う構成としてもよい。動画ブレ補正では、位置ずれ量を用いて、対象画像が基準画像に対して、ブレが少なくなるような補正を行う。
【００８５】
上述したように、特定の被写体は人物の顔に限定されることはなく、例えば、花、車などのようなものであってもよい。特定の被写体としては、特に、画像間の位置ずれ量を精度良く求めることができるものが好ましい。
【００８６】
動きベクトル測定領域設定部１０３は、特定被写体領域検出部１１３による特定被写体の検出結果に応じて、複数の動きベクトル測定領域を画像上に設定した。しかし、特定被写体の検出結果に関係なく、図３（ａ）に示すように、画像全体に複数の動きベクトル測定領域を設定するようにしてもよい。この場合、動きベクトル算出部１０４で、各動きベクトル測定領域における動きベクトルを算出した後、利用領域選択部１０５で、特定被写体の検出結果に応じて、補正ベクトルを算出するために用いる動きベクトルを選択する。具体的には、特定被写体が検出された場合、検出された特定被写体上の動きベクトルを選択し、特定被写体が検出されなかった場合には、全ての動きベクトルを選択する。これにより、特定被写体が検出されなかった場合、選択される動きベクトルは図５（ａ）に示すようなものとなり、特定被写体が検出された場合、選択される動きベクトルは図６（ａ）に示すようなものとなる。この後の処理については、上述した一実施の形態の処理と同じである。
【００８７】
実施の形態に係る画像処理装置は、複数の動きベクトル測定領域の各々において求められた動きベクトルおよび各動きベクトルの信頼度に基づいて、高信頼度の動きベクトルを選択したが、変形例として、複数の動きベクトル測定領域の各々において求められた全部または一部の動きベクトルをそのまま、複数枚の画像間の位置ずれ量の算出のために採用してもよい。例えば、高信頼度の動きベクトルを測定可能な動きベクトル測定領域の場所（例えば、画像の中央部分になる傾向が高い）があらかじめ判明しているという状況下においては、その場所に位置する動きベクトル測定領域において求められる高信頼度の動きベクトルをそのまま画像間の位置ずれ量の算出のために採用してもよい。
【図面の簡単な説明】
【００８８】
【図１】一実施の形態における画像処理装置の構成を示すブロック図である。
【図２】一実施の形態における画像処理装置によって行われる処理の処理手順を示すフローチャートである。
【図３】図３（ａ）は、特定被写体が検出されなかった場合に、位置合わせ用対象画像に設定される動きベクトル測定領域の一例を示す図であり、図３（ｂ）は、位置合わせ用基準画像上に設定された探索領域を示す図である。
【図４】特定被写体が検出された場合に、位置合わせ用対象画像に設定される動きベクトル測定領域の一例を示す図である。
【図５】図５（ａ）は、特定被写体が検出されなかった場合に、各測定領域において求められた動きベクトルの一例を示す図、図５（ｂ）は、信頼度の低い動きベクトルを除外して、信頼度の高い動きベクトルを選択した様子の一例を示す図である。
【図６】図６（ａ）は、特定被写体が検出された場合に、特定被写体上に設定された各測定領域において求められた動きベクトルの一例を示す図、図６（ｂ）は、信頼度の低い動きベクトルを除外して、信頼度の高い動きベクトルを選択した様子の一例を示す図である。
【図７】特定被写体の検出の有無に応じて、補正ベクトルを算出する際の算出精度を決定する方法を分かりやすく表した図である。
【図８】一致度が最も大きいことを示す一致指標値の画素位置を中心とする上下左右の４近傍の画素位置を示す図である。
【図９】図９（ａ）は、等角直線フィッティングを用いてサブピクセル精度の動きベクトルを求める方法を示す図であり、図９（ｂ）は、パラボラフィッティングを用いてサブピクセル精度の動きベクトルを求める方法を示す図である。
【符号の説明】
【００８９】
１００…メインコントローラ
１０１…撮像部
１０２…フレームメモリ
１０３…動きベクトル測定領域設定部
１０４…動きベクトル算出部
１０５…利用領域選択部
１０５ａ…動きベクトル信頼度算出部
１０５ｂ…動きベクトル統合処理部
１０８…補正ベクトル算出精度決定部
１０９…フレーム加算部
１１０…補正ベクトル算出部
１１２…位置合わせ画像生成部
１１３…特定被写体領域検出部
【図１】
2009302731.tif 000011
【図２】
2009302731.tif 000012
【図３】
2009302731.tif 000013
【図５】
2009302731.tif 000014
【図６】
2009302731.tif 000015
【図８】
2009302731.tif 000016
【図９】
2009302731.tif 000017
【図４】
2009302731.tif 000018
【図７】
2009302731.tif 000019