| 【発明の名称】 |
画像処理装置及び画像処理プログラム |
| 【発明者】 |
【氏名】三木 隆永
【氏名】配野 真実
【氏名】高橋 史紀
【氏名】小松 広明
|
| 【要約】 |
【課題】手ぶれ等により劣化した画像を短時間に復元する。
【構成】撮影して得られた劣化画像G及び復元画像F並びに角速度センサ22で検出された角速度に基づいて算出されたPSFを用いて∇J算出部20は評価量Jを算出し、さらに∇Jを算出する。∇Jノルム2乗がしきい値を超える場合に復元画像Fからε・∇Jを差し引いて新たな復元画像Fを算出する処理を繰り返す。収束パラメータ計算部50は、収束パラメータεを、反復計算の回数に応じて最初は増加し、その後に減少するような値として設定することで収束速度を向上させるとともに発散を抑制する。 |
【特許請求の範囲】
【請求項1】 撮影された劣化画像Gと撮影条件に基づき決定される劣化関数Hから画像Fを復元する画像処理装置であって、 画像Fに劣化関数Hを作用させて得られる画像HFと劣化画像Gとの差を評価値Jとして算出し、前記評価値Jの勾配の大きさがしきい値以下となるまで前記画像Fの算出及び評価量Jの算出処理を繰り返し実行する演算手段と、 前記勾配に乗じることで前記反復計算の回数を調整する収束パラメータを設定する手段であって、前記収束パラメータを反復回数に対して増大した後に減少するような値に設定するパラメータ設定手段と、 を有することを特徴とする画像処理装置。 【請求項2】 請求項1記載の装置において、 前記演算手段は、前記画像Fと前記勾配に前記収束パラメータを乗じた値との差分演算を実行することで新たな画像Fを算出することを特徴とする画像処理装置。 【請求項3】 請求項1、2のいずれかに記載の装置において、 前記パラメータ設定手段は、前記収束パラメータを反復回数の関数として設定することを特徴とする画像処理装置。 【請求項4】 請求項1、2のいずれかに記載の装置において、 前記パラメータ設定手段は、前記収束パラメータを、反復回数に応じて値が増加する増加関数と反復回数に応じて値が減少する減少関数の積を用いて設定することを特徴とする画像処理装置。 【請求項5】 請求項4記載の装置において、 前記パラメータ設定手段は、前記収束パラメータを、定数αに前記勾配の大きさの2乗の逆数を乗じ、さらに反復回数に応じて値が減少する減少関数を乗じて設定することを特徴とする画像処理装置。 【請求項6】 請求項5記載の装置において、 前記パラメータ設定手段は、前記収束パラメータを、定数αに前記勾配の大きさの2乗の逆数を乗じ、さらにnを反復回数、A,B,Cをそれぞれ正の実数としてy=C−An/Bなる減少関数を乗じて設定することを特徴とする画像処理装置。 【請求項7】 請求項6記載の装置において、 前記定数A、B、Cの少なくともいずれかは、前記劣化関数Hの行列サイズに応じて設定されることを特徴とする画像処理装置。 【請求項8】 撮影された劣化画像Gと撮影条件に基づき決定される劣化関数Hから最急降下法による反復計算で画像Fを復元する画像処理装置であって、 前記劣化画像Gを記憶する第1記憶手段と、 前記復元画像Fを記憶する第2記憶手段と、 前記劣化関数Hを算出する劣化関数演算手段と、 前記劣化画像G、復元画像F、及び劣化関数からJ=‖G−HF‖2に基づいて評価量Jを算出し、さらに評価量Jの勾配である∇Jを算出する第1演算手段と、 前記∇Jのノルムの2乗を算出する第2演算手段と、 前記∇Jのノルムの2乗としきい値とを大小比較する比較手段と、 前記∇Jのノルムの2乗がしきい値以下である場合に前記復元画像Fを復元完了画像として出力し、∇Jのノルムの2乗がしきい値を超える場合に、前記∇Jに収束パラメータεを乗じた値を前記復元画像Fから差し引くことで新たな復元画像Fを算出して前記第2記憶手段に更新記憶させる制御手段と、 前記収束パラメータεを、前記反復計算の回数に応じてまず増加し、その後に減少するような値として算出する第3演算手段と、 を有することを特徴とする画像処理装置。 【請求項9】 請求項8記載の装置において、 前記第3演算手段は、前記収束パラメータεを、前記∇Jのノルムの2乗を用いて算出することを特徴とする画像処理装置。 【請求項10】 請求項8記載の装置において、 前記第3演算手段は、前記収束パラメータεを、前記∇Jのノルムの2乗と、前記反復計算の回数に応じて単調減少するような係数を用いて算出することを特徴とする画像処理装置。 【請求項11】 撮影された劣化画像Gと撮影条件に基づき決定される劣化関数Hから最急降下法による反復計算を用いて画像Fを復元する処理をコンピュータに実行させる画像処理プログラムであって、 (a)前記劣化画像G、復元画像F、及び劣化関数からJ=‖G−HF‖2に基づいて評価量Jを算出するステップと、 (b)評価量Jの勾配である∇Jを算出するステップと、 (c)前記∇Jのノルムの2乗を算出するステップと、 (d)前記∇Jのノルムの2乗としきい値とを大小比較するステップと、 (e)前記∇Jのノルムの2乗がしきい値を超える場合に、前記∇Jに収束パラメータεを乗じた値を前記復元画像Fから差し引くことで新たな復元画像Fを算出するステップと、 (f)前記∇Jのノルムの2乗が前記しきい値以下となるまで前記(a)〜(e)の処理を反復して繰り返すステップと、 をコンピュータに実行させるものであり、前記収束パラメータεは、前記反復計算の回数に応じてまず増加し、その後に減少するような値であることを特徴とする画像処理プログラム。 【請求項12】 請求項11記載のプログラムにおいて、さらに、 (g)前記収束パラメータεを、所定の係数αに前記∇Jのノルムの2乗の逆数を乗じ、さらに前記反復計算の回数に応じて単調減少する係数を乗じることで算出するステップ を有することを特徴とする画像処理プログラム。
|
【発明の詳細な説明】【技術分野】 【0001】 本発明は画像処理に関し、特に撮影時の手ぶれ等により劣化した画像を復元する技術に関する。 【背景技術】 【0002】 従来より、撮影時の手ぶれを補正すべく、光学レンズを駆動させる、あるいは撮影して得られた画像を処理して手ぶれのない画像を復元する等の処理が行われている。画像処理で復元する場合、画像劣化は、原画像をF、劣化関数をH、加法ノイズをN、劣化画像をGとした場合に、 G=HF+N と表現することができる。したがって、画像を復元する際には、 F=(G−N)/H を解くことになるが、Hは画像サイズがM×Nの場合には(M×N)×(M×N)のサイズの行列となり、実際に演算を行うことは困難である。このため、フーリエ変換により対角化して演算を行う、画像空間において最急降下法の反復計算を行う、等の方法が提案されている。なお、反復法には、上記の最急降下法の他、モーメント法、修正モーメント法、共役勾配法等がある。 【0003】 下記の特許文献1には、反復法により画像復元を行う際に、反復毎に残差を計算し、前回の残差と今回の残差との変化率がしきい値以下となったときに反復計算が収束したと判定することが開示されている。 【0004】 【特許文献1】特開2002−288653号公報 【非特許文献1】高木幹雄監修,「新編 画像解析ハンドブック」,東京大学出版会,2004年9月 【発明の開示】 【発明が解決しようとする課題】 【0005】 しかしながら、最急降下法では最適解近傍で収束が遅くなり、十分な画質を得るためには非常に大きな反復回数が必要となる。 【0006】 また、モーメント法や修正モーメント法は、前回の更新ベクトルを保持する必要があるためメモリ容量が増大する。 【0007】 また、共役勾配法は、最も収束の速い反復法とされているものの、同様に前回の更新ベクトルを保持する必要があるためメモリ容量が増大する。 【0008】 以下、最急降下法について説明する。 【0009】 図9に、デジタルカメラで撮影して得られた劣化画像から原画像を復元する際に最急降下法を用いて復元する場合のデジタルカメラの構成を示す。 【0010】 撮像光学系10はレンズやシャッタ、絞り等を含み、CCD12上に被写体像を結像する。CCD12は被写体像を画像信号に変換して出力する。CCD12からのアナログ画像信号はデジタル信号に変換された後、画像メモリ14に格納される。画像メモリ14はセレクタ16に画像データを出力し、あるいは後述の∇J(ナブラ)算出部20に出力する。セレクタ16は、画像メモリ14からの画像データと後述の差分回路36からの差分値のいずれかを選択的に出力する。セレクタ16からの出力は画像メモリ18に格納される。画像メモリ18は、画像データを∇J算出部20に出力する。∇J算出部20は、画像メモリ14からの画像データと、画像メモリ18からの画像データの∇Jを算出する。ここに、Jは一般逆フィルタの評価量であり、劣化画像G、復元画像F、劣化関数Hとした場合に、 J=‖G−HF‖2 で与えられる。上式は、評価量Jは、復元画像Fに劣化関数Hを作用させて得られる画像HFと実際の劣化画像Gとの差分の大きさで与えられることを意味する。復元画像が正しく復元されていれば、理論的にはHF=Gであって評価量は0である。評価量Jが小さいほど、復元画像Fはより良く復元されたことになる。最急降下法では、この評価量Jの勾配である∇Jの大きさ、すなわち∇Jのノルムの2乗がしきい値以下となるまで反復計算を繰り返し、しきい値以下となった時点で反復計算を終了して復元画像Fを得るものである。 【0011】 ∇J算出部20は、画像メモリ14からの画像データ(劣化画像G)と画像メモリ18からの画像データ(復元画像F)並びにCPU24のPSF(Point Spread Function:点像分布関数)算出部26からのPSF、すなわち劣化関数Hを用いて評価量Jを算出し、さらに∇Jを算出する。PSFは角速度センサ22で検出された角速度と撮像系の像倍率から導出される手ぶれによる像の動き量から算出される。算出した∇Jはノルム計算部38に出力するとともに乗算回路34に出力する。ノルム計算部38は、∇Jのノルムの2乗、つまり∇Jの大きさを算出してCPU24の画像復元制御及び反復回数制御部28に出力する。画像復元制御及び反復回数制御部28は、∇Jのノルムの2乗をしきい値と大小比較し、しきい値以下であるか否かを判定する。しきい値以下であれば∇Jのノルムは十分小さく最適解に収束したものとみなして反復計算を終了し、そのときの復元画像、つまり画像メモリ18からの画像データを画像処理部40で処理して画像メモリ42に格納した後にフラッシュメモリ等の記録媒体44に格納する。一方、∇Jのノルムの2乗がしきい値を超えていれば、いまだ復元は十分ではないとして反復計算を続行する。このとき、反復計算を有限の時間で終了させるために∇Jの大きさを調整すべく所定の収束パラメータεを乗算回路34に供給する。 【0012】 乗算回路34は、∇Jに収束パラメータεを乗じて差分回路36に出力する。差分回路36は、画像メモリ18からの画像データ、つまり今回の復元画像Fからε∇Jを差し引いてセレクタ16に出力する。セレクタ16は、ε∇Jを差し引いた画像を新たな復元画像として画像メモリ18に格納する。 【0013】 図10に、最急降下法による画像復元処理フローチャートを示す。まず、0回目の復元画像、つまり一度も復元されていない画像として撮影で得られた劣化画像を画像メモリ14に格納し、さらに画像メモリ18に格納する(S101)。次に、反復回数を示すパラメータnを0に初期化し(S102)、所定の収束パラメータεをROM30から読み込む(S103)。また、終了判定パラメータとしてしきい値ThrをROM30から読み込む(S104)。次に、反復回数nが所定の最大反復回数より小さい場合(S105)、∇Jを算出し(S106)、∇Jのノルムの2乗を算出してこれをパラメータtとする(S107)。そして、tがしきい値Thrを超えているか否かを判定し(S108)、しきい値Thrを超えている場合には復元が未だ十分ではないとして∇Jに収束パラメータεを乗じて(S109)、復元画像からε∇Jを差し引くことで新たな復元画像を生成し(S110)、tがしきい値Thr以下となるまでS105〜S110の処理を反復する。tがしきい値Thr以下となった場合、あるいはtはしきい値Thr以下とならない場合でも最大反復回数に達してしまった場合に処理を終了する。 【0014】 このように、収束パラメータεを用いることで反復計算の回数を低減させることはある程度可能であるが、この場合においても図11に示すように∇Jのノルムの2乗は反復回数に応じて低減していくものの反復回数が大きくなると収束しにくくなり、十分な速さで復元できるとは言い難い。もちろん、単に収束を早めるだけでは十分な画質で復元することができなくなる。 【0015】 本発明の目的は、復元画像の画質を維持しつつ、十分な速さで反復計算を終了させることができる画像処理装置を提供することにある。 【課題を解決するための手段】 【0016】 本発明は、撮影された劣化画像Gと撮影条件に基づき決定される劣化関数Hから画像Fを復元する画像処理装置であって、画像Fに劣化関数Hを作用させて得られる画像HFと劣化画像Gとの差を評価値Jとして算出し、前記評価値Jの勾配の大きさがしきい値以下となるまで前記画像Fの算出及び評価量Jの算出処理を繰り返し実行する演算手段と、前記勾配に乗じることで前記反復計算の回数を調整する収束パラメータを設定する手段であって、前記収束パラメータを反復回数に対して増大した後に減少するような値に設定するパラメータ設定手段とを有することを特徴とする。 【0017】 また、本発明は、撮影された劣化画像Gと撮影条件に基づき決定される劣化関数Hから最急降下法による反復計算で画像Fを復元する画像処理装置であって、前記劣化画像Gを記憶する第1記憶手段と、前記復元画像Fを記憶する第2記憶手段と、前記劣化関数Hを算出する劣化関数演算手段と、前記劣化画像G、復元画像F、及び劣化関数からJ=‖G−HF‖2に基づいて評価量Jを算出し、さらに評価量Jの勾配である∇Jを算出する第1演算手段と、前記∇Jのノルムの2乗を算出する第2演算手段と、前記∇Jのノルムの2乗としきい値とを大小比較する比較手段と、前記∇Jのノルムの2乗がしきい値以下である場合に前記復元画像Fを復元完了画像として出力し、∇Jのノルムの2乗がしきい値を超える場合に、前記∇Jに収束パラメータεを乗じた値を前記復元画像Fから差し引くことで新たな復元画像Fを算出して前記第2記憶手段に更新記憶させる制御手段と、前記収束パラメータεを、前記反復計算の回数に応じてまず増加し、その後に減少するような値として算出する第3演算手段とを有することを特徴とする。 【0018】 また、本発明は、撮影された劣化画像Gと撮影条件に基づき決定される劣化関数Hから最急降下法による反復計算を用いて画像Fを復元する処理をコンピュータに実行させる画像処理プログラムであって、 (a)前記劣化画像G、復元画像F、及び劣化関数からJ=‖G−HF‖2に基づいて評価量Jを算出するステップと、 (b)評価量Jの勾配である∇Jを算出するステップと、 (c)前記∇Jのノルムの2乗を算出するステップと、 (d)前記∇Jのノルムの2乗としきい値とを大小比較するステップと、 (e)前記∇Jのノルムの2乗がしきい値を超える場合に、前記∇Jに収束パラメータεを乗じた値を前記復元画像Fから差し引くことで新たな復元画像Fを算出するステップと、 (f)前記∇Jのノルムの2乗が前記しきい値以下となるまで前記(a)〜(e)の処理を反復して繰り返すステップと、 をコンピュータに実行させるものであり、前記収束パラメータεは、前記反復計算の回数に応じてまず増加し、その後に減少するような値であることを特徴とする。 【発明の効果】 【0019】 本発明によれば、反復計算の収束速度を向上させつつ復元画像の画質を維持することができる。本発明は例えばデジタルカメラの手ぶれ補正に適用でき、比較的短時間に良好な復元画像を得ることができる。 【発明を実施するための最良の形態】 【0020】 以下、図面に基づき本発明の実施形態について、デジタルカメラで撮影して得られた劣化画像を復元する場合を例にとり説明する。 【0021】 <基本構成> 図1に、本実施形態の基本構成を示す。本実施形態では、最急降下法で劣化画像から原画像を復元する際に、収束パラメータεを定数ではなく反復回数に応じて増減する値とする。上記のとおり、最急降下法では評価量Jの勾配である∇Jのノルムの2乗がしきい値Thr以下となるまで反復計算を実行するのであり、∇Jのノルムの2乗がしきい値Thrを超える場合には今回の復元画像Fからε∇Jを差し引いた画像を新たな復元画像Fとして設定するため、収束パラメータεは新たな復元画像をどの程度に設定するかの指標となる。反復計算を短時間あるいは短い回数で収束させるためには、εを大きく設定して今回の復元画像Fから差し引く分であるε∇Jを大きくすればよい。しかしながら、単に収束パラメータεを大きくしただけでは最適解に収束せずに発散してしまう、あるいは疑似解に収束してしまう事態が生じ得る。そこで、収束パラメータεを大きく設定する一方で、発散を防止するために収束パラメータεを小さく設定する必要もある。本実施形態では、このような2つの要求を満足させるべく、収束パラメータεを反復回数に応じて増減させ、反復回数が相対的に小さい場合には収束パラメータを増大させ、反復回数が相対的に大きくなった場合には発散を抑制するために収束パラメータを急峻に小さく設定する。 【0022】 図1において、収束パラメータを設定するための収束パラメータ設定部は、第1の乗算回路100と第2の乗算回路200を有する。 【0023】 第1の乗算回路100は、デフォルトの収束パラメータα、すなわち一定値の収束パラメータαを入力し、これにある値を乗じて反復回数に応じて増大するような収束パラメータを生成する。パラメータαに乗じる値は反復回数に応じて増大する値であれば任意の値でよい。本実施形態では、反復回数に応じて増大する値として、∇Jの大きさの逆数、つまり∇Jのノルムの2乗の逆数を用いる。∇Jのノルムの2乗は反復回数が増大するほど復元が進んで小さくなるから、その逆数は反復回数とともに増大する。しかも、∇Jのノルムの2乗は、しきい値Thrと大小比較するために算出される必要のある値であり、新たな値を算出することなくこの値を用いることができれば構成を簡易化できる。もちろん、∇Jのノルムの2乗の逆数ではなく、∇Jのノルムの逆数を用いてもよい。但し、収束パラメータαに∇Jのノルムの2乗の逆数を乗算した値をそのまま用いたのでは上記のとおり反復計算が発散してしまうおそれがある。そこで、乗算回路100の乗算結果を第2の乗算回路200に出力する。 【0024】 第2の乗算回路200は、乗算回路100の乗算結果に対し、さらにある値を乗算して反復回数が相対的に大きくなった場合に反復回数に応じて減少するような収束パラメータを生成する。このような値は反復回数に応じて減少する値、特に反復回数が大きくなると急峻に減少するような任意の値でよい。このような値は反復回数nを独立変数とした場合の減少関数として与えられ、その一例は y=C−An/B である。ここに、A、B及びCは定数である。例えば、A=2.2、B=70、C=1として、 y=1−2.2n/70 である。なお、yの値は0以上であるため0以下の場合には0にクリップする。もちろんこれは例示にすぎず、反復回数nに応じて減少する任意の関数を適用することが可能である。乗算回路200は、このような値を乗算回路100の乗算結果に乗算し、最終的な収束パラメータεを生成する。 【0025】 図2に、第1の乗算回路100及び第2の乗算回路200により生成される収束パラメータεの特性を示す。反復回数nがある値n1までは反復回数nに応じて増加し、反復回数nがn1以上になると逆に反復回数nに応じて減少する。反復回数nがn1に達するまでは収束パラメータεは増大するため、復元画像Fは順次大きく更新され、収束が速くなる。一方、反復回数nがn1以上になると逆に収束パラメータεは小さくなるため発散を抑制して最適解に収束させることが容易化される。 【0026】 図1では、収束パラメータαに対して2回の演算を施して最終的な収束パラメータεを生成しているが、もちろん1回の演算で図2に示すような特性を有する収束パラメータを生成してもよく、演算を行うことなく単にメモリにマップとして記憶させておき、このメモリを参照して収束パラメータεを得てもよい。このようなマップは反復回数nと収束パラメータεとの対応関係を規定する1次元マップであり、反復回数1回の場合は収束パラメータε1、反復回数2回の場合は収束パラメータε2、などと規定される。 【0027】 図2に示す特性は、一般に上に凸となる関数、あるいは2回微分値が負となる関数として特定できる。収束パラメータεが増加から減少に転じる変曲点である反復回数n1や、増加の傾き、減少の傾きは任意に設定できるが、画像の特性や劣化関数の特性に応じて設定することが好適である。劣化関数HはPSFとして定義され、PSFは劣化の原因が手ぶれの場合にはCCD上での点光源の軌跡を表す行列として表現できる。すなわち、CCDの光電変換面をX−Y平面とし、手ぶれによる点光源の軌跡をX−Y平面における点光源の輝度として表す。手ぶれ量が多いほど軌跡を表すための行列成分は増大する。手ぶれの度合いは行列成分の数で評価でき、手ぶれの度合いが大きく行列成分の数(行列サイズ)が増大するほど復元のための反復計算が必要となる。そこで、PSFを表す行列サイズを算出し、行列サイズに応じて上式におけるA、B、及びCの少なくともいずれかを適応的に設定する。例えば、行列サイズが増大するほど係数Aを大きく設定する等である。 【0028】 <詳細構成> 図3に、本実施形態の詳細構成を示す。図9に示す構成と同一部材については同一符号を付す。 【0029】 撮像光学系10はレンズやシャッタ、絞り等を含み、CCD12上に被写体像を結像する。レンズは単焦点レンズでもよく、ズームレンズでもよい。撮像光学系は単一でもよく複数光学系でもよい。複数光学系の場合、第1の撮像光学系は第1のCCD上に被写体像を結像し、第2の撮像光学系は第2のCCD上に被写体像を結像する。第1の撮像光学系と第2の撮像光学系は同一焦点距離を有していてもよく、異なる焦点距離を有していてもよい。また、撮像光学系10はレンズを光軸方向と垂直な2軸方向に駆動して手ぶれを補正する光学式手ぶれ補正機構を有していてもよい。本実施形態では、基本的に画像処理で手ぶれを補正するが、光学式手ぶれ補正と画像処理の手ぶれ補正とを併用し、あるいは補完的に用いてもよい。 【0030】 CCD12は、被写体像をアナログ画像信号に変換して出力する。CCD12はイメージセンサの一例であり、CMOSを用いることもできる。CCD12からのアナログ画像信号は図示しないアナログデジタル変換器によりデジタル信号に変換された後、画像メモリ14に格納される。画像メモリ14に格納される画像は、撮影時の手ぶれにより劣化した劣化画像Gである。画像メモリ14及び後段の画像メモリ18、画像メモリ42への画像データの書込及び読み出しはメモリコントローラ32で制御され、メモリコントローラ32はCPU24からの指令に応じて各画像メモリ14、18、42を制御する。画像メモリ14は劣化画像Gをセレクタ16に出力し、また∇J(ナブラ)算出部20に出力する。 【0031】 セレクタ16は、画像メモリ14からの劣化画像と差分回路36からの差分値を入力し、これらのいずれかを選択的に出力する。具体的には、最初の復元画像として劣化画像Gをセットする際には撮影された劣化画像Gを出力して画像メモリ18に格納し、反復回数が1回目以降では差分回路36からの復元画像Fを出力して画像メモリ18に格納する。画像メモリ18は、格納された復元画像Fを∇J算出部20に出力するとともに差分回路36に出力し、さらに復元が終了した場合に復元済み画像として画像処理部40に出力する。 【0032】 ∇J算出部20は、画像メモリ14からの劣化画像Gと、画像メモリ18からの復元画像Fの∇Jを算出する。ここに、Jは評価量であり、劣化画像G、復元画像F、劣化関数Hとした場合に、 J=‖G−HF‖2 で与えられる。最急降下法では、この評価量Jの勾配である∇J(あるいはgradJ)の大きさ、すなわち∇Jのノルムの2乗がしきい値以下となるまで復元画像算出、評価量J算出し、∇J算出、∇Jのノルムの2乗算出、∇Jのノルム2乗としきい値との比較の各処理を反復して実行し、しきい値以下となった時点で反復計算を終了して復元画像Fを得るものである。但し、しきい値以下となるまで無制限に反復計算を実行することは現実的ではなく、通常最大反復回数を設定し、最大反復回数に達した場合に反復計算を終了する。最大反復回数は、適用技術分野あるいはCPUの処理能力に応じて適宜設定される。 【0033】 ∇J算出部20は、画像メモリ14からの劣化画像Gと画像メモリ18からの復元画像F並びにCPU24のPSF(Point Spread Function:点像分布関数)算出部26で撮影時のユーザの手ぶれにより生じたデジタルカメラの角速度を角速度センサ22で検出することで算出されたPSF、すなわち劣化関数Hを用いて評価量Jを算出し、さらに∇Jを算出する。なお、PSFは角速度に基づき検出されるCCD12上の点光源の軌跡を行列として表現することで定義される。手ぶれが激しいとその分だけ軌跡も複雑なものとなり、軌跡を表現するための行列成分の数、すなわち行列サイズも増大する。算出した∇Jはノルム計算部38に出力するとともに乗算回路34に出力する。なお、PSF算出部26は、算出したPSFを∇J算出部20に出力するが、行列サイズを所定のしきい値と比較し、行列サイズがしきい値を超えて大きい場合には反復回数が著しく増大するとして処理を中止してもよい。この場合、CPU24は撮影された劣化画像Gを手ぶれ補正不能画像としてマーキングした上で画像メモリ42、さらには記録媒体44に格納する。 【0034】 ノルム計算部38は、∇Jのノルムの2乗、つまり∇Jの大きさを算出してCPU24の画像復元制御及び反復回数制御部28に出力する。画像復元制御及び反復回数制御部28は、∇Jのノルムの2乗をしきい値Thrと大小比較し、しきい値Thr以下であるか否かを判定する。しきい値Thrは、終了判定パラメータとしてROM30に予め格納される。しきい値Thr以下であれば∇Jのノルムは十分小さく最適解に収束したものとみなして反復計算を終了し、CPU24はそのときの復元画像F、つまり画像メモリ18に格納されている復元画像Fを画像メモリ18から読み出して画像処理部40に出力し、さらに画像メモリ42に格納する。ユーザは、画像メモリ42に格納された復元画像Fをデジタルカメラ背面に設けられたLCD等で視認し、あるいはデジタルカメラに接続されたプリンタに送信してプリントアウトする。 【0035】 一方、∇Jのノルムの2乗がしきい値Thrを超えていれば、いまだ復元は十分ではないとして反復計算を続行する。このとき、反復計算を有限の時間で終了させるために収束パラメータ計算部50は収束パラメータεを算出して乗算回路34に供給する。 【0036】 乗算回路34は、∇Jに収束パラメータεを乗じて差分回路36に出力する。差分回路36は、画像メモリ18の画像、つまり今回の復元画像Fからε∇Jを差し引くことで新たな復元画像Fを算出してセレクタ16に出力する。セレクタ16は、新たな復元画像を画像メモリ18に格納する。 【0037】 収束パラメータ計算部50は、上記のとおり新たな復元画像Fを算出するための収束パラメータεを算出するが、収束パラメータεを反復回数nがある一定回数までは反復回数nに応じて増加し、ある一定回数を超えると反復回数nに応じて減少するように算出する。具体的には、図1に示すように、係数αに対して第1関数及び第2関数を順次乗算することで収束パラメータεを算出する。係数αはROM30に予め収束パラメータ係数として格納されており、CPU24の画像復元制御及び反復回数制御部28はROM30から定数αを読み出して収束パラメータ計算部50に出力する。第1関数は反復回数の単調増加関数であり、第2関数は反復回数の単調減少関数である。収束パラメータ計算部50は2つの乗算回路100及び200を備え、(係数α*第1関数*第2関数)を演算する。第1関数は具体的には∇Jのノルムの2乗の逆数であり、第2関数はy=1−2.2n/70である。 【0038】 図4に、本実施形態の最急降下法による画像復元処理フローチャートを示す。まず、0回目の復元画像、つまり一度も復元されていない画像として撮影で得られた劣化画像Gを画像メモリ14に格納し、さらにセレクタ16を介して画像メモリ18に格納する(S201)。 【0039】 次に、反復回数を示すパラメータnを0に初期化し(S202)、収束パラメータ係数α及びmin、maxをROM30から読み込む(S203)。ここに、min及びmaxはそれぞれ収束パラメータεの有すべき下限値と上限値である。例えば下限値は1である。また、終了判定パラメータとしてしきい値ThrをROM30から読み込む(S204)。 【0040】 次に、反復回数nが所定の最大反復回数を超えているか否かを判定し(S205)、最大反復回数より小さい場合には、∇Jを算出する(S206)。具体的には、画像メモリ14から供給された劣化画像Fと画像メモリ18から供給された復元画像F(最初の演算では復元画像Fは劣化画像Gに等しい)並びにPSF算出部26から供給されたPSF、つまり劣化関数Hを用いて評価量Jを算出し、さらに∇Jを算出する。∇Jは、 ∇J=−2HT(G−HF) で算出される。 【0041】 次に、∇Jのノルムの2乗を算出してこれをパラメータtとする(S207)。算出されたパラメータtはCPU24に出力され、CPU24の画像復元制御及び反復回数制御ぬ28はパラメータtとしきい値Thrとを大小比較してパラメータtがしきい値Thrを超えているか否かを判定する(S208)。パラメータtがしきい値Thrを超えている場合には復元が未だ十分ではないとして、新たな復元画像を算出する処理に移行する。具体的には、収束パラメータεを算出し、∇Jにこの収束パラメータεを乗じて今回の復元画像Fから差し引く演算を行う。収束パラメータεは、まず係数αをパラメータtで割る(S209)。もちろん、これは係数αに∇Jのノルムの2乗の逆数を乗算することに等しい。次に、反復回数nを独立変数とする単調減少関数yの出力を乗じる(S210)。但し、収束パラメータεの上限maxを超える場合には上限値maxとし、下限minを下回る場合には下限値minに置き換える(クリッピングする)(S210)。収束パラメータεを算出した後、∇Jに収束パラメータεを乗じて(S211)、今回の復元画像Fからε∇Jを差し引くことで新たな復元画像を算出する(S212)。S205〜S212の各処理、つまり∇Jの算出、∇Jのノルムの2乗の算出、しきい値との比較、収束パラメータεの算出、新たな復元画像Fの算出の各処理はパラメータtがしきい値Thr以下となるまで繰り返し実行する。パラメータtがしきい値Thr以下となった場合、あるいはパラメータtはしきい値Thr以下とならない場合でも最大反復回数に達してしまった場合には処理を終了する。処理終了時にはそのときの復元画像Fが画像メモリ18から画像処理部40に供給され、画像処理部40でγ補正やホワイトバランス調整、エッジ強調処理等の各種処理が行われ、画像メモリ42に格納される。 【0042】 図5に、図4のS209で算出される、係数αをパラメータtで除算して得られる値の特性を示す。図において、横軸は反復回数nであり、縦軸はα/∇Jノルム2乗(つまりパラメータt)である。パラメータtは反復回数とともに減少していくから、α/∇Jノルム2乗は反復回数とともに増加していく。 【0043】 図6に、図4のS210で用いられる単調減少関数を示す。図において、横軸は反復回数nであり、縦軸は関数値y(係数αに乗じる重み係数)である。y=1−2.2n/70で定義される関数である。但し、y<0となる場合にはy=0に置き換えている。 【0044】 図7に、S210で算出される、(係数α・∇Jノルム2乗の逆数・単調減少関数y)を示す。係数αに2つの関数値を乗算することで、反復回数に対してまず増加し、その後に減少するような値が得られる。 【0045】 図8に、最終的な収束パラメータεの特性を示す。図7の値を上限max及び加減minでクリッピングした値である。上限max=4、下限min=1である。 【0046】 このように、本実施形態では収束パラメータεを図8に示すような特性として設定することで、収束速度を速めるとともに発散を抑制することができる。本願出願人は、収束パラメータεを定数とした場合に比べ、同一処理能力の下でほぼ同等の復元画像を約半分の時間で得られることを確認している。 【0047】 本実施形態の画像復元処理は、特にデジタルカメラの手ぶれ補正機能として実現することができる。すなわち、図4に示すフローチャートをデジタルカメラのCPUに実行するためのプログラムをデジタルカメラのROMにファームウェアとして格納しておき、CPUが該プログラムを順次読み出して実行し、手ぶれを伴って撮影された画像から手ぶれを除去する。手ぶれ補正は、いわゆるRAW画像に対して実行してもよく、あるいはJPEG圧縮された後の画像に対して実行してもよい。ファームウェアはユーザがデジタルカメラをインターネット等に接続し、プログラムをダウンロードすることで随時バーションアップしてもよい。また、係数α、上限max、下限min、y=C−An/Bにおける係数A、B、Cをユーザが調整可能としてもよい。このような調整は、デジタルカメラの背面LCDに表示されるユーザインタフェースを介して実現されることが望ましく、例えば収束速度優先モードと復元画像の画質優先モードを備え、ユーザがいずれかのモードを選択することでこれらのパラメータが自動調整されることが望ましい。また、本実施形態では評価量Jとして一般逆フィルタの場合を例示したが、GとHFとの差を評価する任意の評価量に適用できることは言うまでもなく、GとHFとの差を演算するTiknohov−Miller正規化法やベイズ復元法における評価量も含まれる。 【0048】 また、本実施形態の画像処理プログラムは、デジタルカメラ以外の電子機器、あるいはパーソナルコンピュータ等にインストールすることも可能である。 【図面の簡単な説明】 【0049】 【図1】実施形態の基本構成図である。 【図2】実施形態の収束パラメータの基本特性図である。 【図3】実施形態におけるデジタルカメラの構成図である。 【図4】実施形態の詳細処理フローチャートである。 【図5】反復回数とα/(∇Jノルム2乗)との関係を示すグラフ図である。 【図6】反復回数と重み係数yとの関係を示すグラフ図である。 【図7】反復回数とα/(∇Jノルム2乗)・yとの関係を示すグラフ図である。 【図8】反復回数と収束パラメータεとの関係を示すグラフ図である。 【図9】画像復元機能を有するデジタルカメラの構成図である。 【図10】画像復元処理のフローチャートである。 【図11】反復回数と∇Jノルム2乗との関係を示すグラフ図である。 【符号の説明】 【0050】 10 撮像光学系、12 CCD、14、18、42 画像メモリ、16 セレクタ、20 ∇J算出部、22 角速度センサ、24 CPU、32 メモリコントローラ、34 乗算回路、36 差分回路、38 ノルム計算部、40 画像処理部、44 記録媒体、50 収束パラメータ計算部。
|
| 【出願人】 |
【識別番号】590000846 【氏名又は名称】イーストマン コダック カンパニー 【識別番号】000227364 【氏名又は名称】日東光学株式会社
|
| 【出願日】 |
平成18年6月30日(2006.6.30) |
| 【代理人】 |
【識別番号】100075258 【弁理士】 【氏名又は名称】吉田 研二
【識別番号】100096976 【弁理士】 【氏名又は名称】石田 純
|
| 【公開番号】 |
特開2008−11424(P2008−11424A) |
| 【公開日】 |
平成20年1月17日(2008.1.17) |
| 【出願番号】 |
特願2006−182258(P2006−182258) |
|