YOLO-V1 存在问题
- YOLO 对相互靠的很近的物体,还有很小的群体检测效果不好,这是因为一个网格中只预测了两个框,并且只属于一类。
- 同一类物体出现的新的不常见的长宽比和其他情况时,泛化能力偏弱。
- 由于损失函数的问题,定位误差是影响检测效果的主要原因。尤其是大小物体的处理上,还有待加强。
YOLO 一代有很多缺点,作者希望改进的方向是改善 recall,提升定位的准确度,同时保持分类的准确度。
YOLO v2 则着力于简化网络。具体的改进见下表:
- Batch Normalization
每一个卷积层增加 Batch Normalization,移除dropout。
- High resolution classifier
YOLO 从 224*224 增加到了 448*448,这就意味着网络需要适应新的输入分辨率。
- Convolution with anchor boxes
去掉了全连接层,使用 Anchor Boxes 来预测 Bounding Boxes。
- Dimension clusters
在训练集的 Bounding Boxes 上跑一下 k-means聚类,获取Anchor Box 的尺寸。
- Fine-Grained Features
YOLO 修改后的特征图大小为 13*13,YOLO 加上了一个 Passthrough Layer 来取得之前的某个 26*26 分辨率的层的特征,把高分辨率特征与低分辨率特征联系在一起,提高小目标检测定位。
- Multi-Scale Training
之前是输入图片尺寸不对,就补全。YOLO V2作者希望 用于训练模型中运行于不同尺寸的图片之上,每 10 个 Batch,网络会随机地选择一个新的图片尺寸,并改变图像尺寸继续训练。参数是32的倍数。
- Datasets combination with wordtree
YOLO V2使用 WordTree 来混合来自不同的资源的训练数据,并使用联合优化技术同时在 ImageNet 和 COCO 数据集上进行训练
YOLO V3 改进之处:
1.多尺度预测 (类FPN) YOLO v2 叫 Passthrough Layer
每种尺度预测 3 个 box, anchor 的设计方式仍然使用聚类,得到9个聚类中心,将其按照大小均分给 3 个尺度。
- 尺度1: 在基础网络之后添加一些卷积层再输出box信息。
- 尺度2: 从尺度1中的倒数第二层的卷积层上采样(x2)再与最后一个 16x16 大小的特征图相加,再次通过多个卷积后输出 box 信息,相比尺度1变大两倍.
- 尺度3: 与尺度2类似,使用了 32x32 大小的特征图
2.更好的基础分类网络(类ResNet)和分类器 darknet-53 |19->53
- darknet-53 与 ResNet-101 或 ResNet-152 准确率接近,但速度更快。
3.分类器-类别预测:
YOLOv3 不使用 Softmax 对每个框进行分类,主要考虑因素有两个:
- Softmax 使得每个框分配一个类别(得分最高的一个),而对于 Open Images这种数据集,目标可能有重叠的类别标签,因此 Softmax不适用于多标签分类。
- Softmax 可被独立的多个 logistic 分类器替代,且准确率不会下降。
- 分类损失采用 binary cross-entropy loss.