24
KINECT © szenzor intelligens terekben Önálló labor 2. Pálfalvi József BME VIK, Intelligens Rendszerek MSc szakirány e-mail: [email protected] Budapest, 2011.05.07 dr. Dobrowiecki Tadeusz egyetemi konzulens BME MIT

Pálfalvi Józsefaigroup.mit.bme.hu/system/files/onlab_feladat/2011/06/... · 2020-06-10 · Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Pálfalvi Józsefaigroup.mit.bme.hu/system/files/onlab_feladat/2011/06/... · 2020-06-10 · Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy

KINECT© szenzor intelligens terekben Önálló labor 2.

Pálfalvi József BME VIK, Intelligens Rendszerek MSc szakirány

e-mail: [email protected]

Budapest, 2011.05.07

dr. Dobrowiecki Tadeusz egyetemi konzulens

BME MIT

Page 2: Pálfalvi Józsefaigroup.mit.bme.hu/system/files/onlab_feladat/2011/06/... · 2020-06-10 · Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy

2

Tartalomjegyzék

TARTALOMJEGYZÉK ...................................................................................................................................... 2

1 BEVEZETŐ ........................................................................................................................................... 3

2 OPENNI ÉS NITE .................................................................................................................................. 4

2.1 MI AZ NI?.......................................................................................................................................... 4

2.2 MI AZ OPENNI? .................................................................................................................................. 4

2.3 HARDVER ÉS MIDDLEWARE KOMPONENSEK ................................................................................................ 5

2.4 PROGRAMOZHATÓSÁG .......................................................................................................................... 6

2.5 OPENNI ÉS A KINECT .......................................................................................................................... 7

2.6 MI A NITE? ....................................................................................................................................... 7

3 FELHASZNÁLÁSI LEHETŐSÉGEK ........................................................................................................... 8

3.1 ROBOTVEZÉRLÉS .................................................................................................................................. 8

3.2 AUGMENTED REALTY ............................................................................................................................ 9

3.3 ASSISTED AMBIENT LIVING, ACTIVITIES OF DAILY LIVING ............................................................................... 9

3.4 INTELLIGENS SZOBA (INTELLIGENS HÁZ) ................................................................................................... 10

3.5 BIZTONSÁGTECHNIKA .......................................................................................................................... 12

3.6 BIOMETRIA ....................................................................................................................................... 13

4 KINECT, MINT „BIOMETRIAI SZENZOR” ............................................................................................ 15

4.1 ÁLTALÁNOS ALKALMAZHATÓSÁG ........................................................................................................... 15

4.2 TAPASZTALATOK A SZENZORRAL ............................................................................................................. 16

5 LÉTEZŐ MEGOLDÁSOK, MEGKÖZELÍTÉSEK ........................................................................................ 19

5.1 OPENCV [9] ..................................................................................................................................... 19

5.2 BAYESI BECSLÉS AZ EMBERI TEST 3D-S MOZGÁSREKONSTRUKCIÓJÁHOZ [10] .................................................... 20

5.3 ORGANICMOTION [13]....................................................................................................................... 20

5.4 MÁS EGYETEMEKEN ............................................................................................................................ 20

6 KINCET TECHNIKAI SPECIFIKÁCIÓ, MŰKÖDÉS ................................................................................... 21

6.1 SZENZORRAL KIADOTT HIVATALOS PARAMÉTEREK [8] .................................................................................. 21

6.2 A SZENZOR MŰKÖDÉSE ........................................................................................................................ 22

7 KONKLÚZIÓ ....................................................................................................................................... 23

8 FORRÁSJEGYZÉK ............................................................................................................................... 24

Page 3: Pálfalvi Józsefaigroup.mit.bme.hu/system/files/onlab_feladat/2011/06/... · 2020-06-10 · Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy

3

1 Bevezető

A labor célja a 2010. november 10-én megjelent Microsoft KINECT szenzor, és a szenzor

segítségével megvalósítható problémák tanulmányozása. A szenzor egy RGB kamerával,

hangérzékelővel, és egy mélységtérképet szolgáltató IR kamerával és chippel van ellátva. Az integrált

megoldásnak köszönhetően egyszerűen lehet objektumokat (elsősorban emberi alakokat, arcokat,

végtagokat) azonosítani a 3D térben, és ez leegyszerűsíti a sok témakörben felmerülő problémát:

jellegzetes pontokat 3D térben azonosítani és követni.

Olyan alkalmazási területeket szeretnék megvizsgálni, ahol a szenzor speciális adottságait

kihasználva érdekes és innovatív feladatokat lehetne megoldani.

A szenzor tulajdonságait szem előtt tartva felmerülhet a robotvezérlés, kiterjesztett valóság

(augmented realty), biztonság technikai, vagy akár a biometriai felhasználás is.

Az alkalmazás feltétele a szenzor tesztelése. Elsősorban nem egy konkrét probléma

megoldhatóságát akarom megvizsgálni, hanem általános paramétereket tesztelni, amik

körülhatárolhatják a felhasználás lehetőségeit (hatótávolság, érzékenység, felbontás…).

Page 4: Pálfalvi Józsefaigroup.mit.bme.hu/system/files/onlab_feladat/2011/06/... · 2020-06-10 · Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy

4

2 OpenNI és NITE

Az ebben a fejezetben bemutatott technológiák hivatalos leírása és forrásai: [5, 6, 7]

2.1 Mi az NI?

Az NI (Natural Interaction) egy olyan elgondolás, ami az ember-gép interakciót elsősorban a

látásra és hallásra akarja alapozni. A koncepció szerint az olyan eszközök, mint a távirányító, egér

vagy billentyűzet szükségtelenek egy ember-gép interakcióhoz.

Alapvető céljai közé tartozik a hangfelismerés és hangvezérlés, kézjelek felismerése, vagy akár

a teljes emberi alakfelismerés, követés és interpretáció további felhasználásra.

2.2 Mi az OpenNI?

Az OpenNI egy cross-platform, több programozási nyelven elérhető (C, C++, C#, Java)

framework, ami API-kat szolgáltat az olyan alkalmazások készítéséhez, amik az NI (Natural

Interaction) alapelvekre épülnek.

Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy egységes

felületen lehessen kommunikálni a hardver elemekkel, amik „látnak és hallanak”, és a

szenzoradatokat feldolgozó middleware-rel. A middleware elemek olyan szoftverkomponensek, amik

a szenzorból érkező adatokat feldolgozzák, és olyan magasabb szintű információkat szolgáltatnak a

nyers adatokon felül, mint például egy felismert kézfej pozíciója a 3D térben.

Ez alapján tehát az OpenNI egy sor olyan API-t definiál, amit a hardvernek, vagy a

szoftverkomponensnek kell kielégítenie. Ezzel létrehozva egy egységes környezetet, ami lehetővé

teszi:

1. a hardver elemek egyszerű helyettesítését

2. több hardver egyszerre való használatát

3. szoftver komponensek újrafelhasználását, hordozhatóságát

Például, ha egy hardvergyártó implementálja egy eszközébenben az OpenNI interfészeket,

akkor ezzel biztosítja, hogy az OpenNI-t használó szoftverek az ő készüléküket is használni tudják,

gyakorlatilag szabványosan (ehhez persze minden hardvernek egy listát kell szolgáltatnia az elérhető

szolgáltatásokról).

Másik oldalról megközelítve pedig a szoftverfejlesztők olyan alkalmazásokat készíthetnek, amik

függetlenek a konkrét hardvertől (attól, hogy melyik hardverből jön az adat), csak a hardver

Page 5: Pálfalvi Józsefaigroup.mit.bme.hu/system/files/onlab_feladat/2011/06/... · 2020-06-10 · Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy

5

képességeit kell szem előtt tartani (lsd. előbb említett szolgáltatáslista), és függetlenek a middleware

komponensektől is.

A koncepciót a 2.1-es ábra mutatja be. A legalsó réteg reprezentálja a hardver réteget, ide

tartozik maga a KINECT eszköz is. A középső (zöld) réteg azokat a middleware alkalmazásokat jelöli,

amik kielégítik az OpenNI API-t és valamilyen hardverre támaszkodva magasabb szintű adatokat

szolgáltatnak (pl. nyers pixel adatok helyett egy kézfej pozícióját a térben). Az ezeket összekötő réteg

maga az OpenNI, mely ez által egy egységes interfészt kínál a legfelsőbb szinten elhelyezkedő

felhasználói alkalmazásnak.

A felhasználói alkalmazásnak ez által egyidejűleg lehetősége van:

1. Middleware által kinyert információ felhasználására.

2. Nyers hardver adatok felhasználására.

3. Az OpenNI funkcionalitásait használni az előbbi két ponton.

4. Más API-kat (pl. OpenCV) használni bármelyik előbbi pontban leírt információforrással.

2.1 ábra: OpenNI architektúra (forrás: OpenNI dokumentáció, [5])

2.3 Hardver és middleware komponensek

Az OpenNI által támogatott és menedzselt hardver komponensek:

3D érzékelő (mélységtérkép)

RGB kamera

IR kamera

Audio eszköz

Az OpenNI által támogatott és menedzselt middleware komponensek:

Page 6: Pálfalvi Józsefaigroup.mit.bme.hu/system/files/onlab_feladat/2011/06/... · 2020-06-10 · Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy

6

Teljes emberalak analizátor: emberi alakot felismerő, és általában szkeleton (csontváz)

adatokat visszaadó komponens.

2.2 ábra: Emberalak analizátor (szkeleton) példaalkalmazás (forrás: OpenNI demo, [5])

Kézfej felismerő: olyan komponens mely analizálja a színtere, és a kézfej pozícióját

követi.

Gesztus értelmező :olyan komponens, mely előre definiált gesztusokat,

gesztusszekvenciákat (pl. integető mozdulat) képes felismerni.

Színtér analizáló: analizálja az egész 3D színteret, meghatározva az föld síkját.

Azonosítja és követi a mozgó objektumokat (leválasztja a „hátteret” és az

„objektumokat”).

A fenti komponenseket képes az OpenNI kezelni, és ezekhez biztosít rengeteg funkciót, kezdve

a komponensek menedzselésétől és paraméterezésétől, a tényleges adatok kinyerésén át, a

komponensek képességeinek analíziséig.

Az OpenNI-vel és KINECT-tel szabadon felhasználható és a fenti funkciókat biztosító

middleware a PrimeSense NITE megoldása.

2.4 Programozhatóság

Az API elérhető C, C++ nyelven, és egy még fejlesztés alatt áll, de már tesztelhető a C# és Java

API is. A programozáshoz megfontolandó, hogy a későbbiekben akarjuk-e az alkalmazást kombinálni

valamilyen másik API-val, például az OpenCV-vel (Open Computer Vision), amely rengeteg plusz

funkciót tenne elérhetővé. Mindkét API támogatja a C++ programnyelvet és dokumentált. Mivel a

KINECT szolgáltat színes képet is, ezért az felhasználható az OpenCV által is.

Page 7: Pálfalvi Józsefaigroup.mit.bme.hu/system/files/onlab_feladat/2011/06/... · 2020-06-10 · Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy

7

2.5 OpenNI és a KINECT

Az OpenNI interfész bármilyen, az interfészt implementáló hardvert és drivert képes kezelni.

Ezzel tehát az eszköz helyettesíthető egyszerűbb, költséghatékonyabb megoldásokkal, amik például

csak egy mélység térképet generáló kamerával vannak ellátva, mellőzve az RGB kamerát, a

mozgatómotort és a hangérzékelőket.

Ezt azért célszerű szem előtt tartani, mivel a KINECT elsősorban a szórakoztató ipar számára

készült (Xbox360 játékkonzolhoz: http://productcatalog.xbox.com/hu-HU/), és nem ipari

felhasználáshoz. Így kevésbé költséghatékony, illetve a kialakítása is alkalmatlanná teszi például külső

terekben való alkalmazásra.

Az OpenNI továbbá támogatja több hardver egyidejű, akár szinkronizált használatát. Ezzel

könnyen kialakítható egy multi-szenzoros rendszer, mely több szemszögből figyeli meg a színteret,

akár több különböző forrást (IR, RGB, 3D) kombinálva.

2.6 Mi a NITE?

A NITE a Natural Interacion Technology for End-user kifejezésből ered, ami az OpenNI-t

használó egyik legelső szabadon felhasználható middleware komponens. Célja a nyers 3D adatokból

használható információkat kinyerni, ahhoz hasonlóan, ahogy az ember is teszi. A NITE-ban egyszerre

megtalálhatók olyan eljárások, melyek segítségével egyszerűbbé válik a 3D térben a pontok, alakok

követése, és számos funkciót (API) szolgáltat NI felhasználói felületek készítéséhez.

Alapvetően két fontos területtel foglalkozik:

1. kéz (kézfej) követés

2. teljes alak (szkeleton) követés

A kézfej követés két alapállapotból áll: fókusz mozdulat és vezérlő mozdulat követés. A fókusz

mozdulatok lényege, hogy ezek segítéségével lehet a NITE rendszerben a vezérlést „átvenni”, vagy a

vezérlést elkezdeni. Lényege, hogy a szenzor látóterében álló ember valamilyen jellegzetes

kézmozdulatot végez (integetés, kéz felemelés), aminek hatására a vezérlést a mozdulatot végző kéz

(és a hozzá tartozó ember alak) kapja meg. A vezérlő mozdulatokhoz akármilyen egyéb mozdulat

(vagy mozdulatos orozat) tartozhat.

A teljes test követés lényege, hogy a nyers mélységtérkép adatokból a NITE rendszer egy

szekeltont hoz létre a látótérben tartózkodó alakokhoz. Ez által a felhasználói programoknak nem kell

az alacsonyszintű adatokat feldolgozni, hanem egy könnyen kezelhető, végtag és csuklópontokból

álló csontvázat kapnak meg.

Az algoritmusok között megtalálható még a környezet (scene) detektálás is, mely az előző két

követési algoritmusnak az alapja. Ez határozza meg az érzékelt világ síkját („föld”) és szeparálja a

háttér objektumokat az előtér objektumoktól (ember alakok).

Page 8: Pálfalvi Józsefaigroup.mit.bme.hu/system/files/onlab_feladat/2011/06/... · 2020-06-10 · Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy

8

3 Felhasználási lehetőségek

Ebben a fejezetben gyűjtöttem össze azokat a felhasználási lehetőségeket, amikkel elsősorban

a KINECT, az OpenNI és a NITE nyújtotta előnyöket (egyszerű alakfelismerés és követés, kézfej-

követés, gesztus felismerés) lehetne kiaknázni.

3.1 Robotvezérlés

3.1.1 Közvetlen vezérlés (Teleoperation)

A robotok közvetlen vezérlése egy KINECT által megfigyelt emberalak által. A szoftverből

érkező jeleket a robotkarok vagy robotok közvetlenül végrehajtják. Lényegében az emberi végtagok

csuklói illeszkednek a robotkar vagy robot csuklóihoz, és azok szinkronban mozognak az emberrel.

Ezzel olyan gépeket lehet készíteni, melyek veszélyes környezetben (pl. sugárzás, elérhetetlen

helyek) is könnyen, precízen irányíthatók, minden külső beavatkozó periféria (joystick, billentyűzet)

nélkül.

Érdekes projektek:

Robot felsőtest: http://kinecthacks.net/irobot-icub-humanoid-robot-kinect/

Teljes robot irányítás: http://kinecthacks.net/teleoperation-of-humanoid-robot-using-

kinect/

A potenciál abban van, hogy a mozgás sokkal természetesebb, és ez által jobban irányítható a

robot. Hátránya, hogy az emberi csuklópontok korlátozzák a robotot. Egyes robotkarok akár 27

szabadsági fokkal rendelkeznek, amit nem lehetne így irányítani.

3.1.2 Autonóm mozgás

A robotok autonóm módon dolgozzák fel a szenzoradatokat, és autonóm módon cselekszenek,

következtetnek. Ez lényegében a térlátás megvalósulása a robotokban. A mögöttes robot ágens

működése persze nagyban befolyásolja a végeredményt, de a saját környezetét feltérképezni képes

robot nagy előrelépés.

Például egy takarító robot, mely képes a teret leképezni egy 3D-s objektummá (esetleg

eltárolni), majd ez alapján tájékozódni és a későbbiekben pozícionálni magát.

További példa projektek:

Quadrotoros helikopter: http://kinecthacks.net/autonomous-flying-quadrotor-kinect/

Ebbe a kategóriába tartozhat még az olyan robot, mely emberi utasításokat képes végrehajtani

gesztusok, mozgások értelmezésével. Egy robot mely képes értelmezni az előre kinyújtott tenyeret

Page 9: Pálfalvi Józsefaigroup.mit.bme.hu/system/files/onlab_feladat/2011/06/... · 2020-06-10 · Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy

9

megáll, vagy egy adott irányba való mutatás jelentheti a következő haladási irányt. Bonyolultabb

értelmezővel akár konkrét feladatokat is át lehet adni. Ez helyettesítheti a sokszor kényes

hangfelismerő és értelmező, és az erre épülő szöveg értelmező komponenseket, hiszen

gesztikulációval lehetne kommunikálni.

3.2 Augmented realty

A kifejezés jelentése: kiterjesztett valóság. Ezt olyan alkalmazásokra használják, melyek a való

világ egy képrészletéhez kontextus-függő, virtuális elemeket rendelnek hozzá. Ilyen, például amikor

egy mobiltelefon és GPS segítségével a mobiltelefon kamerája által felvett képre rávetül a közelben

lévő üzletek nyitva tartása, távolsága, vagy egy nevezetesség információi.

Elsősorban a szórakoztató iparban használják a kiterjesztett valóságot, de a KINECT

segítségével sokkal precízebb, ember központibb alkalmazások is készíthetők. Például egy interaktív

online ruházati cikkeket áruló bolt támogathatja a KINECT-et. A KINECT által felismert emberalakra az

online webshopban kiválasztott ruhát méret-helyesen ráilleszti, és a monitoron megjeleníti a teljes

RGB képet, a valós emberrel, de a virtuálisan ráillesztett ruhával.

További érdekes projektek:

Orvosi alkalmazás (inkább demonstrációhoz): http://kinecthacks.net/magic-mirror-for-

medical-data-visualization-using-kinect/

Physx-es demó: http://kinecthacks.net/interactive-augmented-reality-with-kinect-and-

nvidia-physx/

Ebbe a kategóriába tartozhat még a művészeti töltetű alkalmazások, mint például a 3D ecset,

vagy a virtuális szobrászat. Ezek olyan programok, melyekkel a való világba lehet „rajzolni”.

Példa projekt: http://vimeo.com/16818988

3.3 Assisted Ambient Living, Activities of Daily Living

AAL: Assisted Ambient Living: élhetést segítő technológiák, főleg idősebb embereknek

ADL: Activities of Daily Living: hétköznapi, sokszor ismételt cselekvések

Elsősorban az idősebb emberek, vagy valamilyen módon korlátozott (mozgás, látás, hallás)

emberek élhetését segítő technológiákról van szó. A betegellátás, betegfigyelés, idősek gondozása

egyre fontosabbá válik, főleg az öregedő országokban, mint pl. Németország. Alapfunkciókat ellátó,

automatizált rendszerekre lehet szükség, melyek nem az emberek szociális igényeit kell, hogy

kielégítsék, hanem a sürgős, kritikus esetekben kell, hogy gyors segítséget nyújtsanak. Tehát a cél

nem egy beszélgető robot létrehozása kéne, hogy legyen, hanem egy olyan megfigyelő rendszer

alkalmazása, amely például elesésnél, mozdulatlanságnál, rossz testtartásnál, mozgáshiánynál… stb.

Page 10: Pálfalvi Józsefaigroup.mit.bme.hu/system/files/onlab_feladat/2011/06/... · 2020-06-10 · Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy

10

jelez a betegnek, vagy értesíti a megfelelő gondozókat. Ez összekapcsolható, vagy kiegészíthető más

elemekkel is.

3.3.1 Rossz szokások megfigyelése, elesés detektálás

Hétköznapi rossz szokások, mozgásszekvenciák, állapotok megfigyelése és felismerése. Ide

tartozhat például a körömrágás, támaszkodás, helytelen testtartás (akár ülő pozícióban).

Az hirtelen pozícióváltások, mint az elesés, vagy asztal melletti (akár ülő pozícióban) a fej

hirtelen lebillenése könnyen detektálható, és fontos tényező lehet az idősebbek gondozásában.

3.3.2 Rehabilitáció és torna program

A mozgások precíz követése lehetővé teszi tornaprogramok készítését, melyek személyi

edzőként működhetnek akár egyszerű testedzéshez, vagy beteg rehabilitációhoz. A rehabilitációnál

fontos a beteg figyelése a mozgás közben, a szokatlan mozgások detektálása, illetve a

mozgásszekvenciák teljesülésének figyelése. Egy beteg, ha a rehabilitációs programot, vagy annak

egyes részfeladatait egyáltalán, vagy nem kellően pontosan teljesíti, akkor jelez a rendszer.

Tornaprogramok, vagy akár meditációs (tai chi) programok már léteznek az eszközhöz. Ezek

lényege, hogy saját edzésprogramot állítanak össze a testünk (alakunk) és korunk alapján, majd egy

„virtuális világba” helyezve minket végeztetik el velünk a gyakorlatokat, és figyelik a mozdulatok

teljesülését: http://yourshapegame.us.ubi.com/

Ilyen elven egy munkahelyi, vagy otthoni „személyi edző” is készíthető, mely például adott

időközönként (pl. 2 óránként) utasít minket, hogy tornázzunk egy kicsit.

3.3.3 AAL, ADL

A napközben sokszor elvégzett (időben és térben rendszeresen ismételődő) cselekvésekre az

intelligens szoba rá tud tanulni, és sok cselekvés automatizálható. Ezt az intelligens szoba alpontban

fejtem ki bővebben.

3.4 Intelligens szoba (intelligens ház)

Az intelligens szoba (intelligens ház) egy olyan koncepciót jelent, melyben az ember a

környezetével nem közvetlenül kommunikál, nem avatkozik be közvetlenül, hanem a környezet

érzékeli és figyeli meg az embert, és az ember tevékenységeire reagál aszerint, hogy maximalizálja a

kényelmet és biztonságot, minimalizálja az energiafogyasztást, vagy valamilyen más paramétert.

Sokszor multi-szenzoros rendszereket használnak egy ilyen környezet kiépítésére, hiszen a

megfigyelésnek sok dimenziója lehet, például hang, páratartalom, hőméréskelt vagy pozíció. Ezek a

paraméterek ráadásul a térben is elosztva jelenhetnek meg, ezért adott szenzorokból akár több is

kapcsolódhat az intelligens szoba hálózatához, a szoba különböző pontjairól.

Page 11: Pálfalvi Józsefaigroup.mit.bme.hu/system/files/onlab_feladat/2011/06/... · 2020-06-10 · Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy

11

Legegyszerűbb példa erre, hogy ha egy szobában szeretnénk egy ott sokat tevékenykedő

ember kényelmét maximalizálni. Ekkor jó hőmérséklet, páratartalom kell. Sötétedés után, ha belép a

szobába, akkor automatikusan kapcsolódjon fel a villany, ha előtte több alkalommal manuálisan

felkapcsolta (rátanul). Lefekvés érzékelésekor (ágyban fekvő pozíció) kapcsolja le a fő villanyt, és

húzza le a redőnyt.

A beavatkozás mikéntje is fontos tényező, és itt kapcsolható be a KINECT a rendszerbe. Az NI

(Natural Interaction) korábban bemutatott koncepcióját az intelligens szobában úgy alkalmazhatjuk,

ha a teljes szoba beavatkozó szerve maga a KINECT, mely értelmezi az emberi gesztusokat,

mozdulatokat. Ez alapján a beavatkozás KINECT-et használva automatikus és manuális módon

valósulhat meg:

Manuális: gesztusok felismerése.

Automatikus: pozíciók, testtartás, helyek, (akaratlan) mozdulatok felismerése

Manuális vezérlés alatt minden olyan beavatkozást értek, amikor egy még nem megfigyelt,

vagy még nem kellően nagy bizonyossággal automatizálható funkciót akar aktiválni a szobában

tartózkodó.

Automatikus vezérlés alatt minden olyan autonóm módon a szoba által végrehajtandó funkciót

értek, melyet a szoba korábban sokszor megfigyelt, és az aktuálisan megfigyelt mozgás alapján újra el

kell végezni.

3.4.1 A rendszer egy példa működése

A szobában tartózkodó esténként 10 körül lehúzza a redőnyt. Ezt ismétli párszor, de volt olyan

eset, mikor nem húzta le, ezért ebből még nem lehet következtetni (azaz nem kellő bizonyossággal)

az ADL-re. Az illető természetesen nem kézzel engedi le, és húzza fel a redőnyt, hanem az ablak

irányába mutatva felemeli, vagy leengedi a kezét. Ha az ablak irányába mutatva balra, vagy jobbra

mozdítja a kezét, akkor kinyílik, vagy becsukódik az ablak. Egy idő után, ha már kellő pozitív példa áll

rendelkezésre, akkor az intelligens szoba este 10-kor automatikusan leengedi a redőnyt.

Ez minden könnyen megvalósítható a KINECT-tel, hiszen azonosítható a kar, annak

irányítottsága. A mögöttes rendszer pedig valamilyen tanuló algoritmus, akár szakértőegyüttesekből

álló rendszer is lehet.

3.4.2 Kommunikáció

A kommunikáció kétirányú kell, hogy legyen. Tehát az ember NI alapú (KINECT) beavatkozása

az ember-szoba kommunikációt valósítja meg, és kell egy szoba-ember kommunikációs csatorna is.

Az NI alapelvek alapján ez audió és videó alapú kéne, hogy legyen, tehát például egy

hangszórórendszer, vagy egy kivetítő mely az ember aktuális helyéhez és orientációjához viszonyítva

kivetít egy képet, vagy egy kérdést. A kérdésre pedig hasonlóan a beavatkozáshoz: gesztusokkal lehet

válaszolni.

Page 12: Pálfalvi Józsefaigroup.mit.bme.hu/system/files/onlab_feladat/2011/06/... · 2020-06-10 · Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy

12

3.4.3 Intelligens ház elemei

1. Hőmérséklet (fűtés, légkondicionáló; HVAC)

2. Páratartalom (levegő frissesség; HVAC)

3. Nyílászárók működése (ajtó, ablak)

4. Világítás (fényerő)

5. Időzített automatika (pl. viráglocsolás)

6. Biztonság (mozgásérzékelés, arc- és alakfelismerés, gesztuskód)

7. Szórakoztatóelektronika vezérlés

3.5 Biztonságtechnika

Biztonságtechnikához a mozgásérzékelőkön kívül kamerák is tartoznak, melyek közül a KINECT

speciális funkciót láthat el: alak- és arcfelismerés, illetve gesztuskód („organikus kód”, ami a testtel

végzet gesztuskombinációt jelenti).

3.5.1 Gesztuskód

Tekintve, hogy a KINECT kb. 20 joint pontot (hajlítható csuklópontot és végpontot) tud követni,

amik mozgási tartománya az ember méreteitől függ, de értékei folytonosak (!), így a gesztuskód (a

lekövetési hibát nem számítva) végtelen sok kombinációt tartalmazhat. Természetesen nem lehet

például az alkar elforgatottságát végtelen precizitással érzékelni, ezért kvantálni kell az értékeket, és

valamilyen hibaszázalékot használni.

A gesztuskód a különböző joint pontok pozíciójától, és az azokat összekötő szakaszok (tagok,

végtagok) elforgatottságától függ a 3D térben, illetve nagyban függ a pozíciók közötti váltástól. (tehát

nem mindegy, hogy egy felfelé kinyújtott kart úgy érünk el, hogy oldalra hozzuk föl a kezünket, vagy

magunk előtt).

Egy szobába, házba való belépéskor a kamera azonosítja a belépőjét (arcfelismerés) és/vagy

gesztuskódot kér. Ekkor az illető egy rögzített gesztussal jelzi a kód kezdetét, majd elvégzi a

gesztussorozatot.

Példa:

Kód eleje: jobb alkar fej fölé kinyújtva.

Kód: Bal kéz 45%-ban magunk mellé; Jobb kéz vízszintesbe; Jobb alkar behajlít; Bal

kar vissza test mellé.

A kód természetesen lehet sokkal „organikusabb” is: kézfejjel magunk előtt két 8-ast leírunk,

majd lehozzuk a kezünket 45%-ban magunk mellé.

A kód lehet rövid is, hiszen a joint pontok száma, és a lehetséges felvehető értékek száma igen

nagy.

Page 13: Pálfalvi Józsefaigroup.mit.bme.hu/system/files/onlab_feladat/2011/06/... · 2020-06-10 · Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy

13

Az se jelentene problémát, ha a házba belépő személy nem végzi el rögtön a gesztuskódot,

hiszen az érzékelőnek van egy érzékelési zónája (türelmi zóna). Ha ebbe belép a személy, akkor

elkezdődik az érzékelés, ezen belül mozoghat, de (riasztás nélkül) kilépni már csak a kód megadása

után lehet.

3.6 Biometria

A biometria olyan alkalmazások összessége, amik segítségével egy ember a rá jellemző fizikai

tulajdonságok, vagy egyedi mozgás, viselkedésjegyek alapján azonosítható. A biometria nagyon

fontos részét képezi mindenféle azonosítási eljárásnak, mint például az ujjlenyomat azonosítás vagy

az arcfelismerés.

Két csoportja van:

fizikai

viselkedési

Az első csoportba tartoznak az emberekre teljesen egyedi, fizikai jellemzők: ujjlenyomat, írisz,

arc, tenyéralak, fülalak, retina, arc hőtérkép, DNS, hangelemzés.

A második csoportba tartoznak: írás ritmus, testmozgás követés, hangelemzés.

Alapvető követelmények a biometriai leírókkal szemben:

mindenkire (az emberek nagy részére) értelmezhető, használható legyen

egyediség (ne legyen két azonos ember, akire igaz)

időben állandó (hosszú ideig statikus jellemző)

mérhető (lehetőleg nagy teljesítménnyel, gyorsan)

nehezen hamisítható (lemásolható)

3.1 ábra: Biometria általános blokkvázlata (forrás: wikipedia)

Page 14: Pálfalvi Józsefaigroup.mit.bme.hu/system/files/onlab_feladat/2011/06/... · 2020-06-10 · Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy

14

Az általános blokkvázlaton követhetjük a biometria működését. A szenzor adatokat először elő

feldolgozásnak vetjük alá (pl. zajszűrés), majd a számunkra kívánatos adatokat szűrjük le az

adathalmazból (feature extraction). A szenzorból nyert adatok alapján előállítunk egy mintát, amit az

adatbázisban eltárolt, korábbi mintákkal vethetünk össze, majd az eredményeket továbbítjuk az

alkalmazásnak további feldolgozásra (riasztás, értesítés… stb.).

3.6.1 Írás ritmus, kurzor mozgáskövetés

A technika lényege, hogy a felhasználót írásmód alapján azonosítják. Ez független a leírt szótól,

az azonosított paraméterek között az írásirány, az írási sebesség (karakteren belül is lebontva), és a

kurzor közbülső mozgásának követése van.

A rögzített mozgás (gesztus) többszöri megismétlésével tanulja meg a rendszer a

paramétereket. A „kód” elvileg legalább olyan egyedi, mint az íráskép (grafológiai elemzés), illetve

tudatosan egyedi ismertetőjelekkel is lehet bonyolítani (pl. adott karakter elnyújtása).

A probléma ezzel a biometriai mértékkel, hogy az íráskép és- ritmus nagyban függ a lelki

állapottól.

3.6.2 Gait

Magyarul azt jelenti: testtartás, járásmód. A szakmában a járás közbeni testtartás,

súlymegoszlás elemzését értik ez alatt. Elsősorban mozgásszervi betegségek (ízület, izomzat)

elemzésére, felismerésére használják. Próbálták alkalmazni már emberek azonosításra is

(http://www.youtube.com/watch?v=Voygv1uTF7c), ezzel arra próbáltak kísérletet tenni, hogy

létrehoznak egy központi adatbázist, amelyben az ismert bűnözők mozgásmintáit tárolják el, majd

vetik össze más videókon rögzített mozgásokkal. A projekt (források hiánya alapján), innen nem is

jutott tovább.

Page 15: Pálfalvi Józsefaigroup.mit.bme.hu/system/files/onlab_feladat/2011/06/... · 2020-06-10 · Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy

15

4 KINECT, mint „biometriai szenzor”

A KINECT által szolgáltatott adatok (RGB kamerakép, és szkeleton) rögtön adják a lehetőséget,

hogy az eszközt vizsgáljuk meg, mint lehetséges biometria alkalmazást. Itt a biometria nem csak

személyazonosításra, vagy biztonságtechnikában használható alkalmazásaira kell gondolni. A

biometriát, mint olyan alkalmazások összességét tekinthetjük, amik az emberi test valamilyen

tulajdonságát próbálja meg azonosítani, követni, és a 3.1 ábra architektúrája alapján működik. Ez

alapján a KINECT-et biometriai szenzorként is használhatjuk:

pre-processing: mélységképből érkező adatok feldolgozása

feature extarction: emberi alakok, joint pontok, kezek azonosítása

mozgás lekövetése (minta készítése)

eltárolt mozgásmintákkal való összevetés

eredmények feldolgozása

Az eredményeket többféle alkalmazási területen (nem feltétlenül személyazonosításban,

biztonságtechnikába) is használhatjuk:

gesztus szekvencia követése (pl. ivás mozdulatsor)

gesztuskövetés rehabilitáció követésére

szokatlan gesztusok azonosítása

gesztus kód (gesztus alapján való azonosítás)

testpozíció követés

4.1 Általános alkalmazhatóság

Az eddigi kutatások alapján a biometria elsősorban fizikai sajátosságokon alapuló változatait

használják, ritka a viselkedési minták felismerése. Ez elsősorban annak tudható be, hogy nehéz olyan

hardvert készíteni, ami kompakt módon, ugyanakkor robosztusan működne. A legtöbb viselkedést

(mozgást) azonosító rendszer infra-kamerákat és markereket használ, ami egy egész stúdió

berendezését és kalibrálását igényli (motion capture). Az egykamerás képfeldolgozás fejlődésének

köszönhetően, és a KINECT szenzorban megvalósított színes kép és infra-kamerából származó

mélységkép hibrid megoldásának köszönhetően, egyszerűen lehetne emberi alakok végtagjainak

mozgását követni, és az adatokat valós időben feldolgozni.

A KINECT precizitását tekintve nem ér fel a markeres megoldásokig (pl. lábfej, térd csavarodást,

de még a csukló finom mozgását is nehéz lenne lekövetni), de jó megközelítéssel lehet rá robosztus

alkalmazást készíteni.

Page 16: Pálfalvi Józsefaigroup.mit.bme.hu/system/files/onlab_feladat/2011/06/... · 2020-06-10 · Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy

16

A KINECT alkalmazása mellet szól a fényviszonyoktól való függetlenség is, hiszen a szenzor egy

aktív infravörös érzékelővel rendelkezik (infravörös hálót projektál ki, amit egy infra érzékelővel figyel

meg, és ez alapján határozza meg a szenzortól való távolságot).

4.1.1 Testpozíció követés

Részfeladatai:

éber figyelés

éber nem figyelés

alvás

szokatlan aktivitás

szokatlan aktivitáshiány (mozdulatlanság)

Ezt önmagában a KINECT-tel nehéz lenne megoldani, hiszen az alvás és nem alvás közötti

különbséget pl. TV nézés közben a testtartásból nehéz megállapítani. Szükséges lenne komolyabb

arcfelismerésre, és azon belül pl. csukott/nyitott szem felismerésre is. A probléma az, hogy az alvó

(nem aktív) ember testtartása alig különbözik egy éber, de mozdulatlan emberétől, és kis

mozdulatlanságot nem lehet precízen mérni.

A szokatlan aktivitást, vagy hirtelen pozícióváltást már lehetne követni, felismerni. Tehát

például elesés detektálás, vagy hirtelen rángás felismerésére használható lenne.

4.1.2 Gesztus szekvencia követés

A szekvenciák követése KINECT-tel megoldható feladat, mivel a szekvenciák nem csak

önmagukban felismerendő, statikus pozíciók, hanem pozíciók sokasága, átmenetekkel, amik

valamilyen hibafaktort számításba véve jobban felismerhetők.

Konkrét alkalmazásai már léteznek, elsősorban játékfejlesztésben találkoztam ennek

komolyabb felhasználásával, ahol aerobic és tánckoreográfiai programok hasonlították össze az

ember tényleges mozgását az elvvárttól. Itt igen összetett mozgásokra kell gondolni, tehát

összehangolt végtag, törzs, és fejmozgásra.

4.2 Tapasztalatok a szenzorral

A szenzor tesztelését általam is felülvizsgált (forráskódból fordított, kis mértékben módosított)

demó programok (OpenNI SDK-hoz mellékelt; lásd 3. fejezet) segítségével végeztem el. Ezek a

programok mindig valamilyen speciális feladatra vannak kiélezve, így például van program, ami az

emberi alakokat azonosítja és megpróbálja a szkeletont ráilleszteni, és van, amelyik csak és kizárólag

a kézfejet próbálja követni (automatikus azonosítás és követés).

Page 17: Pálfalvi Józsefaigroup.mit.bme.hu/system/files/onlab_feladat/2011/06/... · 2020-06-10 · Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy

17

4.2.1 Pontosság és az érzékelés robosztussága

Az érzékelő a legkisebb érzékelési távolságban (kb. 0.8m) vízszintesen kb. 87cm-t lát,

függőlegesen 63cm-t, és így a felbontása 1.3mm/pixel. [8]

Az érzékelő legnagyobb hátránya a viszonylag kis látószög. A problémát (felismerés

bizonytalanságát, vagy teljes hiányát) sokszor a rossz távolság okozza, mivel a szkeleton

felismeréshez legalább csípőig benne kell, hogy legyen a felsőtest. A szoknyát viselő emberek lábait

rendszeresen helytelenül illeszti a NITE.

A teljes alak felismerés kétféle módon történhet:

előre eltárolt szekeleton használata (előzőleg valaki el lett „mentve” a rendszerben)

instant felismerés (valamilyen fókusz pozíciót kell felvenni, hogy a rendszer felismerje

az emberalakot, és ráillessze a szkeletont)

A KINECT-et használó fejlesztők között sokan állítják, hogy egy tetszőleges, de nagyjából

átlagos emberről vett szkeletont a rendszer később igen nagy pontossággal rá tud illeszteni más

alakokra, mindenféle fókusz pozíció nélkül.(Ezt még tesztelni kell.)

4.2.2 OpenNI és NITE funkciók

Az OpenNI funkciói elsősorban a hardver (KINECT) és a middleware összekapcsolását,

menedzselését végzi.

A NITE API-ba (és dokumentációba) mélyebben beleásva sok olyan előre definiált funkciót

találtam, melyek nagyban könnyítik, és egyszerűen variálhatóvá teszik a különböző mozdulatok

detektálását, felhasználását. A NITE middleware alapvetően egy eseményvezérelt struktúrát valósít

meg, ahol a szenzorból érkező adatokat feldolgozva (tehát az ember mozgását érzékelve), különböző

események generálódnak. Ezek az események általában kézmozdulatok, de minden esemény

„generálódása” paraméterezhető. Például rendelkezésre áll egy olyan funkció, mely az integetés

jellegű mozdulatokat detektálja. Az integetés egy rögzítet síkban történik, de paraméterezhető, hogy

hány oda-vissza mozdulat, milyen sebességű mozgás után ismerje fel integetésnek. Másik példa:

rendelkezésre áll olyan funkció, mely a kézfej olyan jellegű mozgását érzékeli (detektálja), mely egy

tetszőleges (de rögzített) X-Y síkban figyeli a kéz mozgását, és egy 2D térképet készít a mozgásról

minden képkockában.

A másik hasznos megoldás a NITE-ban az adatfolyam kezelés. Ez alatt a különböző forrásból

érkező adatok (akár különböző szenzorból, vagy az adott színtérből érkező különböző

eseményforrások pl. kézfej, test) alkalmazásállapottól függő felhasználását, irányítását kell érteni.

Például, ha az alkalmazás egy pillanatában csak egy adott kézmozdulatot szeretnénk megtalálni (a

többi mozdulatot átmenetileg nem akarjuk figyelni), akkor erre beépített szolgáltatások állnak

rendelkezésre.

Page 18: Pálfalvi Józsefaigroup.mit.bme.hu/system/files/onlab_feladat/2011/06/... · 2020-06-10 · Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy

18

Továbbá rendelkezésre állnak szűrő funkciók is, melyek például a kis mozgásokat szűrik le,

illetve olyan funkciók, melyekkel a teret lehet „partícionálni” és a térben mozgó (és követett

pontokat) figyelni a partíciók közötti váltáskor.

4.1 ábra Szkeleton felbontás a NITE alapján (forrás: NITE algorithms, [6])

A NITE API leírás viszonylag részletesen ismerteti az egész rendszer képességeit. Arra is kitér,

hogy a teljes alak felismerését végző komponens milyen pontossággal képes a végtagcsavarodást

meghatározni. A probléma, hogy ezeket (pl. a felkar csavarodását) nem lehet közvetlenül a

mélységképből meghatározni, ezért következtető módszereket használ a NITE (pl. ha előrefele hajlik

a könyökünk, akkor nyilvánvalóan a bicepszünk előrefele néz). A gyors mozgások, és extrém pozíciók

is zavarhatják a felismerést.

Hasznos, hogy a legtöbb funkcióhoz szolgáltat egy bizonytalansági faktort, mellyel

meghatározható, hogy egy adat (pozíció, irány) mennyire „biztos”.

4.2.3 Egyéb tapasztalati adatok

A szenzor válaszideje nagyon kicsi (ms nagyságrendű), persze ez függ az alkalmazástól is. Az

érzékelési tartománya főleg a „közelség” terén korlátozott, hiszen a látószög miatt a túl közeli

alakokat nem látja egészben (ez még nem probléma), de az alak-felismerési algoritmusok nem mindig

működnek 100%-osan csak a felsőtestet látva.

A felbontás a gesztusérzékeléshez kielégítő (nagy pontossággal), de ujjfelismerés, ujjmozgás

követéshez már nem, ahhoz közeli felvételre és speciális alkalmazásra lenne szükség.

Page 19: Pálfalvi Józsefaigroup.mit.bme.hu/system/files/onlab_feladat/2011/06/... · 2020-06-10 · Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy

19

5 Létező megoldások, megközelítések

A teljes alak felismerés és követés nem új elgondolás, más rendszerekben is foglalkoznak ezzel,

sok létező megoldás található. Csak azokaz a megoldásokat citálom, melyek nem csak a test általános

felismerését és követését teszik lehetővé, hanem teljes test alak felismerést, tehát végtagok,

csuklópontok követését is.

Mint korábban már említettem, a legtöbb felismerési módszer vagy csak magát az emberi

mozgás tényét ismerik fel (magát az alakot, vagy annak részleteit már nem), vagy többkamerás,

kalibrált, markeres megoldásra van szükség, ami viszont igen költséges, és nehezen alakítható ki

bármilyen környezetben. A többkamerás megoldások között is léteznek olyanok, melyek markerek

nélkül használhatók [11,12].

Tehát olyan egykamerás megoldásokat kerestem, amik komplexitásukat tekintve a KINECT

szintjén vannak.

5.1 OpenCV [9]

Az OpenCV (Open Computer Vision Library) az egyik leggyakrabban használt, nyílt forráskódú

és szabadon felhasználható programcsomag, mely rengeteg funkciót biztosít a képfeldolgozás és gépi

látás témakörében. Alapvetően csak RGB képeken dolgozik, tehát akármilyen forrásból származó

kameraképeken. A beépített alapfunkciókkal könnyen lehet magasabb szintű felismerést lehetővé

tevő alkalmazásokat készíteni, megkerülve ezzel olyan nehéz problémák implementálását, mint az

arcfelismerés, vagy kézfelismerés.

A probléma a legtöbb funkcióval az, hogy alapvetően 2D-s képekről származó információból

nehezen lehet 3D-s információt leszűrni. Az objektum felismerő algoritmusok akkor működnek csak

helyesen, ha például az arc, vagy az emberi alak szemben van a kamerával. Az elfordult, elcsavarodott

pozíciókat alig, vagy egyáltalán nem képes követni.

Az arc és alakfelismerő funkciók többnyire a Haar-féle jellemzők segítségével keresi meg a

szem, vagy testrészek pozícióit. Él és textúra alapú (régió felismerés) objektum-azonosítás is gyakori,

de ezek is szinte minden esetben nagyon érzékenyek a megvilágítási körülményekre (intenzitás), az

ember öltözködésére, és kamerához viszonyított pozíciójára. Továbbá csak „bounding box” jellegű

információt szolgáltatnak a felismert alakról.

Page 20: Pálfalvi Józsefaigroup.mit.bme.hu/system/files/onlab_feladat/2011/06/... · 2020-06-10 · Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy

20

5.2 Bayesi becslés az emberi test 3D-s

mozgásrekonstrukciójához [10]

A megoldás két részből épül fel: előzetes mozgási modell felépítése markerek segítségével

rögzített, mozgásszekvenciákról készített adatokból. Ezzel egy olyan valószínűségi modellt építenek

fel, ami megadja pár képkockán keresztül a végtagok elhelyezkedésének valószínűségét.

Második lépésben a tényleges kameraképeket analizálják, de itt egy egyszerűsített megoldást

használnak: a kamera által könnyen felismerhető markereket a testen. A bonyolultabb, valós

helyzetekhez már létező alak-felismerési megoldásokat használnak.

A munka legnagyobb felfedezése az volt, hogy az előzetes tudásbázis felépítése nagyban

hozzájárul a megoldás jó alak-felismerési teljesítményéhez.

Egy friss, 2010-es tanulmány azt vizsgálja, hogy az így rögzített mozgás adatokat milyen

módszerekkel lehetne finomítani. Különböző technikákat ismertet a már létező adatok „simítására”

az új adatok segítségével (Gibbs mintavételezés, Markov láncoknál használkt simítási technika)

[16,17]

5.3 OrganicMotion [13]

Ez egy ipari alkalmazás, mely markerek nélküli alakfelismerést és követést tesz lehetővé. Alapja

hasonló a KINECT-ben használthoz: kalibrált IR kamerák segítségével határozza meg az ember

pozícióját a térben. A megoldás hátránya, hogy egy rögzített stúdióban használható csak, szigorúan

korlátozott fényviszonyok mellett.

5.4 Más egyetemeken

A Stanford egyetemen egy külön kutatócsoport (BioMotion Lab [14]) foglalkozik ezzel a

témakörrel. Ők is markeres megoldásokkal dolgoznak, külön felépített stúdióban. Elsődleges céljuk

nem a kiterjesztett virtuális valóság, vagy az intelligens szobában való alkalmazása a technológiának,

hanem orvosi megoldások.

Coventry University (UK) , Bournemouth University (UK) intézményeiben markeres, elsősorban

játékfejlesztésre és animáció készítésre szánt megoldásokkal foglalkoznak.

Carnegie Mellon egyetemen is foglalkoznak motion capture-rel (mocap), sőt, egy nyíltan

hozzáférhető adatbázist is biztosítanak, melyben a saját laborjuk (Carnegie Mellon Graphics Lab) által

rögzített adatok érhetők el. [15]

Page 21: Pálfalvi Józsefaigroup.mit.bme.hu/system/files/onlab_feladat/2011/06/... · 2020-06-10 · Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy

21

6 KINCET technikai specifikáció, működés

6.1 Szenzorral kiadott hivatalos paraméterek [8]

6.1.1 Fő tulajdonságok

RGB kamera (640x480; 30FPS)

Mélységérzékelő (IR; 640x480; 30FPS)

Hangérzékelő

Mozgató motor a dőlésszög változtatáshoz

6.1.2 Látószög

Vízszintes FOV: 57°

Függőleges FOV: 43°

Motor függőleges szögváltoztatása: 27°

Mélységérzékelő érzékelési tartománya (ajánlott): 1.2m–3.5m

Mélységérzékelő érzékelési tartománya: 0.8–6 m

6.1.3 Adatfolyam

640x480 16-bit depth @ 30 frames/sec

(mélység-térkép)

640x480 32-bit colour@ 30 frames/sec

(színes kamerakép)

16-bit audio @ 16 kHz

6.1.4 Szkeleton (csontváz; ember) érzékelés

mozgó alakok érzékelése

aktív alakok érzékelése (szkeletonnal)

aktív alakonként 20 joint pont (hajlítható vagy végpontok) érzékelése

6.1.5 Audio érzékelő (PC-n jelenleg nem működik)

Hangfelvétel

Visszhang kiszűrés

Beszédfelismerés több nyelven

Page 22: Pálfalvi Józsefaigroup.mit.bme.hu/system/files/onlab_feladat/2011/06/... · 2020-06-10 · Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy

22

6.2 A szenzor működése

A KINECT szenzor alapja az IR kamera együttes, mely egy infravörös fényt kibocsájtó

fényforrásból, és egy infravörös fényt érzékelő kamerából áll. Más IR fényt használó

mélységérzékelők általában azon az egyszerűsített fizikai modellen alapszanak, mely a kisugárzott

fény által megtett utat (távolság a szenzortól) a kibocsátás és érzékelés között eltelt idő és a

fénysebesség által határozzák meg.

A KINECT –ben használt PrimeSense chip más megoldást használ. [18,19]. Ennek lényege a

következő: az IR kibocsátó egy pszeudorandom mintázatot (sűrű ponthalmazt) vetít ki a

megfigyelendő objektumra. A kivetített mintázatokat először ismert, de különböző távolságban lévő

referencia felületekre vetítik ki (egymás után, egyenként), majd ezeket az képeket, és a

mintázatokban lévő pontok távolságát elmentik referencia adatokként.

A 6.1 ábra: KINECT által kibocsátott infravörös fény (pont háló) [20]

Az ismeretlen távolságban lévő objektumra ezután ugyan azt a pszeudorandom mintázatot

vetítik ki. Az előzőleg referencia felületekre kivetített mintázatok közül, különböző korrelációs

technikákat alkalmazva, kiválasztják a legvalószínűbb referencia felületet (felületeket), és az ahhoz

eltárolt referenciapontok távolságát. Ezután az ismeretlen objektumra (objektumokra) kivetített

mintázat pontjait keresztkorrelációs technikákkal megfeleltetik a referencia felület pontjainak, és a

pontok távolságából meghatározható a referencia felület és az ismeretlen objektum felületének

pontjainak z-tengely (3. dimenzió) menti különbsége.

Az így meghatározott mélységkülönbségek képezik tehát a mélységkép (mélység térkép)

alapját.

Page 23: Pálfalvi Józsefaigroup.mit.bme.hu/system/files/onlab_feladat/2011/06/... · 2020-06-10 · Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy

23

7 Konklúzió

A KINECT szenzor egy kompakt eszköz, mely köré egy olyan framework épül(t), ami a jövőben a

gépi látásban, azon belül is az alak és arcfelismerésben nagy szerepet fog játszani. A szenzor által

szolgáltatott 3D adatok, és az ezeket felhasználó OpenNI és NITE framework komponensek

segítségével robosztus módon lehet teljes alak felismerést és követést, kézfej követést és gesztus

felismerést alkalmazni. Az eszköz alapvetően beltéri felhasználásra lett kialakítva, és a paraméterei

alapján egy átlagos nappali (kisebb terem) megfigyelésére alkalmas. Ezen belül tetszőlegesen képes

mozgó alakok felismerésére, azonosítására és szkeleton adatok 3D térben történő illesztésére (relatív

pozícióval a szenzorhoz viszonyítva), függetlenül a megvilágítástól és az emberek öltözködésétől (egy-

két extrém kivételtől eltekintve).

A felhasználási lehetőségek között minden olyan területet megpróbáltam feltérképezni, ahol a

teljes alakfelismerés és követés hasznos lehet. Több izgalmas megoldással találkoztam (kiterjesztett

valóság, robot vezérlés), és egy saját ötleten alapuló (és további végiggondolásra, kidolgozásra váró)

alkalmazását is bemutattam: gesztuskód, és a KINECT mint biometriai szenzor.

A kutatómunka során talált meglévő alkalmazások többsége az emberi alak követésére

markeres megoldást használ, általában a célra speciálisan kiépített stúdióval. Az egykamerás

megoldások körében robosztus megoldás a teljes alak felismerésre és követésre nem igazán létezik, a

meglévő megoldások többnyire olyan megszorításokkal működnek csak, amik a megoldás

felhasználhatóságát erősen csökkentik (szín alapú markerek használata; egy adott irányba nézve

működő megoldások). A létező megoldások többsége azért van nagy hátrányban a KINECT-tel

szemben (a KINECT-tel megvalósítható funkciók terén), mivel a 2D képekből 3D információ leszűrése

alapvetően egy nehéz képfeldolgozási probléma.

Page 24: Pálfalvi Józsefaigroup.mit.bme.hu/system/files/onlab_feladat/2011/06/... · 2020-06-10 · Az API-kat interfészeken keresztül lehet elérni, amik azt a célt szolgálják, hogy

24

8 Forrásjegyzék

[1] http://en.wikipedia.org/wiki/Biometrics

[2] http://techbiometric.com/

[3] http://en.wikipedia.org/wiki/Assisted_living

[4] http://en.wikipedia.org/wiki/Activities_of_daily_living

[5] OpenNI User Guide ( http://www.openni.org/documentation )

[6] NITE Algorithms notes 1.3 (PrimeSense Inc.)

[7] PrimeSense NITE Controls 1.3.1 User Guide (PrimeSense Inc.)

[8] http://en.wikipedia.org/wiki/Kinect

[9] http://opencv.willowgarage.com

[10] Bayesian Estimation of 3-D Human Motion (Michael E. Leventon, William T. Freeman;

TR98-06, 1998)

[11] D. M. Gavrila and L. S. Davis. 3-d model-based tracking of humans in action: a multi-view

approach. In Proc. IEEE CVPR, pages 73{80, 1996.

[12] I. A. Kakadiaris and D. Metaxas. 3d human body model acquisition from multiple views. In

Procp. 5th Intl. Conf. on Computer Vision, pages 618{623. IEEE, 1995.

[13] http://www.organicmotion.com

[14] http://www.stanford.edu/group/biomotion/

[15] http://mocap.cs.cmu.edu/

[16 ] http://en.wikipedia.org/wiki/Markov_chain

[17] A Study on Smoothing for Particle-Filtered 3D Human Body Tracking (International Journal

of Computer Vision, Volume 87, 2010 március)

[18] http://www.faqs.org/patents/asn/62087

[19] Range mapping using speckle decorrelation (United States Patent 7433024, PrimeSense

Ltd.)

[20] http://graphics.stanford.edu/~mdfisher/Kinect.html