Realizacija detektora lica na osnovu Viola-Jones algoritma

Similar documents
Biznis scenario: sekcije pk * id_sekcije * naziv. projekti pk * id_projekta * naziv ꓳ profesor fk * id_sekcije

SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan.

Podešavanje za eduroam ios

GUI Layout Manager-i. Bojan Tomić Branislav Vidojević

IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI

Eduroam O Eduroam servisu edu roam Uputstvo za podešavanje Eduroam konekcije NAPOMENA: Microsoft Windows XP Change advanced settings

Ulazne promenljive se nazivaju argumenti ili fiktivni parametri. Potprogram se poziva u okviru programa, kada se pri pozivu navode stvarni parametri.

AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje. Marko Eremija Sastanak administratora, Beograd,

Uvod u relacione baze podataka

Klasterizacija. NIKOLA MILIKIĆ URL:

CJENIK APLIKACIJE CERAMIC PRO PROIZVODA STAKLO PLASTIKA AUTO LAK KOŽA I TEKSTIL ALU FELGE SVJETLA

STABLA ODLUČIVANJA. Jelena Jovanovic. Web:

Priprema podataka. NIKOLA MILIKIĆ URL:

KAPACITET USB GB. Laserska gravura. po jednoj strani. Digitalna štampa, pun kolor, po jednoj strani USB GB 8 GB 16 GB.

BENCHMARKING HOSTELA

STRUČNA PRAKSA B-PRO TEMA 13

Port Community System

TRAJANJE AKCIJE ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT

Bušilice nove generacije. ImpactDrill

TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ

1. Instalacija programske podrške

PROJEKTNI PRORAČUN 1

Tutorijal za Štefice za upload slika na forum.

Otpremanje video snimka na YouTube

SAS On Demand. Video: Upute za registraciju:

1.7 Predstavljanje negativnih brojeva u binarnom sistemu

Struktura indeksa: B-stablo. ls/swd/btree/btree.html

Nejednakosti s faktorijelima

Advertising on the Web

ENR 1.4 OPIS I KLASIFIKACIJA VAZDUŠNOG PROSTORA U KOME SE PRUŽAJU ATS USLUGE ENR 1.4 ATS AIRSPACE CLASSIFICATION AND DESCRIPTION

CJENOVNIK KABLOVSKA TV DIGITALNA TV INTERNET USLUGE

3D GRAFIKA I ANIMACIJA

UNIVERZITET U BEOGRADU RUDARSKO GEOLOŠKI FAKULTET DEPARTMAN ZA HIDROGEOLOGIJU ZBORNIK RADOVA. ZLATIBOR maj godine

Struktura i organizacija baza podataka

NIS PETROL. Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a

INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY

Upute za korištenje makronaredbi gml2dwg i gml2dgn

Mogudnosti za prilagođavanje

za STB GO4TV in alliance with GSS media

Windows Easy Transfer

POSEBNA POGLAVLJA INDUSTRIJSKOG TRANSPORTA I SKLADIŠNIH SISTEMA

MRS. MRSLab03 Metodologija Razvoja Softvera Vežba 03 LAB Dijagram aktivnosti

Office 365, upute za korištenje elektroničke pošte

Automatske Maske za zavarivanje. Stella, black carbon. chain and skull. clown. blue carbon

- Vežba 1 (dodatan materijal) - Kreiranje Web šablona (template) pomoću softvera Adobe Photoshop CS

Univerzitet u Novom Sadu. Fakultet tehničkih nauka. Odsek za računarsku tehniku i računarske komunikacije. Uvod u GIT

Idejno rješenje: Dubrovnik Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020.

Vrednovanje postupka semantičke segmentacije temeljenog na slučajnim šumama

NAUČ NI Č LANCI POREĐENJE SNAGE ZA JEDNU I DVE KONTRAROTIRAJUĆE HIDRO TURBINE U VENTURIJEVOJ CEVI DRUGI DEO

СТРУКТУРА СТАНДАРДА СИСТЕМАМЕНАЏМЕНТАКВАЛИТЕТОМ

DEFINISANJE TURISTIČKE TRAŽNJE

IMPLEMENTACIJA TEHNIKA ZA POVEĆANJE BROJA PODRŽANIH KONKURENTNIH KORISNIKA VEB SAJTA

JEDINSTVENI PORTAL POREZNE UPRAVE. Priručnik za instalaciju Google Chrome dodatka. (Opera preglednik)

RANI BOOKING TURSKA LJETO 2017

Tema 2: Uvod u sisteme za podršku odlučivanju (VEŽBE)

KONFIGURACIJA MODEMA. ZyXEL Prestige 660RU

Pravljenje Screenshota. 1. Korak

Mašinsko učenje Uvod. Bojan Furlan УНИВЕРЗИТЕТ У БЕОГРАДУ ЕЛЕКТРОТЕХНИЧКИ ФАКУЛТЕТ

WELLNESS & SPA YOUR SERENITY IS OUR PRIORITY. VAŠ MIR JE NAŠ PRIORITET!

WWF. Jahorina

Upotreba selektora. June 04

THE PERFORMANCE OF THE SERBIAN HOTEL INDUSTRY

KABUPLAST, AGROPLAST, AGROSIL 2500

PROFOMETER 5+ lokator armature

Sustav za gusto označavanje prometnih znakova u video sekvencama

Programiranje za internet zimski semestar 2013/2014. Java kroz primjere (skripta je u fazi izradi)

Aplikacija za podršku transferu tehnologija

TEHNIČKO (TEHNOLOŠKO) OBRAZOVANJE U SRBIJI

ANALIZA PRIMJENE KOGENERACIJE SA ORGANSKIM RANKINOVIM CIKLUSOM NA BIOMASU U BOLNICAMA

PLAN RADA. 1. Počnimo sa primerom! 2. Kako i zašto? 3. Pejzaž višestruke upotrebe softvera 4. Frameworks 5. Proizvodne linije softvera 6.

1. MODEL (Ulaz / Zadržavanje / Stanje)

KatzeView Uputstvo. verzija Novi Sad Josifa Marinkovića 44. Tel: +381 (0) Fax: +381 (0) Mob: +381 (0)

DETEKCIJA OSOBA U SLIKAMA

1.UVOD. Ključne reči: upotrebljivost, praćenje, korisnički interfejs, aplikacija

Testiranje koda - JUnit. Bojan Tomić

Programiranje. Nastava: prof.dr.sc. Dražena Gašpar. Datum:

TEHNIĈKO VELEUĈILIŠTE U ZAGREBU ELEKTROTEHNIĈKI ODJEL Prof.dr.sc.KREŠIMIR MEŠTROVIĆ POUZDANOST VISOKONAPONSKIH PREKIDAĈA

Babylon - instalacija,aktivacija i rad sa njim

PROGRAMSKI JEZIK VISUAL BASIC ZBIRKA ZADATAKA

FAKULTET ZA POSLOVNU INFORMATIKU

STATISTIKA U OBLASTI KULTURE U BOSNI I HERCEGOVINI

Modelling Transport Demands in Maritime Passenger Traffic Modeliranje potražnje prijevoza u putničkom pomorskom prometu

2. poglavlje - IDENTIFIKACIJA POTROŠAČA - od 62 do 80 strane (19 strana)

KAKO GA TVORIMO? Tvorimo ga tako, da glagol postavimo v preteklik (past simple): 1. GLAGOL BITI - WAS / WERE TRDILNA OBLIKA:

mdita Editor - Korisničko uputstvo -

CRNA GORA

MRS MRSLab09 Metodologija Razvoja Softvera Vežba 09

Ekonomija. teorija i praksa. Economics. Theory and Practice. FAKULTET ZA EKONOMIJU I INŽENJERSKI MENADŽMENT u novom sadu UDK: 33 ISSN

Primena tehnika veštačke inteligencije u prepoznavanju oblika na slikama

PRIMENA OLAP KOCKE ZA ANALIZU PERFORMANSI NEUSAGLAŠENOSTI APPLICATION OF THE OLAP CUBE IN THE ANALYSIS OF THE ANTICOINCIDENCE PERFORMANCE

Pronalaženje mikrotubula u trodimenzionalnim mikroskopskim slikama

Implementacija sparsnih matrica upotrebom listi u programskom jeziku C

TEHNO SISTEM d.o.o. PRODUCT CATALOGUE KATALOG PROIZVODA TOPLOSKUPLJAJUĆI KABLOVSKI PRIBOR HEAT-SHRINKABLE CABLE ACCESSORIES

JavaScript podrska u radu sa greskama

TEHNOLOGIJA, INFORMATIKA I OBRAZOVANJE ZA DRUŠTVO UČENJA I ZNANJA 6. Međunarodni Simpozijum, Tehnički fakultet Čačak, 3 5. jun 2011.

Permanent Expert Group for Navigation

CILJ UEFA PRO EDUKACIJE

- Vežba 2 - OPTIMIZACIJA GRAFIKE ZA WEB UPOTREBA ALATKE SLICE TOOL IZRADA WEB GALERIJE

Pokretanje izvršnog fajla

Ciljevi. Poslije kompletiranja ove lekcije trebalo bi se moći:

Transcription:

INFOTEH-JAHORINA Vol. 11, March 2012. Realizacija detektora lica na osnovu Viola-Jones algoritma Boško Mihić, Jelena Lozanov studenti drugog ciklusa studija Fakultet tehničkih nauka Novi Sad, Srbija bmihic@gmail.com, jelena.lozanov@gmail.com Sadržaj Rad prikazuje proces realizacije detektora lica na osnovu Viola-Jones algoritma. Sam algoritam je opisan u osnovnim crtama uz detaljnije pojašnjenje jedino procedura koje su samostalno definisane. Pored toga, dat je i opis distribuirane realizacije treninga pomoću kog se vrši detekcija lica. Na kraju, rad prikazuje i konačne rezultate treninga uz osvrt na mogućnosti daljeg unapređenja uspešnosti detekcije. (Abstract) Ključne reči-detekcija lica; boosting; paralelno izvršavanje; Viola-Jones I. UVOD Tema rada predstavlja opis sistema za detekciju lica realizovanog na osnovu Viola-Jones algoritma. Prednosti upotrebe ovog algoritma jesu jednostavnost, brzina i visoke performanse. Ključne novine koje je uveo ovaj algoritam i koje su doprinele ovakvim karakteristikama ogledaju se u upotrebi integralne slike za manipulisanje podacima, upotrebi modifikovanog AdaBoost algoritma za generisanje i realizacije u formi kaskade manjih. U poslednje vreme, sa sve češćom pojavom multiprocesorskih jedinica u kompjuterskim sistemima, važna karakteristika ovog algoritma postala je i mogućnost relativno jednostavne paralelizacije izvršavanja, kako procesa treninga, tako i procesa detekcije lica. Tim povodom je i odlučeno da se prilikom realizacije ovog sistema izvrši paralelizacija procesa treninga na više računara na kojima se, srazmerno broju procesorskih jedinica, izvršava više ili manje paralelnih procesa, praveći odgovarajući balans između kompleksnosti komunikacije i njene brzine. Prateći ta ograničenja, upotrebljen je prilično robustan sistem sinhronizacije fajlovima, o kojem će biti više reči u nastavku. Pre opisa same procedure važno je napomenuti da su za trening korišćene slike lica koja su okrenuta približno u pravcu kamere, pa je i uspešnost detekcije lica delom uslovljena tim parametrom. Takođe, za region lica nad kojim se vrši detekcija izabran je nešto manji deo u odnosu na onaj koji je korišćen u originalnom Viola-Jones radu[1]. Rezultati tih odluka, kao i same realizacije algoritma biće izloženi na kraju rada, uz razmatranje oblasti čijim bi se daljim razvojem mogao ostvariti dodatni napredak. II. PROCEDURA Tokom razvoja detektora, u velikoj meri praćene su procedure i saveti izneti u radovima [1], [2]. Uzimajući to u obzir, u nastavku rada biće dat samo opštiji opis procesa generisanja za detekciju lica sa nešto detaljnijim opisima delova koji su samostalno realizovani. A. Slabi klasifikator Predstavlja osnovni deo krajnjeg. U matematičkom obliku, može se predstaviti kao: 1 za pf( x) > pθ hx (, f, p, θ ) =, (1) 0 inače gde x predstavlja crno-belu podsliku veličine 24x24 piksela nad kojom se vrši detekcija, f testirano obeležje (eng. feature) slike, p polaritet i θ graničnu vrednost odlučivanja. Povratna vrednost funkcije trebalo bi da bude 1 u slučaju slike lica, ili 0 u slučaju kada se na slici ne nalazi lice. Kao skup mogućih tipova obeležja, uzeti su pet osnovnih pravougaonih oblika sličnih Harovim talasima (eng. Haar s wavelets) prikazanih na Sl. 1. Vrednost koja se dobije nakon primene ovih obeležja nad slikom jednaka je razlici suma piksela unutar belih i crnih pravougaonika. S obzirom na to da se svaki od tih tipova obeležja može primeniti nad različitim delovima ulazne slike dimenzije 24x24, dobija se da je ukupan broj mogućih obeležja oko 160 000. Za određivanje najboljih obeležja lica, potrebno je izvršiti testiranje svih mogućih obeležja nad svim pozitivnim i svim negativnim uzorcima, tj. slikama lica i slikama koje to nisu, a koje trenutni detektor i dalje detektuje kao da jesu. S obzirom na to da će do određene greške uvek doći, bitno je izvršiti selekciju najboljih obeležja čijim će se kombinovanjem najbrže Tip 1 Tip 2 Tip 3 Tip 4 Tip 5 Slika 1. Osnovni tipovi obeležja. - 1154 -

doći do željene stope uspešnosti detekcije. O samom procesu selekcije takvih obeležja, biće više reči u nastavku. B. Jaki klasifikator Grupisanjem više slabih kasifikatora u celinu, dobija se jaki klasifikator. Time se postiže da se pouzdanost pojedinih slabih kasifikatora, koja veoma često iznosi tek nešto više od 50%, značajno poveća. Kako bi se to postiglo, potrebno je svakom slabom klasifikatoru dodeliti težinski koeficijent α t, koji je suprotno srazmeran greški koju on ostvaruje. Na osnovu tih koeficijenata i samih slabih, definiše se jaki klasifikator pomoću sledećeg izraza: T T 1 1 za αtht( x) αt Sx ( ) t= 1 2 t= 1. 0 inače = (2) Za Viola-Jones algoritam, od većeg je značaja da jaki klasifikator ostvaruje veliku pouzdanost pri klasifikaciji pozitivnih uzoraka (eng. TPR True Positive Rate) nego pri klasifikaciji negativnih (eng. TNR True Negative Rate), o čemu će biti više reči u nastavku. Da bi se to postiglo, predviđena je upotreba faktora prilagođenja (eng. Tweak Factor) čijim se umanjivanjem takođe smanjuju i granične vrednosti unutar slabih kalsifikatora. Opis tog postupka nije deo samog Viola-Jones algoritma i realizovan je samostalno. Da bi se promena graničnih vrednosti izvršila što je moguće ravnomernije između različitih slabih, bilo je potrebno uzeti meru rasutosti rezultata primene obeležja nad uzorcima. U skladu sa potrebom da se rezultat dobije u što manje koraka, za meru rasutosti uzeto je polurastojanje između srednjih vrednosti primene obeležja nad pozitivnim i nad negativnim uzorcima, tj: 1 1 d f x f x P N ( p) ( n) t = t( i ) t( i ). 2P i= 1 2N i= 1 (3) Na osnovu ovog parametra, faktora prilagođenja i početne granične vrednosti θ t, nova granična vrednost računa se pomoću izraza: dt ( tf 1) π θ t = θt + tg, K 2 gde K predstavlja koeficijent izduženosti tangens funkcije i izabran je fiksno, na nivou programa, tako da upotrebne vrednosti tf budu u okolini sredine opsega tog parametra. C. Kaskadni klasifikator Konačno, spajanjem više jakih u kaskadu, nastaje kaskadni klasifikator kojim se i vrši detekcija lica. Potreba za kaskadnom strukturom pojavila se zbog činjenice da se prilikom pretraživanja slike testira veliki broj podslika (4) ulaz Slika 2. Kaskadni klasifikator. kako bi se saznalo da li sadrže lice ili ne, stoga je efikasnije usredsrediti se na odbacivanje uzoraka koji ne sadrži lice nego pronaći one koji sadrže. Kaskadni klasifikator se sastoji od više jakih, čiji je zadatak da procene da li kvadrat sigurno ne sadrži lice ili ga možda sadrži. Ukoliko je procenjeno da testirani kvadrat ne sadrži lice, on se odbacuje, a ukoliko se smatra da on možda sadrži lice, on se prosleđuje sledećem jakom klasifikatoru. Konačna odluka da li podslika sadrži lice ili ne, donosi se na osnovu izlaza iz poslednjeg jakog. Šematski prikaz opisanog postupka dat je na Sl. 2. Upravo zbog takve strukture kaskadnog, potrebno je da svaki jaki klasifikator zadrži visok TPR, kako bi prava lica mogla da prežive sve eliminacije. S druge strane, zbog značajno umanjenog dela negativa koje svaki sledeći jaki klasifikator i dalje ne može da odbaci (eng. False Positive Rate), dobijaju se visoke performanse sistema. Tako na primer, za prosečan TPR po jakom klasifikatoru od 0,99 i FPR od 0,35, za kaskadni klasifikator od 10 kaskada, ovi parametri bi iznosili: TPR FPR kk kk = TPR = 0,90 10 jk = FPR = 0,28 10 10 4 jk D. Integralna slika i normalizacija podslika Pojam integralne slike podrazumeva zapravo samo drugačiju reprezentaciju slike. Koristi se za brzo sumiranje vrednosti piksela unutar nekog pravougaonog dela slike, što je upravo i slučaj kod računanja rezultata primene obeležja nad slikom. Na Sl. 3 dat je primer konvertovanja regularne slike u integralnu. Svakom pikselu dodaje se vrednost sume svih piksela iznad njega i levo od njega. Na ovaj taj način omogućeno je da se suma svih piksela, u bilo kom pravougaoniku, izračuna na osnovu samo četiri vrednosti. Takav primer dat je na Sl. 4. 1 1 1 1 1 1 1 1 1 Slika 3. jak klasifikator da li je lice? NE Odbačen MOŽDA jak klasifikator da li je lice? NE Odbačen, 1 2 3 2 4 6 3 6 9 Ulazna slika (levo) i integralna slika (desno). MOŽDA (5) - 1155 -

1 2 A B 2) odabir slabog koji minimalizuje grešku koja uzima u obzir težinske koeficijente uzoraka, na osnovu izraza: 3 C 4 D N w h( x f p θ) y (7) ε = min,,,, t f, p, θ i i i= 1 Slika 4. Primer računanja sume piksela unutar pravougaonika pomoću integralne slike. Površina pravougaonika 4 jednaka je D - (B + C) + A, gde je vrednost integralne slike u tački A jedanaka sumi piksela unutar pravougaonika 1, vrednost u tački B sumi unutar 1 i 2, vrednost u tački C sumi unutar 1 i 3, i u tački D jednaka je sumi sva četiri kvadrata. Pored primene integralnih slika za računanje sume vrednosti piksela, one se koriste i u procesu pripreme slike pred klasifikaciju. Naime, da bi se do određene mere eliminisala razlika u osvetljenju i kontrastu između lica na različitim slikama, potrebno je izvršiti normalizaciju vrednosti piksela podslike na kojoj se traži lice. Upravo se taj proces značajno ubrzava upotrebom integralne slike originala i integralne slike kvadratnih vrednosti piksela originala. S obzirom na to da se površine ispod obeležja uzimaju sa odgovarajućim težinskim koeficijentima tako da se jednosmerna komponenta razlike suma uvek potire, dovoljno je izvršiti samo normalizaciju varijanse. To se postiže tako što se rezultat primene obeležja nad podslikom podeli sa standardnom devijacijom vrednosti piksela te podslike, čime se dobija ekvivalentan efekat, kao da su svi pikseli podslike normalizovani pojedinačno. Sama standardna devijacija, dobija se na osnovu izraza: σ S S m 2 2 x x x =, (6) 2 gde S x² i S x predstavljaju sume vrednosti piksela regularne i kvadratne podslike, a m širinu/visinu slike. E. Modifikovani AdaBoost i trening U sklopu Viola-Jones algoritma korišćen je modifikovani AdaBoost algoritam, koji pretragom kroz 160 000 obeležja pronalazi ono koje u tom trenutku stvara najveći doprinos poboljšanju performansi jakog. Za skup (x 1, y 1 ),...,(x N, y N ) gde je y i =0 ako je x i negativan uzorak i y i =1 u suprotnom slučaju, i za skup težinskih koeficijenata uzoraka koji su u početnom slučaju suprotno proporcionalni broju uzoraka te vrste (pozitivnih ili negativnih), postupak pronalaska novog slabog i njegovog ubacivanja u trenutni jaki klasifikator, sadrži sledeće korake: 1) normalizaciju težinskih koeficijenata w i tako da suma svih koeficijenata bude jednaka 1, 3) definisanje h t (x)=h(x, f t, p t, θ t ) pomoću parametarta f t, p t, θ t za koje se dobija ε t, 4) ažuriranje težinskih koeficijenata na osnovu izraza: i ( θ ) wiβt za h x, ft, pt, t = yi wi =, (8) w inače za βt=ε t /(1-ε t ), 5) izračunavanje težinskog koeficijenta α t =log(1-β t ) i dodavanje slabog u jaki klasifikator. Kao rezultat algoritma formira se jak klasifikator koji se sastoji od niza slabih, koji su uračunati sa težinskim koeficijentom α t, zavisno od njihove uspešnosti prilikom klasifikacije. S obzirom na to da se generisanje slabog vrši tako što se svako od obeležja primeni na svaki od trening uzoraka kako bi se pronašlo najbolje obeležje, ovaj deo AdaBoost algoritma predstavlja ujedno i najzahtevniji deo u smislu dužine trajanja. Dodatno usporavanje predstavlja i pronalazak optimalne granične vrednosti θ tako da bi što manji broj uzoraka bio pogrešno klasifikovan. III. IMPLEMENTACIJA A. Postavka Zbog velikog obima računanja, proces generisanja slabih podeljen je na više podređenih klijenata pokrenutih na više radnih stanica, sa kojima se upravlja pokretanjem iste aplikacije u kontrolnom režimu rada na glavnoj radnoj stanici. Same aplikacije pisane su u programskom jeziku C++. Komunikacija između kontrolne aplikacije i klijenata odvija se razmenom XML fajlova u direktorijumima pojedinih klijenata. Da bi takva komunikacija bila ostvariva, potrebno je da se sve instance programa pokrenu iz poddirektorijuma istog virtuelnog direktorijuma. Iako na prvi pogled ovo deluje kao nepraktično rešenje, razlog za takvu realizaciju leži baš u jednostavnosti inicijalizacije i pouzdanosti komunikacije. Samo pripajanje nove radne stanice u proces treninga, svodi se na deljenje direktorijuma sa tom radnom stanicom, bilo putem lokalne mreže ili upotrebom nekog od besplatnih cloud servisa za deljenje fajlova, poput Dropbox a. Čim se ostvari sinhronizacija fajlova, dovoljno je pokrenuti klijenta, koji će svoj rad nastaviti u pozadini, čekajući na instrukcije koje će mu stići u njegov radni direktorijum. Ovaj aspekt jednostavne inicijaliziacije nove radne stanice na daljinu, omogućio je da se u nedostatku laboratorijskih resursa, pokrene i do 30 klijenata paralelno na različitim računarima za - 1156 -

kućnu upotrebu, bez potrebe za razmatranjem mrežne infrastrukture pojedinih računara. Druga prednost ove vrste komunikacije ogleda se i u brzoj razmeni negativnih uzoraka koje je potrebno generisati i razmeniti sa klijentima pred trening svakog novog jakog, s obzirom na to da se radi o paketima od nekoliko desetina megabajta. Zahvaljujući činjenici da se slanje podataka vrši samo ka centralnom cloud serveru i da svi klijenti sa te lokacije dalje primaju podatke, sinhronizacija je višestruko ubrzana. Stavka koja je ipak predstavljala slabost ovakve komunikacije, ogledala se u razmeni jednostavnih i kratkih instrukcija. Ta razmena se odvija relativno sporo i često traje i do 10 sekundi. Međutim, pošto je bilo potrebno razmeniti samo dve poruke po jednom procesu potrage za novim slabim klasifikatorom, ta slabost i nije preterano dolazila do izražaja sa korišćenim brojem klijenata. Sama komunikacija se odvija u sledećim koracima: klijenti su raspoređeni po folderima i za komunikaciju sa kontrolnom aplikacijom koriste fajlove XML strukture: ViolaJones.request i ViolaJones.response. Unutar request fajlova nalaze se instrukcije kojim se centralni program obraća klijentima. Svaki request tag sadrži dva atributa. ID koji se uvećava posle svakog poslatog zahteva i type koji predstavlja tip zahteva i može da ima jednu od četiri vrednosti: 0 stanje čekanja, 1 zahtev za izvršavanje AdaBoost algoritma, 3 provera dostupnosti i 4 prosleđivanje ažuriranih težinskih koeficijenata za nastavak izvršavanja AdaBoost algoritma. Unutar response fajla nalazi se odgovor klijenta na zahtev centrale. Komunikacija se uvek odvija u formi zahtev/odgovor, uz praćenje ID atributa zahteva koji služi kao brojač pristiglih poruka, pa je samim tim komunikacija prilično pouzdana. Pošto je za većinu klijenata bilo potrebno rukovanje na daljinu, napravljena je pomoćna aplikacija VJBot koja se izvršava u pozadini. Njoj se na sličan način, kao i glavnoj aplikaciji, pomoću fajlova VJBot.start i VJBot.stop saopštava da pokrene tj. zaustavi program, što je bilo korisno posebno tokom razvoja sistema. B. Generisanje pozitivnih uzoraka Za formiranje baze pozitivnih uzoraka napravljen je program VJFaceSelector, koji je omogućio brzo isecanje slika lica. Program radi tako što učitava sliku po sliku, prevodi je u crno beli format, a zatim zahteva od korisnika da označi dve tačke na licu, jednu u gornjem levom uglu, iznad obrva i drugu u donjem desnu uglu ispod usana. Na taj način formira se kvadrat sa datim koordinatama koji sadrži sliku lica. Kvadrat je moguće pomerati sve dok se horizontalne ivice ne nađu tik iznad obrva (gornja) i na liniji između usana i brade (donja). Program zatim svaku sliku skalira na dimenzije 24x24 i snima u poseban folder. Baza pozitivnih uzoraka sadrži ukupno 5 500 slika lica, od kojih se 5 000 koristi za trening, a 500 za evaluaciju rezultata. Većina slika koje su korišćene kao izvor za isecanje lica deo su baza LFW i FDDB preuzetih sa sajta univerziteta u Masačusetsu [3], [4]. C. Generisanje negativnih uzoraka Prilikom generisanja negativa, prvo se vrši provera negativa korišćenih za trening prethodnog jakog, odnosno ispituje se da li ti negativi predstavljaju negative i za trenutni klasifikator. Zatim se generišu novi na osnovu baze slika koje ne sadrže lica. Prilikom dodavanja novih uzoraka u bazu negativa, vrši se provera da li se ta slika već nalazi u bazi, na osnovu hash vrednosti piksela te slike. Na taj način, omogućen je višestruki prolazak kroz sve negative uz postepeno povećanje broja prozora kojim se skenira slika u potrazi za negativima. Posle svakog prolaska kroz sve negative, dimenzije prozora, pomeraj prozora i početna veličina prozora se umanjuju. Proces generisanja negativa obavlja kontrolna aplikacija, i po završetku posla te slike se pakuju u TAR arhivu i prosleđuju svim klijentima. Pakovanje uzoraka u TAR arhivu omogućava smanjenje broja fajlova, a samim tim i mnogo brži rad pošto se slike direktno učitavaju u memoriju iz jednog fajla. D. Trening Proces formiranja kaskadnog za detekciju lica podeljen je na odvojeno pronalaženje jednog po jednog jakog. Pre pokretanja postupka generisanja svakog od njih, potrebno je odrediti vrednosti parametra TPR, FPR i maksimalan broj slabih unutar njega, koje bi taj jaki klasifikator trebalo da zadovolji. Na osnovu par eksperimentalnih pokretanja i rezultata iznetih u Viola-Jones radu, za ove parametre uzete su sledeće vrednosti: TPR je postavljen na 0,99, FPR je postavljen na 0,35, dok je za maksimalan broj slabih biran duplo veći broj od onog koliko prethodni jaki klasifikator ima slabih. Po definisanju svih parametara treninga u koje dodatno spadaju i parametri vezani za proces generisanja negativa, lokacije relevantnih fajlova i sl, pristupalo se samom pokretanju treninga koji se sastojao od sledećih koraka: 1) inizijalizacija početnih parametara i učitavanje dosad istreniranog dela kaskadnog, 2) uspostava komunikacija sa dostupnim klijentima, 3) generisanje negativa za trenirani jaki klasifikator na osnovu upotrebe kaskadnog koji je dosad istreniran, 4) pokretanje procesa generisanja novog slabog tokom kog svaki od klijenata dobije određen opseg obeležja od ukupno 160 000 unutar kojih pronalazi najbolje od njih po prethodno opisanoj proceduri, 5) prikupljanje rezultata klijenata i određivanje najboljeg obeležja među pristiglim od kog se generiše novi slabi klasifikator, 6) ubacivanje novog slabog u jaki klasifikator i podešavanje faktora prilagođenja, tako da se zadovolji očekivani TPR, 7) ako jaki klasifikator posle promene faktora prilagođenja i dalje poseduje FPR manji od zahtevane vrednosti, ili ako se dostigne maksimalni broja slabih, proces se zaustavlja i rezultati se snimaju. U suprotnom, algoritam se vraća na korak 4). Po okončanju ovog procesa program generiše još jedan dodatni izlazni fajl, koji sadrži podatke o različitim vrednostima parametara TPR i FPR, kao i o broju slabih i faktoru prilagođenja pri kojima su te vrednosti - 1157 -

dobijene. Na osnovu tih podataka, vrši se procena da li iz krajnjeg jakog treba izbaciti poslednjih nekoliko slabih ako ne doprinose značajno smanjenju FPR, da li prihvatiti manje TPR pošto u pojedinim slučajevima to doprinosi značajnom smanjenju FPR, ili zadržati početne rezultate. Zahvaljujući takvoj analizi rezultata, izvršena je značajna redukcija broja slabih u pojedinim jakim klasifikatorima, pošto je vrednost FPR nekad vrlo brzo stizala do određene tačke posle čega bi njena vrednost prestala značajnije da opada, pa su dodatni slabi kalsifikatori predstavljali višak koji bi samo usporavao program. Krajnji rezultat svakog od tih treninga, predstavljao je XML fajl koji je sadržio dotad istrenirani kaskadni klasifikator. IV. REZULTATI Pri pokretanju treninga za svaki jaki klasifikator, prvi korak predstavlja pronalaženje skupa negativnih uzoraka. S ozbirom na to da su se performanse kaskadnog podizale sa svakim novim dodavanjem jakog, odlučeno je da se broj negativa za treniranje svakog novog jakog smanji za po hiljadu, kako bi se ostvarila određena optimizacija u potrošnji vremena. U tabeli 1 prikazani su podaci vezani za proces generisanja negativa za trening svih 13 jakih, koliko ih ima u krajnjem kaskadnom klasifikatoru. Ovi rezultati ostvareni su pri generisanju negativa na osnovu baze od 1 500 slika visoke rezolucije. S obzirom na to da je proces bio relativno brz za ovih 13 koraka, nije bilo potrebe za paralelizacijom samog procesa. Tako je na primer u poslednjem koraku, za testiranje 4,5 milijardi podslika utrošeno nešto više od sat vremena, što je u odnosu na vreme potrebno za trening značajno kraći vremenski period. Međutim, u slučaju daljeg treninga dodatnih jakih, TABELA I. Redni br. jakog Br. negativa od prethodnog jakog GENERISANJE NEGATIVNIH UZORAKA. Ukupan broj negativnih uzoraka Broj testiranih uzoraka 1 0 25 000 25 371 2 13 074 24 000 21 561 3 4 480 23 000 156 800 4 10 998 22 000 237 457 5 11 088 21 000 448 522 6 6 295 20 000 2 184 093 7 7 268 19 000 5 504 865 8 6 053 18 000 17 438 300 9 5 498 17 000 60 599 428 10 6 007 16 000 134 607 254 11 4 623 15 000 489 157 319 12 4 762 14 000 1 374 276 835 13 4 115 13 000 4 495 110 682 Ukupno 84 261 247 000 6 579 768 487 TABELA II. Redni br. jakog REZULTATI EVALUACIJE JAKIH KLASIFIKATORA. Broj slabih tf a TPR FPR 1 2 0,3641 0,9860 0,5226 2 5 0,5345 0,9898 0,1860 3 9 0,3161 0,9959 0,4781 4 16 0,3098 0,9938 0,5040 5 28 0,3497 0,9917 0,2997 6 37 0,2689 0,9896 0,3634 7 40 0,2800 0,9979 0,3185 8 54 0,2689 0,9958 0,3054 9 76 0,2480 0,9979 0,3533 10 66 0,3098 1,0000 0,2889 11 95 0,2689 0,9915 0,3174 12 137 0,2744 1,0000 0,2939 13 193 0,2635 0,9957 0,3140 Ukupno 758-0,9280 0,7420*10-6 a. tweak factor paralelizacija i ovog postupka donela bi značajne uštede u vremenu. Kao što je već naglašeno, proces generisanja jakih zahtevao je da se utvrdi optimalni odnos između parametara. I dok je za prve jake klasifikatore bilo mnogo važnije da sadrže što manje slabih kako bi vreme potrebno za eliminisanje početnog broja testiranih regiona takođe bilo minimalno, kasniji klasifikatori su više usredsređeni da ostvaruju visoke TPR uz minimizaciju FPR. Kao krajnji rezultat treninga, dobijeni su jaki klasifikatori čiji su parametri dati u tabeli 2. U njoj su takođe prikazani i parametri krajnjeg kaskadnog. Uz TPR od 0,92 koji je izračunat nad setom od 500 slika korišćenih za evaluaciju, kao i uz FPR od 0,74*10-6 koji je izračunat na osnovu FPR pojedinih jakih, ostvareni rezultati su zadovoljili očekivanja. Za sam kraj, odabran je test skup slika iz baze MIT+CMU koje su i u radovima [1] i [2] korišćene za grafički prikaz rezultata, kako bi se ostvarilo relativno poređenje. Slike su skenirane metodom klizajućeg prozora (eng. Sliding window) početne veličine 24x24 piksela, sa pomerajom od 10% i uvećanjem prozora na kraju jednog ciklusa od 20%. Rezultati detekcije lica nad tim slikama dati su na Sl. 5. I dok su rezultati primene originalnog Viola-Jones nešto bolji od onih koji su prikazani na slici, u odnosu na rad [2] ostvareni su uočljivo bolji rezultati. V. ZAKLJUČAK Realizovani sistem detekcije lica ostvario je solidne performanse, uspevajući da ostvari jedan od glavnih ciljeva implementacije ovog algoritma, a to je brzina rada. Ipak ostalo je dosta mesta da dodatno unapređenje. Jednu od mogućih - 1158 -

Slika 5. Izlaz iz detektora lica primenjenog nad slikama iz baze slika MIT+CMU. promena predstavljao bi prelazak sa detekcije uskog dela lica na detekciju šireg regiona zajedno sa spoljnim crtama lica, što bi se postiglo upotrebom drugačijeg seta pozitiva. Takođe, generisanje dodatnih jakih dodatno bi poboljšalo sposobnost da odbaci negative pa bi se, samim tim, za treniranje pojedinih jakih mogao dodatno podići TPR. I na kraju, oblast u kojoj je ostalo možda i najviše mesta za napredak predstavlja upravo način smanjivanja graničnih vrednosti pojedinih slabih pri promeni faktora prilagođenja jakog. Finijom preraspodelom ovih promena, ostvario bi se kontinuirani napredak u performansama jakog pri dodavanju novih slabih, što do sad nije bio slučaj. ZAHVALNICA Rad je realizovan kao završni projekat iz predmeta Kompjuterska vizija na 1. godini Master studija, kod docent dr Vladimira Crnojevića. Ovom prilikom, želeli bismo da se zahvalimo svim kolegama i prijateljima koji su nas nesebično podržali, dozvoljavajući nam da koristimo njihove personalne računare u svrhu treninga. LITERATURA [1] P. Viola and M. J. Jones, Robust Real-Time Face Detection, International Journal of Computer Vision 57 (2), 2004. [2] O. H. Jensen, Implementing the Viola-Jones Face Detection Algortihm, Technical University of Denmark, 2008. [3] G. B. Huang, M. Ramesh, T. Berg and E. Learned-Miller, Labeled Faces in the Wild: A Database for Studying Face Recognition in Unconstrained Environment, University of Massachusetts, Amherst, Technical Report 07 49, October 2007. http://vis-www.cs.umass.edu/lfw/ [4] V. Jain and E. Learned-Mille, FDDB: A Benchmark for Face Detection in Unconstrained Settings, Technical Report UM-CS-2010-009, Dept. of Computer Science, University of Massachusetts, Amherst. 2010. http://vis-www.cs.umass.edu/fddb/ [5] K. Sung, T. Poggio, H. Rowley, S. Baluja and T. Kanade, Combined test set A, B and C, MIT+CMU, 1998. http://vasc.ri.cmu.edu/idb/html/face/frontal_images/ ABSTRACT This paper describes a realization of a frontal face detector based on the Viola-Jones algorithm. Independently developed procedures are fully given whereas the algorithm itself is briefly described. Also, distributed realization of classifier training used for face detection is presented. Finally, this paper presents training results with possibilites of further improvement in face detection. REALIZATION OF FACE DETECTOR BASED ON THE VIOLA-JONES ALGORITHM Boško Mihić, Jelena Lozanov - 1159 -