Hace unos días veíamos un post dedicado a proporcionar un marco de tecnologías para el vehículo autónomo. En él, y siguiendo la propuesta hecha por Saoshan Liu, Liyun Li, Shuan Wu y Jean-Luc Gaudiot en su libro ‘Creating autonomous vehicle systems‘, veíamos tres grandes elementos a saber: los algoritmos, el sistema cliente y la plataforma cloud. Se veía además en la propuesta que los algoritmos los podíamos subdividir en sensación, percepción y decisión. En otro artículo anterior nos centramos en el ‘sensing’ al hablar de localización en el vehículo autónomo. En el artículo de hoy hacemos un breve recorrido por la segunda parte de los algoritmos; la percepción en vehículos autónomos.
Recordamos que para los autores la percepción hace referencia a los algoritmos que permiten al vehículo entender el contexto en que se mueven a partir de la información obtenida en el ‘sensing’. Esto incluye, por ejemplo, detectar a los peatones, ciclistas y otros vehículos, reconocer la superficie de la calle o carretera incluyendo sus divisiones en carriles, entender las señales de tráfico y los semáforos o monitorizar el movimiento de objetos en 3D.
¿De qué algoritmos y tecnologías estamos hablando entonces al hablar de percepción? En su obra, los autores mencionados explican y analizan las siguientes:
- Detección de objetos: Se trata de una problemática fundamental en visión artificial y que precisa el modelado tanto de la forma del objeto como del hecho mismo de su aparición en escena. Para esta tarea los autores mencionan por ejemplo el uso de SVM (‘Support Vector Machine‘), un conocido algoritmo de Machine Learning.
- Segmentación: que se puede entender como un enriquecimiento de la detección y que lo que persigue es dividir la imagen en segmentos o secciones significativos (en el sentido de que corresponden a distintos objetos o secciones de la imagen). Para esta tarea, los autores mencionan la aplicación de algoritmos de etiquetado de grafos y hacen referencia específicamente a CRF (‘Conditional Random Field‘).
- Profundidad y visión estéreo Se trata de generar una visión en profundidad. Básicamente, se trata de proporcionar dos imágenes (izquierda y derecha) para cada instante de la escena que se está visualizando y conseguir la correspondencia de puntos . Para esta labor, los autores nos hablan del uso de una función de coste, métodos basados en extracción de características (bordes, esquinas, etc) o métodos basados en superficies. Entre los algoritmos que se mencionan se encuentra SGM (‘Semi-Global Matching‘).
- Flujo óptico (‘optical flow’) Se entiende por flujo óptico como el movimiento en 2D de intensidades entre dos imágenes, un problema de visión artificial que está relacionado con el movimiento en 3D en el mundo físico. Se apoya en principios parecidos a los del análisis estéreo y profundidad pero es algo más complejo. Disponemos de secuencias de imágenes de la misma escena separadas por cortísimos espacios temporales y se trata de detectar variaciones en iluminaciones, reflejos, trasparencias, etc
- Flujo de escena (‘scene flow’) viene a ser la versión en 3D de lo anterior y lo que en realidad necesitan los vehículos autónomos para tareas tan importantes como detectar obstáculos, evitar colisiones, etc
- Monitorización (‘tracking’) intenta determinar el estado de diferentes objetos, averiguando su localización, velocidad y aceleración a lo largo del tiempo. Unas estimaciones que se ven dificultadas por problemáticas como objetos parcialmente ocultos, objetos de apariencia muy similar o cambios en la apariencia de los objetos debido a cambios en posición, iluminación, etc. Los autores nos indican que este tipo de problemas se suelen resolver como problemas de filtrado bayesiano secuencial, un algoritmo recursivo con dos pasos en cada iteración: predicción y corrección. También nos hablan de otras alternativas no recursivas basadas en la minimización de una función de energía global. Y asimismo mencionan el llamado ‘tracking-by-detection‘ en que el mismo objeto es detectado en imágenes consecutivas y luego enlazado. Este mecanismo genera algunas incertidumbres debidas a problemáticas de asociación de datos, no consecución de la detección, etc que se gestionan aplicando MDP (‘Markov Decision Process‘).
- Deep Learning: Aparte de lo mencionado anteriormente, los autores dedican todo un capítulo a hablar de la aplicación del deep learning en percepción, incluyendo la resolución con estos algoritmos de algunos de los problemas mencionados más arriba. Así, nos hablan de las redes neuronales convolucionales (CNN, ‘Convolutional Neural Networks‘), y su aplicación en detección, segmentación semántica y flujos ópticos y de escena.
Como se ve,. se trata de una lista larga y compleja de técnicas y algoritmos y no he pretendido más que realizar un listado y resumen de lo que los autores mencionados explican mejor y de forma más extensa en su libro. La idea es disponer de un resumen y referencia para una posterior profundización por mi parte o, si lo desea, por la del lector de este blog.
Creo que, si algo demuestra el listado anterior de problemáticas y tecnologías, es lo complejo que es conseguir la conducción autónoma, que ésta se alcanza por la combinación armoniosa e inteligente de numerosas tecnologías y algoritmos y que, realmente es admirable y digno de asombro que estemos en el umbral, casi entrando ya, en una época en que la conducción autónoma es una realidad.
1 comentario