IZVEDBA PARAMETRIČNEGA NELINEARNEGA FILTRA ZA ISKANJE KOŽNIH ZNAČNIC V DIGITALNI SLIKI Z FPSLIC TEHNOLOGIJO Iztok Kramberger, Zdravko Kačič Univerza v Mariboru, Fakulteta za elektrotehniko, računalništvo in informatiko, Maribor, Slovenija Ključne besede: digitalni filter, digitalna slika, koža, barva, digitalno procesiranje signalov, FPGA, mikrokrmilnik, FPSLIC, PAL Izvleček: Članek obravnava razvoj matematičnega modela in strojne izvedbe parametričnega digitalnega filtra za iskanje kožnih značnic v digitalni sliki. Prikazana je implementacija z FPSLIC tehnologijo podjetja Atmel, ki predstavlja učinkovito združenje FPGA programabilnih logičnih celičnih vezij in RISC mikrokrmilnikov. Predstavljen parametrični digitalni filter omogoča filtriranje digitalne slike zapisane v YCbCr barvnem prostoru in na svojem izhodu daje digitalno sliko v obliki binarnih mask. Primarni namen uporabe danega digitalnega filtra je izločanje odtenkov kožne barve v digitalni sliki, kar primarno predstavlja predprooesiranje slike v algoritmih detekcije ali sledenja kožnih formacij. Ob tem je digitalni filter parametrično zasnovan in tako omogoča izločanje barvnih odtenkov v širšem pomenu. Struktura filtra je primerna za izvajanje operacij na nivoju slikovnih točk, ki ne vključujejo časovno povezanih opravil. Predstavljena arhitektura digitalnega filtra s hitrostjo izračunavanja izhodnih vzorcev zadovoljuje potrebe procesiranja digitalne slike v realnem času za standardne PAL slikovne formate v polni ločljivosti. Glede na odprte možnosti perifernih enot FPSLIC integriranih vezij, nudi izvedeni digitalni filter enostavno povezovanje z obstoječimi video dekodirniki in razvojnimi orodji za digitalno procesiranje signalov. Implementation of Parametrical Nonlinear Digital Filter for Skin Features Identification in Digital Image Using FPSLIC Technology Key words; digital filter, digital image, skin color digital signal processing, FPGA, microcontroller, FPSLIC, PAL Abstract: This article is about development of mathematical model and hardware implementation of the digital filter for skin features identification. With increasing popularity of digital video the computer vision is becoming one of the common media in mainstream electronics. One of the general tasks that are required by consumer computer vision systems is image understanding like detection and tracking of people. Before those tasks can be performed, the images have to be preprocessed. Suchlike tasks can be very cumbersome for general purpose computers. In such cases the skin color can be a very comprehensive feature to achieve the goal. The core of color tracking is color based image segmentation. Introduced parametrical digital filter makes it possible to filter digital images in YCbCr color space and on its output it gives digital images in a binary mask fashion. As the primary purpose of this digital filter is to identify skin color tones in digital images that is the main preprocessing task in detection and tracking of skin color formations, the parametrical design of the filter also offers color detection at comprehensive sense. In contrast to other classical digital filters known for digital audio and video signal processing with convolution equation, this filter features a multitude of threshold functions as transfer function. Appropriated thresholds are defined in HSV color space for the value and saturation components where the hue attribute is reliable. Therefore we use a polyhedron with appropriate threshold values that correspond to the skin-colored clusters with well-defined saturation and value components, based on a large sample set /16/. Each pixel from the digital image that passes through the filter is labeled with appropriate binary information. This binary information creates a binary mask with the same size as the original image where a logical one points to skin-colored pixel. As the applicable level of shown digital filter extends to digital image preprocessing the low level hardware implementation is very suitable. The hardware implementation is shown with FPSLIC technology from Atmel that features high performance combination of FPGA programmable logic circuits and RISC microcontrollers. The given digital filter structure is suitable for low-level non-temporal preprocessing tasks that operate on pixel level. Shown architecture of the digital filter offers sufficient computing power or data bandwidth to satisfy the requirements for full resolution real-time image processing in standard PAL picture formats. For hardware implementation we developed a mathematical model that enables calculation of the digital filter parameters from given boundary values in HSV color space. The digital filter hardware is completely designed in FPGA part of FPSLIC circuit. The embedded FPSLIC RISC microcontroller features parameter computation within the given mathematical model. The appropriate boundary threshold values for skin color identification in HSV color space are passed to the filter through asynchronous serial port and afterwards used for parameter computation. After calculation the computed parameters are directly applied to the digital structure of the filter by the embedded microcontroller For parameter storage we use 8-bit wide registers that are implemented in the FPGA part of the FPSLIC. Such digital structure enables dynamical changing of the filter parameters as they are computed by the embedded microcontroller and their computation doesn't disturb the digital image filtering which is done by the FPGA logic. As it is shown in the given mathematical model we have expose the polyhedron threshold values to several conditional states that are computed by three logical processing units. We have shown that six conditional states are needed to delineate the given threshold polyhedron in HSV color space. Each of those three processing units is performing two parameters computation so two of conditional states are processed by each unit. Through the parallel structure we get six computed conditional states for each image pixel that are gathered together for the binary pixel label on the filter output by a simply logical function. As FPSLIC integrated circuits utilize many peripheral units with open connection possibilities it is simple to interface the digital filter to other devices like video decoders and development tools for digital signal processing. Through simulation and testing we found that the performance of digital filter mostly depends on lightning conditions of the captured scene. In those cases where lightning conditions are worse the value threshold in HSV color space or the brightness parameters have to be appropriately corrected to increase the performance of the filter in identifying skin-colored features in digital image. In the future we will implement automatic tracing of the lightning conditions in captured scene and re-computation algorithm for specific brightness depending parameters. 1. Uvod z naraščajočo popularnostjo digitalnih video kamer postaja elektronski vid eden izmed splošnih medijev potrošniške elektronike. Med splošna opravila, ki jih zahtevajo z elektronskim vidom podprti potrošniški sistemi, spada tudi razumevanje slike, kot na primer detekoija in sledenje ljudi. Preden je možno takšna opravila dejansko izvesti, je potrebno slike predprocesirati. Takšna naloga je lahko izjemo zahtevno opravilo za splošno namenske računalnike. Ne le zaradi računske zapletenosti, temveč tudi zaradi velikih podatkovnih hitrosti. Barva kože v takšnih primerih nudi primaren način za dosego omenjenega cilja. Jedro barvnega sledenja je na barvi osnovana segmentacija. Glede na predstavitev barvne razdelitve v določenih barvnih modelih, lahko trenutno uporabljene tehnike barvnega sledenja uvrstimo v dva splošna pristopa: parametrični /11, 9/ in ne-parametrični /3, 2/. Sistem detekcije in sledenja odtenkov kožne barve vključuje modul predprocesiranja, ki omogoča izločanje odtenkov barve kože v živem slikovnem zaporedju. Uporabljena paralelna arhitektura je še posebej pnmerna za tiste naloge predprocesiranja, ki se izvajajo na nivoju slikovnih točk. Arhitektura je tako uporabna pri elektronskem vidu na nizkem nivoju procesiranja, ki ne vključuje časovno povezanih opravil, saj sistem ne vsebuje slikovnega pomnilnika in je časovno propusten. Predstavljen digitalni filter za razliko od klasičnih digitalnih filtrov, ki jih poznamo s področja procesiranja zvočnih in slikovnih signalov, kot prevajalno funkcijo /39/ ne uporablja konvolucijske enačbe, temveč množico pragovnih funkcij, ki izhajajo iz opravljene statistične obdelave predhodno zajetih slikovnih vzorcev/16/. Tako gre v našem primeru za označevanje slikovnih točk v obliki binarnih mask, kjer vsaka točka dobljene binarne maske vsebuje informacijo o prisotnosti barve kože. Torej lahko za vsako slikovno točko vhodnega slikovnega toka določimo ustreznost opisnim pogojem odtenkov kožne barve, pri tem se ta označi z logičnim stanjem na izhodu filtra. Ker izhodno slikovno zaporedje v obliki binarnih mask dimenzijsko ustreza vhodnemu slikovnemu zaporedju, lahko govorimo o slikovnem filtru. Ker aplikativni nivo uporabe digitalnega filtra sega na področje predprocesiranja živega slikovnega zaporedja, ga je smotrno realizirati na logičnem strojnem nivoju. Pri sami izvedbi logičnega stroja smo uporabili FPSLIC tehnologijo podjetja Atmel. FPSLIC tehnologija predstavlja pro-gramabilna logična vezja, ki vključujejo vgrajen RISC procesor /28/. 2. Identifikacija odtenkov kožne barve Identifikacijo in sledenje kožno obarvanih regij določamo z uporabo predhodnega poznavanja porazdelitve barve kože v HSV barvnem prostoru. Ugotovljeno je bilo, da odtenki kožne barve formirajo precej dobro definirana področja v/-/SV barvnem prostoru /15/. Vtem prostoru leži namreč porazdelitev kožnih barvnih tonov dominantno v omejenem območju barvnih odtenkov rdeče in rumene barve ter v določenih primerih v območju škrlatne in rdeče barve za temnejše tipe kože /16/. Komponenta nasičenosti teh formacij nakazuje, da so kožne barve do neke mere nasičene, vendar ne globoko nasičene s spreminjajočim nivojem osvetlitve. Komponenta barvnih odtenkov je najbolj pomembna lastnost za določanje karakteristik kožnih formacij, vendar so lahko barvni odtenki dokaj nezanesljivi v primerih nizke osvetlitve scene ali nizke vrednosti nasičenja na področjih kožnih formacij /16/. Zato je potrebno definirati primerne prage za komponenti vrednosti osvetlitve in nasičenja v primerih, kjer je ustrezen tudi atribut barvnih odtenkov. V skladu s kožno obarvanimi formacijami iz podatkovne baze zajetih slikovnih vzorcev, je možno zapisati ustrezen po-lieder s primernimi vrednostmi pragov, ki imajo ustrezno definirani komponenti nasičenja in vrednosti osvetlitve: p(k) = Če je 340° >//(/.')< 50° 5(/c)>50%, K(/C)> 357o O, drugje 1, (1.1) Polieder velja za poljubno lokacijo točke p v sliki, kjer je k trenutna koordinata točke. Kot je iz naštetih pogojev razvidno, je problem dokaj jasno definiran v/-/SI/barvnem prostoru, vendar je smotrno problem zasnovati tako, da bo zadoščal uporabi potrošniških slikovnih senzorjev - kamer. Pri večini potrošniških kamer je slikovni tok zapisan v YCbCr barvnem prostoru in iz tega razloga so potrebni dodatni računski postopki, ki preslikajo pogoje iz prostora HSV\j prostor YCbCr. 3. Izpeljava matematičnega modela Kot smo omenili v poglavju 2 je binarna prevajalna funkcija /39/ digitalnega filtra podana v obliki poliedra v HSV barvnem prostoru. Zapisan polieder je neparametričnega tipa, saj so pogoji natančno določeni, vendar je v praktični uporabi mnogokrat zahtevano določeno odstopanje, ki ga je nujno potrebno upoštevati na samem začetku snovanja matematičnega modela. Zato smo se odločili za parametrično obliko filtra, ki omogoča spreminjanje pogojev danega poliedra. Zaradi lažjega prehoda iz HSV barvnega prostora v YCbCr barvni prostor smo vpeljali še RGB barvni prostor, ki zaradi svoje aditivne lastnosti na eni strani omogoča lažje razumevanje pogojev danega poliedra kožnih odtenkov v HSV prostoru in na drugi strani ponuja enostaven prehod v YCbCr barvni prostor 3.1 Predstavitev barvnih prostorov človeško oko ima v očesni mrežnici tri tipe celic receptor-jev, ki so občutljive na tri različna območja valovnih dolžin elektromagnetnega valovanja. Svetloba povzroča stimulacijo teh celic, ki posledično proizvajajo električne impulze, le-ti pa potujejo do možganov, ki na podlagi jakosti impulzov zaznajo določeno barvo. Barvo lahko predstavimo z večimi modeli, ki jim pravimo barvni prostori. Posamezni barvni prostori so prilagojeni različnim tipom aplikacij (računalniška grafika, televizija, video oprema, ...). Zelo pomembno vlogo pri izbiri primernega barvnega prostora igra tip operacij, ki jih moramo izvršiti nad barvno informacijo. Določene operacije so lahko namreč nekemu barvnemu prostoru "naravne" in jih je zato moč lažje in hitreje izvesti. To pomeni, da lahko neko barvno informacijo, ki je zapisana v izvornem barvnem prostoru, pretvorimo v drug prostor, v katerem izvršimo obdelavo in nato pretvorimo informacijo nazaj v prvotni barvni prostor. 3.1.1 Barvni prostor YCbCr YCbCr barvni prostor je bil razvit za namene prenosa in obdelave video in televizijskega signala. Komponenta Y predstavlja intenziteto in nosi vso potrebno informacijo za prikaz slike v črno-beli tehniki. Celotno barvno informacijo je možno interpretirati z uporabo preostalih dveh komponent kromatičnosti Cb in Cr. Prvotna ideja VCüCr barvnega prostora izhaja iz ugotovitve, da so človeške oči občutljivejše na zeleno kot na rdečo ali modro barvo /33/. Glede na razmerja občutljivosti človeškega očesa vsebuje tako kom-pozitna kot tudi komponentna oblika analognega signala 70 % informacije o zeleni, 20 % informacije o rdeči in 10 % o modri barvi. Glede na dana razmerja so zasnovani tudi slikovni senzorji, ki najpogosteje uporabljajo Bayerjevo razporeditev slikovnih elementov - točk. Bayerjev vzorec uporablja dvakrat več zelenih kot rdečih in modrih elementarnih detektorjev. Iz omenjenih razlogov tako analogni signal kot digitalno slikovno zaporedje vsebuje dvakrat več informacije o intenziteti (pretežno zelena barva), kot o kromatičnosti (rdeča in modra barva). Pri pretvorbi analogne v digitalno obliko živega slikovnega zaporedja se slikovni tok vzorči glede na dana razmerja po vzorčni shemi 4:2:2, kar pomeni, da vsakemu vzorcu intenzitete izmenično pripadata kromatični vzorec modre in rdeče barve. Za nadaljnjo obdelavo slikovnega toka je potrebno vzorčno shemo pretvoriti iz razmerja 4:2:2 v razmerje 4:4:4, kjer vsakemu vzorcu intenzitete slikovnega toka pripadata kromatični vzorec rdeče in modre barve /34/. 3.1.2 Barvni prostor RGB RGB barvni prostor je posebej primeren za uporabo v računalniški grafiki. Barva je določena stremi komponentami: R (rdeča), G (zelena) in B (modra). Na sliki 1 vidimo, da je RGB barvni prostor predstavljen v obliki tridimenzionalnega kartezijskega koordinatnega sistema. Poljubna barva je določena kot vsota vektorjev osnovnih komponent RGB. Za prenos slikovne informacije v RGB prostoru je potrebna večja podatkovna širina. MODRA ZELENA RDEČA Slikal: RGB barvni prostor. 3.1.3 Barvni prostor HSV i-iSV barvni prostor je zelo podoben človekovi percepciji barv. Barvna informacija je v HSV prostoru določena s komponentami: H - hue (barvni odtenek), S - saturation (nasičenje). I/-value (vrednost osvetlitve). Na sliki 2 je prikazan model barvnega prostora HSV v obliki stožca. Različni barvni toni H so opazni na horizontalnem preseku stožca in sespreminjajo v odvisnosti odkota med izhodiščnim barvnim tonom O (rdeča barva) in želenim barvnim tonom. Nasičenje S narašča od vrednosti O do vrednosti 1 v smeri od središča proti obodu. Osvetljenost V pa narašča po vertikalni osi od vrednosti O (črna barva) do vrednoti 1 (bela barva). /-/SV barvni prostor je zaradi svoje sorodnosti s človekovo percepcijo barv izjemno primeren za aplikacije elektronskega vida. S/Z/ca 2; HSV barvni prostor. 3.2 Matematični model V uvodnem poglavju smo že omenili, da bo vhodni slikovni tok digitalnega filtra zapisan v YCbCr prostoru, med tem ko bo izhodni slikovni tok predstavljen na nivoju binarnih mask. Tako lahko računsko operacijo filtra v splošnem zapišemo z izrazom: M{t) = T{I{t)), (3.1) kjer je T prevajalna funkcija filtra, / slika vhodnega slikovnega zaporedja in M binarna maska izhodnega slikovnega zaporedja v času t. Ker filter izvaja prevajalno funkcijo v obliki pragovnih funkcij na vsaki posamezni slikovni točki vhodnega slikovnega zaporedja in pri operaciji filtriranja ni medsebojne odvisnosti med posameznimi slikovnimi točkami, lahko matematično formulacijo prenesemo na nivo posamezne slikovne točke v obliki zapisa: Barvno območje, ki ustreza barvi kože m{k,t)^T{i{k,t)), (3.2) kjer je T prevajalna funkcija filtra, / točka vhodne slike iz slikovnega zaporedja in m točka binarne maske izhodnega slikovnega zaporedja s koordinatami k v času t. Če upoštevamo zahteve procesiranja v realnem času, lahko ugotovimo, da moramo operacijo prevajalne funkcije izvesti vsaj tolikokrat, kot to pogojujejo dimenzije vhodnega slikovnega toka. Zaradi narave živega slikovnega zaporedja je čas, ki je na voljo za enkraten izračun operacije prevajalne funkcije podan z izrazom: = 1 m-n- f (3.3) kjer sta m in n dimenziji vhodne slike v vodoravni in navpični smeri in / frekvenca slik živega slikovnega zaporedja. Ker moramo pri snovanju filtra upoštevati zahteve procesiranja slikovnega toka v realnem času, je formulacija filtra podana z izrazom: m(/c) = r(/(/0). Tako lahko delovanje filtra ponazorimo s sliko 3. Slika 4: Pogoji i/ HSV prostoru. Če barvne vrednosti v RGB barvnem prostoru zapišemo kot vektorje v komponentni obliki je iz slike 4 razvidno, da lahko z ustrezno postavitvijo HSV barvnega prostora v RGB barvni prostor, vrednosti posameznih komponent zapišemo kot 1 (3.8) rR S G .g. G (3.9) VHOD: - točka (osnovni element slike) določena s komponetami YCbCr bih Procesiranje vhodne informacije _ IZHOD: - logična "O": ni barva kože - logična "1": barva kože Siika 3: Princip deiovanja fiitra. Na sliki 4 je grafično prikazano območje barv v HSV barvnem prostoru, ki ustreza barvi kože po pogojih predstavljenih v poliedru prevajalne funkcije filtra, pri čemer so meje pragovnih funkcij parametrično zapisane. Polieder prevajalne funkcije filtra lahko v skladu s sliko 4 razdelimo na sledeče pragove F> V., (3.4) (3.5) (3.6) pri tem so ti zapisani s parametri Vmax, oci, a2 in Smax, ki določajo meje področja, na katerem bo filter na svojem izhodu dajal pozitiven rezultat. (3.10) Tako lahko s pomočjo barvnih vrednosti RGB barvnega prostora zapišemo izraze za nasičenje S, barvni odtenek H in vrednost osvetlitve \/v /-/S\/barvnem prostoru: = ^(R-Gy +(R-B)iG-B) (G-B) (3.11) 1 , (3.12) (3.13) Iz izraza (3.11) je razvidno, da vrednost nasičenja S limitira proti razliki maksimalne in minimalne komponente RGB trojice. Za zadovoljivo oceno vrednosti nasičenja S, kjer je vrednost normirana na interval [0-1 j, lahko izraz (3.11) poenostavimo in zapišemo: max(i?, G, B) - min(i?, G, B) (3.14) Podobno je iz izraza (3.13) razvidno, da vrednost osvetlitve V limitira proti maksimalni komponenti RGB trojice. Tako lahko izraz (3.13) poenostavimo in oceno vrednosti osvetlitve zapišemo kot (3.15) Ker aktivno področje filtra leži v okolici rdeče barve, lahko izraz za vrednost osvetlitve V dodatno poenostavimo V ^R. (3.16) Iz tega sledi, da lahko prvi prag (3.4) poliedra prevajalne funkcije zapišemo kot ci: i? > v„ (3.17) Iz slike 4 je prav tako razvidno, da ob upoštevanju pogoja ci (3.16 - 3.17) velja za barvne odtenke v prvem kvadrantu pogoj C2- g-b>0 in barvne odtenke v četrtem kvadrantu pogoj C2':b-P>0 (3.18) (3.19) Tako lahko za območji v prvem in četrtem kvadrantu zapišemo izraz za nasičenje S (3.14) z izrazoma o --in J - ■ R R (3.20) (3.2i; Glede na drugi prag poliedra prevajalne funkcije (3.6) lahko zapišemo pogoja nasičenja S za prvi in četrti kvadrant kot (3.22) c,:Ril-s^J-B>0. (3.23) Prav tako lahko s pomočjo pogojev (3.18) in (3.19) preuredimo drugi prag poliedra prevajalne funkcije (3.5) in ga zapišemo s pogojema za barvni odtenek v prvem in četrtem kvadrantu kot 1 ^/3 i?tana, +G(—tana,--) + ' 2 '2 cs: 1 ^f^ in (3.24) + B(—tana, +^)>0 2 '2 1 J3 i? tana, -hG(-~tana, -i-—) + ce: 1 . (3.25) + B(—tana, 2 '2 Aktivno področje filtra lahko torej razdelimo na področje v prvem in četrtem kvadrantu. Če je pogoj (18) izpolnjen, določajo aktivno področje pogoji (3.17), (3.23) in (3.24). V obratnem primeru določajo aktivno področje pogoji (3.17), (3.22) in (3.25). Z namenom hitrejšega izvajanja je smiselno preverjati vse pogoje hkrati, pri tem lahko z dodatno logiko ugotavljamo ali smo v aktivnem področju filtra oziroma izven njega. Pogoje lahko zberemo z zapisom ■ n,2 ■ G + «,3 B > p. (3.26) kjer D/ predstavljajo parametre filtra v RGB barvnem prostoru pri pogojnih vrednostih pi, i pa predstavlja indeks posameznega pogoja. Parametre filtra iz RGB barvnega prostora pretvorimo v YCbCr barvni prostor s pomočjo transformacijske matrike K /34/: (3.27) pri tem m,- predstavljajo parametre filtra v YCbCr barvnem prostoru in i indeks posameznega pogoja. Parametre filtra lahko s pomočjo danega matematičnega modela izračunamo iz podanih mejnih vrednosti poliedra prevajalne funkcije, Izhodno funkcijo filtra lahko zapišemo z logičnim izrazom: m,," m,.2 0 = (C| -c^ -Cj ■C5) + (c, = (c, -02 'Cj ■C5) + (c, -č 2 C4 -C,) (3.28) kjer so c/ logični rezultati posameznih pogojev in o logična vrednost na izhodu filtra. Ker sta pogoja C2 (3.18) in 02' (3.19) komplementarna, je potrebno izračunati le pogoj C2 in v logičnem izrazu izhodne funkcije namesto C2' upoštevati njegovo negirano vrednost čj. 4. Izvedba digitalnega filtra Za izvedbo digitalnega filtra smo izbrali FPSLIC tehnologijo podjetja Afme/, ki prihaja v obliki integriranih vezij AT94K. FPSL/C tehnologija predstavlja FPG/4 rekonfigurabilna logič- na vezja z vgrajenim RISCAVR mikrokrmilnikom /28/. Konfiguracija logičnega vezja in vgrajenega mikrokrmilnika je osnovana na statičnem pomnilniku in jo je potrebno naložiti iz zunanjega pomnilnika. Slika 5: Arhitektura integriranega vezja AT94K, Slika 5 prikazuje notranjo zgradbo FPSLiC integriranih vezij, na sliki 6 pa je podrobneje prikazan vmesnik med FPGA jedrom in mikrokrmilnikom. Up lo 16 [nlGrrupl Linos {torn FPGA to AVR - Various Priorily levels Slika 6: Povezava FPGA jedra in mikrokrmilnika. Za samo izvedbo filtra smo uporabili integrirano vezje AT94K40L, ki vsebuje FPGA polje velikosti 48 x 48 pro-gramabilnih logičnih celic. Vgrajen 8-bitni RISC mikrokrmil-nik lahko konfiguriramo tako, da ima na voljo od 20KB do 32KB programskega pomnilnika in od 4KB do 16KB podatkovnega pomnilnika.Vgrajen mikrokrmilnik ponuja uporabo perifernih enot, kot sta dva zaporedna asinhrona vmesnika UART, tri časovnike/števce in uro realnega časa. Digitalni parametrični filter je v celoti zasnovan v FPGA logičnem vezju, pri tem za izračun parametrov skrbi vgrajen mikrokrmilnik. Ta je preko asinhronega zaporednega vmesnika povezan z osebnim računalnikom. Na ta način lahko z osebnim računalnikom spreminjamo mejne pogoje prevajalne funkcije digitalnega filtra, kar je v času preizkušanja zelo koristno. Če se mejni pogoji prevajalne funkcije filtra spremenijo, vgrajen mikrokrmilnik izračuna nove par- ametre za vgrajene pogoje in jih zapiše v logično strukturo filtra. YCbCr(k) >; 4:2:2/4:4:4 1YCbCr(k) UART UC LU C,(k) r I"..... .: C2(k) LU r:,;......: i ! •i LU :-»i o i------------: I r : 0(k) LU LU i cT 1 C5(k) i .............: j LU —^ Slika 7; Vzporedna zgradba digitalnega filtra (LU -logične enote). Na sliki 7 je prikazana zgradba digitalnega filtra, iz katere je razvidno, da se po pretvorbi vzorčne sheme 4:2:2 v 4:4:4 za vsako slikovno točko izračunajo pogoji Ci(k)-C6(k) iz katerih logična funkcija poda binarno vrednost o(k) na izhodu filtra. Hkraten izračun pogojev vršijo logične enote LU, ki na svojem vhodu prejemajo slikovne podatke v YCbCr barvnem prostoru in na svojem izhodu podajajo binarno vrednost glede na izpolnjenost določenega pogoja. Vgrajen mikrokrmilnik na eni strani omogoča sprejemanje mejnih vrednosti prevajalne funkcije in na drugi strani le-te implicira v obliki parametrov v logične enote LU. rrii ,16 m 12 ,8 / m 13 -A- —► ; + 16 X ,16 -h 16 Pi 16 Slika 8: Splošna zgradba LU enote. Za izračun pogojev smo zasnovali logično enoto LU, ki jo prikazuje slika 8. Na sliki je prikazana splošna logična enota, s katero je možno rešiti poljubnega izmed navedenih pogojev. Matematično funkcijo LU lahko zapišemo kot skalami produkt vektorjev m. jn.J-[Y Cb CrJ>p.. (4.1 LU na svojem vhodu sprejema slikovne podatke v YCbCr barvnem prostoru, pri tem je vsaka posamezna komponenta zapisana z 8-bitno podatkovno širino, kar v skupnem pomeni 24-bitno barvno globino. Komponenta V je podana na intervalu vrednosti [0,255], med tem ko sta komponenti Cb in Cr podani na intervalu [-128,127], Vsako komponento vhodnega podatka pomnožimo z ustreznim parametrom rriij, ki je prav tako zapisan z 8-bitno podatkovno širino. Uporabljeni množilniki izvajajo predznačeno celoštevilčno množenje. S pomočjo seštevalnikov tvorimo delno vsoto, ki jo primerjamo s parametri p/. Primerjanje izvaja primer-jalnik, ki na svojem izhodu podaja binarno informacijo o izpolnjenosti pogoja c/. Parametri m,/ in p/ so izvedeni v obliki registrov, do katerih lahko dostopa vgrajen mikrokrmil-nik in vanje vpiše ustrezne vrednosti parametrov. Ker realizacija predstavljene vzporedne zgradbe digitalnega filtra presega število razpoložljivih FPGA logičnih celic izbranega FPSLIC vezja, smo se odločili za kombinirano vzporedno zaporedno zgradbo digitalnega filtra, kot kaže slika 9. YCbCr(k^r-'..........-.......................lYCbCr(k)^ UART nC ^...................C, ^(k) LU I—^^- "lu.......i ^3,-/k) J r I o(k)^ LU i C5,6(k) i u Slika 9: Vzporedno zaporedna zgradba digitalnega filtra. V zgradbi filtra na sliki 9 vsaka LU izmenjujoče izračunava po dva pogoja, pri tem se hkrati izračunavajo trije pogoji. Na ta način upade število potrebnih FPGA logičnih celic približno na polovico v primerjavi z zgradbo na sliki 7. Ob tem se poveča zahtevnost po hitrosti LU, saj mora ta za vsako slikovno točko izračunati dva pogoja v danem časovnem intervalu. Iz matematičnega modela je razvidno, da med primerjalnimi parametri P/, lepr zavzema pozitivno vrednost, med tem ko so ostali primerjalni parametri P2...P6 enaki 0. Iz tega razloga je možno poenostaviti izhodni primerjalni del LU enot, saj je smiselno spremljati le najbolj uteženi bit zadnjega seštevalnika. Slika 10:Zgradba LU za pogoja ci In cj. 20 :m3i ^41 Y Cb I X r ,16 m32:m 42 + ;- ,16 X r+l 16 m 33! m 43 Cr--► X Slika 11.-Zgradba LU za pogoja ca in C4. Y i X Hi 16 m 521^62: M,- + ^ Ob--H ^ na m 53! m 63^ Cr--> X ^ Slika 12:Zgradba LU za pogoja C5 in ce. 4.1 Sinhronizacija Za delovanje v realnem času moramo digitalni filter sin-hronizirati na slikovni izvor. V primeru vzporedno zaporedne zgradbe moramo delovanje filtra uskladiti z dvakrat višjo uro, kot je ura slikovnih točk. V takšnem primeru je vsaka posamezna LU sposobna za eno slikovno točko izračunati dva potrebna pogoja. Tako v prvem ciklu ure za izračun pogoja C/ uporabimo parameter m/, v drugem ciklu ure pa za izračun pogoja c/+j uporabimo parameter m;+r. Tako na primer znaša v slikovnem formatu PAL linijska frekvenca 15.625 kHz in vsebuje skupno 944 slikovnih točk. Od teh je 768 aktivnih točk, ki dejansko nosijo informacijo o sliki. Frekvenca slikovnih točk za dan format znaša 14.75 MHz oziroma njen dvakratnik 29.50 MHz. V slikovnem formatu PAL ITU-R BT.601 je linijska frekvenca prav tako 15.625 kHz, pri tem ta vsebuje skupno 846 slikovnih točk od katerih je 720 aktivnih. Frekvenca slikovnih točk za ta format znaša 13.50 MHz oziroma njen dvakratnik 27.00 MHz. Da je digitalni filter sposoben obdelati vse slikovne točke v realnem času, mora hitrost izračunavanja LU enot zadostiti podanim frekvencam. Glede na dane hitrosti izračunavanja smo v enotah za izračunavanje delnih produktov in delnih vsot LU uporabili pristop cevljenja. Tako ima digitalni filter časovno zakasnitev za dve slikovni točki. V trenutku, ko je na vhodu filtra slikovni vzorec pW je na izhodu filtra vzorec o(k-2). Na sliki 13 je grafično prikazano cevljenje LU. Signal PCLK predstavlja uro slikovnih točk, signal SCLK pa njen dvakratnik. Za izračun enega pogoja so potrebni trije cikli SCLK ure. Z uporabo cevljenja se izmenjujoče izračunavata dva pogoja, ki sta med seboj časovno zamaknjena za en cikel ure SCLK. Intervali 7predstavljajo trenutno hranjenje rezultata izračunanega pogoja. SCLKi PCLKl P(k) Tc, Cl P(k+1) C2 tc2 p(k+2) Tc, Tc, _______P(k+3) Tc,.....: C,' Tih" C2 o(k-2) o(k-1) o{k) o(k+1) Slika 13: Cevljenje v LU. Za nemoteno delovanje filtra je smotrno parametre v LU enotah spreminjati v času zatemnitve digitalnega video signala. 4.2 Primer izračuna filtra za iskanje kožnih značnic Predpostavimo, da so želene mejne vrednosti prevajalne funkcije digitalnega filtra podane za področje kožne barve: v,™x=0,35.._=0,5,a, =50,a, =20. (4.2) V takšnem primeru bo digitalni filter na svojem izhodu dajal pozitivno vrednost le za točke slike, katerih barva ustreza barvnemu področju kože v HSV prostoru, ki ga opisujejo dane mejne vrednosti. Za izračun parametrov in simulacijo digitalnega filtra smo predlagan matematični model prenesli v programski paket MATLAB 6. Iz mejnih vrednosti po matematičnem modelu izračunamo parametre filtra nij za RGB prostor: "-5" ' 0" 0 " 3 , = 10 _ "h = -20 14 _27_ 0 (4.5) (4.6) Pri izračunu parametrov filtra se moramo zavedati, da registri za hranjenje parametrov v LU lahko sprejmejo le 8-bitne predznačene celoštevilčne vrednosti na intervalu [-128,127]. Pri tem so izjema le parametri p/, ki so lahko 16-bitne pozitivne celoštevilčne vrednosti. Tako je potrebno vrednosti parametrov po pretvorbi iz RGB v YCbCr barvni prostor najprej ustrezno skalirati in zaokrožiti. Prikazane vrednosti v enačbah (4.5) in (4.6) so desetkratna zaokrožena števila izračunanih vrednosti. Na sliki 14 je prikazan barvni krog v HS\/barvnem prostoru za največjo vrednost osvetlitve V. Na sliki 15 je prikazano filtrirano področje slike 14, kjer so v digitalnem filtru uporabljeni predhodno navedeni parametri (4.5)(4.6) oziroma mejni pogoji prevajalne funkcije (4.2). Na sliki 16 je prikazano filtrirano področje, kjer so zahtevani večji mejni pogoji za barvni odtenek H. Na sliki so vidne težave pri uspešnosti določanja mejnih vrednosti nasičenja S za večje kote barvnega odtenka H. Težave nastopajo zaradi kvantizacije parametrov. Na sliki 17 je prikazana testna slika realnega slikovnega izvora in na sliki 18 njen rezultat filtriranja. 1 0 0,5 0,5 «1 = 0 >h = 1 «3 = 0 -1 0 -1 -1 0 «5 = ■ 1,1918 ' -1,4619 0,2701 rir. = 0,364 ■ 0,684 "1,048 (4.3) Pl = 0,35,=0 (4.4) Tako dobljene parametre filtra pretvorimo s pomočjo transformacijske matrike K v parametre /D,yza YCbCr barvni prostor: lo' 0 m, = 0 = -21 m^ = -17 14 -7 7 Slika 14:Barvni krog HSV barvnem prostoru. Slika 15:Fiitrirano področje za kožno barvo V^.5, S>0.35, 50°>H>340° Slika 16:Filtrirano področje za\J^.5, S>0.35, 80°>H>280° 5. Zaključek Predstavljen parametrični digitalni filter je uporaben predvsem na področju rdečih barvnih odtenkov, saj je bil specifično zasnovan za iskanje kožnih značnic oziroma odtenkov kožne barve v digitalni sliki. Na digitalnem vhodu je sposoben sprejemati slikovni tok v najbolj razširjenem YCbCr barvnem prostoru, pri tem je možno z uporabo različnih transformacijskih matrik za barvne prostore, izračunati parametre tudi za druge barvne prostore, ki so zapisani s tremi komponentami. Mejne vrednosti za dani digitalni filter se podajajo v HSV barvnem prostoru, ki je po svoji naravi najbližji človeški percepciji barv. Skupna realizacija filtra omogoča dinamično spreminjanje binarne prevajalne funkcije, saj struktura omogoča sprotno izračunavanje parametrov med samim delovanjem filtra. Predstavljen digitalni filter bomo uporabljali skupaj z video dekodirnikom TVP5040 podjetja Texas Instruments, ki na svojem vhodu sprejema analogni S-video signal in na digitalnem izhodu podaja slikovni tok v YCöCr barvnem prostoru. Slikovni tok iz digitalnega filtra se preko hitrega sinhronega zaporednega vmesnika pošilja v digitalni signalni procesor TMS320C6711 podjetja Texas Instruments. Pokazalo se je, da je učinkovitost filtra ob iskanju kožnih značnic predvsem odvisna od osvetlitve zajete scene. Z spremembo osvetlitve se spreminja vrednost intenzitete in v primerih slabe osvetlitve scene je potrebno ustrezno znižati prag za vrednost osvetlitve Vmax- Zato v nadaljnjem razvoju predvidevamo vključitev samodejnega prilagajanja na osvetlitev scene. Literatura Slika 17; Testna slika realnega slikovnega izvora. Slika 18:Filtrirana testna slika realnega slikovnega izvora. /1/ Palmer, Steven E. Vision Science. Tlie MIT Press, Cmbridge, MA, 1999. /2/ R. Kjeldsen, J, Kender. Finding skin in color images. In Proc of Second international Conference on Automatic Face and Gesture Recognition, pages 312-317, 1996. /3/ K. Imagawa, S. Lu, S. Igi. Color-Based tnands tracking system for sign language recognition. In Proc. Of Infi Conf. On face and Gesture Recognition, pages 462-467, 1998. /4/ S. Ahmad. A usable real-time 3D tiand tracker. In proc. IEEE AsilomarConf., 1994 /5/ J, Crowley, F. Berard, J. Coutaz. Finger tracking as as input device for augmented reality. In Proc. Infi Worksliop on Atcmatic Face and Gesture Recognition, pages 195-200, Zurich, 1995. /6/ F Quek. Unencumbered gesture interaction. IEEE Multimedia, 1997. /7/ T. Starner A wearable computer based american sign language recognizer. In Proc. IEEE Infi Symposium in Wearable Computing, Oct. 1997. /8/ M. Jones, J. Rehg. Statistical color models with application to skin detection. Technical Report CRL 98/11, Compaq Cambridge Research Lab., 1998. /9/ C. Wren, A. Azarbayejani, T. Darrel, A, Pentland. Pfinder: Realtime tracking of the human body. In Photonics East, SPIE Proceedings, volume 2615, Bellingham, WA, 1995. /10/ M. Isard, A. Blake. Contour tracking by stochastic propagation of conditional density. In Proc, Of European Conf. On Computer Vison, pages 343-356, Cambridge, UK, 1996. /11/ Y. Raja, S. McKenna, S. Gong. Colour model selection and adaptation in dynamic scenes. Ain Proc. European Conf. Computer Vison, pages 460-475, 1998. /12/ Y. Azoz, L. Devi, R. Sharma. Reliable tracking of human arm dynamics by multiple cue integration and constraint fusion. In Proc. IEEE Conf. Computer Vison and Pattern Recognition, pages 905-910, Santa Barbara, CA, 1998. /13/ J. Lee, T. Kunii. Model-based analysis of hand posture. IEEE Comput, Graph. Appl., vol. 15, no. 5, pages 77-86, Sept. 1995. /14/ Y. Wu, Y. Shan, Z. Zhang, S. Shafer, Visual Panel; From an ordinary paper to a wireless and mobile input device. Microsoft Research, October 2000. /15/ N. Herodotu, A.N. Venetsanopoulos. Image segnemtation for facial image coding of videophone sequences. 13th InternationI Conference on Digital Signal Processing, 1, 223, 1997. /16/ N. Herodotu, K. N. Plataniotis, A. N, Venetsanopoulos. Automatic location and tracking of the facial region in color video sequences. Signal Processing: Image Communication, 14, 359, 1999. /17/ J. R. Ohm, K. Grunberg, E. M. Izquiredo, M. Karl. A realtime hardware system for stereoscopic videoconferencing with viewpoint adaptation. Heinrich Hertz Institute, Image Processing Department, Germany, 2000 /18/ T. M. Cover, J. A. Thomas. Elements of information Theory Wiley, 1991. /19/ N. Jojic, B. Brumitt, B. Meyers, S. Harris. Detecting and estimating pointing gestures in dense disparity maps. In Proc. IEEE Infi Conf. On Face and Gesture Recognition, France, 2000. /20/ R. Kjeldesn, J. Render. Toward the use of gestures in traditional user interface. In Proc. Of IEEE Automatic Face and Gesture Recognition, pages 151 - 156, 1996. /21/ Y. Wu, 0. Liu, T. S. Huang. An adaptive self-organizing color segmentation algorithm with application to robust real-time human hand localization. In proc. Of Asian Conference on Computer Vision, Taiwan, 2000. /22/ I, Kramberger, M. Solar. DSP Acceleration Using a Reconfigura-ble FPGA. Proc. of IEEE International Symposium on Industrial Electronics-ISIE'99, Bled - Slovenija, 1999. /23/ New, Bernie. A distributed arithmetic approach to designing scaleable DSP chips. EDN, pp. 107-114, 1995. /24/ Atmel, Inc.. Recommended Design Methods. Atmel, September, 1997. /25/ Atmel, inc.. Implementing Cache Logic with FPGAs. Atmel, September, 1997. /26/ Atmel, Inc.. Implementing Bit-Serial Digital Filters. Atmel, September, 1997 /27/ Atmel, Inc.. Implementing FreeRAM inside the FPGAorAT94K Series FPSLIC Using VHDLwith IP Core Generator, Atmel, 2001 /28/ Atmel, Inc.. AT94K Series Field Programmable System Level Integrated Circuit. Atmel, 2001. /29/ MathWorks, Inc.. Image Processing Toolbox User's Guide. Math-works, 2001. /30/ MathWorks, Inc.. Signal Processing Toolbox User's Guide. Math-works, 2001. /31/ MathWorks, Inc.. Statistics Toolbox User's Guide. Mathworks, 2001. /32/ B. Furht. Processors Arhltectures for Multimedia. Florida Atlantic University, Department of Computer Science and Engineering, Boca Raton, Florida 1998. /33/ N. Holzschuch. Color fidelity and Color spaces. University of Cape Town, 1996. /34/ J. Keith. YCbCr to RGB Considerations, Converting 4:2:2 to 4:4:4 YCbCr. Intersil Application Note March 1997AN9717 /35/ J. E. Adams. Design of practical color filter array interpolation algorithms for digital cameras. In Proc. Od SPIE, Bellingham, WA, USA, 1997 /36/ R. P. Kleihorst et al.. Xetal a low-power high-performance msart camera processor. In Proc. ISCAS2001, Sydney, Australia, 2001, /37/ J. Yang, A. Waibel. A real-time face tracker, in Proc. IEEE workshop on Applications of Computer Vision, Saratosa, FL, USA, 1996. /38/ M. Suen, R. Kleihorst, A. Abbo, E. C. Solal. Real time skin-tone detection with a single digital camera. Philips Research Laboratories, Eindhoven, Netherland. 2001. /39/ N. Pavešič. Razpoznavanje vzorcev: Uvod v analizo in razumevanje vidnih in slušnih signalov. Druga razširjena izdaja. Fakulteta za elektrotehniko, Ljubljana. 2000. mag. Iztok Kramberger univ. dipl. inž., asistent na Fakulteti za elektrotehniko, računalništvo in informatiko v Mariboru, izr. prof. dr. Zdravko Kačič, izr profesor na Fakulteti za elektrotehniko, računalništvo in informatiko (/ l^ariboru. Fakulteta za elektrotehniko, računalništvo in informatiko v Mariboru Smetanova 17, 2000 Maribor, Slovenija Prispelo (Arrived): 03.06.2002 Sprejeto (Accepted): 25.03.2003