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 YCbCr (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 230 RIHAR, MIHELJ, TASIČ, MUNIH 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ţanja 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 RAZPOZNAVA DELOV TELESA NA PODLAGI KOŢNE BARVE OB RAZNOBARVNEM OZADJU Z VIDEOPOSNETKOV... 231 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. 9040 8040 12085    B G R (1) Vhodna slika je zatem z Matlabovo vgrajeno funkcijo rgb2ycbcr() še transformirana v barvni prostor YCbCr, 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. 160135 155115 23535    r b C C Y (2) 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. 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. 2000rokobjektovPovršina30  (3) 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 232 RIHAR, MIHELJ, TASIČ, MUNIH 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. RAZPOZNAVA DELOV TELESA NA PODLAGI KOŢNE BARVE OB RAZNOBARVNEM OZADJU Z VIDEOPOSNETKOV... 233 Slika 4: Binarne slike rezultatov obdelave slik videoposnetkov z RGB-filtrom. Deset reprezentativnih slik je prikazanih pred odstranitvijo šuma. Slika 5: Binarne slike rezultatov obdelave slik videoposnetkov s filtrom YCbCr pred odstranitvijo šuma. V prvem stolpcu je opazna neuspešna izločitev vpliva posredne osvetlitve igralnice. Šum na preostalih slikah večinoma povzročajo majhni objekti, ki so izločeni z nadaljnjo obdelavo. Slika 6: Binarna slika rezultatov obdelave z označenimi vidnimi deli telesa. Na vseh desetih slikah »Glava« označuje območje glave, »L« in »D« pa označujeta objekta leve in desne roke. Kljub raznolikim pozicijam so objekti delov telesa detektirani pravilno. 234 RIHAR, MIHELJ, TASIČ, MUNIH Slika 7: RGB-slike končnih rezultatov obdelave. Pravokotniki in besedilo označujejo razpoznane vidne dele telesa. »Glava« označuje območje glave, »L« in »D« pa označujeta objekta leve in desne roke. 4 RAZPRAVA IN SKLEP Namen predstavljene raziskave je bil izdelati računalniški program, ki bi omogočal zaznavanje koţne barve dojenčkov in s tem prepoznavanje njihovih delov telesa z digitalnih videoposnetkov. To je bilo realizirano z uporabo barvnih filtrov RGB in YCbCr, morfoloških operacij ter dodatnih algoritmov razpoznave delov telesa in sledenja pripadajočim pozicijam. Zaradi teţav z neposredno in posredno osvetlitvijo s svetlobo elementarnih barv sta bili dodatno aplicirani metodi maskiranja in prilagoditve barvnih filtrov. Rezultati kaţejo, da ima RGB-filter precejšnje omejitve glede dovoljene osvetljenosti slike, kar se zrcali v potrebi po precejšnjem zoţenju manevrirnega prostora filtra. Omejitve posameznim barvnim komponentam morajo biti postavljene precej stroţje kot pri drugih podobnih filtrih, s čimer se v večini primerov lahko izognemo opisanim slabostim. Alternativno so meje barvnega filtra YCbCr lahko postavljene nekoliko ohlapneje, saj je ta predstavitev barvnih modelov bolj neodvisna od zunanje osvetlitve slike. Luminanca Y sicer vpliva tudi na obe barvni komponenti prostora, ki pa se je v našem primeru izkazal za nemotečega. Teţava osvetlitve z lučkami elementarnih barv je bila odpravljena z uporabo metode maskiranja in adaptivne nastavitve barvnih filtrov. Ti metodi sta se izkazali za primerni in dajeta dobre rezultate. Rezultati obdelave po odpravi vpliva neposredne osvetlitve so prikazani v drugem in petem stolpcu slik 6 in 7 ter potrjujejo primernost algoritma. Rezultati izločanja vpliva posredne osvetlitve so predstavljeni na tretji in četrti sliki spodnje vrstice slik 6 in 7. Razvidno je, da adaptivno nastavljanje filtrov večinoma deluje uspešno in pravilno določi iskane dele telesa. Prvi stolpec slik od 4 do 6 dokazuje, da nastavljanje filtrov ne deluje vedno, saj se barvni spekter igralnice občasno vseeno nahaja znotraj novih meja barvnih filtrov. Te teţave odpravlja metoda sledenja pozicijam. Sliki 4 in 5 nazorno indicirata opisane prednosti in slabosti. Vidno je, da YCbCr-filter bolje zazna večji del območja glave in v večini primerov tudi rok, izkaţe pa se, da je RGB-filter izjemno uporaben s stališča dopolnjevanja slike 5. Je namreč nekoliko bolj prilagojen barvnemu spektru rok, ki se za malenkost razlikuje od glave, in tako večkrat pravilno zazna pozicijo območja rok. RGB-filter tudi pridoda k detekciji območja glave in s tem večkrat pravilno dopolni označene objekte. Tako veliko pripomore k izboru oziroma določitvi potencialnih območij za objekte glave in obeh rok. YCbCr-filter se končno res izkaţe za izjemno robustnega in manj odvisnega od osvetlitve. Osvetlitev z modro in zeleno lučko je za obdelavo manj moteča kot osvetlitev z rdečo oziroma temno rumeno barvo, kot je razvidno iz drugega in petega stolpca slik. Najteţje je odpraviti odboj svetlobe lučk. To je razvidno iz obdelave v prvem stolpcu slik. Ob kontrolirani zunanji osvetlitvi oba filtra delujeta nezmotno in povsem zanesljivo. Predel glave in obeh rok je določen zelo natančno. Algoritem za razpoznavo glave in obeh rok se je izkazal za dovolj učinkovitega. Računalniški program glavo identificira povsem pravilno, medtem ko se identifikacija rok izkaţe za precej zahtevnejšo nalogo. To je predvsem posledica relativno majhnega zornega kota digitalnih videokamer in majhne oddaljenosti teh do otrok. Medtem ko je glava pravzaprav ves čas vidna in prisotna na videoposnetku, so roke izpostavljene dvema pomanjkljivostma. Prva je zagotovo omejeno območje snemanja, ki ne ustreza območju gibanja dojenčka. To je razvidno predvsem iz rezultatov drugega stolpca spodaj, tretjega stolpca zgoraj in četrtega stolpca spodaj slik od 2 do 7, kjer otrok eno od rok premakne zunaj zornega kota kamer in tako povzroči nezmoţnost detekcije ter identifikacije. Druga pomanjkljivost je razvidna iz prvega stolpca zgoraj in tretjega stolpca spodaj slik od 2 do 7 in je lahko poimenovana »zastiranje pogleda«. Zaradi nekoliko nerodne postavitve kamer se v videoposnetku nekajkrat pripeti, da otrok roko skrije za glavo, kar ponovno ne dopušča zaznave. Obe pomanjkljivosti sta sicer preprosto rešljivi, vendar kličeta po uporabi večjega števila kamer in pametni razporeditvi okoli snemanega subjekta. To ima posledice predvsem v višji ceni sistema, večjem številu pridobljenih podatkov in pripadajočih morebitnih teţavah s senzorno integracijo. RAZPOZNAVA DELOV TELESA NA PODLAGI KOŢNE BARVE OB RAZNOBARVNEM OZADJU Z VIDEOPOSNETKOV... 235 Algoritem sledenja pozicijam delov telesa se je izkazal za izjemno koristnega. Izkaţe se, da hipoteza omejene dinamike otroškega gibanja drţi tudi v praksi, saj ta algoritem primerno sledi tako glavi kot tudi obema rokama. S tem algoritmom lahko poskrbimo tudi za pravilno detekcijo obeh rok pri prekriţanju, ki bi bilo teţko prepoznano zgolj z algoritmom, opisanim v razdelku 2.5. Opisani algoritem sledenja zelo veliko pripomore k stabilnosti in pravilnosti delovanja sistema. Poskrbi za nemoteno identifikacijo posameznih delov telesa ob neţelenih in neodpravljenih zunanjih vplivih, kot je odboj svetlobe od ozadja, viden v prvem stolpcu slik od 2 do 7. Program tu pravilno sledi objektu glave vkljub objektu v ozadju, ki bi po dimenzijah prav tako lahko ustrezal glavi. Končno, pridobljeni rezultati torej neposredno potrjujejo pravilnost izdelanih algoritmov, primernost uporabljenih barvnih filtrov in uporabnost računalniškega programa. Nadaljnje raziskave bodo potekale v smeri dodatne verifikacije predstavljenega računalniškega programa na večjem številu videoposnetkov in potencialne modularne vključitve obstoječih algoritmov v sklop kompleksnejšega sistema za podrobnejšo analizo otroškega gibanja. ZAHVALA Raziskava je bila financirana iz projekta Evropske unije CareToy, pogodba ICT-2011.5.1-287932, dodatno pa jo je podprla Javna agencija za raziskovalno dejavnost Republike Slovenije.