Razpoznava delov telesa na podlagi kožne barve ob raznobarvnem ozadju z videoposnetkov dojenčkov Andraž Rihar1, Matjaž Mihelj1, Jurij F. Tasič2, Marko Munih1 Univerza v Ljubljani, Fakulteta za elektrotehniko, Tržaška 25, 1000 Ljubljana, Slovenija 1 Laboratorij za robotiko 2 Laboratorij za digitalno obdelavo signalov, slik in videa E-pošta: andraz. rihar@robo.fe. uni-lj. si Povzetek. Zaznavanje delov telesa na podlagi kožne barve je pogosto v številnih aplikacijah, ki imajo opravka z videokamerami, kot so nadzorni sistemi, prepoznavanje uporabnikov in medsebojno sodelovanje človeka in računalnika. Aplikacije, predstavljene v literaturi, se večinoma osredinjajo na odrasle, malo pa je raziskav na področju analize videoposnetkov otrok in dojenčkov. Tako v tem delu predstavljamo računalniški program, ki omogoča obdelavo videa za detekcijo in identifikacijo delov telesa. Opisana je pripadajoča metodologija, kot so filtriranje v RGB in YCbCr barvnem prostoru, algoritem identifikacije glave in rok ter metoda sledenja pripadajočim pozicijam. Zaradi raznobarvnega ozadja ter vplivov neposredne in posredne osvetlitve z lučkami elementarnih barv sta dodatno implementirani in predstavljeni metodi maskiranja in adaptivne nastavitve uporabljenih barvnih filtrov. Kombinacija predlaganih algoritmov, metod in filtrov je testirana na videoposnetkih dveh dojenčkov, starih manj kot šest mesecev. Predstavljeni rezultati ilustrativno prikažejo sosledje celotnega poteka obdelave in uspešno razkrijejo določene pomanjkljivosti posameznih metod. Končni rezultati potrjujejo pravilnost, točnost in ustreznost predlagane kombinacije algoritmov za zaznavanje kožne barve in razpoznave delov telesa ob raznobarvnem ozadju z videoposnetkov dojenčkov. Ključne besede: kožna barva, raznobarvno ozadje, videoposnetki dojenčkov, barvni filtri Body parts detection using skin colour recognition in video recordings of infants The body parts detection based on the skin colour recognition is part of numerous applications, such as surveillance systems and human-computer interaction. Since such applications mostly focus on adults and those concerning children and infants are scarce, a computer program to analyse the infants' video recordings was developed. The paper presents implementation of the methodology, focusing on the RGB and YCbCr colour filters for skin detection, and the applied algorithms for body parts recognition (head and both hands). The method to track the body parts is presented as well. The program also incorporates methods for masking and adaptive adjustment of the colour filters to diminish effects of external lighting. A combination of the used algorithms and filters is tested on video recordings of two infants. The results reveal certain drawbacks of individual algorithms and confirm the accuracy and suitability of the proposed combination for the skin colour recognition and body parts identification in videos of infants. 1 Uvod Zaznavanje delov telesa na podlagi kožne barve je pogosto uporabljeno v aplikacijah, kot so detekcija gibanja v nadzornih sistemih [1, 2], prepoznavanje uporabnikov, zaznavanje sprememb na koži [3] ter medsebojno sodelovanje človeka in računalnika [4]. Avtorji navadno uporabljajo filtre raznolikih barvnih prostorov in mešanice Gaussovih modelov [5]. Haj et al. za robustno zaznavanje obraza predlagajo uporabo barvnega prostora RGB (R rdeča, G zelena in B modra barvna komponenta) [6], Aldasouqi in Oliveira predlagata barvni prostor HSV (H barvni odtenek, S nasičenost in V vrednost svetlosti) [7, 8], pogosta pa je tudi uporaba barvnih prostorov YCbC (Y svetlost, Cb modra in Cr rdeča barvna razlika) [9, 10] oziroma YUV (Y svetlost, U modra in V rdeča barvna razlika) [11]. Barvni prostori v tem delu, razen kratkega opisa RGB in YCbCr v sklopu metodologije, ne bodo podrobneje opisani, saj so že intenzivno predstavljeni v tujih člankih. Poglobljen pregled uporabe raznovrstnih barvnih prostorov v namene analize ter prepoznavanja kožne barve na videoposnetkih za zaznavanje obraza predstavi Chaves-González [12], podoben pregled pa ponudita tudi Kakumanu [13] in Vezhnevets [14]. Raziskave analiz barvnih prostorov poleg prednosti kažejo na številne težave in pomanjkljivosti posameznih metod. Eden izmed problemov, katerega iskanje rešitve je zadnje čase v ospredju, je zaznavanje kožne barve ob raznobarvnem, kompleksnem ozadju. Druga težava je sprememba osvetlitve videoposnetkov. Pri premagovanju obeh tipov težav avtorji uporabljajo Prejet 11. oktober, 2014 Odobren 15. november, 2014 različne metode. Rahman in Afrin predlagata filtriranje YCbCr, pri čemer za razpoznavo obraza predlagata iskanje trikotnika iz pozicij oči in ust [15]. Z rezultati potrdita ustreznost predlagane metode in med drugim predstavita tudi uspešno analizo otroške slike. Kot morebitna pomanjkljivost algoritma pa se kaže predvsem reševanje težave zastiranja objektov, kot na primer zaradi mižanj a ali postavitve roke pred usta. Hu et al. prav tako predlagajo uporabo YCbCr filtriranja, pri čemer za razpoznavo obraza predlagajo preverjanje ujemanja s predlogo [16]. Omenjena metoda sicer daje relativno dobre rezultate, je pa težavna s stališča računske zahtevnosti. Podobno metodo predlagajo tudi Wan et al., pri čemer se znova poraja dvom o pravilnosti delovanja algoritmov v primeru zakritosti dela obraza [17]. Wang in Yuan predlagata uporabo kombinacije filtrov RGB in HSV, valjčne dekompozicije in nevronskih mrež za razpoznavo obraza [18]. Metoda sicer da boljše in hitrejše rezultate kot preverjanje ujemanja s predlogo, ima pa težave zaradi premajhne učne množice. Težave ima tudi z razpoznavo obrazov, slikanih s strani. Pregled literature pokaže, da se večina avtorjev osredinja na zaznavanje kožne barve odraslih. Veliko redkejše so aplikacije, ki se osredinjajo na videoposnetke otrok in dojenčkov. Posebno pri zadnjih sta analiza in prepoznavanje delov telesa kompleksnejša zaradi specifičnih potez, svetlejših odtenkov kožne barve in manjših dimenzij. Na tem področju se razvija predvsem analiza videoposnetkov za detekcijo otroške pornografije [19], delno pa tudi analiza otroških odzivov in počutja [20]. Avtorji tudi na tem področju navadno aplicirajo dodatno obdelane barvne filtre YUV [19], kombinacije komponent barvnih filtrov [20] in dodatne, naprednejše algoritme. Raziskav na področju analize videoposnetkov dojenčkov je relativno malo, zato smo izdelali računalniški program, ki omogoča obdelavo videa za detekcijo in identifikacijo delov telesa. V tem članku torej najprej predstavljamo metodologijo zaznavanja kožne barve s kombinacijo filtrov v barvnih prostorih RGB in YCbCr. Dodatno je opisan algoritem, ki omogoča razpoznavo oziroma določitev območja glave in obeh rok ter v nasprotju z nekaterimi drugimi metodami [15-18] ni vezan na frontalno perspektivo snemanja. Opisana je tudi metoda sledenja pozicije omenjenih delov telesa, ki izboljšuje robustnost in zanesljivost sistema. Končno, predstavljamo tudi metodo zmanjševanja vplivov neposredne in posredne osvetlitve prostora na proces obdelave videoposnetka. 2 Metodologija 2.1 Strojna in programska oprema V okviru raziskave so bili narejeni videoposnetki dveh otrok, mlajših od šestih mesecev. Uporabljeni sta bili dve digitalni USB videokameri (Webcam C210, Logitech) z zornim kotom 53° in ločljivostjo 320 pikslov x 240 pikslov. Kameri sta zajemali sliko s frekvenco 10 Hz. Otroka sta bila med meritvami položena v hrbtni položaj v namenski igralnici in animirana s pomočjo zvočnih in vizualnih efektov. Uporabljene so bile LED-luči zelene, modre in rdečkasto-rumene barve. Tako je bila zagotovljena želena dinamika in stimulirana njuna aktivnost. Za meritve je bilo pridobljeno soglasje staršev, ki so bili med meritvami tudi prisotni. Za izdelavo računalniškega programa so bile uporabljene vgrajene knjižnice programskega paketa MATLAB® (The MathWorks, Inc.). 2.2 Izločitev vpliva neposredne osvetlitve Neposredna osvetlitev igralnice z barvnimi lučkami, ki je pomembna za zagotovitev otrokovega gibanja, lahko pomeni določeno težavo pri obdelavi videoposnetka z barvnimi filtri. Pri osvetlitvi z eno od elementarnih barv se namreč barvni spekter igralnice, ki je v osnovi bež barve, lahko zelo približa barvi kože in tako oteži izluščitev točnega področja delov telesa. Osvetlitev z barvnimi lučkami je prikazana na zgornji polovici slike 1. Ob poznavanju intervalov prižganih luči, njihovih barv in približnih dimenzij so tako posamezne slike videoposnetkov najprej predobdelane z algoritmom, ki izloči vpliv neposredne osvetlitve. Slika 1: Zgoraj sta prikazana dva primera osvetlitve igralnice z modro in zeleno lučko. Spodaj sta prikazani pripadajoči binarni sliki, izračunani kot razlika zaporednih slik. Najprej je uporabljena preprosta metoda razlike zaporednih slik, ki v osnovi po komponentah odšteje posamezne istoležeče piksle dveh zaporednih slik. Dobljena slika razlike je zatem pretvorjena v binarno sliko z uporabo vnaprej določenega praga in je prikazana za dva primera osvetlitve v spodnji polovici slike 1. Binarna slika se naprej obdela s funkcijama bwconncomp in regionprops. Prva omogoči združevanje sosednjih povezanih pikslov v skupine večjih objektov. Funkcija za vsak piksel na sliki, ki ima vrednost 1, preveri vrednosti sosednjih osmih pikslov. Tiste, ki imajo vrednost 1, označi kot del enakega objekta. Tako je omogočena združitev vseh pikslov z vrednostjo 1 v pripadajoče objekte. Ti so pozneje obdelani z drugo funkcijo, ki izračuna površino posameznih objektov in ekscentričnost najbolje prilegajočih se elips. Površino izračuna tako, da prešteje vse piksle, ki so označeni kot del posameznega objekta, ekscentričnost pa določi z metodo, opisano v [21]. Upoštevajoč dobljene vrednosti in prednastavljene pragove so objekti s primerno površino in ekscentričnostjo, manjšo od 0,7, prepoznani kot krogi oziroma okrogle lučke. Na določenih pozicijah sliko videoposnetka primerno maskiramo in tako izločimo vpliv neposredne osvetlitve na obdelavo. 2.3 Filtriranje v barvnem prostoru RGB in YCbCr Videoposnetki so obdelani s pomočjo filtrov v dveh predstavitvah barvnih prostorov. RGB je trikomponentni barvni spekter, sestavljen iz osnovnih barv, to je rdeče R, zelene G in modre B. Naštete barvne komponente lahko v digitalnem prostoru opišemo z osmimi biti v vrednostih od 0 do 255 in tako spekter predstavimo v 256 odtenkih. Na podlagi enačbe (1) je z določitvijo omejitev posameznim barvnim komponentam model barve kože najprej opisan v RGB-prostoru. 85 < R < 120 40 < G < 80 40 < B < 90 (1) Vhodna slika je zatem z Matlabovo vgrajeno funkcijo rgb2ycbcr() še transformirana v barvni prostor YCbQ, kjer je filtrirana z uporabo enačbe (2). YCbCr ni absoluten barvni prostor, temveč je izpeljan iz barvnega modela RGB in je v primerjavi z omenjenim manj odvisen od zunanje osvetlitve in spremembe svetlosti. Y označuje tako imenovano luminanco oziroma svetlost, vrednosti pa ob digitalni predstavitvi z osmimi biti obsegajo območje od 16 do 235. Cb in Cr pomenita modro in rdečo barvno razliko, njuni vrednosti pa ob digitalni predstavitvi obsegata območje od 16 do 240. 35 < Y < 235 115< Cb < 155 135< C < 160 (2) 2.4 Izločitev vpliva posredne osvetlitve in prilagoditev barvnih filtrov Pri osvetlitvi igralnice z eno od barvnih lučk se poleg težav, opisanih v razdelku 2.2, pokaže še težava posredne osvetlitve igralnice zaradi odboja svetlobe. Ponovno se zaradi bež barve igralnice barvni spektri približajo spektrom kožne barve in obdelava je otežena. Dodatna težava je značaj odboja svetlobe, ki nelinearno vpliva na barvne spektre. Za izločitev omenjenih vplivov predlagamo algoritem avtomatske prilagoditve barvnih filtrov. Pri tej metodi so uporabljeni porazdelitev barvnega spektra kožne barve ter omejena dinamika otroškega gibanja in algoritem sledenja, opisana v razdelku 2.6. Algoritem si eno sliko pred prižigom lučke zapomni pozicije oziroma masko prepoznanih delov telesa. To masko program nato najprej morfološko erodira in se s tem znebi vpliva manjših premikov med dvema zaporednima slikama. Zatem se tik po prižigu lučke maska aplicira na trenutno sliko in izračuna porazdelitev barvnih spektrov RGB ter YCbCr prepoznanih delov telesa kožne barve. V nadaljevanju se prilagodijo meje barvnih filtrov, opisanih z enačbama (1) in (2). RGB-filtru se spodnja in zgornja meja nastavi na 25 in 75 percentil porazdelitve, YCbCr-filtru pa istosmiselno na 5 in 95 percentil porazdelitve. Meje filtrov ostanejo na novih vrednostih do izklopa lučke. 2.5 Identifikacija glave in rok Za identifikacijo območja glave in rok sta ponovno uporabljeni integrirani Matlabovi funkciji bwconncomp in regionprops. Ta je zdaj uporabljena za izračun lastnosti objektov, kot so površina oziroma število pikslov, koordinate središča in pripadajoče pozicije robnih točk. Izmed vseh objektov se kot območje glave določi in prepozna tisti z največjo površino, seveda ob predpostavki, da je del glave vedno prisoten na videoposnetku. Shranjene so tudi koordinate središča objekta glave. S pomočjo prednastavljenih pragov (3) program v nadaljevanju iz obdelave izloči objekte, ki s svojimi dimenzijami zagotovo ne ustrezajo objektom rok. 30 < Površina objektov rok < 2000 (3) Tako pridobljeni črno-beli sliki vsaka zase pomenita območja, ki bi lahko ustrezala delom telesa dojenčka. V nadaljevanju so podatki obeh črno-belih slik združeni s funkcijo disjunkcije, kar omogoča določeno redundanco informacij, s tem pa večjo zanesljivost zaznave in primernejše, kakovostnejše rezultate. Po združitvi je začasna črno-bela slika naprej obdelana s funkcijo morfološkega odpiranja, ki v resnici pomeni sosledje operacij morfološke erozije in dilatacije. Tako je iz slike izločen šum, ki zajema predvsem majhne, nepovezane objekte, ki navadno ne ustrezajo delom telesa in so ponavadi v ozadju. Koordinate središč in dimenzije preostalih ustreznih objektov so s pomočjo več pravil uporabljene za identifikacijo leve, desne ali obeh rok. V osnovi je identifikacija odvisna predvsem od števila objektov in njihovih lastnosti. Dodatno so pomembne tudi medsebojne razdalje, izračunane s funkcijo pdist, ter razdalje objektov do glave. 2.6 Sledenje pozicijam delov telesa Sledenje pozicijam delov telesa je pomemben modul programa, ki temelji na dejstvu, da je dinamika človeških gibov omejena. Zaradi dovolj visoke frekvence zajemanja videokamer lahko namreč sklepamo, da se pozicija delov telesa v času med dvema zaporednima slikama lahko spremeni le za končno, omejeno razdaljo. To lahko seveda s pridom uporabimo tudi pri analizi otroškega gibanja, ki so mu sicer lastni povsem naključni gibi omejene hitrosti. Takoj ko program prvič zazna in določi pozicije objektov glave in rok, se pripadajoče koordinate shranijo v globalno spremenljivko, ki jo program znova prikliče ob obdelavi naslednje zaporedne slike. Glede na to, ali sledimo glavi ali rokam, program okoli koordinat določi kvadrat primernih dimenzij in izračuna vsoto znotraj ležečih pikslov, enakih 1. Če je vsota večja od prednastavljenega praga, so iskani deli telesa na sliki še prisotni in program izračuna težišče oziroma središče teh objektov. Tako neposredno pridobimo koordinate delov telesa, prisotnih na trenutni sliki. Dodatna pravila so naprej uporabljena za zagotavljanje večje točnosti in pravilnosti delovanja opisanega algoritma. Ta s pomočjo dodatno izračunanih medsebojnih razdalj in drugih lastnosti med drugim skrbijo za preprečevanje lezenja posameznih koordinat in izogibanje sledenju napačnim objektom. Vsakih nekaj sekund se pravilnost posameznih koordinat tudi preveri s pomočjo algoritma, opisanega v razdelku 2.5, s čimer se izognemo naključnemu pobegu koordinat zaradi nepredvidenih, neželenih zunanjih vplivov, kot je lahko neugodna osvetlitev stene v ozadju otroka, ki je potencialno ne bi mogli izločiti z metodo iz sekcije 2.4. 3 Rezultati V naslednjih šestih slikah so postopoma sosledno prikazani potek obdelave in končni rezultati za vsako od desetih najbolj reprezentativnih slik obeh videoposnetkov. Sliki 2 in 3 sta vhodni sliki videoposnetkov v barvnem prostoru RGB in YCbCr. Prikazana sta oba dojenčka v raznolikih orientacijah hrbtnega položaja. Drugi in peti stolpec slike prikazujeta igralnico ob neposredni osvetlitvi z lučkami. Sliki 4 in 5 sosledno prikazujeta rezultate obdelave s filtrom RGB in YCbCr. Slika 6 že predstavlja del končnih rezultatov in ilustrira videz črno-belih slik po združevanju podatkov iz obeh barvnih filtrov, apliciranju morfoloških operacij in uporabi algoritma zaznave delov telesa. S črnimi črkami na sivem ozadju je z oznako »Glava« markirano območje glave, »L« in »D« pa označujeta območji leve in desne roke. Slika 7 prikazuje končne rezultate obdelave. S pravokotniki so označena območja glave in prisotnih rok. Posamezni deli telesa so podobno kot na sliki 6 označeni s črnim besedilom. Slika 2: Deset reprezentativnih slik videoposnetkov v barvnem prostoru RGB. Oba otroka sta v raznolikih orientacijah hrbtnega položaja. Drugi in peti stolpec slike prikazujeta igralnico ob neposredni osvetlitvi z lučkami. Slika 3: Slike obeh videoposnetkov v barvnem prostoru YCbCr. Otroka sta v raznolikih orientacijah hrbtnega položaja. V drugem in petem stolpcu je viden vpliv spremembe barvnega spektra igralnice zaradi osvetlitve z lučkami. \ K' Q i < > ___ v' -¿V i »M i t V v * /S. i ' i "4 Jr w 1 * __ r Slika 4: Binarne slike rezultatov obdelave slik videoposnetkov z RGB-filtrom. Deset reprezentativnih slik je prikazanih pred odstranitvijo šuma. A^s-ir--'- o ' .* ' d t . ,