Interfaces perceptuelles Interaction avec une caméra.

Post on 04-Apr-2015

111 views 0 download

Transcript of Interfaces perceptuelles Interaction avec une caméra.

Interfaces perceptuelles

Interaction avec une caméra

Comment enlever le bruit dans une image de caméra ?

• Calculer la moyenne des N images les plus récentes

• On a besoin de stocker les N images le plus récentes• Désavantages: temps de calcul O(N), et mémoire

requis O(N)

t

Nti

iIN

tI1

)(1

)(

Exemple du résultat de calculer une moyenne d’images:http://marcodsouza.blogspot.com/2009/04/reduce-noise-in-your-digital-photos.html

Moyenne des 3 images précédentes

Comment enlever le bruit dans une image de caméra ? (suite)

• Calculer une moyenne des images, avec un poids qui diminue de façon exponentielle avec le temps:

• L’image la plus récente a alors un poids de α, l’image précédente un poids de (1-α)α, la précédente (1-α)2α, la précédente (1-α)3α, etc.

• On a seulement besoin de stocker la moyenne précédente, et l’image actuelle, pour calculer la nouvelle moyenne

• Temps de calcul O(1), mémoire requis O(1) (si on laisse tomber la résolution des images comme étant des constantes)

)1(1)()( tIiItI

Une première technique pour reconnaître des gestes de

mains

Le gradient

• Le gradient est un vecteur calculé à partir d’une fonction scalaire

• Les changements sont plus rapides dans la direction du gradient. Autrement dit, le gradient est perpendiculaire aux “arêtes” (“edges”, ou “edgels”) dans l’image.

y

p

x

pp ,

Pour estimer l’orientation de l’arête passant par un pixel :

• Utiliser un estimé du gradient:

• L’angle du vecteur donne l’orientation• La norme du vecteur est proportionnelle au

contrast entre les deux côtés de l’arête

)1,(),(),,1(),(),( jipjipjipjipjip

Exemples de gradients

Histogrammes d’orientation : apprentissage

Freeman et al. 1998, “Computer Vision for Interactive Computer Graphics”

Histogrammes d’orientation : reconnaissance

NB: Un retour visuel de la confiance aide à déboguer et à apprendre à exprimer le bon geste.

Freeman et al. 1998, “Computer Vision for Interactive Computer Graphics”

Histogrammes d’orientation :Cas problématiques pour une main

Rotation globale de la main

Des ensembles de doigts différents, mais orientés dans la même direction

La main n’occupe pas la majorité de l’image

Fre

em

an

et a

l. 19

98

, “Co

mp

ute

r Visio

n fo

r Inte

ractive

Co

mp

ute

r G

rap

hics”

Une deuxième technique pour reconnaître une main

(sur un fond monochrome)

D’un article de Malik et Laszlo (2004) http://doi.acm.org/10.1145/1027933.1027980

Deuxième technique

• Comment distinguer les pixels du fond des pixels de la main ?– Il faut “segmenter” l’image en deux parties:

l’avant plan (“foreground”) et l’arrière plan (“background”)

Deuxième technique

Deuxième technique

Deuxième technique

Deuxième technique

Deuxième technique

Questions:

- Est-ce que le seuil à utiliser pourrait changer à mesure que les conditions d’éclairage changent, ou avec différents utilisateurs?

- Comment trouver un bon seuil de façon automatique?

Deuxième technique

(Ici, avec du bruit rajouté manuellement.)

Deuxième technique

On identifie chaque region de pixels connexes avec une couleur unique (ceci peut se faire, par exemple, avec des opérations de “floodfill”).

Deuxième technique

On élimine toutes les régions avec une aire plus petite qu’un seuil, et on garde au maximum les deux régions les plus grandes.Question: comment identifier la main gauche et la main droite ?

Deuxième technique

• Pourquoi un fond noir ?– Avantages: fonctionne assez bien même avec

des ombres

• Et un fond vert ou bleu ?– Pourrait fonctionner mieux si la peau a une

couleur foncée

Deuxième technique

• Comment trouver les doigts ?

Deuxième technique

Suivre le contour des pixels d’avant plan, et évaluer l’angle entre les pixels i-k, i, et i+k …

Deuxième technique

Deuxième technique

Deuxième technique

Deuxième technique

angle

position i

Comment trouver le bout de chaque doigt ?

Deuxième technique

D’un article de Malik et Laszlo (2004)http://doi.acm.org/10.1145/1027933.1027980

Comment trouver la direction de chaque doigt ?

TAFFI (Thumb and Fore-Finger Interface; Andy Wilson 2006)

http://research.microsoft.com/en-us/um/people/awilson/publications/wilsonuist2006/wilsonuist2006.htmlhttp://doi.acm.org/10.1145/1166253.1166292

Tanglible User Interface (TUI) : reactable ( http://www.reactable.com/ )