Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej ROZPRAWA DOKTORSKA MARCIN KMIEĆ WYKRYWANIE NIEBEZPIECZNYCH PRZEDMIOTÓW W AUTOMATYCZNIE ANALIZOWANYCH SEKWENCJACH WIDEO PROMOTOR: prof. dr hab. inż. Ryszard Tadeusiewicz KRAKÓW, 2013
PODZIĘKOWANIA Pragnę bardzo serdecznie podziękować mojemu promotorowi Panu Profesorowi Ryszardowi Tadeusiewiczowi za pomoc niezbędną do powstania niniejszej pracy. Osobne podziękowania kieruję do Pana Profesora Andrzeja Dziecha, kierownika projektu badawczego INSIGMA, w ramach którego prowadzone były prace będące przedmiotem niniejszej rozprawy. Pragnę również serdecznie podziękować Panu doktorowi Andrzejowi Głowaczowi, zastępcy kierownika projektu INSIGMA, za pomoc merytoryczną w dziedzinie computer vision. 2
Praca została sfinansowana ze środków Unii Europejskiej w ramach projektu badawczego Insigma nr POIG.01.01.02-00-062/09. 3
Spis treści 1 Wprowadzenie... 7 1.1 Komputerowo wspomagany monitoring wizyjny... 7 1.2 Konfiguracja sprzętowa i wymagania czasu rzeczywistego... 8 2 Cel i teza pracy... 10 2.1 Cel pracy... 10 2.2 Teza pracy... 11 2.3 Szczegółowe rozwinięcie tezy... 11 3 Przegląd stanu wiedzy w obszarach związanych z tematyką rozprawy... 13 3.1 Maszyna wektorów nośnych... 13 3.1.1 Wprowadzenie... 13 3.1.2 Linowa maszyna wektorów nośnych... 14 3.1.3 Maszyna wektorów nośnych o miękkim marginesie... 18 3.1.4 Nieliniowa maszyna wektorów nośnych i trick jądrowy... 20 3.1.5 Wieloklasowa maszyna wektorów nośnych... 22 3.2 Histograms of Oriented Gradients... 23 3.2.1 Wprowadzenie... 23 3.2.2 Obliczanie gradientu... 24 3.2.3 Obliczanie histogramu... 24 3.2.4 Konstrukcja bloków obrazu... 25 3.2.5 Normalizacja bloków... 25 3.2.6 Sekwencja detekcji... 27 3.3 Active Appearance Models... 28 3.3.1 Wprowadzenie... 28 3.3.2 Statystyczne modele kształtu... 28 3.3.3 Statystyczne modele wyglądu... 33 3.3.4 Aktywne przeszukiwanie obrazu... 35 4 Obliczenia równoległe w technologii CUDA... 38 4.1 Wprowadzenie... 38 4.2 Obliczenia sekwencyjne i równoległe... 39 4.3 Podstawy teoretyczne obliczeń równoległych... 39 4.3.1 Prawo Amdahl a... 39 4
4.3.2 Niezależność fragmentów programu... 40 4.3.3 Współdzielenie zasobów... 41 4.3.4 Typy zrównoleglania... 41 4.4 Technologia CUDA... 43 4.4.1 Procesory graficzne... 43 4.4.2 Wybrane zastosowania... 43 4.4.3 Schemat przetwarzania w technologii CUDA... 45 4.4.4 Założenia programistyczne... 45 5 Algorytmy wykrywające niebezpieczne narzędzia... 49 5.1 Baza zdjęć noży... 49 5.2 Detekcja noży z użyciem deskryptorów obrazu Histograms of Oriented Gradients. 50 5.2.1 Wprowadzenie... 50 5.2.2 Ekstrakcja cech HOG... 50 5.2.3 Klasyfikator SVM dla cech HOG... 51 5.2.4 Detekcja obiektu w różnych skalach i lokalizacjach... 52 5.2.5 Współczynnik fałszywych pozytywnych wykryć w detekcji w różnych skalach i lokalizacjach... 58 5.2.6 Walidacja detekcji z użyciem klasyfikatora barwy... 59 5.2.7 Detekcja obiektu w różnych orientacjach... 61 5.2.8 Przyśpieszenie działania detektora HOG za pomocą obliczeń równoległych w procesorze graficznym... 64 5.3 Detekcja noży w oparciu o algorytm Active Appearance Models... 67 5.3.1 Wprowadzenie... 67 5.3.2 Wykrywanie punktów narożnych... 67 5.3.3 Schemat działania detektora... 68 5.3.4 Detektor w wersji odpornej na transformacje geometryczne... 70 5.4 Detekcja noży w oparciu o rozkład dominujących orientacji krawędzi... 73 5.4.1 Wprowadzenie... 73 5.4.2 Zbiór cech obrazu oparty o rozkład dominujących orientacji krawędzi... 73 5.4.3 Zbiór uczący i klasyfikator... 75 5.4.4 Klasyfikacja z wykorzystaniem obliczeń równoległych w technologii CUDA. 77 5.4.5 Dyskusja uzyskanych wyników... 77 6 Projekt systemu automatycznej detekcji noży w sekwencjach wideo i jego walidacja... 79 6.1 Wprowadzenie... 79 5
6.2 Architektura sprzętowa... 79 6.3 Schemat działania algorytmu... 80 6.4 Walidacja systemu detekcji noży... 82 6.4.1 Testy na pojedynczych zdjęciach... 83 6.4.2 Testy na nagraniach wideo... 92 6.5 Ocena zależności czasowych... 95 6.5.1 Zawężenie ROI do obszaru związanego z sylwetką ludzką... 95 6.5.2 Analiza obrazu z wykorzystaniem detektora bazującego na rozkładzie dominujących orientacji krawędzi... 95 6.5.3 Analiza obrazu z wykorzystaniem detektora HOG... 96 6.5.4 Sumaryczny czas działania sekwencji detekcji noży... 97 7 Podsumowanie... 98 SPIS RYSUNKÓW... 101 SPIS TABEL... 103 BIBLIOGRAFIA... 104 ZAŁĄCZNIK A BAZA ZDJĘĆ NOŻY... 108 6
1 Wprowadzenie W ostatnich latach metody komputerowego rozpoznawania obrazu rozwijają się w sposób niezwykle dynamiczny, znajdując kolejne zastosowania. Wśród tych zastosowań wyróżniają się aplikacje odnoszące się do sfery bezpieczeństwa. Chodzi tu o bezpieczeństwo osób, budynków i obszarów specjalnego znaczenia. Celem niniejszej pracy jest rozszerzenie zbioru tych aplikacji, związanych od strony naukowej z rozpoznawaniem obrazów i przeznaczonych od strony zastosowań dla potrzeb zapewnienia bezpieczeństwa - o nowe metody wykrywania niebezpiecznych przedmiotów. Stosowanie rozpoznawania obrazu ma sens w sytuacjach gdzie użycie czujników bardziej tradycyjnych niż kamera, takich jak na przykład optyczne czujniki krańcowe czy wykrywacze metalu, nie zdałoby egzaminu. Jednym z najbardziej znanych zastosowań rozpoznawania obrazu jest detekcja twarzy. Jest to jednocześnie zagadnienie z dziedziny computer vision, które od strony technicznej zostało doskonale opanowane, skuteczność detekcji wynosi blisko 100%, przy czym same algorytmy, jak np. algorytm Violi- Jonesa [1] działają w czasie rzeczywistym nawet na urządzeniach o małej mocy obliczeniowej. Detekcja twarzy jest częścią innego spektakularnego zastosowania rozpoznawania obrazu jaką jest wykrywanie uśmiechu [2]. Znajduje ono zastosowanie w aparatach fotograficznych - wyzwolenie migawki przez osobę fotografowaną następuje poprzez uśmiechnięcie się do zdjęcia. Inną grupą zastosowań, posiadającą spore znaczenie praktyczne, są zastosowania metod rozpoznawania obrazu w przemyśle [3]. Wykorzystuje się je do sterowania członami wykonawczymi robotów przemysłowych czy kontroli jakości produktów [4]. 1.1 Komputerowo wspomagany monitoring wizyjny Wykrywanie niebezpiecznych narzędzi w sekwencjach wideo znajduje zastosowanie w komputerowo wspomaganym monitoringu wizyjnym. W związku z niską ceną i dużą skutecznością w zwiększaniu ogólnie pojętego bezpieczeństwa, tradycyjny monitoring wizyjny stosowany jest dziś na szeroką skalę. Jest on wykorzystywany na dwa sposoby. Pierwszy pasywny, polega na rejestracji materiału wideo z miejsc objętych monitoringiem; materiał ten jest przetrzymywany przez pewien czas, z reguły do momentu zapełnienia się nośnika, a w razie potrzeby można odtworzyć zarchiwizowane nagrania. Drugi sposób wykorzystywania monitoringu wizyjnego polega na bieżącym obserwowaniu wyznaczonych obszarów przez operatora telewizja przemysłowej. Z reguły zadaniem takiej osoby jest obserwacja wielu ekranów równocześnie. Nierzadko ich liczba idzie w dziesiątki. Jedno z badań sugeruje [5], że skuteczność operatorów telewizji przemysłowej wyrażająca się w odsetku wykryć sytuacji klasyfikujących się do interwencji spośród wszystkich takich sytuacji, dla operatorów obserwujących 4, 9 i 16 ekranów naraz oscyluje odpowiednio wokół 83%, 74% i 64% w ciągu pierwszej godziny pracy, po czym znacząco spada. W powtarzalnych zadaniach potrzeba zautomatyzowania, a przynamniej wspomożenia pracy ludzkiego operatora wydaje się zatem oczywista [6]. 7
Komputerowo wspomagany monitoring wizyjny to stosunkowo nowa dziedzina techniki. Polega ona na równoczesnym analizowaniu obrazów wideo pochodzących z kamer wykorzystywanych do obserwacji danego obszaru przez program komputerowy, co odbywa się równolegle do pracy operatora i niezależnie od niego. W ogólnym przypadku celem zautomatyzowanego monitoringu jest uzyskanie automatycznej oceny sytuacji mającej miejsce w monitorowanym obszarze i w razie potrzeby zaalarmowanie operatora w oparciu o interpretacje danych. W tym celu wykorzystuje się narzędzia sztucznej inteligencji, a w szczególności metody uczenia maszynowego algorytmy takie jak sieci neuronowe, maszyny wektorów nośnych, binarne drzewa decyzyjne i inne [7] [8]. Znane autorowi zastosowania komputerowo wspomaganego monitoringu wideo obejmują [9]: 1. Wykrywanie naruszenia obszaru zamkniętego przez osoby nieuprawnione. 2. Liczenie ludzi w danym obszarze. 3. Identyfikacja osób. 4. Analiza zachowania poszczególnych osób. 5. Analiza zachowania tłumu. 6. Wykrywanie porzuconego bagażu. Przeprowadzony przegląd literatury światowej pozwala stwierdzić, że jak się wydaje - w chwili obecnej poza AGH nie są prowadzone badania mające na celu opracowanie algorytmów służących do wykrywania narzędzi niebezpiecznych w obrazach. 1.2 Konfiguracja sprzętowa i wymagania czasu rzeczywistego Choć przedmiotem niniejszej rozprawy jest opracowanie algorytmów wykrywających niebezpieczne narzędzia w obrazach wideo, w tym miejscu warto opisać konfigurację sprzętową komputerowo wspomaganego systemu monitoringu wizyjnego. Rozważania w niniejszej pracy dotyczące skuteczności działania algorytmów detekcji odbywają się przy założeniu, że obiekt który ma zostać wykryty będzie widoczny. W przypadku obiektów ukrytych (na przykład pod ubraniem) rozważane w pracy metody także mogą znaleźć zastosowanie przy założeniu dostępności systemu wizualizacji który takie ukryte przedmioty może ujawnić (na przykład rentgenowskiego), Z uwagi na niewielkie rozmiary narzędzi niebezpiecznych (np. noży) wyrażone w pikselach, w porównaniu z obiektami będącymi przedmiotami działania popularnych algorytmów detekcji takimi jak twarze [1], piesi [10], samochody [11], czy znaki przetwarzane przez algorytmy rozpoznawania tekstu [12], zastosowane muszą zostać kamery megapikselowe. W odróżnieniu od tradycyjnych kamer analogowych stosowanych powszechnie w monitoringu wizyjnym, a których rozdzielczość oscyluje w granicach 0,3 megapiksela, kamery megapikselowe poza wyższą rozdzielczością wyposażone są zawsze w interfejs cyfrowy, który gwarantuje bezproblemowe połączenie z komputerem. Nie ma zatem konieczności stosowania tzw. framegrabberów, z zastosowaniem których mogą łączyć się dodatkowe trudności techniczne, jak np. konieczność usunięcia przeplotu z sygnału wideo w analizowanych klatkach. 8
System komputerowy wspomagający operatora obserwującego obraz z monitoringu działa równolegle do niego. Sygnał wideo trafiający do monitorów jest jednocześnie poddawany analizie w komputerze. W sytuacji gdy algorytm wykryje zachowanie podejrzane lub (co jest przedmiotem tej pracy) podejrzany obiekt - operator jest o tym powiadamiany i może tą informację samodzielnie zweryfikować. Warunkiem koniecznym do praktycznego zastosowania algorytmów wspomagających pracę operatora jest to, aby ich tempo działania było przynajmniej zbliżone do reżimu czasu rzeczywistego [13]. Czas analizy jednej klatki powinien być więc nie dłuższy niż czas reakcji operatora. 9
2 Cel i teza pracy 2.1 Cel pracy W niniejszej pracy przedstawione zostały oryginalne metody wykrywania niebezpiecznych narzędzi w sekwencjach wideo. Z praktycznego punktu widzenia zagadnienie to ma, tak jak wspomniano we wstępie, zastosowanie we wspomaganym komputerowo monitoringu wizyjnym, gdzie oprócz operatora analizującego obrazy z wielu kamer jednocześnie, są one równolegle analizowane przez specjalistyczne algorytmy. W sytuacji wykrycia niebezpiecznego zdarzenia lub obiektu oprogramowanie podnosi alarm, który następnie jest weryfikowany przez operatora. Opisane w niniejszej pracy wykrywanie niebezpiecznych narzędzi w sekwencjach wideo odbywa się poprzez analizę poszczególnych klatek, z których składa się dana sekwencja. Analizowane obrazy poddawane są rozpoznawaniu wzorców (ang. pattern recognition), gdzie wzorcami są niebezpieczne narzędzia. W niniejszej pracy główna uwaga skupiona została na wykrywaniu noży, narzędzi wybitnie niebezpiecznych, które jednocześnie są niezwykle niewdzięcznymi obiektami do wykrywania w obrazach. W ujęciu ogólnym rozpoznawanie wzorców odbywa się w dwóch etapach; w pierwszym ekstrahowane są cechy obrazu, w drugim klasyfikator decyduje czy cechy te świadczą o jego przynależności do pewnej kategorii. Rozpoznawanie wzorców jest polem badawczym w obrębie uczenia maszynowego (ang. machine learning), wchodzącego w skład nauk zajmujących się tematyką sztucznej inteligencji. Samo zagadnienie klasyfikacji cech stało się w mniejszym lub większym stopniu zagadnieniem stricte inżynierskim. Dostępne i dobrze opisane są gotowe implementacje klasyfikatorów takich jak sieci neuronowe, maszyna wektorów nośnych (SVM) czy binarne drzewa decyzyjne. Implementacje te są często tak skonstruowane, że nawet bez dogłębnej znajomości teorii stojącej za danym klasyfikatorem możliwe jest osiągnięcie bardzo dobrych wyników klasyfikacji wyrażających się w wysokim współczynniku poprawnych pozytywnych detekcji oraz w niskim współczynniku fałszywych pozytywnych wykryć ( fałszywych alarmów ). Dobre wyniki możliwe są do uzyskania jednak tylko pod warunkiem korzystania z cech obrazu, które są reprezentatywne dla obiektu danego typu. Głównym celem niniejszej pracy było znalezienie cech, które zapewniałyby wysoką skuteczność detekcji niektórych niebezpiecznych narzędzi w obrazach. Użyto tu niezbyt precyzyjnego określenia niektórych ponieważ w oczywisty sposób wszystkich niebezpiecznych narzędzi automatycznie wykrywać się nie da. Pomysłowość terrorystów i innych zamachowców jest ogromna i często się zdarza, że nawet wyszkoleni ludzie ( ochroniarze ) nie są sobie w stanie wyobrazić, że jakiś na pozór zupełnie niegroźny przedmiot może być użyty jako niebezpieczne narzędzie terroru lub zamachu. Przykładem mogą być nieznane płyny, które obecnie są odbierane wszystkim pasażerom chcącym się dostać na pokład samolotów, ponieważ terrorysta znający chemię próbował kiedyś sporządzić bombę z pozornie niewinnych płynów przemyconych na pokład samolotu. Wcześniej jednak nikomu nie przyszło do głowy, że plastikowa butelka z płynem to przedmiot niebezpieczny. 10
Podobnie pozornie całkiem obojętny z punktu widzenia wymogów bezpieczeństwa przedmiot, jakim jest zwykły but, może być przedmiotem niebezpiecznym, gdyż zdarzały się przypadki przemycania na pokład samolotów ładunków wybuchowych ukrytych w obcasach i podeszwach. Z przytoczonych przykładów wynika jednoznacznie, że postawienie w pracy celu zakładającego wykrywanie niebezpiecznych przedmiotów bez tego ograniczającego przymiotnika niektórych oznaczałoby postawienie celu nieosiągalnego. By uzyskać cel zwymiarowany realistycznie w celu pracy (i w jej niżej sformułowanej tezie) wskazano, że opracowane i przebadane w rozprawie metody rozpoznawania obrazu nadają się do automatycznej detekcji niektórych niebezpiecznych przedmiotów w sekwencjach wideo. Tak sformułowany cel i teza pracy są wprawdzie mniej eleganckie, niż cel i teza, które by były tego mało precyzyjnego przymiotnika pozbawione, jednak dzięki temu postawione zagadnienie naukowe i techniczne jest realistyczne. Ograniczając zakres badań do niektórych tylko niebezpiecznych przedmiotów dołożono starań, by opracowane w pracy metody nadawały się do rozpoznawania możliwie szerokiej klasy przedmiotów rozważanego tu typu. Z tego powodu uwagę skupiono głównie na znalezieniu cech dających się wyznaczyć na obrazie, charakterystycznych dla wielu różnych przedmiotów niebezpiecznych i skutecznie te przedmioty wyróżniających. Spośród cech opisanych w literaturze i stosowanych w innych zagadnieniach wybrane zostały te, które taką skutecznością się cechują, jak również zaproponowany został całkowicie nowy zestaw cech, który w zamierzeniu oprócz wysokiej skuteczności klasyfikacji spełnia pewne ograniczenie czasowe, a mianowicie detekcja z jego użyciem odbywa się w czasie zbliżonym do rzeczywistego. 2.2 Teza pracy Ogólna teza pracy może zostać sformułowana następująco: Detekcja niektórych niebezpiecznych przedmiotów w sekwencjach wideo jest możliwa do przeprowadzenia w sposób automatyczny z użyciem metod rozpoznawania obrazu (ang. pattern recognition). 2.3 Szczegółowe rozwinięcie tezy Autor stawia sobie za cel udowodnienie powyższej tezy poprzez przedstawienie oraz zweryfikowanie działania metod pozwalających na detekcję noży w sekwencjach wideo. Metoda taka będzie składała się z dwóch etapów, obliczenia zbioru cech obrazu oraz klasyfikacja obrazu na podstawie uzyskanych cech. Przedstawiony zostanie odpowiedni zbiór cech opisujących obrazy zawierające noże w sposób reprezentatywny oraz wybrany i wytrenowany zostanie odpowiedni klasyfikator. Przez pojęcie cech opisujących obrazy zawierające instancję obiektu danego typu w sposób reprezentatywny, rozumie się takie cechy 11
obrazu, które pozwalają na detekcję obiektów tego typu ze skutecznością na tyle wysoką, która nie świadczyłaby o losowym wyniku klasyfikacji. W tym miejscu warto uściślić pojęcia klasyfikacji i detekcji obrazu. Poprzez klasyfikację obrazu rozumie się przypisanie danego obrazu do jednej z przynajmniej dwóch klas. W ogólnym przypadku liczba klas jest większa lub równa dwa. W przypadku detekcji obiektu danego typu w analizowanym obrazie odpowiadamy na pytanie czy obiekt tego typu znajduje się w nim bądź też nie. Sprowadza się to tym samym do klasyfikacji tego obrazu do jednej z dwóch klas: klasy obrazów zawierających obiekt typu będącego przedmiotem detekcji oraz klasy obrazów, które go nie zawierają. Detekcja w rozpoznawaniu obrazów jest rozumiana jako klasyfikacja z liczbą klas równą dwa. Wynik klasyfikacji, o którym mowa w niniejszym opracowaniu będzie zatem zawsze tożsamy z wynikiem detekcji. Nawiązywanie do wyniku klasyfikacji wynika z użycia klasyfikatorów, wynikiem działania których jest klasyfikacja, a nie bezpośrednio detekcja. Podsumowując, rozwinięcie powyższej tezy sprowadza się do udowodnienia, że istnieje zbiór cech obrazu za pomocą których można w sposób reprezentatywny opisać obrazy przedstawiające narzędzia niebezpieczne, o czym świadczyć ma wysoka jakość działania klasyfikatora operującego na tych cechach, cechująca się wysoką skutecznością klasyfikacji i niskim współczynnikiem fałszywych pozytywnych wykryć. 12
3 Przegląd stanu wiedzy w obszarach związanych z tematyką rozprawy 3.1 Maszyna wektorów nośnych Polska nazwa maszyny wektorów nośnych (wspierających) [14] (ang. Support Vector Machine) jest niezwykle rzadko spotykana z uwagi na fakt, iż publikacje naukowe w większości pisane są po angielsku z myślą o zasięgu międzynarodowym. Dlatego częściej mówi się o SVM-ie. Jest to technika uczenia maszynowego pozwalająca na analizowanie danych i rozpoznawanie wzorców w celu klasyfikacji lub regresji. W najprostszym ujęciu, wyuczony SVM określa do której z dwóch klas należy dany zbiór danych wejściowych. Stanowi on nieprobabilistyczny, binarny, liniowy klasyfikator. Proces uczenia maszyny wektorów nośnych wymaga zbioru uczącego, w którym każdy z elementów jest oznaczony jako należący do jednej z dwóch klas. Uzyskany w procesie uczenia model SVM reprezentuje dane ze zbioru uczącego oddzielone od siebie granicą z najszerszym możliwym marginesem. Klasyfikacja punktów spoza zbioru uczącego polega na określeniu po której stronie granicy znajduje się dany punkt i tym samym następuje określenie jego przynależności do jednej z dwóch klas. 3.1.1 Wprowadzenie Klasyfikacja danych jest podstawowym zagadnieniem uczenia maszynowego. Opracowanie efektywnego klasyfikatora, który dodatkowo cechowałby się względną prostotą w uczeniu leżało u podstaw prac nad maszyną wektorów nośnych. Z czasem zastosowanie SVM zostało rozszerzone na regresję [15]. Na rys. 1 przedstawiony został poglądowy przykład klasyfikacji danych za pomocą SVM. Przedstawia on punkty w przestrzeni, dla uproszczenia, dwuwymiarowej. Każdy z nich należy do jednej z dwóch klas. Warto zaznaczyć, że w terminologii SVM zamiast o punktach w przestrzeni często mówi się o wektorach n-wymiarowych. Konstrukcja klasyfikatora polega na znalezieniu hiperpłaszczyzny, która optymalnie oddziela punkty należące do różnych klas i jak każda hiperpłaszczyzna może zostać opisana z wykorzystaniem wektora doń normalnego. Jak zostanie pokazane, wektor ten jest liniową kombinacją wspomnianych, najbliższych do hiperpłaszczyzny punktów. Dlatego o punktach ze zbioru uczącego często mówi się w literaturze jako o wektorach i z tego wynika nazwa maszyny wektorów nośnych. Hiperpłaszczyzna, w przypadku z rys. 1 jest prostą. Teoretycznie istnieje nieskończenie wiele takich hiperpłaszczyzn. Rozsądnym podejściem jest jednak wybór takiej, która oddziela od siebie dwa zbiory z zachowaniem największego możliwego marginesu, czyli takiej, której odległość do najbliższego punktu po każdej stronie jest największa. Jeśli hiperpłaszczyzna taka istnieje nazywa się ją hiperpłaszczyzną o maksymalnym marginesie, a liniowy klasyfikator utworzony za jej pomocą jest klasyfikatorem o maksymalnym marginesie. Takim klasyfikatorem jest prosta I z rys. 1, gdyż jej odległość do najbliższego punktu z każdej klasy 13
Rys. 1 Klasyfikacja punktów należących do dwóch klas, klasyfikator i klasyfikator o maksymalnym marginesie jest maksymalna. Prosta II również skutecznie rozdziela obie klasy, jednak nie tworzy ona klasyfikatora o maksymalnym marginesie. Konstrukcja maszyny wektorów nośnych polega na wyznaczenie hiperpłaszczyzny w przestrzeni wielowymiarowej. Hiperpłaszczyzna ta może zostać wykorzystana do klasyfikacji oraz regresji. Jakość klasyfikacji zależy od szerokości granicy oddzielającej klasy. Jest to tzw. margines funkcyjny. Im jest on większy, tym mniejszego błędu uogólnienia należy się spodziewać. W przypadku gdy punkty w zbiorze uczącym nie są liniowo separowalne rozwiązaniem jest odwzorowanie ich do przestrzeni o większym wymiarze, w której można spodziewać się ich liniowej separowalności. Konstrukcja maszyny wektorów nośnych na pewnym etapie wymaga obliczania iloczynów skalarnych punktów należących do zbioru uczącego. W przypadku przestrzeni wielowymiarowych i dużej liczby punktów jest to zagadnienie bardzo złożone obliczeniowo. Istnieje jednak sposób obliczania iloczynów skalarnych w przestrzeni do której odwzorowane zostały punkty ze zbioru uczącego ograniczając się do obliczania iloczynów skalarnych przestrzeni oryginalnej. Jest to możliwe z zastosowaniem tzw. funkcji jądrowych. 3.1.2 Linowa maszyna wektorów nośnych Niech oznacza zbiór uczący. Każdy punkt z tego zbioru posiada wartość pochodzącą np. z pomiaru oraz wartość wskazującą na jego przynależność do jednej z dwóch klas. Wartość jest wektorem rzeczywistym n-wymiarowym. {( ) { Konstrukcja klasyfikatora SVM polega na znalezieniu, o ile istnieje, hiperpłaszczyzny o maksymalnym marginesie, tj. takiej której odległość do najbliższego punktu z pierwszej klasy oraz odległość do najbliższego punktu z drugiej klasy jest największa [16]. Ilustruje to rys. 2. Poniższe rozważania z uwagi na łatwość ilustracji odbywają się dla przestrzeni 14
dwuwymiarowej n=2 natomiast są one prawdziwe dla. Równanie hiperpłaszczyzny można wyrazić w postaci:, gdzie jest wektorem do niej normalnym, parametr determinuje przesunięcie hiperpłaszczyzny od środka układu współrzędnych, a jest normą euklidesową w przestrzeni. Na rys. 2 widzimy dwa liniowo separowalne zbiory punktów. Wyznaczmy dwie hiperpłaszczyzny tak aby między nimi nie znalazły się żadne punkty ze zbioru uczącego przy założeniu, że odległość między nimi jest największa. Odległość pomiędzy hiperpłaszczyznami stanowi wspomniany powyżej margines. Niech hiperpłaszczyzny te będą dane równaniami: oraz Z prostego rachunku można obliczyć, że odległość między nimi wynosi. Maksymalizacja tej odległości sprowadza się do minimalizacji. Dodatkowo należy poczynić założenia uniemożliwiające znalezienie hiperpłaszczyzn, pomiędzy którymi znalazły by się jakiekolwiek punkty ze zbioru uczącego. Gwarantują to poniższe założenia:. dla punktów z klasy dla której dla punktów z klasy dla której. Rys. 2 Hiperpłaszczyzna rozdzielająca dwie klasy punktów w zbiorze uczącym z zachowaniem maksymalnego marginesu. 15
Powyższe ograniczenia mogą zostać zapisane jako: dla {. ( ) Problem znalezienia hiperpłaszczyzny o maksymalnym marginesie sprowadza się do rozwiązania zadania optymalizacji polegającego na zminimalizowaniu przy ograniczeniu, że dla {, ( ). Hiperpłaszczyzna ta będzie dana równaniem: Forma pierwotna Norma euklidesowa zawiera w sobie pierwiastek co komplikuje zagadnienie optymalizacji. Wystarczy jednak zauważyć, że zagadnienie minimalizacji ma to samo rozwiązanie co zagadnienie minimalizacji. Współczynnik został dopisany dla wygody obliczeń. Ponieważ funkcja minimalizowana oraz ograniczenie są ciągłe z wraz pierwszymi pochodnymi możemy zastosować mnożniki Lagrange a w celu znalezienia rozwiązania.. [ ( ) ] ( ) (3.1) Poszukiwane są i, które minimalizują funkcjonał (3.1) oraz, które go maksymalizują. Z warunku Karush-Kuhna-Tuckera wynika, że rozwiązaniem niniejszego problemu optymalizacji jest liniowa kombinacja wektorów uczących: Punkty dla których są poszukiwanymi wektorami nośnymi. Wartość stałej obliczamy z równania hiperpłaszczyzny przechodzącej przez dowolny wektor nośny: W praktycznych implementacjach metody SVM [17] [18] wartość stałej średnia ważona dla wszystkich wektorów nośnych: jest liczona jako 16
, Gdzie oznacza liczbę wektorów nośnych. Forma dualna Różniczkując funkcjonał Lagrange a po zmiennych i i przyrównując go do zera otrzymujemy: (3.2) (3.3) Po podstawieniu (3.2) i (3.3) do (3.1) otrzymujemy tzw. problem dualny:, gdzie. (3.4) Nadal obowiązują warunki oraz (3.3). Funkcja ( ) występująca w (3.4) jest iloczynem skalarnym dwóch wektorów i jest tzw. funkcją jądrową. Ma ona istotne znaczenie w kernel trick (ang.), tj. triku jądrowym pozwalającym na stosowanie klasyfikatorów nieliniowych. Funkcje jądrowe wywodzą się z badań liniowych przestrzeni wektorowych, przestrzeni Hilberta i Banacha, a działanie wspomnianego triku jądrowego opisane zostanie bardziej szczegółowo w rozdziale 3.1.4. Problem dualny jest sprowadza się do problemu maksymalizacji funkcji: [ ]] 17
dla i zachowaniu warunku (3.3). Rozwiązanie tego zadania optymalizacji jest możliwe na drodze numerycznej. Mając obliczone na podstawie (3.2) można obliczyć. Równanie (3.3) jest spełnione przez każdy wektor wspierający. Dodatkowo, co oczywiste, każdy wektor nośny spełnia zależność: ( ). (3.5) Połączenie równań (3.2) i (3.5) prowadzi do zależności: ( ). (3.6) która jest prawdziwa dla każdej wektora nośnego. Choć sumowanie odbywa się po wszystkich punktach, to jednak udział w sumie mają tylko wektory nośne, tj. te punkty, którym odpowiadają niezerowe wartości. Równanie (3.6) można rozwiązać ze względu na b mnożąc obie strony przez, gdyż {-, a zatem, z czego otrzymujemy: W tym miejscu tak jak w przypadku formy pierwotnej w celu wyliczenie stałej b można wybrać dowolny wektor wspierający: jednak lepiej jest [16] wyliczyć b uśredniając wyniki po wszystkich wektorach nośnych: ( ) Obliczenie wektora wag w oraz stałej b kończy poszukiwanie hiperpłaszczyzny o największym marginesie. 3.1.3 Maszyna wektorów nośnych o miękkim marginesie W pracy [14] zaproponowano modyfikację idei największego marginesu w sytuacji gdy nie istnieje hiperpłaszczyzna, która oddziela od siebie wszystkie punkty należące do różnych klas. Przypadek zbiorów nieseparowalnych liniowo przedstawiony został na rys. 3. Metoda miękkiego marginesu polega na wyznaczeniu takiej hiperpłaszczyzny, która oddziela od siebie obie klasy w sposób możliwie dobry, przy czym stopień błędnej klasyfikacji jest 18
Rys. 3 Hiperpłaszczyzna rozdzielająca dwa liniowo nieseparowalne zbiory. mierzony poprzez wprowadzenie tzw. zmiennej rozluźniającej (niekiedy nazywanej zmienną luźną, ang. slack variable) dla każdego wektora. Zmienna ta jest zawsze nieujemna:. Warunek umiejscowienia punktów po właściwej stronie jest modyfikowany w stosunku do warunku występującego w przypadku sztywnego marginesu: co z użyciem może zostać zapisane jako: ( ) Zmienna rozluźniającą traktować można jako karę dla punktów znajdujących się po niewłaściwej stronie marginesu. Stosując podejście znane z formy pierwotnej hiperpłaszczyzny o maksymalnym marginesie, zadanie optymalizacji możemy określić jako: przy ograniczeniu: ( ) Parametr C decyduje o wielkości marginesu, im większy margines tym zmienna rozluźniająca będzie większa dla większej liczby punktów. Funkcjonał Lagrange a tak jak wcześniej musi zostać zminimalizowany względem parametrów w, b oraz teraz dodatkowo. Natomiast jest on maksymalizowany ze względu na mnożniki oraz ( ). [ ( ) ] (3.7) 19
Po zróżniczkowaniu względem zmiennych w, b oraz otrzymujemy: (3.8) (3.9) (3.10) Podobnie jak w przypadku funkcjonału (3.1), podstawiamy (3.8) i (3.9) do (3.7). Warunek (3.10) implikuje, że skoro to. Poszukujemy zatem następującego maksimum: [ ] (3.11) przy ograniczeniach: oraz (3.9). Po znalezieniu stała b jest obliczana tak samo jak w przypadku sztywnego marginesu, jednak należy uwzględnić ograniczenie. 3.1.4 Nieliniowa maszyna wektorów nośnych i trick jądrowy W przypadku gdy mamy do czynienia z problemem klasyfikacji, który nie jest liniowo separowalny, można znaleźć odwzorowanie przekształcające oryginalny problem do przestrzeni o większym wymiarze, w której możliwe jest skonstruowanie klasyfikatora liniowego. Przykład zagadnienia klasyfikacji, które nie jest liniowo separowalne w swojej przestrzeni, a jest liniowo separowalne w przestrzeni o większym wymiarze został przedstawiony na rys. 4. Odwzorowanie przekształca punkty z przestrzeni oryginalnej do nowej przestrzeni, tzw. przestrzeni zmiennych przekształconych (ang. feature space). Tworząc nowy model SVM musimy obliczyć macierz H na podstawie danych wejściowych (3.4): Funkcje ( wektorów nośnych funkcja ( ( ) ) noszą nazwę funkcji jądrowych. W przypadku liniowego modelu maszyny ) była iloczynem skalarnym dwóch wektorów i stanowiła ona tzw. kernel liniowy. Jak wspomniane zostało w rozdziale 3.1.2 funkcja jądrowa jest podstawą triku jądrowego pozwalającego na stosowanie klasyfikatorów nieliniowych. Zostanie to wyjaśnione na przykładzie przekształcenia: (( ) ) ( ) (3.12) 20
Rys. 4 Przykład problemu klasyfikacji nieseparowalnego liniowo w swojej przestrzeni. w celu znalezienia liniowego klasyfikatora w przestrzeni dla problemu oryginalnego w [19]. Problem oryginalny i jego przekształcenie zostały pokazane na rys. 5. Jak łatwo zauważyć, punkty należące do obu klas mogą zostać oddzielone za pomocą elipsy. Zastosowanie przekształcenia (3.12) do przestrzeni pozwala na wyznaczenie liniowej hiperpłaszczyzny oddzielającej oba zbiory. W celu rozwiązania problemu dualnego musimy obliczyć iloczyny skalarne punktów przekształconych do nowej przestrzeni: ( ) ( ) Tu z pomocą przychodzą funkcje jądrowe. Jest to specjalna klasa funkcji, która pozwala na wyznaczenie iloczynu skalarnego w przestrzeni do której odwzorowany został problem oryginalny bez jego jawnego obliczania. Często stosowane w SVM typy funkcji jądrowych to: 1. ( ) ( ) 2. ( ) ( ) 3. ( ) ( ) dla 4. ( ) ( ) dla i Rys. 5 Problem klasyfikacji separowalny za pomocą elipsy w przestrzeni oryginalnej 21
W rozważanym przykładzie mamy do czynienia z funkcją typu 1, konkretnie z funkcją ( ) ( ), która odpowiada przekształceniu (3.12). Iloczyn skalarny wektorów w przestrzeni zmiennych przekształconych może zostać obliczony za pomocą funkcji jądrowej: Jest to wspomniany wyżej trick jądrowy. Przy jego stosowaniu, złożoność obliczeniowa iloczynu skalarnego w przestrzeni zmiennych przekształconych nie zależy od jej wymiaru, a tylko od wymiaru przestrzeni oryginalnej. Pozwala to na stosowanie w razie potrzeby przekształceń do przestrzeni o bardzo dużych wymiarach bez obawy o złożoność obliczeń. Ogólnie, funkcja jądrowa jest powiązana z przekształceniem zależnością: ( ) ( ) ( ) 3.1.5 Wieloklasowa maszyna wektorów nośnych SVM w oryginalnej postaci jest klasyfikatorem binarnym. Istnieją jednak jego odmiany pozwalające na klasyfikację wieloklasową, np. na przypisanie znakowi konkretnej litery lub cyfry, co stosuje się w rozpoznawaniu tekstu (OCR) [20]. Co do zasady, wieloklasowy SVM opiera się na podzieleniu problemu wieloklasowego na wiele problemów dwuklasowych. Znane są dwa podejścia pozwalające to osiągnąć: 1. Podejście one-versus-all, w którym trenuje się tyle klasyfikatorów binarnych z iloma klasami mamy do czynienia. Dane służące do uczenia każdego z nich podzielone są na dwie klasy jedna klasa z pierwotnego zbioru uczącego oraz dane z pozostałych klas ujęte razem w drugiej klasie. Klasyfikacja wieloklasowa polega na analizie konkretnej próbki za pomocą wszystkich wytrenowanych klasyfikatorów. Za wynik uznaje się tą klasę, która została wskazana z największym wskazaniem przez przypisany jej klasyfikator. 2. Podejście one-versus-one, gdzie tworzy się wszystkie możliwe dwuelementowe kombinacje klas i dla każdej takiej pary uczy się oddzielny klasyfikator. Za wynik klasyfikacji wieloklasowej uznaje się etykietę tej klasy, która największą liczbę razy była wynikiem klasyfikacji przez wszystkie klasyfikatory binarne. 22
3.2 Histograms of Oriented Gradients Histograms of Oriented Gradients (ang.), w skrócie HOG, to deskryptory obrazu przedstawione w pracy [10]. Deskryptor obrazu w ujęciu ogólnym (ang. image descriptor) to opis jego zawartości. Mianem deskryptorów określa się też algorytmy służące do uzyskania takiego opisu. W rozdziale 3.1 poświęconym maszynie wektorów nośnych mowa była o wektorze cech podlegającemu klasyfikacji. W kontekście rozpoznawania obrazu taki wektor cech stanowią deskryptory obrazu. W literaturze poświęconej tematyce pattern recognition zamiennie używa się określenia cechy obrazu. Deskryptory HOG należą do deskryptorów opisujących kształt i służą do znalezienia w obrazie konkretnego obiektu. Najogólniej rzecz ujmując, deskryptory HOG oparte są na idei zliczania występowania gradientów występujących w tej samej orientacji przestrzennej (pod pewnym kątem) w pewnym ściśle określonym fragmencie obrazu. Gradienty te są liczone w równomiernie rozmieszczonych komórkach (fragmentach obrazu). Dodatkowo, w celu polepszenia jakości wykrywania obiektów stosowana jest lokalna normalizacja kontrastu w nachodzących na siebie regionach. Pierwotnym zastosowaniem HOG a było wykrywanie pieszych na zdjęciach. W niniejszej rozprawie opisane zostały wyniki zastosowania deskryptorów HOG do wykrywania noży. Wcześniej przedstawiony zostanie wstęp teoretyczny i opisane będą etapy uzyskania deskryptorów. 3.2.1 Wprowadzenie Główną ideą deskryptorów HOG jest założenie, że wygląd obiektu może zostać opisany za pomocą rozkładu występowania krawędzi pod określonym kątem. Krawędzie występujące w obrazie są uzyskiwane poprzez obliczenie pochodnej kierunkowej wzdłuż odpowiedniego wektora, dlatego w literaturze traktującej o deskryptorach HOG mówi się zamiennie o gradientach. Od strony implementacyjnej deskryptory obrazu HOG są uzyskiwane przez podzielenie obrazu wejściowego na małe fragmenty zwane komórkami i sporządzenie dla każdej komórki histogramu występowania orientacji krawędzi. Połączenie histogramów obliczonych dla wszystkich komórek stanowi deskryptor obrazu HOG. Cechą odróżniającą opisywane deskryptory od innych bazujących na krawędziach takich jak [21] czy [22] jest stosowanie normalizacji kontrastu w obszarach obejmujących większy fragment obrazu, tzw. blokach, obejmujących pewną liczbę komórek. Jak pokazały badania [23] daje to zwiększoną odporność na nierównomierne oświetlenie i występowanie cieni. HOG jest odporny na wszystkie transformacje geometryczne z wyjątkiem rotacji. Oznacza to, że obraz, na którym wykryto dany obiekt, po poddaniu dozwolonej transformacji również będzie zawierał cechy HOG wskazujące na obecność tego obiektu. 23
3.2.2 Obliczanie gradientu Większość algorytmów obliczających specyficzne cechy obrazu przed ich właściwym obliczeniem poddaje obraz wstępnemu przetwarzaniu. Ma to na celu znormalizowanie intensywności pikseli i dokonania korekcji gamma. Korekcję gamma stosuje się w celu usunięcia nadmiernego kontrastu w obrazie, który może być spowodowany przez zniekształcenia wprowadzane przez układ akwizycji obrazu (np. kamerę). Korekcja gamma jest zdefiniowana jako: Intensywność pikseli obrazu wejściowego jest podnoszona do potęgi i przemnażana przez stałą. Wartości tych parametrów są dobierane stosownie do zastosowanego układu akwizycji obrazu. W toku badań nad deskryptorami HOG stwierdzono [23], że wstępne przetwarzanie obrazu nie wnosi zauważalnego polepszenia jakości działania deskryptorów. Zamiast niego lepszy efekt przynosi wspomniana we wstępie normalizacja kontrastu. Pierwszym krokiem w obliczaniu deskryptorów HOG jest obliczenie gradientu. Gradient liczony jest w dwóch kierunkach poziomie i pionie, poprzez filtrowanie obrazu wejściowego z zastosowaniem dwóch filtrów: 1. Filtru poziomego [ ] 2. Filtru pionowego [ ] Działanie filtru polega na umiejscowieniu środka danego filtru w każdym pikselu obrazu wejściowego i obliczenie jego nowej wartości poprzez sumowanie trzech pikseli wyznaczonych przez filtr z uwzględnieniem jego wag. W eksperymentach z obrazami zawierającemu sylwetki pieszych stwierdzono [23], że bardziej rozbudowane filtry takiej jak maska Sobela o wymiarach 3x3 czy maski ukośne wykazały gorszą skuteczność w wykrywaniu obiektów. Stwierdzono również, że wstępne wygładzanie Gaussowskiego także negatywnie wpływało na skuteczność detekcji.. 3.2.3 Obliczanie histogramu Po obliczeniu gradientów dla każdej komórki tworzony jest histogram przedstawiający rozkład gradientów lub inaczej rozkład orientacji krawędzi. W zależności od tego czy kąty przedstawiane są ze znakiem lub bez, histogram przedstawia orientację krawędzi w zakresie 0 360 lub 0 180. Najlepsze wyniki detekcji pieszych zostały uzyskane z zastosowaniem dziewięciu przedziałów klasowych. Histogram przedstawia wartość gradientu we wszystkich pikselach w komórce. Wartość ta może być podawana w sposób bezpośredni lub w postaci jakiejś jej funkcji, np. kwadratu czy pierwiastka, natomiast ponownie okazało się [23], że wartość bezpośrednia daje najlepsze rezultaty. 24
3.2.4 Konstrukcja bloków obrazu Wspomniane komórki obrazu w celu normalizacji kontrastu są grupowane w większe przestrzenne bloki. Deskryptor obrazu HOG jest wektorem składającym się z obliczonych histogramów we wszystkich blokach. Warto podkreślić, że w oryginalnej implementacji [4] bloki nachodzą na siebie, wobec tego pewne komórki występują więcej niż raz w ostatecznym deskryptorze. Autorzy w [23] proponują dwie geometrie przestrzenne bloków; bloki prostokątne R-HOG oraz bloki okrągłe C-HOG. Bloki prostokątne R-HOG składają się w siatkę o trzech parametrach: liczba komórek składających się na jeden blok, liczba pikseli w komórce oraz liczba kanałów (przedziałów klasowych) histogramu. W pracy [23] najlepsze wyniki zostały uzyskane dla bloków składających się z dziewięciu komórek (3x3), każda komórka składała się z 6x6 pikseli, a liczba kanałów wynosiła 9. Komórki okrągłe C-HOG występują w dwóch postaciach. Pierwsza składa się z pojedynczej centralnie umieszczonej komórki, podczas gdy w drugiej komórki występują w równych odstępach kątowych. Na rys. X przedstawiona została przestrzenna geometria komórek R-HOG oraz C-HOG w dwóch wariantach. Rys. 6 Przestrzenna geometria komórek R-HOG (a), C-HOG centralnie rozmieszczonej (b) oraz C-HOG z równymi odstępami kątowymi (c). Autorzy deskryptorów HOG doszli do wniosku, że najlepsze wyniki detekcji uzyskiwane są z zastosowaniem komórek C-HOG z czterema odstępami kątowymi i dwoma odstępami wzdłuż promienia jak na rys. 6c. 3.2.5 Normalizacja bloków Deskryptory obrazu HOG odróżniają się od innych deskryptorów bazujących na krawędziach obiektów stosowaniem normalizacji po obliczeniu gradientów, zamiast normalizacji obrazu, z którego cechy są ekstrahowane. Normalizowane są poszczególne bloki, składające się z ustalonej liczby komórek w ustalonym ułożeniu przestrzennym. Stosowana normalizacja bazuje na k-normie, która dla n-elementowego wektora jest postaci:. 25
Naturalnie, jest normą euklidesową. W pracy [10] opisane zostały cztery sposoby normalizacji wektora cech HOG, z których każdy opiera się na współczynniku normalizującym w postaci: 1. L2-norm: 2. L2-hist: 3. L1-norm:, 4. L1-sqrt: W każdym z powyższych przypadków wektor cech jest normalizowany poprzez podzielenie go przez czynnik skalujący: Stała występująca w powyższych równaniach jest pewną małą liczbą, która teoretycznie nie ma wpływu na wynik normalizacji [10]. Normalizacja L2-hist odbywa się na wzór normalizacji w [24]. Polega ona na ograniczeniu wartości oraz dodatkowo normalizacji wektora do długości jednostkowej. Normalizacje L2-norm, L2-hys oraz L1-sqrt cechują się skutecznością ulepszania działania deskryptorów HOG na podobnym poziomie, podczas gdy L1-norm działa nieco gorzej od pozostałych. Na rys. 7 zapożyczonym z pracy [4] przedstawiony został pozytywny wpływ normalizacji wektora cech na działanie detektora, wyrażony we współczynnikach skuteczności detekcji oraz fałszywych pozytywnych wykryć. Rys. 7 Wpływ normalizacji wektora cech obrazu HOG na skuteczność działania deskryptora 26
3.2.6 Sekwencja detekcji Sekwencja detekcji obiektów z wykorzystaniem deskryptorów HOG została przedstawiona na schemacie z rys. 8. Wstępne przetwarzanie obrazu wejściowego polegające na normalizacji intensywności pikseli i korekcji gamma jest opcjonalne, ponieważ nie wnosi znaczącej poprawy do jakości działania detektora [23]. Obraz zawierający przedmiot detekcji jest poddawany procesowi obliczenia gradientów, tak jak to zostało opisane powyżej. Następnie następuje normalizacja wybraną metodą. Deskryptor obrazu wyliczony dla regionu wyznaczonego przez okno detektora jest następnie poddawany klasyfikacji za pomocą SVM. W oryginalnej implementacji [10] zastosowana została maszyna wektorów nośnych o miękkim marginesie (C=0.01) z liniowym jądrem. Wynik klasyfikacji mówi o tym czy w danym miejscu na obrazie znajduje się. bądź też nie, wykrywany obiekt. Rys. 8 Sekwencja detekcji obiektów z wykorzystaniem deskryptorów HOG 27
3.3 Active Appearance Models 3.3.1 Wprowadzenie Active Appearance Models (AAM) to algorytm, którego celem jest zlokalizowanie obiektu w obrazie na podstawie statystycznego modelu jego kształtu i wyglądu. Z dużym prawdopodobieństwem można stwierdzić, iż w literaturze nie funkcjonuje polska nazwa tego algorytmu, dlatego w niniejszej rozprawie będzie używana nazwa angielska i jej skrót. Algorytm AAM został przedstawiony w pracy [25] w 1998 jako uogólnienie popularnego algorytmu Active Contour Model znanego również pod nazwą Snake oraz algorytmu Active Shape Model. AAM jest metodą wymagającą fazy uczenia, a jej pierwotnym zastosowaniem było interpretowanie obrazów twarzy. Z uwagi na wysoką skuteczność lokalizowania obiektów różnego typu w obrazie, metoda ta znalazła szerokie zastosowanie w aplikacjach medycznych. Typowa taka aplikacja polega na znalezieniu obiektu, zwykle organu ciała, w obrazie pochodzącym z urządzenia do diagnostyki medycznej. Przykładem takich zastosowań jest odnalezienie konkretnej kości w obrazie z rezonansu magnetycznego kolana [26], lewej i prawej komory w obrazie z rezonansu magnetycznego serca [27] czy całego serca w zdjęciu rentgenowskim klatki piersiowej [28]. Ogólnie rzecz ujmując, Active Appearance Models mogą zostać zdefiniowane jako model statystyczny kształtu oraz intensywności pikseli w rozważanym obiekcie. Intensywność pikseli na obrazie nazywana jest również teksturą. Angielskie słowo appearance oznaczające wygląd, w terminologii AAM oznacza połączenie kształtu i tekstury. Słowo active odnosi się do faktu, że wyuczony algorytm AAM dopasowuje model kształtu i tekstury do obiektów w nowych obrazach. W niniejszej rozprawie opisane zostanie zastosowanie Active Appearance Models do wykrywania noży w obrazach, a niniejszy rozdział stanowi wprowadzenie teoretyczne do tematyki AAM. 3.3.2 Statystyczne modele kształtu W pracy [18] przedstawione zostały niuanse tworzenia statystycznych modeli kształtu i wyglądu obiektów w obrazach. Kształt obiektu jest reprezentowany przez zbiór n punktów w przestrzeni o dowolnym wymiarze. Najczęściej punkty znajdują się na płaszczyźnie, choć możliwe jest modelowanie kształtu w 3D jak i przestrzeniach o większym wymiarze. Sam kształt jest to geometryczna konfiguracja punktów, która jest odporna (nie zmienia się) po zastosowaniu transformacji podobieństwa, tj. translacji, rotacji oraz zmiany skali. Innymi słowy, kształt obiektu nie zmienia się po jego przesunięciu, obróceniu lub powiększeniu czy pomniejszeniu. Aby stworzyć statystyczny model kształtu danego obiektu potrzebny jest zbiór uczący zawierający takie obiekty. Na każdy z obiektów w zbiorze uczącym muszą zostać ręcznie naniesione tzw. punkty orientacyjne, które definiują jego kształt. Na rys. 9 przedstawione zostały trzy obrazy noży z naniesionymi punktami orientacyjnymi. Każdy z trzech przedstawionych obiektów jest zdefiniowany przez wielokąt o wierzchołkach w punktach 28
orientacyjnych oraz poprzez intensywność pikseli znajdujących się w obrębie tego wielokąta. Punkty orientacyjne muszą zostać wybrane w taki sposób, aby można było je w sposób powtarzalny umieszczać na różnych obiektach w tych samych miejscach. W praktyce ręczne nanoszenie punktów na cały zbiór uczący jest nużącą i czasochłonną pracą. Oczywiście istnieją narzędzia programistyczne ułatwiające ten proces, jednak w dalszym ciągu musi on być nadzorowany przez człowieka. W przypadku obiektów znajdujących się na płaszczyźnie, punkty najlepiej nanosić w pobliżu rogów znajdujących na krawędziach. Niestety w praktyce często zdarza się, że takie punkty nie występują lub występują w zbyt małej liczbie by pozwolić na uogólniony opis kształtu. Dlatego należy punkty szczególne uzupełnić o punkty znajdujący się pomiędzy nimi w równych odstępach. Kształt zdefiniowany przez n punktów w d-wymiarowej przestrzeni jest reprezentowany przez wektor o długości nd. Przykładowo, kształt opisany przez n punktów {( ) na płaszczyźnie jest zdefiniowany przez wektor: ( ). Kształty wszystkich obiektów znajdujących się w zbiorze uczącym można opisać w odniesieniu do ich średniego kształtu. Dlatego przed naniesieniem punktów orientacyjnych należy dokonać odpowiedniego przekształcenia, które pozwoli wyznaczyć średni kształt obiektów ze zbioru uczącego. Metodą stosowaną w tym celu jest tzw. analiza Prokrusta. Prokrust to postać z mitologii greckiej, przestępca, który miał w zwyczaju rozciągać kończyny swoich ofiar, podobnie jak to ma miejsce z obiektami w zbiorze uczącym, co zostanie niżej pokazane. Sposób postępowania w analizie Prokrusta jest następujący: 1. Wybrać dowolny obiekt w zbiorze uczącym, którego kształt będzie kształtem referencyjnym. 2. Nałożyć kształty pozostałych obiektów na kształt referencyjny. 3. Obliczyć średni kształt wszystkich nałożonych na siebie kształtów. 4. Jeśli odległość obliczonego średniego kształtu do kształtu referencyjnego jest większa niż pewna, ustalona wcześniej wartość progowa należy obliczony średni kształt ustawić jako kształt referencyjny i wrócić do punktu 2. Odległość dwóch kształtów wyznaczonych przez wierzchołki wielokąta jest pierwiastkiem z sumy kwadratów odległości pomiędzy poszczególnymi punktami i jest to tzw. odległość Rys. 9 Punkty orientacyjne naniesione na trzech obrazach noży 29
Prokrusta. Nakładanie na kształtu na kształt średni polega na zastosowaniu translacji, rotacji i skalowania obiektów i również odbywa się w czterech krokach: 1. Obliczyć środki ciężkości obu obiektów. 2. Zmienić rozmiar obiektu nakładanego, tak aby był równy średniemu rozmiarowi. 3. Nałożyć na obiekty, tak aby ich środki ciężkości się pokrywały. 4. Obrócić nakładany kształt, tak aby odległość Prokrusta pomiędzy oboma kształtami była możliwie najmniejsza. Modelowanie kształtu Po wykonaniu analizy Prokrusta, dysponujemy średnim kształtem, a ponadto kształty wszystkich obiektów znajdują się we wspólnym układzie współrzędnych. Załóżmy, że mamy zbiór kształtów obiektów o liczności s, a każdy kształt jest opisany przez n punktów w przestrzeni d-wymiarowej. Każdy z kształtów opisany jest zatem przez wektor nd-elementowy. Wektory te tworzą pewien rozkład. Jeśli uda się go zamodelować, możliwe będzie wytworzenie nowych wektorów opisujących nowe kształty, podobnych do tych ze zbioru uczącego. W ten sposób możliwe jest również sprawdzanie czy dowolny kształt należy do klasy kształtów ze zbioru uczącego. Niech będzie dowolnym nd-elementowym wektorem, pewnym zbiorem parametrów. Poszukiwany jest model taki, że: ( ) (3.13) Wektor opisuje kształt, który jest zależny od parametrów. Możliwe jest zamodelowanie rozkładu parametrów ( ) i tym samym ograniczenie ich wartości w taki sposób, aby kształty ( ) były podobne do kształtów ze zbioru uczącego. W celu uproszczenia modelu można zredukować wymiar danych wynoszący nd. Można to osiągnąć poprzez zastosowanie analizy głównych składowych (PCA), jednej z metod statystycznej analizy czynnikowej. Dane ze zbioru uczącego opisujące kształty obiektów stanowią chmurę punktów w przestrzeni euklidesowej o wymiarze nd. Analizy głównych składowych przekształca układ współrzędnych w tej przestrzeni w ten sposób, aby maksymalizować w pierwszej kolejności wariancję pierwszej współrzędnej, następie drugiej itd. Sposób postępowania jest następujący: 1. Obliczyć wartość średnią wektorów opisujących kształt: 2. Obliczyć macierz kowariancji: ( )( ) 30
3. Obliczyć wartości wektory własne macierzy i odpowiadające im wartości własne. Niech oznacza zbiór t wektorów własnych odpowiadających największym wartościom własnym. Dowolny element ze zbioru może być przybliżony jako:, gdzie ( ), a jest t-wymiarowym wektorem zdefiniowanym jako: ( ) Wektor ten jest wektorem parametrów modelu Manipulując jego parametrami można zmieniać kształt (3.13). Wariancja i-tego parametru w zbiorze uczącym wynosi. Autor w [26] ogranicza do w celu osiągnięcia pewności, że tak wygenerowany kształt, będzie podobny do tych w zbiorze uczącym. Liczba wektorów własnych t branych pod uwagę (tj. liczba nowych składowych głównych), jest ustalana w taki sposób, aby utworzony model reprezentował ustaloną dużą część całej wariancji danych, albo żeby odrzucone czynniki stanowiły sam szum. Przykład analizy głównych składowych dla przypadku dwuwymiarowego został przedstawiony na rys. 10 zapożyczonym z pracy [26]. Każdy z dwuwymiarowych punktów może zostać przybliżony za pomocą punktu najbliższego mu punktu na głównej osi. Ten z kolei może zostać opisany za pomocą odległości od punktu średniego :. Metoda głównych składowych ma sens przy założeniu, że modelowane dane są powiązane zależnością liniową, co nie zawsze ma miejsce. Tak jest w przypadku nieliniowych zmian kształtu np. takich, które powstają przy obracaniu obiektu. Jednym z rozwiązań jest stosowanie wielowarstwowego perceptronu zamiast PCA lub użycie współrzędnych biegunowych. Rys. 10 Analiza głównych składowych dla przypadku dwumiarowego. 31