YOLO v1
2016年发表于CVPR,图像输入,达到45FPS,63.4mAP,比SSD效果差,相比Faster R-CNN,速度快但准确率低
论文思想
- 将一幅图像分成个网格(grid cell),如果某个object的中心落在这个网格中,则这个网格就负责预测这个object
- 每个网格要预测B个bounding box和C个类别的分数,每个bounding box除了要预测位置之外,还要附带预测一个confidence值
网络结构
损失函数
局限
- 群体小目标检测效果差
- 目标尺寸对检测结果有影响
- 定位不准确
YOLO v2
2017年发表于CVPR,采用Darknet-19作为backbone
各种尝试
- Batch Normalization。能够正则化模型,避免过拟合,有了BN层,可以移除dropout操作,mAP提升2%
- 高分辨率分类器。输入图像尺寸为,使mAP提升4%
- Anchor Boxes。使用Anchor Boxes偏移量,而不是像YOLO v1直接定位,能够简化目标边界框预测问题,便于网络学习。相比于不使用Anchor Boxes,mAP略微降低,但召回率能提升7%
- Dimension Cluster。使用k-means聚类根据训练集的bounding boxes自动找到合适的priors
- Direct location prediction。限制预测目标中心点的坐标范围,使网络训练更稳定
- Fine-Grained Feature。通过PassThrough Layer融合高维和低维的特征矩阵,提升检测小目标的能力
- 多尺度训练。提升鲁棒性
网络结构
YOLO v3
2018年发布于CVPR,采用Darknet-53作为backbone,用卷积核步距为2的卷积层替代下采样池化层
网络结构
目标边界框的预测
正负样本的匹配
选取IoU最大的box作为正样本,IoU超过0.5但不是最大的box直接舍弃
损失计算
YOLO v3 SPP
Mosaic图像增强
将4张图像拼接为1张图像作为训练样本
- 增加数据的多样性
- 增加目标个数
- BN能一次性统计多张图片的参数
SPP模块
实现了不同尺度的特征融合
网络结构
回归定位损失
IoU Loss
优点:
- 能够更好地反映重合程度
- 具有尺度不变性
缺点:
- 当不相交时loss为0?
GIoU Loss
其中为和的外接矩形面积,为和的并集面积
DIoU Loss
和的缺点:
- 收敛慢
- 回归不够准确
DIoU损失能够直接最小化两个boxes之间的距离,因此收敛速度更快
CIoU Loss
一个优秀的回归定位损失应该考虑到3种几何参数:
- 重叠面积
- 中心点距离
- 长宽比
Focal Loss
One-stage网络模型,正负样本不平衡
更专注于难分的样本