Wykład 6
Transkrypt
Wykład 6
dr inż. Jacek Naruniec
Przetwarzanie
wstępne
Wyznaczenie
obszarów
zainteresowania
Ekstrakcja
cech - obraz
Klasyfikacja
Cel: Wyznaczenie parametrów charakterystycznych dla danego problemu,
pozwalających na podjęcie decyzji o semantycznych właściwościach
rozpatrywanych danych
Deskryptory MPEG-7
Detektor Hougha
Analiza składowych głównych (PCA)
SVD i PCA za pomocą SVD
Analiza składowych niezależnych (ICA)
Filtry Haara, Gabora, wavelet, ART
Deskryptor kolorów dominujących
Modele aktywnych kształtów, aktywnego wyglądu
Transformacje: DCT, FFT
Proste cechy – średnia luminancja, wariancja
Ekstrakcja cech
2
Cel:
wyznaczenie kierunków głównych zbioru
danych
Ekstrakcja cech
3
Wartość średnia:
1 n
x (i )
n i 1
Odchylenie standardowe:
1 n
( x (i ) ) 2
n i 1
Wariancja:
1 n
( x (i ) ) 2
n i 1
2
Ekstrakcja cech
4
Kowariancja:
1 n
cov( X , Y ) ( X (i ) X )(Y (i ) Y )
n i 1
Macierz kowariancji w przypadku 2D:
X2
cov( X , Y )
Rx
2
cov(
X
,
Y
)
Y
Wartości i wektory własne:
Ax x
λx
x
Ekstrakcja cech
5
Mnożenie punktu przez wektor w( w 1) oznacza operację
rzutowania na prostą określoną kierunkiem tego wektora
y wt x
40
w [0.196,0.980]
35
x
2.1911452
3.3730561
4.0434577
4.912485
17.615638
9.9771261
10.507112
11.619114
y
13.943483
14.712064
16.845968
16.729047
25.846839
19.480395
19.764288
18.923771
14.102429
15.087876
17.311818
17.367598
28.799622
21.058774
21.441093
20.83498
30
25
20
15
10
5
0
-5
Ekstrakcja cech
0
5
10
15
20
25
30
6
Znajdź taki kierunek, w którym wariancja rzutu punktów jest maksymalna:
Ekstrakcja cech
7
Maksymalizujemy funkcję wariancji względem w:
w arg max wt w1 E[( wt ( x )) 2 ]
Równanie można przedstawić w formie:
f ( w) E[( wt ( x )) 2 ]
wt E[( x )( x ) t ]w
wt Rx w
Funkcja postaci f (x) x t Ax przy założeniu jednostkowej
długości wektora x jest:
Maksymalna dla wektora własnego odpowiadającego największej wartości własnej f(x)
Minimalna dla wektora własnego opowiadającego najmniejszej wartości własnej f(x)
[dowód: D. Poole „Linear Algebra: A Modern Introduction”, s. 417-418]
Ekstrakcja cech
8
Macierz kowariancji (jako funkcja
transformacji danych).
PCA - kierunki w których „rozciągane” są
zbiory danych – wektory własne
X:
X_mean = [16.19 11.71]
1. Wyznacz średnią zbioru danych:
Ekstrakcja cech
1 n
x (i )
n i 1
10
2. Przesuń każdy element zbioru o wartość średnią
3. Wyznacz macierz kowariancji
X_cov =
39.76 28.37
28.37 21.73
1 n
cov( X , Y ) ( X (i ) X )(Y (i ) Y )
n i 1
Ekstrakcja cech
11
4. Wyznacz wartości własne i wektory własne macierzy
kowariancji, sortujemy nierosnąco
E=
60.523132
0.
0.
0.9832824
λ1
λ2
U=
- 0.8070828
- 0.5904382
w1
0.5904382
-0.8070828
w2
5. Wybierz wektory własne odpowiadające największym
wartościom własnym (wektory w kolumnach!)
Ekstrakcja cech
12
e2
e1
e1
Przenoszona energia (n – liczba wymiarów):
i
Ew
j
i
j 1..n
Ew1 88%
Ew2 12%
PCA/KLT
Ekstrakcja cech
13
Faktoryzacja SVD macierzy liczb rzeczywistych:
A UV T
Wartości osobliwe Σ odpowiadają pierwiastkowi wartości własnych AAT
Macierze U i V są to macierze wektorów osobliwych macierzy A
Macierz U (lewe wektory osobliwe) jest macierzą wektorów własnych
macierzy AAT
Wynik jest zwykle posortowany względem wartości własnych
Jeśli macierz jest osobliwa, niektóre wartości osobliwe będą zerowe
Nie wymaga macierzy kwadratowej – można działać bezpośrednio na X
Ekstrakcja cech
14
X mean0 UV T
U =
- 0.8070828 - 0.5904382
- 0.5904382 0.8070828
Σ=
173.78447 0.
0.
22.1508
Ekstrakcja cech
V=
0.8102270 - 0.5861163
0.5861163 0.8102270
15
Twarz znormalizowana do rozdzielczości
46x56, oczy w kolumnach 16 i 31, rząd 24
[źródło: baza twarzy AltKom]
Ekstrakcja cech
16
Każdy piksel obrazu traktowany jest jako
oddzielny wymiar
Daje to w sumie 46x56 = 2576 wymiarową
przestrzeń danych (nie analizujemy 2D)
Wektory własne PCA odpowiadające
najwyższym wartościom własnym formują
tzw. twarze własne
Ekstrakcja cech
17
Twarze własne:
Ekstrakcja cech
18
Ekstrakcję cech twarzy można traktować jako operację
sumy iloczynów odpowiadających pikseli twarzy własnej z
analizowanym obrazem
Rekonstrukcja polega na stworzeniu liniowej kombinacji
twarzy średniej i twarzy własnych.
8
14
2
Ekstrakcja cech
19
Rozpoznawanie – najprostsza metoda:
Stwórz bazę osób, w której każda twarz
reprezentowana jest przez deskryptor
Porównaj analizowany deskryptor z każdym
deskryptorem
Jako zidentyfikowaną osobę wybierz tą, dla której
odległość euklidesowa deskryptora jest
najmniejsza
Ekstrakcja cech
20
Detekcja:
1. Wyznacz średni deskryptor twarzy korzystając ze
2.
3.
4.
5.
zbioru testowego Dm
Wyznacz okno analizy W = [46x56]
Dla każdej pozycji okna w obrazie wyznacz jego
deskryptor DW.
Jeśli odległość euklidesowa deskryptora DW od Dm w
dowolnym oknie jest mniejsza od ustalonego progu,
oznacz pozycję okna jako twarz.
Skaluj okno analizy mnożąc jego wielkość przez
współczynnik skalujący k (np. 1.2) i powtarzaj kroki 3-5
do osiągnięcia maksymalnego rozmiaru okna
Ekstrakcja cech
21
Plusy
prosta interpretacja
liniowe przekształcenia
pozwala na redukcję wymiaru danych bez utraty
znaczących informacji
Minusy
nie uwzględnia klas przypisanych elementom
jako jedyna metoda analizy, jest zwykle mało
skuteczna (ale stosowana z innymi już
niekoniecznie)
Ekstrakcja cech
22
Ekstrakcja cech
23
Ekstrakcja cech
24
Ekstrakcja cech
25
Ekstrakcja cech
26
Algorytm bardzo zbliżony do transformaty Radona
Jedna zasadnicza różnica
y ax b
1
1
cos
a
as
tg
sin
y
y0 r sin
x0 r cos
y0
cos
r
r cos )
sin
sin
cos
r
y
x
sin
sin
b r sin (
r
θ
x0
x
r( ) x cos y sin
Ekstrakcja cech
27
Algorytm transformaty:
1. Wyznacz zakres parametrów:
1.
2.
rmax, rmin, Δr
θmax, θmin, Δθ
2. Dla każdej wartości θi w zakresie od θmin do θmax co Δθ
stablicuj wartości sin θ i cos θ:
1.
2.
si = sin θi
ci = cos θi
3. Dla każdego piksela obrazu (x, y) z etykietą „1” wykonaj:
1.
Dla każdej wartości θi w zakresie od θmin do θmax co Δθ wyznacz r i
inkrementuj odpowiednią komórkę histogramu:
1.
2.
r = x*ci + y*si
H(r, θi)=H(r, θi)+1
Ekstrakcja cech
28
0, 0
Krok 3 algorytmu dla pojedynczego piksela:
r4
r3
r2
0
r1
45
90
r4
r1
r1
+
+
r3
r2
135
+
+
r( ) x cos y sin
Ekstrakcja cech
29
Ekstrakcja cech
30
Ekstrakcja cech
31
Algorytm dwustopniowy:
Wyznacz zgrubny kąt obrotu:
1. Wyznacz rmax, rmin, i θmax, θmin, dla wysokich wartości Δr i Δθ.
2. Wyznacz transformatę Hougha
3. Wybierz parę wartość ropt i θopt o największych wartościach w
transformacie Hougha
Sprecyzuj wyznaczony kąt obrotu:
▪ Wyznacz r’max, r’min, i θ’max, θ’min, dla niskich wartości Δr’ i Δθ’
w otoczeniu ropt i θopt.
▪ Wyznacz transformatę Hougha
▪ Wybierz parę wartośc ropt i θopt.o największych wartościach w
transformacie Hougha
Ekstrakcja cech
32
Ekstrakcja cech
33
Detekcja okręgów wykonywana jest poprzez
algorythm CHT (Circle Hough Transform).
Algorytm CHT:
Wyznacz obraz krawędziowy (B) wraz z kierunkami
gradientów krawędzi
Dla każdego punktu krawędziowego:
▪ Wiedząc, że prosta prostopadła do kierunku krawędzi koła
przechodzi przez środek o znanym promieniu r wyznaczamy
ten środek (xc, yc)
▪ Inkrementuj komórkę transformaty Hougha odpowiadającą
punktowi (xc, yc)
Wyznacz elementy transformaty o największych
wartościach
Ekstrakcja cech
34
xc x r cos
x, y
yc y r sin
xc
xc, yc
yc
Ekstrakcja cech
35
Wykrywanie koła o określonym promieniu – takim jak koło w obrazie
[wygenerowane za pomocą appletu:
http://users.ecs.soton.ac.uk/msn/book/new_demo/houghCircles/
Ekstrakcja cech
36
Wykrywanie wielu kół o określonym promieniu
Ekstrakcja cech
37
Wykrywanie koła o określonym promieniu – innym niż koło w obrazie
Ekstrakcja cech
38
Wykrywanie wielu kół o określonym promieniu – innym niż koło w
obrazie
Ekstrakcja cech
39
W celu detekcji kół o różnej długości
promienia wprowadzamy dodatkowy
parametr r (3D obraz transformaty)
Algorytm CHT:
Wyznacz obraz krawędziowy (B) wraz
z kierunkami gradientów krawędzi
Dla każdego r z zakresu rmin..rmax
wykonaj:
▪ Wiedząc, że prosta prostopadła do
kierunku krawędzi koła przechodzi przez
środek o określonym promieniu r
wyznaczamy ten środek (xc, yc)
▪ Inkrementuj komórkę transformaty
Hougha odpowiadającą punktowi (xc, yc) i
promieniowi r
Wyznacz maksymalne wartości
yc
r
xc
transformaty
Ekstrakcja cech
40
General Hough Transform (GHT)
Pozwala na detekcję kształtów o dowolnym,
określonym konturze
Wymaga stworzenia odpowiedniego modelu
wykrywanego obiektu
Ekstrakcja cech
41
[źródło: Ballard, Brown: „Generalized Hough Transform”
Ekstrakcja cech
42
Tworzenie modelu obiektu:
Wybierz punkt referencyjny (xc, yc) – np. środek ciężkości
figury
Dla każdego punktu krawędziowego figury (xi, yi):
▪ Wyznacz kąt krawędzi θ w punkcie xi, yi
▪ Wyznacz wektor r łączący punkty (xi, yi) i (xc, yc)
▪ Przypisz krawędzi θ wektor r.
W efekcie otrzymujemy tablicę, w której dla każdego kąta
θ mamy zbiór wektorów r:
▪
▪
▪
▪
θ 1: r1, r2, r3
θ 2: r4, r5, r6, r7
θ 3: r8
θ 4: r9, r10
Ekstrakcja cech
43
r1 ( x1 xc , y1 yc )
x1, y1
1 0 , 2 45 , 3 90 , 4 135
x5, y5
xc, yc
x4, y4
x2, y2
x3, y3
Ekstrakcja cech
1 : r1
2 : r5
3 : r2 , r4
4 : r3
44
Detekcja konturu:
Kwantuj przestrzeń transformaty Hougha xcmin..xcmax,
ycmin..ycmax.
Wykryj krawędzie obrazu (x, y) i kierunki ich
gradientów
Dla każdego punktu krawędziowego:
▪ Z modelu obiektu wybierz wszystkie wektory r
odpowiadające kierunkowi krawędzi
▪ Dla każdego wybranego r zwiększ komórkę histogramu
Hougha o pozycji ([x, y] + r)
Wybierz element o najwyższej wartości histogramu –
jest to centrum szukanego obiektu
Ekstrakcja cech
45
Wektor r może być także reprezentowany
przez:
Kąt α odpowiadający kątowi nachylenia odcinka
do osi współrzędnych x
Długość wektora r (jak na wcześniejszym rysunku)
W tej postaci pozycja xc i yc w stosunku do punktu
krawędziowego x, y może być obliczona poprzez:
xc x r cos
yc y r sin
Ekstrakcja cech
46
W prosty sposób można wprowadzić inwariantność
od skali i obrotu.
W celu sparametryzowania równania od obrotu β i
skali s równanie:
xc x r cos
yc y r sin
przyjmuje postać:
xc x ( x' cos y ' sin ) s
yc y ( x' sin y ' sin ) s
x' r cos
y ' r sin
Ekstrakcja cech
47
Tworzymy 4D tablicę Hougha (xc, yc, s, β)
Kwantuj przestrzeń transformaty Hougha xcmin..xcmax,
ycmin..ycmax.
Wykryj krawędzie obrazu (x, y) i kierunki ich
gradientów
Dla każdego punktu krawędziowego:
Z modelu obiektu wybierz wszystkie wektory r
odpowiadające kierunkowi krawędzi
Dla każdego dopuszczalnego kąta β i skali s
▪ wyznacz centra punktu za pomocą wzoru z poprzedniego slajdu
▪ zwiększ komórkę histogramu odpowiadającą aktualnemu centrum,
kątowi i skali.
Ekstrakcja cech
48
Przy 4 wymiarach znaczne wymagania pamięciowe i
złożoność obliczeń
Można stosować podejście takie, jak w liniach dominujących
– detekcja zgrubna, następnie dokładna
Może być stosowana przy częściowo
zdeformowanych kształtach
Daje dobre wyniki nawet w obecności
innych obiektów w obrazie, szumów
Ekstrakcja cech
49
Implicit Shape Model (zarówno do weryfikacji jak i
detekcji)
Pochodna uogólnionej transformaty Hougha
„Wizualna” książka kodowa
[źródło: A. Mohan „Implicit Shape Model” presentation]
50
Każdy rozpoznany obiekt (zgodnie z książką
kodową) głosuje na pojedynczy punkt
[źródło: A. Mohan „Implicit Shape Model” presentation]
51
Tworzenie książki kodowej:
W pierwszej kolejności wyznaczane są punkty zainteresowania w
przykładach trenujących(SIFT, Harris, itp.)
Podobne obrazy są klasteryzowane
Zapisywana jest ich średnia
Dla przykładów wyznaczane są odległości do centrum obiektu
[źródło: A. Mohan „Implicit Shape Model” presentation]
52
Detekcja:
[źródło: A. Mohan „Implicit Shape Model” presentation]
Przetwarzanie końcowe
53
Przykład: detekcja przechodniów (punkty SIFT)
Głosowanie w świetle podczerwonym jest w tym
przypadku skuteczniejsze niż w widzialnym)
[źródło: Kai Jungling and Michael Arens: „Pedestrian Tracking in Infrared from Moving Vehicles”
Robot mobilny ze skanerem 3W
Poszukujemy algorytmu rozpoznawania
lokacji, w którym:
Będzie inwariantny od rotacji i translacji zbioru
punktów.
Będzie skuteczny także w obecności szumów.
Będzie działał także dla niepełnych lokacji.
trenowanie
Wyznaczenie
relacji punktów do
środka obiektu
Detekcja
punktów
szczególnych
Wyznaczenie
deskryptorów
Zachowanie
punktów z
deskryptorami
rozpoznawanie
Porównanie
deskryptorów z
deskryptorami modelu
Głosowanie
Wyznaczanie punktów
szczególnych:
Dla każdego punktu:
▪ Wyznacz punkty w
sąsiedztwie
danego punktu
▪ Wyznacz macierz
kowariancji
punktów w otoczeniu
▪ Wyznacz wartości własne
macierzy kowariancji
Wyznaczanie punktów
szczególnych:
Dla każdego punktu:
▪ Wyznacz punkty w
sąsiedztwie
danego punktu
▪ Wyznacz macierz
kowariancji
punktów w otoczeniu
▪ Wyznacz wartości własne
macierzy kowariancji
Wyznaczanie punktów
szczególnych:
Dla każdego punktu:
▪ Wyznacz punkty w
sąsiedztwie
danego punktu
▪ Wyznacz macierz
kowariancji
punktów w otoczeniu
▪ Wyznacz wartości własne
macierzy kowariancji
xy
x2 xy xz
2
yx y yz
zx zy z2
Wyznaczanie punktów
szczególnych:
Dla każdego punktu:
▪ Wyznacz punkty w
sąsiedztwie
danego punktu
▪ Wyznacz macierz
kowariancji
punktów w otoczeniu
▪ Wyznacz wartości własne
macierzy kowariancji
Σx x
Wyznaczanie punktów
szczególnych:
▪ Sortowanie wartości własnych
względem wartości
▪ Jeśli najmniejsza wartość
własna (T3) jest odpowiednio
duża oznacza to, że punkt jest
charakterystyczny (np.
narożnik)
▪ Dodatkowo stosunek
wielkości poszczególnych
wartości własnych nie może
być równy jeden (bo punkt taki
jest nierozróżnialny) (T21 i T32)
▪ Usuwanie elementów
niemaksymalnych
Detekcja punktów w zależności od progu wartości najmniejszej wartości własnej
Detekcja punktów w zależności od progu stosunku kolejnych wartości własnych
(bez usuwania elementów niemaksymalnych)
Wyznaczanie deskryptora
Normalizacja względem
wektorów własnych macierzy
kowariancji (czyli obrót 3W tak,
aby wektory własne były zawsze
tak samo zwrócone)
Histogram opisany na wielokącie
(jak na rysunku)
Każdy punkt w otoczeniu punktu
oddaje jeden głos w histogramie
Komórka histogramu odpowiada
pozycji przestrzennej punktu
względem punktu badanego
Brane są pod uwagę – elewacja,
azymut i odległość w jakiej
znajduje się punkt
Trenowanie odbywa się osobno dla każdego modelu.
Do modelu zaliczamy:
Deskryptory punktów szczególnych
Kombinację liniową wektorów własnych prowadzącą do środka obiektu
Ponieważ wektory własne mogą mieć różny zwrot, należałoby zapisać 8 kombinacji *.
(* Liczbę tę można zredukować, choćby poprzez wykorzystanie iloczynu kartezjańskiego
dwóch pierwszych wektorów własnych zamiast trzeciego wektora własnego)
a1
b
1
c1
c w 1
a2
b
2
c2
w2
ai
T
w 3 bi
ci
Odbywa się na zasadzie głosowania.
Deskryptor każdego punktu szczególnego jest porównywany z
punktami modelu.
W przypadku dopasowania punkt oddaje głos na centrum obiektu.
Jeden punkt może oddawać wiele głosów, o ile deskryptory pokrywają
się z modelem.
Innym problemem zostaje jeszcze zliczenie głosów!
Obrót i translacja
Metoda zupełnie inwariantna od obrotu i
translacji (zgodnie z oczekiwaniami)
Zaszumienie
Duży wpływ ze
względu na istotną
zmianę liczby punktów
szczególnych
Ekstrakcja cech
75
Zestaw (jet) filtrów Gabora – część
rzeczywista:
Ekstrakcja cech
76
Wykorzystane w detektorze obiektów opartego
na klasyfikacji AdaBoost
Podstawowy zestaw - 5 typów obszarów
kontrastowych
Czarny obszar oznacza odejmowanie pikseli
należących do obszaru, biały obszar –
sumowanie pikseli należących do obszaru
Ekstrakcja cech
77
Przykład w detekcji oczu
Ekstrakcja cech
78
Cechy:
Proste obliczenia, jasna interpretacja.
Skalowalność – jeśli np. standaryzujemy średnie
odchylenie.
Dzięki obrazom całkowym – szybkość obliczeń.
Obraz całkowy – integral image (ii)
Pozwala na obliczenie sumy pikseli dowolnego
obszaru prostokątnego za pomocą 4 sumowań
Wartość pojedynczego elementu obrazu
całkowego ii(xi,yi) odpowiada sumie wszystkich
pikseli spełniających warunek x<xi i y<yi.
Algorytm tworzenia ii dla obrazu I(x,y):
Wszystkim elementom ii(x, y) przypisz wartość 0
Skopiuj pierwszy rząd I(x,1) do ii(x, 1)
Sumuj po kolumnach (od 2 rzędu): ii(x,y)=ii(x,y-1)+I(x, y)
Sumuj po rzędach (od 2 kolumny): ii(x,y)=ii(x-1,y)+ii(x,y)
Przyjmij ii(x, 0)= ii(0, y) = 0
Ekstrakcja cech
80
Suma pikseli szarego prostokąta = ii(A)+ii(D)Suma pikseli prostokąta o zaczepieniu
ii(B)-ii(C).
x, y i wysokości h, szerokości w:
S ii( x 1, y 1) ii( x w 1, y h 1)
ii( x w 1, y 1) ii( x 1, y h 1)
Ekstrakcja cech
81
Wprowadzony przez Lienharta:
Wyznaczany jest dodatkowy obraz całkowy dla
obszarów odwróconych o 45 stopni.
[obrazy: R. Lienhart, J. Maydt: „ An Extended Set of Haar-like Features for Rapid Object Detection”]
obraz testowy
średnie krawędzie postaci
dla zbioru uczącego
deskryptor HOG
danego obrazu
reprezentacja SVM
zbioru tła
(czytaj – jak nie wygląda
człowiek)
reprezentacja SVM
zbioru postaci (czytaj – jak
wygląda człowiek)
Podział obrazu na nakładające się bloki.
Wyznaczenie rozkładu prawdopodobieństwa
wystąpienia krawędzi o danej orientacji w
komórkach.
Normalizacja rozkładów.
84/15
Podstawowa idea (po poniższym schemacie jest jeszcze normalizacja):
atan(Gy/Gx)
Gx
Gy
0
0
0
0
45
90
45
45
90
45
135
45
90
45
45
90
Gx2 G y2
1
5
1
5
1
5
1
3
1
4
1
4
1
1
3
3
histogram gradientów
0
45
90
135
12
17
10
1
[obraz: O. Deniz i inni: „Face recognition using Histograms of Oriented Gradients”]
Niezwykle skuteczne w większości zadań
detekcji/rozpoznawania obiektów.
Dość złożone obliczeniowo.
Proste w interpretacji.
MPEG-7: Multimedia Content Description
Interface
Standaryzuje opis zawartości danych
multimedialnych w wielu aplikacjach
Skoncentrowany bardziej na możliwościach,
jakie powinien spełniać system niż na
narzędziach przetwarzania
Ekstrakcja cech
88
Części MPEG-7:
1. Systems
2. Description Definition Language
3. Visual
4. Audio
5. Generic Entities and Multimedia Description Schemes
6. Reference Software
7. Conformance Testing
8. Extraction and Use of MPEG-7 Descriptors
Ekstrakcja cech
89
Zadania systemu
Grafika – narysuj linie w prostym edytorze
Obraz – wyniki na podstawie przykładu
Wideo – w zestawie obiektów wideo opisz ruchy
obiektu, ruch kamery, relacje między obiektami
Aktywność wideo – w kontekście danego wideo
określ spodziewane akcje
Ekstrakcja cech
90
Standard MPEG-7 proponuje następujące
kategorie deskryptorów danych wizualnych:
ogólne
▪ koloru,
▪ tekstury,
▪ kształtu,
▪ ruchu
Zależne od aplikacji
▪ deskryptor twarzy
Ekstrakcja cech
91
Deskryptor
koloru
Deskryptor
koloru
dominującego
Skalowalny
deskryptor
koloru
Deskryptory
GOF i GOP
Ekstrakcja cech
Deskryptor
struktury
koloru
Deskryptor
widoku
(layout) koloru
Temperatura
barwowa
92
Obraz opisany maksymalnie ośmioma
kolorami dominującymi
Ekstrakcja cech
93
Działa w przestrzeni kolorów CIE-LUV (jednorodna
percepcyjnie)
Miara zaburzenia:
Di h(n ) x(n ) ci , x(n ) Ci
2
n
Współczynnik h(n) wyznaczony statystycznie na podstawie
jednorodności obszaru
Klastry aktualizowane są poprzez równanie:
ci
h ( n )x ( n ) , x ( n ) c
h(n )
i
Algorytm zaczyna się od jednego klastra dzielonego do
momentu osiągnięcia założonego maksymalnego zaburzenia
lub ilości iteracji.
Ekstrakcja cech
94
Algorytm k-średnich (dołączone pliki)
Zawiera informację
o ilości procentowej
danego koloru w
obrazie
Do deskryptora
może być dołączona
informacja o
przestrzennej
koherencji kolorów.
Zawiera informację
o wariancji koloru
[źródło: http://makarandtapaswi.wordpress.com/]
Ekstrakcja cech
96
Działa w przestrzeni HSV
256-komórkowy histogram kolorów
w przestrzeni HSV
odcień (hue): 0 – R, 120 – G, 240 – B, 16
poziomów,
nasycenie (saturation): 0 – barwy
achromatyczne, 1 – barwy czyste, 4
poziomy,
wartość (value): 0 – czerń, 1 – biel i barwy
maksymalnie jasne, 4 poziomy,
indeks komórki: i = 64s+16v+h, i = 0,...,255
Ekstrakcja cech
[źródło: http://image.acasystems.com]
97
Ekstrakcja cech
98
+
+
+
-
x
+
+
+
+
+
+
+
+
+
-
+
+
+
-
Transformata Haara:
y
+
3
V=0
S=0,
12
0
+
-
+
+
+
+
-
+
+
++-
19
V=0
S=1,
18
17
16
.
-
+
+
-
+
+
+-
++
Ilość
współczynników
Maksymalna
wartość H
Maksymalna
wartość S
Maksymalna
wartość V
256
16
4
4
128
8
4
4
64
8
4
2
32
8
2
2
16
4
2
2
+-
++
bins
16
bins
32
bins
64
bins
128
bins
256
+-
82
V=1
S=1,
83
+-
80
.
81
Elementy sumy – łączenie histogramu
Elementy różnicowe –w rzeczywistych
obrazach małe wartości
+
+
++
+-
++
+-
66
V=1
67
S=0,
65
64
.
+
+
+
Ekstrakcja cech
99
W rezultacie otrzymamy:
16 elementów zsumowanych
różnice pomiędzy e
Możemy odzyskać dowolny poziom
histogramu.
Np. po połączeniu:
H1 = 10 H2 = 11
H1+H2 = 21
H1–H2 = -1
Dwa równania z dwoma niewiadomymi – odzyskamy
H1 i H2.
Group of Frames i Group of Pictures
Reprezentuje histogram kolorów zbioru obrazów
Liczymy skalowalny deskryptor koloru dla każdego
obrazu
Zależnie od algorytmu wyznaczamy:
średni histogram
medianę histogramów
przecięcie histogramów
Potem tworzymy
skalowany deskryptor
koloru
[źródło: http://perfectgolfswingreview.net]
Ekstrakcja cech
101
Color
c0
Akumulacja histogramu
Ujednolicenie komórek
8×8 Structuring Element
Bin Value
h (0) + 1
c1
h (1)
c2
h (2)
c3
h (3) + 1
c4
h (4)
c5
h (5) + 1
c6
h (6) + 1
c7
h (7)
Kwantyzacja wartości komórek
p max{0, log 2 WH 7,5}
krok : K 2
p
Structuring Element
Pixels w/in image having color
Structuring Element
Pixels w/in image having color
cm
cm
• analiza dla danego okna analizy o kroku jak wyżej,
• niezależnie czy w danym miejscu mamy jeden czy więcej piksel o danym kolorze –
zwiększamy odpowiadający mu akumulator o 1.
Ekstrakcja cech
102
Structuring Element
Pixels w/in image having color
Structuring Element
Pixels w/in image having color
cm
cm
niskie wartości deskryptora
wysokie wartości histogramu
Ekstrakcja cech
104
White Color
Parametry:
Min = min(R,G,B)
Max = max(R,G,B)
Diff = Max-Min
Hue – tak jak w HSV
Sum = (Max+Min)/2
Sum
Min
Diff
Opis:
H, Max, Min,
H, Diff, Sum
Hue
Max
Black Color
Ekstrakcja cech
105
Wybór koloru
reprezentatywnego
Dzielenie obrazu
1. Podział na bloki 8x8.
2. Kolor reprezentatywny –
np. kolor średni w YCbCr
3. 3 zestawy 8x8 kolorów
reprezentacyjnych (3
kanały)
4. Jeden z najbardziej
oszczędnych
deskryptorów koloru.
Ekstrakcja cech
DCT
Zig-zag i ważenie
R1G1B1
R2G2 B2
R3G3B3
106
DCT dla 3x64 współczynników
N 1 M 1
F ( x, y ) cx c y f (i, j ) cos
i 0 j 0
cx
x(i 0.5)
y ( j 0.5)
cos
N
M
1
if x 0
N
2
if x 1,..., N 1
N
Ekstrakcja cech
107
Skanowanie zigzag
Nieliniowa
kwantyzacja
Rekomendacja:
6 współczynników
luminancji
Po 3 chrominancji
Ekstrakcja cech
108
Określona w stosunku do
temperatury
promieniowania idealnego
ciała czarnego emitującego
światło o określonym
kolorze (składowa Hue).
[źródło: wikipedia]
BrowsingCategory
Kategoria
Zakres wartości temperatur
00
Gorąca
2250K
01
Ciepła
2251K 4170K
10
Neutralna
4171K 8060K
11
Zimna
Ekstrakcja cech
8061K
109
zimna/neutralna/ciepła
zimna/neutralna
neutralna/ciepła/gorąca
neutralna/ciepła
Ekstrakcja cech
zimna/neutralna/ciepła
zimna/ciepła
110
Temperatura barwowa jest określana jako średnia
temperatur barwowych wszystkich pikseli
Wartości skrajne są odrzucane
[źródło: wikipedia]
Ekstrakcja cech
111
Metoda oparta na kolorach dominujących
80000K
7000K
…..
Ekstrakcja cech
112
Ekstrakcja cech
113
Deskryptor
tekstury
Deskryptor
tekstur
jednorodnych
Ekstrakcja cech
Deskryptor
przeglądania
tekstur
Deskryptor
histogramu
krawędzi
114
s
[źródło: wikipedia]
Ekstrakcja cech
115
Ekstrakcja cech
116
[obraz wyprodukowany używając appletu http://homepages.inf.ed.ac.uk/rbf/HIPR2/fftdemo.htm]
[obraz wyprodukowany używając appletu http://homepages.inf.ed.ac.uk/rbf/HIPR2/fftdemo.htm]
[obraz wyprodukowany używając appletu http://homepages.inf.ed.ac.uk/rbf/HIPR2/fftdemo.htm]
Wyznaczany z
transformaty Fouriera.
Określa:
• energię poszczególnych
pasm
•odchylenie standardowe
poszczególnych pasm
Ekstrakcja cech
120
Idealne banki filtrów mają ostre krawędzie – wynik
filtrowania (w przestrzeni obrazu) będą miały artefakty
W zamian wprowadzony został zestaw filtrów Gabora:
( s )2
( r )2
GP s ,r (, ) exp
exp
2
2
2
2
s
r
odchylenie
w kierunku radialnym
odchylenie
w kierunku kątowym
[źródło: Y. M. Ro i inni: „MPEG-7 Homogeneous Texture Descriptor”]
Ekstrakcja cech
121
Wartości deskryptora
Energia i-tego obszaru:
ei log[1 pi ],
pi
G
1
360
0 0
Ps , r ( , ) w F (, )
2
Wariancja i-tego obszaru:
d i log[1 qi ],
qi
G
1
360
0 0
Ps , r
Ekstrakcja cech
(, ) w F (, ) pi
2
2
122
Optymalizacja szybkości:
Central Slice Theorem:
1D transformata Fouriera rzutu obrazu pod kątem θ odpowiada wycinkowi
transformaty 2D pod kątem θ:
Ekstrakcja cech
[źródło: Y. M. Ro i inni: „MPEG-7 Homogeneous Texture Descriptor”]
123
Próbkowanie przestrzeni częstotliwościowej transformatą
Radona:
[źródło: Y. M. Ro i inni: „MPEG-7 Homogeneous Texture Descriptor”]
Ekstrakcja cech
124
Algorytm:
Wyznacz transformatę Radona, w której wiersz
odpowiada jednemu kątowi linii, kolumna odpowiada
przesunięciu tej linii.
Wyznacz 1D transformatę Fouriera dla wektorów
złożonych z wartości przesunięć dla pojedynczych
kątów (tyle transformat ile kątów).
Wykorzystaj wyznaczone 1D transformaty do
stworzenia uproszczonej transformaty 2D.
Na podstawie podanych wzorów wyznacz deskryptor.
TBD=[v1 v2 v3 v4 v5] (bez szczegółów)
v1 – regularność struktury
v2, v3 – kierunkowość tekstury
v4, v5 – skale, które najlepiej określają
niejednorodność tekstury
Przykład
regularność
3
bardzo regularna
Ekstrakcja cech
2
regularna
1
mało regularna
0
nieregularna
126
Operacje oparte na filtrach Gabora (zestaw podobny do tego z DTJ)
[źródło: B.S. Manjunath i inni: „A texture descriptor for browsing and similarity retrieval”]
Ekstrakcja cech
127
(1100)
Ekstrakcja cech
128
Deskryptor określa histogram kierunków
krawędzi w każdym „podobrazie”
Kierunek może być wyznaczany za pomocą
prostych masek:
Jeśli wartość absolutna filtracji żadną z masek
nie da wysokiej wartości, jest to obszar bez
krawędzi
Ekstrakcja cech
129
Deskryptor obszaru
Deskryptor konturu
Ekstrakcja cech
130
Przedstawienie kształtu jako ważonej sumy
regionów bazowych
Obiekt może składać się z wielu regionów
Niezależne od obrotu
Reprezentacja za pomocą Angular Radial
Transform (ART)
Ekstrakcja cech
131
Funkcja bazowa ART:
Vnm ( , ) Am ( ) Rn ( )
1
exp( jm )
2
n0
1
Rn ( )
2 cos(n ) n 0
Am ( )
Wartość bezwzględna funkcji:
Ekstrakcja cech
132
3*12 splotów funkcji bazowej z
obrazem
Wyznaczenie modułów liczb
wynikowych
Normalizacja przez współczynnik
odpowiadający m=0, n=0
Kwantyzacja do 4 bitów
Ekstrakcja cech
133
Curvature Scale Space (CSS)
Na osi x:
▪ Pozycja na konturze
(unormowana)
ewolucja konturu
obraz CSS
Na osi y:
▪ Ilość iteracji uśredniania
Czerwione punkty w
miejscach dla których funkcja
krzywizny przechodzi przez 0.
Krzywizna określona jako
zmiana tangensa kąta do
konturu (określonego jako
x(u), y(u))
Algorytm wygładzania
przeprowadzony jest do
momentu utraty wszystkich
punktów przegięcia
Ekstrakcja cech
kontur po 80 iteracjach
szczyty CSS
kontur po 20 iteracjach
kontur oryginalny
134
Kolistość [12-110):
obwod 2
kolistosc
pole powierzchni
Mimośród - e (na ile kształt jest okrągły):
mimosrod
2
2
i20 i02 i20
i02
2i02i20 4i112
i20 i02 i i 2i02i20 4i
2
20
2
02
2
11
,
M
i02 ( yk yc )2
k 1
M
i11 ( xk xc )( yk yc )
k 1
M
i20 ( xk xc )2
[źródło: wikipedia]
k 1
Ekstrakcja cech
135
Deskryptor zawiera:
Mimośród i kolistość obrazu oryginalnego i po
filtracji
Ilość szczytów CSS
Wielkość najwyższego szczytu
Pozycje szczytów i ich wysokości
Ekstrakcja cech
136
Independent Component Analysis
Dąży do wyznaczenia zmiennych niezależnych z
obserwacji
Problem polega na „ślepej” separacji sygnałów – nie
ma żadnej informacji o źródle dźwięku
[źródło (także kolejnych obrazków o ICA): A.Hyvarinen, E. Oja: „Independent Component Analysis: Algorithms and Applications”]
Ekstrakcja cech
137
Ekstrakcja cech
138
Dane obserwowane x można wyrazić jako suma iloczynów
źródeł sygnału s i współczynników mieszających a:
x1 (t ) a11s1 a12 s2
x2 (t ) a21s1 a22 s2
Problem ten można odwrócić:
s1 (t ) w11 x1 w12 x2
Czyli
s2 (t ) w21 x1 w22 x2
s Wx
Ekstrakcja cech
139
ICA dąży do wyznaczenia macierzy W, która pozwala na
wyznaczenie źródeł sygnału s korzystając z obserwacji x
Zakłada się, że źródła sygnału są niezależne
Załóżmy dwie zmienne niezależne:
Ekstrakcja cech
140
Transformując liniowo zmienne można otrzymać
następujący zbiór punktów – o składowych zależnych:
Ekstrakcja cech
141
Centralne twierdzenie graniczne informuje,
że suma rozkładów zmiennych niezależnych
(o tej samej wartości oczekiwanej i określonej
wariancji) dąży do rozkładu normalnego =>
rozkład średniej upodabnia się do
normalnego
W celu wyróżnienia zmiennych niezależnych
możemy szukać takich transformacji, które
wyznaczą wymiary o jak najmniejszym
podobieństwie do funkcji Gaussa
Ekstrakcja cech
142
1 krok - wybielenie macierzy (dekorelacja) za pomocą
wektorów własnych i wartości własnych:
Ekstrakcja cech
143
2 krok – znalezienie kierunków o najmniejszym podobieństwie do
rozkładu gaussowskiego
negentropia
kurtoza
[źródło: http://sccn.ucsd.edu/~arno/indexica.html]
Ekstrakcja cech
144
Negentropia – różnica między entropią rozkładu Gaussa
o wariancji i średniej aktualnych danych i entropią
aktualnych danych
zeruje się dla rozkładu normalnego
nieujemna
Kurtoza – miara spłaszczenia układu
1 n
4
(
x
)
i
i 1
Kurt n
3
4
zeruje się dla rozkładu normalnego
ujemna dla cech mniej skoncentrowanych niż w rozkładzie
normalnym
dodatnia dla cech bardziej skoncentrowanych niż w rozkładzie
normalnym
Ekstrakcja cech
145
Przykład przewagi PCA nad ICA w separacji
klas:
Kierunek największej
wariancji (wynik PCA)
Kierunek najmniejszego
podobieństwa do rozkładu
Gaussowskiego (ICA)
Ekstrakcja cech
146
Popularne metody rozwiązywania ICA:
FastICA,
Infomax
Ekstrakcja cech
147