目录
YOLOv1(You Only Look Once version 1)是YOLO系列目标检测算法的开山之作,由Ross Girshick等人于2015年提出,并在2016年的CVPR会议上发表。YOLOv1将目标检测任务视为一个回归问题,通过一次前向传播就能完成从输入图像到输出检测结果(包括物体的位置和类别)的端到端过程。以下是YOLOv1网络的详细介绍:
一、核心思想
YOLOv1的核心思想是将目标检测问题转化为一个回归问题。它首先将输入图像划分为多个网格,然后每个网格负责预测中心点落在该网格内的物体的边界框和类别。这种设计使得YOLOv1能够一次性完成对整个图像的检测任务,从而大大提高了检测速度。
二、目标检测逻辑![](https://i-blog.csdnimg.cn/direct/6f8032fd7e6444dab6b7c53188409aca.png)
- 网格划分:将输入图像划分为SxS的网格(YOLOv1中S=7),每个网格负责预测中心点落在该网格内的物体的边界框和类别。
- 边界框预测:每个网格预测B个边界框(YOLOv1中B=2),每个边界框包含5个预测值(x、y、w、h、置信度)。
(x,y) 表示边界框中心 相对于网格 的坐标;
w,h 表示边界框 相对于整张图像 的宽和高(意思是边界框的中心坐标必须在网格内,但其宽和高不受网格限制、可以随意超过网格大小);
confidence 定义为:当边界框中不存在目标时,confienec应等于0;当边界框中存在目标时,confidence应等于这一边界框和物体的真实边界框的IoU,可以表示为: - 类别预测:每个网格还预测C个类别的条件概率(YOLOv1中使用PASCAL VOC数据集,C=20)。
三、网络结构概述
- 输入:YOLOv1的输入图像大小被固定为448x448像素(三通道)。需要注意的是,在训练阶段,为了加快训练速度,可能会使用较小的输入尺寸(如224x224像素),但在测试阶段会采用448x448像素的输入尺寸以获得更好的检测效果。
- YOLOv1的网络结构:借鉴了GoogLeNet(现已更名为Inception V1)的设计,主要由卷积层、池化层和全连接层组成。具体来说,YOLOv1的网络包含24个卷积层、4个最大池化层和2个全连接层。这种设计使得YOLOv1能够提取图像中的深层次特征,从而进行准确的目标检测。
- 输出:YOLOv1的输出是一个形状为7x7x30的张量。这个张量对应于将输入图像划分为7x7的网格,每个网格预测2个边界框(Bounding Box)和20个类别的条件概率。每个边界框包含5个预测值:x、y(边界框中心点的坐标,相对于网格的偏移量)、w、h(边界框的宽和高,已根据原图尺寸进行归一化)以及置信度(Confidence,表示边界框内存在物体的概率以及边界框的准确度)。因此,每个网格的输出是一个30维的向量(2个边界框的10个预测值+20个类别概率)。
-
损失函数:YOLO采用均方和误差(sum-squared error)作为损失函数,因为它很容易进行优化。但是它对于提高平模型的平均精度却不是十分理想,于是针对以下几个问题进行优化:
位置误差和分类误差对loss的贡献应当是不同的,因此在计算loss时引入
来修正坐标损失。
每张图像中都有许多网格是不包含任何目标的(即没有目标的中心点落入这些网格内),这会使得大部分网格内边界框的confidence值偏向于0,变相放大了包含目标的网格的confidence误差在计算梯度时的影响。YOLO引入来修正这一影响。
相同的位置偏差对大物体的IoU error的影响要远小于对小物体的影响,因此YOLO通过将物体大小的信息项(w,h)开平方来修正平衡二者的影响。
最终修正后的损失函数(loss function)的表达式为:
四、评价方法
MAP(Mean Average Precision,平均精度均值)指标是衡量YOLOv1目标检测算法性能的一个重要指标。MAP综合了检测效果中的精度(Precision)和召回率(Recall)等多个方面,为模型在不同类别上的平均性能提供了一个量化的评价标准。
-
预测与真实标签的匹配:首先,将模型预测的边界框与真实标签(Ground Truth)进行比较,通过计算交并比(IOU,Intersection over Union)来确定预测框与真实框的匹配程度。当IOU大于或等于设定的阈值(通常为0.5)时,认为该预测框是一个真正例(TP)。
-
计算TP、FP、FN:根据匹配结果,可以计算出真正例(TP)、假正例(FP)和假反例(FN)的数量。其中,TP表示正确检测到的目标数量,FP表示错误地将非目标检测为目标的数量,FN表示未检测到的实际目标数量。
-
计算AP:对于每个类别,根据TP、FP和FN的数量可以计算出该类别的精度(Precision)和召回率(Recall),进而绘制出该类别的PR(Precision-Recall)曲线。AP即为该PR曲线下的面积,表示该类别在不同召回率下的平均精度。
-
计算MAP:将所有类别的AP值相加并除以类别总数,即可得到最终的MAP值。MAP值越高,表示模型在不同类别上的平均性能越好。