欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

YOLO 算不算深度学习模型?YOLO 算法的优势

最编程 2024-03-12 13:39:35
...


论文地址:You Only Look Once: Unified, Real-Time Object Detection

创新点

YOLO实现了实时处理图片,达到45FPS;Fast YOLO达到155FPS,但是检测准确率不高。

优势:

  1. 速度快。
  2. 做预测时全局了解图像,对背景预测错误出现的概率比Fast R-CNN小。
  3. YOLO学习目标的一般特征,具有较高通用性,应用到新领域,不太可能发生故障。

但是YOLO检测准确性不高,虽然可以快速识别图像中的对象,但是很难准确定位一些目标,尤其是小目标。

算法概述

YOLO使用整张图片的特征预测bounding box。

  1. 将图片分为的网格。如果某个目标中心落在一个网格,则该网格负责检测该目标。有些目标中心点可能落在多个网格的边界,可通过nms进行筛选。
  2.  每个网格预测个bounding box及其置信度。置信度反映了bounding box包含对象的信心程度,以及bounding box预测目标的准确程度。置信度定义为:。如果不含目标,则cnotallow=0,如果含有目标,则cnotallow=。
  3. 每个bounding box包括5个预测值:及置信度。(x,y)表示bounding box中心坐标,与网格相关,训练过程将x,y,w,h进行归一化。
  4. 每个网格预测个条件类别概率。不论每个网格中bounding box有多少个,每个网格只预测一组类别概率。
  5. 在测试阶段,我们将条件类别概率与bounding box置信度相乘,,得到每个bounding box属于特定类别的confidence score。
  6. 因此最终预测值变为的张量。

YOLO 算深度学习模型吗 yolo算法优势_算法详解

YOLO在VOC数据集上测试,参数

,因为VOC数据集含有20类,因此设置

,最终预测值为

的张量。

算法详解

1. 网络结构

YOLO网络有24个卷积层,紧跟2个全联接层,整体网络结构如图所示。

Fast YOLO网络使用较少卷积层,只有9个。

YOLO 算深度学习模型吗 yolo算法优势_算法详解_02

2. 训练过程

在ImageNet数据集上使用网络前20个卷积层紧接着一个平均池化层及一个全连接层进行预训练,我们添加4个卷积层和2个全连接层,并进行初始化。为了增加细粒度信息,我们将网络输入分辨率由提高到

网络最后一层采用线性激活函数,其他层采用pRelu(修正线性激活函数):

3. 损失函数

作者采用sum-squared error(平方和)的方式把坐标误差和分类误差整合到一起。但如果二者的权值一致,容易导致模型不稳定,训练发散。因为很多grid cell是不包含物体的,因此grid cell的confidence score为0。所以采用设置不同权重方式来解决,一方面提高坐标误差的权重,另一方面降低不包含目标的bounding box的confidence loss权值,loss权重分别是,。而对于包含object的box的confidence loss权值还是原来的1。损失函数如下所示:

YOLO 算深度学习模型吗 yolo算法优势_算法详解_03

YOLO 算深度学习模型吗 yolo算法优势_数据集_04

第一项Loss表示bounding box中心坐标误差,第二项Loss表示bounding box宽与高的误差,之所以使用平方根,为了提高对小目标的检测准确性。比如大目标w=8,预测值w=10;小目标w=1,预测值w=3.不采用平方根,对于大小目标误差相同为4;而采用平方根,对于大目标误差为0.11,小目标误差为0.54.

第三项与第四项分别为该网格的bounding boxes有目标与无目标情况下的confidence Loss。

第五项表示预测类别的误差。

实验结果

1. 实时性系统比较

YOLO在实时检测方面,准确性较高,相比于Faster R-CNN等非实时检测,虽然mAP较低,但FPS较高,满足实时性要求。

2. 误差分析

YOLO 算深度学习模型吗 yolo算法优势_YOLO 算深度学习模型吗_05

  • Correct: correct class and IOU > :5
  • Localization: correct class, :1 < IOU < :5
  • Similar: class is similar, IOU > :1
  • Other: class is wrong, IOU > :1
  • Background: IOU < :1 for any object

YOLO相比于Fast R-CNN,有较多定位误差,Fast R-CNN有较多背景误判。

3. Fast R-CNN与YOLO结合

YOLO 算深度学习模型吗 yolo算法优势_YOLO_06

提升mAP,但是耗费时间增加。

4. VOC12上测试结果

YOLO 算深度学习模型吗 yolo算法优势_数据集_07

5. YOLO在其他数据集上测试

YOLO 算深度学习模型吗 yolo算法优势_YOLO 算深度学习模型吗_08

YOLO 算深度学习模型吗 yolo算法优势_ide_09

YOLO算法缺点

  1. 依照论文,每张图产生49个网格,98个bounding box,最多检测出49个目标,对于距离较近的成群小目标,检测效果差。
  2. 定位不准。Loss主要来自于定位误差,小误差对小bounding box影响远大于同等误差对大bounding box影响。
  3. 不擅长检测特征相似的某类物体,擅长实时检测多类物体。