¿Cómo extraer señales de tráfico de una fotografía?


15

¿Qué técnicas de análisis de imagen puedo usar para extraer las señales de tráfico de una imagen como la que se muestra a continuación?

Plano exterior de una carretera metropolitana

Editar:

Después de la difusión anisotrópica: el fondo que no quiero se aclara un poco

ingrese la descripción de la imagen aquí

Después de la dilatación:

ingrese la descripción de la imagen aquí

Umbralización después de la difusión: no se puede determinar el mejor umbral para este propósito

ingrese la descripción de la imagen aquí

Sin embargo, no puedo averiguar cómo eliminar el fondo.

Editar: solo quiero estas partes de mi imagen

ingrese la descripción de la imagen aquí

Tomando otra imagen de entrada:

ingrese la descripción de la imagen aquí

Aplicación de filtrado medio y detección de bordes:

ingrese la descripción de la imagen aquí

Después del filtrado del sombrero inferior:

ingrese la descripción de la imagen aquí

¿Cómo aíslo las señales de tráfico por favor ayuda?


Para mí, "señal de tráfico" significa un dispositivo iluminado justsymbol.com/images/traffic-signal-sign-6.png , no una señal. ¿Quieres decir solo signos?
endolito

Sí, solo las señales
vini

¿Qué enfoque has probado tú mismo?
Maurits

Sí, tengo plantillas
vini

Han editado @mauritis
vini

Respuestas:


17

¿Intentaste algo simple como la correlación?

( EDITAR ). La idea detrás de la correlación es usar una plantilla (en su caso, una muestra de señal de tráfico entrenada) y compararla con cada posición en la imagen de prueba. La operación de comparación que he usado para generar las imágenes a continuación se llama correlación cruzada normalizada . Hablando en términos generales, estandariza (media = 0, desviación estándar = 1) los píxeles en la plantilla y la parte de la imagen que desea hacer coincidir, multiplíquelos píxel por píxel y calcule el valor medio de los productos. De esta forma, obtiene un "puntaje de coincidencia", es decir, una medida de similitud entre la plantilla y la imagen de prueba en cada posición de la imagen de prueba. La posición con la mejor coincidencia (correlación más alta) es el candidato más probable para la posición de la señal de tráfico. (En realidad, he usado la función de MathematicaCorrelationDistance para generar la imagen de abajo, que es 1 - (correlación normalizada). Entonces, el punto más oscuro en la imagen de la coincidencia corresponde a la mejor coincidencia).

No tengo ninguna otra plantilla, así que simplemente recorté el letrero de la segunda imagen que publicaste:

ingrese la descripción de la imagen aquí

Aunque la plantilla se gira ligeramente, la correlación cruzada todavía parece utilizable

ingrese la descripción de la imagen aquí

y la mejor coincidencia se encuentra en la posición correcta:

ingrese la descripción de la imagen aquí

(Necesitaría múltiples versiones a escala de cada plantilla para detectar signos en cualquier tamaño, por supuesto)


1
@nikie: ¿Podría explicar el proceso que utilizó?
smokris

Sí, eso ayudaría un poco más. La idea parece buena
vini

@vini Si tiene plantillas y está tratando de encontrar instancias de ellas en su imagen, la correlación cruzada es el enfoque más natural y debería estar entre los primeros enfoques que intente. Aquí hay una respuesta aquí (código de Mathematica) y otra en SO (código de MATLAB) donde uso este enfoque.
Lorem Ipsum

7

Durante mi maestría, el proyecto en el que participó mi supervisor consistía en detectar y reconocer todo tipo de señalización de tráfico diferente en secuencias de video (por ejemplo, detección de carreteras, detección de la línea central de la carretera, pero también detección y reconocimiento de señales de tráfico ). Los cuadros de video en los que estábamos trabajando son muy similares a sus imágenes de ejemplo.

Si bien personalmente no trabajé en las señales de tráfico, creo que los mejores resultados se obtuvieron utilizando el algoritmo Viola-Jones (papel) . En resumen, es un algoritmo que utiliza una cascada de clasificadores débiles (con una precisión un poco más alta que la de un algoritmo aleatorio) para construir un clasificador fuerte que sea robusto incluso en tareas difíciles.

El proyecto se llamó MASTIF (Mapeo y evaluación del estado de la infraestructura de tráfico) e hizo un trabajo realmente bueno. La página de publicación del proyecto podría ser realmente útil porque proporciona enlaces a todos los documentos publicados relacionados con el proyecto. Solo para darle una idea, permítanme destacar algunas de las publicaciones (en orden cronológico):

Una vez más, no trabajé personalmente en las señales de tráfico, pero creo que puedes encontrar mucho material útil aquí. Además, sugeriría revisar las referencias citadas en los documentos, ya que también pueden ser de ayuda.


6

Bueno, googlear road way signs detectionte ofrece muchos buenos documentos sobre este tema.

Algunos utilizan la segmentación de color debido a los peculiares colores azul, verde, rojo, etc.

Algunos aplican primero el alisado gaussiano, luego la detección de bordes astutos y la búsqueda de contornos para extraer el letrero.

Intente seguir dos enlaces: Enlace 1 , Enlace 2


enlaces muertos, por desgracia
CharlesB

En realidad, ambos enlaces funcionan para mí.
Abid Rahman K

@CharlesB: Los enlaces se actualizan :)
Anoop KP

5

Definitivamente no soy un experto aquí, pero puedes comenzar con la detección de bordes (como canny), luego hacer una transformación para detectar círculos, rectángulos, cuadrados o triángulos (según el signo que quieras detectar), luego puedes hacer una plantilla coincidencia o histograma, si los colores son lo suficientemente distintos (sobre los candidatos devueltos por la transformación hough).

El primer paso (detectar a los candidatos mediante la transformación hough) es el paso más difícil. Se me ocurren muchas formas de tratar de detectar si ese candidato es el signo o no. Este es un problema divertido. Disfruta resolviéndolo :)

Por cierto, estoy seguro de que puedes encontrar buenos artículos de investigación que están muy relacionados

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.