Brevet FR2890472A1 — publié le 20070309

La présente invention concerne un procédé de détection d'objets dans une image numérique et un programme d'ordinateur mettant en oeuvre ledit procédé. La détection d'objets dans une image numérique est un domaine d'activité aux applications nombreuses telles que par exemple la détection de corps humains dans des images numériques, la reconnaissance de leur pose et leur reconstruction tridimensionnelle, l'animation d'avatars, l'indexation d'images par leur contenu, les applications de surveillance ou d'aide aux diagnostics médicaux, etc... Parmi les techniques de détection d'objets dans une image numérique, les techniques basées sur la convolution d'une image par des filtres font partie des techniques les plus répandues. L'image utilisée par ce type de technique n'est pas, en général, une image originale mais plutôt une image pré-traitée par une technique, par exemple, de suppression du fond de l'image ou par une technique de traitement qui détermine, en chacun des pixels de l'image originale, la probabilité de présence d'un objet. En regard avec la Fig. 1, la détection d'objets dans une image I (prétraitée ou pas) de I1 colonnes et I2 lignes par convolution de l'image par des filtres Fi (j=l,...M) dont la représentation bi-dimensionnelle de chacun de ces filtres FJ sur un plan P parallèle au support de l'image I est appelée masque de filtre MAi, consiste à calculer la convolution de l'image I par chacun de ces M masques. Pour cela, le centre de gravité de chaque masque de filtre MAS étant positionné sur chacun des pixels (x,y) de l'image I, la convolution de l'image I, notée CAI,x,y) avec le masque de filtre MAS est la somme de la valeur d'au moins une composante de chacun des pixels de l'image I se situant à l'intérieur du maque MAS. Plus précisément, la convolution de l'image I CJ(I,x,y) est donnée par l'équation suivante: Ci (1, x, y) = 1 s(u, v).MAj (u,v) 0su511-1OSv La détection d'objets dans une image I est fonction de la forme géométrique des masques MAS et donc du gabarit de filtre à partir duquel ces masques sont issus. L'exemple de la Fig. 1 représente un gabarit de filtres de l'état de la technique et plus précisément un exemple de gabarit de filtres décrit par l'article de P. Viola et M. J. Jones intitulé Robust Real-Time Object Detection', Second International Workshop on Statistical and Comutational Theories of Vision Modeling, Learning, Computing, and Sampling, Vancouver, Canada, 13 Juillet 2001, et par l'article de R. Lienhart et J. Maydt intitulé An Extended Set of Haar-like Geatures for Rapid Objet Detection', International Conference on Image Processing 2002. Selon ces articles, le gabarit de filtre G est de forme rectangulaire dont le périmètre est défini par deux paramètres, appelés paramètres de dimension W et L, et par un paramètre, appelé paramètre d'orientation 0 défini par un angle entre un axe Ax du gabarit de filtre G et une référence du plan P, en l'occurrence l'axe X d'un repère d'axes orthogonaux X et Y du plan P. Les valeurs des paramètres W, L et O sont des valeurs discrètes issues d'ensembles de valeurs prédéterminées. Ainsi, le nombre de filtres Fj (et donc de masques MAS) différents pouvant être issus du gabarit de filtre G est égal au produit du cardinal de chacun de ces ensembles de valeurs discrètes. Ce nombre de filtres peut être très important si aucun a priori sur les dimensions ou les orientations de l'objet n'est fait. Par contre, ce nombre peut être considérablement réduit si les dimensions et/ou l'orientation approximatives des objets à détecter sont connues a priori. Selon l'exemple de la Fig. 1, le masque MA1 est défini par les valeurs W1, L1 et O1 respectivement des paramètres W,L et O, le masque MAj est défini par les valeurs W2, L1 et 02, et le masque MAM est défini par les valeurs W2, L1 et 03. Les pixels de l'image se trouvant à l'intérieur de chaque masque MAS ainsi défini sont déterminés sur le plan P par des techniques de tracé de ligne et/ou de polygone telles que par exemple la technique de J. E. Bresenham décrite dans l'article intitulé Seminal Graphics: Pioneering efforts that shaped the Field', Rosalee Wolfe ed., ACM SIGGRAPH, ACM order no. 435985, ISBN 1-58113-052-X, 1998. Ce type de technique permet d'obtenir à partir d'une grille GR définie sur le plan P une approximation plus ou moins grossière de chaque masque par un ensemble de rectangles comme on le verra lors de la description de la Fig. 2. La détection d'objets dans une image numérique pouvant être calculée très rapidement (notamment en utilisant une image intégrale comme on l'a vu précédemment), le nombre de masques obtenus à partir d'un gabarit de filtre, c'est-à-dire le nombre de valeurs des ensembles de valeurs discrètes de chacun des paramètres du gabarit de filtre, peut donc être important sans pour cela que le temps de calcul de la convolution d'une image par l'ensemble de ces masques ne soit exorbitant. Cependant, cela ne sous-entend pas que tout objet d'une image peut-être détecté par les masques issus d'un gabarit de filtre G de l'état de la technique. En effet, chacun de ces masques ne couvrant qu'une seule partie continue de pixels d'une image, chacun des éléments d'un objet composé et éventuellement articulé peut-être détecté par un de ces masques. Cependant, ces masques ne permettent pas de déterminer que les éléments détectés appartiennent à un même objet. Le but de la présente invention est donc de résoudre le problème soulevé ci-dessus de manière à pouvoir détecter des objets composés et éventuellement articulés d'une image numérique. Pour ce faire, la présente invention prévoit un procédé de détection d'objets dans une image numérique par convolution de ladite image avec au moins un masque bidimensionnel de filtre, ledit au moins un masque comportant une première partie continue de pixels de ladite image, ladite première partie étant définie par une valeur discrète prédéterminée des paramètres d'un gabarit de filtre. Ledit procédé est caractérisé en ce que ledit au moins un masque comporte au moins une deuxième partie continue de pixels de ladite image, ladite au moins une deuxième partie étant définie par une valeur discrète prédéterminée d'au moins un des paramètres dudit gabarit de filtre, ledit au moins un paramètre définissant une association entre ladite au moins une deuxième partie et ladite première partie ou entre au moins une deuxième partie et l'une desdites autres deuxièmes parties dudit au moins un masque. Selon un autre mode de réalisation de la présente invention, un axe étant défini pour chacune desdites parties dudit au moins un masque par au moins deux pixels appartenant à ladite partie, ledit au moins un paramètre définissant l'association entre deux parties dudit au moins un masque est un angle entre les axes de ces deux parties. Ce mode de réalisation est particulièrement avantageux car il permet de détecter des objets composés dont les parties sont articulées les unes par rapport aux autres. Selon un mode de réalisation de la présente invention, chacune desdites parties étant représentée par un ensemble de rectangles adjacents deux à deux, chacun desdits axes est défini par la droite joignant les centres de gravité de deux desdits rectangles. Ce mode de réalisation est particulièrement avantageux car la définition de chacun de ces axes est très rapide. Selon un mode de réalisation de la présente invention, la valeur discrète de chacun des paramètres dudit gabarit de filtre étant choisie parmi un ensemble de valeurs discrètes prédéterminées, ledit au moins un masque est déterminé pour chacune des valeurs discrètes de chacun desdits ensembles de valeurs discrètes. Ce mode de réalisation est avantageux car il permet de contrôler le nombre de filtres utilisés pour détecter un objet et ainsi limiter le temps de calcul nécessaire pour détecter cet objet. Par exemple, dans le cas où la détection d'objets doit être effectuée en temps réel, le nombre de filtres peut être restreint ou, dans le cas où les dimensions de l'objet à détecter sont estimées a priori, le nombre de valeurs discrètes des paramètres du gabarit de filtre définissant les dimensions de chaque masque de filtre est restreint à quelques valeurs voire à une seule si les dimensions de l'objet à détecter sont connues précisément. Dans ce cas les masques de filtre se différentient uniquement par l'orientation relative de leurs parties. Selon un mode de réalisation de la présente invention, chacune desdites parties dudit au moins un masque étant représentée par un ensemble de rectangles adjacents deux à deux, une image intégrale étant pré-calculée à partir de l'image numérique à convoluer, la convolution de ladite image numérique avec ledit au moins un masque est calculée en utilisant ladite image intégrale. Ce mode de réalisation est avantageux car il permet de calculer rapidement la convolution d'une image numérique avec un masque dès lors que celui-ci est représenté par un ensemble de rectangles. La présente invention concerne également un programme d'ordinateur stocké sur un support d'informations, caractérisé en ce qu'il comporte des instructions permettant de mettre en oeuvre le procédé selon l'un des modes de réalisation de la présente invention ci-dessus. Les caractéristiques de l'invention mentionnées ci-dessus, ainsi que d'autres, apparaîtront plus clairement à la lecture de la description suivante d'un exemple de réalisation, ladite description étant faite en relation avec les dessins joints, parmi lesquels: La Fig. 1 représente un schéma d'exemples de gabarits de filtre selon l'état de la technique. La Fig. 2 représente un schéma d'un exemple d'un gabarit de filtre selon la présente invention. La Fig. 3a représente un schéma illustrant le calcul d'une image intégrale à partir d'une image numérique. La Fig. 3b représente un schéma illustrant le calcul de la convolution d'une image numérique avec un masque de filtre en utilisant une image intégrale. La Fig. 2 représente un schéma d'un exemple d'un gabarit de filtre H selon la présente invention. Le gabarit de filtre H définit M filtres dont les masques MHi (j=1,...M) couvrent au moins deux parties continues de pixels P, et Pa (a=2,...,A) d'une image I. Selon l'exemple de la Fig. 2, le gabarit de filtre H définit trois (A=3) parties P,, P2 et P3. Le nombre de parties continues constituant les masques issus du gabarit de filtre H est identique pour tous ces masques et est déterminé préalablement. Le gabarit de filtre H comporte N paramètres de dimensions Da (a=1,...,A et n=1,...,N), en l'occurrence N=2 selon l'exemple de la Fig. 2, un paramètre d'orientation Co, et (A-1) paramètres appelés par la suite paramètres d'association s y (o=2,...,A et q=l,...,A et o q). Ces paramètres sont définis à partir d'un plan P parallèle au support de l'image I et muni d'un repère formé par des axes orthogonaux X et Y. Les dimensions géométriques de la partie P, sont déterminées par les paramètres de dimensions D11 et D12 et l'orientation de cette partie P, qui est par exemple un angle O entre un axe Al de la partie P, et une référence du plan P, en l'occurrence l'axe X. Les dimensions géométriques de la partie P2 sont déterminées par les paramètres de dimensions D21 et D22 et par un paramètre d'association 12,. Enfin, les dimensions géométriques de la partie P3 sont déterminées par les paramètres de dimensions D3, et D32 et par un paramètre d'association 4)32. Le ou chaque paramètre d'association t q est associé à chaque partie P (o=2,...,A) du gabarit de filtre H, et définit une association entre deux parties continues P (o=2,...A) et Pq (q=1,...,A) avec o q. Selon un mode de réalisation de la présente invention, le paramètre d'association 0 q est un angle défini entre un axe d'une partie continue P et un axe d'une autre partie Pq. Selon l'exemple de la Fig. 2, le paramètre d'association 021 associé à la partie P2 est un angle orienté défini entre un axe A2 de la partie P2 et un axe Al de la partie P,, et le paramètre d'association 032 associé à la partie P3 est un angle orienté entre un axe A3 de la partie P3 et l'axe A2. Le lecteur comprendra aisément, au travers de cet exemple, que l'orientation de la partie P2 peut également être déterminée par rapport à l'axe A3 et que l'orientation de la partie P3 peut également être déterminée par rapport à l'axe Al. De manière générale, deux parties P et Pq peuvent être associées autrement que par leur orientation relative. Par exemple, ces parties peuvent être associées par un paramètre décrivant une translation de la partie P par rapport à la partie Pq ou être associées par deux paramètres, l'un décrivant leur orientation relative et l'autre une translation de la partie P par rapport à la partie Pq. Ainsi, le gabarit de filtre H permet d'obtenir des masques de filtre qui permettent de détecter des objets composés de A parties qui peuvent être articulées 20 l'une par rapport à l'autre. Pour chacun des paramètres du gabarit de filtre H (Dan, O, q), soit les neuf paramètres D'1, D'2, O, D21, D22, 021, D31, D32, C32 selon l'exemple de la Fig. 2, est déterminé un ensemble de valeurs discrètes. Ainsi, en choisissant pour chacun de ces paramètres une valeur discrète parmi les valeurs discrètes de l'ensemble de valeurs discrètes qui lui est associé, un filtre FHJ est ainsi obtenu à partir du gabarit de filtre H dont le masque MHH est utilisé pour la convolution de l'image I avec ce filtre. Par exemple, l'ensemble des valeurs discrètes correspondant au paramètre d'orientation O est défini par N valeurs O(n) = N n = 0,...,(N -1) avec N désignant une valeur entière prédéterminée, et l'ensemble des valeurs discrètes correspondant à chaque 30 paramètre d'association 0 q est défini par M valeurs cq (m) = m r, m = 0,..., (Mo -1) avec M désignant une valeur entière prédéterminée. Comme on l'a vu précédemment, le masque MHJ d'un filtre est entièrement défini lorsque les pixels de l'image situés à l'intérieur de chacune des parties du masque sont déterminés par une technique de tracé de ligne et/ou de polygone. Dans le cas où une grille GR fixe et régulière est définie sur le plan P de la Fig. 2, grille qui peut contenir l'ensemble des pixels de l'image I ou seulement un sous-ensemble de ces pixels, chacune des parties P1, P2 et P3 est représentée respectivement par un ensemble de rectangles R1 rectangles R1,1,... R1,R1(R1=7 selon l'exemple de la Fig. 2), un ensemble de R2 rectangles R2,1,... R2,R2 (R2=4 selon l'exemple de la Fig. 2), et par un ensemble de R3 rectangles R3,1,... R2, R3 (R3=4 selon l'exemple de la Fig. 2). Chaque côté de chacun de ces rectangles est parallèle soit avec l'axe X soit avec l'axe Y dans le cas, par exemple où ces rectangles sont obtenus par une technique de tracé de polygone du type de la technique de Bresenham. De plus, chacun de ces rectangles est défini par quatre sommets qui correspondent à quatre points de la grille GR. L'axe Al est alors défini, par exemple, par une droite reliant les centres de gravité B1 et B2 d'au moins deux des rectangles R1,1,... R1,R1, l'axe A2 est défini par une droite reliant les centres de gravité B3 et B4 d'au moins deux des rectangles R2,1,... R2,R2 et l'axe A3 est défini par une droite reliant les centres de gravité B5 et B6 d'au moins deux des rectangles R3,1,... R3,R3. La convolution de l'image I par un masque issu du gabarit de filtre H, consiste alors à calculer la somme des pixels de l'image situés dans chacun des rectangles de chaque partie Pa(a=1,2,3), et à effectuer la somme de chacune des sommes ainsi calculées. Selon la complexité de la forme géométrique d'une partie Pa et selon la granularité de la grille GR, il peut arriver qu'un grand nombre de rectangles soit nécessaire afin de représenter précisément une partie Pa. De manière à réduire ce nombre de rectangles et par suite le calcul de la convolution de l'image I par un masque qui serait défini par une telle partie Pa, une technique de simplification de polygone peut être appliquée sur cette partie afin de diminuer ce nombre de rectangles et ainsi obtenir une représentation plus grossière de la partie Pa. Selon un mode de réalisation de la présente invention, une image intégrale est pré-calculée à partir de l'image I. Cette image intégrale est utilisée pour le calcul de la convolution de l'image I avec au moins un des masques MHj. La valeur v(x,y) de l'image intégrale à une position (x,y) de l'image I est obtenue par sommation des valeurs s(u',v') de l'image I (u' Ces valeurs sont calculées préalablement au calcul de la convolution de l'image I avec un masque et mémorisées dans une mémoire. Le calcul de la convolution de l'image I par un masque MHj dont chaque partie est représentée par un ensemble de rectangles définis à partir de la grille rectangulaire GR consistant en grande partie à calculer des sommations des valeurs de pixels de l'image I sur ces rectangles, il est alors possible de calculer chacune de ces sommes par quatre opérations élémentaires (deux additions et deux soustractions). Selon l'exemple de la Fig. 2b, admettons que lors du calcul de la convolution de l'image I par un masque de filtre, la somme des pixels situés dans le rectangle R doive être calculée. En obtenant les valeurs mémorisées de l'image intégrale v(x 1,y 1), v(x l,y2), v(x2,yl) et v(x2,y2) situées au quatre coins de ce rectangle R, la somme des valeurs s(u,v) de l'image I (x15xx2, yl5y REVENDICATIONS 1) Procédé de détection d'objets dans une image numérique par convolution de ladite image avec au moins un masque bi-dimensionnel de filtre, ledit au moins un masque comportant une première partie continue de pixels de ladite image, ladite première partie étant définie par une valeur discrète prédéterminée des paramètres d'un gabarit de filtre, caractérisé en ce que ledit au moins un masque comporte au moins une deuxième partie continue de pixels de ladite image, ladite au moins une deuxième partie étant définie par une valeur discrète prédéterminée d'au moins un des paramètres dudit gabarit de filtre, ledit au moins un paramètre définissant une association entre ladite au moins une deuxième partie et ladite première partie ou entre ladite au moins une deuxième partie et l'une desdites autres deuxièmes parties dudit au moins un masque. 2) Procédé de détection d'objets dans une image numérique selon la revendication 1, un axe étant défini pour chacune desdites parties dudit au moins un masque par au moins deux pixels appartenant à ladite partie, caractérisé en ce que ledit au moins un paramètre définissant l'association entre deux parties dudit au moins un masque est un angle entre les axes de ces deux parties. 3) Procédé de détection d'objets dans une image numérique selon la revendication 2, chacune desdites parties étant représentée par un ensemble de rectangles adjacents deux à deux, caractérisé en ce que chacun desdits axes est défini par la droite joignant les centre de gravité de deux desdits rectangles. 4) Procédé de détection d'objets dans une image numérique selon l'une des revendications précédentes, la valeur discrète de chacun des paramètres dudit gabarit de filtre étant choisie parmi un ensemble de valeurs discrètes prédéterminées, caractérisé en ce que ledit au moins un masque est déterminé pour chacune des valeurs discrètes de chacun desdits ensembles de valeurs discrètes. 5) Procédé de détection d'objets dans une image numérique selon l'une des revendications précédentes, chacune desdites parties étant représentée par un ensemble de rectangles adjacents deux à deux, une image intégrale étant pré-calculée à partir de ladite image numérique, caractérisé en ce que la convolution de ladite image numérique avec ledit au moins un masque est calculée en utilisant ladite image intégrale. 6) Programme d'ordinateur stocké sur un support d'informations, caractérisé en ce qu'il comporte des instructions permettant de mettre en oeuvre le procédé selon l'une des revendications 1 à 5, lorsqu'il est chargé et exécuté par un dispositif d'exécution d'actions sur des images numériques.