目标检测及相关算法介绍

文章目录

  • 目标检测介绍
  • 目标检测算法分类
  • 目标检测算法模型组成
  • 经典目标检测论文

在这里插入图片描述

目标检测介绍

目标检测是计算机视觉领域中的一项重要任务,旨在识别图像或视频中的特定对象的位置并将其与不同类别中的对象进行分类。与图像分类任务不同,目标检测不仅需要识别出图像中的对象,还需要确定这些对象在图像中的准确位置,同时通过矩形边界框(Bounding Box)来表示。在自动驾驶领域,目标检测技术具有重要的应用,帮助自动驾驶系统识别和理解道路上的环境,从而做出适当的驾驶决策。以下是目标检测在自动驾驶领域的一些主要应用:

  • 行人检测: 目标检测可用于识别道路上的行人,包括行人的位置和动态行为。这对于确保行人的安全以及避免与行人的碰撞非常重要。
  • 车辆检测: 自动驾驶车辆需要准确地检测其他车辆的位置、速度和行驶方向,以便在交通中做出正确的驾驶决策,如超车、跟车等。
  • 交通信号灯和标志检测: 目标检测可以帮助车辆识别交通信号灯的状态(红灯、绿灯、黄灯)以及道路上的交通标志,从而调整行驶速度和行为。
  • 道路边缘和障碍物检测: 自动驾驶车辆需要检测道路边缘和障碍物,以保持在正确的车道内并避免与障碍物发生碰撞。
  • 自动驾驶中的人体姿态估计: 目标检测可以用于估计驾驶员或乘客的身体姿态,以便自动驾驶系统可以更好地理解车内的情况。
  • 环境感知和感知预测: 目标检测可以帮助自动驾驶系统感知周围环境中的不同目标,并预测它们的行为和轨迹,以做出相应的驾驶决策。
  • 道路几何检测: 目标检测可以用于检测道路的几何特征,如车道线和路缘石,以提供更准确的定位和导航信息。
  • 自动泊车: 在自动泊车场景中,目标检测可用于检测停车位的位置和大小,以及其他可能的障碍物,以确保安全的泊车过程。

目标检测算法分类

目标检测算法可以有多种划分方法。按照stage个数划分,可以分为:one-stage(一阶段)算法和two-stage(两阶段)算法,按照是否需要预定义anchor划分,也可分为anchor-based和anchor-free。以下是按照stage个数进行划分的案例:

  • one-stage代表算法: RetinaNet、YOLO系列、FCOS、SSD等。

  • two-stage代表算法: R-CNN、SPPNet、Fast R-CNN、Faster R-CNN、Mask R-CNN、Cascade R-CNN、Sparse R-CNN等。

  • 理解: two-stage算法会先①生成一个候选区域(region proposal),然后②利用CNN对每个候选区域进行分类;而one-stage算法则一步到位,直接输出每个候选区域及对应的分类结果。

  • Anchor-Based(基于锚点的方法):Faster R-CNN、YOLO系列、SSD、Cascade R-CNN、RetinaNet

  • Anchor-Free(无锚点方法):CenterNet、FCOS、CornerNet

目标检测算法模型组成

目标检测算法训练阶段的模型主要由以下几个部分组成,分别是:Backbone、Neck、Head、Enhance、BBox Assigner、BBox Sampler、BBox Encoder、 Loss组成。

  • Backbone: Backbone(主干网络)的主要作用是特征提取。常见的Backbone有:ResNet、ResNext、Res2Net、ResNeSt、DarkNet、HRNet、RegNet等。

  • Neck: Neck可以认为是Backbone和Head的连接层,主要负责对Backbone提取的的特征进行高效融合和增强,能够对输入的单尺度或者多尺度特征进行融合、增强输出等。常见的Neck有:FPN、BFP、RFP、PAFPN、NAS_FPN、HRFPN等。

  • Head: 目标检测算法输出一般包括分类(比如:人、汽车等)和框坐标回归(标记"人"的矩形框对应的坐标)两个分支。

  • Enhance: Enhance是即插即用、能够对特征进行增强的模块。常用的Enhance模块有:SPP、ASPP、RFB、Dropout、Dropblock、DCN以及各种注意力模块SeNet、Non_local、CBA等。

  • BBox Assigner: 待更新

  • BBox Sampler: 待更新

  • BBox Encoder: 待更新

  • Loss: Loss(损失)通常分为分类Loss和回归Loss,主要对Head网络输出的预测值和BBox encoder得到的targets进行梯度下降迭代训练。常见的分类Loss有:BCELoss、CELoss、FocalLoss、QualityFocalLoss、VarifocalLoss、GaussianFocalLoss、GHMC、OHEM等;常见的回归Loss有:L1/L2 Loss、SmoothL1Loss、BalancedL1Loss、DistributionFocalLoss、GHMR、IoU/BoundeIoU/GIoU/CIoU Loss等。

  • 训练技巧: 目标检测算法的训练技巧非常多,常说的调参很大一部分工作都是在设置这部分超参。这部分内容比较杂乱,很难做到完全统一,目前主流的tricks有:大batch训练、分布式训练和同步BN、Warm Up、余弦学习率、多尺度训练、模型EMA、知识蒸馏、Label Smoothing、对抗训练、随机权重平均、遗传算法自动超参数搜索等。

  • 图像数据增强: 图像数据增强旨在通过对原始图像进行一系列变换和修改,从而生成更多、多样化的训练样本。常见的数据增强方法有:常规的图像数据增强(翻转、旋转、平移、缩放、裁剪、色彩变换、噪声添加等)、AutoAug、RandAug、MixUp/CutMix、Mosaic、Stitcher等。

经典目标检测论文

  • R-CNN (Region-based Convolutional Neural Networks): [2014-CVPR] Rich feature hierarchies for accurate object detection and semantic segmentation. [pdf]
  • Fast R-CNN: [2015-ICCV] Fast R-CNN. [pdf]
  • Faster R-CNN: [2015-NeurIPS] Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks [pdf]
  • YOLO (You Only Look Once): [2016-CVPR] You Only Look Once: Unified, Real-Time Object Detection. [pdf]
  • SSD (Single Shot MultiBox Detector): [2016-ECCV] SSD: Single Shot MultiBox Detector. [pdf]
  • RetinaNet: [2017-CVPR] Focal Loss for Dense Object Detection. [pdf]
  • EfficientDet: [2020-CVPR] EfficientDet: Scalable and Efficient Object Detection. [pdf]
  • Cascade R-CNN: [2018-CVPR] Cascade R-CNN: Delving into High Quality Object Detection [pdf]

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

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

相关文章

OfficeWeb365 Readfile 任意文件读取漏洞

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

主品牌竞争方向之洞察竞争环境变化

随着市场环境加速变化,如果只停留在过去,未能及时进化的主品牌可能会逐渐老化,失去市场竞争力,甚至被新兴竞争对手所取代。因此,企业需要不断洞察竞争环境变化,避免企业走向衰退,让主品牌进化&a…

TrinityCore安装记录

TrinityCore模拟魔兽世界(World of Warcraft)的开源项目,并且该项目代码广泛的优化、改善和清理代码。 前期按照官方手册按部就班的安装即可。 注意几点: 1 需要配置Ubuntu22.04版本的服务器或者Debian11 服务器。2 需要使用gi…

Office恢复旧UI|Office UI问题|Word UI|小喇叭找不到

Office恢复旧UI|Office UI问题|Word UI|小喇叭找不到 问题描述:Office新版本默认新UI,主界面没有小喇叭可以切换到旧UI. 解决方案: 以下述内容新建.txt,保存并改后缀为.reg,双击打开…

Flink生产环境常见问题及解决方法

在Flink生产环境中,可能会遇到一些常见的问题。下面简单的介绍几个常见问题,并且提供一些解决方法,来帮助你更好地应对这些问题。 故障转移和高可用性 Flink提供了故障转移和高可用性机制,但在配置和使用时可能会遇到问题。如果…

154基于matlab的二维元胞自动机模拟森林火灾(生命游戏 )和模拟收费站交通流

基于matlab的二维元胞自动机模拟森林火灾(生命游戏 )和模拟收费站交通流。全国大学生美国建模竞赛,程序已调通,可直接运行。 154 元细胞自动机 森林起火 收费站交通 (xiaohongshu.com)

Linux的库文件

概述: 库文件一般就是编译好的二进制文件,用于在链接阶段同目标代码一块生成可执行文件,或者运行可执行文件的时候被加载,以遍调用库文件中的某段代码。 动态链接都是索引的.so文件,静态链接都是压缩打包的.a文件。 …

Python新春烟花盛宴

写在前面 哈喽小伙伴们,博主在这里提前祝大家新春快乐呀!我用Python绽放了一场新春烟花盛宴,一起来看看吧! 环境需求 python3.11.4及以上PyCharm Community Edition 2023.2.5pyinstaller6.2.0(可选,这个库…

React实例之完善布局菜单(三)

接着上篇的内容继续。规划界面布局。界面分为三个部分,左边为菜单部分,右边上部有个 80 px 高度左右的功能区,下面是主内容区。 依据这个设计,我们进行下面的步骤: 在 SMenu项目中创建一个目录: SLayout, …

C++实战Opencv第二天——色彩空间转换函数和opencv中图像对象创建与赋值(从零开始,保姆教学)

OpenCV是一个强大的计算机视觉库,使用C作为主要编程语言,对于图像处理和计算机视觉领域具有重要意义。其提供了丰富的功能和算法,使得开发者能够快速实现各种图像处理和计算机视觉应用。OpenCV C为图像处理和计算机视觉领域的开发者提供了一个…

【实战】阿里智能编码助手通义灵码

文章目录 前言技术积累通义灵码是什么?Copilot是什么?通义灵码主要功能通义灵码有哪些优势?通义灵码支持语言/工具通义灵码接入方式通义灵码帮助中心 实战演示安装插件行/函数级实时续写自然语言生成代码代码优化单元测试生成代码注释生成解释…

【RPA】什么是RPA

一、什么是RPA? RPA,全称机器人流程自动化,是一种利用机器人技术实现工作信息与业务交互自动化的过程。它能够按照预先设计的流程,高效地处理大量的工作信息与业务交互,极大地节约了人工成本。如今,RPA已成为智能化软…

贪心算法篇

“靠漫步,将生趣填饱~” 贪心算法简介? 贪心算法(Greedy Algorithm),也称为贪婪算法,是一种在解决问题时采取贪心策略的方法。其基本原理是很简单的: “在每个决策点上都选择当下看似最好的选项…

《动手学深度学习(PyTorch版)》笔记7.1

注:书中对代码的讲解并不详细,本文对很多细节做了详细注释。另外,书上的源代码是在Jupyter Notebook上运行的,较为分散,本文将代码集中起来,并加以完善,全部用vscode在python 3.9.18下测试通过&…

FANUC机器人PROF-017从机断开故障报警处理方法总结

FANUC机器人PROF-017从机断开故障报警处理方法总结 情况说明: 机器人安装的是PROFINET板卡,按照手册进行PROFINET配置之后,重启控制柜,此时系统提示:PROF-017 从机断开, 如下图所示, 打电话咨…

HTML5和CSS3强化知识总结

HTML5的新特性 HTML5的新增特性主要是针对于以前的不足,增一些新的标签、新的表单和新的表单属性等。这些新特性都有兼容性问题,基本是IE9以上版本的浏览器才支持,如果不考虑兼容性问题,可以大量使用这些新特性。 HTML5新增的语义…

ubuntu 18.04修改网卡名称

1.原来网卡配置 现在要把enp3s0的名称改为eth0 2. 总共修改三个文件 第一个修改 sudo vi /etc/default/grub 添加最后一行 GRUB_CMDLINE_LINUX"net.ifnames0 biosdevname0" 第二个修改sudo vi /etc/udev/rules.d/70-persistent-net.rules 如果没有就新建文件&a…

uniapp android和微信小程序实现PDF在线预览

在使用uniapp开发移动端时,微信开发者工具里webview能正常打开后端接口返回的pdf文件流。正式发布后,在配置了业务域名和服务器域名的前提下,预览pdf文件却只能看到白屏,因此我猜测微信小程序不能通过webview读取文件流。这个想法…

python接口自动化(五)--接口测试用例和接口测试报告模板(详解)

简介 当今社会在测试领域,接口测试已经越来越多的被提及,被重视,而且现在好多招聘信息要对接口测试提出要求。区别于传统意义上的系统级别测试,很多测试人员在接触到接口测试的时候,也许对测试执行还可以比较顺利的上手…

C2-Search-Netlas:一款基于Netlas API的强大C2服务器识别与检测工具

关于C2-Search-Netlas C2-Search-Netlas是一款功能强大的命令与控制(C2)服务器检测工具,该工具使用Java语言开发,基于Netlas API实现其功能,可以帮助广大研究人员轻松快速地识别和检测目标C2服务器的相关信息。 C2-S…