FR2968426A1 - Calcul de comparaison asymetrique a grande echelle pour integrations binaires - Google Patents
Calcul de comparaison asymetrique a grande echelle pour integrations binaires Download PDFInfo
- Publication number
- FR2968426A1 FR2968426A1 FR1161091A FR1161091A FR2968426A1 FR 2968426 A1 FR2968426 A1 FR 2968426A1 FR 1161091 A FR1161091 A FR 1161091A FR 1161091 A FR1161091 A FR 1161091A FR 2968426 A1 FR2968426 A1 FR 2968426A1
- Authority
- FR
- France
- Prior art keywords
- quantized
- database
- request
- request object
- real
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/583—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
Landscapes
- Engineering & Computer Science (AREA)
- Library & Information Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Editing Of Facsimile Originals (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Un système et un procédé pour comparer un objet de requête à un ou plusieurs objets de base de données d'un ensemble d'objets de base de données sont fournis. Le procédé comprend la fourniture de représentations quantifiées (16) d'objets de base de données. Les objets de base de données ont chacun été transformés à l'aide d'une fonction d'enfouissement quantifiée, qui est composée d'une fonction d'enfouissement à valeur réelle et d'une fonction de quantification. L'objet de requête est transformé en une représentation de l'objet de requête dans un espace d'enfouissement à valeur réelle (20) à l'aide de la fonction d'enfouissement à valeur réelle. Des valeurs de distance estimées dépendantes de la requête (18) sont calculées pour l'objet de requête, en fonction de l'objet de requête transformé, et sont stockées. Une mesure de comparaison (par ex. de distance ou de similarité) entre l'objet de requête et chacune des représentations quantifiées d'objets de base de données est calculée en fonction des valeurs de distance estimées stockées dépendantes de la requête. Des données (26) fondées sur le calcul de comparaison sont sorties.
Description
CALCUL DE COMPARAISON ASYMÉTRIQUE À GRANDE ÉCHELLE POUR INTÉGRATIONS BINAIRES L'exemple de mode de réalisation a trait à la comparaison d'objets de base de données à partir de représentations des objets et peut en particulier être appliqué à l'extraction d'images d'une base de données en réponse à une image de requête. Pour comparer des objets numériques tels que des images, une représentation d'un objet (l'objet de la requête) peut être générée, qui peut à son tour être comparée à un ensemble de représentations d'objets de base de données générées de manière similaire afin de trouver l'objet le plus semblable. Ces représentations peuvent être considérées comme des signatures, car elles représentent les objets respectifs. Dans le cas où les objets sont des images d'un document, ils peuvent être représentés par des histogrammes de longueur de plage (représentations vectorielles) ou d'autres représentations générées par différentes techniques de description. Il peut par exemple être utile de pouvoir extraire des images scannées d'un formulaire structuré particulier qui a été complété et soumis par des utilisateurs. Dans ce cas, l'objet de la requête peut être une représentation d'une version de modèle (vierge) du formulaire et la base de données peut inclure des représentations d'une vaste collection de documents scannés, comprenant éventuellement des images scannées d'un formulaire particulier.
Un tel processus de comparaison peut nécessiter le calcul de la similarité entre un objet de requête et un très grand nombre (des millions, voire des centaines de millions) d'objets de base de données. Lorsqu'il s'agit d'un grand nombre d'objets de base de données, deux points doivent être pris en compte. Le premier est le coût de calcul. Pour réduire le coût, la similarité entre deux objets doit être calculée de manière efficace. Le second point est le coût de mémoire. Idéalement, l'espace mémoire occupé par des objets de la base de données doit être suffisamment réduit pour que tous les objets puissent être enregistrés dans la mémoire (RAM) d'un ordinateur qui exécute la comparaison. Dans le cas contraire, une partie significative du jeu de données peut devoir être enregistrée en mémoire externe/amovible, telle qu'un disque. II en résulte que le temps de réponse d'une requête peut être long, car la vitesse d'accès à un disque est beaucoup plus faible que la vitesse d'accès à de la mémoire RAM. Bien que les mémoires SSD (Solid State Drive) puissent être aussi rapides que les mémoires RAM, elles sont généralement chères, ce qui limite leur utilisation.
Même si par exemple des descripteurs relativement petits à 1.680 dimensions sont utilisés (par ex. dans le cas d'histogrammes de longueur de plage pour des représentations de documents) et encodés avec des valeurs de 4 octets à virgule flottante, chaque signature de document occupe 6720 octets, et un million de documents nécessiterait approximativement 6,23 Go de mémoire d'enregistrement. Plusieurs techniques d'enfouissement binaires ont été proposées pour répondre à ces deux problèmes : les signatures d'image sont transformées en un espace binaire où la distance de Hamming (qui compte le nombre de bits dissemblables dans deux signatures binaires) est cohérente. La compression produit une représentation binaire d'une image sans perdre la possibilité d'extraire des images visuellement similaires. Les enfouissements binaires répondent aussi bien au problème du calcul qu'à celui de l'espace mémoire. La distance de Hamming Ha(a,b) entre deux signatures binaires a et b peut être calculée efficacement en utilisant des opérations binaires et des tables de correspondance. L'espace mémoire peut aussi être réduit drastiquement. Ces techniques souffrent cependant d'un désavantage majeur. Elles exigent la compression des objets de requête de telle sorte qu'ils se trouvent dans le même espace que les représentations d'objets de base de données. Il en résulte par conséquent une perte d'information lorsque l'objet de requête est compressé. L'exemple de mode de réalisation répond à ce problème, ainsi qu'à d'autres problèmes, grâce à une approche d'enfouissement asymétrique, dans laquelle la perte d'information du côté de la requête peut être réduite tout en maintenant les avantages d'une compression quantifiée (par ex. des enfouissements binaires) du côté de la base de données. Un aspect de l'exemple de mode de réalisation consiste en un procédé de comparaison d'un objet de requête et d'un ensemble d'objets de base de données, comprenant la production de représentations quantifiées d'objets de base de données qui ont chacun été transformés par une fonction d'enfouissement quantifiée composée d'une fonction d'enfouissement à valeur réelle et d'une fonction de quantification. L'objet de requête est transformé en une représentation dans un espace d'enfouissement à valeur réelle à l'aide d'une fonction d'enfouissement à valeur réelle. Des valeurs calculées de distance estimée dépendantes de la requête pour l'objet de requête sont stockées, en fonction de l'objet de requête transformé. Une mesure de comparaison entre l'objet de requête et chacune des représentations d'objet de base de données quantifiées est calculée dans l'espace à valeur réelle, en fonction des valeurs de distance estimée dépendantes de la requête. Des données fondées sur le calcul de comparaison sont sorties. Dans un autre mode de réalisation, la fonction d'enfouissement quantifiée est une fonction multidimensionnelle.
Dans un autre mode de réalisation, le calcul d'une mesure de comparaison entre l'objet de requête et chacun des objets de base de données quantifiés est fondé sur une probabilité. Dans un autre mode de réalisation, le procédé comprend en outre : le calcul d'un ensemble de valeurs probables indépendantes de la requête à partir d'un ensemble d'apprentissage d'objets de base de données dans l'espace intermédiaire à valeur réelle intermédiaire ; et dans lequel le calcul de la mesure de comparaison entre l'objet de requête et chacun des objets de base de données quantifiés est également fondé sur l'ensemble de valeurs probables indépendantes de la requête.
Dans un autre mode de réalisation, la distance entre l'objet de requête et un objet de base de données dans l'ensemble est représentée par une somme, pour toutes les dimensions dans l'espace à valeur réelle, de la distance entre chaque objet de requête et une valeur probable de l'objet de base de données, la valeur probable étant fondée sur l'objet de base de données quantifié.
Dans un autre mode de réalisation, le calcul d'une mesure de comparaison entre l'objet de requête et chacun des objets de base de données quantifiés est fondé sur une liaison inférieure. Dans un autre mode de réalisation, le calcul fondé sur une liaison inférieure de la mesure de comparaison entre l'objet de requête et chacun des objets de base de données quantifiés comprend le calcul et l'addition de valeurs fondées sur une liaison inférieure dans chacune des dimensions de l'espace d'enfouissement à valeur réelle. Dans un autre mode de réalisation, le calcul de la mesure de comparaison entre l'objet de requête et chacun des objets de base de données quantifiés comprend le calcul d'une liaison inférieure sur une distance entre l'objet de requête x et chacun des objets de base de données y selon l'expression : d LB (x, y) - ~k Shk (x),hk (Y)d (ôk (x), tk (32) où Shk(x)ht(y) est la négation du delta de Kronecker, de telle sorte que Sht(x),h,(y) = 0 si hk (x) = hk (y) , et 1 sinon ; hk (x) est une représentation quantifiée de l'objet de requête ; k est une dimension d'une fonction d'enfouissement multidimensionnelle ; hk (y) est la représentation quantifiée de l'objet de base de données ; d(gk(x),tk) est une distance entre la représentation à valeur réelle de l'objet de requête gk (x) ; et tk est le seuil de quantification de la fonction de quantification. Dans un autre mode de réalisation, la fonction de quantification est sélectionnée parmi le groupe comprenant un hachage LSH (« Locality Sensitive Hashing »), un hachage SH (« Spectral Hashing »), un hachage SSH (« Semi-Supervised Hashing »), des codes LSBC (« Locality-Sensitive Binary Codes ») et un enfouissement PCAE (« Principal Component Analysis Embedding »). Selon un autre aspect de la présente invention, un système mis en oeuvre par ordinateur est fourni pour comparer un objet de requête et un ensemble d'objets de base de données. Le système comprend une mémoire qui stocke un ensemble d'objets de base de données qui ont chacun été transformés à l'aide d'une fonction d'enfouissement quantifiée, qui est composée d'une fonction d'enfouissement à valeur réelle et d'une fonction de quantification. Une entrée reçoit un objet de requête. Une composante de génération de représentation transforme l'objet de requête en une représentation dans un espace intermédiaire à valeur réelle à l'aide de la fonction d'enfouissement à valeur réelle. La mémoire stocke un ensemble de valeurs calculées de distance estimée dépendantes de la requête à partir de l'objet de requête transformé. Des instructions sont stockées en mémoire pour calculer une mesure de comparaison entre l'objet de requête et chacun des objets de base de données quantifiés sur base des valeurs stockées de distance estimée dépendantes de la requête. Un processeur exécute les instructions. Les caractéristiques suivantes sont mises en oeuvre dans d'autres exemples de modes de réalisation. Au moins une des opérations de transformation de l'objet de requête, de stockage et de calcul peut être exécutée à l'aide d'un processeur d'ordinateur.
La fonction d'enfouissement quantifiée peut être une fonction d'enfouissement quantifiée multidimensionnelle. Le calcul de la mesure de comparaison entre l'objet de requête et chacun des objets de base de données quantifiés peut être fondé sur une probabilité.
Le procédé peut en outre comprendre le calcul d'un ensemble de valeurs probables indépendantes de la requête à partir d'un ensemble d'apprentissage d'objets de base de données dans l'espace intermédiaire à valeur réelle, et le calcul de la mesure de comparaison entre l'objet de requête et chacun des objets de base de données quantifiés peut également être fondé sur l'ensemble de valeurs probables indépendantes de la requête. Le stockage de l'ensemble de valeurs de distance probables calculées dépendantes de la requête peut comprendre le calcul de l'ensemble de distances attendues dépendantes de la requête à l'aide d'une fonction de l'ensemble de valeurs probables indépendantes de la requête et de l'objet de requête transformé.
La représentation de l'objet de requête dans un espace intermédiaire à valeur réelle peut comprendre un vecteur à k dimensions dans lequel le calcul de l'ensemble de valeurs probables indépendantes de la requête comprend le calcul, pour chaque dimension k, d'une première valeur probable moyenne pour une première des valeurs quantifiées et d'une deuxième valeur probable pour une deuxième des valeurs quantifiées. Le calcul de la mesure de comparaison entre l'objet de requête et chacun des objets de base de données quantifiés peut comprendre le calcul des valeurs de distance probables dépendantes de la requête sous forme d'une distance entre la représentation et les première et deuxième valeurs probables moyennes pour chaque dimension.
La distance entre l'objet de requête et un objet de base de données dans l'ensemble peut être représentée par une somme, pour toutes les dimensions dans l'espace à valeur réelle, de la distance entre chaque objet de requête et une valeur probable de l'objet de base de données, la valeur probable étant fondée sur l'objet de base de données quantifié.
Le calcul de la mesure de comparaison entre l'objet de requête et chacun des objets de base de données quantifiés peut être fondé sur une liaison inférieure. Le calcul fondé sur une liaison inférieure de la mesure de comparaison entre l'objet de requête et chacun des objets de base de données quantifiés peut comprendre le calcul et l'addition de valeurs fondées sur une liaison inférieure dans chacune des dimensions de l'espace d'enfouissement à valeur réelle. La valeur à liaison inférieure dans une dimension donnée peut être égale : à zéro si la représentation quantifiée de l'objet de base de données et une représentation quantifiée de l'objet de requête ont une même valeur binaire dans l'espace quantifié, et dans le cas contraire, à une distance entre la valeur de requête dans l'espace à valeur réelle intermédiaire et un seuil de quantification de la fonction de quantification dans l'espace à valeur réelle.
Le calcul fondé sur une liaison inférieure de la mesure de comparaison entre l'objet de requête et chacun des objets de base de données quantifiés peut comprendre le calcul d'une liaison inférieure sur une distance entre l'objet de requête x et chacun des objets de base de données y selon l'expression : d LB (x, y) = Ek Uhk (x),hk (y)d (gk (x)> tk) (32) où Shk(x)hk(y) est la négation du delta de Kronecker, de telle sorte que Shk(x)hk(y) =0 si hk(x)=hk(y), et 1 sinon ; hk (x) est une représentation quantifiée de l'objet de requête ; k est une dimension d'une fonction d'enfouissement multidimensionnelle ; hk(y) est la représentation quantifiée de l'objet de base de données ; d(gk(x),tk) est une distance entre la représentation à valeur réelle de l'objet de requête gk (x) ; et tk est le seuil de quantification de la fonction de quantification. La fonction de quantification peut être une fonction d'enfouissement binaire. La fonction de quantification peut être sélectionnée parmi le groupe comprenant un hachage LSH (« Locality Sensitive Hashing »), un hachage SH (<< Spectral Hashing »), un hachage SSH ((( Semi-Supervised Hashing »), des codes LSBC (« Locality-Sensitive Binary Codes ») et un enfouissement PCA ou PCAE (« Principal Component Analysis Embedding »).
Les fonctions de quantification qk peuvent être calculées à l'aide : a) d'un hachage LSH, et la fonction d'enfouissement à valeur réelle gk peut comprendre des projections aléatoires (r'k x) de l'objet de requête de l'espace original sous forme du produit scalaire de la direction aléatoire rk et d'un vecteur d'entrée x! ; b) d'un hachage SH, et la fonction d'enfouissement à valeur réelle peut être sous la forme cos(akw'k x) , où wk est une direction principale des données et ak est calculé à l'aide de la forme analytique de fonctions propres de Laplace, c) d'un hachage SSH, et la fonction d'enfouissement à valeur réelle peut consister en des projections sur un ensemble de vecteurs appris wk(w'k xi) ; d) de codes LSBC, et les fonctions d'enfouissement à valeur réelle peuvent être des fonctions cosinus de projections aléatoires décalées (cos(w'k x+bk )) ; ou e) d'un enfouissement PCAE, et les fonctions d'enfouissement à valeur réelle peuvent être des projections du vecteur d'entrée centré sur la moyenne sur les directions principales de variation des données (w'k (x-,u)) . L'objet de requête et les objets de base de données peuvent être sélectionnés parmi le groupe comprenant des images, des vidéos, du texte, des enregistrements sonores, ainsi que des combinaisons de ceux-ci. Un produit logiciel peut comprendre un support d'enregistrement non volatile qui encode des instructions qui, lorsqu'elles sont exécutées par un ordinateur, mettent en oeuvre le procédé. Un système pour mettre en oeuvre le procédé peut comprendre de la mémoire non volatile qui stocke des instructions pour mettre en ceuvre le procédé, ainsi qu'un processeur en communication avec la mémoire pour exécuter les instructions.
Un autre aspect de l'invention consiste en un procédé de comparaison d'objets numériques, comprenant la génération d'une représentation d'un objet de requête dans un espace à valeur réelle à l'aide de fonctions d'enfouissement à valeur réelle, la conversion d'une représentation quantifiée d'un objet de base de données en une représentation estimée d'un objet de base de données dans l'espace à valeur réelle, et le calcul d'une mesure de comparaison entre l'objet de requête et l'objet de base de 2968426 s données dans l'espace à valeur réelle, en fonction de la représentation estimée de l'objet de base de données. La FIGURE 1 est une vue d'ensemble de l'exemple de procédé. La FIGURE 2 est un schéma de principe fonctionnel d'un système pour l'extraction 5 d'un objet selon un aspect de l'exemple de mode de réalisation. La FIGURE 3 est un organigramme d'un procédé d'extraction d'un objet selon un autre aspect de l'exemple de mode de réalisation. La FIGURE 4 représente la précision moyenne (AP, de l'anglais « Average Precision ») obtenue lors d'essais en utilisant des documents d'un jeu de données NIST 10 comme requête et des objets de base de données comme représentations de référence non compressées (Référence), des représentations binaires pures à l'aide d'un hachage LSH comme technique d'enfouissement (Binaire), et pour le procédé asymétrique de l'exemple, à l'aide d'un hachage LSH pour enfouir les documents de base de données où des valeurs probables sont précalculées pour un jeu de données (Asymétrique) différent 15 (en interne). La FIGURE 5 représente la précision moyenne (AP) obtenue lors d'essais en utilisant des documents d'un jeu de données interne comme requête et des objets de base de données comme représentations de référence non compressées (Référence), des représentations binaires pures à l'aide d'un hachage LSH comme technique 20 d'enfouissement (Binaire), et pour le procédé asymétrique de l'exemple, à l'aide d'un hachage LSH pour enfouir les documents de base de données où des valeurs probables sont précalculées pour le jeu de données NIST (Asymétrique). La FIGURE 6 représente la précision moyenne (AP) obtenue lors d'essais en utilisant des documents du jeu de données NIST comme requête et des objets de base 25 de données comme représentations de référence non compressées (Référence), pour le procédé asymétrique de l'exemple à l'aide d'un hachage LSH pour enfouir les documents de base de données où des valeurs probables sont calculées pour le jeu de données interne (Asymétrique) ; et pour le procédé asymétrique de l'exemple, à l'aide d'un hachage LSH pour enfouir les documents de base de données où des valeurs probables 30 sont précalculées pour le jeu de données NIST (Asymétrique informé). La FIGURE 7 représente la précision moyenne (AP) obtenue lors d'essais en utilisant des documents d'un jeu de données interne comme requête et des objets de base de données comme représentations de référence non compressées (Référence), pour le procédé asymétrique de l'exemple à l'aide d'un hachage LSH pour enfouir les documents de base de données où des valeurs probables sont calculées pour le jeu de données NIST (Asymétrique) ; et pour le procédé asymétrique de l'exemple, à l'aide d'un hachage LSH pour enfouir les documents de base de données où des valeurs probables sont précalculées pour le même jeu de données (interne) (Asymétrique informé). Des aspects de l'exemple de mode de réalisation on trait à un système et à un procédé de calcul (de similarité ou de distance) de comparaison asymétrique entre un objet de requête et un ensemble d'objets de base de données qui ont été enfouis dans un espace d'enfouissement quantifié, tel qu'un espace binaire dans le cas d'enfouissements binaires. Le procédé comprend le calcul d'une mesure de comparaison (par ex. une similarité ou une distance) entre l'objet de requête, enfoui dans un espace d'enfouissement à valeur réelle intermédiaire, et chaque objet de base de données de l'ensemble enfoui dans l'espace d'enfouissement quantifié. Bien que l'exemple de mode de réalisation soit décrit en relation avec des images, telles que des formulaires, comme objets de requête, il est à noter que le procédé est applicable à une large gamme d'autres objets, tels que des photographies, du texte, des enregistrements audio ou vidéo, ou des combinaisons de ceux-ci, ainsi qu'à d'autres objets similaires. En outre, bien que des histogrammes de longueur de plage soient utilisés comme exemples de la manière dont de telles images peuvent être représentées dans l'espace original, un objet peut être représenté de manière adaptée par une séquence de vecteurs, une arborescence, un graphique, etc. De plus, bien que l'espace d'enfouissement quantifié (à valeurs finies) puisse être désigné comme un espace d'enfouissement binaire, d'autres espaces d'enfouissement quantifiés (par ex. des représentations ternaires) sont également envisagés.
De façon succincte, tel qu'illustré sur la FIGURE 1, le procédé de l'exemple calcule une distance asymétrique entre un objet de requête 10 (par ex. une image ou une représentation de celui-ci) et un (ou plusieurs) objet(s) de base de données 12 (par ex. des images ou des représentations de ceux-ci). Dans l'exemple de mode de réalisation, un objet de requête et sa représentation dans un espace original (la « représentation originale ») peuvent tous deux être désignés ici par facilité comme un « objet de requête ». De même, un objet de base de données et sa représentation dans un espace original peuvent tous deux être désignés ici comme un « objet de base de données ». Le procédé comprend une étape hors ligne (c'est-à-dire avant la soumission d'un objet de requête) et une étape en ligne. Hors ligne, le procédé comprend la conversion binaire de chaque image de base de données 12 via un ensemble de fonctions d'enfouissement binaires hk, k =1,...,K , composées chacune par une fonction d'enfouissement à valeur réelle gk (fournissant une représentation à valeur réelle 14) et une fonction de quantification binaire q9 pour générer une représentation binaire 16. Un ensemble de valeurs probables indépendantes de la requête 17 (pour gk étant donné hk) peut également être précalculé à partir d'un ensemble d'apprentissage d'objets dans l'espace à valeur réelle intermédiaire. Lorsqu'un objet de requête 10 est reçu en ligne, le procédé comprend la transformation de l'objet de requête en une représentation 20 dans l'espace d'enfouissement intermédiaire à valeur réelle à l'aide d'un ensemble de fonctions d'enfouissement à valeur réelle gk,k =1,...,K . Un ensemble de valeurs 18 de distance (ou de similarité) probable dépendantes de la requête (une pour chaque objet de base de données 12) peut être calculé à l'aide de l'ensemble de valeurs probables indépendantes de la requête 17 et de l'objet de requête transformé 20 et stocké dans une ou plusieurs tables de correspondance (qui peuvent être comprises dans une ou plusieurs structures de données adaptées quelconques). En variante, un ensemble de valeurs 18 de distance (ou de similarité) à liaison inférieure dépendantes de la requête (une pour chaque objet de base de données 12) peut être calculé à l'aide de l'objet de requête transformé 20 et stocké dans une ou plusieurs tables de correspondance. La distance entre la représentation 20 à valeur réelle de l'objet de requête et chaque objet 16 de base de données de conversion binaire peut ensuite être calculée dans l'espace à valeur réelle à l'aide de ladite ou desdites tables de correspondance. Le système et le procédé peuvent être appliqués dans le domaine de l'extraction d'information. Étant donné par exemple un objet de requête 10, les objets de base de données 12 sont classés du plus proche au plus éloigné. La sortie du procédé peut donc être un classement des objets de base de données 12 ou peut être un ensemble d'objets de base de données, tels qu'un objet de base de données ou un petit groupe d'objets de base de données qui sont similaires à (ou différents de) l'objet de requête 10. Le procédé peut cependant être appliqué à d'autres situations telles qu'une classification selon le voisin le plus proche ou le noyau, une estimation de densité de noyau, ou un groupement de noyau. Dans l'exemple de mode de réalisation, des signatures d'objet sont compressées sous forme d'enfouissements quantifiés 16 du côté de la base de données mais pas du côté de la requête. L'exemple de mode de réalisation exploite l'observation que de nombreuses techniques d'enfouissement binaires enfouissent d'abord les signatures non compressées dans un espace à valeur réelle intermédiaire dans lequel existe une mesure de similarité appropriée. Les procédés décrits ici ne sont par conséquent pas limités à un algorithme d'enfouissement binaire spécifique h. Le cas échéant, l'apprentissage des fonctions d'enfouissement g, q ne doit pas être modifié, ce qui simplifie le déploiement du procédé. De plus, en particulier pour des taux de compression élevés, la structure asymétrique de l'exemple produit une forte augmentation de la précision par rapport à des techniques purement binaires. L'exemple de processus d'enfouissement convertit un objet 10, 12, tel qu'une image ou une représentation d'image dans un espace original, en un ensemble de descripteurs dans un espace d'enfouissement. Le terme « espace d'enfouissement à valeur réelle » tel qu'utilisé ici désigne un espace dans lequel chaque représentation d'un objet (par ex. un objet de requête 10) enfoui dans cette espace est composé d'un ensemble de descripteurs à valeur réelle, dans lequel chaque descripteur peut adopter des valeurs réelles et n'est pas limité à un ensemble limité de valeurs finies, telles que deux valeurs dans le cas d'un espace d'enfouissement à valeur binaire. À titre d'exemple, les descripteurs d'une représentation à valeur réelle d'un objet peuvent être codés comme des valeurs à n bytes, n pouvant être par exemple une valeur comprise entre 4 et 10, telle qu'une valeur à virgule flottante de 4 octets. On notera que le descripteur à valeur réelle est encore exprimé sous forme d'un nombre binaire, à des fins de traitement informatique. On entend par « espace d'enfouissement quantifié » que chaque représentation d'un objet (dans le cas présent un objet de base de données 12) qui est enfouie dans cet espace est composée d'un ensemble fini de descripteurs à valeur finie qui sont tous limités à un ensemble limité prédéterminé de valeurs, telles que des valeurs allant de 2 à 4. Dans la description détaillée ci-après, il est fait référence à un espace binaire (deux valeurs possibles) comme étant l'espace d'enfouissement quantifié, bien qu'il est à noter que le procédé peut aisément être étendu à d'autres espaces d'enfouissement quantifiés, tels que des espaces d'enfouissement ternaires, quaternaires ou similaires.
On entend par « calcul de comparaison asymétrique » qu'une similarité/distance est calculée entre une représentation non compressée 20 d'un objet de requête 10 dans un premier espace d'enfouissement à valeur réelle et une représentation compressée 16 d'un objet de base de données dans un deuxième espace d'enfouissement à valeurs quantifiées. La comparaison est effectuée dans l'espace d'enfouissement à valeur réelle.
Le terme « objet » tel qu'utilisé ici peut être une quelconque structure de données numériques, telle qu'une image, un fichier de texte, un fichier audio, ainsi qu'une combinaison de ces structures, ou des structures similaires pour lesquelles une représentation originale de l'objet peut être générée sur base de caractéristiques extraites de l'objet. Les objets entrés (ou leurs représentations originales) peuvent être stockés dans la mémoire de données durant le traitement. Le terme « image » tel qu'utilisé ici peut désigner des images telles que des éléments graphiques, des photographies ou des images vidéo, des images scannées correspondant par exemple à des documents manuscrits ou dactylographiés, des images combinées qui comportent aussi bien des photographies que du texte et/ou des éléments graphiques, ou des images similaires. Les images peuvent être reçues en format JPEG, GIF, JBIG, BMP ou TIFF, ou encore en d'autres formats de fichier courants utilisés pour des images et qui peuvent éventuellement être convertis en un autre format approprié avant le traitement. Dans le cas d'une image, les caractéristiques peuvent être relatives à la couleur de pixel, la couleur pouvant être exprimée dans une espace couleur défini par un ou plusieurs canaux de couleur, tels que des niveaux de gris, RVB, CMJN, L*a*b*, ou similaires. Les caractéristiques peuvent se référer à un aspect quelconque de la couleur qui peut être spécifié, y compris (sans y être limité) des valeurs de couleur absolues telles que la teinte, la saturation et la luminosité, et des valeurs de couleur relatives, telles que des différences de teinte, de saturation et de luminosité, qui peuvent être exprimées en gradients de couleurs. La couleur peut par exemple être caractérisée par une, deux ou les trois coordonnées de pixel rouge, vert et bleu dans une représentation d'espace de couleur RVB, ou par une, deux ou les trois coordonnées de pixel L, a et b dans une représentation d'espace de couleur CIE Lab, ou par une ou les deux coordonnées x et y d'une représentation de chromaticité CIE, etc. Dans le cas de documents de texte, les caractéristiques peuvent être fondées sur des mots (ou parties de mots) extraits. Dans le cas de fichiers audio, les caractéristiques peuvent par exemple être fondées sur des phonèmes. Des représentations d'objets comprenant deux ou plusieurs modalités, telles qu'une représentation des éléments aussi bien audio que vidéo d'un film, sont également envisagées. Les termes « objet de requête » et « objet de base de données » sont utilisés par commodité pour distinguer l'objet à comparer par rapport aux objets avec lesquels il est comparé. Le terme « pixel » (« picture element ») tel qu'utilisé ici désigne un « élément d'image » et comprend des éléments d'images bidimensionnelles ou tridimensionnelles.
Les termes « optimisation », « minimisation » et similaires doivent être entendus au sens large, tel que les comprendrait une personne du métier. Ces termes ne sont par exemple pas limités à la valeur optimale globale absolue, à la valeur minimale globale absolue, etc. La minimisation d'une fonction peut par exemple mettre en oeuvre un algorithme de minimisation itérative qui s'arrête à un critère d'arrêt avant qu'un minimum absolu ne soit atteint. II est également envisagé que la valeur optimale ou minimale soit une valeur optimale ou minimale locale. En regard de la FIGURE 2, un schéma de principe fonctionnel d'un système 30 de calcul asymétrique de similarité/distance est illustré. Le système de l'exemple 30 est mis en oeuvre dans un ou plusieurs dispositifs informatiques généraux ou spécifiques 32, tels qu'un serveur, un PC, un ordinateur portable, un assistant numérique personnel PDA, ou tout autre dispositif informatique capable de mettre en oeuvre le procédé illustré sur la FIGURE 3. Le système 10 comprend une ou plusieurs interfaces d'entrée/sortie pour communiquer avec des dispositifs externes. Une interface 34 communique par exemple avec une base de données 36 qui comporte un ensemble d'objets de base de données 12. Les objets 12 peuvent être des images qui comportent chacune un réseau de pixels, chaque pixel comprenant une ou plusieurs valeurs de couleur dans un espace de couleur approprié, ou des représentations générées à partir de caractéristiques extraites des objets, telles que des histogrammes de longueur de plage. La base de données 36 peut être une base de données unique ou un ensemble de bases de données, et peut être utilisée avec un accès local dans le système 30 ou à distance, par ex. via Internet. Une interface 40, qui peut être identique à l'interface 34 ou différente de celle-ci, reçoit comme entrée un objet de requête 10, tel qu'une image. L'objet de requête 10 peut être un objet d'utilisateur, provenant par exemple d'une collection d'images de l'utilisateur, ou peut être sélectionné parmi les objets 12 de la base de données 36. Dans l'exemple de mode de réalisation, l'objet de requête 10 est entré dans le système 10 à partir d'une source 44 d'objets de requête, telle qu'un ordinateur de l'utilisateur, un disque, une carte de mémoire ou un scanner, ou à partir de la mémoire interne du dispositif informatique 32.
Suite au calcul de similarité asymétrique, le système 30 sort des données, telles qu'un ou plusieurs objets 26 extraits à partir de la base de données 36 ou des données fondées sur ceux-ci. Les données 26 peuvent être sorties vers un dispositif de sortie. Des données 26 sont par exemple sorties vers un dispositif informatique, tel que le dispositif de l'utilisateur 44, pour être affichées sur un écran 48, et/ou peuvent être sorties vers un autre dispositif de sortie, tel q'un dispositif de stockage à mémoire non volatile, une imprimante ou un autre dispositif similaire. L'appareil 32 peut communiquer avec une source 44 et une base de données 36 via des liaisons avec ou sans fil 50, 52, par exemple un réseau local LAN ou un réseau étendu WAN tel qu'Internet.
En regard des FIGURES 1 et 2, l'exemple de système 30 comprend un ensemble 60 de composantes de traitement d'objet, par ex. sous forme d'instructions logicielles, stockées dans une mémoire principale non volatile 62 pour mettre en oeuvre le procédé de l'exemple. Les instructions 60 sont exécutées par un processeur 64, tel que le processeur du dispositif informatique 32, qui est en communication avec la mémoire 62.
Les composantes illustrées 60 comprennent une composante de représentation originale (optionnelle) 65, qui extrait une représentation fondée sur une caractéristique d'un objet numérique 10, 12 dans un espace original. Une première composante de représentation 66 prend comme entrée un objet numérique 10, 12 (ou sa représentation originale) et sort une représentation à valeur réelle 20, 14 de l'objet enfouie dans un premier espace d'enfouissement à valeur réelle, et une deuxième composante de représentation 68 prend comme entrée un objet numérique 12 (ou sa représentation à valeur réelle 14 enfouie dans le premier espace d'enfouissement) et sort une représentation binaire 16 de l'objet 12 dans un deuxième espace d'enfouissement binaire (ou un autre espace d'enfouissement quantifié). Une composante de calcul de comparaison 70 est configurée pour calculer une similarité/distance entre la représentation 20 de l'objet de requête 10, dans le premier espace d'enfouissement, et la représentation 16 de l'ensemble d'objets de base de données 12 dans le deuxième espace d'enfouissement. Une composante de visualisation 72 assure la génération d'une interface graphique sur le dispositif d'affichage 48 pour permettre une sélection par l'utilisateur d'un objet de requête 10 et/ou pour afficher des objets extraits 26 répondant à la requête. La mémoire de données 74 du système 10 peut stocker les représentations binaires 16 de l'ensemble d'objets de base de données 12 générées par la deuxième composante de représentation 68, ainsi que des ensembles de fonctions d'enfouissement 76 (g,q) qui sont utilisées pour enfouir des objets d'enfouissement 10, 12 dans les premier et deuxième espaces d'enfouissement. Pour un calcul de similarité/distance sur base d'une probabilité (décrit ci-dessous), la mémoire 74 peut également stocker des valeurs probables 17 calculées comme des valeurs moyennes pour chaque dimension dans le deuxième espace d'enfouissement, pour chaque valeur quantifiée (0 et 1 dans le cas binaire) ainsi que des distances calculées 18 aux valeurs probables pour l'objet de requête ou des liaisons inférieures sur la distance. La mémoire de données 74 peut également stocker l'objet de requête 10 et/ou sa représentation à valeur réelle 20. Les composants 34, 40, 62, 64, 74 de l'ordinateur 32 sont interconnectés pour communiquer via un bus de données/contrôle 80.
Le processeur numérique 64 peut être mis en oeuvre de différentes manières, tel que par un processeur à simple coeur, un processeur à double coeur (ou plus généralement un processeur multicoeur), un processeur numérique à coprocesseur mathématique associé, un contrôleur numérique, etc. L'ordinateur 32 peut comporter un ou plusieurs dispositifs informatiques à usage dédié ou général, tels qu'un ordinateur serveur, de bureau ou portable avec un dispositif d'affichage associé 48, et un périphérique d'entrée 82, tel qu'un clavier, et/ou un périphérique de commande de curseur, tel qu'un écran tactile ou une souris. Les mémoires 62, 74 peuvent être séparées ou combinées et peuvent comporter un type quelconque de support lisible par un ordinateur, tel qu'une mémoire vive (RAM), une mémoire morte (ROM), un disque ou une bande magnétique, un disque optique, une mémoire flash ou une mémoire holographique. Dans un mode de réalisation, la mémoire 62, 74 comprend une combinaison de mémoire vive et de mémoire morte. On entend ici que le terme « logiciel » comprend une collection ou un ensemble quelconque d'instructions exécutables par un ordinateur ou un autre système numérique, de manière à configurer l'ordinateur ou un autre système numérique pour mettre en oeuvre la tâche voulue du logiciel. On entend ici que le terme « logiciel » comprend des instructions stockées sur un support de stockage tel qu'une mémoire vive, un disque dur, un disque optique, etc., et comprend également des « micrologiciels », qui sont des logiciels stockés dans une mémoire morte, etc. De tels logiciels peuvent être organisés de différentes manières, et peuvent également comprendre des composants logiciels organisés sous forme de bibliothèques, de logiciels fondés sur Internet et stockés sur un serveur distant ou un système similaire, du code source, du code interprété, du code objet, du code directement exécutable, etc. Il est envisagé que le logiciel puisse invoquer du code au niveau système ou appeler d'autres logiciels résidant sur un serveur ou à un autre emplacement pour effectuer certaines fonctions. La FIGURE 3 est un organigramme qui illustre l'exemple de procédé. Le procédé commence au point S100.
Au point S102, une représentation quantifiée 16 (par ex. binaire) est calculée pour chaque objet de base de données 12 (par ex. des images) d'un ensemble. Chaque élément (hk ,k = 1,...,K) de la représentation binaire 16 est composé d'une fonction d'enfouissement à valeur réelle gk et d'une fonction de quantification qk (binaire). Des représentations binaires 16 peuvent être calculées pour un grand nombre d'objets de base de données 12, tels que des milliers ou des millions d'objets de base de données, et les représentations 16 peuvent être stockées à distance ou localement dans le système 30, par ex. dans une mémoire d'ordinateur 74, telle qu'une mémoire RAM. Si les objets de base de données 12 ont déjà été enfouis dans l'espace de quantification, cette étape peut être omise. Au point S104, un ensemble de valeurs probables indépendantes de la requête (a) 17 peut être précalculé à partir d'un ensemble d'apprentissage d'objets dans l'espace d'enfouissement à valeur réelle intermédiaire. Les objets de l'ensemble d'apprentissage peuvent provenir de la base de données 36, c'est-à-dire être des objets de base de données 12, ou peuvent provenir d'un ensemble différent d'objets du même type général, tel qu'un jeu de données d'images dans le cas d'images de requête. Dans un mode de réalisation décrit ci-après (sur base d'une liaison inférieure), le calcul des valeurs probables n'est pas nécessaire. Au point S106, un objet de requête 10 tel qu'une image est reçu et peut être stocké temporairement en mémoire 74. Si l'image 10 se trouve sous forme native, une représentation originale est générée. Au point S108, une représentation à valeur réelle intermédiaire 20 est calculée pour l'objet de requête 10. La représentation à valeur réelle 20 est uniquement dérivée de l'ensemble de fonctions d'enfouissement à valeur réelle gk et n'utilise pas les fonctions de quantification binaires gk (ni aucune autre fonction de quantification à valeur finie).
Dans un mode de réalisation décrit ci-dessous, des fonctions qk sont calculées par hachage LSH et des fonctions gk sont des projections aléatoires (r'k x) de l'objet de requête de l'espace original (le produit scalaire entre la direction aléatoire rk et le vecteur d'entrée). Dans une autre mode de réalisation, les fonctions qk sont calculées par hachage SH et les fonctions gk sont sous la forme cos(akw'k x) , où wk est une direction principale des données et ak est calculé à l'aide de la forme analytique de fonctions propres de Laplace. Dans un autre mode de réalisation, les fonctions qk sont calculées par un hachage SSH, et les fonctions gk sont des projections sur un ensemble de vecteurs appris wk (w'k xi). Dans un autre mode de réalisation, les fonctions qk sont calculées par des codes LSBC et gk sont des fonctions cosinus sur des projections aléatoires décalées (cos(w'k x+bk )) .
Dans un autre mode de réalisation, les fonctions qk sont calculées par un enfouissement PCAE et les fonctions gk sont des projections du vecteur d'entrée centré sur la moyenne sur les directions principales de variation des données (w'k (x-µ)) . Au point S110, un calcul de similarité/distance asymétrique est effectué entre la représentation à valeur réelle intermédiaire 20 de l'objet de requête 10 et les représentations binaires 16 des objets de base de données dans l'ensemble d'objets de base de données. Lors de cette étape, un ensemble de valeurs de distance dépendantes de la requête 17 ( 13 ou y ) peut être précalculé sous forme d'une fonction de la représentation à valeur réelle 20 calculée au point S108 et éventuellement des valeurs probables indépendantes de la requête calculées au point S104. Ces valeurs de distance dépendantes de la requête sont stockées dans une table de correspondance (qui peut comporter une structure de données appropriée quelconque). La distance, dans l'espace à valeur réelle, entre l'objet de requête et un objet de base de données binarisé est calculée à l'aide des tables de correspondance. Au point S112, des données 26 sont sorties sur base du calcul de similarité/distance asymétrique, par exemple sous forme d'un sous-ensemble des objets de base de données 12 (dont le nombre d'objets est inférieur au nombre total) qui sont calculés pour être les plus similaires possibles à l'objet de requête 10, ou des données fondées sur ce sous-ensemble. Le procédé s'arrête au point S114.
Le procédé illustré sur la FIGURE 3 peut être mis en couvre dans un produit logiciel non volatile qui peut être exécuté par un ordinateur. Le produit logiciel peut être un support d'enregistrement non volatile lisible par un ordinateur sur lequel un programme de contrôle est enregistré, tel qu'un disque optique, un disque magnétique, etc. Des formes courantes de supports lisibles par un ordinateur comprennent par exemple les disquettes, disques flexibles, disques durs, bandes magnétiques ou tout autre support magnétique de stockage, CD-ROM, DVD ou tout autre support optique, mémoires RAM, PROM, EPROM, FLASH-EPROM ou toute autre carte ou cartouche de mémoire, ou tout autre support physique qui peut être lu et utilisé par un ordinateur. Le produit logiciel peut faire partie intégrante de l'ordinateur 32 (par exemple un disque dur interne ou une mémoire RAM), ou peut être séparé (par exemple un disque dur externe connecté de manière opérationnelle à l'ordinateur 32), ou peut être séparé et accessible via un réseau numérique de données tel qu'un réseau local (LAN) ou Internet (par exemple sous forme d'un réseau redondant de disques bon marché ou indépendants RAID (Redundant Array of Independent/lnexpensive Disks) ou un autre stockage sur serveurs en réseau accessible indirectement par l'ordinateur 32 via un réseau numérique). En variante, le procédé peut être mis en ceuvre sur un support volatile, par exemple une onde porteuse transmissible dans laquelle le programme de contrôle est constitué d'un signal de données utilisant un support de transmission, tel que des ondes acoustiques ou lumineuses, comme celles générées durant des communications de données par ondes radio et infrarouges, ou similaires. L'exemple de procédé peut être mis en ceuvre par un ou plusieurs ordinateurs à usage général ou dédié, par un microprocesseur ou un microcontrôleur et des éléments de circuit intégré périphériques, ou tout autre dispositif capable de mettre en oeuvre l'organigramme de la FIGURE 3.
Des exemples de procédés pour dériver des signatures qui peuvent être utilisées comme représentations originales des objets 10, 12 comprennent ceux décrits dans les documents U.S. 2007/0005356, 2007/0258648, 2008/0069456, 2009/0144033, 2010/0092084, et 2010/009834. Dans un mode de réalisation, les représentations d'objets peuvent être générées autre part et un ensemble d'apprentissage de vecteurs étiquetés peut être entré à la place des objets eux-mêmes. Dans un exemple du procédé, une image 10, 12, telle qu'un document scanné, dans laquelle les valeurs de colorant de pixel sont quantifiées en une pluralité de niveaux de quantification de colorant, est partitionnée en régions, éventuellement à une pluralité d'échelles différentes. Pour chaque région, un histogramme de longueur de plage est calculé qui peut être une combinaison de sous-histogrammes pour chacun des niveaux de quantification de colorant, et éventuellement pour chaque direction d'une pluralité. Les histogrammes de longueur de plage, éventuellement normalisés, peuvent alors être combinés pour générer une représentation originale de l'image de document respective. L'espace original peut donc être composé de toutes les valeurs de descripteur à 8 bytes possibles qui peuvent être supposées à partir de représentations d'histogrammes de longueur de plage d'images, ou de toute autre représentation à valeur réelle appropriée. Dans le procédé de longueur de plage, des histogrammes de longueur de plage sont calculés. Le terme << longueur de plage » tel qu'utilisé ici désigne le nombre de pixels successifs dans une direction donnée dans une image scannée qui appartiennent au même intervalle de quantification (il peut par exemple n'y avoir que deux niveaux de quantification, soit noir et blanc, ou plus de deux niveaux). L'exemple de procédé peut être mis en ceuvre avec plusieurs techniques d'enfouissement binaires h, comme le démontrent les exemples qui suivent. Pour chaque algorithme d'enfouissement binaire, une mesure de comparaison appropriée (de similarité ou de distance) est fournie dans l'espace à valeur réelle intermédiaire. Ceci est exploité avec une similarité/distance asymétrique appropriée agissant dans l'espace à valeur réelle pour chaque technique d'enfouissement binaire. Notations Les notations suivantes sont utilisées dans le présent document. Posons x comme étant un objet 12 dans un espace original 52, tel qu'un vecteur, et posons hk comme étant une fonction d'enfouissement binaire, c'est-à-dire hk :Çà {0,1}. II est à noter que 0 et 1 sont utilisés pour représenter les deux valeurs finies dans l'espace d'enfouissement binaire, qui peut en variante être décrit par la convention : hk : SZ {-1,+1} ou par une convention similaire. On notera que pour un espace d'enfouissement quantifié à trois valeurs quantifiées, les valeurs peuvent être hk : S2 {0,1,2} ou similaires. Par la suite, u est une notation abrégée qui représente une variable. Dans le cas d'une image par exemple, l'espace original S2 peut être l'espace défini pour les histogrammes de longueur de plage, dont la dimensionnalité est éventuellement réduite par un enfouissement PCA (si une image originale est utilisée plutôt qu'une représentation originale, la dimensionnalité peut être beaucoup plus élevée). Un ensemble H={hk,k=1...K} de K fonctions définit une fonction d'enfouissement multidimensionnelle h : S1 --> {0,1}K avec : h(x) _ [h, (x),..., h,, (x)] où l'apostrophe ' désigne l'opérateur de transposition. Une fonction d'enfouissement binaire hk peut être décomposée comme suit : h(x) = qk Lgk (x)J (1) où gk : SZ -4 9Z (k-ième fonction d'enfouissement à valeur réelle), qk : 9i -> {0,1} (k-ième fonction d'enfouissement quantifiée), et 9t désigne un espace de nombres réels. Posons que gk : S2 -> 9ZK désigne un ensemble de fonctions d'enfouissement :
g(x) = [gl(x),..., gK (x)] Étant donné que deux objets x et y à comparer (x peut être un objet de requête 10 10 et y un objet de base de données 12), il sera maintenant démontré que pour de nombreuses techniques d'enfouissement binaire, il existe une mesure appropriée de similarité/distance entre g(x) et g(y) . Des exemples de telles mesures de similarité comprennent le produit scalaire et la distance euclidienne. Dans l'exemple de mode de réalisation, cette propriété est exploitée 15 pour le calcul asymétrique de similarité/distance. A. Techniques d'enfouissement binaire Des exemples de techniques d'enfouissement binaires qui peuvent être employées au point S102, où les éléments hk de la fonction d'enfouissement 20 multidimensionnel binaire h sont chacun une composition d'une fonction d'enfouissement multidimensionnel à valeur réelle gk et d'une fonction de quantification multidimensionnelle qk , comprennent un hachage LSH, un hachage SH, un hachage SSH, des codes LSBC et un enfouissement PCA. Ces techniques sont maintenant décrites en référence à une mesure de comparaison appropriée (de similarité ou de 25 distance) pour chacune. La mesure de similarité/distance procure des similarités (ou distances) calculées qui correspondent étroitement au résultat d'une comparaison des objets eux-mêmes.
Hachage LSH (« Locality Sensitive Hashinq »)
Lors d'un hachage LSH, les fonctions hk sont appelées fonctions de hachage et sont sélectionnées pour approcher une fonction de similarité sim dans l'espace original n = 9Z° , où D est le nombre de dimensions dans l'espace (telles que 3 ou 4 fois le nombre de pixels dans le cas d'images en couleur). Les fonctions de hachage valides hk doivent répondre à la propriété LSH :
Pr = [hk (x) = hk (y)] = sim(x, y) (2)
Considérons par exemple le cas où sim est le cosinus de la similarité pour laquelle une fonction de hachage appropriée est la suivante : hk (x) =a (r'k x) (3) 0 siu<0 avec 6 (u) = 1 siu0 où u représente (r'k x) et r'k x est le produit scalaire entre la direction aléatoire rk et le vecteur d'entrée. Voir par exemple M. Charikar : « Similarity estimation techniques from rounding algorithms » dans ACM Symp. on Theory of Computing (2002).
Les vecteurs rkxe 9Z° sont prélevés parmi une distribution gaussienne multidimensionnelle p avec une moyenne nulle et une matrice de covariance d'identité ID . Par conséquent, qk (u) =6 (u) et gk (x) = r'k x. Dans ce cas, une mesure de distance appropriée dans l'espace intermédiaire entre g(x) et g(y) est la distance euclidienne, car il peut être démontré que des projections gaussiennes aléatoires préservent approximativement la distance euclidienne. En effet, pour deux vecteurs x et y , le carré de la distance euclidienne probable entre leurs projections est : Er_p[llr'x-r'yl 2~ = Er_P [llr' (x - y)l z] (5) = Er-p [(x- y)'rr'(x- y)] (6) _ (x- y)'Er-v [rr'](x - y) (7) et Er_, [rr'] = ID = par définition de p . Par conséquent :25 E,-p r'x-r'yII2j =I(x-y)I2, (8) et la distance euclidienne est donc préservée dans l'espace intermédiaire. L'analyse LSH qui précède peut être facilement étendue au-delà des représentations vectorielles à l'approche LSH noyautée, car le noyau de Mercer entre deux objets est simplement un produit scalaire dans un autre espace en utilisant un mappage non linéaire cl)(x) des vecteurs d'entrée. Pour plus de détails concernant l'approche LSH noyautée, voir B. Kulis et K. Grauman, « Kernelized locality-sensitive hashing for scalable image search » dans Proc. 12th Int Î Conf. on Computer Vision (ICCV), 2009.
Hachaqe SH (« Spectral Hashinq ») Étant donnée une fonction de similarité sim entre des objets dans l'espace 52 = 9Z° , et en supposant que la distribution des objets dans l'espace 52 peut être décrite de manière appropriée par une fonction de densité de probabilité p , SH vise donc à minimiser la fonction objective suivante par rapport à h : Ih(x) - h(y) Zsim(x, y) p(x) p( y)dxdy, (9) Y en respectant les contraintes suivantes : h(x) e 1-1,1Y (10) lh(x)p(x)p(y)dx = 0, (11) lh(x)h(x)' p(x)dx = I°. (12) Étant donné que l'optimisation de l'équation (9) sous la contrainte de l'équation (10) est un problème de difficulté NP (même dans le cas où K=1, c'est-à-dire à bit unique), il est possible d'optimiser une version relaxée du problème, c'est-à-dire d'éliminer la contrainte (10), puis de binariser la sortie à valeur réelle à 0. Ceci revient à minimiser : y (x)-g(y)IlZsim(x,y)p(x)p(y)dxdy, (13) par rapport à g en respectant les contraintes : 23 l g (x) p(x)dx = 0, (14) l g(x)g(x)'p(x)dx = ID. (15) puis àécrire h(x)=2G(g(x))-1 c'est-à-dire q(u) = 26 (u) -1 Les solutions au problème relaxé sont des fonctions propres des opérateurs pondérés de Laplace-Beltrami, pour lesquels il existe une formule à forme close dans certains cas ( par ex. sim est le noyau gaussien et p est uniforme). L'équation de minimisation (13) renforce l'exigence que la distance euclidienne entre g(x) et g(y) doit être inversement corrélée à la similarité sim (x,y) dans l'espace original. Si sim est le noyau gaussien, cela indique qu'une mesure de distance appropriée dans l'espace intermédiaire est la distance euclidienne dans le cas d'un hachage SH. Hachaqe SSH (« Semi-Supervised Hashinq ,» Posons que x,, i =1...N est un ensemble de points dans l'espace SZ = 9ZD . Le hachage SSH suppose la disponibilité d'information de supervision sous forme de paires étiquetées correspondantes et non correspondantes. Posons deux ensembles M et C. Une paire (x,,x;)E M si x; et x; sont considérés similaires (paire voisine) et (x,,xi)e C si x; et xi sont considérés non similaires (paire non voisine). Les fonctions hk sont sous la forme : hk (x, ) = sign(w'k x, ), (16 c'est-à-dire q(u) = 26 (u) -1 et gk (x) = w'k xi. L'objectif est d'apprendre l'ensemble W = {wk,k =1...K} qui maximise la fonction objective suivante : J(W)=1(X XEMh(x,)'h(x;)-EUX X,xch(x,)'h(x;) (17) en respectant les contraintes : Nh ~i=1 k =O,Vk (18) N r h(xi)h(xi )' (19) Il s'agit encore une fois d'un problème de difficulté NP et il est possible de relaxer l'hypothèse binaire aussi bien dans la fonction objective que dans la contrainte. On obtient ainsi la fonction objective suivante : J(W)-EcX'X;xMg(xi)'g(x;)-E X.xc g(xyg(x;)+r)R(W) (20) où R(W) est une fonction de régularisation qui provient de la relaxation de la contrainte (18) et Il est un paramètre qui établit l'équilibre entre les deux termes. Si Il est petit (TI = 0), la fonction objective relaxée exprime le fait qu'une tentative est effectuée pour maximiser le produit scalaire entre des points voisins tout en minimisant le produit scalaire entre des points non voisins dans l'espace intermédiaire. Cela montre que pour de faibles valeurs de ~l , une mesure de similarité appropriée dans l'espace intermédiaire pour SSH est le produit scalaire. Si rl est grand (n , la fonction objective relaxée devient équivalente à la fonction objective PCA qui préserve la distance euclidienne. Cela montre que pour des valeurs de 'l élevées, une mesure de distance appropriée dans l'espace intermédiaire pour le hachage SSH est la distance euclidienne. Codes LSBC (« Localitv-Sensitive Binarv Codes ») Considérons un noyau de Mercer KM : 9ZD x9Z° qui répond aux propriétés suivantes pour tous les points x et y : 1. Il est invariant en translation : KM (x, y) = K(x- y). 2. Il est normalisé : c'est-à-dire KM (x, y) 5_1 et KM (0) =1. 3. Va e 9i : a 1, KM (ax -ay) < KM (x, y). Deux exemples bien connus d'un tel noyau sont le noyau gaussien x-y KM (x, y) = exp(-yl 12 /2) et le noyau laplacien, Km (x, y) = exp(-y[x - y]/2) Il a été démontré que pour de tels noyaux, KM (x, y) peut être approché par la similarité de Hamming HQ (h(x),h(y)) avec hk (x) = qk (gk (x)) et : gk (x) - cos(w'k x+bk ), (21) gk (u) =6 (u -tk). (22) où bk et tk sont des valeurs aléatoires provenant respectivement de unif [0,2tc] et de unif[-1,+1]. Les vecteurs wk proviennent d'une distribution pK qui dépend du choix particulier de noyau KM . Si par exemple KM est le noyau gaussien avec une bande passante y , alors pK est une distribution gaussienne à moyenne nulle et à matrice de covariance ylD . Étant donné que la taille de l'espace d'enfouissement binaire augmente, 1-Ha (h(x), h( y)) converge vers KM (x, y) . Il est également connu que l'enfouissement g est tel que g(x)'g(y) est (approximativement) proportionnel à KM (x, y) . La qualité de l'approximation augmente à nouveau avec la taille de l'espace d'enfouissement. Cela indique que dans le cas de codes LSBC, une mesure de similarité appropriée est le produit scalaire. Étant donnée la propriété KM (x,x) = KM (x-x) = KM (0) =1, cela démontre en outre que la norme g(x)II est (approximativement) constante et égale à l,Vx. Dans ce cas, le produit scalaire est équivalent à la distance euclidienne et la distance euclidienne est également une mesure appropriée de la comparaison dans l'espace intermédiaire.
Enfouissement PCA (« Principal Component Analysis Embeddinq ») Une autre technique d'enfouissement, qui est désignée ici comme un enfouissement PCA (ou PCAE), est la suivante : gk(x)=Wk (x - II) (23) qk (u) =G (u), (24) où p. est la moyenne des données et wk est le vecteur propre associé à la k-ième valeur propre la plus importante de la matrice de corrélation de données. Les fonctions d'enfouissement à valeur réelle sont par conséquent les projections du vecteur d'entrée sur les directions principales de variation des données.
Les équations (23) et (24) peuvent être facilement étendues au PCA du noyau (kernel PCA, ou kPCA). Il a été démontré que les résultats de ce procédé sont bons, malgré sa simplicité relative.
B. Distances asymétrique proposées Dans la section A, il a été démontré que plusieurs fonctions d'enfouissement binaires hk peuvent être décomposées en fonctions d'enfouissement à valeur réelle gk et en fonctions de quantification qk . Il a également été démontré qu'il existe une mesure de similarité ou de distance appropriée dans l'espace intermédiaire. Posons que d représente la mesure (de distance ou de similarité) de comparaison entre des échantillons x et y (x est supposé non binarisé et y binarisé). La notation suivante est utilisée pour raison de simplicité : posons que d désigne aussi bien la distance entre les vecteurs g(x) et g(y), c'est-à-dire d : i' x9Z" -~ 9Z , que la distance entre les dimensions individuelles, c'est-à-dire d : 9Z x JZ -> 9Z .
La distance entre une image de requête et une image de base de données peut être calculée dans l'espace à valeur réelle intermédiaire comme suit : d(g(x), g(y)) = Ekd (gk (x), gk (y)) (25) Deux approximations de cette quantité seront maintenant décrites. Dans la suite, X est supposé non binarisé, c'est-à-dire que les valeurs gk (x) (et donc également hk (x)) sont accessibles, alors que y est binarisé, c'est-à-dire que seules les valeurs hk (y) (et pas gk (y)) sont accessibles.
Approximation fondée sur la probabilité de la distance entre la représentation à valeur réelle de l'obiet de requête (gk (x)) et la représentation à valeur réelle de l'obiet de base de données ( gk( Y ) Comme indiqué ci-dessus, x est supposé non binarisé pour procurer gk (x) , alors que y est binarisé et connu uniquement par sa représentation quantifiée h(y). Pour estimer d(g(x), g(y)) , on suppose que les échantillons dans l'espace original SZ sont extraits d'une distribution p . L'approximation asymétrique dE fondée sur une probabilité peut être calculée entre des échantillons x et y : dE (x, y) = Ek d(gk (x), Eu_p [gk (u)hk (u) = hk (y)b (26) Dans l'équation (26), d(gk (x), Eu_ p [gk (u)hk (u) = hk (y)b est la distance dans l'espace intermédiaire entre gk (x) et la valeur probable des échantillons gk (u) est telle que hk (u) = hk (y) et E est l'opération de probabilité. Étant donné qu'il n'y a en général pas d'accès à la distribution réelle p , l'opérateur de probabilité peut être approché par une moyenne de l'échantillon. En pratique, pour une dimension donnée k, on peut extraire aléatoirement un premier ensemble d'échantillons U° de l'espace SL de telle sorte que hk (u;) = 0 et un deuxième ensemble d'échantillons U° de telle sorte que hk(ui)=1. Les valeurs probables suivantes 17 sont calculées hors ligne : a° = 1 ogk(u) IT70 ~uEt/ lV/ k ak = 1 gk (u) U 1 ~uEul k Ces valeurs sont donc des valeurs moyennes pour gk (y) lorsque hk (y) est respectivement égal à 0 et à 1. En ligne, pour un objet de requête donné x, les valeurs dépendantes de la requête suivantes sont précalculées sous forme de la distance de l'objet de requête aux valeurs probables a° et ak . ~k = d (gk (x),ak) (29) ~k = d(gk (x),ak) (30) Ces valeurs sont stockées dans des tables de correspondance. La distance dE(x,y) entre un objet de requête x et un objet de base de données y peut alors être calculée sous forme d'une somme sur k comme suit : (27) (28) dE (x y) _ E Rkk (y) 28 (31) K où f3kh (y) est égal à Rk si hk (y) = 0 et est égal à Pk si hk (y) =1. Le coût du précalcul des valeurs 13 pour chaque valeur de k peut typiquement être négligé par rapport au coût de calcul de nombreux dE(x,y) pour un grand nombre d'objets de base de données y . Il est à noter que la somme (31) peut être calculée efficacement, par ex. en groupant les dimensions en blocs de 8 et avec une table de correspondance à 256 dimensions par bloc (plutôt qu'une table de correspondance bidimensionnelle par dimension). Ceci réduit le nombre de sommes par un facteur 8 (ainsi que le nombre d'accès à la mémoire) et accélère donc le calcul de manière significative. Approximation de la distance fondée sur une liaison inférieure Une liaison inférieure pour l'équation (25) est maintenant fournie comme approximation de la distance entre x et y dans l'espace à valeur réelle. On suppose ici que d est une distance, et non une similarité. On suppose de nouveau que x est non binarisé alors que y est binarisé. On peut supposer par soucis de simplification que qk (u) =G (u - tk ) se présente sous la forme qk (u) =G (u -tk), où tk est le seuil de quantification de la fonction de quantification. Ceci peut cependant être facilement généralisé à d'autres fonctions de quantification. Si hk (x) = hk (y), alors d (gk (x), gk (y)) ? O. Ceci est toujours vrai en pratique. Si hk (x) hk (y) , alors d (gk (x), gk (y)) >- d (gk (x),tk) . La liaison inférieure sur d(gk (x), gk (y)) est par conséquent: d,, (x, y) - I kihk(x),hk(y)d(gk (x),tk ) (32) où 8hk(x)hk(y) =8; j - est la négation du delta de Kronecker, c'est-à-dire 8; i - = 0 si i = j , et 1 sinon. On peut démontrer que malgré sa simplicité, cette liaison mène à d'excellents résultats pour une variété de schémas d'enfouissement binaires.
Ce procédé n'exige aucun calcul hors ligne de valeurs probables. En ligne, pour un objet de requête donné x, les valeurs dépendantes de la requête suivantes peuvent être précalculées : 7k Uhk(x),0d(gk(x),tk) Yk 5hk(x),ld (gk (x),tk ) Une de ces deux valeurs est garantie comme étant 0 pour chaque dimension k . Ces valeurs peuvent être assemblées en blocs de 8 dimensions pour un calcul plus rapide, comme dans le cas de l'estimation fondée sur une probabilité. Une différence majeure entre cette approche fondée sur une liaison inférieure et l'approche fondée sur une probabilité est que cette dernière utilise la distribution de données. Cet exemple de procédé n'est donc pas limité à un procédé d'enfouissement particulier mais peut être appliqué dans une technique d'enfouissement binaire quelconque qui comporte un espace d'enfouissement intermédiaire dans lequel l'objet de requête peut être représenté. Exemples Deux jeux de données ont été employés. Le premier est le jeu de données publiquement disponible de formulaires structurés NIST (« NIST Structured Forms Database » - « NIST Special Database 2 »), consistant en 5.590 documents binaires 20 provenant de 20 classes différentes de formulaires de taxation. Le deuxième jeu de données est un jeu de données interne qui contient 10.274 images dans treize classes différentes. Ce jeu de données est plus hétérogène que le NIST et les documents comprennent entre autres des propositions scientifiques, des formulaires (différents de ceux du NIST), des coupons et des lettres manuscrites. 25 Ces documents sont décrits avec des histogrammes de longueur de plage à 1.680 dimensions - voir le document U.S. 2010/0092084. Leur dimensionnalité est ensuite réduite à D=256 au moyen d'un enfouissement PCA pour produire des représentations originales des images. Pour les représentations binaires, les documents (c'est-à-dire des représentations originales générées à partir d'histogrammes de longueur de plage après 30 PCA) sont binarisés par hachage LSH, avec un nombre de bits allant de 64 à 256. Étant donné que le hachage LSH est fondé sur des projections aléatoires, chaque essai a été effectué 5 fois avec différentes projections aléatoires et une moyenne des résultats a été (33) (34)15 calculée. Pour l'enfouissement à valeur réelle des images, les représentations originales générées à partir d'histogrammes de longueur de plage après PCA ont été enfouies tel que décrit précédemment en utilisant gk (x) = r'k x pour générer des représentations (vecteurs) 20, 14.
Une requête est émise pour chaque document par rapport à d'autres documents et l'objectif est d'extraire les documents de la même classe. La précision moyenne AP (Average Precision) est utilisée comme mesure de précision. Le résultat rapporté est l'AP moyenne pour toutes les requêtes. Lors d'un premier essai, la précision est comparée lors du calcul : (a) Référence : distance sur les vecteurs non compressés 20, 14, (b) Binaire : lorsque les vecteurs de requête et de base de données sont tous deux compressés (comme pour la représentation 16), et (c) Asymétrique : lorsque seuls des vecteurs de base de données sont compressés (en comparant des représentations 20 et 16, comme dans l'exemple de procédé).
Pour démontrer la robustesse de l'exemple de procédé, les valeurs a (voir la section B1) dans le premier ensemble d'essais sont calculées dans un jeu de données, puis appliquées à l'autre. Les résultats sont donnés sur les FIGURES 4 et 5. Un point de séparation à 0 signifie que la fonction de quantification q(u) = a (u) . On notera sur les FIGURES 4 et 5 que l'exemple de procédé améliore les résultats de manière significative par rapport au procédé binaire, en particulier pour le jeu de données le plus homogène du formulaire NIST. Comme on pouvait l'espérer, la comparaison de référence procure de meilleurs résultats que les procédés binaires et asymétriques, mais exige un stockage de base de données beaucoup plus important. Dans un deuxième ensemble d'essais analogues à ceux décrits précédemment, les valeurs a sont apprises et utilisées sur le même jeu de données (Asymmetric Informed) et comparées au cas où ces valeurs sont apprises sur l'autre jeu de données (asymétrique) et sur les résultats de référence décrits ci-dessus (binaires). La FIGURE 6 montre I'AP moyenne pour le jeu de données NIST et la FIGURE 7 pour le jeu de données interne. Les FIGURES 6 et 7 démontrent que losqu'une meilleure connaissance a priori des documents contenus dans le jeu de données est disponible, la précision peut être améliorée.
Claims (10)
- REVENDICATIONS1. Procédé pour comparer un objet de requête et un ensemble d'objets de base de données, comprenant : la fourniture de représentations quantifiées d'objets de base de données qui ont chacun été transformés par une fonction d'enfouissement quantifiée composée d'une fonction d'enfouissement à valeur réelle et d'une fonction de quantification ; la transformation de l'objet de requête en une représentation dans un espace d'enfouissement à valeur réelle à l'aide de la fonction d'enfouissement à valeur réelle ; le stockage d'un ensemble de valeurs de distance estimées calculées dépendantes de la requête pour l'objet de requête, en fonction de l'objet de requête transformé ; et le calcul d'une mesure de comparaison entre l'objet de requête et chacune des représentations quantifiées d'objets de base de données en fonction des valeurs de distance estimées stockées dépendantes de la requête ; et la sortie de données sur base du calcul de comparaison.
- 2. Procédé selon la revendication 1, dans lequel la fonction d'enfouissement quantifiée est une fonction d'enfouissement quantifiée multidimensionnelle.
- 3. Procédé selon la revendication 1, dans lequel le calcul d'une mesure de comparaison entre l'objet de requête et chacun des objets de base de données quantifiés est fondé sur une probabilité. 25
- 4. Procédé selon la revendication 3, comprenant en outre : le calcul d'un ensemble de valeurs probables indépendantes de la requête à partir d'un ensemble d'apprentissage d'objets de base de données dans l'espace intermédiaire à valeur réelle intermédiaire ; et20dans lequel le calcul de la mesure de comparaison entre l'objet de requête et chacun des objets de base de données quantifiés est également fondé sur l'ensemble de valeurs probables indépendantes de la requête.
- 5. Procédé selon la revendication 1, dans lequel la distance entre l'objet de requête et un objet de base de données dans l'ensemble est représentée par une somme, sur toutes les dimensions dans l'espace à valeur réelle, de la distance entre chaque objet de requête et une valeur probable de l'objet de base de données, la valeur probable étant fondée sur l'objet de base de données quantifié.
- 6. Procédé selon la revendication 1, dans lequel le calcul d'une mesure de comparaison entre l'objet de requête et chacun des objets de base de données quantifiés est fondé sur une liaison inférieure.
- 7. Procédé selon la revendication 6, dans lequel le calcul fondé sur une liaison inférieure de la mesure de comparaison entre l'objet de requête et chacun des objets de base de données quantifiés comprend le calcul et l'addition de valeurs fondées sur une liaison inférieure dans chacune des dimensions de l'espace d'enfouissement à valeur réelle.
- 8. Procédé selon la revendication 1, dans lequel le calcul de la mesure de comparaison entre l'objet de requête et chacun des objets de base de données quantifiés comprend le calcul d'une liaison inférieure sur une distance entre l'objet de requête x et chacun des objets de base de données y selon l'expression : dze (x, Y) = Ek Shk (x),hk (y)d (gk (x), tk ) (32) où 8hk(x)hk(y) est la négation du delta de Kronecker, de telle sorte que 8hk(x),hk(y) =0 si hk (x) = hk (y) , et 1 sinon ; hk (x) est une représentation quantifiée de l'objet de requête ; k est une dimension d'une fonction d'enfouissement multidimensionnelle ;hk(y) est la représentation quantifiée de l'objet de base de données ; d(gk(x),tk) est une distance entre la représentation à valeur réelle de l'objet de requête gk (x) ; et tk est le seuil de quantification de la fonction de quantification.
- 9. Procédé selon la revendication 1, dans lequel la fonction de quantification est sélectionnée parmi le groupe comprenant un hachage LSH (« Locality Sensitive Hashing »), un hachage SH (« Spectral Hashing »), un hachage SSH (« Semi-Supervised Hashing »), des codes LSBC (« Locality-Sensitive Binary Codes ») et un enfouissement PCAE (« Principal Component Analysis Embedding »).
- 10. Système mis en oeuvre par ordinateur pour comparer un objet de requête et un ensemble d'objets de base de données, comprenant : une mémoire qui stocke un ensemble d'objets de base de données qui ont chacun été transformés à l'aide d'une fonction d'enfouissement quantifiée, qui est composée d'une fonction d'enfouissement à valeur réelle et d'une fonction de quantification ; une entrée qui reçoit un objet de requête ; une composante de génération de représentation qui transforme l'objet de 20 requête en une représentation dans un espace intermédiaire à valeur réelle à l'aide de la fonction d'enfouissement à valeur réelle ; une mémoire qui stocke un ensemble de valeurs calculées de distance estimées dépendant de la requête à partir de l'objet de requête transformé ; des instructions stockées en mémoire pour calculer une mesure de 25 comparaison entre l'objet de requête et chacun des objets de base de données quantifiés sur base des valeurs stockées de distance estimées dépendantes de la requête ; et un processeur pour exécuter les instructions.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/960,018 US8370338B2 (en) | 2010-12-03 | 2010-12-03 | Large-scale asymmetric comparison computation for binary embeddings |
Publications (1)
Publication Number | Publication Date |
---|---|
FR2968426A1 true FR2968426A1 (fr) | 2012-06-08 |
Family
ID=46124919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1161091A Withdrawn FR2968426A1 (fr) | 2010-12-03 | 2011-12-02 | Calcul de comparaison asymetrique a grande echelle pour integrations binaires |
Country Status (2)
Country | Link |
---|---|
US (1) | US8370338B2 (fr) |
FR (1) | FR2968426A1 (fr) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8285719B1 (en) | 2008-08-08 | 2012-10-09 | The Research Foundation Of State University Of New York | System and method for probabilistic relational clustering |
US20110016154A1 (en) * | 2009-07-17 | 2011-01-20 | Rajan Goyal | Profile-based and dictionary based graph caching |
US8510236B1 (en) * | 2010-05-07 | 2013-08-13 | Google Inc. | Semi-supervised and unsupervised generation of hash functions |
US8428397B1 (en) * | 2010-08-26 | 2013-04-23 | Adobe Systems Incorporated | Systems and methods for large scale, high-dimensional searches |
US8774515B2 (en) | 2011-04-20 | 2014-07-08 | Xerox Corporation | Learning structured prediction models for interactive image labeling |
US8533204B2 (en) | 2011-09-02 | 2013-09-10 | Xerox Corporation | Text-based searching of image data |
US20130060790A1 (en) * | 2011-09-07 | 2013-03-07 | Michael Chertok | System and method for detecting outliers |
US8837727B2 (en) * | 2011-11-08 | 2014-09-16 | Mitsubishi Electric Research Laboratories, Inc. | Method for privacy preserving hashing of signals with binary embeddings |
US9031331B2 (en) | 2012-07-30 | 2015-05-12 | Xerox Corporation | Metric learning for nearest class mean classifiers |
US8879796B2 (en) | 2012-08-23 | 2014-11-04 | Xerox Corporation | Region refocusing for data-driven object localization |
US9008429B2 (en) | 2013-02-01 | 2015-04-14 | Xerox Corporation | Label-embedding for text recognition |
US8879103B2 (en) | 2013-03-04 | 2014-11-04 | Xerox Corporation | System and method for highlighting barriers to reducing paper usage |
US9158995B2 (en) | 2013-03-14 | 2015-10-13 | Xerox Corporation | Data driven localization using task-dependent representations |
US9384423B2 (en) | 2013-05-28 | 2016-07-05 | Xerox Corporation | System and method for OCR output verification |
US9082047B2 (en) | 2013-08-20 | 2015-07-14 | Xerox Corporation | Learning beautiful and ugly visual attributes |
US9412031B2 (en) | 2013-10-16 | 2016-08-09 | Xerox Corporation | Delayed vehicle identification for privacy enforcement |
US9792301B2 (en) * | 2014-09-26 | 2017-10-17 | Conduent Business Services, Llc | Multi-query privacy-preserving parking management system and method |
US10503732B2 (en) | 2013-10-31 | 2019-12-10 | Micro Focus Llc | Storing time series data for a search query |
US9779284B2 (en) | 2013-12-17 | 2017-10-03 | Conduent Business Services, Llc | Privacy-preserving evidence in ALPR applications |
US9424492B2 (en) | 2013-12-27 | 2016-08-23 | Xerox Corporation | Weighting scheme for pooling image descriptors |
WO2015123601A2 (fr) | 2014-02-13 | 2015-08-20 | Nant Holdings Ip, Llc | Vocabulaire visuel global, systèmes et procédés |
US9158971B2 (en) | 2014-03-03 | 2015-10-13 | Xerox Corporation | Self-learning object detectors for unlabeled videos using multi-task learning |
US9639806B2 (en) | 2014-04-15 | 2017-05-02 | Xerox Corporation | System and method for predicting iconicity of an image |
US9589231B2 (en) | 2014-04-28 | 2017-03-07 | Xerox Corporation | Social medical network for diagnosis assistance |
WO2015167562A1 (fr) | 2014-04-30 | 2015-11-05 | Hewlett-Packard Development Company, L.P. | Utilisation de nœuds de mémoire locale d'une machine multicœur pour traiter une interrogation de recherche |
US9697439B2 (en) | 2014-10-02 | 2017-07-04 | Xerox Corporation | Efficient object detection with patch-level window processing |
US9298981B1 (en) | 2014-10-08 | 2016-03-29 | Xerox Corporation | Categorizer assisted capture of customer documents using a mobile device |
US9443164B2 (en) | 2014-12-02 | 2016-09-13 | Xerox Corporation | System and method for product identification |
US9216591B1 (en) | 2014-12-23 | 2015-12-22 | Xerox Corporation | Method and system for mutual augmentation of a motivational printing awareness platform and recommendation-enabled printing drivers |
US9367763B1 (en) | 2015-01-12 | 2016-06-14 | Xerox Corporation | Privacy-preserving text to image matching |
US9626594B2 (en) | 2015-01-21 | 2017-04-18 | Xerox Corporation | Method and system to perform text-to-image queries with wildcards |
US10796196B2 (en) * | 2015-03-05 | 2020-10-06 | Nant Holdings Ip, Llc | Large scale image recognition using global signatures and local feature information |
US9721186B2 (en) | 2015-03-05 | 2017-08-01 | Nant Holdings Ip, Llc | Global signatures for large-scale image recognition |
US9600738B2 (en) | 2015-04-07 | 2017-03-21 | Xerox Corporation | Discriminative embedding of local color names for object retrieval and classification |
US9443320B1 (en) | 2015-05-18 | 2016-09-13 | Xerox Corporation | Multi-object tracking with generic object proposals |
US10984045B2 (en) * | 2017-05-24 | 2021-04-20 | International Business Machines Corporation | Neural bit embeddings for graphs |
CN112488205B (zh) * | 2020-11-30 | 2023-04-07 | 桂林电子科技大学 | 基于优化kpca算法的神经网络图像分类识别方法 |
US11886445B2 (en) * | 2021-06-29 | 2024-01-30 | United States Of America As Represented By The Secretary Of The Army | Classification engineering using regional locality-sensitive hashing (LSH) searches |
CN114330261A (zh) * | 2021-12-30 | 2022-04-12 | 江苏银承网络科技股份有限公司 | 表单数据的校验方法、校验装置、电子设备和存储介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6182069B1 (en) * | 1992-11-09 | 2001-01-30 | International Business Machines Corporation | Video query system and method |
US6675174B1 (en) * | 2000-02-02 | 2004-01-06 | International Business Machines Corp. | System and method for measuring similarity between a set of known temporal media segments and a one or more temporal media streams |
KR20040041082A (ko) * | 2000-07-24 | 2004-05-13 | 비브콤 인코포레이티드 | 멀티미디어 북마크와 비디오의 가상 편집을 위한 시스템및 방법 |
US7283987B2 (en) * | 2001-03-05 | 2007-10-16 | Sap Ag | Compression scheme for improving cache behavior in database systems |
US7966327B2 (en) * | 2004-11-08 | 2011-06-21 | The Trustees Of Princeton University | Similarity search system with compact data structures |
US7756341B2 (en) | 2005-06-30 | 2010-07-13 | Xerox Corporation | Generic visual categorization method and system |
US7725484B2 (en) * | 2005-11-18 | 2010-05-25 | University Of Kentucky Research Foundation (Ukrf) | Scalable object recognition using hierarchical quantization with a vocabulary tree |
US7680341B2 (en) | 2006-05-05 | 2010-03-16 | Xerox Corporation | Generic visual classification with gradient components-based dimensionality enhancement |
US7885466B2 (en) | 2006-09-19 | 2011-02-08 | Xerox Corporation | Bags of visual context-dependent words for generic visual categorization |
US7885794B2 (en) | 2007-11-30 | 2011-02-08 | Xerox Corporation | Object comparison, retrieval, and categorization methods and apparatuses |
US8463051B2 (en) | 2008-10-16 | 2013-06-11 | Xerox Corporation | Modeling images as mixtures of image models |
US8249343B2 (en) | 2008-10-15 | 2012-08-21 | Xerox Corporation | Representing documents with runlength histograms |
US20100114871A1 (en) * | 2008-10-31 | 2010-05-06 | University Of Southern California | Distance Quantization in Computing Distance in High Dimensional Space |
US20110142335A1 (en) * | 2009-12-11 | 2011-06-16 | Bernard Ghanem | Image Comparison System and Method |
-
2010
- 2010-12-03 US US12/960,018 patent/US8370338B2/en active Active
-
2011
- 2011-12-02 FR FR1161091A patent/FR2968426A1/fr not_active Withdrawn
Non-Patent Citations (2)
Title |
---|
H JÉGOU ET AL: "Product Quantization for Nearest Neighbor Search", IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, vol. 33, no. 1, 25 February 2010 (2010-02-25), pages 117 - 128, XP055026005, ISSN: 0162-8828, DOI: 10.1109/TPAMI.2010.57 * |
WEI DONG ET AL: "Asymmetric distance estimation with sketches for similarity search in high-dimensional spaces", SIGIR '08 : THE 31ST ANNUAL INTERNATIONAL ACM SIGIR CONFERENCE ON RESEARCH AND DEVELOPMENT IN INFORMATION RETRIEVAL ; SINGAPORE, JULY 20 - 24, 2008, [NEW YORK, NY] : ACM, 2 PENN PLAZA, SUITE 701 NEW YORK NY 10121-0701 USA, 20 July 2008 (2008-07-20), pages 123 - 130, XP058244093, ISBN: 978-1-60558-164-4, DOI: 10.1145/1390334.1390358 * |
Also Published As
Publication number | Publication date |
---|---|
US20120143853A1 (en) | 2012-06-07 |
US8370338B2 (en) | 2013-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2968426A1 (fr) | Calcul de comparaison asymetrique a grande echelle pour integrations binaires | |
Zampoglou et al. | Large-scale evaluation of splicing localization algorithms for web images | |
US20170024384A1 (en) | System and method for analyzing and searching imagery | |
JP5926291B2 (ja) | 類似画像を識別する方法および装置 | |
US10062083B2 (en) | Method and system for clustering and classifying online visual information | |
US8861884B1 (en) | Training classifiers for deblurring images | |
US20230376527A1 (en) | Generating congruous metadata for multimedia | |
FR2990035A1 (fr) | Systeme et procede d'extraction exploitant des etiquettes de niveau de categorie | |
JP2014029732A (ja) | 画像の検索および読み出しに関する基準を用いて画像内容の描写を生成する方法 | |
CN106663195B (zh) | 用于指纹匹配和相机识别的改进的方法、设备和系统 | |
US20140029801A1 (en) | In-Video Product Annotation with Web Information Mining | |
FR2974434A1 (fr) | Prediction de la valeur esthetique d'une image | |
FR2969339A1 (fr) | Systeme et procede d'extraction d'informations multimedia | |
EP3314534B1 (fr) | Procédé et dispositif de recherche d'images | |
FR3016066A1 (fr) | Systeme et procede de ponderation pour une mise en commun de descripteurs d'image | |
WO2020065177A1 (fr) | Procede, programme d'ordinateur et systeme de detection et localisation d'objet dans une scene tridimensionnelle | |
US20230222762A1 (en) | Adversarially robust visual fingerprinting and image provenance models | |
JP5634075B2 (ja) | 画像のシーケンスを処理する方法および装置、画像データを処理する装置、ならびにコンピュータプログラム製品 | |
Suryawanshi | Image Recognition: Detection of nearly duplicate images | |
Baheti et al. | Information-theoretic database building and querying for mobile Augmented Reality applications | |
US20240112079A1 (en) | Machine-learning techniques for carbon footprint optimization from improved organization of media | |
Harish Kumar et al. | Fingerprinting of Image Files Based on Metadata and Statistical Analysis | |
Sun et al. | Hash length prediction for video hashing | |
WO2022264370A1 (fr) | Dispositif de traitement d'images, procédé de traitement d'images et programme | |
US20240012849A1 (en) | Multichannel content recommendation system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 5 |
|
PLFP | Fee payment |
Year of fee payment: 6 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20170428 |
|
ST | Notification of lapse |
Effective date: 20180831 |