(57)【要約】【課題】手ぶれ等により劣化した画像を短時間に復元する。【解決手段】撮影して得られた劣化画像Ｇ及び復元画像Ｆ並びに角速度センサ２２で検出された角速度に基づいて算出されたＰＳＦを用いて∇Ｊ算出部２０は評価量Ｊを算出し、さらに∇Ｊを算出する。∇Ｊノルム２乗がしきい値を超える場合に復元画像Ｆからε・∇Ｊを差し引いて新たな復元画像Ｆを算出する処理を繰り返す。収束パラメータ計算部５０は、収束パラメータεを、反復計算の回数に応じて最初は増加し、その後に減少するような値として設定することで収束速度を向上させるとともに発散を抑制する。【選択図】図３
2008011424.tif 000002
【特許請求の範囲】
【請求項１】
撮影された劣化画像Ｇと撮影条件に基づき決定される劣化関数Ｈから画像Ｆを復元する画像処理装置であって、
画像Ｆに劣化関数Ｈを作用させて得られる画像ＨＦと劣化画像Ｇとの差を評価値Ｊとして算出し、前記評価値Ｊの勾配の大きさがしきい値以下となるまで前記画像Ｆの算出及び評価量Ｊの算出処理を繰り返し実行する演算手段と、
前記勾配に乗じることで前記反復計算の回数を調整する収束パラメータを設定する手段であって、前記収束パラメータを反復回数に対して増大した後に減少するような値に設定するパラメータ設定手段と、
を有することを特徴とする画像処理装置。
【請求項２】
請求項１記載の装置において、
前記演算手段は、前記画像Ｆと前記勾配に前記収束パラメータを乗じた値との差分演算を実行することで新たな画像Ｆを算出することを特徴とする画像処理装置。
【請求項３】
請求項１、２のいずれかに記載の装置において、
前記パラメータ設定手段は、前記収束パラメータを反復回数の関数として設定することを特徴とする画像処理装置。
【請求項４】
請求項１、２のいずれかに記載の装置において、
前記パラメータ設定手段は、前記収束パラメータを、反復回数に応じて値が増加する増加関数と反復回数に応じて値が減少する減少関数の積を用いて設定することを特徴とする画像処理装置。
【請求項５】
請求項４記載の装置において、
前記パラメータ設定手段は、前記収束パラメータを、定数αに前記勾配の大きさの２乗の逆数を乗じ、さらに反復回数に応じて値が減少する減少関数を乗じて設定することを特徴とする画像処理装置。
【請求項６】
請求項５記載の装置において、
前記パラメータ設定手段は、前記収束パラメータを、定数αに前記勾配の大きさの２乗の逆数を乗じ、さらにｎを反復回数、Ａ，Ｂ，Ｃをそれぞれ正の実数としてｙ＝Ｃ−Ａn/Bなる減少関数を乗じて設定することを特徴とする画像処理装置。
【請求項７】
請求項６記載の装置において、
前記定数Ａ、Ｂ、Ｃの少なくともいずれかは、前記劣化関数Ｈの行列サイズに応じて設定されることを特徴とする画像処理装置。
【請求項８】
撮影された劣化画像Ｇと撮影条件に基づき決定される劣化関数Ｈから最急降下法による反復計算で画像Ｆを復元する画像処理装置であって、
前記劣化画像Ｇを記憶する第１記憶手段と、
前記復元画像Ｆを記憶する第２記憶手段と、
前記劣化関数Ｈを算出する劣化関数演算手段と、
前記劣化画像Ｇ、復元画像Ｆ、及び劣化関数からＪ＝‖Ｇ−ＨＦ‖2に基づいて評価量Ｊを算出し、さらに評価量Ｊの勾配である∇Ｊを算出する第１演算手段と、
前記∇Ｊのノルムの２乗を算出する第２演算手段と、
前記∇Ｊのノルムの２乗としきい値とを大小比較する比較手段と、
前記∇Ｊのノルムの２乗がしきい値以下である場合に前記復元画像Ｆを復元完了画像として出力し、∇Ｊのノルムの２乗がしきい値を超える場合に、前記∇Ｊに収束パラメータεを乗じた値を前記復元画像Ｆから差し引くことで新たな復元画像Ｆを算出して前記第２記憶手段に更新記憶させる制御手段と、
前記収束パラメータεを、前記反復計算の回数に応じてまず増加し、その後に減少するような値として算出する第３演算手段と、
を有することを特徴とする画像処理装置。
【請求項９】
請求項８記載の装置において、
前記第３演算手段は、前記収束パラメータεを、前記∇Ｊのノルムの２乗を用いて算出することを特徴とする画像処理装置。
【請求項１０】
請求項８記載の装置において、
前記第３演算手段は、前記収束パラメータεを、前記∇Ｊのノルムの２乗と、前記反復計算の回数に応じて単調減少するような係数を用いて算出することを特徴とする画像処理装置。
【請求項１１】
撮影された劣化画像Ｇと撮影条件に基づき決定される劣化関数Ｈから最急降下法による反復計算を用いて画像Ｆを復元する処理をコンピュータに実行させる画像処理プログラムであって、
（ａ）前記劣化画像Ｇ、復元画像Ｆ、及び劣化関数からＪ＝‖Ｇ−ＨＦ‖2に基づいて評価量Ｊを算出するステップと、
（ｂ）評価量Ｊの勾配である∇Ｊを算出するステップと、
（ｃ）前記∇Ｊのノルムの２乗を算出するステップと、
（ｄ）前記∇Ｊのノルムの２乗としきい値とを大小比較するステップと、
（ｅ）前記∇Ｊのノルムの２乗がしきい値を超える場合に、前記∇Ｊに収束パラメータεを乗じた値を前記復元画像Ｆから差し引くことで新たな復元画像Ｆを算出するステップと、
（ｆ）前記∇Ｊのノルムの２乗が前記しきい値以下となるまで前記（ａ）〜（ｅ）の処理を反復して繰り返すステップと、
をコンピュータに実行させるものであり、前記収束パラメータεは、前記反復計算の回数に応じてまず増加し、その後に減少するような値であることを特徴とする画像処理プログラム。
【請求項１２】
請求項１１記載のプログラムにおいて、さらに、
（ｇ）前記収束パラメータεを、所定の係数αに前記∇Ｊのノルムの２乗の逆数を乗じ、さらに前記反復計算の回数に応じて単調減少する係数を乗じることで算出するステップ
を有することを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理に関し、特に撮影時の手ぶれ等により劣化した画像を復元する技術に関する。
【背景技術】
【０００２】
従来より、撮影時の手ぶれを補正すべく、光学レンズを駆動させる、あるいは撮影して得られた画像を処理して手ぶれのない画像を復元する等の処理が行われている。画像処理で復元する場合、画像劣化は、原画像をＦ、劣化関数をＨ、加法ノイズをＮ、劣化画像をＧとした場合に、
Ｇ＝ＨＦ＋Ｎ
と表現することができる。したがって、画像を復元する際には、
Ｆ＝（Ｇ−Ｎ）／Ｈ
を解くことになるが、Ｈは画像サイズがＭ×Ｎの場合には（Ｍ×Ｎ）×（Ｍ×Ｎ）のサイズの行列となり、実際に演算を行うことは困難である。このため、フーリエ変換により対角化して演算を行う、画像空間において最急降下法の反復計算を行う、等の方法が提案されている。なお、反復法には、上記の最急降下法の他、モーメント法、修正モーメント法、共役勾配法等がある。
【０００３】
下記の特許文献１には、反復法により画像復元を行う際に、反復毎に残差を計算し、前回の残差と今回の残差との変化率がしきい値以下となったときに反復計算が収束したと判定することが開示されている。
【０００４】
【特許文献１】特開２００２−２８８６５３号公報
【非特許文献１】高木幹雄監修，「新編  画像解析ハンドブック」，東京大学出版会，２００４年９月
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、最急降下法では最適解近傍で収束が遅くなり、十分な画質を得るためには非常に大きな反復回数が必要となる。
【０００６】
また、モーメント法や修正モーメント法は、前回の更新ベクトルを保持する必要があるためメモリ容量が増大する。
【０００７】
また、共役勾配法は、最も収束の速い反復法とされているものの、同様に前回の更新ベクトルを保持する必要があるためメモリ容量が増大する。
【０００８】
以下、最急降下法について説明する。
【０００９】
図９に、デジタルカメラで撮影して得られた劣化画像から原画像を復元する際に最急降下法を用いて復元する場合のデジタルカメラの構成を示す。
【００１０】
撮像光学系１０はレンズやシャッタ、絞り等を含み、ＣＣＤ１２上に被写体像を結像する。ＣＣＤ１２は被写体像を画像信号に変換して出力する。ＣＣＤ１２からのアナログ画像信号はデジタル信号に変換された後、画像メモリ１４に格納される。画像メモリ１４はセレクタ１６に画像データを出力し、あるいは後述の∇Ｊ（ナブラ）算出部２０に出力する。セレクタ１６は、画像メモリ１４からの画像データと後述の差分回路３６からの差分値のいずれかを選択的に出力する。セレクタ１６からの出力は画像メモリ１８に格納される。画像メモリ１８は、画像データを∇Ｊ算出部２０に出力する。∇Ｊ算出部２０は、画像メモリ１４からの画像データと、画像メモリ１８からの画像データの∇Ｊを算出する。ここに、Ｊは一般逆フィルタの評価量であり、劣化画像Ｇ、復元画像Ｆ、劣化関数Ｈとした場合に、
Ｊ＝‖Ｇ−ＨＦ‖2
で与えられる。上式は、評価量Ｊは、復元画像Ｆに劣化関数Ｈを作用させて得られる画像ＨＦと実際の劣化画像Ｇとの差分の大きさで与えられることを意味する。復元画像が正しく復元されていれば、理論的にはＨＦ＝Ｇであって評価量は０である。評価量Ｊが小さいほど、復元画像Ｆはより良く復元されたことになる。最急降下法では、この評価量Ｊの勾配である∇Ｊの大きさ、すなわち∇Ｊのノルムの２乗がしきい値以下となるまで反復計算を繰り返し、しきい値以下となった時点で反復計算を終了して復元画像Ｆを得るものである。
【００１１】
∇Ｊ算出部２０は、画像メモリ１４からの画像データ（劣化画像Ｇ）と画像メモリ１８からの画像データ（復元画像Ｆ）並びにＣＰＵ２４のＰＳＦ（Point Spread Function：点像分布関数）算出部２６からのＰＳＦ、すなわち劣化関数Ｈを用いて評価量Ｊを算出し、さらに∇Ｊを算出する。ＰＳＦは角速度センサ２２で検出された角速度と撮像系の像倍率から導出される手ぶれによる像の動き量から算出される。算出した∇Ｊはノルム計算部３８に出力するとともに乗算回路３４に出力する。ノルム計算部３８は、∇Ｊのノルムの２乗、つまり∇Ｊの大きさを算出してＣＰＵ２４の画像復元制御及び反復回数制御部２８に出力する。画像復元制御及び反復回数制御部２８は、∇Ｊのノルムの２乗をしきい値と大小比較し、しきい値以下であるか否かを判定する。しきい値以下であれば∇Ｊのノルムは十分小さく最適解に収束したものとみなして反復計算を終了し、そのときの復元画像、つまり画像メモリ１８からの画像データを画像処理部４０で処理して画像メモリ４２に格納した後にフラッシュメモリ等の記録媒体４４に格納する。一方、∇Ｊのノルムの２乗がしきい値を超えていれば、いまだ復元は十分ではないとして反復計算を続行する。このとき、反復計算を有限の時間で終了させるために∇Ｊの大きさを調整すべく所定の収束パラメータεを乗算回路３４に供給する。
【００１２】
乗算回路３４は、∇Ｊに収束パラメータεを乗じて差分回路３６に出力する。差分回路３６は、画像メモリ１８からの画像データ、つまり今回の復元画像Ｆからε∇Ｊを差し引いてセレクタ１６に出力する。セレクタ１６は、ε∇Ｊを差し引いた画像を新たな復元画像として画像メモリ１８に格納する。
【００１３】
図１０に、最急降下法による画像復元処理フローチャートを示す。まず、０回目の復元画像、つまり一度も復元されていない画像として撮影で得られた劣化画像を画像メモリ１４に格納し、さらに画像メモリ１８に格納する（Ｓ１０１）。次に、反復回数を示すパラメータｎを０に初期化し（Ｓ１０２）、所定の収束パラメータεをＲＯＭ３０から読み込む（Ｓ１０３）。また、終了判定パラメータとしてしきい値ＴｈｒをＲＯＭ３０から読み込む（Ｓ１０４）。次に、反復回数ｎが所定の最大反復回数より小さい場合（Ｓ１０５）、∇Ｊを算出し（Ｓ１０６）、∇Ｊのノルムの２乗を算出してこれをパラメータｔとする（Ｓ１０７）。そして、ｔがしきい値Ｔｈｒを超えているか否かを判定し（Ｓ１０８）、しきい値Ｔｈｒを超えている場合には復元が未だ十分ではないとして∇Ｊに収束パラメータεを乗じて（Ｓ１０９）、復元画像からε∇Ｊを差し引くことで新たな復元画像を生成し（Ｓ１１０）、ｔがしきい値Ｔｈｒ以下となるまでＳ１０５〜Ｓ１１０の処理を反復する。ｔがしきい値Ｔｈｒ以下となった場合、あるいはｔはしきい値Ｔｈｒ以下とならない場合でも最大反復回数に達してしまった場合に処理を終了する。
【００１４】
このように、収束パラメータεを用いることで反復計算の回数を低減させることはある程度可能であるが、この場合においても図１１に示すように∇Ｊのノルムの２乗は反復回数に応じて低減していくものの反復回数が大きくなると収束しにくくなり、十分な速さで復元できるとは言い難い。もちろん、単に収束を早めるだけでは十分な画質で復元することができなくなる。
【００１５】
本発明の目的は、復元画像の画質を維持しつつ、十分な速さで反復計算を終了させることができる画像処理装置を提供することにある。
【課題を解決するための手段】
【００１６】
本発明は、撮影された劣化画像Ｇと撮影条件に基づき決定される劣化関数Ｈから画像Ｆを復元する画像処理装置であって、画像Ｆに劣化関数Ｈを作用させて得られる画像ＨＦと劣化画像Ｇとの差を評価値Ｊとして算出し、前記評価値Ｊの勾配の大きさがしきい値以下となるまで前記画像Ｆの算出及び評価量Ｊの算出処理を繰り返し実行する演算手段と、前記勾配に乗じることで前記反復計算の回数を調整する収束パラメータを設定する手段であって、前記収束パラメータを反復回数に対して増大した後に減少するような値に設定するパラメータ設定手段とを有することを特徴とする。
【００１７】
また、本発明は、撮影された劣化画像Ｇと撮影条件に基づき決定される劣化関数Ｈから最急降下法による反復計算で画像Ｆを復元する画像処理装置であって、前記劣化画像Ｇを記憶する第１記憶手段と、前記復元画像Ｆを記憶する第２記憶手段と、前記劣化関数Ｈを算出する劣化関数演算手段と、前記劣化画像Ｇ、復元画像Ｆ、及び劣化関数からＪ＝‖Ｇ−ＨＦ‖2に基づいて評価量Ｊを算出し、さらに評価量Ｊの勾配である∇Ｊを算出する第１演算手段と、前記∇Ｊのノルムの２乗を算出する第２演算手段と、前記∇Ｊのノルムの２乗としきい値とを大小比較する比較手段と、前記∇Ｊのノルムの２乗がしきい値以下である場合に前記復元画像Ｆを復元完了画像として出力し、∇Ｊのノルムの２乗がしきい値を超える場合に、前記∇Ｊに収束パラメータεを乗じた値を前記復元画像Ｆから差し引くことで新たな復元画像Ｆを算出して前記第２記憶手段に更新記憶させる制御手段と、前記収束パラメータεを、前記反復計算の回数に応じてまず増加し、その後に減少するような値として算出する第３演算手段とを有することを特徴とする。
【００１８】
また、本発明は、撮影された劣化画像Ｇと撮影条件に基づき決定される劣化関数Ｈから最急降下法による反復計算を用いて画像Ｆを復元する処理をコンピュータに実行させる画像処理プログラムであって、
（ａ）前記劣化画像Ｇ、復元画像Ｆ、及び劣化関数からＪ＝‖Ｇ−ＨＦ‖2に基づいて評価量Ｊを算出するステップと、
（ｂ）評価量Ｊの勾配である∇Ｊを算出するステップと、
（ｃ）前記∇Ｊのノルムの２乗を算出するステップと、
（ｄ）前記∇Ｊのノルムの２乗としきい値とを大小比較するステップと、
（ｅ）前記∇Ｊのノルムの２乗がしきい値を超える場合に、前記∇Ｊに収束パラメータεを乗じた値を前記復元画像Ｆから差し引くことで新たな復元画像Ｆを算出するステップと、
（ｆ）前記∇Ｊのノルムの２乗が前記しきい値以下となるまで前記（ａ）〜（ｅ）の処理を反復して繰り返すステップと、
をコンピュータに実行させるものであり、前記収束パラメータεは、前記反復計算の回数に応じてまず増加し、その後に減少するような値であることを特徴とする。
【発明の効果】
【００１９】
本発明によれば、反復計算の収束速度を向上させつつ復元画像の画質を維持することができる。本発明は例えばデジタルカメラの手ぶれ補正に適用でき、比較的短時間に良好な復元画像を得ることができる。
【発明を実施するための最良の形態】
【００２０】
以下、図面に基づき本発明の実施形態について、デジタルカメラで撮影して得られた劣化画像を復元する場合を例にとり説明する。
【００２１】
＜基本構成＞
図１に、本実施形態の基本構成を示す。本実施形態では、最急降下法で劣化画像から原画像を復元する際に、収束パラメータεを定数ではなく反復回数に応じて増減する値とする。上記のとおり、最急降下法では評価量Ｊの勾配である∇Ｊのノルムの２乗がしきい値Ｔｈｒ以下となるまで反復計算を実行するのであり、∇Ｊのノルムの２乗がしきい値Ｔｈｒを超える場合には今回の復元画像Ｆからε∇Ｊを差し引いた画像を新たな復元画像Ｆとして設定するため、収束パラメータεは新たな復元画像をどの程度に設定するかの指標となる。反復計算を短時間あるいは短い回数で収束させるためには、εを大きく設定して今回の復元画像Ｆから差し引く分であるε∇Ｊを大きくすればよい。しかしながら、単に収束パラメータεを大きくしただけでは最適解に収束せずに発散してしまう、あるいは疑似解に収束してしまう事態が生じ得る。そこで、収束パラメータεを大きく設定する一方で、発散を防止するために収束パラメータεを小さく設定する必要もある。本実施形態では、このような２つの要求を満足させるべく、収束パラメータεを反復回数に応じて増減させ、反復回数が相対的に小さい場合には収束パラメータを増大させ、反復回数が相対的に大きくなった場合には発散を抑制するために収束パラメータを急峻に小さく設定する。
【００２２】
図１において、収束パラメータを設定するための収束パラメータ設定部は、第１の乗算回路１００と第２の乗算回路２００を有する。
【００２３】
第１の乗算回路１００は、デフォルトの収束パラメータα、すなわち一定値の収束パラメータαを入力し、これにある値を乗じて反復回数に応じて増大するような収束パラメータを生成する。パラメータαに乗じる値は反復回数に応じて増大する値であれば任意の値でよい。本実施形態では、反復回数に応じて増大する値として、∇Ｊの大きさの逆数、つまり∇Ｊのノルムの２乗の逆数を用いる。∇Ｊのノルムの２乗は反復回数が増大するほど復元が進んで小さくなるから、その逆数は反復回数とともに増大する。しかも、∇Ｊのノルムの２乗は、しきい値Ｔｈｒと大小比較するために算出される必要のある値であり、新たな値を算出することなくこの値を用いることができれば構成を簡易化できる。もちろん、∇Ｊのノルムの２乗の逆数ではなく、∇Ｊのノルムの逆数を用いてもよい。但し、収束パラメータαに∇Ｊのノルムの２乗の逆数を乗算した値をそのまま用いたのでは上記のとおり反復計算が発散してしまうおそれがある。そこで、乗算回路１００の乗算結果を第２の乗算回路２００に出力する。
【００２４】
第２の乗算回路２００は、乗算回路１００の乗算結果に対し、さらにある値を乗算して反復回数が相対的に大きくなった場合に反復回数に応じて減少するような収束パラメータを生成する。このような値は反復回数に応じて減少する値、特に反復回数が大きくなると急峻に減少するような任意の値でよい。このような値は反復回数ｎを独立変数とした場合の減少関数として与えられ、その一例は
ｙ＝Ｃ−Ａn/B
である。ここに、Ａ、Ｂ及びＣは定数である。例えば、Ａ＝２．２、Ｂ＝７０、Ｃ＝１として、
ｙ＝１−２．２n/70
である。なお、ｙの値は０以上であるため０以下の場合には０にクリップする。もちろんこれは例示にすぎず、反復回数ｎに応じて減少する任意の関数を適用することが可能である。乗算回路２００は、このような値を乗算回路１００の乗算結果に乗算し、最終的な収束パラメータεを生成する。
【００２５】
図２に、第１の乗算回路１００及び第２の乗算回路２００により生成される収束パラメータεの特性を示す。反復回数ｎがある値ｎ１までは反復回数ｎに応じて増加し、反復回数ｎがｎ１以上になると逆に反復回数ｎに応じて減少する。反復回数ｎがｎ１に達するまでは収束パラメータεは増大するため、復元画像Ｆは順次大きく更新され、収束が速くなる。一方、反復回数ｎがｎ１以上になると逆に収束パラメータεは小さくなるため発散を抑制して最適解に収束させることが容易化される。
【００２６】
図１では、収束パラメータαに対して２回の演算を施して最終的な収束パラメータεを生成しているが、もちろん１回の演算で図２に示すような特性を有する収束パラメータを生成してもよく、演算を行うことなく単にメモリにマップとして記憶させておき、このメモリを参照して収束パラメータεを得てもよい。このようなマップは反復回数ｎと収束パラメータεとの対応関係を規定する１次元マップであり、反復回数１回の場合は収束パラメータε１、反復回数２回の場合は収束パラメータε２、などと規定される。
【００２７】
図２に示す特性は、一般に上に凸となる関数、あるいは２回微分値が負となる関数として特定できる。収束パラメータεが増加から減少に転じる変曲点である反復回数ｎ１や、増加の傾き、減少の傾きは任意に設定できるが、画像の特性や劣化関数の特性に応じて設定することが好適である。劣化関数ＨはＰＳＦとして定義され、ＰＳＦは劣化の原因が手ぶれの場合にはＣＣＤ上での点光源の軌跡を表す行列として表現できる。すなわち、ＣＣＤの光電変換面をＸ−Ｙ平面とし、手ぶれによる点光源の軌跡をＸ−Ｙ平面における点光源の輝度として表す。手ぶれ量が多いほど軌跡を表すための行列成分は増大する。手ぶれの度合いは行列成分の数で評価でき、手ぶれの度合いが大きく行列成分の数（行列サイズ）が増大するほど復元のための反復計算が必要となる。そこで、ＰＳＦを表す行列サイズを算出し、行列サイズに応じて上式におけるＡ、Ｂ、及びＣの少なくともいずれかを適応的に設定する。例えば、行列サイズが増大するほど係数Ａを大きく設定する等である。
【００２８】
＜詳細構成＞
図３に、本実施形態の詳細構成を示す。図９に示す構成と同一部材については同一符号を付す。
【００２９】
撮像光学系１０はレンズやシャッタ、絞り等を含み、ＣＣＤ１２上に被写体像を結像する。レンズは単焦点レンズでもよく、ズームレンズでもよい。撮像光学系は単一でもよく複数光学系でもよい。複数光学系の場合、第１の撮像光学系は第１のＣＣＤ上に被写体像を結像し、第２の撮像光学系は第２のＣＣＤ上に被写体像を結像する。第１の撮像光学系と第２の撮像光学系は同一焦点距離を有していてもよく、異なる焦点距離を有していてもよい。また、撮像光学系１０はレンズを光軸方向と垂直な２軸方向に駆動して手ぶれを補正する光学式手ぶれ補正機構を有していてもよい。本実施形態では、基本的に画像処理で手ぶれを補正するが、光学式手ぶれ補正と画像処理の手ぶれ補正とを併用し、あるいは補完的に用いてもよい。
【００３０】
ＣＣＤ１２は、被写体像をアナログ画像信号に変換して出力する。ＣＣＤ１２はイメージセンサの一例であり、ＣＭＯＳを用いることもできる。ＣＣＤ１２からのアナログ画像信号は図示しないアナログデジタル変換器によりデジタル信号に変換された後、画像メモリ１４に格納される。画像メモリ１４に格納される画像は、撮影時の手ぶれにより劣化した劣化画像Ｇである。画像メモリ１４及び後段の画像メモリ１８、画像メモリ４２への画像データの書込及び読み出しはメモリコントローラ３２で制御され、メモリコントローラ３２はＣＰＵ２４からの指令に応じて各画像メモリ１４、１８、４２を制御する。画像メモリ１４は劣化画像Ｇをセレクタ１６に出力し、また∇Ｊ（ナブラ）算出部２０に出力する。
【００３１】
セレクタ１６は、画像メモリ１４からの劣化画像と差分回路３６からの差分値を入力し、これらのいずれかを選択的に出力する。具体的には、最初の復元画像として劣化画像Ｇをセットする際には撮影された劣化画像Ｇを出力して画像メモリ１８に格納し、反復回数が１回目以降では差分回路３６からの復元画像Ｆを出力して画像メモリ１８に格納する。画像メモリ１８は、格納された復元画像Ｆを∇Ｊ算出部２０に出力するとともに差分回路３６に出力し、さらに復元が終了した場合に復元済み画像として画像処理部４０に出力する。
【００３２】
∇Ｊ算出部２０は、画像メモリ１４からの劣化画像Ｇと、画像メモリ１８からの復元画像Ｆの∇Ｊを算出する。ここに、Ｊは評価量であり、劣化画像Ｇ、復元画像Ｆ、劣化関数Ｈとした場合に、
Ｊ＝‖Ｇ−ＨＦ‖2
で与えられる。最急降下法では、この評価量Ｊの勾配である∇Ｊ（あるいはｇｒａｄＪ）の大きさ、すなわち∇Ｊのノルムの２乗がしきい値以下となるまで復元画像算出、評価量Ｊ算出し、∇Ｊ算出、∇Ｊのノルムの２乗算出、∇Ｊのノルム２乗としきい値との比較の各処理を反復して実行し、しきい値以下となった時点で反復計算を終了して復元画像Ｆを得るものである。但し、しきい値以下となるまで無制限に反復計算を実行することは現実的ではなく、通常最大反復回数を設定し、最大反復回数に達した場合に反復計算を終了する。最大反復回数は、適用技術分野あるいはＣＰＵの処理能力に応じて適宜設定される。
【００３３】
∇Ｊ算出部２０は、画像メモリ１４からの劣化画像Ｇと画像メモリ１８からの復元画像Ｆ並びにＣＰＵ２４のＰＳＦ（Point Spread Function：点像分布関数）算出部２６で撮影時のユーザの手ぶれにより生じたデジタルカメラの角速度を角速度センサ２２で検出することで算出されたＰＳＦ、すなわち劣化関数Ｈを用いて評価量Ｊを算出し、さらに∇Ｊを算出する。なお、ＰＳＦは角速度に基づき検出されるＣＣＤ１２上の点光源の軌跡を行列として表現することで定義される。手ぶれが激しいとその分だけ軌跡も複雑なものとなり、軌跡を表現するための行列成分の数、すなわち行列サイズも増大する。算出した∇Ｊはノルム計算部３８に出力するとともに乗算回路３４に出力する。なお、ＰＳＦ算出部２６は、算出したＰＳＦを∇Ｊ算出部２０に出力するが、行列サイズを所定のしきい値と比較し、行列サイズがしきい値を超えて大きい場合には反復回数が著しく増大するとして処理を中止してもよい。この場合、ＣＰＵ２４は撮影された劣化画像Ｇを手ぶれ補正不能画像としてマーキングした上で画像メモリ４２、さらには記録媒体４４に格納する。
【００３４】
ノルム計算部３８は、∇Ｊのノルムの２乗、つまり∇Ｊの大きさを算出してＣＰＵ２４の画像復元制御及び反復回数制御部２８に出力する。画像復元制御及び反復回数制御部２８は、∇Ｊのノルムの２乗をしきい値Ｔｈｒと大小比較し、しきい値Ｔｈｒ以下であるか否かを判定する。しきい値Ｔｈｒは、終了判定パラメータとしてＲＯＭ３０に予め格納される。しきい値Ｔｈｒ以下であれば∇Ｊのノルムは十分小さく最適解に収束したものとみなして反復計算を終了し、ＣＰＵ２４はそのときの復元画像Ｆ、つまり画像メモリ１８に格納されている復元画像Ｆを画像メモリ１８から読み出して画像処理部４０に出力し、さらに画像メモリ４２に格納する。ユーザは、画像メモリ４２に格納された復元画像Ｆをデジタルカメラ背面に設けられたＬＣＤ等で視認し、あるいはデジタルカメラに接続されたプリンタに送信してプリントアウトする。
【００３５】
一方、∇Ｊのノルムの２乗がしきい値Ｔｈｒを超えていれば、いまだ復元は十分ではないとして反復計算を続行する。このとき、反復計算を有限の時間で終了させるために収束パラメータ計算部５０は収束パラメータεを算出して乗算回路３４に供給する。
【００３６】
乗算回路３４は、∇Ｊに収束パラメータεを乗じて差分回路３６に出力する。差分回路３６は、画像メモリ１８の画像、つまり今回の復元画像Ｆからε∇Ｊを差し引くことで新たな復元画像Ｆを算出してセレクタ１６に出力する。セレクタ１６は、新たな復元画像を画像メモリ１８に格納する。
【００３７】
収束パラメータ計算部５０は、上記のとおり新たな復元画像Ｆを算出するための収束パラメータεを算出するが、収束パラメータεを反復回数ｎがある一定回数までは反復回数ｎに応じて増加し、ある一定回数を超えると反復回数ｎに応じて減少するように算出する。具体的には、図１に示すように、係数αに対して第１関数及び第２関数を順次乗算することで収束パラメータεを算出する。係数αはＲＯＭ３０に予め収束パラメータ係数として格納されており、ＣＰＵ２４の画像復元制御及び反復回数制御部２８はＲＯＭ３０から定数αを読み出して収束パラメータ計算部５０に出力する。第１関数は反復回数の単調増加関数であり、第２関数は反復回数の単調減少関数である。収束パラメータ計算部５０は２つの乗算回路１００及び２００を備え、（係数α＊第１関数＊第２関数）を演算する。第１関数は具体的には∇Ｊのノルムの２乗の逆数であり、第２関数はｙ＝１−２．２n/70である。
【００３８】
図４に、本実施形態の最急降下法による画像復元処理フローチャートを示す。まず、０回目の復元画像、つまり一度も復元されていない画像として撮影で得られた劣化画像Ｇを画像メモリ１４に格納し、さらにセレクタ１６を介して画像メモリ１８に格納する（Ｓ２０１）。
【００３９】
次に、反復回数を示すパラメータｎを０に初期化し（Ｓ２０２）、収束パラメータ係数α及びｍｉｎ、ｍａｘをＲＯＭ３０から読み込む（Ｓ２０３）。ここに、ｍｉｎ及びｍａｘはそれぞれ収束パラメータεの有すべき下限値と上限値である。例えば下限値は１である。また、終了判定パラメータとしてしきい値ＴｈｒをＲＯＭ３０から読み込む（Ｓ２０４）。
【００４０】
次に、反復回数ｎが所定の最大反復回数を超えているか否かを判定し（Ｓ２０５）、最大反復回数より小さい場合には、∇Ｊを算出する（Ｓ２０６）。具体的には、画像メモリ１４から供給された劣化画像Ｆと画像メモリ１８から供給された復元画像Ｆ（最初の演算では復元画像Ｆは劣化画像Ｇに等しい）並びにＰＳＦ算出部２６から供給されたＰＳＦ、つまり劣化関数Ｈを用いて評価量Ｊを算出し、さらに∇Ｊを算出する。∇Ｊは、
∇Ｊ＝−２ＨT（Ｇ−ＨＦ）
で算出される。
【００４１】
次に、∇Ｊのノルムの２乗を算出してこれをパラメータｔとする（Ｓ２０７）。算出されたパラメータｔはＣＰＵ２４に出力され、ＣＰＵ２４の画像復元制御及び反復回数制御ぬ２８はパラメータｔとしきい値Ｔｈｒとを大小比較してパラメータｔがしきい値Ｔｈｒを超えているか否かを判定する（Ｓ２０８）。パラメータｔがしきい値Ｔｈｒを超えている場合には復元が未だ十分ではないとして、新たな復元画像を算出する処理に移行する。具体的には、収束パラメータεを算出し、∇Ｊにこの収束パラメータεを乗じて今回の復元画像Ｆから差し引く演算を行う。収束パラメータεは、まず係数αをパラメータｔで割る（Ｓ２０９）。もちろん、これは係数αに∇Ｊのノルムの２乗の逆数を乗算することに等しい。次に、反復回数ｎを独立変数とする単調減少関数ｙの出力を乗じる（Ｓ２１０）。但し、収束パラメータεの上限ｍａｘを超える場合には上限値ｍａｘとし、下限ｍｉｎを下回る場合には下限値ｍｉｎに置き換える（クリッピングする）（Ｓ２１０）。収束パラメータεを算出した後、∇Ｊに収束パラメータεを乗じて（Ｓ２１１）、今回の復元画像Ｆからε∇Ｊを差し引くことで新たな復元画像を算出する（Ｓ２１２）。Ｓ２０５〜Ｓ２１２の各処理、つまり∇Ｊの算出、∇Ｊのノルムの２乗の算出、しきい値との比較、収束パラメータεの算出、新たな復元画像Ｆの算出の各処理はパラメータｔがしきい値Ｔｈｒ以下となるまで繰り返し実行する。パラメータｔがしきい値Ｔｈｒ以下となった場合、あるいはパラメータｔはしきい値Ｔｈｒ以下とならない場合でも最大反復回数に達してしまった場合には処理を終了する。処理終了時にはそのときの復元画像Ｆが画像メモリ１８から画像処理部４０に供給され、画像処理部４０でγ補正やホワイトバランス調整、エッジ強調処理等の各種処理が行われ、画像メモリ４２に格納される。
【００４２】
図５に、図４のＳ２０９で算出される、係数αをパラメータｔで除算して得られる値の特性を示す。図において、横軸は反復回数ｎであり、縦軸はα／∇Ｊノルム２乗（つまりパラメータｔ）である。パラメータｔは反復回数とともに減少していくから、α／∇Ｊノルム２乗は反復回数とともに増加していく。
【００４３】
図６に、図４のＳ２１０で用いられる単調減少関数を示す。図において、横軸は反復回数ｎであり、縦軸は関数値ｙ（係数αに乗じる重み係数）である。ｙ＝１−２．２n/70で定義される関数である。但し、ｙ＜０となる場合にはｙ＝０に置き換えている。
【００４４】
図７に、Ｓ２１０で算出される、（係数α・∇Ｊノルム２乗の逆数・単調減少関数ｙ）を示す。係数αに２つの関数値を乗算することで、反復回数に対してまず増加し、その後に減少するような値が得られる。
【００４５】
図８に、最終的な収束パラメータεの特性を示す。図７の値を上限ｍａｘ及び加減ｍｉｎでクリッピングした値である。上限ｍａｘ＝４、下限ｍｉｎ＝１である。
【００４６】
このように、本実施形態では収束パラメータεを図８に示すような特性として設定することで、収束速度を速めるとともに発散を抑制することができる。本願出願人は、収束パラメータεを定数とした場合に比べ、同一処理能力の下でほぼ同等の復元画像を約半分の時間で得られることを確認している。
【００４７】
本実施形態の画像復元処理は、特にデジタルカメラの手ぶれ補正機能として実現することができる。すなわち、図４に示すフローチャートをデジタルカメラのＣＰＵに実行するためのプログラムをデジタルカメラのＲＯＭにファームウェアとして格納しておき、ＣＰＵが該プログラムを順次読み出して実行し、手ぶれを伴って撮影された画像から手ぶれを除去する。手ぶれ補正は、いわゆるＲＡＷ画像に対して実行してもよく、あるいはＪＰＥＧ圧縮された後の画像に対して実行してもよい。ファームウェアはユーザがデジタルカメラをインターネット等に接続し、プログラムをダウンロードすることで随時バーションアップしてもよい。また、係数α、上限ｍａｘ、下限ｍｉｎ、ｙ＝Ｃ−Ａn/Bにおける係数Ａ、Ｂ、Ｃをユーザが調整可能としてもよい。このような調整は、デジタルカメラの背面ＬＣＤに表示されるユーザインタフェースを介して実現されることが望ましく、例えば収束速度優先モードと復元画像の画質優先モードを備え、ユーザがいずれかのモードを選択することでこれらのパラメータが自動調整されることが望ましい。また、本実施形態では評価量Ｊとして一般逆フィルタの場合を例示したが、ＧとＨＦとの差を評価する任意の評価量に適用できることは言うまでもなく、ＧとＨＦとの差を演算するＴｉｋｎｏｈｏｖ−Ｍｉｌｌｅｒ正規化法やベイズ復元法における評価量も含まれる。
【００４８】
また、本実施形態の画像処理プログラムは、デジタルカメラ以外の電子機器、あるいはパーソナルコンピュータ等にインストールすることも可能である。
【図面の簡単な説明】
【００４９】
【図１】実施形態の基本構成図である。
【図２】実施形態の収束パラメータの基本特性図である。
【図３】実施形態におけるデジタルカメラの構成図である。
【図４】実施形態の詳細処理フローチャートである。
【図５】反復回数とα／（∇Ｊノルム２乗）との関係を示すグラフ図である。
【図６】反復回数と重み係数ｙとの関係を示すグラフ図である。
【図７】反復回数とα／（∇Ｊノルム２乗）・ｙとの関係を示すグラフ図である。
【図８】反復回数と収束パラメータεとの関係を示すグラフ図である。
【図９】画像復元機能を有するデジタルカメラの構成図である。
【図１０】画像復元処理のフローチャートである。
【図１１】反復回数と∇Ｊノルム２乗との関係を示すグラフ図である。
【符号の説明】
【００５０】
１０  撮像光学系、１２  ＣＣＤ、１４、１８、４２  画像メモリ、１６  セレクタ、２０  ∇Ｊ算出部、２２  角速度センサ、２４  ＣＰＵ、３２  メモリコントローラ、３４  乗算回路、３６  差分回路、３８  ノルム計算部、４０  画像処理部、４４  記録媒体、５０  収束パラメータ計算部。
【図１】
2008011424.tif 000003
【図２】
2008011424.tif 000004
【図３】
2008011424.tif 000005
【図４】
2008011424.tif 000006
【図５】
2008011424.tif 000007
【図６】
2008011424.tif 000008
【図７】
2008011424.tif 000009
【図８】
2008011424.tif 000010
【図９】
2008011424.tif 000011
【図１０】
2008011424.tif 000012
【図１１】
2008011424.tif 000013