がけた画像ずがけた画像の埩元

歪んだ画像を埩元するこずは、画像凊理タスクで最も興味深い重芁な問題の1぀です。理論的および実甚的な芳点からです。 特殊なケヌスは、䞍適切な焊点ずがやけのためにがやけおいたす-これらの欠陥は、あなたがよく知っおいるものですが、修正するのは非垞に困難です-それらは蚘事のトピックによっお遞択されたものです。 残りの歪みノむズ、䞍適切な露出、歪みにより、人類は効果的に察凊するこずを孊び、適切なツヌルがすべおの自尊心のある写真゚ディタヌにありたす。



なぜグリヌスず焊点がけを陀去するために実質的に䜕もないのか䞍鮮明なマスクはカりントされない-これは原則的に䞍可胜でしょうか 実際、それは可胜です-察応する数孊的装眮は玄70幎前に開発され始めたしたが、他の倚くの画像凊理アルゎリズムず同様に、これらすべおは最近になっお広く䜿甚されおいたす。 ここで、すごい効果のデモンストレヌションずしお、いく぀かの写真







私は拷問されたレナを䜿わなかったが、ノェネツィアの私の写真を芋぀けた。 右の画像は、巊から正盎に取埗され、48ビット圢匏のようなトリックを䜿甚するこずなくこの堎合、元の画像が100埩元されたす-巊は人為的にがやけた最も䞀般的なPNGです。 結果は印象的ですが...実際にはそれほど単玔ではありたせん。 猫の䞋で理論ず実際の結果の詳现なレビュヌ。

泚意、たくさんのPNG画像



はじめに



遠くから始めたしょう。 倚くの人々は、がかしは䞍可逆的な操䜜であり、情報は完党に倱われるず信じおいたす。 各ピクセルがスポットに倉わり、すべおが混ざり合い、倧きながかし半埄で画像党䜓に均䞀な色が埗られたす。 これは完党に真実ではありたせん-すべおの情報はいく぀かの法埋に埓っお単に再配垃され、いく぀かの留保によっお明確に埩元するこずができたす。 䟋倖は、がかし半埄の幅を持぀画像の゚ッゞのみです-完党な埩元はそこでは䞍可胜です。



1次元の堎合の小さな䟋を䜿甚しお、これを「指で」実挔したす。倀を持぀ピクセルの行があるず想像しおください。

x 1 | x 2 | x 3 | x 4 ...-オリゞナル画像



歪みの埌、各ピクセルの倀は巊の倀ず合蚈されたす。 x ' i = x i + x i-1 。 理論的には、2で割る必芁がありたすが、簡単にするためにこれを省略したす。 その結果、ピクセル倀を持぀がやけた画像ができたす

x 1 + x 0 | x 2 + x 1 | x 3 + x 2 | x 4 + x 3 ...-がやけた画像



次に、スキヌムに埓っおチェヌンに埓っお倀を順次枛算しお埩元しようずしたす-1番目は2番目のピクセルから、2番目は3番目から、3番目は4番目から、ずいうようになりたす。

x 1 + x 0 | x 2 -x 0 | x 3 + x 0 | x 4 -x 0 ...-埩元された画像



その結果、がやけた画像の代わりに、元の画像が埗られ、そのピクセルには、笊号が亀互に倉わる未知の定数x 0が远加されたした。 これはすでにはるかに優れおいたす-この定数は芖芚的に遞択でき、倀x 1にほが等しいず仮定でき、隣接ピクセルの倀ができる限り「ゞャンプ」するなどの基準で自動的に遞択できたす。 ただし、ノむズを远加するずすぐにすべおが倉化したす垞に実際の画像にありたす。 説明したスキヌムでは、各ステップで、総成分ぞのノむズの寄䞎が蓄積され、最終的には完党に受け入れられない結果をもたらす可胜性がありたすが、これたで芋おきたように、埩元はそのような原始的な方法でも非垞に珟実的です。



歪みプロセスモデル



それでは、これらの歪みず埩元のプロセスに぀いお、より正匏で科孊的な説明に移りたしょう。 フルカラヌ画像を凊理するには、RGBカラヌチャンネルごずに必芁なすべおのステップを繰り返すだけで十分であるずいう仮定の䞋で、グレヌスケヌルの癜黒画像のみを考慮したす。 次の衚蚘法を玹介したす。

fx、y -歪みのない元の画像

hx、yは歪み関数です

nx、y -加法性ノむズ

gx、yは歪みの結果です。 結果ずしお芳察されるものがやけた画像たたはピンがけした画像



歪みプロセスのモデルを次のように定匏化したす。

gx、y= hx、y* fx、y+ nx、y 1



歪んだ画像を埩元するタスクは、元の画像の最適な近䌌f 'x、yを芋぀けるこずです。 各コンポヌネントをより詳现に怜蚎しおください。 fx、yずgx、yでは、すべおが明確です。 しかし、関数hx、y に぀いおは、いく぀かの蚀葉を蚀う必芁がありたす-どんな感じですか 歪みの過皋で、元の画像の各ピクセルは、ピンがけの堎合はスポットになり、単玔なグリヌスの堎合はセグメントになりたす。 たたは、反察に、歪んだ画像の各ピクセルは元の画像の特定の近傍のピクセルから「組み立おられる」ずいうこずもできたす。 これらはすべお互いに重なり合っおおり、その結果、画像が歪んでしたいたす。 これは、1぀のピクセルがスメアたたは収集される法則に埓っお、歪み関数ず呌ばれたす。 他の同矩語は、PSF点広がり関数、぀たり点の分垃関数、歪曲挔算子の栞、カヌネルなどです。 この関数の次元は、原則ずしお、画像自䜓の次元よりも小さいです。たずえば、「指で」の䟋の最初の怜査では、関数の次元は2でした。 各ピクセルは2぀で構成されおいたした。



歪み関数



兞型的な歪み関数がどのように芋えるか芋おみたしょう。 以䞋では、Matlabツヌルを䜿甚したす.Matlabツヌルは、そのような目的のために既に暙準になっおいたす。これには、さたざたな画像凊理実隓に必芁なすべおのものが含たれおおりだけでなく、アルゎリズム自䜓に集䞭しお、すべおのルヌチン䜜業を関数ラむブラリにシフトできたす。 ただし、このためにはパフォヌマンスを支払う必芁がありたす。 そこで、PSFに戻っお、その皮類の䟋を瀺したす。





fspecial関数によるガりスがかしの堎合のPSF「ガりス」、30、8。





fspecial機胜「モヌション」、40、45を䜿甚した最滑の堎合のPSF。



歪み関数を別の関数この堎合は画像に適甚する操䜜は、畳み蟌みず呌ばれたす。 元の画像の䞀郚の領域は、歪んだ画像の1ピクセルに瞮小されたす。 通垞の乗算​​ず混同しないように、挔算子「*」で指定したす 数孊的には、次元M x Nの画像fず次元mxnの歪み関数hに察しお、次のように蚘述されたす。



2



ここで、a =m-1/ 2、b =n-1/ 2です。 畳み蟌みの反察の操䜜はデコンボリュヌションず呌ばれ、このような問題の解決は非垞に重芁です。



ノむズモデル



ノむズの原因ずなる最埌の項、匏1のnx、yを考慮する必芁がありたす。 デゞタルセンサヌのノむズの原因は倧きく異なる可胜性がありたすが、䞻な原因は熱倉動ず暗電流です。 ノむズ倀は、ISO倀、マトリックスタむプ、ピクセルサむズ、枩床、電磁干枉などの倚くの芁因の圱響も受けたす。ほずんどの堎合、ノむズはガりス平均ず分散の2぀のパラメヌタヌによっお決定されたすであり、盞関もありたせん画像ずずもに、ピクセルの座暙に䟝存したせん。 最埌の3぀の仮定は、今埌の䜜業にずっお非垞に重芁です。



畳み蟌み定理



回埩問題の初期定匏化に戻りたしょう-ノむズを忘れずに、䜕らかの方法で畳み蟌みを逆にする必芁がありたす。 匏2から、 g x、yからfx、y を取埗するこずはそれほど容易ではないこずがわかりたす。「正面」ず呌ばれるものを決定するず、巚倧な方皋匏系が埗られたす。 しかし、 フヌリ゚倉換は私たちの助けになりたす。詳现に぀いおは説明したせん。このトピックに぀いおはすでに倚くのこずが述べられおいたす。 そのため、空間領域での畳み蟌み挔算は、呚波数領域での通垞の乗算​​さらに、行列乗算ではなく、芁玠ごずの乗算ず同等であるず述べるような畳み蟌み定理がありたす。 したがっお、逆畳み蟌み挔算は、呚波数領域での陀算ず同等です。぀たり、次のように蚘述できたす。

3



ここで、 Hu、v、Fu、vは察応する関数のフヌリ゚画像です。 したがっお、匏1の歪みプロセスは、呚波数領域で次のように曞き換えるこずができたす。

4



逆フィルタリング



すぐにこの等匏をHu、vに分割し、元の画像の次の掚定倀F ^ u、vを取埗するよう求めたす。

5

これは逆フィルタリングず呌ばれたすが、実際にはほずんど機胜したせん。 なぜそうですか この質問に答えるために、匏5の最埌の項を芋おみたしょう。関数Hu、vがれロたたはれロに近い倀を取る堎合、この項の寄䞎が支配的になりたす。 これはほずんどの堎合、実際の䟋で芋られたす-これを説明するために、フヌリ゚倉換埌のスペクトルがどのように芋えるか思い出しおみたしょう。



元の画像を撮り、





それをグレヌスケヌルに倉換し、Matlabを䜿甚しお、スペクトルを取埗したす。



% Load image I = imread('image_src.png'); figure(1); imshow(I); title(' '); % Convert image into grayscale I = rgb2gray(I); % Compute Fourier Transform and center it fftRes = fftshift(fft2(I)); % Show result figure(2); imshow(mat2gray(log(1+abs(fftRes)))); title('FFT -   ( )'); figure(3); imshow(mat2gray(angle(fftRes))); title('FFT -  ');
      
      









その結果、振幅スペクトルず䜍盞スペクトルの2぀のコンポヌネントが埗られたす。 ちなみに、倚くの人はこの段階を忘れおいたす。 振幅スペクトルは、察数目盛で瀺されおいるこずに泚意しおください。 その倀は倧きく異なりたす-䞭心は数癟䞇の最倧倀であり数癟䞇のオヌダヌ、䞭心から遠ざかるに぀れお急速にほがれロたで枛少したす。 このため、逆フィルタリングはれロたたはほがれロのノむズ倀でのみ機胜したす。 次のスクリプトを䜿甚しお、実際にこれを瀺したしょう。

 % Load image I = im2double(imread('image_src.png')); figure(1); imshow(I); title(' '); % Blur image Blurred = imfilter(I, PSF,'circular','conv' ); figure(2); imshow(Blurred); title(' '); % Add noise noise_mean = 0; noise_var = 0.0; Blurred = imnoise(Blurred, 'gaussian', noise_mean, noise_var); % Deconvolution figure(3); imshow(deconvwnr(Blurred, PSF, 0)); title('');
      
      







  noise_var = 0.0000001 noise_var = 0.000005 


非垞に小さなノむズの远加でさえ、著しい干枉に぀ながり、それがこの方法の実際の応甚を倧きく制限するこずが明らかに芋られたす。



デコンボリュヌションの既存のアプロヌチ



しかし、画像内のノむズの存圚を考慮に入れるアプロヌチがありたす-最も有名なものの1぀は、Wienerフィルタヌです。 圌は、画像ずノむズをランダムプロセスず芋なし、これらの倀の暙準偏差が最小になるように、歪みのない画像fの掚定倀f 'を芋぀けたす。 この偏差の最小倀は、呚波数領域の関数で達成されたす。

6

この結果は、1942幎にWienerによっお埗られたした。 ここでは詳现な結論を述べたせんが、興味がある人はここでそれを芋るこずができたす 。 ここでの関数Sは、それぞれノむズず元の画像の゚ネルギヌスペクトルを瀺しおいたす-これらの量はほずんど知られおいないため、S n / S fの郚分は 、信号察雑音比ずしおほが蚘述できる定数Kに眮き換えられたす。



次の方法は、「リンクによる平滑化最小二乗フィルタリング」、他の名前「Tikhonovフィルタリング」、「Tikhonov正則化」です。 圌の考えは、察応する最適化問題のさらなる解決策を甚いお、問題を行列圢匏で定匏化するこずです。 この゜リュヌションは次のように曞かれおいたす。

7

ここで、 yは正則化パラメヌタヌ、 Pu、vはラプラス挔算子3 * 3行列のフヌリ゚倉換です。



別の興味深いアプロヌチは、リチャヌド゜ン1972ずルヌシヌ1974によっお独立しお提案されたした。 このメ゜ッドは、「ルヌシヌ・リチャヌド゜ンメ゜ッド」ず呌ばれたす。 その際立った特城は、最初の3぀ずは異なり、非線圢であるこずです。これにより、最高の結果が埗られる可胜性がありたす。 2番目の機胜-メ゜ッドは反埩的であるため、反埩を停止するための基準で問題が発生したす。 基本的な考え方は、画像がポア゜ン分垃に埓うず想定される最尀法を䜿甚するこずです。 蚈算匏は、フヌリ゚倉換を䜿甚せずに非垞に簡単です-すべおが空間領域で行われたす

8

ここで、シンボル「*」は、前述のように、畳み蟌み挔算を瀺したす。 この方法は、倩文写真を凊理するプログラムで広く䜿甚されおいたす。デフォトコンボリュヌションフォト゚ディタのようにシャヌプでないマスクの代わりにを䜿甚するこずが事実䞊の暙準です。 䟋はAstra Imageです。ここにデコンボリュヌションの䟋がありたす。 この方法の蚈算の耇雑さは非垞に倧きく、反埩回数に応じお平均的な写真を凊理するのに、䜕時間も、さらには䜕日もかかるこずがありたす。



怜蚎䞭の最埌のメ゜ッド、たたはむしろ、珟圚積極的に開発および開発されおいるメ゜ッドのファミリヌ党䜓は、ブラむンドデコンボリュヌションです。 以前のすべおの方法では、PSFの歪み関数は正確に既知であるず想定されおいたしたが、実際にはそうではなく、通垞、PSFは可芖歪みの性質によっおのみ既知です。 ブラむンドデコンボリュヌションは、これを考慮に入れるための単なる詊みです。 原則は非垞に簡単です。詳现に入らない堎合、PSFの最初の近䌌が遞択され、デコンボリュヌションはいずれかの方法を䜿甚しお実行されたす。その埌、品質レベルが䜕らかの基準によっお決定され、それに基づいおPSF関数が掗緎され、目的の結果が埗られるたで反埩が繰り返されたす



緎習する



さお、理論で、すべお-緎習に移りたしょう、画像にリストされた方法を人工的ながかしずノむズず比范するこずから始めたしょう。





 % Load image I = im2double(imread('image_src.png')); figure(1); imshow(I); title(' '); % Blur image PSF = fspecial('disk', 15); Blurred = imfilter(I, PSF,'circular','conv' ); % Add noise noise_mean = 0; noise_var = 0.00001; Blurred = imnoise(Blurred, 'gaussian', noise_mean, noise_var); figure(2); imshow(Blurred); title(' '); estimated_nsr = noise_var / var(Blurred(:)); % Restore image figure(3), imshow(deconvwnr(Blurred, PSF, estimated_nsr)), title('Wiener'); figure(4); imshow(deconvreg(Blurred, PSF)); title('Regul'); figure(5); imshow(deconvblind(Blurred, PSF, 100)); title('Blind'); figure(6); imshow(deconvlucy(Blurred, PSF, 100)); title('Lucy');
      
      





結果





りィナヌフィルタヌ





チホノフ正則化





ルヌシヌリチャヌド゜ンフィルタヌ





ブラむンドデコンボリュヌション



おわりに



そしお、最初の郚分の最埌で、実際の画像の䟋を少し觊れたす。 それ以前は、すべおの歪みは人為的なものでした。もちろん、走っお勉匷するのに適しおいたすが、実際の写真でこれがどのように機胜するかを芋るのは非垞に興味深いです。 Canon 500D DSLRで撮圱したこのような写真の䞀䟋を次に瀺したす。







次に、簡単なスクリプトを実行したす。



 % Load image I = im2double(imread('IMG_REAL.PNG')); figure(1); imshow(I); title(' '); %PSF PSF = fspecial('disk', 8); noise_mean = 0; noise_var = 0.0001; estimated_nsr = noise_var / var(I(:)); I = edgetaper(I, PSF); figure(2); imshow(deconvwnr(I, PSF, estimated_nsr)); title('');
      
      





そしお、次の結果が埗られたす。







ご芧のように、画像に新しい詳现が衚瀺され、明瞭床ははるかに高くなりたしたが、干枉は察照的な境界で「リンギング」の圢で珟れたした。



実際のグリヌスを䜿甚した䟋-その実装では、カメラを䞉脚に取り付け、比范的遅いシャッタヌスピヌドを蚭定し、シャッタヌを攟した瞬間に均䞀な動きが埗られたした。





スクリプトはほが同じで、PSFタむプのみが「モヌション」になりたす。



 % Load image I = im2double(imread('IMG_REAL_motion_blur.PNG')); figure(1); imshow(I); title(' '); %PSF PSF = fspecial('motion', 14, 0); noise_mean = 0; noise_var = 0.0001; estimated_nsr = noise_var / var(I(:)); I = edgetaper(I, PSF); figure(2); imshow(deconvwnr(I, PSF, estimated_nsr)); title('');
      
      





結果





再び、品質が著しく向䞊したした-窓ず車のフレヌムが区別可胜になりたした。 アヌティファクトは、以前のデフォヌカスされた䟋ずはすでに異なっおいたす。



これで面癜いず最初の郚分を終了したす。

第2郚では、実際の画像の凊理の問題に焊点を圓おたす-PSFの構築ず評䟡、より耇雑で高床なデコンボリュヌション技術、リンギングなどの欠陥の陀去方法、既存の゜フトりェアのレビュヌず比范などを怜蚎したす。



PS少し前に、新しいバヌゞョンのPhotoshopでがやけた写真を修正するこずに関する蚘事がハブで公開されたした

グリヌスを陀去するための同様の技術おそらくPhotoshopで䜿甚されるものを䜿甚したい堎合は、 このリンクを䜿甚しおアプリケヌションのデモバヌゞョンをダりンロヌドし、回埩䟋を参照し、操䜜の原則に぀いお読んでください。



文孊



ゎンザレスR.、りッズR.デゞタル画像凊理

Gonzalez R.、Woods R.、Eddins S.MATLABでのデゞタル画像凊理



UPD 続行するリンク



  - 
りラゞミヌル・ナゞコフ



All Articles