目录
YOLO:You Only Look Once.把检测问题转换成了回归问题。
一、网络特征
(1)典型的one-stage目标检测方法,运行速度快,可做到实时监测;
(2)直接对输入图预测出目标框位置(x,y,w,h),置信度(conf);
(3)将图像分为网格,每个网格对图像内容进行检测,预测边界框和类别。
二、网络结构
2.1网络结构图
2.2网络结构说明
(1)输入层:输入图像大小448*448大小三通道的图像(或者可以理解为输入一个448行448列,每列中3个数字的数组);
(2)卷积层(特征提取):卷积层的尺寸为7*7,输出通道为64,步长为2(其他类似);
(3)池化层(降低特征图空间维度--减少计算量):每个2*2区域取最大值进行池化,将特征图的高度和宽度均减半;
(4)全连接层:将卷积层和池化层提取的特征进行整合,并将其映射到输出空间;
(4)输出层:4096表示神经元个数,负责最后的分类和目标框回归。30表示两个目标框的位置信息和置信度以及20个类别的概率值。
三、核心思想
3.1候选框策略
(1)网格划分,将输入图像划分成S*S的网格;
(2)每个网格预测两个边界框;
(3)每个网格预测X类类别概率,这里的X是要按照具体的数据集而定,就是类别个数。
3.2预测流程
以下图为例:
对本图进行目标检测的预测流程如下:
(1)为图片划分网格grid,本图是7*7=49个网格;
(2)目标中心落在哪个网格中,就由哪个网格负责预测边界框;
(3)每个网格预测两个边界框;
(4)每个网格预测X个类别概率,这里的值是概率值,并不是具体的分类,但是他们能够代表分类。
注意:目标的中心点 主要是指 真实目标的中心点。根据真实的数据信息预测边界框的位置。
3.3网络结构与预测
解释:
(1)7*7表示网格数;
(2)30表示2*(4+1)+20,这里的2是边界框(候选框),4是(x,y,w,h),1是confidence置信度,20指的是20个分类;
(3)网络的最终输出是一个 7×7×30 的张量,表示每个网格的预测结果。这些预测包括每个网格内可能出现的目标的 边界框 和 类别概率。
四、损失函数
4.1损失组成
整个损失函数由三部分组成:坐标损失、置信度损失、网格预测类别损失。
4.2损失公式
整个损失函数比较长,由三部分组成,用加好连接:
4.3解释
(Xi,Yi,Wi,Hi)、Ci、Pi表示的是真实的目标位置信息、置信度信息、分类概率信息;
带了^的,都是模型预测出来的数据结果。
为什么W,H要带根号?
平方根的使用是为了让 宽度 (W) 和 高度 (H) 的回归更加稳定,避免大目标和小目标之间的差异影响训练效果,从而提高模型的学习能力和精度。
λ是调整因子,用来控制不同部分损失的相对重要性。
五、NMS处理
就是非极大值抑制处理,让同一个目标的目标框只保留一个,置信度最大的候选框添加到输出列表,其他候选框与输出列表的候选框做计算,大于阈值IoU的会被去掉。
六、特点总结
优点:
(1)计算速度快,计算简单;
(2)背景误检率低,避免产生背景错误。
缺点:
(1)定位精度低:分类结果是正确的,但是边界框画的不准确;
(2)每一个网格单元只能预测一个类别;
(3)小物体检测效果一般。