La segmentation d'image joue un rôle crucial dans l'identification et la délimitation précises des objets d'intérêt au sein d'une image. En conduite autonome, des algorithmes de vision par ordinateur sont appliqués pour résoudre la tâche de segmentation de la surface routière. Cette tâche est difficile car vous ne pouvez pas vous fier à un seul type d’images : les caméras et les LiDAR ont leurs points forts et leurs défauts. Par exemple, les LiDAR fournissent des informations précises sur la profondeur, mais ils génèrent généralement des nuages de points clairsemés, de sorte qu’ils ne peuvent pas segmenter avec précision les objets de la scène. Et ils peuvent produire des nuages déformés lorsqu’ils font face à des surfaces transparentes ou réfléchissantes. Les caméras ne capturent pas la profondeur, mais fournissent des informations complètes sur la forme, la texture et la couleur des objets. Cela nous amène à une idée simple selon laquelle une fusion efficace de nuages de points et d’images dans la formation à la segmentation routière 2D peut exploiter les avantages de chaque domaine de données. Le problème est qu’une telle fusion nécessite une annotation fastidieuse des deux ensembles de données. Alors, pouvons-nous rendre l’annotation des données plus efficace pour profiter des avantages d’une configuration multi-capteurs pour la segmentation des routes ?
Je travaille actuellement chez
Dans cet article, je vais décrire notre approche étape par étape et montrer quelques résultats de tests. Si vous souhaitez approfondir notre travail, d'autres méthodes de recherche et nos résultats de tests, référez-vous à notre article
Le pipeline global de notre approche se compose de quatre parties principales : l'annotation des routes par nuages de points, la préparation des données, la perte masquée et le modèle de segmentation lui-même.
Premièrement, nous obtenons les données avec les annotations routières dans le domaine des nuages de points. Après cela, nous projetons des points en utilisant des transformations homogènes et des paramètres de caméra. Ensuite, en utilisant les points projetés, nous obtenons le masque de vérité routière pour le calcul des pertes avec un bruit aléatoire ajouté. Les images de la caméra sont traitées par le modèle de segmentation. Les prédictions et les masques de l'étape précédente sont utilisés par la perte masquée, ce qui permet d'entraîner le modèle à l'aide de données de vérité terrain clairsemées. Enfin, après formation du modèle, nous obtenons une image avec une route segmentée. La procédure d'entraînement ainsi que la perte masquée permettent de mélanger la vérité terrain projetée avec les masques 2D traditionnels, ce qui rend l'approche flexible en termes de données.
Examinons maintenant de près chacune des parties.
1 Annotation de données de nuage de points
Pour utiliser les données lidar pendant la formation, nous avons besoin d'annotations de segmentation sémantique pour les nuages de points. Cela peut être fait manuellement à l'aide d'un outil d'annotation de nuage de points open source, tel que
2 Préparation des données
Un nuage de points obtenu est projeté sur le plan image en utilisant des transformations homogènes pour obtenir un masque de segmentation d'image avec l'étiquette de classe dont nous avons besoin, dans notre cas il s'agit d'une route. Pour une telle projection, nous utilisons des images synchronisées de caméra et de lidar, accompagnées des paramètres de la caméra, et une matrice de transformation du lidar en image de caméra. Pour projeter un point homogène x = (x, y, z, 1)ᵀ
dans les coordonnées du cadre lidar vers le point y = (u, v, 1)ᵀ
sur un plan image, nous utilisons l'équation :
Après transformation, nous obtenons des points sur l'image sous forme de masque de pixels, à la fois pour la classe de route et pour tous les autres points du scan lidar. Nous avons besoin d'autres points d'analyse lidar, car les points lidar sont pour la plupart situés en bas de l'image et le haut de l'image ne comporte aucun point, ce qui pourrait conduire à des prédictions inexactes dans cette zone. Pour éliminer cet effet, nous ajoutons des points aléatoires dans la moitié supérieure du masque (classe négative) pour équilibrer la répartition des points où nous calculerons la perte.
3 Perte masquée
Un élément crucial de notre méthode est l'application d'une fonction de perte masquée lors de la formation du modèle. Cette approche élimine la rareté inhérente aux masques de vérité terrain dérivés du lidar. Contrairement aux fonctions de perte conventionnelles, qui prennent en compte l'ensemble des masques d'image pour calculer les erreurs, la perte masquée se concentre uniquement sur les régions où les points lidar sont présents. Ce calcul ciblé des pertes garantit que l'apprentissage du modèle est concentré sur les régions pertinentes, en tirant parti des informations fournies par le lidar pour améliorer la précision de la segmentation routière. En d’autres termes, nous forçons le modèle à apprendre la segmentation routière en mesurant l’erreur de prédiction sur une grille de points. Cela pourrait être comparé au fait de regarder l’image à l’aide de lunettes à obturateur (stores à obturateur).
La perte masquée pour chaque image peut être formulée de la façon suivante :
La perte masquée est réalisée en appliquant un masque binaire aux images d'entraînement. Ce masque délimite les zones où les points lidar sont localisés et projetés sur le plan image. Pendant la phase d'entraînement, la perte est calculée uniquement pour les pixels qui se trouvent sous le masque, ignorant ainsi les grandes parties non annotées de l'image. Cette méthode améliore non seulement l’efficacité du processus de formation, mais atténue également les problèmes représentés par la nature clairsemée des données lidar.
4 Formation sur modèle
La dernière étape consiste à entraîner le modèle de segmentation sur l'ensemble de données créé. Le processus de formation peut convenir à n'importe quel modèle de segmentation et dans notre recherche, nous avons utilisé PSPNet. A ce stade, tout dépend de la qualité de vos données, de leur quantité et de la puissance de calcul disponible.
Nous avons testé notre approche sur divers ensembles de données, y compris des ensembles de données open source, tels que l'ensemble de données ouvert Perception Waymo et l'ensemble de données KITTI-360. À chaque fois, nous avons mené une série de trois expériences : en utilisant uniquement la vérité terrain de la route 2D, uniquement les points projetés comme vérité terrain, et un mélange de ces types de vérité terrain. Et les résultats de la segmentation routière (% de l'IoU) semblent prometteurs :
Expérience | Formé sur l'ensemble de données KITTI-360 | Formé sur l'ensemble de données Waymo |
---|---|---|
2D uniquement (référence) | 92,3 | 96.1 |
Projeté en 3D uniquement | 89,6 | 94,7 |
mélanger 2D + 3D projeté | 92,7 | 96,3 |
Ces chiffres signifient que si vous disposez uniquement de la segmentation lidar et que vous ne souhaitez pas dépenser de ressources supplémentaires en annotations d'images 2D, ce n'est pas grave. La baisse de qualité par rapport à un entraînement uniquement sur des masques d'images 2D peut être insignifiante. Si vous disposez de ressources pour annoter les données des deux capteurs, combinez simplement ces deux types d'annotations pendant le processus de formation et obtenez une augmentation des métriques.
Au total, les avantages de l’approche que nous avons observés au cours de la recherche sont :