YOLO v1

YOLO系列(一)——YOLO v1


文章目录

  • YOLO系列(一)——YOLO v1
  • 前言
  • 一、设计原因
  • 二、算法原理
  • 三、模型结构
  • 四、损失函数
    • 定位误差损失
    • 置信度误差损失
    • 分类误差损失
  • 五、优缺点
    • 优点
    • 缺点


前言

该系列为博主自主学习YOLO系列的自我总结。主要对该系列网络的设计原因,算法原理,模型结构,损失函数及模型优缺点进行学习和分析。


一、设计原因

YOLO的诞生是为了解决之前的目标检测网络耗时长的问题,以达到能实时(real-time)进行目标检测。


二、算法原理

YOLO v1_第1张图片
1、将输入图像分割为S×S个网格
2、在每一个网格中预测B个边界框,每个边界框包含5个值——x、y、w、h、confidence
3、在每一个网格中也会预测C个类别概率Pr(Class|Object)
4、网络最后的输出为S×S×(B×5+C)


三、模型结构

YOLO v1_第2张图片
YOLO的模型结构设计灵感来自于用于图像分类的GoogleNet。YOLOv1网络包含24个3×3卷积层,之后连接2个全连接层。与GoogleNet不同的是,YOLOv1采用1×1的归约层连接3×3的卷积层。


四、损失函数

YOLO v1_第3张图片
YOLOv1将目标检测看成回归问题(即根据先验数据——输入,对下一数据——输出的一种估计),所以采用的是均方差损失函数。YOLOv1的损失函数可分为三个部分:定位误差损失、置信度误差损失、分类误差损失,每个部分采用不同的权值。

定位误差损失

YOLO v1_第4张图片
对于定位误差,会采用较大的权值,例如:λcoord=5。根据上图可以看到定位误差采用的是均方误差的计算方法,而对于w,h计算的方法和下x,y不一样,这是因为宽高较小的边框的变化敏感度要大于宽高较大的边框。为了避免这种情况,对宽高
预测改为对其均方根的预测。
i表示第i个网格,j表示第j个边界框,1i,j表示第i个网格存在目标且有第j个边界框预测该目标。

置信度误差损失

YOLO v1_第5张图片
对于置信度的预测,要区分包含目标边界框的置信度和不包含目标边界框的置信度。对于包含目标的边界框,其权值要大一些,取1。而对于不包含目标的边界框,其权值要小一些,λnoobj=0.5

分类误差损失

YOLO v1_第6张图片
1i表示第i个网格存在目标。


五、优缺点

优点

YOLOv1采用一个CNN网络来实现目标检测,模型结构较为简单,且速度很快,可以实现实时检测;
由于YOLOv1是对整张图片做卷积,所以在检测目标时会有更大的视野,不容易对背景进行误判;
YOLOv1泛化能力强,做部署时鲁棒性高。

缺点

对于小物体较多的图片来说,表现效果较差。因为单元格内的边界框数量有限,设置过多速度就不够快,精度也会下降;
定位不准确,同时对尺寸不规则的物体定位也不准。


你可能感兴趣的:(YOLO,深度学习,计算机视觉,目标检测)