Bisenetv1 및 Bisenetv2의 구현.
CityScapes val 세트의 mious 및 fps :
| 없음 | 봄 여름 시즌 | 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 세트의 Mious :
| 없음 | 봄 여름 시즌 | SSC | MSF | MSCF | 링크 |
|---|---|---|---|---|---|
| Bisenetv1 | 31.49 | 31.42 | 32.46 | 32.55 | 다운로드 |
| Bisenetv2 | 30.49 | 30.55 | 31.81 | 31.73 | 다운로드 |
ADE20K val 세트의 Mious :
| 없음 | 봄 여름 시즌 | 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를 여러 번 훈련시키는 경우 Bisenetv2의 SS 평가 결과는 73.1-75.1 사이에서 다양합니다.
Tensorrt
자세한 내용은 Tensorrt로 이동할 수 있습니다.
NCNN
자세한 내용은 NCNN으로 이동할 수 있습니다.
OpenVino
자세한 내용은 OpenVino로 이동할 수 있습니다.
tis
TIS (Triton Onference Server)는 배포 서비스 솔루션을 제공합니다. 자세한 내용은 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 ./video.mp4 대신 --input camera_id 설정할 수 있습니다.
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
또는 멀티 GPU를 사용할 수 있습니다.
$ torchrun --nproc_per_node=2 tools/evaluate.py --config configs/bisenetv1_city.py --weight-path /path/to/your/weight.pth
old 디렉토리로 이동할 수 있지만 필요하지 않다고 생각합니다.