Sunteți pe pagina 1din 46

Interactiune Om-Calculator

Exemple de aplicatii de detectie si


recunastere a mainii si gesturilor
1. Detecia prezenei minii n imagini statice
i identificare a degetelor
Proiect de diploma 2007 (Visky Endre)
Posibiliti de detecie: direcia minii, (directia indicata
de mn, numrul de degete distincte extinse etc).
Sistem de achiziie: camer web comercial (Low-Cost)
care achiziioneaz imagini RGB la rezoluia de
320x240 pixeli.
Arhitectura aplicaiei
Arhitectura aplicaiei Modul detecie mn
Modul detecie mn
Modul detecie
elemente componete
Modul inferare gesturi
RGB => HSI
Filtrare H si S
Segmentare
bazata pe regiuni
Etichetare obiecte
Eliminare obiecte
cu arie mic
Arhitectura aplicaiei
Modul detecie elemen-
te componete
Modul inferare gesturi
(nefinalizat)
Detecie proprieti
geometrice
Detecie contur
Translaia sistemului
de coordonate
Decompoziie
palm i bra
Detecie degete
Interpretare
gestic
Afiare
rezultate
Segmentare
Se aplic segmentare bazat pe regiuni:
algoritm region growing pe componentele H si S
Etichetare i eliminare obiecte cu arie
mic (zgomote)
Algoritm de etichetare (cu claselor de echivalen)
Calculare arie obiecte etichetate.
Eliminare obiecte cu arie mic.
Separare palm de antebra
Detectie CM si axa se alungire
Translaia i rotirea sistemelor de coordonate: (x,y) (u, v)
Separare palm de antebra
Determinarea antebratului (delimitat de segmente de
contur cvasiliniare)
Gsirea limitei de separare dintre palm i antebra
Separare palm
Detecie degete
Recalculare centru de mas i axa de alungire.
Algoritm de detecie a degetelor extinse (cercuri cu raze de
diferite valori)
Rezultate
Algoritm aplicat pe o
poz cu palma extins
Algoritm aplicat pe o
poz cu 5 degete extinse
Rezultate
Algoritm aplicat pe o
poz cu 1 deget extins
Algoritm aplicat pe o poz
cu 4 degete extinse
Recunoastere gesturi mana
1. Appearance-Based Real-Time Understanding of Gestures Using
Projected Euler Angles, pp. 57 -66, [1].
2. Static Hand Posture Recognition Based on Okapi-Chamfer Matching,
pp.85-101 [1]
[1] B. Kisacanin, V. Pavlovic, T.S. Huang, Real-Time
Vision for Human-Computer Interaction, Springer
2005.
Detectarea si interpretarea gesturilor minii
din achiziia video in timp real
Proiect de diploma 2009 (Bara Cristian)
Page 2
Specificarea cerinelor i soluia aleas
Cerinele temei:
Detecia gesturilor minii. Se va folosi ca mijloc de achiziie o camer
web. Mna va fi izolat de restul elementelor din imagini.
Soluia aleas:
Utilizarea unei camere web low-cost cu achiziie RGB 320x240x24bpp
Pentru implementarea sistemului s-au utilizat:
Microsoft Visual C++ 2005
Framework-ul OpenCV
Framework-ul OpenGL
Page 3
Arhitectura aplicaiei
Fundal +
obiecte
Sistem de
achiziie:
Camera web
Sistem de
procesare
gesturi
Fereastra
Afiare
rezultat
Maina
OpenGL
Sistem de reprezentare/
manipulare a obiectelor 3D
Page 4
Sistemul de procesare a gesturilor
II)
I)
Translaie RGB - HSV
Binarizare dup spaiul de
culoare al minii
Segmentare
Calcul arie, centru de mas,
direcia minii
Eliminarea antebraului
Detecia i etichetarea
degetelor
Interpretarea gesturilor
III) Modelarea obiectului 3D
Preprocesare I)
Prelucrarea imaginilor
II)
Postprocesare III)
Schema conceptual
Schema conceptual detaliat
Page 5
Preprocesarea
Translaia din spaiul RGB in spaiul HSV (Hue, Saturation, Value)
Conversia ntre modelele de culoare
se face utiliznd formulele:
) (
3
1
B G R V + + =
)] , , [min(
) (
3
1 B G R
B G R
S
+ +
=
)
`

=
B G daca
B G daca
H
:
:
2

)
)] )( ( ) )( [(
)] ( ) [(
arccos(
2
1
B G B R G R G R
B R G R
+
+
=
Page 6
Procesarea imaginilor
Segmentare
Se aplic un algoritm de segmentare Hibrid: combin segmentarea
bazat pe regiuni cu un clustering al punctelor izolate albe si umplerea
arial a clusterelor
Segmentare
Calcul arie, centru de mas,
direcia minii
Eliminarea antebraului
Detecia i etichetarea
degetelor
Interpretarea gesturilor
Page 7
Procesarea imaginilor
Calculul ariei, centrului de mas i a direciei minii
Segmentare
Calcul arie, centru de mas,
direcia minii
Eliminarea antebraului
Detecia i etichetarea
degetelor
Interpretarea gesturilor
-Aria se calculeaz ca suma pixelilor
obiectului .
-Pentru a calcula coordonatele centrului
de mas se calculeaz mai inti
momentul de-a lungul axelor Ox, i Oy .
-Axa de alungire o reprezint direcia cu
cel mai mic moment de ordin 2 (axa de
inerie minim).
Page 8
Procesarea imaginilor
Decompoziia minii n elemente (mn, degete, antebra)
Translatarea originii imaginii n centrul de greutate al obiectului
Eliminarea antebraului
Se realizeaz aplicnd un algoritm de
determinare a monotoniei unei vecinti
de 45 de pixeli a centrului de mas
Segmentare
Calcul arie, centru de mas,
direcia minii
Eliminarea antebraului
Detecia i etichetarea
degetelor
Interpretarea gesturilor
(

cos
sin
sin
cos
R
(

=
ri
ci
T
) (
(

+ =
(

y
x
T R
v
u
Page 9
Procesarea imaginilor
Detecia si etichetarea degetelor
Se determin centrul de mas al suprafeei
rmase (palma + degete)
Se traseaz un cerc de raz = arie_palm/190
(valoare determinat experimental)
Se elimin punctele din interiorul cercului
,rmnnd doar degetele
Se aplic algoritmul de etichetare bazat pe
vecinti
Segmentare
Calcul arie, centru de mas,
direcia minii
Eliminarea antebraului
Detecia i etichetarea
degetelor
Interpretarea gesturilor
Page 10
Procesarea imaginilor
Interpretarea gesturilor
1 deget detectat => starea nr.1 (S1)
trasformare de perspectiv, adic rotaia obiectului
din scen
2 degete detectate => starea nr.2 (S2)
scalarea obiectului din scen
3 degete detectate => starea nr.3 (S3)
obiectul din scen se va schimba
4 degete detectate => starea idle (Si)
mediator de tranziii ntre restul strilor
5 degete detectate => starea nr.5 (S5)
transformata pe culoare a obiectului din scen
Segmentare
Calcul arie, centru de mas,
direcia minii
Eliminarea antebraului
Detecia i etichetarea
degetelor
Interpretarea gesturilor
Page 11
Rezultate
Page 12
Rezultate
Page 13
Rezultate
Page 14
Rezultate
Page 15
Rezultate
Page 16
Bibliografie
http://users.utcluj.ro/~tmarita/IPL/IPCurs.htm
http://users.utcluj.ro/~tmarita/HCI/HCICurs.htm
http://users.utcluj.ro/~tmarita/IPL/IPLAB.htm
Intel OpenCV ReferenceManual :
http://www.cs.unc.edu/Research/stc/FAQs/OpenCV/OpenCVReferenceM
anual.pdf
http://public.cranfield.ac.uk/c5354/teaching/dip/opencv/manual/
Trucco E., Verri A, Introductory techniques for 3D Computer Vision,
Prentice Hall, 1998.
Sistem de detectie si interpretare a
gesturilor bazat pe makere de culoare
Proiect de diploma 2010
Eugen Iclodean
Specificarea cerintelor si solutia aleasa
Cerinele temei:
- Detectia gesturilor mainii.Se va folosi ca mijloc de achizitie
o camera web.Se vor folosi markere de diferite culori pe
varful degetelor pentru a usura detectia.Markerele vor fi
izolate de restul obiectelor din imagine.
Solutia aleasa:
- Utilizarea unei camera web cu ajutorul careia se vor
achizitiona imagini RGB de dimensiunea 640x480
- Pentru implementarea sistemului s-a utilizat mediul de
dezvoltare Microsoft Visual Studio 2008 si bibliotecile
OpenCV (doar pt. achizitia de imagini in timp real)
Arhitectura conceptuala a aplicatiei
Modulul de recunoastere si interpretare a
gesturilor (procesarea imaginilor )
In cadrul acestui modul
pentru fiecare imagine(frame)
primita de la webcam se vor
aplica o serie operatii
Aceste operatii pot fi
clasificate in operatii de:
predetectie , detectie si
inferare gesturi
Predetectia
1. Filtrarea imaginii: se realizeaza prin convolutia imaginii cu un filtru gaussian de
dimensiune 5x5 pt a elimina zgomotul (sursa de informatie nedoriata).Calcularea
elementelor unui nucleului gaussian:
2. Transformarea RGB => HSI: spatiul de culoarea HSI(hue, saturatie, intensitate)
este invariant la variatiile de iluminare ale scenei; se construiesc mai usor relatiile
intre pixeli.Formule:
3. White balance: operatie necesara pentru a reda correct culorile
( ) ( ) ( )
2
2
0
2
0
2
2
2
1
) , (

y y x x
e y x G
+
=
( )
3
B G R
I
+ +
=
( )
)] , , [min(
3
1 B G R
B G R
S
+ +
=

<

=
B G if
B G if
H
2
( ) ( ) [ ]
( ) ( )( ) [ ] |
|
|
|

\
|
+
+
=

2
1
2
1 2
1
cos
B G B R G R
B R G R
Detectia propriu zisa
1. Segmentarea imaginii: se aplica un algoritm de segmentare bazat pe regiunii prin
care se marcheaza toti pixelii din imagine care au valoarea hue intr-un interval.
2. Operatii morfologice: prin operatia morfologica de deschidere se vor elimina
pixelii singulari, iar prin cea de inchidere se vor umple golurile din obiecte.
3. Etichetarea obiectelor: se realizeaza pintr-un algoritm d etichetare cu clase de
echivalenta; in urma etichetarii obiectelor fiecare obiect va putea fi tratat individual;
4. Eliminarea obiecte de arie mica: aria unui obiecte este egala cu numarul de
pixeli ce il formeaza; obiectele de arie mica sunt presupuse zgomote
Rezultatul in urma operatiilor de mai sus:
-markerele de pe degete sunt izlotate
-sunt reprezentate prin galben si violet
Inferare gesturi
Pentru a recunoaste si interpreta gesturi trebuie sa gasim pozitia relativa a
markerelor in imagine
1. Proprietatii geometrice: pozitia relativa a unui obiect este data de centru de
masa; calcularea coord. CM:
2. Inferare gesturi: pentru a construi gesturi ma voi folosi de:
- pozita markerelor in imagine
- distanta dintre anumite markere
- numarul de markere din imagine
- prezenta sau absenta unor markere de anumita
culoare din imagine

=
=
1
0
1
0
_
) , (
1
N
r
N
c
i
i
i
c r rI
Aria
r

=
=
1
0
1
0
_
) , (
1
N
r
N
c
i
i
i
c r cI
Aria
c
Solutie imbunatatita
Daca lumina este focalizata pe markere , zone de pixeli de pe markere se saturau
foarte mult. Rezultau atfel obiecte sparte.In urma etichetarii rezultau un numar mai
mare de obiecte decat cel real(fiecare marker era reprezentat de 2 sau mai multe
obiecte in loc de unul cum era normal).
In aceasta situatia este necesarea
abordarea unei metode de grupare a
zonelor cu denstitate mare de pixeli
Detectia propriu zisa- varianta 2
doar acest modul difera fata de abordarea precendata in care se etichetau obiectele
Pentru a gasi zone in imagine cu densitate mare de pixeli de nuante apropriate am
folosit/implementat algoritmul MBSAS (modified basic sequential algorithmic scheme
) [Theodoridis], care presupune determinarea clusterilor intr-o prima faza dupa care
fiecare punct neasignat inca este adaugat celui mai apropiat cluster.
Un cluster este caracterizat prin :
- centrul clusterului
- cardinalul clusterului numarul de puncte din cluster
Se vor pastra doar clusterii care au un numar de puncte mai mare ca un prag
Starile aplicatiei
Se folosesc 3 culori de markere: rosu, verde si galben
Aplicatia este construita in jurul a 3 stari principale:
- starea 0 aici se realizeaza antreanarea ;din aceasta
stare facand anumite gesturi se va trece in celalate 2 stari
- starea 1 in acesta stare se va pune la dispozitia
utilizatorului o tastatura virtuala asemanatoare cu tastatura unui telefon mobil cu ajutorul
careia se vor scrie diferite caractere; va permite accesarea unei pagini web
- starea 2 se vor recunoaste gesturile: zoom in, zoom out, si un gest
folosit pt a reveni in starea 0
Daca se introduce un deget cu
marker de culoare galbena in
dreptunghiul format de celelate
doua markere: rosu si verde si daca
pozitia celor 2 degete este conform
imaginii din dreapta at. se va trece
in starea 1 , iar daca este ca in
imaginea din stanga at. se va trece
in starea 2
Starea 1
In aceasta stare utilizatorul va putea scrie diferite carcatere cu ajutorul unei tastaturi
virtuale. Starea 1 este impartita la randul ei in 3 substari.
Constrangeri: -pozitia markerului rosu introduce o relatia de deget peste anumit buton
-prezenta markerului de culoare galbena introduce relatia de apare a
butonului.
-numarul de degete din imagini va indica caracterul rezultat sau
actiunea rezultata
Starea 1
Degetul cu marker de culoare rosie
este peste butonul IE , in momentul
in care in imagini succesive va fi
prezent degetul cu marker galben iar
numarul de degete va fi egal cu 5 ,
se va accesa o pagina de internet
avand URL-ul format din caracterele
tastatate anterior si care au fost
pastrate intr-un vector de caractere
Degetul cu marker de culoare rosie
este peste butonul 1, in momentul in
care in imagini succesive va fi prezent
degetul cu marker galben tasta 1 se va
considera apasat, iar numarul de
degete din imagini va da caracterul
-starea este 1, substarea este 1
Starea 1
Se folosesc 2 ferestre pentru afisarea rezultatelor:
-in imaginea din stanga sunt indetificate markerele(le este schimbata culoarea)
-se afiseaza valorile hue care au fost setate la antrenare- stanga sus
-valorile hue si a saturatiei din zona de antrenare sunt afisate in dreapta sus
-numarul de degete: 4 in imaginea de mai jos
-In stanga jos este afisata adresa URL formata prin apasarea a diferitor butoane in
imaginea de mai jos este gsp.ro
-daca un caracter a fost gresit el se poate sterge- tasta 05 degete in imagine
Starea 2
Sunt neceare 4 degete: 2 degete avand marker rosu, iar 2 degete cu marker verde
Se va calcula distanta euclidiana intre degetele cu marker de aceeasi culoare:
-daca distanta intre markerele rosii si markerele verzi va creste in imagini succesive
si daca distanta intre markerele verzi este mai mica decat distanta intre degetele rosii
atunci gestul va recunoscat ca zoom in- se va afisa testul zoom in ; Font size-ul
pentru textul zoom in va creste de fiecare data cand se va face acest gest.
Starea 2
Sunt neceare 4 degete: 2 degete avand marker rosu, iar 2 degete cu marker verde
Se va calcula distanta euclidiana intre degetele cu marker de aceeasi culoare:
-daca distanta intre markerele rosii si markerele verzi va scadea in imagini succesive
si daca distanta intre markerele verzi este mai mare decat distanta intre degetele rosii
atunci gestul va recunoscat ca zoom out- se va afisa testul zoom out ; Font size-ul
pentru textul zoom out va scadea de fiecare data cand se va face acest gest.
Starea 2
Pentru revenirea in starea initiala 0 se va face urmatorul gest:
- toate degetele cu marker vor fi apropiate astfel incat distanta intre markere rosii si
distanta intre markerele verzi sa fie mai mica decat un prag- se vor apropia cat de
mult posibil cele 4 markere.
Concluzii
Contributii: - implementare algoritmilor de
procesare/segmnetare, interpretare a
gesturilor.
Realizari: -aplicatie prototip, +/-
Dezvoltari ulterioare extinderea modulul d
einterpretare a gesturilor si a aplicatiilor
deservite + integrare cu alte aplicatii
Bibliografie
http://users.utcluj.ro/~tmarita/IPL/IPCurs/IPCurs.htm
http://users.utcluj.ro/~tmarita/IPL/IPLab/IPLAB.htm
http://users.utcluj.ro/~tmarita/HCI/HCICurs.htm
Sergiu Nedevski, Prelucrarea Imaginilor si Recunoasterea
Formelor, Editura Albastra, Cluj-Napoca, 1998
Appearance-Based Real-Time Understanding of Gestures Using
Projected Euler Angles, pp. 57 -66, [1].
Static Hand Posture Recognition Based on Okapi-Chamfer
Matching, pp.85-101 [1]
[1] B. Kisacanin, V. Pavlovic, T.S. Huang, Real-Time Vision for Human-
Computer Interaction, Springer 2005.