ES2665504T3 - Dispositivo de búsqueda de imágenes, método de búsqueda de imágenes, programa y soporte de almacenamiento legible por ordenador - Google Patents

Dispositivo de búsqueda de imágenes, método de búsqueda de imágenes, programa y soporte de almacenamiento legible por ordenador Download PDF

Info

Publication number
ES2665504T3
ES2665504T3 ES13769777.7T ES13769777T ES2665504T3 ES 2665504 T3 ES2665504 T3 ES 2665504T3 ES 13769777 T ES13769777 T ES 13769777T ES 2665504 T3 ES2665504 T3 ES 2665504T3
Authority
ES
Spain
Prior art keywords
image
query
feature vectors
vectors
search
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.)
Active
Application number
ES13769777.7T
Other languages
English (en)
Inventor
Ali CEVAHIR
Junji Torii
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Rakuten Group Inc
Original Assignee
Rakuten Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Rakuten Inc filed Critical Rakuten Inc
Application granted granted Critical
Publication of ES2665504T3 publication Critical patent/ES2665504T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/56Information retrieval; Database structures therefor; File system structures therefor of still image data having vectorial format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • G06F16/532Query formulation, e.g. graphical querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content

Abstract

Un dispositivo de búsqueda de imágenes (1), que comprende: un medio de obtención de los vectores de características de consulta (82) para obtener una pluralidad de vectores de características de consulta a partir de una imagen de consulta, donde cada vector de características de consulta indica una característica local de la imagen de consulta; y un medio de selección de los vectores de características de imagen (89) para seleccionar, a partir de una imagen objetivo de búsqueda, una pluralidad de vectores de características de imagen, donde la pluralidad de vectores de características de imagen indica respectivamente una pluralidad de características locales de la imagen objetivo de búsqueda, donde la imagen objetivo de búsqueda es una de una pluralidad de imágenes objetivo de búsqueda en las que se ha de buscar, que están almacenadas a priori en medios de almacenamiento (12), y donde el dispositivo de búsqueda de imágenes (1) se caracteriza por que: el medio de selección de los vectores de características de imagen (89) se configura de modo que seleccione una pluralidad de vectores de características de imagen para cada vector de características de consulta de la imagen de consulta, donde, para un vector de características de consulta dado, la pluralidad de vectores de características de imagen son vectores de características de imagen que no se seleccionan con relación a otros vectores de características de consulta dentro de la pluralidad de vectores de características de consulta para la imagen de consulta, siendo los demás vectores de características de consulta diferentes del vector de características de consulta dado; y donde el dispositivo de búsqueda de imágenes (1) comprende: un medio de generación de puntuaciones (90) con el fin de generar una puntuación de imagen para cada imagen objetivo de búsqueda en base a una suma total de elementos de puntuación, donde cada elemento de puntuación depende de las proximidades entre cada vector de características de consulta y la pluralidad seleccionada correspondiente de vectores de características de imagen; y un medio de selección de imágenes (91) para seleccionar al menos una imagen objetivo de búsqueda de la pluralidad de imágenes objetivo de búsqueda en base a la puntuación de imagen.

Description

DESCRIPCIÓN
Dispositivo de búsqueda de imágenes, método de búsqueda de imágenes, programa y soporte de almacenamiento legible por ordenador
Campo técnico
5 La presente invención se refiere a un dispositivo de búsqueda de imágenes, un método de búsqueda de imágenes, un programa y un soporte de almacenamiento legible por ordenador.
Antecedentes
Los avances en la tecnología de redes y similares han dado como resultado que se ha de gestionar un enorme número de ficheros de imagen. Se ha dispuesto de un método de búsqueda de imágenes para buscar en el enorme 10 número de imágenes con el fin de recuperar una imagen similar a una imagen (imagen de consulta) que sirve como consulta. Según una de las tecnologías de búsqueda de imágenes, hay una que utiliza una cantidad de características locales que indica una característica local de una imagen, y con métodos generales, se calcula una puntuación que indica un grado de similitud con la imagen de consulta de una manera simplificada, con el fin de recuperar imágenes similares a partir de una gran cantidad de imágenes para un tiempo de respuesta corto.
15 Uno de los métodos mencionados anteriormente se denomina "Método de la bolsa de características (bag of features, BoF)". Este método se obtiene aplicando un método de búsqueda de documentos denominado "Método de la bolsa de palabras (bag of words, BoW)". En el método BoF, cada una de las cantidades de características locales (denominadas en adelante como "cantidades de características de imagen") extraídas de una imagen en la que se ha de buscar se almacena previamente asociada con una palabra visual que se corresponde con una palabra 20 utilizada en el método BoW. De manera específica, las cantidades de características de imagen se someten a un agrupamiento, de modo que una agrupación se corresponda con la palabra visual. A continuación, se extraen una pluralidad de cantidades de características locales (denominadas en adelante como "cantidades de características de consulta") de una imagen que sirve como consulta, cuando se lleva a cabo una búsqueda, para obtener la palabra visual que se corresponde con cada una de las cantidades de características locales. A continuación, se 25 procesa estadísticamente una frecuencia de aparición de la palabra visual, para generar de ese modo una puntuación que indica un grado de similitud entre la imagen de consulta y la imagen en la que se ha de buscar, y recuperar imágenes similares.
En la literatura de la patente 1, se expone un esquema de un método para buscar y recuperar una imagen utilizando la palabra visual, y una tecnología para buscar y recuperar una imagen combinando un vector de cantidades de 30 características de imagen, extraído de una imagen dada, con un vector de cantidades de características de medios extraído de frases asociadas con la imagen dada.
La literatura de la patente 2 se refiere a un método y un aparato para facilitar la recuperación de imágenes basada en contenido.
La literatura de la patente 3 se refiere a un método de gestión de imágenes para buscar y recuperar datos de 35 imágenes.
Lista de citas
Literatura de la patente
[PTL 1] JP 2011-103082 A
[PTL 2] US2011/158558 A1
40 [PTL 3] EP2138957 A2
Compendio de la invención
Problema técnico
Con dicho método de cálculo de puntuaciones tal como se describe anteriormente puede que no se obtenga una precisión necesaria de búsqueda. Por ejemplo, en un método BoF, se calcula una puntuación en base a una 45 frecuencia de aparición de una cantidad de características de consulta convertida en una palabra visual y, por tanto, la precisión de la puntuación se deteriora debido a un tamaño de la agrupación, de una agrupación que se corresponde con la palabra visual o precisión de agrupamiento. Este fenómeno se hace más evidente cuando aumenta el número de cantidades de características de imagen que se corresponden con la palabra visual. Destacar que, no necesariamente es suficiente reducir el número de cantidades de características de imagen que se 50 corresponden con la palabra visual. Esto se debe a que se produce con facilidad un error a la hora de determinar la
5
10
15
20
25
30
35
40
45
50
55
palabra visual.
La presente invención se ha realizado habida cuenta del problema mencionado anteriormente, y su objeto es proporcionar una tecnología capaz de buscar y recuperar una imagen con una precisión más alta que en un caso donde se evalúa un grado de similitud entre una imagen de consulta y una imagen en la que se ha de buscar, en base a la frecuencia de aparición de la cantidad de características de imagen correspondiente a la cantidad de características de consulta como en el método BoF.
Solución al problema
Con el fin de resolver el problema mencionado anteriormente, de acuerdo con una realización de la presente invención, se proporciona un dispositivo de búsqueda de imágenes que incluye: un medio de obtención de los vectores de características de consulta para obtener una pluralidad de vectores de características de consulta, donde cada uno indica una característica local de una imagen que sirve como consulta; un medio de selección de vectores de características de imagen para seleccionar una pluralidad de vectores de características de imagen que se corresponden respectivamente con la pluralidad de vectores de características de consulta en base a las proximidades entre la pluralidad de vectores de características de imagen, que indican respectivamente una pluralidad de características locales de cada una de una pluralidad de las imágenes objetivo de búsqueda en las que se ha de buscar, que se almacenan a priori en medios de almacenamiento para cada una de la pluralidad de imágenes objetivo de búsqueda, y la pluralidad de vectores de características de consulta, a partir de una pluralidad de vectores de características de imagen almacenados en los medios de almacenamiento; un medio de generación de puntuaciones para generar una puntuación de imagen de la imagen objetivo de búsqueda en base a una suma total de elementos de puntuación, donde cada una depende de las proximidades entre la pluralidad de vectores de características de imagen seleccionados, indicando cada uno una característica de cualquiera de la pluralidad de imágenes objetivo de búsqueda, y los vectores de características de consulta que se corresponden con los vectores de características de imagen seleccionados; y un medio de selección de imágenes para seleccionar al menos una de la pluralidad de imágenes objetivo de búsqueda en las que se ha de buscar en base a la puntuación de imagen.
Asimismo, de acuerdo con una realización de la presente invención, se proporciona un programa para hacer que un ordenador ejecute los siguientes procesos de: obtención de una pluralidad de vectores de características de consulta, donde cada uno indica una característica local de una imagen que sirve como consulta; selección de una pluralidad de vectores de características de imagen que se corresponden respectivamente con la pluralidad de vectores de características de consulta en base a las proximidades entre la pluralidad de vectores de características de imagen, que indican respectivamente una pluralidad de características locales de cada una de una pluralidad de las imágenes objetivo de búsqueda en las que se ha de buscar, que se almacenan a priori en medios de almacenamiento para cada una de la pluralidad de imágenes objetivo de búsqueda, y la pluralidad de vectores de características de consulta, a partir de una pluralidad de vectores de características de imagen almacenados en los medios de almacenamiento; generación de una puntuación de imagen de la imagen objetivo de búsqueda en base a una suma total de elementos de puntuación, donde cada una depende de las proximidades entre la pluralidad de vectores de características de imagen seleccionados, indicando cada uno una característica de cualquiera de la pluralidad de imágenes objetivo de búsqueda, y los vectores de características de consulta que se corresponden con los vectores de características de imagen seleccionados; y selección de al menos una de la pluralidad de imágenes objetivo de búsqueda en las que se ha de buscar en base a la puntuación de imagen.
Asimismo, de acuerdo con una realización de la presente invención, se proporciona un método de búsqueda de imágenes que incluye los pasos de: obtención de una pluralidad de vectores de características de consulta, donde cada uno indica una característica local de una imagen que sirve como consulta; selección de una pluralidad de vectores de características de imagen que se corresponden respectivamente con la pluralidad de vectores de características de consulta en base a las proximidades entre la pluralidad de vectores de características de imagen, que indican respectivamente una pluralidad de características locales de cada una de una pluralidad de las imágenes objetivo de búsqueda en las que se ha de buscar, que se almacenan a priori en medios de almacenamiento para cada una de la pluralidad de imágenes objetivo de búsqueda, y la pluralidad de vectores de características de consulta, a partir de una pluralidad de vectores de características de imagen almacenados en los medios de almacenamiento; generación de una puntuación de imagen de la imagen objetivo de búsqueda en base a una suma total de elementos de puntuación, donde cada una depende de las proximidades entre la pluralidad de vectores de características de imagen seleccionados, indicando cada uno una característica de cualquiera de la pluralidad de imágenes objetivo de búsqueda, y los vectores de características de consulta que se corresponden con los vectores de características de imagen seleccionados; y selección de al menos una de la pluralidad de imágenes objetivo de búsqueda en las que se ha de buscar en base a la puntuación de imagen.
Asimismo, de acuerdo con una realización de la presente invención, se proporciona un soporte de almacenamiento legible por ordenador que tiene almacenado un programa para hacer que un ordenador ejecute los siguientes procesos de: obtención de una pluralidad de vectores de características de consulta, donde cada uno indica una característica local de una imagen que sirve como consulta; selección de una pluralidad de vectores de características de imagen que se corresponden respectivamente con la pluralidad de vectores de características de
5
10
15
20
25
30
35
40
45
50
consulta en base a las proximidades entre la pluralidad de vectores de características de imagen, que indican respectivamente una pluralidad de características locales de cada una de una pluralidad de las imágenes objetivo de búsqueda en las que se ha de buscar, que se almacenan a priori en medios de almacenamiento para cada una de la pluralidad de imágenes objetivo de búsqueda, y la pluralidad de vectores de características de consulta, a partir de una pluralidad de vectores de características de imagen almacenados en los medios de almacenamiento; generación de una puntuación de imagen de la imagen objetivo de búsqueda en base a una suma total de elementos de puntuación, donde cada una depende de las proximidades entre la pluralidad de vectores de características de imagen seleccionados, indicando cada uno una característica de cualquiera de la pluralidad de imágenes objetivo de búsqueda, y los vectores de características de consulta que se corresponden con los vectores de características de imagen seleccionados; y selección de al menos una de la pluralidad de imágenes objetivo de búsqueda en las que se ha de buscar en base a la puntuación de imagen.
De acuerdo con una realización de la presente invención, es posible buscar y recuperar una imagen con una precisión más alta que en un caso donde se evalúa el grado de similitud entre la imagen de consulta y la imagen en la que se ha de buscar en base únicamente a la frecuencia de aparición de la cantidad de características de imagen correspondiente a la cantidad de características de consulta.
En un aspecto de la presente invención, el dispositivo de búsqueda de imágenes puede incluir además un medio de selección de la agrupación para seleccionar una agrupación que se corresponde con cada uno de la pluralidad de vectores de características de consulta, a partir de una pluralidad de agrupaciones en las que se clasifican la pluralidad de vectores de características de imagen almacenados en los medios de almacenamiento, y donde el medio de selección de los vectores de características de imagen puede seleccionar el vector de características de imagen que se corresponde con la pluralidad de vectores de características de consulta en base a las proximidades entre la pluralidad de vectores de características de consulta y los vectores de características de imagen que pertenecen a la agrupación seleccionada.
De acuerdo con este aspecto, se puede mejorar la velocidad de la búsqueda de imágenes.
En un aspecto de la presente invención, la proximidad entre cada uno de la pluralidad de vectores de características de imagen seleccionados y los vectores de características de consulta, que se corresponden con el vector de características de imagen seleccionado, puede ser una distancia entre el vector de características de imagen y el vector de características de consulta.
En un aspecto de la presente invención, el medio de selección de los vectores de características de imagen puede seleccionar el vector de características de imagen, cuya distancia desde la pluralidad de vectores de características de consulta sea menor que un valor umbral predeterminado, de entre los vectores de características de imagen que pertenecen a la agrupación seleccionada.
De acuerdo con este aspecto, se puede controlar la precisión de la búsqueda cambiando el valor umbral.
Breve descripción de los dibujos
La figura 1 es un diagrama que ilustra un ejemplo de una configuración de un sistema de búsqueda de imágenes de acuerdo con una primera realización.
La figura 2 es un diagrama que ilustra un ejemplo de una configuración de un dispositivo de búsqueda de imágenes de acuerdo con la primera realización.
La figura 3 es un diagrama que ilustra un ejemplo de una configuración de un dispositivo de computación paralela.
La figura 4 es un diagrama funcional de bloques que ilustra las funciones del dispositivo de búsqueda de imágenes de acuerdo con la primera realización.
La figura 5 es un diagrama funcional de bloques que ilustra una configuración funcional de una unidad de generación de índices de acuerdo con la primera realización.
La figura 6 es un diagrama que ilustra un ejemplo de una imagen en la que se ha de buscar.
La figura 7 es un diagrama que ilustra un concepto de vectores de características de imagen extraídos de una imagen.
La figura 8 es un diagrama que ilustra un ejemplo de una estructura de árbol de vectores representativos.
La figura 9 es un diagrama funcional de bloques que ilustra una configuración funcional de una unidad de búsqueda de imágenes de acuerdo con la primera realización.
La figura 10 es un diagrama que ilustra un ejemplo de un flujo esquemático de procesamiento, del procesamiento de
5
10
15
20
25
30
35
40
45
la unidad de búsqueda de imágenes, de acuerdo con una primera realización.
La figura 11 es un diagrama que ilustra un ejemplo de una disposición de datos en una memoria interna del dispositivo.
La figura 12 es un diagrama que ilustra un ejemplo de una disposición de vectores representativos en la memoria interna del dispositivo.
La figura 13 es un diagrama que ilustra un ejemplo de una pantalla en la cual se introduce una imagen que sirve como consulta.
La figura 14 es un diagrama que ilustra un ejemplo de un flujo de procesamiento del cálculo de distancias.
La figura 15 es un diagrama que ilustra un ejemplo de una correspondencia entre un vector de características de consulta extraído de una imagen de consulta y un vector de características de imagen extraído de una pluralidad de imágenes en las que se ha de buscar.
La figura 16 es un diagrama que ilustra un ejemplo de un flujo de procesamiento de una unidad de selección de los vectores de características de imagen.
La figura 17 es un diagrama que ilustra un ejemplo de un caso de selección de un vector de características de imagen correspondiente a un vector de características de consulta.
La figura 18 es un diagrama que ilustra un ejemplo de una correspondencia entre una característica local dentro de una imagen de consulta y una característica local dentro de una imagen en la que se ha de buscar.
La figura 19 es un diagrama que ilustra un ejemplo comparativo de la correspondencia entre la característica local dentro de la imagen de consulta y la característica local dentro de la imagen en la que se ha de buscar.
La figura 20 es un diagrama que ilustra un ejemplo de variación de la distancia entre el vector de características de consulta y el vector de características de imagen.
La figura 21 es un diagrama que ilustra un ejemplo de los resultados de imágenes procesadas estadísticamente que se corresponden con los vectores de características de consulta.
La figura 22 es un diagrama que ilustra un ejemplo de los datos almacenados en una unidad de almacenamiento de las cantidades de características de imagen de las agrupaciones.
La figura 23 es un diagrama funcional de bloques que ilustra una configuración funcional de una unidad de búsqueda de imágenes de acuerdo con una segunda realización.
La figura 24 es un diagrama que ilustra un ejemplo de un flujo de procesamiento que ilustra un esquema de procesamiento de la unidad de búsqueda de imágenes de acuerdo con la segunda realización.
La figura 25 es un diagrama para ilustrar una distribución de vectores de características de imagen dentro de un tercer agrupamiento de características de imagen y la selección realizada por los vectores de características de consulta.
La figura 26 es un diagrama que ilustra un ejemplo de un matriz traspuesta utilizada para generar una puntuación de imagen.
La figura 27 es un diagrama que ilustra un ejemplo de un flujo de procesamiento que ilustra un esquema de procesamiento de una unidad de búsqueda de imágenes de acuerdo con una tercera realización.
Descripción de las realizaciones
A continuación, se describen realizaciones de la presente invención haciendo referencia a los dibujos anexos. Los elementos a describir que tienen la misma función se designan con los mismos números de referencia y se omite su descripción.
[Primera realización]
La figura 1 es un diagrama que ilustra un ejemplo de una configuración de un sistema de búsqueda de imágenes de acuerdo con una primera realización. El sistema de búsqueda de imágenes incluye un dispositivo de búsqueda de imágenes 1, un servidor web 2 y un dispositivo cliente 3. El servidor web 2 es, por ejemplo, un hardware servidor en el que opera un programa del servidor web, y el dispositivo cliente 3 es, por ejemplo, un ordenador personal o un teléfono móvil en el que opera un programa de un navegador. Un resumen del funcionamiento del sistema de búsqueda de imágenes para llevar a cabo una búsqueda de imagen es como se explica a continuación. En primer
5
5
10
15
20
25
30
35
40
45
50
55
lugar, el servidor web 2 obtiene una imagen que sirve como consulta, que se ha de utilizar para una búsqueda de imágenes (denominada en adelante como "imagen de consulta") desde el dispositivo cliente 3 a través de la red, tal como Internet, e introduce la imagen de consulta en el dispositivo de búsqueda de imágenes 1. Posteriormente, el dispositivo de búsqueda de imágenes 1 recupera una o una pluralidad de imágenes similares a la imagen introducida, y envía las imágenes al servidor web 2. El servidor web 2 genera los datos que facilitan que el dispositivo cliente 3 muestre las imágenes recuperadas por el dispositivo de búsqueda de imágenes 1.
La figura 2 es un diagrama que ilustra un ejemplo de una configuración del dispositivo de búsqueda de imágenes 1 de acuerdo con la primera realización. El dispositivo de búsqueda de imágenes 1 incluye una CPU 11, una unidad de almacenamiento 12, una unidad de comunicaciones 13, un dispositivo de computación paralela 14 y un bus 15.
La CPU 11 opera de acuerdo con un programa almacenado en la unidad de almacenamiento 12. La CPU 11 controla la unidad de comunicaciones 13 y el dispositivo de computación paralela 14. Destacar que, el programa mencionado anteriormente se puede proporcionar a través de la red, tal como Internet, o proporcionar al estar almacenado en un soporte de almacenamiento de información legible por ordenador, tal como un DVD-ROM y una memoria USB.
La unidad de almacenamiento 12 incluye, por ejemplo, un dispositivo de memoria tal como una RAM y una ROM y una unidad de disco duro. La unidad de almacenamiento 12 almacena el programa mencionado anteriormente. La unidad de almacenamiento 12 también almacena información y una entrada de resultados computacionales de cada unidad.
La unidad de comunicaciones 13 implementa una función de comunicación a/desde otro dispositivo, tal como el servidor web 2, y está formada, por ejemplo, por un medio de comunicaciones tal como una tarjeta de red. La tarjeta de red incluye un circuito integrado para las comunicaciones y un terminal de comunicaciones. La unidad de comunicaciones 13 está controlada por la CPU 11 para introducir la información recibida desde otro dispositivo en la CPU 11 y la unidad de almacenamiento 12, y para transmitir información a otro dispositivo.
El bus 15 conforma un trayecto para enviar o recibir datos a o desde la CPU 11, la unidad de almacenamiento 12, la unidad de comunicaciones 13 y el dispositivo de computación paralela 14. Por ejemplo, la CPU 11 y la unidad de almacenamiento 12 están conectadas al dispositivo de computación paralela 14 a través de un bus de expansión en el bus 15.
El dispositivo de computación paralela 14 es un hardware óptimo para llevar a cabo una gran cantidad del mismo tipo de computación mediante computación paralela. El dispositivo de computación paralela 14 es, por ejemplo, una unidad de procesamiento gráfico (GPU). La figura 3 es un diagrama que ilustra un ejemplo de una configuración del dispositivo de computación paralela 14. El dispositivo de computación paralela 14 incluye una pluralidad de unidades de ejecución paralela 40 y una memoria interna del dispositivo 45. Cada unidad de ejecución paralela 40 incluye una pluralidad de procesadores 41, una unidad de instrucción 42 y una memoria de alta velocidad 43.
Cada uno de la pluralidad de procesadores 41 lleva a cabo un procesamiento, tal como una computación en coma flotante, y la lectura o escritura de datos desde o en la memoria interna del dispositivo 45 y la memoria de alta velocidad 43. La unidad de instrucción 42 hace que la pluralidad de procesadores 41, que se incluyen en la unidad de ejecución paralela 40 que incluye la unidad de instrucción 42, lleve a cabo el procesamiento en base a un programa almacenado en la memoria interna del dispositivo 45 y similares. La pluralidad de procesadores 41 incluidos en una de la pluralidad de unidades de ejecución paralela 40 procesa la misma instrucción de acuerdo con una instrucción procedente de la unidad de instrucción 42, incluida en dicha unidad de ejecución paralela 40. Con esta configuración, la pluralidad de procesadores 41 se puede controlar mediante una unidad de instrucción 42, que puede suprimir un aumento en la escala de un circuito de la unidad de instrucción 42. Los procesadores 41 incluidos en el dispositivo de computación paralela 14 pueden aumentar en número comparados con aquellos de la CPU 11, lo que facilita una aceleración más significativa que en un caso de utilización de una pluralidad de procesadores con gran independencia entre sí en dicho procesamiento específico de cálculo, tal como se describe más adelante.
La memoria interna del dispositivo 45 está conformada por una DRAM, y se puede acceder a la DRAM a una velocidad más alta que a la RAM utilizada para la unidad de almacenamiento 12. La memoria interna del dispositivo 45 está conectada a la CPU 11 y a la unidad de almacenamiento 12 a través del bus 15. El dispositivo de computación paralela 14 también incluye un circuito para transferir datos entre la memoria interna del dispositivo 45 y la unidad de almacenamiento 12 por medio de una transferencia DMA. La memoria de alta velocidad 43 está conformada, por ejemplo, por una SRAM que posibilita un acceso a mayor velocidad que la memoria interna del dispositivo 45. No hay mucha diferencia entre la latencia cuando el procesador 41 accede a la memoria de alta velocidad 43 y la latencia cuando el procesador 41 accede a su registro interno. En este caso, cada una de la memoria interna del dispositivo 45 y la memoria de alta velocidad 43 es una memoria compartida, a la que se puede acceder de manera común desde la pluralidad de procesadores 41.
La figura 4 es un diagrama funcional de bloques que ilustra las funciones del dispositivo de búsqueda de imágenes 1 de acuerdo con la primera realización. El dispositivo de búsqueda de imágenes 1 incluye de manera funcional una
5
10
15
20
25
30
35
40
45
50
55
unidad de generación de índices 51 y una unidad de búsqueda de imágenes 52. Estas funciones se implementan en la CPU 11, que ejecuta el programa almacenado en la unidad de almacenamiento 12 y controla la unidad de comunicaciones 13, y el dispositivo de computación paralela 14, y donde el dispositivo de computación paralela 14 ejecuta el programa para el dispositivo de computación paralela 14.
[Generación de un índice]
La siguiente descripción consta del procesamiento para clasificar los vectores de características de imagen 22 en agrupaciones y generar un índice.
La unidad de generación de índices 51 genera, a partir de una pluralidad de imágenes en las que se ha de buscar, el vector de características de imagen 22 utilizado para la búsqueda de imágenes y un índice que permite una selección simple del vector de características de imagen 22. La unidad de búsqueda de imágenes 52 busca una imagen similar a la imagen de consulta con la utilización del índice y el vector de características de imagen 22.
La figura 5 es un diagrama funcional de bloques que ilustra una configuración funcional de la unidad de generación de índices 51. La unidad de generación de índices 51 incluye de manera funcional una unidad de extracción de los vectores de características de imagen 61 y una unidad de generación de agrupaciones 62. La unidad de generación de agrupaciones 62 genera una estructura de árbol de un vector representativo, que es un índice de una agrupación, y almacena información sobre el índice en una unidad de almacenamiento de los vectores representativos en estructura de árbol 72. La unidad de almacenamiento de las agrupaciones de vectores 71 almacena información sobre el vector de características de imagen 22 que pertenece a la agrupación (agrupación representada por el vector representativo), que es una hoja de la estructura de árbol. De manera específica, la unidad de almacenamiento de las agrupaciones de vectores 71 y la unidad de almacenamiento de los vectores representativos en estructura de árbol 72 forman parte de la unidad de almacenamiento 12.
La unidad de extracción de los vectores de características de imagen 61 se implementa principalmente mediante la CPU 11, la unidad de almacenamiento 12 y el dispositivo de computación paralela 14. La unidad de extracción de los vectores de características de imagen 61 extrae una o una pluralidad de vectores de características de imagen 22, de cada una de una pluralidad de imágenes en las que se ha de buscar almacenadas en la unidad de almacenamiento 12. Asimismo, la unidad de extracción de los vectores de características de imagen 61 almacena los vectores de características de imagen 22 extraídos en la unidad de almacenamiento 12, asociados con la imagen de la que se extraen los vectores de características de imagen 22.
La figura 6 es un diagrama que ilustra un ejemplo de imágenes en las que se ha de buscar. La figura 7 es un diagrama que ilustra un concepto de vectores de características de imagen 22 extraídos de una imagen. Cada uno de los vectores de características de imagen 22 extraídos de la imagen es una cantidad característica local, que muestra las características locales en la imagen. Cada uno de los vectores de características de imagen 22 es un vector que tiene, por ejemplo, 128 elementos (dimensión). Los métodos ampliamente conocidos, tales como Scale- Invariant Feature Transform (SIFT) y Speeded Up Robust Features (SURF), se pueden utilizar con el fin de extraer los vectores de características de imagen 22 de una imagen. El número de elementos que tiene cada vector de características de imagen 22 puede cambiar de acuerdo con un método de extracción de los vectores de características de imagen de una imagen. Asimismo, el número de vectores de características de imagen 22 extraídos de una imagen puede ser un número predeterminado (p. ej., 300). No obstante, el número de vectores de características de imagen 22 extraídos de una imagen simple puede ser menor que el número predeterminado.
La unidad de generación de agrupaciones 62 se implementa principalmente mediante la CPU 11, la unidad de almacenamiento 12 y el dispositivo de computación paralela 14. La unidad de generación de agrupaciones 62 clasifica al menos una parte de la pluralidad de vectores de características de imagen 22 extraídos mediante la unidad de extracción de los vectores de características de imagen 61 en una pluralidad de agrupaciones mediante agrupamiento. Dicho de otro modo, se generan una pluralidad de agrupaciones, en las cuales se clasifican al menos una parte de los vectores de características de imagen 22 extraídos. Asimismo, se generan los vectores representativos que representan cada una de esas agrupaciones. Las agrupaciones en las que se clasifican los vectores de características de imagen 22 pueden ser multietapa. De acuerdo con esto, el procesamiento para la clasificación en las agrupaciones no está limitado a un proceso de una etapa, sino que pueden ser procesos multietapa. La siguiente descripción consta de un ejemplo de procesamiento en el que se implementan procesos multietapa al ser llamados de manera recursiva. Destacar que, en un ejemplo específico, se llevan a cabo procesos de agrupamiento de dos etapas. En la primera etapa, una pluralidad de vectores de características de imagen 22 extraídos, mediante la unidad de extracción de los vectores de características de imagen 61, se clasifican en 1024 agrupaciones y, en la segunda etapa, cada una de las 1024 agrupaciones se clasifica en 512 agrupaciones.
En las etapas respectivas del procesamiento que lleva a cabo la unidad de generación de agrupaciones 62, se clasifica una pluralidad de vectores de características de imagen 22 obtenidas en un número predeterminado de agrupaciones mediante agrupamiento, de modo que se genere una pluralidad de agrupaciones, se generen los vectores representativos de la pluralidad de las agrupaciones generadas y los vectores representativos generados
5
10
15
20
25
30
35
40
45
50
55
60
se almacenan en la unidad de almacenamiento de los vectores representativos en estructura de árbol 72 como los vectores representativos en la etapa. Cuando la etapa en progreso no es la última etapa, la unidad de generación de agrupaciones 62 llama de manera recursiva al proceso en la etapa siguiente, utilizando una pluralidad de vectores de características de imagen 22, que pertenecen a las agrupaciones respectivas generadas en la etapa en progreso, como información de entrada. El vector representativo es, por ejemplo, el centroide del vector de características de imagen 22 que pertenece a la agrupación clasificada, y representativo de la agrupación. Asimismo, la unidad de generación de agrupaciones 62 almacena, para cada agrupación generada en la última etapa, los vectores de características de imagen 22 que pertenecen a la agrupación en la unidad de almacenamiento de las agrupaciones de vectores 71.
En el ejemplo mencionado anteriormente, en la primera etapa, la unidad de generación de agrupaciones 62 clasifica los vectores de características de imagen 22 obtenidos en 1024 agrupaciones, a continuación genera los vectores representativos respectivos de las agrupaciones clasificadas en la primera etapa, y almacena los vectores representativos generados en la primera etapa en la unidad de almacenamiento de los vectores representativos en estructura de árbol 72. En la segunda etapa, la unidad de generación de agrupaciones 62 clasifica además las 1024 agrupaciones respectivas en 512 agrupaciones, utilizando como información de entrada la pluralidad de vectores de características de imagen 22 que pertenecen a una correspondiente de las 1024 agrupaciones generadas en la primera etapa, a continuación genera los vectores representativos respectivos de las agrupaciones clasificadas en la segunda etapa, y almacena los vectores representativos generados en la etapa inferior en la unidad de almacenamiento de los vectores representativos en estructura de árbol 72. Cuando se generan todas las agrupaciones en la segunda etapa, el número total de agrupaciones en la segunda etapa es igual a (1024x512). La unidad de generación de agrupaciones 62 también almacena, para cada agrupación generada en la segunda etapa, los vectores de características de imagen 22 que pertenecen a la agrupación en la unidad de almacenamiento de las agrupaciones de vectores 71. A continuación, para mayor simplicidad de la descripción, el vector representativo que es representativo de la agrupación en la primera etapa se denomina como "vector superior representativo", y el vector representativo que es representativo de la agrupación en la última etapa (segunda etapa en el ejemplo mencionado anteriormente) se denomina como "vector de características representativo". La agrupación generada en último lugar (la agrupación en la segunda etapa en el ejemplo mencionado anteriormente) se denomina también como "agrupación de características de imagen".
Cuando se clasifican los vectores de características de imagen 22 en agrupaciones se puede emplear un método de agrupamiento ampliamente conocido, tal como el k-means. Preferentemente, el número de agrupaciones es una potencia de 2 considerando los procesos que se llevan a cabo en la unidad de búsqueda de imágenes 52 descrita posteriormente, aunque no es necesario que sea una potencia de 2. Cuando se clasifican los vectores de características de imagen 22 incluidos en todas las imágenes, una pluralidad de vectores de características de imagen 22 pertenecen a cada agrupación de características de imagen. La unidad de generación de agrupaciones 62 lleva a cabo procesos recursivos de dos etapas, por consiguiente se almacena la información de dos niveles en la unidad de almacenamiento de los vectores representativos en estructura de árbol 72. Destacar que, la unidad de extracción de los vectores de características de imagen 61 y la unidad de generación de agrupaciones 62 pueden llevar a cabo el cálculo sin utilizar el dispositivo de computación paralela 14. No obstante, es deseable utilizar el dispositivo de computación paralela 14 para llevar a cabo el cálculo mencionado anteriormente. Esto se debe a que, de acuerdo con un experimento comparativo, en caso de utilizar el dispositivo de computación paralela 14 se incrementa una velocidad de cálculo de 20 a 200 veces más rápida que en caso de no utilizar el dispositivo de computación paralela 14.
La figura 8 es un diagrama que ilustra un ejemplo de una estructura de árbol de vectores representativos. En un caso donde la unidad de generación de agrupaciones 62 lleva a cabo los procesos de dos etapas mencionados anteriormente, los vectores representativos de las dos etapas que se corresponden con las agrupaciones de las dos etapas constituyen una estructura de árbol. El número de los vectores superiores representativos es 1024, y cada uno de los vectores superiores representativos es padre de 512 vectores de características representativos. Cuando la estructura de árbol basada en agrupaciones multietapa se utiliza de la manera mencionada anteriormente, la unidad de búsqueda de imágenes 52 puede llevar a cabo una búsqueda utilizando una relación padre-hijo entre los vectores representativos que se corresponden con la estructura de árbol.
[Procesamiento para la búsqueda y recuperación de imágenes]
La figura 9 es un diagrama funcional de bloques que ilustra una configuración funcional de la unidad de búsqueda de imágenes 52. La unidad de búsqueda de imágenes 52 incluye de manera funcional una unidad de transferencia de los vectores representativos 81, una unidad de obtención de los vectores de características de consulta 82, una unidad de cálculo de distancias de los vectores superiores representativos 83, una unidad de selección de las agrupaciones representativas 84, una unidad de cálculo de distancias de los vectores de características representativos 85, una unidad de selección de las agrupaciones de características de imagen 86, una unidad de transferencia de vectores de características de imagen 87, una unidad de cálculo de distancias de los vectores de características de imagen 88, una unidad de selección de los vectores de características de imagen 89, una unidad de generación de las puntuaciones de imagen 90 y una unidad de selección de las imágenes resultado de la
5
10
15
20
25
30
35
40
45
50
55
búsqueda 91.
La figura 10 es un diagrama que ilustra un esquema del procesamiento de la unidad de búsqueda de imágenes 52 de acuerdo con la primera realización. La siguiente descripción consta de las funciones respectivas incluidas en la unidad de búsqueda de imágenes 52, haciendo referencia a un flujo de procesamiento ilustrado en la figura 10.
[Inicialización del dispositivo de computación paralela]
La unidad de transferencia de los vectores representativos 81 se implementa principalmente mediante el dispositivo de computación paralela 14 y en la unidad de almacenamiento 12. La unidad de transferencia de los vectores representativos 81 transfiere la pluralidad de vectores superiores representativos y la pluralidad de vectores de características representativos almacenados en la unidad de almacenamiento de los vectores representativos en estructura de árbol 72 a la memoria interna del dispositivo 45, a la que se puede acceder de manera común desde la pluralidad de procesadores 41, mientras se realiza el procesamiento para inicializar el dispositivo de computación paralela 14 (paso S101).
La unidad de transferencia de los vectores representativos 81 utiliza las funciones de acceso directo a memoria (DMA) del dispositivo de computación paralelo 14 o el bus 15 para transferir los datos desde la unidad de almacenamiento 12 hasta la memoria interna del dispositivo 45.
La figura 11 es un diagrama que ilustra un ejemplo de disposición de datos en la memoria interna del dispositivo 45. La memoria interna del dispositivo 45 incluye una región para almacenar el vector de características representativo, una región para almacenar el vector superior representativo y una región para almacenar los vectores de características de imagen 22 incluidos en una agrupación de características de imagen. La unidad de transferencia de los vectores representativos 81 almacena información en una pluralidad de vectores representativos almacenados en la unidad de almacenamiento 12 en la región de memoria asignada previamente de la memoria interna del dispositivo 45. El almacenamiento de datos en la región para almacenar la agrupación de características de imagen se describe más adelante.
Cuando se asume que los elementos del vector de características representativo tienen dimensión 128, el número de vectores de características representativos es el mismo que el número de las agrupaciones de características de imagen (1024*512), y cada elemento es un entero de 1 byte, la cantidad total de datos de la pluralidad de vectores de características representativos es (1024*512*128) bytes (B), es decir, 64 MB. En este caso, el número de la pluralidad de vectores superiores representativos es 1024 y de manera similar, una cantidad de datos de la pluralidad de los vectores superiores representativos es, por tanto, (1024*128) bytes, es decir, 128 KB. Por ejemplo, un tamaño de memoria de la memoria interna del dispositivo 45 instalada en la GPU existente es aproximadamente 1 GB. Cuando se supone que el tamaño de la memoria interna del dispositivo 45 es también 1 GB, una cantidad de datos de la pluralidad de vectores representativos es menor que el tamaño de la memoria interna del dispositivo 45.
Por otra parte, cuando se supone que el número de imágenes es 1 millón y el número de vectores de características de imagen 22 que se extraen de una imagen es 300, una cantidad de datos de los vectores de características de imagen 22 incluidos en la pluralidad de las agrupaciones de características de imagen es (1 millón*300*128) bytes, es decir, aproximadamente 36 GB, y no se puede almacenar en la memoria interna del dispositivo 45. El número promedio de los vectores de características de imagen 22 para cada agrupación de características de imagen es (100 millones*300-(1024*512)), es decir, aproximadamente 600, y por tanto la cantidad de datos es aproximadamente 75 KB. Incluso cuando se cambia en cierta medida el número de los vectores de características de imagen 22 incluidos en la agrupación de características de imagen mediante agrupamiento, la suma de la cantidad de datos de la pluralidad de vectores de características representativos, la cantidad de datos de la pluralidad de vectores superiores representativos y la cantidad de datos de los vectores de características de imagen 22 incluidos en una agrupación de características de imagen es menor que el tamaño de la memoria interna del dispositivo 45.
La figura 12 es un diagrama que ilustra un ejemplo de una disposición de vectores representativos en la memoria interna del dispositivo 45. El tamaño de cada elemento del vector representativo almacenado en la memoria interna del dispositivo 45 es 4 bytes y los elementos están alineados en orden. Asimismo, la dirección de comienzo de los datos de uno de los vectores representativos es un múltiplo del número de bytes de datos que se pueden leer de la memoria interna del dispositivo 45 en bloque (p. ej., 32 o 64). Esta estructura de datos permite a la pluralidad de procesadores 41 leer los datos almacenados en la memoria interna del dispositivo 45 en bloques durante el proceso de cálculo de distancias descrito más adelante. Aunque el tamaño de cada elemento del vector representativo es 1 byte, la unidad de transferencia de los vectores representativos 81 transfiere, a la memoria interna del dispositivo 45, los datos en los que el tamaño de cada elemento se convierte a 4 bytes, de modo que los datos se puedan leer en bloque. Destacar que, el vector superior representativo y los vectores de características de imagen 22 incluidos en una agrupación de características de imagen también se almacenan en la memoria interna del dispositivo 45 en una estructura de datos similar. En la memoria interna del dispositivo 45, se aumenta cuatro veces la cantidad de datos de la pluralidad de vectores de características representativos, la pluralidad de vectores superiores representativos y
5
10
15
20
25
30
35
40
45
50
55
los vectores de características de imagen 22 incluidos en una agrupación de características de imagen, pero la suma de la cantidad de datos es aún menor que el tamaño de la memoria interna del dispositivo 45 en este ejemplo. En esta realización, se puede ajustar el número de agrupaciones de características de imagen o de vectores representativos, de modo que al menos la suma de la cantidad de datos de la pluralidad de vectores de características representativos y la pluralidad de vectores superiores representativos en la memoria interna del dispositivo 45 esté dentro del tamaño de la memoria interna del dispositivo 45.
[Obtención de un vector de características de consulta]
La unidad de obtención de los vectores de características de consulta 82 se implementa principalmente mediante la CPU 11, la unidad de almacenamiento 12 y el dispositivo de computación paralela 14. Después de inicializar el dispositivo de computación paralela 14, la unidad de obtención de los vectores de características de consulta 82 obtiene una o una pluralidad de vectores de características de consulta a partir de la imagen de consulta (paso S102). Asimismo, la unidad de obtención de los vectores de características de consulta 82 almacena el vector de características de consulta o una pluralidad de estos, a partir de la imagen de consulta, en la memoria interna del dispositivo 45, que sirve como una memoria compartida.
En primer lugar, la unidad de obtención de los vectores de características de consulta 82 obtiene una imagen de consulta desde el dispositivo cliente 3 a través del servidor web 2. La figura 13 es un diagrama que ilustra un ejemplo de una pantalla en la cual se introduce la imagen de consulta. El dispositivo cliente 3 muestra la pantalla utilizando datos generados por el servidor web 2. Un usuario puede obtener la imagen de consulta cargando un archivo de imagen en el dispositivo cliente 3, o enviando una URL de una imagen mostrada en una página web. Como alternativa, la imagen de consulta se puede obtener seleccionándola entre otras imágenes almacenadas, por ejemplo, en un servicio de compartición de fotografías. A continuación, la unidad de obtención de los vectores de características de consulta 82 obtiene la imagen de consulta, obtenida a través del servidor web 2, y extrae y obtiene uno o una pluralidad de vectores de características de consulta a partir de la imagen de consulta. El vector de características de consulta se genera mediante el mismo método utilizado por la unidad de extracción de los vectores de características de imagen 61 para extraer el vector de características de imagen 22. A continuación, la unidad de obtención de los vectores de características de consulta 82 almacena los vectores de características de consulta en la memoria interna del dispositivo 45. En este caso, la CPU 11 puede extraer los vectores de características de consulta, y el dispositivo de computación paralela 14 puede cargar los vectores de características de consulta en la memoria interna del dispositivo 45. Como alternativa, la imagen de consulta se puede cargar en el dispositivo de computación paralela 14, y el dispositivo de computación paralela 14 puede extraer y almacenar los vectores de características de consulta en la memoria interna del dispositivo 45.
[Selección de una agrupación de características de imagen]
A continuación, la unidad de búsqueda de imágenes 52 selecciona la agrupación de características de imagen que se corresponde con cada uno de la pluralidad de vectores de características de consulta (paso S103). Este proceso se lleva a cabo mediante la unidad de cálculo de distancias de los vectores superiores representativos 83, la unidad de selección de las agrupaciones representativas 84, la unidad de cálculo de distancias de los vectores de características representativos 85 y la unidad de selección de las agrupaciones de características de imagen 86.
La unidad de cálculo de distancias de los vectores superiores representativos 83 se implementa principalmente mediante el dispositivo de computación paralela 14. La unidad de cálculo de distancias de los vectores superiores representativos 83 calcula las distancias entre cada uno de la pluralidad de vectores superiores representativos y el vector de características de imagen utilizando la pluralidad de procesadores paralelos 41. A continuación, se describen los detalles del cálculo de distancias mediante la unidad de cálculo de distancias de los vectores superiores representativos 83. Destacar que, los procesos de la unidad de cálculo de distancias de los vectores superiores representativos 83, la unidad de selección de las agrupaciones representativas 84, la unidad de cálculo de distancias de los vectores de características representativos 85, la unidad de selección de las agrupaciones de características de imagen 86, la unidad de cálculo de distancias de los vectores de características de imagen 88 y la unidad de selección de los vectores de características de imagen 89 se llevan a cabo para cada vector de características de consulta extraído de la imagen de consulta.
La figura 14 es un diagrama que ilustra un ejemplo de un flujo de procesamiento del cálculo de distancias. En primer lugar, la unidad de cálculo de distancias de los vectores superiores representativos 83 carga los vectores de características de consulta desde la memoria interna del dispositivo 45 en la memoria de alta velocidad 43 de la unidad de ejecución paralela 40, donde se lleva a cabo el cálculo de distancias (paso S201). Posteriormente, la unidad de cálculo de distancias de los vectores superiores representativos 83 carga cada elemento de un vector que es objetivo de cálculo (en este caso, vector superior representativo) desde la memoria interna del dispositivo 45 en un registro del procesador 41 en el que se calcula dicho elemento (paso S202). En este momento, la pluralidad de procesadores 41 leen, en bloque desde la memoria interna del dispositivo 45, los datos del vector que es objetivo de cálculo. Los datos del vector que es objetivo de cálculo se almacenan a priori en la memoria interna del dispositivo 45 mediante, p. ej., la unidad de transferencia de los vectores representativos 81, de modo que los datos se lean en
5
10
15
20
25
30
35
40
45
50
55
60
bloque y, por tanto, la pluralidad de procesadores 41 pueda leer los datos. A continuación, la unidad de cálculo de distancias de los vectores superiores representativos 83 resta los elementos del vector que es objetivo de cálculo, almacenados en el registro de los elementos correspondientes del vector de características de consulta, y eleva al cuadrado el resultado de la resta (paso S203). En el cálculo de distancias, se puede utilizar otra función de distancia, tal como un valor absoluto de un resultado de la resta, en lugar de elevar al cuadrado el resultado de la resta. La distancia utilizada en la función de distancia no está limitada a la distancia Euclídea (L2), tal como en el paso S203, y puede ser un coseno, una distancia Manhattan (L1) o similares.
A continuación, la unidad de cálculo de distancias de los vectores superiores representativos 83 suma los resultados de los cálculos obtenidos en el paso S103 referentes a los elementos respectivos del vector que es objetivo de cálculo (paso S204). Posteriormente, la unidad de cálculo de distancias de los vectores superiores representativos 83 almacena la suma de los resultados en la memoria interna del dispositivo (paso S205). Destacar que, cuando el número de procesadores 41 que se incluyen en una unidad de ejecución paralela 40 y que ejecutan la misma instrucción es menor que el número de los elementos del vector de características de consulta o del vector que es objetivo de cálculo, los procesos del paso S202 al paso S204 se dividen de acuerdo con el número de procesadores 41 y se ejecutan una pluralidad de veces. Asimismo, cuando hay una pluralidad de unidades de ejecución paralela 40, la unidad de cálculo de distancias de los vectores superiores representativos 83 provoca que otra unidad de ejecución paralela 40 ejecute los procesos de los pasos S201 a S205 para otro vector que es objetivo de cálculo. También se pueden calcular en paralelo otros vectores de características de consulta extraídos de la imagen de consulta. De esta manera, el cálculo de distancias de los vectores de características de consulta y de otra pluralidad de vectores que son objetivo de cálculo se lleva a cabo en paralelo en base a la capacidad de computación paralela del dispositivo de computación paralela 14, tal como una GPU. Tal como se puede apreciar a partir de los procesos de cálculo de distancias, el cálculo de distancias de la pluralidad de vectores dispuestos convenientemente en la memoria interna del dispositivo 45, y los vectores de características de consulta tiene una compatibilidad alta con hardware tal como una GPU y se realiza muy rápidamente.
La unidad de selección de las agrupaciones representativas 84 se implementa principalmente mediante el dispositivo de computación paralela 14. La unidad de selección de las agrupaciones representativas 84 selecciona uno de los grupos de la pluralidad de vectores de características representativos en base a la distancia entre el vector de características de consulta y la pluralidad de vectores superiores representativos respectivos calculados en la unidad de cálculo de distancias de los vectores superiores representativos 83. De manera más específica, por ejemplo, la unidad de selección de las agrupaciones representativas 84 selecciona un grupo de la pluralidad de vectores de características representativos que son hijos del vector superior representativo que está a mínima distancia con respecto al vector de características de consulta. Los grupos de los vectores de características representativos se corresponden con las agrupaciones respectivas (agrupaciones representativas) de la primera etapa. La selección de un grupo de vectores de características representativos se corresponde con la selección de una agrupación representativa que se corresponde con el grupo. Cada uno de los vectores superiores representativos puede representar una pluralidad de vectores de características representativos. De manera más específica, la unidad de selección de las agrupaciones representativas 84 selecciona un grupo de los vectores representativos mediante el cálculo de una dirección de comienzo de una región en una memoria de almacenamiento del grupo de los vectores representativos. Por ejemplo, cuando el número de vectores de características representativos que son hijos de un vector superior representativo es fijo, independientemente del vector superior representativo, y cuando es evidente en qué posición en el orden está el vector superior representativo que está a mínima distancia, la unidad de selección de las agrupaciones representativas 84 puede obtener la dirección de comienzo mediante un simple cálculo, tal como una multiplicación. De esta manera, no es necesario un cálculo que requiere una ramificación o un acceso adicional a memoria y, por tanto, es posible el procesamiento para hacer un mejor uso del rendimiento del hardware, tal como de una GPU.
La unidad de cálculo de distancias de los vectores de características representativos 85 se implementa principalmente mediante el dispositivo de computación paralela 14. La unidad de cálculo de distancias de los vectores de características representativos 85 calcula las distancias entre cada uno de al menos algunos de la pluralidad de vectores de características representativos y el vector de características de imagen utilizando la pluralidad de procesadores paralelos 41. En este caso, un vector de características representativo que es objetivo de cálculo es un vector de características representativo que pertenece al grupo seleccionado por la unidad de selección de las agrupaciones representativas 84. La unidad de cálculo de distancias de los vectores de características representativos 85 calcula las distancias de acuerdo con el flujo de la figura 14, de manera similar a la forma en la que calcula las distancias la unidad de cálculo de distancias de los vectores superiores representativos 83. No obstante, el vector que es objetivo de cálculo es el vector de características representativo mencionado anteriormente. De manera similar a la unidad de cálculo de distancias de los vectores superiores representativos 83, este proceso tiene una gran compatibilidad con hardware tal como una GPU, y se lleva a cabo muy rápidamente.
La unidad de selección de las agrupaciones de características de imagen 86 se implementa principalmente mediante el dispositivo de computación paralela 14. La unidad de selección de las agrupaciones de características de imagen 86 selecciona una de la pluralidad de agrupaciones de características de imagen en base a la distancia entre el
5
10
15
20
25
30
35
40
45
50
55
vector de características de consulta y cada uno de una pluralidad de vectores de características representativos calculados mediante la unidad de cálculo de distancias de los vectores de características representativos 85. De manera más específica, por ejemplo, la unidad de selección de las agrupaciones de características de imagen 86 selecciona una agrupación de características de imagen representada por el vector de características representativo que está a mínima distancia con respecto al vector de características de consulta.
Destacar que, en esta realización, los vectores representativos tienen una estructura de árbol de dos etapas, tal como los vectores superiores representativos y los vectores de características representativos, aunque pueden tener una estructura de una etapa sin los vectores superiores representativos. En este caso, no son necesarios los procesos de la unidad de cálculo de distancias de los vectores superiores representativos 83 y la unidad de selección de las agrupaciones representativas 84, y la unidad de cálculo de distancias de los vectores de características representativos 85 lleva a cabo el cálculo de distancias para todos los vectores de características representativos. Como alternativa, los vectores representativos pueden tener una estructura de tres o más etapas.
[Selección de un vector de características de imagen]
Después de seleccionar una agrupación de características de imagen, la unidad de búsqueda de imágenes 52 calcula una distancia entre cada uno de la pluralidad de vectores de características de consulta y el vector de características de imagen 22 que pertenece a la agrupación de características de imagen seleccionada, y selecciona uno o una pluralidad de vectores de características de imagen 22 que se corresponden con el vector de características de consulta en base a la distancia (paso S104). Este proceso se lleva a cabo mediante la unidad de transferencia de los vectores de características de imagen 87, la unidad de cálculo de distancias de los vectores de características de imagen 88 y la unidad de selección de los vectores de características de imagen 89.
La unidad de transferencia de los vectores de características de imagen 87 se implementa principalmente mediante la unidad de almacenamiento 12 y el dispositivo de computación paralela 14. La unidad de transferencia de los vectores de características de imagen 87 transfiere la pluralidad de vectores de características de imagen 22 que pertenecen a la agrupación de características de imagen, seleccionada por la unidad de selección de las agrupaciones de características de imagen 86, desde la unidad de almacenamiento de las agrupaciones de vectores 71 hasta la memoria interna del dispositivo 45, a la que se puede acceder de manera común desde la pluralidad de procesadores 41. De manera similar a la unidad de transferencia de los vectores representativos 81, configurada para transferir, por ejemplo, el vector de características representativo, la unidad de transferencia de los vectores de características de imagen 87 dispone los datos del vector de características de imagen 22 de modo que permita a la pluralidad de procesadores 41 leer los datos almacenados en la memoria interna del dispositivo 45 en bloque.
La unidad de cálculo de distancias de los vectores de características de imagen 88 se implementa principalmente mediante el dispositivo de computación paralela 14. La unidad de cálculo de distancias de los vectores de características de imagen 88 calcula las distancias entre cada uno de la pluralidad de vectores de características de imagen 22 y el vector de características de imagen utilizando la pluralidad de procesadores paralelos 41. En este caso, el vector de características de imagen 22 utilizado para el cálculo es el vector de características de imagen 22 que pertenece a la agrupación de características de imagen seleccionada por la unidad de selección de las agrupaciones de características de imagen 86. Los datos se han transferido mediante la unidad de transferencia de los vectores de características de imagen 87 a la memoria interna del dispositivo 45. La unidad de cálculo de distancias de los vectores de características de imagen 88 calcula una distancia para cada vector de características de consulta, de acuerdo con el flujo de la figura 14, de manera similar a la forma en la que calcula las distancias la unidad de cálculo de distancias de los vectores superiores representativos 83. No obstante, el vector que es objetivo de cálculo es el vector de características de imagen 22. De manera similar a la unidad de cálculo de distancias de los vectores superiores representativos 83, este proceso tiene una gran compatibilidad con hardware tal como una GPU, y se lleva a cabo muy rápidamente.
La unidad de selección de los vectores de características de imagen 89 se implementa principalmente mediante el dispositivo de computación paralela 14. La unidad de selección de los vectores de características de imagen 89 selecciona la pluralidad de vectores de características de imagen 22, que se corresponden con cada uno de la pluralidad de vectores de características de consulta, en base a las proximidades entre la pluralidad de los vectores de características de consulta y la pluralidad de los vectores de características de imagen 22 que pertenecen a la agrupación de características de imagen seleccionada. En este ejemplo se utiliza una distancia como la proximidad. En este caso, la unidad de selección de los vectores de características de imagen 89 selecciona la pluralidad de vectores de características de imagen 22 que satisfacen la siguiente condición. La condición indica que se selecciona un vector de características de imagen 22 para una cantidad de características de consulta dada de cada una de una pluralidad de imágenes en las que se ha de buscar. Esta condición evita que una pluralidad de vectores de características de imagen 22, extraídos de una imagen dada, se correspondan con un vector de características de consulta.
La figura 15 es un diagrama que ilustra un ejemplo de una correspondencia entre el vector de características de consulta extraído de la imagen de consulta y el vector de características de imagen 22 extraído de la pluralidad de
5
10
15
20
25
30
35
40
45
50
55
60
imágenes en las que se ha de buscar. Un rectángulo ilustrado en el lado izquierdo de la figura 15 indica la imagen de consulta, y las marcas "*" incluidas en esta indican los vectores de características de consulta extraídos de la imagen de consulta. Cada uno de los rectángulos dispuesto verticalmente en el lado derecho de la figura 15 indica una imagen en la que se ha de buscar, y las marcas "*" respectivas incluidas en cada uno de los rectángulos indican el vector de características de imagen 22 extraído de la imagen. Tal como se ilustra en la figura 15, un vector de características de consulta se corresponde con únicamente un vector de características de imagen 22, entre una imagen de consulta dada y una de las imágenes en las que se ha de buscar. Mientras tanto, el vector de características de imagen 22 extraído de las demás imágenes en las que se ha de buscar puede existir con respecto al vector de características de consulta. Se debería sobreentender que algunas imágenes no incluyen el vector de características de imagen 22 que se corresponde con el vector de características de consulta y, por tanto, el número de vectores de características de imagen 22, que se corresponden con un vector de características de consulta dado, que se extraen de una imagen dada es uno o cero.
La figura 16 es un diagrama que ilustra un ejemplo de un flujo de procesamiento de la unidad de selección de los vectores de características de imagen 89. La unidad de selección de los vectores de características de imagen 89 lleva a cabo el procesamiento ilustrado en la figura 16 para cada vector de características de consulta. Asimismo, una lista de características ya seleccionadas, descrita posteriormente, se comparte entre todos los vectores de características de consulta con respecto a una imagen de consulta dada, y la lista de características ya seleccionadas se inicializa antes de que se lleve a cabo el procesamiento para el primer vector de características de consulta. La siguiente descripción consta del procesamiento para un vector de características de consulta dado.
En primer lugar, la unidad de selección de los vectores de características de imagen 89 obtiene los vectores de características de imagen 22 cuyas distancias desde el vector de características de consulta son más cortas que un valor umbral predeterminado, entre los vectores de características de imagen 22 que pertenecen a la agrupación seleccionada, y clasifica los vectores de características de imagen 22 obtenidos en base a la distancia (paso S301).
La figura 17 es un diagrama que ilustra un ejemplo de un caso de selección del vector de características de imagen 22 con relación a un vector de características de consulta. En la figura 17, el círculo de línea continua indica la agrupación seleccionada, el círculo negro en el centro del círculo de línea continua indica un vector representativo 241 (en concreto, las coordenadas del vector) de la agrupación, y los círculos blancos indican los vectores de características de imagen 22 incluidos en la agrupación. Los signos más indican los vectores de características de consulta. En el ejemplo de la figura 17, los vectores de características de imagen 221 y 223, que hay dentro de la línea discontinua alrededor del círculo blanco del vector de características de consulta 321, y cuya distancia desde un vector de características de consulta 321 está dentro de un rango del valor umbral, se obtienen con respecto al vector de características de consulta 321, y los vectores de características de imagen 221 y 223 obtenidos se clasifican. Asimismo, los vectores de características de imagen 222 y 223 se obtienen con respecto a un vector de características de consulta 322, y se clasifican. En este caso, se puede controlar la precisión de la búsqueda cambiando el valor umbral. De manera específica, un valor umbral más pequeño permite obtener menos vectores de características de imagen 22 como resultados de la búsqueda, mientras que un valor umbral más grande permite obtener el vector de características de imagen 22 dentro de un rango más amplio de resultados de la búsqueda. Destacar que, se seleccionan todos los vectores de características de imagen incluidos en la agrupación, cuando se fija el máximo valor umbral. Destacar que, se puede obtener un número predefinido de vectores de características de consulta en orden ascendente con la distancia, en lugar de en base a si la distancia está dentro de un rango o no. Destacar que, en la figura 17, para una comprensión simple, el vector representativo de la agrupación, los vectores de características de imagen incluidos en la agrupación y los vectores de características de consulta se ilustran utilizando un dibujo tridimensional, aunque en realidad, esos vectores no son bidimensionales sino de dimensión 128.
Posteriormente, la unidad de selección de los vectores de características de imagen 89 limpia e inicializa las imágenes que pertenecen a una lista de imágenes ya seleccionada (paso S302). Posteriormente, la unidad de selección de los vectores de características de imagen 89 obtiene el primer vector de características de imagen 22 como un objeto que se ha de procesar entre los vectores de características de imagen 22 clasificados (paso S303). Cuando el vector de características de imagen 22 que se ha de procesar no se ha extraído de una imagen incluida en la lista de imágenes ya seleccionada (N en el paso S304) y no está en la lista de características ya seleccionadas (N en el paso S305), la unidad de selección de los vectores de características de imagen 89 selecciona el vector de características de imagen 22 que se ha de procesar como uno que se corresponde con el vector de características de consulta (paso S306). A continuación, la unidad de selección de los vectores de características de imagen 89 añade el vector de características de imagen 22 seleccionado a la lista de características ya seleccionadas (paso S307), y añade la imagen de la cual se ha extraído el vector de características de imagen 22 seleccionado a la lista de imágenes ya seleccionadas (paso S308). Cuando el vector de características de imagen 22 que se ha de procesar se ha extraído de la imagen incluida en la lista de imágenes ya seleccionadas (Y en el paso S304) o está en la lista de características ya seleccionadas (Y en el paso S305), se omiten los procesos del paso S306 al paso S308.
Cuando el vector de características de imagen 22 que se ha de procesar es el último vector de características de
13
5
10
15
20
25
30
35
40
45
50
imagen 22 (Y en el paso S309), se finaliza el procesamiento para el vector de características de consulta, y cuando el vector de características de imagen 22 que se ha de procesar no es el último vector de características de imagen 22 (N en el paso S309), la unidad de selección de los vectores de características de imagen 89 obtiene el siguiente vector de características de imagen 22 como un objeto que se ha de procesar (paso S310), y se repite el paso S304 y los pasos posteriores.
De acuerdo con los procesos del paso S304 y similares, es posible suprimir un fenómeno donde se seleccionan una pluralidad de vectores de características de imagen 22 extraídos de una imagen para un vector de características de consulta dado. De acuerdo con los procesos del paso S305 y similares, es posible suprimir un fenómeno donde se selecciona, por ejemplo, el vector de características de imagen 223, ilustrado en la figura 17, una pluralidad de veces por la pluralidad de vectores de características de consulta. Dicho de otro modo, los vectores de características de imagen 22 seleccionados con respecto a un vector de características de consulta no se superponen con los vectores de características de imagen 22 seleccionados con respecto a otro vector de características de consulta. Como resultado, el vector de características de consulta extraído de la imagen de consulta y el seleccionado de los vectores de características de imagen 22 extraído de cualquiera de las imágenes en las que se ha de buscar se corresponden entre sí a nivel individual.
La figura 18 es un diagrama que ilustra un ejemplo de una correspondencia entre una característica local dentro de una imagen de consulta (que se corresponde con el vector de características de consulta) y una característica local dentro de una imagen en la que se ha de buscar (que se corresponde con el vector de características de imagen 22). En la figura 18, el rectángulo ilustrado en el lado superior indica la imagen de consulta, y el rectángulo ilustrado en el lado inferior indica la imagen en la que se ha de buscar. Una pluralidad de triángulos incluidos en esas imágenes indica características locales similares entre sí. De esta manera, la característica local dentro de la imagen de consulta y la característica local dentro de la imagen en la que se ha de buscar se corresponden entre sí a nivel individual.
La figura 19 es un diagrama que ilustra un ejemplo comparativo de la correspondencia entre la característica local dentro de la imagen de consulta y la característica local dentro de la imagen en la que se ha de buscar. La figura 19 ilustra un ejemplo en el que no se llevan a cabo los procesos de los pasos S304 y S305. Este caso está relacionado con una correspondencia de varios con varios, lo que aumenta de manera drástica el número de vectores de características de imagen 22 seleccionados.
Tal como es evidente a partir de la comparación entre la figura 18 y la figura 19, el procesamiento mencionado anteriormente puede evitar que se extraigan, entre la imagen de consulta y una de las imágenes en las que se ha de buscar, más vectores de características de imagen 22 con un número diferente de las cantidades de características locales además de aquellos que tienen el mismo número. Esto puede reducir, por medio del procesamiento de generación de puntuaciones descrito más adelante, una posibilidad de que se pueda seleccionar, como resultado de la búsqueda, una imagen en la que el número de características locales sea muy diferente del número de características locales incluidas en la imagen de consulta.
[Generación de una puntuación para cada imagen]
Cuando se selecciona el vector de características de imagen 22, la unidad de generación de las puntuaciones de imagen 90, incluida en la unidad de búsqueda de imágenes 52, genera una puntuación para cada una de las imágenes en las que se ha de buscar (paso S105). La unidad de generación de las puntuaciones de imagen 90 se implementa principalmente mediante el dispositivo de computación paralela 14. La unidad de generación de las puntuaciones de imagen 90 calcula un elemento de puntuación para cada una de una pluralidad de imágenes en base a las proximidades entre la pluralidad seleccionada de los vectores de características de imagen 22, que indican la características de la imagen, y el vector de características de consulta, que se corresponde con el vector de características de imagen 22 seleccionado, y genera la puntuación de imagen en base a una suma total de los elementos de puntuación.
La unidad de generación de las puntuaciones de imagen 90 utiliza la siguiente expresión para calcular un elemento de puntuación se para cada uno de los vectores de características de imagen 22 seleccionado.
[Expresión 1]
1
se=------------
ln {dist + e)
En esta expresión, "dist" representa una distancia entre el vector de características de imagen 22 y el vector de características de consulta, que se corresponde con el vector de características de imagen 22, "ln" representa un logaritmo natural y "e" representa una base del logaritmo natural. Con esto, el elemento de puntuación se del vector de características de imagen 22, que tiene un vector de características de consulta correspondiente, cambia de
5
10
15
20
25
30
35
40
45
50
acuerdo con la distancia. Posteriormente, para cada una de las imágenes, la unidad de generación de las puntuaciones de imagen 90 utiliza una suma total de los elementos de puntuación s de los vectores de características de imagen 22, extraídos de la imagen y seleccionados por la unidad de selección de los vectores de características de imagen 89, para calcular una puntuación de la imagen si, tal como en la siguiente expresión.
imagen1
En esta expresión, "kn" representa el número de vectores de características de imagen 22 extraídos de la imagen. La puntuación de imagen, que se genera mediante estas expresiones, es una puntuación generada teniendo en cuenta no solo la frecuencia con la que se selecciona el vector de características de imagen 22 para cada una de las imágenes, sino también la proximidad entre cada vector de características de consulta y el vector de características de imagen 22 correspondiente, que puede mejorar adicionalmente la precisión de la búsqueda.
La figura 20 es un diagrama que ilustra un ejemplo de variación de las distancias entre el vector de características de consulta y los vectores de características de imagen 22. Por ejemplo, en un caso donde, como en la figura 20, hay una imagen en la que un vector de características de consulta 324 está cerca de un vector de características de imagen 224, seleccionado con respecto a este, y una imagen en la que un vector de características de consulta 325 está cerca de un vector de características de imagen 225, seleccionado con respecto a este, por lo tanto las puntuaciones se calculan de manera convencional con la misma ponderación, pero de acuerdo con el procesamiento mencionado anteriormente es posible calcular la puntuación en la que se refleje dicha diferencia y llevar a cabo una búsqueda en la que queden reflejadas además las similitudes en las características locales.
[Selección de una imagen]
Cuando se genera la puntuación de imagen, la unidad de selección de las imágenes resultado de la búsqueda 91, incluida en la unidad de búsqueda de imágenes 52, selecciona la imagen que será el resultado de la búsqueda (paso S106). La unidad de de selección de las imágenes resultado de la búsqueda 91 se implementa principalmente mediante el dispositivo de computación paralela 14. La unidad de selección de las imágenes resultado de la
búsqueda 91 selecciona al menos una de la pluralidad de imágenes en las que se ha de buscar como el resultado
de la búsqueda, en base a la puntuación de imagen calculada mediante la unidad de generación de las
puntuaciones de imagen 90. De manera específica, la unidad de selección de las imágenes resultado de la
búsqueda 91 clasifica las puntuaciones de imagen en orden descendente del valor, y selecciona un cierto número de imágenes que tienen las puntuaciones de imagen más altas, o selecciona las imágenes que tienen las puntuaciones de imagen más altas que un valor predeterminado.
La figura 21 es un diagrama que ilustra un ejemplo de los resultados de la clasificación de las puntuaciones de imagen. Cuando se utiliza la bandera turca, que incluye un símbolo de una estrella, como la imagen de consulta, tal como se ilustra en la figura 21, se suprime un fenómeno donde sube la puntuación para una imagen del estandarte estrellado de los Estados Unidos, que incluye un gran número de símbolos de estrella. Cuando se selecciona la imagen, la unidad de selección de las imágenes resultado de la búsqueda 91 envía la información de la imagen seleccionada al servidor web 2. El servidor web 2 envía la información para que se muestre la imagen de la búsqueda en el dispositivo cliente 3.
Destacar que, los procesos de la unidad de cálculo de distancias de los vectores superiores representativos 83 a la unidad de cálculo de distancias de los vectores de características de imagen 88 son totalmente compatibles con el hardware para llevar a cabo computación paralela, tal como una GPU, y se puede aprovechar al máximo la capacidad de calculo paralelo de la GPU. Asimismo, los procesos posteriores también permiten en cierta medida el procesamiento paralelo, y se puede llevar a cabo el procesamiento a una velocidad más alta que cuando se utiliza la CPU 11. Por lo tanto, es posible disfrutar en cierto grado de un efecto de acortamiento del tiempo de procesamiento gracias a la GPU. Asimismo, la CPU 11 puede ejecutar una parte de esos procesos.
[Segundo ejemplo]
A diferencia de la primera realización, un sistema de búsqueda de imágenes de acuerdo con un segundo ejemplo de la presente invención no determina la distancia entre el vector de características de imagen 22 y el vector de características de consulta, después de que se selecciona la agrupación de características de imagen. Este método es un método de búsqueda en parte similar al método BoF. La siguiente descripción consta principalmente de las diferencias con respecto a la primera realización. Destacar que, las configuraciones de los dispositivos que forman el sistema de búsqueda de imágenes ilustrado en la figura 1, y los puntos en los que el dispositivo de búsqueda de imágenes 1 incluye la unidad de generación de índices 51 y la unidad de búsqueda de imágenes 52, son los mismos
5
10
15
20
25
30
35
40
45
50
55
que aquellos de la primera realización.
[Generación de un índice]
De la misma forma que en la primera realización, la unidad de generación de índices 51 incluye la unidad de extracción de los vectores de características de imagen 61 y la unidad de generación de las agrupaciones 62. La unidad de extracción de los vectores de características de imagen 61 extrae la pluralidad de vectores de características de imagen 22 de cada una de la pluralidad de imágenes en las que se ha de buscar. La unidad de generación de las agrupaciones 62 clasifica los vectores de características de imagen 22 extraídos en una pluralidad de agrupaciones de características de imagen. Asimismo, la unidad de generación de las agrupaciones 62 almacena los vectores representativos de esas agrupaciones de características de imagen en una unidad de almacenamiento de vectores representativos 172, y almacena la información relativa a los vectores de características de imagen 22, que pertenecen a la agrupación de características de imagen, en una unidad de almacenamiento de las cantidades de características de imagen de las agrupaciones 171. Se puede utilizar el mismo método que en la primera realización para la clasificación en agrupaciones de características de imagen. No obstante, la unidad de generación de agrupaciones 62 almacena la información correspondiente al índice del vector de características de imagen 22, de manera más específica, la información de identificación en la imagen de la cual se han extraído los vectores de características de imagen, en la unidad de almacenamiento de las cantidades de características de imagen de las agrupaciones 171 en lugar de los elementos respectivos de los vectores de características de imagen 22. La unidad de almacenamiento 12 configura, de manera específica, la unidad de almacenamiento de las cantidades de características de imagen de las agrupaciones 171 y la unidad de almacenamiento de los vectores representativos 172.
La figura 22 es un diagrama que ilustra un ejemplo de los datos almacenados en la unidad de almacenamiento de las cantidades de características de imagen de las agrupaciones 171. La unidad de almacenamiento de las cantidades de características de imagen de las agrupaciones 171 almacena una pluralidad de registros, donde cada uno tiene elementos que incluyen un número de agrupación, que sirve como información de identificación de la agrupación de características de imagen, y un número de imagen que sirve como información de identificación de la imagen. En este caso, un registro se corresponde con un vector de características de imagen 22. Cuando hay una pluralidad de vectores de características de imagen extraídos de una imagen dada en la misma agrupación de características de imagen, el número de registros que tienen el mismo número de agrupación y el mismo número de imagen es el número de vectores de características de imagen 22.
[Procesamiento para la búsqueda y recuperación de imágenes]
La figura 23 es un diagrama funcional de bloques que ilustra una configuración funcional de la unidad de búsqueda de imágenes 52 de acuerdo con el segundo ejemplo. La unidad de búsqueda de imágenes 52 incluye de manera funcional una unidad de obtención de los vectores de características de consulta 181, una unidad de selección de las agrupaciones de características de imagen 182, una unidad de selección de los vectores de características de imagen 183, una unidad de generación de las puntuaciones de imagen 184 y una unidad de selección de las imágenes resultado de la búsqueda 185.
La figura 24 es un diagrama que ilustra un esquema del procesamiento de la unidad de búsqueda de imágenes 52 de acuerdo con el segundo ejemplo. La siguiente descripción consta de las funciones respectivas incluidas en la unidad de búsqueda de imágenes 52, haciendo referencia a un flujo de procesamiento ilustrado en la figura 24.
[Obtención de un vector de características de consulta]
La unidad de obtención de los vectores de características de consulta 181 se implementa principalmente mediante la CPU 11, la unidad de almacenamiento 12 y el dispositivo de computación paralela 14. En primer lugar, la unidad de obtención de los vectores de características de consulta 181 obtiene una o una pluralidad de vectores de características de consulta a partir de la imagen de consulta (paso S1101). Este proceso es el mismo que el proceso que lleva a cabo la unidad de obtención de los vectores de características de consulta 82 en la primera realización.
[Selección de una agrupación de características de imagen]
La unidad de selección de las agrupaciones de características de imagen 182 se implementa principalmente mediante la CPU 11, la unidad de almacenamiento 12 y el dispositivo de computación paralela 14. Cuando se obtiene el vector de características de consulta, la unidad de selección de las agrupaciones de características de imagen 182 selecciona la pluralidad de agrupaciones de características de imagen que se corresponden respectivamente con la pluralidad de vectores de características de consulta (paso S1102). De manera más específica, la unidad de selección de las agrupaciones de características de imagen 182 selecciona, con respecto a cada uno de los vectores de características de consulta, la agrupación de características de imagen que tiene el vector representativo que está más cercano al vector de características de consulta. A modo de un método de cálculo más detallado, el cálculo de distancias se puede llevar a cabo utilizando la CPU 11 o, tal como se describe en la primera realización, la agrupación de características de imagen se puede seleccionar utilizando el dispositivo
5
10
15
20
25
30
35
40
45
50
55
de computación paralela 14 y la estructura de árbol del vector representativo. Destacar que, se puede suponer que la agrupación de características de imagen seleccionada se corresponde con una palabra visual utilizada en el método BoF.
[Selección de un vector de características de imagen]
La unidad de selección de los vectores de características de imagen 183 se implementa principalmente mediante la CPU 11 y en la unidad de almacenamiento 12. La unidad de selección de los vectores de características de imagen 183 selecciona el vector de características de imagen 22, que se corresponde con cada uno de los vectores de características de consulta, de entre los vectores de características de imagen 22 que pertenecen a la agrupación de características de imagen seleccionada con respecto a cada uno de los vectores de características de consulta (paso S1103). En este caso, la unidad de selección de los vectores de características de imagen 89 selecciona la pluralidad de vectores de características de imagen 22 que satisfacen las siguientes condiciones. Una condición indica que, para cada una de la pluralidad de imágenes en las que se ha de buscar, el número de vectores de características de imagen 22 seleccionados con respecto a un vector de características de consulta dado, de entre la pluralidad de vectores de características de imagen 22 extraídos de la imagen, es uno. La otra condición indica que el vector de características de imagen 22, seleccionado con respecto a cualquiera de los vectores de características de consulta, no se superpone con el vector de características de imagen 22 seleccionado con respecto a otro vector de características de consulta. La unidad de selección de los vectores de características de imagen 183 selecciona, para cada uno de los vectores de características de consulta, todos los vectores de características de imagen 22 que satisfacen las condiciones mencionadas anteriormente, tal como el vector de características de imagen 22 que se corresponde con el vector de características de consulta.
A modo de método de procesamiento específico, por ejemplo, el proceso del paso S301, entre los procesos descritos en la primera realización que hacen referencia a la figura 16, se puede cambiar para obtener todos los vectores de características de imagen 22 incluidos en la agrupación de características de imagen seleccionada con respecto al vector de características de consulta. Destacar que, en este ejemplo, el propio vector de características de imagen 22 no se almacena en la unidad de almacenamiento de las cantidades de características de imagen de las agrupaciones 171, y no se lleva a cabo el cálculo de distancias o la clasificación en base a la distancia.
La figura 25 es un diagrama para ilustrar una distribución de los vectores de características de imagen 22 dentro de un tercer agrupamiento de características de imagen y la selección realizada por los vectores de características de consulta. La figura 25 indica el número de vectores de características de imagen 22 para cada una de las imágenes, dentro de una agrupación de características de imagen dada (en este caso, la agrupación de características de imagen que tiene el número de agrupación "3") . En la figura 25, el eje horizontal indica el número de imagen, y el eje vertical indica el número de vectores de características de imagen 22. Cuando un vector de características de consulta selecciona por primera vez la agrupación de características de imagen que tiene el número de agrupación "3", se selecciona un vector de características de imagen 22 extraído de cada una de las imágenes que tienen los números de imagen "3", "4", "5", "7" y "16". Asimismo, cuando otro vector de características de consulta selecciona por segunda vez la agrupación de características de imagen que tiene el número de agrupación "3", se selecciona un vector de características de imagen 22 extraído de cada una de las imágenes que tienen los números de imagen "4" y "16", de entre los vectores de características de imagen 22 restantes.
[Generación de una puntuación para cada imagen]
La unidad de generación de puntuaciones de imagen 184 se implementa principalmente mediante la CPU 11 y la unidad de almacenamiento 12. La unidad de generación de puntuaciones de imagen 184 genera, para cada una de al menos una parte de la pluralidad de imágenes, la puntuación de imagen, de la imagen, en base a la frecuencia de aparición del vector de características de imagen 22 seleccionado dentro de la imagen correspondiente (paso S1104). Por ejemplo, la unidad de generación de puntuaciones de imagen 184 genera, para cada una de las imágenes, la puntuación de imagen contando el número de vectores de características de imagen 22 extraídos de la imagen y seleccionados con respecto al vector de características de consulta.
[Selección de una imagen]
La unidad de selección de las imágenes resultado de la búsqueda 185 se implementa principalmente mediante la CPU 11 y la unidad de almacenamiento 12. La unidad de selección de las imágenes resultado de la búsqueda 185 selecciona la imagen que será el resultado de la búsqueda (paso S1105). De manera específica, de la misma forma que la unidad de selección de las imágenes resultado de la búsqueda 91 en la primera realización, la unidad de selección de las imágenes resultado de la búsqueda 185 selecciona, como el resultado de la búsqueda, al menos una de la pluralidad de imágenes en las que se ha de buscar en base a la puntuación de imagen.
Tal como se describe anteriormente, incluso cuando no se calcula la distancia entre el vector de características de imagen 22 y el vector de características de consulta, después de que se selecciona la agrupación de características de imagen, se produce un efecto tal que los vectores de características de consulta, extraídos de la imagen de consulta, se asocian con el vector de características de imagen 22 seleccionado de entre los vectores de
17
5
10
15
20
25
30
35
40
45
50
55
características de imagen 22, extraídos de cualquiera de las imágenes en las que se ha de buscar, a nivel individual, y se suprime la posibilidad de que se pueda seleccionar como el resultado de la búsqueda una imagen, en la que el número de características locales incluidas sea muy diferente del número de características locales incluidas en la imagen de consulta.
[Tercer ejemplo]
Tal como en el segundo ejemplo, un sistema de búsqueda de imágenes de acuerdo con un tercer ejemplo de la presente invención no determina la distancia entre el vector de características de imagen 22 y el vector de características de consulta, después de que se selecciona la agrupación de características de imagen. En este ejemplo, se obtiene el mismo efecto que el del segundo ejemplo al utilizar un motor de búsqueda de texto completo existente, tal como se utiliza en el método BoF. La siguiente descripción consta principalmente de las diferencias con respecto al segundo ejemplo. Destacar que, las configuraciones de los dispositivos que forman el sistema de búsqueda de imágenes ilustrado en la figura 1, y las configuraciones funcionales ilustradas en la figura 2 y la figura 23 son las mismas que aquellas del segundo ejemplo.
[Generación de un índice]
En el tercer ejemplo, la unidad de generación de las agrupaciones 62 almacena una matriz traspuesta, que se utiliza generalmente en el método BoF en la unidad de almacenamiento de las cantidades de características de imagen de las agrupaciones 171. La matriz traspuesta utilizada en el método BoF representa una matriz formada por una columna que se corresponde con la imagen y una fila que se corresponde con la palabra visual. En este ejemplo, una cadena de caracteres que identifica la fila de la matriz se denomina como "identificador de palabra visual". En este caso, el identificador de palabra visual se obtiene adjuntando la información a un número de identificación de la agrupación de características de imagen, que se corresponde con la palabra visual. La información indica una posición de orden del vector de características de imagen 22, que se corresponde con una imagen dada en la agrupación de características de imagen relacionada con la extracción del vector de características de imagen 22.
La figura 26 es un diagrama que ilustra un ejemplo de la matriz traspuesta utilizada para generar la puntuación de imagen. El identificador de palabra visual que no tiene guión es el mismo que el de un número de agrupación de la agrupación de características de imagen. Cuando hay un "1" en una celda definida por la fila de la palabra visual y la columna de un número de imagen dado, se tiene el primer vector de características de imagen 22, que se extrae de la imagen indicada por el número de imagen, y pertenece a la agrupación de características de imagen. Asimismo, con respecto al identificador de palabra visual que tiene guión, el número antes del guión indica el número de agrupación, de la agrupación de características de imagen, y el número después del guión indica un número secuencial del vector de características de imagen 22 dentro de la imagen. Por ejemplo, cuando hay un "1" en una celda definida por la fila que tiene el identificador de palabra visual "3-2" y la columna que tiene el número de imagen "4", en la tercera agrupación de características de imagen se tiene el segundo vector de características de imagen 22 dentro de la cuarta imagen. La celda en la que hay un "1" se corresponde con el vector de características de imagen 22. Se debería sobreentender que no es necesario utilizar un guión para la expresión del identificador de palabra visual. El identificador de palabra visual se puede expresar de cualquier forma siempre que se puedan identificar los vectores de características de imagen 22 que pertenecen a la misma agrupación y que se extraen de la misma imagen.
Asimismo, "muchos" dentro del identificador de palabra visual "3-muchos" indica un valor umbral predefinido dentro de la agrupación (en este caso, "3") y los números secuenciales posteriores. Cuando hay un "1" en una celda definida por la fila que tiene el identificador de palabra visual "3-muchos" y la columna que tiene el número de imagen "4", en la tercera agrupación de características de imagen se tienen los vectores de características de imagen 22 en una posición de orden predeterminada (tercera) y en las posiciones de orden posteriores. En este ejemplo no se permite que haya "3-4" y las palabras visuales posteriores. Esto indica que se borra la información sobre el cuarto vector de características de imagen 22 y los vectores de características de imagen 22 posteriores. Asimismo, esto es equivalente a que el número de las cantidades de características de imagen, que se corresponde con cualquiera de la pluralidad de imágenes en las que se ha de buscar, entre los vectores de características de imagen 22 que pertenecen a una agrupación de características de imagen dada, no excede el valor umbral dentro de la agrupación. La unidad de generación de las agrupaciones 62 borra el vector de características de imagen 22 que excede el valor umbral dentro de la agrupación, entre los vectores de características de imagen 22 que pertenecen a una agrupación de características de imagen dada, y que se corresponde con cualquiera de la pluralidad de imágenes en las que se ha de buscar de la agrupación de características de imagen, y almacena un resultado de esto en la unidad de almacenamiento de las cantidades de características de imagen de las agrupaciones 171.
[Procesamiento para la búsqueda y recuperación de imágenes]
La figura 27 es un diagrama que ilustra un esquema de procesamiento de la unidad de búsqueda de imágenes 52 de acuerdo con el tercer ejemplo. La siguiente descripción consta principalmente de las diferencias con respecto al
5
10
15
20
25
30
35
40
45
50
segundo ejemplo, haciendo referencia a un flujo de procesamiento ilustrado en la figura 27.
En primer lugar, la unidad de obtención de los vectores de características de consulta 181 obtiene una o una pluralidad de vectores de características de consulta a partir de la imagen de consulta (paso S2101). Posteriormente, la unidad de selección de las agrupaciones de características de imagen 182 selecciona la pluralidad de agrupaciones de características de imagen que se corresponden respectivamente con la pluralidad de vectores de características de consulta (paso S2102). Estos procesos son los mismos que aquellos del segundo ejemplo y, por tanto, se omite su descripción.
Posteriormente, la unidad de selección de los vectores de características de imagen 183 genera el identificador de palabra visual, en base al número de agrupación de la agrupación de características de imagen seleccionada, y una posición de orden en la que se selecciona la agrupación de características de imagen (paso S2103). Esta regla de creación es la misma que la regla de generación del identificador de palabra visual en la matriz traspuesta. De manera específica, el número de agrupación de la agrupación de características de imagen se establece como el identificador de palabra visual, cuando la posición ordenada en la que se selecciona la agrupación de características de imagen es "1", el número de agrupación al cual se añaden el guión y la posición ordenada se establece como el identificador de palabra visual, cuando la posición de orden es "2" para "(valor umbral de las características)-1", y el número de agrupación al cual se añade "-muchos" se establece como el identificador de palabra visual cuando la posición de orden es el valor umbral de las características.
Posteriormente, la unidad de selección de los vectores de características de imagen 183 selecciona el vector de características de imagen 22, que se corresponde con el identificador de palabra visual, utilizando la matriz traspuesta (paso S2104). La selección del vector de características de imagen 22 se lleva a cabo de manera específica mediante la obtención de la celda que contiene "1" y del número de imagen de la celda. Asimismo, la unidad de selección de los vectores de características de imagen 183 genera la puntuación de la imagen utilizando el número de imagen seleccionado y un valor numérico dentro de la celda (paso S2105). A continuación, la unidad de selección de los vectores de características de imagen 183 selecciona la imagen que será resultado de la búsqueda en base a la puntuación (paso S2106).
Los procesos del paso S2104 al paso S2106 se pueden llevar a cabo mediante un motor de búsqueda de texto completo conocido. Ejemplos de este motor de procesamiento incluyen "Solr". Mediante la creación de la matriz traspuesta mencionada anteriormente, el valor, dentro de la celda seleccionada, de una imagen dada con relación a un vector de características de consulta dado está limitado a "1". En consecuencia, los vectores de características de consulta extraídos de la imagen de consulta se pueden asociar con los vectores de características de imagen 22 seleccionados para una imagen dada a nivel individual. Esto produce un efecto de suprimir una posibilidad de que se pueda seleccionar, como resultado de la búsqueda, la imagen en la que el número de características locales sea muy diferente del número de características locales incluidas en la imagen de consulta.
Lista de símbolos de referencia
1 dispositivo de búsqueda de imágenes, 2 servidor web, 3 dispositivo cliente, 11 CPU, 12 unidad de almacenamiento, 13 unidad de comunicación, 14 dispositivo de computación paralela, 15 bus, 22, 221, 222, 223, 224, 225 vector de características de imagen, 40 unidad de ejecución paralela, 41 procesador, 42 unidad de instrucción, 43 memoria de alta velocidad, 45 memoria interna del dispositivo, 51 unidad de generación de índices, 52 unidad de búsqueda de imágenes, 61 unidad de extracción de los vectores de características de imagen, 62 unidad de generación de las agrupaciones, 71 unidad de almacenamiento de las agrupaciones de vectores, 72 unidad de almacenamiento de los vectores representativos en estructura de árbol, 81 unidad de transferencia de los vectores representativos, 82, 181 unidad de obtención de los vectores de características de consulta, 83 unidad de cálculo de distancias de los vectores superiores representativos, 84 unidad de selección de las agrupaciones representativas, 85 unidad de cálculo de distancias de los vectores de características representativos, 86, 182 unidad de selección de las agrupaciones de características de imagen, 87 unidad de transferencia de los vectores de características de imagen, 88 unidad de cálculo de distancias de los vectores de características de imagen, 89, 183 unidad de selección de los vectores de características de imagen, 90, 184 unidad de generación de puntuaciones de imagen, 91, 185 unidad de selección de las imágenes resultado de la búsqueda, 171 unidad de almacenamiento de las cantidades de características de imagen de las agrupaciones, 172 unidad de almacenamiento de los vectores representativos, 241 vector representativo, 321, 322, 324, 325 vector de características de consulta.

Claims (9)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    REIVINDICACIONES
    1. Un dispositivo de búsqueda de imágenes (1), que comprende:
    un medio de obtención de los vectores de características de consulta (82) para obtener una pluralidad de vectores de características de consulta a partir de una imagen de consulta, donde cada vector de características de consulta indica una característica local de la imagen de consulta; y
    un medio de selección de los vectores de características de imagen (89) para seleccionar, a partir de una imagen objetivo de búsqueda, una pluralidad de vectores de características de imagen, donde la pluralidad de vectores de características de imagen indica respectivamente una pluralidad de características locales de la imagen objetivo de búsqueda,
    donde la imagen objetivo de búsqueda es una de una pluralidad de imágenes objetivo de búsqueda en las que se ha de buscar, que están almacenadas a priori en medios de almacenamiento (12), y
    donde el dispositivo de búsqueda de imágenes (1) se caracteriza por que:
    el medio de selección de los vectores de características de imagen (89) se configura de modo que seleccione una pluralidad de vectores de características de imagen para cada vector de características de consulta de la imagen de consulta,
    donde, para un vector de características de consulta dado, la pluralidad de vectores de características de imagen son vectores de características de imagen que no se seleccionan con relación a otros vectores de características de consulta dentro de la pluralidad de vectores de características de consulta para la imagen de consulta, siendo los demás vectores de características de consulta diferentes del vector de características de consulta dado; y
    donde el dispositivo de búsqueda de imágenes (1) comprende:
    un medio de generación de puntuaciones (90) con el fin de generar una puntuación de imagen para cada imagen objetivo de búsqueda en base a una suma total de elementos de puntuación, donde cada elemento de puntuación depende de las proximidades entre cada vector de características de consulta y la pluralidad seleccionada correspondiente de vectores de características de imagen; y
    un medio de selección de imágenes (91) para seleccionar al menos una imagen objetivo de búsqueda de la pluralidad de imágenes objetivo de búsqueda en base a la puntuación de imagen.
  2. 2. El dispositivo de búsqueda de imágenes (1) de acuerdo con la reivindicación 1, donde el medio de selección de los vectores de características de imagen (89) selecciona, para cada uno de la pluralidad de vectores de características de consulta, una pluralidad de vectores de características de imagen cuya distancia desde la pluralidad de vectores de características de consulta sea menor que un valor umbral predeterminado, de entre una pluralidad de vectores de características de imagen que indican respectivamente una pluralidad de características locales, de cada una de una pluralidad de imágenes objetivo de búsqueda en las que se ha de buscar y que se almacenan a priori en los medios de almacenamiento (12) para cada una de la pluralidad de imágenes objetivo de búsqueda.
  3. 3. El dispositivo de búsqueda de imágenes (1) de acuerdo con la reivindicación 1, donde el medio de selección de los vectores de características de imagen (89) selecciona, para cada uno de la pluralidad de vectores de características de consulta, unos vectores de características de imagen de los que se determina previamente un número en orden ascendente de la distancia de entre una pluralidad de vectores de características de imagen que indican respectivamente una pluralidad de características locales, de cada una de una pluralidad de imágenes objetivo de búsqueda en las que se ha de buscar y que se almacenan a priori en los medios de almacenamiento (12) para cada una de la pluralidad de imágenes objetivo de búsqueda.
  4. 4. El dispositivo de búsqueda de imágenes (1) de acuerdo con cualquiera de las reivindicaciones 1, 2 o 3, donde el medio de selección de los vectores de características de imagen (89) selecciona, para cada uno de la pluralidad de vectores de características de consulta, no más de un vector de características de imagen de entre una pluralidad de vectores de características de imagen que indican respectivamente una pluralidad de características locales, de cada una de una pluralidad de imágenes objetivo de búsqueda en las que se ha de buscar y que se almacenan a priori en los medios de almacenamiento (12) para cada una de la pluralidad de imágenes objetivo de búsqueda.
  5. 5. El dispositivo de búsqueda de imagen (1) de acuerdo con cualquiera de las reivindicaciones 1, 2, 3 o 4, que comprende, además:
    un medio de selección de las agrupaciones (84) para seleccionar una agrupación correspondiente a cada uno de la pluralidad de vectores de características de consulta de una pluralidad de agrupaciones, en las que se clasifica la
    5
    10
    15
    20
    25
    30
    35
    40
    45
    pluralidad de vectores de características de imagen almacenados en los medios de almacenamiento (12),
    donde el medio de selección de los vectores de características de imagen (89) selecciona el vector de características de imagen para cada uno de la pluralidad de los vectores de características de consulta, a partir de los vectores de características de imagen que pertenecen a la agrupación seleccionada.
  6. 6. El dispositivo de búsqueda de imágenes (1) de acuerdo con cualquiera de las reivindicaciones 1, 2, 3, 4 o 5, donde la proximidad entre cada uno de la pluralidad seleccionada de vectores de características de imagen y el vector de características de consulta, que se corresponde con el vector de características de imagen seleccionado, es una distancia entre el correspondiente de los vectores de características de imagen seleccionado y el vector de características de consulta.
  7. 7. Un programa para hacer que un ordenador (1):
    obtenga una pluralidad de vectores de características de consulta a partir de una imagen de consulta, donde cada vector de características de consulta indica una característica local de la imagen de consulta;
    seleccione, a partir de una imagen objetivo de búsqueda, una pluralidad de vectores de características de imagen, donde la pluralidad de vectores de características de imagen indica respectivamente una pluralidad de características locales de la imagen objetivo de búsqueda,
    donde la imagen objetivo de búsqueda es una de una pluralidad de imágenes objetivo de búsqueda en las que se ha de buscar, que están almacenadas a priori en medios de almacenamiento (12), y
    donde el programa se caracteriza por que el programa es para hacer que el ordenador (1):
    seleccione una pluralidad de vectores de características de imagen para cada vector de características de consulta de la imagen de consulta,
    donde, para un vector de características de consulta dado, la pluralidad de vectores de características de imagen son vectores de características de imagen que no se seleccionan con relación a otros vectores de características de consulta dentro de la pluralidad de vectores de características de consulta para la imagen de consulta, siendo los demás vectores de características de consulta diferentes del vector de características de consulta dado; y
    donde el programa es para hacer que el ordenador (1):
    genere una puntuación de imagen para cada imagen objetivo de búsqueda en base a una suma total de elementos de puntuación, donde cada elemento de puntuación depende de las proximidades entre cada vector de características de consulta y la pluralidad seleccionada correspondiente de vectores de características de imagen; y
    seleccione al menos una imagen objetivo de búsqueda de la pluralidad de imágenes objetivo de búsqueda en base a la puntuación de imagen.
  8. 8. Un método de búsqueda de imágenes, que comprende:
    obtener una pluralidad de vectores de características de consulta a partir de una imagen de consulta, donde cada vector de consulta indica una característica local de la imagen de consulta;
    seleccionar, a partir de una imagen objetivo de búsqueda, una pluralidad de vectores de características de imagen, donde la pluralidad de vectores de características de imagen indica respectivamente una pluralidad de características locales de la imagen objetivo de búsqueda,
    donde la imagen objetivo de búsqueda es una de una pluralidad de imágenes objetivo de búsqueda en las que se ha de buscar, que están almacenadas a priori en medios de almacenamiento (12), y
    donde el método se caracteriza por que el método comprende:
    seleccionar una pluralidad de vectores de características de imagen para cada vector de características de consulta de la imagen de consulta,
    donde, para un vector de características de consulta dado, la pluralidad de vectores de características de imagen son vectores de características de imagen que no se seleccionan con relación a otros vectores de características de consulta dentro de la pluralidad de vectores de características de consulta para la imagen de consulta, siendo los demás vectores de características de consulta diferentes del vector de características de consulta dado; y
    donde el método comprende:
    generar una puntuación de imagen para cada imagen objetivo de búsqueda en base a una suma total de elementos
    21
    5
    10
    15
    20
    25
    de puntuación, donde cada uno depende de las proximidades entre cada vector de características de consulta y la pluralidad seleccionada correspondiente de vectores de características de imagen; y
    seleccionar al menos una imagen objetivo de búsqueda de la pluralidad de imágenes objetivo de búsqueda en las que se ha de buscar en base a la puntuación de imagen.
  9. 9. Un soporte de almacenamiento legible por ordenador que tiene almacenado en este un programa para hacer que un ordenador (1):
    obtenga una pluralidad de vectores de características de consulta a partir de una imagen de consulta, donde cada vector de características de consulta indica una característica local de la imagen de consulta;
    seleccione, a partir de una imagen objetivo de búsqueda, una pluralidad de vectores de características de imagen, donde la pluralidad de vectores de características de imagen indica respectivamente una pluralidad de características locales de la imagen objetivo de búsqueda,
    donde la imagen objetivo de búsqueda es una de una pluralidad de imágenes objetivo de búsqueda en las que se ha de buscar, que están almacenadas a priori en los medios de almacenamiento (12), y
    donde el soporte de almacenamiento legible por ordenador se caracteriza por que el programa almacenado en este es para hacer que el ordenador (1):
    seleccione una pluralidad de vectores de características de imagen para cada vector de características de consulta de la imagen de consulta,
    donde, para un vector de características de consulta dado, la pluralidad de vectores de características de imagen son vectores de características de imagen que no se seleccionan con relación a otros vectores de características de consulta dentro de la pluralidad de vectores de características de consulta para la imagen de consulta, siendo los demás vectores de características de consulta diferentes del vector de características de consulta dado; y
    donde el programa almacenado en el soporte de almacenamiento legible por ordenador es para hacer que el ordenador (1):
    genere una puntuación de imagen para cada imagen objetivo de búsqueda en base a una suma total de elementos de puntuación, donde cada elemento de puntuación depende de las proximidades entre cada vector de características de consulta y la pluralidad seleccionada correspondiente de vectores de características de imagen; y
    seleccione al menos una imagen objetivo de búsqueda de la pluralidad de imágenes objetivo de búsqueda en base a la puntuación de imagen.
ES13769777.7T 2012-03-29 2013-03-29 Dispositivo de búsqueda de imágenes, método de búsqueda de imágenes, programa y soporte de almacenamiento legible por ordenador Active ES2665504T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012078343A JP5577371B2 (ja) 2012-03-29 2012-03-29 画像検索装置、画像検索方法およびプログラム
JP2012078343 2012-03-29
PCT/JP2013/059546 WO2013147166A1 (ja) 2012-03-29 2013-03-29 画像検索装置、画像検索方法、プログラムおよびコンピュータ読取り可能な記憶媒体

Publications (1)

Publication Number Publication Date
ES2665504T3 true ES2665504T3 (es) 2018-04-26

Family

ID=49260408

Family Applications (1)

Application Number Title Priority Date Filing Date
ES13769777.7T Active ES2665504T3 (es) 2012-03-29 2013-03-29 Dispositivo de búsqueda de imágenes, método de búsqueda de imágenes, programa y soporte de almacenamiento legible por ordenador

Country Status (6)

Country Link
US (1) US9940366B2 (es)
EP (1) EP2833275B1 (es)
JP (1) JP5577371B2 (es)
CN (1) CN104221015B (es)
ES (1) ES2665504T3 (es)
WO (1) WO2013147166A1 (es)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4976578B1 (ja) * 2011-09-16 2012-07-18 楽天株式会社 画像検索装置およびプログラム
US11157550B2 (en) * 2013-10-02 2021-10-26 Hitachi, Ltd. Image search based on feature values
US20150302036A1 (en) * 2014-04-18 2015-10-22 Inplore Inc. Method, system and computer program for information retrieval using content algebra
US10509800B2 (en) * 2015-01-23 2019-12-17 Hewlett-Packard Development Company, L.P. Visually interactive identification of a cohort of data objects similar to a query based on domain knowledge
CN106021362B (zh) * 2016-05-10 2018-04-13 百度在线网络技术(北京)有限公司 查询式的图片特征表示的生成、图片搜索方法和装置
JP6601965B2 (ja) * 2016-08-25 2019-11-06 Kddi株式会社 探索木を用いて量子化するプログラム、装置及び方法
JP6311000B1 (ja) * 2016-12-19 2018-04-11 ヤフー株式会社 生成装置、生成方法、及び生成プログラム
US10504002B2 (en) * 2017-07-30 2019-12-10 Fuji Xerox Co., Ltd. Systems and methods for clustering of near-duplicate images in very large image collections
JP2019125333A (ja) * 2018-01-12 2019-07-25 富士通株式会社 間取り抽出プログラム、間取り抽出方法及び情報処理装置
CN111480158A (zh) * 2018-10-12 2020-07-31 华为技术有限公司 文件管理方法及电子设备

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4344134A (en) 1980-06-30 1982-08-10 Burroughs Corporation Partitionable parallel processor
US4742552A (en) 1983-09-27 1988-05-03 The Boeing Company Vector image processing system
JPS6432379A (en) 1987-07-29 1989-02-02 Hitachi Ltd Computer
US5253308A (en) 1989-06-21 1993-10-12 Amber Engineering, Inc. Massively parallel digital image data processor using pixel-mapped input/output and relative indexed addressing
JP2609196B2 (ja) 1993-03-22 1997-05-14 株式会社エイ・ティ・アール自動翻訳電話研究所 類似度計算装置
US6134541A (en) 1997-10-31 2000-10-17 International Business Machines Corporation Searching multidimensional indexes using associated clustering and dimension reduction information
US6285995B1 (en) 1998-06-22 2001-09-04 U.S. Philips Corporation Image retrieval system using a query image
US6728752B1 (en) 1999-01-26 2004-04-27 Xerox Corporation System and method for information browsing using multi-modal features
EP1089198A3 (en) 1999-09-30 2003-03-12 Hewlett-Packard Company, A Delaware Corporation Content-based image searching
GB2382886B (en) 2001-10-31 2006-03-15 Alphamosaic Ltd Vector processing system
JP2005234994A (ja) * 2004-02-20 2005-09-02 Fujitsu Ltd 類似度判定プログラム、マルチメディアデータ検索プログラム、類似度判定方法、および類似度判定装置
WO2006033257A1 (ja) * 2004-09-24 2006-03-30 Matsushita Electric Industrial Co., Ltd. 画像変換方法、画像変換装置、サーバークライアントシステム、携帯機器およびプログラム
US20070244925A1 (en) 2006-04-12 2007-10-18 Jean-Francois Albouze Intelligent image searching
JP5098559B2 (ja) * 2007-10-11 2012-12-12 富士ゼロックス株式会社 類似画像検索装置、及び類似画像検索プログラム
US8180162B2 (en) 2007-11-06 2012-05-15 National University Corporation Hokkaido University Similar image retrieving device
US8195689B2 (en) 2009-06-10 2012-06-05 Zeitera, Llc Media fingerprinting and identification system
US8144947B2 (en) 2008-06-27 2012-03-27 Palo Alto Research Center Incorporated System and method for finding a picture image in an image collection using localized two-dimensional visual fingerprints
US8254697B2 (en) * 2009-02-02 2012-08-28 Microsoft Corporation Scalable near duplicate image search with geometric constraints
JP2010250637A (ja) * 2009-04-17 2010-11-04 Seiko Epson Corp 画像サーバー、画像検索システム、画像検索方法および画像管理方法
US8429173B1 (en) 2009-04-20 2013-04-23 Google Inc. Method, system, and computer readable medium for identifying result images based on an image query
JP5673540B2 (ja) 2009-08-18 2015-02-18 公立大学法人大阪府立大学 物体検出方法
JP5458815B2 (ja) 2009-11-11 2014-04-02 株式会社デンソーアイティーラボラトリ マルチメディア検索システム
JP5337673B2 (ja) 2009-11-13 2013-11-06 株式会社日立製作所 画像検索システム
JP5385105B2 (ja) 2009-11-25 2014-01-08 Kddi株式会社 画像検索方法およびシステム
RU2533441C2 (ru) 2009-12-30 2014-11-20 Нокиа Корпорейшн Способ и устройство для обеспечения поиска изображения по содержимому
JP2012033022A (ja) 2010-07-30 2012-02-16 Panasonic Corp 空間における変化領域検出装置及び方法
US9043316B1 (en) * 2011-03-28 2015-05-26 Google Inc. Visual content retrieval

Also Published As

Publication number Publication date
US20150066957A1 (en) 2015-03-05
EP2833275B1 (en) 2018-01-10
WO2013147166A1 (ja) 2013-10-03
CN104221015B (zh) 2018-03-20
EP2833275A1 (en) 2015-02-04
US9940366B2 (en) 2018-04-10
CN104221015A (zh) 2014-12-17
EP2833275A4 (en) 2015-04-29
JP5577371B2 (ja) 2014-08-20
JP2013206436A (ja) 2013-10-07

Similar Documents

Publication Publication Date Title
ES2665504T3 (es) Dispositivo de búsqueda de imágenes, método de búsqueda de imágenes, programa y soporte de almacenamiento legible por ordenador
ES2680574T3 (es) Dispositivo de búsqueda de imágenes, método de búsqueda de imágenes, programa y medio de almacenamiento legible por ordenador
ES2699252T3 (es) Aparato de búsqueda de imágenes, método de búsqueda de imágenes, programa y medio de registro legible por ordenador
US8943091B2 (en) System, method, and computer program product for performing a string search
US8625907B2 (en) Image clustering
US20130121600A1 (en) Methods and Apparatus for Visual Search
US20180330190A1 (en) Anomaly detection using non-target clustering
US9158758B2 (en) Retrieval of prefix completions by way of walking nodes of a trie data structure
CN103744903B (zh) 一种基于草图的场景图像检索方法
CN109785336B (zh) 基于多路径卷积神经网络模型的图像分割方法及装置
CN110110119B (zh) 图像检索的方法、装置及计算机可读存储介质
Panda et al. Offline mobile instance retrieval with a small memory footprint
Roumelis et al. Spatial Batch-Queries Processing Using xBR-trees in Solid-State Drives
JP6418658B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP2012256119A (ja) 情報処理装置、その処理方法及びプログラム
Hou et al. Tree-based indexing for real-time ConvNet landmark-based visual place recognition
Nguyen et al. Integrating spatial information into inverted index for large-scale image retrieval
Zhao et al. Scalable Top-Spatial Image Search on Road Networks
CN112925837B (zh) 文本结构化方法及装置
CN112686028B (zh) 基于相似词的文本翻译方法、计算设备及计算机存储介质
Ren et al. Unordered images selection for dense 3D reconstruction based on distance dependent Chinese restaurant process
US20230334122A1 (en) Roi-based data content graph for wide data management
Fevgas et al. Spatial Batch-Queries Processing Using xBR+-trees in Solid-State Drives
CN117556079A (zh) 遥感影像内容检索方法、装置、电子设备及介质
KR20120007131A (ko) 증강현실 응용을 위한 트리인덱스에서 삼각형 필터링