指标参数分析
深度学习经典检测算法
two-stage(两阶段):Faster-rcnn Mask-Rcnn系列
- 速度通常较慢(5FPS),但是效果通常还是不错的!
- 非常实用的通用框架MaskRcnn。
one-stage(单阶段):YOLO系列
- 最核心的优势:速度非常快,适合做实时检测任务!
- 缺点也是有的,效果通常情况下不会太好!
指标分析
map指标:
综合衡量检测效果;需要把所有的阈值都考虑进来;MAP就是所有类别的平均。
精度:
召回率:
置信度
设定置信度阈值,超过阈值之后,才会被判定。
IOU
两个框可以看成 预测框 和 真实框 。
YOLO-V1
经典的one-stage方法
把检测问题转化成回归问题,一个CNN就搞定了!
可以对视频进行实时检测,应用领域非常广!
核心思想
网络架构
每个数字的含义
损失函数
NMS(非极大值抑制)
优缺点
优点
快速,简单!
缺点
- 每个Cell只预测一个类别,如果重叠无法解决
- 小物体检测效果一般,长宽比可选的但单一
YOLO-V2
YOLO-V2-Batch Normalization
每次Con之后默认追加归一化
- V2版本舍弃Dropout,卷积后全部加入Batch Normalization
- 网络的每一层的输入都做了归一化,收敛相对更容易
- 经过Batch Normalization处理后的网络会提升2%的mAP
- 从现在的角度来看,Batch Normalization已经成网络必备处理
YOLO-V2-更大的分辨率
- V1训练时用的是224 * 224,测试时使用448 * 448
- 可能导致模型水土不服,V2训练时额外又进行了10次448*448 的微调
- 使用高分辨率分类器后,YOLOv2的mAP提升了约4%
YOLO-V2-网络结构
- DarkNet,实际输入为416*416
- 没有FC层,5次降采样,(13*13)
- 1*1卷积节省了很多参数
YOLO-V2-聚类提取先验框
faster-rcnn系列选择的先验比例都是常规的,但是不一定完全适合数据集
K-means聚类中的距离: (一般K=5)
YOLO-V2-Anchor Box
- 通过引入anchor boxes,使得预测的box数量更多(13 * 13 * n)
- 跟faster-rcnn系列不同的是先验框并不是直接按照长宽固定比给定
without anchor | 69.5 mAP | 81% recall |
---|---|---|
with anchor | 69.2 mAP | 88% recall |
YOLO-V2-Directed Location Prediction
V1使用的是下面的 位置偏移量
-
bbox:中心为(xp,yp);宽和高为(wp,hp),则:
-
tx=1,则将bbox在x轴向右移动wp;tx=−1则将其向左移动wp
这样会导致收敛问题,模型不稳定,尤其是刚开始进行训练的时候 (因为初始化是随机的)
V2使用的是下面的 grid cell偏移量
- V2中并没有直接使用偏移量,而是选择相对grid cell的偏移量
- 计算公式为:
例如:
预测值(σtx,σty,tw,th)=(0.2,0.1,0.2,0.32),
anchor框为:
在特征图位置:
在原位置:
感受野
概述来说就是:从最后的特征图上的点能看到原始图像多大区域
假设输入大小都是hwc,并且都使用c个卷积核(得到c个特征图),可以来计算 一下其各自所需参数:
堆叠小的卷积核所需的参数更少一些,并且卷积过程越多,特征提取 也会越细致,加入的非线性变换也随着增多,还不会增大权重参数个数,这就 是VGG网络的基本出发点,用小的卷积核来完成体特征提取操作。
YOLO-V2-Fine-Grained Features
最后一层时感受野太大了,小目标可能丢失了,需融合之前的特征
YOLO-V2-Multi-Scale
都是卷积操作,!一定iterations之后改变输入图片大小
最小的图像尺寸为320 x 320;最大的图像尺寸为608 x 608
YOLO-V3
多scale
为了能检测到不同大小的物体,设计了3个scale
- 13 X 13 的检测大型物体
- 26 X 26 的检测中型物体
- 52 X 52 的检测小型物体
scale变换经典方法
不同的特征图融合后进行预测
残差连接——为了更好的特征
- 基本所有网络架构都用上了残差连接的方法
- V3中也用了resnet的思想,堆叠更多的层来进行特征提取
核心网络架构
- 没有池化和全连接层,全部卷积
- 下采样通过stride为2实现
- 3种scale,更多先验框
- 基本上当下经典做法全融入了
4 + 1 + 80
- 4 指的是 x y w h
- 1 指的是 置信度
- 80 指的是 检测的对象种类,根据自己实际情况而定
先验框设计
YOLO-V2中选了5个,这回更多了,一共有9种
- 13*13特征图上:(116x90),(156x198),(373x326)
- 26*26特征图上:(30x61),(62x45),(59x119)
- 52*52特征图上:(10x13),(16x30),(33x23)
softmax层替代
- 物体检测任务中可能一个物体有多个标签
- logistic激活函数来完成,这样就能预测每一个类别是/不是