ES2327489A1 - Metodo para calcular la correspondencia optica entre patrones geometricos. - Google Patents
Metodo para calcular la correspondencia optica entre patrones geometricos. Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern 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.
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.
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.
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.
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.
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:
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.
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
\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
\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:
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).
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
\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:
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:
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:
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:
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.
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:
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:
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:
siendo C_{k} los
subconjuntos disjuntos formados por vértices que tienen el mismo
color.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109190160A (zh) * | 2018-07-27 | 2019-01-11 | 华中科技大学 | 一种分布式水文模型的矩阵化模拟方法 |
-
2008
- 2008-07-29 ES ES200802254A patent/ES2327489A1/es not_active Withdrawn
Non-Patent Citations (2)
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)
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 |