Rekonstrukcja obrazu - usuwanie rozmycia (image deblurring)

Podobne dokumenty
Analiza obrazów - sprawozdanie nr 2

Rekonstrukcja obrazu (Image restoration)

Filtracja obrazu operacje kontekstowe

Filtracja obrazu operacje kontekstowe

Transformata Fouriera i analiza spektralna

Przetwarzanie obrazu

Politechnika Świętokrzyska. Laboratorium. Cyfrowe przetwarzanie sygnałów. Ćwiczenie 8. Filtracja uśredniająca i statystyczna.

Filtracja obrazów. w dziedzinie częstotliwości. w dziedzinie przestrzennej

Podstawy Przetwarzania Sygnałów

Filtracja w domenie przestrzeni

Mirosław Zając Politechnika Łódzka, Instytut Mechatroniki i Systemów Informatycznych

Rozpoznawanie Twarzy i Systemy Biometryczne

Promotor: dr Marek Pawełczyk. Marcin Picz

WYDZIAŁ FIZYKI I INFORMATYKI STOSOWANEJ

Wprowadzenie do przetwarzania obrazów

FFT i dyskretny splot. Aplikacje w DSP

Spośród licznych filtrów nieliniowych najlepszymi właściwościami odznacza się filtr medianowy prosty i skuteczny.

Projekt 2: Filtracja w domenie przestrzeni

FILTRACJE W DZIEDZINIE CZĘSTOTLIWOŚCI

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 7 AiR III

W wielu obliczeniach w matematyce bądź fizyce wykonanie niektórych kroków zależy od spełnienia warunku.

Adaptacyjne Przetwarzanie Sygnałów. Filtracja adaptacyjna w dziedzinie częstotliwości

Cyfrowe Przetwarzanie Obrazów i Sygnałów

RÓWNANIA NIELINIOWE Maciej Patan

Diagnostyka obrazowa

Diagnostyka obrazowa

Elementy wspo łczesnej teorii inwersji

WOJSKOWA AKADEMIA TECHNICZNA

Przekształcenia kontekstowe. Filtry nieliniowe Typowy przykład usuwania zakłóceń z obrazu

Diagnostyka obrazowa

METODY NUMERYCZNE. wykład. konsultacje: wtorek 10:00-11:30 środa 10:00-11:30. dr inż. Grażyna Kałuża pokój

9. Dyskretna transformata Fouriera algorytm FFT

Filtr Kalmana. Struktury i Algorytmy Sterowania Wykład 1-2. prof. dr hab. inż. Mieczysław A. Brdyś mgr inż. Tomasz Zubowicz

WYKŁAD 3. Przykłady zmian w obrazie po zastosowaniu Uniwersalnego Operatora Punktowego

Diagnostyka obrazowa

Analiza szeregów czasowych: 3. Filtr Wienera

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Iteracyjne rozwiązywanie równań

DYSKRETNA TRANSFORMACJA FOURIERA

Rozwiązywanie układów równań liniowych

Kolejny krok iteracji polega na tym, że przechodzimy do następnego wierzchołka, znajdującego się na jednej krawędzi z odnalezionym już punktem, w

Cyfrowe Przetwarzanie Obrazów i Sygnałów

Ćwiczenie 4. Filtry o skończonej odpowiedzi impulsowej (SOI)

5. Rozwiązywanie układów równań liniowych

PRZETWARZANIE SYGNAŁÓW

Przetwarzanie obrazów rastrowych macierzą konwolucji

Matematyka stosowana i metody numeryczne

ANALIZA SYGNAŁÓ W JEDNÓWYMIARÓWYCH

OBLICZANIE POCHODNYCH FUNKCJI.

Laboratorium Metod Optymalizacji

2. Próbkowanie Sygnały okresowe (16). Trygonometryczny szereg Fouriera (17). Częstotliwość Nyquista (20).

Automatyczne rozpoznawanie mowy - wybrane zagadnienia / Ryszard Makowski. Wrocław, Spis treści

Wstęp do metod numerycznych Zadania numeryczne 2016/17 1

Egzamin z Metod Numerycznych ZSI, Egzamin, Gr. A

Aproksymacja funkcji a regresja symboliczna

Implementacja filtru Canny ego

Ćwiczenia z grafiki komputerowej 5 FILTRY. Miłosz Michalski. Institute of Physics Nicolaus Copernicus University. Październik 2015

Przetwarzanie obrazów wykład 4

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

3. Macierze i Układy Równań Liniowych

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu

Praca dyplomowa magisterska

Transformaty. Kodowanie transformujace

3. Interpolacja. Interpolacja w sensie Lagrange'a (3.1) Dana jest funkcja y= f x określona i ciągła w przedziale [a ;b], która

Analiza szeregów czasowych: 2. Splot. Widmo mocy.

Technika audio część 2

8. PODSTAWY ANALIZY NIELINIOWEJ

ADAPTACYJNE PRZETWARZANIE SYGNAŁÓW LABORATORIUM. Ćwiczenie 1. Modelowanie i analiza widmowa dyskretnych sygnałów losowych

WOJSKOWA AKADEMIA TECHNICZNA

Metoda zaburz-obserwuj oraz metoda wspinania

Algorytmy detekcji częstotliwości podstawowej

Laboratorium Cyfrowego Przetwarzania Obrazów

Implementacja rozmytych systemów wnioskujących w zdaniach regulacji

[d(i) y(i)] 2. Do wyprowadzenia algorytmu RLS posłuży kryterium autokorelacyjne: J n = e 2 (i) i=1. λ n i [d(i) y(i)] 2 λ (0, 1]

Optymalizacja ciągła

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Analiza szeregów czasowych: 2. Splot. Widmo mocy.

Metodyka i system dopasowania protez słuchu w oparciu o badanie percepcji sygnału mowy w szumie

W celu obliczenia charakterystyki częstotliwościowej zastosujemy wzór 1. charakterystyka amplitudowa 0,

Algorytm grupowania danych typu kwantyzacji wektorów

Przetwarzanie obrazów. Grupy metod przetwarzania obrazu. Przetwarzanie jednopunktowe. Przetwarzanie jednopunktowe. Przetwarzanie jednopunktowe

1 Układy równań liniowych

1 Wprowadzenie do algorytmiki

Modyfikacja schematu SCPF obliczeń energii polaryzacji

Laboratorium Optyki Falowej

KADD Metoda najmniejszych kwadratów funkcje nieliniowe

Rozwiązywanie równań nieliniowych

Estymacja parametrów Wybrane zagadnienia implementacji i wykorzystania

Kompresja dźwięku w standardzie MPEG-1

Metody numeryczne I Równania nieliniowe

Analiza obrazu. wykład 3. Marek Jan Kasprowicz Uniwersytet Rolniczy 2009

Algorytmy graficzne. Nieliniowa filtracja obrazów monochromatycznych

Układy transmisji bezprzewodowej w technice scalonej, wybrane zagadnienia

Analiza i Przetwarzanie Obrazów

Filtracja pomiarów z głowic laserowych

Zaawansowane metody numeryczne

Komputerowe przetwarzanie obrazu Laboratorium 5

2. Szybka transformata Fouriera

Metoda graficzna może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład):

x y

Transkrypt:

Rekonstrukcja obrazu - usuwanie rozmycia (image deblurring) W trakcie rejestracji obrazu występuje wiele czynników powodujących degradację jakości zarejestrowanego obrazu. Poza szumami jedną z podstawowych wad obrazu jest jego rozmycie. Wynikać może ono najczęściej z dwóch przyczyń: źle ustawionej ostrości, ruchu kamery w trakcie akwizycji.

Podział algorytmów usuwania rozmycia Algorytmy usuwania rozmycia obrazu można zasadniczo podzielić na dwie kategorie: blind deconvolution - nie mamy wiedzy o funkcji przejścia PSF systemu akwizycji obrazu. Funkcja PSF jest estymowana na podstawie obrazu i następnie wykorzystywana do eliminacji efektu rozmycia, regular deconvolution - znan jest funkcja przejścia PSF systemu akwizycji obrazu i wykorzystywana jest do eliminacji rozmycia. inverse filtering - funkcja podstawowa Wiener Deconvolution - wymaga estymaty szumu regularization filter Richardson-Lucy deconvolution

Inverse Filtering Jeżeli znany jest dobry model funkcji powodującej rozmycie obrazu, najszybszą metodą jest zastosowanie filtru odwrotnego. Wadą takiego rozwiąznie jest to, że filtr ten jest filtrem górnoprzepustowym co powoduje, że w przypadku obecności szumu w obrazie jego działanie powoduje powiększenie szumu. Przykładami metod wykorzystujących funkcje odwrotną są: thresholding, metoda iteracyjna.

Metoda 1: Progowanie (Thresholding) Model obrazu rozmytego można opisać równaniem gdzie f jest obrazem oryginalnym, b jest filtrem rozmywającym, g jest rozmytym obrazem. W celu uzyskania obrazu oryginalnego, konieczne jest wykonanie splotu obrazu rozmytego z filtrem odwrotnym fo funkcji rozmywającej. Problemem jest określenie funkcji h? Jeżeli wyznaczymy DFT funkcji b B=DFT2(b), to otrzymamy następującą funkcję

W idealnym przypadku można dokonać inwersji wszystkich elementów funkcji B w celu uzyskania filtru górnoprzepustowego. Jednak wiele elementów funkcji B ma wartości bliskie lub równe zero. Odwrócenie tych elementów spowoduje, że współczynniki będą dążyć do nieskończonosci. W celu unikniecia tego zjawiska wprowadza sie progowanie opisane następująca zależnoscią: Czym większa jest wartość graniczna tym dokładniejszy jest filtr odwrotny. W praktycznych realizacjach, występuje problem z obróbka wartosci dążących do nieskończonosci w związku z tym wygodniej jest ograniczyć wartosci funkcji B zanim wyznczona zostanie funkcja odwrotna. Wartość n jest ustawiono stosunkowo blisko zera, w przypadku obrazów o małym szumie.

Przyklad dla wartości n=0.0001. Warto zaznaczyć, że wynik jest bliski obrazowi oryginlnemu.

Ponieważ filtr odwrotny jest filterm górnoprzepustowym, to nie działa on poprawnie dla obrazów zaszumionych. Istnieje sprzeczność pomiędzy wyostrzaniem i odszumianiem. Przykład obrazu zaszumionego. n=0.2. Można trochę zmniejszyć wpływ szumu zwiekszajac n, ale wpłynie to wtedy na działanie filtru usuwającego rozmycie.

Przykładowy kod w Matlabie N=256; n=.2; f=freadbin('lenna.256',n,n); figure(1) imagesc(f) colormap(gray) b=ones(4,4)/4^2; F=fft2(f); B=fft2(b,N,N); G=F.*B; g=ifft2(g)+10*randn(n,n); G=fft2(g); figure(2) imagesc(abs(ifft2(g))) colormap(gray) BF=find(abs(B)<n); %B(BF)=max(max(B))/1.5; B(BF)=n; H=ones(N,N)./B; I=G.*H; im=abs(ifft2(i)); figure(3) imagesc(im) colormap(gray

Method 2: Procedura iteracyjna (Iterative Procedure) Idea metody polega na odgadnięciu f bazujac na g i uaktualnieniu odgadniętej funkcji w każdej iteracji gdzie g jest początkową wartością bazująca na g. Jeżeli oba równania przekształcimy do dziedziny częstotliwościowej to otrzymamy Rozwiązujac je iteracyjnie otrzymuje sie Solving for recursively, we get W związku z tym jeżeli dąży do zera jeżeli k dąży do nieskończonosci, to otrzymujemy wynik będący funkcja odwrotną. W rzeczywistosci metoda ta nie daje takiego samego wyniku jak funkcja odwrotna, ale jest mniej czuła na szumy w obrazie. Praktyczna realizacja. Na początku należy określić λ, które spełnia równanie w związku z czym musi być dodatnią wartością w zakresie od 0 do 1. Czym będzie wieksza, tym szybsza będzie zbieżność, lecz w przypadku za dużej wartości algorytm moze stracić zbieżność. Kompromisem jest duży krok na poczatku i zmniejszanie go w kolejnych iteracjach.

Przykład pokazuje niezaszumiony obraz po 150 iteracjach, startując od 0.1 i zmniejszając wartość o 10% co 25 iteracji. Obraz jest ostrzejszy niż obraz rozmyty, jednak wynik jest gorszy nizuzyskany dla funkcji odwrotnej.

Kolejny przykład pokazuje obraz zaszumiony po wykonaniu 150 iteracji. Uzyskany obraz jest trochę lepszy niż obraz zaszumiony przekształcony przez funkcję odwrotną.

Przykładowy kod w Matlabie N=256; lambda=0.1; f=freadbin('lenna.256',n,n); figure(1) imagesc(f) colormap(gray) F=fft2(f); b=ones(4,4)/16; B=fft2(b,N,N); G=F.*B; %g=ifft2(g)+10*randn(n,n); %G=fft2(g); figure(2) imagesc(abs(ifft2(g))) colormap(gray) K=lambda*G; for l=1:1500, if mod(l,25)==0 lambda=lambda/5; end A=G-K.*B; K=K+lambda*A; if mod(l,50)==0 l sum(sum(a)) figure(3) imagesc(abs(ifft2(k))) colormap(gray) pause end end

Filtr Wienera (Wiener Filtering) Filtracja za pomocą funkcji odwrotnej wykorzystująca operację splotu, stosowana jest wtedy kiedy obraz jest rozmyty przez znana funkcję dolnoprzepustową i umozliwia usyskanie obrazu oryginalnego. Wadą tej metody jest duża czułość na szum. Rozwiązanie problemu filtracji powinno zapewniać kompromis pomiędzy szumem i rozmyciem. Optymalnym rozwiązaniem w takiej sytuacji jest filtr Wienera, który łączy w optymalny sposób wygładzanie z filtracja odwrotną. W efekcie jednocześnie zmniejsza rozmycie i usuwa szum. Filtr Wienera jest optymalny w sensie minimalizacji błędu średnikwadratowego. Filtr Wienera jest liniowym estymatorem obrazu oryginalnego i bazuje na obliczeniach statystycznych.

W dziedzinie częstotliwości może on być opisany nastepująca zależnością gdzie jest spektrum mocy obrazu oryginalnego i addytywnego szumu. Można zauważyć, że ma on dwie oddzielne części, jedną związaną z filtracją odwrotną i drugą związaną z wygładzaniem szumu. W efekcie filtr ten realizuje filtracje odwrotną (górnoprzepustową) oraz usuwanie szumu (dolnoprzepustowe).

W celu zaimplementowania filtru Wienera w praktyce należy znać estymaty spektrum mocy obrazu oryginalnego i addytywnego szumu. Dla białego szumu spektrum mocy jest równe wariancji szumu. W celu określenia estymaty mocy obrazu oryginalnego stosowanych jest wiele metod. Bezpośrednią estymata jest periodogram spektrum mocy wyznaczone z obserwacji: gdzie Y(k,l) jest DFT z obserwacji. Zaletą takiej estymaty, jest to że może ona byś wyznaczona w łatwy sposób bez obawy o osobliwości jakie są związane z wyznaczaniem funkcji odwrotnej

Inna estymatą prowadzącą do kaskadowej implementacji filtracji odwrotnej i wygładzania szumu jest zależność która jest bezpośrednim wynikiem faktu, że Spektrum mocy może być wyznaczone bezpośrednio z obserwacji przy wykorzystaniu estymaty periodogramu. Wynikowa estymata jest kaskadową implementacją filtracji odwrotnej i wygładzania szumu

Przykład filtracji Wienera. To illustrate the Wiener filtering in image restoration we use the standard 256x256 Lena test image. Obraz o rozmiarze 256x256 jest rozmyty nastepujacym filtrem dolnoprzepustowym. Następnie dodany jest szum biały o rozkładzie Gaussa i wariancji 100. Następnie wykorzystany został filtr Wienera Obraz po rekonstrukcji

function ex = wienerfilter(y,h,sigma,gamma,alpha); % % ex = wienerfilter(y,h,sigma,gamma,alpha); % % Generalized Wiener filter using parameter alpha. When % alpha = 1, it is the Wiener filter. It is also called % Regularized inverse filter. % % Reference: Richb's paper % Created: Tue May 4 16:24:06 CDT 1999, Huipin Zhang N = size(y,1); Yf = fft2(y); Hf = fft2(h,n,n); Pyf = abs(yf).^2/n^2; % direct implementation of the regularized inverse filter, % when alpha = 1, it is the Wiener filter % Gf = conj(hf).*pxf./(abs(hf.^2).*pxf+alpha*sigma^2); % % Since we don't know Pxf, the following % handle singular case (zero case) shf = Hf.*(abs(Hf)>0)+1/gamma*(abs(Hf)==0); ihf = 1./sHf; ihf = ihf.*(abs(hf)*gamma>1)+gamma*abs(shf).*ihf.*(abs(shf)*gamma<=1); Pyf = Pyf.*(Pyf>sigma^2)+sigma^2*(Pyf<=sigma^2); Gf = ihf.*(pyf-sigma^2)./(pyf-(1-alpha)*sigma^2); % max(max(abs(gf).^2)) % should be equal to gamma^2 % Restorated image without denoising exf = Gf.*Yf; ex = real(ifft2(exf)); return

clear;clf; % Input and display the binary image N = 256; x = readbin('lenna.256',n,n); figure(1) imshow(x,gray(256)) % Blur the image, corrupt the image using WGN and display it % h is the blurring filter, and sigma is the noise std h = ones(4,4)/16; sigma = 10; Xf = fft2(x); Hf = fft2(h,n,n); y = real(ifft2(hf.*xf))+sigma*randn(n,n); % circular convolution %y = filter2(h,x)+sigma*randn(n,n); % linear convolution figure(2) imshow(y,gray(256)) % restoration using generalized inverse filtering gamma = 2; eix = inversefilter(y,h,gamma); figure(3) imshow(eix,gray(256)) % restoration using generalized Wiener filtering gamma = 1; alpha = 1; ewx = wienerfilter(y,h,sigma,gamma,alpha); figure(4) imshow(ewx,gray(256)) PSNR = [psnr(y,x) psnr(eix,x) psnr(ewx,x)] return

Richardson Lucy deconvolution, Procedura iteracyjna pozwalająca na uzyskanie estymaty obrazu oryginalnego z obrazu rozmytego jeżeli jest znana funkcja rozmycia. Rozmyty obraz jest opisany zależnoscią z uzyciem funkcji rozmywającej gdzie p ij jest punktową funkcja rozmywającą, u j jest wartością piksela obrazu oryginalnego i di piksela obserwowanego. Zakładamy, że u j jest opisana rozkładem Poissona. Równanie pozwalające wyznczyć obraz oryginalny ma postać. gdzie