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