“Diseño e implementación de una algoritmo para el reconocimiento de imágenes de carreteras con la herramienta OpenCV

unnamed

El trabajo desarrollado durante el Proyecto Fin de Carrera, titulado “Diseño e implementación de una algoritmo para el reconocimiento de imágenes de carreteras con la herramienta OpenCV”, ha consistido en la elaboración de algoritmos que permita extraer, de forma automática, características de las carreteras a través de vídeos mediante la herramienta de análisis y tratamiento de imágenes OpenCV. Principalmente, el proyecto se ha centrado en la extracción de dos parámetros que integran la calzada como es el número de carriles y el ancho de los arcenes.
Para la extracción del número de carriles se contemplaron algunas técnicas como la determinación del punto de fuga con el fin de que sólo quedasen las líneas viales de la calzada. Finalmente, tras haber probado estas posibilidades, el algoritmo final implantado para este objetivo se ha centrado en la variación de intensidades al convertir la imagen a escala de grises con el fin de buscar las transiciones negro-blanco-negro como se puede ver a continuación:

Curva intensidades antes y después del filtrado

La curva resultante (color amarillo) es el resultado de la conversión RGB a escala de grises a través de una curva de muestreo (color azul). Analizando visualmente la curva amarilla, se puede apreciar que, cuando la curva de muestreo corta con las líneas delimitadoras de carril, existen variaciones bruscas en la curva (color verde), las cuales se corresponden con la posición en la que están situadas las líneas blancas (color amarillo). Para estabilizar esta curva, y con el fin de aislar estas variaciones de forma sencilla, se aplicó un filtro paso alto (color morado) y, posteriormente, un umbral que nos permitiese determinar la posición de las posibles líneas viales.

Este análisis se realizaba cada 30 segundos, sumando un 1 en aquellas posiciones horizontales en las que se ha determinado la existencia de un blanco, con el fin de generar un histograma al cabo del periodo analizado, como el de la siguiente imagen:

unnamed

Imponiendo un umbral a dicho histograma, se procedía a extraer las posiciones de las líneas viales continuas (líneas verticales amarillas) y las posiciones de las líneas delimitadoras de los carriles existentes entre ambos límites (líneas verticales moradas), determinando finalmente el número de carriles.

Por otra parte, el algoritmo realizado para la extracción del ancho de los de los arcenes se basó en la extracción de una vista superior parecida al de los mecanismos de inversión de perspectiva IPM (bird’s eye).

unnamed (1)

A diferencia de este procedimiento, no se tenían datos relativos a la posición de la cámara, pero era interesante obtener una vista que se pareciese a esta vista, ya que se podría extraer con más facilidad los límites de los arcenes. Para ello, a través de la misma línea de muestreo usada para el objetivo anterior, se procedía a acumular, en otra imagen, lo que dicha curva iba detectando. El resultado se ve en la siguiente imagen:

Vista superior generada por curva de muestreo

La vista generada resulta parecida a las generadas por los mecanismos IPM, con la salvedad de que no se deshace la perspectiva. Con este tipo de imágenes y usando una segmentación basada en leves variaciones de intensidad a partir de la posición de la línea continua, tras la conversión de las imágenes a escala de grises, se extrae una aproximación, sabiendo la medida del carril, de la medida del ancho de los arcenes, tal y como se ve a continuación:

Extracción de límites de los arcenes