PROCEDE ET DISPOSITIF DE DETECTION DE COPIES DANS UN FLUX DE DONNEES VISUELLES
Domaine de l'invention
L'invention concerne le domaine de la transmission et de l'échange de documents multimédia, par exemple une image ou une vidéo. Plus précisément, l'invention concerne la détection de quasi-copies de contenu visuel.
Etat de la Technique
L'avènement du web social a engendré une augmentation massive de la propagation de contenu visuel - images, vidéo - sur les sites Web ou sur les profils des utilisateurs de réseau social en ligne (OSN). Les contenus diffusés et relayés peuvent être à l'identique, et l'on parle de copies de contenu, voire contenir des modifications mineures, et l'on parle de quasi-copies de contenu. Dans la suite de la description, les expressions « copie de contenu », « copie d'image », « détection de copie » et autres variantes utilisant le terme « copie » seront à interpréter comme englobant le terme copie et/ou quasi-copie.
Il est généralement admis que la quasi-copie d'une image est une image de référence ayant subi une ou une combinaison de transformations. Les images de référence peuvent appartenir à une base fixe d'images ou encore avoir été collectées précédemment via un flux de données visuelles.
Les transformations suivantes sont des exemples les plus susceptibles d'être rencontrées sur internet, parmi les images courantes publiées dans les principaux média sociaux que sont les blogs, les réseaux sociaux, les forums, les journaux en ligne, etc. : - une compression, en JPEG par exemple ;
- un changement d'encodage comme une conversion en PNG par exemple ;
- un flip, par inversion gauche droite par exemple ;
- un changement de ratio («scaling » en anglais)
- un recadrage («crop » en anglais) avec par exemple une suppression des bords de l'image, pas forcément en centré ;
- une transformation colorimétrique, en niveau de gris, en sépia par exemple ;
- une petite rotation, inférieure à 20° par exemple ;
- une incrustation de texte (titre, signature...) ou d'image (ex : logo).
La détection de copie d'un contenu visuel de référence présente de multiples intérêts pratiques dans le domaine de l'analyse des média sociaux, que ce soit pour des blogs, des réseaux sociaux, des forums ou encore des journaux en ligne. Ce problème est au cœur d'applications diverses telles la recherche de copies illicites d'un contenu protégé, les mesures de popularité d'un contenu, la veille sur les média sociaux ou encore la localisation de programme au sein d'une vidéo, pour ne citer que quelques applications d'intérêt.
Indépendamment de son utilisation, la détection de copie est une opération qui consiste à identifier une image par son contenu, une technique connue comme « content based retrieval » selon l'anglicisme consacré. Comme une caractéristique importante à prendre en compte dans le domaine des réseaux sociaux est qu'un contenu est un flux de données qui doit être traité en continu, la détection de copie (image ou
keyframe extraite d'une vidéo) provenant d'un flux de données visuelles se concentre généralement sur le temps de recherche en ligne d'une image dans une base de référence et sur la robustesse aux différentes transformations qu'une image peut subir. Ainsi, les approches connues de détection de copie ou quasi-copie s'appuient sur un procédé où la génération de signatures visuelles compactes sont construites en agrégeant des caractéristiques locales d'une image afin d'accélérer le processus de recherche. Dans le cas d'un flux de données numériques visuelles où le traitement d'une requête de détection de copie inclut le calcul d'une signature de l'image à analyser et la recherche d'une quasi- copie dans les images de référence, il est nécessaire que le temps de traitement total soit compatible avec le débit du flux des données à traiter.
Cependant, le calcul et l'agrégation de caractéristiques locales ont un coût non négligeable et le temps d'indexation (calcul de signature) doit être suffisamment petit dès lors que l'on envisage de traiter des flux d'images. Le temps de calcul des signatures visuelles doit être compatible avec la fréquence de réception de nouvelles données. Plus précisément, les opérations d'indexation et de recherche doivent être exécutées à un taux plus élevé que celui de la collecte de nouvelles données du flux arrivant. Par exemple, si un système ingère un demi-million d'articles multimédias visuels par jour, leur comparaison avec un contenu récent, supposé inclure de 10 à 100 millions of documents, doit être effectuée en moins de (24x3600) / 500 000 = 172,8 millisecondes, c'est-à-dire de l'ordre de 6 images par seconde. Une telle exigence de taux de traitement rend l'utilisation de signatures basées sur la transformation et la compression de caractéristiques locales, difficile à utiliser si les ressources informatiques sont limitées. Ainsi, le temps de traitement d'une requête doit aussi être mis en regard des ressources informatiques (mémoire, processeur) nécessaires pour assurer le service.
La figure 1 présente une chaîne de traitement standard pour la détection de copie. Le principe général consiste à rechercher dans une base de référence une image par son contenu et décider si l'image est une copie ou une quasi-copie d'une image de référence. Ainsi, le dispositif de traitement d'une requête comprend sur une première chaîne de traitement hors ligne (102), qui inclut un module d'extraction de caractéristiques visuelles (104-1 ) qui consiste à établir une représentation vectorielle d'une image donnée (documents de référence), représentation qui peut comporter un ou plusieurs vecteurs, et un module d'indexation (106) pour indexer les descripteurs issus de l'extraction des caractéristiques, et ainsi constituer une base indexée de référence qui peut être efficacement fouillée. De manière optionnelle, l'indexation peut comporter des labels dans les cas où plusieurs images de référence sont elles-mêmes des quasi-copies. Le dispositif comprend de plus une seconde chaîne de traitement en ligne (108) pour traiter une requête, qui comprend un module d'extraction de caractéristiques visuelles (104-2) pour établir une description vectorielle d'une image requête, couplé à un module de comparaison (1 10) qui utilise la description vectorielle de l'image requête et interroge la base de référence pour trouver des images similaires, et qui est couplé à un module de décision (1 12) pour déterminer si l'image requête est une copie ou non d'une image de référence.
La plupart des travaux connus dans le domaine du multimédia reposent sur l'extraction de descripteurs locaux pour représenter les images. Sur chaque image de référence, un ensemble de points d'intérêt est sélectionné comme correspondant à des points visuellement remarquables de l'image et susceptibles d'être retrouvés même après une altération de l'image. Un descripteur local est ensuite calculé dans un voisinage spatial de chaque point d'intérêt.
Une telle approche est présentée dans la demande de brevet WO 2009/09561 6 de Gengembre Nicolas et al. intitulée « Method of identifying a multimédia document in a référence base, corresponding computer program and identification device", ou encore dans l'article de Joly, A., Buisson, O. et Frelicot, C. titré "Content-Based Copy Retrieval Using Distortion-Based Probabilistic Similarity Search," Multimedia, I EEE Transactions on vol.9, no.2, pp.293,306, Feb. 2007.
Cependant, ce procédé est assez coûteux en temps de calcul, à la fois pour extraire les descripteurs locaux mais surtout pour retrouver les documents de référence quand la base de référence devient
volumineuse.
Par conséquent, les méthodes de descripteurs locaux présentent de bonnes performances et des schémas d'indexation efficaces ont été proposés pour les exploiter pour la recherche d'images rapide. Cependant, ces travaux sont focalisés sur le temps de recherche et les méthodes proposées sont encore trop lentes pour être appliquées à des calculs dans des flux continus de données pour lesquels le temps d'extraction de caractéristiques est un paramètre essentiel.
Une alternative connue consiste à utiliser une signature globale d'une image à analyser. L'indexation consiste alors souvent en une opération de concaténation, aboutissant à un fichier de signature brut. L'opération de comparaison consiste ensuite à déterminer une simple distance (ou une similarité) entre vecteurs. L'avantage de cette approche est que le calcul de la signature est rapide. L'inconvénient est qu'elle est généralement moins robuste aux transformations que les approches utilisant des descripteurs locaux. En outre, la vitesse de comparaison est proportionnelle à la taille de la base de référence et à la dimension des signatures. Il s'agit donc de trouver des signatures les plus petites possibles.
Les références suivantes proposent des articles relatifs au calcul de signature globale.
La publication de B. Thomee, M. J. Huiskes, E. M. Bakker, et M. J. Lew "An évaluation of content-based duplicate image détection methods for web search", ICME 2013, compare plusieurs de ces approches sur un benchmark commun.
Le moteur de recherche d'image « TinEye » (www.tineye.com) qui utilise probablement une approche un peu plus simple appelée « average hash » est aussi à citer. Il s'appuie sur le fait qu'une petite modification du contenu du signal ne modifie que peu la clé de hash, contrairement aux fonctions de hash classiques. Cela permet d'utiliser des fonctions de similarité telle la distance de Hamming bien connue pour trouver des contenus « presque identiques ».
La publication de Zauner, Christoph "Implementation and Benchmarking of Perceptual Image Hash Functions » Master's thesis, Upper Austria University of Applied Sciences, Hagenberg Campus, 2010 passe en revue des fonctions de « hashing perceptives » qui sont assimilables à des signatures globales.
La publication disponible sur internet en avril 2014 à l'adresse http://blog.iconfinder.com/detecting-duplicate-images-using-python/ décrit une méthode de hashing perceptive basée sur des moyennes de bloc, rentrant dans la famille des méthodes décrites dans l'article de Zauner. En particulier, le procédé consiste en les étapes suivantes :
- convertir une image requête en niveaux de gris ; - réduire l'image grise à une taille fixe de « 8x9 » (8 lignes, 9 colonnes) ;
- comparer l'intensité des pixels adjacents de chaque ligne, pour attribuer une valeur « vrai » si un pixel a par exemple une valeur
de niveau de gris supérieure à celle du pixel qui lui est adjacent à droite ; et
- coder l'image binaire résultante (8x8) en hexadécimal.
La figure 2a illustre la construction de la fonction de hash pour une ligne T selon ce principe. Dans cet exemple, une image requête est réduite à une taille fixe de 8 lignes x 9 colonnes. L'étape de comparaison des pixels consiste à attribuer une valeur Vrai' si l'intensité d'un pixel est supérieure à l'intensité du pixel adjacent. Pour cet exemple, la ligne comprend des blocs pixels (B1 -B9) d'intensité respective (B1 =120, B2=121 , B3=121 , B4=88, B5=86, B6=136, B7=130, B8=84, B9=85). Après comparaison des pixels adjacents à droite, la ligne binaire résultante codée en hexadécimal (hash de la ligne ï) est une ligne de huit valeurs '0,0,1 ,1 ,0,1 ,1 ,0'. L'image résultante est une image de taille (8x8).
Bien que ce procédé soit très rapide, il n'est robuste qu'à certaines transformations, et n'offre pas la robustesse attendue pour de nombreuses autres, comme pour l'inversion gauche-droite et pour les petites rotations.
Alternativement, l'homme du métier pourra construire une version symétrique de cette méthode en comparant des pixels symétriques, comme illustré sur la figure 2b. Une ligne Ί' est constituée de huit colonnes B1 à B8 de valeurs de pixels respectifs '121 ,122,120,87,86,125,1 19,84'. La comparaison des valeurs de pixels s'effectue en symétrie centrale droite, la valeur du pixel B1 =121 avec la valeur du pixel B8=84 et ainsi de suite. La ligne binaire résultante codée en hexadécimal (hash de la ligne ï) est une ligne de quatre valeurs '1 ,1 ,0,1 '. L'image résultante est une image de taille (8x4). Une telle approche diminue le nombre d'opérations de comparaison par deux, ce qui permet d'obtenir une signature plus compacte, mais cela rend le procédé moins robuste aux transformations, en particulier du fait de la
perte d'information car il y a de fait moins de régions dans les images qui sont comparées.
Ainsi, il n'existe pas dans l'art antérieur de solution qui permette de construire une signature globale représentative d'une image qui : - offre une faible complexité algorithmique afin de calculer très rapidement avec peu de ressources machines une signature d'une image ;
- soit assez compacte pour permettre de rechercher rapidement dans une base de référence ; et - soit robuste aux transformations les plus usuelles rencontrées sur internet.
La présente invention répond à ce besoin.
Résumé de l'invention La solution décrite vise à résoudre le problème de la recherche de contenu visuel dans un contexte de flux de données visuelles.
Pour atteindre cet objectif, un objet de la présente invention est de proposer un dispositif et un procédé de détection de copie basé sur un nouveau mode d'obtention de la signature globale d'une image. Avantageusement, le procédé de l'invention qui permet de générer une signature d'image est rapide, et permet de calculer une signature dans un délai de l'ordre de ou inférieur à 5 ms pour une machine de ressources usuelles, telle par exemple une machine opérant dans une plage de fréquence de 3 GHz. Toujours avantageusement, la signature obtenue par le procédé de l'invention est très compacte, inférieure à 100 octets, permettant ainsi une
recherche rapide et de manière exhaustive dans une grande base de données, le contenu de la base dépendant de la taille mémoire disponible et pouvant par exemple contenir de l'ordre de 107 à 108 images.
Avantageusement, la signature d'image obtenue par le procédé de l'invention peut être quantifié au moyen d'une méthode de K-médiane afin d'être indexé dans une structure d'index inversé permettant d'accélérer la recherche. Un procédé semblable, quantifiant une signature GIST au moyen de K-moyenne est décrit dans M. Douze, H. Jégou, H. Sandhawalia, L. Amsaleg, and C. Schmid, "Evaluation of gist descriptors for web-scale image search," in International Conférence on Image and Video Retrieval. New York, NY, USA: ACM, 2009, pp. 19:1 -19:8. La méthode de K-médiane est identique à la méthode K-moyenne (bien connue de l'homme du métier) en remplaçant le calcul de moyenne par un calcul de médiane. De façon plus générale, la signature d'image obtenue par le procédé de l'invention est robuste aux transformations d'image couramment rencontrées sur internet.
La présente invention trouvera avantage dans toute application où il ressort le problème de devoir rechercher des copies illicites d'un contenu protégé, de vouloir mesurer la popularité d'un contenu diffusé, de vouloir localiser un programme au sein d'une vidéo ou encore pour des applications de veille sur les média sociaux.
Pour obtenir les résultats recherchés, un procédé et un dispositif pour détecter des copies ou quasi-copies d'images sont proposés. Le procédé consiste à recevoir une image initiale, convertir l'image initiale en niveaux de gris, redimensionner l'image grisée en une image réduite ayant une pluralité de lignes et un nombre pair de colonnes, calculer une signature globale de l'image réduite, et déterminer si l'image initiale est une copie ou quasi-copie d'image selon le résultat d'une comparaison
entre la signature globale de l'image réduite et des signatures d'images de référence. L'étape de calcul de la signature globale de l'image comprend les étapes de calculer une signature de ligne pour chaque ligne de l'image réduite, le calcul étant basé sur une comparaison de valeurs, obtenues par statistique sur des sous-ensembles de pixels symétriques sur chaque ligne, et concaténer les signatures de ligne pour obtenir une signature globale de l'image.
Dans un mode de réalisation, l'étape de calcul d'une signature de ligne comprend les étapes de définir une pluralité de régions de pixels symétriques pour l'image réduite, et sur chaque ligne, sélectionner des groupes de sous-ensembles de pixels symétriques (Pxi,Pyj), chaque sous-ensemble étant défini de manière à ce que si un pixel appartient à un groupe Pxi son symétrique sur la ligne appartient au groupe Pyj.
Avantageusement, les valeurs statistiques sont une moyenne sur les sous-ensembles de pixels et la signature de ligne est une valeur attribuée à un élément d'une fonction de hash en fonction de la valeur de statistique.
Dans une variante d'implémentation, la valeur attribuée à un élément d'une fonction de hash est égale à '1 ' si la moyenne obtenue pour un sous-ensemble Pxi est plus grande que celle obtenue pour le sous-ensemble Pyj symétrique.
Avantageusement, la signature globale est une fonction de hash globale obtenue par concaténation des fonctions de hash calculées pour chaque ligne. Dans une variante, l'étape de calcul de la signature globale comprend l'ajout d'une statistique globale.
Selon un mode de réalisation, le redimensionnement de l'image grisée consiste à réduire l'image initiale à une première image de Ή' lignes par 'W+K' colonnes où W est pair et 'K' impair, puis à ramener à une deuxième image de Ή' lignes par 'W colonnes avec 'W pair.
Selon un autre mode de réalisation, l'étape de calcul de la signature globale consiste à calculer une signature globale pour l'image initiale et pour la transformation de l'image en coordonnées polaires.
Avantageusement, le procédé peut comprendre de plus après l'étape de redimensionnement de l'image, une étape de détermination d'un centre stable de l'image en fonction du contenu.
Dans une variante, le procédé peut comprendre une étape de quantification de la signature au moyen de K-médianes. L'étape de comparaison est alors implémentée au moyen d'une structure d'index inversé.
L'invention couvre aussi un dispositif pour générer des signatures d'images de référence qui permet de recevoir une image de référence initiale, de la convertir en niveaux de gris, de redimensionner l'image de référence grisée en une image de référence réduite ayant une pluralité de lignes et un nombre pair de colonnes, et de calculer une signature de ligne pour chaque ligne de l'image de référence réduite où le calcul est basé sur une comparaison de valeurs obtenues par statistique sur des sous-ensembles de pixels symétriques sur chaque ligne. Les signatures de ligne obtenues sont concaténées pour obtenir une signature d'image de référence.
L'invention peut opérer sous la forme d'un produit programme d'ordinateur qui comprend des instructions de code permettant d'effectuer les étapes des procédés revendiqués lorsque le programme est exécuté sur un ordinateur.
Description des figures
Différents aspects et avantages de l'invention vont apparaître en appui de la description d'un mode préféré d'implémentation de l'invention mais non limitatif, avec référence aux figures ci-dessous :
La figure 1 illustre les blocs fonctionnels d'un dispositif connu de détection de copies ;
Les figures 2a et 2b illustrent deux exemples de construction d'une signature de ligne selon des procédés connus ;
La figure 3 illustre les étapes du procédé pour obtenir une signature d'une image selon un mode de réalisation de l'invention ; La figure 4 illustre les blocs fonctionnels du dispositif de l'invention dans un mode de réalisation.
Description détaillée de l'invention
Référence est faite à la figure 3 qui montre les étapes principales du procédé de l'invention pour calculer une signature globale d'une image c'est-à-dire la construction d'un descripteur global de l'image. Le procédé de l'invention peut s'implémenter à partir d'éléments matériel et logiciel. Les éléments logiciel peuvent être disponibles en tant que produit programme d'ordinateur sur un support lisible par ordinateur, support qui peut être électronique, magnétique, optique ou électromagnétique. Les éléments matériels peuvent être disponibles tous ou en partie en tant que circuits intégrés dédiées (ASIC) ou circuits intégrés dédiées
reprogrammables (FPGA) ou en tant que processeur de signal numérique DSP ou en tant que processeur graphique GPU.
Le procédé (300) est mis en œuvre au sein d'un dispositif d'extraction de caractéristiques visuelles tel celui représenté en figure 1 (104-1 , 104-2). Le procédé est appliqué en mode déconnecté hors ligne lors de la constitution d'une base d'images de référence, et opéré en
mode continu en ligne pour analyser des images dans des flux de données visuelles.
Le procédé débute (300) soit à réception d'une requête pour constituer une image de référence, soit à réception d'une requête pour détecter qu'une image d'un flux de données visuelles est la copie ou quasi-copie d'une image de référence.
Dans la suite de la description des étapes 302 à 310, le terme « image » désigne une image issue d'une image initiale dans un flux de données visuelles, ou une image issue d'une image initiale destinée à être une image de référence.
Dans une première étape (302), l'image initiale est convertie en niveaux de gris. Il n'est pas détaillé ici cette opération que l'homme du métier peut appliquer par des techniques conventionnelles. Une variante consiste par exemple à calculer la luminance réelle. Une autre alternative peut être de calculer la fonction « (R+G+B)/3 », tel que cela est proposé notamment dans la librairie OpenCV® par la fonction cvCvtColor().
Avantageusement, cette étape qui fait une moyenne des plans de chrominance introduit une robustesse aux transformations colorimétriques. Dans une seconde étape (304), le procédé permet de réduire la taille de l'image « grise ». L'image est d'abord réduite à une première image de taille ayant Ή' lignes par 'W+K' colonnes où W est pair (W=2w) et K est impair (K=2k+1 ) ou nul (K=0). Dans un mode de réalisation particulier, seul un sous-ensemble pair de colonnes est retenu pour le redimensionnement, par exemple en ne retenant pas la colonne centrale de l'image et si nécessaire pas les colonnes aux extrêmes de l'image, afin de conserver une deuxième image ayant Ή' lignes de pixels par 'W colonnes de pixels où 'W est pair, et ainsi obtenir au final un descripteur pouvant être invariant à l'invariance droite-gauche.
Le redimensionnement de l'image peut être fait en appliquant une technique d'interpolation connue, une approche possible étant de prendre la moyenne des pixels voisins. Alternativement, le redimensionnement de l'image peut se faire par une interpolation linéaire, bi-linéaire, bi-cubique ou spline par exemple.
Avantageusement, cette étape permet d'éliminer des détails considérés peu intéressants pour caractériser l'image de référence, tels des détails en filigrane « watermarks » ou encore du texte. L'étape de redimensionnement améliore également la robustesse du procédé aux transformations de ré-échantillonnage, en conservant ou non le ratio d'origine.
Dans une étape suivante (306), le procédé opère sur chaque ligne de l'image réduite afin de définir une pluralité de régions de pixels symétriques. Le procédé permet pour chaque ligne, de sélectionner des groupes de sous-ensembles de pixels symétriques (Px',Py j), chaque sous- ensemble étant défini de manière à ce que si un pixel appartient à un groupe Ρχ' , son symétrique sur la ligne appartient au groupe Py j.
En reprenant l'exemple de la ligne sur la figure 2b, la table 1 ci- dessous illustre la sélection de 'J=12' sous-ensembles de pixels symétriques (Px',Py j) pour une ligne :
Groupes Px' Groupes Py J
121 84
122 1 19
120 125
87 86
121 ,122 1 19,84
120, 87 86,125
121 , 120 125, 84
121 , 87 86, 84
121 ,120, 87 86, 125, 84
121 , 86, 1 19 122, 87, 84
121 ,122, 86, 125 120, 87, 1 19, 84
121 , 87, 86 87, 86, 84
Table 1
Il est à noter dans cet exemple que les quatre premiers sous- ensembles (121 ,122, 120, 87) du groupe Ρχ' sont des singletons, identiques à la fonction de hash perceptive basique décrite plus haut pour la version symétrique.
Avantageusement, les sous-ensembles qui sont définis ne sont pas nécessairement « totalement exclusifs ». Ainsi sur la dernière ligne de la table 1 , les pixels (87, 86) correspondant aux blocs du milieu de la ligne Ί', appartiennent à la fois au sous-ensemble (121 ,87,86) du groupe des pixels Px' et au sous-ensemble (87,86,84) du groupe des pixels Py j.
Dans une étape suivante (308), le procédé permet de calculer une statistique pour chaque sous-ensemble de pixels et d'attribuer une valeur à l'élément de la fonction de hash correspondante en fonction de la valeur de statistique obtenue.
Dans un mode de réalisation particulier, et tel qu'illustré sur la table 2 ci-dessous qui est repris de l'exemple de la table 1 , la statistique consiste à calculer pour chaque sous-ensemble de pixels, une moyenne i' pour les pixels du groupe Px' et 'μ pour les pixels du groupe Py j, puis à attribuer la valeur '1 ' à l'élément de hash si la moyenne obtenue pour le sous-ensemble Px j est plus grande que celle pour le sous-ensemble Py j ou sinon la valeur Ό'.
104 85 1
109.33 98.33 1
108.67 97.67 1
1 13.5 102.5 1
98 85.67 1
Table 2
Après avoir calculé pour chaque ligne de l'image, la valeur de hash pour chaque sous-ensemble de pixels, le procédé permet dans une étape suivante (310) de calculer une valeur de hash globale pour l'image réduite. La fonction de hash globale est la concaténation des fonctions de hash calculées pour chaque ligne. Dans l'exemple précédent, la fonction de hash globale est de taille 'HxJ'. Les valeurs de hash étant binaires (elles prennent des valeur 0 ou 1 uniquement), les 'HxJ' dimensions de la fonction de hash globale peuvent être codées sur au plus E[HxJ / 8] +1 octets, où E[x] est la partie entière de x.
Avantageusement en définissant des groupes symétriques supplémentaires, la signature devient plus robuste à d'autres
transformations, telles que des incrustations de texte ou d'images, puisque les valeurs comparées sont moyennées (lissées) en plusieurs endroits de l'image.
Dans un mode de réalisation alternatif, il est possible pour le calcul de la signature de l'image d'ajouter (à la fonction de hash globale) le nombre de fois où la moyenne de deux éléments d'un couple (Ρχ', Py j) est identique (nombre d'égalités).
Dans un mode de réalisation alternatif, il est possible pour le calcul de la signature globale de l'image d'ajouter (à la fonction de hash globale) une ou plusieurs statistiques globales.
Par exemple, le calcul peut prendre en compte le nombre de fois où la moyenne de deux éléments d'un couple est identique (nombre d'égalités) ainsi qu'une statistique globale comme l'intensité moyenne de l'image. Dans cette variante, la taille de la signature globale est alors de
« HxJ+ G + 1 » , où 'G' le nombre de statistiques globales ajoutées, c'est- à-dire l'intensité moyenne de l'image, est égal à 1 .
Si 'G' statistiques globales sont ajoutées - avec par exemple 'G=3' pour la moyenne, la variance et la médiane de l'image - plus le nombre d'égalités, alors la taille de la fonction de hash globale est égale à
« HxJ+G+1 = HJ+4 ».
Si le nombre d'égalités est codé par exemple sur 2 octets et chaque statistique globale est codée sur 2 octets, alors la signature de taille « HxJ+G+1 » peut être codée sur (E[HxJ/8] + 1 + 2xG + 2) octets. Dans un mode de réalisation différent, le procédé 300 peut être appliqué sur l'image originale en niveau de gris et sur sa transformation en coordonnées polaires. Dans cette implémentation, l'homme du métier notera que le centre de symétrie sur une ligne peut être arbitrairement fixé pour toutes les images. Dans une variante de réalisation, le centre de symétrie peut être déterminé automatiquement en fonction du contenu de l'image de manière à obtenir un centre plus stable. Une manière de faire peut être par exemple de calculer le barycentre des pixels (moyenne des positions spatiales pondérées par la valeur de niveau de gris des pixels) pour une succession de redimensionnements de taille inférieure à l'image originale, puis de choisir le centre de symétrie quand le barycentre reste localisé dans un voisinage spatial stable.
Alternativement, le barycentre des pixels peut être calculé éventuellement après un filtrage numérique pouvant par exemple effectuer une conversion de l'image en niveau de gris.
Le procédé 300 de génération de signature pour une image, peut être suivi d'un procédé de comparaison quand il est appliqué en mode continu en ligne. Tel que précédemment décrit, la comparaison opérée au sein d'un module de comparaison de la chaîne de traitement (module 1 10 de la figure 1 ), permet de comparer la signature globale obtenue en ligne avec des signatures de la base de référence qui ont été calculées hors ligne.
Dans une variante, le procédé peut comprendre une étape de quantification de la signature au moyen de K-médianes. L'étape de comparaison est alors implémentée au moyen d'une structure d'index inversé. Une telle méthode d'accélération du temps de recherche par quantification par K-moyenne est décrite pour le descripteur GIST dans M. Douze, H. Jégou, H. Sandhawalia, L. Amsaleg, and C. Schmid, "Evaluation of gist descriptors for web-scale image search," in
International Conférence on Image and Video Retrieval. New York, NY, USA: ACM, 2009, pp. 19:1 -19:8. De manière préférentielle, la quantification est réalisée au moyen d'un algorithme de K-médiane, identique à l'algorithme des K-moyennes en remplaçant la moyenne par une médiane.
Dans un mode de réalisation, la comparaison s'effectue par le calcul d'une distance entre la signature globale et des signatures d'images issues de la base de référence. Dans une variante, la distance est composite et correspond à la moyenne des distances 'dH' et 'dME' où dH est la distance de Hamming sur les fonctions de hash globales, et 'dME' une distance sur les statistiques globales et le nombre d'égalité.
Par exemple, dME peut être la distance de Manhatan ou la distance euclidienne.
Une implémentation préférentielle du mode de réalisation précédent est celle où la taille de l'image réduite est égale à 'H=W=1 6', le nombre de groupes de sous-ensembles de pixels est égal à 'J=1 6', la distance sur les fonctions de hash globales 'dH' est prise comme étant la distance de Hamming et la distance sur les moyennes de niveaux de gris 'dME' est la distance de Manhattan L1 . Dans cette configuration, les 1 6 groupes pour une ligne sont alors établis selon la table 3 suivante, où {pk, k= 1 , ...1 6} sont les pixels successifs d'une ligne de l'image réduite ordonnés de gauche à droite, pi étant le pixel le plus à gauche et pi6 le pixel le plus à droite :
Table 3
Le procédé de l'invention a été évalué sur le benchmark proposé par B. Thomee, M. J. Huiskes, E. M. Bakker, et M. J. Lew "An évaluation
of content-based duplicate image détection methods for web search", ICME 201 3. Il consiste en 6000 images qui ont été transformées de 60 manières différentes, les transformations ayant été choisies après une enquête auprès de 45 personnes familières avec le traitement d'image qui ont reporté les transformations les plus courantes qu'elles rencontraient sur le web. Les 360 000 images résultantes ont été fusionnées avec deux millions d'images afin de constituer la base de référence. Les 6000 images originales sont utilisées en requête et la performance est mesurée en « mean Average Précision » (mAP) , mesure bien connue de l'homme du métier.
Le procédé a été comparé à la méthode 'GIST' qui obtient les meilleurs résultats sur le benchmark et à 'TOP-SURF' qui est une méthode de performance reposant sur l'utilisation de descripteurs locaux.
Une référence de la méthode 'GIST' est : A. Oliva and A. Torralba, "Modeling the shape of the scène: A holistic représentation of the spatial envelope," International Journal of Computer Vision, vol. 42, no. 3, pp. 145-1 75, 2001 .
Unejéférence de la méthode 'TOP SURF' est : B. Thomee, E. M. Bakker, and M. S. Lew, "Top-surf: a visual words toolkit." in ACM
Multimedia. ACM, 2010, pp. 1473-1476.
Les résultats d'expérimentation ont été reportés à la fois pour la précision (mAP) et le temps de calcul (en secondes). Pour le temps de calcul, ce dernier est séparé entre le temps de calcul de la signature ('description' dans la table 4 ci-dessous) et le temps de recherche dans la base de référence ('comparaison' dans la table 4 ci-dessous).
De plus, le procédé a été combiné avec une méthode
d'accélération du temps de recherche par quantification par K-médianne, tel que décrit précédemment.
Méthode Temps de calcul (secondes) mAP
description comparaison
TOP SURF 0.340 2.2 93.7%
GIST 0.05 9 93.2%
Le procédé de 0.005 0.120 99.1 % l'invention
Le procédé de 0.005 0.0015 96.7% l'invention
quantifié
Table 4
Dans ses deux versions, le procédé proposé obtient des performances supérieures aux méthodes de l'état de l'art, et est surtout beaucoup plus rapide lors de l'étape de comparaison.
Ainsi les avantages du procédé de l'invention sont entre autres qu'une signature est très rapide à calculer, moins de 5ms en moyenne avec 1 seul cœur de processeur Intel(R) Core(TM) Î7-4800MQ CPU @ 2.70GHz pour une image de taille VGA. De plus, la signature est assez compacte pour permettre une recherche sur plusieurs millions d'images en moins de 100ms, toujours avec un seul cœur de processeur Intel(R) Core(TM) Î7-4800MQ CPU @ 2.70GHz. Enfin, le procédé permet que la signature soit robuste aux transformations les plus usuelles trouvées sur le web.
La figure 4 illustre les blocs fonctionnels du dispositif (400) de l'invention pour détecter des copies ou quasi-copies d'images dans un mode de réalisation. Le dispositif comprend des modules aptes à opérer les étapes du procédé décrit en référence à la figure 3.
Le dispositif (400) comprend un module récepteur (402) apte à recevoir une image initiale. L'image initiale est transmise à un module de conversion (404) apte à convertir l'image initiale en niveaux de gris. Une fois grisée, l'image grisée est transmise à un module de
redimensionnement (406) apte à redimensionner l'image grisée en une image réduite, l'image réduite ayant une pluralité de lignes et un nombre pair de colonnes. L'image réduite est ensuite transmise à un module de calcul (408) apte à calculer une signature globale de l'image réduite. Avantageusement, le module de calcul comprend un premier composant (409) permettant de calculer une signature de ligne pour chaque ligne de l'image réduite, et un deuxième composant (410) permettant de concaténer les signatures de ligne pour obtenir une signature globale. D'une manière générale, le calcul est basé sur une comparaison de valeurs obtenues par statistique sur des sous-ensembles de pixels symétriques de chaque ligne. Le dispositif comprend de plus un module de comparaison (412) apte à comparer la signature globale de l'image réduite obtenue à des signatures d'images de référence (430) afin de déterminer si l'image initiale est une copie ou quasi-copie d'image selon le résultat de la comparaison. Les signatures d'images de référence (430) sont obtenues par un dispositif (420) opérant hors ligne et comprenant un module récepteur (422) apte à recevoir une image de référence initiale, un module de conversion (424) apte à convertir l'image de référence initiale en niveaux de gris, un module de redimensionnement (426) apte à redimensionner l'image de référence grisée en une image de référence réduite ayant une pluralité de lignes et un nombre pair de colonnes, un module de calcul (428) apte à calculer une signature de ligne pour chaque ligne de l'image de référence réduite, et où le calcul est basé sur une comparaison de valeurs obtenues par statistique sur des sous-ensembles de pixels
symétriques sur chaque ligne, et un module (430) pour concaténer les signatures de ligne et obtenir une signature d'image de référence.
Les modules du dispositif de l'invention peuvent être des éléments matériels et/ou logiciels. Les éléments logiciels peuvent être disponibles en tant que produit programme d'ordinateur sur un support lisible par ordinateur, support qui peut être électronique, magnétique, optique ou électromagnétique. Les éléments matériels peuvent être disponibles tous ou en partie en tant que circuits intégrés dédiées (ASIC) ou circuits intégrés dédiées reprogrammables (FPGA) ou en tant que processeur de signal numérique DSP ou en tant que processeur graphique GPU.