常用目标检测算法介绍

news2024/11/17 15:55:55

目录

1. 常用目标检测算法

2. R-CNN 模型

3. Fast R-CNN 模型

4. Faster R-CNN 模型

5. SSD 模型


1. 常用目标检测算法

        在深度学习框架下,目标检测方法通常涉及图像定位和分类两个关键方面。有两种主要的解决方法:一种是一阶(one-stage)回归型目标检测算法,其中以YOLO系列算法为代表,它主要通过对输入图像进行定位回归和目标检测,最终输出目标的类别信息。另一种是二阶(two-stage)目标检测算法,以Faster R-CNN系列为代表,该方法分为两个步骤:目标候选框提取和目标识别,最终生成目标检测结果。

2. R-CNN 模型

        传统的目标检测方法采用滑动窗口的方式逐一扫描图像中的各个区域进行检测,然而这种方法导致了检测速度的显著下降,并可能出现因多次扫描同一目标区域而降低检测准确性,甚至导致检测失败。因此,实现有效、快速和准确的目标检测是改进目标检测算法的首要任务。

        J.R.R.Uijlings 在2012年提出的selective search方法实际上是建立在基于图像分割原理的图像分割算法基础上的。该方法首先将原始输入图像分割成多个区域,经过一系列结果筛选和分类的步骤,确定目标对象在原始图像中的位置,并收缩候选的目标区域。同时,神经网络会对这些缩小后的2000个候选区域进行逐一评估,选择匹配度最高的两个区域并将它们合并为同一集合。这个过程不断迭代,直到筛选完所有区域,最终得到图像的分割结果,用以确定目标对象的位置。这种方法大大降低了计算复杂度,为早期的深度学习目标检测算法的发展铺平了道路,尤其是R-CNN算法的应用,将初始框和卷积神经网络结合在一起,标志着目标检测领域取得了重大突破。 R-CNN 算法的流程图如图1所示。

                         ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​         1 R-CNN 流程图

        CNN算法的流程首先将输入图像分割成多个不同的区域,将每个区域视为独立的子图像。随后,根据目标特征将具有相关特征的子图像进行匹配和合并,这一过程不断迭代,直到组合成更大的候选框。这种方法解决了传统目标检测算法使用滑动窗口进行重复扫描的问题,极大地提高了检测速度和准确性。实验证明,R-CNN在不同场景下表现出出色的适应性和鲁棒性。此外,该算法中的线性回归模型用于校准目标的候选框,从而减少了其他无关因素对检测结果的影响,进一步提高了目标检测的准确性。

3. Fast R-CNN 模型

        Fast R-CNN算法在处理候选区域的特征提取方面采用卷积网络,与R-CNN不同的是,Fast R-CNN利用SPP算法的原理,只需一次特征提取,从而解决了繁琐的计算步骤和冗余计算问题。Fast R-CNN模型如下图2所示:

                                                        图 2 Fast R-CNN 模型 

        Fast R-CNN使用卷积神经网络模型来提取图像特征,并在筛选和合并后生成各类别的多个候选框。然后,所有这些目标候选框被传递到池化层,以进行特征筛选,最终经过全连接层输出分类结果。与R-CNN不同,Fast R-CNN的RoI(感兴趣区域)池化层是一个简化的SPP(空间金字塔池化)层。卷积后得到的特征图上的每个像素点实际上与原始图像的相应区域一一对应。对于图像中的不同候选区域,我们可以通过确定其左上角和右下角的坐标位置,将其映射到特征图上,以获取与该候选区域相关的特征。

        Fast R-CNN相较于R-CNN有效缩短了训练时间,实现了更加统一和规范化的网络训练,提高了训练速度和准确性,整体性能优于R-CNN。实验结果分析表明,Fast R-CNN在不同光照条件下表现出良好的识别准确性和鲁棒性。然而,Fast R-CNN仍然使用Selective Search方法来提取候选区域的特征,这会导致较长的计算时间。例如,生成整个框架需要大约两秒的时间,这对于需要实时性目标检测的应用,如道路检测或空中飞行物检测,可能不是最佳选择。

4. Faster R-CNN 模型

        尽管Fast R-CNN模型在目标检测性能方面取得显著进展,但其存在选择性搜索问题,这导致目标检测效率较低,需要花费时间在许多目标特征不明显的区域上,可能出现遗漏和误检。此外,Fast R-CNN需要在训练过程中不断调整参数以提高性能,这些限制了其实际应用。因此,Faster R-CNN方法由任少卿等人提出来解决这些问题。

        Faster R-CNN算法在Fast R-CNN算法的基础上创新性地引入了区域生成网络(RPN),以替代传统的选择性搜索方法,从而提高了神经网络的特征训练效率。Faster R-CNN采用了端到端的两阶段方法,充分利用了卷积神经网络的共享计算,从而在一定程度上提高了目标特征的训练效率,大大提升了整个算法模型的检测效率。该算法的结构如图3所示:

         ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​            3 Faster R-CNN 算法结构

        由于特征图经过池化层后的尺寸大幅减小,RPN网络在特征图上的计算量和移动次数都大幅降低。此外,RPN网络与RoI Pooling模块共享了基础网络,这简化了计算过程中的各种参数,减少了不必要的计算,因此网络的计算速度有了显著提升。由于RPN网络能够在高维空间中生成候选框,因此网络能够获得更高维度的特征信息,使生成的候选区域更接近真实值,从而提高了Faster R-CNN算法的检测效率。RPN的结构如下图4所示:

   图 4 RPN 结构

5. SSD 模型

        2016年,Wei Liu等研究人员提出了一种名为SSD的目标检测算法,通常用于检测目标物体。SSD算法对VGG16进行了改进,将网络的FC6和FC7层替换成两个卷积层,并在其后添加了三个逐渐减小尺寸的卷积层和一个平均池化层。最终,该算法将特征提取的结果传递到损失层。SSD算法利用多个卷积层的特征图进行偏移和置信度的预测,从而增加了检测过程中的语义信息。这使得它在不同尺度的物体检测方面表现出良好的效果。下图显示了该算法的网络结构(如图5所示)。

         ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​           5 SSD 网络结构

        SSD算法的网络结构对VGG进行了改进,它引入了辅助网络层,用于融合多尺度卷积网络的预测结果。采用了与默认边界框(Anchor)类似的方法,对不同尺寸的目标对象进行处理,以提高训练和预测的准确性。SSD算法提供了一个完整的端到端训练网络,相比Faster R-CNN模型,更便于数据传输和网络计算。此外,对于尺寸较小的输入图像,SSD算法在目标检测方面表现更出色。然而,它在小目标和相邻目标的检测上存在一些不足,甚至在复杂背景下的目标检测结果可能不如人意。

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

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

相关文章

【JAVA进阶篇教学】第十一篇:Java中ReentrantLock锁讲解

博主打算从0-1讲解下java进阶篇教学,今天教学第十篇:Java中ReentrantLock锁讲解。 在Java并发编程中,保证多线程环境下的数据安全是至关重要的。ReentrantLock 是Java中用于实现线程安全的一种锁机制。本篇博客将深入介绍 ReentrantLock 的原…

商场超市会员日活动怎么群发短信营销

商场超市会员日活动怎么群发短信营销 短信营销的优势 短信营销是一种直接有效的市场推广方式,它具有以下优势: 高开放率:相比于其他营销方式,具有较高的开放率,因为手机用户几乎每天都会查看。 即时性:群…

[单片机课设]十字路口交通灯的设计

题目要求: 模拟交通灯运行情况。南北绿灯亮30秒,南北黄灯亮3秒,东西红灯亮33秒;南北红灯亮33秒,东西绿灯亮30秒,东西黄灯亮3秒;要求数码管同步显示时间的倒计时,用定时器实现延时。…

DELL EMC unity存储系统如何初始化

在客户的存储使用过程中,经常会碰到一些场景需要对存储系统做重新初始化,就是回到出厂时候的配置。比如,客户设备要利旧,二次使用,一般都要回到出厂状态做重新配置的动作。存储严重故障,没有能力修复或者数…

Python AI库pandas读写数据库的应用操作——以sqlite3为例

Python AI库pandas读写数据库的应用操作——以sqlite3为例 本文默认读者具备以下技能: 熟悉python基础知识,vscode或其它编辑工具 已阅读Pandas基础操作文章,了解pandas常见操作 具备自主扩展学习能力 在数据分析和人工智能领域,pandas库和s…

用得助全媒体呼叫中心,让AI落到实处帮品牌做营销

怎么让人工智能落到实处的帮助到我们?我们今天来讲讲中关村科金得助全媒体呼叫中心是怎么让AI帮品牌。 这次聊的案例是知名的护肤品牌,该品牌在中国功能性护肤品市场占有率达到20.5%,这么高的市场占有率客户的咨询量也是非常庞大的&#xff0…

基于C++基础的函数模块

在C中,函数是一段封装了某种功能的代码块,可以在程序的不同地方重复使用。函数定义包含如下组成部分: 函数头:函数头包括函数返回类型、函数名和参数列表。函数返回类型规定了函数返回的数据类型,函数名是函数的唯一标…

【Git】Git在Gitee上的基本操作指南

文章目录 1. 查看 git 版本2. 从Gitee克隆仓库:3. 复制文件到工作目录:4. 将未跟踪的文件添加到暂存区:5. 在本地提交更改:6. 将更改推送到远程仓库(Gitee):7. Windows特定提示: 1. …

中仕公考:你的专业在事业编招聘中适合报哪些岗位?

英语专业适合岗位:对外翻译、办公室行政助理、办公室秘书、文化和旅游厅、知识产权局对外纠纷、英语教师等部门 艺术设计适合岗位:电视台、艺术馆、美术馆、博物馆、建筑、市政规划、群艺馆、公共事业管理、水利厅等部门 计算机专业适合岗位:图书馆、气象部门、信息化中心、测…

python代码自动生成器原理 python 生成器原理

python生成器原理剖析 函数的调用满足“后进先出”的原则,也就是说,最后被调用的函数应该第一个返回,函数的递归调用就是一个经典的例子。显然,内存中以“后进先出”"方式处理数据的栈段是最适合用于实现函数调用的载体&…

TMS320F28335学习笔记-时钟系统

第一次使用38225使用了普中的clocksystem例程进行编译,总是编译失败。 问题一:提示找不到文件 因为工程的头文件路径没有包含,下图的路径需要添加自己电脑的路径。 问题二 找不到库文件 例程种的header文件夹和common文件夹不知道从何而来…

Windows下,基于Gradle用Docker发布自己的程序

方案1: windows下打包程序,然后,上传到linux下,生成docker镜像,然后执行。 首先: 由于是采用Gradle管理的项目,打包的时候需要执行build任务。执行完成后,再build\libs目录下应该…

Unity Editor 找物体助手

找啊找朋友~ 🍱功能介绍🥙使用方法 🍱功能介绍 💡输入相关字符串,它会帮你找到名称中带有该字符串的所有物体,还会找包含该字符串的Text、TextMeshProUGUI。 🥙使用方法 💡导入插…

【WEB前端2024】开源智体世界:乔布斯3D纪念馆-第17课-跳转用户主页

【WEB前端2024】开源智体世界:乔布斯3D纪念馆-第17课-跳转用户主页 使用dtns.network德塔世界(开源的智体世界引擎),策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎…

45天拿下HCIE!誉天云计算 HCIE 3.0 最新通关攻略来啦!

大家好,我是誉天云计算的黄同学。历经4个半月,我成功拿下了自己的云计算HCIE证书。 从学习到备考,再到通过考试拿下证书,这整个过程中我看到了很多,也学到了很多,技术知识和思维能力都受益匪浅。以下是我在…

人工智能_大模型050_模型微调010_模型数据_模型WEB界面代码记录---人工智能工作笔记0185

上面我们把chatglm3的训练代码,和llama2的训练代码,都记录了,然后,再就是: web_demo的代码我们记录一下,然后,我们就继续说下面的内容.至于data目录中的内容,都是一些训练数据,我会 放到资源中,提供下载,这里就不贴出来了,太大了. E:\2024\人工智能\fine-tuning-lab\fine-tun…

RAC GCS_SERVER_PROCESSES参数

参考文档: GCS_SERVER_PROCESSES (oracle.com) 在awr报告中,看到addm建议如下: 其中有Global Cache Messaging和 Global Cache Congestion Activity During the Analysis Period ----------------------------------- Total database tim…

一键接入电商API数据接口1688API通过商品ID、URL采集商品详情页实时数据API接入指南

要一键接入1688电商API数据接口,并通过商品ID或URL采集商品详情页的实时数据,您可以按照以下步骤操作: 注册账号:您需要注册API账号获取必要的API凭证,如Api Key和Api Secret。选择API:根据您的需求&#…

C++学习笔记——对仿函数的理解

文章目录 思维导图仿函数出现的逻辑仿函数使用上的巧妙 仿函数的本质仿函数的优势仿函数语法的巧妙 思维导图 仿函数出现的逻辑 我们在学习stack时会遇到一些新的问题,这些问题需要我们使用非类型模板参数去解决,即我们需要在设计类时需要有一个途径去快…

【MySQL】——函数、存储过程、触发器

💻博主现有专栏: C51单片机(STC89C516),c语言,c,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux&#xf…