2011-01-27 20 views
5

Necesito hacer coincidencia de plantilla en 360 grados.coincidencia de plantilla con la rotación

La mayoría de las plantillas son 80 * 120 y la imagen tiene una escala de grises de 640 * 480 (8 bits).

Para la no rotación Estoy usando opencv cvmatchtemplate que funciona bastante bien.

He intentado rotar la plantilla en varios ángulos y haciendo cvmatchtemplate, está funcionando, pero consume demasiado tiempo.

Para la coincidencia normal de la plantilla tardará 12 ms, y para 360 grados se requiere menos de 50 ms.

+0

¿Qué estás tratando de lograr exactamente? Tal vez haya una alternativa a una coincidencia de plantilla ... ¿La plantilla cambia a menudo? De lo contrario, podría rotarlos y guardarlos, y luego usar las plantillas giradas. Eso debería ser más rápido ... y si la coincidencia de la plantilla (repetida) en sí misma lleva demasiado tiempo, debería considerar usar otro método ... ¿Tiene alguna imagen de muestra? – evident

Respuesta

0

Buscar en Google Scholar para "funciones discriminantes sintéticos" o "filtros de correlación compuestos". Este es un buen punto de partida: http://www.opticsinfobase.org/abstract.cfm?URI=ao-31-23-4773. Si puede encontrar el libro "Correlation Pattern Recognition", la sección 6.2 también explica los filtros compuestos.

La idea principal es que tome las plantillas generadas al rotar sus imágenes y generar una única plantilla sintética. Esto se hace mediante la formulación de un sistema de ecuaciones lineales de la forma

Ax = c 

Dónde A es la matriz de coeficientes generados a partir de las plantillas que tiene disponible. x es la plantilla sintética que va a determinar, y c es un vector de restricciones. Las restricciones se pueden establecer en incluyen algunas plantillas y rechazan otras.

El problema es que cuando combina demasiadas plantillas en una comienza a perder el rendimiento correspondiente. Por supuesto, existen formas de solucionar este problema según la información adicional que tenga disponible sobre las imágenes en las que planea usar sus plantillas sintéticas.

4

Si convierte su plantilla e imagen en coordenadas polares, puede realizar la búsqueda como si fuera una traducción. Esto debería ser mucho más rápido porque es solo una transformación: puede implementar esto de manera eficiente.

Creo que esperar obtener un buen resultado para 360 grados es un reto. La plantilla debe haber cambiado durante esa transformación. Si solo fue unos pocos grados, es menos probable que cambie.

Tome un vistazo a "Una técnica basada en la FFT de traslación, rotación y registro de imágenes invariante de escala", Reddy y Chatterji, IEEE Transactions on Image Processing, 1996.

Cuestiones relacionadas