Investigación sobre algoritmos de generación de mapas de alta precisión en línea

1.HDMapNet

 La arquitectura general de la red se muestra en la figura. El decodificador final genera tres ramas, una para segmentación semántica, otra para incrustación y otra para predicción de dirección. Luego, esta información se procesa en una representación de carretera vectorizada mediante posprocesamiento. La predicción de dirección divide 360 ​​grados en N partes. Luego, en GT, dos direcciones son 1 y el resto son 0. Obtenemos dos direcciones, las multiplicamos por el tamaño del paso para obtener el siguiente punto y el posprocesamiento las conecta con avidez.

El método img2bev anteriormente tenía IPM, que completaba la conversión asumiendo que la altura del suelo era 0. Sin embargo, debido a la existencia de inclinación del suelo y baches del vehículo, no podemos garantizar que las líneas de los carriles se proyecten correctamente en el BEV. En cuanto a LSS, dado que no existe una profundidad explícita como supervisión, el efecto no es muy bueno. Aquí adoptamos un método VPN y utilizamos una red completamente conectada para aprender a cambiar la perspectiva.

2. MapaTR

1. Puntos de innovación del artículo:

1. Influenciado por DETR, se diseña un algoritmo de construcción de mapas vectorizados de un extremo a otro, que utiliza un esquema de incrustación de consultas jerárquicas para codificar de manera flexible información a nivel de instancia y de punto, y realiza una coincidencia binaria jerárquica para asignar instancias y puntos en secuencia. punto. También se propone la pérdida de punto a punto y la pérdida de dirección de borde para supervisar la información de dirección geométrica a nivel de punto y borde.
2. Proponer un método de modelado de desplazamiento equivalente para construir cada elemento del mapa como un conjunto de puntos con un conjunto de desplazamientos equivalentes.
3. En comparación con el posprocesamiento complejo y lento de HDmapNet, el vectorMapNet anterior también representaba cada elemento del mapa como una secuencia de puntos, pero usaba un decodificador autorregresivo para predecir puntos secuencialmente, lo que resultaba en un tiempo de inferencia y reemplazo más largo. Este artículo predice múltiples puntos de múltiples instancias al mismo tiempo y los genera en paralelo.

2. Modelado equivalente de desplazamiento

Los elementos del mapa se pueden dividir en dos tipos, un polígono de forma cerrada y una polilínea de forma abierta, los cuales se pueden representar como conjuntos de puntos ordenados. El primero tiene 2n arreglos y el segundo tiene dos arreglos. De hecho, todos se pueden usar para representar un elemento del mapa, y obviamente no es razonable usar un conjunto de puntos de arreglo fijo de GT como supervisión en vectormapnet. Por esta razón, consideramos todas las disposiciones posibles de un elemento de mapa como objetos coincidentes húngaros, lo que equivale a construir un conjunto de permutaciones equivalente.

3. Coincidencia de niveles 

Primero, se especula en paralelo con un conjunto de elementos de mapa de tamaño fijo N. Al mismo tiempo, también llenaremos los elementos del mapa GT con conjuntos vacíos y llenaremos su longitud a N. Cada elemento del mapa contiene (una etiqueta de elemento + punto de elemento de mapa conjunto + conjunto de puntos Todas las permutaciones y combinaciones), luego los elementos del mapa predichos por el modelo incluyen (una etiqueta de elemento + un conjunto de puntos ordenados del mapa), se introduce un algoritmo de coincidencia de gráficos bipartitos jerárquicos y una coincidencia a nivel de instancia y una coincidencia a nivel de punto se realizan en orden.
Coincidencia a nivel de instancia : primero encuentre la asignación óptima de etiquetas a nivel de instancia entre los elementos del mapa predichos y los valores reales del terreno, de modo que se minimice el costo. El costo tiene dos partes, una es la pérdida focal de la etiqueta y la otra es la pérdida de coincidencia de posición de los dos conjuntos de puntos.
Aquí hay un problema: ¿cuál es la pérdida de posición del conjunto de puntos? ¿Es un conjunto de puntos ordenado o un conjunto de puntos desordenado? La fórmula debe ser el conjunto de puntos ordenados previsto y el conjunto de puntos desordenados en GT. Tengo mucha curiosidad acerca de la diferencia entre este y el conjunto de puntos que coincide a continuación. Después de leer el artículo de este hermano Interpretación
Como se mencionó anteriormente, de hecho, la pérdida de coincidencia de posición es exactamente la misma que la pérdida de coincidencia de nivel de puntos a continuación.
MapTR leyendo notas y mirando alrededor de las líneas de los carriles - Zhihu (zhihu.com)


Coincidencia a nivel de punto: después de la coincidencia a nivel de instancia, los elementos del mapa que coinciden con instancias GT no vacías se consideran muestras positivas y realizamos una coincidencia a nivel de punto en ellos. Es decir, el costo de coincidencia se calcula entre el conjunto de puntos predicho por el modelo y todas las permutaciones del conjunto de puntos GT, y se selecciona la permutación del conjunto de puntos GT con el costo de coincidencia mínimo. Lo que buscamos aquí es la pérdida de distancia de Manhattan entre puntos.

4.Estructura del modelo

Utilice cámaras puras para generar mapas en línea de alta precisión. El método GKT propuesto por Horizon utilizado por img2bev. Para consultas BEV, primero obtenga su posición anterior en la imagen (que puede corresponder a varias imágenes) a través de parámetros internos y externos, y extraiga las cercanas. w*h Las características del área del kernel se utilizan luego para crear un mecanismo de atención cruzada con consulta bev.

Después de obtener las características BEV, en el artículo se utiliza un decodificador similar a la estructura DETR. El autor presenta dos incrustaciones de consultas, una es un vector de consulta a nivel de instancia (hay N) y la otra es un vector de consulta a nivel de punto. (Hay NV). , el vector de consulta a nivel de punto es compartido por todos los elementos del mapa (es decir, instancias). Entonces, la expresión de consulta jerárquica del j-ésimo punto del i-ésimo elemento del mapa es su correspondiente vector de consulta a nivel de instancia + el correspondiente vector de consulta a nivel de punto.

 Después de obtener las características de cada punto, primero lo enviamos al mecanismo de autoatención de múltiples cabezales para permitir que las consultas jerárquicas intercambien información (incluido el nivel de instancia y entre conjuntos de puntos), y luego usamos el mecanismo de atención deformable para permitir que las consultas jerárquicas intercambiar información. Hay interacción entre la consulta y las características BEV. Cada consulta qij predice un punto de coordenadas xy normalizado bidimensional en el BEV, luego toma muestras de las características BEV cerca del punto de coordenadas y actualiza las características de la consulta qij, y así en iterar. Al final, cada elemento del mapa es un conjunto de puntos de referencia, que se envía al cabezal de predicción para obtener una puntuación de clasificación y un vector de 2Nv dimensiones, que representa las posiciones de los Nv puntos en el conjunto de puntos de predicción.

 5. Composición de las pérdidas

Para obtener un resultado de coincidencia óptimo a nivel de instancia, utilizamos la pérdida focal para calcular su pérdida de clasificación.
Luego, una vez completada la coincidencia a nivel de puntos, calculamos la pérdida de distancia de Manhattan entre puntos para restringir la posición de los puntos.
Sin embargo, solo la posición del punto está restringida y la dirección de la línea del borde no está bien restringida, por lo que se agrega la pérdida de dirección del borde. El autor considera la similitud del coseno entre el borde predicho y el borde verdadero en el conjunto de puntos emparejados. para limitarlo. .

6.Mejoras de MapTRV2 

1. Desacoplar el módulo de autoatención en el mecanismo de consulta jerárquico. Esto reduce en gran medida el consumo de memoria.

2. Propuso una variante más eficiente del mecanismo de atención cruzada. No solo se consultan las características BEV, sino también las características PV.

3. Para acelerar la convergencia del entrenamiento, se agrega una rama de coincidencia auxiliar uno a muchos durante el entrenamiento.

4. Se agregan tres pérdidas auxiliares de predicción densa para ayudar al entrenamiento.

Primero hablemos del primer punto: la consulta de predicción original es N * Nv puntos, y luego la complejidad temporal del mecanismo de auto atención es (N * Nv) ^ 2. En el artículo, aquí se realiza una operación de desacoplamiento,
y La autoatención entre instancias se realiza por separado: mecanismo de fuerza y ​​mecanismo de autoatención, por ejemplo, puntos interiores. La complejidad del tiempo se reduce a (N^2 + Nv^2).

Segundo punto: el mecanismo de atención cruzada anterior predice un punto y utiliza atención deformable para extraer características en BEV. Ahora el punto se proyecta en la imagen y luego se extraen las características para enriquecerlas.

El tercer punto: repetimos GT K veces como el valor verdadero de la rama auxiliar para aumentar la proporción de muestras positivas. Al mismo tiempo, la rama principal y la rama auxiliar comparten el decodificador y la consulta a nivel de punto.

El cuarto punto: se utiliza LSS y se agregan la rama auxiliar de predicción de profundidad, la rama de segmentación semántica PV y la rama de segmentación semántica BEV. La pérdida de predicción de profundidad se refiere a BEVDepth. Se agregó un cabezal de segmentación BEV adicional para ayudar en la capacitación. Además, para aprovechar al máximo la supervisión intensiva, se utiliza el mapa GT para combinar los parámetros internos y externos de la cámara para obtener la máscara de primer plano en la vista en perspectiva, y el cabezal de segmentación fotovoltaica auxiliar se utiliza para entrenar la red.

 

7. Algunas reflexiones sobre MapTR

 En comparación con la predicción píxel por píxel, la precisión de la distancia final de la predicción de un extremo a otro es aún ligeramente peor. Sin embargo, se omiten las tediosas operaciones de posprocesamiento, por lo que el rendimiento en tiempo real es muy sólido. Al mismo tiempo, debido a que genera directamente 20 puntos por instancia, el modelo será más robusto a la oclusión que el modelo de píxeles. Al mismo tiempo, otra crítica es que el tiempo de entrenamiento es demasiado largo. Personalmente creo que durante la decodificación, una consulta predecirá una posición en el BEV, pero no tiene características precisas en el BEV. ¿Cómo podemos obtener la posición exacta? ¿Posición BEV? Por ejemplo, su posición real es (100, 100), pero al principio el modelo predice aleatoriamente (20, 20). En este momento, el mecanismo de atención deformable extrae características cercanas a (20, 20). ¿Podrá corregirlo? Siento que las características de (20,20) no le permiten acercarse a (100,100), porque al fin y al cabo no es un mecanismo de atención global, sino local, siento que esa debería ser la razón por la que su La convergencia del entrenamiento ha sido muy lenta.

3. Superfusión

Se realiza mediante la fusión de características de nube de puntos de imágenes de varios niveles.

El primero es la fusión a nivel de datos: primero, la nube de puntos se proyecta en la imagen y luego la profundidad escasa se concatena con la imagen. Al mismo tiempo, se utiliza la interpolación bilineal para obtener un mapa de profundidad denso para supervisar la estimación de profundidad de LSS.

Para la fusión a nivel de características, las características BEV de la nube de puntos se utilizan como Q para consultar las características de la imagen, y la atención cruzada se utiliza para obtener nuevas características BEV, que luego se fusionan mediante una serie de convoluciones. Obtenga las características finales de la nube de puntos BEV.

Para la fusión a nivel BEV, las características de la imagen se transfieren a BEV a través de LSS y luego se fusionan con las características BEV de la nube de puntos. Sin embargo, debido a parámetros internos y externos y errores de estimación de profundidad, la concatenación directa provocará una desalineación de características. Entonces, primero concatena y luego aprende un campo de flujo, recalcula las características BEV de la imagen en función del campo de flujo (una dirección de flujo en cada posición y luego usa interpolación bilineal para obtener las características post-flujo como las características BEV de la imagen actual). y luego Ambos concatenan.

La parte de posprocesamiento es la misma que HDMapNet.

4. MachMapa

5.MapaVR

Supongo que te gusta

Origin blog.csdn.net/slamer111/article/details/132173286
Recomendado
Clasificación