(57)【要約】【課題】小型・低コストでありながら、正確で応答性の良い手振れ補正を行うことができるようにする。【解決手段】入力画像ＹＣ１，ＹＣ２を複数段階に亘って段階的に縮小し、より下層レベルの縮小画像を使って大まかに求めた大域移動量を利用して、上層レベルで局所移動量を求める際の走査ブロックを構築することにより、２枚目の画像上に設定する走査ブロックをそれほど大きくしなくても、１枚目の画像上に設定した参照ブロック内の画像と相関がとれるようにする。走査ブロックの大きさを小さくできることにより、その走査ブロック内に同じあるいは類似の絵柄が複数存在する確率が小さくなり、参照ブロックの画像と走査ブロックの画像とが誤った位置でマッチングしたと判断される不都合が抑制される。また、走査対象となる範囲が狭くなるので演算量が減り、手振れ補正の応答性が向上する。【選択図】        図１
2004343483.tif 000002
【特許請求の範囲】
【請求項１】
撮像手段により一定時間内に撮像して生成された複数の画像データのそれぞれについて、画像を１段階または２段階以上に亘って縮小することにより、元画像も含めて複数レベルの画像データを生成する画像縮小手段と、
上記撮像手段の撮像により生成された複数の画像データのうち少なくとも１つの基準画像データおよびこれから上記画像縮小手段により生成された基準縮小画像データを含む複数レベルの画像データのそれぞれ毎に、当該画像中から所定の条件を満たす特徴点を抽出する特徴点抽出手段と、
上記画像縮小手段により生成された複数レベルの画像データの最下層レベルから最上層レベルに向かって順に、上記特徴点抽出手段により抽出された特徴点を利用して、基準画像とそれ以外の画像との相互相関をとることによって画像移動量を求める画像移動量検出手段と、
上記撮像手段の撮像により生成された最上層レベルにおける上記基準画像データとそれ以外の画像データとを、上記画像移動量検出手段により求められた上記画像移動量の分だけずらして合成する画像合成手段とを備えたことを特徴とする手振れ補正装置。
【請求項２】
上記画像移動量検出手段は、上記画像縮小手段により生成された最下層レベルの縮小画像について、上記基準縮小画像データとそれ以外の縮小画像データとの相互相関をとることによって上記最下層レベルでの画像移動量を求める第１の画像移動量検出手段と、
上記最下層レベル以外の各レベルの画像について、上記基準画像データおよび上記基準縮小画像データ上では上記特徴点抽出手段により抽出された特徴点の周囲に所定サイズの参照ブロックを設定し、それ以外の画像データ上では上記特徴点に相当する位置から下層レベルで求められた画像移動量の分だけずれた位置の周囲に上記参照ブロックより大きい所定サイズの走査ブロックを設定し、上記参照ブロックの画像データと上記走査ブロックの画像データとの相互相関をとることによって各レベルでの画像移動量を求め、上記最上層レベルで求めた画像移動量を最終的な画像移動量として出力する第２の画像移動量検出手段とを備えたことを特徴とする請求項１に記載の手振れ補正装置。
【請求項３】
上記特徴点抽出手段は、上記複数レベルの画像データのそれぞれ毎に、１つの画像データから上記特徴点を複数抽出し、
上記第２の画像移動量検出手段は、上記最下層レベル以外の各レベルの画像について、上記特徴点抽出手段により抽出された複数の特徴点のそれぞれ毎に局所的な画像移動量を求め、その中から選択した１つの局所移動量をそのレベルでの画像移動量とすることを特徴とする請求項２に記載の手振れ補正装置。
【請求項４】
上記特徴点抽出手段は、上記複数レベルの画像データのそれぞれ毎に、１つの画像データから上記特徴点を複数抽出し、
上記第２の画像移動量検出手段は、上記最下層レベル以外の各レベルの画像について、上記特徴点抽出手段により抽出された複数の特徴点のそれぞれ毎に局所的な画像移動量を求め、当該求めた複数の画像移動量の全部または一部を用いて所定の演算を行うことによって算出した１つの局所移動量をそのレベルでの画像移動量とすることを特徴とする請求項２に記載の手振れ補正装置。
【請求項５】
上記特徴点抽出手段は、上記複数レベルの画像データのそれぞれ毎に、上記１つの画像データに対して所定サイズの分割ブロック単位で隣接ピクセル差分積算演算を行い、得られた差分積算データに対して、中央値に大きな重みをかけるとともに周囲値に小さな重みをかけるように係数が設定された所定サイズのフィルタの走査処理を１回以上行い、それにより得られたデータ値の大きいブロックから順に、対応する座標を複数の特徴点として抽出することを特徴とする請求項３または４に記載の手振れ補正装置。
【請求項６】
撮像手段により一定時間内に撮像して生成された複数の画像データのうち少なくとも１つの基準画像データとそれ以外の１以上の画像データとの相互相関をとることにより、上記１以上の画像データ毎に上記基準画像データに対する画像移動量を求める画像移動量検出手段と、
上記基準画像データとそれ以外の上記１以上の画像データとを、上記画像移動量検出手段により求められた画像移動量の分だけそれぞれずらして合成する画像合成手段とを備えたことを特徴とする手振れ補正装置。
【請求項７】
上記撮像手段の撮像により生成された複数の画像データのうち少なくとも１つの基準画像データから所定の条件を満たす特徴点を抽出する特徴点抽出手段を備え、
上記画像移動量検出手段は、上記基準画像データ上では上記特徴点抽出手段により抽出された特徴点の周囲に所定サイズの参照ブロックを設定し、それ以外の上記１以上の画像データ上では上記特徴点に相当する位置の周囲に上記参照ブロックより大きい所定サイズの走査ブロックを設定し、上記参照ブロックの画像データと上記走査ブロックの画像データとの相互相関をとることによって上記画像移動量を求めることを特徴とする請求項６に記載の手振れ補正装置。
【請求項８】
撮像手段により一定時間内に撮像して生成された複数の画像データを入力し、当該入力したそれぞれの画像データについて、画像を１段階または２段階以上に亘って縮小することにより、元画像も含めて複数レベルの画像データを生成する画像縮小ステップと、
上記入力した複数の画像データのうち少なくとも１つを基準画像データとし、これを縮小して生成された基準縮小画像データと上記基準画像データとを含む複数レベルの画像データのそれぞれ毎に、当該画像中から所定の条件を満たす特徴点を抽出する特徴点抽出ステップと、
上記複数レベルの画像データの最下層レベルから最上層レベルに向かって順に、上記基準画像データとそれ以外の画像データとの相互相関および上記基準縮小画像データとそれ以外の縮小画像データとの相互相関をとることにより各レベルでの画像移動量を求め、上記最下層レベル以外のレベルで上記画像移動量を求める際には、自身より下層レベルで求められた画像移動量の分だけ上記特徴点に相当する位置からずれた位置の周囲に、相互相関をとる際の走査対象とする所定サイズの走査ブロックを設定して上記画像移動量を求め、上記最上層レベルで求めた画像移動量を最終的な画像移動量として出力する画像移動量検出ステップと、
上記入力した最上層レベルにおける上記基準画像データとそれ以外の画像データとを上記最終的な画像移動量の分だけずらして合成する画像合成ステップとを有することを特徴とする手振れ補正方法。
【請求項９】
上記特徴点抽出ステップでは、上記複数レベルの画像データのそれぞれ毎に、１つの画像データから上記特徴点を複数抽出し、
上記画像移動量検出ステップでは、上記最下層レベル以外の各レベルの画像について、上記複数の特徴点のそれぞれ毎に局所的な画像移動量を求め、その中から選択した１つの局所移動量をそのレベルでの画像移動量とすることを特徴とする請求項８に記載の手振れ補正方法。
【請求項１０】
上記特徴点抽出ステップでは、上記複数レベルの画像データのそれぞれ毎に、１つの画像データから上記特徴点を複数抽出し、
上記画像移動量検出ステップでは、上記最下層レベル以外の各レベルの画像について、上記複数の特徴点のそれぞれ毎に局所的な画像移動量を求め、当該求めた複数の画像移動量の全部または一部を用いて所定の演算を行うことによって算出した１つの局所移動量をそのレベルでの画像移動量とすることを特徴とする請求項８に記載の手振れ補正方法。
【請求項１１】
上記特徴点抽出ステップでは、上記複数レベルの画像データのそれぞれ毎に、上記１つの画像データに対して所定サイズの分割ブロック単位で隣接ピクセル差分積算演算を行い、得られた差分積算データに対して、中央値に大きな重みをかけるとともに周囲値に小さな重みをかけるように係数が設定された所定サイズのフィルタの走査処理を１回以上行い、それにより得られたデータ値の大きいブロックから順に、対応する座標を複数の特徴点として抽出することを特徴とする請求項９または１０に記載の手振れ補正方法。
【請求項１２】
撮像手段により一定時間内に撮像して生成された複数の画像データのうち少なくとも１つの基準画像データとそれ以外の１以上の画像データとの相互相関をとることにより、上記１以上の画像データ毎に上記基準画像データに対する画像移動量を求める画像移動量検出ステップと、
上記基準画像データとそれ以外の上記１以上の画像データとを上記画像移動量の分だけそれぞれずらして合成する画像合成ステップとを有することを特徴とする手振れ補正方法。
【請求項１３】
撮像手段により一定時間内に撮像して生成された複数の画像データのそれぞれについて、画像を１段階または２段階以上に亘って縮小することにより、元画像も含めて複数レベルの画像データを生成する画像縮小手段と、
上記撮像手段の撮像により生成された複数の画像データのうち少なくとも１つの基準画像データおよびこれから上記画像縮小手段により生成された基準縮小画像データを含む複数レベルの画像データのそれぞれ毎に、当該画像中から所定の条件を満たす特徴点を抽出する特徴点抽出手段と、
上記画像縮小手段により生成された複数レベルの画像データの最下層レベルから最上層レベルに向かって順に、上記特徴点抽出手段により抽出された特徴点を利用して、基準画像とそれ以外の画像との相互相関をとることによって画像移動量を求める画像移動量検出手段とを備えたことを特徴とする手振れ検出装置。
【請求項１４】
上記画像移動量検出手段は、上記画像縮小手段により生成された最下層レベルの縮小画像について、上記基準縮小画像データとそれ以外の縮小画像データとの相互相関をとることによって上記最下層レベルでの画像移動量を求める第１の画像移動量検出手段と、
上記最下層レベル以外の各レベルの画像について、上記基準画像データおよび上記基準縮小画像データ上では上記特徴点抽出手段により抽出された特徴点の周囲に所定サイズの参照ブロックを設定し、それ以外の画像データ上では上記特徴点に相当する位置から下層レベルで求められた画像移動量の分だけずれた位置の周囲に上記参照ブロックより大きい所定サイズの走査ブロックを設定し、上記参照ブロックの画像データと上記走査ブロックの画像データとの相互相関をとることによって各レベルでの画像移動量を求め、上記最上層レベルで求めた画像移動量を最終的な画像移動量として出力する第２の画像移動量検出手段とを備えたことを特徴とする請求項１３に記載の手振れ検出装置。
【請求項１５】
上記特徴点抽出手段は、上記複数レベルの画像データのそれぞれ毎に、１つの画像データから上記特徴点を複数抽出し、
上記第２の画像移動量検出手段は、上記最下層レベル以外の各レベルの画像について、上記特徴点抽出手段により抽出された複数の特徴点のそれぞれ毎に局所的な画像移動量を求め、その中から選択した１つの局所移動量をそのレベルでの画像移動量とすることを特徴とする請求項１４に記載の手振れ検出装置。
【請求項１６】
上記特徴点抽出手段は、上記複数レベルの画像データのそれぞれ毎に、１つの画像データから上記特徴点を複数抽出し、
上記第２の画像移動量検出手段は、上記最下層レベル以外の各レベルの画像について、上記特徴点抽出手段により抽出された複数の特徴点のそれぞれ毎に局所的な画像移動量を求め、当該求めた複数の画像移動量の全部または一部を用いて所定の演算を行うことによって算出した１つの局所移動量をそのレベルでの画像移動量とすることを特徴とする請求項１４に記載の手振れ検出装置。
【請求項１７】
上記特徴点抽出手段は、上記複数レベルの画像データのそれぞれ毎に、上記１つの画像データに対して所定サイズの分割ブロック単位で隣接ピクセル差分積算演算を行い、得られた差分積算データに対して、中央値に大きな重みをかけるとともに周囲値に小さな重みをかけるように係数が設定された所定サイズのフィルタの走査処理を１回以上行い、それにより得られたデータ値の大きいブロックから順に、対応する座標を複数の特徴点として抽出することを特徴とする請求項１５または１６に記載の手振れ検出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は手振れ補正装置および方法、手振れ検出装置に関し、特に、撮像装置に加わる手振れに起因する撮像画像の画質低下を防ぐための手振れ補正機能に関するものである。
【０００２】
【従来の技術】
スチルカメラやビデオカメラ等の撮像装置の多くは、カメラに加わる手振れによる画質の低下を防ぐために、手振れ補正機能を備えている。撮影時におけるカメラの手振れは、周波数として通常１Ｈｚから１５Ｈｚ程度の範囲内の振動である。このような手振れを起こしても像ブレの無い画像を撮影可能とするための手振れ補正機能の要素技術としては、手振れを検出する技術と、手振れを補正する技術との２つがある。
【０００３】
前者の手振れを検出する技術は、動きベクトル検出方式と角速度検出方式とに大別される。動きベクトル検出方式は、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）等で撮像された画像データを電子的に処理してカメラの動きベクトルを検出する方式である。一方、角速度検出方式は、ジャイロセンサなどを使って角速度を検出する方式である。電子的に手振れを検出する手法としては、時間差をおいて撮像した２つの画像データの相互相関をとることによって像ブレ（画像移動量）を求める方法が一般的である（例えば、特許文献１参照）。
【０００４】
【特許文献１】
特開平１０−１７３９９２号公報
【０００５】
一般に、複数の画像データの相互相関を見ることによって画像移動量を求める場合、基準の画像中から切り出した所定サイズのブロック（以下、参照ブロックと呼ぶ）が、比較対象の画像中でどこに移動したかを検出する手法がとられる。この場合、参照ブロックの画像を比較対象の画像上で走査しながら、各走査位置での両画像の類似度を計算し、類似度が最大となった走査位置に参照ブロックが移動したと判断する。走査範囲は比較対象画像の全体としても良いが、手振れ量として起こり得る範囲を想定して、参照ブロックよりも大きいサイズの走査ブロックが設定され、その走査ブロックの内部でのみ走査が行われることが多い。
【０００６】
また、後者の手振れを補正する技術は、光学式と電子式とに大別される。光学式手振れ補正は、検出されたカメラの動きに応じて光軸を物理的に変位させる手法である。光軸を変位させるための手法としては、レンズ光学系の一部に配置したシフトレンズを手振れ量に応じて動かすシフト方式と、手振れ量に応じて可変プリズムを変形させるプリズム方式とがある。
【０００７】
一方、電子式手振れ補正は、実際の撮像エリアよりも大きなＣＣＤを用意し、その一部を撮像エリアとして使用する。すなわち、検出されたカメラの動きに応じてＣＣＤの画像切り出しエリア（撮像エリア）を上下左右に動かすことによって手振れを補正する手法である。
【０００８】
【発明が解決しようとする課題】
しかしながら、手振れを検出する技術として角速度検出方式を用いたり、手振れを補正する技術として光学式を用いたりすると、ジャイロやアクチュエータ等のメカニズムを備える必要がある。そのため、カメラが大型化するばかりでなく、製品を実現する上でのコストが高くなるという問題があった。
【０００９】
また、手振れを検出する技術として動きベクトル検出方式を用い、かつ、手振れを補正する技術として電子式を用いると、ソフトウェア処理だけでカメラの動きを検出して手振れを補正できるため、製品の小型化に適している。しかしながら、この場合は手振れの補正精度と処理速度とが電子的な処理内容に大きく依存する。
【００１０】
一般的に、補正精度を上げようとすると電子的な処理内容が複雑になり、処理負荷が重くなって処理速度が低下してしまう。逆に、処理速度を上げるために処理内容を簡素化すると画像移動量の誤検出などが多くなり、補正精度が低下してしまう。特に、画像移動量の検出を少ない演算量で正確に行うことは極めて困難であるという問題があった。
【００１１】
画像移動量の誤検出が発生する１つの要因として、複数画像の相互相関をとるという簡易手法を用いていることが考えられる。例えば、被写体中の複数箇所に同様の模様が存在する場合には、撮像された画像データの中に同様のパターンが何箇所にも出現する。この場合は、画像移動量を単純なマッチング演算で検出しようとしても、マッチングしたと見られる箇所が複数得られてしまい、正しいマッチング状態がどれであるかを求めることができない。
【００１２】
これに対して、マッチング演算より複雑な演算手法を用いて画像移動量を求めることも考えられる。しかしながら、最近のＣＣＤは画素数が飛躍的に多くなっており、これにより撮像される画像のデータ量も非常に大きくなっている。そのため、この画像データを対象とした演算には多くの時間がかかってしまう。演算時間が長くなると、その分手振れ検出の応答性が悪くなる。演算時のメモリ空間が大きく高速処理が可能なＣＰＵを用いれば、手振れ検出の応答性をある程度は改善できるが、コストが増大してしまうという問題があった。
【００１３】
また、暗所での撮影時など被写体輝度が小さくなるようなケースでは、被写体を照明するためのストロボ光を投光して撮影することが多い。しかし、フラッシュ撮影が禁止されている場所などでは、ストロボ光を投光することができない。また、被写体がカメラから遠くにある場合には、ストロボ光が被写体に届かず、被写体輝度を上げることができない。
【００１４】
これに対して、暗所で投光せずに撮像された画像データのゲインを上げることによって感度を大きくする手法も提案されている。しかしながら、暗所で撮像された画像データはＳ／Ｎ比が低いため、単純に画像データのゲインを上げただけでは、ノイズのゲインも同時に大きくなってしまい、良質な画像を得ることができないという問題があった。
【００１５】
本発明は、このような問題を解決するために成されたものであり、小型・低コストでありながら、正確で応答性の良い手振れ補正を行うことができるようにすることを目的とする。
また、本発明は、被写体輝度が小さくなる暗所での撮影時であっても、手振れを正確に検出して補正でき、かつ、明るく良質な画像を得ることができるようにすることを目的とする。
【００１６】
【課題を解決するための手段】
本発明の手振れ補正装置は、撮像手段により一定時間内に撮像して生成された複数の画像データのそれぞれについて、画像を１段階または２段階以上に亘って縮小することにより、元画像も含めて複数レベルの画像データを生成する画像縮小手段と、撮像手段の撮像により生成された複数の画像データのうち少なくとも１つの基準画像データおよびこれから画像縮小手段により生成された基準縮小画像データを含む複数レベルの画像データのそれぞれ毎に、当該画像中から所定の条件を満たす特徴点を抽出する特徴点抽出手段と、画像縮小手段により生成された複数レベルの画像データの最下層レベルから最上層レベルに向かって順に、特徴点抽出手段により抽出された特徴点を利用して、基準画像とそれ以外の画像との相互相関をとることによって画像移動量を求める画像移動量検出手段と、撮像手段の撮像により生成された最上層レベルにおける基準画像データとそれ以外の画像データとを、画像移動量検出手段により求められた画像移動量の分だけずらして合成する画像合成手段とを備えたことを特徴とする。
【００１７】
本発明の他の態様では、上記特徴点抽出手段は、複数レベルの画像データのそれぞれ毎に、１つの画像データに対して所定サイズの分割ブロック単位で隣接ピクセル差分積算演算を行い、得られた差分積算データに対して、中央値に大きな重みをかけるとともに周囲値に小さな重みをかけるように係数が設定された所定サイズのフィルタの走査処理を１回以上行い、それにより得られたデータ値の大きいブロックから順に、対応する座標を複数の特徴点として抽出することを特徴とする。
【００１８】
【発明の実施の形態】
（第１の実施形態）
以下、本発明の一実施形態を図面に基づいて説明する。図１は、第１の実施形態による手振れ補正装置の概略構成を示す機能ブロック図である。また、図２は、第１の実施形態による手振れ補正装置を適用したデジタルカメラ１０の全体構成を示すブロック図である。
【００１９】
図２に示すように、デジタルカメラ１０は、シャッタ１ａ、レンズ１ｂ、アイリス１ｃを備えた光学系１と、ＣＣＤあるいはＣＭＯＳ等の撮像素子２と、プログラマブルゲインアンプ（ＰＧＡ）３と、Ａ／Ｄ変換器４と、信号処理部５と、手振れ補正部６と、自動露出調整および自動焦点調整の処理を行うＡＥ／ＡＦ処理部７と、デジタルカメラ１０の全体を制御するコントローラ８とを備えて構成されている。
【００２０】
このように構成されたデジタルカメラ１０において、光学系１への入射光はシャッタ１ａ、レンズ１ｂおよびアイリス１ｃを介して撮像素子２にて結像される。撮像素子２では、結像した入射光を光電変換して、当該入射光に応じたアナログの撮像信号を生成する。ここで生成された撮像信号は、ＰＧＡ３でゲインが上げられた後、Ａ／Ｄ変換器４に供給されてデジタルの画像データに変換される。このように、ＰＧＡ３でアナログ撮像信号のゲインを上げることにより、Ａ／Ｄ変換器４における量子化により階調が粗くなる弊害を少なくすることができる。
【００２１】
Ａ／Ｄ変換器４で得られた画像データは、信号処理部５に供給される。信号処理部５は、入力された画像データに対して色補間処理、色補正処理、ＲＧＢ（赤、緑、青の３原色信号）からＹＣｂＣｒ（輝度信号および青の色差信号と赤の色差信号）への変換処理等を含む各種信号処理を行う。手振れ補正部６は図１のように構成され、信号処理部５から受け取った輝度データをもとに手振れ補正を行いながら画像を合成し、合成画像を出力する。
【００２２】
以上の構成において、光学系１および撮像素子２により撮像手段が構成される。本実施形態の撮像手段は、図示しないシャッタボタンが押されたときに、一定時間内に複数枚の画像を撮像する。Ａ／Ｄ変換器４は、複数の撮像信号を順次Ａ／Ｄ変換する。また、信号処理部５は、Ａ／Ｄ変換された複数の画像データを輝度信号（輝度データ）と色差信号（色差データ）とに分離し、手振れ補正部６に順次出力する。
【００２３】
図１に示すように、本実施形態の手振れ補正装置（図２に示した手振れ補正部６）は、画像データ入力部１１、画像縮小部１２、特徴点抽出部１３、大域移動量検出部１４、局所移動量検出部１５および画像合成部１６を備えて構成されている。
【００２４】
画像データ入力部１１は、上述の撮像手段により一定時間内に撮像して生成された複数（例えば２枚）の画像データＹＣ１，ＹＣ２を信号処理部５から入力する。画像縮小部１２は、画像データ入力部１１により入力された複数の画像データＹＣ１，ＹＣ２のそれぞれについて、輝度データを１段階以上に亘って段階的に縮小することにより、元画像も含めて複数レベルの輝度データを生成する。
【００２５】
例えば、入力された輝度データを３回に亘って順次１／２倍ずつ縮小していくことにより、１倍（元画像）、１／２倍、１／４倍、１／８倍の４レベルの輝度データを生成する。このような縮小処理を行うことにより、１枚目の入力画像ＹＣ１から４レベル分の輝度データＹ１−１〜Ｙ１−４が生成され、２枚目の入力画像ＹＣ２から４レベル分の輝度データＹ２−１〜Ｙ２−４が生成される。以下では、最上層レベルを第１レベル、最下層レベルを第４レベルとする。
【００２６】
ここで行う縮小処理の内容については特に限定しないが、好ましくは、以下に説明する平均縮小処理を行う。図３は、平均縮小処理の内容を説明するための図である。図３に示すように、平均縮小処理では、縦２画素×横２画素の隣接４画素を１ブロックとして、当該ブロック単位で輝度データの平均をとって縮小画像の輝度データとする。例えば、ある１つのブロックを構成する４画素Ｐ１〜Ｐ４の輝度データを平均演算して縮小画像における画素Ｐ１’の輝度データとする。
【００２７】
特徴点抽出部１３は、画像データ入力部１１により入力された複数の画像データのうち少なくとも１つの画像データ（これを基準画像データとする）およびこれから画像縮小部１２により生成された縮小画像データ（これを基準縮小画像データとする）を含む複数レベルの画像データのそれぞれ毎に、輝度データに関して所定の条件を満たす特徴点を各画像中から抽出する。
【００２８】
例えば、１枚目の入力画像ＹＣ１を基準画像とした場合、特徴点抽出部１３は、４レベルの輝度データＹ１−１〜Ｙ１−４のそれぞれから所定の条件を満たす特徴点を抽出する。ここでは、絵柄が比較的複雑な点で、かつ、それと同じ絵柄が周囲に存在していない点を特徴点として抽出する。図４は、特徴点の抽出について説明するための図である。図４に示すように、無模様の背景上に家が描画された画像を対象として特徴点を抽出すると、例えば図４中に示す７個の特徴点Ｋ１〜Ｋ７が抽出される。このような特徴点を抽出するための詳細な処理内容は後述する。
【００２９】
大域移動量検出部１４は、本発明の第１の画像移動量検出手段に相当するものである。この大域移動量検出部１４は、画像縮小部１２により生成された第４レベル（１／８倍）の画像の輝度データＹ１−４，Ｙ２−４を用いて、当該２つの輝度データＹ１−４，Ｙ２−４（基準縮小画像データとそれ以外の縮小画像データ）の相互相関をとることによって第４レベルでの画像移動量を求める。ここで求めた大域移動量は、局所移動量検出部１５に供給され、上層レベルでの局所移動量の検出に利用される。
【００３０】
図５は、大域移動量の意味を説明するための図である。図５に示すように、手振れが生じることによって、１枚目の画像ＹＣ１と２枚目の画像ＹＣ２とで家の撮像位置がずれた場合、第４レベル上でそれがどの程度ずれているかを表すものが大域移動量である。すなわち、１枚目の１／８縮小画像を基準として、１枚目の１／８縮小画像中に描かれている家と２枚目の１／８縮小画像中に描かれている家とをほぼ一致させるために必要な１枚目の１／８縮小画像の移動量が、大域移動量となる。
【００３１】
局所移動量検出部１５は、本発明の第２の画像移動量検出手段に相当するものである。この局所移動量検出部１５は、第４レベル以外の各レベル（１倍、１／２倍、１／４倍）の画像の輝度データについて、１枚目の画像と２枚目の画像との相互相関をとることによって、画像中に含まれる複数の特徴点毎に局所的な画像移動量を求める。そして、特徴点毎に求めた複数の局所移動量の中から尤もらしいものを１つ選択し、各レベルでの局所移動量を１つ決定する。
【００３２】
図６は、局所移動量の意味を説明するための図である。図６に示すように、手振れが生じることによって、１枚目の画像ＹＣ１と２枚目の画像ＹＣ２とで特徴点の位置がずれた場合、第３〜第１レベル上でそれがどの程度ずれているかを表すものが局所移動量である。すなわち、１枚目の全体画像中に含まれる特徴点の周囲の局所的な画像を基準として、当該局所的な画像を１枚目と２枚目とでほぼ一致させるために必要な１枚目の局所的な画像の移動量が局所移動量となる。
【００３３】
局所移動量検出部１５は、このような局所移動量を求める際に、１枚目の画像上では、特徴点抽出部１３により抽出された特徴点Ｋ１〜Ｋ７を中心としてその周囲に所定サイズの参照ブロックを設定する。一方、２枚目の画像上では、参照ブロックより大きい所定サイズの走査ブロックを設定する（走査ブロックの設定位置については後述する）。そして、１枚目の画像中に設定された参照ブロックの輝度データと、２枚目の画像中に設定された走査ブロックの輝度データとの相互相関をとることにより、各特徴点Ｋ１〜Ｋ７毎に局所移動量を求める。
【００３４】
図６には、１つの特徴点Ｋ２に関する局所移動量が示されている。図４のように７個の特徴点Ｋ１〜Ｋ７が抽出された場合、局所移動量はそれぞれの特徴点毎に７個求められる。本実施形態では、これら７個の局所移動量の中から、類似頻度が最も高いものを１つ選択する。類似頻度が最も高いものとは、所定の誤差範囲内にある互いに類似の局所移動量は全て同じグループの局所移動量とみなした場合の最大グループに相当する局所移動量のことを言う。
【００３５】
類似頻度が同じ局所移動量が複数存在する場合は、その中から、同値頻度が最も高いものを１つ選択する。同値頻度が最も高いものとは、完全同一の局所移動量が最も多く含まれているグループの局所移動量のことを言う。もし、同値頻度も同じであった場合には、同値頻度が最も高いものの中からゼロベクトルに最も近いものを選択する。
【００３６】
なお、ここでは複数の特徴点毎に求めた複数の局所移動量の中から尤もらしいものを１つ選択しているが、当該複数の画像移動量の全部または一部を用いて所定の演算を行い、これによって算出した１つの局所移動量を各レベルでの局所移動量として決定するようにしても良い。ここで、所定の演算については、様々な内容の演算を適用することが可能である。例えば、複数の画像移動量の平均ベクトルを求める演算を用いることが可能である。
【００３７】
図７は、大域移動量と局所移動量の利用関係を示す図である。図７に示すように、第４レベルの画像に関しては、大域移動量検出部１４により大域移動量が求められる。この大域移動量は、１階層上の第３レベルの画像に関して局所移動量を求める処理において走査ブロックを設定する際に利用される。
【００３８】
一方、第３レベル〜第１レベルの画像に関しては、局所移動量検出部１５により局所移動量が求められる。第３レベルおよび第２レベルで求めた局所移動量は、それより上層レベル（第２レベルおよび第１レベル）で局所移動量を求める処理において走査ブロックを設定する際に利用される。また、第１レベルで求めた局所移動量は、最終的に求める手振れ量として画像合成部１６に供給される。
【００３９】
画像合成部１６は、画像データ入力部１１により入力された１枚目の画像データＹＣ１に対して２枚目の画像データＹＣ２を、局所移動量検出部１５により求められた最終的な手振れ量の分だけ逆方向にずらして合成し、手振れ補正された合成画像ＹＣを生成する。合成の方法は加算合成、平均合成など各種態様が適用できるが、本実施形態では平均合成が好ましい。アフィン変換などの処理を行った後に合成するようにしても良い。
【００４０】
ここで、上述した走査ブロックの設定位置について説明する。局所移動量検出部１５は、第３レベルの画像に関して局所移動量を求める際には、２枚目の画像上において、１枚目の画像中に含まれる特徴点Ｋ１〜Ｋ７に相当する位置から、第４レベルで求められた大域移動量の分だけずれた位置を中心として、その周囲に参照ブロックより大きい所定サイズの走査ブロックを設定する。なお、これとは違う方法によって、１枚目の画像上に設定された参照ブロックの位置から大域移動量の分だけずれた位置に所定サイズの走査ブロックを設定するようにしても良い。
【００４１】
また、第２レベルおよび第１レベルの画像に関して局所移動量を求める際は、２枚目の画像上において、１枚目の画像中に含まれる特徴点Ｋ１〜Ｋ７に相当する位置から、１つ下層のレベルで求められた局所移動量の分だけずれた位置を中心として、その周囲に参照ブロックより大きい所定サイズの走査ブロックを設定する。なお、これとは違う方法によって、１枚目の画像上に設定された参照ブロックの位置から、下層レベルで求められた局所移動量の分だけずれた位置に、所定サイズの走査ブロックを設定するようにしても良い。
【００４２】
ところで、第４レベルで大域移動量を求める際には、１／８縮小画像どうしの相関をとっているので、図５に示したように両画像中の家の絵柄をほぼ一致させることができるが、これを第１レベルの画像に換算すると、８画素未満の誤差がある。すなわち、大域移動量には８画素未満の誤差が含まれている。しかし、大まかには合っている。
【００４３】
本実施形態では、この大まかに合っている画像移動量を利用して上層の第３レベルで走査ブロックの位置を決めている。すなわち、大域移動量に基づいて、参照ブロックと同じ画像があると予想される位置に走査ブロックを設定している。これにより、走査ブロックはそれほど大きくしなくても、走査ブロック内の画像は参照ブロック内の画像とほぼ一致し、参照ブロックの画像と相関をとることができる。
【００４４】
同様に、第３レベルで求めた局所移動量には、４画素未満の誤差が含まれているが、これも大まかには合っている。しかも、第４レベルに比べてその誤差量は半分に低減されている。本実施形態では、この第３レベルで求めた画像移動量を利用して更に上層の第２レベルで走査ブロックの位置を決めている。同様に、第２レベルで求めた画像移動量を利用して最上層の第１レベルで走査ブロックの位置を決め、第１レベルで求めた局所移動量を求める手振れ量としている。第１レベルで求められる局所移動量には誤差が含まれておらず、正確な手振れ量が求められる。
【００４５】
図８は、本実施形態による手振れ補正装置の構成をより詳細に示す機能ブロック図である。なお、この図８において、図１に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。図８に示すように、大域移動量検出部１４は、参照ヒストグラム生成部２１、走査ヒストグラム生成部２２およびヒストグラムマッチング部２３により構成される。また、局所移動量検出部１５は、参照ブロック設定部２４、走査ブロック設定部２５およびブロックマッチング部２６により構成される。
【００４６】
参照ヒストグラム生成部２１は、１枚目の画像データＹＣ１から生成された１／８縮小輝度データＹ１−４を対象として、水平方向のエッジ成分および垂直方向のエッジ成分に関するヒストグラムを生成する。また、走査ヒストグラム生成部２２は、２枚目の画像データＹＣ２から生成された１／８縮小輝度データＹ２−４を対象として、水平方向のエッジ成分および垂直方向のエッジ成分に関するヒストグラムを生成する。
【００４７】
図９は、参照ヒストグラムおよび走査ヒストグラムの生成処理を説明するための図である。なお、参照ヒストグラムの生成処理と走査ヒストグラムの生成処理とはほぼ同じなので、ここでは代表として参照ヒストグラムの生成について説明する。参照ヒストグラム生成部２１では、図９に示すように、まず、１／８縮小輝度データＹ１−４に対して垂直エッジ抽出および水平エッジ抽出のフィルタ処理を行うことにより、垂直方向のエッジ成分と水平方向のエッジ成分とをそれぞれ抽出する。
【００４８】
そして、垂直方向のエッジ成分を抽出した画像について、垂直方向に画素値を投射積算することにより、垂直方向ヒストグラムを生成する。また、水平方向のエッジ成分を抽出した画像について、水平方向に画素値を投射積算することにより、水平方向ヒストグラムを生成する。
【００４９】
このような処理を２つの１／８縮小輝度データＹ１−４，Ｙ２−４に対して行うことにより、１枚目の１／８縮小輝度データＹ１−４から垂直参照ヒストグラムと水平参照ヒストグラムとが生成され、２枚目の１／８縮小輝度データＹ２−４から垂直走査ヒストグラムと水平走査ヒストグラムとが生成される。
【００５０】
ヒストグラムマッチング部２３は、参照ヒストグラム生成部２１により生成された参照ヒストグラムと、走査ヒストグラム生成部２２により生成された走査ヒストグラムとのマッチング処理を行い、両ヒストグラムの相互相関をとることによって大域移動量を求める。図１０は、ヒストグラムマッチング処理の内容を説明するための図であり、例として水平方向ヒストグラムのマッチング処理を示している。
【００５１】
図１０に示すように、手振れが発生していると、参照ヒストグラムと走査ヒストグラムとの間で垂直方向に対する位置的なずれが生じる。このずれ量ｘが、垂直方向の大域移動量に相当する。ヒストグラムマッチング部２３は、例えば、水平参照ヒストグラムの位置を少しずつずらしながら、水平走査ヒストグラムとの差分を各走査位置毎に演算し、その差分が最も小さくなった位置におけるずらし量を大域移動量の垂直成分として決定する。
【００５２】
上述のように、図１０の例では水平参照ヒストグラムを右にｘだけずらしたときに水平走査ヒストグラムとの差分が最も小さくなるので、そのずらし量ｘが大域移動量の垂直成分となる。垂直方向ヒストグラムに関しても同様の処理を行うことにより、大域移動量の水平成分を求める。
【００５３】
次いで、参照ブロック設定部２４は、１枚目の画像上において、特徴点抽出部１３により抽出された特徴点を中心としてその周囲に所定サイズの参照ブロックを設定する。
【００５４】
走査ブロック設定部２５は、第３レベルの画像に関して局所移動量を求める際に、２枚目の画像上において、１枚目の画像中に含まれる特徴点に相当する位置から、ヒストグラムマッチング部２３により求められた大域移動量の分だけずれた位置を中心として、その周囲に参照ブロックより大きい所定サイズの走査ブロックを設定する。あるいは、参照ブロック設定部２４により設定された参照ブロックの位置から、ヒストグラムマッチング部２３により求められた大域移動量の分だけずれた位置に、参照ブロックより大きい所定サイズの走査ブロックを設定する。
【００５５】
また、第２レベルおよび第１レベルの画像に関して局所移動量を求める際は、２枚目の画像上において、１枚目の画像中に含まれる特徴点に相当する位置から、ブロックマッチング部２６により１つ下層のレベルで求められた局所移動量の分だけずれた位置を中心として、その周囲に参照ブロックより大きい所定サイズの走査ブロックを設定する。あるいは、参照ブロック設定部２４により設定された参照ブロックの位置から、ブロックマッチング部２６により求められた下層レベルの局所移動量の分だけずれた位置に、参照ブロックより大きい所定サイズの走査ブロックを設定する。
【００５６】
ブロックマッチング部２６は、１枚目の画像中に設定された参照ブロックの輝度データと、２枚目の画像中に設定された走査ブロックの輝度データとの相互相関をとることにより、特徴点毎に局所移動量を求める。そして、求めた複数の局所移動量の中から、類似頻度が最も高いものを１つ選択して各レベルでの画像移動量とする。類似頻度が同じ局所移動量が複数存在する場合は、その中から、同値頻度が最も高いものを１つ選択する。同値頻度も同じ場合には、ゼロベクトルに最も近いものを選択する。
【００５７】
次に、特徴点抽出処理の詳細について説明する。図１１は、特徴点抽出部１３の詳細な処理内容を示すフローチャートである。図１１において、まず、特徴点抽出部１３は、画像縮小部１２により１枚目の基準画像ＹＣ１から生成された第４レベルの輝度データＹ１−４を入力し（ステップＳ１）、所定サイズ（例えば、縦８画素×横８画素）のブロック単位で隣接ピクセル差分積算を行う（ステップＳ２）。
【００５８】
隣接ピクセル差分積算とは、図１２に示すように、ブロック内で縦方向、横方向の隣接画素の差分を順次求めてそれらを加算する演算のことを言う。この隣接ピクセル差分積算演算により、１つのブロック中に含まれる８×８個の画素値は１つの差分積算データに置き換えられる。すなわち、元画像から１／８倍に縮小されていた輝度データＹ１−４は、個々の分割ブロック毎に１つずつ差分積算データが求められて更に１／８倍に縮小される。このとき、複雑な絵柄で、隣接画素間での差が比較的大きいブロックでは大きな値の差分積算データが得られる。
【００５９】
次に、特徴点抽出部１３は、この差分積算データから成る１／６４縮小画像に対して所定サイズ（例えば、縦３画素×横３画素：この場合の画素は、１つの差分積算データが１つの画素に相当）の８方向ラプラシアンフィルタをかける（ステップＳ３）。ラプラシアンフィルタは、中央値に大きな重みをかけるとともに、その周囲値に小さな重みをかけるように係数が設定されたフィルタであり、例えば図１３のように構成される。ステップＳ３では、このようなラプラシアンフィルタを画面上で走査しながら上述の差分積算データに対してフィルタ係数を積算していく。
【００６０】
すなわち、ある画素に注目した場合、その注目画素の差分積算データを８倍し、周囲にある８画素の差分積算データを−１倍して全て足し込み、その結果を注目画素の補正済み差分積算データとする。このようなフィルタ処理を、注目画素を走査しながら順次行っていく。
【００６１】
このようなフィルタ処理により、図１４（ａ）のようにある注目画素の差分積算データの値が大きく、周囲画素の差分積算データの値が小さい位置では、求められる補正済み差分積算データは比較的大きくなる。これに対して、図１４（ｂ）のように、注目画素およびその周囲画素の差分積算データの値が共に大きい位置では、求められる補正済み差分積算データは比較的小さくなる。注目画素およびその周囲画素の差分積算データの値が共に小さい位置でも、求められる補正済み差分積算データは比較的小さくなる。
【００６２】
このように、差分積算データから成る画像に対して図１３のようなラプラシアンフィルタをかけることにより、複雑な絵柄（周波数が高いところ）で周囲にそれと同じ絵柄が存在しない位置が特定できるようになる。本実施形態では、ステップＳ３で求めた補正済み差分積算データに対してもう１度ラプラシアンフィルタをかける（ステップＳ４）。これにより、図１４（ｃ）に示すように、周りに同じ絵柄が存在しないことを保証する範囲を広くとれるようにしている。
【００６３】
以上の処理により、８×８単位の分割ブロックの数だけ補正済み差分積算データが求められる。特徴点抽出部１３は、これら複数の補正済み差分積算データの中から、値の大きい順にｎ個（ｎは３〜９個が好ましい）を選び、それらに対応する座標を第４レベルの特徴点として選択する（ステップＳ５）。
【００６４】
なお、ｎ個の特徴点を選択する際に、１／６４（１／８×１／８）に縮小された画像全体の中の一部に優先領域を任意に設定し、この優先領域の中からＮ個（Ｎ＜ｎ）の特徴点を優先的に選択するようにしても良い。例えば、全体で７個（ｎ＝７）の特徴点を抽出する場合において、優先領域から４個の特徴点を抽出するように設定した場合、優先領域内で補正済み差分積算データの値が大きいところから順に４個（Ｎ＝４）の特徴点を選び、残り３個の特徴点を、優先領域外で補正済み差分積算データの値が大きいところから順に選ぶ。
【００６５】
次に、特徴点抽出部１３は、画像縮小部１２により１枚目の基準画像ＹＣ１から生成された第３レベルの輝度データＹ１−３を入力する（ステップＳ６）。そして、当該入力した第３レベルの輝度データＹ１−３上において、上記ステップＳ５で選択したｎ個の特徴点の周囲に所定サイズ（例えば、縦６４画素×横６４画素）のブロックより成る特徴領域を切り出す（ステップＳ７）。
【００６６】
さらに、特徴点抽出部１３は、切り出した各特徴領域毎に、上記ステップＳ２と同様に所定サイズ（例えば、縦８画素×横８画素）のブロック単位で隣接ピクセル差分積算を行う（ステップＳ８）。次に、特徴点抽出部１３は、差分積算データから成る画像に対して所定サイズ（例えば、縦３画素×横３画素：１つの差分積算データが１つの画素に相当）の８方向ラプラシアンフィルタを２回かける（ステップＳ９，Ｓ１０）。
【００６７】
この２回のラプラシアンフィルタ処理により、各々の特徴領域の中に、８×８単位の分割ブロックの数だけ補正済み差分積算データが求められる。特徴点抽出部１３は、これら複数の補正済み差分積算データの中から、値の大きい順にｎ個を選び、それらに対応する座標を第３レベルの特徴点として選択する（ステップＳ１１）。
【００６８】
次に、特徴点抽出部１３は、画像縮小部１２により１枚目の基準画像ＹＣ１から生成された第２レベルの輝度データＹ１−２を入力する（ステップＳ１２）。そして、当該入力した第２レベルの輝度データＹ１−２上において、上記ステップＳ１１で選択したｎ個の特徴点の周囲に所定サイズ（例えば、縦６４画素×横６４画素）のブロックより成る特徴領域を切り出す（ステップＳ１３）。
【００６９】
さらに、特徴点抽出部１３は、切り出した各特徴領域毎に、上記ステップＳ２と同様に所定サイズ（例えば、縦８画素×横８画素）のブロック単位で隣接ピクセル差分積算を行う（ステップＳ１４）。次に、特徴点抽出部１３は、差分積算データから成る画像に対して所定サイズ（例えば、縦３画素×横３画素：１つの差分積算データが１つの画素に相当）の８方向ラプラシアンフィルタを２回かける（ステップＳ１５，Ｓ１６）。
【００７０】
この２回のラプラシアンフィルタ処理により、各々の特徴領域の中に、８×８単位の分割ブロックの数だけ補正済み差分積算データが求められる。特徴点抽出部１３は、これら複数の補正済み差分積算データの中から、値の大きい順にｎ個を選び、それらに対応する座標を第２レベルの特徴点として選択する（ステップＳ１７）。
【００７１】
次に、特徴点抽出部１３は、画像縮小部１２により１枚目の基準画像ＹＣ１から生成された第１レベルの輝度データＹ１−１を入力する（ステップＳ１８）。そして、当該入力した第１レベルの輝度データＹ１−１上において、上記ステップＳ１７で選択したｎ個の特徴点の周囲に所定サイズ（例えば、縦６４画素×横６４画素）のブロックより成る特徴領域を切り出す（ステップＳ１９）。
【００７２】
さらに、特徴点抽出部１３は、切り出した各特徴領域毎に、上記ステップＳ２と同様に所定サイズ（例えば、縦８画素×横８画素）のブロック単位で隣接ピクセル差分積算を行う（ステップＳ２０）。次に、特徴点抽出部１３は、差分積算データから成る画像に対して所定サイズ（例えば、縦３画素×横３画素：１つの差分積算データが１つの画素に相当）の８方向ラプラシアンフィルタを２回かける（ステップＳ２１，Ｓ２２）。
【００７３】
この２回のラプラシアンフィルタ処理により、各々の特徴領域の中に、８×８単位の分割ブロックの数だけ補正済み差分積算データが求められる。特徴点抽出部１３は、これら複数の補正済み差分積算データの中から、値の大きい順にｎ個を選び、それらに対応する座標を第１レベルの特徴点として選択する（ステップＳ２３）。以上により、第４レベルから第１レベルのそれぞれ毎に、ｎ個の特徴点が抽出される。
【００７４】
以上詳しく説明したように、本実施形態によれば、入力画像を複数段階に亘って段階的に縮小し、より下層レベルの縮小画像を使って大まかに求めた画像移動量を利用して上層レベルで画像移動量を求める際の走査ブロックを構築するようにしたので、走査ブロックをそれほど大きくしなくても参照ブロック内の画像と相関をとることができ、走査ブロックの範囲を狭くすることができる。
【００７５】
走査ブロックの範囲を狭くできると、その走査ブロック内に同じあるいは類似の絵柄が複数存在する確率が小さくなる。よって、参照ブロック内の絵柄とマッチングしたと見られる箇所が誤って検出されることが少なくなり、マッチングの精度を向上させることができる。これにより、より正しい手振れ量を検出することができ、より正確に手振れ補正を行うことができる。
【００７６】
また、走査ブロックの範囲を狭くできると、相関をとる際に必要な演算量を少なくすることもできる。さらに、本実施形態では、画像にラプラシアンフィルタをかけることによって、複雑な絵柄でそれと同じ絵柄が周囲に存在しない特徴点を抽出するようにしたので、画像移動量の誤検出発生の確率を低減する最適な特徴点を簡単な演算で抽出することができる。これにより、少ない演算量で手振れを正確に検出することができ、演算時のメモリ空間が大きく高速処理が可能な高コストのＣＰＵを用いなくても、応答性が良く高精度な手振れ補正を実現することができる。
【００７７】
なお、最下層の縮小画像に関しては、それより下層から画像移動量をもらうことができないため、画像全体を対象として相関演算を行っている。しかし、縮小によってデータ量が大幅に削減されているため、画像全体を走査しても処理量はそれほど多くならず、演算時間が長くなることはない。また、本実施形態では、通常のブロックマッチングではなく、ヒストグラムを利用したマッチング演算を行っているので、演算負荷を更に軽減することができる。
【００７８】
本実施形態では、相対感度を上げるために長時間露光で１枚の画像を撮影するのではなく、露光時間を短くして複数枚の画像を連写し、各画像間で手振れを補正しながらそれらの画像を合成している。露光時間を短くできるため、画像１枚当たりの手振れによる像ブレ量が少なく抑えられる。同時に、画像間の手振れ量を補正しつつ合成するため、合成した画像については手振れによる像ブレをほぼ完全になくすことができる。
【００７９】
また、本実施形態では、連写した複数枚の画像を平均合成するため、複数フレームに亘って時間的に平均がとられることによってノイズ成分の多くが相殺され、ノイズが低減される。これにより合成画像のＳ／Ｎ比が改善される。Ｓ／Ｎ比が改善できるので、ＰＧＡ３でゲインを上げることによって画像を明るくしてもノイズが目立たなくなる。したがって、暗い環境下で撮影しても、ノイズの少ない明るい高品質な画像を得ることができる。
【００８０】
なお、上記第１の実施形態では、画像縮小部１２において入力画像を３段階に亘って縮小する例について説明したが、３段階というのは単なる例に過ぎず、本発明はこれに限定されない。また、上記第１の実施形態では、特徴点を抽出する際にラプラシアンフィルタを２回かける例について説明したが、この回数も単なる例示であって、本発明はこれに限定されるものではない。
【００８１】
また、上記第１の実施形態では、最下層レベルの画像について大域移動量を求める際にヒストグラムを用いたマッチングを行う例について説明したが、最下層レベルでは画像データ量は縮小により大幅に削減されているので、通常のブロックマッチングにより大域移動量を求めるようにしても良い。
【００８２】
また、上記第１の実施形態では、２枚の画像を入力して処理する例について説明したが、これより多い数の画像を入力して処理するようにしても良い。ｎ（ｎ＞２）枚の画像を入力する場合は、例えば１枚目の入力画像を基準画像として、１枚目と２枚目との相関から２枚目の画像移動量、１枚目と３枚目との相関から３枚目の画像移動量、・・・といった具合でｉ（ｉ＝２，３，・・・ｎ）枚目の画像のそれぞれについて上述した手順で画像移動量を求める。
【００８３】
そして、これらｎ枚の画像を合成する際には、まず、１枚目の画像に対して２枚目の画像を当該２枚目の画像移動量の分だけ逆方向にずらして合成する。次に、合成された画像に対して３枚目の画像を当該３枚目の画像移動量の分だけ逆方向にずらして合成する。このようにして、１枚目の画像に対してｉ（ｉ＝２，３，・・・ｎ）枚目の画像をそれぞれの画像移動量の分だけずらして順次合成していく。
【００８４】
このようにすれば、合成画像の手振れによる像ブレを抑えると同時にＳ／Ｎ比を改善することができる。したがって、被写体輝度がかなり小さくなる暗所での撮影時であっても、手振れを正確に検出して補正でき、かつ、ゲインを上げることで画像を明るくしてもノイズが目立たないようにすることができる。これにより、暗い環境下で撮影しても、ノイズの少ない明るい高品質な画像を得ることができる。
【００８５】
なお、ｎ（ｎ＞２）枚の画像を入力して処理する場合において、基準画像は１枚目だけに設定するとは限らない。例えば、一定の枚数置きに基準画像を設定するようにしても良い。複数の基準画像を設定した場合は、ある基準画像から次の基準画像までの間に含まれる複数の画像を１つのグループとして、各グループ毎に上述した手順で画像移動量を検出して画像合成を行う。その際には、それぞれのグループにおいて基準画像上から特徴点を抽出することになる。
【００８６】
静止画を撮影している場合は、特徴点は手振れによって多少移動することがあるのみであるが、動画を撮影している場合は、たとえ手振れがなくても、画像の動きに応じて特徴点も移動する。よって、一定の間隔毎に基準画像を設けて特徴点を抽出するやり方は、特に動画の撮影時における手振れ補正に有効である。
【００８７】
また、上記第１の実施形態では、複数枚の画像を平均合成しているが、合成方法はこれに限定されるものではない。例えば、複数枚の画像を加算合成するようにしても良い。
【００８８】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。図１５は、第２の実施形態による手振れ補正装置の構成を示す機能ブロック図である。なお、この図１５において、図８に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。第２の実施形態による手振れ補正装置を適用したデジタルカメラの全体構成は、図１と同様である。
【００８９】
図１５において、画像縮小部３１は、画像データ入力部１１により入力された複数の画像ＹＣ１，ＹＣ２のそれぞれについて、輝度データＹ１−１，Ｙ２−１を１／８倍に縮小する。ここでも好ましくは平均縮小処理を行う。すなわち、縦８画素×横８画素の隣接６４画素を１ブロックとして、当該ブロック単位で輝度データの平均をとって縮小画像の輝度データＹ１−４，Ｙ２−４とする。
【００９０】
特徴点抽出部３２は、画像データ入力部１１により入力された１枚目の基準画像ＹＣ１において、輝度データＹ１−１に関して所定の条件を満たす特徴点を抽出する。この抽出処理の内容は第１の実施形態とほぼ同様であるが、方向性判定部３３によって縦、横、斜めの方向性の相関が強いと判定された特徴点は抽出対象から除外するようにしている点で、第１の実施形態の特徴点抽出部１３と相違している。
【００９１】
方向性判定部３３は、画像縮小部３１により１枚目の入力画像ＹＣ１から生成された１／８縮小輝度データＹ１−４に対して後述するフィルタ処理（方向判断フィルタおよびラプラシアンフィルタをかける処理）を行い、縦、横、左斜め、右斜めの方向値（方向判断フィルタをかけて得られた値）とラプラシアン値（ラプラシアンフィルタをかけて得られた値）とを求める。そして、この方向値とラプラシアン値とを比較して、方向値の方が大きい場合には、対応するブロックにおいて特徴点抽出部３２により求められた補正済み差分積算データ値をゼロに設定することにより、そのブロックからは特徴点が抽出されないようにする。
【００９２】
大域移動量検出部３４は、画像縮小部３１により生成された１／８縮小画像の輝度データＹ１−４，Ｙ２−４について、当該２つの輝度データＹ１−４，Ｙ２−４の相互相関をとることによって大域移動量を求める。第１の実施形態で大域移動量検出部１４はヒストグラムのマッチングにより大域移動量を求めていたのに対して、第２の実施形態で大域移動量検出部３４は、通常のブロックマッチングにより大域移動量を求める。
【００９３】
すなわち、大域移動量検出部３４は、参照ブロック設定部３５と走査ブロック設定部３６とブロックマッチング部３７とを備えて構成される。参照ブロック設定部３５は、１枚目の縮小輝度データＹ１−４上に所定サイズ（例えば、縮小輝度データＹ１−４の縦および横８０％の範囲）の参照ブロックを設定する。
【００９４】
走査ブロック設定部３６は、２枚目の縮小輝度データＹ２−４上に、参照ブロックより大きい所定サイズ（例えば、縮小輝度データＹ２−４の全体）の走査ブロックを設定する。ブロックマッチング部３７は、１枚目の画像上に設定された参照ブロックの輝度データと、２枚目の画像上に設定された走査ブロックの輝度データとの相互相関をとることによって画像の大域移動量を求める。すなわち、走査ブロック内で参照ブロックの画像を走査しながら差分を計算し、その差分値が最小となる位置を見つけて大域移動量とする。
【００９５】
図１６は、特徴点抽出部３２および方向性判定部３３の詳細な処理内容を示すフローチャートである。図１６において、まず、特徴点抽出部３２は、画像データ入力部１１により入力された１枚目の輝度データＹ１−１を入力し（ステップＳ３１）、所定サイズ（例えば、縦８画素×横８画素）のブロック単位で隣接ピクセル差分積算を行う（ステップＳ３２）。
【００９６】
次に、特徴点抽出部３２は、差分積算データから成る画像に対して所定サイズ（例えば、縦３画素×横３画素：１つの差分積算データが１つの画素に相当）の８方向ラプラシアンフィルタを２回かける（ステップＳ３３、Ｓ３４）。これにより、８×８単位の分割ブロックの数だけ補正済み差分積算データが求められる。
【００９７】
一方、方向性判定部３３は、画像縮小部３１により１枚目の入力画像ＹＣ１から生成された縮小輝度データＹ１−４を入力する（ステップＳ４１）。そして、入力した縮小輝度データＹ１−４に対して、所定サイズ（例えば、縦３画素×横３画素）の縦、横、左斜め、右斜めの方向判断フィルタをかけるとともに、所定サイズ（例えば、縦３画素×横３画素）の８方向ラプラシアンフィルタをかける。そして、各画素ごとに、縦、横、左斜め、右斜めの４つの方向値および１つのラプラシアン値の中で最も大きい値を選択し、それを各画素の値とする（ステップＳ４２）。図１７に、方向性判定部３３において用いる縦、横、左斜め、右斜めの方向判断フィルタを示す。
【００９８】
次に、方向性判定部３３は、ステップＳ４２と同様の処理をもう一度行う（ステップＳ４３）。その結果として、方向判断フィルタをかけて得られた縦、横、左斜め、右斜めの何れかの方向値が、ラプラシアンフィルタをかけて得られたラプラシアン値より大きいか否かを各画素ごとに判定する（ステップＳ４４）。そして、方向値がラプラシアン値より大きい場合は、上記ステップＳ３４で得られた各画素の補正済み差分積算データのうち、上記大きな方向値が得られた位置に対応する画素の補正済み差分積算データの値をゼロに設定する（ステップＳ４５）。
【００９９】
特徴点抽出部３２は、このようにして方向性判定部３３により必要に応じてゼロ値に設定された補正済み差分積算データを含む各画素の補正済み差分積算データの中から、値の大きい順にｎ個を選び、それらに対応する座標を特徴点として選択する（ステップＳ３５）。
【０１００】
以上詳しく説明したように、第２の実施形態によれば、縦、横、斜めに相関が強い絵柄を検出し、そのような位置からは特徴点を抽出しないようにしたので、特徴点を抽出する際に同じ絵柄が周囲に存在しないことをより確実に保証することができる。これにより、画像移動量の誤検出発生の確率を低減するために用いる最適な特徴点を簡単な演算で検出することができる。したがって、少ない演算量で手振れを正確に検出することができ、応答性が良く高精度な手振れ補正を実現することができる。
【０１０１】
なお、上記第２の実施形態では、画像縮小部３１において入力画像を１段階だけ縮小する例について説明したが、第１の実施形態と同様に複数段階に亘って縮小するようにしても良い。また、上記第２の実施形態では、方向判断フィルタとラプラシアンフィルタとを２回かける例について説明したが、この回数も単なる例示であって、本発明はこれに限定されるものではない。
【０１０２】
また、上記第２の実施形態では、大域移動量を求める際にブロックマッチングを行う例について説明したが、第１の実施形態と同様にヒストグラムによるマッチングを行うようにしても良い。また、上記第２の実施形態では、２枚の画像を入力して処理する例について説明したが、これより多い数の画像を入力して処理するようにしても良い。この場合において、基準画像を１枚目以外に設定することも可能である。
【０１０３】
また、以上に説明した第１および第２の実施形態による手振れ補正の手法は、ハードウェア構成、ＤＳＰ、ソフトウェアの何れによっても実現することが可能である。例えば、本実施形態の手振れ補正装置は、デジタルスチルカメラやデジタルビデオカメラへの組み込み実装可能なリアルタイム処理向きのソフトウェアとして実現することができる。
【０１０４】
また、ハードウェア構成、ＤＳＰなどで構成する場合、上記実施形態に示す手振れ補正装置の機能構成を半導体チップあるいは基板モジュール上などに実装することが可能である。なお、手振れ補正装置全体の機能構成を１つの半導体チップや基板モジュールに実装する必要は必ずしもなく、複数のチップあるいは複数の基板に分けて実装しても良い。例えば、画像合成部１６を除いたその他の機能構成を手振れ検出装置として１つのチップ上に実装することが可能である。
【０１０５】
その他、上記各実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその精神、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【０１０６】
【発明の効果】
以上説明したように本発明によれば、ジャイロセンサを使うのではなく画像データから動きベクトルを検出する手振れ検出手法を採用するとともに、光学式ではなく電子式の手振れ補正手法を採用しているので、小型で低コストな手振れ補正装置を実現することができる。しかも、本発明特有のアルゴリズムで手振れを検出して補正するようにしたので、高精度な手振れ補正を少ない演算量で実現でき、正確で応答性の良い手振れ補正を行うことができる。しかも、被写体輝度が小さくなる暗所での撮影時であっても、手振れを正確に検出して補正でき、かつ、明るく良質な画像を得ることができる。
【図面の簡単な説明】
【図１】第１の実施形態による手振れ補正装置の概略構成を示す機能ブロック図である。
【図２】第１および第２の実施形態による手振れ補正装置を適用したデジタルカメラの全体構成を示すブロック図である。
【図３】平均縮小処理の内容を説明するための図である。
【図４】特徴点の抽出について説明するための図である。
【図５】大域移動量の意味を説明するための図である。
【図６】局所移動量の意味を説明するための図である。
【図７】大域移動量と局所移動量の利用関係を示す図である。
【図８】第１の実施形態による手振れ補正装置の詳細構成を示す機能ブロック図である。
【図９】参照ヒストグラムおよび走査ヒストグラムの生成処理を説明するための図である。
【図１０】ヒストグラムマッチング処理の内容を説明するための図である。
【図１１】第１の実施形態による特徴点抽出処理の内容を示すフローチャートである。
【図１２】隣接ピクセル差分積算の意味を説明するための図である。
【図１３】８方向ラプラシアンフィルタの構成例を示す図である。
【図１４】８方向ラプラシアンフィルタの意義を説明するための図である。
【図１５】第２の実施形態による手振れ補正装置の詳細構成を示す機能ブロック図である。
【図１６】第２の実施形態による特徴点抽出処理および方向性判定処理の内容を示すフローチャートである。
【図１７】方向判断フィルタの構成例を示す図である。
【符号の説明】
１  光学系
１ａ  シャッタ
１ｂ  レンズ
１ｃ  アイリス
２  撮像素子
３  ＰＧＡ（プログラマブルゲインアンプ）
４  Ａ／Ｄ変換器
５  信号処理部
６  手振れ補正部
７  ＡＥ／ＡＦ処理部
８  コントローラ
１０  デジタルカメラ
１１  画像データ入力部
１２  画像縮小部
１３  特徴点抽出部
１４  大域移動量検出部
１５  局所移動量検出部
１６  画像合成部
２１  参照ヒストグラム生成部
２２  走査ヒストグラム生成部
２３  ヒストグラムマッチング部
２４  参照ブロック設定部
２５  走査ブロック設定部
２６  ブロックマッチング部
３１  画像縮小部
３２  特徴点抽出部
３３  方向性判定部
３４  大域移動量検出部
３５  参照ブロック設定部
３６  走査ブロック設定部
３７  ブロックマッチング部
【図１】
2004343483.tif 000003
【図２】
2004343483.tif 000004
【図３】
2004343483.tif 000005
【図４】
2004343483.tif 000006
【図５】
2004343483.tif 000007
【図６】
2004343483.tif 000008
【図７】
2004343483.tif 000009
【図８】
2004343483.tif 000010
【図９】
2004343483.tif 000011
【図１０】
2004343483.tif 000012
【図１１】
2004343483.tif 000013
【図１２】
2004343483.tif 000014
【図１３】
2004343483.tif 000015
【図１４】
2004343483.tif 000016
【図１５】
2004343483.tif 000017
【図１６】
2004343483.tif 000018
【図１７】
2004343483.tif 000019