yolo9000
提出一种联合训练机制,将检测数据集和分类数据集联合训练。使用含有标签的检测数据集去学习检测相关的信息,比如bbox的坐标预测,是否包含目标,以及包含目标的概率。使用仅有类别标签的分类数据集图片去拓展可以检测的种类。
在训练的时候,把检测和分类数据集混合起来,当网络遇到一张属于检测数据集的图片就基于YOLOv2的全部损失函数(包括分类部分和检测部分)做反向传播。当遇到一张属于分类数据集的图片就仅基于分类部分的损失函数做反向传播。
采用联合训练后,yolo9000从coco检测数据集中学习如何在图片中寻找物体,从Imagenet数据集中学习更广泛的物体分类。
定义错误类型,对于每种错误,人为地消除后观察其提升,没有了分类方面的错误后,性能提升最明显。
YOLOv4
- 提出了一种高效而强大的目标检测模型。使每个人都可以使用1080等GPU训练超快速和准确的目标检测器。
- 在检测器训练期间,验证了SOTA的Bag-of Freebies和Bag-of-Specials方法的影响。
- 改进了SOTA的方法,使它们更有效,更适合单GPU训练,包括CBN,PAN,SAM等。将目前主流的目标检测器框架进行拆分:input,backbone,neck和head,具体如下图:
- 对于GPU,在卷积层使用:CSPResNeXt50/CSPDarknet53
作者的目标是在输入网络分辨率,卷积层数,参数数量和filters的数量之间找到最佳平衡。
YOLOv4 = CSPDarknet53(Backbone)+SPP+PAN(Neck)+YOLOv3(Head)
- 用于backbone的BoF:CutMix和Mosaic数据增强,DropBlock正则化,Class label smoothing
- 用于backbone的BoS:Mish激活函数,CSP,MiWRC
- 用于检测器的BoF:CIoU-loss,CmBN,DropBlock正则化,Mosaic数据增强,Self-Adversarial 训练,消除网格敏感性,对单个ground-truth使用多个anchor,Cosine annealing scheduler,最佳超参数,Random training shapes
- 用于检测器的Bos:Mish激活函数,SPP,SAM,PAN,DIoU-NMS