Z-ANO - České vysoké učení technické v Praze
Transkript
Č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
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...
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...
-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
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.
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...
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ý...
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...