NAO-PIC-EDAVISION-v1.0 État de l Art de la Vision. PIC Naolbeuk

Dimension: px
Commencer à balayer dès la page:

Download "NAO-PIC-EDAVISION-v1.0 État de l Art de la Vision. PIC Naolbeuk"

Transcription

1 NAO-PIC-EDAVISION-v1.0 État de l Art de la Vision PIC Naolbeuk

2 Page 2

3 Auteur(s) Destinataire(s) Résumé PAUL GAY, FLORIAN LÉGER, LUC MIOULET MICHEL MAINGUENAUD, Membres du PIC Naolbeuk, client Le présent document est un État de l Art des techniques relatives à la vision dans le cadre du PIC Naolbeuk Thème et mots clés État de l Art, Vision, Lot 1 Nature de la dernière modification Référence Création du document. NAO-PIC-EDA-VISION-v1.0 Exemplaire en diffusion contrôlée Exemplaire en diffusion non contrôlée Page 3

4 Page 4

5 Page de service Historique des évolutions Version Date Auteur(s) Modification(s) Parties modifiées VISIONv PAUL GAY, FLORIAN Toutes LÉGER, LUC MIOULET Création du do- cument. Suivi des diffusions Version Date Destinataire(s) VISIONv Interne : MICHEL beuk. MAINGUENAUD, Membres du PIC Naol- Externe : NICOLAS DELESTRE, NICOLAS MALANDAIN. Toute remarque ou difficulté d application de la présente procédure est à signaler à la Direction Qualité des PIC. Signatures Fonction Nom Date Visa Vérificateur Chef Adjoint YVES PARÈS Validateur Chef PIC GUILLAUME VINCKE Approbateur Client NICOLAS MALANDAIN Documents en référence L ensemble des documents listés ci dessous sont consultables à la bibliothèque de l INSA de Rouen sur le site du Madrillet. Document Dossier de Spécifications Externes NAO-PIC-DSE Dossier d Expérimentation NAO-PIC-DDE Référence DSE DDE Page 5

6 Terminologie Le tableau suivant indique les différentes définitions et abréviations utilisées dans ce document. Abreviation AdaBoost BSD CEA CHA CNRS DSE EM INRIA OpenCV RAVL SIFT SURF SVM CHA NAO Signification Adaptive boosting (amélioration adaptive) Berkley Software Distribution (Distribution logicielle Berkley) Commissariat à l Énergie Atomique Clusterisation Hierarchique ascendante Centre National de la Recherche Scientifique Dossier de Spécifications Externes Expectation-Maximisation Institut National de Recherche en Informatique et Automatique Open Computer Vision Recognition And Vision Library (bibliothèque de Vision et Reconnaissance) Scale Invariant Feature Transform (transformée de caractéristiques avec invariance à l échelle) Speeded Up Robust Feature (caractéristiques robustes en accéléré) Support Vector Machine (Machine à Vecteur de Support ou Séparateur à Vaste Marge) Clusterisation Hiérarchique ascendante Robot Nao produit par la société Aldébaran Terme Bibliothèque Discrimination Prétraitements Reconnaissance Segmentation Classification Signification Ensemble de fonctions informatique offrant de nouvelles fonctionnalités Partie de la vision qui permet de dire si une image représente un objet ou non Traitements en amont servant à améliorer la qualité de l image Terme identique à la discrimination Découper une image selon certaines caractéristiques Principe de structurer un ensemble de données en classes homogènes Page 6

7 Table des matières Page de service 5 1 Domaine d application Généralités Organisation du document Introduction Objectifs du document Structure du document Prétraitements Algorithme du plus proche voisin Algorithme de redimensionnement bilinéaire Algorithme de redimensionnement bicubique Filtre d atténuation linéaire Filtre médian Augmentation de contraste par modification d histogramme Segmentation Soustraction d arrière plan Opérateur de Sobel Opérateur de Canny Contours actifs Amincissement, poursuite et fermeture de contour Seuillage dans une approche par région Croissance et fusion de régions Meanshift Ligne de partage des eaux Transformée de Hough Reconnaissance Méthode des K-Plus proches voisins Support Vector Machine Algorithme de Viola et Jones Speeded Up Robust Features Spatialisation Stéréovision Homographie Bibliothèques de vision OpenCV CImg Page 7

8 7.3 Camellia RAVL Conclusion 41 9 Annexes 43 Page 8

9 Chapitre 1 Domaine d application Ce chapitre décrit l objectif de ce document ainsi que sa structure. 1.1 Généralités Le présent document est la partie de l État de l Art concernant la Vision réalisé par le Projet INSA Certifié (PIC) Naolbeuk. Cet État de l Art a été réalisé pour le client du PIC conformément à sa demande matérialisée dans le Dossier de Spécifications Externes (DSE) et fait partie des livrables du Lot 1. L objectif de ce document est de décrire l existant afin de déterminer des possibles méthodes qui pourront s avérer utiles lors de la réalisation du projet du PIC Naolbeuk et de guider le choix du deuxième livrable. 1.2 Organisation du document Ce document présente tout d abord les prétraitements, puis la segmentation, la reconnaissance, et enfin les bibliothèques qui permettent le traitement de l image. Au sein de ces quatres parties, différents objets sont analysés, ils peuvent être des bibliothèques, des algorithmes, des filtres, etc. Chaque objet est analysé de la façon suivante : 1., 2. (Intérêts), 3. Inconvénients (Difficultés), 4. Corrélation au DSE (si possible). Page 9

10 Page 10

11 Chapitre 2 Introduction Ce chapitre défini les objectifs du document et et son organisation. 2.1 Objectifs du document La vision au sein du Projet INSA Certifié (PIC) Naolbeuk est l ensemble des traitements réalisés sur les données des deux caméras du robot Nao pour identifier son environnement. Le but de cet État de l Art est d obtenir les connaissances nécessaires pour mettre en place une chaîne de traitement de l image temps réel. Cette chaîne doit modéliser l environnement du Nao. Ici le terme modélisation signifie : le fait de reconnaître l état d une partie ainsi que la position des pièces pour pouvoir les attraper. Dans le cas de jeux où tous les joueurs jouent en même temps il doit aussi être possible d acquérir les informations pour intéragir avec les autres joueurs. 2.2 Structure du document Au cours des recherches 5 axes autour de la vision ont été dégagé : Les prétraitements, La segmentation, La reconnaissance, La spatialisation, La recherche de bibliothèques de vision. Ces axes constituent l organisation du document. Page 11

12 Page 12

13 Chapitre 3 Prétraitements Le prétraitement est une étape du traitement de l image qui a lieu juste après l acquisition et dont le but est de transformer l image afin qu elle remplisse les conditions permettant un traitement convenable. Il existe plusieurs types de prétraitements : Le redimensionnement : le redimensionnement sert à changer la taille d une image. Il est utile lorsque les filtres en aval de la chaîne de traitement requièrent une image de taille différente que celle fournie par le matériel d acquisition. Trois algorithmes de redimensionnement seront détaillés : Algorithme du proche voisins, Algorithme de redimensionnement bilinéaire, Algorithme de redimensionnement bicubique. La réduction du bruit : les capteurs utilisés sont susceptibles de produire du bruit. Ce bruit doit être atténué pour que le processus de traitement de l image puisse être correctement effectué. Deux types de bruits avec leurs filtres associés seront présentés : Filtre d atténuation linéaire, Filtre médian. L augmentation de contraste qui permet de réarranger l information qu on a sur une image afin qu elle soit plus accessible. Deux méthodes seront présentées : Augmentation de contraste par modification d histogramme, Filtre passe-haut. 3.1 Algorithme du plus proche voisin Cet algorithme réalise un redimensionnement de l image, en approximant la valeur du pixel actuel par une méthode du plus proche voisin. Le pixel de coordonnées (x, y) de l image de destination a pour valeur celle du pixel de l image d origine dont la position est la plus proche lorsque les deux images sont superposées et mises à la même échelle. Une description de cette technique est disponible sur le site d algorithmique Tech-algorithme.com[8] Implémenté dans beaucoup de librairies de Vision, car l algorithme est très simple, Très rapide. Désavantages Mauvaise qualité de l image de sortie (pixelisation). Page 13

14 3.2 Algorithme de redimensionnement bilinéaire Cet algorithme réalise un redimensionnement par interpolation de valeurs La valeur du pixel de coordonnées (x, y) de l image de destination est calculée en faisant une interpolation linéaire en deux dimensions de l image d origine. Simple à implémenter, Implémenté dans beaucoup de librairies de Vision, Rapide, Produit des images floutées (utile pour le débruitage). Désavantages Produit des images floutées (perte de détails, atténuation des contours). 3.3 Algorithme de redimensionnement bicubique Cet algorithme de redimensionnement réalise une interpolation bicubique. La valeur du pixel de coordonnées (x, y) de l image de destination est calculée en faisant une interpolation cubique en deux dimensions de l image d origine. Algorithme implémenté dans beaucoup de librairies de Vision, Produit des images nettes. Désavantages Relativement lent en temps d exécution, Peut produire un effet de halo sur les contours de l image. 3.4 Filtre d atténuation linéaire Le filtre linéaire est surtout efficace contre le bruit gaussien additif. C est à dire un champ aléatoire caractérisé par une densité de probabilité suivant une loi normale dont les valeurs sont ajoutées à chaque pixel de l image. Les étapes de cette méthode sont : Page 14

15 Fixer une taille de matrice n impaire, Parcourir une matrice carrée n n sur l image, Remplacer la valeur du pixel central de la matrice par la moyenne (pondérée ou non) des pixels de la matrice. La somme des coefficients de pondération de la matrice doit être égale à 1. Une description de ce filtre est disponible sur un cours du Laboratoire des Sciences de l Image, de l Informatique et de la Télédétection [16]. Réduit l influence de petits détails sur les contours, qui se trouvent ainsi simplifiée, Rend les contours des objets plus lisses, Réduit l influence du bruit sur l image des arêtes. Désavantages Floute l image. 3.5 Filtre médian Le filtre médian est surtout efficace contre le bruit poivre et sel, c est à dire un bruit caractérisé par une distribution spatiale suivant une loi normale de points soit blancs, soit noirs sur l image. Il fonctionne de la manière suivante : 1. Fixer une taille de matrice n impaire, 2. Parcourir une matrice carrée n n sur l image, 3. Remplacer la valeur du pixel central de la matrice par la valeur médiane des pixels de la matrice. Il est possible de trouver un complément à cette courte introduction sur le cours de Christian RONSE [15] Peut s appliquer aux images binaires (à deux valeurs), et le résultat restera une image binaire, Floute peu, Est plus efficace que le filtre linéaire sur le bruit poivre et sel, Ne rend pas l image floue (sur un bruit gaussien additif) mais enlève moins de bruit que le filtre linéaire. Page 15

16 Désavantages S avère inutile pour créer des dégradés dans une image dont les niveaux de gris ont été sous-quantifiés, Ne peut pas restaurer une image en demi-ton, au contraire il accentuera l effet de binarisation, Ne rend pas l image floue (pour un bruit gaussien additif) mais enlève moins de bruit que le filtre linéaire. 3.6 Augmentation de contraste par modification d histogramme On applique à chaque pixel de l image une fonction pour augmenter le contraste ou le réduire, en fonction de son niveau de gris. Le choix de cette fonction se fait généralement en regardant l histogramme de base de l image.voici les principales méthodes : L étirement d histogramme : le terme de normalisation est aussi employée. Le but est que tout les niveaux de gris de l image soient utilisés, cela peut être défini de la manière suivante : f(n) = Dilatation des pixels sombres et réciproquement des pixels clairs, Égalisation d histogramme : le but est que tous les niveaux de gris soient utilisés équitablement. Une formule pour égaliser un histogramme est : x min, max min s = f(n) = round(255 n j=1 P n(j)) Où n est le niveau de gris de l image initiale dont il faut trouver la correspondance dans l histogramme égalisé, s un niveau de gris de l image traitée. Où P n (j) est la probabilité qu un pixel de l image initiale est le jème niveau de gris, round est simplement une fonction arrondie. Pour égaliser un histogramme, des algorithmes plus spécifiques sont aussi utilisés et peuvent s adapter à tout type d image. Augmentation du contraste, Simple à implémenter. Inconvénients Pour des images qui contiennent peu de niveau de gris, l égalisation d histogramme a moins de sens. En effet, l information ajoutée peut être inexploitable. Corrélation avec le DSE Pouvoir augmenter les contrastes d une image facilite les traitements futurs, c est le cas pour la segmentation. Page 16

17 Filtre passe-haut Le filtre passe-haut (appelé unsharp mask en anglais) nécessite une détection des contours et d être en mesure d élaborer un gabarit de filtre, ce qui peut être délicat. Une fois les contours détectés, un filtre passe-haut leur est appliqué. Il va augmenter le contraste sur les bords detectés. Cette méthode est trés utilisée pour ses effets visuels car elle augmente la netteté de l image.. Fournit une alternative à la modification d histogramme. Inconvénients Utilisé pour des effets visuels et semble peu utilisé pour d autres applications. Corrélation avec le DSE Permet d augmenter les contrastes d une image. Page 17

18 Page 18

19 Chapitre 4 Segmentation La segmentation équivaut à detecter des contours ou à former des régions homogènes. Il existe de nombreuses techniques pour segmenter une image. Elles visent soit à former directement les régions d une image, soit à détecter les contours dans une image et en déduire ensuite les régions. Certains outils semblent néanmoins récurrents quelque soit la technique envisagée. Par exemple les opérateurs gradients, les techniques de classication non-supervisées, les seuillages. Il existe de nombreuses méthodes de segmentation, pour les évaluer, un aperçu visuel de l image est souvent suffisant pour un jugement rapide, toutefois, des critères plus rigoureux peuvent cependant être définis, des exemples en sont donnés dans cet article qui fait un État de l Art sur les différents moyens d évaluation [14]. Cette partie présente les méthodes et familles de méthodes suivantes : Soustraction d arrière plan, Opérateur de Sobel, Opérateur de Canny, Contours actifs, Amincissement, Poursuite et fermeture de contours, Seuillage dans une approche par régions, Croissance et fusion de régions, Meanshift, Ligne de partage des eaux, Transformée de Hough. 4.1 Soustraction d arrière plan On peut repérer si des objets ont été déplacé ou si de nouveaux objets sont apparus sur une image en comparant l ancienne image à la nouvelle. Cette méthode est limitée par les possibles variations d arrière plans telles que les variations de luminosité. Pour supprimer ces inconvénients, des méthodes de modélisation par mélange de gaussiennes et par un codebook ont été créées. Pour plus de détails, cet article qui propose une implémentation du modèle de codebook pour faire de la segmentation est une bonne ressource [9]. Rapide en temps de calcul. Page 19

20 Désavantages Mal adaptée pour des scènes qui changent progressivement, Sensible aux changements d arrière-plan, il faut gérer les mises à jour de l image d arrière plan. Corrélation avec le DSE Cette technique peut être utile une fois le plateau de jeu et les différentes pièces localisées pour suivre l évolution des objets à un coût de calcul peu élevé et de manière simple. 4.2 Opérateur de Sobel Cet opérateur est un opérateur gradient. Le principe est d utiliser une fonction dont les variations correspondent aux contours d une image. Ainsi, rechercher les contours revient à retrouver les maximums de gradient de cette fonction. Dans la pratique, l opérateur de Sobel est un masque de taille variable. Notons que ce filtre est directionnel, c est à dire qu il ne détecte que les contours orientés dans une certaine direction, il faut donc utiliser plusieurs filtres pour avoir les contours dans toutes les directions. Cet opérateur est simple et rapide, Il est utilisé dans des cas de contraintes temps réels. Désavantages Il est sensible au bruit et fournit des contours assez épais, Il n assure pas d obtenir des contours fermés (comme décrit dans l article de [17]). Corrélation avec le DSE Cet opérateur permet de detecter les contours d une image. Il pourra être utile pour détecter, des élèments tels que les pièces ou les plateaux de jeu. 4.3 Opérateur de Canny Canny a cherché à déterminer de façon analytique un filtre à réponse impulsionnelle finie à partir de trois critères : Page 20

21 Un critère de bonne détection garantissant une réponse forte en sortie du filtre même en présence de faibles contours sur l image d entrée, Un critère de bonne localisation du contour, Un critère d unicité de la réponse permettant d assurer une seule détection pour un contour et ainsi d éviter les effets de rebond. Les critères de Canny cités dans la description, Intègre des fonctions de débruitages. Désavantages Problèmes d effets de bord, Plus coûteux en calcul que Sobel, Mélange de structures voisines, Délocalisation des bords, N assure pas d obtenir des contours fermés. Corrélation avec le DSE Cet opérateur est plus puissant que le filtre de Sobel, mais il est aussi plus gourmand en temps de calcul. 4.4 Contours actifs Lorque la méthode des contours actifs est utilisée (traduits en snake en anglais), il est supposé que la région recherchée est déjà enfermée dans un contour qui l englobe. il faut ensuite définir alors une fonction d énergie à minimiser pour que le contour initialement trop large se resserre sur la région. Une description de ces différentes méthodes est disponible dans les cours de l école d ingénieurs de Luminy[13]. Il y a plusieurs approches pour faire des contours actifs : Modèles discrets : triangulations, modèles polygonaux. Ce sont les plus simples à mettre en oeuvre, Modèles paramétriques : B-splines, superquadriques. Ils ont une optimisation généralement plus lourde, demandent des modèles de surfaces aux propriétés connues, mais offrent une meilleure interpolation, Modèles de surfaces implicites. Mise en œuvre relativement simple, gestion automatique des changements de topologie. Peut isoler un objet si il existe un bon à priori de la zone où il se trouve, Page 21

22 Fournit des contours fermés. Désavantages Il faut connaitre un contour approximatif de l objet, Si le contour initial entoure deux objets, il peut ne pas se scinder en deux une fois l algorithme lancé. Corrélation avec le DSE Il est fréquent dans les jeux de société qu il existe des connaissances a priori sur la position des différents éléments. Par exemple, dans un jeu d échecs, les pièces sont toujours disposées de la même façon au début. 4.5 Amincissement, poursuite et fermeture de contour La plupart des méthodes parcourues jusqu ici ne garantissent pas des contours fermés ce qui est pourtant indispensable pour pouvoir définir des régions distinctes dans l image à partir des contours. Pour obtenir cette fermeture de contours, deux approches ont été rescencé lors de la recherche de ressources de cet EDA : L approche par graphe : approche de Viterbi, programmation dynamique ; L approche par automate. Le choix de la méthode se fait par compromis entre le coût de calcul et l efficacité requise. L approche par graphe est plus complexe et plus coûteuse mais est plus efficace que les automates. Ce travail de fermeture de contours semble complémentaire aux opérateurs gradients déjà vus dans les parties 4.2 et 4.3 de cet État de l Art. Désavantages Cela ajoute une opération de plus sur la chaîne de traitement. Corrélation avec le DSE Cette méthode peut permettre d avoir une segmentation plus efficace de nos images. Page 22

23 4.6 Seuillage dans une approche par région L hypothèse est faite que les régions recherchées sont caractéristiques du reste de l image en fonction d un certain critère simple et accessible (niveau de gris, niveau de saturation ou autres). Un seuil est alors défini pour classer efficacement les pixels d une image dans les différentes régions. Le terme segmentation par seuillage multiple est utilisé car chaque région est défini par un ou plusieurs seuils comme par exemple dans le cas d un seuillage à hysteresis. Il est utilisé pour former une région en selectionnant des pixels de la manière suivante : 1. Définir deux seuils : un seuil haut et un seuil bas. 2. Ne retenir que les pixels dont la valeur est au-dessus du seuil haut. 3. Ajouter ensuite les pixels voisins qui passent au dessus du seuil bas et qui avoisinent les pixels déjà retenus. La validation de l hypothèse et le calcul des seuils peut se faire en étudiant l histogramme de l image. La valeur du seuil dépend aussi de ce qui est recherché. Certaines techniques envisagent l histogramme comme une somme de gaussiennes et implémentent une méthode de classification de type Expectation Maximisation (EM) pour trouver les modes de l histogramme et en déduire ensuite les seuils. Simple à mettre en oeuvre. Désavantages Il peut y avoir des difficultés avec les dégradés, Les petits objets peuvent êtres perdus, La technique n est plus réalisable à partir d un certain nombre de seuils. (c est à dire si l objectif est de trouver de nombreuses régions). L hypothèse de départ que les régions sont caractéristiques n est alors plus respectée. Deux pixels non voisins peuvent être classés dans la même zone Corrélation avec le DSE Il semble faisable de se placer dans des conditions telles que l hypothèse soit réalisée. Ainsi, les images de jeux de société peuvent être composées de régions facilement détectables sur un histogramme (par exemple une région noire et une région blanche pour les échecs). Cela peut servir de première approche pour la segmentation. Page 23

24 4.7 Croissance et fusion de régions Ces méthodes permettent de créer directement les régions d une image. Ces méthodes doivent disposer d une distance pour quantifier la ressemblance entre deux régions Principe de croissance de régions : partir de quelques pixels répartis sur l image. 1. Choisir quelques pixels dans des zones où il est probable qu il y a une région à former. Chacun de ces pixels de départ correspond à une région. 2. Ajouter à chaque itération les pixels voisins si le résultat de la comparaison indique qu ils sont de la même classe, Principe de fusion de régions, reprendre le principe de Clusterisation Hiérarchique Ascendante (CHA) : 1. Considérer alors que chaque pixel est une région. 2. Fusionner les deux régions les plus proches du point de vue de la métrique qui a été fixé jusqu à ce que l image soit composer d une seule région. Ainsi au cours de l algorithme différents états de segmentation sont obtenus. Il reste à séléctionner l état qui semble le plus pertinent, par exemple en fonction de la distance moyenne qui sépare deux régions. Un point important de ces méthodes est de trouver arbitrairement un moyen de comparer deux régions. Il en existe de nombreux et ils n ont pas tous la même signification, il sont à choisir en fonction de la caractéristique intéressante. Il faut aussi décider du nombre de régions à obtenir. Le principe est expliqué dans le cours de M. Mavromatis [12]. Le choix du critère permet de chercher de nombreuses caractéristiques. Désavantages La difficulté est de trouver le seuil de décision et le critère de comparaison des régions. Corrélation avec le DSE Les plateaux de jeu ont des couleurs simples et souvent largement différentes (échiquier en noir et blanc par exemple), les images des plateaux de jeu pourront donc bien s appliquer à ce type de traitement car les critères de comparaison seront simples. 4.8 Meanshift Le Meanshift est un algorithme de classification non supervisé. C est une méthode itérative qui travaille localement pour chaque pixel, en fonction de ses voisins les plus proches. il Page 24

25 utilise pour cela des méthodes à partir d opérateurs gradient, comme ceux présentés dans les parties 4.2 et 4.3. Une description plus approfondie est disponible sur le cours de Jan Kybic [10]. Pas besoin d avoir d a priori sur les probabilités de l image. Désavantages Complexité quadratique : la convergence peut être lente ; Difficile de trouver les paramètres globaux pour des images hétérogènes. Corrélation avec le DSE Les méthodes de classification non supervisées semblent permettre une approche différente par rapport aux gradients et aux études d histogrammes pour notre segmentation d image. De plus elle semble particulièrement robuste, elle pourrait donc donner des résultats là où d autres méthodes échoueraient. 4.9 Ligne de partage des eaux Cette méthode (appelée watershed en anglais) utilise les gradients d une fonction de l image. À partir d une deuxième image topologique qui est construite à partir des valeurs du gradient de la première, un seuil est appliqué pour ne garder que les pics de gradients. Il peut être utile de définir certaines régions de l image topologique comme ne contenant pas de pics si elles ne contiennent pas de contours intéressants. Une description plus détaillée de cette technique se trouve dans l article de S. Beucher [2]. Cette méthode implémente les méthodes d opérateur gradients et peut produire des régions de segmentation. Par contre, cette méthode peut conduire à une sursegmentation, une méthode destinée à y remédier est le waterfall. Pour plus d informations, se référer au cours de segmentation par des techniques de morphologie mathématiques du laboratoire Centre de Morphologie Mathématiques[4]. Cette méthode segmente l image et peut facilement intégrer un a priori sur l image, L absence de connaissances sur l image n empêche pas la méthode de donner des résultats exploitables. Désavantages Cette méthode peut conduire à une sursegmentation. Page 25

26 Corrélation avec le DSE Cette méthode est robuste : elle peut donner de bons résultats sur une plus grande variété d images. Elle pourra être utilisée lorsque d autres méthodes comme les études d histogrammes ne sont pas applicables Transformée de Hough Cette méthode permet de répérer certaines configurations dans une image. Sous sa forme première elle est utilisée pour retrouver les lignes droites d une image. Elle est aussi utilisée pour détecter des cercles. Des travaux ont été réalisé pour l adapter à la détection de contours en les considérant comme une suite de segments. Cette méthode ne demande pas d a priori sur l image, C est une méthode efficace dédiée à la recherche de lignes. Désavantages Cette méthode a besoin d une adaption pour trouver des objets. Corrélation avec le DSE Les éléments des jeux de société ont souvent des formes géomètriques. Une transformée de Hough pourrait donc permettre de reconnaitre les lignes qui les composent. Page 26

27 Chapitre 5 Reconnaissance Ce chapitre aborde les méthodes liées au décisionnel : après avoir traîté et analysé une image il est nécessaire de prendre des décisions sur son contenu. Pour cela, les méthodes suivantes sont utilisées : Méthode des K-Plus proches voisins, Support Vector Machine (SVM), Algorithme de Viola et Jones, Speeded Up Robust Features (SURF). 5.1 Méthode des K-Plus proches voisins La méthode des K-Plus proches voisins (décrite dans l article de Hart [6]), est l une des méthodes de classification les plus simples. Elle est basée sur la similarité des éléments entre eux. Losque l on veut déterminer la classe d un nouvel élément on le compare en terme de distance à tous les autres éléments. On sélectionne alors ses k plus proches voisins. Ensuite par un vote majoritaire des k voisins on détermine la classe du nouvel élément, pour cette raison il est important de prendre k impair : un vote pair donnant un ne permet pas de déterminer une classe (on doit donc choisir au hasard). Cette méthode ne détermine pas les informations qui permettent de calculer la similarité des éléments entre eux. Il est donc nécessaire de trouver soit même les informations qui permettent de faire de la discrimination. Il est nécessaire de réduire et de centrer l ensemble des informations traitées : on évite ainsi qu une information prenne le pas sur toutes les autres lors du calcul de distance. Extrêmement simple à mettre en œuvre, Ne nécessite pas une grande base d apprentissage, L apprentissage est très court. Inconvénients Lente de par la nécessité de recalculer la distance à tous les autres éléments à chaque fois, Demande beaucoup de mémoire pour garder en mémoire les distances, Des résultats très aléatoires : dépend entièrement des informations discriminantes choisies et des informations d apprentissage. Page 27

28 Corrélation avec le DSE Cette méthode est très simple à implémenter, cependant sa lenteur et son imprécision n en font pas un outil à long terme certain. Dans un jeu d échec à l exception du cavalier, toutes les pièces sont très semblables que ce soit dans le domaine spatial ou fréquentiel. Son utilisation pour le prototype peut être envisagée. 5.2 Support Vector Machine La théorie derrière les SVM est une généralisation des classifieurs linéaires. Cette théorie est expliquée en détail dans le dossier de Steve R. Gunn [5]. Étant donné la représentation d objets tous labellisés, le principe est de déterminer la caractéristique ou la combinaison de caractéristiques qui permet de séparer au mieux les données. Les SVM transforment l espace de données en un espace de plus grande dimension dans le but de trouver une séparation des classes qui soit linéaire et maximale, c est ce que l on appelle l hyperplan. Les points de chaque classe les plus proches de l hyperplan sont appelés les vecteurs de support. Si -1 représente une classe et 1 une autre classe, le séparateur linéaire idéal est 0. Le principe est de trouver un hyperplan qui procure la distance maximale à tous les vecteurs de support. Les SVM ne fonctionnent que dans des cas de linéarité : les données peuvent être séparée par un plan. Dans un cas non-linéaire il est nécessaire de transformer l espace de données, afin de se placer dans un cas de linéarité. C est la fonction de noyau qui permet de déterminer le meilleur espace pour séparer linéairement les données. La fonction de noyau est à déterminer par l utilisateur. Parmis ces fonctions on trouve : polynomiale, gaussien, laplacien. Il est difficile à priori de savoir quelle fonction de noyau est la plus adaptée au problème. Il est donc nécessaire d effectuer des tests. Les SVM ne nécessitent pas une grande base d apprentissage et réussissent généralement à trouver une solution au problème. C est un algorithme très utilisé pour la poursuite d objets, la segmentation d images et la classification d images. Ne nécessite pas une grande base, Algorithme à k classes, La solution optimale est quasiment assurée. Inconvénients Il est nécessaire de déterminer soit même les caractéristiques : la solution optimale et les besoins réels peuvent ne pas être corrélés, Le meilleur noyau est à déterminer par les tests. Page 28

29 Corrélation avec le DSE C est un algorithme qui peut être très intéressant, car il ne nécessite pas une grande base d apprentissage et cependant permet d obtenir de très bon résultats. Il est néanmoins sujet aux erreurs que l on peut lui apprendre. 5.3 Algorithme de Viola et Jones L algorithme de Viola et Jones (décrit dans un article du International Journal of Computer Vision [18]) permet de déterminer rapidement la présence ou non d un objet. De manière générale il procède comme suit : 1. Passer une fenêtre de taille définie sur toute l image afin de détecter un objet, 2. Augmenter la taille de la fenêtre et réeffectuer l étape 1, jusqu à ce qu une limite définie soit atteinte. Cet algorithme nécessite une longue phase d apprentissage préalable. Cette méthode est composée de trois parties importantes : le principe d intégrale d image, un algorithme d apprentissage basé sur AdaBoost et une cascade de classification. Le principe des ondelettes de Haar est aussi intéressant à connaître. Nous allons présenter ces différents éléments afin de mieux comprendre le fonctionnement de l algorithme. L intégrale d image Le principe d une intégrale d image est sensiblement le même à celui que l on peut rencontrer dans le monde des mathématiques pour une intégrale classique. Dans une intégrale d image, la valeur de l intégrale pour chaque pixel est égale à la somme des pixels au dessus de lui et à sa gauche, lui compris. On a donc le calcul suivant : S(i, j) = N M i=1 j=1 x(i, j). La FIG.5.1 est un exemple d intégrale image. Elle contient la matrice initiale et son intégrale image FIG. 5.1 Matrice image et intégrale Image Pour accélérer le calcul on remarque que S(i, j) = x(i, j) + S(i 1, j) + S(i, j 1) S(i 1, j 1). Si l on désire connaitre l intégrale image S z d un pixel par rapport à une zone particulière on peut utiliser le calcul suivant : S Z = S(A) + S(D) S(C) S(B), où A,B,C,D sont des couples de coordonnées ( ) des A B extrémités en bas à droite des matrices découpées de la manière suivante : C D Page 29

30 D autres combinaisons linéaires permettent d obtenir d autres intégrales de l image. Les caractéristiques de Haar Les caractéristiques de Haar sont liées à la soustraction de deux zones rectangulaires (voir FIG.5.2). Ce sont des dérivées des ondelettes de Haar. Les calculs sont facilement effectués grâce aux intégrales images. On peut considérer qu un visage aura sensiblement la même valeur, tandis qu un bâtiment ou tout autre objet n aura pas la même valeur. On peut donc à partir de cela créer une classification FIG. 5.2 Différentes caractéristiques de Haar AdaBoost AdaBoost est le diminutif de Adaptive Boosting. L algorithme de Viola et Jones utilise une version légèrement modifiée d AdaBoost. Les caractéristiques de Haar vont permettre de créer une classification, AdaBoost sélectionne les classifications dites faibles et leur donne un poids. Ces classifications ont une précision (la précision désigne le nombre d éléments appartenant à la classe divisé par le nombre d éléments désignés comme appartenant à la classe) légèrement supérieure à 0.5. La combinaison linéaire de ces classifications faibles permet d obtenir une classification globale très précise. Ainsi à chaque passage on diminue de 0.5 ou plus les chances d avoir un faux-positif. Cascade de classification Dans l algorithme de Viola et Jones la combinaison linéaire se fait sous une forme de cascade, permettant ainsi de rejeter très vite les faux-positifs et donc de limiter le temps de calcul. L ordre de la cascade est déterminé par le poids que donne AdaBoost à chaque classification. Plus une classification est importante plus elle sera proche de la racine. Apprentissage Viola et Jones ont utilisé pour la détection de visage une base une base de 9832 visages (4916 originaux et 4916 images miroirs verticales) et non visages. Toutes ces images mesurant 24*24 pixels. L apprentissage est extrêmement long parfois plusieurs jours voire semaines selon les machines. Page 30

31 Caractéristiques lors de l utilisation Avec un Pentium III 700MHz, sur une image de pixels les visages sont détectés à une cadence de 15 images par secondes. Il n y a pas nécessité dans cet algorithme de créer de multiples doublons de l image, ou de matrices supplémentaires pour un passage en fréquentiel : il ne travaille qu avec des images en niveaux de gris. La courbe de caractéristique de fonctionnement du récepteur est très bonne, et tend à se rapprocher de l idéal. Rapide (à l époque de la publication, il était 15 fois plus performant que ses concurents), Parcourt l image avec différentes échelles de recherches, Précis pour des objets morphologiquement stables. Inconvénients Long à l apprentissage, Nécessite des bases d apprentissage, de validation et de test énormes, Parcourt sans différence toutes les zones d une image, Ne permet pas d avoir un indice de confiance. Corrélation avec le DSE Cet algorithme parait a priori viable, pour peu que l on réduise la zone de recherche de l objet. Si le but final est de le faire jouer aux échecs, lui faire détecter la position de chacune des 32 pièces avec la totalité de l image serait une erreur. Un problème qui risque de se poser est qu étant donné que l algorithme travaille avec des différences de zones, une pièce blanche et une pièce noire peuvent être similaires : la différence d une zone blanche avec une zone blanche, ou une zone noire avec une zone noire produira un résultat proche de 0. Une détection de la couleur de la pièce est sans doute à ajouter en complément de cet algorithme. 5.4 Speeded Up Robust Features SURF (décrit dans l article de Bay, Tuytelaars et Van Gool [1]) est une amélioration de l algorithme Scale-Invariant Feature Transform (SIFT [11]). Le principe est de détecter des zones d intérêts dans des zones particulières de l image. Par la suite la zone proche de ce point d intérêt est représentée dans un vecteur de représentation. Ce vecteur doit être robuste au bruit, au déplacement, à la rotation et à la luminosité. En analysant et en comparant les vecteurs de représentation de deux images on peut retrouver des zones proches, et donc reconstituer des objets par cette méthode. Là encore l algorithme utilise les intégrales images pour accélérer le calcul. Cette méthode est définie comme rapide et robuste à la rotation et à différentes échelles. Page 31

32 Robuste à la translation et rotation, Rapide, Pas d apprentissage nécessaire, Ne nécessite qu une seule image. Inconvénients Il n y a pas d algorithme général pour effectuer la ressemblance point à point entre les différents objets. L algorithme ne dépendant que d une image ou d un modèle, le nombre de faux-positifs peut être important. Corrélation avec le DSE Cet algorithme parait à priori viable, mais le manque de description et d information ne permet pas de juger réellement. il risque d être assez complexe et peu pertinent pour différencier des pions qui possèdent beaucoup de régions semblables. En revanche un tel système peut être envisagé pour localiser un objet morphologiquement stable, tel qu un plateau ou des cartes. Page 32

33 Chapitre 6 Spatialisation Ce chapitre décrit des méthodes qui permettent la spatialisation d objets. Les méthodes géométriques calculaitres de spatialisation ne sont pas traitée, elle ne sont pas généralisables et ne sont pas limitantes. Les points suivants vont être abordés : Stéréovision, Homographie. 6.1 Stéréovision La stéréovision permet à partir de plusieurs images 2D de reconstituer une image en 3D. De manière générale il s agit de recréer une vision de type binoculaire (vision humaine). Deux caméras placées sur un même plan et ayant des axes optiques parallèles ont une vue différente d une scène. À partir d une comparaison des images des deux caméras il est possible d obtenir des informations sur la profondeur des éléments. La stéréovision est une procédure nécessitant des prétraitements pour : Éliminer les distorsions liées aux déformations du matériel optique. Les images produites par les caméras ont un effet nommé «barillet». Cet effet tend à produire des images étirées sur les bords ; Projeter les images sur un même plan. Cette projection a pour but de mettre en commun les informations des caméras, elle revient en fait à n avoir qu une seule image ; Réaliser la correspondance. Il existe une relation inversement proportionnelle entre la distance et ce que l on nomme la disparité. La disparité mesure la différence de position pour un objet. Un objet placé en l infini aura des coordonnées similaires pour les deux caméras. Un objet proche aura des coordonnées différentes ; Réaliser la triangulation des différents objets. On créé ainsi une carte contenant des informations sur la profondeur d une image. Il a été mentionné la nécessité d utiliser deux caméras placées sur un même plan et possédant des axes optiques parallèles. Il est possible de s affranchir de cette limite par l utilisation de deux matrices : la matrice essentielle (qui représente le positionnement d une caméra par rapport à l autre), et la matrice fondamentale (qui représente l orientation des caméras). L utilisation de ces deux matrices passe par l étude de la géométrie épipolaire des deux caméras. Cette géométrie est à l origine de la phase de projection des images sur un même plan. La matrice essentielle est liée à un repère spatial réel, tandis que la matrice fondamentale est liée à des coordonnées de pixels dans les images. L ensemble des détails concernant la calibration, la géométrie épipolaire et tous les détails concernant la stéréovision sont expliqués dans le livre Learning OpenCV de Gary Bradski et Adrian Kaehler [3]. Page 33

34 Permet de s affranchir de la limite de la vision monoculaire, Précis à courte distance. Inconvénients Très lourd à mettre en place, Nécessite des informations précises pour le calibrage, Imprécis à longue distance. Corrélation avec le DSE Cette méthode permet d obtenir des informations sur la profondeur des différents éléments. Elle nécessite d avoir une deuxième caméra, ainsi qu une information parfaite sur le positionnement et l axe optique des caméras. Utiliser l une des caméras du Nao ainsi qu une caméra fixée au sol augmente la complexité du système et risque de mener à des erreurs (on peut aussi utiliser deux caméras indépendantes du Nao). Cependant le fait que ce soit une méthode très utilisée dans le domaine de la robotique est encourageant. 6.2 Homographie L homographie est une transformation géométrique qui permet de passer d une image projetée sur un plan, à la même image projetée sur un autre plan. Elle est particulièrement utilisée pour passer d une image perspective à une image droite (vue en œil d aigle). Tout comme pour la stéréovision il est nécessaire d utiliser une image où la distorsion en barillet est supprimée. L approche mathématique de cette transformation est abordée dans la publication de Paul Heckbert :»Projective Mappings for Image Warping «[7]. L homographie nécessite d avoir une connaissance exacte de certains points du système : on doit pouvoir donner les coordonnées réelles et en pixels. La fonction qui permet de placer de la représentation d un plan à un autre peut être défini comme suit : Soit le point observé Q = [XY Z1] T défini dans un système de coordonnées et q = [xy1] T le point correspondant après l homographie et s un facteur d échelle. L équation de l homographie est q = shq, avec H la matrice d homographie. Pour plus d informations sur la manière dont les calculs sont réalisés dans le domaine de la Vision, il est nécessaire de lire le livre Learning OpenCV de Gary Bradski et Adrian Kaehler [3]. Permet d obtenir une relation de proportionnalité entre pixels et mètres en se plaçant en vue œil d aigle, Ne nécessite qu une seule caméra. Page 34

35 Inconvénients Nécessite un minimum d information sur des points du système, Ne permet pas d estimer la distance à un point. Corrélation avec le DSE Cette méthode peut être intéressante pour obtenir une vue en œil d aigle d un plateau de jeu. Les distorsions de perspectives étant supprimés on peut obtenir des informations plus pertinentes sur le contenu informationnel du plateau. Le fait d utiliser une seule caméra est intéressant car on ne fait pas appel à une autre source que le Nao, bien que celà empêche d évaluer la distance. Page 35

36 Page 36

37 Chapitre 7 Bibliothèques de vision L objectif de ce chapitre est de présenter les bibliothèques de vision qu il sera possible d utiliser lors de la réalisation du projet. Nous parlerons de quatres bibliothèques : OpenCV, Clmg, Camellia, Ravel. 7.1 OpenCV OpenCV est sans doute la bibliothèque de vision la plus connue. Elle est développée par Intel et est sous licence open source BSD. Elle est compatible pour Mac, Linux et Windows. OpenCV comprend des fonctions permettant de : Traiter les images, Transformer les images, Détecter de contours, Segmenter les images, Réaliser de la poursuite d objet, Réaliser de l apprentissage machine. Plus de 500 fonctions, L une d entre elle permettant de détecter les intersections internes d un échiquier, Une très large communauté ( membres sur le User Group, de nombreuses entreprises et laboratoires de recherches), Une bibliothèque réputée rapide (car destinée à du traitement temps réel), Une documentation complète sur internet, De nombreux exemples de codes, Implémentation en C, C++ et Python, Déja présent sur le Nao, Licence libre. Désavantages La documentation n est réellement complète que pour les fonctions en C++, La version pésente sur le Nao est relativement ancienne. Page 37

38 Corrélation avec le DSE OpenCV semble tout à fait indiqué pour réaliser le projet, de par son implémentation déja existante sur le Nao, sa documentation et surtout par la richesse des applications. 7.2 CImg CImg est une bibliothèque libre, multiplateforme, orientée objet, écrite en C++. Elle est développée en collaboration avec le CEA, le CNRS et l INRIA. La bibliothèque CImg est sous deux licences : CeCILL (il est nécessaire de distribuer tout le code source de l application développée), CeCILL-C (il n est nécessaire de resdistribuer que le CImg.h si celui est modifié). CImg comprend des fonctions permettant de : Traiter les images, Transformer les images. Légère : un seul fichier.h contenant seulement 4 classes, Une documentation complète sur internet, De nombreux exemples de codes, Implémentation orientée objet en C++, Licence libre. Désavantages Cette librairie ne fournit pas de moyen d accéder facilement à une source webcam, Pas de support de techniques avancées telles que l apprentissage machine ou la poursuite d objets. Corrélation avec le DSE De par sa conception orientée objet, CImg permet de manipuler aisément des images et d effectuer des traitements basiques sur celles-ci. 7.3 Camellia Camellia est une librairie de vision libre qui peut servir de complément à OpenCV (les deux librairies utilisent la même représentation interne des images). Camellia comprend des fonctions complémentaires par rapport à OpenCV permettant de : Page 38

39 Traiter les images (extraction de contours), Définir des zones d intérêts, Transformer les images. Compatible avec OpenCV, Une documentation complète sur internet, Des exemples de codes, Disponible dans les langages C, C++ et Ruby, Licence libre. Désavantages Cette librairie ne fournit que des fonctions relativement poussées. Les opérations simples doivent être assurées par une librairie tierce. Corrélation avec le DSE Cette librairie peut être utilisée pour de la segmentation (extraction de zones spécifiques de l image, telle que le plateau de jeu) et l extraction de contours. 7.4 RAVL RAVL est une librairie de vision libre de vision écrite en C++. RAVL permet de : Traiter les images, Transformer les images, Détecter des contours, Segmenter les images, Réaliser de la poursuite d objet, Faire de la poursuite. Riche en fonctionnalités, Une documentation complète sur internet, Licence libre. Désavantages Cette librairie ne fournit pas de moyen d accéder facilement à une source webcam. Page 39

40 Corrélation avec le DSE Étant donné les difficultés d accès à une webcam, qui sera notre source d information principale, cette librairie peut poser des difficultés importantes. Page 40

41 Chapitre 8 Conclusion Au cours de cet État de l Art (EDA) nous avons vu un éventail de ce qu il est possible d utiliser en vision pour traiter une image en termes de méthodes et de bibliothèques. Concernant les bibliothèques, on peut dire que le choix de OpenCV semble le plus indiqué mais qu il existe des complémentarités et des alternatives. Concernant les méthodes préconisés, on peut dire que chaque problème de vision est unique et demande une méthode particulière. La possibilité de reconnaître les objets : plateaux et pions de tous types ne pourra être possible que jusqu à un certain point. Nous n avons pas trouvé de modèles permettant de répondre directement à cette problèmatique. De plus, chaque partie de cet EDA apparaît complémentaire des autres et est une étape indispensable pour avoir une chaine de traitement efficace. Nous pensons donc que le procédé d analyse les images du Nao reste à trouver et peut se déduire d une combinaison des techniques présentées dans ce document. Les possibilités concrètes de ces techniques, utilisées avec le système de vision du Nao, sont présentées dans le Dossier d Expérimentation de la vision (cf. DDE de la vision). Page 41

42 Page 42

43 Chapitre 9 Annexes Page 43

44 Page 44

45 Bibliographie [1] H. Bay, T. Tuytelaars, and L. Van Gool. Surf : Speeded up robust features. Lecture notes in computer science, 3951 :404, [2] Serge Beucher. The watershed transformation applied to image segmentation. http ://cmm.ensmp.fr/ beucher/wtshed.html. [3] G.R. Bradski and A. Kaehler. Learning opencv. O Reilly, [4] Centre de Morphologie Mathématiques. Segmentation morphologique avancee. http ://cmm.ensmp.fr/ marcoteg/ams.html. [5] S.R. Gunn. Support vector machines for classification and regression. ISIS technical report, 14, [6] P. Hart. Nearest neighbor pattern classification. IEEE Transactions on Information Theory, 13(1) :21 27, [7] P. Heckbert. Projective Mappings for Image Warping. Image-Based Modeling and Rendering, pages [8] inconnu. Nearest neighbor image scaling. http ://tech-algorithm.com/articles/nearestneighbor-image-scaling/. [9] K. Kim, T.H. Chalidabhongse, D. Harwood, and L. Davis. Real-time foregroundbackground segmentation using codebook model. Real-Time Imaging, 11(3) : , [10] Jan Kybic. Mean shift segmentation. http ://cmp.felk.cvut.cz/cmp/courses/ 33DZOzima2007/slidy/meanShiftSeg.pdf. [11] D. Lowe. SIFT : Scale Invariant Feature Transform, [12] Danfei Mavromatis and Olivier Antoine. Segmentation par croissance de régions. http :// [13] Sébastien Mavromatis and Olivier Coulon. Analyse d images detection de contours. http ://pages-perso.esil.univmed.fr/ coulon.../esil3a_contours.pdf. [14] S. Philipp-Foliguet and L. GUIGES. Évaluation de la segmentation d images : état de l art, nouveaux indices et comparaison. Traitement du Signal, 23(2) : , [15] Christian RONSE. Le filtre médian. http ://arthur.ustrasbg.fr/ ronse/tidoc/filter/median.html. [16] Christian RONSE. Lissage, accentuation et rehaussement linéaires. http ://arthur.ustrasbg.fr/ ronse/tidoc/filter/lirelin.html. [17] Jean-Hugh Thomas. Detection de contours. http ://prn1.univlemans.fr/data/application/bdd_opi/publiscours/opi_fr_m04_c05/co/contenu_19.html. [18] P. Viola and M. Jones. Robust real-time object detection. International Journal of Computer Vision, 57(2) : , Page 45