YOLOv3: An Incremental Improvement
这篇文章读下来,作者似乎有一点点疲倦了,从他的预期中似乎有一点点英雄垂暮之感。可能是我误会了吧,让我们一起来看看。
1 Abstract
模型更大了,效果也好,但还是很快的。
2 Introduction
- 感叹自己没怎么做研究,这次再YOLO做了一点改进,同时也帮了别人一点忙
- 似乎是因为他要引用YOLO的一些更新,没有文章来源,所以写了这篇技术报告
- 会讲YOLOv3做了啥,怎么做,没有改进的一些尝试,以及思考这一切意味着什么。
3 The Deal
大多是受到别人好点子的启发。训练了一个更好的分类网络,从头介绍整个系统方便理解。
3.1 Bounding Box Prediction
- 输出方式与YOLOv2一样
- 在训练时是使用sum of squared error loss
- 使用逻辑回归预测每个目标的分数【这个不是很清楚,重叠程度最大的未1?覆盖未超过阈值的,体跳过,而不是每一个groundtruth都预测一个,这样的话就不会产生类别误差】
3.2 Class Prediction
- 不需要softmax
- 直接使用独立的逻辑分类器
- 训练时对类别的预测使用binary cross-entropy loss
好处是:在出现重叠标签时,上述方法更好,因为softmax会默认一个框只有一个类
3.3 Predictions Across Scales
- 在三个不同的尺度预测
- 利用类似于特征金字塔网络的概念
- N ×N ×[3∗(4 + 1 + 80)] for the 4 bounding box offsets,1 objectness prediction, and 80 class predictions.
- 从前两层提取特征图,上采样变成两倍,之后与更早的特征图在一起处理,然后在这个特征图做相似的预测
- 再用该方法预测了一次
重点注意:
We still use k-means clustering to determine our bound-ing box priors. We just sort of chose 9 clusters and 3 scales arbitrarily and then divide up the clusters evenly across scales.
我们仍然使用k-均值聚类来确定我们的包围盒先验。我们只是随意选择了9个集群和3个尺度,然后在尺度上均匀地划分这些集群。在求解anchorbox时应该考虑尺度!!!
3.4 Feature Extractor
- darknet53
- 更大了,连续使用3 * 3,1 * 1和一些short cut
3.5 Training
- 多尺度训练
- 数据增强(旋转之类的)
- 批正则化
4 How We Do
- 效果很好,与SSD相当,但是更快
- 小尺度表现好,但中尺度和大尺度效果差了点
5 Things We Tried That Didn’t Work
说不好,但是有没有深入分析
- Anchor box x, y offset predictions.
使用线性激活将x,y偏移量预测为框宽或框高的倍数【不是很懂】,不稳定,效果不佳 - Linear x, y predictions instead of logistic,map表现不好
- Focal loss
- Dual IOU thresholds and truth assignment:fastrcnn用的,在这里效果不好
总结
这篇更多是作为一篇技术报告,感觉主要的创新是在于:模型更深,多尺度训练,以及像一些类别预测方式的更改,总体来说没有2的创新大,主要是一些小改进吧。
在后面,作者是对技术发展进行了相应的思考:技术不断突破的同时,也应该思考如何让技术向善发展