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

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

3天内不再提示

目标检测YOLO系列算法的发展过程

新机器视觉 来源:DeepHub IMBA 作者:Dr. Abduljabbar Asadi 2022-10-27 17:45 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文中将简单总结YOLO的发展历史,YOLO是计算机视觉领域中著名的模型之一,与其他的分类方法,例如R-CNN不同,R-CNN将检测结果分为两部分求解:物体类别(分类问题),物体位置即bounding box(回归问题)不同,YOLO将任务统一为一个回归问题。也就是相对于R-CNN系列的“看两眼”(候选框提取与分类),YOLO只需要 You Only Look Once。

目标检测

我们人类只需要看一眼图像就能知道图像里面包含了那些物体,能够知道这些物体在哪里,以及他们之间的相互关系。这是人类进行目标检测的过程,但是当谈到人工智能计算机视觉中的视频和图像分析时,目标检测是一个有趣和不断发展的主题,它从图像和视频中提供有意义和有价值的信息,可以为医疗保健、产品优化、人脸识别、自动驾驶,卫星图像分析等不同领域提供巨大的帮助。检测一个对象并从图像中获得高层次的语义或理解将通过3个步骤:

eddf98b4-4286-11ed-96c9-dac502259ad0.png

1、分类:这是一个有监督的学习任务,它将训练一个模型,如支持向量机(SVM), AdaBoost来理解一个对象是否在图像中

2、定位:通过边界框来区分对象图像,显示对象是否在图像中(分类)

3、检测:精确检测物体所在的位置(物体定位)和它们所属的组(物体分类)的过程。

下图显示了目标检测模型的结构。像人工智能中的所有算法一样,它从输入层开始(输入一个图像),目标检测的两个主要部分是Backbone和Head。Backbone的作用是提取特征,提供输入的特征映射表示,一般都会使用ImageNet上的预训练模型。Head基于特征进行训练,预测图像中物体的类别及其边界框。

在两阶段目标检测模型中, Faster R-CNN (Region-based Convolutional Neural Networks),使用区域建议网络在第一阶段和第二阶段生成和选择感兴趣区域,并将区域建议向下发送并使用卷积神经网络进行目标分类和边界框回归。两阶段检测器模型具有最高的准确率,但通常较慢,因为必须对每个选定区域进行预测。因此很难将其用作实时对象检测器。

单阶段目标检测器,本文的YOLO(You Only Look Once),通过创建输入图像的特征图、学习类别概率和整个图像的边界框坐标,将目标识别视为一个简单的回归问题。算法只运行一次。这样的模型虽然准确率稍微有所下降,但比两阶段目标检测器快得多,通常用于实时目标检测任务。

YOLO Version 1; 统一的实时目标检测框架

YOLO 是一个简单的且不复杂的对象检测模型,它对图片进行分析只需要“看一眼”,就可以预测目标对象及其在输入图片上的位置。该算法将目标检测定义为单个回归问题。将每个给定的图像划分为一个 S * S 网格系统,该网格系统是图像的子集或一部分,每个网格通过预测网格内对象的边界框数量来识别对象。

YOLO 执行一个神经卷积网络来识别网格中的对象,预测对象周围的边界框以及它们属于哪个类别的概率。概率被用作置信水平。卷积网络的初始层从图像中提取特征,全连接层预测概率。YOLO 工作流程如下图所示:

ee0ceb5c-4286-11ed-96c9-dac502259ad0.png

为了识别图像中的不同对象及其位置,使用多尺度滑动窗口扫描整个图像,因为对象可以在图像的每个部分以不同的大小显示。提取滑动窗口的最佳大小和数量是很重要的,而且这是计算密集型的因为不同数量的候选或不相关的候选会影响结果。通过这种方式YOLO可以与传统算法相媲美,并且速度更快。这些步骤的示例如下图所示。

ee35c540-4286-11ed-96c9-dac502259ad0.png

YOLO V1的优势:可以高速实时检测物,能够理解广义对象表示,模型也不太复杂。

YOLO V1 的局限性:如果小对象以集群或组的形式出现,则模型效果,例如下图所示

ee93062e-4286-11ed-96c9-dac502259ad0.png

YOLO V1 训练是基于损失函数来展示检测性能的,而损失函数没有考虑窗口的大小,大框中的小错误是显而易见的,但其实小框中的错误其实应该更加被关注,因为他对交并比的影响更大,交并比是一种评估指标,用于衡量数据集上对象检测器模型的准确性 [6]。

YOLO Version 2;YOLO9000:更快,更好,更强

对象检测模型应该快速、准确,并且可以识别各种对象类别。基于这个想法YOLO V2 出现了,与 YOLO V1 相比,在速度、准确性和检测大量物体的能力方面有各种改进。这个新版本训练了 9000 个新类别,所以被称作 YOLO9000。它将不同的数据集 ImageNet 和 COCO 结合起来,以提供更大量的分类数据,扩大检测模型的范围,并提高召回率 。COCO 用于目标检测,包含 80 个类别的 100,000 张图像。

YOLO V2 结构中使用Softmax 为每个边界框提供客观性分数。Softmax为每一类多类分类任务分配一个在0到1之间的十进制概率,在YOLO V2中,它也为图像中的对象提供了多类分类的可能性。召回率则衡量正确检测到真值对象的概率。YOLO V2 在分类和检测数据集上联合训练。该方法对图像进行标记以进行检测,识别边界框和对常见对象进行分类。还是用仅具有类标签的图像用于扩展算法可以检测的类别。YOLO V2 中一个有趣的点,除了试图提供更好和准确的结果外,还提供了一个比 YOLO V1 更简单的模型。

eece8820-4286-11ed-96c9-dac502259ad0.png

上表中看到,V2中增加了BN的操作。通过BN层对来自前一层的输入执行标准化和规范化,将输入值缩放转换。在Yolo V2中,Yolo V1的所有卷积层上添加BN,从而在Yolo V2中获得2%以上的精度提升。BN还有助于稳定训练,加速收敛,并在不过度拟合的情况下从模型中去除dropout。另一种提高准确率的技术是使用更高分辨率的输入,将输入尺寸从224*224更改为448*448,这将提高4%的MAP(平均平均精度)。

YOLO Version 3;小改进,大提升

eef53cae-4286-11ed-96c9-dac502259ad0.png

在YOLO V3[9]中,只对YOLO的设计添加了一些更改,从而实现了更准确、更好和更快的设计。在预测边界的新结构中,继续使用V2的结构,但是增加了逻辑回归用于预测每个边界框的得分。当一个边界框在与真实对象重叠之预测结果比任何其他边界框都多时,预测结果就为 1。当边界框不是最佳但与真实对象重叠超过阈值时,预测则被忽略,并且还引入了Faster R -CNN的方法,在 YOLO V3 中将优先只考虑一个边界框。

下图显示了YOLO V3 上的性能对比

ef3b0f22-4286-11ed-96c9-dac502259ad0.png

下图则对 YOLO v2 与 V3 的比较。很在 YOLO V3 中可以检测到一些较小的对象,而 V2 无法检测到。

ef58fe24-4286-11ed-96c9-dac502259ad0.png

除了准确性和比较之外,Redmon 和 Farhadi 在他们的论文中提到的重要一点是道德和计算机视觉的使用。由于军事研究小组非常关注这一领域,他们希望人们使用他们的新技术不是为了杀人,而是为了让别人快乐,让他们的生活更美好。这是论文中的原话:

we have a responsibility to at least consider the harm our work might be doing and think of ways to mitigate it. We owe the world that much.

这也是 Joseph Redmon 退出目标检测领域研究的原因,有兴趣的可以去搜下他TED的演讲。

YOLO Version 4;最佳速度和准确性

目标检测研究的重点是改进在该领域执行的模型的速度。随着时间的推移,YOLO 的应用在全球范围内不断增长,研究领域也增加了许多新的变化,在卷积神经网络 (CNN) 中,一些想法可以提高模型的准确性。YOLO V4 的主要目标是开发一种速度更快的目标检测器,并且具有易于训练和使用的并行计算能力。通过添加和组合一些新功能,例如加权残差连接 (WRC)、跨阶段部分连接 (CSP)、跨小批量标准化 (CmBN)、自我对抗训练 (SAT)、Mish激活函数、Mosaic 数据增强、DropBlock 正则化和 CIoU 损失等等,在 YOLO V4中实现了更好更快的模型。YOLO V4 讨论的一个重要主题是一个实时传统神经网络模型,该模型只需要传统 GPU 进行训练,从而为使用一般 GPU 的任何人提供训练、测试、实现实时、高质量的可能性,以及令人信服的目标检测模型。

下面是 YOLO V4 。这个新版本速度更快,并且表现出可比的性能。

在 YOLO V4 中,Alexey Bochkovskiy 等人总结了他们的主要贡献:

开发了一个高效而强大的目标检测模型,这使得每个使用 1080 Ti 或 2080 Ti GPU 的人都可以训练和测试一个超快速、实时、准确的目标检测模型。

他们在训练期间验证了最先进的 Bag-of-Freebies 和 Bag-of-Specials 检测方法的影响。

修改了state-of-the-art的方法,包括(Cross-iteration batch normalization)、PAN(Path aggregation network)等,使它们更高效,更适合单GPU训练。

总结

如果你查看 YOLO 的结构、源代码和包,就会发现它们结构良好、文档齐全且免费使用。

审核编辑:郭婷

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

    关注

    19

    文章

    7764

    浏览量

    92690
  • 人工智能
    +关注

    关注

    1813

    文章

    49746

    浏览量

    261603

原文标题:目标检测YOLO系列算法的进化史

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    充电桩上液晶显示应用发展过程

    随着新能源汽车大规模普及,充电桩的缺口越来越大,特别是可以实现快速充电充电桩站越来越多,对于显示的需求也越来越不一样,纵观充电桩显示的迭代的整个过程,刚开始,国内的直流桩大部分以国网为主体发展
    发表于 10-09 09:37

    YOLO + OpenPLC + ARMxy:工业智能化视觉识别、边缘计算、工业控制的“三位一体”解决方案

    深圳市钡铼技术有限公司推出 ARMxy 系列工业计算机,结合 YOLO 目标检测算法与 OpenPLC 开源控制平台,实现工业现场视觉识别、边缘计算与自动化控制一体化。广泛应用于产线缺
    的头像 发表于 09-11 16:00 561次阅读
    <b class='flag-5'>YOLO</b> + OpenPLC + ARMxy:工业智能化视觉识别、边缘计算、工业控制的“三位一体”解决方案

    【机器视觉】睿擎平台支持NCNN AI 推理框架,轻松实现实时目标检测( 睿擎线下 Workshop 报名已开启)|产品动

    RT-Thread系统上深度集成NCNN推理框架,通过其轻量化架构与硬件级优化能力,结合YOLO系列算法的高效单阶段检测特性,实现了工业场景下的目标
    的头像 发表于 08-20 17:40 4830次阅读
    【机器视觉】睿擎平台支持NCNN AI 推理框架,轻松实现实时<b class='flag-5'>目标</b><b class='flag-5'>检测</b>( 睿擎线下 Workshop 报名已开启)|产品动

    RK3576 Yolov11训练部署教程

    、使用最广泛的YOLO变体。YOLO11将延续YOLO系列的传奇。本教程针对目标检测算法
    的头像 发表于 07-25 15:22 818次阅读
    RK3576 Yolov11训练部署教程

    RK3576 yolo11-seg训练部署教程

    和分割头设计,实现了像素级的精确目标检测与分割,适用于自动驾驶、医学影像、工业检测等对精度和速度要求苛刻的场景。本教程针对目标分割算法yol
    的头像 发表于 07-25 15:21 1268次阅读
    RK3576 <b class='flag-5'>yolo</b>11-seg训练部署教程

    基于RK3576开发板的yolov11-track多目标跟踪部署教程

    1.yolov11_track简介(多目标跟踪算法)YOLO11是UltralyticsYOLO系列实时物体检测器的最新版本,重新定义了在尖
    的头像 发表于 07-25 15:21 1281次阅读
    基于RK3576开发板的yolov11-track多<b class='flag-5'>目标</b>跟踪部署教程

    如何在树莓派 AI HAT+上进行YOLO姿态估计?

    YOLO目标检测?如何在树莓派AIHAT+上进行YOLO姿态估计?今天是第四部分:如何在树莓派AIHAT+上进行YOLO姿态估计?如果大家
    的头像 发表于 07-20 20:34 617次阅读
    如何在树莓派 AI HAT+上进行<b class='flag-5'>YOLO</b>姿态估计?

    如何在树莓派 AI HAT+上进行YOLO目标检测

    YOLO目标检测?如何在树莓派AIHAT+上进行YOLO姿态估计?今天是第三部分:如何在树莓派AIHAT+上进行YOLO
    的头像 发表于 07-19 08:34 1208次阅读
    如何在树莓派 AI HAT+上进行<b class='flag-5'>YOLO</b><b class='flag-5'>目标</b><b class='flag-5'>检测</b>?

    K230在同时使用H265编码与yolo进行检测时出现错误怎么解决?

    1、单独使用H265编码时或者yolo检测没有问题 2.一旦将二者结合,因为H265编码时YUV格式,所以我另外开了一个RGB平面格式来运行yolo推理 3.报错信息显示:两者的空间会冲突然后导致
    发表于 07-11 08:15

    YOLOv8水果检测示例代码换成640输入图像出现目标框绘制错误的原因 ?

    官网中的YOLOv8 水果检测关于图片推理的示例源代码: from libs.YOLO import YOLOv8 import os,sys,gc import ulab.numpy as np
    发表于 06-18 06:37

    k210在线训练的算法yolo5吗?

    k210在线训练的算法yolo5吗
    发表于 06-16 08:25

    labview调用yolo目标检测、分割、分类、obb

    labview调用yolo目标检测、分割、分类、obb、pose深度学习,支持CPU和GPU推理,32/64位labview均可使用。 (yolov5~yolov12)
    发表于 03-31 16:28

    轩辕智驾红外目标检测算法在汽车领域的应用

    在 AI 技术蓬勃发展的当下,目标检测算法取得了重大突破,其中红外目标检测算法更是在汽车行业掀起了波澜壮阔的变革,从根本上重塑着汽车的安全性
    的头像 发表于 03-27 15:55 747次阅读

    睿创微纳推出新一代目标检测算法

    随着AI技术的发展目标检测算法也迎来重大突破。睿创微纳作为热成像领军者,凭借深厚的技术积累与创新能力,结合AI技术推出新一代目标检测算法
    的头像 发表于 03-20 13:49 802次阅读

    使用Yolo-v3-TF运行OpenVINO™对象检测Python演示时的结果不准确的原因?

    通过模型下载器下载了 yolo-v3-tf: ./downloader.py --name yolo-v3-tf 通过模型 优化器转换模型: python3 ./model_optimizer
    发表于 03-06 06:31