YoloV3 的改进和优化
本文主要是参考YoloV4 和 pp-Yolo 来谈一下自己的感受,如有不正确地方欢迎各位指正。
PP- YOLO:https://blog.csdn.net/weixin_44936889/article/details/107560168
1.数据增强
可以采用Mosaic的方法,Mosaic是将四张图片按照一定比例拼接成一张图片,这样可以使模型可以在更小的范围内识别对象,并且,大的Batch Size会使模型的训练效果更好,Mosaic增加了模型的Batch Size的大小,理论上是原来的4倍。
采用GridMask,在原图中生成一些黑色的网格,将图像区域隐藏在网格中,可以让模型学习对象的整个组成部分。
2. 正则化
可以采用DropBlock的方法,DropBlock是Dropout的一种形式,Dropout仅仅只能用在全连接层中,在卷积层中,由于步长一般为1或2,会用重叠部分所以无法使用,因此提出DropBlock结构,直接将feature map相邻区域中的单元格一起删除,从而达到正则化的效果。注意:在PP-Yolo中DropBlock在检测头中使用,没有在主干网络中使用,在主干网络中使用会导致模型的检测效果降低。
3.Loss
Yolo使用的是最简单的L1 loss,但是L1 loss对于大物体和小物体产生的loss值并没有明显的区分,虽然使用了开根号来缓解这种趋势,但是总的来说,大小物体区分不好,因此引入的Iou loss,Iou loss 一共包括有Iou loss, Giou loss, Diou loss, Ciou loss。看了一些前辈的经验,