
تنفيذ Pytorch الرسمي للورقة التالية:
PointNext: إعادة النظر في PointNet ++ مع تحسن استراتيجيات التدريب والتوسيع
بقلم غوتشنغ تشيان ، يوتشين لي ، هووين بينغ ، جينجي ماي ، حسن حمود ، محمد الحوسيني ، برنارد غنيم
TL ؛ DR: نقترح تحسين استراتيجيات التدريب والتحجيم النموذجي لتعزيز PointNet ++ إلى مستوى أحدث. تم تسمية PointNet ++ مع تحجيم النموذج المقترح على أنه PointNext ، الإصدار التالي من PointNets.

في مشروع PointNext ، نقترح قاعدة كود جديدة ومرنة للطرق القائمة على النقاط ، وهي نقاط مفتوحة . الفرق الأكبر بين نقاط OpenPoints والمكتبات الأخرى هو أننا نركز بشكل أكبر على الاستنساخ والمعايير العادلة.
قابلية التوسيع : يدعم العديد من الشبكات التمثيلية لفهم السحابة النقطة ، مثل PointNet و DGCNN و DEERGGCN و PointNet ++ و Assanet و PointMLP و PointNext لدينا. يمكن بناء المزيد من الشبكات بسهولة بناءً على إطار عملنا نظرًا لأن نقاط OpenPoints تدعم مجموعة واسعة من العمليات الأساسية بما في ذلك Crapholtions ، والاعتداء الذاتي ، وأخذ أخذ عينات من النقاط ، واستعلام الكرة ، إلخ .
استنساخ : يتم تدريب جميع النماذج المنفذة على مهام مختلفة ثلاث مرات على الأقل. يعني ± STD في ورقة pointnext. تتوفر النماذج والسجلات المسبقة .
القياس العادل : في PointNext ، نجد جزءًا كبيرًا من مكسب الأداء يرجع إلى استراتيجيات التدريب. في النقاط المفتوحة ، يتم تدريب جميع النماذج مع استراتيجيات التدريب المحسنة وتحقق جميعها دقة أعلى بكثير من القيمة الأصلية المبلغ عنها.
سهولة الاستخدام : نموذج الإنشاء ، المحسن ، الجدولة ، وظيفة الخسارة ، وعملية بيانات البيانات بسهولة من CFG . تدريب والتحقق من صحة النماذج المختلفة في مهام مختلفة عن طريق تغيير ملف cfg**.yaml
model = build_model_from_cfg(cfg.model)
criterion = build_criterion_from_cfg(cfg.criterion_args)
فيما يلي مثال على pointnet.yaml (تكوين النموذج لنموذج 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' التسجيل عبر الإنترنت : دعم WANDB للتحقق من نتائجك في أي وقت في أي مكان. فقط قم بتعيين wandb.use_wandb=True في الأمر.

نحن نقدم ملف باش بسيط لتثبيت البيئة:
git clone --recurse-submodules [email protected]:guochengqian/PointNeXt.git
cd PointNeXt
source update.sh
source install.sh
CUDA-11.3 مطلوب. قم بتعديل install.sh إذا تم استخدام إصدار CUDA مختلف. انظر التثبيت لمزيد من التفاصيل.
تحقق من وثائقنا عبر الإنترنت للحصول على إرشادات مفصلة.
تعليمات قصيرة: جميع التجارب تتبع القاعدة البسيطة للتدريب والاختبار:
CUDA_VISIBLE_DEVICES=$GPUs python examples/$task_folder/main.py --cfg $cfg $kwargs
mode=test, --pretrained_path $pretrained_path . انظر نموذج حديقة الحيوان.
المزيد من الأمثلة متوفرة في الورقة.


هذه المكتبة مستوحاة من Pytorch-image-models و MMCV.
إذا وجدت PointNext أو قاعدة CodeBase OpenPoints مفيدة ، فيرجى الاستشهاد:
@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},
}