0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

目标检测算法YOLO的发展史和原理

jt_rfid5 来源:新机器视觉 2023-11-18 10:33 次阅读

01YOLO发展史

大家或许知道,首字母缩写YOLO在英文语境下较为流行的含义,即You Only Live Once,你只能活一次。我们今天要介绍的YOLO却有着与前者不一样的含义。在算法的世界中,YOLO寓意You Only Look Once,你只需要看一眼——这不失为一种来自开发者的罗曼蒂克。

在讲解YOLO的算法原理之前,先简要介绍YOLO的发展史。YOLO开创了一阶段检测算法的先河。它将目标分类和定位用一个神经网络统一起来,实现了端到端的目标检测。

YOLO检测系统

YOLO最初于2016年由华盛顿大学的博士研究生Joseph Redmon提出。Joseph Redmon的这篇提出YOLO的论文You Only Look Once: Unified, Real-Time Object Detection也发表在了CVPR 2016上,并获得了CVPR 2016的最佳人气奖。自此,Joseph Redmon开始不断推出YOLO的新版本,YOLO也在不断的迭代中越来越强。

2017年,Joseph Redmon与导师合著发表了论文YOLO9000: Better, Faster, Stronger,这篇论文也标志着YOLO v2的诞生。该论文获得了CVPR 2017最佳论文荣誉提名奖。YOLO v2能够检测9000中不同的对象,因此也被称为YOLO9000。

2018年,Joseph Redmon又提出了YOLO新版本YOLO v3,这一版本的YOLO在保持原有算法的速度优势的同时,提升了模型的精度,补齐了小目标检测以及重叠遮挡目标识别的短板。虽然,Joseph Redmon在2020年出于个人对职业伦理恪守的原因终止了CV研究,但之后便出现新的YOLO维护者继续接手YOLO的进一步研发项目。

02YOLO算法原理

YOLO的核心理念是:把目标检测问题转换为直接从图像中提取边界框和类别概率的单回归问题,即一次就可检测出目标的类别和位置。正因如此,YOLO模型的运行速度非常快 ,从而可以满足实时性应用要求。

YOLO模型做统一检测(unified detection)的流程为:

YOLO模型

首先,把输入图像分成S×S个小格子。每个格子预测N个边界框,每个边界框用五个预测值表示:x,y,w,h和confidence(置信度)。其中,(x,y)是边界框的中心坐标,w和h是边界框的宽度和高度,这四个值都被归一化到[0,1]区间以便于训练。

置信度会对当前边界框中存在目标的可能性Pr(Object)以及预测框与真实框的交并比进行综合考虑,即

20b5ef3a-8535-11ee-939d-92fbcf53809c.png

其中

20cb159a-8535-11ee-939d-92fbcf53809c.png

根据以上定义,若一个框内没有物体,则confidence = 0,反之则confidence等于交并比。我们在训练时可以计算出每一个框的置信度。

其次,我们要预测每个格子分别属于每种目标类别的条件概率(|),其中 = 0,1,…,C,其中C是数据集中目标类别的数量。

在测试时,属于某个格子的N个边界框共享C个类别的条件概率,则每个边界框属于某个目标类别的置信度(类别置信度)为

20d9a5d8-8535-11ee-939d-92fbcf53809c.png

最后,我们会输出一个维度为S×S×(N×5+C) 的张量(tensor)。在此需要提示的是,5代表的是在第一步中对应的五个预测值,且因为每个格子的N个边界框是共享C个类别的条件概率的,因此在张量维度大小的计算公式中,我们在N×5与C之间采用的运算是加法而非乘法。

YOLO使用PASCALVOC检测数据集。YOLO将图像分为7×7=49个小格子,其中,每个格子里有两个边界框,即S=7,N=2。因为VOC数据集中有20种类别,因此C=20。最终的预测结果是一个7×7×30的张量。

YOLO借鉴了GoogLeNet的设计思想,其网络结构中包括24个卷积层和2个全连接层。YOLO没有使用Inception模块,而是直接用1×1卷积层及随后的3×3卷积层。YOLO的最终输出是7×7×30的张量。

20ec7afa-8535-11ee-939d-92fbcf53809c.png

YOLO网络结构

需要强调的是,上图中出现在数字右下角的“-s-2”的下标代表该卷积层或池化层的stride(步距)为2。

此外,YOLO使用Leaky ReLU作为激活函数,即

20ff121e-8535-11ee-939d-92fbcf53809c.png

总言之,YOLO算法通过把“统一检测候选框与类别概率”的思想和 “用一个卷积神经网络来实现”的操作结合,从而开创了一阶段目标检测算法。

03YOLO算法的闪光点与局限性

相对于传统目标检测算法而言, 使用统一检测模型的YOLO的闪光点在于:

其一,检测速度非常快。YOLO将目标检测重建为单一回归问题从而对输入图像直接处理。此外,还同时输出边界框坐标和分类概率,而且每张图像只预测98个边界框。因此,YOLO的检测速度非常快。其中,YOLO在Titan X GPU上的检测速度能达到45帧/秒,Fast YOLO的检测速度则可以达到155帧/秒。

其二,背景误判少。以往基于滑动窗口或候选区域提取的目标检测算法只能看到图像的局部信息,因此会把图像背景误认为检测目标。而YOLO在训练和测试时每个格子都可以看到全局信息,因此不容易把图像背景预测为目标。

其三,泛化性更好。YOLO能够学习到目标的泛化表示,从而能够迁移到其他领域。在泛化能力上,YOLO的性能远优于DPM、R-CNN等。

但除了以上闪光点外,YOLO也存在着局限性。虽然YOLO的目标检测速度很快,但其预测精度不是很高。究其原因,主要是由于——

其一,YOLO的每个格子只能预测两个边界框和一种目标的分类。YOLO将一张图像均分为49个格子,若在同一单元格内存在多个物体的中心,那么该单元格内只能预测出一个类别的物体,并丢掉其他的物体,从而降低了预测精度。

其二,损失函数的设计过于简单。虽然边界框的坐标和分类表征的内容不同,但YOLO都用其均方误差作为损失函数。

其三,YOLO直接预测边界框的坐标位置,这会导致模型不易训练。

不过,以上在YOLO原版中出现的问题在后来的YOLO v2、YOLO v3等版本中都逐步得到了改进。

来源:新机器视觉

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 检测系统
    +关注

    关注

    3

    文章

    954

    浏览量

    43044
  • 检测算法
    +关注

    关注

    0

    文章

    119

    浏览量

    25220
  • 目标检测
    +关注

    关注

    0

    文章

    209

    浏览量

    15611
  • 数据集
    +关注

    关注

    4

    文章

    1208

    浏览量

    24700

原文标题:【光电智造】目标检测算法YOLO的发展史及优势

文章出处:【微信号:今日光电,微信公众号:今日光电】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    恒压变压器的发展史

    本电子书汇集了各类恒压变压器原理、产品以及它的的发展史,它的各项特性在电子行业得到普遍认可和广泛使用。清版主删除,以为附件超大了不能上传[此贴子已经被作者于2008-7-29 15:14:40编辑过]
    发表于 07-29 14:55

    PowerPC小目标检测算法怎么实现?

    检测系统在低功耗、轻小型化等方面提出了更高的要求。因此,完成小目标检测任务不仅需要寻求合理的小目标检测算法,在实现时还需要考虑处理性能和体积
    发表于 08-09 07:07

    Linux系统发展史及版本更迭

    运维必知Linux系统发展史及版本更迭
    发表于 04-29 14:15

    【大联大世平Intel®神经计算棒NCS2试用申请】基于RK3399+Intel NCS2加速YOLO4目标检测算法加速方案

    项目名称:基于RK3399+Intel NCS2加速YOLO4目标检测算法加速方案试用计划:项目名称:基于RK3399+Intel NCS2加速YOLO4
    发表于 06-30 16:04

    5G的发展史

    5G到底是什么?为什么引得一众通讯巨头相继抢占先机?在这里,将用一组图带您梳理一下5G的发展史。在视频、游戏霸屏移动端的今天,4G已不能满足庞大的流量需求。4G即将成为明日黄花,5G即将接棒流量市场
    发表于 12-24 06:25

    基于YOLOX目标检测算法的改进

    基础的 AlexNet 算法框架,极大的提升了算法的速度和准确度。相比于传统目标检测算法,以CNN 为核心的目标
    发表于 03-06 13:55

    声卡的发展史

    声卡的发展史    
    发表于 12-26 11:23 1389次阅读

    基于码本模型的运动目标检测算法

    本内容提供了基于码本模型的运动目标检测算法
    发表于 05-19 10:54 32次下载
    基于码本模型的运动<b class='flag-5'>目标</b><b class='flag-5'>检测算法</b>

    改进的ViBe运动目标检测算法_刘春

    改进的ViBe运动目标检测算法_刘春
    发表于 03-19 11:41 0次下载

    基于yolo算法进行改进的高效卫星图像目标检测算法

    同时目标检测算法对于不常见的的比例或新的图像分布缺乏一定的泛化能力。由于物体可能的方向和尺寸比例各不相同,算法有限的比例变化对于特殊目标检测
    的头像 发表于 06-01 16:35 1.2w次阅读

    基于深度学习的目标检测算法

    整体框架 目标检测算法主要包括:【两阶段】目标检测算法、【多阶段】目标检测算法、【单阶段】
    的头像 发表于 04-30 10:22 1.1w次阅读
    基于深度学习的<b class='flag-5'>目标</b><b class='flag-5'>检测算法</b>

    目标检测YOLO的重要性!

    表示。 从个人学习来看:优秀的计算机视觉工程师,目标检测的学习避免不了,而目标检测的核心就是YOLOY
    的头像 发表于 06-10 15:45 4230次阅读

    浅谈红外弱小目标检测算法

    红外单帧弱小目标检测算法主要通过图像预处理突出小目标同时抑制背景噪声干扰,之后采用阈值分割提取疑似目标,最后根据特征信息进行目标确认。
    的头像 发表于 08-04 17:20 6106次阅读

    基于Transformer的目标检测算法

    掌握基于Transformer的目标检测算法的思路和创新点,一些Transformer论文涉及的新概念比较多,话术没有那么通俗易懂,读完论文仍然不理解算法的细节部分。
    发表于 08-16 10:51 653次阅读
    基于Transformer的<b class='flag-5'>目标</b><b class='flag-5'>检测算法</b>

    电阻柜的发展史

    电阻柜发展史
    的头像 发表于 03-08 15:22 445次阅读