1 Uvod Cilj tega dela je razviti program, s katerim bi pacien- tom olajšali rehabilitacijo po poškodbi roke, zapestja ali dela možganov, ki nadzoruje ta del. Vsako leto na mili- jone ljudi po svetu doživi kap, samo v Združenih državah Amerike ta številka presega 600.000 [1]. Poškodovanec mora ustrezni del možganov spet naučiti oz. navaditi upo- rabljati roko ali zapestje. Ustrezna terapija po kapi traja zaradi motenj gibanja več tednov po poškodbi. Zaradi ekonomskih pritiskov pa imajo pacienti čedalje manj teh terapij in jih hitro pošljejo domov. Tako tudi koristi te- rapije niso v celoti dosežene. Zato je pomembno razviti sistem, ki bo pacientom omogočal nadaljevanje terapije brez prisotnosti zdravnika. 2 Sorodna dela Ena izmed rešitev, FRI Rehab 2D, je bila razvita na Uni- verzi v Ljubljani [2]. Ta program ob pogojih, kot sta ustrezna osvetlitev in ne prehitro premikanje predmeta, v realnem času uspešno določa lego predmeta. Predmet uspešno določi tudi če je ta delno zakrit. Sliko zajema s črno-belo kamero. Slabost te rešitve je, da deluje v dveh dimenzijah. Naša rešitev je nadgradnja tega sistema s pre- hodom v tri dimenzije, uporaba barvne informacije in mo- dela kvadra. Sistem Optotrak Certus ima natančnost do 0,1 mm in ločjivost 0,01 mm. Sledi lahko do 512 markerjem (IR- diode) z največjo hitrostjo osveževanja 4600 Hz. Sis- tem Optotrak Certus vsebuje tri kamere, občutljive za in- frardečo svetlobo. Sistem stane okrog 150.000 dolarjev, a ni omejen samo na rehabilitacijo, temveč se uporablja tudi v industriji, biomehaniki in na raziskovalnih inštitutih [3]. Xsensov MTi je miniaturen sistem za zaznavanje lege in smeri. Vsebuje notranji signalni procesor in posebne senzorje, s katerimi določa 3-D orientacijo [4]. Kljub širši namembnosti bi lahko sistem MTi uporabili tudi pri rehabilitaciji. Sistema stane približno 2500 evrov. Po na- vedbah proizvajalca je napaka premikajočega se senzorja manj kot dve kotni stopinji. Za kvader, kakršnega smo uporabljali za naš program (dolžina 14 cm, širina 8 cm, višina 6 cm), smo preračunali napako, ki znaša 5,35 mm. Pristop za sledenje v 3-D koordinatah, ki sta ga upo- rabila Y. Tao in H. Hu, integrira kamero in senzor, ki meri inercijo (angl. inertial sensor). Z dodatnimi optimiza- cijski algoritmi sta dosegla natančnost ± 5 cm za vse tri koordinate [5]. 3 Predpriprave Pred začetkom dela s programom je treba pripraviti pro- stor (slika 1) in opremo, saj je pravilnost delovanja pro- grama močno odvisna od teh dejavnikov. Slika 1. Ureditev delovnega okolja Figure 1. Work space arrangement. V našem primeru je na zajeti sliki pomembna samo ena stvar – kvader, ki ga premikamo. Zato je pomembno, da lahko kvader ločimo od okolja. V ta namen smo upora- bili podobno rešitev, kot jo pogosto uporabljajo na televi- ziji pri napovedovanju vremena, in sicer t. i. modri zaslon (angl. blue screen). Ideja te rešitve je, da obdržimo samo tiste dele slike, ki niso neke določene barve, v našem pri- meru smo se odločili za črno. Uporabimo lahko zaveso črne barve, ki jo namestimo tako, da pokriva celoten del vidnega polja kamere. Na roko, s katero držimo in premi- kamo kvader, si nadenemo še črno rokavico. Tako je na zajeti sliki vse, razen kvadra, črne barve. Podatke o predmetu vnesemo v program v poseb- nem oknu, kjer podamo dimenzije kvadra, torej dolžino, širino in višino ter barve stranic. Lastnost, ki jo je treba upoštevati, je material, iz katerega je narejen sam kvader ali njegove stranice. Dober material je tak, ki je hkrati dovolj svetel in obenem ne preveč odbojen. Odbojnost in osvetljenost kvadra pa je odvisna tudi od virov svetlobe v prostoru. Temu je treba nameniti še posebno pozornost tudi zaradi kamer, ki jih uporabljamo, saj se osredinjamo na kamere najnižjega cenovnega razreda. Najbolje je to- rej uporabiti vire svetlobe, ki osvetljujejo kvader čim bolj enakomerno iz vseh strani. Dobro se obnese kombinacija dnevne svetlobe z enim ali dvema viroma razpršene ume- tne svetlobe. FRI Rehab 3D: 3D rekonstrukcija kvadra na osnovi ene kamere pri rehabilitaciji človeške roke 231 4 Iskanje robov Za določanje oglišč potrebujemo čim bolj natančno določene notranje robove kvadra. Te določimo na pod- lagi presekov posameznih parov stranic (slika 2). Slika 2. Presek stranic pri določanju roba med njima Figure 2. Side intersection in edge detection. Najprej ugotovimo, katere stranice so na sliki, in nad njimi paroma naredimo preseke. Točke posameznih pre- sekov zberemo v posebne množice, nad katerimi z line- arno regresijo [6] določimo premice, ki te točke pokrivajo z najmanjšo napako. 5 Iskanje oglišč Oglišča so za računanje položaja objekta zelo uporabne značilke, zato je velik del programa namenjen njihovemu iskanju. Pomemben del reševanja tega problema je me- toda iskanja robov. Reševanje si olajšamo, če celoten pro- blem določanja oglišč razdelimo na tri podprobleme. 5.1 Vidna ena stranica Ta podproblem je sestavljen iz dveh delov. V prvem delu poiščemo grob približek oglišča in ga v drugem koraku poskušamo izboljšati z lokalno optimizacijo. Približek iščemo tako, da določimo natančen najmanjši okvir. Ta okvir se na štirih točkah dotika pravokotnika, ki predsta- vlja objekt. Pravokotnik se dotika okvirja na štirih točkah, kar je približen položaj oglišč. Sledi optimizacija na ome- jenem območju. Za vsako belo točko v tem območju izračunamo število sosednjih točk bele barve. Tam, kjer je število točk minimalno, je oglišče. 5.2 Vidni dve stranici Kadar sta na sliki vidni dve stranici, moramo po prej opi- sanem postopku najti premico, ki določa rob med njima. Nato tej premici sledimo in ko naletimo na prvo nečrno točko, jo označimo za en konec roba. Premici sledimo še naprej, dokler ne naletimo tokrat na črno točko, kar označuje drugi konec roba. Slika 3. Iskanje ostalih oglišč s pravokotnicami. Figure 3. Detection of other corners with perpendiculars. Naslednji korak je iskanje približkov preostalih štirih oglišč. V okolici prvega oglišča določimo n pravokotnic na prej dobljeno premico (slika 3). Za vsako od pravoko- tnic nato izračunamo razdaljo od njene izhodiščne točke, ki leži na premici, do prve ne črne točke, torej prve točke, ki ne leži več na kvadru. Vseskozi spremljamo dolžine pravokotnic. Ko pravokotnica ne teče čez kvader, je njena dolžina nič. Prva naslednja pravokotnica, ki teče čez kvader, pa ima dolžino različno od nič. Algoritem ugo- tovi spremembo dolžin ter tam določi prisotnost novega oglišča. Sledi še optimizacija prej dobljenih oglišč. 5.3 Vidne tri stranice Prvi korak je določitev notranjih robov z metodo preseka. S pomočjo vseh treh robov lahko zelo natančno določimo prvo notranje oglišče kvadra. Dodatna tri oglišča dobimo tako, da sledimo vsakemu od treh robov. Začnemo pri iz- hodišču in se premikamo po premici roba, dokler ne pri- demo do prve ne črne točke. Slika 4. Na levi sliki so prikazani robovi in prva štiri oglišča ter približki preostalih treh oglišč. Desno je rezultat po optimiza- ciji. Figure 4. Left picture shows the edges and the first four corners plus three approximate corners. The picture on the right shows the result after optimization. Preostala so nam še tri neznana oglišča. Sprejmemo predpostavko, da štiri oglišča, ki tvorijo eno stranico, določajo pravokotnik. Tri oglišča tega lika že imamo. Četrtega izračunamo z zrcaljenjem enega od oglišč prek premice, ki jo določata preostali dve oglišči. Isti posto- 232 Simončič, Peer pek ponovimo še za preostali stranici. Izkaže se, da so optimizirana oglišča dobro določena (slika 4). 6 Določanje 3-D koordinat Na podlagi 2-D koordinat oglišč, modela kvadra, ločljivosti in goriščne razdalje kamere lahko izračunamo 3-D koordinate. Uporabljali smo kamero Logitech Quick- cam 5000 Pro z ločljivostjo 640×480 točk. Objekt se pre- slika na slikovno ravnino, ki tvori sliko, in na podlagi ka- tere smo po prej opisanih postopkih določili značilki oz. njihovi koordinati x in y. Ker je slikovna ravnina od leč kamere oddaljena za goriščno razdaljo, nam ta razdalja pomeni koordinato z značilk. Za lažjo ponazoritev pro- blema smo si pomagali z orodjem 3D Studio (3ds) Max (slika 5). Točke na sliki označimo s črkami a, b, c in d. Točke objekta oz. oglišča, ki jih iščemo, pa označimo z a’, b’, c’ in d’. Poznamo tudi razdalje med njimi. Kamera je na točki z oznako o, ki naj bo tudi izhodišče koordina- tnega sistema. Slika 5. Podrobnejši prikaz preslikave objekta na sliko Figure 5. Detailed illustration of an object projected on the image plane. Vidimo lahko, da je zveza med oglišči kvadra, ki jih iščemo, ter oglišči kvadra, preslikanimi na slikovno rav- nino, naslednja: −→ oa ′ = k1 · −→ oa −→ ob ′ = k2 · −→ ob −→ oc ′ = k3 · −→ oc −→ od ′ = k4 · −→ od (1) Ugotovimo lahko, da so konstante k1, k2, k3 in k4 enolično določene, če vpeljemo dve omejitvi, ki izhajata iz modela kvadra. Prva omejitev je presečišče obeh di- agonal. Druga omejitev pa je dolžina stranice, ki jo kot vhodni podatek določimo na začetku programa pri kali- braciji. Obe omejitvi skupaj tvorita štiri enačbe, ki skupaj enolično določajo sistem s štirimi neznankami. Tako smo izračunali neznanke k1, k2, k3 in k4 ter določili točke a’, b’, c’ in d’. Določanja preostalih stranic se lahko lotimo z vektor- skim produktom, s katerim določimo pravokotnice na vsa štiri oglišča prej določene stranice. Rezultat moramo še normalizirati tako, da dolžino, ki jo vrne vektorski pro- dukt, delimo z dejansko dolžino. To seveda poznamo, saj je to ena izmed dimenzij kvadra. S tem količnikom nato delimo vse tri komponente novega vektorja in tako dobimo koordinate novega oglišča kvadra. Postopek mo- ramo ponoviti za vsa preostala oglišča in s tem je posto- pek določanja 3-D koordinat končan in kvader lahko po- stavimo v navidezni 3-D prostor. 7 Ujemanje z navideznim predmetom Navidezni kvader moramo za simulacijo postaviti v na- ključno lego v navideznem prostoru ter ga nato čim bolje pokriti z realnim kvadrom. Slika 6. Ujemanje navideznega in realnega kvadra izpiše sporočilo o uspehu Figure 6. Matching of a virtual and real cuboid is displayed by a success message. Najprej določimo središče realnega kvadra in središče navideznega kvadra. Kadar je razdalja med obema središčema manjša od določene vrednosti, izračunamo še razdalje med oglišči navideznega in realnega kvadra. Ka- dar so te razdalje manjše od vnaprej definiranega parame- tra, lahko rečemo, da sta lega in rotacija obeh predmetov enaki (slika 6). 8 Rezultati V tem poglavju smo pri kvantitativnih meritvah najprej v programu 3ds Max ustvarili prostor, v katerega smo v naključno lego postavili ustrezen kvader ter ga zasu- kali. Sliko smo upodobili (angl. render) ter jo uporabili kot vhodni podatek v naš program, ki je nato izračunal položaj kvadra. Izračunane koordinate oglišč kvadra smo primerjali s koordinatami kvadra v 3ds Maxu. Primerjali smo vsa vidna oglišča. Vse enote so v milimetrih. Sis- tem smo razvijali na osebnem računalniku s procesorjem Core2 Duo 1,86 GHz z operacijskim sistemom Windows FRI Rehab 3D: 3D rekonstrukcija kvadra na osnovi ene kamere pri rehabilitaciji človeške roke 233 XP v okolju VS.NET C++. Izmerili smo tudi hitrost de- lovanja programa in večinoma se giblje med štirimi do devetimi slikami na sekundo. Kvantitativna napaka je definirana kot razdalja med pravilno lego oglišča, ki jo dobimo v 3ds Maxu, ter izračunano lego oglišča programa. Kvantitativna napaka v tem primeru ne da vedno pravilnega občutka o uporab- nikovi izkušnji programa in njegovi natančnosti, zato smo vpeljali približek kvalitativne vizualne napake, ki zane- mari koordinato z, saj je napaka na tej koordinati uporab- niku veliko manj opazna kot pa napaka na koordinatah x in y. Za oba tipa napak je vključen tudi izračun nekate- rih pogostejših kazalcev napak: povprečna napaka (angl. average) in standardni odklon (angl. standard deviation), srednja geometrična napaka (angl. geometric mean) in mediana (angl. median). 8.1 Pogosti problemi V nekaterih situacijah program zelo slabo določi koordi- nate. Če je premalo svetlobe, se stranice ne vidijo v ce- loti. To težavo lahko odpravimo z dodatnimi viri svetlobe. Druga težava lahko nastopi, ko se zaradi direktne točkaste svetlobe stranice obarvajo drugače. V tem primeru mo- ramo vir svetlobe zatemniti ali pa obrniti tako, da žarnica ne sveti naravnost v kvader. Preveriti moramo tudi, da ni material stranic kvadra preveč odbojen. 8.2 Kvantitativna ocena Tu smo proučili skupaj 45 primerov, od tega 15 tam, kjer je vidna ena stranica, 15 kjer sta vidni dve stranici in 15 kjer so vidne vse tri stranice (skupaj 226 oglišč). Slika 7. Graf korelacije med razdaljo od izhodišča ter velikostjo napake Figure 7. Graph showing correlation between the distance from the origin and the error size. Izračun napak prikazujeta tabeli 1 in 2. ocena sred. geom. napaka mediana kvantitativna 11,73 mm 11,58 mm kvalitativna 2,51 mm 2,34 mm Tabela 1. Izračunane napake na podlagi 226 oglišč Table 1. Errors calculated on the basis of 226 corners. ocena povp. napaka ± std. odst. razdalja od izh. 3,02 % ± 3,84 % Tabela 2. Povprečna napaka, izražena v odstotkih dejanskih raz- dalj Table 2. Average error expressed in percentages of the actual distances. Na sliki 7 je vidna korelacija med razdaljo oglišča od izhodišča in velikostjo napake za kvantitativno in kva- litativno napako. Graf prikazuje tudi linearni funkciji obeh napak. Na sliki 8 je prikazana razporeditev frekvenc kvantitativnih in kvalitativnih napak. Stabilnost je dovolj dobra, še posebno pri kvalitativnih meritvah. Tako napaka v odstotkih kot grafi stabilnosti kažejo na zadovoljivo de- lovanje. Slika 8. Razporeditev frekvenc kvantitativnih in kvalitativnih napak Figure 8. Distribution of the quantitative and qualitative errors. 8.3 Kvalitativna ocena Za vizualno (subjektivno) ocenjevanje delovanja pro- grama smo vpeljali tri ocene: dobro (brez deformacije), sprejemljivo (majhna, srednja deformacija) in slabo (kva- der je zelo deformiran oz. izgine). Test smo izpeljali na treh videosekvencah. Pred testi- ranjem smo še enkrat določili barve ter preverili oz. spre- menili ali dodali svetlobne vire. Tako je bilo hkrati dovolj svetlo, a brez preveč direktne svetlobe, ki bi se na kvadru preostro odsevala in povzročila slabšo detekcijo. V prvem videu (2160 slik, 72 sekund) smo premikali in obračali kvader tako, da je bila večinoma vidna le ena stranica. V drugem videu (2677 slik, 89 sekund) smo premikali in obračali kvader tako, da sta bili večinoma vidni dve stra- nici. V tretjem videu (3477 slik, 116 sekund) pa smo pre- mikali in obračali kvader tako, da so bile večinoma vidne vse tri stranice. Rezultati so pokazali, da jih je od vseh slik le 4,2 % prikazanih napačno, vendar od teh samo 1,2 % tudi zelo slabo, preostalih 3 % pa je sprejemljivih. Ti rezultati so dosegljivi samo s pravilnim upoštevanjem osvetlitve, do- bro kalibracijo barv in predhodno nastavitvijo parametrov kamere, kot je bilo opisano na začetku tega dela. Tudi sicer se te ocene lahko razlikujejo od videa do videa za- radi različnih dejavnikov, kot so oddaljenost kvadra od kamere, hitrost premikanja, kakovost izdelave kvadra ipd. 9 Sklep Medtem ko druge rešitve uporabljajo napredno dodatno strojno opremo, smo se mi omejili le na navadno sple- tno kamero. To prinese tako prednosti kot slabosti (tabela 3). Pomembne prednosti so nizka cena in dostopnost, saj lahko program na sodobnem računalniku vsak uporablja kar doma. Glavni slabosti pa sta natančnost v primerjavi z dražjimi rešitvami in občutljivost za zunanje dejavnike. Naša rešitev ima veliko možnosti za dopolnitev in iz- boljšanje delovanja. Ena možnost bi bila uporaba ka- mere z večjo ločljivostjo. Večjo izboljšavo bi prinesla tudi uporaba naprednejšega algoritma 3-D rekonstrukcije, ki bi bolje izrabljal lastnosti modela kvadra. Program bi bilo mogoče razširiti tudi z vodenjem statistike paci- enta, s katero bi imel fizioterapevt dodatno podlago za oceno napredka pacienta. Dodatna možnost bi bila tudi razširljivost z delitvijo programa na strežniški in odjemal- ski del. napaka cena naša rešitev 11,58 mm cena kamere Optotrak [3] 0,1 mm pribl. 118.000 evrov Xsens MTi [4] 5,35 mm 2.500 evrov Tao, Hu [5] 50 mm cena kamere, senzorja Tabela 3. Sklepna primerjava različnih rešitev Table 3. Concluding comparison of different solutions. Predlagano rešitev smo na koncu tudi ustrezno preiz- kusili. Na podlagi rezultatov lahko zaključimo, da smo se z opisano rešitvijo dovolj približali začrtanim ciljem. To seveda velja le ob pogoju, da je uporabnik upošteval podane smernice priprave prostora ter ustrezno nastavil parametre kamere. S tem lahko velikost napake in stabil- nost detekcije zelo izboljšamo, vendar natančnosti dražjih rešitev kljub temu ne moremo doseči. Zato je opisana rešitev ustrezna pri metodah rehabilitacije, kjer izmerjene napake ne vplivajo na uspešnost terapije. Menimo pa, da bi z vpeljavo zgoraj omenjenih izboljšav natančnost lahko še precej izboljšali. 10 Literatura [1] L. E. Sucar, G. Azcrate, R. S. Leder, D. Reinkensme- yer, J. Hernndez, I. Sanchez, P. Saucedo, “Gesture The- rapy: A Vision-Based System for Arm Rehabilitation af- ter Stroke”, Proceedings of the First International Confe- rence on Health Informatics, 2008, str. 107–111. [2] J. Katrašnik, M. Veber, P. Peer, “Using computer vision in a rehabilitation method of a human hand”, Mediterranean Conference on Medical and Biological Engineering and Computing MEDICON 2007, str. 947–949. [3] Technology in Motion, opis produkta: http://www.ndigital.com/lifesciences/certus.php (12.2.2009). [4] Xsens MTi, specifikacije: http://www.xsens.com/Static/Documents/ UserUpload/Xleaflets/leaflet MTi.pdf (12.2.2009). [5] Y. Tao, H. Hu, “3D Arm Motion Tracking for Home-based Rehabilitation”, Proceedings of the 3rd Cambridge Wor- kshop on universal access and assistive technology, Cam- bridge, U.K., 2006, str. 105–111. [6] D. A. Forsyth, J. Ponce, “Computer Vision: A Modern Approach”, Prentice Hall, 2003, str. 436–444. Boris Simončič je diplomiral leta 2009 na univerzite- tnem študiju Fakultete za računalništvo in informatiko Univerze v Ljubljani. Peter Peer je docent na Fakulteti za računalništvo in in- formatiko Univerze v Ljubljani.