Semana 10. Registro rígido de nubes de puntos 3D
Esta semana he comenzado a indagar sobre el registro de nubes de puntos. El registro es el proceso que permite hallar una transformación que permita alinear conjuntos de datos, en nuestro caso, nubes de puntos 3D. Existen diferentes tipos de registros dependiendo del tipo de transformación que se aplica. El objetivo es encontrar la transformación Τ que minimice la distancia entre dos nubes de puntos, A y B. El pipeline del proceso se compone de tres partes diferenciadas:
- Extracción de descriptores
- Emparejamiento
- Cálculo de la transformación
El objetivo, como hemos mencionado anteriormente, es encontrar la transformación Τ que minimice la distancia entre dos nubes de puntos, para ello, se buscan buenas correspondencias entre dichas nubes y a partir de estas correspondencias poder estimar las posibles transformaciones. Estas correspondencias se obtienen al extraer las características más representativas de cada nube de puntos, ya sea de manera global (métodos basados en características) o de manera local (guardando la información de cada punto como un descriptor local). Una vez obtenidas dichas características comienza el proceso de emparejamiento, donde se encuentran las correspondencias entre cada conjutno de características. Existen dos tipos de estrategias para el emparejamiento, la asignación binaria y la asignación suave.
La asignación binaria busca emparejar los puntos más similares entre dos nubes de puntos mediante una función de similitud, como la distancia euclidia. Sin embargo, puede ser un problema cuando las nubes tienen un número diferente de puntos, ya que, la correspondencia se basa en una relación uno a uno. Por otro lado, la asignación suave permite que un solo punto de una nube se asocie con varios puntos de la otra, lo que resulta más robusto frente a datos ruidosos y diferencias en el tamaño de las nubes de puntos. Pueden existir correspondencias erróneas debido a puntos atípicos y ruido, para atacar el problema se usan algoritmos como RANSAC y TopK.
Una vez tenemos las correspondencias entre las nubes de puntos, se elige el tipo de transformación, rígida o no rígida. En la transformación rígida se hace uso transformaciones como rotación (R), escalado (g) y traslación (t). El vector de traslación depende de si se ha usado asignación binaria, en cuyo caso tiene valor t = 1, o asignación suave, en cuyo caso el valor se calcula con una sustracción ponderada de cada par de puntos. Para estimar la rotación y el factor de escalado se suele emplear la aproximación de Procrustes utilizando la descomposición en valores singulares, SVD Singular Value Decomposition. En las transformaciones no rígidas se abarcan múltiples tipos de transformaciones proyectivas y afines, como el cizallamiento y se consideran casos de mapeo deformable.
A su vez, esta semana he investigado sobre cómo funciona la detección 3D de objetos con re identificación en un sistema multicámara y LiDAR leyendo este paper. En este paper se aborda el problema de las detecciones erróneas y redundantes en sistemas de percepción para vehiculos autónomos cuando hay varias cámaras. El proceso para la detección 3D de objetos consta de varias partes. En primer lugar se realiza la detección de objetos con las cámaras haciendo uso de Faster R-CNN, con ello se obtiene su bounding box y la clase del objeto. Sin embargo, esta detección es únicamente en 2D, por lo que la distancia real al objeto no se puede determinar con precisión solo a partir de las cámaras, siendo necesario recurrir al LiDAR para estimar su posición en 3D. A continuación, de la bounding box se define un cono/frustum, ese frustum se proyecta sobre la nube de puntos LiDAR y se seleccionan aquellos puntos que coinciden.
El problema radica cuando varias cámaras pueden captar al mismo tiempo y repetir todo el proceso anterior de un mismo objeto pensando que son dos diferentes. La solución propuesta en este paper es añadir una rama de re identificación de objetos en el modelo de detección 2D Faster R-CNN que permita identificar si las detecciones captadas por cámaras próximas corresponden al mismo objeto o no, permitiendo así, eliminar las detecciones duplicadas. El sistema propuesto no solo mejora la precisión de las detecciones, sino que también optimiza la eficiencia de las estimaciones de las cajas 3D.