先说些题外话,YOLOv5没有论文,其作者是Mosaic Augmentation 的创造者,YOLO V5 在性能上稍弱于YOLO V4,但是在灵活性与速度上远强于YOLO V4,在模型的快速部署上具有极强优势。相对于YOLOv4,分别从以下三个方面简析YOLOv5的改进:
- 输入端:Data Augmentation、自适应锚框计算、自适应图片缩放
- Backbone:Focus结构,CSP结构
- Neck:FPN+PAN结构
1. 输入端
1.1 Data Augmentation主要采用的是Mosaic数据增强
其做法就是对图片使用随机缩放、随机裁剪、随机排布的方式进行拼接。优点是丰富了检测物体的背景和小目标,并且在计算Batch Normalization的时候一次会计算四张图片的数据,使得mini-batch大小不需要很大,一个GPU就可以达到比较好的效果。
1.2 自适应锚框计算
在YOLOv3和YOLOv4中,都需要提前通过K-means聚类的方法计算出anchor,此anchor是固定的。但是在YOLOv5中,虽然也提前设置了anchor,但是在训练时可以自适应的计算不同训练集中的最佳anchor,从而更新anchor值。此功能也可以手动关闭,在train.py中更改,设置为False即可。
1.3 自适应图片缩放
在常用的目标检测算法中,不同的图片长宽都不相同,因此常用的方式是将原始图片统一缩放到一个标准尺