是的,它来了。
简介
yolo3在
这个模型跟yolo2相比,并没有什么重大的改变,作者通过尝试许多技巧来提升模型性能,最后筛选出当前有用的一些技巧组合成yolo3。
边界框与类别预测
在yolo2中,边界框是通过预测框相对于图片左上角的中心坐标和先验框的长宽来得到框的位置大小:
这里也沿用了yolo2的边界框预测方法。yolo3采用逻辑斯蒂回归对每个先验框进行物体对象存在性的评分。当某个先验框覆盖一个真实标记对象的面积相比于其它框都要大的时候,则该框的分数置1;当某个框不是最佳边界框,但确实与某个真实标记对象的重叠面积大于阈值(作者论文里选的阈值为0.5),作者仍将其忽略。所以作者只为每一个真实标记对象指定一个先验边界框,对于那些没有被指定的先验框,不会造成坐标和分类损失,而只会有目标对象存在性损失。通过这样的方式可以去除不必要的框,减少计算量。
关于类别预测,yolo3针对每个框都采用多标签分类来预测边界框可能包含的类。作者这里并没有采用softmax是因为作者发现这对模型的高性能并没有什么影响,而且独立的逻辑斯蒂分类加上二分类交叉熵损失函数这个模型可以方便地迁移到其它数据集上。
模型改进
在模型训练上,作者采用了跨尺度组合特征来进行预测。yolo3使用3个不同的长宽比来预测框,具体操作类似于
特征提取器
作者在yolo3里使用了一个全新的特征提取器。新的卷积堆中使用了连续的
模型训练与不足
yolo3的训练仍采用没有经过难分样本挖掘的数据集进行训练,同时使用多尺度训练、大量的数据增强方法、批归一化等。模型的mAP值在COCO数据集上的新评估方法上与SSD模型旗鼓相当,但SSD的运行速度大约是yolo3的3倍。而换到旧的评估方法,模型的mAP值与RetinaNet相当并甩了SSD几条街。
yolo3还是有一些不足的。在前面版本中,yolo在小目标检测方面一直表现不优,经过多尺度训练后,模型对小目标检测有了很大的提升,但在中、大目标识别上的表现却不如从前。
致谢
本文主要参考自以下内容:
Preview: