前天YOLOv4终于问世——
YOLO v4 论文:https://arxiv.org/abs/2004.10934
YOLO v4 开源代码:https://github.com/AlexeyAB/darknet
效果相比YOLOv3和去年的EfficientDet系列提升明显。这里使用tensorflow model的测试图片对官方给出的COCO数据集训练的模型测试对比:
分别是YOLOv3和YOLOv4的测试结果,可以看到提升还是很明显的,特别是小目标的识别效果,不枉论文吹B的:
Improves YOLOv3’s AP and FPS by 10% and 12%, respectively
论文细节还在研究中,后面有空更新。我也第一时间使用YOLOv4训练了自己数据集。
具体的步骤和YOLOv3一模一样,需要下载backbone的权重:https://github.com/AlexeyAB/darknet#how-to-compile-on-linux-using-make中for yolov4.cfg
, yolov4-custom.cfg
(162 MB)。
因为我没有梯子,能下载的兄弟请传个百度网盘分享交流。这里在网上只能找到别人分享的yolov4.weights文件,于是提取了yolov4.weights模型的backbone参数作为backbone部分的预训练模型。
训练自己数据集只需要修改yolov4-custom.cfg中三处的:
[convolutional]
size=1
stride=1
pad=1
filters=${3×(自己数据集类别+5)} #例如COCO是3×(80+5)=255
activation=linear
[yolo]
mask = 3,4,5
anchors = 12, 16, 19, 36, 40, 28, 36, 75, 76, 55, 72, 146, 142, 110, 192, 243, 459, 401
classes=${自己数据集类别} #例如COCO是80
num=9
jitter=.3
ignore_thresh = .7
truth_thresh = 1
scale_x_y = 1.1
iou_thresh=0.213
cls_normalizer=1.0
iou_normalizer=0.07
iou_loss=ciou
nms_kind=greedynms
beta_nms=0.6
详细准备工作参考https://pjreddie.com/darknet/yolo/中Training YOLO on VOC章节。
准备好后既可以开始训练: