我對Bisenetv1和Bisenetv2的實施。
Mious and fps on CityScapes Val設置:
| 沒有任何 | SS | 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 | 下載 |
在Cocostuff Val2017套裝上奇怪:
| 沒有任何 | SS | SSC | MSF | MSCF | 關聯 |
|---|---|---|---|---|---|
| Bisenetv1 | 31.49 | 31.42 | 32.46 | 32.55 | 下載 |
| Bisenetv2 | 30.49 | 30.55 | 31.81 | 31.73 | 下載 |
在ADE20K Val套裝上很奇怪:
| 沒有任何 | SS | 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的結果。
該模型具有很大的差異,這意味著訓練的結果多次會在相對較大的利潤率內變化。例如,如果您多次在CityScapes上訓練BisenetV2,您會觀察到SS對Bisenetv2的評估結果在73.1-75.1之間變化。
張力
您可以去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. cocostuff
下載train2017.zip , val2017.zip and 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.DADE20K
從此網站下載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
或者您可以使用多GPU:
$ torchrun --nproc_per_node=2 tools/evaluate.py --config configs/bisenetv1_city.py --weight-path /path/to/your/weight.pth
old目錄進行原始實施,儘管我相信您不需要它。