Nom et coordonnées
- nom : Eddie Liu
- site web : https://gitlab.com/sat-mtl/tools/livepose/object-dectection-on-pointclouds
- nom d’utilisateur GitLab : qiliu0523
- fuseau horaire : GTM-7
Titre
Détection d’objets dans des flux de nuages de points
Brève description du travail réalisé
J’ai développé un pipeline de diffusion en temps réel complet pour la détection d’objets dans des nuages de points, à l’aide de modèles ONNX PointNet++ et PointPillars. Le pipeline prend en charge plusieurs tâches de vision 3D : la classification, la segmentation de parties, la segmentation sémantique et la détection d’objets 3D à partir de données de nuages de points.
Le système repose sur une architecture modulaire dotée de sources d’entrée configurables (caméra RealSense, fichiers de jeux de données, diffusion par WebSocket), de plusieurs backends de modèles (variantes de PointNet2 et PointPillars) et de méthodes de sortie souples (protocoles WebSocket et OSC). J’ai mis en place un suivi automatique de la performance avec mesure du nombre d’images par seconde (FPS) et créé un système de visualisation optionnel qui s’appuie sur Open3D pour le rendu 3D des résultats en temps réel.
Principales contributions techniques : la création de classes de base abstraites pour les entrées, les backends et les sorties afin d’assurer la modularité; l’intégration d’ONNX Runtime pour une inférence efficace des modèles; la mise en place d’un système de gestion de la configuration par fichiers YAML; et la construction d’un gestionnaire de visualisation qui sélectionne automatiquement les visualiseurs appropriés selon le type de modèle. Le pipeline traite les nuages de points en temps réel, prend en charge l’accélération sur CPU comme sur GPU et peut fonctionner en mode sans affichage (headless) pour un déploiement sur serveur.
J’ai aussi rédigé une documentation complète : un README détaillé accompagné d’exemples d’utilisation, des scripts d’installation pour configurer facilement l’environnement, et des fichiers de gestion des dépendances pour les installations conda comme pip. Le système est conçu pour être facilement extensible à de nouveaux modèles et à de nouveaux protocoles d’entrée-sortie.
Code fusionné
- https://gitlab.com/sat-mtl/tools/livepose/object-dectection-on-pointclouds/-/merge_requests/1
- https://gitlab.com/sat-mtl/tools/livepose/object-dectection-on-pointclouds/-/merge_requests/2
- https://gitlab.com/sat-mtl/tools/livepose/object-dectection-on-pointclouds/-/merge_requests/3
- https://gitlab.com/sat-mtl/tools/livepose/object-dectection-on-pointclouds/-/merge_requests/4
- https://gitlab.com/sat-mtl/tools/livepose/object-dectection-on-pointclouds/-/merge_requests/5
- https://gitlab.com/sat-mtl/tools/livepose/object-dectection-on-pointclouds/-/merge_requests/6
Code non fusionné
Aucun
Ce qu’il reste à faire
J’optimiserai le pipeline afin d’améliorer la vitesse de visualisation et d’atteindre un plus grand nombre d’images par seconde. Cela implique de mettre en place un traitement asynchrone pour séparer la visualisation de l’inférence des modèles, d’optimiser le rendu Open3D et d’ajouter de l’accélération GPU là où c’est possible.
Je réentraînerai également les modèles pour mieux détecter les personnes en intérieur : en recueillant des jeux de données de nuages de points d’intérieur supplémentaires comportant des annotations de personnes, en affinant les modèles PointNet2 et PointPillars existants sur ces données spécialisées, et en appliquant des techniques d’augmentation de données adaptées aux environnements intérieurs.
L’objectif est d’atteindre une performance temps réel adaptée aux applications en direct, tout en maintenant une grande précision de détection pour la reconnaissance de personnes en intérieur.