文章目录
- 一、算法特点
- 二、网络结构
- 三、检测过程
- 四、损失函数
- 五、性能表现
- 六、优缺点
YOLO v1(You Only Look Once version 1)是一种快速的目标检测算法,以下是对YOLO v1的详细介绍:
一、算法特点
- 端到端的网络结构:YOLO v1将目标检测视为回归任务,采用端到端的网络结构,使用一个神经网络同时预测bounding box(边界框)的位置和类别,因此速度很快。
- 全局信息利用:由于YOLO v1不需提取region proposal(候选区域),而是直接在整幅图像上进行检测,因此可以联系上下文信息和特征,减少将背景检测为物体的错误。
- 泛化能力强:YOLO v1学习到的是目标的泛化表示(generalizable representations),因此更容易应用于新的领域或输入。
二、网络结构
YOLO v1的网络结构主要由24个卷积层和2个全连接层构成。输入图像首先被resize到448x448,然后经过卷积层和池化层提取特征,最后通过全连接层输出分类和回归结果。网络的最后一层采用线性激活函数,以预测bounding box的位置(数值型)。
- 下图为YOLOv1的网络结构图
三、检测过程
-
图像划分:YOLO v1将输入图像划分为S×S(7×7)的网格,每个网格负责检测中心落在该网格中的物体。
- 如下图:
- 如下图:
-
边界框预测:每个网格预测B个bounding boxes(边界框,v1中 B=2),以及这些边界框的置信度。置信度反映了模型对于这个网格的预测,即该网格是否含有物体,以及这个边界框的坐标预测的正确性。YOLO v1对每个边界框都有5个预测值,包括
中心点
的x、y坐标,宽度w、高度h,以及置信度。
- 置信度(confidence)
- 置信度(confidence)= Pr(Object) * IoU
- Pr(Object)是边界框内存在对象的概率,若有对象,Pr(Object)=1,否则Pr(Object)=0
- IoU 是真实框(ground truth)与预测框(predicted box)的交并比
- IoU = (预测框和真实框的交集面积) / (预测框和真实框的并集面积)
- 一般认为IoU>0.5的时候,预测框才是有价值的
- 类别预测:每个网格还需要预测C(在v1中 C=20 )个类别概率值,表示该网格负责预测的边界框中的目标属于各个类别的概率。
YOLO v1网络结构中最后输出的 7×7×30 解释如下:
- 7×7 意味着7×7个网格
- 30 表示每个网格包含30个信息,其中2个预测框,每个预测框包含5个信息(x y w h c),分别为中心点位置坐标(x,y),宽(w)高(h)以及置信度(c),剩下20个是针对数据集的20个种类的预测概率(即假设该网格负责预测物体,那么它是某个类别的概率)。
四、损失函数
- YOLO v1的损失函数通过ground truth(真实值)和输出之间的sum-squared error(平方和误差)进行计算。
- YOLO的损失包括三部分:位置误差,置信度误差,分类误差
- 损失函数的设计目标是让坐标(x, y, w, h)、置信度和分类三个方面达到很好的平衡。为了平衡不同部分的损失,YOLO v1对不同的损失赋予了不同的权重。
- 下面是在网上搜集到的一张别人对此模型中损失函数的笔记(本人也没有完全理解,就不做详细展开解释了)
五、性能表现
- 检测速度:YOLO v1的检测速度非常快,在Titan X的GPU上能够达到45帧每秒(FPS),适用于实时应用。
- 检测精度:虽然YOLO v1的检测速度很快,但其检测精度相对较低。它容易产生物体的定位错误,并且对小物体的检测效果不好。
六、优缺点
优点:
- 检测速度快,适用于实时应用。
- 能够利用全局信息进行检测,减少背景错误。
- 泛化能力强,容易应用于新的领域或输入。
缺点:
- 检测精度相对较低。
- 容易产生物体的定位错误。
- 对小物体的检测效果不好。
综上所述,YOLO v1是一种快速的目标检测算法,具有端到端的网络结构、全局信息利用和泛化能力强等优点。但其检测精度相对较低,容易产生定位错误,并且对小物体的检测效果不好。这些特点使得YOLO v1在实时应用中有一定的优势,但在需要高精度检测的场景中可能表现不佳。