การใช้งาน Bisenetv1 และ Bisenetv2 ของฉัน
Mious และ FPS ใน Cityscapes Val Set:
| ไม่มี | เอสเอส | SSC | MSF | 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 on Cocostuff Val2017 Set:
| ไม่มี | เอสเอส | SSC | MSF | MSCF | การเชื่อมโยง |
|---|---|---|---|---|---|
| Bisenetv1 | 31.49 | 31.42 | 32.46 | 32.55 | การดาวน์โหลด |
| Bisenetv2 | 30.49 | 30.55 | 31.81 | 31.73 | การดาวน์โหลด |
mious on ade20k val set:
| ไม่มี | เอสเอส | SSC | MSF | MSCF | การเชื่อมโยง |
|---|---|---|---|---|---|
| Bisenetv1 | 36.15 | 36.04 | 37.27 | 36.58 | การดาวน์โหลด |
| Bisenetv2 | 32.53 | 32.43 | 33.23 | 31.72 | การดาวน์โหลด |
เคล็ดลับ:
SS หมายถึงการประเมินระดับเดี่ยว SSC หมายถึงการประเมินผลการเพาะปลูกแบบเดี่ยว MSF หมายถึงการประเมินหลายระดับด้วยการเพิ่มการพลิกและ MSCF หมายถึงการประเมินผลการเพาะปลูกหลายระดับด้วยการประเมินพลิก เครื่องชั่งประเมินและขนาดการครอบตัดของการประเมินหลายระดับสามารถพบได้ในการกำหนดค่า
FPS ได้รับการทดสอบในทางที่แตกต่างจากกระดาษ สำหรับข้อมูลเพิ่มเติมโปรดดูที่นี่
ผู้เขียน Bisenetv2 ใช้ cocostuff-10k ในขณะที่ฉันใช้ cocostuff-123k (ไม่ทราบวิธีการพูดรถไฟ 118k เดียวกันและภาพ 5k Val เป็นการตรวจจับวัตถุ) ดังนั้นผลลัพธ์อาจแตกต่างจากกระดาษ
ผู้เขียนไม่ได้รายงานผลลัพธ์เกี่ยวกับ ADE20K ดังนั้นจึงไม่มีการตั้งค่าการฝึกอบรมอย่างเป็นทางการที่นี่ฉันเพียงแค่ให้ผลลัพธ์ "ทำให้มันทำงาน" บางทีผลลัพธ์ของ ADE20K สามารถเพิ่มขึ้นได้ด้วยการตั้งค่าที่ดีกว่า
แบบจำลองมีความแปรปรวนครั้งใหญ่ซึ่งหมายความว่าผลลัพธ์ของการฝึกอบรมหลายครั้งจะแตกต่างกันไปในระยะขอบที่ค่อนข้างใหญ่ ตัวอย่างเช่นหากคุณฝึกอบรม bisenetv2 บนทิวทัศน์ของเมืองหลายครั้งคุณจะสังเกตว่าผลการประเมิน SS ของ bisenetv2 แตกต่างกันระหว่าง 73.1-75.1
Tensorrt
คุณสามารถไปที่ Tensorrt เพื่อดูรายละเอียด
ncnn
คุณสามารถไปที่ NCNN เพื่อดูรายละเอียด
Openvino
คุณสามารถไปที่ OpenVino เพื่อดูรายละเอียด
TIS
เซิร์ฟเวอร์การอนุมาน Triton (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. โคสโตฟัฟฟ์
ดาวน์โหลด 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. ชุดข้อมูล CASTOM
หากคุณต้องการฝึกอบรมในชุดข้อมูลของคุณเองคุณควรสร้างไฟล์คำอธิบายประกอบก่อนด้วยรูปแบบเช่นนี้:
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 นั้นสั้นกว่านอกจากนี้คุณยังสามารถโหลดน้ำหนักรุ่นที่ผ่านการฝึกอบรมและ finetune จากมันเช่นนี้:
$ 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
หรือคุณสามารถใช้ Multi GPU:
$ torchrun --nproc_per_node=2 tools/evaluate.py --config configs/bisenetv1_city.py --weight-path /path/to/your/weight.pth
old สำหรับการใช้งานดั้งเดิมหากคุณต้องการแม้ว่าฉันเชื่อว่าคุณจะไม่ต้องการมัน