YOLOv4: Optimal Speed and Accuracy of Object Detection.

arxiv: https://arxiv.org/abs/2004.10934

github: https://github.com/AlexeyAB/darknet

第一版YOLO文章的发布,标志着基于深度学习的单阶段目标检测算法的开端,随后相继出现了YOLOv2,YOLOv3等家族系列文章。最近,YOLOv4正式发表,文章的主要内容是结合大量前人的工作,进行了大量的实验,并在此基础上面进行了一定的创新,在COCO数据集上面实现了43.5%的mAP,并且保持了65FPS的速度,实现了速度和精度的平衡

文章中将前人在目标检测领域的工作大致分为两类:bag of freebies和bag of specials, 前者主要指的是在训练过程中应用的技巧,这种技巧不会显著增强模型测试阶段的速度和模型复杂度负担,只体现在训练阶段,主要就是数据增强操作。后者会稍微增加模型复杂度和时间开销,但是对精度会有更大的提升,例如一些后处理操作(NMS)

本文主要对YOLOv4中提到的创新进行分析,并对其中集中常见的技巧进行介绍

Mosaic数据增强

mosaic数据增强参考了cutmix的方法,不同于一般的数据增强对单张图片进行操作,cutmix将两张图片进行拼接,成为一张图片,具体实现过程是,对图片A随机生成一个裁剪框B,裁剪掉A的相应位置,然后用图片B中的对应位置的ROI去填充A中的对应裁剪位置。对应的图片label是两张图片分别对应的label的线性组合。

cutmix采用了两张图片,而本文提出的mosaic方法采用了四张图片,这样做的主要原因是,在目标检测领域,小目标一般要比中目标和打目标检测的难度要大,对应的AP值相对低一些,而且小目标图像分布并不均匀,有的图片中存在,有的并不存在,mosaic方法主要有两个优点:(1)丰富了数据集。随机使用四张图片,然后随机缩放再拼接,丰富了数据集,特别是随机缩放增加了很多小目标,能够获得更好的鲁棒性(2)减少GPU开销。相当于一张图片包含四张图片的信息,这样的话batch size就不需要太大,降低了对于GPU的需求,在一块GPU上面也能够训练



object detection

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!