(57)【要約】【課題】  この発明は、高精度の手ぶれ信号が得られる手ぶれ検出装置を提供することを目的とする。【解決手段】  撮像装置の手ぶれを検出する手ぶれセンサの出力信号に基づいて、撮像装置の手ぶれを検出するための手ぶれ検出装置において、手ぶれセンサの出力信号から低周波成分を除去するハイパスフィルタ演算手段、ハイパスフィルタ演算手段の出力信号に対して、当該ハイパスフィルタの逆伝達関数のフィルタ演算を行なう逆ハイパスフィルタ演算手段、逆ハイパスフィルタ演算手段の出力データに基づいて、オフセット値を算出するオフセット値演算手段、ならびに逆ハイパスフィルタ演算手段の出力データから、オフセット値演算手段によって算出されたオフセット値を減算するオフセット値減算手段を備えている。【選択図】  図２
2007088829.tif 000002
【特許請求の範囲】
【請求項１】
撮像装置の手ぶれを検出する手ぶれセンサの出力信号に基づいて、撮像装置の手ぶれを検出するための手ぶれ検出装置において、
手ぶれセンサの出力信号から低周波成分を除去するハイパスフィルタ演算手段、
ハイパスフィルタ演算手段の出力信号に対して、当該ハイパスフィルタの逆伝達関数のフィルタ演算を行なう逆ハイパスフィルタ演算手段、
逆ハイパスフィルタ演算手段の出力データに基づいて、オフセット値を算出するオフセット値演算手段、ならびに
逆ハイパスフィルタ演算手段の出力データから、オフセット値演算手段によって算出されたオフセット値を減算するオフセット値減算手段、
を備えていることを特徴とする手ぶれ検出装置。
【請求項２】
オフセット値演算手段は、撮像装置による露光開始前の所定期間内における逆ハイパスフィルタ演算手段の出力データの平均値を算出し、算出された平均値をオフセット値とするものであることを特徴とする請求項１に記載の手ぶれ検出装置。
【請求項３】
オフセット値演算手段は、撮像装置による露光開始前後を含む所定期間内における逆ハイパスフィルタ演算手段の出力データの平均値を算出し、算出された平均値をオフセット値とするものであることを特徴とする請求項１に記載の手ぶれ検出装置。
【請求項４】
オフセット値演算手段は、撮像装置による露光開始前の所定期間内における逆ハイパスフィルタ演算手段の出力データのうち、それらの平均値を中心とする所定範囲内の出力データのみをオフセット値算出用の対象データとし、オフセット値算出用の対象データの平均値を算出し、算出された平均値をオフセット値とするものであることを特徴とする請求項１に記載の手ぶれ検出装置。
【請求項５】
オフセット値演算手段は、撮像装置による露光開始前後を含む所定期間内における逆ハイパスフィルタ演算手段の出力データのうち、それらの平均値を中心とする所定範囲内の出力データのみをオフセット値算出用の対象データとし、オフセット値算出用の対象データの平均値を算出し、算出された平均値をオフセット値とするものであることを特徴とする請求項１に記載の手ぶれ検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、手ぶれ検出装置に関する。
【背景技術】
【０００２】
静止画手ぶれ補正技術は、写真撮影（静止画撮影）における手ぶれを軽減する技術であり、手ぶれを検出して、その検出結果に基づいて画像を安定化することで実現される。
【０００３】
手ぶれを検出する方法には、手ぶれセンサ（角速度センサ）を用いる方法と、画像を解析して検出する電子式とがある。画像を安定化させる方法には、レンズや撮像素子を安定化させる光学式と、画像処理により手ぶれによるぼけを除去する電子式とがある。
【０００４】
一方、完全電子式の手ぶれ補正技術、すなわち、撮影された一枚の手ぶれ画像だけを解析・処理することで、手ぶれの除去された画像を生成する技術は、実用レベルに達していない。特に、手ぶれセンサで得られる精度の手ぶれ信号を、一枚の手ぶれ画像を解析することによって求めることは困難である。
【０００５】
したがって、手ぶれセンサを用いて手ぶれを検出し、その手ぶれデータを用いて画像処理により手ぶれぼけを除去することが現実的である。画像処理によるぼけの除去を画像復元と呼ぶ。また、手ぶれセンサと画像復元による手法を、ここでは電子式手ぶれ補正と呼ぶことにする。
【０００６】
従来から、ビデオカメラやデジタルスチルカメラなどの手ぶれを検出する装置として、角速度センサや加速度センサが利用されている。機器の小型化のために、これらの手ぶれ検出装置も小型化が進んでいる。しかしながら、手ぶれ検出装置の検出部を小型化した場合、使用環境の温度変化や素子自体の使用による温度上昇などにより、出力信号にドリフトやオフセット成分が加わり、その出力精度が低下する。特に、小型化を図るために、検出部を圧電素子で構成したものが提案されているが、温度変化による形状の変化に加え、静電容量の変化によって、その出力信号に大きなドリフトが発生する。
【０００７】
そこで、このドリフト成分を除去する技術が、特開昭６０−１４３３３０号公報によって提案されている。これは、角速度センサの出力信号にハイパスフィルタ（ＨＰＦ）を適用することで、手ぶれ成分に比べて周波数が低いドリフト成分のみを効果的に除去するものである。しかしながら、ＨＰＦのカットオフ周波数を大きくすると、手ぶれ成分まで除去されるという問題がある。また、ＨＰＦのカットオフ周波数を小さくすると、時定数が大きくなり、手ぶれの残留成分をクリアするために長時間の安定期間を要するので、撮影前に長時間の静止状態が必要となるという問題がある。
【０００８】
そこで、ＨＰＦのカットオフ周波数に起因する問題への対策が、特開昭６３−５０７２９号公報、特開平７−３０１８３６号公報、特開平４−６８３２２号公報、特開平７−２０５２１号公報によって提案されている。
【０００９】
特開昭６３−５０７２９号公報では、時定数が異なる複数のＨＰＦを設け、時定数の小さなＨＰＦから時定数の大きなＨＰＦに切り換えることで、手ぶれの残留成分の収束時間を短縮させる技術が提案されている。しかしながら、この技術では、ＨＰＦの切り替え時にオフセット成分（ＤＣ成分）が含まれてしまう。
【００１０】
特開平７−３０１８３６号公報では、手ぶれ信号の大きさによってＨＰＦの時定数を変更することで、大きな手ぶれ残留成分をクリアする時間を短縮させる技術が提案されている。しかしながら、この技術では、ＨＰＦの時定数を変更する時に、測定困難なオフセット成分（ＤＣ成分）が含まれてしまう。
【００１１】
特開平４−６８３２２号公報では、センサの出力が安定するまで、警告を出したり、レリーズを禁止したりする技術が提案されているが、シャッターチャンスを逃がす可能性がある。
【００１２】
特開平７−２０５２１号公報では、ＨＰＦの入力信号が０の時にＨＰＦを初期化することで、オフセット成分を含まず、残留成分を一瞬でクリアする技術が提案されている。しかしながら、この技術では、大きな残留成分発生後にＨＰＦの入力信号が０にならない場合、残留成分を除去できない。
【特許文献１】特開昭６０−１４３３３０号公報
【特許文献２】特開昭６３−５０７２９号公報
【特許文献３】特開平７−３０１８３６号公報
【特許文献４】特開平４−６８３２２号公報
【特許文献５】特開平７−２０５２１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
この発明は、高精度の手ぶれ信号が得られる手ぶれ検出装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
請求項１に記載の発明は、撮像装置の手ぶれを検出する手ぶれセンサの出力信号に基づいて、撮像装置の手ぶれを検出するための手ぶれ検出装置において、手ぶれセンサの出力信号から低周波成分を除去するハイパスフィルタ演算手段、ハイパスフィルタ演算手段の出力信号に対して、当該ハイパスフィルタの逆伝達関数のフィルタ演算を行なう逆ハイパスフィルタ演算手段、逆ハイパスフィルタ演算手段の出力データに基づいて、オフセット値を算出するオフセット値演算手段、ならびに逆ハイパスフィルタ演算手段の出力データから、オフセット値演算手段によって算出されたオフセット値を減算するオフセット値減算手段を備えていることを特徴とする。
【００１５】
請求項２に記載の発明は、請求項１に記載の発明において、オフセット値演算手段は、撮像装置による露光開始前の所定期間内における逆ハイパスフィルタ演算手段の出力データの平均値を算出し、算出された平均値をオフセット値とするものであることを特徴とする。
【００１６】
請求項３に記載の発明は、請求項１に記載の発明において、オフセット値演算手段は、撮像装置による露光開始前後を含む所定期間内における逆ハイパスフィルタ演算手段の出力データの平均値を算出し、算出された平均値をオフセット値とするものであることを特徴とする。
【００１７】
請求項４に記載の発明は、請求項１に記載の発明において、オフセット値演算手段は、撮像装置による露光開始前の所定期間内における逆ハイパスフィルタ演算手段の出力データのうち、それらの平均値を中心とする所定範囲内の出力データのみをオフセット値算出用の対象データとし、オフセット値算出用の対象データの平均値を算出し、算出された平均値をオフセット値とするものであることを特徴とする。
【００１８】
請求項５に記載の発明は、請求項１に記載の発明において、オフセット値演算手段は、撮像装置による露光開始前後を含む所定期間内における逆ハイパスフィルタ演算手段の出力データのうち、それらの平均値を中心とする所定範囲内の出力データのみをオフセット値算出用の対象データとし、オフセット値算出用の対象データの平均値を算出し、算出された平均値をオフセット値とするものであることを特徴とする。
【発明の効果】
【００１９】
この発明によれば、高精度の手ぶれ信号が得られるようになる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して、この発明をデジタルカメラに適用した場合の実施例について説明する。
【実施例１】
【００２１】
〔１〕手ぶれ補正処理回路の構成
図１は、デジタルカメラに設けられた手ぶれ補正処理回路の構成を示している。
【００２２】
手ぶれ補正処理回路は、手ぶれ検出部１、画像復元フィルタ計算部２、画像復元処理部３およびリンギング除去処理部４を備えている。
【００２３】
手ぶれ検出部１は、デジタルカメラの手ぶれを検出する。画像復元フィルタ計算部２は、手ぶれ検出部１によって検出された手ぶれ信号に基づいて、画像復元フィルタの係数を算出する。画像復元処理部３は、画像復元フィルタ計算部２によって算出された係数に基づいて、撮像画像（手ぶれ画像）に対して画像復元処理を行う。リンギング除去処理部４は、画像復元処理部３によって得られた復元画像からリンギングを除去する。
【００２４】
以下、手ぶれ検出部１、画像復元フィルタ計算部２、画像復元処理部３およびリンギング除去処理部４について説明する。
【００２５】
〔２〕手ぶれ検出部１の説明
図２は、手ぶれ検出部１の構成を示している。
【００２６】
手ぶれ検出部１は、２つの角速度センサ１１ａ、１１ｂ、ＨＰＦ演算部１２ａ、１２ｂ、逆ＨＰＦ演算部１３ａ、１３ｂ、オフセット値演算部１４ａ、１４ｂおよびオフセット値減算部１５ａ、１５ｂおよび手ぶれ信号／動きベクトル変換処理部１６を備えている。      
【００２７】
一方の角速度センサ１１ａはカメラのパン方向の角速度を、他方の角速度センサ１１ｂはカメラのチルト方向の角速度をそれぞれ検出する。これらの各速度センサ１１ａ、１１ｂは、所定のサンプリング間隔で角速度を計測する。
【００２８】
ＨＰＦ演算部１２ａ、１２ｂは、各角速度センサ１１ａ、１１ｂの出力信号に含まれているドリフト成分とオフセット成分をＨＰＦによってそれぞれ除去する。逆ＨＰＦ演算部１３ａ、１３ｂは、ＨＰＦ演算部１２ａ、１２ｂの出力に対して、ＨＰＦ演算部１２ａ、１２ｂで用いられるＨＰＦの逆伝達関数の特性のフィルタ処理を施す。
【００２９】
オフセット値演算部１４ａ、１４ｂは、逆ＨＰＦ演算部１３ａ、１３ｂの出力からオフセット値を算出する。オフセット値減算部１５ａ、１５ｂは、逆ＨＰＦ演算部１３ａ、１３ｂの出力から、オフセット値演算部１４ａ、１４ｂで算出されたオフセット値を減算する。手ぶれ信号／動きベクトル変換処理部１６は、オフセット値減算部１５ａ、１５ｂの出力信号に基づいて、画像面上での見かけの動き量である動きベクトルを生成する。
【００３０】
〔２−１〕ＨＰＦ演算部１２ａ、１２ｂの説明
角速度センサ１１ａ、１１ｂの出力信号には、使用環境の温度変化や、素子自体の使用による温度上昇などにより、低周波のドリフトやオフセット成分が含まれている。そこで、カットオフ周波数が０．１〜０．３ＨｚのＨＰＦを有するＨＰＦ演算部１２ａ、１２ｂにより、角速度センサ１１ａ、１１ｂの出力信号に含まれている低周波のドリフトやオフセット成分を除去する。
【００３１】
図３は、ＨＰＦ演算部１２ａの構成例を示している。
角速度センサ１１ａからは、センサ信号Ｖ１と基準電圧Ｖ２とが出力される。センサ信号Ｖ１は、電圧Ｖ２を基準電圧（角速度θ’＝０に対応する電圧）として、角速度θ’に応じた値をとる。したがって、（Ｖ１−Ｖ２）＝Ｖg が角速度θ’に応じた電圧値となる。
【００３２】
信号Ｖ１は、コンデンサ１０１と抵抗１０２とからなるＨＰＦを介してオペアンプ１０３の非反転入力端子に送られる。オペアンプ１０３の反転入力端子には基準電圧Ｖ２が送られる。ＨＰＦの出力信号をＶ１’とし、オペアンプ１０３のアンプ倍率をＫ〔倍〕とすると、オペアンプ１０３からは、Ｖａ＝（Ｖ１’−Ｖ２）Ｋの信号が出力される。オペアンプ１０３の出力信号はＡ／Ｄ変換器１０４によってデジタル信号に変換され、得られたデジダル信号がＨＰＦ演算部１２ａの出力信号として出力される。なお、ＨＰＦ演算部１２ｂの構成も、ＨＰＦ演算部１２ａの構成と同様であるので、その説明を省略する。
【００３３】
ところで、ＨＰＦ演算部１２ａ、１２ｂの出力には、数秒前の手ぶれの残留成分が残り、手ぶれの検出精度が低下する場合がある。図４（ａ）は、ＨＰＦ演算部１２ａの出力信号に、手ぶれの残留成分が発生した場合の例を示している。なお、右側の図は、左側の図の露光期間の部分を拡大した図である。図４（ａ）は、デジタルカメラを回転させた後に静止させ、その後に撮影を行なった場合の、ＨＰＦ演算部１２ａの出力信号を示している。デジタルカメラ回転時に大きな負方向の出力が発生する。その後、デジタルカメラが静止状態に遷移したにもかかわらず、正方向の残留成分が出力され続けている。この間に撮影を開始すると、残留成分量の手ぶれが間違って、検出されてしまう。
【００３４】
また、この残留成分が０になるまでの時間は、ＨＰＦの時定数が小さい（カットオフ周波数が大きい）ほど小さくなるため、ＨＰＦの時定数を小さくすればよいように思われるが、時定数を小さく（カットオフ周波数を大きく）すると、ドリフト成分だけでなく、低周波の手ぶれ成分までもカットされてしまうため、逆に手ぶれの精度が低下してしまう。また、この残留成分を計測しようとしても、時間の経過により値が変化するので、正確な計算は困難である。
【００３５】
そこで、この実施例では、まず、ＨＰＦ演算部１２ａ、１２ｂの出力に対して、逆ＨＰＦ演算部１３ａ、１３ｂにより、ＨＰＦ演算部１２ａ、１２ｂで用いられているＨＰＦの逆伝達関数の特性を持つフィルタ演算を行なう。すると、図４（ａ）で示す信号は、図４（ｂ）で示す信号に変換され、手ぶれの残留成分は一定オフセットという形で現れる。そこで、オフセット値演算部１４ａ、１４ｂにより、そのオフセット値を算出する。そして、露光期間において、逆ＨＰＦ演算部１３ａ、１３ｂの出力信号から、オフセット値演算部１４ａ、１４ｂによって算出されたオフセット値を減算する。この減算は、オフセット値減算部１５ａ、１５ｂによって行なわれる。露光期間において逆ＨＰＦ演算部１３ａ、１３ｂの出力信号からオフセットを除去すると、図４（ｂ）で示す信号は、図４（ｃ）で示す信号に変換される。
【００３６】
〔２−２〕逆ＨＰＦ演算部１３ａ、１３ｂの説明
逆ＨＰＦ演算部１３ａ、１３ｂは、対応するＨＰＦ演算部１２ａ、１２ｂの出力に対して、ＨＰＦ演算部１２ａ、１２ｂで用いられているＨＰＦの逆伝達関数の特性を持つフィルタ演算を行なう。
【００３７】
逆ＨＰＦ演算部１３ａ、１３ｂは、それぞれ、例えば、図５に示すような演算を行なう。図５において、２０１、２０４、２０７は、乗算器である。２０２、２０５は、加算器である。２０３、２０６は遅延子である。乗算器２０１、２０４、２０７は、それぞれその入力信号に、係数ａ０、ａ１、ｂ１を乗算する。逆ＨＰＦ演算部１３ａ、１３ｂの演算結果は、図示しないメモリに所定期間分保持される。
【００３８】
〔２−３〕オフセット値演算部１４ａ、１４ｂおよびオフセット値減算部１５ａ、１５ｂの説明
【００３９】
オフセット値演算部１４ａは、逆ＨＰＦ演算部１３ａの出力信号に基づいて、オフセット値を算出する。オフセット値減算部１５ａは、オフセット値演算部１４ａによって算出されたオフセット値を、露光期間内において、逆ＨＰＦ演算部１３ａの出力信号から減算する。
【００４０】
オフセット値演算部１４ｂは、逆ＨＰＦ演算部１３ｂの出力信号に基づいて、オフセット値を算出する。オフセット値減算部１５ｂは、オフセット値演算部１４ｂによって算出されたオフセット値を、露光期間内において、逆ＨＰＦ演算部１３ｂの出力信号から減算する。
【００４１】
両オフセット値演算部１４ａ、１４ｂによるオフセット算出処理の内容は同様であるので、オフセット値演算部１４ａによるオフセット算出処理についてのみ説明する。
【００４２】
図６は、オフセット値演算部１４ａによるオフセット値算出処理手順を示している。
まず、露光開始前（撮影開始前）のＮ点（例えば１０００点）分の逆ＨＰＦ演算部１３ａの出力データを、オフセット値算出用の対象データとする（ステップＳ１）。
【００４３】
オフセット値算出用の対象データの平均値μと標準偏差σとを算出する（ステップＳ２）。
【００４４】
次に、標準偏差σが予め設定された閾値ＴＨ１より大きいか否かを判別する（ステップＳ３）。
【００４５】
標準偏差σが閾値ＴＨ１より大きい（σ＞ＴＨ１）場合には、Ｎ点分のデータが安定していないと判定し、センサ信号が無効である旨の信号を出力する（ステップＳ４）。この場合には、撮影映像に対して、手ぶれ補正を行なわない。
【００４６】
標準偏差σが閾値ＴＨ１以下（σ≦ＴＨ１）場合には、上記ステップＳ２で算出された平均値μをオフセット値とする（ステップＳ５）。
【００４７】
なお、撮影時には手ぶれ映像と手ぶれ情報（たとえば、後述する手ぶれ信号／動きベクトル変換処理部１６で得られる動きベクトル）とを記憶しておき、撮影後に手ぶれ映像に対して手ぶれ補正を行なう場合には、上記ステップＳ１において、露光開始前と露光開始後とを含む露光開始前後のＮ点分の逆ＨＰＦ演算部１３ａの出力信号を、オフセット値算出用の対象データとすることが好ましい。
【００４８】
図７は、オフセット値演算部１４ａによるオフセット値算出処理の他の例の手順を示している。
【００４９】
まず、露光開始前（撮影開始前）のＮ点（例えば１０００点）分の逆ＨＰＦ演算部１３ａの出力データを、オフセット値算出用の対象データとする（ステップＳ１１）。
【００５０】
オフセット値算出用の対象データの平均値μと標準偏差σとを算出する（ステップＳ１２）。次に、オフセット値算出用の対象データの中に（μ±σ）の範囲外のデータ（外れ値）があるか否かを判別する（ステップトＳ１３）。外れ値が有る場合には、オフセット値算出用の対象データから外れ値を除外し、残りをオフセット値算出用の対象データとする（ステップＳ１４）。次に、オフセット値算出用の対象データの数がＮ／２未満であるか否かを判別する（ステップＳ１５）。オフセット値算出用の対象データの数がＮ／２以上であれば、ステップＳ１２に戻る。
【００５１】
ステップＳ１３において外れ値が無いと判別した場合またはステップＳ１５においてオフセット値算出用の対象データの数がＮ／２未満であると判別された場合には、ステップＳ１６に進む。ステップＳ１６では、オフセット値算出用の対象データの平均値μと標準偏差σとを算出する。そして、データ標準偏差σが予め設定された閾値ＴＨ２より大きいか否かを判別する（ステップＳ１７）。
【００５２】
標準偏差σが閾値ＴＨ２より大きい（σ＜ＴＨ２）場合には、オフセット値算出用の対象データが安定していないと判定し、センサ信号が無効である旨の信号を出力する（ステップＳ１８）。この場合には、撮影映像に対して、手ぶれ補正を行なわない。
【００５３】
標準偏差σが閾値ＴＨ２以下（σ≦ＴＨ２）場合には、上記ステップＳ１６で算出された平均値μをオフセット値とする（ステップＳ１９）。
【００５４】
撮影時には手ぶれ映像と手ぶれ情報（たとえば、後述する手ぶれ信号／動きベクトル変換処理部１６で得られる動きベクトル）とを記憶しておき、撮影後に手ぶれ映像に対して手ぶれ補正を行なう場合には、上記ステップＳ１１において、露光開始前と露光開始後とを含む露光開始前後のＮ点分の逆ＨＰＦ演算部１３ａの出力信号を、オフセット値算出用の対象データとすることが好ましい。
【００５５】
〔２−４〕手ぶれ信号／動きベクトル変換処理部１６の説明
手ぶれ信号／動きベクトル変換処理部１６は、露光期間内の逆ＨＰＦ演算部１３ａの出力信号からオフセット減算部１５ａによってオフセット値が減算された信号と、露光期間内の逆ＨＰＦ演算部１３ｂの出力信号からオフセット減算部１５ｂによってオフセット値が減算された信号とに基づいて、画像面上での見かけの動き量である動きベクトルを生成する。
【００５６】
手ぶれの元データは、逆ＨＰＦ演算部１３ａの出力信号のうちの撮影開始から撮影終了までの間（露光期間）の出力信号からオフセット減算部１５ａによってオフセット値が減算された信号（パン方向の角速度データ）と、逆ＨＰＦ演算部１３ｂの出力信号のうちの撮影開始から撮影終了までの間（露光期間）の出力信号からオフセット減算部１５ｂによってオフセット値が減算された信号（チルト方向の角速度データ）である。角速度センサ１１ａ、１１ｂのサンプリング間隔をｄｔ[sec] とする。ｄｔ[sec] は、たとえば、１ｍｓｅｃである。  
【００５７】
図３において、ＨＰＦを構成するコンデンサと抵抗とが省略されていると仮定すると、カメラのパン方向の角速度θ’[deg/sec] は、角速度センサ１１ａによって電圧Ｖg ＝（Ｖ１−Ｖ２）[mV]に変換された後、オペアンプ１０３によって増幅される。オペアンプ１０３から出力される電圧Ｖa [mV] はＡ／Ｄ変換器１０４によってデジタル値ＤL [step]に変換される。デジタル値として得られたデータを角速度に変換するには、センサ感度Ｓ[mV/deg/sec]、オペアンプ１０３のアンプ倍率Ｋ[ 倍] 、Ａ／Ｄ変換係数Ｌ[mV/step] を用いて計算する。
【００５８】
角速度センサ１１ａによって得られる電圧値Ｖg [mV]は、角速度θ’[deg/sec] の値と比例する。このときの比例定数はセンサ感度であるので、Ｖg [mV]は、次式（１）で表される。
【００５９】
Ｖg ＝Ｓθ’…（１）
【００６０】
また、オペアンプ１０３は電圧値Ｖg を増幅するだけなので、増幅された電圧Ｖa [mV] は、次式（２）で表される。
【００６１】
Ｖa ＝ＫＶg …（２）
【００６２】
オペアンプ１０３で増幅された電圧値Ｖa [mV] はＡ／Ｄ変換され、ｎ[step]（例えば、−５１２〜５１２）のデジタル値ＤL [step]を使って表現される。Ａ／Ｄ変換係数をＬ[mV/step] とすると、デジタル値ＤL [step]は、次式（３）で表される。
【００６３】
ＤL ＝Ｖa ／Ｌ…（３）
【００６４】
上記式（１）〜（３）を用いることで、次式（４）に示すように、デジタル値ＤL [step]から角速度を求めることができる。
【００６５】
θ’＝（Ｌ／ＫＳ）ＤL …（４）
【００６６】
撮影中の角速度データから、撮影された画像上でどれだけのぶれが生じたかを計算することができる。この画像上でのみかけの動きを動きベクトルと呼ぶ。
【００６７】
角速度データの１つのサンプル値から次のサンプル値までにカメラに生じた回転量をθ[deg] とする。この間、角速度一定でカメラが回転すると仮定し、サンプリング周波数をf ＝１／ｄｔ[Hz]とすると、θ[deg] は次式（５）で表される。
【００６８】
θ＝θ’／ｆ＝（Ｌ／ＫＳｆ）ＤL …（５）
【００６９】
図８に示すように、ｒ[mm]を焦点距離（３５[mm]フィルム換算）とすると、カメラの回転量θ[deg] から画面上の移動量ｄ[mm]が次式（６）により求められる。
【００７０】
ｄ＝ｒｔａｎθ…（６）
【００７１】
ここで求められた移動量ｄ[mm]は、３５[mm]フィルム換算時の手ぶれの大きさで、単位は[mm]である。実際に計算処理するときには、画像の大きさをデジタルカメラの画像の大きさの単位[pixel] で考えなければならない。
【００７２】
３５[mm]フィルム換算の画像と、デジタルカメラで撮影した[pixel] 単位の画像は縦横比も異なるので、次のように計算を行う。図９に示すように、３５[mm]フィルム換算時は画像サイズの横×縦が３６[mm]×２４[mm]と決まっている。デジタルカメラで撮影した画像の大きさをＸ[pixel] ×Ｙ[pixel] とし、水平方向（パン方向）のぶれをｘ[pixel] 、垂直方向（チルト方向）のぶれをｙ[pixel] とすると、変換式は次式（７）、（８）となる。
【００７３】
ｘ＝ｄx （Ｘ／３６）＝ｒｔａｎθx （Ｘ／３６）…（７）
ｙ＝ｄy （Ｙ／２４）＝ｒｔａｎθy （Ｙ／２４）…（８）
【００７４】
上記式（７）、（８）には、ｄとθに添字のｘとｙが使用されているが、添字ｘは水平方向の値であることを、添字ｙは垂直方向の値であることを示している。
【００７５】
上記式（１）〜（８）をまとめると、水平方向（パン方向）のぶれｘ[pixel] 、垂直方向（チルト方向）のぶれｙ[pixel] は、次式（９）、（１０）で表される。
【００７６】
ｘ＝ｒｔａｎ｛（Ｌ／ＫＳｆ）ＤLx｝Ｘ／３６…（９）
ｙ＝ｒｔａｎ｛（Ｌ／ＫＳｆ）ＤLy｝Ｙ／２４…（１０）
【００７７】
この変換式（９）、（１０）を用いることで、デジタル値として得られたカメラの各軸の角速度データから画像のぶれ量（動きベクトル）を求めることができる。
【００７８】
なお、この実施例では、ＤLxとして、露光期間内の逆ＨＰＦ演算部１３ａの出力信号からオフセット減算部１５ａによってオフセット値が減算された信号が用いられ、ＤLyとして露光期間内の逆ＨＰＦ演算部１３ｂの出力信号からオフセット減算部１５ｂによってオフセット値が減算された信号が用いられる。
【００７９】
撮影中の動きベクトルは、センサから得られた角速度のデータの数だけ（サンプル点の数だけ）得ることができ、それらの始点と終点を順番に結んでいくと、画像上での手ぶれの軌跡になる。また、各ベクトルの大きさを見ることで、その時点での手ぶれの速度がわかる。
【００８０】
〔３〕画像復元フィルタ計算部２の説明
画像復元フィルタ計算部２は、手ぶれ検出部１内の手ぶれ信号／動きベクトル変換処理部１６（図２参照）によって得られた動きベクトルを、画像のボケを表す手ぶれ関数（ＰＳＦ：Point Spread Function)に変換する動きベクトル／手ぶれ関数変換処理部２１および動きベクトル／手ぶれ関数変換処理部２１によって得られた手ぶれ関数を一般逆フィルタ（画像復元フィルタ）に変換する手ぶれ関数／一般逆フィルタ変換処理部２２を備えている。
【００８１】
〔３−１〕動きベクトル／手ぶれ関数変換処理部２１について
手ぶれを空間フィルタを使って表すことができる。図１０の左側の図で示される手ぶれの軌跡（カメラがぶれたときに画像上である一点が描いた軌跡、画像のぶれ量）に合わせて、オペレータの要素に重みを加え空間フィルタ処理を行うと、フィルタリング過程において画素の濃淡値が手ぶれの軌跡に応じた近傍画素の濃淡値のみを考慮するようになるので、手ぶれ画像を作成することができる。
【００８２】
この軌跡に合わせて重み付けしたオペレータのことをPoint Spread Function(PSF)と呼び、手ぶれの数学モデルとして使用する。ＰＳＦの各要素の重みは、その要素を手ぶれ軌跡が通過する時間に比例した値であって、各要素の重みの総和が１になるように正規化された値となる。すなわち、動きベクトルの大きさの逆数に比例した重みとする。手ぶれが画像に与える影響を考えたとき、遅く動いたところの方が画像に大きな影響を与えているからである。
【００８３】
図１０の中央の図は、手ぶれの動きが等速であると仮定した場合のＰＳＦを表し、図１０の右側の図は、実際の手ぶれの動きの大きさを考慮した場合のＰＳＦを表している。図１０の右側の図においては、ＰＳＦの重みの低い（動きベクトルの大きさが大きい）要素を黒く表示し、重みの高い（動きベクトルの大きさが小さい）要素を白く表示している。      
【００８４】
上記〔２−４〕で得られた動きベクトル（画像のぶれ量）は手ぶれの軌跡と、軌跡の速度をデータとして持つ。
【００８５】
ＰＳＦを作成するには、まず、手ぶれの軌跡からＰＳＦの重みをかける要素を決定する。そして、手ぶれの速度からＰＳＦの要素にかける重みを決定する。
【００８６】
上記〔２−４〕で得られた一連の動きベクトルをつなぎ合わせることで折れ線近似された手ぶれの軌跡が得られる。この軌跡は小数点以下の精度を持つが、これを整数化することでＰＳＦにおいて重みをかける要素を決定する。そのために、この実施例では、Bresenham の直線描画アルゴリズムを用いてＰＳＦにおいて重みをかける要素を決定する。Bresenham の直線描画アルゴリズムとは、デジタル画面上で任意の2 点を通る直線を引きたい時に最適なドット位置を選択するアルゴリズムである。                                    
【００８７】
Bresenham の直線描画アルゴリズムを図１１の例を用いて説明する。図１１において矢印のついた直線は動きベクトルを示している。
【００８８】
（ａ）ドット位置の原点（０，０）から出発し、動きベクトルの水平方向の要素を１つ増やす。
（ｂ）動きベクトルの垂直方向の位置を確認し、この垂直方向位置が前のドットの垂直方向位置に比べて１より大きくなった場合にはドット位置の垂直方向を１つ増やす。
（ｃ）再び動きベクトルの水平方向の要素を１つ増やす。
【００８９】
このような処理を動きベクトルの終点まで繰り返すことにより、動きベクトルが通る直線をドット位置で表現することができる。                                                
【００９０】
ＰＳＦの要素にかける重みは、動きベトクル毎にベクトルの大きさ（速度成分）が異なることを利用して決定する。重みは動きベクトルの大きさの逆数をとり、各動きベクトルに対応する要素に重みを代入する。ただし、各要素の重みの総和が１になるように、各要素の重みを正規化する。図１２に図１１の動きベクトルにより得られるＰＳＦを示す。速度の速いところ（動きベクトルの長いところ）は重みが小さくなり、速度の遅いところ（動きベクトルの短いところ）は重みが大きくなる。
【００９１】
〔３−２〕手ぶれ関数／一般逆フィルタ変換処理部２２について
画像は水平方向にＮx 画素、垂直方向にＮy 画素の解像度でデジタル化されているものとする。水平方向にｉ番目、垂直方向にｊ番目の位置にある画素の値をｐ（ｉ，ｊ）で表す。空間フィルタによる画像の変換とは、注目画素の近傍画素の畳み込みによって変換をモデル化するものである。畳み込みの係数をｈ（ｌ，ｍ）とする。ここで、簡単のため、−ｎ＜ｌ，ｍ＜ｎとすると、注目画素の変換は次式（１１）によって表現することができる。また、ｈ（ｌ，ｍ）自身を空間フィルタと呼んだり、フィルタ係数と呼んだりする。変換の性質はｈ（ｌ，ｍ）の係数値によって決まる。
【００９２】
【数１】
2007088829.tif 000003
【００９３】
デジタルカメラなどの撮像装置で点光源を観察した場合、画像の形成過程に劣化がないと仮定すれば、画像上に観察される像は、ある一点だけが０以外の画素値を持ち、それ以外の画素値は０となる。実際の撮像装置は劣化過程を含むので、点光源を観察しても、その像は一点にならず、広がった像になる。手ぶれが発生した場合、点光源は手ぶれに応じた軌跡を画面上に生成する。
【００９４】
点光源に対する観察画像の画素値に比例した値を係数として持ち、係数値の総和が１になる空間フィルタをPoint Spread Function(PSF 、点広がり関数 )と呼ぶ。この実施例では、ＰＳＦとして動きベクトル／手ぶれ関数変換処理部２１によって得られたＰＳＦを用いる。
【００９５】
ＰＳＦを縦横（２ｎ＋１）×（２ｎ＋１）の空間フィルタｈ（ｌ，ｍ）、−ｎ＜ｌ，ｍ＜ｎでモデル化するとき、各画素について、ボケの無い画像の画素値ｐ（ｉ，ｊ）とボケのある画像の画素値ｐ’（ｉ，ｊ）とは、上記式（１１）の関係になる。ここで、実際に観察できるのは、ボケた画像の画素値ｐ’（ｉ，ｊ）であり、ボケの無い画像の画素値ｐ（ｉ，ｊ）は何らかの方法で計算する必要がある。
【００９６】
上記式（１１）を全ての画素について書き並べると、次式（１２）に示すようになる。      
【００９７】
【数２】
2007088829.tif 000004
【００９８】
これらの式をまとめて行列表現することが可能であり、次式（１３）となる。ここで、Ｐは元画像をラスター走査順に一元化したものである。
【００９９】
Ｐ’＝Ｈ×Ｐ    …（１３）
【０１００】
Ｈの逆行列Ｈ-1が存在すれば、Ｐ＝Ｈ-1×Ｐを計算することによって、劣化した画像Ｐ’から劣化の無い画像Ｐを求めることが可能であるが、一般にはＨの逆行列は存在しない。逆行列が存在しない行列に対して、一般逆行列ないしは擬似逆行列と呼ばれるものが存在する。次式（１４）に一般逆行列の例を示す。                                          
【０１０１】
Ｈ* ＝（Ｈt ・Ｈ＋γ・Ｉ）-1・Ｈt   …（１４）
【０１０２】
ここでＨ* はＨの一般逆行列、Ｈt はＨの転置行列、γはスカラー、ＩはＨt ・Ｈと同じサイズの単位行列である。Ｈ* を用いて次式（１５）を計算することで、観察された手ぶれ画像Ｐ’から手ぶれが補正された画像Ｐを得ることができる。γは補正の強さを調整するパラメータである。γが小さければ強い補正処理となり、γが大きければ弱い補正処理となる。
【０１０３】
Ｐ’＝Ｈ* ×Ｐ    …（１５）
【０１０４】
画像サイズを６４０×４８０とした場合、上記式（１５）のＰは３０７，２００×１の行列、Ｈ* は３０７，２００×３０７，２００の行列となる。このような非常に大きな行列となるため、上記式（１４）、（１５）を直接用いることは実用的ではない。そこで、次のような方法で計算に用いる行列のサイズを小さくする。
【０１０５】
まず、上記式（１５）において、Ｐの元になる画像のサイズを６３×６３など、比較的小さなサイズにする。６３×６３の画像であれば、Ｐは３９６９×１の行列、Ｈ* は３９６９×３９６９の行列となる。Ｈ* はボケ画像全体を補正された画像全体に変換する行列であり、Ｈ* の各行とＰとの積は各画素の補正を行う演算に相当する。Ｈ* の真ん中の行とＰとの積は、６３×６３画素の元画像の、真ん中の画素に対する補正に該当する。Ｐは元画像をラスター走査順に一元化したものであったから、逆に、Ｈ* の真ん中の行を逆ラスター走査により２次元化することで、６３×６３のサイズの空間フィルタを構成することができる。このように構成した空間フィルタを一般逆フィルタ（以下、画像復元フィルタという）と呼ぶ。
【０１０６】
このようにして作成した実用的なサイズの空間フィルタを、大きな画像全体の各画素に順次適用することで、ボケ画像を補正することが可能となる。
【０１０７】
〔４〕画像復元処理部３について
画像復元処理部３は、図１に示すように、フイルタ処理部３１、３２を備えている。フイルタ処理部３１はメディアンフィルタを用いてフィルタ処理を行う。フイルタ処理部３２は、画像復元フィルタ計算部２によって得られた画像復元フィルタを用いてフィルタ処理を行う。フイルタ処理部３２としては、例えば、２次元ＦＩＲフィルタによって構成される。
【０１０８】
カメラによって撮影された手ぶれ画像は、フィルタ処理部３１に送られ、メディアンフィルタを用いたフィルタ処理が行われ、ノイズが除去される。フィルタ処理部３１によって得られた画像は、フィルタ処理部３２に送られる。フィルタ処理部３２では、画像復元フィルタを用いたフィルタ処理が行われ、手ぶれ画像から手ぶれのない画像が復元される。
【０１０９】
〔５〕リンギング除去処理部４についての説明
リンギング除去処理部４は、図１に示すように、エッジ強度算出部４１、加重平均係数算出部４２および加重平均処理部４３を備えている。
【０１１０】
カメラによって撮影された手ぶれ画像は、エッジ強度算出部４１に送られ、各画素毎にエッジ強度が算出される。エッジ強度の求め方について説明する。
【０１１１】
図１３に示すように、注目画素ｖ２２を中心とする３×３の領域を想定する。注目画素ｖ２２に対して、水平エッジ成分dhと垂直エッジ成分dvを算出する。エッジ成分の算出には、例えば、図１４に示すPrewitt のエッジ抽出オペレータを用いる。図１４（ａ）は水平エッジ抽出オペレータを示し、図１４（ｂ）は垂直エッジ抽出オペレータを示している。
【０１１２】
水平エッジ成分dhおよび垂直エッジ成分dvは、次式（１６）、（１７）によって求められる。
【０１１３】
dh＝v11 ＋v12 ＋v13 −v31 −v32 −v33 …（１６）
dv＝v11 ＋v21 ＋v31 −v13 −v23 −v33 …（１７）
【０１１４】
次に、水平エッジ成分dhおよび垂直エッジ成分dvから、注目画素ｖ２２のエッジ強度v ＿edgeを次式（１８）に基づいて算出する。
【０１１５】
v ＿edge＝sqrt(dh ×dh＋dv×dv）  …（１８）
【０１１６】
なお、注目画素ｖ２２のエッジ強度v ＿edgeとして、abs(dh) ＋abs(dv) を用いてもよい。また、このようにして得られたエッジ強度画像に対してさらに３×３のノイズ除去フィルタをかけてもよい。
【０１１７】
エッジ強度算出部４１によって算出された各画素のエッジ強度v ＿edgeは、加重平均係数算出部４２に与えられる。加重平均係数算出部４２は、次式（１９）に基づいて、各画素の加重平均係数ｋを算出する。
【０１１８】
If  v ＿edge＞ th  then  k＝1 
If  v ＿edge≦ th  then  k＝v ＿edge/th     …（１９）
【０１１９】
th は十分に強いエッジであることを判定するための閾値である。つまり、v ＿edgeと加重平均係数ｋとの関係は、図１５に示すような関係となる。
【０１２０】
加重平均係数算出部４２によって算出された各画素の加重平均係数ｋは、加重平均処理部４３に与えられる。画像復元処理部３によって得られた復元画像の画素値をv ＿fukugen とし、カメラによって撮像された手ぶれ画像の画素値をv ＿tebre とすると、加重平均処理部４３は、次式（２０）で表される計算を行うことにより、復元画像の画素値v ＿fukugen と手ぶれ画像の画素値v ＿tebre とを加重平均する。
【０１２１】
v ＝k ×v ＿fukugen ＋（１−ｋ）×v ＿tebre     …（２０）
【０１２２】
つまり、エッジ強度v ＿edgeが閾値ｔｈより大きな画素については、その位置に対応する復元画像のリンギングが目立たないので、画像復元処理部３によって得られた復元画像の画素値v ＿fukugen がそのまま出力される。エッジ強度v ＿edgeが閾値ｔｈ以下の画素については、エッジ強度v ＿edgeが小さいほど、復元画像のリンギングが目立つので、復元画像の度合いを弱くし、手ぶれ画像の度合いを強くする。
【図面の簡単な説明】
【０１２３】
【図１】デジタルカメラに設けられた手ぶれ補正処理回路の構成を示すブロック図である。
【図２】手ぶれ検出部１の構成を示すブロック図である。
【図３】ＨＰＦ演算部１２ａの構成例を示す電気回路図である。
【図４】図４（ａ）はＨＰＦ演算部１２ａの出力信号を示し、図４（ｂ）はＨＰＦ演算部１３ａの出力信号を示し、図４（ｃ）は露光期間においてＨＰＦ演算部１３ａの出力信号からオフセット値演算部１４ａによって算出されたオフセット値を減算した結果を示している。
【図５】逆ＨＰＦ演算部１３ａ、１３ｂの構成を示す機能ブロック図である。
【図６】オフセット値演算部１４ａによるオフセット値算出処理手順を示すフローチャートである。
【図７】オフセット値演算部１４ａによるオフセット値算出処理の他の例の手順を示すフローチャートである。
【図８】カメラの回転量θ[deg] と画面上の移動量ｄ[mm]との関係を示す模式図である。
【図９】３５[mm]フィルム換算の画像サイズと、デジタルカメラの画像サイズとを示す模式図である。
【図１０】手ぶれを表現する空間フィルタ（ＰＳＦ）を示す模式図である。
【図１１】Bresenham の直線描画アルゴリズムを説明するための模式図である。
【図１２】図１１の動きベクトルにより得られるＰＳＦを示す模式図である。
【図１３】注目画素ｖ２２を中心とする３×３の領域を示す模式図である。
【図１４】Prewitt のエッジ抽出オペレータを示す模式図である。
【図１５】エッジ強度v ＿edgeと加重平均係数ｋとの関係を示すグラフである。
【符号の説明】
【０１２４】
１  手ぶれ検出部
２  画像復元フィルタ計算部
３  画像復元処理部
４  リンギング除去処理部
１１ａ、１１ｂ  角速度センサ
１２ａ、１２ｂ  ＨＰＦ演算部
１３ａ、１３ｂ  逆ＨＰＦ演算部
１４ａ、１４ｂ  オフセット値演算部
１５ａ、１５ｂ  オフセット値減算部
１６  手ぶれ信号／動きベクトル変換処理部
【図１】
2007088829.tif 000005
【図２】
2007088829.tif 000006
【図３】
2007088829.tif 000007
【図４】
2007088829.tif 000008
【図５】
2007088829.tif 000009
【図６】
2007088829.tif 000010
【図７】
2007088829.tif 000011
【図８】
2007088829.tif 000012
【図９】
2007088829.tif 000013
【図１０】
2007088829.tif 000014
【図１１】
2007088829.tif 000015
【図１２】
2007088829.tif 000016
【図１３】
2007088829.tif 000017
【図１４】
2007088829.tif 000018
【図１５】
2007088829.tif 000019