Análisis de imágenes.
Análisis de imágenes: procesamiento “inteligente” de las imágenes orientado a la extracción de información de tipo cualitativo (qué hay en las imágenes) o cuantitativo (posiciones, tamaños, distancias, tonos, etc.).
Objetivos del análisis:
Detección de objetos: encontrar en la imagen las instancias de cierto tipo o clase de objetos.
Reconocimiento de objetos: distinguir la identidad específica de un objeto que se conoce que pertenece a cierta clase.
Segmentación: separar los objetos de interés del fondo.
Seguimiento y correspondencia: encontrar la equivalencia de puntos entre dos imágenes (por ejemplo, imágenes en una secuencia de vídeo o en un par estéreo).
Reconstrucción 3D: extraer información 3D de la escena, posiciones, ángulos, velocidades, etc.
Búsqueda de patrones.
La búsqueda de patrones es una técnica de análisis que se puede aplicar en detección de objetos, reconocimiento, seguimiento y correspondencia.
Idea de la técnica: dada una imagen (un patrón o modelo) encontrar sus apariciones dentro de otra imagen mayor.
No se buscan sólo las apariciones “exactas”, sino permitiendo cierto grado de variación respecto al patrón.
Ejemplo. Buscar el patrón:
en la imagen dada.
Resultado: nº de aparicio-nes, localización de cada una y “verosimilitud”
Búsqueda de patrones.
El método más sencillo de búsqueda de patrones es el template matching (comparación de plantillas).
Template matching: sea A una imagen (de tamaño WxH), y sea P un patrón (de wxh), el resultado es una imagen M (de tamaño (W-w+1)x(H-h+1)), donde cada píxel M(x,y) indica la “verosimilitud” (probabilidad) de que el rectángulo [x,y] – [x+w-1, y+h-1] de A contenga el patrón P.
La imagen M se define usando alguna función de diferencia (o similitud) entre dos trozos de imagen.
M(x,y):= d({A(x,y),…,A(x+w-1,y+h-1)}, {P(0,0),…, P(w-1,h-1)})
Ejemplo. Suma de diferencias al cuadrado:
M(x, y):= ? ? (P(a, b) – A(x+a, y+b))2
a= 0..w-1 b= 0..h-1
Es parecido a una convolución (pasar una máscara por toda la imagen)
Búsqueda de patrones.
Ejemplo. Template matching con suma de diferencias al cuadrado.
Imagen de entrada A (239×156)
P – patrón a buscar (68×37)
Mapa de matching M
Mapa superpuesto
6,58·106
125,3·106
Búsqueda de patrones.
Los valores bajos (color oscuro) indican alta probabilidad de que el patrón se encuentre en esa posición (esquina superior izquierda).
Los valores altos (color blanco) indican probabilidad baja.
¿Cuánto es alto o bajo? ? Normalizar el resultado.
Normalización: dividir el resultado por:
sqrt( ? ? P(a, b)2 · ? ? A(x+a, y+b)2)
a= 0..w-1 b= 0..h-1 a= 0..w-1 b= 0..h-1
Ejemplo. Diferenciasal cuadradonormalizadas.
Mínimo: 0,119
Media: 2,5
Búsqueda de patrones.
Se pueden usar también otras medidas de distancia.
Ejemplo. Producto escalar de patrones “centrados”.
M(x, y):= ? ? (P’(a, b)·A’(x+a, y+b))
a= 0..w-1 b= 0..h-1
donde P’(a,b):= P(a,b) – Media(P). Lo mismo para A’.
El valor (normalizado) está entre -1 y +1. Cuanto mayor (más próximo a +1) más probabilidad.
Imagen de entrada, A
Patrón, P
Mapa de matching, M
0,947
Esto es lo que se llama la correlación
Búsqueda de patrones.
Una de las principales aplicaciones del template matching es la detección de objetos.
Proceso de detección de objetos usando búsqueda de patrones.
1) Conseguir un patrón, P, representativo de la clase de objetos a buscar.
2) Aplicar el template matching a la imagen, obteniendo M.
3) Buscar los máximos (o mínimos) locales de M.
3.1) Buscar el máximo global, (lx, ly)= argmax?x, y M(x, y).
3.2) Si M(lx, ly) es menor que cierto umbral, acabar.
3.3) Añadir la posición (lx, ly) a una lista de localizaciones resultantes del proceso.
3.4) Poner a cero en M el rectángulo [lx-w,ly-h]–[lx+w,ly+h].
3.5) Volver al paso 3.1.
Búsqueda de patrones.
Ejemplo 1. Detección de objetos con template matching.
Imagen de entrada, A
Patrón, P
Resultados:
Posición (97, 87) con: 0.947
Posición (93, 10) con: 0.941
Posición (161, 47) con: 0.939
Posición (12, 24) con: 0.906
Posición (20, 121) con: 0.899
Posición (165, 9) con: 0.332
Mapa de matching, M
Búsqueda de patrones.
Pero, normalmente, el problema no es tan sencillo. Las clases de objetos presentan mayor variabilidad, y pueden haber variaciones de tamaño y rotación.
El umbral debe bajarse, produciendo falsos positivos.
Ejemplo 2. Detección de caras humanas.
Imagen de entrada, A (640×480)
Patrón, P (29×27)
Patrón ampliado
Búsqueda de patrones.
Ejemplo 2. Detección de caras humanas con template matching.
Mapa de matching, M
Resultados de la detección
Función: producto vectorial.
Umbral usado: 0,5
Falsos positivos
Falsos negativos
Página siguiente |