FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA Lokalizacija karakterističnih točaka lica u videu Generalić Boris Gulan Filip Kopljar Damir Miličević Andrija Nu

Слични документи
Klasifikacija slika kucnih brojeva dubokim konvolucijskim modelima

Postojanost boja

Napredno estimiranje strukture i gibanja kalibriranim parom kamera

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br Autonomno kretanje virtualnih objekata Marin Hrkec Zagreb, lipanj 201

Raspoznavanje prometnih znakova

23. siječnja od 13:00 do 14:00 Školsko natjecanje / Osnove informatike Srednje škole RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovi

Metode za automatsko podešavanje boje i svjetline slike

Odreivanje neodreenosti hadronske strukture metodama strojnog ucenja

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA Seminarski rad u okviru predmeta Računalna forenzika BETTER PORTABLE GRAPHICS FORMAT Matej

Drugi kolokvij iz predmeta Operacijski sustavi 2. srpnja Napomene: PISATI ČITKO! Zadatke 7-10 rješavati na ovom papiru ili uz njih napisati "na

Podružnica za građenje

eredar Sustav upravljanja prijavama odjelu komunalnog gospodarstva 1 UPUTE ZA KORIŠTENJE SUSTAVA 1. O eredar sustavu eredar je sustav upravljanja prij

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ Предмет: КОМПЈУТЕРСКА СИМУЛАЦИЈА И ВЕШТАЧКА ИНТЕЛИГЕНЦИЈА Задатак број: Лист/листова: 1/1 Задатак 5.1 Pостоје

Logičke izjave i logičke funkcije

Prikaz slike na monitoru i pisaču

Microsoft Word - 15ms261

Elementarna matematika 1 - Oblici matematickog mišljenja

Može li učenje tablice množenja biti zabavno?

(Microsoft Word - Dr\236avna matura - studeni osnovna razina - rje\232enja)

(Microsoft Word - MATB - kolovoz osnovna razina - rje\232enja zadataka)

XIII. Hrvatski simpozij o nastavi fizike Istraživački usmjerena nastava fizike na Bungee jumping primjeru temeljena na analizi video snimke Berti Erja

P11.3 Analiza zivotnog veka, Graf smetnji

Microsoft Word - III godina - EA - Metodi vjestacke inteligencije

8 2 upiti_izvjesca.indd

Matrice. Algebarske operacije s matricama. - Predavanje I

Sveučilište J.J. Strossmayera Fizika 2 FERIT Predložak za laboratorijske vježbe Lom i refleksija svjetlosti Cilj vježbe Primjena zakona geometrijske o

(Microsoft Word - Rje\232enja zadataka)

Test ispravio: (1) (2) Ukupan broj bodova: 21. veljače od 13:00 do 14:00 Županijsko natjecanje / Osnove informatike Osnovne škole Ime i prezime

KORISNIČKE UPUTE APLIKACIJA ZA POTPIS DATOTEKA

(Microsoft Word - Dr\236avna matura - svibanj osnovna razina - rje\232enja)

SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE, RAČUNARSTVA I INFORMACIJSKIH TEHNOLOGIJA Sveučilišni preddiplomski studij PRI

Natjecanje 2016.

Matematika 1 - izborna

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br Učenje dubokih korespondencijskih metrika trojnim gubitkom Marin Ko

(Microsoft Word - Dr\236avna matura - kolovoz ni\236a razina - rje\232enja)

Prikaz znakova u računalu

Daljinski upravljiva utičnica

Drveta odlucivanja - algoritmi

2015_k2_z12.dvi

Microsoft Word - 6. RAZRED INFORMATIKA.doc

Microsoft Word - 6ms001

8. razred kriteriji pravi

SVEUČILUŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE, RAČUNARSTVA I INFORMACIJSKIH TEHNOLOGIJA Sveučilišni studij PROCJENA BRZINE V

59. Natjecanje mladih tehničara Republike Hrvatske Školsko/Klupsko natjecanje godine Tehnička kultura 5. razred Maketarstvo i modelarstvo Radni

Algoritmi SŠ P1

4

Slide 1

Državna matura iz informatike

Microsoft PowerPoint - podatkovni promet za objavu.pptx

Državno natjecanje / Osnove informatike Srednje škole Zadaci U sljedećim pitanjima na odgovore odgovaraš upisivanjem slova koji se nalazi ispred

Algoritmi SŠ P1

ALIP1_udzb_2019.indb

Slide 1

Optimizacija

PuTTY CERT.hr-PUBDOC

Objektno orjentirano programiranje 2P

kriteriji ocjenjivanja - informatika 8

knjiga.dvi

Često postavljana pitanja u programu OBRT 1. Kako napraviti uplatu u knjizi tražbina i obveza? 2. Kako odabrati mapu/disk za pohranu podataka? 3. Kako

Golden 7 Classic HTML5 na stolnim računalima i mobilnim uređajima. Vrsta igre: Video slot PVI (povratak vrijednosti igraču): 95,00 % Golden 7 Classic

KATALOG ZNANJA IZ INFORMATIKE

PDF = Potencijalno destruktivan fajl

Универзитет у Београду Факултет организационих наука Распоред испита за предмете мастер академских студија Испитни рок: Јун Предмет Датум Време

DUBINSKA ANALIZA PODATAKA

Microsoft Word - predavanje8

Sos.indd

Повезивање са интернетом

Primjena georadara u otkrivanju podzemne infrastrukture URL: Tvrtko Pavić Michael Arvanitis Mile Prša

Upute za samostalni dizajn i grafičku pripremu plakata BOJE Plakat je najuočljiviji kada se koriste kombinacije kontrastnih boja npr. kombinacija crne

1

Recuva CERT.hr-PUBDOC

Школа Ј. Ј. Змај Свилајнац МЕСЕЧНИ ПЛАН РАДА ЗА СЕПТЕМБАР Школска 2018 /2019. Назив предмета: Информатика и рачунарство Разред: 5. Недељни број часова

Primjeri optimizacije postojećih shema programom CUTLOG Potrebno je ispiliti drvenu građu 69 x 69 mm. Postojeća shema piljenja izgleda kao na slici de

Nastavna cjelina: 1. Jezik računala Kataloška tema: 1.1. Bit 1.2. Brojevi zapisani četvorkom bitova Nastavna jedinica: 1.1. Bit   1.2. Brojevi zapisan

Универзитет у Београду Факултет организационих наука Коначан распоред испита за предмете Мастер академских студија Испитни рок: ОКТОБАР Предмет

ПА-4 Машинско учење-алгоритми машинског учења

Programiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj

Microsoft Word - privitak prijedloga odluke

JMBAG Ime i Prezime Mreže računala Završni ispit 16. veljače Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i službeni šalabahter.

Microsoft Word - AIDA2kolokvijumRsmerResenja.doc

Projektovanje informacionih sistema i baze podataka

Slide 1

JMBAG IME I PREZIME BROJ BODOVA MJERA I INTEGRAL završni ispit 6. srpnja (Knjige, bilježnice, dodatni papiri i kalkulatori nisu dozvoljeni!) 1.

Microsoft Word - V03-Prelijevanje.doc

Oblikovanje i analiza algoritama 4. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb OAA 2017, 4. pr

INDIKATOR SVJETLA FUNKCIJE TIPKI 1. Prikazuje se temperatura i parametri upravljanja 2. Crveno svjetlo svijetli kad grijalica grije 3. Indikator zelen

Elementi praćenja i ocjenjivanja za nastavni predmet Matematika u 4. razredu Elementi praćenja i ocjenjivanja za nastavni predmet Matematika u 4. razr

UAAG Osnovne algebarske strukture 5. Vektorski prostori Borka Jadrijević

_sheets.dvi

Microsoft PowerPoint - Rittal konfigurator 2019_prezentacija__HR

Microsoft PowerPoint - Topic02 - Serbian.ppt

Classroom Expectations

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ЗАВРШНИ ИСПИТ НА КРАЈУ ОСНОВН

Microsoft PowerPoint - Topic02 - Serbian.ppt

PowerPoint Presentation

Numeričke metode u fizici 1, Projektni zadataci 2018./ Za sustav običnih diferencijalnih jednadžbi, koje opisuju kretanje populacije dviju vrs

ELEKTROTEHNIČKI FAKULTET, UNIVERZITET U BEOGRADU KATEDRA ZA ELEKTRONIKU UVOD U ELEKTRONIKU - 13E041UE LABORATORIJSKA VEŽBA Primena mikrokontrolera

P9.1 Dodela resursa, Bojenje grafa

RAČUNALO

Транскрипт:

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA Lokalizacija karakterističnih točaka lica u videu Generalić Boris Gulan Filip Kopljar Damir Miličević Andrija Nuić Hrvoje Šarić Fredi Zadro Tvrtko Zagreb, siječanj 2017.

SADRŽAJ 1. Projektni zadatak 1 1.1. Opis projektnog zadatka........................ 1 1.2. Pregled i opis srodnih rješenja..................... 1 1.2.1. Xavier P. Burgos-Artizzu - Robust Cascaded Pose Regression 1 1.2.2. Yu, Huang, Zhang, Metaxas - Landmark Fitting via Optimized Part Mixtures and Cascaded Deformable Model........ 2 1.2.3. Zhu, Ramanan - Face Detection, Pose Estimation, and Landmark Localization in the Wild................. 3 1.3. Konceptualno rješenje zadatka..................... 3 2. Postupak rješavanja zadatka 4 2.1. Pretvorba boje u nijanse sive...................... 4 2.1.1. Prvi algoritam......................... 4 2.1.2. Drugi algoritam......................... 4 2.2. Izjednačavanje histograma....................... 5 2.3. Detekcija i izlučivanje lica....................... 6 2.4. Lokalizacija karakterističnih točaka lica................ 7 2.4.1. Konvolucijska neuronska mreža................ 8 2.4.2. Slojevi konvolucijske neuronske mreže............ 9 3. Ispitivanje rješenja 11 3.1. Ispitna baza............................... 11 3.2. Rezultati učenja i ispitivanja...................... 12 4. Opis programske implementacije rješenja 14 5. Zaključak 16 Literatura 17 iv

1. Projektni zadatak 1.1. Opis projektnog zadatka Lokalizacija karakterističnih točaka lica u videu ili fotografiji je tehnika koja se danas koristi u mnogim sustavima i ure dajima. Susrećemo je na raznim društvenim servisima, poput Facebook-a, koji ju koriste za automatsko označavanje ljudi na fotografijama. Većina algoritama lokalizacije točaka lica su iznimno kompleksni i zahtijevaju veliku količinu procesorske snage i memorije, pa je težnja usmjerena na poboljšavanje tih algoritama. No razvojem i napretkom tehnologije algoritmi lokalizacije točaka lica se danas uspješno, bez velikih problema, izvode i na mobilnim ure dajima koji ih koriste u raznoraznim aplikacijama poput alata za šminkanje gdje osoba može uz pomoć praćenja lica vidjeti kako bi izgledali s odre denim bojama na svom licu. Kroz ovaj projekt će se pokušati dani problem lokalizacije karakterističnih točaka lica riješiti uporabom dubokih neuronskih mreža. 1.2. Pregled i opis srodnih rješenja 1.2.1. Xavier P. Burgos-Artizzu - Robust Cascaded Pose Regression RCPR metoda za detekciju karakterističnih točaka lica je poboljšanje metode CPR (Cascaded pose regression). CPR metoda je vrlo efikasna i precizna u odre divanju karakterističnih točaka lica, ali preciznost joj drastično opada kada se odre duju karakteristične točke na licima koje su prekrivene s nekom preprekom. CPR uči kaskadu regresora R 1... T koji progresivno transformiraju inicijalni skup karakterističnih točaka S 0 u finalni odabira karakterističnih točaka S T. Skup točaka S i je definiran kao Sp i = [x p, y p ], p 1... P. Svaki od regresora R t producira pomak osnovne konfiguracije točaka δs t koji se kombinira s ulazom tog regresora i stvara se ulaz u slijedeći regresor S t = S t 1 + δs t. 1

RCPR metoda zahtijeva da označene karakteristične točke imaju informaciju o tome je li karakteristična točka prekrivena nekom zaprekom (naočale, ruka...) ili ne. Time je definirana karakteristična točka kao Sp i = [x p, y p, v p ], gdje je v p realna vrijednost iz intervala [0, 1]. Slika se podijeli u 3 3 polje. Svako polje ima informaciju o postotku prepreka unutar polja dobivenu kao procjena temeljena na S t 1 karakterističnih točaka. U svakom koraku t se uči S t ot regresora koji se treniraju samo na 1 od 9 predefiniranih polja (svakom regresoru Ri t je nasumično dodijeljeno polje). Regresori generiraju pomake δs 1...tot iz kojih se računa težinski prosjek, gdje su težine obrnuto proporcionalne količini zapreka u polju na kojem je treniran regresor(za dobre rezultate dovoljno je koristiti S t ot = 3 regresora). Na kraju kaskade se dobiva finalni skup točaka S T p = [x p, y p, v p ] te je potrebno odrediti prag τ koji označava je li točka S p prekrivena ili ne. Metoda je testirana na tri različita skupa podataka (LFPW, HELEN, LFW) u kojima lica nisu prekrivena i postigla je bolje rezultate u odnosu na prijašnje metode, te je testirana na skupu podataka COFW u kojem su karakteristične točke lica djelomično prekrivene te je postigla zadovoljavajuće rezultate. 1.2.2. Yu, Huang, Zhang, Metaxas - Landmark Fitting via Optimized Part Mixtures and Cascaded Deformable Model U ovom radu je predložena metoda pronalaženja karakterističnih točaka te njihovo praćenje. Glavna prednost nad drugim metodama je ta što uspješno razrješava probleme djelomične prekrivenosti lica i varijacije lica na temelju pozicije kamere. Početne karakteristične točke se odaberu pomoću GSLS (engl. Group sparse learning strategy) tako da se težine regulariziraju kako bi postale rijetke te se margina maksimizira izme du pozitivnih i negativnih uzoraka za učenje. Rijetke karakteristične točke smanjuju propagaciju pogreške u odnosu na guste, ali ne potpuno točno označene karakteristične točke. Potom se u dva stupnja na sliku primjeni plastični model kako bi se pronašao globalni optimum. Predloženi model omogućava praćenje karakterističnih točaka u stvarnome vremenu i uspijeva dobiti zadovoljavajuće rezultate nad slikama koje su djelomično prekrivene, a testiranje u stvarnom svijetu daje rezultate koji su bolji od većine drugih korištenih modela i algoritama. 2

1.2.3. Zhu, Ramanan - Face Detection, Pose Estimation, and Landmark Localization in the Wild Iako je u području računalnog vida veliki napredak napravljen kod problema detekcije lica, još uvijek je težak zadatak predstavlja procjena poze glave i orijentacije lica, pogotovo kod slika koje sadržavaju poze objekta koje nisu idealne, a česte su u stvarnom svijetu. Uobičajeno se zadacima detekcije lica, procjene poze i orijentacije lica pristupa kao posebnim problemima s odvojenim tehnikama rješavanja, no zadatak ovog rada je da se dobije model koji istodobno rješava sva tri navedena problema. Model je temeljen na kolekciji stablastih struktura koje me dusobno dijele različite kombinacije orijentacije lica. Svaku orijentaciju lica modelira se zasebno te se različite kombinacije istih koriste za prepoznavanje topoloških promjena s obzirom na perspektivu iz koje se promatra lice. Kod učenja modela koristi se metoda nadziranog učenja te je učenje provedeno na 900 pozitivnih uzoraka iz MultiPIE baze podataka, koja sadrži oko 750 000 fotografija od 337 ljudi iz različitih perspektiva i uvjeta osvijetljenosti te 1218 negativnih uzoraka iz RIAPerson baze podataka, koja prevladava fotografijama iz vanjskog svijeta bez ljudi. Naučeni model nadmašuje rezultate veliku većinu komercijalnih alata u sva tri navedena zadatka u unutarnjim i vanjskim okruženjima iz stvarnog svijeta. 1.3. Konceptualno rješenje zadatka Sam sustav za lokalizaciju karakterističnih točaka lica je podijeljen u više segmenata, tj. podsustava. Prvi segment sustava na ulaz prima sliku ili jedan vremenski okvir video isječka. Dana slika ili isječak se zatim pretvaraju u sliku sivih nijansi. Tako obra dena slika se dovodi na ulaz podsustava za izlučivanje položaja svih lica na slici te kao rezultat vraća listu u obliku: koordinate gornjeg lijevog ugla, širina i visina lica. Tako dobivena lista se zatim iskoristi na način da se iz slike sivih nijansi izrežu prepoznata lica i skaliraju. Pojedina skalirana lica dovede se na ulaze duboke neuronske mreže koja kao izlaze daje koordinate odabranih karakterističnih točaka lica. Tako dobivene točke skaliraju se u prostor početne slike ili isječka te se iscrtavaju i prikazuju korisniku sustava. 3

2. Postupak rješavanja zadatka 2.1. Pretvorba boje u nijanse sive Prvi korak koji je potrebno napraviti na ulaznoj slici je pretvoriti ju u sliku sivih nijansi. Kod prikaza boja slike korištenjem aditivnog RGB (engl. Red Green Blue) modela postoje tri komponente: crvena, zelena i plava. Kombinacijom te tri komponente u različitim omjerima dobivamo ostale boje. Da se uočiti da podjednakom raspodjelom svih triju komponenti dobivamo boje iz sivog spektra, pa se algoritam pretvorbe u sliku sivih nijansi temelji na odabiru jedne vrijednosti iz dane tri komponente kako bi se dobila siva nijansa. 2.1.1. Prvi algoritam Prvi algoritam je vrlo jednostavan i intuitivan. Siva nijansa pojedinog slikovnog elementa se dobiva tako da se boja slikovnog elementa rastavi na tri navedene komponente. Omjer pojedinih komponenti se zbraja te se uzima srednja vrijednost, kako je prikazano izrazom (2.1). 2.1.2. Drugi algoritam E y = E R + E G + E B 3 (2.1) Prvi algoritam je intuitivan i vrlo jednostavan, no u praksi ne daje najbolje rezultate. Problem leži u ljudskom oku i načinu na koji opaža boje. Ljudsko oko zelenu boju opaža puno jače nego crvenu, te crvenu opaža jače nego plavu. Stoga intuitivno slijedi da bi zelena trebala biti najzastupljenija, zatim crvena i plava. Organizacija ITU (engl. International Telecommunication Union) u svojoj normi ITU-R BT.709-6 [2] predlaže drugi algoritam u kojem bi crvena komponenta imala udio s 22.16%, zelena s 71.56% te plava s 7.22%, što je prikazano izrazom (2.2). E y = 0.2126E R + 0.7152E G + 0.0722E B (2.2) 4

Na slici 2.1 mogu se usporediti rezultati obadva izraza, gdje je jasno vidljiva prednost korištenja izraza (2.2). Slika 2.1: Usporedba prvog i drugog algoritma pretvorbe boja u nijanse sive 2.2. Izjednačavanje histograma Nakon što je slika u boji pretvorena u sliku sivih nijansi vrlo lako je moguće da kontrast na danoj slici nije najbolji. U namjeri poboljšanja kontrasta na slici te izoštravanja pojedinih elemenata koristi se izjednačavanje histograma. Izjednačavanje histograma slike je operacija pri kojoj se slika mijenja tako da broj točaka za pojedinu nijansu sive bude približno jednoliko raspore den. Matematički 5

rečeno izjednačavanje histograma implicira preslikavanje početne distribucije na širu i "uniformniju" distribuciju. Kako je za potrebe ovog projekta korištena biblioteka OpenCV, za izjednačavanje histograma korištena je metoda equalizehist iz navedene biblioteke. Primjer rada algoritma vidljiv je na slici 2.2. Slika 2.2: Izjednačavanje histograma 2.3. Detekcija i izlučivanje lica Nakon što je slika u potpunosti obra dena slijedi detekcija, tj. izlučivanje pozicija lica na slici. Kako je za potrebe ovog projekta korištena biblioteka OpenCV, za izlučivanje pozicije lica korištene korištene su kaskade boostanih Haarovih klasifikatora. Metodu korištenja boostanih Haarovih klasifikatora predložili su Paul Viola i Michael Jones ne tako davne 2002. godine. To je ujedno bila prva metoda iz strojnog učenja koja postiže dobre rezultate u realnom vremenu. Iako je primarna svrha te metode prepoznavanje lica, može se iskoristiti za učenje prepoznavanja i ostalih objekata [6]. Metoda Viola-Jones umjesto direktnog rada s slikovnim elementima ulazne slike, što se pokazao kao proces s velikom složenošču, radi s odre denim skupom reduciranih značajki te slike, to jest Haarovim značajkama. Haarove značajke su pravokutne značajke i računaju se kao razlika nekoliko suma slikovnih elemenata unutar različitih pravokutnih područja slike. Vrijednosti dobivene takvim računom predstavljaju prisustvo ili odsustvo nekih karakteristika slike (kao što su rubovi, kutevi i sl.) [6]. Na slici 2.3 prikazane su osnovne Haarove značajke. Skaliranjem, rotacijom i translacijom osnovnih značajki nastaju ostale Haarove značajke. Svaka značajka je konvolucijska maska, a vrijednost značajke, kako je već navedeno, dobiva se oduzimanjem 6

Slika 2.3: Osnovne Haarove značajke sume vrijednosti slikovnih elemenata ispod bijelog područja od sume crnog područja pomnoženog s omjerom crne i bijele površine. Upravo zbog toga su te značajke vrlo osjetljive na promjenu kontrasta pa ih se interpretira kao značajke ruba ili linije [1]. Slika 2.4: Primjer rada kaskadnog Haarovog klasifikatora CascadeClassifier razred iz biblioteke OpenCV u konstruktoru prima putanju do xml datoteke koja sadrži naučenu kaskadu Haarovih klasifikatora. Za potrebe ovog rada korištena je datoteka haarcascade frontalface default koja dolazi skupa s bibliotekom OpenCV. Metoda detectmultiscale prima na ulaz sliku sivih nijansi te vraća listu pozicija lica na slici. Primjer rada algoritma je vidljiv na slici 2.4. 2.4. Lokalizacija karakterističnih točaka lica Nakon izlučivanja pojedinih lica iz slike, dana lica se režu te skaliraju na uniformne vrijednosti, u ovom slučaju na dimenziju 96 96 slikovnih elemenata. Tako skalirana 7

lica, tj. njihovi slikovni elementi se dovode na ulaze konvolucijske neuronske mreže koja na svojim izlazima daje koordinate petnaest karakterističnih točaka lica: vrh nosa, lijevi i desni rub usta, sredina gornje i donje usne, centar oba oka, lijevi i desni kraj oba oka te lijevi i desni kraj obje obrve. Primjer rada konvolucijske neuronske mreže na lokalizaciji karakterističnih točaka lica vidljiv je na slici 2.5. Slika 2.5: Lokalizacija karakterističnih točaka lica 2.4.1. Konvolucijska neuronska mreža Konvolucijske neuronske mreže mogu se opisati kao nadogradnja nad običnim višeslojnim unaprijednom mrežama. Konvolucijska, kao i obična, neuronska mreža sastoji se od jednog ulaznog, jednog izlaznog i jednog ili više skrivenih slojeva. Kod konnvolucijskih neuronskih mreža specifični su konvolucijski slojevi i slojevi sažimanja. Osim njih često se koriste i potpuno povezani slojevi. Konvolucijske neuronske mreže najčešće kreću s jednim ili više konvolucijskih slojeva, zatim slijedi sloj sažimanja, pa ponovo konvolucijski sloj i tako nekoliko puta. Mreža najčešće završava s jednim ili više potpuno povezanih slojeva koji služe za klasifikaciju. Arhitektura konvolucijskih neuronskih mreža pokazala se izrazito dobra u radu sa slikama i prepoznavanju značajki s istih. Arhitektura jedne takve mreže prikazana je na slici 2.6. 8

Slika 2.6: Konvolucijske neuronske mreže - preuzeto: https://goo.gl/a8bal9 2.4.2. Slojevi konvolucijske neuronske mreže Konvolucijski sloj jedan je od glavnih dijelova svake konvolucijske neuronske mreže. Svaki konvolucijski sloj sastoji se od filtara koje sadrže težine koje je potrebno naučiti kako bi mreža davala dobre rezultate. Filtri su najčešće manjih prostornih dimenzija od ulaza, no uvijek su jednake dubine kao i ulaz. Izlaz sloja bit će sve aktivacijske mape generirane od strane filtara, odnosno izlaz će biti više dvodimenzionalnih matrica gdje svaka predstavlja jednu dubinu izlaza [4]. U konvolucijskom sloju svaki izlazni neuron povezan je s pravokutnim podskupom ulazne rešetke neurona pri čemu korespondirajuće veze imaju iste težine. Lokalna povezanost neurona i dijeljenje parametara uvelike smanjuje broj parametara koje je potrebno naučiti treniranjem mreže. Upravo zbog navedenih svojstava konvolucijskog sloja konvolucijske mreže su idealne za računalni vid gdje pretpostavljamo da se objekti na slikama sastoje od jednostavniji elemenata tj. značajki. U većini slučajeva nakon kovolucijskog sloja dolazi sloj sažimanja s ciljem smanjivanja rezolucije izlaznih mapi iz konvolucijskog sloja. No osim smanjivanja rezolucije, slojevi sažimanja povećavaju prostornu invarijantnost. Najčešće korišteni način sažimanja je sažimanje maksimalnom vrijednosti gdje se grupirane vrijednosti zamjenjuju maksimalnom vrijednošću. Kao regularizacijski mehanizam kod dubokih neuronskih mreža koriste se dropout slojevi. Dropout sloj dolazi nakon kombinacije konvolucijskog sloja i sloja sažimanja ili potpuno povezanoga sloja. Njegova je svrha da tokom učenja prekida pojedine veze izme du neurona i na taj način ne dolazi do promjena težina neurona niti on utječe na druge neurone. Za potrebe ovog projekta korištena su sva tri navedena sloja te je arhitektura mreže bila sljedeća: ulazni sloj dimenzija 96 96 = 9216, kombinacija konvlucijskog sloja, sloja sažimanja te droput sloja - tri slijeda, 9

potpuno povezani sloj, dropout sloj te izlazni sloj dimenzija 30 - koordinate 15 karakterističnih točaka lica. 10

3. Ispitivanje rješenja 3.1. Ispitna baza Baza lica preuzeta je s jednog od natjecanja sa servisa Kaggle [3]. Točnije, preuzeta je s natjecanja Facial Keypoints Detection koje je otvoreno 2013. godine i zatvorilo se nedavno, početkom 2017. godine, za vrijeme pisanja ovog rada. Dana baza se sastoji od 7049 označenih slika lica u skupu za učenje te 1783 neoznačenih slika u skupu za testiranje, odnosno u skupu koji se poglavito koristio za samu evaluaciju natjecanja. Svaka slika lica je dimenzija 96 96. Slike lica su označene sa 15 karakterističnih točaka: vrh nosa, lijevi i desni rub usta, sredina gornje i donje usne, centar oba oka, lijevi i desni kraj oba oka te lijevi i desni kraj obje obrve. Bitno je napomenuti da nisu svih 7049 slika lica iz skupa za učenje u potpunosti označene, već nekima nedostaju pojedine značajke. Stoga se broj iskoristivih slika za učenje smanjio na brojku nešto manju od 2200. No, za rješavanje tog problema iskorištena je metoda koja je predložena u članku [5]. Dakle, svaka dostupna slika lica sa svim označenim značajkama je zrcaljena, kako je prikazano na slici 3.1, te na taj način se skup za učenje udvostručio i osigurana je bolja generalizacija neuronske mreže. 11

Slika 3.1: Zrcaljeno lice 3.2. Rezultati učenja i ispitivanja Što se tiče samog učenja duboke neuronske mreže, ono je provedeno uporabom grafičke kartice. Kako je učenje duboke neuronske mreže uporabom običnog stolnoga računala, bez korištenja grafičke kartice, vrlo sporo bilo je nužno posegnuti za nešto kompliciranijim i skupljim metodama. Za potrebe ovog projekta na servisu Microsoft Azure podignut je virtualni stroj s nvidia Tesla K80 24GB CUDA grafičkom karticom koji je učenje mreže obavljao bez većih problema. Usporedbe radi, na stolnom računalu jedna epoha učenja duboke neuronske mreže je trajala oko 63 sekunde, dok je na virtualnom stroju to iznosilo oko 1.33 sekunde. Kako je mreža u ovom projektu učena i na više od 18.000 epoha, razlika je bila više nego osjetna. Prilikom učenja duboke neuronske mreže 30% skupa za učenje je izuzeto kao skup za validaciju na kojem se provjeravala uspješnost generalizacija. Na grafu 3.2 je prikazan odnos srednje kvadratne pogreške izme du skupa za validaciju i skupa za testiranje prilikom učenja. Tako naučena mreža je ostvarila minimalnu srednju pogrešku na skupu za učenje iznosa 0.00068, te na skupu za validaciju iznosa 0.00072. 12

Slika 3.2: Srednja kvadratna pogreška tokom učenja 13

4. Opis programske implementacije rješenja Programski kod korišten u ovome projektu napisan je u programskom jeziku Python (verzija 2.7.13). U projektu je korišteno nekoliko vanjskih biblioteka koje su potrebne za rad programa: NumPy - rad s matricama, Scikit-learn - za učenje mreže, Theano - za učenje mreže kako na grafičkoj kartici tako i na procesoru, Matplotlib - prikaz grafova, Pandas - olakšan rad s korištenim strukturama, CUDA toolkit - za pristup i rad na grafičkoj kartici i OpenCV - biblioteka za prepoznavanje lica i rad s video zapisima. Program se sastoji od 7 datoteka koje su potrebne za učenje i izvo denje programa. Datoteke common.py, tst_scene_render.py i video.py koriste se za podršku rada s kamerom. Unutar datoteke learn.py nalazi se implementacija koda koja uči mrežu, odnosno donosi predikcije za dani ulaz. Iako je većina parametara za trenutni problem dobro podešena, korisnik može mijenjati parametre mreže ili parametre algoritma učenja. Neki od parametara koje je moguće lako podesiti su broj filtara, veličinu filtra, dropout stopu, broj neurona u skrivenom sloju, moment i stopu učenja ili broj epoha. Parametre koje je potrebno podesiti su varijable FTRAIN i FTEST. Vrijednost varijable FTRAIN potrebno je postaviti kao putanju do datoteke u kojoj se nalaze podaci za učenje. Vrijednost varijable FTEST treba postaviti kao putanju do datoteke u kojoj se nalaze podaci za testiranje. Unutar datoteke face_points_detector.py nalazi se kod koji najprije poziva algoritam za prepoznavanje lica te zatim koristi sliku lica kao ulaz za implementirani algori- 14

tam koji prepoznaje karakteristične točke u licu. Unutar datoteke facedetect.py nalazi se glavna metoda koja pokreće sam program. Unutar nje potrebno je postaviti putanju do mreže koja će se koristi. Program je moguće pokretati na dva načina. Prvi način poziva se kao: python facedetect.py i na taj način program će koristiti kameru računala te će nad videozapisom kojeg dobiva od kamere pokretati predikciju karakterističnih točaka. Drugi način poziva se kao: python facedetect.py putanjadoslike, gdje putanjadoslike predstavlja stvarnu putanju do slike, koja će se koristi kao ulaz za predikciju karakterističnih točaka lica na slici. 15

5. Zaključak Duboka neuronska mreža se pokazala kao dobar model za rješavanje problema lokalizacije karakterističnih točaka lica. Unatoč lošijim performanse na običnim stolnim računalima prilikom samog učenja, sama mreža nije predstavljala usko grlo sustava prilikom samog iskorištavanja za lokalizaciju točaka. Daljnja poboljšanja se mogu ostvariti u vidu nešto boljeg i većeg skupa podataka. Uočeno je nekoliko problema sa samo mrežom za koje je većinom odgovoran skup podataka za učenje. Na primjer, mreža teško prati jako otvorena usta, čisto iz razloga jer takvih primjera slika nema u skupu za učenje. Tako der ima problema s praćenjem visoko podignutih obrva, iz istog razloga kao i s ustima. Što se tiče samog sustava kao cjeline problem predstavlja nerobusnost Haarovih kaskadnih klasifikatora prilikom lokalizacije lica te bi se u budućim radovima trebalo posvetiti i tom problemu. Navedeni kaskadni klasifikatori jako teško detektiraju lice ukoliko je osoba malo nakrivila ili zakrenula glavu. 16

LITERATURA [1] Dino Franić. Opencv biblioteka i primjene, 2016. URL http://digre. pmf.unizg.hr/5189/1/dino_franic_diplomski.pdf. Pristupano: 15.01.2017. [2] ITU. Parameter values for the HDTV standards for production and international programme exchange, 2015. URL https://www.itu.int/dms_pubrec/ itu-r/rec/bt/r-rec-bt.709-6-201506-i!!pdf-e.pdf. Pristupano: 15.01.2017. [3] Kaggle. Facial keypoints detection, 2017. URL https://www.kaggle.com/ c/facial-keypoints-detection. Pristupano: 15.01.2017. [4] Damir Kopljar. Konvolucijske neuronske mreže, 2016. [5] Daniel Nouri. Using convolutional neural nets to detect facial keypoints tutorial, 2014. URL http://danielnouri. org/notes/2014/12/17/using-convolutional-\ \neural-nets-to-detect-facial-keypoints-tutorial/. Pristupano: 15.01.2017. [6] Mateja Čuljak. Programska implementacija učenja kaskade boostanih haarovih klasifikatora, 2010. URL http://www.zemris.fer.hr/~ssegvic/ project/pubs/culjak10bs.pdf. Pristupano: 15.01.2017. 17