
OpenPCDet est un projet open source clair, simple et autonome pour la détection d'objets 3D basée sur LiDAR.
Il s'agit également de la version officielle du code de [PointRCNN] , [Part-A2-Net] , [PV-RCNN] , [Voxel R-CNN] , [PV-RCNN++] et [MPPNet] .
Points forts :
OpenPCDet a été mis à jour en v0.6.0 (sept. 2022). [2023-06-30] NOUVEAU: Ajout de la prise en charge de DSVT , qui réalise les performances de pointe sur un ensemble de données Open Waymo à grande échelle avec une vitesse d'inférence en temps réel (27Hz avec Tensorrt).
[2023-05-13] NOUVEAU: Ajout de la prise en charge des modèles de détection d'objets 3D multimodaux sur l'ensemble de données nuscenes.
BEVFusion , qui fusionne des informations multimodales sur l'espace BEV et atteint 70,98% NDS sur l'ensemble de données de validation NUSCENES. (Voir la directive sur la façon de s'entraîner / tester avec Bevfusion). [2023-04-02] Ajout de la prise en charge de VoxelNeXt sur les ensembles de données Nuscenes, Waymo et Arboroverse. Il s'agit d'un réseau de détection d'objets 3D entièrement clairsemé, qui est un réseau CNNS clairsemé et prédit des objets 3D directement sur des voxels.
[2022-09-02] NOUVEAU: Mettez à jour OpenPCDet à V0.6.0:
MPPNet pour la détection d'objets 3D temporelle, qui prend en charge la détection d'objets 3D multi-trames à long terme et se classe la 1ère place sur la détection 3D Learderboard de Waymo Open DataSet le 2 septembre 2022. Pour un ensemble de données de validation, MPPNET atteint 74,96%, 75,06% et 74,52% pour les véhicules, les piétons et les classes cyclistaires dans les termes de MAPH @2. (Voir la directive sur la façon de former / tester avec MPPNET).--use_tqdm_to_record ). Veuillez utiliser pip install gpustat si vous souhaitez également enregistrer les informations liées au GPU.[2022-08-22] Ajout de la prise en charge du tutoriel et du modèle de jeu de données personnalisés
[2022-07-05] Ajout de la prise en charge Focals Conv .
[2022-02-12] Ajout de la prise en charge de l'utilisation de Docker. Veuillez vous référer aux conseils sur ./docker.
[2022-02-07] Ajout de la prise en charge des modèles CenterPoint sur l'ensemble de données NUSCENES.
[2022-01-14] Ajout de la prise en charge de la voxélisation dynamique du pilier, après l'implémentation proposée dans H^23D R-CNN avec un fonctionnement unique et un package torch_scatter .
[2022-01-05] NOUVEAU: Mettez à jour OpenPCDet à V0.5.2:
PV-RCNN++ a été publié dans ce dépôt, avec des performances plus élevées, une vitesse de formation / inférence plus rapide et une consommation de mémoire moins que PV-RCNN. [2021-12-09] NOUVEAU: Mettez à jour OpenPCDet à V0.5.1:
[2021-12-01] NOUVEAU: OpenPCDet V0.5.0 est publié avec les fonctionnalités suivantes:
CenterPoint et PV-RCNN with CenterHead .USE_SHARED_MEMORY pour utiliser la mémoire partagée pour potentiellement accélérer le processus de formation au cas où vous souffriez d'un problème d'IO. [2021-06-08] Ajout de la prise en charge du modèle de détection d'objet 3D basé sur Voxel Voxel R-CNN .
[2021-05-14] Ajout de la prise en charge du modèle de détection d'objet monoculaire 3D CaDDN .
[2020-11-27] BugFixed: veuillez reconstituer l'ensemble de données de validation Infos of Waymo (version 1.2) si vous souhaitez utiliser notre outil d'évaluation Waymo fourni (voir PR). Notez que vous n'avez pas besoin de re-prépare la base de données de données de formation et de vérification du sol.
[2020-11-10] L'ensemble de données Open Waymo a été pris en charge avec des résultats de pointe. Actuellement, nous fournissons les configurations et les résultats de SECOND , PartA2 et PV-RCNN sur l'ensemble de données Waymo Open, et plus de modèles pourraient être facilement pris en charge en modifiant leurs configurations d'ensemble de données.
[2020-08-10] Bugfixed: les modèles NUSCENES fournis ont été mis à jour pour corriger les bogues de chargement. Veuillez le télécharger à nouveau si vous avez besoin d'utiliser les modèles Nuscenes pré-entraînés.
[2020-07-30] OpenPCDet V0.3.0 est publié avec les fonctionnalités suivantes:
PointRCNN , PartA2-Free ) sont pris en charge maintenant.SECOND-MultiHead (CBGS) et PointPillar-MultiHead ).[2020-07-17] Ajoutez des codes de visualisation simples et une démo rapide à tester avec des données personnalisées.
[2020-06-24] OpenPCDet V0.2.0 est publié avec de jolies nouvelles structures pour prendre en charge plus de modèles et d'ensembles de données.
[2020-03-16] OpenPCDet V0.1.0 est publié.
OpenPCDet Toolbox? Notez que nous avons PCDet upgré de v0.1 à v0.2 avec de jolies nouvelles structures pour prendre en charge divers ensembles de données et modèles.
OpenPCDet est une base de code générale basée sur PYTORCH pour la détection d'objets 3D à partir du nuage de points. Il prend actuellement en charge plusieurs méthodes de détection d'objets 3D de pointe avec des codes hautement refactorisés pour les cadres de détection 3D en une étape et en deux étapes.
Sur la base de la boîte à outils OpenPCDet , nous gagnons le défi de jeu de données Open Waymo dans la détection 3D, le suivi 3D, l'adaptation de domaine trois pistes parmi toutes les méthodes lidar uniquement, et les modèles liés à Waymo seront publiés bientôt sur OpenPCDet .
Nous mettons activement à jour ce dépôt actuellement, et davantage de jeux de données et de modèles seront bientôt pris en charge. Les contributions sont également les bienvenues.
OpenPCDet Design Modèle
Définition de la boîte 3D unifiée: (x, y, z, dx, dy, dz, cap).
Structure du modèle flexible et clair pour soutenir facilement divers modèles de détection 3D:


Les méthodes prises en charge sélectionnées sont affichées dans le tableau ci-dessous. Les résultats sont les performances de détection 3D d'une difficulté modérée sur l'ensemble VAL de l'ensemble de données Kitti.
| temps de formation | Car @ r11 | Piéton @ r11 | Cycliste @ r11 | télécharger | |
|---|---|---|---|---|---|
| Point de pointage | ~ 1,2 heures | 77.28 | 52.29 | 62.68 | modèle 18m |
| DEUXIÈME | ~ 1,7 heures | 78,62 | 52.98 | 67.15 | modèle 20m |
| Second-iou | - | 79.09 | 55,74 | 71.31 | modèle 46m |
| Pointrcnn | ~ 3 heures | 78.70 | 54.41 | 72.11 | modèle 16m |
| Pointrcnn-iou | ~ 3 heures | 78,75 | 58,32 | 71.34 | modèle 16m |
| Part-A2 sans | ~ 3,8 heures | 78,72 | 65.99 | 74.29 | modèle 226m |
| Partie-A2-ancor | ~ 4,3 heures | 79.40 | 60,05 | 69.90 | modèle-244m |
| PV-RCNN | ~ 5 heures | 83.61 | 57,90 | 70.47 | modèle-50m |
| Voxel r-cnn (voiture) | ~ 2,2 heures | 84.54 | - | - | modèle 28m |
| Focals conv - f | ~ 4 heures | 85.66 | - | - | modèle-30m |
| Caddn (mono) | ~ 15 heures | 21.38 | 13.02 | 9.76 | modèle 774m |
Nous fournissons le réglage de DATA_CONFIG.SAMPLED_INTERVAL sur l'ensemble de données Waymo Open (WOD) pour sous-échantillonner des échantillons partiels pour la formation et l'évaluation, vous pouvez donc également jouer avec WOD en définissant une plus petite DATA_CONFIG.SAMPLED_INTERVAL même si vous n'avez que des ressources GPU limitées.
Par défaut, tous les modèles sont formés avec une seule trame de 20% de données (~ 32k trames) de tous les échantillons de formation sur 8 GTX 1080TI GPU, et les résultats de chaque cellule ici sont calculés par carte / maph par les métriques d'évaluation officielles de Waymo sur l' ensemble de la validation (version 1.2).
| Performance @ (Train avec 20% de données) | VEC_L1 | VEC_L2 | PED_L1 | Ped_l2 | Cyc_l1 | Cyc_l2 |
|---|---|---|---|---|---|---|
| DEUXIÈME | 70,96 / 70,34 | 62.58 / 62.02 | 65.23 / 54.24 | 57.22 / 47.49 | 57.13 / 55.62 | 54.97 / 53.53 |
| Point de pointage | 70.43 / 69.83 | 62.18 / 61.64 | 66.21 / 46.32 | 58.18 / 40.64 | 55.26 / 51,75 | 53.18 / 49.80 |
| Pilier central | 70,50 / 69.96 | 62.18 / 61.69 | 73.11 / 61.97 | 65.06 / 55.00 | 65.44 / 63.85 | 62.98 / 61.46 |
| Centrepoint-dynamique-pilier | 70.46 / 69.93 | 62.06 / 61.58 | 73.92 / 63.35 | 65.91 / 56.33 | 66.24 / 64.69 | 63.73 / 62.24 |
| Point central | 71.33 / 70.76 | 63.16 / 62.65 | 72.09 / 65.49 | 64.27 / 58.23 | 68,68 / 67,39 | 66.11 / 64.87 |
| CenterPoint (Resnet) | 72.76 / 72.23 | 64.91 / 64.42 | 74.19 / 67.96 | 66.03 / 60.34 | 71.04 / 69.79 | 68.49 / 67.28 |
| Partie-A2-ancor | 74.66 / 74.12 | 65.82 / 65.32 | 71.71 / 62.24 | 62.46 / 54.06 | 66.53 / 65.18 | 64.05 / 62.75 |
| PV-RCNN (Anchorhead) | 75.41 / 74.74 | 67.44 / 66.80 | 71.98 / 61.24 | 63,70 / 53,95 | 65.88 / 64.25 | 63.39 / 61.82 |
| PV-RCNN (tête centrale) | 75.95 / 75.43 | 68.02 / 67.54 | 75.94 / 69.40 | 67.66 / 61.62 | 70.18 / 68.98 | 67.73 / 66.57 |
| Voxel r-cnn (tête centrale) -dynamic-voxel | 76.13 / 75.66 | 68.18 / 67.74 | 78.20 / 71.98 | 69.29 / 63.59 | 70,75 / 69.68 | 68.25 / 67.21 |
| PV-RCNN ++ | 77.82 / 77.32 | 69.07 / 68.62 | 77.99 / 71.36 | 69.92 / 63.74 | 71.80 / 70.71 | 69.31 / 68.26 |
| PV-RCNN ++ (RESNET) | 77.61 / 77.14 | 69.18 / 68.75 | 79.42 / 73.31 | 70.88 / 65.21 | 72.50 / 71,39 | 69.84 / 68.77 |
Ici, nous fournissons également les performances de plusieurs modèles formés sur l'ensemble de formation complet (reportez-vous au document de PV-RCNN ++):
| Performance @ (Train avec 100% de données) | VEC_L1 | VEC_L2 | PED_L1 | Ped_l2 | Cyc_l1 | Cyc_l2 |
|---|---|---|---|---|---|---|
| DEUXIÈME | 72.27 / 71.69 | 63.85 / 63.33 | 68.70 / 58.18 | 60,72 / 51,31 | 60,62 / 59.28 | 58.34 / 57.05 |
| Pilier central | 73.37 / 72.86 | 65.09 / 64.62 | 75.35 / 65.11 | 67.61 / 58.25 | 67.76 / 66.22 | 65.25 / 63.77 |
| Partie-A2-ancor | 77.05 / 76.51 | 68.47 / 67.97 | 75.24 / 66.87 | 66.18 / 58.62 | 68.60 / 67.36 | 66.13 / 64.93 |
| Voxelnext-2d | 77.94 / 77.47 | 69.68 / 69.25 | 80.24 / 73.47 | 72.23 / 65.88 | 73.33 / 72.20 | 70,66 / 69.56 |
| Voxelnext | 78.16 / 77.70 | 69.86 / 69.42 | 81.47 / 76.30 | 73.48 / 68.63 | 76.06 / 74.90 | 73.29 / 72.18 |
| PV-RCNN (tête centrale) | 78.00 / 77.50 | 69.43 / 68.98 | 79.21 / 73.03 | 70.42 / 64.72 | 71.46 / 70.27 | 68,95 / 67,79 |
| PV-RCNN ++ | 79.10 / 78.63 | 70.34 / 69.91 | 80.62 / 74.62 | 71.86 / 66.30 | 73.49 / 72.38 | 70,70 / 69.62 |
| PV-RCNN ++ (RESNET) | 79.25 / 78.78 | 70.61 / 70.18 | 81.83 / 76.28 | 73.17 / 68.00 | 73.72 / 72.66 | 71.21 / 70.19 |
| Pilier DSVT | 79.44 / 78.97 | 71.24 / 70.81 | 83,00 / 77,22 | 75.45 / 69.95 | 76.70 / 75.70 | 73.83 / 72.86 |
| Dsvt-voxel | 79.77 / 79.31 | 71.67 / 71.25 | 83,75 / 78,92 | 76.21 / 71.57 | 77.57 / 76.58 | 74.70 / 73.73 |
| PV-RCNN ++ (Resnet, 2 images) | 80.17 / 79.70 | 72.14 / 71.70 | 83.48 / 80.42 | 75.54 / 72.61 | 74.63 / 73.75 | 72.35 / 71.50 |
| MPPNET (4 images) | 81.54 / 81.06 | 74.07 / 73.61 | 84.56 / 81.94 | 77.20 / 74.67 | 77.15 / 76.50 | 75.01 / 74.38 |
| MPPNET (16 images) | 82.74 / 82.28 | 75.41 / 74.96 | 84.69 / 82.25 | 77.43 / 75.06 | 77.28 / 76.66 | 75.13 / 74.52 |
Nous n'avons pas pu fournir les modèles pré-entraînés ci-dessus en raison de l'accord de licence de données Waymo, mais vous pouvez facilement obtenir des performances similaires en s'entraînant avec les configurations par défaut.
Tous les modèles sont formés avec 8 GPU et sont disponibles en téléchargement. Pour la formation de Bevfusion, veuillez vous référer à la directive.
| copain | massacre | maoe | mave | maae | carte | SNDS | télécharger | |
|---|---|---|---|---|---|---|---|---|
| Pointpillaire-multi-ivrognes | 33.87 | 26h00 | 32.07 | 28.74 | 20.15 | 44.63 | 58.23 | modèle 23m |
| Second-Multihead (CBGS) | 31.15 | 25.51 | 26.64 | 26.26 | 20.46 | 50,59 | 62.29 | modèle 35m |
| Pointpoint-Pointpillar | 31.13 | 26.04 | 42.92 | 23.90 | 19.14 | 50.03 | 60,70 | modèle 23m |
| CenterPoint (Voxel_size = 0,1) | 30.11 | 25,55 | 38.28 | 21.94 | 18.87 | 56.03 | 64.54 | modèle 34m |
| CenterPoint (Voxel_size = 0,075) | 28.80 | 25.43 | 37.27 | 21.55 | 18.24 | 59.22 | 66.48 | modèle 34m |
| Voxelnext (voxel_size = 0,075) | 30.11 | 25.23 | 40.57 | 21.69 | 18.56 | 60,53 | 66,65 | modèle 31m |
| Transfusion-l * | 27.96 | 25.37 | 29.35 | 27.31 | 18.55 | 64.58 | 69.43 | modèle 32m |
| Bevfusion | 28.03 | 25.43 | 30.19 | 26.76 | 18.48 | 67.75 | 70,98 | modèle-157m |
*: Utilisez la stratégie de fondu, qui désactive les augmentations de données dans les dernières époques pendant la formation.
Tous les modèles sont formés avec 8 GPU.
| Véhicule | Piéton | Cycliste | carte | |
|---|---|---|---|---|
| Pointrcnn | 52.09 | 4.28 | 29.84 | 28.74 |
| Point de pointage | 68,57 | 17.63 | 46.81 | 44.34 |
| DEUXIÈME | 71.19 | 26.44 | 58.04 | 51.89 |
| PV-RCNN | 77.77 | 23.50 | 59.37 | 53,55 |
| Point central | 78.02 | 49,74 | 67.22 | 64.99 |
Tous les modèles sont formés avec 4 GPU.
| carte | télécharger | |
|---|---|---|
| Voxelnext | 30.5 | modèle 32m |
Bienvenue pour prendre en charge d'autres ensembles de données en soumettant une demande de traction.
Veuillez vous référer à install.md pour l'installation d' OpenPCDet .
Veuillez vous référer à Demo.md pour une démo rapide pour tester avec un modèle pré-entraîné et visualiser les résultats prévus sur vos données personnalisées ou les données Kitti d'origine.
Veuillez vous référer à Getting_started.md pour en savoir plus sur ce projet.
OpenPCDet est publié sous la licence Apache 2.0.
OpenPCDet est un projet open source pour la perception de la scène 3D basée sur le LiDAR qui prend en charge plusieurs modèles de perception basés sur le LiDAR, comme indiqué ci-dessus. Certaines parties de PCDet sont tirées des codes publiés officiels des méthodes prises en charge ci-dessus. Nous tenons à remercier pour leurs méthodes proposées et la mise en œuvre officielle.
Nous espérons que ce dépôt pourrait servir de base de code solide et flexible au profit de la communauté de recherche en accélérant le processus de réimplémentation des travaux précédents et / ou de développement de nouvelles méthodes.
Si vous trouvez ce projet utile dans vos recherches, veuillez envisager citer:
@misc{openpcdet2020,
title={OpenPCDet: An Open-source Toolbox for 3D Object Detection from Point Clouds},
author={OpenPCDet Development Team},
howpublished = {url{https://github.com/open-mmlab/OpenPCDet}},
year={2020}
}
Bienvenue pour être membre de l'équipe OpenPCDET de développement en contribuant à ce dépôt et n'hésitez pas à nous contacter pour toute contribution potentielle.