ES2954475T3 - Sistemas y métodos para la búsqueda de imágenes - Google Patents
Sistemas y métodos para la búsqueda de imágenes Download PDFInfo
- Publication number
- ES2954475T3 ES2954475T3 ES19799936T ES19799936T ES2954475T3 ES 2954475 T3 ES2954475 T3 ES 2954475T3 ES 19799936 T ES19799936 T ES 19799936T ES 19799936 T ES19799936 T ES 19799936T ES 2954475 T3 ES2954475 T3 ES 2954475T3
- Authority
- ES
- Spain
- Prior art keywords
- image
- images
- target
- range
- similar
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 82
- 239000013598 vector Substances 0.000 claims abstract description 164
- 238000003860 storage Methods 0.000 claims description 67
- 238000004891 communication Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 description 148
- 230000000875 corresponding effect Effects 0.000 description 42
- 230000008569 process Effects 0.000 description 38
- 238000012986 modification Methods 0.000 description 13
- 230000004048 modification Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 238000010801 machine learning Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 241000282414 Homo sapiens Species 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000003062 neural network model Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 241000196324 Embryophyta Species 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005314 correlation function Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 229910044991 metal oxide Inorganic materials 0.000 description 2
- 150000004706 metal oxides Chemical class 0.000 description 2
- 238000011112 process operation Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000003331 infrared imaging Methods 0.000 description 1
- 239000010977 jade Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000001931 thermography Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/583—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/56—Information retrieval; Database structures therefor; File system structures therefor of still image data having vectorial format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/211—Selection of the most significant subset of features
- G06F18/2113—Selection of the most significant subset of features by ranking or filtering the set of features, e.g. using a measure of variance or of feature cross-correlation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Library & Information Science (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Image Analysis (AREA)
Abstract
Un sistema y un método para la búsqueda de imágenes. El método puede incluir la obtención de una imagen objetivo y una pluralidad de imágenes, en donde se debe buscar al menos una imagen similar a la imagen objetivo a partir de la pluralidad de imágenes. El método puede incluir determinar un vector de características objetivo de la imagen objetivo y un vector de características de cada una de la pluralidad de imágenes, siendo cada uno de los vectores de características objetivo y los vectores de características un vector de características N-dimensional en un espacio de características N-dimensional. El método puede incluir determinar una región de búsqueda en el espacio de características N-dimensional. El método puede incluir determinar una o más imágenes candidatas, estando el vector de características de cada imagen candidata dentro de la región de búsqueda. El método puede incluir además determinar al menos una imagen similar a la imagen objetivo entre una o más imágenes candidatas. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Sistemas y métodos para la búsqueda de imágenes
Campo técnico
La presente divulgación se refiere en general a la búsqueda de imágenes y, más particularmente, se refiere a sistemas y métodos para buscar una imagen similar a una imagen objetivo.
Antecedentes
La búsqueda de imágenes se ha vuelto más difícil con el aumento del número de imágenes digitales. Convencionalmente, un motor de búsqueda de imágenes (por ejemplo, un motor de búsqueda de imágenes de Google, un motor de búsqueda de imágenes de Baidu) a menudo realiza búsquedas de imágenes basadas en metainformación textual de un conjunto de imágenes que van a ser buscadas, tal como una palabra clave y una etiqueta de imagen etiquetada en una imagen en el conjunto. Sin embargo, la búsqueda de imágenes basada en metainformación textual puede tener una precisión limitada porque es difícil describir una imagen claramente utilizando una palabra clave o una etiqueta. Además, es probable que distintas personas asignen diferentes palabras clave o etiquetas a una misma imagen, lo que puede conducir a un resultado de búsqueda inexacto. Además, una parte de las imágenes del conjunto puede tener poca o ninguna metainformación textual, lo que también puede afectar la precisión de la búsqueda. Otro enfoque para buscar una imagen similar a una imagen objetivo del conjunto se basa en los vectores de características de la imagen objetivo y las imágenes del conjunto. El grado de similitud entre la imagen objetivo y una imagen del conjunto se puede determinar comparando el vector de características de la imagen objetivo y el vector de características de la imagen. La eficiencia del enfoque basado en los vectores de características se puede reducir si el recuento de imágenes en el conjunto es demasiado grande (por ejemplo, mayor que un umbral).
El documento de CHANG W ET AL: "DATA RESOURCE SELECTION IN DISTRIBUTED VISUAL INFORMATION SYSTEMS", IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING, IEEE SERVICE CENTER, LOS ALAMITOS, CA, EE. UU., vol. 10, núm. 6, 1 de noviembre de 1998, páginas 926-946, ISSN: 1041-4347, DOI: 10.1109/69.738358 da a conocer diferentes métodos para buscar imágenes similares.
Por lo tanto, puede ser deseable desarrollar sistemas y métodos para la búsqueda de imágenes con precisión y/o eficiencia mejoradas.
Compendio
De acuerdo con un aspecto de la presente divulgación, se proporciona un sistema. El sistema puede incluir al menos un medio de almacenamiento que incluye un conjunto de instrucciones y al menos un procesador en comunicación con el al menos un medio de almacenamiento. Cuando se ejecuta el conjunto de instrucciones, el al menos un procesador puede ser dirigido para hacer que el sistema obtenga una imagen objetivo y una pluralidad de imágenes. Se puede buscar al menos una imagen similar a la imagen objetivo de la pluralidad de imágenes. El al menos un procesador puede ser dirigido para hacer que el sistema determine un vector de características objetivo de la imagen objetivo y un vector de características de cada una de la pluralidad de imágenes. Cada vector de características objetivo y los vectores de características pueden ser un vector de características de N dimensiones en un espacio de características de N dimensiones. El al menos un procesador puede ser dirigido para hacer que el sistema determine una región de búsqueda en el espacio de características de N dimensiones basado en el vector de características objetivo y un rango de similitud preestablecido entre al menos una imagen similar y la imagen objetivo. El al menos un procesador puede ser dirigido para hacer que el sistema determine una o más imágenes candidatas entre la pluralidad de imágenes. El vector de características de cada imagen candidata puede estar dentro de la región de búsqueda. El al menos un procesador puede ser dirigido para hacer que el sistema determine la al menos una imagen similar a la imagen objetivo entre una o más imágenes candidatas en función del rango de similitud preestablecido, el vector de características objetivo y uno o más vectores de características de la una o más imágenes candidatas.
En algunas realizaciones, para determinar al menos una imagen similar a la imagen objetivo entre una o más imágenes candidatas, el al menos un procesador puede ser dirigido para hacer que el sistema determine un grado de similitud entre la imagen objetivo y cada una de las una o más imágenes candidatas. El al menos un procesador puede ser dirigido para hacer que el sistema seleccione al menos una imagen candidata entre una o más imágenes candidatas. El grado de similitud de cada imagen candidata seleccionada puede estar dentro del rango de similitud preestablecido. El al menos un procesador puede ser dirigido para hacer que el sistema designe la al menos una imagen candidata seleccionada como la al menos una imagen similar a la imagen objetivo.
En algunas realizaciones, el al menos un procesador puede ser dirigido para hacer que el sistema clasifique la pluralidad de imágenes similares según el grado de similitud entre cada imagen similar y la imagen objetivo en orden descendente para generar un primer resultado de clasificación. El al menos un procesador puede ser dirigido para hacer que el sistema transmita una lista de visualización que incluya al menos una parte de la pluralidad de imágenes similares a un dispositivo terminal. La al menos una parte de la pluralidad de imágenes similares se puede clasificar de acuerdo con el primer resultado de clasificación en la lista de visualización.
En algunas realizaciones, el vector de características objetivo puede incluir un valor de característica objetivo en cada dimensión en el espacio de características de N dimensiones.
En algunas realizaciones, para determinar la región de búsqueda en el espacio de características de N dimensiones, el al menos un procesador puede ser dirigido para hacer que el sistema determine un rango de distancia geométrica en el espacio de características de N dimensiones correspondiente al rango de similitud preestablecido. El al menos un procesador puede ser dirigido para hacer que el sistema determine un rango de coordenadas de al menos una imagen similar en cada dimensión. Una diferencia entre el valor de la característica objetivo en la dimensión y cada valor en el rango de coordenadas puede estar dentro del rango de distancia geométrica. El al menos un procesador puede ser dirigido además para hacer que el sistema determine la región de búsqueda en base al rango de coordenadas en cada dimensión.
En algunas realizaciones, para determinar la región de búsqueda en el espacio de características de N dimensiones, el al menos un procesador puede ser dirigido para hacer que el sistema determine un rango de distancia geométrica en el espacio de características de N dimensiones correspondiente al rango de similitud preestablecido. El rango de distancia geométrica puede estar definido por una distancia geométrica más corta y una distancia geométrica más larga. En cada dimensión, el al menos un procesador también puede ser dirigido para hacer que el sistema determine un primer rango de coordenadas basado en la distancia geométrica más corta y el valor de la característica objetivo en la dimensión. Una diferencia entre el valor de la característica objetivo en la dimensión y cada valor en el primer rango de coordenadas puede ser menor que la distancia geométrica más corta. En cada dimensión, el al menos un procesador puede ser dirigido para hacer que el sistema determine un segundo rango de coordenadas basado en la distancia geométrica más larga y el valor de la característica objetivo en la dimensión. Una diferencia entre el valor de la característica objetivo en la dimensión y cada valor en el segundo rango de coordenadas puede ser menor que la distancia geométrica más larga. El al menos un procesador puede ser dirigido además para hacer que el sistema determine una primera región definida por los primeros rangos de coordenadas en el espacio de características de N dimensiones y una segunda región definida por los segundos rangos de coordenadas en el espacio de características de N dimensiones. El al menos un procesador puede ser dirigido para hacer que el sistema determine una región en la segunda región excluyendo la primera región como la región de búsqueda.
En algunas realizaciones, para determinar la región de búsqueda en el espacio de características de N dimensiones, el al menos un procesador puede ser dirigido para hacer que el sistema divida el rango de similitud preestablecido en una pluralidad de sub-rangos. Para cada uno de la pluralidad de sub-rangos, el al menos un procesador puede ser dirigido para hacer que el sistema determine una región de sub-búsqueda correspondiente al sub-rango en el espacio de características de N dimensiones basado en el vector de características objetivo. La región de búsqueda puede incluir una pluralidad de regiones de sub-búsqueda correspondientes a la pluralidad de sub-rangos.
En algunas realizaciones, para determinar una o más imágenes candidatas entre la pluralidad de imágenes, el al menos un procesador puede ser dirigido para hacer que el sistema determine una o más primeras imágenes candidatas entre la pluralidad de imágenes para cada una de la pluralidad de regiones de sub-búsqueda, en donde el vector de características de cada primera imagen candidata puede estar dentro de la región de sub-búsqueda correspondiente. La una o más imágenes candidatas pueden incluir la una o más primeras imágenes candidatas correspondientes a cada región de sub-búsqueda.
En algunas realizaciones, para determinar al menos una imagen similar a la imagen objetivo entre una o más imágenes candidatas, para cada una de la pluralidad de regiones de sub-búsqueda, el al menos un procesador puede ser dirigido para hacer que el sistema determine o obtenga un grado de similitud entre la imagen objetivo y cada primera imagen candidata correspondiente a la región de sub-búsqueda. Para cada una de la pluralidad de regiones de sub-búsqueda, el al menos un procesador puede ser dirigido para hacer que el sistema seleccione una o más primeras imágenes candidatas entre la una o más primeras imágenes candidatas correspondientes a la región de sub-búsqueda. El grado similar entre cada primera imagen candidata seleccionada y la imagen objetivo puede estar dentro del sub-rango correspondiente. Para cada una de la pluralidad de regiones de sub-búsqueda, el al menos un procesador puede ser dirigido para hacer que el sistema designe la una o más primeras imágenes candidatas seleccionadas como una o más imágenes similares de la al menos una imagen similar a la imagen objetivo.
En algunas realizaciones, para determinar la región de sub-búsqueda en el espacio de características de N dimensiones para cada uno de la pluralidad de sub-rangos, el al menos un procesador puede ser dirigido para hacer que el sistema clasifique la pluralidad de sub-rangos para generar un segundo resultado de clasificación. El al menos un procesador puede ser dirigido para hacer que el sistema determine secuencialmente la región de sub-búsqueda para cada uno de la pluralidad de sub-rangos de acuerdo con el segundo resultado de clasificación.
En algunas realizaciones, para determinar una o más imágenes candidatas entre la pluralidad de imágenes, el al menos un procesador puede ser dirigido para hacer que el sistema almacene los vectores de características de la pluralidad de imágenes en una tabla. La tabla puede incluir una pluralidad de filas y N columnas, representando cada fila una imagen de la pluralidad de imágenes, y representando cada columna una dimensión en el espacio de características de N dimensiones. El al menos un procesador puede ser dirigido para hacer que el sistema cree un índice para cada una de las N columnas de la tabla. El al menos un procesador puede ser dirigido para hacer que el sistema seleccione una o más imágenes candidatas entre la pluralidad de imágenes en base a la región de búsqueda
y a los índices de la tabla. El vector de características de cada imagen candidata puede estar dentro de la región de búsqueda.
De acuerdo con otro aspecto de la presente divulgación, se proporciona un método. El método se puede implementar en un dispositivo que tenga al menos un medio de almacenamiento que incluya un conjunto de instrucciones y al menos un procesador en comunicación con el al menos un medio de almacenamiento. El método puede incluir la obtención de una imagen objetivo y una pluralidad de imágenes. Se puede buscar al menos una imagen similar a la imagen objetivo de la pluralidad de imágenes. El método puede incluir determinar un vector de características objetivo de la imagen objetivo y un vector de características de cada una de la pluralidad de imágenes. Cada vector de características objetivo y los vectores de características pueden ser un vector de características de N dimensiones en un espacio de características de N dimensiones. El método también puede incluir determinar una región de búsqueda en el espacio de características de N dimensiones basada en el vector de características objetivo y un rango de similitud preestablecido entre al menos una imagen similar y la imagen objetivo. El método puede incluir determinar una o más imágenes candidatas entre la pluralidad de imágenes. El vector de características de cada imagen candidata puede estar dentro de la región de búsqueda. El método puede incluir además determinar al menos una imagen similar a la imagen objetivo entre una o más imágenes candidatas en función del rango de similitud preestablecido, el vector de características objetivo y uno o más vectores de características de una o más imágenes candidatas.
De acuerdo con otro aspecto de la presente divulgación, se proporciona un medio legible por ordenador no transitorio. El medio legible por ordenador no transitorio puede comprender al menos un conjunto de instrucciones para la búsqueda de imágenes, en donde, cuando es ejecutado por al menos un procesador de un sistema, el al menos un conjunto de instrucciones puede indicar al sistema que obtenga una imagen objetivo y una pluralidad de instrucciones. Se puede buscar al menos una imagen similar a la imagen objetivo de la pluralidad de imágenes. El al menos un conjunto de instrucciones puede indicar al sistema que determine un vector de características objetivo de la imagen objetivo y un vector de características de cada una de la pluralidad de imágenes. Cada vector de características objetivo y los vectores de características pueden ser un vector de características de N dimensiones en un espacio de características de N dimensiones. El al menos un conjunto de instrucciones puede indicar al sistema que determine una región de búsqueda en el espacio de características de N dimensiones basada en el vector de características objetivo y en un rango de similitud preestablecido entre al menos una imagen similar y la imagen objetivo. El al menos un conjunto de instrucciones puede indicar al sistema que determine una o más imágenes candidatas entre la pluralidad de imágenes. El vector de características de cada imagen candidata puede estar dentro de la región de búsqueda. El al menos un conjunto de instrucciones puede indicar al sistema que determine al menos una imagen similar a la imagen objetivo, entre una o más imágenes candidatas, en función del rango de similitud preestablecido, el vector de características objetivo y el uno o más vectores de características de una o más imágenes candidatas.
De acuerdo con todavía otro aspecto de la presente divulgación, se proporciona un sistema para la búsqueda de imágenes. El sistema puede incluir un módulo de obtención, un módulo de determinación de vector de características, un módulo de determinación de región de búsqueda, un módulo de determinación de imagen candidata y un módulo de determinación de imagen similar. El módulo de obtención se puede configurar para obtener una imagen objetivo y una pluralidad de imágenes, en donde se busca al menos una imagen similar a la imagen objetivo de la pluralidad de imágenes. El módulo de determinación de vector de características se puede configurar para determinar un vector de características objetivo de la imagen objetivo y un vector de características de cada una de la pluralidad de imágenes, siendo cada uno de los vectores de características objetivo y los vectores de características un vector de características de N dimensiones en un espacio de características de N dimensionales. El módulo de determinación de región de búsqueda se puede configurar para determinar una región de búsqueda en el espacio de características de N dimensiones basada en el vector de características objetivo y un rango de similitud preestablecido entre al menos una imagen similar y la imagen objetivo. El módulo de determinación de imagen candidata se puede configurar para determinar una o más imágenes candidatas entre la pluralidad de imágenes, en donde el vector de características de cada imagen candidata está dentro de la región de búsqueda. El módulo de determinación de imagen similar se puede configurar para determinar al menos una imagen similar a la imagen objetivo entre una o más imágenes candidatas en función del rango de similitud preestablecido, el vector de características objetivo y uno o más vectores de características de una o más imágenes candidatas.
Las características adicionales se expondrán en parte en la descripción que sigue, y en parte resultarán evidentes para los expertos en la técnica al examinar los siguientes dibujos adjuntos o se pueden aprender mediante la producción o el funcionamiento de los ejemplos. Las características de la presente divulgación se pueden realizar y conseguir mediante la práctica o mediante la utilización de diversos aspectos de las metodologías, instrumentos y combinaciones expuestas en los ejemplos detallados expuestos a continuación.
Breve descripción de los dibujos
La presente divulgación se describe adicionalmente en términos de realizaciones a modo de ejemplo. Estos ejemplos de realización se describen en detalle haciendo referencia a los dibujos. Los dibujos no están a escala. Estas realizaciones son realizaciones a modo de ejemplo no limitativas, en las que los mismos números de referencia representan estructuras similares en todas las diversas vistas de los dibujos, y en los que:
la FIG. 1 es un diagrama esquemático que ilustra un sistema de búsqueda de imágenes a modo de ejemplo de acuerdo con algunas realizaciones de la presente divulgación;
la FIG. 2 es un diagrama esquemático que ilustra ejemplos de componentes de hardware y/o software de un dispositivo informático según algunas realizaciones de la presente divulgación;
la FIG. 3 es un diagrama esquemático que ilustra componentes a modo de ejemplo de un terminal de usuario según algunas realizaciones de la presente divulgación;
la FIG. 4 es un diagrama de bloques de un dispositivo de procesamiento a modo de ejemplo de acuerdo con algunas realizaciones de la presente divulgación;
la FIG. 5 es un diagrama de flujo que ilustra un proceso a modo de ejemplo para la búsqueda de imágenes de acuerdo con algunas realizaciones de la presente divulgación;
la FIG. 6A es un diagrama de flujo que ilustra un proceso a modo de ejemplo para determinar una región de búsqueda de acuerdo con algunas realizaciones de la presente divulgación;
la FIG. 6B es un diagrama de flujo que ilustra un proceso a modo de ejemplo para determinar una región de búsqueda de acuerdo con algunas realizaciones de la presente divulgación; y
la FIG. 7 es un diagrama de flujo que ilustra un proceso a modo de ejemplo para determinar al menos una imagen similar a una imagen objetivo según algunas realizaciones de la presente divulgación.
Descripción detallada
En la siguiente descripción detallada, se exponen numerosos detalles específicos a modo de ejemplo para proporcionar una comprensión completa de la divulgación relevante. Sin embargo, debería resultar evidente para los expertos en la técnica que la presente divulgación se puede llevar a la practicarse sin tales detalles. En otros casos, se han descrito métodos, procedimientos, sistemas, componentes y/o circuitos bien conocidos a un nivel relativamente alto, sin detalles, para evitar oscurecer innecesariamente aspectos de la presente descripción. Varias modificaciones a las realizaciones descritas serán fácilmente evidentes para los expertos en la técnica, y los principios generales definidos en este documento se pueden aplicar a otras realizaciones y aplicaciones sin apartarse del alcance de la presente divulgación.
La terminología utilizada en este documento tiene el propósito de describir únicamente realizaciones a modo de ejemplo particulares y no pretende ser limitativa. Tal como se utilizan aquí, las formas singulares "un", "una" y "el", "la" pueden tener la intención de incluir también las formas plurales, a menos que el contexto indique claramente lo contrario. Se entenderá además que las expresiones "comprenden", "comprende" y/o "que comprende", "incluyen", "incluye" y/o "que incluye", cuando se utilizan en esta memoria, especifican la presencia de características establecidas, números enteros, pasos, operaciones, elementos y/o componentes, pero no excluyen la presencia o adición de una o más características, números enteros, pasos, operaciones, elementos, componentes y/o grupos de los mismos.
Se entenderá que el término "sistema", "motor", "unidad", "módulo" y/o "bloque" utilizado en el presente documento es un método para distinguir diferentes componentes, elementos, partes, secciones o conjuntos de diferente nivel en orden ascendente. Sin embargo, los términos pueden ser desplazados por otra expresión si consiguen el mismo propósito.
En general, la palabra "módulo", "unidad" o "bloque", como se utiliza en el presente documento, se refiere a la lógica incorporada en el hardware o firmware, o a una colección de instrucciones de software. Un módulo, una unidad o un bloque descrito en este documento se pueden implementar como software y/o hardware y se puede almacenar en cualquier tipo de medio legible por ordenador no transitorio u otro dispositivo de almacenamiento. En algunas realizaciones, un módulo/unidad/bloque de software se puede compilar y vincular a un programa ejecutable. Se apreciará que los módulos de software pueden ser llamados desde otros módulos/unidades/bloques o desde ellos mismos, y/o pueden ser invocados como respuesta a eventos o interrupciones detectados. Los módulos/unidades/bloques de software configurados para ser ejecutados en dispositivos informáticos (por ejemplo, el procesador 201 como se ilustra en la FIG. 2) pueden estar dispuestos en un medio legible por ordenador, tal como un disco compacto, un disco de video digital, una unidad flash, un disco magnético, o cualquier otro medio tangible, o como descarga digital (y se pueden almacenar originalmente en un formato comprimido o instalable que necesita instalación, descompresión o descifrado antes de la ejecución). Dicho código de software se puede almacenar, parcial o totalmente, en un dispositivo de almacenamiento del dispositivo informático de ejecución, para su ejecución por parte del dispositivo informático. Las instrucciones del software pueden estar integradas en el firmware, tal como una EPROM. Se apreciará además que los módulos/unidades/bloques de hardware se pueden incluir en componentes lógicos conectados, tales como puertas y biestables, y/o se pueden incluir en unidades programables, tales como matrices de puertas programables o procesadores. Los módulos/unidades/bloques o la funcionalidad del dispositivo informático descritos en este documento se pueden implementar como módulos/unidades/bloques de software, pero se pueden representar en hardware o firmware. En general, los módulos/unidades/bloques descritos en este
documento se refieren a módulos/unidades/bloques lógicos que se pueden combinar con otros módulos/unidades/bloques o se pueden dividir en sub-módulos/subunidades/sub-bloques a pesar de su organización física o almacenamiento. La descripción puede ser aplicable a un sistema, un motor o una parte del mismo.
Se entenderá que cuando se hace referencia a una unidad, motor, módulo o bloque como "encendido", "conectado a" o "acoplado a" otra unidad, motor, módulo o bloque, podrá estar directamente sobre, conectado o acoplado a, o comunicarse con la otra unidad, motor, módulo o bloque, o una unidad, motor, módulo o bloque intermedio puede estar presente, a menos que el contexto indique claramente lo contrario. Como se utiliza en este documento, la expresión "y/o" incluye cualquiera y todas las combinaciones de uno o más de los elementos enumerados asociados.
Estas y otras propiedades y características de la presente divulgación, así como los métodos de operación y funciones de los elementos relacionados de la estructura y la combinación de partes y economías de fabricación, se pueden hacer más evidentes al considerar la siguiente descripción con referencia a los dibujos adjuntos, todos los cuales forman parte de esta divulgación. Sin embargo, se debe entender expresamente que los dibujos tienen únicamente fines ilustrativos y descriptivos y no pretenden limitar el alcance de la presente divulgación. Se entiende que los dibujos no están a escala.
La invención se refiere a sistemas y métodos para la búsqueda de imágenes. Los sistemas y métodos pueden obtener una imagen objetivo y una pluralidad de imágenes, en donde al menos una imagen similar a la imagen objetivo se debe buscar entre la pluralidad de imágenes. Los sistemas y métodos pueden determinar un vector de características objetivo de la imagen objetivo y un vector de características de cada una de las imágenes, siendo cada uno de los vectores de características objetivo y los vectores de características un vector de características de N dimensiones en un espacio de características de N dimensiones. Los sistemas y métodos también pueden determinar una región de búsqueda en el espacio de características de N dimensiones basado en el vector de características objetivo y un rango de similitud preestablecido entre al menos una imagen similar y la imagen objetivo. Los sistemas y métodos determinan además una o más imágenes candidatas entre la pluralidad de imágenes, en donde el vector de características de cada imagen candidata está dentro de la región de búsqueda. Los sistemas y métodos pueden seleccionar además la al menos una imagen similar a la imagen objetivo de una o más imágenes candidatas en función del rango de similitud preestablecido, el vector de características objetivo y uno o más vectores de características de una o más imágenes candidatas.
De acuerdo con la invención de la presente divulgación, se puede buscar al menos una imagen similar a una imagen objetivo a partir de un conjunto de imágenes basándose en un vector de características objetivo de la imagen objetivo y un vector de características de cada imagen en el conjunto. Se puede determinar una región de búsqueda en el espacio de características de N dimensiones en base al rango de similitud preestablecido. Una imagen del conjunto cuyo vector de características se encuentra dentro de la región de búsqueda se puede determinar como imagen candidata para un análisis posterior, mientras que una imagen del conjunto cuyo vector de características se encuentra fuera de la región de búsqueda se puede omitir del análisis posterior. Esto puede reducir la cantidad computacional y mejorar la eficiencia de la búsqueda. Además, de acuerdo con la intención, el rango de similitud preestablecido se divide en una pluralidad de sub-rangos. Los sistemas y métodos pueden procesar los sub-rangos en paralelo o en secuencia para determinar una o más imágenes similares que satisfagan cada sub-rango. Esto puede mejorar aún más la eficiencia de la búsqueda.
La FIG. 1 es un diagrama esquemático que ilustra un sistema de búsqueda de imágenes 100 a modo de ejemplo según algunas realizaciones de la presente divulgación. Como se muestra en la FIG. 1, el sistema de búsqueda de imágenes 100 puede incluir un dispositivo de procesamiento 120, una red 130, un dispositivo terminal 140, un dispositivo de almacenamiento 150 y un dispositivo de adquisición de imágenes 170.
El dispositivo de procesamiento 120 puede procesar información y/o datos relacionados con el sistema de búsqueda de imágenes 100 para realizar una o más funciones descritas en la presente divulgación. Por ejemplo, el dispositivo de procesamiento 120 obtiene una imagen objetivo 180 y un conjunto de imágenes que incluye una imagen h, una imagen I2, ...... , y una imagen In como se muestra en la FIG. 1. La imagen objetivo 180 y/o el conjunto de imágenes se pueden obtener de una fuente externa y/o uno o más componentes del sistema de búsqueda de imágenes 100, tal como el dispositivo terminal 140, el dispositivo de almacenamiento 150 y/o un dispositivo de adquisición de imágenes 170. El dispositivo de procesamiento 120 puede buscar además una o más imágenes similares 160 que son similares a la imagen objetivo 180 del conjunto de imágenes.
En algunas realizaciones, el dispositivo de procesamiento 120 puede ser un único servidor o un grupo de servidores. El grupo de servidores puede estar centralizado o distribuido. En algunas realizaciones, el dispositivo de procesamiento 120 puede ser local o remoto respecto del sistema de búsqueda de imágenes 100. Por ejemplo, el dispositivo de procesamiento 120 puede acceder a información y/o datos desde el dispositivo terminal 140, el dispositivo de almacenamiento 150 y/o el dispositivo de adquisición de imágenes 170 a través de la red 130. Como otro ejemplo, el dispositivo de procesamiento 120 puede estar conectado directamente al dispositivo terminal 140, al dispositivo de almacenamiento 150 y/o al dispositivo de adquisición de imágenes 170 para acceder a información y/o a datos. En algunas realizaciones, el dispositivo de procesamiento 120 se puede implementar en una plataforma en la nube. Por ejemplo, la plataforma en la nube puede incluir una nube privada, una nube pública, una nube híbrida, una nube comunitaria, una nube distribuida, una internube, una multinube o similar, o una combinación de las mismas.
En algunas realizaciones, el dispositivo de procesamiento 120 se puede implementar mediante un dispositivo informático 200 que tenga uno o más componentes como se describe en relación con la FIG. 2.
En algunas realizaciones, el dispositivo de procesamiento 120 puede incluir uno o más procesadores (por ejemplo, procesador(es) de un solo núcleo o procesador(es) de múltiples núcleos) para realizar las operaciones descritas en esta divulgación. Los procesadores pueden incluir un microcontrolador, un microprocesador, una ordenador con conjunto de instrucciones reducido (RISC), circuitos integrados para aplicación específica (ASIC), un procesador con conjunto de instrucciones para aplicación específica (ASIP), una unidad central de procesamiento (CPU), una unidad de procesamiento de gráficos (GPU), una unidad de procesamiento físico (PPU), una unidad de microcontrolador, un procesador de señal digital (DSP), una matriz de puertas programables en campo (FPGA), una máquina RISC avanzada (ARM), un dispositivo lógico programable (PLD), cualquier circuito o procesador capaz de ejecutar una o más funciones, o similares, o cualquier combinación de los mismos. Por ejemplo, el dispositivo de procesamiento 120 puede incluir un microprocesador para procesar un video/imagen capturado por el dispositivo de adquisición de imágenes 170.
La red 130 puede incluir cualquier red adecuada que pueda facilitar el intercambio de información y/o datos para el sistema de búsqueda de imágenes 100. En algunas realizaciones, uno o más componentes del sistema de búsqueda de imágenes 100 (por ejemplo, el dispositivo de procesamiento 120, el dispositivo de almacenamiento 150, el dispositivo terminal 140) pueden comunicar información y/o datos con uno o más componentes del sistema de búsqueda de imágenes 100 a través de la red 130. Por ejemplo, el dispositivo de procesamiento 120 puede obtener imágenes del dispositivo de almacenamiento 150 a través de la red 130. Como otro ejemplo, el dispositivo de procesamiento 120 puede obtener instrucciones de usuario del dispositivo terminal 140 a través de la red 130.
La red 130 puede ser o incluir una red pública (por ejemplo, Internet), una red privada (por ejemplo, una red de área local (LAN)), una red de cable, una red inalámbrica (por ejemplo, una red 802.11, una red Wi-Fi), una red de retransmisión de tramas, una red privada virtual (VPN), una red satelital, una red telefónica, enrutadores, concentradores, conmutadores, servidores y/o cualquier combinación de las mismas. Por ejemplo, la red 130 puede incluir una red de cable, una red alámbrica, una red de fibra óptica, una red de telecomunicaciones, una intranet, una red de área local inalámbrica (WLAN), una red de área metropolitana (MAN), una red telefónica pública conmutada (PSTN), una red Bluetooth™, una red ZigBee™, una red de comunicación de campo cercano (NFC), o similar, o cualquier combinación de las mismas. En algunas realizaciones, la red 130 puede incluir uno o más puntos de acceso a la red. Por ejemplo, la red 130 puede incluir puntos de acceso a la red de cable y/o inalámbrica tales como estaciones base y/o puntos de intercambio de Internet a través de los cuales uno o más componentes del sistema de búsqueda de imágenes 100 se pueden conectar a la red 130 para intercambiar datos y/o o información.
El dispositivo terminal 140 puede permitir una interacción de usuario entre un usuario y uno o más componentes del sistema de búsqueda de imágenes 100, tal como el dispositivo de procesamiento 120 y/o el dispositivo de almacenamiento 150. Por ejemplo, el usuario puede introducir una solicitud de búsqueda para buscar imágenes similares a la imagen objetivo 180 a través del dispositivo terminal 140. Adicionalmente o alternativamente, el dispositivo terminal 140 puede mostrar al usuario una o más imágenes similares 160 de la imagen objetivo 180. En algunas realizaciones, el dispositivo terminal 140 puede incluir un dispositivo móvil 141, una tableta 142, un ordenador portátil 143 o similar, o cualquier combinación de los mismos. Por ejemplo, el dispositivo móvil 141 puede incluir un teléfono móvil, un asistente digital personal (PDA), un dispositivo de juegos, un dispositivo de navegación, un dispositivo de punto de venta (POS), un ordenador portátil, una tableta, un ordenador de escritorio o similares, o cualquier combinación de los mismos. En algunas realizaciones, el dispositivo terminal 140 puede incluir un dispositivo de entrada, un dispositivo de salida, etc. En algunas realizaciones, el dispositivo terminal 140 puede ser parte del dispositivo de procesamiento 120.
El dispositivo de almacenamiento 150 puede almacenar datos, instrucciones y/o cualquier otra información. En algunas realizaciones, el dispositivo de almacenamiento 150 puede almacenar datos obtenidos del dispositivo de procesamiento 120, del dispositivo terminal 140 y/o del dispositivo de adquisición de imágenes 170. En algunas realizaciones, el dispositivo de almacenamiento 150 puede almacenar datos y/o instrucciones que el dispositivo de procesamiento 120 puede ejecutar o utilizar para realizar métodos a modo de ejemplo descritos en la presente divulgación. En algunas realizaciones, el dispositivo de almacenamiento 150 puede incluir un dispositivo de almacenamiento masivo, un dispositivo de almacenamiento extraíble, una memoria volátil de lectura y escritura, una memoria de solo lectura (ROM) o similares, o cualquier combinación de los mismos. Los dispositivos de almacenamiento masivo a modo de ejemplo pueden incluir un disco magnético, un disco óptico, una unidad de estado sólido, etc. Los dispositivos de almacenamiento extraíbles a modo de ejemplo pueden incluir una unidad flash, un disquete, un disco óptico, una tarjeta de memoria, un disco zip, una cinta magnética, etc. La memoria volátil a modo de ejemplo de lectura y escritura puede incluir una memoria de acceso aleatorio (RAM). La RAM a modo de ejemplo puede incluir una RAM dinámica (DRAM), una RAM dinámica síncrona de doble velocidad de datos (DDR SDRAM), una RAM estática (SRAM), una RAM de tiristor (T-RAM) y una RAM de condensador cero (Z-RAM) ROM de ejemplo puede incluir una ROM de máscara (MROM), una ROM programable (PROM), una r Om programable borrable (EPROM), una ROM programable borrable eléctricamente (EEPROM), una ROM de disco compacto (CD-ROM) y una ROM de disco versátil digital, etc. En algunas realizaciones, el dispositivo de almacenamiento 150 se puede implementar en una plataforma en la nube como se describe en otra parte de la divulgación.
En algunas realizaciones, el dispositivo de almacenamiento 150 puede estar conectado a la red 130 para comunicarse con uno o más componentes del sistema de búsqueda de imágenes 100 (por ejemplo, el dispositivo de procesamiento 120, el dispositivo terminal 140). Uno o más componentes del sistema de búsqueda de imágenes 100 pueden acceder a los datos o instrucciones almacenados en el dispositivo de almacenamiento 150 a través de la red 130. En algunas realizaciones, el dispositivo de almacenamiento 150 puede ser parte del dispositivo de procesamiento 120.
El dispositivo de adquisición de imágenes 170 puede ser y/o incluir cualquier dispositivo adecuado que sea capaz de adquirir datos de imágenes. El dispositivo de adquisición de imágenes a modo de ejemplo 170 puede incluir una cámara (por ejemplo, una cámara digital, una cámara analógica, una cámara IP (IPC), etc.), una grabadora de video, un escáner, un teléfono móvil, un dispositivo de tableta, un dispositivo de ordenador portátil, un dispositivo de formación de imágenes por infrarrojos (por ejemplo, un dispositivo de formación de imágenes térmicas) o similares. En algunas realizaciones, el dispositivo de adquisición de imágenes 170 puede incluir una cámara tipo pistola, una cámara domo, una cámara integrada, una cámara binocular, una cámara monocular, etc. Los datos de imagen adquiridos por el dispositivo de adquisición de imágenes 170 pueden incluir una imagen o cualesquiera datos sobre una imagen, tal como valores de uno o más píxeles (o denominados valores de píxeles) de una imagen (por ejemplo, luminancia, valores de gris, intensidades, crominancia, contraste de uno o más píxeles de una imagen), datos RGB, información de audio, información de tiempo, datos de ubicación, etc. En algunas realizaciones, el dispositivo de adquisición de imágenes 170 puede incluir un dispositivo de carga acoplada (CCD), un sensor complementario de semiconductor de óxido de metal (CMOS), un sensor de óxido de metal de tipo N -semiconductor (NMOS), un sensor de imagen de contacto (CIS) y/o cualquier otro sensor de imagen adecuado.
Cabe señalar que la descripción anterior del sistema de búsqueda de imágenes 100 pretende ser ilustrativa y no limitar el alcance de la presente divulgación. Muchas alternativas, modificaciones y variaciones resultarán evidentes para los expertos en la técnica. Las características, estructuras, métodos y otras características de las realizaciones a modo de ejemplo descritas en el presente documento se pueden combinar de diversas formas para obtener realizaciones a modo de ejemplo adicionales y/o alternativas. Por ejemplo, el sistema de búsqueda de imágenes 100 puede incluir uno o más componentes adicionales. Adicional o alternativamente, se pueden omitir uno o más componentes del sistema de búsqueda de imágenes 100 descrito anteriormente, tales como el dispositivo terminal 140 y/o el dispositivo de adquisición de imágenes 170. Como otro ejemplo, dos o más componentes del sistema de búsqueda de imágenes 100 pueden estar integrados en un único componente.
La FIG. 2 es un diagrama esquemático que ilustra ejemplos de componentes de hardware y/o software de un ejemplo de dispositivo informático 200 según algunas realizaciones de la presente divulgación. El dispositivo informático 200 se puede utilizar para implementar cualquier componente del sistema de búsqueda de imágenes 100 como se describe en este documento. Por ejemplo, el dispositivo de procesamiento 120 y/o el dispositivo terminal 140 se pueden implementar en el dispositivo informático 200, a través de su hardware, programa de software, firmware o una combinación de los mismos. Aunque solo se muestra un dispositivo informático de este tipo, por conveniencia, las funciones informáticas relacionadas con el sistema de búsqueda de imágenes 100 como se describe en este documento se pueden implementar de manera distribuida en varias plataformas similares, para distribuir la carga de procesamiento.
Como se ilustra en la FIG. 2, el dispositivo informático 200 puede incluir un procesador 201, un almacenamiento 203, una entrada/salida (I/O) 205 y un puerto de comunicación 207. El procesador 201 puede ejecutar instrucciones informáticas (por ejemplo, código de programa) y realizar funciones del sistema de búsqueda de imágenes 100 de acuerdo con las técnicas descritas en otra parte de la presente divulgación. Las instrucciones del ordenador pueden incluir, por ejemplo, rutinas, programas, objetos, componentes, estructuras de datos, procedimientos, módulos y funciones, que realizan funciones particulares como se describe en otra parte de la presente divulgación. Por ejemplo, el procesador 201 puede determinar una o más imágenes similares a una imagen objetivo. En algunas realizaciones, el procesador 201 puede incluir circuitos de interfaz y circuitos de procesamiento en el mismo. Los circuitos de interfaz se pueden configurar para recibir señales electrónicas desde el puerto de comunicación 207, en donde las señales electrónicas codifican datos estructurados y/o instrucciones para que los procesen los circuitos de procesamiento. Los circuitos de procesamiento pueden realizar cálculos lógicos y después determinar una conclusión, un resultado y/o una instrucción codificada como señales electrónicas. Después, los circuitos de interfaz pueden enviar las señales electrónicas desde los circuitos de procesamiento a través del puerto de comunicación 207.
En algunas realizaciones, el procesador 201 puede incluir uno o más procesadores de hardware, tal como un microcontrolador, un microprocesador, un ordenador con conjunto de instrucciones reducido (RISC), un circuito integrado de aplicación específica (ASIC), un procesador de conjunto de instrucciones de aplicación específica (ASIP), una unidad de procesamiento central (CPU), una unidad de procesamiento de gráficos (GPU), una unidad de procesamiento físico (PPU), una unidad de microcontrolador, un procesador de señal digital (DSP), una matriz de puertas programables en campo (FPGA), un máquina RISC avanzada (ARM), un dispositivo lógico programable (PLD), cualquier circuito o procesador capaz de ejecutar una o más funciones, o similares, o cualquier combinación de los mismos.
Únicamente a modo de ilustración, solo se puede describir un procesador en el dispositivo informático 200. Sin embargo, se debe tener en cuenta que el dispositivo informático 200 de la presente divulgación también puede incluir múltiples procesadores y, por lo tanto, operaciones y/o pasos de métodos que son realizados por un procesador como
se describe en la presente divulgación también pueden ser realizados de forma conjunta o por separado por los múltiples procesadores. Por ejemplo, si en la presente divulgación el procesador del dispositivo informático 200 ejecuta tanto la operación A como la operación B, se debe entender que la operación A y la operación B también pueden ser realizadas por dos o más procesadores diferentes de forma conjunta o separada en el dispositivo informático 200 (por ejemplo, un primer procesador ejecuta la operación A y un segundo procesador ejecuta la operación B, o viceversa, o el primer y segundo procesador ejecutan conjuntamente las operaciones A y B).
El almacenamiento 203 puede almacenar datos/información obtenidos de uno o más componentes del sistema de búsqueda de imágenes 100. En algunas realizaciones, el almacenamiento 203 puede incluir un dispositivo de almacenamiento masivo, un dispositivo de almacenamiento extraíble, una memoria volátil de lectura y escritura, una memoria de sólo lectura (ROM), o similar, o cualquier combinación de las mismas. Por ejemplo, el dispositivo de almacenamiento masivo puede incluir un disco magnético, un disco óptico, unidades de estado sólido, etc. El dispositivo de almacenamiento extraíble puede incluir una unidad flash, un disquete, un disco óptico, una tarjeta de memoria, un disco zip, una cinta magnética, etc. La memoria volátil de lectura y escritura puede incluir una memoria de acceso aleatorio (RAM). La RAM puede incluir una RAM dinámica (DRAM), una RAM dinámica síncrona de velocidad de datos doble (DDR SDRAM), una RAM estática (SRAM), una RAM de tiristor (T-RAM) y una RAM de condensador cero (Z-RAM), etc. La ROM puede incluir una ROM de máscara (MROM), una ROM programable (PROM), una ROM programable borrable (EPROM), una ROM programable borrable eléctricamente (EEPROM), una ROM de disco compacto (CD-ROM), y una ROM de disco versátil digital, etc. En algunas realizaciones, el almacenamiento 203 puede almacenar uno o más programas y/o instrucciones para realizar loa métodos a modo de ejemplo descritos en la presente divulgación. Por ejemplo, el almacenamiento 203 puede almacenar un programa para determinar una o más imágenes similares a una imagen objetivo.
La I/O 205 puede introducir y/o enviar señales, datos, información, etc. En algunas realizaciones, la I/O 205 puede permitir una interacción del usuario con el dispositivo informático 200. En algunas realizaciones, la I/O 205 puede incluir o se puede comunicar con un dispositivo de entrada y un dispositivo de salida para facilitar la comunicación entre el dispositivo informático 200 y un dispositivo de entrada o un dispositivo de salida. Los ejemplos del dispositivo de entrada pueden incluir un teclado, un ratón, una pantalla táctil, un micrófono o similar, o cualquier combinación de los mismos. Los ejemplos del dispositivo de salida pueden incluir un dispositivo de visualización, un altavoz, una impresora, un proyector o similar, o cualquier combinación de los mismos. Los ejemplos del dispositivo de visualización pueden incluir una pantalla de cristal líquido (LCD), una pantalla con base de diodos emisores de luz (LED), una pantalla plana, una pantalla curva, un dispositivo de televisión, un tubo de rayos catódicos (CRT), una pantalla táctil, o similar, o cualquier combinación de los mismos.
El puerto de comunicación 207 puede estar conectado a una red (por ejemplo, la red 130) para facilitar las comunicaciones de datos. El puerto de comunicación 207 puede establecer conexiones entre el dispositivo informático 200 y uno o más componentes del sistema de búsqueda de imágenes 100 o una fuente externa. La conexión puede ser una conexión por cable, una conexión inalámbrica, cualquier otra conexión de comunicación que pueda permitir la transmisión y/o recepción de datos y/o cualquier combinación de estas conexiones. La conexión por cable puede incluir, por ejemplo, un cable eléctrico, un cable óptico, un cable telefónico o similar, o cualquier combinación de los mismos. La conexión inalámbrica puede incluir, por ejemplo, un enlace Bluetooth™, un enlace wifi™, un enlace WiMax™, un enlace WLAN, un enlace ZigBee, un enlace de red móvil (por ejemplo, 3G, 4G, 5G, etc.), o similar, o cualquier combinación de los mismos. En algunas realizaciones, el puerto de comunicación 207 puede ser y/o incluir un puerto de comunicación estandarizado, tal como RS232, RS485, etc. En algunas realizaciones, el puerto de comunicación 207 puede ser un puerto de comunicación especialmente diseñado.
La FIG. 3 es un diagrama esquemático que ilustra componentes a modo de ejemplo de un terminal de usuario a modo de ejemplo 300 de acuerdo con algunas realizaciones de la presente divulgación. En algunas realizaciones, uno o más componentes (por ejemplo, un dispositivo terminal 140) del sistema de búsqueda de imágenes 100 pueden implementarse en el terminal de usuario 300.
Como se ilustra en la FIG. 3, el terminal de usuario 300 puede incluir una plataforma de comunicación 320, una pantalla 310, una unidad de procesamiento de gráficos (GPU) 330, una unidad de procesamiento central (CPU) 340, un puerto de I/O 350, una memoria 360 y un almacenamiento 390. En algunas realizaciones, también se puede incluir en el terminal de usuario 300 cualquier otro componente adecuado, incluidos, entre otros, un bus de sistema o un controlador (no mostrados). En algunas realizaciones, un sistema operativo móvil 370 (por ejemplo, il)STM, Android™, Window Phone™) y una o más aplicaciones 380 se pueden cargar en la memoria 360 desde el almacenamiento 390 para ser ejecutadas por la CPU 340.
Para implementar diversos módulos, unidades y sus funcionalidades descritas en la presente divulgación, las plataformas de hardware de ordenador se pueden utilizar como la(s) plataforma(s) de hardware para uno o más de los elementos descritos en este documento. Un ordenador con elementos de interfaz de usuario se puede utilizar para implementar un ordenador personal (PC) o cualquier otro tipo de estación de trabajo o dispositivo terminal. Un ordenador también puede actuar como un servidor si se programa apropiadamente.
La FIG. 4 es un diagrama de bloques de un dispositivo de procesamiento a modo de ejemplo 120 de acuerdo con algunas realizaciones de la presente divulgación. El dispositivo de procesamiento 120 puede incluir un módulo de
obtención 410, un módulo de determinación de vector de características 420, un módulo de determinación de región de búsqueda 430, un módulo de determinación de imagen candidata 440, un módulo de determinación de imagen similar 450 y un módulo de transmisión 460.
Aquí y también a lo largo de la presente divulgación, un módulo se puede implementar de muchas maneras diferentes y como hardware, software o en diferentes combinaciones de hardware y software. Por ejemplo, todas o partes de las implementaciones de un módulo pueden ser un circuito de procesamiento que puede incluir parte o la totalidad de un procesador de instrucciones, tal como una unidad central de procesamiento (CPU), un microcontrolador, un microprocesador; o un circuito integrado de aplicación específica (ASIC), un procesador de señal digital (DSP), un dispositivo de procesamiento de señal digital (DSPD), un dispositivo lógico programable (PLD), una matriz de puertas programables en campo (FPGA), un controlador, otros componentes electrónicos; o como circuitos que incluyen lógica discreta u otros componentes de circuito, incluido un componente de circuito analógico, un componente de circuito digital o ambos; o cualquier combinación de los mismos. El circuito puede incluir componentes de hardware discretos interconectados o se puede combinar en un solo troquel de circuito integrado, se puede distribuir entre múltiples troqueles de circuito integrado o implementarse en un módulo de chip múltiple (MCM) de múltiples troqueles de circuito integrado en un paquete común, como ejemplos.
El módulo de obtención 410 puede obtener información y/o datos relacionados con el sistema de búsqueda de imágenes 100. Por ejemplo, el módulo de obtención 410 puede obtener una imagen objetivo. La imagen objetivo puede ser una imagen de cualquier objeto biológico (por ejemplo, un ser humano, un animal, una planta) y/o un objeto no biológico (por ejemplo, un vehículo, un edificio). Adicional o alternativamente, el módulo de obtención 410 puede obtener una pluralidad de imágenes, en donde al menos una imagen similar a la imagen objetivo debe ser buscada entre la pluralidad de imágenes. En algunas realizaciones, el módulo de obtención 410 puede transmitir la imagen objetivo y/o la pluralidad de imágenes a otros módulos del dispositivo de procesamiento 120 para su posterior procesamiento. Por ejemplo, el módulo de obtención 410 puede transmitir la imagen objetivo y la pluralidad de imágenes al módulo de determinación de vector de características 420 para determinar un vector de características objetivo de la imagen objetivo y un vector de características de cada una de la pluralidad de imágenes. Como otro ejemplo, el módulo de obtención 410 puede transmitir la imagen objetivo al módulo de determinación de región de búsqueda 430 para determinar una región de búsqueda en un espacio de características de N dimensiones basado en el vector de características objetivo y un rango de similitud preestablecido entre al menos una imagen similar y la imagen objetivo. Todavía como otro ejemplo, el módulo de obtención 410 puede transmitir la pluralidad de imágenes al módulo de determinación de imagen candidata 440 para determinar una o más imágenes candidatas.
El módulo de determinación de vector de características 420 se puede configurar para determinar el vector de características objetivo de la imagen objetivo y el vector de características de cada una de la pluralidad de imágenes. Cada vector de características objetivo y los vectores de características pueden ser un vector de características de N dimensiones en un espacio de características de N dimensiones. N puede haber sido cualquier número entero positivo adecuado. Los detalles relacionados con la determinación de vector de características objetivo y los vectores de características se pueden encontrar en otra parte de la presente descripción (por ejemplo, la operación 504 y las descripciones relevantes de la misma).
El módulo de determinación de la región de búsqueda 430 se puede configurar para determinar la región de búsqueda en el espacio de características de N dimensiones. La región de búsqueda se puede referir a una región en el espacio de características de N dimensiones a buscar. En algunas realizaciones, la región de búsqueda puede ser un espacio definido por un rango de coordenadas en cada dimensión del espacio de características de N dimensiones. Por ejemplo, el módulo de determinación de región de búsqueda 430 puede determinar un rango de coordenadas en cada dimensión basándose en el vector de características objetivo y un rango de similitud preestablecido entre al menos una imagen similar y la imagen objetivo. El rango de similitud preestablecido puede definir un rango requerido de un grado de similitud entre cada imagen similar a buscar y la imagen objetivo. Los detalles relacionados con la determinación de región de búsqueda se pueden encontrar en otra parte de la presente divulgación (por ejemplo, la operación 506 y las descripciones relevantes de la misma).
El módulo de determinación de imagen candidata 440 se puede configurar para determinar una o más imágenes candidatas entre la pluralidad de imágenes. El vector de características de cada imagen candidata puede estar dentro de la región de búsqueda. En algunas realizaciones, para facilitar la determinación de la(s) imagen(es) candidata(s), el módulo de determinación de imagen candidata 440 puede generar un índice de la pluralidad de imágenes y determinar la(s) imagen(es) candidata(s) según el índice de las imágenes. Los detalles relacionados con la determinación de la(s) imagen(es) candidata(s) se pueden encontrar en otra parte de la presente divulgación (por ejemplo, la operación 508 y las descripciones relevantes de la misma).
El módulo de determinación de imagen similar 450 se puede configurar para determinar la al menos una imagen similar a la imagen objetivo entre una o más imágenes candidatas en función del rango de similitud preestablecido, el vector de características objetivo y uno o más vectores de características de la una o más imágenes candidatas. En algunas realizaciones, el módulo de determinación de imagen similar 450 puede determinar una imagen candidata como una imagen similar a la imagen objetivo si el grado de similitud entre la imagen candidata y la imagen objetivo está dentro del rango de similitud prestablecido. Los detalles relacionados con la determinación de al menos una imagen similar
se pueden encontrar en otra parte de la presente descripción (por ejemplo, la operación 510 y las descripciones relevantes de la misma).
El módulo de transmisión 460 se puede configurar para transmitir una lista de visualización que incluye al menos una parte de al menos una imagen similar a un dispositivo terminal (por ejemplo, un dispositivo terminal 140) para su visualización. En algunas realizaciones, la al menos una imagen similar puede incluir una pluralidad de imágenes similares a la imagen objetivo. La lista de visualización puede incluir al menos una parte de la pluralidad de imágenes similares. En algunas realizaciones, el módulo de transmisión 460 puede clasificar la pluralidad de imágenes similares según los grados de similitud entre cada imagen similar y la imagen objetivo en orden descendente para generar un primer resultado de clasificación. El módulo de transmisión 460 puede generar además una lista de visualización que incluye al menos una parte de las imágenes similares, donde al menos una parte de las imágenes similares en la lista de visualización son clasificadas según el primer resultado de clasificación.
Cabe señalar que la descripción anterior del dispositivo de procesamiento 120 se proporciona meramente con fines ilustrativos y no se pretende que se entienda como la única realización. Para las personas con conocimientos ordinarios en la técnica, se pueden realizar diversas variaciones y modificaciones bajo la enseñanza de algunas realizaciones de la presente divulgación. Sin embargo, esas variaciones y modificaciones no se apartan de la protección de algunas realizaciones de la presente divulgación. En algunas realizaciones, se pueden omitir uno o más de los módulos mencionados anteriormente. Por ejemplo, se puede omitir el módulo de transmisión 460. En algunas realizaciones, dos o más de los módulos se pueden combinar en un solo módulo, y cualquiera de los módulos se puede dividir en dos o más unidades. Por ejemplo, el módulo de determinación de imagen candidata 440 y el módulo de determinación de imagen similar 450 se pueden integrar en un único módulo. En algunas realizaciones, el dispositivo de procesamiento 120 puede incluir además uno o más módulos adicionales, tal como un módulo de división configurado para dividir la región de búsqueda en una pluralidad de regiones de sub-búsqueda.
La FIG. 5 es un diagrama de flujo que ilustra un proceso a modo de ejemplo 500 para la búsqueda de imágenes de acuerdo con algunas realizaciones de la presente divulgación. En algunas realizaciones, el proceso 500 se puede implementar en el sistema de búsqueda de imágenes 100 como se ilustra en la FIG. 1. Por ejemplo, el proceso 500 se puede almacenar en un medio de almacenamiento (por ejemplo, el dispositivo de almacenamiento 150 o el almacenamiento 203 del dispositivo informático 200) como una forma de instrucciones, y ser invocado y/o ejecutado por el dispositivo de procesamiento 120 (por ejemplo, el procesador 201 del dispositivo informático 200, la CPU 340 del dispositivo móvil 300 y/o uno o más módulos ilustrados en la FIG. 4).
En 502, el dispositivo de procesamiento 120 (por ejemplo, el módulo de obtención 410) (por ejemplo, los circuitos de interfaz del procesador 201) puede obtener una imagen objetivo y una pluralidad de imágenes, en donde al menos una imagen similar a la imagen objetivo debe ser buscada de la pluralidad de imágenes.
La imagen objetivo puede ser una imagen bidimensional (2D), una imagen tridimensional (3D), una imagen tetradimensional (4D) o cualquier otro tipo de imagen. La imagen objetivo se puede almacenar en cualquier formato de imagen, como formato RAW (por ejemplo, datos de imagen procesados sin procesar), formato de archivo de entrada etiquetado (TIFF), formato de grupo de expertos en fotografía conjunta (JPEG), formato de intercambio de gráficos (GIF), o un formato de mapa de bits (BMP), o similar, o una combinación de los mismos. La imagen objetivo puede ser una imagen de cualquier objeto biológico (por ejemplo, un ser humano, un animal, una planta) y/o un objeto no biológico (por ejemplo, un vehículo, un edificio).
La pluralidad de imágenes puede incluir imágenes a partir de las cuales se va a buscar al menos una imagen similar. Similar a la imagen objetivo, las imágenes pueden ser de cualquier tipo y se pueden almacenar en cualquier formato de imagen. Las imágenes pueden ser imágenes de cualquier objeto biológico y/o un objeto no biológico. Diferentes imágenes pueden tener el mismo tipo de imagen (o formato) o diferentes tipos de imagen (o formatos). En algunas realizaciones, las imágenes y la imagen objetivo pueden ser imágenes de un mismo tipo de objeto, por ejemplo, tanto las imágenes como la imagen objetivo son imágenes de seres humanos. Alternativamente, las imágenes y la imagen objetivo pueden ser imágenes de diferentes tipos de objetos.
En algunas realizaciones, la imagen objetivo y/o las imágenes se pueden obtener de uno o más componentes del sistema de búsqueda de imágenes 100, tal como el dispositivo de adquisición de imágenes 170, un dispositivo de almacenamiento (por ejemplo, el dispositivo de almacenamiento 150, el almacenamiento 203 del dispositivo informático 200, el almacenamiento 390), el dispositivo terminal 140, o similar, o cualquier combinación de los mismos. Por ejemplo, la imagen objetivo se puede obtener del dispositivo terminal 140 y las imágenes se pueden obtener del dispositivo de almacenamiento 150. Adicionalmente o alternativamente, la imagen objetivo y/o las imágenes se pueden obtener de una fuente externa a través de una red (por ejemplo, la red 130). Por ejemplo, el dispositivo de procesamiento 120 puede adquirir las imágenes de una base de datos de imágenes externa designada por un usuario.
En algunas realizaciones, el dispositivo de procesamiento 120 puede recibir una solicitud de búsqueda para buscar al menos una imagen similar a la imagen objetivo. En respuesta a la solicitud de búsqueda, el dispositivo de procesamiento 120 puede obtener la imagen objetivo y la pluralidad de imágenes. En algunas realizaciones, la solicitud de búsqueda puede ser introducida por un usuario a través de un dispositivo terminal (por ejemplo, el dispositivo terminal 140). La solicitud de búsqueda, incluida la imagen objetivo, se puede transmitir desde el dispositivo terminal
al dispositivo de procesamiento 120 a través de una red (por ejemplo, la red 130). Alternativamente, la solicitud de búsqueda puede ser iniciada por un dispositivo informático (por ejemplo, el dispositivo de procesamiento 120) en ciertas condiciones. Por ejemplo, el dispositivo informático puede designar una imagen para ser procesada como una imagen objetivo e iniciar una solicitud de búsqueda para buscar imágenes similares a la imagen objetivo. Como otro ejemplo, el dispositivo informático puede designar una imagen explorada por un usuario como una imagen objetivo e iniciar una solicitud de búsqueda para buscar imágenes similares a la imagen objetivo, en donde las imágenes similares pueden ser recomendadas al usuario. En algunas realizaciones, la solicitud de búsqueda puede incluir además un rango de búsqueda que especifica la pluralidad de imágenes a buscar, por ejemplo, una fuente, un tipo, un tiempo de captura, una ubicación capturada o una o más características de la pluralidad de imágenes. El dispositivo de procesamiento 120 puede obtener las imágenes de acuerdo con el rango de búsqueda.
En 504, el dispositivo de procesamiento 120 (por ejemplo, el módulo de determinación de vector de características 420) (por ejemplo, los circuitos de procesamiento del procesador 201) puede determinar un vector de características objetivo de la imagen objetivo y un vector de características de cada una de la pluralidad de imágenes.
Cada vector de características objetivo y los vectores de características pueden ser un vector de características de N dimensiones en un espacio de características de N dimensiones. N puede haber sido cualquier número entero positivo adecuado. Cada dimensión del vector de características objetivo puede representar una característica de la imagen objetivo y tener un valor de característica objetivo de la imagen objetivo en la dimensión. Con fines ilustrativos, el vector de características objetivo se indica como (A1, A 2 ,...... , An) en el presente documento, en donde Ai representa un valor de característica objetivo del vector de características objetivo en una dimensión i-nésima. Cada dimensión de un vector de características de una imagen puede representar una característica de la imagen y tener un valor de característica de la imagen en la dimensión. Las características a modo de ejemplo de una imagen o de la imagen objetivo pueden incluir una característica de bajo nivel, una característica de alto nivel (por ejemplo, una característica semántica) o una característica complicada (por ejemplo, una característica jerárquica profunda determinada por un modelo de aprendizaje automático), o similares, o cualquier combinación de las mismas. Las funciones de bajo nivel a modo de ejemplo pueden incluir una característica basada en color (por ejemplo, una característica RGB, una característica en escala de grises, etc.), una característica basada en textura (por ejemplo, una característica de patrón binario local (LBP), etc.), una característica basada en normalización (por ejemplo, una característica normalizada de iluminación, una característica normalizada de color, etc.), una característica basada en gradientes (por ejemplo., una característica de histograma de gradientes orientados (HOG), una característica de histograma de ubicación y orientación de gradiente (GLOH), etc.), o similares, o cualquier combinación de las mismas. En algunas realizaciones, la característica de alto nivel se puede determinar analizando la característica de bajo nivel utilizando un modelo de aprendizaje automático. Las características complicadas se pueden determinar analizando las características de alto nivel utilizando un modelo de aprendizaje automático.
En algunas realizaciones, el espacio de características de N dimensiones se puede considerar como un sistema de coordenadas de N dimensiones, y cada dimensión en el espacio de características de N dimensiones se puede considerar como un eje de coordenadas en el sistema de coordenadas de N dimensiones. Un vector de características de N dimensiones de una imagen puede representar un punto en el espacio de características de N dimensiones (es decir, el sistema de coordenadas de N dimensiones), en donde un valor de característica en cada dimensión puede representar un valor de coordenadas del punto a lo largo del eje de coordenadas correspondiente. Por ejemplo, un vector de características de N dimensiones de una imagen A puede representar un punto A' en el espacio de características de N dimensiones, en donde un valor de característica en la dimensión i-nésima puede representar un valor de coordenadas del punto A' en un eje de coordenadas dimensional i-nésima correspondiente.
En algunas realizaciones, el dispositivo de procesamiento 120 puede extraer los valores de características objetivo de la imagen objetivo analizando la imagen objetivo y construir el vector de características objetivo utilizando los valores de características objetivo. Para cada una de las imágenes, el dispositivo de procesamiento 120 puede extraer los valores característicos de la imagen analizando la imagen y construir el vector de características correspondiente utilizando los valores de características correspondientes. En algunas realizaciones, el dispositivo de procesamiento 120 puede determinar el vector de características objetivo y los vectores de características basándose en un modelo de aprendizaje automático. El modelo de aprendizaje automático se puede configurar para recibir una imagen y generar un vector de características de la imagen mediante el análisis de la imagen introducida. Por ejemplo, la imagen objetivo y las imágenes se pueden introducir en el modelo de aprendizaje automático, respectivamente, para generar un vector de características correspondiente.
En algunas realizaciones, el modelo de aprendizaje automático puede ser entrenado por adelantado por un dispositivo informático (por ejemplo, el dispositivo de procesamiento 120 u otro dispositivo de procesamiento) y almacenado en un dispositivo de almacenamiento (por ejemplo, el dispositivo de almacenamiento 150, el almacenamiento 203 del dispositivo informático 200, el almacenamiento 390) del sistema de búsqueda de imágenes 100 o una fuente externa. El dispositivo de procesamiento 120 puede obtener el modelo de aprendizaje automático del dispositivo de almacenamiento o de la fuente externa a través de una red. En algunas realizaciones, el modelo de aprendizaje automático puede ser un modelo de red neuronal convolucional (CNN), un modelo de red neuronal totalmente convolucional (FCN), una red antagónica generativa (GAN), un modelo de red neuronal de retropropagación (BP), un modelo de red neuronal de función de base radial (RBF), un modelo de red neuronal de redes de creencia profunda (DBN), un modelo de red neuronal de Elman o cualquier otro tipo de modelo.
En 506, el dispositivo de procesamiento 120 (por ejemplo, el módulo de determinación de la región de búsqueda 430) (por ejemplo, los circuitos de procesamiento del procesador 201) puede determinar una región de búsqueda en el espacio de características de N dimensiones en función del vector de características objetivo y un rango de similitud preestablecido entre al menos una imagen similar y la imagen objetivo.
Como se utiliza aquí, el rango de similitud preestablecido define un rango requerido de un grado de similitud entre cada imagen similar a buscar y la imagen objetivo. Por ejemplo, el rango de similitud preestablecido puede definir un grado de similitud mínimo (indicado como S1) y un grado de similitud máximo (indicado como S2). Por ejemplo, el rango de similitud preestablecido puede definir que el grado de similitud entre cada imagen similar y la imagen objetivo debe estar en un rango de [60 %, 100 %] o (90 %, 100 %).
En algunas realizaciones, el grado de similitud entre la imagen objetivo y una determinada imagen se puede medir por un grado de similitud entre el vector de características objetivo de la imagen objetivo y un vector de características de la imagen determinada. El grado de similitud entre el vector de características objetivo y el vector de características de la imagen determinada se puede determinar en función de un algoritmo de similitud, que incluye, entre otros, un algoritmo de distancia euclidiana, un algoritmo de distancia de Manhattan, un algoritmo de distancia de Minkowski, un algoritmo de similitud de coseno, un algoritmo de similitud de Jaccard, un algoritmo de correlación de Pearson, o similar, o cualquier combinación de los mismos. En algunas realizaciones, el vector de características objetivo y el vector de características pueden representar un punto objetivo y un punto en el espacio de características de N dimensiones, respectivamente. El grado de similitud entre el vector de características objetivo y el vector de características puede tener una correlación negativa con una distancia geométrica entre el punto objetivo y el punto en el espacio de características de N dimensiones. La distancia geométrica entre el punto objetivo y el punto se puede referir, por ejemplo, a una distancia euclidiana, una distancia de Manhattan, una distancia de Chebyshev, una distancia de Minkowski, una distancia euclidiana estandarizada, una distancia de Mahalanobis, una distancia de coseno o similares.
En algunas realizaciones, un usuario puede establecer manualmente el rango de similitud preestablecido. Por ejemplo, como se describe en relación con la operación 502, un usuario puede introducir una solicitud de búsqueda para buscar una o más imágenes similares a la imagen objetivo. El usuario puede introducir un rango de similitud esperado entre una o más imágenes similares y la imagen objetivo, en donde el rango de similitud esperado se puede incluir en la solicitud de búsqueda y se puede transmitir al dispositivo de procesamiento 120. El rango de similitud esperado se puede designar como rango de similitud prestablecido. Alternativamente, el rango de similitud preestablecido puede ser una configuración predeterminada del sistema de búsqueda de imágenes 100 o ser determinado por un dispositivo informático de acuerdo con diferentes situaciones. Por ejemplo, el grado de similitud mínimo S1 del rango de similitud preestablecido se puede incrementar si el recuento de las imágenes a buscar es mayor que un umbral. Alternativamente, una parte del rango de similitud preestablecido (por ejemplo, el grado de similitud mínimo S1) se puede establecer mediante un manual de usuario, y la otra parte del rango de similitud preestablecido (por ejemplo, el grado de similitud máximo S2) puede ser una configuración predeterminada del sistema de búsqueda de imágenes 100 o ser determinado por el dispositivo informático de acuerdo con diferentes situaciones.
La región de búsqueda se puede referir a una región en el espacio de características de N dimensiones a buscar. En algunas realizaciones, la región de búsqueda puede ser un espacio definido por un rango de coordenadas en cada dimensión del espacio de características de N dimensiones. Por ejemplo, el dispositivo de procesamiento 120 puede determinar un rango de coordenadas en cada dimensión basándose en el vector de características objetivo y el rango de similitud preestablecido. El dispositivo de procesamiento 120 puede determinar además la región de búsqueda basándose en los rangos de coordenadas en las N dimensiones. En algunas realizaciones, el dispositivo de procesamiento 120 puede realizar una o más operaciones del proceso 600A como se describe en relación con la FIG.
6A para determinar los rangos de coordenadas y la región de búsqueda. Como otro ejemplo, el rango de similitud preestablecido puede definir un grado de similitud mínimo S1 y un grado de similitud máximo S2 como se ha descrito anteriormente. El dispositivo de procesamiento 120 puede determinar una primera región correspondiente al máximo grado de similitud S2 y una segunda región correspondiente al mínimo grado de similitud S1. El dispositivo de procesamiento 120 puede determinar además la región de búsqueda basándose en la primera región y en la segunda región. En algunas realizaciones, el dispositivo de procesamiento 120 puede realizar una o más operaciones del proceso 600B como se describe en relación con la FIG. 6B para determinar la primera región, la segunda región y la región de búsqueda.
De acuerdo con la invención, la región de búsqueda incluye una pluralidad de regiones de sub-búsqueda en el espacio de características de N dimensiones. El dispositivo de procesamiento 120 divide el rango de similitud preestablecido en una pluralidad de sub-rangos. El dispositivo de procesamiento 120 determina además una pluralidad de regiones de sub-búsqueda correspondientes a los sub-rangos, en donde las regiones de sub-búsqueda forman la región de búsqueda. En algunas realizaciones, diferentes regiones de sub-búsqueda se pueden superponer al menos parcialmente entre sí o no superponerse en absoluto en el espacio de características de N dimensiones. Los detalles relacionados con la determinación de región de sub-búsqueda se pueden encontrar en otra parte de la presente divulgación (por ejemplo, las operaciones 702 y 704 en la FIG. 7 y las descripciones relevantes de las mismas).
En 508, el dispositivo de procesamiento 120 (por ejemplo, el módulo de determinación de imagen candidata 440) (por ejemplo, los circuitos de procesamiento del procesador 201) puede determinar una o más imágenes candidatas entre
la pluralidad de imágenes. El vector de características de cada imagen candidata puede estar dentro de la región de búsqueda. Como se utiliza aquí, el vector de características de una imagen se puede considerar dentro de la región de búsqueda si un valor de característica del vector de características en cada dimensión está dentro del rango de coordenadas de la región de búsqueda en la dimensión.
En algunas realizaciones, para facilitar la determinación de la(s) imagen(es) candidata(s), el dispositivo de procesamiento 120 puede generar un índice de la pluralidad de imágenes y determinar la(s) imagen(es) candidata(s) de acuerdo con el índice de las imágenes. Por ejemplo, el dispositivo de procesamiento 120 puede almacenar los vectores de características de las imágenes en una tabla. La tabla puede incluir una pluralidad de filas y N columnas, donde cada fila representa una imagen de las imágenes y cada columna representa una dimensión en el espacio de características de N dimensiones (es decir, una característica de una imagen). En algunas realizaciones, la tabla puede incluir una o más columnas adicionales configuradas para almacenar una o más características de las imágenes (por ejemplo, una ruta de almacenamiento, un formato de imagen, etc.). En algunas realizaciones, la tabla se puede almacenar en una base de datos, tal como una base de datos Oracle, una base de datos MySQL o similar, o una combinación de las mismas.
El dispositivo de procesamiento 120 puede además crear un índice para cada una de las N columnas de la tabla. Un índice creado para una columna se puede utilizar para buscar valores de características en la dimensión correspondiente y mejorar la velocidad de búsqueda. Además, el dispositivo de procesamiento 120 puede seleccionar la(s) imagen(es) candidata(s) entre las imágenes basándose en la región de búsqueda y en los índices de la tabla. Por ejemplo, la región de búsqueda puede definir un rango de coordenadas en cada dimensión como se ha descrito anteriormente. El dispositivo de procesamiento 120 puede recuperar la(s) imagen(es) candidata(s) de la tabla utilizando una instrucción de consulta (por ejemplo, una instrucción de "seleccionar"). La instrucción de consulta puede especificar un rango de valores en cada columna, que es igual al rango de coordenadas de la dimensión correspondiente.
Con fines ilustrativos, a continuación se proporciona como ejemplo la determinación de la(s) imagen(es) candidata(s) basada en una base de datos MySQL. Se supone que el vector de características objetivo de la imagen objetivo y el vector de características de cada imagen están en un espacio de características de 16 dimensiones. El vector de características objetivo se puede indicar como (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16). La región de búsqueda puede estar definida por un rango de coordenadas en cada una de las 16 dimensiones, es decir, [a1 -d', a1 -d) y (a1 d, a1 d'] en una primera dimensión, [a2-d', a2-d) y (a2+d, a2+d'] en una segunda dimensión, ..... , y [a16-d', a16-d) y (a16+d, a16+d'] en un 16° dimensión. El dispositivo de procesamiento 120 puede crear una tabla para almacenar los vectores de características de las imágenes utilizando una primera instrucción SQL "CREATE TABLE Feature (x1 entero, x2 entero, x3 entero, x4 entero, x5 entero, x6 entero, x7 entero, x8 entero, x9 entero, x10 entero, x11 entero, x12 entero, x13 entero, x14 entero, x15 entero, x16 entero)". El dispositivo de procesamiento 120 puede crear un índice para cada columna de la tabla usando una segunda instrucción SQL "CREATE INDEX FeatureIndex on Feature(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16)". El dispositivo de procesamiento 120 puede recuperar una o más imágenes candidatas cuyos vectores de características se encuentran en la región de búsqueda utilizando una tercera instrucción SQL como se muestra a continuación:
"seleccione * de Característica (en donde x1 >=a1 -d' y x1<a1-d o x1>a1+d y x1 <=a1 d')
y (x2>=a2-d' y x2<a2-d o x2>a2+d y x2<=a2+d')
y (x3>=a3-d' y x1 <a3-d o x3>a3+d y x3<=a3+d')
y (x16>=a16-d' y x16<a16-d o x16>a16+d y x16<=a16+d')"
En algunas realizaciones, como se describe en relación con la operación 506, la región de búsqueda puede incluir una pluralidad de regiones de sub-búsqueda. El dispositivo de procesamiento 120 puede determinar una o más primeras imágenes candidatas para cada región de sub-búsqueda. La una o más primeras imágenes candidatas correspondientes a cada región de sub-búsqueda pueden formar las imágenes candidatas correspondientes a la región de búsqueda. Los detalles relacionados con la determinación de una o más primeras imágenes candidatas correspondientes a una región de sub-búsqueda se pueden encontrar en otra parte de la presente divulgación (por ejemplo, la operación 706 en la FIG. 7 y las descripciones relevantes de la misma).
En 510, el dispositivo de procesamiento 120 (por ejemplo, el módulo de determinación de imagen similar 450) (por ejemplo, los circuitos de procesamiento del procesador 201) puede determinar al menos una imagen similar a la imagen objetivo entre una o más imágenes candidatas en función de la rango de similitud preestablecido, el vector de características objetivo y uno o más vectores de características de una o más imágenes candidatas.
De acuerdo con la invención, el dispositivo de procesamiento 120 determina una imagen candidata como una imagen similar a la imagen objetivo si el grado de similitud entre la imagen candidata y la imagen objetivo está dentro del rango de similitud preestablecido. El dispositivo de procesamiento 120 determina un grado de similitud entre la imagen objetivo y cada imagen candidata. El grado de similitud entre la imagen objetivo y una imagen candidata se puede medir por un grado de similitud entre el vector de características objetivo y un vector de características de la imagen candidata. Los detalles relacionados con el grado de similitud entre la imagen objetivo y una imagen candidata se
pueden encontrar en otra parte de la presente divulgación (por ejemplo, la operación 506 y las descripciones relevantes de la misma). El dispositivo de procesamiento 120 selecciona al menos una imagen candidata entre una o más imágenes candidatas, en donde el grado de similitud entre cada imagen candidata seleccionada y la imagen objetivo está dentro del rango de similitud preestablecido. El dispositivo de procesamiento 120 puede designar además la al menos una imagen candidata seleccionada como la al menos una imagen similar a la imagen objetivo.
En 512, el dispositivo de procesamiento 120 (por ejemplo, el módulo de transmisión 460) (por ejemplo, los circuitos de interfaz del procesador 201) puede transmitir una lista de visualización que incluye al menos una parte de al menos una imagen similar a un dispositivo terminal (por ejemplo, un dispositivo terminal 140) para visualización.
En algunas realizaciones, el dispositivo terminal puede estar asociado con un usuario del sistema de búsqueda de imágenes 100. Por ejemplo, el dispositivo terminal puede estar asociado con un usuario que inicia una solicitud de búsqueda para buscar al menos una imagen similar. En algunas realizaciones, la al menos una imagen similar puede incluir una pluralidad de imágenes similares a la imagen objetivo. La lista de visualización puede incluir al menos una parte de la pluralidad de imágenes similares. Por ejemplo, la lista de visualización puede incluir la totalidad o una parte de las imágenes similares. Las imágenes similares en la lista de visualización se pueden clasificar aleatoriamente o según uno o más criterios de clasificación (por ejemplo, un tiempo de captura, un grado de similitud con la imagen objetivo, una definición de imagen, un tamaño de imagen). Por ejemplo, el dispositivo de procesamiento 120 puede clasificar las imágenes similares según los grados de similitud entre cada imagen similar y la imagen objetivo en orden descendente para generar un primer resultado de clasificación. El dispositivo de procesamiento 120 puede generar además una lista de visualización que incluye al menos una parte de las imágenes similares, en donde al menos una parte de las imágenes similares en la lista de visualización se clasifican según el primer resultado de clasificación. La al menos una parte de las imágenes similares puede incluir todas o una parte (por ejemplo, 3 principales, 10 principales, 20 principales, etc.) de las imágenes similares. El dispositivo de procesamiento 120 puede además transmitir la lista de visualización al dispositivo terminal para su visualización.
En algunas realizaciones, después de recibir la lista de visualización, el dispositivo terminal puede visualizar la lista de visualización según una preferencia de un usuario asociado con el dispositivo terminal. Por ejemplo, el dispositivo terminal puede mostrar un cierto número de imágenes similares en una interfaz de acuerdo con una configuración de usuario del dispositivo terminal. Adicional o alternativamente, el dispositivo terminal puede recibir una respuesta con respecto a la lista de visualización del usuario. Por ejemplo, el usuario puede hacer clic en una imagen similar en la lista de visualización para ampliar la imagen similar en la que se hizo clic. Como otro ejemplo, el usuario puede introducir una solicitud para buscar una o más imágenes similares a la imagen objetivo si no está satisfecho con la lista de visualización o necesita buscar más imágenes similares.
Cabe señalar que la descripción anterior del proceso 500 se proporciona meramente con fines ilustrativos y no se pretende que se entienda como la única realización. Para las personas con conocimientos ordinarios en la técnica, se pueden realizar diversas variaciones y modificaciones bajo la enseñanza de algunas realizaciones de la presente descripción. Sin embargo, esas variaciones y modificaciones pueden no apartarse de la protección de algunas realizaciones de la presente divulgación. En algunas realizaciones, el proceso 500 puede realizarse con una o más operaciones adicionales no descritas y/o sin una o más de las operaciones expuestas. Por ejemplo, el proceso 500 puede incluir además una operación de almacenamiento, en la que el dispositivo de procesamiento 120 puede almacenar al menos una imagen similar y/o un resultado intermedio en un dispositivo de almacenamiento (por ejemplo, el dispositivo de almacenamiento 150 o el almacenamiento 203) descrito en otra parte de la presente divulgación. Como otro ejemplo, se puede omitir la operación 512. Además, el orden de las operaciones del proceso 500 como se ilustra en la FIG. 5 y se ha descrito anteriormente no tiene la intención de ser limitativo.
La FIG. 6A es un diagrama de flujo que ilustra un proceso a modo de ejemplo para determinar una región de búsqueda de acuerdo con algunas realizaciones de la presente divulgación. En algunas realizaciones, el proceso 600A se puede implementar en el sistema de búsqueda de imágenes 100 como se ilustra en la FIG. 1. Por ejemplo, el proceso 600A se puede almacenar en un medio de almacenamiento (por ejemplo, el dispositivo de almacenamiento 150 o el almacenamiento 203) como una forma de instrucciones y ser invocado y/o ejecutado por el dispositivo de procesamiento 120 (por ejemplo, el procesador 201 del dispositivo informático 200, la CPU 340 del dispositivo móvil 300 y/o uno o más módulos ilustrados en la FIG. 4). En algunas realizaciones, se pueden realizar una o más operaciones del proceso 600A para conseguir al menos parte de la operación 506 como se describe en relación con la FIG. 5.
En 602, el dispositivo de procesamiento 120 (por ejemplo, el módulo de determinación de región de búsqueda 430) (por ejemplo., los circuitos de procesamiento del procesador 201) puede determinar un rango de distancia geométrica en el espacio de características de N dimensiones, correspondiente al rango de similitud preestablecido.
Como se describe en otra parte de esta divulgación (por ejemplo, la FIG. 5 y las descripciones relevantes), el rango de similitud preestablecido puede definir un grado mínimo de similitud S1 y un grado máximo de similitud S2 entre cada imagen similar a buscar y la imagen objetivo. El vector de características objetivo de la imagen objetivo puede representar un punto objetivo, y un vector de características de una imagen puede representar un punto en el espacio de características de N dimensiones. El grado de similitud entre la imagen objetivo y una imagen puede tener una correlación negativa con la distancia entre el punto objetivo y el punto correspondiente a la imagen. El rango de
distancia geométrica se puede referir a un rango requerido de una distancia geométrica entre el punto objetivo y un punto correspondiente a cada imagen similar. En algunas realizaciones, el rango de distancia geométrica puede incluir una distancia geométrica más corta (indicada como D1) y una distancia geométrica más larga (indicada como D2). Un punto situado en la distancia geométrica más larga D2 al punto objetivo puede representar una imagen que tiene el grado mínimo de similitud S1 con la imagen objetivo. Un punto situado en la distancia geométrica más corta D1 al punto objetivo puede representar una imagen que tiene el máximo grado de similitud S2 con la imagen objetivo.
En algunas realizaciones, el dispositivo de procesamiento 120 puede determinar el rango de distancia geométrica determinando la distancia geométrica más larga D2 y/o la distancia geométrica más corta D1. Por ejemplo, el dispositivo de procesamiento 120 puede determinar la distancia geométrica más larga D2 basándose en el grado de similitud mínimo S1 y una relación entre las distancias geométricas en el espacio de características de N dimensiones y en los grados de similitud. La relación se puede describir en forma de una función de correlación, o una tabla o una curva que registre diferentes grados de similitud y sus distancias geométricas correspondientes. El dispositivo de procesamiento 120 puede determinar la distancia geométrica más larga D2 basándose en el grado mínimo de similitud S1 resolviendo la función de correlación, consultando la tabla o consultando la curva. De manera similar, el dispositivo de procesamiento 120 puede determinar la distancia geométrica más corta D1 basándose en el grado máximo de similitud S2 y la relación entre las distancias geométricas en el espacio de características de N dimensiones y en los grados de similitud. En algunas realizaciones, un valor límite, tal como la distancia geométrica más corta D1 y/o la distancia geométrica más larga D2, se puede incluir o excluir en el rango de distancia geométrica.
En 604, en cada dimensión, el dispositivo de procesamiento 120 (por ejemplo, el módulo de determinación de región de búsqueda 430) puede determinar un rango de coordenadas de al menos una imagen similar en la dimensión, en donde una diferencia entre el valor de la característica objetivo del vector de características objetivo en la dimensión y cada valor en el rango de coordenadas está dentro del rango de distancia geométrica.
Como se utiliza aquí, un rango de coordenadas de al menos una imagen similar en una dimensión se puede referir a un rango requerido de un valor de coordenadas de un vector de características de cada imagen similar en la dimensión. Por ejemplo, el rango de distancia geométrica correspondiente al rango de similitud preestablecido se puede indicar como [D1, D2], y el vector de características objetivo en el espacio de características de N dimensiones se puede indicar como (A1, A 2 ,...... , An). El rango de coordenadas de al menos una imagen similar en una dimensión i-nésima puede ser [Ai-D2, Ai-D1] o [Ai+D1, Ai+D2], en donde una diferencia entre Ai (es decir, el valor objetivo en la dimensión in) y cada valor en [Ai-D2, Ai-D1] o [Ai+D1, Ai+D2] está dentro de [D1, D2].
En 606, el dispositivo de procesamiento 120 (por ejemplo, el módulo de determinación de región de búsqueda 430) (por ejemplo, los circuitos de procesamiento del procesador 201) puede determinar una región de búsqueda en función del rango de coordenadas en cada dimensión. Por ejemplo, el dispositivo de procesamiento 120 puede determinar una región formada por el rango de coordenadas en cada dimensión como la región de búsqueda. Por ejemplo, la región de búsqueda puede ser una región que incluya una pluralidad de puntos en el espacio de características de N dimensiones. Una coordenada de cada punto en la primera dimensión puede estar dentro del rango de coordenadas en la primera dimensión (por ejemplo, [A1-D2, A1-D1] o [A1+D1, A1+D2]), una coordenada de cada punto en la segunda dimensión puede estar en el rango de coordenadas en la segunda dimensión (por ejemplo, [A2-D2, A2-D1] o [A2+D1, A2+D2]), ......., y una coordenada de cada punto de la i-nésima dimensión puede estar en el rango de coordenadas en el N-ésima dimensión (por ejemplo, [An-D2, An-D1] o [An+D1, An+D2]).
La FIG. 6B es un diagrama de flujo que ilustra un proceso a modo de ejemplo para determinar una región de búsqueda de acuerdo con algunas realizaciones de la presente divulgación. En algunas realizaciones, el proceso 600B se puede implementar en el sistema de búsqueda de imágenes 100 como se ilustra en la FIG. 1. Por ejemplo, el proceso 600B se puede almacenar en un medio de almacenamiento (por ejemplo, el dispositivo de almacenamiento 150 o el almacenamiento 203) como una forma de instrucciones, y ser invocado y/o ejecutado por el dispositivo de procesamiento 120 (por ejemplo, el procesador 201 del dispositivo informático 200, la CPU 340 del dispositivo móvil 300 y/o uno o más módulos ilustrados en la FIG. 4). Las operaciones en el proceso 600B que se presentan a continuación pretenden ser ilustrativas. En algunas realizaciones, se pueden realizar una o más operaciones del proceso 600B para obtener al menos parte de la operación 506 como se describe en relación con la FIG. 5.
En 612, el dispositivo de procesamiento 120 (por ejemplo, el módulo de determinación de región de búsqueda 430) puede determinar un rango de distancia geométrica en el espacio de características de N dimensiones, correspondiente al rango de similitud preestablecido. El rango de distancia geométrica puede estar definido por una distancia geométrica más corta D1 y una distancia geométrica más larga D2. Se pueden encontrar más descripciones con respecto a la determinación de rango de distancia geométrica en otra parte de la presente divulgación. Véase, por ejemplo, la operación 602 en la FIG. 6 y descripciones relevantes de la misma.
En 614, en cada dimensión, el dispositivo de procesamiento 120 (por ejemplo, el módulo de determinación de región de búsqueda 430) (por ejemplo, los circuitos de procesamiento del procesador 201) puede determinar un primer rango de coordenadas basado en la distancia geométrica más corta D1 y un valor de característica objetivo en la dimensión, en donde una diferencia entre el valor de la característica objetivo en la dimensión y cada valor en el primer rango de coordenadas puede ser igual o menor que la distancia geométrica más corta D1. Por ejemplo, el valor de la característica objetivo en un i-nésima dimensión puede ser Ai, y el primer rango de coordenadas en la i-nésima
dimensión puede ser [Ai-D1, Ai+D1], donde una diferencia entre Ai y cada valor en [Ai-D1, Ai+D1 ] es igual o menor que D1. En algunas realizaciones, los valores límite del primer rango de coordenadas, como Ai-D1 y/o Ai+D1, pueden estar o no dentro del primer rango de coordenadas. Por ejemplo, si D1 está dentro del rango de distancia geométrica, los valores límite del primer rango de coordenadas pueden estar dentro del primer rango de coordenadas, y una diferencia entre el valor de característica objetivo en una dimensión y cada valor en el primer rango de coordenadas en la dimensión puede ser igual o menor que la distancia geométrica más corta D1. Como otro ejemplo, si D1 no está dentro del rango de distancia geométrica, los valores límite del primer rango de coordenadas pueden no estar dentro del primer rango de coordenadas, y una diferencia entre el valor de la característica objetivo en una dimensión y cada valor en el primer rango de coordenadas en la dimensión puede ser menor que la distancia geométrica más corta D1.
En 616, en cada dimensión, el dispositivo de procesamiento 120 (por ejemplo, el módulo de determinación de región de búsqueda 430) (por ejemplo, los circuitos de procesamiento del procesador 201) puede determinar un segundo rango de coordenadas basado en la distancia geométrica más larga D2 y en el valor de la característica objetivo en la dimensión, en donde una diferencia entre el valor de la característica objetivo en la dimensión y cada valor en el segundo rango de coordenadas es igual o menor que la distancia geométrica más larga D2. Por ejemplo, el valor de la característica objetivo en un i-nésima dimensión puede ser Ai, y el segundo rango de coordenadas en la i-nésima dimensión puede ser [Ai-D2, Ai+D2], donde una diferencia entre Ai y cada valor en [Ai-D2, Ai+D2] es igual o menor que D2. Similar al primer rango de coordenadas, los valores límite del segundo rango de coordenadas, como Ai-D2 y Ai+D2, pueden estar o no dentro del segundo rango de coordenadas.
En 618, el dispositivo de procesamiento 120 (por ejemplo, el módulo de determinación de región de búsqueda 430) (por ejemplo, los circuitos de procesamiento del procesador 201) puede determinar una primera región definida por los primeros rangos de coordenadas en el espacio de características de N dimensiones y una segunda región definido por los segundos rangos de coordenadas en el espacio de características de N dimensiones.
En algunas realizaciones, el dispositivo de procesamiento 120 puede determinar una región formada por el primer rango de coordenadas en cada dimensión como la primera región. Por ejemplo, la primera región puede ser una región que incluya una pluralidad de primeros puntos en el espacio de características de N dimensiones. Una coordenada de cada primer punto en la primera dimensión puede estar dentro del primer rango de coordenadas en la primera dimensión (por ejemplo, [A1-D1, A1+D1]), una coordenada de cada primer punto en la segunda dimensión puede estar dentro del primer rango de coordenadas en la segunda dimensión (por ejemplo, [A2-D1, A2+D1], ■■■, y una coordenada de cada primer punto en la N-ésima dimensión puede estar dentro del primer rango de coordenadas en la N-ésima dimensión (por ejemplo, [An-D1, An+D1]). En algunas realizaciones, en cada dimensión, una diferencia entre un valor de coordenadas de un primer punto en la dimensión y el valor de la característica objetivo en la dimensión puede ser menor que la distancia geométrica mínima D1. Puede sugerir que un grado de similitud entre la imagen objetivo y una imagen correspondiente al primer punto sea mayor que el grado máximo de similitud S2, que está fuera del rango de similitud preestablecido.
De manera similar, el dispositivo de procesamiento 120 puede determinar una región formada por el segundo rango de coordenadas en cada dimensión en el espacio de características de N dimensiones como la segunda región. Por ejemplo, la segunda región puede ser una región en una pluralidad de segundos puntos en el espacio de características de N dimensiones. Una coordenada de cada segundo punto en la primera dimensión puede estar dentro del segundo rango de coordenadas en la primera dimensión (por ejemplo, [A1-D2, A1+D2]), una coordenada de cada segundo punto en la segunda dimensión puede estar dentro del segundo rango de coordenadas en la segunda dimensión (por ejemplo, [A2-D2, A2+D2], ■■■, y una coordenada de cada segundo punto en la N-esima dimensión puede estar dentro del segundo rango de coordenadas en la N-ésima dimensión (por ejemplo, [An-D2, An+D2]).
Con fines ilustrativos, se supone que el espacio de características de N dimensiones es un espacio de características bidimensional formado por un eje X y un eje Y, los primeros rangos de coordenadas en el eje X y el eje Y son ambos [-1, 1], los segundos rangos de coordenadas en el eje X y el eje Y son ambos [-2, 2]. En tal caso, una primera región en el espacio de características bidimensional puede ser un cuadrado con cuatro vértices cuyas coordenadas son ( 1, -1), (-1, 1), (1, -1) y (1, 1). Una segunda región en el espacio de características bidimensional puede ser un cuadrado con cuatro vértices cuyas coordenadas son (-2, -2), (-2, 2), (2, -2), (2, 2).
En 620, el dispositivo de procesamiento 120 (por ejemplo, el módulo de determinación de región de búsqueda 430) puede determinar una región en la segunda región que excluye la primera región como la región de búsqueda. Como se describe en relación con 618, un grado de similitud entre la imagen objetivo y una imagen correspondiente a un primer punto en la primera región está fuera del rango de similitud prestablecido. Así, el dispositivo de procesamiento 120 puede excluir la primera región de la región de búsqueda.
En algunas realizaciones, en cada dimensión, el dispositivo de procesamiento 120 puede determinar un rango de coordenadas de al menos una imagen similar a la que se va a buscar restando el primer rango de coordenadas en la dimensión del segundo rango de coordenadas en la dimensión. Por ejemplo, el rango de coordenadas de al menos una imagen similar en la i-nésima dimensión se puede determinar restando un primer rango de coordenadas [Ai-D1, Ai+D1] de un segundo rango de coordenadas [Ai-D2, Ai+D2], que es igual a un rango de coordenadas [Ai-D2, Ai-D1) y (Ai+D1, Ai+D2], en algunas realizaciones, la región de búsqueda puede incluir o excluir un límite de la primera región.
Cabe señalar que las descripciones anteriores de los procesos 600A y 600B se proporcionan meramente con fines ilustrativos y no se pretende que se entiendan como la única realización. Para las personas con conocimientos ordinarios en la técnica, se pueden realizar diversas variaciones y modificaciones bajo la enseñanza de algunas realizaciones de la presente divulgación. En algunas realizaciones, se pueden reducir o añadir algunas operaciones. Sin embargo, esas variaciones y modificaciones pueden no apartarse de la protección de algunas realizaciones de la presente divulgación. En algunas realizaciones, el proceso 600A y/o el proceso 600B se pueden realizar con una o más operaciones adicionales no descritas y/o sin una o más de las operaciones expuestas. Además, el orden de las operaciones del proceso 600A y/o del proceso 600B descrito anteriormente no se pretende que sea limitante. Por ejemplo, las operaciones 614 y 616 se pueden realizar simultáneamente, o la operación 616 se puede realizar antes que la 614.
La FIG. 7 es un diagrama de flujo que ilustra un proceso a modo de ejemplo para determinar al menos una imagen similar a una imagen objetivo según algunas realizaciones de la presente divulgación. En algunas realizaciones, el proceso 700 se puede implementar en el sistema de búsqueda de imágenes 100 como se ilustra en la FIG. 1. Por ejemplo, el proceso 700 se puede almacenar en un medio de almacenamiento (por ejemplo, el dispositivo de almacenamiento 150 o el almacenamiento 203) como una forma de instrucciones y ser invocado y/o ejecutado por el dispositivo de procesamiento 120 (por ejemplo, el procesador 201 del dispositivo informático 200, la CPU 340 del dispositivo móvil 300 y/o uno o más módulos ilustrados en la FIG. 4). En algunas realizaciones, se pueden realizar una o más operaciones del proceso 700 para conseguir al menos parte de las operaciones 506 a 510 como se describe en relación con la FIG. 5.
En 702, el dispositivo de procesamiento 120 (por ejemplo, el módulo de determinación de región de búsqueda 430) (por ejemplo, los circuitos de procesamiento del procesador 201) puede dividir un rango de similitud preestablecido en una pluralidad de sub-rangos.
Como se describe en relación con la operación 506, el rango de similitud preestablecido puede definir un rango requerido de un grado de similitud entre cada imagen similar que se va a buscar y la imagen objetivo. El rango de similitud preestablecido puede incluir un grado de similitud mínimo S1 y un grado de similitud máximo S2. En algunas realizaciones, el dispositivo de procesamiento 120 puede dividir el rango de similitud preestablecido uniformemente en los sub-rangos que tienen el mismo tramo. Un tramo de un sub-rango se puede referir a una diferencia de grado de similitud entre el mayor grado de similitud en el sub-rango y el menor grado de similitud en el sub-rango. El tramo de cada sub-rango puede ser 1 %, 3 %, 5 %, 7 %, 10 %, 20 % o cualquier otro valor adecuado. Por ejemplo, un rango de similitud preestablecido (60%, 100] se puede dividirse uniformemente en 4 sub-rangos (es decir, (60%, 70%], (70%, 80%], (80%, 90%] y (99%, 100%]), cada uno de los cuales tiene un tramo de 10% de grados de similitud. Como otro ejemplo, un rango de similitud preestablecido (60%, 100] se puede dividir uniformemente en 8 sub-rangos (es decir, (60%, 65%], (65%, 70%], (70%, 75%], (75%, 80%], (80%, 85%], (85%, 90%], (90%, 95 %], (95%, 100%]), cada uno de los cuales tiene un tramo de 5% de grado de similitud. Alternativamente, el dispositivo de procesamiento 120 puede dividir el rango de similitud preestablecido de manera desigual en los sub-rangos que tienen diferentes tramos. Por ejemplo, un rango de similitud preestablecido de (60 %, 100 %] se puede dividir de manera desigual en 4 sub-rangos que tienen diferentes tramos, como (60 %, 80 %], (80 %, 90 %], (90 %, 95 %], (95 %, 100 %].
En algunas realizaciones, la regla de división del rango de similitud preestablecido, tal como el tramo de cada sub rango y/o el número de los sub-rango, puede ser una configuración predeterminada del sistema de búsqueda de imágenes 100 o puede ser introducida por un usuario del sistema de búsqueda de imágenes 100. Adicional o alternativamente, la regla de división puede ser determinada por un dispositivo informático (por ejemplo, el dispositivo de procesamiento 120) según diferentes situaciones. Por ejemplo, el tramo de cada sub-rango se puede determinar teniendo en consideración una velocidad de búsqueda requerida y/o un tiempo de búsqueda requerido. Para acelerar la velocidad de búsqueda, el dispositivo informático puede dividir el rango de similitud preestablecido uniformemente en más sub-rangos con un tramo más pequeño, en donde los sub-rangos se pueden procesar en paralelo o en secuencia en la búsqueda de imágenes.
En 704, para cada sub-rango, el dispositivo de procesamiento 120 (por ejemplo, el módulo de determinación de región de búsqueda 430) (por ejemplo, los circuitos de procesamiento del procesador 201) puede determinar una región de sub-búsqueda en el espacio de características de N dimensiones correspondiente al sub-rango basado en el vector de características objetivo de la imagen objetivo.
Una región de sub-búsqueda correspondiente a un sub-rango puede ser similar a una región de búsqueda correspondiente al rango de similitud preestablecido como se ha descrito en relación con 506. La determinación de una región de sub-búsqueda correspondiente a un sub-rango se puede realizar de un de manera similar con la determinación de la región de búsqueda correspondiente al rango de similitud preestablecido como se ha descrito en relación con la operación 506, y las descripciones de la misma no se repiten aquí.
En 706, para cada región de sub-búsqueda, el dispositivo de procesamiento 120 (por ejemplo, el módulo de determinación de imagen candidata 440) (por ejemplo, los circuitos de procesamiento del procesador 201) puede determinar una o más primeras imágenes candidatas entre la pluralidad de imágenes, en donde el vector de características de cada primera imagen candidata correspondiente a la región de sub-búsqueda está dentro de la región de sub-búsqueda.
En algunas realizaciones, la determinación de una o más primeras imágenes candidatas cuyos vectores de características están dentro de una región de sub-búsqueda se puede realizar de manera similar con la determinación de una o más imágenes candidatas cuyos vectores de características están dentro de la región de búsqueda descrita en relación con la operación 508, y sus descripciones no se repiten aquí.
En 708, para cada región de sub-búsqueda, el dispositivo de procesamiento 120 (por ejemplo, el módulo de determinación de imágenes similares 450) puede determinar una o más imágenes similares a la imagen objetivo entre una o más primeras imágenes candidatas correspondientes a la región de sub-búsqueda.
En algunas realizaciones, para una región de sub-búsqueda, el dispositivo de procesamiento 120 puede determinar u obtener un grado de similitud entre la imagen objetivo y cada primera imagen candidata correspondiente a la región de sub-búsqueda. El dispositivo de procesamiento 120 puede entonces seleccionar una o más primeras imágenes candidatas entre la una o más primeras imágenes candidatas correspondientes a la región de sub-búsqueda, en donde un grado similar entre cada primera imagen candidata seleccionada y la imagen objetivo está dentro del sub-rango correspondiente a la región de sub-búsqueda. El dispositivo de procesamiento 120 puede designar además la una o más primeras imágenes candidatas seleccionadas como una o más imágenes similares de la al menos una imagen similar a la imagen objetivo.
En algunas realizaciones, las operaciones 704 a 708 se pueden realizar para cada sub-rango en paralelo, por ejemplo, por diferentes unidades de procesamiento del dispositivo de procesamiento 120. Alternativamente, las operaciones 704 a 708 se pueden realizarse para cada sub-rango en secuencia. Por ejemplo, antes de 704, el dispositivo de procesamiento 120 puede clasificar la pluralidad de sub-rangos para generar un segundo resultado de clasificación. Los sub-rangos se pueden clasificar según, por ejemplo, el mayor grado de similitud, el menor grado de similitud, un grado medio de similitud de cada sub-rango en orden descendente o ascendente. Además, el dispositivo de procesamiento 120 puede realizar secuencialmente las operaciones 704 a 708 para cada sub-rango según el segundo resultado de clasificación. Tomando un rango de similitud preestablecido de (60 %, 100 %] como ejemplo, el rango de similitud preestablecido se puede dividir uniformemente en cuarenta sub-rangos, es decir, (60 %, 61 %], (61 %, 62 %], ....... , y (99 %, 100 %). Los cuarenta sub-rangos se pueden clasificar en orden descendente según el mayor grado de similitud en cada sub-rango, y procesarse secuencialmente. Por ejemplo, el dispositivo de procesamiento 120 puede realizar las operaciones 704 y 706 para el sub-rango (99 %, 100 %] para determinar una primera región de sub búsqueda correspondiente a (99 %, 100 %] e identificar una o más imágenes candidatas (indicadas como Seto) cuyos vectores de características se encuentran dentro de la primera región de sub-búsqueda. El dispositivo de procesamiento 120 también puede realizar la operación 708 para determinar un grado de similitud entre la imagen objetivo y cada imagen candidata en Seto y selecciona una o más imágenes candidatas en Seto cuyos grados de similitud con la imagen objetivo están dentro (99 %, 100 %] como una o más imágenes similares correspondientes al sub-rango (99 %, 100 %). Al procesar el sub-rango (99 %, 100 %], se puede determinar el grado de similitud entre la imagen objetivo y cada imagen candidata en Seto. Si un grado de similitud entre la imagen objetivo y una determinada imagen candidata en Seto está fuera del rango (99 %, 100 %], es probable que cierta imagen se procese más, por ejemplo, cuando el dispositivo de procesamiento 120 procesa uno o más sub-rangos (por ejemplo, (98 %, 99 %], (97 %, 98 %]).En el procesamiento adicional de cierta imagen candidata, es posible que el dispositivo de procesamiento 120 no necesite determinar de nuevo el grado de similitud entre cierta imagen candidata y la imagen objetivo, lo que aumenta la velocidad de búsqueda y la eficiencia. Después de procesar el sub-rango (99 %, 100 %], el dispositivo de procesamiento 120 puede procesar los otros sub-rangos (98 %, 99 %], (97 %, 98 % ],...... , y (60 %, 61 %] en secuencia de manera similar al sub-rango (99 %, 100 %). Al procesar otro sub-rango, como el sub-rango (98 %, 99 %], el procesamiento el dispositivo 120 puede obtener directamente la imagen similar entre la imagen candidata determinada y la imagen objetivo.
Cabe señalar que la descripción anterior del proceso 700 se proporciona meramente con fines ilustrativos y no se pretende que se entienda como la única realización. Para las personas con conocimientos ordinarios en la técnica, se pueden realizar diversas variaciones y modificaciones bajo la enseñanza de algunas realizaciones de la presente descripción. Sin embargo, esas variaciones y modificaciones pueden no apartarse de la protección de algunas realizaciones de la presente divulgación. En algunas realizaciones, el proceso 700 se puede realizar con una o más operaciones adicionales no descritas y/o sin una o más de las operaciones expuestas. Además, el orden de las operaciones del proceso 700 como se ilustra en la FIG. 7 y se describe más adelante no tienen la intención de ser limitativos.
Habiendo descrito así los conceptos básicos, puede ser bastante evidente para los expertos en la técnica después de leer esta divulgación detallada que la divulgación detallada anterior pretende presentarse solo a modo de ejemplo y no es limitativa. Se pueden realizar diversas alteraciones, mejoras y modificaciones y están destinadas a los expertos en la técnica, aunque no se indica expresamente en este documento. Estas alteraciones, mejoras y modificaciones pretenden ser sugeridas por esta divulgación, y están dentro del alcance de las realizaciones a modo de ejemplo de esta divulgación.
Además, se ha utilizado cierta terminología para describir realizaciones de la presente descripción. Por ejemplo, los términos "una realización" y "algunas realizaciones" significan que una propiedad, estructura o característica particular descrita en relación con la realización está incluida en al menos una realización de la presente divulgación. Por lo tanto, se enfatiza y debe apreciarse que dos o más referencias a "una realización" o "una realización alternativa" en
varias partes de esta memoria no necesariamente se refieren todas a la misma realización. Además, las propiedades, estructuras o características particulares se pueden combinar según convenga en una o más realizaciones de la presente divulgación.
Además, los expertos en la técnica apreciarán que los aspectos de la presente divulgación se pueden ilustrar y describir en el presente documento en cualquiera de las clases o contextos patentables, incluido cualquier proceso, máquina, fabricación o composición de materia nuevos y útiles, o cualquier mejora nueva y útil de los mismos. En consecuencia, los aspectos de la presente divulgación se pueden implementar completamente en hardware, completamente en software (incluido el firmware, el software residente, el microcódigo, etc.) o combinar la implementación de software y hardware que, en general, se puede denominar en este documento como un "módulo". unidad", "componente", "dispositivo" o "sistema". Además, los aspectos de la presente divulgación pueden adoptar la forma de un producto de programa informático incorporado en uno o más medios legibles por ordenador que tienen incorporado un código de programa legible por ordenador.
Un medio de señal legible por ordenador puede incluir una señal de datos propagados con un código de programa legible por ordenador incorporado, por ejemplo, en banda base o como parte de una onda portadora. Tal señal propagada puede adoptar cualquiera de una variedad de formas, incluyendo electromagnética, óptica o similar, o cualquier combinación adecuada de las mismas. Un medio de señal legible por ordenador puede ser cualquier medio legible por ordenador que no sea un medio de almacenamiento legible por ordenador y que pueda comunicar, propagar o transportar un programa para su utilización o en combinación con un sistema, aparato o dispositivo de ejecución de instrucciones. El código de programa incorporado en un medio de señal legible por ordenador se puede transmitir utilizando cualquier medio apropiado, incluyendo inalámbrico, por cable, cable de fibra óptica, RF o similar, o cualquier combinación adecuada de los anteriores.
El código del programa informático para realizar operaciones para los aspectos de la presente divulgación se puede escribir en cualquier combinación de uno o más lenguajes de programación, incluido un lenguaje de programación orientado a objetos como Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB. NET, Python o similares, lenguajes de programación de procedimientos convencionales, como el lenguaje de programación "C", Visual Basic, Fortran 2003, Perl, COBOL 2002, PHP, ABAP, lenguajes de programación dinámicos como Python, Ruby y Groovy, u otros lenguajes de programación. El código del programa se puede ejecutar completamente en el ordenador del usuario, en parte en el ordenador del usuario, como un paquete de software independiente, en parte en el ordenador del usuario y en parte en un ordenador remoto o completamente en el ordenador o servidor remoto. En el último escenario, el ordenador remoto se puede conectar al ordenador del usuario a través de cualquier tipo de red, incluida una red de área local (LAN) o una red de área amplia (WAN), o se puede establecer la conexión a un ordenador externo (por ejemplo, a través de Internet utilizando un proveedor de servicios de Internet) o en un entorno de computación en la nube u ofrecido como un servicio como Software como servicio (SaaS).
Además, el orden mencionado de los elementos o secuencias de procesamiento, o la utilización de números, letras u otras designaciones por lo tanto, no pretende limitar los procesos y métodos reivindicados a ningún orden excepto en el especificado en las reivindicaciones. Aunque la divulgación anterior analiza a través de varios ejemplos lo que actualmente se considera una variedad de realizaciones útiles de la divulgación, se debe entender que tal detalle es únicamente para ese propósito, y que las reivindicaciones adjuntas no se limitan a las realizaciones divulgadas sino que, por el contrario, están destinados a cubrir modificaciones y disposiciones equivalentes que están dentro del alcance de las realizaciones descritas. Por ejemplo, aunque la implementación de diversos componentes descritos anteriormente se puede incorporar en un dispositivo de hardware, también se puede implementar como una solución de solo software, por ejemplo, una instalación en un servidor o dispositivo móvil existente.
De manera similar, se debe tener en cuenta que en la descripción anterior de las realizaciones de la presente divulgación, diversas características a veces se agrupan en una única realización, figura o descripción de la misma con el fin de simplificar la descripción y ayudar en la comprensión de uno o más de las diversas realizaciones.
En algunas realizaciones, los números que expresan cantidades o propiedades utilizadas para describir y reivindicar ciertas realizaciones de la solicitud se deben entender modificados en algunos casos por el término "aproximadamente", "aproximado" o "sustancialmente". Por ejemplo, "alrededor de", "aproximado" o "sustancialmente" pueden indicar una determinada variación (por ejemplo, ±1 %, ±5 %, ±10 % o ±20 %) del valor que describe, a menos que se indique lo contrario. En consecuencia, en algunas realizaciones, los parámetros numéricos expuestos en la descripción escrita y las reivindicaciones adjuntas son aproximaciones que pueden modificar dependiendo de las propiedades deseadas que se busque obtener mediante una realización particular. En algunas realizaciones, los parámetros numéricos se deben interpretar a la luz del número de dígitos significativos notificados y aplicando técnicas de redondeo ordinarias. A pesar de que los rangos numéricos y los parámetros que establecen el amplio alcance de algunas realizaciones de la aplicación son aproximaciones, los valores numéricos establecidos en los ejemplos específicos se muestran con la mayor precisión posible. En algunas realizaciones, un rango numérico (por ejemplo, un rango de similitud, un rango de distancia geométrica y/o un rango de coordenadas) descrito en la presente divulgación se proporciona con fines ilustrativos y se modifica según diferentes situaciones. Por ejemplo, un valor límite del rango numérico puede estar incluido o excluido en el rango numérico. El alcance de la invención está definido por las reivindicaciones adjuntas.
Claims (15)
1. Un sistema de búsqueda de imágenes, que comprende:
al menos un medio de almacenamiento (150) que incluye un conjunto de instrucciones; y
al menos un procesador (201) en comunicación con al menos un medio de almacenamiento (150), en donde cuando se ejecutan las instrucciones, el al menos un procesador (201) está configurado para dirigir el sistema para realizar operaciones que incluyen:
obtener una imagen objetivo y una pluralidad de imágenes, en donde al menos una imagen similar a la imagen objetivo se debe buscar entre la pluralidad de imágenes;
determinar un vector de características objetivo de la imagen objetivo y un vector de características de cada una de la pluralidad de imágenes, siendo cada uno de los vectores de características objetivo y los vectores de características un vector de características de N dimensiones en un espacio de características de N dimensiones; determinar, basándose en el vector de características objetivo y un rango de similitud preestablecido entre al menos una imagen similar y la imagen objetivo, una región de búsqueda en el espacio de características de N dimensiones, definiendo el rango de similitud preestablecido un rango requerido de un grado de similitud entre la al menos una imagen similar y la imagen objetivo;
determinar, entre la pluralidad de imágenes, una o más imágenes candidatas basándose en los vectores de características de la pluralidad de imágenes y la región de búsqueda, estando el vector de características de cada imagen candidata dentro de la región de búsqueda; y
determinar, entre una o más imágenes candidatas, la al menos una imagen similar a la imagen objetivo en función del rango de similitud preestablecido, el vector de características objetivo y uno o más vectores de características de una o más imágenes candidatas,
en donde la determinación, basada en el vector de características objetivo y el rango de similitud preestablecido entre al menos una imagen similar y la imagen objetivo, de la región de búsqueda en el espacio de características de N dimensiones comprende:
dividir el rango de similitud preestablecido en una pluralidad de sub-rangos; y
para cada uno de la pluralidad de sub-rangos, determinar, en función del vector de características objetivo, una región de sub-búsqueda correspondiente al sub-rango en el espacio de características de N dimensiones, y en donde la región de búsqueda incluye una pluralidad de regiones de sub-búsqueda correspondientes a la pluralidad de sub rangos.
2. El sistema de la reivindicación 1, en el que para determinar al menos una imagen similar a la imagen objetivo entre una o más imágenes candidatas, el al menos un procesador (201) está configurado además para dirigir el sistema para realizar operaciones adicionales que incluyen:
para cada una de las una o más imágenes candidatas, determinar un grado de similitud entre la imagen objetivo y la imagen candidata;
seleccionar, entre una o más imágenes candidatas, al menos una imagen candidata, estando el grado de similitud de cada imagen candidata seleccionada dentro del rango de similitud preestablecido; y
designar la al menos una imagen candidata seleccionada como la al menos una imagen similar a la imagen objetivo.
3. El sistema de la reivindicación 2, en el que al menos una imagen similar incluye una pluralidad de imágenes similares, el al menos un procesador (201) está configurado además para dirigir el sistema para realizar operaciones adicionales que incluyen:
clasificar la pluralidad de imágenes similares según el grado de similitud entre cada imagen similar y la imagen objetivo en orden descendente para generar un primer resultado de clasificación; y
transmitir, a un dispositivo terminal, una lista de visualización que incluye al menos una parte de la pluralidad de imágenes similares, en donde al menos una parte de la pluralidad de imágenes similares se clasifica según el primer resultado de clasificación en la lista de visualización.
4. El sistema de una cualquiera de las reivindicaciones 1 a 3, en el que el vector de características objetivo incluye un valor de característica objetivo en cada dimensión en el espacio de características de N dimensiones.
5. El sistema de la reivindicación 4, en el que para determinar la región de búsqueda en el espacio de características de N dimensiones, el al menos un procesador (201) está configurado además para dirigir el sistema para realizar operaciones adicionales que incluyen:
determinar un rango de distancia geométrica en el espacio de características de N dimensiones correspondiente al rango de similitud preestablecido;
en cada dimensión, determinar un rango de coordenadas de al menos una imagen similar, una diferencia entre el valor de la característica objetivo en la dimensión y cada valor en el rango de coordenadas que está dentro del rango de distancia geométrica, y
determinar, en base al rango de coordenadas en cada dimensión, la región de búsqueda.
6. El sistema de la reivindicación 4, en el que para determinar la región de búsqueda en el espacio de características de N dimensiones, el al menos un procesador (201) está configurado además para dirigir el sistema para realizar operaciones adicionales que incluyen:
determinar un rango de distancia geométrica en el espacio de características de N dimensiones correspondiente al rango de similitud preestablecido, estando definido el rango de distancia geométrica por una distancia geométrica más corta y una distancia geométrica más larga;
en cada dimensión, determinar, en función de la distancia geométrica más corta y el valor de la característica objetivo en la dimensión, un primer rango de coordenadas, siendo una diferencia entre el valor de característica objetivo en la dimensión y cada valor en el primer rango de coordenadas menor que la distancia geométrica más corta;
en cada dimensión, determinar, en función de la distancia geométrica más larga y el valor de característica objetivo en la dimensión, un segundo rango de coordenadas, siendo una diferencia entre el valor de la característica objetivo en la dimensión y cada valor en el segundo rango de coordenadas más pequeña que la distancia geométrica más larga;
determinar una primera región definida por los primeros rangos de coordenadas en el espacio de características de N dimensiones y una segunda región definida por los segundos rangos de coordenadas en el espacio de características de N dimensiones; y
determinar una región en la segunda región excluyendo la primera región como la región de búsqueda.
7. El sistema de la reivindicación 1, en el que para determinar una o más imágenes candidatas entre la pluralidad de imágenes, el al menos un procesador (201) está configurado además para dirigir el sistema para realizar operaciones adicionales que incluyen:
para cada una de la pluralidad de regiones de sub-búsqueda, determinar, entre la pluralidad de imágenes, una o más primeras imágenes candidatas en función de los vectores de características de la pluralidad de imágenes y la región de sub-búsqueda, estando el vector de características de cada primera imagen candidata dentro de la región de sub búsqueda, y
en donde la una o más imágenes candidatas incluyen la una o más primeras imágenes candidatas correspondientes a cada región de sub-búsqueda.
8. El sistema de la reivindicación 7, en el que para determinar al menos una imagen similar a la imagen objetivo entre una o más imágenes candidatas, el al menos un procesador (201) está configurado además para dirigir el sistema para realizar operaciones adicionales que incluyen:
para cada una de la pluralidad de regiones de sub-búsqueda,
determinar u obtener un grado de similitud entre la imagen objetivo y cada primera imagen candidata correspondiente a la región de sub-búsqueda;
seleccionar, entre una o más primeras imágenes candidatas correspondientes a la región de sub-búsqueda, una o más primeras imágenes candidatas, estando el grado de similitud entre cada primera imagen candidata seleccionada y la imagen objetivo dentro del sub-rango correspondiente; y
designar la una o más primeras imágenes candidatas seleccionadas como una o más imágenes similares de la al menos una imagen similar a la imagen objetivo.
9. El sistema de la reivindicación 7 u 8, en el que para determinar la región de sub-búsqueda en el espacio de características de N dimensiones para cada uno de la pluralidad de sub-rangos, el al menos un procesador (201) está configurado además para dirigir el sistema para realizar operaciones adicionales que incluyen:
clasificar la pluralidad de sub-rangos para generar un segundo resultado de clasificación; y
determinar secuencialmente la región de sub-búsqueda para cada uno de la pluralidad de sub-rangos según el segundo resultado de clasificación.
10. El sistema de una cualquiera de las reivindicaciones 1 a 9, en el que para determinar una o más imágenes candidatas entre la pluralidad de imágenes, el al menos un procesador (201) está configurado además para dirigir el sistema para realizar operaciones adicionales que incluyen:
almacenar los vectores de características de la pluralidad de imágenes en una tabla, incluyendo la tabla una pluralidad de filas y N columnas, representando cada fila una imagen de la pluralidad de imágenes, y representando cada columna una dimensión en el espacio de características de N dimensiones;
crear un índice para cada una de las N columnas de la tabla; y
seleccionar, entre la pluralidad de imágenes, la una o más imágenes candidatas basándose en la región de búsqueda y en los índices de la tabla, estando el vector de características de cada imagen candidata dentro de la región de búsqueda.
11. Un método para la búsqueda de imágenes, que comprende:
obtener una imagen objetivo y una pluralidad de imágenes, en donde al menos una imagen similar a la imagen objetivo se debe buscar entre la pluralidad de imágenes;
determinar un vector de características objetivo de la imagen objetivo y un vector de características de cada una de la pluralidad de imágenes, siendo cada uno de los vectores de características objetivo y los vectores de características un vector de características de N dimensiones en un espacio de características de N dimensiones; determinar, basándose en el vector de características objetivo y en un rango de similitud preestablecido entre al menos una imagen similar y la imagen objetivo, una región de búsqueda en el espacio de características de N dimensiones, definiendo el rango de similitud preestablecido un rango requerido de un grado de similitud entre la al menos una imagen similar y la imagen objetivo;
determinar, entre la pluralidad de imágenes, una o más imágenes candidatas basándose en los vectores de características de la pluralidad de imágenes y en la región de búsqueda, estando el vector de características de cada imagen candidata dentro de la región de búsqueda; y
determinar, entre una o más imágenes candidatas, la al menos una imagen similar a la imagen objetivo en función del rango de similitud preestablecido, el vector de características objetivo y uno o más vectores de características de una o más imágenes candidatas, en donde la determinación, en función del vector de características objetivo y el rango de similitud preestablecido entre al menos una imagen similar y la imagen objetivo, la región de búsqueda en el espacio de características de N dimensiones comprende:
dividir un rango de similitud preestablecido en una pluralidad de sub-rangos; y
para cada uno de la pluralidad de sub-rangos, determinar en función del vector de características objetivo, una región de sub-búsqueda correspondiente al sub-rango en el espacio de características de N dimensiones, y en donde la región de búsqueda incluye una pluralidad de regiones de sub-búsqueda correspondiente a la pluralidad de sub rangos.
12. El método de la reivindicación 11, en el que la determinación de al menos una imagen similar a la imagen objetivo entre una o más imágenes candidatas incluye:
para cada una de las una o más imágenes candidatas, determinar un grado de similitud entre la imagen objetivo y la imagen candidata;
seleccionar, entre una o más imágenes candidatas, al menos una imagen candidata, estando el grado de similitud de cada imagen candidata seleccionada dentro del rango de similitud preestablecido; y
designar la al menos una imagen candidata seleccionada como la al menos una imagen similar a la imagen objetivo.
13. El método de la reivindicación 12, en el que la al menos una imagen similar incluye una pluralidad de imágenes similares, y el método comprende además:
clasificar la pluralidad de imágenes similares según el grado de similitud entre cada imagen similar y la imagen objetivo en orden descendente para generar un primer resultado de clasificación; y
transmitir, a un dispositivo terminal, una lista de visualización que incluye al menos una parte de la pluralidad de imágenes similares, en donde al menos una parte de la pluralidad de imágenes similares se clasifica según el primer resultado de clasificación en la lista de visualización.
14. El método de una cualquiera de las reivindicaciones 11 a 13, en el que el vector de características objetivo incluye un valor de característica objetivo en cada dimensión en el espacio de características de N dimensiones.
15. El método de la reivindicación 14, en el que la determinación de la región de búsqueda en el espacio de características de N dimensiones comprende:
determinar un rango de distancia geométrica en el espacio de características de N dimensiones correspondiente al rango de similitud preestablecido;
en cada dimensión, determinar un rango de coordenadas de al menos una imagen similar, una diferencia entre el valor de la característica objetivo en la dimensión y cada valor en el rango de coordenadas que está dentro del rango de distancia geométrica, y
determinar, en base al rango de coordenadas en cada dimensión, la región de búsqueda.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810425927.8A CN108733780B (zh) | 2018-05-07 | 2018-05-07 | 一种图片搜索方法及装置 |
PCT/CN2019/085630 WO2019214565A1 (en) | 2018-05-07 | 2019-05-06 | Systems and methods for image searching |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2954475T3 true ES2954475T3 (es) | 2023-11-22 |
Family
ID=63937018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES19799936T Active ES2954475T3 (es) | 2018-05-07 | 2019-05-06 | Sistemas y métodos para la búsqueda de imágenes |
Country Status (6)
Country | Link |
---|---|
US (1) | US11409984B2 (es) |
EP (1) | EP3776261B1 (es) |
CN (1) | CN108733780B (es) |
ES (1) | ES2954475T3 (es) |
PL (1) | PL3776261T3 (es) |
WO (1) | WO2019214565A1 (es) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108733780B (zh) * | 2018-05-07 | 2020-06-23 | 浙江大华技术股份有限公司 | 一种图片搜索方法及装置 |
CN111177438B (zh) * | 2018-11-12 | 2023-05-12 | 深圳云天励飞技术有限公司 | 图像特征值的搜索方法、装置、电子设备及存储介质 |
EP3980901A1 (en) * | 2019-06-07 | 2022-04-13 | Leica Microsystems CMS GmbH | A system and method for processing biology-related data, a system and method for controlling a microscope and a microscope |
CN110659373B (zh) * | 2019-08-27 | 2022-11-08 | 浙江大华技术股份有限公司 | 图像检索的方法、设备、计算机设备和存储介质 |
CN110909766B (zh) * | 2019-10-29 | 2022-11-29 | 北京明略软件***有限公司 | 相似度的确定方法及装置、存储介质、电子装置 |
CN111191612B (zh) * | 2019-12-31 | 2023-05-12 | 深圳云天励飞技术有限公司 | 视频图像匹配方法、装置、终端设备及可读存储介质 |
CN111292268B (zh) * | 2020-02-07 | 2023-07-25 | 抖音视界有限公司 | 图像处理方法、装置、电子设备及计算机可读存储介质 |
CN112883214B (zh) * | 2021-01-07 | 2022-10-28 | 浙江大华技术股份有限公司 | 特征检索方法、电子设备及存储介质 |
CN115035015A (zh) * | 2021-02-23 | 2022-09-09 | 京东方科技集团股份有限公司 | 图片处理方法、装置、计算机设备及存储介质 |
CN113535824B (zh) * | 2021-07-27 | 2024-06-07 | 杭州海康威视数字技术股份有限公司 | 数据搜索方法、装置、电子设备及存储介质 |
CN113590922A (zh) * | 2021-08-06 | 2021-11-02 | 青岛海信网络科技股份有限公司 | 图像搜索方法及电子设备 |
CN114168770A (zh) * | 2022-02-14 | 2022-03-11 | 成都四方伟业软件股份有限公司 | 一种基于深度学习的以图搜图方法及装置 |
CN116186314A (zh) * | 2022-12-29 | 2023-05-30 | 青岛云天励飞科技有限公司 | 图像搜索方法、装置、计算机设备及存储介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3026712B2 (ja) * | 1993-12-09 | 2000-03-27 | キヤノン株式会社 | 画像検索方法及びその装置 |
WO2001046858A1 (fr) * | 1999-12-21 | 2001-06-28 | Matsushita Electric Industrial Co., Ltd. | Creation d'un indice vectoriel, recherche de vecteurs similaires et dispositifs correspondants |
JP4682030B2 (ja) * | 2005-11-30 | 2011-05-11 | 富士通株式会社 | 図形検索プログラム、該プログラムを記録した記録媒体、図形検索装置、および図形検索方法 |
CN101526944B (zh) * | 2008-12-23 | 2011-10-12 | 广州乐庚信息科技有限公司 | 图像检索比对方法 |
CN102436491A (zh) * | 2011-11-08 | 2012-05-02 | 张三明 | 一种基于BigBase的海量图片搜索***及方法 |
CN106055576B (zh) * | 2016-05-20 | 2018-04-10 | 大连理工大学 | 一种大规模数据背景下的快速有效的图像检索方法 |
CA3031548A1 (en) * | 2016-07-22 | 2018-01-25 | 9206868 Canada Inc. | System and method for analyzing and searching for features associated with objects |
EP3300002A1 (en) * | 2016-09-22 | 2018-03-28 | Styria medijski servisi d.o.o. | Method for determining the similarity of digital images |
CN107247730A (zh) * | 2017-05-04 | 2017-10-13 | 北京奇艺世纪科技有限公司 | 图片搜索方法及装置 |
CN107194424B (zh) * | 2017-05-19 | 2019-08-27 | 山东财经大学 | 一种图像相似块快速搜索方法 |
CN107291855A (zh) * | 2017-06-09 | 2017-10-24 | 中国电子科技集团公司第五十四研究所 | 一种基于显著对象的图像检索方法及*** |
CN107766492B (zh) * | 2017-10-18 | 2020-07-31 | 北京京东尚科信息技术有限公司 | 一种图像搜索的方法和装置 |
CN108733780B (zh) * | 2018-05-07 | 2020-06-23 | 浙江大华技术股份有限公司 | 一种图片搜索方法及装置 |
-
2018
- 2018-05-07 CN CN201810425927.8A patent/CN108733780B/zh active Active
-
2019
- 2019-05-06 PL PL19799936.0T patent/PL3776261T3/pl unknown
- 2019-05-06 WO PCT/CN2019/085630 patent/WO2019214565A1/en unknown
- 2019-05-06 ES ES19799936T patent/ES2954475T3/es active Active
- 2019-05-06 EP EP19799936.0A patent/EP3776261B1/en active Active
-
2020
- 2020-11-05 US US17/089,737 patent/US11409984B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3776261A1 (en) | 2021-02-17 |
EP3776261A4 (en) | 2021-06-02 |
US20210049406A1 (en) | 2021-02-18 |
US11409984B2 (en) | 2022-08-09 |
CN108733780A (zh) | 2018-11-02 |
WO2019214565A1 (en) | 2019-11-14 |
CN108733780B (zh) | 2020-06-23 |
EP3776261B1 (en) | 2023-07-12 |
PL3776261T3 (pl) | 2023-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2954475T3 (es) | Sistemas y métodos para la búsqueda de imágenes | |
US11227179B2 (en) | Video tracking with deep Siamese networks and Bayesian optimization | |
US20240013506A1 (en) | Joint training of neural networks using multi-scale hard example mining | |
WO2019100724A1 (zh) | 训练多标签分类模型的方法和装置 | |
US9177104B2 (en) | Discriminatively weighted multi-scale local binary patterns | |
WO2019100723A1 (zh) | 训练多标签分类模型的方法和装置 | |
US20220284691A1 (en) | Systems, methods, and devices for capturing images | |
Hao et al. | Geometry-aware deep recurrent neural networks for hyperspectral image classification | |
Zhuo et al. | Cloud classification of ground-based images using texture–structure features | |
KR101662115B1 (ko) | 2차 미분 에지 검출 방법의 에지 배향 | |
EP3721379A1 (en) | Methods and systems for face alignment | |
CN110598788B (zh) | 目标检测方法、装置、电子设备及存储介质 | |
CN111353512A (zh) | 障碍物分类方法、装置、存储介质和计算机设备 | |
ES2879937T3 (es) | Análisis de imágenes | |
WO2023005091A1 (en) | Systems and methods for object detection | |
US20220012526A1 (en) | Systems and methods for image retrieval | |
EP4162446A1 (en) | Systems and methods for temperature measurement | |
JP6639743B1 (ja) | 検索システム、検索方法、及びプログラム | |
US11068707B2 (en) | Person searching method and apparatus and image processing device | |
JP2020074111A (ja) | 検索システム、検索方法、及びプログラム | |
Zhou | IYOLO-NL: An improved you only look once and none left object detector for real-time face mask detection | |
Ghosh et al. | Rough entropy-based fused granular features in 2-D locality preserving projections for high-dimensional vision sensor data | |
JP2015026110A (ja) | 画像処理装置、画像処理方法及び画像処理プログラム | |
CN112927149B (zh) | 高光谱图像的空间分辨率增强方法、装置及电子设备 | |
US11977951B1 (en) | Optimal matching of image portion data sets |