
Implémentation officielle de Pytorch pour le document suivant:
PointNext: Revisiter PointNet ++ avec des stratégies de formation et de mise à l'échelle améliorées
Par Guocheng Qian, Yuchen Li, Houwen Peng, Jinjie Mai, Hasan Hammoud, Mohamed Elhoseiny, Bernard Ghanem
TL; DR: Nous proposons des stratégies de formation et de mise à l'échelle améliorées pour augmenter PointNet ++ au niveau de pointe. PointNet ++ avec la mise à l'échelle du modèle proposé est nommé PointNext, la prochaine version de PointNets.

Dans le projet PointNext, nous proposons une nouvelle base de code flexible pour les méthodes basées sur des points, à savoir les points ouverts . La plus grande différence entre les points ouverts et les autres bibliothèques est que nous nous concentrons davantage sur la reproductibilité et l'analyse comparative.
Extensibilité : prend en charge de nombreux réseaux représentatifs pour la compréhension des nuages de points, tels que PointNet, DGCNN, DeepGCN, PointNet ++, Assanet, PointMLP et notre pointNext . Plus de réseaux peuvent être construits facilement en fonction de notre cadre, car les points ouverts prennent en charge un large éventail d'opérations de base, y compris les convolutions de graphiques, l'auto-attente, l'échantillonnage de points les plus éloignés, la requête de balle, etc.
Reproductibilité : tous les modèles implémentés sont formés sur diverses tâches au moins trois fois. La moyenne ± MST est fournie dans le papier PointNext. Des modèles et des journaux pré-entraînés sont disponibles.
Benchmarking équitable : Dans PointNext, nous constatons que une grande partie du gain de performance est due aux stratégies de formation. Dans les points ouverts, tous les modèles sont formés avec les stratégies de formation améliorées et tous obtiennent une précision beaucoup plus élevée que la valeur signalée d'origine.
Facilité d'utilisation : modèle de construction , optimiseur, planificateur, fonction de perte et chargeur de données facilement à partir de CFG . Former et valider différents modèles sur diverses tâches en modifiant simplement le fichier cfg**.yaml .
model = build_model_from_cfg(cfg.model)
criterion = build_criterion_from_cfg(cfg.criterion_args)
Voici un exemple de pointnet.yaml (configuration du modèle pour le modèle PointNet):
model :
NAME : BaseCls
encoder_args :
NAME : PointNetEncoder
in_channels : 4
cls_args :
NAME : ClsHead
num_classes : 15
in_channels : 1024
mlps : [ 512 , 256 ]
norm_args :
norm : 'bn1d' Journalisation en ligne : Soutenez WANDB pour vérifier vos résultats à tout moment. Définissez simplement wandb.use_wandb=True dans votre commande.

Nous fournissons un fichier bash simple pour installer l'environnement:
git clone --recurse-submodules [email protected]:guochengqian/PointNeXt.git
cd PointNeXt
source update.sh
source install.sh
CUDA-11.3 est requis. Modifiez l' install.sh si une version CUDA différente est utilisée. Voir l'installation pour le détail.
Consultez notre documentation en ligne pour des instructions détaillées.
Une courte instruction: toutes les expériences suivent la règle simple pour s'entraîner et tester:
CUDA_VISIBLE_DEVICES=$GPUs python examples/$task_folder/main.py --cfg $cfg $kwargs
mode=test, --pretrained_path $pretrained_path . Voir Model Zoo.
Plus d'exemples sont disponibles dans le papier.


Cette bibliothèque est inspirée par les modèles pytorch-image et le MMCV.
Si vous trouvez PointNext ou la base de code OpenPoints utile, veuillez citer:
@InProceedings{qian2022pointnext,
title = {PointNeXt: Revisiting PointNet++ with Improved Training and Scaling Strategies},
author = {Qian, Guocheng and Li, Yuchen and Peng, Houwen and Mai, Jinjie and Hammoud, Hasan and Elhoseiny, Mohamed and Ghanem, Bernard},
booktitle=Advances in Neural Information Processing Systems (NeurIPS),
year = {2022},
}