¿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?
Editar:
Después de la difusión anisotrópica: el fondo que no quiero se aclara un poco
Después de la dilatación:
Umbralización después de la difusión: no se puede determinar el mejor umbral para este propósito
Sin embargo, no puedo averiguar cómo eliminar el fondo.
Editar: solo quiero estas partes de mi imagen
Tomando otra imagen de entrada:
Aplicación de filtrado medio y detección de bordes:
Después del filtrado del sombrero inferior:
¿Cómo aíslo las señales de tráfico por favor ayuda?
Respuestas:
¿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:
Aunque la plantilla se gira ligeramente, la correlación cruzada todavía parece utilizable
y la mejor coincidencia se encuentra en la posición correcta:
(Necesitaría múltiples versiones a escala de cada plantilla para detectar signos en cualquier tamaño, por supuesto)
fuente
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.
fuente
Bueno, googlear
road way signs detection
te 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
fuente
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
fuente