Please enable JavaScript.
Coggle requires JavaScript to display documents.
YOLOv1(2016) - Coggle Diagram
YOLOv1(2016)
结构
Backbone
概述
参考GoogLeNet,用20层卷积网络+平均池化层和全连接层,在ImageNet图片分类数据集上训练
-
判断层
概述
在后面加入4层卷积和2层1x1卷积(就是全连接)(根据论文 Object
detection networks on convolutional feature maps,在backbone后面加入卷积和全连接层会比单单加入全连接效果好)
-
损失函数
概述
- 将图片划分成SxS个格子,每个格子有B个bounding box
- 每个bounding box会预测这个bounding box的置信度、x、y、w、h
- 每个各自回预测C个分类结果
- 所以最后的结果会是SxSx((Bx5)+C)
- 坐标和查款损失只计算交并比最大的bounding box
- 分类的损失函数只有在有物体时才计算
分类
坐标
公式
$$\lambda_{coord}
\sum_{i=0}^{S^2}
\sum_{j=0}^{B}
1_{i\;j}^{obj}
\;[(x_i-\hat{x_i})^2+
(y_i-\hat{y_i})^2]$$
解释
- 前面lambda是因为如果不加权,位置信息对损失函数的表现会比C分类信息影响小,所以特意加权,论文中为5
- 两个求和符号是需要计算所有格子以及格子中的bounding box
长宽
公式
$$\lambda_{coord}
\sum_{i=0}^{S^2}
\sum_{j=0}^{B}
1_{i\;j}^{obj}
\;[(\sqrt{w_i}-\sqrt{\hat{w}_i})^2+
(\sqrt{h_i}-\sqrt{\hat{h}_i})^2]$$
解释
概述
相同大小的预测误差,小物体应该比大物体的更加明显(因为误差百分比更大),所以使用了根号,因为加根号后函数的斜率会越来越小,所以相等大小的误差在较大的正确大小会有更小的斜率
-
没物体的置信度
公式
-
解释
给没物体的置信度加权是因为图片中很多grid可能都没有物体,这会导致没物体的权重压制有物体的权重,所以这里权重为0.5
-
预测
概述
在预测时多个格子常出现同一个预测结果是,使用非极大值压制选出结果最好的
-
优点
- 因为使用单一网络完成目标检测任务,所以YOLO会特别快
- 虽然相比其他会有定位不准确的问题,但以为使用全图推理,更少的把背景当做目标
- 因为YOLO学习物体的一般表示,所以相比其他网络,切换到不同领域时有更好的鲁棒性
缺点
- YOLO对相互靠的很近的物体,还有很小的群体 检测效果不好,这是因为一个网格中只预测了两个框,并且只属于一类
- 对测试图像中,同一类物体出现的新的不常见的长宽比和其他情况是。泛化能力偏弱
- 由于损失函数的问题,定位误差是影响检测效果的主要原因。尤其是大小物体的处理上,还有待加强