YOLO-V1
-
经典的one-stage方法
-
You Only Look Once,名字就已经说明了一切
-
把检测问题转化成回归问题,一个CNN就搞定了
-
可以对视频进行实时监测,应用领域非常广
损失函数
B: 经验框的个数
S*S:网格大小
对这个物体负责,则是经验框与检测物体真实框IOU最大的经验框对这个物体负责
缺点
每个cell只预测一个类别,重叠的物体无法检测
多标签不好预测
小物体难预测,因为检验框只有两
优点
快速,简单
YOLO-V2
Batch Normalization
-
V2版本舍弃了Dropout,卷积后全部加入Batch Normalization
-
网络的每一层的输入都做了归一化,收敛相对更容易
-
经过Batch Normalization处理后的网络会提升2%的mAP
-
从现在的角度来看,Batch Normalization已经成了网络的必备处理
更大的分辨率
-
V1训练时用的是224*224,测试时使用448 * 448
-
可能导致模型水土不服,V2训练是额外又进行了10 次448 * 448 的微调
-
使用高分辨分类器后,YOOV2的mAP提升了约4%
网路结构
-
采用DarkNet结构,实际输入微416 * 416
-
没有FC层,5次降采样,每次输出图像大小减半。因为 FC 参数较多,计算量大,容易过拟合
-
1 * 1卷积节省了很多参数
聚类提取先验框
-
faster- rcnn系列选择的先验框比例都是常规的,按照长宽固定比给定(1:1, 1:2, 2:1),但是不一定完全适合数据集。
-
yolov使用K-Means聚类提取先验框,其中K=5。
-
引入anchor boxes,使得预测的box数量更多
-
K - Means聚类中的 距离:
d(box,centroids) = 1 -IOU(box, centroids)
-
v2中并没有直接使用偏移量,而是选择相对grid cell的偏移量,偏移量的计算如下图:
Fine-Grained Features
-
最后一层感受也太大了,小目标可能丢失,需要融合之前的特征,该进见下图:
Multi-Scale(多尺度)
-
都是卷积操作,没有了全连接层,输入特征图大小可以改变了,一定Iterations之后改变输入图片大小。v1版本中有全连接层的存在,所以输入特征图大小固定。
总结
相关概念
-
目标检测中衡量识别精度的指标是mAP(mean average precision)
-
FPS(每秒传输帧数-Frames Per Second),FPS就是目标网络每秒可以处理(检测)多少帧(多少张图片),FPS简单来理解就是图像的刷新频率,也就是每秒多少帧。
-
感受野:就是特征图上的点能看到原始图像多大区域。堆叠小的卷积核所需的参数更少一些,并且卷积过程越多,特征提取也会越细致,加入的非线性变换也随着增多,还不会增大权重参数个数,这就是VGG网络的基本出发点,用小的卷积核来完成物体特征提取操作。
思考
-
使用小卷积核的优点?