ES2327489A1 - Metodo para calcular la correspondencia optica entre patrones geometricos. - Google Patents

Metodo para calcular la correspondencia optica entre patrones geometricos. Download PDF

Info

Publication number
ES2327489A1
ES2327489A1 ES200802254A ES200802254A ES2327489A1 ES 2327489 A1 ES2327489 A1 ES 2327489A1 ES 200802254 A ES200802254 A ES 200802254A ES 200802254 A ES200802254 A ES 200802254A ES 2327489 A1 ES2327489 A1 ES 2327489A1
Authority
ES
Spain
Prior art keywords
graph
geometric
vertices
matrix
subgraph
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
ES200802254A
Other languages
English (en)
Inventor
Pablo San Segundo Carrillo
Diego Rodriguez-Losada Gonzalez
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Universidad Politecnica de Madrid
Original Assignee
Universidad Politecnica de Madrid
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Universidad Politecnica de Madrid filed Critical Universidad Politecnica de Madrid
Priority to ES200802254A priority Critical patent/ES2327489A1/es
Publication of ES2327489A1 publication Critical patent/ES2327489A1/es
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06K9/00

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Image Processing (AREA)

Abstract

Método para calcular correspondencia óptima entre patrones geométricos, comprendiendo: - establecer una restricción binaria entre dos entidades geométricas pertenecientes al mismo patrón geométrico, definiendo una métrica entre dos entidades geométricas del mismo patrón; - codificar un grafo de asociación G con vértices el producto cartesiano de los vértices de los grafos modelo (L{sub,1}, L{sub,2 }) y observación (O{sub,1}, O{sub,2}) en una matriz de adyacencias A; siendo la matriz A una matriz binaria donde el valor 1 del elemento A{sub,ij} de la matriz A representa que existe una arista entre los nodos (x{sub,i}, x{sub,j}) del grafo, y en el que la codificación de dicha matriz A se hace mediante variables enteras de tamaño W{sub,size}, siendo W{sub,size}, el número de bits que tiene registro de la CPU encargada de realizar el cálculo; - aplicar un algoritmo MCP modificado que emplea el paralelismo de bits para el cómputo.

Description

Método para calcular la correspondencia óptima entre patrones geométricos.
Campo de la invención
La invención se enmarca en el sector técnico de las tecnologías de la información, y más concretamente en la búsqueda de patrones de similitud de estructuras geométricas mediante algoritmos o métodos computacionales, como la búsqueda y comparación de una huella dactilar digitalizada en una base de datos.
El área de conocimiento mas estrechamente ligada es la teoría de grafos, más concretamente la búsqueda en grafos.
Numerosas aplicaciones reales se pueden ver beneficiadas de esta invención, como la comparación de huellas dactilares, la localización de robots, el análisis de imágenes por computador y el reconocimiento de caras.
Antecedentes de la invención
En la actualidad la búsqueda de patrones coincidentes en figuras geométricas es un área de intensa actividad investigadora y de desarrollo industrial por sus aplicaciones: comparación de huellas dactilares, reconocimiento automático de rostros basado en imagen, detección de caracteres de texto en escritura manual, localización de robots móviles, comparación de logotipos en bases de datos de registros, búsqueda de patrones geométricos en biología, cristalografía, medicina, farmacología, etc.
Todos estos problemas se resumen en la búsqueda de una correspondencia entre un patrón geométrico considerado la muestra (típicamente parcial y con ruido) contra otro patrón geométrico (que también puede ser parcial y tener ruido) denominado la referencia. La correspondencia de características individuales, por ejemplo que un ojo sea igual en la muestra y en la referencia, no garantiza la correspondencia total del rostro. Para que esta correspondencia exista, tiene que existir la denominada compatibilidad conjunta de un número lo mas elevado posible de características individuales.
Existen varias técnicas bien conocidas que permiten realizar esta búsqueda de compatibilidad conjunta. La búsqueda del MCS (Máximo Subgrafo Común, Maximum Common Subgraph) consiste en definir un grafo de relaciones binarias tanto en el patrón de muestra como en el de referencia. Los nodos de los grafos se corresponden a entidades geométricas individuales, mientras que las aristas se corresponden a relaciones entre esas entidades, típicamente algún tipo de distancia (Figura 1). Después un algoritmo heurística va analizando la compatibilidad de relaciones binarias entre los dos grafos, hasta hallar la combinación que tiene un máximo numero de relaciones binarias compatibles.
Sin embargo, el enfoque del MCS puede ser mejorado mediante la construcción de un grafo auxiliar, en el que los nodos son posibles combinaciones de emparejamientos unarios entre las características geométricas simples de la muestra y del patrón de referencia (Figura 2), y las aristas (no direccionales) corresponden a compatibilidades binarias entre pares de emparejamientos (Figura 3). La búsqueda de la compatibilidad conjunta máxima se reduce, en este nuevo grafo auxiliar, a encontrar el subgrafo de mayor tamaño tal que todos sus nodos estén interconectados completamente entre sí, estructura conocida en Teoría de Grafos como grafo completo o, más comúnmente, clique. La búsqueda de grafos completos es un problema fundamental en Teoría de Computación y ha sido extensamente estudiado. El problema de encontrar el subgrafo completo con k nodos se conoce como k-clique. Es bien sabido que este problema es NP-completo. El correspondiente problema de optimización que consiste en encontrar el subgrafo completo de mayor tamaño se denomina Problema del Máximo Clique (Maximum Clique Problem, MCP) y es NP-Duro.
El punto anterior permite concluir que la solución completa que analiza todas las compatibilidades individuales para buscar la máxima compatibilidad conjunta simultánea desde el punto de vista la complejidad computacional es también NP-Duro, es decir, no puede existir ningún algoritmo completo que, en el caso peor, pueda resolver dicho problema para un valor grande de observaciones y muestras del patrón en un tiempo de cómputo razonable. Esto provoca que soluciones computacionales a este problema puedan existir solo para problemas de dimensión reducida. En caso contrario, el tiempo de cómputo para la búsqueda de dicha correspondencia hace que dichos algoritmos no sean aplicables en la práctica.
La elevada complejidad del problema ha provocado la aparición de algoritmos que emplean técnicas aproximadas no completas, es decir, que no siempre encuentran una solución caso de existir, a diferencia de las técnicas comentadas anteriormente, que sí son completas. Entre las soluciones aproximadas destacan las basadas en Random Sample Consensus (RANSAC), o consenso de muestras aleatorias, que lo que hacen es buscar aleatoria e iterativamente una solución mediante un muestreo de un subconjunto de correspondencias. Así estos algoritmos, intentarían coger 2 o 3 correspondencias iniciales al azar del total posibles, para luego comprobar la compatibilidad con el resto. Si son compatibles, se ha hallado la solución, y si no, hay que seguir iterando. Los algoritmos RANSAC dan un resultado aproximado con una probabilidad conocida para un número de iteraciones dado. Otras técnicas empleadas incluyen el empleo de algoritmos genéticos, o aproximaciones geométricas simplificadas al problema.
Aunque estos algoritmos funcionan bien en algunos dominios, pueden requerir un número tan elevado de iteraciones en ciertos casos, que su aplicabilidad es limitada. Además, nunca garantizan la solución exacta, sino sólo una probabilidad de acierto, incrementando típicamente la tasa de errores cuando el problema es complejo o tiene mucho ruido.
El problema planteado es cómo abordar una solución exacta (que garantice al 100% la solución óptima al problema) pero que sin embargo tenga una complejidad manejable por un sistema computacional, de tal forma que pueda aplicarse en la práctica a aplicaciones reales existentes de reconocimiento de correspondencias geométricas.
La presente invención se centra en una paralelización de las tareas a llevar a cabo por los algoritmos, implementable en un sistema computador convencional, y que permite obtener una disminución considerable de los tiempos de cómputo, algo imprescindible para encontrar la solución óptima al problema de correspondencia geométrica en aplicaciones reales.
Descripción de la invención
La invención se refiere a un método para calcular la correspondencia óptima entre patrones geométricos de acuerdo con la reivindicación 1. Realizaciones preferidas del método se definen en las reivindicaciones dependientes.
Dados dos conjuntos de entidades geométricas (puntos, rectas, arcos, etc.), la búsqueda de la correspondencia óptima entre ambos, es decir la máxima similitud o posible coincidencia, es un problema NP-Duro, y su solución computacional es generalmente muy lenta o costosa en tiempo de ejecución. Dicha búsqueda admite una formulación basada en el Problema del Maximo Clique (MCP) que, aun siendo más conveniente, sigue teniendo un elevado costo computacional.
Se presenta un nuevo método que utilizando el paralelismo de bits existente en el hardware de los microprocesadores, es capaz de reducir el número de operaciones necesarias para la solución del MCP y por tanto computar dicha correspondencia óptima entre dos patrones de una forma más eficiente y por lo tanto más rápida.
Breve descripción de los dibujos
A continuación se pasa a describir de manera muy breve una serie de dibujos que ayudan a comprender mejor la invención y que se relacionan expresamente con una realización de dicha invención que se presenta como un ejemplo no limitativo de ésta.
La Figura 1 muestra la búsqueda del MCS (Máximo Subgrafo Común, Maximum Common Subgraph), una técnica conocida en el estado del arte.
La Figura 2 muestra la creación de un grafo auxiliar (nodos).
La Figura 3 ilustra la generación del grafo auxiliar (aristas).
La Figura 4 ilustra la manera habitual de colorear vorazmente un grafo para obtener como umbral de máximo clique para dicho grafo el número de colores necesitado.
La Figura 5 muestra el árbol de búsqueda en un espacio de grafos.
La Figura 6 muestra un entorno real obtenido con un robot móvil, para una aplicación concreta de la invención.
La Figura 7 ilustra algunas observaciones o vistas locales realizadas por el robot móvil en el mismo entorno de la figura anterior, para una aplicación concreta de la invención consistente en localizar el robot dentro del mapa.
Descripción de una realización preferida de la invención
La presente invención se refiere a un nuevo método algorítmico y computacional para la resolución del Problema del Máximo Clique (Maximum Clique Problem, MCP) aplicado a la búsqueda de correspondencia entre patrones geométricos. Esta invención se concreta en los siguientes puntos:
1.
Definición de métricas invariantes con incertidumbre entre entidades geométricas.
2.
Almacenamiento de las correspondencias binarias como grafo no dirigido con la matriz de adyacencias codificada como tablero de bits.
3.
Nuevo algoritmo eficiente MCP que emplea operaciones de enmascaramiento de bits.
La Figura 1 ilustra un enfoque distinto al aplicado en nuestra invención para resolver el problema de correspondencia geométrica. En este caso el modelo y la observación se transforman en dos subgrafos con pesos en las aristas. El problema se reduce entonces a encontrar el mayor subgrafo común a ambos, más conocido como la búsqueda del Máximo Subgrafo Común (Maximum Common Subgraph Problem, búsqueda del MCS), que pertenece a la clase NP. Las aristas marcadas en trazo grueso muestran la solución óptima.
La Figura 2 muestra la metodología empleada en esta invención para resolver el problema de correspondencia. A partir de los grafos modelo y observación con pesos de la figura anterior se genera un nuevo grafo, conocido como grafo de asociación G, no dirigido y sin pesos que tiene como vértices el producto cartesiano de los vértices de ambos grafos modelo-observación.
Con respecto al primer punto de la presente invención, definición de métricas invariantes con incertidumbre entre entidades geométricas, existen fundamentalmente 2 tipos de restricciones o relaciones entre entidades geométricas: unarias y binarias. Las restricciones unarias aplican a características individuales de las entidades geométricas. Para que una entidad geométrica de la figura muestra corresponda con otra entidad de la figura patrón de referencia, ambas entidades deben de ser del mismo tipo. Por ejemplo, un punto cartesiano de la muestra solo puede emparejar o asociarse con otro punto cartesiano del patrón, no con un segmento o con un arco de círculo. El uso de restricciones unarias es muy sencillo, y su manejo es considerado por cualquier algoritmo y no supone una ventaja significativa.
Las restricciones binarias se establecen entre dos entidades geométricas pertenecientes al mismo patrón, ya sea la referencia o la muestra. Así, una posible restricción entre dos puntos cartesianos existentes en una figura es su distancia euclídea. Sea E el conjunto de entidades del mismo tipo que conforman el dominio de nuestro problema de correspondencia y sea d : ExE \rightarrow R una función que asigna a dos entidades del mismo tipo (sean puntos, arcos de circunferencia, segmentos, etc.) una distancia. Así, la distancia entre las entidades L_{i1}, L_{i2} del patrón de referencia será denominada, d(L_{i1}, L_{i2}), independientemente del tipo de entidad de L_{i1}, L_{i2}. De manera análoga, d(O_{ji}, O_{j2}) hará referencia a la distancia entre dos entidades cualesquiera de la muestra.
Partiendo de la compatibilidad unaria entre dos entidades de la muestra y patrón (L_{i1}, L_{i2}), (O_{j1}, O_{j2}), la compatibilidad binaria trata de establecer la compatibilidad conjunta entre ambas parejas. Para ello, las distancias definidas anteriormente deben ser conceptualmente iguales. Como es posible que exista cierta cantidad de ruido en las figuras y por tanto en el posicionamiento espacial de las entidades geométricas, es necesario umbralizar el concepto de igualdad entre distancias de la siguiente manera:
1
donde \varepsilon es la máximo error permitido o tolerancia.
Con respecto al segundo punto de la presente invención, almacenamiento de las correspondencias binarias como grafo no dirigido con la matriz de adyacencias codificada como tablero de bits, como se ha explicado durante la construcción del grafo auxiliar G = (V, E) (véase Figura 3) para la determinación de las aristas entre nodos se comprueba la compatibilidad de las restricciones binarias entre pares de correspondencias y cada arista del grafo corresponde con la existencia de dicha compatibilidad entre las entidades que componen los nodos conectados. La Figura 3 ilustra la generación del grafo de asociación G'. Una vez establecidos los vértices, se coloca una arista entre dos de ellos (i.e. (L_{1}O_{3}, L_{2}O_{1})) siempre que la arista referenciada en el modelo ((L_{1}L_{2}) en el ejemplo) y en la observación ((O_{1}, O_{3})) tengan la misma distancia. A partir del grafo de asociación así construido, la solución del problema de correspondencia geométrica pasa por encontrar el máximo clique en dicho grafo.
Cualquier grafo simple tiene su equivalencia en la denominada matriz de adyacencia (A), una matriz binaria, simétrica para el casó de grafos no dirigidos, donde el valor a uno del elemento Ay matriz representa que existe una arista entre los nodos (x_{i}, x_{j}) del grafo. En el caso de nuestro grafo auxiliar, los elementos a uno de la matriz de adyacencias indican compatibilidad binaria entre parejas de entidades patrón y muestra.
2
Cuando una restricción (distancia genérica) entre dos entidades del patrón L_{i1}, L_{i2} es compatible con una restricción entre dos entidades de la muestra O_{j1}, O_{j2}, entonces existe una arista en el grafo G(A), indicando la compatibilidad binaria. Más formalmente, la matriz de adyacencias A se rellena siguiendo el siguiente criterio:
\vskip1.000000\baselineskip
3
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
Lo primero que realiza el algoritmo es almacenar la información de esta matriz en un tablero de bits. Nótese que una palabra o registro del computador tiene un determinado tamaño o numero de bits, que de ahora en adelante denominaremos W_{size}. En los computadores personales actuales esta dimensión es típicamente 32 o 64 bits. En la codificación propuesta, en lugar de almacenar cada valor de la matriz de adyacencias en una variable independiente, se codifican W_{size} valores de la matriz de adyacencias en cada variable del tablero de bits, obteniendo una matriz de variables enteras denominada A_{b} en lugar de las variables booleanas de la matriz A. Cada una de las variables enteras representa (codificada como binario sin signo) en realidad W_{size} variables booleanas. En definitiva, se están representando W_{size} restricciones binarias en una sola variable.
\vskip1.000000\baselineskip
4
\vskip1.000000\baselineskip
Con respecto al tercer punto de la presente invención, nuevo algoritmo eficiente MCP mediante operaciones de enmascaramiento de bits, la forma básica de la mayoría de algoritmos eficientes para obtener la solución exacta del Problema del Máximo Clique (Maximum Clique Problem, MCP) es la de Carraghan y Pardalos. Puesto que estamos hablando de algoritmos exactos, deben implementar alguna estrategia de búsqueda sistemática que se realiza habitualmente primero en profundidad. Dicha búsqueda se lleva a cabo en un espacio de grafos donde cada nuevo nodo a examinar es un nuevo subgrafo inducido del grafo inicial dato. Como estrategia de poda se utiliza la técnica de branch and bound lo que permite cada vez mayores reducciones en el espacio de búsqueda en la medida en que. se van encontrando grafos completos cada vez mayores a largo de la búsqueda. Dicha poda se produce localmente en cada nuevo nodo siempre que se compruebe que en la rama actual de la búsqueda no sé puede encontrar un clique de mayor tamaño que el clique más grande encontrado hasta el momento.
\newpage
La estructura básica de un algoritmo MCP completo en pseudo-código se detalla a continuación:
5
El algoritmo implementa la búsqueda sistemática primero en profundidad mediante recursividad y consta de dos variables globales, S y m_{gclique}. Se almacena el mayor grafo completo encontrado hasta el momento durante la búsqueda y m_{gclique} su tamaño. La variable m_{iclique} almacena el tamaño del mayor subgrafo completo local encontrado en la arista actual. Su valor se actualiza en cada nodo hoja (MAX-CLIQUE) (1').
Cada nodo del árbol de búsqueda es un subgrafo inducido de G cuyos vértices son adyacentes a todos los vértices ya expandidos en la rama actual (almacenados en S). En consecuencia, los vértices de S forman siempre un clique de tamaño la profundidad de la búsqueda. Tras la selección de un nuevo vértice a expandir (MAX-CLIQUE (4')) la generación de un nuevo subgrafo se realiza en la operación U \cap N_{G} (\nu_{i}) (MAX-CLIQUE (5')), donde N_{G}(\nu_{i})es el subgrafo formado por los vértices del grafo inicial dato adyacentes a v_{i} (conocido como conjunto de vértices vecinos, Neighbour Set).
La evaluación de la condición de poda del espacio de búsqueda se realiza en MAX-CLIQUE (2'). u(U) representa un umbral superior del tamaño del máximo clique del grafo U asociado al nodo actual. La poda se produce cuando queda claro que no puede existir ningún clique de mayor tamaño que m_{gclique} a partir de la rama actual y se evalúa en MAX-CLIQUE (3'). Intuitivamente la desigualdad m_{lclique} +u(U) \leq m_{gclique} viene a expresar que no tiene sentido seguir la búsqueda si el máximo clique encontrado hasta el momento en la rama actual junto con un umbral superior del tamaño del máximo clique que puede encontrarse en el subgrafo que queda por examinar no supera la mejor solución global hallada ese momento.
La clave para una poda grande del espacio de búsqueda reside en el cómputo del umbral u(U) y para ello se emplea algún algoritmo de coloreado de los vértices. De manera informal, colorear (los vértices) de un grafo G es asignar un color a todos sus vértices tal que vértices adyacentes tengan siempre un color distinto. Es bien conocido que para cualquier coloreado admisible de un grafo, el número de colores empleado es un umbral superior del máximo clique contenido en dicho grafo. El mejor umbral posible mediante esta técnica coincide con el número cromatográfico o color del grafo, que es el número mínimo de colores necesario para su coloreado.
Desafortunadamente el problema de encontrar el color de un grafo es tan difícil de resolver como el propio problema del máximo clique (MCP), por lo que, en la práctica, se emplean técnicas de coloreado de tipo voraz durante una búsqueda MCP para encontrar umbrales razonablemente buenos de forma eficiente. La Figura 4 ilustra una de estas estrategias para colorear el grafo A. En el ejemplo se seleccionan los vértices de menor a mayor y se asigna un color nuevo a un vértice si y sólo si dicho vértice es adyacente al menos a un vértice de cada color ya asignado. Como resultado se obtiene el grafo tricolor B con lo que \omega(G) \leq 3. La Figura 4 ilustra pues la manera habitual de colorear vorazmente un grafo para obtener como umbral de máximo clique para dicho grafo el número de colores necesitado. El coloreado se realiza vértice a vértice, seleccionándose cada vértice de menor a mayor, teniendo en cuenta que nunca se podrá asignar el mismo color de que el ya asignado a cualquier vértice adyacente. Así en el ejemplo de la figura se selecciona primeramente el vértice 1 (azul) del grafo A y se le asigna el color azul. Posteriormente se elige el vértice 2 que se pinta de rojo porque es adyacente con el vértice 1. Después el vértice 3 recibe un nuevo color porque es adyacente a los dos anteriores y así sucesivamente.
Desde el punto de vista computacional, destacan por su importancia en este algoritmo dos operaciones fundamentales:
1) El cómputo del nuevo subgrafo a examinar a partir de la expansión de uno de los vértices del grafo actual (operación U \cap N_{G}(\nu_{i}) en MAX_CLIQUE (5'));
2) El cómputo de un umbral superior del tamaño del máximo clique para cada subgrafo (u(U)).
La presente invención muestra cómo se pueden realizar de forma eficiente las dos operaciones fundamentales antes descritas mediante operaciones simples de enmascaramiento de bits. Para ello primeramente es necesario codificar la búsqueda en el espacio de grafos en una búsqueda en un espacio de vectores de bits. Una vez realizada dicha codificación, cada operación de enmascaramiento de bits tiene como beneficio una constante W_{size} igual al tamaño de los registros de la CPU.
El nuevo algoritmo propuesto consigue computar las dos operaciones fundamentales mediante operaciones sencillas de enmascaramiento de bits, con lo que la complejidad computacional de toda la búsqueda puede reducirse en tiempo un factor cercano a W_{size}. Este incremento en eficiencia es muy importante teniendo en cuenta los tamaños actuales de los registros de CPUs comerciales, típicamente 32 o 64 (si bien también existen registros especiales de 128 y hasta 256 bits en algunas arquitecturas) y puede resulta imprescindible para emplear algoritmos completos MCP en problemas de correspondencia geométrica reales.
La demostración de que es posible reducir las operaciones fundamentales del algoritmo MCP a un conjunto de operaciones sencillas de enmascaramiento de bits se ha divido en tres apartados:
A)
Codificación del espacio de búsqueda en un espacio de bits
B)
Cómputo de las transiciones mediante operaciones simples de bits
C)
Cómputo del coloreado voraz de un grafo mediante operaciones simples de bits
Para codificar el espacio de búsqueda en un espacio de vectores de bits basta con asociar los unos de la matriz de adyacencias del grafo dato con un bit específico de alguna estructura de datos. La manera más natural de hacer esta correspondencia es mapear filas enteras de la matriz de adyacencias en vectores de bits. Así, un grafo de n vértices se codificará como un conjunto de n vectores de bits de tamaño n.
Con respecto al apartado B), cómputo de un nuevo subgrafo transición mediante operaciones simples de bits, la búsqueda del máximo clique se desarrolla en un espacio de grafos, mostrado en la Figura 5, y cada vértice expandido genera un nuevo subgrafo en el siguiente nodo. Dicha figura presenta el árbol de búsqueda que se genera durante la resolución del máximo clique. Cada nodo del árbol es un subgrafo inducido del grafo dato original, asociado al nodo raíz. En cada nivel de profundidad el nuevo subgrafo tiene menos vértice que su homólogo anterior. Además, el grafo inducido de G formado por todos los vértices que componen un camino desde el nodo raíz a cualquier nodo hoja forman un clique. En el ejemplo de la figura, el cómputo del nuevo grafo U_{k} = (V_{k},E_{k}) en el nodo n_{k} del árbol es el resultado de la operación G \cap N_{G}(\nu_{k}) (como en MAX-CLIQUE (5')). U_{k} es el subgrafo inducido por v_{k} en G y contiene todos los nodos de G adyacentes al nodo v_{k}. Nótese que G \supseteq U_{k}, \forallk y que además cualquier subgrafo U_{k} es inducido de su antecesor y del grafo inicial dato G.
Esta última afirmación es muy importante porque implica que todas las posibles aristas de cualquier subgrafo U_{k} están almacenadas en la matriz de adyacencias A del grafo inicial dato G, codificada a su vez como tablero de bits (4). Por todo ello y, a partir de la Figura 5, se deduce que la lista de vértices del subgrafo U_{k+1}, puede obtenerse mediante una operación AND entre el vector de bits que codifica los vértices del subgrafo del nodo padre U_{k} y el vector de bits que codifica los vértices adyacentes a v_{k} en el grafo inicial dato G (la fila k-ésima de la matriz de adyacen-
cias).
De una manera más formal sea v_{k} el vértice a expandir en el nodo actual de la búsqueda, Uk el subgrafo actual y A_{k} la fila k-ésima de la matriz de adyacencias del grafo dato inicial. Entonces, el nuevo subgrafo a examinar tras la expansión de v_{k} puede computarse en el espacio de vectores de bits propuesto como:
\vskip1.000000\baselineskip
100
\vskip1.000000\baselineskip
En un algoritmo MCP convencional como el descrito en MAX-CLIQUE, dicha operación tiene un coste computacional O(|G|) mientras que en este caso se realizan W_{size} operaciones de golpe, por lo que la computación se realiza en O(|G|/W_{size}) operaciones. Esta ganancia se extiende al cómputo de cualquier transición durante la búsqueda por lo que, siendo el cómputo de transiciones un cómputo fundamental de la búsqueda, dicho beneficio tiene impacto sobre el tiempo total. Con respecto al apartado C), cómputo de un umbral superior del máximo clique o del coloreado voraz de un grafo mediante operaciones de bits, anteriormente se explicó que la obtención del mínimo número de colores necesario para colorear un grafo es un problema tan costoso computacionalmente como el problema del máximo clique que se pretende resolver. Debido a ello, para la obtención de umbrales del tamaño del máximo clique en un grafo se emplea un coloreado voraz como el de la figura 4.
Un coloreado de un grafo G= (V,E) mediante k colores (conocido como un k-coloreado) particiona V en C_{k} subconjuntos disjuntos formados por vértices que tienen el mismo color con la propiedad de que ninguno de los vértices en una partición es adyacente a ningún otro. En la Teoría de Grafos esta propiedad cataloga a dichas particiones de V como independientes. El grafo B de la figura 4 es un 3-coloreado del grafo A con conjuntos independientes C_{1}={1,4}(Azul), C_{2}={2,5}(Rojo) y C_{3}=3 (Verde).
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
(Tabla pasa a página siguiente)
\newpage
Se explica a continuación como obtener un coloreado voraz mediante operaciones simples de enmascaramiento de bits. El nuevo algoritmo de coloreado se ha denominado COLOR. Su implementación en pseudocódigo se detalla a continuación:
6
La intuición fundamental del nuevo coloreado propuesto reside en la asignación color a color, en lugar de vértice a vértice que sería la forma habitual. Tomando como referencia nuevamente el grafo A de la figura 4, se propone ir generando sucesivamente las diferentes particiones de color C_{k}; en el ejemplo, primero se pintan todos los vértices posibles de azul, luego de rojo y después de verde. Esta idea clave va a permitir el coloreado eficiente mediante operaciones de bits en paralelo.
COLOR es un algoritmo voraz lexicográfico que devuelve en la variable num_col el número de colores empleado para pintar un grafo inicial dato G = (V, E), particionando el conjunto de vértices V en k conjuntos disjuntos C_{k}. Las operaciones críticas que se pueden paralelizar a nivel de bits quedan enmarcadas (líneas 1'' y 2''). El operador N_{\overline{G}}(\nu)es el subgrafo formado por aquellos vértices de G que no son adyacentes a v (y, por tanto, adyacentes en el grafo complementario \overline{G}), por tanto, Q \cap N_{\overline{G}}(\nu) son aquellos vértices en Q no adyacentes con v. Intuitivamente, Q tiene en cada momento el conjunto de vértices no adyacentes a todos los vértices ya coloreados de un mismo color; exactamente el conjunto de candidatos a los que todavía se les puede asignar el color actual.
Desde el punto de vista computacional la operación más crítica es precisamente Q = Q \cap N_{\overline{G}} (\nu). Ahora bien, esta última operación es muy similar a la operación fundamental de enmascaramiento empleada en MAX-CLIQUE(5'): U \cap N_{U}(\nu_{i}) de hecho, la tarea de asignación de un color al subgrafo Q puede verse como la obtención voraz de un cuqué mediante selección ordenada de vértices en el subgrafo complemento \overline{Q}. Esta última operación ya se ha demostrado computable mediante enmascaramiento de bits en (5) por lo que la primera debería también serlo puesto que el cómputo del grafo complementario se traduce en una operación de inversión NOT en el espacio de bits.
Más formalmente, sea A la matriz de adyacencias del grafo inicial G codificada como tablero de bits, sea A_{k} la fila k-ésima de la matriz de adyacencias codificada como un vector de bits y sea Q = (V_{Q},E_{Q}) un subgrafo cualquiera inducido de G a colorear. Entonces se puede computar la expresión Q \cap N_{\overline{G}}(\nu_{k}) para un \nu_{k} \epsilon Q mediante las operaciones de enmascaramiento de bits NOT y AND de la siguiente forma:
7
donde NOT(A_{k})son precisamente todos los vértices no adyacentes a v_{k} en el grafo inicial dato G y la operación AND hace los efectos de la intersección.
Finalmente, la segunda operación enmarcada en COLOR (2'') es una operación de borrado que también puede realizarse mediante operaciones de bits de forma estándar. Sean BB_{U} y BB_{Ck} los vectores de bits que codifican el conjunto de vértices de U y C_{k} respectivamente. Entonces U - C_{k} puede computarse como:
8
También sería posible la paralelización externa clásica del algoritmo, esto es, la descomposición del problema en partes, para que distintos procesadores computen cada uno su parte de forma distribuida. Con este paralelismo externo se conseguirían reducciones en tiempo adicionales. La invención, consistente en paralelismo a nivel de bits interno a cada CPU, mejoraría también en gran medida las soluciones distribuidas o con paralelismo externo al optimizar la solución del problema en cada uno de los procesadores.
El trabajo fundamental para implementar programando la invención puede ser realizado por cualquier programador experto con nociones de búsqueda en grafos, basándose en el pseudo-código suministrado y en la descripción de la matriz de adyacencias estructurada en palabras. El mayor esfuerzo en la programación es precisamente la implementación y manipulación de las estructuras de información necesarias para codificar el espacio de búsqueda como espacio de bits, lo que supone codificar la matriz de adyacencias en la forma propuesta. También es necesario implementar funcionalidades de inserción, extracción y localización de bits en una palabra de una forma eficiente para no disminuir el rendimiento global. Finalmente es importante la integración de todas estas técnicas en el marco recursivo descrito en el pseudo-código.
En cuanto a la aplicación industrial, el principal interés de la invención es que sus aplicaciones industriales pueden ser muy numerosas. Hay muchos campos y aplicaciones de la tecnología, ciencia de los computadores e inteligencia artificial que se pueden beneficiar de la invención. Cualquier búsqueda de similitud entre patrones geométricos es susceptible de ser formulada como un MCP y por lo tanto ser beneficiada por la optimización propuesta en la invención. Como ejemplos de aplicación industrial podríamos citar:
\bullet Comparación de huellas dactilares
\bullet Búsqueda de patrones o coincidencias en imágenes
\bullet Localización de robots
\bullet Reconocimiento de caras
\bullet Comparación de planos arquitectónicos e industriales
\bullet Análisis de similitud de logos de marcas registradas
Básicamente, cualquier problema de búsqueda de correspondencia entre dos conjuntos, que pueda ser expresado por características geométricas discretas es una posible aplicación industrial de la invención.
Se describen a continuación en detalle dos de los anteriores ejemplos de posibles usos de la invención:
A- Reconocimiento de imágenes
Supóngase que se dispone de una imagen en la que se pueden observar distintas características geométricas. Por ejemplo, la vista de pájaro de una ciudad, en la que se observan los tejados de los edificios. Esta vista típicamente puede resultar muy simétrica a los ojos humanos, sobre todo en zonas de moderna urbanización. Esta imagen puede tener importantes dimensiones, como toda una ciudad.
El problema es localizar en esa imagen de toda la ciudad una vista parcial de la misma, de la que se desconoce totalmente su posición y orientación. Además hay que tener en cuenta que estas imágenes parciales, al ser tomadas en distintos instantes de tiempo, puede presentar características distintas como variaciones en la luz, y también objetos como coches o autobuses que cambian totalmente de posición, aparecen y desaparecen. El resultado es una vista parcial con un posible elevado nivel de ruido respecto a la imagen base.
Manejar la información de las imágenes a nivel de pixeles es prácticamente impensable. La técnica más común en visión artificial es procesar las imágenes y extraer de ellas características geométricas. La principal característica geométrica es posiblemente el punto o esquina. Existen numerosos algoritmos para obtener estos puntos en una imagen.
Una vez procesados la imagen base (que por otro lado solo tiene que ser procesada una vez) y las imágenes parciales, el problema se reduce a encontrar la máxima correspondencia entre los conjuntos de puntos de cada una, que constituyen los grafos anteriormente descritos, y cuya solución exacta es abordada eficientemente por la invención presentada. Nótese además que la solución exacta puede ser requerida, ya que una solución aproximada podría fallar debido al ruido anteriormente descrito.
B- Localización de robots móviles o reconocimiento de planos arquitectónicos
Otra posible aplicación de la invención es la localización de robots móviles en base a un plano del entorno (posiblemente un edificio) en el que se mueve. Aunque en este punto se describe la posible aplicación para dicha localización, el razonamiento es prácticamente análogo para el caso en el que se quieran comparar automáticamente planos de arquitectura para encontrar semejanzas, coincidencias o patrones entre ellos.
Supóngase que se dispone de un mapa del edificio, típicamente una planta del mismo, que bien puede haber sido construido automáticamente por un robot, u obtenida manualmente mediante mediciones. La Figura 6 muestra un mapa de un entorno real (en este caso un castillo) obtenido con un robot móvil. Para construir este mapa es necesaria la exploración, es decir ir recorriendo de una estancia a otra el entorno y ampliando incrementalmente el mapa.
Si se posiciona un robot móvil en un punto del entorno desconocido, el robot comienza a realizar medidas con sus sensores, observando una vista parcial o local del entorno, consistente típicamente en unas pocas paredes o habitaciones. El problema consiste ahora en obtener la posición del robot en el mapa general. La Figura 7 ilustra algunas observaciones o vistas locales realizadas por el robot móvil en el mismo entorno, a partir de sus sensores locales (i.e. láser). Dichas observaciones son una vista parcial o local del entorno consistente típicamente en unas pocas paredes o habitaciones.
Si se considera el mapa general como un conjunto de características geométricas (generalmente segmentos de recta) que pueden ser relacionadas entre ellas mediante restricciones binarias como ángulos o distancias constituyendo un grafo, y las observaciones locales del robot de forma totalmente análoga constituyen otro grafo de similares características, el problema queda reducido igualmente a encontrar el Máximo Subgrafo Común (Maximum Common Subgraph, MCS) entre los dos grafos, lo que puede ser abordado eficientemente por la invención propuesta convirtiéndolo en un problema MCP. Hay que tener en cuenta en este punto que suposiciones de observabilidad, visibilidad o hipótesis simplificativas pueden dar lugar a errores, ya que los entornos de interiores pueden evolucionar, así como las observaciones de los mismos por cambios en el mobiliario, movimientos de puertas y ventanas, objetos dinámicos como personas, dando lugar a observaciones ruidosas. Además, los entornos de interiores construidos por el hombre presentan a menudo simetrías, siendo necesaria la búsqueda de la solución completa para no obviar la solución real debido a dichas simetrías.
El mismo procedimiento puede ser aplicado para comparar un fragmento de plano con una base de datos de planos arquitectónicos para encontrar la correspondencia de una forma eficiente, de una forma parecida a como se haría con las huellas dactilares, lo que puede servir para tareas policiales o también para proteger la propiedad intelectual arquitectónica.

Claims (4)

1. Método para calcular la correspondencia óptima entre patrones geométricos, siendo dichos patrones geométricos un modelo o referencia y una observación o muestra, caracterizado porque comprende:
- establecer una restricción binaria entre dos entidades geométricas pertenecientes al mismo patrón geométrico, ya sean entidades geométricas del modelo (L_{i1}, L_{i2},...) o de la observación (O_{j1}, O_{j2},...), mediante la definición de al menos una métrica m entre dos entidades geométricas del mismo patrón, m: ExE \rightarrow R, siendo E el conjunto de entidades que conforman el dominio del problema de la correspondencia a calcular;
- codificar un grafo de asociación G que tiene como vértices el producto cartesiano de los vértices de los grafos modelo (L_{1}, L_{2}, ...) y observación (O_{1}, O_{2}, ...) en una matriz de adyacencias A; dicho grafo de asociación G se construye determinando las aristas entre nodos, correspondiendo cada arista del grafo con la existencia de la compatibilidad binaria entre las entidades que componen los nodos conectados y siendo la matriz A una matriz binaria donde el valor 1 del elemento A_{ij} de la matriz A representa que existe una arista entre los nodos (x_{i}, x_{j}) del grafo, siendo dicho valor 0 en caso de que no exista arista y en el que la codificación de dicha matriz A se hace mediante variables enteras de tamaño W_{size}, siendo W_{size} el número de bits que tiene el registro de la CPU encargada de realizar el cálculo de la correspondencia óptima entre patrones geométricos;
- aplicar un algoritmo MCP (Problema del Máximo Clique) modificado que emplea el paralelismo de bits para el cómputo de las operaciones fundamentales de la búsqueda de forma eficiente.
2. Método para calcular la correspondencia óptima entre patrones geométricos según la reivindicación 1, caracterizado por el uso de paralelismo de bits que se aplica en las siguientes operaciones del algoritmo MCP:
- el cómputo del nuevo subgrafo a examinar a partir de la expansión de uno de los vértices del grafo actual;
- el cómputo de un umbral superior u(U) del tamaño del máximo clique para cada subgrafo.
3. Método para calcular la correspondencia óptima entre patrones geométricos según la reivindicación 2, caracterizado porque en la operación del algoritmo MCP relativa al cómputo del nuevo subgrafo a examinar a partir de la expansión de uno de los vértices v_{k} del grafo actual, dicho nuevo subgrafo a examinar tras la expansión del vértice v_{k} puede computarse en el espacio de vectores de bits como:
9
siendo U_{k} el subgrafo actual y A_{k} la fila k-ésima de la matriz de adyacencias A del grafo dato inicial G.
4. Método para calcular la correspondencia óptima entre patrones geométricos según la reivindicación 2, caracterizado porque en la operación del algoritmo MCP relativa al cómputo de un umbral superior u(U) del tamaño del máximo clique para cada subgrafo se emplea un algoritmo de coloreado en el cual se efectúan dos operaciones mediante operaciones de enmascaramiento de bits:
- sea A_{k} la fila k-ésima de la matriz A y sea Q = (V_{Q}, E_{Q}) un subgrafo cualquiera inducido de G a colorear, se calcula la expresión Q \cap N\overline{G} (\nu_{k}) del algoritmo de coloreado para un \nu_{k} \epsilon Q mediante las operaciones de enmascaramiento de bits NOT y AND de la siguiente forma:
10
donde NOT(A_{k}) son todos los vértices no adyacentes a v_{k} en grafo inicial G y la operación AND hace los efectos de la intersección;
- sean BB_{U} y BB_{Ck} los vectores de bits que codifican el conjuntó de vértices de U y C_{k} respectivamente, U - C_{k} se calcula de la siguiente forma:
11
siendo C_{k} los subconjuntos disjuntos formados por vértices que tienen el mismo color.
ES200802254A 2008-07-29 2008-07-29 Metodo para calcular la correspondencia optica entre patrones geometricos. Withdrawn ES2327489A1 (es)

Priority Applications (1)

Application Number Priority Date Filing Date Title
ES200802254A ES2327489A1 (es) 2008-07-29 2008-07-29 Metodo para calcular la correspondencia optica entre patrones geometricos.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
ES200802254A ES2327489A1 (es) 2008-07-29 2008-07-29 Metodo para calcular la correspondencia optica entre patrones geometricos.

Publications (1)

Publication Number Publication Date
ES2327489A1 true ES2327489A1 (es) 2009-10-29

Family

ID=41202319

Family Applications (1)

Application Number Title Priority Date Filing Date
ES200802254A Withdrawn ES2327489A1 (es) 2008-07-29 2008-07-29 Metodo para calcular la correspondencia optica entre patrones geometricos.

Country Status (1)

Country Link
ES (1) ES2327489A1 (es)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109190160A (zh) * 2018-07-27 2019-01-11 华中科技大学 一种分布式水文模型的矩阵化模拟方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
EFFICIENT GLOBAL LOCALIZATION BY SEARCHING A BIT-ENCODED GRAPH P. SAN SEGUNDO et al. IAV'07, 2007. Todo el documento. *
Efficient search using bitboard models [SAN SEGUNDO P et al.]. Proceedings XVIII Int. Conf. Conference on Tools for AI (ICTAI 06): 132-138. Todo el documento. *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109190160A (zh) * 2018-07-27 2019-01-11 华中科技大学 一种分布式水文模型的矩阵化模拟方法
CN109190160B (zh) * 2018-07-27 2020-12-01 华中科技大学 一种分布式水文模型的矩阵化模拟方法

Similar Documents

Publication Publication Date Title
Buchin et al. Exact algorithms for partial curve matching via the Fréchet distance
Chin et al. Finding the medial axis of a simple polygon in linear time
JP2020119591A (ja) コグニティブメモリによるグラフのインデキシング、格納、および検索
Bai et al. Path similarity skeleton graph matching
Huan et al. Efficient mining of frequent subgraphs in the presence of isomorphism
Hornung et al. OctoMap: An efficient probabilistic 3D mapping framework based on octrees
Devillers On deletion in Delaunay triangulations
Bai et al. Detection and recognition of contour parts based on shape similarity
Asano et al. Memory-constrained algorithms for simple polygons
Vleugels et al. Approximating generalized Voronoi diagrams in any dimension
Suger et al. An approach to solving large-scale slam problems with a small memory footprint
Flint et al. A dynamic programming approach to reconstructing building interiors
Cupec et al. Place recognition based on matching of planar surfaces and line segments
US11721085B2 (en) Generating and evaluating mappings between spatial point sets in multi-levels
De La Higuera et al. Polynomial algorithms for open plane graph and subgraph isomorphisms
Huroyan et al. Solving jigsaw puzzles by the graph connection Laplacian
Dryanovski et al. Large-scale, real-time 3D scene reconstruction on a mobile device
Asano et al. Reprint of: Memory-constrained algorithms for simple polygons
Thorpe et al. Asymptotic analysis of the Ginzburg–Landau functional on point clouds
Goodrich et al. Parallel algorithms in geometry
De Fraysseix An heuristic for graph symmetry detection
Meulemans Similarity measures and algorithms for cartographic schematization
Keles et al. Embedding shapes without predefined parts
ES2327489A1 (es) Metodo para calcular la correspondencia optica entre patrones geometricos.
Dong et al. GPU-accelerated discontinuous Galerkin methods on polytopic meshes

Legal Events

Date Code Title Description
EC2A Search report published

Date of ref document: 20091029

Kind code of ref document: A1

FA2A Application withdrawn

Effective date: 20091124