تنفيذي لـ BISENETV1 و BISENETV2.
Mious و FPS على Cityscapes Val مجموعة:
| لا أحد | SS | SSC | منظمة أطباء بلا حدود | MSCF | FPS (FP32/FP16/int8) | وصلة |
|---|---|---|---|---|---|---|
| BISENETV1 | 75.44 | 76.94 | 77.45 | 78.86 | 112/239/435 | تحميل |
| BISENETV2 | 74.95 | 75.58 | 76.53 | 77.08 | 103/161/198 | تحميل |
Mious على مجموعة Cocostuff Val2017:
| لا أحد | SS | SSC | منظمة أطباء بلا حدود | MSCF | وصلة |
|---|---|---|---|---|---|
| BISENETV1 | 31.49 | 31.42 | 32.46 | 32.55 | تحميل |
| BISENETV2 | 30.49 | 30.55 | 31.81 | 31.73 | تحميل |
Mious على مجموعة ADE20K Val:
| لا أحد | SS | SSC | منظمة أطباء بلا حدود | MSCF | وصلة |
|---|---|---|---|---|---|
| BISENETV1 | 36.15 | 36.04 | 37.27 | 36.58 | تحميل |
| BISENETV2 | 32.53 | 32.43 | 33.23 | 31.72 | تحميل |
نصائح:
SS تعني تقييم المقياس الفردي ، SSC يعني تقييم محصول المقياس الواحد ، يعني MSF التقييم متعدد النطاق مع زيادة Flip ، وتعني MSCF تقييم المحاصيل متعددة النطاق مع تقييم Flip. يمكن العثور على مقاييس EVAL وحجم محصول التقييم متعدد النطاقات في التكوينات.
يتم اختبار FPS بطريقة مختلفة عن الورقة. لمزيد من المعلومات ، يرجى الاطلاع هنا.
استخدم مؤلفو BISENETV2 COCOSTUFF-10K ، بينما استخدمت COCOSTUFF-123K (لا أعرف كيف أقول ، نفس القطار 118K و 5K VAL ككشف عن الكائنات). وبالتالي فإن النتائج ربما تختلف عن الورق.
لم يقدم المؤلفون عن نتائج على ADE20K ، وبالتالي لا توجد إعدادات تدريب رسمية ، هنا ببساطة أقدم نتيجة "اجعلها تعمل". ربما يمكن تعزيز النتائج على ADE20K بإعدادات أفضل.
يحتوي النموذج على تباين كبير ، مما يعني أن نتائج التدريب لعدة مرات تختلف ضمن هامش كبير نسبيًا. على سبيل المثال ، إذا قمت بتدريب BISENETV2 على مناظر المدينة لعدة مرات ، فستلاحظ أن نتيجة تقييم SS لـ BISENETV2 تتراوح بين 73.1-75.1.
Tensorrt
يمكنك الذهاب إلى Tensorrt للحصول على التفاصيل.
NCNN
يمكنك الذهاب إلى NCNN للحصول على التفاصيل.
Openvino
يمكنك الذهاب إلى Openvino للحصول على التفاصيل.
تيس
يوفر Triton Interference Server (TIS) حل خدمة للنشر. يمكنك الذهاب إلى TIS للحصول على التفاصيل.
منصتي مثل هذا:
مع وزن مسبق ، يمكنك تشغيل الاستدلال على صورة واحدة مثل هذا:
$ python tools/demo.py --config configs/bisenetv2_city.py --weight-path /path/to/your/weights.pth --img-path ./example.png
هذا من شأنه أن يعمل الاستدلال على الصورة وحفظ صورة النتيجة إلى ./res.jpg .
أو يمكنك تشغيل الاستدلال على مقطع فيديو مثل هذا:
$ python tools/demo_video.py --config configs/bisenetv2_coco.py --weight-path res/model_final.pth --input ./video.mp4 --output res.mp4
هذا من شأنه أن يولد ملف تجزئة كـ res.mp4 . إذا كنت ترغب في القراءة من الكاميرا ، فيمكنك تعيين --input camera_id بدلاً من input ./video.mp4 .
1. CityScapes
سجل وتنزيل مجموعة البيانات من الموقع الرسمي. ثم فك ضغطها في دليل datasets/cityscapes :
$ mv /path/to/leftImg8bit_trainvaltest.zip datasets/cityscapes
$ mv /path/to/gtFine_trainvaltest.zip datasets/cityscapes
$ cd datasets/cityscapes
$ unzip leftImg8bit_trainvaltest.zip
$ unzip gtFine_trainvaltest.zip
2.cocostuff
قم بتنزيل train2017.zip ، val2017.zip و stuffthingmaps_trainval2017.zip انقسام من موقع الويب الرسمي. ثم افعل ما يلي:
$ unzip train2017.zip
$ unzip val2017.zip
$ mv train2017/ /path/to/BiSeNet/datasets/coco/images
$ mv val2017/ /path/to/BiSeNet/datasets/coco/images
$ unzip stuffthingmaps_trainval2017.zip
$ mv train2017/ /path/to/BiSeNet/datasets/coco/labels
$ mv val2017/ /path/to/BiSeNet/datasets/coco/labels
$ cd /path/to/BiSeNet
$ python tools/gen_dataset_annos.py --dataset coco
3.ADE20K
قم بتنزيل ADEChallengeData2016.zip من هذا الموقع وفك ضغطه. ثم يمكننا نقل المجلدات غير المضغوطة إلى datasets/ade20k ، وإنشاء ملفات TXT مع البرنامج النصي الذي أعددته لك:
$ unzip ADEChallengeData2016.zip
$ mv ADEChallengeData2016/images /path/to/BiSeNet/datasets/ade20k/
$ mv ADEChallengeData2016/annotations /path/to/BiSeNet/datasets/ade20k/
$ python tools/gen_dataset_annos.py --dataset ade20k
4.Custom مجموعة البيانات
إذا كنت ترغب في التدريب على مجموعة البيانات الخاصة بك ، فيجب عليك إنشاء ملفات التعليق التوضيحي أولاً بتنسيق مثل هذا:
munster_000002_000019_leftImg8bit.png,munster_000002_000019_gtFine_labelIds.png
frankfurt_000001_079206_leftImg8bit.png,frankfurt_000001_079206_gtFine_labelIds.png
...
كل سطر هو زوج من عينة التدريب ومسار صورة الحقيقة الأرضية ، والتي يتم فصلها بفاصلة واحدة , .
أوصيك بالتحقق من معلومات مجموعة البيانات الخاصة بك مع البرنامج النصي:
$ python tools/check_dataset_info.py --im_root /path/to/your/data_root --im_anns /path/to/your/anno_file
سيؤدي ذلك إلى طباعة بعض معلومات مجموعة البيانات الخاصة بك.
ثم تحتاج إلى تغيير حقل im_root train/val_im_anns في ملف التكوين. لقد قمت بإعداد ملف تكوين تجريبي لك اسمه bisenet_customer.py . يمكنك البدء من ملف Conig هذا.
أوامر التدريب التي استخدمتها لتدريب النماذج يمكن العثور عليها هنا.
ملحوظة:
bisenetv2 لديه عدد أقل من التقلبات ، إلا أنه يتطلب المزيد من التكرارات التدريبية. وقت تدريب bisenetv1 أقصر.يمكنك أيضًا تحميل الأوزان النموذجية المدربة والخفيرة منه ، مثل هذا:
$ export CUDA_VISIBLE_DEVICES=0,1
$ torchrun --nproc_per_node=2 tools/train_amp.py --finetune-from ./res/model_final.pth --config ./configs/bisenetv2_city.py # or bisenetv1
يمكنك أيضًا تقييم نموذج مدرب مثل هذا:
$ python tools/evaluate.py --config configs/bisenetv1_city.py --weight-path /path/to/your/weight.pth
أو يمكنك استخدام وحدات معالجة الرسومات المتعددة:
$ torchrun --nproc_per_node=2 tools/evaluate.py --config configs/bisenetv1_city.py --weight-path /path/to/your/weight.pth
old للتنفيذ الأصلي إذا كنت بحاجة ، على الرغم من أنني أعتقد أنك لن تحتاج إليه.