Z-ANO - České vysoké učení technické v Praze

Transkript

Z-ANO - České vysoké učení technické v Praze
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
FAKULTA BIOMEDICÍNSKÉHO INŽENÝRSTVÍ
Katedra biomedicínské techniky
TÝMOVÝ PROJEKT
2011
Jan Tesař
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
Fakulta biomedicínského inženýrství
Katedra biomedicínské techniky
Fit me – snímání pozic pomocí kamery Kinect
Týmový projekt
Vedoucí projektu: Mgr. Radim Krupička
Student:
Jan Tesař
Prohlášení
Prohlašuji, že jsem týmový projekt s názvem
Fit me – snímání pozic pomocí kamery Kinect
vypracoval(a) samostatně a použil(a) k tomu úplný výčet citací použitých pramenů, které
uvádím v seznamu přiloženém k práci. Nemám závažný důvod proti užití tohoto školního díla
ve smyslu §60 Zákona č.121/2000 Sb., o právu autorském, o právech souvisejících s právem
autorským a o změně některých zákonů (autorský zákon).V Kladně. dne 3. 1. 2012.
Obsah
1.
2.
3.
4.
5.
Úvod................................................................................................................................................ 6
1.1.
Motivace .................................................................................................................................. 6
1.2.
Popis zadání ............................................................................................................................. 6
Způsoby snímání pohybu ................................................................................................................ 7
2.1.
Zařízení pro přesné snímání pohybu ....................................................................................... 8
2.2.
Snímání pohybu ovladače u herních konzolí ......................................................................... 10
2.3.
Snímání pohybu pomocí hloubkové kamery Kinect .............................................................. 12
2.3.1.
Princip ovládání her pomocí konzole Kinect ................................................................. 12
2.3.2.
Hardware hloubkové kamery Kinect ............................................................................. 12
Použití hloubkové kamery pro snímání pohybu ........................................................................... 16
3.1.
Definice měřených pohybů ................................................................................................... 16
3.2.
Získání obrazových dat .......................................................................................................... 17
3.3.
Identifikace a nalezení lidské postavy ................................................................................... 18
3.4.
Výpočet fyziologických parametrů postav ............................................................................ 19
3.5.
Klasifikace pohybů ................................................................................................................. 20
Implementace ............................................................................................................................... 21
4.1.
Použité technologie ............................................................................................................... 21
4.2.
Ovladače pro komunikaci s hloubkovou kamerou Kinect ..................................................... 21
4.3.
Použití knihovny MS Kinect SDK ............................................................................................ 22
4.4.
Algoritmy vyhodnocující semaforovou abecedu ................................................................... 23
4.5.
Uživatelský inteface ............................................................................................................... 23
Použití softwaru ............................................................................................................................ 25
5.1.
Měření přesnosti hloubkové kamery Kinect ......................................................................... 25
5.2.
Prezentace aplikace na dni otevřených dveří........................................................................ 26
6.
Závěr ............................................................................................................................................. 27
7.
Použitá literatura .......................................................................................................................... 28
1.
Úvod
1.1. Motivace
Impuls k vytvoření systému pro kontrolu cviků v domácí péči se objevil ze strany fyzioterapeutů.
Pacient odchází po fyzioterapeutickém vyšetření s předepsanými cviky, které by měl pravidelně
vykonávat za „domácí úkol“. Odhodlání a vůle pacienta cvičit tyto cviky v domácím prostředí závisí
pouze na něm. Kontrola a zhodnocení domácího cvičení ze strany fyzioterapeuta se uskuteční pouze
na další prohlídce, při otázce, zdalipak pacient doma cvičil.
Celý projekt Fit Me má za úkol vnést kontrolní mezičlánek v čase mezi jednotlivými návštěvami
fyzioterapeuta, tedy poskytnout pacientovi i fyzioterapeutovi kontrolu domácích cviků. Ze strany
pacienta je to kontrola, zdalipak provádí cvičení správně a v předepsaném množství. Fyzioterapeut
může kontrolovat plán, který pacientovi předepsal.
S rozvojem počítačových her a herních konzolí přišla firma Microsoft v roce 2010 s cenově dostupnou
hloubkovou kamerou Kinect, která dokáže snímat postavu člověka. Na základě rešerše jsme se
rozhodli použít tuto kameru na kontrolu cviků u pacientů v domácím prostředí.
Projekt si v žádném případě neklada za cíl nahradit návštěvy u fyzioterapeuta, pouze poskytuje další
možnost, jak zvýšit pacientovo odhodlání.
1.2. Popis zadání
V listopadu roku 2010[1] se na trhu s herními konzolemi objevuje senzor Kinect, sloužící k ovládání
her konzole XBOX 360, tento výrobek společnosti Microsoft přináší nový způsob ovládání her.
Pomocí kamery Kinect se hra ovládat pouze pohyby lidského těla. V pozadí této skutečnosti je
zřetelné snímání obrazu, detekce lidské postavy a vyhodnocování pohybů v trojrozměrném prostoru.
Kinect je tedy možno použít k tvorbě biomedicínských aplikací zabývající se snímáním 3D prostoru.
Tato parciální část projektu se zabývá hardwarovým vybavením kamery Kinect, přenosem,
zpracováním a vyhodnocením dat v počítači. Tato data jsou zpracovávána pomocí knihovny Kinect
SDK, která je použita k vytvoření funkční aplikace shrnující možnosti použití kamery Kinect pro
snímání objektů (především lidské postavy) v trojrozměrném prostoru.
2.
Způsoby snímání pohybu
Snímání pohybu nachází svá uplatnění především ve filmovém a herním průmyslu, což je též hnací
motor nových technologií. Jedním z největších úspěchů snímání pohybu pro filmové účely je snímek
Avatar(obr. 1) z konce roku 2009, tato technologie umožnila téměř každý film natočit ve 3D. Další
uplatnění snímání pohybu nacházíme též v zábavním průmyslu a to při tvorbě realističtějších
počítačových her, mimo zábavní průmysl nachází snímání pohybu uplatnění v zoologii, ale především
ve sportovní biomechanice, potažmo medicíně. Existují metody velmi přesné, drahé a náročné,
například metody optické. Dále metody pro domácí použití, kterých se hojně využívá při hraní
konzolových her.
Obrázek 1: Detail senzorů pro snímání 3D pohybu (a). Herecký výkon pro film Avatar s nalepenými senzory(b).
Vymodelovaný snímek dle předchozího obrázku(c).[2]
2.1. Zařízení pro přesné snímání pohybu
Při vyšších nárocích na přesnost se výlučně používají optické metody snímání pohybu. Sledovaný
objekt je redukován na množství značek (markerů), které jsou vhodným způsobem umístěny na
objekt. Tyto značky jsou sledovány minimálně dvěma kamerami. V praxi je těchto kamer kolem 20[3].
Každá kamera snímá objekt z jiného úhlu a vidí jiné rozložení markerů ve dvourozměrném prostoru,
který je kamera schopná zachytit. Díky znalosti rozložení kamer vůči sobě je možno dopočítat
umístění markerů v prostoru z jednotlivých dvourozměrných snímků kamer. Tato metoda
triangulace[4] funguje na podobném principu jako vnímání trojrozměrného prostoru očima.
Důvodem velkého množství kamer je nutnost vidět každý marker v každém okamžiku, alespoň dvěma
kamerami. Při zvyšování počtu kamer se zvyšuje potřebný výpočetní výkon na zpracování veškerého
obrazu, což se zásadně promítne na ceně takového systému.
Markery jsou kuličky o průměru od 3 do 40 mm[3]. Nejmenší značky velikosti 3 mm je možno nalepit i
na obličej, či oční víčka a snímat tak obličejová gesta. Přesnost takovýchto systémů je přibližně
0,5 mm [3]. Kamery zachycují především infračervené záření, které markery odrážejí. Odlišit tedy
marker od ostatních objektů je velice snadné. Kompletní systémy pro zachycení pohybu s pasivními
značkami nabízejí například společnosti VICON[3], či Natur Point [5]. Ceny se pohybují v řádu
desetitisíců amerických dolarů [3].Další nevýhody, kterými jsou obtěžkány optické systémy využívající
markery, jsou prostorová náročnost celého systému a nutnost pohybu sledovaného objektu pouze ve
vymezeném prostoru kamer.
Kromě systémů s pasivními značkami existují systémy, jejichž markery aktivně vyzařují infračervené
záření. Výhoda těchto systémů tkví především v intenzitě používaného záření. Při nutnosti odrazu
záření od markeru klesá intenzita na dvojnásobné vzdálenosti, zatímco aktivní markery musí svítit
pouze ke kameře. Nevýhodou je nutnost napájení markerů, tedy přítomnost rozvodů a zdroje na
sledovaném objektu. Jedním z výrobců systémů s aktivními markery je společnost Lutz Mechatronic
Technology e.U [6].
Ke snímání pohybu v trojrozměrném prostoru se též využívají akcelerometry, které jsou schopné
zachytit zrychlení ve všech třech osách možného pohybu. Velkou výhodou takového systému na
rozdíl od systémů optických je absence množství kamer a nenáročné podmínky na prostorové
uspořádání scény, kde se objekt pohybuje. Senzory jsou umístěny přímo na objektu a bezdrátově
přenášejí data, která jsou následně zpracovávána a vyhodnocena. Uspořádání prostoru, ve kterém se
objekt pohybuje, je omezeno pouze dosahem a citlivostí bezdrátové komunikace. I přes vysokou
kvalitu a citlivost akcelerometrů, není zatím možné přesně vypočítat pozici akcelerometru ze
známých hodnot zrychlení pro jednotlivé osy v čase. Nízká přesnost je hlavní nevýhodou
akcelerometrických systémů snímajících pohyb v trojrozměrném prostoru. Přesnost je snížena při
prudkých pohybech, či skocích kdy akcelerometry nejsou schopny zachytit celou trajektorii. Tato
nevýhoda se kompenzuje trasováním těla pomocí optických či ultrazvukových metod, čímž se ztrácí
hlavní výhoda akcelerometrických systémů, kterouž je relativní nezávislost na sledovaném prostředí.
Jedním z výrobců takovýchto kombinovaných zařízení je společnost Animazoo[7].
Především optické systémy disponují vysokou přesností určení polohy objektu v prostoru. Díky jejich
ceně, která se pohybuje v řádu milionů korun, jsou určeny pro využití ve velkých organizacích a
průmyslu, jako je například průmysl herní, či filmový. Náklady na filmy nemálo kdy přesahují částku
stovek milionů dolarů. V medicíně se snímání trojrozměrného pohybu používá především
k hodnocení pohybů člověka.
Použití optických nebo akcelerometrických systému v domácím použití, pro pacienta je tedy věc
neuskutečnitelná.
2.2. Snímání pohybu ovladače u herních konzolí
Počítačové hry se v drtivé většině případů ovládají běžnými vstupními zařízeními jako je klávesnice a
myš. Ve snaze udělat realističtější a zábavnější herní zážitek se výrobci herních konzolí pokoušejí
vyrobit ovladač, který co nejvíce napodobuje skutečné dění ve hře. Japonská firma Nintendo v roce
2006[8] uvedla na trh novinku herní konzoli Wii a její ovladač Wii Remote.
Obr. 2: Ovladač Wii Remote Plus.[8]
Ovladač Wii Remote (Obr. 2) disponuje třemi akcelerometry, které jsou schopny zachytit pohyb ve
všech osách, dále kameru, díky které je možno dopočítat vzdálenost ovladače od senzoru (ten se
běžně umisťuje do blízkosti televize na které je promítán herní obraz). Ovladač také obsahuje
množství tlačítek. Díky akcelerometrům a kameře dokáže ovladač velice přesně snímat polohu a
pohyb ruky, která ovladač svírá. Senzor tedy snímá pouze ovladač a odvozuje z něj pohyby ruky,
případně celého těla. Hry se ve většině případů ovládají pohybem celé paže či mírnými pohyby
zápěstí. Nintendo vyvinulo speciální sadu her nazývající se Wii Sport. Jak už název napovídá, hry jsou
zaměřené pohybovou aktivitu hráče. Všechny využívají Wii Remote. S tímto ovladačem je možné hrát
hry, jako je tenis, box, baseball, bowling, či golf. Další sadou her vyvinutou Nintendem je Wii Fit,
ovladačem u takovýchto her je stabilometrická plošina nazývaná Wii Balance Board. Plošina obsahuje
4 tenzometry[8], které měří rozložení hmotnosti na plošině. Díky tomu je možné hrát především
balanční hry a sledovat případné úbytky hmotnosti. Díky své relativně nízké ceně se stabilometrická
plošina využívá též ve zdravotnictví, především pro kontrolu chůze, či při léčení poruch rovnováhy [9]
Obr. 3: Ovladač Balance Board[8]
Konzole Wii nabízí herní zážitek, který se díky svým ovladačům velice přibližuje realitě. S ovladačem
Wii Remote je možné hrát hry pomocí pohybů ruky, nevýhodou je nutnost neustálého držení
ovladače. Stabilometrická plošina Wii Balance Board omezuje hráče pouze na vymezený prostor
pohybu.
Japonská společnost SONY, vyrábějící herní konzole PlayStation, nabízí svým fanouškům obdobný
senzor pro snímání polohy v prostoru. Principem senzoru PlayStation Move (Obr 4), je barevně svítící
koule na konci ovladače, který se drží v ruce. Tato barevná koule přizpůsobí barvu svého světla tak,
aby byla co nejkontrastnější s okolím. Díky tomu je možné jí zachytit a analyzovat pomocí
dvourozměrné kamery, nazývající se PlayStation Eye. Sleduje se tedy bod v prostoru a je tedy nutné
aby analyzující kamera nebyl zakryta.
Obr 4: Ovladač PlayStation Move
2.3. Snímání pohybu pomocí hloubkové kamery Kinect
Tato práce se zabývá senzorem Kinect, který se používá především k ovládání her na konzolích XBOX
360 vyvíjených americkou společností Microsoft.
2.3.1. Princip ovládání her pomocí konzole Kinect
Ovladač Kinect se umístí v blízkosti obrazovky na které je hra promítána. Toto umístění je podobné
jako u snímacího čidla konzole Wii. Kinect snímá svými kamerami prostor vymezený pro ovládání hry.
Ovladačem je ve skutečnosti postava člověka hrajícího hru. Hráč již nepotřebuje žádné další ovládací
prvky, či plošiny. Pro ovládání hry postačí být pouze v zorném poli Kinectu. Pomocí pohybů rukou,
výskoky, náklony, atd., je ovládána herní postava, na kterou se přenášejí pohyby skutečného hráče.
Kinect dokáže sledovat i 2 hráče aktivní hráče najednou.
2.3.2. Hardware hloubkové kamery Kinect
Metoda a systém pro zachycení a zpracování trojrozměrného prostoru, která se používá v zařízení
Kinect je patentově chráněna [10].
Obr. 5: Senzor Kinect.(a) generátor IR záření. (b)RGB kamera, (c)loubková kamera(IR Senzor)
Na obrázku Obr. 5 je zobrazen ovladač Kinect. Skládá se z RGB kamery o VGA rozlišení, která přenáší
obraz, jako běžná web kamera. Na Kinectu je dále možné spatřit zdroj infračerveného záření, který se
nalézá vlevo. A senzor určený k detekci infračerveného záření, který je zcela vpravo. Kinect dále
disponuje motorem, který je schopný zvýšit zorné vertikální zorné pole a audiomikrofonem, který
zachycuje zvuk a případné povely při hraní rozličných her. Mikrofon ani motor není
v implementovaném softwaru použit.
Rozpoznávání objektů v obraze pomocí standardní dvourozměrné kamery funguje na principu
detekce různobarevných objektů. K odlišení lidské postavy od okolního prostředí je tedy nutná
barevná rozličnost, tohoto jevu se využívá především ve filmovém průmyslu za pomoci zeleného, či
modrého plátna a následné dokreslení pozadí za natáčený objekt.
Obr. 6: Vyhodnocování objektu na základě RGB a hloubkového obrazu
Kinect používá k vyhodnocení objektů v prostoru naprosto odlišného principu. Za pomocí
emitovaného infračerveného záření, které se odráží od objektů a je zachycováno CMOS senzorem je
možné podle doby letu infračerveného záření vypočítat vzdálenost objektů nalézajících se v zorném
poli kamery. Tento princip je obdobný principu sonaru. Díky vlastnímu generátoru infračerveného
záření není snímání objektů v prostoru závislé na světelných a barevných podmínkách snímané scény.
Kinect může fungovat i v absolutní tmě. Díky tomuto principu může Kinect sledovat hloubkové
rozložení obrazu s rozlišením 640 na 480 bodů s frekvencí 30 Hz, což je běžná frekvence komerčně
využívaných kamer. Tento kmitočet je naprosto dostačující vzhledem ke schopnostem lidského oka.
Přesnost s jakou Kinect určuje vzdálenost objektů, závisí na vzdálenosti, ve které se objekt nachází.
V herní zóně, která je dle oficiálního návodu minimálně 1,8 m od senzoru, je přesnost kolem 1 cm
[11].
Obr. 7: Zjednodušený princip zpracování hloubkového obrazu pomocí Kinectu[11].
Senzor snímá odražené paprsky od objektů v prostoru. Pokud se paprsek od objektu neodrazí, senzor
vyhodnotí místo s nulovou vzdáleností, tedy naprosto černé. Takovéto chyby vznikají na přechodech
předmětů a ve velkých vzdálenostech. Jelikož se Kinect používá k zachycení lidské postavy, není tato
nedokonalost rozhodující pro kvalitu vyhodnocování snímků.
Obr. 8 : Hardwarové uspořádání vnitřku Kinectu [12]
Hardwarové uspořádání vnitřku Kinectu popisuje Obr. 8. Vnitřní čip PS1080 od společnosti
PrimeSence, která pod taktovkou Microsoftu celý senzor vyvíjela, zpracovává signál z CMOS senzoru
a signál z generátoru infračerveného záření. Vyhodnocuje tak změny v časovém posunu
infračerveného záření a utváří z nich trojrozměrný snímek prostoru. Jedním z výstupu z čipu je 11
bitová informace (tedy 2048 odstínů šedi) o hloubce (vzdálenosti od senzoru) každého z 307 200 (640
x 480) bodů v prostoru[11]. Vnitřní čip rovnou zpracovává informaci o hloubkovém rozložení prostoru
a detekuje případné postavy. Jak již bylo řečeno dříve, detekuje je na základě hloubkové mapy,
nezáleží tedy na barevném či světelném uspořádání scény. Kinect se tedy dá „zmást“ lidskou
figurínou, či (ne)vhodně uspořádaným nábytkem v místnosti (Obr. 9).
Obr. 9: Špatné vyhodnocení prostředí Kinectem. Křeslo je zde zaměněno za lidskou postavu.
Kinect je připojený ke konzoli XBOX 360 pomocí USB portu. Jelikož výkonové nároky Kinectu
překračují maximální možný příkon z USB má Kinect vlastní napájecí zdroj, je tedy nutné ho zapojit do
zásuvky.
3.
Použití hloubkové kamery pro snímání pohybu
Tato kapitola se zabývá použitím hloubkové kamery Kinect pro snímání pohybu. Je zde definována
testovací úloha, která slouží k otestování funkcí kamery Kinect. V dalších podkapitolách jsou popsány
způsoby získávání dat z kamery. Závěr kapitoly je věnován klasifikaci a rozlišení jednotlivých pohybů
pro účely testovací aplikace
3.1. Definice měřených pohybů
Pro experimentální účely byla vytvořena aplikace Fit Me – DOD, která zábavnou formou nastiňuje
možnosti detekce lidské postavy a analýzy pohybů pomocí senzoru Kinect.
Jednoúčelová aplikace Fit Me – DOD je určena především k prezentaci a otestování možností Kinectu
připojeného k PC s přihlédnutím na budoucnost celého projektu Fit Me, kterouž je domácí kontrola
předem nadefinovaných cviků.
Semaforová abeceda je způsob dorozumívání využívaný v minulosti především k námořní
komunikaci. Osoba, která zprávu odesílá, stojí čelem k příjemci a změnou polohy horních končetin
odesílá jeden z obecně známých, nadefinovaných signálů. Pro účely Fit Me – DOD byly některé
signály upraveny (signál pro omyl) a jiné přidány (například signál pro zrušení celé zprávy). Aplikace
Fit Me – DOD má za úkol snímat odesílatele zprávy a vyhodnocovat znaky, které jsou pomocí horních
končetin vysílány. Signály pro účely aplikace jsou na Obr. 10.
Obr. 10: Semaforová abeceda. Znaky mezera a smazat vše byly vymyšleny pro účely aplikace.
3.2. Získání obrazových dat
Hloubková kamera Kinect je připojena k počítači pomocí USB konektoru. Nalezený hardware vyžaduje
instalaci ovladačů dostupných z oficiální stránek [13]. ,
Obrazová data RGB kamery jsou získávána ve VGA rozlišení, každý pixel je reprezentován trojicí bajtů,
které nesou informaci o zastoupení jedné z barevných složek. Obr. 11 (a) představuje výstup z RGB
kamery.
Hloubková mapa je reprezentovaná maticí o stejném rozlišení (640 x 480), jednotlivé pixely nesou
informaci vzdálenosti objektu od senzoru. Vzdálenost je reprezentována jedenácti bitovým
číslem[14]. Hloubková mapa je zobrazena na Obr. 11 (b).
Obr. 11: Výstup z RGB kamery (a), stejný snímek z hloubkové kamery (b)
Pokud je detekována lidská postava stojící před senzorem je možné z Kinectu získat data, která
definují tuto postavu pomocí skeletálního modelu. Tento model zjednodušuje lidské tělo na 20
kloubů. Hloubková kamera posílá informaci o souřadnicích každého kloubu v kartézském souřadném
systému s počátkem u senzoru kamery. Klouby a jejich rozmístění je popsáno na následujícím Obr.
12.
Obr. 12:Pozice detekovaných kloubů na lidském těle
3.3. Identifikace a nalezení lidské postavy
Nalezení lidské postavy probíhá na stejném čipu, jako zpracování dat z hloubkového senzoru a
emitoru IR záření [11]. Postava je detekována z hloubkové mapy, tedy o vzdálenosti jednotlivých
bodů od senzoru. Data určená ke zpracování jsou soubor pixelů, na kterých se nachází lidská postava
(Obr. 13 (a)) a model lidské postavy reprezentovaný 20 klouby, tyto klouby jsou shrnuty na Obr. 12.
Kinect dokáže aktivně sledovat více lidských postav, každé přiřadí jiný index, který uchová do doby,
než postava zmizí ze scény. Po návratu je pochopitelně postava indexována jinak (Kinect neví, že to je
ten, kdo před chvílí odešel). Zobrazení postav je možné vidět na Obr. 13 (b).
Obr. 13: Nalezené postavy jsou zvýrazněny v hloubkové mapě (a). Skeletální model obou postav (b).
3.4. Výpočet fyziologických parametrů postav
V kapitole 3.1 je popsána aplikace umožňujíc pomocí pohybů rukou napsat příslušné písmeno (signál)
semaforové abecedy.
Signál je definován pomocí úhlu, který svírá imaginární neutrální svislá osa y, která v každém
okamžiku prochází ramením kloubem a přímka s jedním bodem v ramením kloubu druhým bodem
v kloubu loketním, takto popsaný úhel je na Obr. 14. Další podmínkou pro „psaní“ písmen je úhel,
který svírá zápěstí, kloub ramenní a kloub loketní. Tento úhel musí být minimálně 80 stupňů.
Obr. 14: Signál je definován pomocí imaginární vertikální osy procházející ramenním kloubem (červeně) a přímkou
tvořenou bodem ramenního a loketního kloubu stejné končetiny (naznačena žlutě).
3.5. Klasifikace pohybů
Úhel pro každý signál a končetinu je definován v rozmezí od 0 do 360. Podrobnější vysvětlení směru a
odčítání úhlů popisuje následující Obr. 15.
Obr. 15: Odčítání úhlů pro obě končetiny. V tomto případě neutrální imaginární osa prochází středem a je pro obě
končetiny stejná. Signál, který panáček demonstruje, odpovídá signálu pro písmeno R.
Úhly pro každý signál mají přesně danou hodnotu. Je však téměř nemožné, aby člověk obě končetiny
srovnal na dobu dvou sekund (doba potřebná k napsání signálu) přesně do úhlů stanoveného signálu.
Metodou nejmenších čtverců je vypočítán signál, který se aktuální pozici přibližuje nejvíce. Tato
metoda zajišťuje, že je neustále nějaký signál vyhodnocen jako aktuální. Problém, který tato metoda
přináší je vyhodnocování úhlu při zdvižených končetinách. Úhel v maximální horní poloze může být
vyhodnocen jako 0, či 360 stupňů. Pokud končetina dosahuje úhlu 359°, je tento úhel bez přidaného
ošetření vyhodnocen jako nejvzdálenější od úhlu 0°. Tento nedostatek je kompenzován speciálními
podmínkami pro signály definované za pomoci úhlů o hodnotě 0°, takto je dosaženo předpokládané
funkčnosti a úhly 1° a 359° jsou vyhodnoceny jako stejně vzdálené od 0°.
4.
Implementace
Výše zmíněný software byl vytvořen pro platformu .NET. V následujících kapitolách jsou shrnuty
důvody tohoto rozhodnutí a popsány metody a algoritmy, které software používá. Na konci kapitoly
je ukázáno uživatelský interface naprogramované aplikace.
4.1. Použité technologie
Celý software je vyvíjený pro platformu .NET z důvodu výběrů ovladačů Kinect SDK (popsáno
v kapitole 4.2). Aplikace je tedy psána v moderním objektově orientovaném jazyku C#, který byl pro
platformu .NET stvořen. Grafické uživatelské prostředí je tvořeno ve Windows Presentation
Foundation (WPF), což umožňuje pohodlnou práci se zobrazováním dat a snadný návrh intuitivního a
přehledného uživatelského rozhraní.
Aplikace využívá databázový server Microsoft SQL server Compact 4.0. Přístup k datům je
zprostředkován pomocí Entity Frameworku (EF). V této aplikaci je takovéto komfortní řešení přístupu
k datům pravděpodobně zbytečné, jelikož databáze obsahuje pouze jedinou tabulku se čtyřmi
sloupci. V budoucích aplikacích projektu Fit Me se však počítá s rozsáhlou databázovou strukturou,
kde určitě EF najde své uplatnění.
4.2. Ovladače pro komunikaci s hloubkovou kamerou Kinect
Po uveřejnění Kinectu v listopadu roku 2010 začala neoficiální soutěž o vytvoření ovladačů, které by
byly schopné zprostředkovat data pocházející ze senzorů Kinectu. Tyto ovladače byly vytvořeny do
jednoho týdne od uvedení Kinectu na trh [15]. Po více než roce je na „trhu“ možné stáhnout různé
druhy ovladačů pracujících na různých platformách. Například OpenKinect[16], OpenNI[17], Kinect
SDK [13]. Ovladače OpenNI a OpenKinect jsou ovladače s volně dostupnými zdrojovými kódy.
Poslední zmínění ovladač byl oficiálně vydán společností Microsoft a je dostupný pro platformu .NET.
Po vyzkoušení různých druhů ovladačů bylo rozhodnuto použít oficiální ovladače Kinect SDK, které
nabízejí lehkou instalaci a snadné zpracování příchozích informací. Nevýhodou může být použití
pouze na jedné platformě. Veškerý software, který byl k práci vyvinut, funguje pouze v systémech
MS Windows.
Minimální požadavky na hardware počítače pro připojení senzoru Kinect jsou 2GB operační paměti a
dvoujádrový procesor s frekvencí 2,66 GHz[13]. Vyvíjený software byl však tvořen a testován na
počítači s dvoujádrovým procesorem o frekvenci 2,1GHz a nebyly zaznamenány žádné nedostatky.
4.3. Použití knihovny MS Kinect SDK
Knihovna plynoucí z ovladačů Kinect SDK umožňuje pohodlný přístup k datům, přicházejících
z Kinectu. Tato data jsou zpracovávána metodami, které jsou volány v případě nového snímku.
Takováto událost se děje přibližně 30 krát za vteřinu.
Metoda zpracovávající obraz z RGB kamery se nazývá nui_ColorFrameReady
a jejím úkolem je příchozí data zpracovat jako zdroj komponenty Image, která zobrazuje snímaný
obraz.
Data z hloubkového senzoru jsou zpracovány v metodě nui_DepthFrameReady. Jedenácti bitová data
pocházející ze senzoru jsou zkonvertována do podoby barevného obrázku se stejnou hodnotou všech
parciálních složek, vzniká tak tedy šedotónový obrázek, který je možno zobrazit obdobně jako
v metodě nui_ColorFrameReady. Dalším důvodem převodu do barevného formátu je zobrazení
postavy v hloubkové mapě. Postava se zobrazuje v barvách, jak je možné vidět na Obr. 13 (a).
Metoda nui_SkeletonFrameReady je volána při příchodu nového snímku zachycujícího detekované
postavy. Metoda prochází foreach cyklem všechny detekované postavy a předem nadefinovanou
barvou vytváří skeletální model postavy (Obr. 13 (b)).
Pomocné metody getBodySegment a getDisplayPosition zajišťují správné uspořádání modelu pro
jeho zobrazení v komponentě Canvas .
4.4. Algoritmy vyhodnocující semaforovou abecedu
Metody zodpovědné za detekci signálů jsou implementovány v třídách MathForSignals SignalFinder.
Třída MathForSignals obsahuje metodu pro kontrolu natažení rukou (AreHandsStraight) jejímž
výstupem je bool. A soubor kaskádovitě uspořádaných metod pro výpočet úhlu natažené paže
vzhledem k neutrální ose. Výpočetní algoritmus začíná na metodě CoumputeAngleInAllCircle, která
volá metodu CoumputeAngle. Tato metoda si s pomocí dalších metod (ComputeDistances,
CouputeDistance)vytvoří imaginární trojúhelník z příchozích pozic kloubů a pomocí Kosinovi věty
vypočítá
úhel
nacházející
se
u
ramenního
kloubu.
Dále
třída
obsahuje
metodu
ComputeQuadraticDeviationForTwoHands pro výpočet kvadratické odchylky.
Metody ze třídy MathForSignals jsou volány především ve třídě SignalFinder, která obsahuje metodu
FindNearestSignal. Tato metoda vytváří imaginární osu a pomocí volání metod třídy MathForSignal
nachází nejvíce podobající se signál, který zaujímá detekovaná postava.
Metody jsou napsány obecně a budou použity při zpracování cviků v budoucích aplikacích projektu
Fit Me.
Aplikace pracuje s databází, ve které jsou definované jednotlivé signály, tyto signály jsou načteny do
operační paměti při spuštění aplikace. K databázi se přistupuje pouze v případě definice nových, či
úpravy starých signálů a to přes okno a třídu DefinitionOfSignals.
4.5. Uživatelský inteface
Aplikace Fit Me - DOD má jednoduché uživatelské prostředí, které zobrazuje RGB i hloubkovou mapu,
skeletální model detekované postavy, písmena semaforové abecedy, statusbar pro kontrolu stavu
psaní, napsaný text, prostor pro aktuální písmeno a tlačítko pro přístup k definicím signálů. Celé GUI
je na Obr. 16.
Obr. 16: GUI aplikace Fit Me - DOD
Po kliku na tlačítko Definice Signálů umístěné v pravém dolním rohu se zobrazí okno s definicí signálů
(Obr. 17).
Obr. 17: GUI okna DefinitionOfSignals
5.
Použití softwaru
Část vytvořeného softwaru byla použita k změření přesnosti hloubkové kamery Kinect. Aplikace Fit
Me – DOD byla použita k prezentaci na dni otevřených dveří FBMI.
5.1. Měření přesnosti hloubkové kamery Kinect
Jedním z parciálních výstupů je změření přesnosti určování vzdálenosti pomocí hloubkové kamery
Kinect. Tento experiment byl prováděn s ovladači OpenKinect. Při použití ovladačů Kinect SDK nemá
toto měření praktické uplatnění, jelikož podobná křivka, která z měření vznikla je již v Kinect SDK
implementována.
Toto měření má pouze informativní charakter o přesnosti určování hloubky v závislosti na vzdálenosti
měřeného předmětu. Křivka z měření je v grafu 1.
1200
Hodnota vzdálenosti
1000
800
600
400
200
0
0
200
400
600
800
1000
vzdálenost objektu (cm)
Graf 1: Naměřené hodnoty vzdáleností v závislosti na vzdálenosti
Z křivky je patrný tangenciální průběh. Přesnost vyhodnocení vzdálenosti je největší při nejmenších
vzdálenostech. Ve vzdálenosti přibližně 180 cm je rozlišení 1 cm, tento údaj odpovídá hodnotě
z článku [11].
5.2. Prezentace aplikace na dni otevřených dveří
Na dni otevřených dveřích FBMI dne 25. listopadu 2011 byla prezentována fungující aplikace Fit Me –
DOD. Účastníci si mohli vyzkoušet psát, či mazat text pomocí semaforové abecedy.
Obr. 18: Ukázka využití aplikace Fit Me - DOD na dnu otevřených dveří 25. listopadu 2011. Senzor Kinect se nachází pod
plátnem.
6.
Závěr
Hloubková kamera Kinect slouží primárně k ovládání her na konzoli XBOX 360. Kinect dokáže snímat
objekty v trojrozměrném prostoru pomocí hloubkové mapy, kterou vytváří z odrazu IR záření.
Kameru je možné připojit k počítači pomocí USB rozhraní. Získaná data lze pomocí Kinect SDK
knihovny zpracovávat a vyhodnocovat.
Jako součást práce bylo vytvořeno rozhraní v rámci aplikace Fit Me – DOD umožňující přijímat,
zpracovat a vyhodnocovat obraz z kamery. Tato aplikace je schopna detekovat lidskou postavu a
vykreslit její skeletální model. Tento model je navíc použit k tvorbě rozhraní umožňujícího psát text
pomocí semaforové abecedy (rozličné pohyby rukou) v rámci aplikace. Fit Me – DOD byla (a
pravděpodobně bude) použita k prezentaci na dni otevřených dveří.
Poznatky o hloubkové kameře Kinect a většina algoritmů zpracovávajících data a vyhodnocující
pohyb lidské postavy budou použity minimálně pro další aplikace v projektu Fit Me, který si do
budoucna klade za cíl vytvořit možnost kontroly cviků pacientů v domácím prostředí.
7.
Použitá literatura
[1]. Whitworth, Dan. Kinect gets UK release date. [Online] 17. srpen 2010. [Citace: 29. prosinec
2011.] http://www.bbc.co.uk/newsbeat/10996389.
[2]. Desowitz, Bill. Avatar: The Game Changer. Animation World Network. [Online] 21. prosinec 2009.
[Citace: 28. prosinec 2011.] http://www.awn.com/articles/visual-effects/avatar-game-changer.
[3]. Oficiální stránky společnosti VICON. [Online] VICON. [Citace: 28. prosinec 2011.]
http://www.vicon.com.
[4]. Milan Sonka, Vaclav Hlavac, Roger Boyle. Image Processing, Analysis, and Machine Vision - 3rd
Edition. místo neznámé : Thomson Learning, 2007. ISBN-13: 9780495082521.
*5+. Oficiální stránky společnosti Natur Point. *Online+ Natur Point, Inc. *Citace: 28. prosinec 2011.+
http://www.naturalpoint.com/optitrack/.
[6]. Oficiální webové stránky společnosti Lutz Mechatronic Technology e.U. [Online] [Citace: 28.
prosinec 2011.] http://www.lukotronic.com/en/.
[7]. Oficiální webové stránky společnosti Animazoo. [Online] Animazoo. [Citace: 28. prosinec 2011.]
http://www.animazoo.com.
[8]. Oficiální webové stránky společnosti Nintendo. [Online] Nintendo. http://www.nintendo.com.
[9]. Michael W. Kennedy, James P. Schmiedeler,Aaron D. Striegel,Charles R. Crowell,Michael
Villano ,Johan Kuitse. Enhanced Feedback in Balance Rehabilitation using the Nintendo Wii Balance
Board . [Online] 2011. [Citace: 29. prosinec 2011.]
http://80.ieeexplore.ieee.org.dialog.cvut.cz/stamp/stamp.jsp?tp=&arnumber=6026735.
[10]. Zalevsky, Zeev, a další. METHOD AND SYSTEM FOR OBJECT RECONSTRUCTION.
WO/2007/043036 19. duben 2007.
[11]. Carmody, Tim. How Motion Detection Works in Xbox Kinect. wired. [Online] 3. listopad 2010.
[Citace: 28. prosinec 2011.] http://www.wired.com/gadgetlab/2010/11/tonights-release-xboxkinect-how-does-it-work/.
[12]. Buchanan, Matt. The Mystery of Project Natal Revealed. gizmodo. *Online+ 31. březen 2010.
[Citace: 29. prosinec 2011.] http://gizmodo.com/5506395/the-mystery-of-project-natal-revealed.
[13]. Kinect for Windows. [Online] http://www.kinectforwindows.org.
[14]. Braue, David. Let's get physical: explaining how Kinect for Xbox works. apcmag. [Online] 11.
březen 2011. *Citace: 28. 12 2011.+ http://apcmag.com/lets-get-physical-explaining-how-kinect-forxbox-works.htm.
[15]. We have a winner – open kinect driver(s) released. [Online] 10. listopad 2010. [Citace: 28.
prosinec 2011.] http://www.adafruit.com/blog/2010/11/10/we-have-a-winner-open-kinect-driversreleased-winner-will-use-3k-for-more-hacking-plus-an-additional-2k-goes-to-the-eff/.
[16]. OpenKinect. [Online] http://openkinect.org.
[17]. OpenNI. [Online] http://openni.org/.

Podobné dokumenty

Workshop biomedicínského inženýrství a informatiky 2013. 2013

Workshop biomedicínského inženýrství a informatiky 2013. 2013 Tato práce se věnuje využití bezkontaktního ovládání počítače v asistivních technologiích. Zaměřuje se na použití hloubkové kamery ke snímání pohybů jazyka. Cílem této práce je vytvořit aplikaci, k...

Více

Metodika hodnocení funkčních činností a pracovního potenciálu

Metodika hodnocení funkčních činností a pracovního potenciálu WHO, která byla přepracována a přijata v roce 2001 pod názvem „International Classification of Functioning, Disability and Health“ (ICF) Byla přijata členskými státy WHO jako závazná. V roce 2000 s...

Více

-manual Take On Helicopters CZ_TOH

-manual Take On Helicopters CZ_TOH Výkon při běžné provozní hmotnosti (11 000 kg): · Maximální rychlost: 300 km/h (v nulové nadmořské výšce) · Maximální rychlost stoupání: 11,2 m/s

Více

Doc. MUDr. Olga Švestková, Ph.D.

Doc. MUDr. Olga Švestková, Ph.D. Předmět smlouvy: vymezení práv a povinností výše uvedených smluvních stran o poskytování služeb při posuzování zdravotního stavu fyzických osob a následné vydání lékařského posudku.

Více

Metodiky hodnocení psychosenzomotorického potenciálu člověka

Metodiky hodnocení psychosenzomotorického potenciálu člověka dlouhotrvající nebo trvalé následky v oblasti aktivit a participací, se již neřeší otázky rehabilitace. Individuálně je nezbytné indikovat vhodné prostředky rehabilitace, které jsou: rehabilitace v...

Více

SYSTÉM PRO SNÍMÁNÍ POHYBU PRSTŮ U PACIENTŮ S

SYSTÉM PRO SNÍMÁNÍ POHYBU PRSTŮ U PACIENTŮ S scéna, kde se zobrazují jak naměřené značky, tak kamery (viz Obrázek 6). Uživatel může nahrávat obraz, kalibrovat systém a zobrazit výsledky měření. Tlačítko „results“ spouští externí skript, který...

Více

Fyzioterapie po operaci mammy

Fyzioterapie po operaci mammy části nebo celého prsu a lymfatických uzlin v podpaží na straně operovaného prsu. Po chirurgickém výkonu v důsledku retraktivních změn může dojít k redukci mízního řečiště a vzniku lymfedému. Jizvy...

Více