Ujjszámlálás Matlab segítségével

Hasonló dokumentumok
KÉPFELDOLGOZÁS. 10. gyakorlat: Morfológiai műveletek, alakjellemzők

Használati útmutató Az online példatárhoz

Gépi tanulás a gyakorlatban. Bevezetés

Digitális képfeldolgozás gyakorlat, Nappali tagozat 2018/2019 őszi félév, Beadandó feladat

B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.

Kaszás Tímea: Corvina OPAC az SZTE Mez gazdasági Könyvtárában

4. Használati útmutatás

Önálló labor beszámoló Képek szegmentálása textúra analízis segítségével. MAJF21 Eisenberger András május 22. Konzulens: Dr.

Diszkrét matematika 2. estis képzés

Grafikonok automatikus elemzése

46. ORSZÁGOS TIT KALMÁR LÁSZLÓ MATEMATIKAVERSENY NEGYEDIK OSZTÁLY

Területi elemzések. Budapest, április

EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF

Diszkrét matematika 2.

Diszkrét matematika 2.C szakirány

Református Iskolák XX. Országos Matematikaversenye osztály

Gráfelmélet. I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma

Zajszűrés VII. Fekete-fehér képek

Permutációk véges halmazon (el adásvázlat, február 12.)

7. Régió alapú szegmentálás

Mio Technology Limited C510, C710. Gyors használati utasítás a Mio Map v3 programhoz. Magyar

MBNK12: Permutációk (el adásvázlat, április 11.) Maróti Miklós

TANSZÉKI ADMINISZTRÁTORI SEGÉDLET: NEPTUN TÁRGYKEZELÉS, KURZUSKEZELÉS

Számítógépes geometria (mester kurzus)

Internetes Elıjegyzés Elıjegyzési Központon keresztül

Az egyenes egyenlete: 2 pont. Az összevont alak: 1 pont. Melyik ábrán látható e függvény grafikonjának egy részlete?

Csövek belső felületének vizsgálata

Egy érdekes nyeregtetőről

Gráf csúcsainak színezése. The Four-Color Theorem 4 szín tétel Appel és Haken bebizonyították, hogy minden térkép legfeljebb 4 színnel kiszínezhető.

Képfeldolgozás Szegmentálás Osztályozás Képfelismerés Térbeli rekonstrukció

2. Visszalépéses keresés

Kézikönyv. Pénzügyi könyvelés manuális rögzítése

bármely másikra el lehessen jutni. A vállalat tudja, hogy tetszőlegesen adott

Másolás és beillesztés lehetőségei. A rétegmaszk

Remek-Bér program verzió történet

ClicXoft programtálca Leírás

Online algoritmusok. Algoritmusok és bonyolultságuk. Horváth Bálint március 30. Horváth Bálint Online algoritmusok március 30.

QGIS Gyakorló. 1. kép. A vektor réteg (grassland.shp).

10. előadás Speciális többágú fák

Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

Felhasználói kézikönyv - Android kliens

Kétfázisú szimplex algoritmus és speciális esetei

Táblázatkezelés 2. - Adatbevitel, szerkesztés, formázás ADATBEVITEL. a., Begépelés

1. tétel. 1. Egy derékszögű háromszög egyik szöge 50, a szög melletti befogója 7 cm. Mekkora a háromszög átfogója? (4 pont)

Mechatronika segédlet 3. gyakorlat

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

Gyakorló 9. feladat megoldási útmutató

Rendszámfelismerő rendszerek

K&H token tanúsítvány megújítás

TÁJÉKOZTATÓ a MicroSigner alapú elektronikus aláírás használatáról

Sergyán Szabolcs szeptember 21.

GRÁFELMÉLET. 7. előadás. Javító utak, javító utak keresése, Edmonds-algoritmus

DebitTray program Leírás

5 = hiszen és az utóbbi mátrix determinánsa a középs½o oszlop szerint kifejtve: 3 7 ( 2) = (példa vége). 7 5 = 8. det 6.

Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y.

Tanúsítvány feltöltése Oberthur kártyára és Oberthur SIM termékre. Windows 7, Windows 8, Windows 8.1 és Windows 10-es operációs rendszeren 1(9)

Tisztelt Felhasználó!

Számítógép és programozás 2

OKTV 2007/2008 Informatika II. kategória döntő forduló Feladatlap. Oktatási Hivatal

HTML ÉS PHP ŐSZI FÉLÉV

DIGITÁLIS KÉPANALÍZIS KÉSZÍTETTE: KISS ALEXANDRA ELÉRHETŐSÉG:

Infóka verseny. 1. Feladat. Számok 25 pont

DuneHD.hu. Kompatibilis médialejátszók: Dune HD Center Dune BD Prime Dune HD Base 2.0 Dune HD Base 3.0 Dune BD Prime 3.0

I. Internetes keresési feladatok (ajánlott idő: 20 perc)

Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék

MATEMATIKA KÖZÉPSZINT% ÍRÁSBELI VIZSGA II. É R E T T S É G I V I Z S G A május május 5. 8:00 EMBERI ERFORRÁSOK MINISZTÉRIUMA

Ablakok. Fájl- és mappaműveletek. Paint

Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)

E-Freight beállítási segédlet

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Telepítési útmutató a Solid Edge ST7-es verziójához Solid Edge

A programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek:

A kapcsolattartói fejlesztés leírása

Algoritmusok és adatszerkezetek II.

Online Nevezési Rendszer

Készítette: Temesi-Ferenczi Kinga. SMART Notebook Visszajelzős feladatok. Mi a visszajelzős feladat?

Tárgyfelelős kódja, címe)

Diszkrét matematika 1. estis képzés

Csavarda mobil áruház

MOODLE felhaszna ló i dókumenta ció

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

Tartálykészlet elszámoló rendszer

FordEcat Gyors útmutató

Erste Sorszámhúzó Felhasználói kézikönyv

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Algoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8.

ContractTray program Leírás

Időjárási csúcsok. Bemenet. Kimenet. Példa. Korlátok. Nemes Tihamér Nemzetközi Informatikai Tanulmányi Verseny, 2-3. korcsoport

Felhasználói kézikönyv. Verzió: 1.01

Makrók használata az Excelben - Makróhibák kezelése, biztonságos jelszavak generálása

A Microsoft OFFICE. EXCEL táblázatkezelő. program alapjai as verzió használatával

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Számelmélet

Kitöltési segédlet. Az ELEKTRA elektronikus adatgyűjtő rendszerbe bevont 2130-as számú, szolgáltatási árstatisztikai kérdőívhez, 2017

Adatszerkezetek 1. előadás

Analízis évfolyam. Szerkesztette: Surányi László július 5.

TÁJÉKOZTATÓ a MicroSigner alapú alkalmazás használatáról

Keresd meg a többi lapot, ami szintén 1 tulajdonságban különbözik csak a kitalált laptól! Azokat is rajzold le!

Tanúsítvány igénylése sportegyesületek számára

Táblázatos adatok használata

W_Vaskereskedés felhasználói dokumentáció. Felhasználói dokumentáció W_Vaskereskedés számlázóprogram NAV adatszolgáltatás

Átírás:

Ujjszámlálás Matlab segítségével Griechisch Erika, Juhász Miklós és Földi Antal 2008. november Tartalomjegyzék 1. Bevezetés 1 2. Vizsgált módszerek 1 3. Az algoritmus 1 4. Megvalósítás 2 4.1. Szegmentálás, élsimítás......................................... 2 4.2. A váz vizsgálata............................................. 4 5. A finger_count_gui m ködés közben 1 5 6. A finger_count_gui m ködés közben 2 6 7. Összefoglaló 7 1. Bevezetés A továbbiakban bemutatott program 2008 szi szemeszterében készült a Szegedi Tudományegyetem programtervez informatikus MSc szakján, a Képfeldolgozás haladóknak kurzus keretében. A feladatunk az volt, hogy készítsünk egy programot, mely egy homogén, sötét hátter, felfelfe mutató kezet ábrázoló képr l megmondja, hány ujjat mutat a kéz tulajdonosa. 2. Vizsgált módszerek Többféle módszer is felmerült az ujjszámlálás megoldására. Az egyik völgy-hegy detektálás (peak and valley detection) néven ismert módszert használja, err l b vebben a [1] irodalomban olvashatunk. A módszer lokális minimum/maximum keresésen alapul és azért vetettük el, mert a közel vízszintesen tartott hüvelykujjat nem számolta ujjnak, és érzékeny volt a kontúr egyenetlenségeire. Egy másik módszer, ami felmerült, hogy kompaktságnak a mértékét vizsgáljunk. A 0-t mutató kéz közel kompakt, az 1 ujjat mutató már kevésbé, míg az a legkevésbé kompakt eset mikor mind az 5 ujjat felmutatjuk. E kompaktságot egy összefügg halmaz esetén a K2 T kifejezéssel számszer usíthetjük (ahol K a kerület, T a terület.) Ez a módszer a kéz esetén nem vált be, több képen kiszámoltuk az értékeket, de nem lehetett egyértelm határvonalat húzni a különböz ujjat mutató kezeknél kapott kompaktságot mutató értékekre. Végül a vázkijelölés alapú ujjfelismerés mellett döntöttünk. A következ oldalon ezen módszert illetve algoritmus lényegét ismertetjük. 3. Az algoritmus 1. homogén hátter kép szegmentálása Eredménye: bináris kép, a szegmentált kézzel 1

2. vázkijelölés + tisztítás Eredménye: a kéz váza 3. végpontok + vonalpontok + elágazások megkeresése Eredmény: kijelölt vég- és elágazáspontok 4. végpontoktól az elágazásokig végigjárjuk az utakat (hosszmérés) Eredmény: lehetséges ujjak megtalálása 5. a túl rövid utakat gyelmen kívül hagyjuk, a megmaradt utak száma adja meg a felmutatott ujjak számát Eredmény: az ujjak száma 4. Megvalósítás 4.1. Szegmentálás, élsimítás Az alábbiakban végigkövetjük a kód futását lépésr l lépésre, képekkel illusztrálva. 1. ábra. Az eredeti kép A kép beolvasása után, szürkeárnyalatúvá alakítjuk át (a beépített rgb2gray függvény segítségével ), majd a graythresh illetve im2bw függvények segítségével szegmentáljuk illetve binárissá alakítjuk: threshold = graythresh(gray); BW = im2bw(gray, threshold); A szegmentálást követ en élsimítást végzünk a képen... se = strel('octagon',9); bw2 = imdilate(bw,se); bw3 = imfill(bw2,'holes'); bw4 = bwmorph(bw3,'close'); 2

2. ábra. a) Szürkeárnyalatos kép b) szegmentált kép c) élsimított kép... majd elvégezzük a vázkijelölést bw5 = bwmorph(bw4,'thin','inf'); A matlab beépített vázkijelöl algoritmusával - bwmorph(bwimage,'skel') - is próbálkoztunk, de az túl sok mellékágat eredményezett, a váz szálkás lett. A program gyorsabb futása érdekében a váz körüli felesleges üres területeket töröljük. 3. ábra. Váz 3

4.2. A váz vizsgálata Törlést követ en pixelenként vizsgáljuk a vázat, minden pixelnek megszámoljuk hány szomszédja van (a vázban). Három csoportba oszthatóak a vázpontok: végpont: 1 szomszédja van vonalpont: 2 szomszédja van elágazási pont: több mint 2 szomszédja van Megjegyzés: a kép alsó 20%-ba es végpontokat nem vettük végpontnak, mert a ott kezd d ágak a csuklóhoz tartoznak. Ezután következik az algoritmus 4. fázisa: a végpontokból kiindulva számba vesszük a következ szomszédos pixelt, mindaddig míg elágazáshoz nem érünk. A végigjárt út hossza a végpontok és elágazási pontok közé es pixelek száma. Az így kapott ágak lehetséges ujjak. Az 5. fázisban, a korábbi fázis során kapott ághosszak alapján kisz rjük a rövid ágakat. Több kép átvizsgálása után azt a következtetést vontuk le, hogy egyetlen ujj váza sem lesz rövidebb a leghosszabb ág felénél. Ezt gyelembe véve sz rjük ki a felesleges ágakat. A megmaradt ágak ujjnak min sülnek. 4. ábra. A váz, melyen jelölve vannak a végpontok (piros), az ujjak (kék) és az elágazási pontok (zöld) 4

5. A finger_count_gui m ködés közben 1 5

6. A finger_count_gui m ködés közben 2 6

7. Összefoglaló Az alkalmazott módszer célravezet volt, a feldolgozott képeken az esetek 98% ban felismerte az algoritmus a mutatott ujjak számát. A project jelenlegi állapotában önállóan m köd alkalmazás, mely azonban alapjául szolgálhat további munkáknak, nomhangolásoknak. Ilyen lehetne például a háttérszínt l és a kéz pozíciójától függetlenül történ ujjszám felismerés. Következ lépésben az alkalmazást ki lehetne terjeszteni videofelismerésre is, magát a módszert egy hordozható, matlabtól részben vagy egészen független rendszerre átülteni. Leírás a finger_count_gui.m használatához: Ha elindítjuk a függvényt Matlabbal - az R2007a verzió ajánlott -, egy ablakot kapunk, melyen bal oldalon kiválaszhatjuk melyik leon szeretnénk ujjszámlálást végezni. Ha kiválasztottuk a megfelel let, a start gombra kattintva elindíthatjuk a számolást, majd a jobb oldali ablakban meg fog jelenni az eredeti kép illetve a váza, melyen külön színnel van jelölve a végpontok, az elágazási pontok és az ujjak. A bal alsó sarokban lesz olvasható, hogy hány ujj látható a képen. Hivatkozások [1] Shahzad Malik (2003): Real-time Hand Tracking and Finger Tracking for Interaction (CSC2503F Project Report) http://www.cs.toronto.edu/ smalik/downloads/2503_project_report.pdf 7