Preprocesamiento de nubes, Entrenamiento de PointNet
Esta semana me he dedicado a intentar mejorar el rendimiento del entrenamiento cambiando la forma en la que entra la información durante el proceso. He conseguido mejorar los resultados, pero aun sigue sin segmentar correctamente.
Preprocesamiento
Se ha llevado a cabo un preprocesamiento en los conjuntos de entrenamiento, validación y pruebas en el que se recortan las nubes dejando los puntos pertenecientes al entorno cercano del vehículo, ya que muchos puntos están a alturas y distancias que no aportan información relevante para esta aplicación. Seguidamente, se realiza un submuestreo sobre las nubes resultantes y se extraen aleatoriamente 16384 puntos construyento un shape fijo en los conjuntos.
Con este procesamiento se consigue más densidad en las nubes entrantes y más representativas del entorno de interés.
Entrenamiento de PointNet
Se ha entrenado PointNet con este preprocesamiento en los conjuntos, utilizando el optimizador Adam con un learning rate constante de 0.0003 y la función de perdida Weighted Cross Entropy Loss. El modelo se entreno a 60 épocas con un batch size de 16. El entrenamiento resultó ser muy ruidoso e inestable pero consiguió mejorar los resultados obtenidos la semana pasada:
Epoch 60:
Valid Loss: 0.6811 - Valid Accuracy: 0.6412 - Valid mIoU: 0.2973
Evolución de las métricas durante el entrenamiento

Matriz de confusión en el conjunto de validación

Conclusiones
Mejoran los resultados focalizandose en las distancias cortas, pero sigue sin recoger de forma eficiente características locales a cada punto y no realiza un buen trabajo en los detalles. Confunde terrenos generando caminos donde no los hay y los objetos con arboles y señales.