Doskonalenie odbioru informacji multimedialnych
2. Komputerowa obróbka danych
2.5. Filtracja liniowa - splotowa
Ważną kategorię metod ulepszania danych stanowią przekształcenia realizowane w przestrzeni danych za pomocą operatorów lokalnych. Obliczenia wykonywane na danych źródłowych zależą tutaj jedynie od wartości punktów sąsiednich, występujących w pewnym, najbliższym otoczeniu przekształcanej serii danych. Szczególną rolę stanowią w tym przypadku operatory filtracji liniowej , tj. spełniającej dwa podstawowe warunki przekształceń liniowych
Filtracja liniowa w przestrzeni danych źródłowych jest przekształceniem lokalnym, kontekstowym, wykorzystującym operację splotu sygnału (funkcji sygnału ze skończoną funkcją odpowiedzi impulsowej filtru
. Operację splotu opisuje zależność
![]() |
(4.16) |
gdzie jest dziedziną określoności filtru (poza tą dziedziną odpowiedź impulsowa filtru jest zerowa).
W przypadku sygnałów cyfrowych filtr jest rozumiany jako operator liniowy, niezmienniczy względem przesunięcia, przy czym przesunięcie jest ograniczone do dyskretnej siatki spróbkowanej dziedziny sygnału z przedziałem próbkowania równym 1. Pozwala to opisać filtr za pomocą zestawu (wektora) współczynników
, stanowiących dyskretną, skończoną -- zwykle o niewielkich rozmiarach w stosunku do dziedziny filtrowanego sygnału
, postać odpowiedzi impulsowej filtru.
Operację filtracji liniowej przedstawia więc zależność
![]() |
(4.17) |
Przy filtracji obrazów wykorzystuje się analogiczną -- dwuwymiarową realizację splotu macierzy obrazu z maską -- macierzą współczynników filtru , przy czym nośnik filtru
jest zwarty, tj. domknięty i ograniczony do najbliższego sąsiedztwa w przestrzeni obrazu. Liniowa filtracja obrazów przekształca obraz źródłowy do postaci
![]() |
(4.18) |
Filtr można zdefiniować za pomocą macierzy współczynników wyrażających dyskretną odpowiedź impulsową filtru, o rozmiarze , indeksowanej symetrycznie względem punktu centralnego
lub też za pomocą maski współczynników:
Istnieje wiele rodzajów filtrów, w tym przede wszystkim
- filtry dolnoprzepustowe, do wygładzania obrazu, redukcji szumów czy korekcji lokalnych nieciągłości funkcji jasności;
- filtry górnoprzepustowe, do usuwania składowej wolnozmiennej, do ekstrakcji szczegółów, gradientowe -- do detekcji krawędzi i konturów;
- filtry pasmowo-przepustowe, wykorzystujące operatory laplasjanowe, maskowanie nieostrości (unsharp masking) czy filtracje kierunkową - do uwypuklania określonych cech, podkreślania krawędzi, uwidocznienia tekstury, wyostrzenia itp.
Filtry definiowane są przez ich maski, przy czym istotnych jest kilka wskazówek:
- wynik splotowych obliczeń według (4.18) należy zaokrąglić do najbliższej liczby całkowitej, gdyż
jako wartość piksela;
- suma współczynników filtru zachowującego składową stałą winna wynosić 1 -- dla wygody zwykle współczynniki filtru ustalane są jako liczby całkowite, a maskę filtru poprzedza mnożnik
![]() |
(4.19) |
- filtry odszumiające mają współczynniki dodatnie;
- suma współczynników filtrów górnoprzepustowych (wycinających składową stałą) wynosi 0;
- typowe kształty masek to bloki
lub
, a także maski krzyżowe
lub prostokątne;
- przy filtracji na brzegach obrazu, kiedy to maska filtru pokrywa niezdefiniowany obszar sąsiedni pikseli granicznych, stosuje się zazwyczaj jedno z trzech typowych rozwiązań rozszerzenia dziedziny źródłowej (przyjmijmy
:
Odszumianie. Podstawowym zastosowaniem filtracji splotowej jest odszumianie, czyli usuwanie bądź redukcja szumu maskującego użyteczną treść obrazową. Ze względu na losowy, nieobciążony charakter szumu najprostszą operacją odszumienia jest zastąpienie wartości pikseli średnią z pikseli sąsiednich w przestrzeni obrazu lub też średnią ważoną (z większą wagą przypisaną źródłowej wartości piksela i jego najbliższym sąsiadom). Procedurę tę można realizować filtracją splotową, dobierając współczynniki filtru jako wagi liczonej średniej i ustalając rozmiar maski filtru.
Ponieważ uniwersalny model szumu występującego w obrazach naturalnych zakłada wysoki stosunek energii sygnału użytecznego do szumu w zakresie niskich częstotliwości (składowe te dominują w typowej treści obrazowej), przy szumach zwykle dominujących przy częstotliwościach wyższych, receptą na redukcję szumu jest dolnoprzepustowa filtracja obrazu źródłowego z szumem akwizycji.
Przykładowe maski filtrów odszumiających (dolnoprzepustowych) mają następującą postać:
uśredniający, równomierny: |
(4.20) |
Przykładowe, nie zawsze korzystne efekty filtracji odszumiającej pokazano na rys. 4.11. Kryterium doboru filtrów jest kompromisem pomiędzy ''siłą'' odszumiania (większą redukcją szumów wskutek przesuwania zakresu widma zachowanego w kierunku coraz niższych częstotliwości), a zachowaniem krawędzi i szczegółów zawierających niewątpliwie wysokie częstotliwości w niewielkich procentowo obszarach. Alternatywnym do metod liniowych rozwiązaniem jest stosowanie filtracji nieliniowej -- przede wszystkim filtrów medianowych.
Rys. 4.11 Efekty odszumiana za pomocą liniowej filtracji splotowej; kolejno od lewej do prawej, góra-dół -- obraz źródłowy lena, lena z równomiernym szumem addytywnym o amplitudzie 50 (średniokwadratowa różnica względem oryginału wynosi oraz obraz ten przekształcony za pomocą, kolejno (patrz definicje (4.20)), równomiernego filtru uśredniającego
(
), równomiernego filtru uśredniającego
(
), filtru parametrycznego dla
(
) oraz filtru gaussowskiego z
(
).
Detekcja krawędzi
Kolejnym, istotnym obszarem zastosowań liniowej filtracji splotowej jest detekcja krawędzi, wykorzystująca tzw. filtry gradientowe (górnoprzepustowe). Metody detekcji krawędzi mogą być wykorzystywane do analizy obrazów w tzw. segmentacji konturowej, zaś w zastosowaniach służących ulepszaniu danych są przykładem ekstraktora lub wzmacniacza treści istotnych, selekcji informacji celem ich lepszej percepcji, uwydatnienia całościowych konturów definiujących obiekty.
Krawędź w sensie interpretacji treści obrazowej jest rozumiana jako fragment konturu, czyli granicy rozdzielającej obiekty bądź podobiekty, co ma znaczenie w zrozumieniu treści obrazu. Zakładając w pierwszym przybliżeniu ciągły model funkcji jasności, krawędź to zbiór punktów obrazu, w których występuje istotna nieciągłość funkcji jasności lub określonej cechy funkcji jasności w odniesieniu do kontekstu najbliższego w przestrzeni obrazu otoczenia.
Liczenie gradientu, tj. pola wektorowego o określonym kierunku i module w poszczególnych punktach obrazu stanowi użyteczną charakterystykę rozkładu potencjalnych krawędzi i konturów w obrazie. Pole wektorowe gradientu wykorzystywane jest w niektórych metodach segmentacji konturowej obrazów, np. w koncepcji bazującej na poziomicach.
W lokalnych metodach detekcji punktów krawędziowych bardziej przydatna jest estymacja wartości jednowymiarowego gradientu w punkcie wzdłuż linii normalnej w stosunku do domniemanego kierunku krawędzi nachylonej do poziomu współrzędnych ortogonalnych pod kątem
jako:
![]() |
(4.21) |
W przypadku obrazów cyfrowych mamy do czynienia z dyskretnymi modelami krawędzi, kiedy to gradienty są aproksymowane operatorami różnicowymi. Istotne przy tym są dwa zasadnicze elementy:
- nośnik filtru różnicowego (gradientowego), który określa obszar wyliczania gradientu (mniejszy nośnik oznacza wykrywanie w pierwszej kolejności ''punktowych'', czyli krótkich krawędzi, narożników czy wręcz pojedynczych punktów);
- czułość kierunkowa filtru, czyli zdolność do wykrywania krawędzi układających się w dowolnym kierunku płaszczyzny obrazu, z możliwie wiernym zachowaniem gładkości wykrywanego konturu danego obiektu;
Określenie wartości (modułu) gradientu krawędzi w przypadku dyskretnym realizowane jest zwykle poprzez wyznaczenie różnicowych składowych gradientu krawędzi w kierunku poziomym i pionowym, czyli odpowiednio wzdłuż wiersza i kolumny, do których należy punkt o współrzędnych jako
![]() |
(4.22) |
lub w przybliżonej, lecz prostszej obliczeniowo wersji
![]() |
(4.23) |
podczas gdy orientacja gradientu względem osi poziomej wynosi
![]() |
(4.24) |
Wprowadzenie selekcji wartości gradientu poprzez progowanie pozwala uzyskać binarną mapę rozkładu punktów krawędziowych w obrazie.
Najprostszą formą wyznaczenia różnicowych składowych gradientu określają odpowiednio zależności oraz
. Można je obliczyć metodą filtracji splotowej za pomocą filtrów, w tym założeń o nieparzystym rozmiarze maski filtru w obu wymiarach)
![]() |
(4.25) |
Średnia geometryczna oszacowanych różnicowo składowych poziomej i pionowej gradientu według (4.22) lub też suma modułów (4.23) pozwala oszacować wartość gradientu w każdym punkcie obrazu dając przestrzenny rozkład modułu gradientu , przy czym
oraz
.
Taka definicja estymatora składowych gradientu zachowuje największą możliwą lokalność obliczeń, w praktyce jednak działa skutecznie przede wszystkim w przypadku profilu krawędzi o charakterze skokowym, którego ciągłym modelem są osobliwe punkty krawędziowe -- punkty nieciągłości, tj. nieciągłej zmiany wartości funkcji jasności (zobacz rys.4.12).
Rys. 4.12 Profile krawędzi w wersji dyskretnej (duże kropki) i ciągłej -- po lewej krawędź skokowa, nieciągła, po prawej - krawędź ciągła, o łagodniejszym profilu typu ramp; prosty operator różnicowy liczy niezerowe gradienty w punktach oznaczonych jako szare kropki, co w przypadku krawędzi o mniejszym nachyleniu oznacza kilka punktów krawędziowych - niekiedy korzystnie jest ustalić jedynie środek krawędzi rozdzielającej obiekty (czyli punkt wskazany strzałką).
W przypadku krawędzi szerszych, bardziej rozmytych, o profilu charakteryzującym się mniejszym gradientem, opisanym np. funkcją \emph{ramp} - rys. 4.12, operator gradientowy według (4.25) wskaże wszystkie punkty profilu krawędzi. Da to nie zawsze korzystny efekt szerokiej krawędzi. Zwykle lepsze efekty uzyskuje się za pomocą filtrów premiujących jedynie środek szerszej krawędzi lub też punkt profilu o największym gradiencie. Innym problemem jest wybór jedynie tych punktów o istotnej wartości gradientu, które rzeczywiście należą do krawędzi rozdzielających obiekty, a nie są tylko lokalnymi wskaźnikami niejednorodności w rozkładzie funkcji jasności danego regionu. Poprawę skuteczności detekcji krawędzi można w niektórych przypadkach uzyskać poprzez stosowanie jednokierunkowych estymat krawędzi (według (4.21) jako pojedynczych detektorów krawędzi poszukiwanych pod określonym kątem -- np. filtrów oraz
odpowiednio pod kątem
i
.
Doskonalenie filtrów gradientowych może się więc odbywać w kilku zasadniczych kierunkach:
- zwiększenie skuteczności lokalizacji krawędzi o szerszym profilu i łagodniejszym nachyleniu, np. poprzez większy rozmiar maski i wprowadzenie centralnych wartości zerowych -- zobacz filtry (4.26) oraz kolejne;
- zmniejszenie czułości na lokalne zmiany jasności obrazu nie będące krawędziami (a jedynie np. dynamiczną teksturą obiektu) poprzez liczenie gradientów uśrednionych (z ewentualnym ważeniem) po pewnym kontekście (uśrednienie odbywa się w kierunku prostopadłym do kierunku liczenia gradientu) -- zobacz filtry Prewitta i Sobela;
- zwiększenie kątowej czułości detekcji poprzez sumowanie efektów filtracji za pomocą zestawu filtrów kierunkowych; do detekcji punktów krawędziowych może być stosowane oddzielne progowanie wartości jednokierunkowych gradientów dla poszczególnych kierunków lub też obliczana jest maksymalna wartość gradientu kierunkowego w punkcie, a odpowiadający mu kierunek wskazuje przebieg krawędzi; oddzielnie stosowane są też filtry do detekcji narożników, linii (rozdzielających obszar obiektów) czy pojedynczych punktów istotnych.
Zestawy filtrów składowych gradientu oraz kierunkowych, często stosowanych do detekcji krawędzi są następujące:
- różnicowe z zerowym centrum
![]() |
(4.26) |
- Prewitta
![]() |
(4.27) |
- Sobela
![]() |
(4.28) |
- diagonalne Robertsa
![]() |
(4.29) |
- diagonalne Sobela
![]() |
(4.30) |
- diagonalne linii
![]() |
(4.31) |
- kierunkowe Kirscha
\begin{split} h^{(k1)}_{m,n}&= \left [ \begin{array}{rrr} 5 & -3 & -3\\ 5 & 0 & -3\\ 5 & -3 & -3 \end{array} \right ], h^{(k2)}_{m,n}= \left [ \begin{array}{rrr} -3 & -3 & -3\\ 5 & 0 & -3\\ 5 & 5 & -3 \end{array} \right ], h^{(k3)}_{m,n}= \left [ \begin{array}{rrr} -3 & -3 & -3\\ -3 & 0 & -3\\ 5 & 5 & 5 \end{array} \right ], \\ h^{(k3)}_{m,n}&= \left [ \begin{array}{rrr} -3 & -3 & -3\\ -3 & 0 & 5\\ -3 & 5 & 5 \end{array} \right ], h^{(k5)}_{m,n}= \left [ \begin{array}{rrr} -3 & -3 & 5\\ -3 & 0 & 5\\ -3 & -3 & 5 \end{array} \right ], h^{(k6)}_{m,n}= \left [ \begin{array}{rrr} -3 & 5 & 5\\ -3 & 0 & 5\\ -3 & -3 & -3 \end{array} \right ],\\ h^{(k7)}_{m,n}&= \left [ \begin{array}{rrr} 5 & 5 & 5\\ -3 & 0 & -3\\ -3 & -3 & -3 \end{array} \right ], h^{(k8)}_{m,n}= \left [ \begin{array}{rrr} 5 & 5 & -3\\ 5 & 0 & -3\\ -3 & -3 & -3 \end{array} \right ] \mathrm{\ wszystkie\, przy\ }\rho=1/15 \end{split} |
(4.32) |
Liniowa filtracja jest pierwszym etapem detekcji krawędzi, po czym następuje zazwyczaj progowa -- binarna klasyfikacja pikseli jako należące do krawędzi lub też nie. Generalnie, im wyższa wartość estymowanego gradientu, tym większe prawdopodobieństwo, że punkt należy do krawędzi. Niekiedy zależy to także od sąsiedztwa -- jeżeli w określonym otoczeniu w przestrzeni obrazu znajdują się również punkty zaliczone do grupy krawędziowych, wtedy jest większa szansa na wykrycie ciągłej z natury krawędzi obiektu.
Dobór wartości progu wpływa na czułość metody detekcji, przy czym obniżanie wartości progu może jednocześnie pogorszyć specyficzność wykrywanych krawędzi -- obok istotnych krawędzi mogą pojawić się wskazania fałszywe powodowane szumem lub też naturalną dynamiką tekstur obiektów występujących w obrazie lub zróżnicowaną charakterystyką tła. Można w tym celu wykorzystać np. lokalne estymatory wartości progu na podstawie sąsiedztwa punktów krawędziowych lub też globalne estymaty rozkładu gęstości prawdopodobieństwa wystąpienia krawędzi i jej braku według reguł klasyfikacji Bayesa.
Anizotropowe właściwości gradientu stanowią niekiedy utrudnienie przy wyznaczaniu wszystkich istotnych krawędzi w obrazie o nieznanej wcześniej charakterystyce -- uzyskujemy bowiem rezultaty zależne od kąta obrotu (np. nieco obrócone ujecie kamery spowoduje zmiany w rozkładzie wykrywanych krawędzi).
Izotropowe, czyli niezmiennicze względem obrotu efekty detekcji krawędzi można uzyskać za pomocą pojedynczych, ''bezkierunkowych'' (tj. nie wyróżniających żadnego kierunku) \textbf{filtrów laplasjanowych}. Filtry te mają właściwość podkreślania czy też wzmacniania (eksponowania) krawędzi.
Podstawowa definicja laplasjanu (tj. operatora Laplace'a) sprowadza się do obliczenia skalarnej sumy drugich pochodnych cząstkowych dwukrotnie różniczkowalnej funkcji (przypadek dwuwymiarowy):
![]() |
(4.33) |
Wykorzystanie analitycznej koncepcji zerowania się drugiej pochodnej w punktach przegięcia funkcji (tj. maksimach gradientu) pozwala dokładniej ustalić położenie środka krawędzi, a także poprzez splot z funkcją źródłową powoduje wzrost gradientu wokół punktu krawędzi - zobacz rys. 4.13.
Rys. 4.13 Przykładowy profil krawędzi (ciągły model połówki funkcji gaussowskiej), jego pierwsza i druga pochodna (model gradientu i laplasjanu) ze wskazaniem (strzałka) miejsca dziedziny ekstremum pochodnej i przejścia przez zero drugiej, tj. środka krawędzi.
Efekt detekcji i wzmocnienia krawędzi obrazów cyfrowych niezależnie od ich kierunku uzyskuje się za pomocą filtrów estymujących laplasjan na podstawie różnicowych przybliżeń drugiej pochodnej w ortogonalnych kierunkach kartezjańskiego układu współrzędnych obrazu. Najprościej można to zapisać jako
![]() |
(4.34) |
przy czym niekiedy stosuje się dodatkowo współczynnik normalizujący . Wtedy operator Laplace'a
.
Poniżej przedstawiono kilka innych realizacji operatora Laplace' a stosowanych do detekcji krawędzi:
![]() |
(4.35) |
Często praktyką jest kaskadowe stosowania różnego typu filtrów, pozwalające uzyskać docelowo kilka efektów ulepszenia obrazów. Powszechnym zwyczajem w przypadku stosowania wysokoczęstotliwościowej obróbki obrazów naturalnych jest wcześniejsze ich odszumienie celem wzmocnienia jedynie treści użytecznej.
Korzystne w wielu zastosowaniach okazuje się złożenie operacji uśredniania filtrem gaussowskim (w celu redukcji szumu, a przez to fałszywych wskazań krawędzi) z izotropową filtracją laplasjanową, co korzystając z liniowości operacji odpowiednich filtracji można zapisać jako: , gdzie postać filtru gaussowskiego
przykładowo jak w (4.20), zaś postać ciągłej, jednowymiarowej odpowiedzi impulsowej filtru LoG, zależną od wartości odchylenia standardowego
funkcji gaussowskiej pokazano na rys. 4.14.
Rys. 4.14 Jednowymiarowa postać ciągłej odpowiedzi impulsowej filtru LoG, zależna od malejącej wartości odchylenia standardowego .
Cyfrowa postać dwuwymiarowych filtrów LoG może przybierać różne postacie, zależne przede wszystkim od i dokładności przybliżeń współczynników:
![]() |
(4.36) |
![]() |
(4.37) |
Na rys. 4.15 i 4.16 przedstawiono przykładowe efekty filtracji służącej detekcji krawędzi.
Rys. 4.15 Efekty splotowej filtracji służącej detekcji krawędzi (filtry gradientowe); kolejno od lewej do prawej, góra-dół -- obraz źródłowy lena, po filtracji różnicowej (4.25), Prewitta (4.27), Sobela (4.28), Sobela z dodatkowymi filtrami diagonalnymi (4.30), Kirscha (4.32).
Rys. 4.16 Efekty splotowej filtracji służącej detekcji krawędzi (laplasjan); kolejno od lewej do prawej, góra-dół -- obraz źródłowy lena po filtracji laplasjanowej według (4.34) oraz według (4.35) z wartością centralną 8, po filracji LoG według (4.36) oraz LoG
(4.37}).
Wzmacnianie krawędzi
Nieco odmiennym zastosowaniem operatorów Laplace'a jest podkreślanie krawędzi służące poprawie percepcji obrazu. Dzięki temu uzyskuje się efekt wyostrzenia obrazu -- zobacz rys. 4.17.
Rys. 17 Efekty splotowej filtracji służącej wzmocnieniu krawędzi za pomocą modyfikowanych filtrów laplasjanowych oraz maskowania nieostrości; kolejno od lewej do prawej, góra-dół -- obraz źródłowy lena, lena po filtracji według (4.38), według (4.39), według (4.39), lena po maskowaniu nieostrości według (4.42) z filtrem laplasjanowym (według (4.35) z centralną 8) oraz według (4.41) z gaussowskim filtrem uśredniającym (4.20.
Postać filtrów realizujących efekt wzmocnienia krawędzi jest zbliżona do (4.34) i (4.35) z tym że centralna w masce wartość współczynnika jest inkrementowana ze względu na konieczność zachowania zasadniczej treści obrazu wyrażonej w zakresie niskoczęstotliwościowym. Suma współczynników wynosi wtedy 1, co pozwala zachować dynamikę jasności obrazu źródłowego w obszarach wolnozmiennych, przykładowo:
![]() |
(4.38) |
![]() |
(4.39) |
![]() |
(4.40) |
Silniejszy efekt wyostrzenia obrazu poprzez podkreślenie krawędzi i innych lokalnych zmian jasności o znaczącym gradiencie daje metoda maskowania nieostrości unsharp masking. Zasadniczo jest ona realizowana poprzez
- wyznaczenie obrazu krawędzi wskutek odejmowanie od obrazu źródłowego nieostrej (rozmytej) jego maski:
- dodanie do obrazu źródłowego obrazu krawędzi w odpowiedniej proporcji, czyli
![]() |
(4.41) |
Wzrost wartości stałej \(\alpha \( oraz rozmiaru maski filtru dolnoprzepustowego nasila efekt wyostrzenia obrazu (rys. \ref{Rys_lena_wzmoc}).
Bezpośrednią zasadę wzmocnienia treści wysokoczęstotliwościowej określa reguła:
![]() |
(4.42) |
z bezpośrednim wykorzystaniem określonych filtrów gradientowych do generacji obrazu krawędziowego.