Visión de "máquina": qué y cómo ven los automóviles

La industria automotriz se considera un "pionero" en el campo de la aplicación de tecnologías de visión artificial y su mayor consumidor. Según los analistas, la industria automotriz forma el 23% del mercado de productos de visión artificial en Alemania. Y según VDMA, para Europa esta cifra es del 21%.

Por lo tanto, no es sorprendente que los algoritmos de visión artificial comenzaron a usarse gradualmente en los propios automóviles, y no solo en las etapas de su producción. Actualmente, se utilizan en tecnologías de reconocimiento automático de franjas y piloto automático.

En el artículo de hoy, comenzaremos a hablar sobre lo que "ven" los automóviles y cómo lo hacen, utilizando algoritmos y métodos básicos como punto de partida de un ciclo de historia.


Bienvenido a bordo! / image WayRay

Ver obstáculos


Utilizando conjuntos de sensores y cámaras, los automóviles aprendieron a reconocer a su alrededor parachoques, árboles, postes y vehículos estacionados. El principio de determinar la distancia a los objetos se basa en la paralaje del movimiento .

Cuando nos movemos hacia la izquierda o hacia la derecha, los objetos en la distancia se mueven menos que sus vecinos. En base a este desplazamiento, se determina la distancia desde el observador.

La técnica se llama estructura del movimiento. En la página correspondiente en Wikipedia, se proponen varias herramientas para reconstruir modelos tridimensionales a partir de un video o un conjunto de fotografías. Se basa en el análisis de un par estéreo.


Par estéreo de dos cámaras / foto cobravictor / PD

El par estéreo le permite identificar pares de puntos conjugados en el espacio, sobre la base de los cuales se construye un mapa de distancia. En él, la distancia al objeto está indicada por sombras de gris, cuanto más oscuro. Un ejemplo de tal imagen está en el trabajo de Reinhard Klette (Reinhard Klette) de la Universidad Tecnológica de Auckland. Cuando se construye el mapa, se realiza un análisis del movimiento de los objetos (velocidad, trayectoria); esto es necesario para determinar conflictos probables.

El análisis de movimiento comienza con el cálculo del flujo óptico , que se utiliza para calcular el mapa de desplazamiento. Le permite rastrear el desplazamiento de puntos, es decir, encontrarlos en la segunda imagen de un par estéreo. Por lo general, este método se utiliza para rastrear objetos, detectar colisiones y en realidad aumentada .

De los métodos simples para determinar el cambio, se distingue el método de correlación de fase : este es el cálculo de la transformada de Fourier para ambas imágenes y encontrar su convolución. También se usa la comparación de bloques : se encuentra un cambio que minimiza la norma de la diferencia en la imagen en la ventana.

El enfoque clásico para calcular el flujo es el algoritmo Lucas-Canadá. Se basa en la suposición de que los valores de píxeles van de un cuadro a otro sin cambios. Por lo tanto, suponemos que los píxeles que pertenecen al mismo objeto pueden desplazarse hacia un lado, pero su valor permanecerá sin cambios.

Por supuesto, en condiciones reales, la iluminación cambia constantemente, pero en la práctica esta suposición no afecta en gran medida el resultado. La teoría de funcionamiento del algoritmo Lucas-Canadá se describe en detalle en este artículo .

Este método define bien los pequeños cambios dentro de los cuales la imagen se asemeja a su aproximación lineal. Pero hay otros enfoques: el método Gunnar Farnebak, que calcula el flujo de toda la imagen a la vez, y el algoritmo Horn-Schrank , basado en la hipótesis de limitar el cambio en las proyecciones de los vectores de flujo óptico.

Puede leer más sobre el desplazamiento de edificios y los mapas de distancia aquí y aquí .

En base a los mapas recibidos, los algoritmos construyen rutas y evalúan las trayectorias: evitando colisiones, maniobras. Los algoritmos crean modelos probabilísticos para predecir las rutas de los objetos alrededor.

Durante el piloto automático, el sistema construye un plan de ruta aproximado al punto de destino y monitorea regularmente el entorno. El vehículo determina las direcciones en las que puede seguir, teniendo en cuenta la velocidad actual y la posición angular.

Luego elimina las rutas que se cruzan con obstáculos o se acercan demasiado a ellos. También se evalúa la seguridad de la maniobra. Por ejemplo, un automóvil que se mueve a una velocidad de 90 km / h no podrá girar bruscamente a la derecha después de 5 metros.

Cuando se selecciona la ruta, el controlador del automóvil da comandos al acelerador, los frenos, el sistema de dirección y las unidades de potencia.

Tenga en cuenta que hay otras formas de determinar la distancia a los obstáculos y evitar colisiones. Su aparición e implementación serán posibles con la difusión de Internet de las cosas. Estos algoritmos funcionan de manera diferente: sus autores proponen no usar cámaras, sino sistemas de comunicación "automóvil-automóvil" e "infraestructura de automóvil".

Algoritmo DRCA


El algoritmo de evitación de colisión reactiva descentralizada supone que si los automóviles están a una gran distancia unos de otros, siguen las rutas previstas. Si los autos se acercan, el sistema realiza una maniobra para evitar una colisión. El diagrama de flujo es el siguiente:


/ Diagrama de bloques del algoritmo DRCA

Para determinar si los automóviles colisionarán, la DRCA utiliza el concepto de un "cono de colisión" descrito por vectores de velocidad. Si el ángulo β entre el vector de posición relativa r ij y el vector de velocidad relativa v ij es mayor o igual a α - el ángulo entre el vector de posición relativa y el final del cono de colisión, entonces no hay conflicto de ruta.


/ El cono de colisión es el ángulo entre las líneas discontinuas. Si el vector v está en esta zona, entonces los autos "entran en conflicto"

El algoritmo también ayuda a evitar objetos estáticos, sin embargo, no es adecuado si los vehículos se mueven en una formación. DRCA ofrecerá autos para ganar una distancia segura entre sí y “romperá” el sistema.

Método de campo de fuerza artificial


Se puede usar en combinación con DRCA. Se basa en el cálculo de campos de fuerza artificial. Los autos son partículas cargadas. Las partículas con la misma carga se repelen, y con lo contrario: se atraen. Por lo tanto, se asignan cargas negativas a los automóviles y positivas a sus rutas deseadas. Los vectores de fuerza se calculan en función de estas cargas, y luego se utilizan para determinar la dirección del movimiento.

Se utilizan varios métodos para estimar los vectores de gravedad. Yunior I. Cruz, de la Universidad de Washington, en su trabajo describe una técnica que también se propuso para enrutar aviones con geometría de ala sin cambios.

Se forma una "zona de seguridad" ovalada alrededor del vehículo, fuera de la cual la influencia de las "cargas" de otros vehículos se vuelve insignificante. La gravedad del punto de destino se considera una constante. Todo esto nos permite evaluar la fuerza de gravedad que "siente" los autos, y basándonos en estos datos para ajustar la ruta.

Reconocer rayas


Los automóviles también usan la visión por computadora para determinar los carriles. Aprendieron a advertir al conductor sobre una colisión con una marca e incluso corregir independientemente la trayectoria. Los científicos están considerando varias opciones para implementar esta funcionalidad. La primera es cuando la infraestructura es parte de sistemas inteligentes (se utilizan balizas inteligentes), sin embargo, está asociada con la complejidad y el alto costo de la reconstrucción de carreteras. El segundo: los autos analizan el camino y toman decisiones.

Dichos sistemas utilizan cámaras y métodos de extracción de características para indicar los límites de la banda. Primero, las líneas ubicadas en un cierto ángulo al lente se encuentran en la imagen de la cámara. Después de eso, los píxeles extremos se seleccionan de las franjas seleccionadas mediante la búsqueda ternaria.

La siguiente es la selección de información útil. El hecho es que el sistema marca todas las líneas que satisfacen las condiciones dadas. Cómo se ve, se puede ver en el trabajo de Luke Fletcher (Luke Fletcher) en el enlace .

Las empresas tienen diferentes enfoques para resolver este problema. Por ejemplo, Suzuki usa transformación proyectiva. La cámara proyecta dos líneas que convergen en un punto de perspectiva. El sistema solo considera bandas paralelas a las proyectadas. Sin embargo, esto no salva de la identificación de grietas en el asfalto que corren a lo largo del camino.

Otra forma de identificar las rayas se llama ojo de pájaro y se describe en el libro Morfología matemática y su aplicación al procesamiento de señales e imágenes. El algoritmo comienza transformando la imagen en una proyección ortográfica, como si girara la imagen verticalmente. Después de eso, también se seleccionan las bandas y se calculan los campos de distancia, por ejemplo, utilizando la transformación euclidiana .

Otros algoritmos se basan en la búsqueda de regiones que cambian de color de negro a blanco, sin embargo, solo este enfoque no debe usarse, ya que la calidad de marcado en diferentes carreteras es diferente. Por lo tanto, los investigadores recomiendan usar métodos combinados.

El algoritmo de reconocimiento con la construcción de imágenes binarias y código se puede encontrar en el enlace en GitHub . El proyecto presentado es parte del programa Udacity Self-Driving Car Nanodegree . Puede encontrar otro ejemplo con fragmentos de código de la biblioteca de algoritmos de OpenCV aquí .

Source: https://habr.com/ru/post/es407775/


All Articles