Brevet FR2982057A1 — publié le 20130503

PROCEDE DE RECONNAISSANCE D'UNE IMAGE DANS UNE SCENE Arrière plan de l'invention La présente invention vise une méthode pour reconnaître une image dans une scène, par exemple acquise avec une caméra vidéo. Elle s'applique en particulier, mais de façon non limitative à la reconnaissance de cartes à jouer. Dans ce contexte particulier, le document de Viola et Jones "Robust Real-time Object Detection" Paul Viola & Mickael Jones, 2001, divulgue une méthode dans laquelle on cherche à détecter par force brute, la présence d'une image de référence dans la scène, pour toutes les positions possibles dans la scène, dans la même orientation que l'image de référence. Cette méthode qui nécessite de traiter les scènes selon une pluralité de positions et qui ne fonctionne que pour une orientation identique à l'image de référence, est relativement coûteuse en temps de calcul et ne peut en pratique être utilisée pour reconnaître des images de référence successives dans un flux vidéo, en temps réel. Cette méthode est en outre peu fiable lorsque les images de référence sont en partie obstruées par un reflet de lumière ou par la présence d'autres objets par exemple. Une autre méthode connue sous l'acronyme SURF « Speeded Up Robust Features » et publiée par Herbert Bay, Andreas Ess, Tinne Tuytelaars, Luc Van Gool "SURF: Speeded Up Robust Features" en 2008. permet de reconnaitre une image dans une scène tout en étant insensible à la rotation et à l'échelle. Cette méthode bien que fort puissante pour certaines applications, reste trop lente pour reconnaitre en temps réel un grand nombre d'images de référence dans une scène. Pour ce type d'utilisation, sa robustesse s'avère également souvent insuffisante. L'invention vise une méthode de reconnaissance d'une image dans une scène qui ne présente pas de tels inconvénients. Objet et résumé de l'invention Ainsi, et selon un premier aspect, l'invention concerne un procédé 5 de reconnaissance d'une image dans une scène. Ce procédé comporte : - une étape de recherche d'un contour contrasté dans la scène et de partitionnement de l'imagette délimitée par ce contour en au moins une sous-zone ; - une étape de calcul d'un vecteur signature de cette imagette, chaque 10 composante du vecteur étant représentative de la variation du gradient de l'intensité des pixels compris dans une des sous-zones ; - une étape de recherche, dans une base de données, d'un vecteur de référence proche du vecteur signature, selon un critère de proximité prédéfini, ce vecteur de référence ayant été calculé, au cours d'une phase 15 préliminaire, de la même manière que le vecteur signature à partir d'une scène comportant une image de référence ; et - une étape d'identification de l'image à ladite image de référence (en cas de succès de l'étape de recherche). Corrélativement, l'invention concerne aussi un calculateur apte à 20 reconnaître une image dans une scène, ce calculateur comportant : - des moyens de recherche d'un contour contrasté dans la scène et de partitionnement de l'imagette délimitée par ce contour en au moins une sous-zone ; - des moyens de calcul d'un vecteur signature de cette imagette, chaque 25 composante de ce vecteur étant représentative de la variation du gradient de l'intensité des pixels compris dans une des sous-zones ; - des moyens de recherche d'un vecteur de référence proche du vecteur signature, selon un critère de proximité prédéfini, ce vecteur de référence ayant été calculé, au cours d'une phase préliminaire, de la même manière 30 que le vecteur signature à partir d'une scène comportant une image de référence ; et - des moyens d'identification de l'image à ladite image de référence en cas de succès de l'étape de recherche. Ainsi, et de façon très avantageuse, le procédé selon l'invention 35 procède à une détection de contour pour identifier l'imagette avant d'effectuer la reconnaissance proprement dite. 2 98205 7 3 L'invention permet ainsi de reconnaître des images de référence successives dans un flux vidéo, en temps réel. Dans un mode particulier de réalisation, les imagettes utilisées pour le calcul du vecteur-signature de ladite image et pour le calcul de chacun 5 desdits vecteurs-signature desdites images de référence, sont toutes normalisées par homographie dans un repère orthogonal. Cette étape qui permet avantageusement de redresser les imagettes avant la reconnaissance permet de n'appliquer la reconnaissance qu'une seule fois, quelle que soit l'orientation de 10 l'imagette. Préférentiellement, les sous-zones sont obtenues par quadrillage de l'imagette redressée (orthonormale) avec un nombre constant de lignes et de colonnes, par exemple 10x10. En pratique, on pour choisir les dimensions les plus petites 15 permettant de préserver les détails des images à reconnaître. Selon un mode particulier de réalisation, le contour est un quadrilatère et préférentiellement, le procédé comporte une étape de déformation dudit quadrilatère en rectangle par homographie. L'invention permet avantageusement de résoudre les inconvénients 20 de l'état actuel de la technique Dans un mode particulier de réalisation, les composantes des vecteurs sont des éléments binaires représentatifs du signe du gradient dans les sous-zones. Le fait de retenir la variation de l'intensité dans chacune des sous- 25 zones plutôt que l'intensité elle-même dans ces sous-zones améliore largement le procédé de reconnaissance selon l'invention. Dans un mode particulier de réalisation, l'étape de recherche de contour utilise un filtrage de détection de contour du premier ou du deuxième ordre. 30 Ces filtres présentent l'avantage d'être très rapides à calculer. On peut notamment utiliser un filtrage conforme à l'algorithme de Sobel ou à l'algorithme de Laplace. Dans un mode particulier de réalisation, chacune des composantes des vecteurs signature est obtenue à partir d'une caractéristique de Haar. 35 Pour plus de renseignements sur les caractéristiques de Haar, l'homme du métier pour se reporter au document de Viola et Jones 2 98205 7 4 "Robust Real-time Object Detection" Paul Viola & Mickael Jones, 2001 déjà cité. Selon un deuxième aspect, l'invention vise aussi un procédé de création d'une base de données d'images de référence, chaque image de 5 référence étant comprise dans une scène, ce procédé comportant : - une étape de recherche d'un contour contrasté dans ladite scène et de partitionnement de l'imagette délimitée par ce contour en au moins une sous-zone ; - une étape de calcul d'un vecteur de référence signature de cette 10 imagette, chaque composante du vecteur de référence étant représentative de la variation du gradient de l'intensité des pixels compris dans une des sous-zones ; et - une étape de mémorisation du vecteur de référence en association avec l'image de référence, dans la base de données. 15 Corrélativement, l'invention vise aussi un calculateur apte à créer une base de données d'images de référence, chaque image de référence étant comprise dans une scène, ce calculateur comportant : - des moyens de recherche d'un contour contrasté dans la scène et de partitionnement de l'imagette délimitée par le contour en au moins une 20 sous-zone ; - des moyens de calcul d'un vecteur de référence signature de l'imagette, chaque composante du vecteur de référence étant représentative de la variation du gradient de l'intensité des pixels compris dans une des sous-zones ; et 25 - des moyens de mémorisation du vecteur de référence en association avec ladite image de référence dans la base de données. Dans un mode particulier de réalisation, les différentes étapes du procédé de création de base de données et/ou procédé de reconnaissance sont déterminées par des instructions de programmes d'ordinateurs. 30 En conséquence, l'invention vise aussi un programme d'ordinateur sur un support d'informations, ce programme étant susceptible d'être mis en oeuvre par un ordinateur, ce programme comportant des instructions adaptées à la mise en oeuvre du procédé de création de base de données et/ou du procédé de reconnaissance tels que mentionnés ci-dessus. 35 Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. L'invention vise aussi un support d'informations lisible par un 5 ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus. Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD 10 ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy disc) ou un disque dur. D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être 15 acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté 20 pour exécuter ou pour être utilisé dans l'exécution du procédé en question. Brève description des dessins 25 D'autres caractéristiques et avantages de l'invention apparaîtront à la lumière de la description qui suit, faite en référence aux dessins annexés dans lesquels : - la figure 1A représente une image pouvant être reconnue par l'invention ; 30 - la figure 1B représente un découpage en sous-zones d'une imagette détectée dans l'image de la figure 1A ; - la figure 1C schématise la création de composantes d'un vecteur signature au sens de l'invention ; - la figure 1D représente une reconnaissance d'image au sens de 35 l'invention ; - la figure 2A représente les principales étapes d'un procédé de calcul de signature pouvant être utilisé dans un mode particulier de réalisation de l'invention ; - la figure 2B représente les principales étapes d'un procédé de création 5 d'une base de données d'images de référence conforme à un mode particulier de réalisation de l'invention ; - la figure 2C représente les principales étapes d'un procédé de reconnaissance d'image de référence conforme à un mode particulier de réalisation de l'invention ; et 10 - la figure 3 représente un calculateur conforme à l'invention. Description détaillée d'un mode de réalisation La figure 1A représente une image I pouvant être reconnue grâce à 15 l'invention, cette image étant comprise dans une scène S, par exemple acquise par une caméra vidéo. Conformément à l'invention, pour qu'une image puisse être reconnue, elle doit être entourée par un contour contrasté C. Cette image peut être d'une taille quelconque. Elle peut être en 20 couleurs ou en niveaux de gris. La figure 2A représente les principales étapes d'un procédé de calcul d'une signature V de l'image I. Au cours d'une étape E10, on recherche un contour contrasté C dans la scène S. 25 Dans un mode particulier de réalisation, on recherche un contour C avec un bord noir doublé d'une frange intérieure blanche ou avec un bord blanc doublé d'une frange intérieure noire. Un tel contour est très avantageux car il peut être détecté aisément, même lorsque les conditions lumineuses d'acquisition de la 30 scène S sont difficiles. Dans le mode de réalisation décrit ici, la détection des bords du contour C utilise un filtrage de Sobel en X et un filtrage de Sobel en Y. Pour plus de renseignements sur l'algorithme de Sobel, l'homme du métier peut se reporter au document « Scharr, Hanno, Optimal Filters for 2 9 8205 7 7 Extended Optical Flow In: Jâhne, B., Mester, R., Barth, E., Scharr, H. (eds.) IWCM 2004. LNCS, vol. 3417, pp. 14-29. Springer, Heidelberg » publié en 2007. Cet algorithme génère des images de types connus SobelX, SobelY, 5 qui permettent de déterminer en tout point de la scène S une approximation de l'orientation du gradient d'intensité dominant. On peut noter Vi le vecteur donnant cette orientation en tout point i de la scène S : Vi = (SobelXi, SobelYi) Dans l'exemple de réalisation décrit ici, on se place dans le contexte 10 dans lequel on recherche un contour C d'une forme géométrique avec des bords rectilignes ou à courbure faible. Sous cette hypothèse, la recherche du contour C revient à rechercher les zones contenant un nombre important de pixels ayant une orientation Vi similaire. Dans le mode de réalisation décrit ici, on cherche ensuite, pour 15 chacune des zones identifiées, l'équation mathématique de la portion de contour (par exemple de segment de droite) qu'elle représente. Pour un segment de droite, la détermination de l'équation mathématique revient à identifier les coefficients (a, b) de l'équation y=ax+b par exemple, en faisant varier les paramètres (a, b) jusqu'à 20 obtenir la meilleure correspondance (« matching » en anglais). Dans le mode de réalisation décrit ici, la recherche du contour C s'effectue en recherchant les points d'intersection de ces segments pris deux à deux pour former des polygones fermés correspondant à la forme de contour recherchée, par exemple des quadrilatères. 25 Cette étape permet d'identifier une imagette IM délimitée par ce contour. Dans le mode de réalisation décrit ici, l'imagette est redimensionnée à une dimension prédéterminée au cours d'une étape E20. Dans le mode de réalisation décrit ici, on déforme le contour C 30 obtenu à l'étape E10, ou plus exactement l'imagette IM délimitée par ce contour, par homographie, pour générer une imagette rectangulaire ou carrée. Si nécessaire, des marges noires sont insérées sur les bords de l'imagette pour obtenir une forme rectangulaire. 2 98205 7 8 Conformément à l'invention, l'imagette IM redressée est partitionnée (ou quadrillée) en une pluralité de sous-zones SZ, pour au moins un niveau de découpage. Dans l'exemple de réalisation décrit ici, on utilise 4 niveaux de 5 découpage : Niveau 1 : découpage de l'imagette IM en 1 ligne et 1 colonne (1 sous-zone) ; Niveau 2 : découpage de l'imagette IM en 2 lignes et 2 colonnes (4 sous-zones) ; 10 Niveau 3 : découpage de l'imagette IM en 3 lignes et 3 colonnes (9 sous-zones) ; Niveau 4 : découpage de l'imagette IM en 4 lignes et 4 colonnes (16 sous-zones). A titre d'exemple, la figure 1B représente le découpage de niveau 3. 15 Dans le mode de réalisation décrit ici, chacune des 30 sous-zones SZ est représentée par une donnée obtenue à partir d'une caractéristique de Haar (en anglais Haar feature), une telle caractéristique étant connue de l'homme du métier de la vision artificielle. Dans le mode de réalisation décrit ici, cette donnée est égale au 20 signe de la caractéristique de Haar, ce signe étant représentatif de la variation d'intensité des pixels de la sous-zone. Ces signes (ou ces données dans le cas général) sont mémorisés dans un vecteur signature V comportant autant de composantes qu'il y a de sous-zones dans l'imagette IM. 25 Dans l'exemple décrit ici, ce vecteur V comporte 30 composantes. La figure 1C représente la mémorisation des composantes 6 à 14 des sous-zones de niveau 3. La figure 2B représente sous forme d'organigramme les principales 30 étapes d'un procédé de création d'une base de données d'images de référence conforme à un mode particulier de réalisation de l'invention. Il consiste en particulier à calculer les signatures, ou vecteurs de référence VRi, d'une pluralité d'images de référence IRi. Pour chaque image de référence IRi, le calcul du vecteur de référence VRi est effectué 35 au cours d'une étape F10 selon le procédé décrit ci-dessus. 2 982 05 7 9 Dans le mode de réalisation décrit ici les composantes de chaque vecteur de référence VRi sont regroupées en prenant en compte leurs critères différentiant par rapport aux mêmes composantes des autres vecteurs de référence de ladite base de données. Plus précisément, dans cet exemple, pour chaque image de référence IRi, des groupes d'indices des composantes de son vecteur signature VRi, les groupes ayant tous le même cardinal. Ainsi, pour un vecteur VRi de 30 composantes, on peut créer 6 groupes de 5 indices. Le premier groupe comprend : - l'indice de la composante du vecteur VRi permettant de mieux différentier ce vecteur par rapport aux autres vecteurs référence VRk, dite première composante ; - l'indice de la composante du vecteur VRi permetant de mieux différencier 15 ce vecteur par rapport aux autres vecteurs référence VRk, sachant la première composante, dite deuxième composante ; - l'indice de la composante du vecteur VRi permetant de mieux différencier ce vecteur par rapport aux autres vecteurs référence VRk, sachant les première et deuxième composantes, dite troisème composante ; 20 - l'indice de la composante du vecteur VRi permetant de mieux différencier ce vecteur par rapport aux autres vecteurs référence VRk, sachant les première, deuxième e troisième composantes, dite quatrième composante ; et - l'indice de la composante du vecteur VRi permetant de mieux différencier 25 ce vecteur par rapport aux autres vecteurs référence VRk, sachant les première, deuxième, troisième et quatrième composantes. Autrement dit, et par exemple, lorsque l'on a trouvé la première composante la plus différenciante d'un vecteur V parmi N Vecteurs, on peut classer l'ensemble des N vecteurs en deux groupes : ceux qui on la 30 même valeur pour cette composante (groupe A) et ceux qui ne l'ont pas (groupe B). Rechercher la deuxième composante la plus différenciante sachant la lere consiste à chercher la composante la plus différenciante parmi les vecteur du groupe A. Les cinq autres groupes sont créés de la même façon, chaque 35 composante étant pris dans l'ordre appartenant in fine à exactement un groupe. 2 98205 7 10 Au cours d'une étape F20, chaque image de référence IRi est mémorisée dans la mémoire 14, dans une base de données, en association avec son vecteur de référence signature VRi et les six groupes d'indices. 5 La figure 2C représente sous forme d'organigramme, les principales étapes G10 et G20 d'un procédé conforme à l'invention, pour reconnaitre l'image I comprise dans la scène S. Ce procédé comporte une étape G10, au cours de laquelle on 10 calcule le vecteur signature V de l'image I, en mettant en oeuvre les étapes E10 à E50 déjà décrites. Puis, au cours d'une étape G20, et comme représenté à la figure 1D, on recherche dans la base de données de la mémoire 14, le vecteur de référence VRi le plus proche du vecteur signature V de l'image I selon un critère de proximité prédéfini. Dans le mode de réalisation décrit ici, cette recherche consiste à trouver pour un vecteur V provenant de l'image d'une scène à analyser, le vecteur de référence VRi qui comporte le plus grand nombre de groupes validés, un groupe étant validé lorsque les composantes qu'il indexe sont toutes identiques entre le vecteur V et le vecteur de référence VRi. La figure 3 représente un calculateur 10 conforme à l'invention. Ce calculateur est apte à mettre le procédé de création d'une base de données et le procédé de reconnaissance d'une image déjà décrits. Dans l'exemple de réalisation décrit ici, ce calculateur 10 à l'architecture matérielle d'un ordinateur. Il comporte un processeur 11, une mémoire vive 12, une mémoire morte 13 et une mémoire 14 mémorisant une base de données comportant les images de référence IRi et leurs vecteurs de référence associés VRi, calculés pendant la phase préliminaire PP. Dans l'exemple de réalisation décrit ici, la phase préliminaire PP et le procédé de reconnaissance sont mise en oeuvre par le même calculateur 10 mais ce n'est pas obligatoire. La mémoire 13 constitue un support d'enregistrement au sens de l'invention. Elle mémorise un programme d'ordinateur PP et un 35 programme d'ordinateurs PG conformes à l'invention, ces programmes comprenant respectivement des instructions pour l'exécution des étapes F10, F20 et G10, G20 déjà décrites.