目标检测实战教程Day1(原创)

news2024/10/9 12:13:06

原创不易,转载请标明本文地址
目标检测一直是计算机视觉领域的核心问题之一,它就像是让计算机拥有了一双“鹰眼”,能在复杂的图像中迅速锁定和识别出各种有趣的目标,比如人、汽车、动物或者任何其他特定物体。在这一章,将会介绍并实际部署目标检测。
本章主要涉及到的知识点有:

  • 目标检测概念:介绍目标检测的发展历史和基本概念,包括它的技术演变、关键算法以及在各种实际应用中的应用。
  • 目标检测模型的分类:了解两类目标检测模型,理解它们的区别和实际应用。
    目标检测中的YOLO模型深入解析:全面掌握YOLO模型的结构、工作原理以及如何在实际情况中高效应用。
  • 模型部署:从环境部署开始,理解并学会搭建属于自己的YOLO模型,训练自己的数据集,并将结果应用到日常生活中。

一、目标检测技术概述

本节将从目标检测的重要性与应用出发,详尽地介绍目标检测的核心原理与方法,目的是帮助读者了解目标检测的工作机制和实现技术。通过本节的学习,读者将能够掌握目标检测的基本分类与关键概念,为后续模型的实际部署做准备。

1.1 目标检测的重要性与应用

目标检测,也称为目标提取,属于计算机视觉的四大核心任务之一,包括分类、定位、检测和分割。这项技术通过分析目标的几何和统计特征,实现图像的有效分割和识别。简单地说,目标检测的任务是确定图像中包含哪些元素以及这些元素的具体位置,通常通过矩形框或者分割曲线来标记这些元素,如图1所示。

图1
-------------------------------------------------------------------------------图1------------------------------------------------------------------------------
目标检测的大致发展如表1所示。这些方法依靠简单的特征提取和模式识别技术来识别图像中的物体。虽然这些技术在处理低复杂度图像时表现良好,但在更复杂的实际场景中却效果有限,因为它们无法处理物体多尺度的变化和各种程度上的遮挡,因此目标检测技术在当时只是实验室的研究产物,距离实现生产生活中的实际应用仍有鸿沟。

年份研究人员主要贡献描述
1970s早期目标检测方法基于传统图像处理方法,如边缘检测和区域生长,使用手工特征进行图像特征表示。
2001保罗·维奥拉(Paul Viola) & 迈克尔·琼斯(Michael Jones)Viola-Jones 检测器提出了一个基于简单特征的增强级联分类器,在保持相同检测精度的情况下,运算速度显著优于当时的其他算法。
2005N. Dalal & B. Triggs方向梯度直方图(HOG)特征描述器在图像的局部区域内统计梯度方向的出现频率。将图像分割成小的单元(cells),每个单元内的梯度方向被统计并放入直方图中。为了提高鲁棒性,通常将相邻单元组成更大的块(blocks)并进行局部归一化处理。
2008Pedro Felzenszwalb可变形部件模型(DPM)扩展了HOG检测器,提出了一种基于部件的对象检测模型,不仅考虑对象的整体特征,还考虑其局部部件的形态和相对位置,能够处理部件间的变形,提高在物体部分遮挡或姿态变化情况下的检测效果。
后续发展Ross Girshick 等研究者DPM 的改进与深度学习整合提高了DPM的训练和检测速度,通过整合深度学习技术,进一步提升了检测的精度和鲁棒性,增强了其在计算机视觉领域的应用效果。

随着硬件技术的快速发展和深度学习技术的飞速进步,目标检测的准确性已显著提高,并且在复杂环境中的表现已大大超越了早期的传统方法,越来越多的学者致力于研究更高效更准确的目标算法,并将其从高成本的高算力平台移植并部署在资源受限的边缘设备,服务在我们生活中的方方面面,如图2中所示,在工业自动化领域,它助力机器人识别并操作物体;在安全监控系统中,它能自动侦测潜在的威胁或不寻常行为;而在自动驾驶领域,目标检测是确保车辆正确感知周边环境并安全行驶的关键技术。除此之外,从医疗影像分析到线下智能零售,再到智能手机等边缘设备的智能识别,目标检测技术都展现了其广泛的应用潜力和实际价值。

--------------------------------------------------(a)--------------------------------------------------------------------------------------(b)------------------------------------------
--------------------------------------------------(c)--------------------------------------------------------------------------------------(d)------------------------------------------

图2(a)为应用于机器人的目标检测 (b)为在自动驾驶领域的应用(c)为癌症病灶分割(d)为智能零售概念图

1.2 基于回归的单阶段( One-stage) 目标检测模型

目前的目标检测模型主要有两大类,一类是基于候选区域的双阶段(Two-stage)目标检测模型,另一类是基于回归的单阶段(One-stage) 目标检测模型。单阶段目标检测算法中,常见的模型包括YOLO、SSD和Faster R-CNN等。尤其是YOLO(You Only Look Once)系列算法,以其高效的准确率和便捷的部署方式,在工业界广受青睐。下面我们将以YOLO为例,详细介绍单阶段目标检测算法的核心特性。
与传统的目标检测方法(如基于滑动窗口的方法)不同,YOLO将整个图像分割成一个SxS的网格。每个网格单元负责预测中心点落在该单元内的目标。每个网格负责预测B个包含类别、边界框相对坐标和置信度的One-hot向量,使得算法能够有效地在图像中检测并识别目标物体。如图3所示,为YOLO第一代版本YOLOv1的架构图,这是一种用于目标检测的深度神经网络。从输入到输出,从左到右围为各种类型的层——包括卷积层(Conv. Layer)、最大池化层(Maxpool Layer)和全连接层(Conn. Layer)。这个网络通过多次卷积和池化处理图像,逐步降低空间维度,同时增加深度,以此来提取图像的特征,最终通过全连接层输出目标的类别和位置。为了应对图像中目标尺度的多样性,YOLOv3引入了特征金字塔网络(FPN)机制。该机制通过在Darknet53-tiny基础网络上加入多级下采样和上采样层,产生三种不同分辨率的特征图,分别对应大、中、小尺度的目标。最高分辨率的特征图侧重于小目标的检测,而较低分辨率的特征图则更适合大目标的检测,从而提升了整体的检测精度和效率。考虑到原始图像到网格的映射会大幅降低分辨率,而且目标检测和识别主要在网格单元上进行,这种设计显著减少了计算量。然而,这也可能导致同一目标被多个网格单元重复预测,进而产生多个重叠的预测框。为解决这一问题,YOLO采用了非最大抑制(NMS)技术。NMS的工作原理是:首先根据预测框的置信度进行降序排列,选取置信度最高的框作为参考框,然后移除所有与此参考框交并比(IoU)超过特定阈值的框。接着从剩余的框中选取置信度最高的作为新的参考框,重复此过程,直到所有框都处理完毕。 图4(a) 是人脸检测的候选框结果,每个边界框有一个置信度得分(confidence score),如果不使用非极大值抑制,就会有多个候选框出现。 图4(b)是使用非极大值抑制之后的结果,删除了多余的检测框,使检测结果更加符合实际需要。

在这里插入图片描述
图3 YOLOv1的架构图

在这里插入图片描述
--------------------------------------------------------------------------------图4--------------------------------------------------------------------------

此外,为进一步优化YOLO算法,可以考虑多模型融合的思想,结合多个不同配置或版本的YOLO模型来进行多模型融合集成判断。这种方法可以在一定程度上集成不同模型的优势,增强目标检测的鲁棒性和准确性。例如,可以将YOLOv3与YOLOv4的检测结果进行融合,利用YOLOv4在速度和精度上的优势,与YOLOv3在特定场景下的优异表现相结合,以期达到更好的检测效果。
YOLOv5是Ultralytics团队在2020年推出的一个升级版本,相较于以往的模型在处理速度和检测精度方面都实现了显著提升。该模型结构更为轻量,整合了多种规模的卷积层与池化层来有效提取图像特征。YOLOv5的架构主要分为三大部分:骨干网络、颈部网络和预测端。骨干网络主要由卷积层、C3模块和SPPF模块构成,用于初步提取图像特征。颈部网络融合了FPN和PAN的结构,其中FPN负责将深层的高级特征向浅层传递,而PAN则增强了自底向上的信息流,改善了特征的空间定位能力。在预测端,模型输出三种不同分辨率的特征图(80×80、40×40、20×20),分别对应小型、中型和大型目标的检测。这种设计使得YOLOv5能够更精确地处理不同大小的目标。
YOLOv8 是由 Ultralytics 公司开发的最新一代目标检测模型,于 2023 年 1 月正式发布。它继承了 YOLO 系列模型的核心优势,并加入了多种创新特性和改进。YOLOv8 根据网络深度和宽度的不同分为不同的版本,包括 YOLOv8n、YOLOv8s、YOLOv8m、YOLOv8 和 YOLOv8x,这些版本的网络结构基本相同,唯一的区别在于它们的深度和宽度,以满足不同任务和性能要求,使得用户可以根据自己的具体用例找到合适的模型,如图5所示,为YOLOv8的架构图。、

在这里插入图片描述
--------------------------------------------------------------------------------图5--------------------------------------------------------------------------
YOLOv9是由Chien-Yao Wang、I-Hau Yeh和Hong-Yuan Mark Liao共同提出的新一代目标检测系统,它引入了一种新的网络架构——广义高效层聚合网络(GELAN),结合了高效的层聚合模块和计算模块。此架构优化了模型的深度和宽度,以最大限度地提高精确度同时减少计算需求。GELAN的设计是模块化的,允许其在不同的模型大小和计算限制中有效地扩展。另外,它还引入了了可编程梯度信息(PGI)模块,增强了训练过程,通过确保更可靠的学习梯度。这极大提高了小型模型的训练精度,因为小型模型常常受到噪声或不可靠梯度的困扰,这会影响训练效率和模型收敛。因此,在性能上,YOLOv9上表现出色,显著超过了如YOLOv5等之前的版本,无论是在精确度还是效率上都有所提升。它在如MS COCO数据集这样的基准测试上取得了更高的平均精度,同时使用更少的参数和计算资源。例如,与YOLOv8相比,YOLOv9模型在平均精度上提高了至多1.7%,并且同时减少了参数数量和计算开销。
在这里插入图片描述

--------------------------------------------------------------------------------图6--------------------------------------------------------------------------
YOLOv10是YOLO系列的最新迭代版本,在实时目标检测领域实现了显著的性能提升。此版本通过引入多项创新技术,有效提高了检测速度和准确性,同时显著降低了计算成本。在架构创新和训练策略方面,YOLOv10采用了双标签分配策略,结合一对多和一对一的标签分配,提供了丰富的监督信号,并允许在不使用非最大抑制(NMS)的情况下实现端到端的部署,极大地提高了推断阶段的效率。为了平衡模型性能与计算效率,YOLOv10引入了轻量级的分类头部和空间-通道解耦的下采样技术,以及基于层级的块设计,优化了模型在各种尺度上的表现,特别是在小物体检测方面表现出色。如图7所示,在多个标准基准测试中,YOLOv10展现出比前几代YOLO版本和其他先进模型更高的效率和精确度,尤其在延迟和参数数量方面均显示出显著改进,同时在保持或提升检测性能的基础上,大幅提升了推理速度。

在这里插入图片描述

-----------------------------------------------------------图7 YOLOv10和其它模型的对比--------------------------------------------------------------------------

注意:YOLO系列模型是单阶段目标检测算法模型的一个典型代表,因此将重点介绍,以便更好地理解这类模型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2198997.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【汇编语言】寄存器(CPU工作原理)(五)—— 段寄存器以及CS和IP

文章目录 前言1. 段寄存器2. CS 和 IP结语 前言 📌 汇编语言是很多相关课程(如数据结构、操作系统、微机原理)的重要基础。但仅仅从课程的角度出发就太片面了,其实学习汇编语言可以深入理解计算机底层工作原理,提升代码…

产品推介——AC晶体管光耦KL814

KL814产品系列,由苏州晶台光电有限公司研发生产的一款采用交流输入的晶体管光耦。它结合了两个反向并联的红外发射二极管与一个光电晶体管,构成了一个高效且稳定的光电耦合器。 产品特点Product features ◆交流输入响应 ◆电流传输比 (CTR&#xff1…

vs2022调试cmake工程时,添加命令行参数

第一步: 第二步:在launch.vs.json文件里添加 至此可以在调试当前工程时,可以传入命令行参数。

十款超好用的图纸加密软件推荐!2024企业图纸加密最佳选择!

在企业日常工作中,尤其是制造业、建筑业和设计行业,图纸安全至关重要。图纸泄露可能导致专利技术被盗、商业机密外泄,给公司带来不可估量的损失。为了确保图纸的安全性,图纸加密软件是必不可少的工具。以下是2024年十款超好用的图…

Damerau-Levenshtein算法实现中的错误及更正

在实现 Damerau-Levenshtein 算法 时,常见的错误包括边界条件处理不当、转置操作的遗漏或误用、矩阵初始化错误等。Damerau-Levenshtein 算法是 Levenshtein 编辑距离的扩展,它不仅允许插入、删除和替换,还允许 相邻字符的转置。该算法计算两…

明达IO:赋能工业机器人新未来

摘要: 明达技术以其卓越的分布式IO(MR30)与一体式IO(MR20)产品,为工业机器人行业提供了完美的信号交互解决方案。在集群式机器人应用场景中,MR30分布式IO以其稳定性能和自由热插拔功能&#xf…

FPGA学习(4)-时序逻辑电路实现D触发器与计数器,LED灯闪烁

1.实现原理 开发板的频率为50MHz,即一个周期为20ns,实现500ms一次翻转,即计数25_000_000次。每次时钟沿来一次,就计一次。 2. 新建工程 2.1源文件代码 在下面左边的变量值要变的,就用reg。不涉及的缺省;…

自动气象观测系统的工作原理

TH-QC8自动气象观测系统是一种能够自动采集、存储、处理和传输气象数据的系统,它广泛应用于气象监测、农业生产、航空安全、交通运输以及科学研究等领域。以下是对自动气象观测系统的详细介绍: 工作原理 自动气象观测系统的工作原理相对简单但高效。它首…

真心建议大家都去冲一冲AI产品经理,AI真的能帮你实现职场跃迁

你有没有想过: AI不仅能帮你实现工作提效 还能帮你实现职场跃迁! 根据行业报告,近年来AIGC(AI Generated Content) 领域岗位数量井喷式增长,AI大模型产品经理作为连接技术与市场的桥梁,正扮演…

Git的安装配置

目录 一、git和svn的区别是什么 二、下载Git 三、安装 四、使用 一、git和svn的区别是什么 1、git是分布式的,svn是集中的式的 2、git存储数据时是按元数据的方式存储,而svn是按文件的方式存储 3、git分支和svn的分支不一样 4、git没有全局版本号…

认知战认知作战:萨尔浒之战-努尔哈赤认知作战下的明朝崩溃

认知战认知作战:萨尔浒之战-努尔哈赤认知作战下的明朝崩溃 关键词:萨尔浒战役,后金,努尔哈赤,明朝,认知作战,地形误判,舆论战,军事胜利,盟友支持,内部腐败,认知作战,新质生产力,人类命运共同体,认知战,认知域,认知战研究中心,认知战争,认知战战术,认知战…

雨天道路目标检测数据集(黑夜和白天) 3600张 雨天 带标注 voc yolo 7类

雨天道路目标检测数据集 3600张 雨天 带标注 voc yolo 白天 分类名: (图片张数, 标注个数) car :(1134,10528) truck:(394,722) per son:(387,1585) rider: (47, 56) bike:(64,86) bus:(187, 25…

iOS swift5 苹果app审核被拒 1.4.1

文章目录 1.被拒2. 官网1.4.1的规定3.如何解决参考博客 1.被拒 准则1.4.1-安全-人身伤害 该应用程序连接到外部医疗硬件,以提供医疗服务。然而,为了遵守准则1.4.1,您必须: -提供来自适当监管机构的文件,证明应用程序…

【DataSophon】DataSophon1.2.1 整合Zeppelin并配置Hive|Trino|Spark解释器

目录 ​一、Zeppelin简介 二、实现步骤 2.1 Zeppelin包下载 2.2 work配置文件 三、配置常用解释器 3.1配置Hive解释器 3.2 配置trino解释器 3.3 配置Spark解释器 一、Zeppelin简介 Zeppelin是Apache基金会下的一个开源框架,它提供了一个数据可视化的框架&am…

使用java分别输出二叉树的深度遍历和广度遍历

代码功能 这段Java代码定义了一个二叉树,并实现了两种遍历方法:深度优先搜索(DFS)和广度优先搜索(BFS)。通过DFS,代码从根节点开始,优先访问子节点,直至最深的节点&…

气膜体育馆在学校中的应用:创新教育设施的未来—轻空间

随着气膜体育馆的广泛推广,越来越多的学校开始探索其在日常教学和活动中的应用,开创了新的教育模式和学生体验。 提升体能训练与健康教育 气膜体育馆以其卓越的设施条件,为学生的体能训练提供了理想的场所。在这里,专业教练可以为…

理解 ECMAScript 与 JavaScript:标准与实现的区别

文章目录 1.引言 2.ECMAScript 是什么? 3.JavaScript 是什么? 4.ECMAScript 和 JavaScript 的关系 5.ECMAScript 的发展历史 6.JavaScript 的浏览器特性 7.ECMAScript 与 JavaScript 的区别 8.常见误区 9.结语 1.引言 在前端开发的世界中&#…

食品企业为什么要参加第111届深圳秋糖酒会

第111届深圳秋季全国糖酒会将于2024年10月29日至31日在深圳国际会展中心(宝安)隆重举行,展览规模达28万平方米,刷新了秋季糖酒会的历史纪录。如此宏大的规模,不仅彰显了糖酒会的影响力,也预示着本次展会将汇…

利士策分享,节后重启,再启新程

利士策分享,节后重启,再启新程 随着日历翻过最后一页法定节假日的篇章,我们再次回到了熟悉而繁忙的工作岗位上。 那些与家人团聚的温馨时光,那些悠然自得的休闲日子,仿佛还在眼前,却又已悄然远去。 面对这…

【Golang】关于Go语言中的IO操作

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…