一、YOLO-V1
1、YOLO-V1的方法概述
- 经典的one-stage方法
- You Only Look Once,名字就已经说明了一切!
- 把检测问题转化成回归问题,一个CNN就搞定了!
- 可以对视频进行实时检测,应用领域非常广!
2、核心思想:把输入图像划分成S×S的网格,预测Bounding boxes、置信度和类别概率。
3、网络架构:基于GoogLeNet修改,有20层,输出7×7×30的张量,代表每个网格预测的2个Bounding boxes和20个类别概率等信息。
4、每个数字的含义:
- 10 =(X,Y,H,W,C)*B(2个)
- 当前数据集中有20个类别
- 7*7表示最终网格的大小
- (S*S)*(B*5+C)
5、非极大值抑制
- 设定目标框的置信度阈值,常用的阈值是0.5左右
- 根据置信度降序排列候选框列表
- 选取置信度最高的框A添到输出列表,将其从候选框列表删除
- 候选框列表中的所有框依次与A计算IoU,删除大于阈值的候选框
- 重复上述过程,直到候选框列表为空,返回输出列表
6、YOLO-V1的问题
- 问题1:每个Cell只预测一个类别,如果重叠无法解决
- 问题2:小物体检测效果一般,长宽比可选的但单一
二、YOLO-V2
1、YOLO-V2-Batch Normalization
- V2版本舍弃Dropout,卷积后全部加入Batch Normalization
- 网络的每一层的输入都做了归一化,收敛相对更容易
- 经过Batch Normalization处理后的网络会提升2%的mAP
- 从现在的角度来看,Batch Normalization已经成网络必备处理
2、YOLO-V2-更大的分辨率
- V1训练时用的是224*224,测试时使用448*448
- 可能导致模型水土不服,V2训练时额外又进行了10次448*448的微调
- 使用高分辨率分类器后,YOLOv2的mAP提升了约4%
3、YOLO-V2-网络结构
- DarkNet,实际输入为416*416
- 没有FC层,5次降采样(13*13)
- 1*1卷积节省了很多参数
4、YOLO-V2-聚类提取先验框
- faster-rcnn系列选择的先验比例都是常规的,但是不一定完全适合数据集
- K-means聚类中的距离:
5、 YOLO-V2-Anchor Box
- 通过引入anchor boxes,使得预测的box数量更多(13*13*n)
- 跟faster-rcnn系列不同的是先验框并不是直接按照长宽固定比给定
6、YOLO-V2-Directed Location Prediction
- bbox:中心为(xp,yp);宽和高为(wp,hp),则:
- tx=1,则将bbox在x轴向右移动wp;tx=−1则将其向左移动wp
- 这样会导致收敛问题,模型不稳定,尤其是刚开始进行训练的时候
- V2中并没有直接使用偏移量,而是选择相对grid cell的偏移量
- 计算公式为:
- 例如预测值(σtx,σty,tw,th)=(0.2,0.1,0.2,0.32),anchor框为
7、YOLO-V2-Fine-Grained Features
最后一层时感受野太大了,小目标可能丢失了,需融合之前的特征。
8、YOLO-V2-Multi-Scale
- 都是卷积操作可没人能限制我了!一定iterations之后改变输入图片大小。
- 最小的图像尺寸为320 x 320。
- 最大的图像尺寸为608 x 608。