• Nie Znaleziono Wyników

Index of /rozprawy2/10605

N/A
N/A
Protected

Academic year: 2021

Share "Index of /rozprawy2/10605"

Copied!
111
0
0

Pełen tekst

(1)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.

(2) 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.

(3) Praca została sfinansowana ze środków Unii Europejskiej w ramach projektu badawczego Insigma nr POIG.01.01.02-00-062/09.. 3.

(4) Spis treści 1. 2. 3. Wprowadzenie .................................................................................................................... 7 1.1. Komputerowo wspomagany monitoring wizyjny ....................................................... 7. 1.2. Konfiguracja sprzętowa i wymagania czasu rzeczywistego ........................................ 8. Cel i teza pracy ................................................................................................................. 10 2.1. Cel pracy .................................................................................................................... 10. 2.2. Teza pracy.................................................................................................................. 11. 2.3. Szczegółowe rozwinięcie tezy ................................................................................... 11. Przegląd stanu wiedzy w obszarach związanych z tematyką rozprawy ........................... 13 3.1. 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. 4. Maszyna wektorów nośnych ..................................................................................... 13. 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. 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.

(5) 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. 5. 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. 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. 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. 6. Detekcja noży w oparciu o algorytm Active Appearance Models ............................ 67. 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. Projekt systemu automatycznej detekcji noży w sekwencjach wideo i jego walidacja ... 79 6.1. Wprowadzenie ........................................................................................................... 79 5.

(6) 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. 7. 6.5.3. Analiza obrazu z wykorzystaniem detektora HOG ............................................ 96. 6.5.4. Sumaryczny czas działania sekwencji detekcji noży ......................................... 97. Podsumowanie ................................................................................................................. 98. SPIS RYSUNKÓW ................................................................................................................ 101 SPIS TABEL .......................................................................................................................... 103 BIBLIOGRAFIA .................................................................................................................... 104 ZAŁĄCZNIK A – BAZA ZDJĘĆ NOŻY ........................................................................... 108. 6.

(7) 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 VioliJonesa [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.

(8) 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. 2. 3. 4. 5. 6.. Wykrywanie naruszenia obszaru zamkniętego przez osoby nieuprawnione. Liczenie ludzi w danym obszarze. Identyfikacja osób. Analiza zachowania poszczególnych osób. Analiza zachowania tłumu. 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.

(9) 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.

(10) 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.

(11) 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.

(12) 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.

(13) 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.

(14) 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.

(15) 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.

(16) 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 ‖ ‖ . Współczynnik. rozwiązanie co zagadnienie minimalizacji. 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. ‖ ‖. ‖ ‖. Poszukiwane są maksymalizują.. i. [ (. ∑. (. ∑. ). ). ]. ∑. , które minimalizują funkcjonał (3.1) oraz. (3.1). , które go. 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:. 16. jest liczona jako.

(17) ∑ Gdzie. ,. oznacza liczbę wektorów nośnych.. Forma dualna Różniczkując funkcjonał Lagrange’a po zmiennych otrzymujemy:. i. i przyrównując go do zera. ∑. (3.2). ∑. (3.3). Po podstawieniu (3.2) i (3.3) do (3.1) otrzymujemy tzw. problem dualny: ∑. ∑. ∑. ∑. ∑ , gdzie . Nadal obowiązują warunki. (3.4) 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.

(18) 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.

(19) 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 ( ). ‖ ‖. ∑. ∑. [ (. 19. ). ]. ∑. (3.7).

(20) 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 ( ) noszą nazwę funkcji jądrowych. W przypadku liniowego modelu maszyny wektorów nośnych funkcja ( ) 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: ((. ) ). (. 20. √. ). (3.12).

(21) 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.. (. ). 4.. (. ). ) ) ( (. ‖. ‖ ) dla ) dla. i. Rys. 5 Problem klasyfikacji separowalny za pomocą elipsy w przestrzeni oryginalnej. 21.

(22) 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.

(23) 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.

(24) 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.

(25) 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. ..

(26) 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.

(27) 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.

(28) 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.

(29) 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 ) na przez wektor o długości nd. Przykładowo, kształt opisany przez n punktów {( 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.

(30) 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. 2. 3. 4.. Obliczyć środki ciężkości obu obiektów. Zmienić rozmiar obiektu nakładanego, tak aby był równy średniemu rozmiarowi. Nałożyć na obiekty, tak aby ich środki ciężkości się pokrywały. 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. ̅ )(. ̅).

(31) 3. Obliczyć wartości wektory własne własne .. macierzy. i odpowiadające im wartości. 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.

(32) Przykłady modelu kształtu Autor w [26] jako przykład modelu kształtu podaje model kształtu swojej własnej dłoni. Obiekty służące do zbudowania tego modelu, tj. dłonie zostały pokazane na rys. 11. Dłoń na każdym zdjęciu ze zbioru uczącego została opisana za pomocą zbioru punktów orientacyjnych mających opisać jej kształt. Liczba punktów wynosiła 72.. Rys. 11 Kształty obiektów w zbiorze uczącym. Najlepszymi punktami orientacyjnymi są te leżące na końcach i przy łączeniu palców, pozostałe wyznaczają geometryczne granice dłoni. Zastosowanie analizy głównych składowych do zamodelowania zbioru kształtów prowadzi do uzyskania modelu opisanego przez średni kształt i zależącego od zbioru parametrów. Na rys. 12 pokazane zostały obiekty uzyskane przez manipulowanie pierwszymi trzema parametrami w zakresie ich odchyleń standardowych.. Rys. 12 Efekt zmian pierwszych trzech parametrów modelu dłoni w zakresie odchyleń standardowych.. 32. ich.

(33) Dopasowywanie modelu do nowych punktów Załóżmy, że dysponujemy modelem pewnego obiektu oraz obrazem, o którym wiemy, że zawiera taki obiekt. Obiekt taki może być opisany za pomocą zestawu parametrów oraz transformacji z układu współrzędnych związanych z modelem do układu współrzędnych związanych z obrazem. Najczęściej będzie to transformacja definiująca pozycję ( ), orientację oraz skalę modelu w obrazie. Obiekt w obrazie jest zatem opisany jako: ( ̅. ). Funkcja wykonuje translację o ( ), zmianę skali o W zastosowaniu do punktu ( ) przyjmuje ona wartość: ( ). ( ). (. oraz rotację o kąt. .. )( ). Zakładamy, że w rozpatrywanym obrazie znajduje się obiekt o kształcie, którego modelem dysponujemy. Poszukujemy lokalizacji tego obiektu oraz parametrów dla których model najlepiej opisze poszukiwany obiekt. Niech oznacza zbiór punktów w obrazie stanowiących obiekt, wtedy postawione zadanie sprowadza się do minimalizacji funkcjonału: |. ( ̅. )|. (3.14). Zagadnienie minimalizacji (3.14) jest bardzo złożone, bowiem znaleźć należy położenie, skalę oraz orientację obiektu w analizowanym obrazie, nie wspominając już o zestawie parametrów , który w najlepszy sposób dopasuje model do obiektu . Dokładny opis minimalizowania funkcjonału (3.14) można znaleźć w oryginalnej pracy na ten temat [29] oraz w [26]. Polega on najpierw na oszacowaniu lokalizacji czyli parametrów przekształcenia , a następnie odnalezieniu parametrów , które najlepiej dopasowują model. Proces ten jest wykonywany w iteracjach, przerywanych gdy model zbiegł do punktu, w którym nie odnotowuje się znaczącej poprawy. 3.3.3 Statystyczne modele wyglądu Model kształtu obiektu nie stanowi pełnego odzwierciedlenia jego wyglądu. Aby go uzupełnić, pod uwagę należy również wziąć jego teksturę, tj. wartości poszczególnych pikseli z których się składa. Model kształtu i tekstury nazywany jest modelem wyglądu (ang. appearance model). Podobnie jak w przypadku kształtu, do utworzenia takiego modelu będzie potrzebny wielokąt, którego wierzchołki będą wyznaczały kształt, pod uwagę będą brane dodatkowo piksele zamknięte w wielokącie. Załóżmy, że dysponujemy utworzonym wcześniej statystycznym modelem kształtu, co zostało opisane w poprzednim rozdziale. Znając uzyskany w ten sposób średni kształt, możemy pokusić się o przekształcenie obiektów w zbiorze uczącym w taki sposób aby uzyskały one kształt średni (ang. image warping). W ten sposób powstaną tzw. łaty, tj. kawałki obrazu o zadanym kształcie. Dysponując nimi, można zbudować model tekstury, 33.

(34) czyli intensywności pikseli. Zależność pomiędzy kształtem może zostać zamodelowana, co doprowadzi do statystycznego modelu wyglądu obiektu. Podobne podejście wykorzystane jest w sławnej metodzie rozpoznawania twarzy Eigenfaces [30]. Modelowanie tekstury Modelowanie tekstury zostanie opisane na przykładzie twarzy, obiektu wykorzystanego w oryginalnej pracy [25]. Jak wspomniano we wstępie, każdy z obiektów w zbiorze testowym musi zostać przekształcony tak, aby jego kształt był równy kształtowi średniemu. Przekształcenie to (ang. image warping) odbywa się w taki sposób, że zmieniony zostaje kształt, tj. zmienione zostaje położenie punktów, jednak wartości pikseli nie ulegają zmianie. W ten sposób obrazy ze zbioru uczącego zostają znormalizowane pod względem kształtu. Po znormalizowaniu obiektów w zbiorze uczącym tworzy się wektory tekstury, tj. wektory zawierające intensywności pikseli obiektów. Następnie wektory te normalizuje się w taki sposób aby zminimalizować różnice wynikające z oświetlenia. Niech oznacza wektor zawierający teksturę obiektu, współczynnik skalujący, a pewną stałą. Wtedy wektory tekstury są normalizowane w sposób dany równaniem: (. ). Wartości parametrów i są uzyskiwane w sposób rekursywny, szczegółowo procedura ta została opisana w [25]. Wartości te jednak zostają ustalone w taki sposób, by najlepiej odpowiadały średniemu wektorowi tekstury. Mając średni wektor tekstury ̅ możemy zastosować procedurę analizy głównych składowych do danych w zbiorze uczącym. W ten sposób uzyskamy model liniowy: ̅. ,. gdzie ̅ jest średnim znormalizowanym wektorem tekstury, własnych, a tradycyjnie wektorem parametrów.. jest macierzą wektorów. Model wyglądu Niech oznacza parametry modelu kształtu. Ponieważ założyliśmy, że istnieje korelacja pomiędzy kształtem i teksturą możemy kolejny raz dokonać analizy głównych składowych. Niestety oraz , parametry odpowiadające kształtowi i intensywności pikseli wyrażone są w różnych jednostkach. Nie możemy ich bezpośrednio porównywać. Wobec tego należy wprowadzić odpowiednie przeliczenie, które na to pozwoli. W pracy [25] autor udowodnił, że pewna macierz , jak to zostanie pokazane niżej, pozwala na takie przeliczenie. Niech oznacza połączony wektor parametrów: (. ). (. 34. ( (. ̅) ̅). ).

(35) Analiza głównych składowych nowego wektora. prowadzi do rezultatu: ,. jest macierzą wektorów własnych: (. ),. a wektorem parametrów, który kontroluje kształt i teksturę jednocześnie. Innymi słowy, od parametru zależy wygląd obiektu. Model wyglądu obiektu wyrażony przez ten parametr dany jest następującymi równaniami: ̿ ̅ ,które mogą być dalej uproszczone: ̅. (3.15) ̅. (3.16). Powyższe równania (3.15) i (3.16) stanowią model wyglądu obiektu (ang. appearance model). Kształt oraz intensywność pikseli w obrazie ograniczonym przez ten kształt zależą od tego samego parametru . 3.3.4 Aktywne przeszukiwanie obrazu W rozdziale 3.3.2 przedstawiony został sposób dopasowywania modelu do obrazu zawierającego obiekt danego typu. Mowa była tam o modelu kształtu. W niniejszym rozdziale natomiast, opisana została technika dopasowywania modelu wyglądu obiektu. W nazwie ang. Active Appearance Model, słowo active oznacza algorytm dopasowujący model wyglądu appearance do nowego obrazu. Niech wektor oznacza wektor wartości pikseli wygenerowanych przez model o parametrach , a wektor wartości pikseli w analizowanym obrazie. Wtedy:. jest wektorem różnic pomiędzy modelem, a obrazem. Celem Active Appearance Models jest dopasowanie modelu do obiektu występującego w obrazie, a więc zminimalizowanie wektora | | względem różnic. Postawione zadanie optymalizacji ma za zadanie minimalizacje wektora zmiennych . Wektor zmiennych może mieć duży wymiar, wobec czego zadanie optymalizacji bardzo się komplikuje. Autor metody AAM przedstawia [25] efektywny sposób rozwiązania tego problemu. 35.

(36) Niech oznacza kształt w analizowanym obrazie, a Wtedy:. kształt wygenerowany przez model.. ( ), gdzie to transformacja podobieństwa, w skład której wchodzi translacja ( ), rotacja o kąt oraz zmiana rozmiaru dana współczynnikiem . Wartości pikseli w łacie obrazu związanej z modelem dane są z kolei przez transformację: ( ), oznacza wektor parametrów tej transformacji. Parametry wyglądu obiektu oraz transformacji kształtu definiują pozycję kształtu w analizowanym obrazie, który definiuje łatę obrazu zawierają piksele o intensywności . Intensywność pikseli wyznaczona przez model może zostać porównana z z uwzględnieniem poprawki na transformację podobieństwa: ( ). (. ). (3.17). ( | | ) jest wektorem parametrów modelu, a ( ) funkcją tych parametrów. Obcięte do pierwszego składnika rozwinięcie w szereg Taylora funkcji ( ) (3.17) w punkcie ( ) wygląda następująco: (. ). ( ). (3.18). Chcemy tak dobrać kierunek przeszukiwań aby zminimalizować | ( Przyrównując prawą stronę równania (3.18) do zera otrzymujemy:. )| .. ( ), ,gdzie (( ) Obliczanie. ). ( ) .. w każdym kroku optymalizacji jest bardzo kosztowne obliczeniowo. Autor. w [25] proponuje aby. obliczyć numerycznie uśredniając uzyskane wartości dla wszystkich. obrazów ze zbioru uczącego. Wartości, po których odbywa się różniczkowanie są dobierane na podstawie optymalnych wartości parametrów wektora dla znanych obrazów. Po obliczeniu (. i wyznaczeniu kierunku poszukiwań następuje wyliczenie nowej wartości. ).. 36.

(37) Dopasowanie modelu do obrazu odbywa się w sposób iteratywny. Niech oznacza aktualne parametry modelu, a odpowiadające im oszacowanie wartości intensywności pikseli. | jest następujący: Sposób postępowania w celu minimalizacji | 1. 2. 3. 4. 5. 6.. | | . Oszacować wektor błędu i oszacować bieżący błąd Obliczyć kierunek przeszukiwań Ustawić k =1 Obliczyć: Obliczyć błąd dla | Jeśli | , gdzie jest ustaloną wartością progową dla warunku stopu,. 7. W przeciwnym wypadku. i wrócić do punktu 4.. Powyższa procedura pozwala na znalezienie zestawu parametrów na podstawie, których możliwe jest wygenerowanie modelu kształtu (3.15) i tekstury (3.16) odpowiadających obiektowi w analizowanym obrazie. Oczywiście, wszystko to odbywa się przy założeniu, że taki obiekt istnieje. W przeciwnym przypadku nie osiągnięte zostanie lokalne minimum i algorytm optymalizacji rozjedzie się lub osiągnięte zostanie lokalne minimum nie odpowiadające obiektom w zbiorze uczącym. Jak pokazały eksperymenty [26] [27] [28] Active Appearance Models jest algorytmem, który aby osiągnąć zbieżność wymaga dobrej inicjalizacji, czyli sensownych warunków początkowych. W przypadku analizowania twarzy za pomocą AAM [31] bardzo rozsądne przybliżenie obiektu w obrazie jest osiągane z użyciem detektora twarzy [1].. 37.

(38) 4. Obliczenia równoległe w technologii CUDA. 4.1. Wprowadzenie. W niniejszej pracy przedstawione zostaną opracowane przez autora algorytmy detekcji narzędzi niebezpiecznych w obrazach. Celem przyświecającym ich opracowaniu było nie tylko uzyskanie programowych detektorów cechujących się wysokim współczynnikiem wykryć i niskim odsetkiem fałszywych pozytywnych detekcji, lecz także możliwość ich praktycznego zastosowania. Jednym z warunków ich praktycznej aplikacji jest osiągnięcie wystarczająco krótkiego czasu działania. W idealnym przypadku czas ten byłby zbliżony do rzeczywistego. Nie jest to jednak warunek konieczny. Wystarczy aby czas od pojawienia się w analizowanym obrazie niebezpiecznego narzędzia do momentu sygnalizacji tego zdarzenia, nie był długi w porównaniu z czasem reakcji operatora. Jednym ze sposobów przyśpieszania obliczeń jest ich zrównoleglenie. Jeśli dany algorytm można podzielić na etapy, które nie są zależne od wyniku uzyskanego w etapach poprzednich, może on zostać przyśpieszony poprzez obliczanie tych etapów w tym samym czasie, czyli równolegle. Oczywiście nie zawsze takie przyśpieszenie jest możliwe. Przykładem tego jest obliczanie silni zgodnie z definicją. Natomiast przykładem dobrze ilustrującym możliwości przyśpieszanie algorytmów poprzez ich zrównoleglanie jest iloczyn skalarny. Dla dwóch wektorów o długości 1000 obliczanie iloczynu skalarnego polega na wykonaniu 1000 mnożeń i następnie zsumowaniu wyników. Wynik każdego z tych mnożeń jest niezależny od pozostałych. Gdyby wykonać je w tym samym czasie, to teoretycznie czas obliczania iloczynu skalarnego skróciłby się 1000 razy, nie licząc czasu potrzebnego na obliczenie końcowej sumy. Aby dany problem mógł zostać obliczony równolegle, oprócz niezbędnego sprzętu niezbędna jest odpowiednia jego implementacja. Implementacja algorytmów równoległych wiąże się z koniecznością synchronizacji obliczeń i komunikacji pomiędzy zadaniami wykonywanymi równolegle. Algorytmy wykrywania niebezpiecznych narzędzi w sekwencjach wideo przedstawione w niniejszej rozprawie zostały w części zaimplementowane w sposób równoległy. Obliczenia te są wykonywane z wykorzystaniem technologii CUDA firmy NVidia bazującej na kartach graficznych tej firmy. Nazwa CUDA (ang. Compute Unified Device Architecture) oznacza uniwersalną architekturę sprzętową procesorów wielordzeniowych umożliwiającą wykorzystanie ich mocy obliczeniowej do obliczeń równoległych. W niniejszym rozdziale przedstawiona zostanie ta technologia, a szczegóły implementacyjne znajdują się w rozdziałach dotyczących konkretnych algorytmów.. 38.

Cytaty

Powiązane dokumenty

Wyniki badań pokazują, że nie jest możliwe utworzenie bazy danych słów z uwzględnieniem części mowy, na bazie wyłącznie rozmieszczenia wyrazów w korpusie

Innym podejściem jest ręczna detekcja szczelin, której przykładem jest metoda opracowana w pracy [6], gdzie granice ziarn i szczeliny były kolorowane na fotografi ach,

W ramach niniejszej pracy prezentujemy nasz autorski algorytm, który pozwala na detekcję zmian w obrazie dna oka oraz wstępne rezultaty, które zostały dzięki niemu

[r]

Jak zmieni się fenotyp i przystosowanie, jeśli zmienimy pierwszy bit ch_opt.. A jeśli zmienimy ostatni

x_p=-2*nr_gr; %ograniczenie dolne zmiennej x_k=3*nr_gr; %ograniczenie górne zmiennej q=5; %dokładność (liczba cyfr po przecinku) N=20; %liczność populacji.. p_c=0.9;

Przy każdym z podanych niżej przykładów wpisz literę „P”, jeśli jest on prawdziwy, lub literę „F”, jeśli jest fałszywy. a) Filippo Buonaccorsi znany pod przydomkiem

10 J.. szczegółowych studiów analitycznych. Zmieniła się w sposób istotny sama metodologia badań. Zasadą obowiązującą stał się marksistowski postulat traktowania