Semaine d`Etude Maths Entreprises 4
Transcription
Semaine d`Etude Maths Entreprises 4
Semaine d'Etude MathsEntreprises 4 1519 octobre 2012, Institut Henri Poincaré (Paris) Détection d'une image donnée dans une séquence vidéo. Tamara El Boutia Giuseppe Benedettic Ahmed Benaichouchee a b Caroline Gwenael Obrechtb Mercierd Laboratoire de Mathématiques de Versailles, France Laboratoire de Mathématiques de l'Université Paris-Sud, France c CREST / CEREMADE, Universié Paris Dauphine, France d e CMAP, École polytechnique, France LISSI, Université Paris-Est Créteil, France Sujet proposé par : Technicolor Résumé Dans ce travail nous abordons un problème posé par Technicolor lors de la quatrième Semaine d'Étude Mathématiques et Entreprises : nous avons a notre disposition une image requête provenant d'une séquence vidéo. Comment retrouver le cadre exact de la séquence vidéo qui correspond à l'image requête, sachant que l'image requête et la séquence sont prises des sources diérentes et n'ont donc pas la même qualité, résolution, taille ou contraste ? Ceci nécessite des descripteurs à la fois robustes envers les transformations d'images et sensibles aux nes diérences entre deux images. Nous avons étudié plusieurs approches comme l'utilisation de l'algorithme SIFT ou une méthode géométrique basée sur la restriction aux transformations anes. 1 Introduction : Le sujet proposé par Technicolor s'inscrit dans le problème de la recherche visuelle à grande échelle , c'est-à-dire la recherche d'images ou de séquences vidéos dans des bases des données très grandes, par exemple l'ensemble des images accessibles sur Internet ou des vidéos sur YouTube. Le challenge posé par Technicolor est très précis et peut s'énoncer comme suit. Comment à partir d'une seule image (plus loin nommée image requête) dont on sait qu'elle est prise d'un lm 1. retrouver le lm dont est extrait l'image, 2. retrouver la scène dont l'image est tirée , 3. retrouver l'image exacte (c'est-à-dire un moment dans le lm à 1/25s près) qui correspond à l'image requête. C'est le dernier point qui nous occupe ici. En eet, il existe déjà des techniques assez ecaces (qu'on supposera avoir déjà été utilisées ici) pour séparer les plans d'action d'un lm. Pourquoi cela représente-t-il un dé ? En général, le domaine de traitement d'images est assez avancé. Ces dernières années plusieurs algorithmes ont été developpés qui permettent d'une manière robuste de trouver des correspondances pertinentes entre deux images (un exemple est l'algorithme SIFT présenté ci-dessous) qui peuvent avoir subi de légères transformations (résolution, taille, contraste, voire légères transformations géométriques). En eet, pour la recherche d'une image sur internet il existe déjà des solutions ecaces comme par exemple Google Image Search. Ce service permet de retrouver rapidement des images semblables à une image requête et est aussi capable de reconnaitre des éléments caractéristiques d'un con contenu d'une image (par exemple la tour Eiel). La recherche des images dans des séquences vidéos par contre représente un problème plus dicile. Il y a notamment deux dés à maitriser : - une séquence vidéo est composée d'une succession d'images (frames) et même une courte séquence en comporte déjà beaucoup (par exemple 250 frames pour une vidéo de 10 s). On aura alors une base de données de taille énorme dans laquelle il faut eectuer la recherche. - les images tirées d'une même scène peuvent se ressembler beaucoup. Pour trouver le frame exact à partir d'une image requête il faut alors capter les nes diérences, et cela de préférence avec un minimum de paramètres pour pouvoir comparer rapidement deux images. D'autre part, les paramètres doivent être invariants par des changements de qualité et résolution/taille de l'image puisque les vidéos qu'on trouve sur internet sont souvent compressées. 2 Problématique concrète Dans ce travail, nous sommes partis d'une problématique un peu plus restreinte. Patrick Perez de Technicolor a mis à notre disposition une image requête d'une bonne qualité tirée du lm "Children of men" et la sequence vidéo dont l'image a été tiré. La vidéo était d'une résolution plus basse que l'image requête et d'une durée d'une minute trente secondes environ. Le découpage de la vidéo en frames a conduit à une séquence de plus de 2000 images. L'objectif était de retrouver l'image requête dans cette séquence de frames. Pour tester nos méthodes sur un autre exemple, nous avons ajouté une image requête du lm "Titanic" et la scène correspondante (la ying scene ) prise sur le web. Pour trouver la bonne image nous avons testé plusieurs approches. Tout d'abord la méthode "SIFT", qui est un algorithme existant de comparaison d'images et dont il existe une implémentation pour MATLAB [2]. Nous avons utilisé cet algorithme pour identier les "images candidates" les plus proches de notre image requête. Pour capter les diérence plus nes entre les images nous avons étudié une méthode de ranement géométrique et une méthode basée sur la detection des zones de mouvement dans l'image. Dans ce qui suit nous décrirons en détail ces méthodes. Tous les calculs numériques ont été faits avec MATLAB. 3 Méthode SIFT : SIFT ou Scale-invariant feature transform (SIFT), que l'on peut traduire par transformation de caractéristiques visuelles invariante à l'échelle , est un algorithme utilisé dans le domaine de la vision par ordinateur pour détecter et identier les éléments similaires entre diérentes images numériques (dans ce travail c'est l'identication des éléments similaires entre l'image requête et les images extraites de la séquence vidéo voir g(2) ). Il a été développé en 1999 par le chercheur David Lowe [1]. La méthode proposée par Lowe comprend deux parties : un algorithme de détection de caractéristiques et de calcul de descripteurs. un algorithme de mise en correspondance proprement dit. Il s'agit tout d'abord de détecter sur l'image des zones circulaires intéressantes , centrées autour d'un point-clé et de rayon déterminé appelé facteur d'échelle. Celles-ci sont caractérisées par leur unité visuelle et correspondent en général à des éléments distincts sur l'image. Sur chacune d'elles, on détermine une orientation intrinsèque qui sert de base à la 1 Fig. Fig. 1 La méthode SIFT. 2 L'image requête R et quelques images extraites du lm "Children of men". construction d'un histogramme des orientations locales des contours, habilement pondéré, seuillé et normalisé pour plus de stabilité. C'est cet histogramme qui, sous la forme d'un vecteur à 128 dimensions (ou valeurs), constitue le descripteur SIFT du point-clé. L'ensemble des descripteurs d'une image établissent ainsi une véritable signature numérique du contenu de celle-ci. Ces descripteurs présentent l'avantage d'être invariants à l'orientation et à la résolution de l'image, et peu sensibles à son exposition, à sa netteté ainsi qu'au point de vue 3D. Ils décriront de façon très semblable les détails d'une image originale et ceux d'une image retouchée par l'application d'une rotation, d'un recadrage ou d'un lissage, par une correction de l'exposition, par occultation partielle ou encore par l'insertion dans une image plus grande. Une fois le calcul des descripteurs eectué, l'algorithme de mise en correspondance intervient dans le but de rechercher les zones d'une image dite suspecte qui contiennent des éléments visuellement similaires à ceux d'une bibliothèque d'images de référence, c'està-dire des descripteurs numériquement proches g(3). Ceci ne peut fonctionner que parce que les descripteurs SIFT sont à la fois robustes (aux principales transformations anes et aux changements d'exposition ou de perspective) et discriminants (deux objets diérents ont une grande probabilité d'avoir des descripteurs diérents). 2 3 Les points d'interêt communs entre l'image requête R et une image k prise du lm "Children of men". Fig. Il est évidemment naturel de chercher à appliquer directement cette méthode aux quelques 2000 images de la séquence vidéo. C'est ce que nous avons commencé par faire. 4 Première étape : recherche des candidats On suppose, pour commencer, qu'on a déjà isolé une séquence relativement courte de N images (correspondant à quelques minutes de vidéo) parmi lesquelles se trouve notre image requête (R). Le but est donc d'identier R avec une image k ∈ {1, ..., N } de la sequence. Pour ce faire, nous allons dans un premier temps essayer d'isoler un ensemble de C (< N ) images candidates, qu'on analysera dans la suite avec des méthodes permettant de détecter des dierences plus nes. Le choix de C devrait théoriquement se faire cas par cas en considérant le nombre total d'images N et leur degré de similarité, cependant nos experiments ont suggéré que le choix C = 10 est en général un bon compromis. Notre procédure se déroule en plusieurs étapes : On applique l'algorithme SIFT sur l'image requête R et sur chacune des N images de la sequence. On obtient donc, pour chaque image, un ensemble (de taille variable) de points d'intérêt, identiés par leur position spatiale et leur vecteur de dimension 128 associé. On localise les n(k) points d'intérêt les plus pertinents entre R et chaque image k, pour k = 1, ..., N . Cela se fait grace à un algorithme déjà implémenté en Matlab, qui trouve les correspondences entre points d'intérêt de deux images en utilisant la distance entre les vecteurs associés. Le nombre n(k) varie avec k parce que toutes les images n'ont pas forcement le même nombre de points d'intérêt. À chaque correspondance i de points d'intérêt on associe un score S(k, i), pour i = 1, ..., n(k). Ce score représente la distance entre les deux vecteurs associés. On choisit un nombre minimal n de points d'intérêt communs avec R. Le but ici est de rendre homogènes les comparaisons avec chaque image de la sequence, an de pouvoir choisir les meilleures. Un choix possible est n = mink n(k), mais en général on choisira un nombre plus petit car les correspondances qui sont plus loin dans la liste ne sont typiquement pas très ables. Dans les examples présentés ici on a pris 3 Fig. 4 Les 10 images candidates pour la séquence de Titanic n = 30, en observant par ailleurs que les résultats ne sont pas très dépendants de ce choix. Pour chaque image k on construit une distance d(k) = n X S(k, i), qui nous indique i=1 le degré de similarité globale entre k et R. Si les images n'ont pas de points d'interet communs on xe d(k) = ∞. On trie les d(k), pour k ∈ {1, ..., N }, et on choisit les C premières dans la liste. 4.0.1 Evaluation de cette méthode La méthode "SIFT" s'est averée très able pour trouver les bonnes images candidates. Dans les deux cas ("Children of men" et "Titanic") les images candidates faisaient eectivement partie du même cadre du lm que l'image requête et étaient visuellement très semblables à celle-ci. Le frame correspondant à l'image requête se trouvait parmi les images candidates. Cependant ce frame n'a pas toujours eu le meilleur score parmi les candidates, nécessitant l'application des méthodes plus nes pour isoler la bonne image. On trouvera le résultat de cette méthode pour Titanic gure 4 où l'image requête est en 5e position. Le inconvient majeur de cette méthode est son temps de calcul. Pour identier les 10 candidates parmi une séquence de 2000 images notre algorithme nécessitait au moins 30 minutes de calcul, ce qui est inadmissible pour des bases de données plus grandes. Pour aller plus loin on pourrait alors explorer d'autres pistes pour augmenter l'ecacité de la recherche. 5 Méthode des diérences Dans cette section (et dans la suite), on n'utilisera uniquement des images en niveaux de gris. Il est bien sûr possible d'appliquer séparément à chaque canal couleur les méthodes 4 Fig. 5 Zones d'intérêt dans Children of Men et dans Titanic qui vont suivre. Pour comparer deux images, une première idée naturelle consiste à les comparer pixel par pixel pour identier les zones où les images dièrent. Evidemment, cette idée n'est pas appropriée en général puisqu'elle n'est invariante par aucune transformation d'image. En eet, on ne peut pas comparer ainsi l'image requête et les images de la séquence puisque leurs résolution/taille/qualité ne sont pas les mêmes. Par contre, pour comparer les images candidates entre elles cette méthode paraît convenable car ces images proviennent du même frame et sont donc de la même taille et qualité. L'idée est de comparer les images candidates pour détecter les zones d'intérêt qui sont les zones où les images dièrent (zones de mouvements). Plus précisément, on dit qu'un point appartient à une zone de mouvement s'il existe deux image parmi les dix candidats où ce point a une valeur diérente (en fait, où la diérence de gris dépasse un certain seuil). Les zones d'intérêt pour les deux lms étudiés sont présentées gure 5. Il est déjà clair que les images tirées de Titanic sont nettement plus semblables que celles de Children of men. En supposant que SIFT a choisi dix images candidates pertinantes par rapport à l'image requête, on peut donc relancer une comparaison entre l'image requête et les images présélectionnées auxquelles on aura enlevé toutes les zones qui leur sont communes. Ainsi, les points détectés sont nécessairement dans des zones d'intérêt des images candidates, ce qui permet des résultats plus pertienents (on a jeté les informations inutiles). Dans le cas de Children of men cette méthode a permis de détecter la bonne image. Pour conclure sur l'ecacité de cette méthode il faudrait l'étudier dans d'autres cas. 6 Une méthode géométrique Dans la première approche, les similitudes sont recherchées modulo des transformations anes très générales de l'image. Or, dans notre problème, il est raisonnable de considérer que les seules transformations géométriques sont le découpage, le changement d'échelle et, éventuellement, un léger changement du rapport hauteur/largeur de l'image. Aussi, on va essayer de tirer partie de cette rigidité géométrique pour détecter la bonne image parmi les dix candidats proposés par SIFT. Mathématiquement, on considère donc que l'image requête I a subi une transformation ane A (voir gure 6) qui s'écrit (translation et anités orthogonales d'axes orizontal et 5 Fig. 6 Transformation géométrique subie par l'image requête Candidat 1 2 3 4 Écart type λ1 0.05 0.1 0.05 0.08 Candidat 1 2 3 4 Écart type λ2 0.17 0.4 0.06 0.25 Fig. 5 0.01 5 0.06 6 7 8 9 10 0.05 0.19 0.11 0.13 0.13 6 7 8 9 10 0.19 1.81 0.09 0.06 0.16 7 Analyse statistique des coecients λ1 et λ2 pour le lm Children of Men. vertical) : a1 λ1 0 ˜ I= + I. a2 0 λ2 Comme il sut d'une paire de triangle pour déterminer uniquement λ1 , λ2 , a1 et a2 , il est naturel de considérer dans l'image requête et dans les images candidates tous les triangles formés par trois points d'intérêt et de collecter, pour chaque paire de triplets de points, les valeurs des paramètres obtenus. La première idée consiste à eectuer une simple analyse statistique sur les valeurs de λ1 et λ2 collectées et de sélectionner l'image qui minimise leur variance. Pour limiter les correspondances absurdes, on choisit (arbitrairement), d'exclure de cette analyse le quart inférieur et le quart supérieur des λ1 et λ2 calculés. Concernant le lm Children of Men, les résultats obtenus (gure 7) conduisent à la bonne image. Concernant le lm Titanic, le résultat n'est pas satisfaisant (cf gure 8), et ceci pour une raison simple : les points d'intérêt sont détectés dans des zones de l'image qui ne varient pas selon les dix candidats présélectionnés. Enn, nous avons testé cette méthode avec une image requête directement issue de la séquence vidéo. Là, cette méthode se révèle très pertinenente puisque les variances de λ1 et λ2 tombent alors à zéro pour l'image correspondante. On peut donc imaginer plusieurs ranements possibles. Ne considérer que les triplets bien ordonnés (on peut exiger que l'ordre, horizontal ou vertical, des trois points soit préservé) : les triplets pertinents vérient cette propriété. Forcer SIFT à détecter des points d'intérêt uniquement dans les zones qui dièrent selon les candidats (on peut pour cela utiliser la méthode des diérences exposée précédemment). Ainsi, on évite l'écueil observé sur le lm Titanic. 6 Candidat 1 2 3 4 5 6 7 8 9 10 Écart type λ1 0.44 1.35 0.46 0.67 0.45 0.16 0.85 0.58 0.35 0.31 Candidat 1 2 3 4 5 6 7 8 9 10 Écart type λ2 0.41 0.99 0.42 0.21 0.46 0.22 0.44 0.16 0.3 1.15 Fig. 8 Analyse statistique des coecients λ1 et λ2 pour le lm Titanic. Ici s'arrêtent les expériences menées pendant cette semaine. On peut néanmoins penser à quelques perspectives pour améliorer les méthodes présentées ici et atteindre, quelle que soit le couple (image requête, séquence vidéo), l'objectif demandé. 7 Perspectives Dans tous les résultats présentés précédemment, on voit clairement que la séquence de Titanic reste compliquée à traiter, car les variations entre deux images consécutives y sont particulièrement faibles. Voici quelques idées non exploitées pour aller plus loin. Tout d'abord, il existe des outils plus performants (et surtout plus rapides) que SIFT pour détecter les zones similaires entre deux images. La méthode des diérences ajoute articiellement des bords qui, par malchance, peuvent correspondre à une zone d'intérêt de l'image requête et par suite fausser la correspondance. Il serait donc judicieux de modier directement SIFT pour qu'il cherche les points d'intérêt dans les zones de diérence, et ce sans modier les images candidates. Il peut être intéressant d'utiliser la méthode géométrique pour collecter les valeurs de λ1 , λ2 , a1 et a2 de sorte à recaler l'image requête avec les images candidates. Ainsi, il deviendrait possible de les comparer pixel par pixel. 7 Mots clés : traitement d'images, SIFT, recherche d'image. Numéro de publication : SEME00X-201X-0X-X 8 Remerciements Nous tenons tout d'abord à remercier Patrick Perez pour le sujet passionnant qu'il nous a proposé, sujet qui nous a permis d'apprendre beaucoup de nouvelles choses concernant le traitement des images et pour sa disponibilité pendant cette semaine. Ce projet nous a aussi permis d'adopter une démarche très diérente de notre travail de thèse, à travers sa précision et sa courte durée. Nous remercions chaleureusement Bertrand Maury, Laurent Dumas et Sylvain Faure pour l'organisation de cette semaine où des matheux de toute sensibilité ont pu pour une fois travailler ensemble sur des sujets originaux. Nous sommes aussi reconnaissants à Simon Masnou, Antonin Chambolle et Sylvain Faure de nous avoir donné quelques idées pour aborder notre problème. Références [1] David G. Lowe (1999). Object recognition from local-scale invariant features. Proceeding of the International Conference on Computer Vision. 2. pp. 1150-1157. [2] A. Vedaldi and B. Fulkerson (2008). VLFeat : An Open and Portable Library of Computer Vision Algorithms. http ://www.vlfeat.org/ 9