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) Exemple du résultat de calculer une moyenne dimages:
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: Limage la plus récente a alors un poids de α, limage 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 limage 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)
Une première technique pour reconnaître des gestes de mains
Le gradient Le gradient est un vecteur calculé à partir dune 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 limage.
Pour estimer lorientation de larête passant par un pixel : Utiliser un estimé du gradient: Langle du vecteur donne lorientation La norme du vecteur est proportionnelle au contrast entre les deux côtés de larête
Exemples de gradients
Histogrammes dorientation : apprentissage Freeman et al. 1998, Computer Vision for Interactive Computer Graphics
Histogrammes dorientation : 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 dorientation : 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 noccupe pas la majorité de limage Freeman et al. 1998, Computer Vision for Interactive Computer Graphics
Une deuxième technique pour reconnaître une main (sur un fond monochrome) Dun article de Malik et Laszlo (2004)
Deuxième technique Comment distinguer les pixels du fond des pixels de la main ? –Il faut segmenter limage en deux parties: lavant plan (foreground) et larrière plan (background)
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 quun 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 davant plan, et évaluer langle entre les pixels i-k, i, et i+k …
Deuxième technique
angle position i Comment trouver le bout de chaque doigt ?
Deuxième technique Dun article de Malik et Laszlo (2004) Comment trouver la direction de chaque doigt ?
TAFFI (Thumb and Fore-Finger Interface; Andy Wilson 2006)
Tanglible User Interface (TUI) : reactable ( )