
Offizielle Pytorch -Implementierung für das folgende Papier:
PointNext: PointNet ++ mit verbesserten Trainings- und Skalierungsstrategien wiederholen
von Guokeng Qian, Yuchen Li, Houwen Peng, Jinjie Mai, Hasan Hammoud, Mohamed Elhosesiny, Bernard Ghanememem
TL; DR: Wir schlagen verbesserte Trainings- und Modellskalierungsstrategien vor, um PointNet ++ auf die hochmoderne Ebene zu steigern. PointNet ++ mit der vorgeschlagenen Modellskalierung wird als PointNext bezeichnet, die nächste Version von Pointnets.

Im PointNext-Projekt schlagen wir eine neue und flexible Codebasis für punktbasierte Methoden vor, nämlich OpenPoints . Der größte Unterschied zwischen OpenPoints und anderen Bibliotheken besteht darin, dass wir uns mehr auf Reproduzierbarkeit und faires Benchmarking konzentrieren.
Erweiterbarkeit : Unterstützt viele repräsentative Netzwerke für das Verständnis von Point Cloud, wie Pointnet, DGCNN, DeepGCN, PointNet ++, Assanet, PointMLP und unser PointNext . Weitere Netzwerke können auf der Grundlage unseres Frameworks problemlos erstellt werden, da OpenPoints eine breite Palette von grundlegenden Vorgängen unterstützen, darunter Graph-Konvolutionen, Selbstbekämpfung, am weitesten verbreitete Punktproben, Ballabfrage usw.
Reproduzierbarkeit : Alle implementierten Modelle werden mindestens dreimal an verschiedenen Aufgaben geschult. Der Mittelwert ± STD ist im PointNext -Papier enthalten. Vorbereitete Modelle und Protokolle sind verfügbar.
Faires Benchmarking : In Pointnext ist ein großer Teil des Leistungsgewinns auf die Trainingsstrategien zurückzuführen. In OpenPoints werden alle Modelle mit den verbesserten Trainingsstrategien geschult und erreichen eine viel höhere Genauigkeit als der ursprünglich gemeldete Wert.
Benutzerfreundlichkeit : Erstellen Sie Modell, Optimierer, Scheduler, Verlustfunktion und Datenlader problemlos von CFG . Trainieren und validieren Sie verschiedene Modelle bei verschiedenen Aufgaben, indem Sie einfach die cfg**.yaml -Datei ändern.
model = build_model_from_cfg(cfg.model)
criterion = build_criterion_from_cfg(cfg.criterion_args)
Hier ist ein Beispiel für pointnet.yaml (Modellkonfiguration für PointNet -Modell):
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' Online -Protokollierung : Unterstützen Sie WANDB, um Ihre Ergebnisse jederzeit überall zu überprüfen. Setzen Sie einfach in Ihrem Befehl wandb.use_wandb=True .

Wir bieten eine einfache Bash -Datei zur Installation der Umgebung:
git clone --recurse-submodules [email protected]:guochengqian/PointNeXt.git
cd PointNeXt
source update.sh
source install.sh
CUDA-11.3 ist erforderlich. Ändern Sie die install.sh wenn eine andere CUDA -Version verwendet wird. Weitere Informationen finden Sie in der Installation.
In unserer Online -Dokumentation finden Sie detaillierte Anweisungen.
Eine kurze Anweisung: Alle Experimente folgen der einfachen Regel, um zu trainieren und zu testen:
CUDA_VISIBLE_DEVICES=$GPUs python examples/$task_folder/main.py --cfg $cfg $kwargs
mode=test, --pretrained_path $pretrained_path sein. Siehe Model Zoo.
Weitere Beispiele finden Sie im Papier.


Diese Bibliothek ist von Pytorch-Image-Modellen und MMCV inspiriert.
Wenn Sie PointNext oder die OpenPoints -Codebasis nützlich finden, zitieren Sie bitte:
@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},
}