@wanghuijiao
2020-09-15T18:10:50.000000Z
字数 6567
阅读 5284
网络训练
拉取 Human Detector 代码 HD03分支
下载 pretrained model:
编译:
./build.sh
make
视频 demo 测试:
以 HD_yolov4_tiny 为例,通过以下命令对测试视频 tslist.mp4(提取码:h21b) 进行检测,并输出保存为 tiny_yolov4_demo.mp4。
./darknet detector demo data/obj.data cfg/human_detector_yolov4-tiny-custom.cfg backup/human_detector_yolov4-tiny-custom_best.weights -ext_output tslist.mp4 -i 0 -thresh 0.30 -out_filename tiny_yolov4_demo.mp4
假如视频帧率太大不方便查看,可用以下命令将其转换为帧率为 10 的视频片段。
ffmpeg -y -r 30 -i tiny_yolov4_demo.mp4 -r 10 tiny_yolov4_demo_fps10.mp4
可以直接运行 video_tiny.sh & video_yolov4.sh 脚本分别对 HD_yolov4_tiny 和 HD_yolov4 进行测试。
测试模型性能:
以 HD_yolov4_tiny 为例,测试模型精度 mAP (mean average precisions):
./darknet detector map data/obj.data cfg/human_detector_yolov4-tiny-custom.cfg ./backup/human_detector_yolov4-tiny-custom_best.weights
以 HD_yolov4_tiny 为例,测试模型速度FPS:
./darknet detector demo data/obj.data cfg/human_detector_yolov4-tiny-custom.cfg backup/human_detector_yolov4-tiny-custom_best.weights tslist.mp4 -benchmark
修改 cfg/coco.data 为 cfg/obj.data:
classes = 1
train = /hdd01/wanghuijiao/darknet/data/train2017_human.txt
valid = /hdd01/wanghuijiao/darknet/data/val2017_human.txt
names = ./data/obj.names
backup = ./backup
eval=coco
修改 data/coco.name,新文件命名为 data/obj.names,删除除person之外的其他 79 类标签,最终 obj.name 文件内容为:
person
(HD_yolov4)修改 yolov4.cfg,新文件命名为 whj_yolov4.cfg,修改以下行:
width=512 (需被32整除)
height=512(需被32整除)
subdivisions=8 (若 run time error,则改成16)
max_batches=6000(=2000*检测类别数,注意:该数需不少于6000,且不少于训练图像数量)
steps=4800,5400 (max_batches的80%,90%)
3`.(HD_yolov4_tiny)修改 cfg/yolov4-tiny-custom.cfg, 新文件命名为 human_detector_yolov4-tiny-custom.cfg,修改以下行:
width=512 (需被32整除)
height=512(需被32整除)
subdivisions=8 (若 run time error,则改成16)
max_batches=6000(=2000*检测类别数,注意:该数需不少于6000,且不少于训练图像数量)
steps=4800,5400 (max_batches的80%,90%)
(HD_yolov4)csdarnet53-omega.conv.105 -这是在ImageNet上预训练过的 darknet53 网络前105层:
./darknet partial cfg/csdarknet53-omega.cfg csdarknet53-omega_final.weights csdarknet53-omega.conv.105 105
标注文件格式:
object-class x_center y_center width height
x_center = absolute_x_center / image_width
height = absolute_height / image_height
1 0.716797 0.395833 0.216406 0.147222
0 0.687109 0.379167 0.255469 0.158333
1 0.420312 0.395833 0.140625 0.166667
模型数据读入为保存图片绝对路径的 train.txt 文件, 如:
/hdd01/wanghuijiao/darknet/coco/train2017/img1.jpg
/hdd01/wanghuijiao/darknet/coco/train2017/img2.jpg
/hdd01/wanghuijiao/darknet/coco/train2017/img3.jpg
10.0.10.56
上 /hdd02/zhangyiyang/data/coco/
下的 train2017 和 val2017 模型训练 (以 HD_yolov4_tiny 为例):
单 GPU:
./darknet detector train data/obj.data cfg/human_detector_yolov4-tiny-custom.cfg yolov4-tiny.conv.29 -dont_show -map
多 GPU:
./darknet detector train data/obj.data cfg/human_detector_yolov4-tiny-custom.cfg yolov4-tiny.conv.29 -dont_show -map -gpus 1,2,3,4
测试单张图片命令
./darknet detector test data/obj.data cfg/human_detector_yolov4-tiny-custom.cfg backup/human_detector_yolov4-tiny-custom_best.weights -thresh 0.25 -ext_output data/person.jpg
视频 demo 测试:
以 HD_yolov4_tiny 为例,通过以下命令对测试视频 tslist.mp4(提取码:h21b) 进行检测,并输出保存为 tiny_yolov4_demo.mp4。
./darknet detector demo data/obj.data cfg/human_detector_yolov4-tiny-custom.cfg backup/human_detector_yolov4-tiny-custom_best.weights -ext_output tslist.mp4 -i 0 -thresh 0.30 -out_filename tiny_yolov4_demo.mp4
ffmpeg -y -r 30 -i tiny_yolov4_demo.mp4 -r 10 tiny_yolov4_demo_fps10.mp4
测试模型性能:
测试模型精度 mAP (mean average precisions):
./darknet detector map your_.data_file your_model_.cfg_file your_pretrained_weights
./darknet detector map data/obj.data cfg/human_detector_yolov4-tiny-custom.cfg ./backup/human_detector_yolov4-tiny-custom_best.weights
测试模型速度FPS:
./darknet detector demo your_.data_file your_model_.cfg_file your_pretrained_weights test.mp4 -benchmark
./darknet detector demo data/obj.data cfg/human_detector_yolov4-tiny-custom.cfg backup/human_detector_yolov4-tiny-custom_best.weights tslist.mp4 -benchmark
实验编号/分支名 | 参数 | 描述 | 状态 | 精度 | GPU/CPU 速度(官方GPU:FPS,CPU:无) | 模型大小 | 显存占用 |
---|---|---|---|---|---|---|---|
yolov4_80 | 2017coco; max_batches = 500500; width=512 height=512 | 源码+pretrained_weight | done | ap=83.22% | 83.0FPS/t>1s (83FPS) | 245 MB | 1745MB |
HD01 | 2014coco; max_batches = 6000; width=512,height=512; | 基于 yolov4 的 human detector (改源码) | done | ap=60.37% | 83.9FPS/t>1s(83FPS) | 245 MB | 1745MB |
HD02 (HD_yolov4) | 2017coco; max_batches = 70000; train_num: 64115; val_num: 2693; width=512 height=512; | 基于 yolov4 的 human detector (改数据格式) | done | ap=79.30% | 82.6FPS/t>1s (83FPS) | 245 MB | 1745MB |
tiny_yolov4_80 | 2017coco; max_batches = 500500 ;width=512 height=512 | 源码+pretrained_weight | done | ap=58.29% | 134.0FPS/0.5FPS | 23.1 MB | 823MB |
HD03 (HD_yolov4_tiny) | 2017coco; max_batches = 80000; train_num: 64115; val_num: 2693; width=512 height=512 | 基于 yolo-tiny 的 human detector改数据格式 | done | ap=65.75% | 134.8FPS/0.5FPS | 23.1 MB | 823MB |
- 测试环境:
- GPU:Tesla V100-32GB 4卡
- 服务器:10.0.10.56
- 输入图片分辨率:1920*1080