视觉2D感知(一):目标检测介绍以及自动驾驶场景应用_2d视觉感知系统-程序员宅基地

R-CNN——两阶段,包含Anchor,运行速度较慢

YOLO——单阶段,包含Anchor,运行速度较快

CenterNet——单阶段,关键点表示物体,运行速度较快,超参数较少

Transformer——单阶段,自注意力提取体征,无法达到实时

1.传统物体检测

  • 候选窗口

滑动窗口(稠密)

显著性图(稀疏)

  • 特征提取

haar特征

HOG特征

  • 分类器

AdaBoost

Decision Tree

SVM

问题:针对不同任务,需要手工设计不同的特征,选择不同的分类器

2.自动驾驶感知中应用

场景/光照/天气变化较大

目标种类/形状相对固定,但尺度变化较大

目标在图像中所占比例较小

算法实时性要求较高

1.早期(2013-2014):传统方法+深度学习

  • 候选边框:HOG/Haar+AdaBoost
  • 边框分类和修正:CNN
  • 可以在比较低算力的嵌入式硬件上实现

2.中期(2014-2015):完全深度学习

  • 端对端的物体检测:Fast R-CNN
  • 速度上进行优化:限制输入图像的大小;限制最大的目标个数;优化金字塔的结构;

3.R-CNN算法

R-CNN算法(Region-CNN),第一个成功将深度学习应用到目标检测上的算法

1.R-CNN

  • 选择性搜索替代滑动窗口
  • 卷积神经网络提取图像特征
  • 窗口特征采用SVM进行分类

问题:窗口数目重叠太多,导致特征提取的冗余,影响算法的运行效率(20s)
请添加图片描述

2.Fast R-CNN

  • CNN提取全图的特征,避免冗余计算
  • 在候选框中进行ROI Pooling
  • 全连接网络进行分类和边框回归

问题:通过选择性搜索来得到候选区域,这个过程依然比较慢
请添加图片描述

3.Faster R-CNN

  • 区域候选网络(RPN)在特诊图的基础上生成候选框
  • 其余步骤与Fast R-CNN类似
  • Anchor概念的引入:回归任务只用处理比较小的变化
  • 第一个端到端的物体检测网络,接近实时(17FPS)

问题:ROI Pooling比较耗时,Anchor的设计需要先验知识

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wo9qQYrl-1659685824474)(C:/Users/13611/AppData/Roaming/Typora/typora-user-images/image-20220805142924819.png)]

4.Feature Pyramid Network(FPN)

  • 特征提取阶段进行优化
  • 金字塔结构提取多尺度信息
  • 适应不同大小的物体

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7Yk8kJ0B-1659685824474)(C:/Users/13611/AppData/Roaming/Typora/typora-user-images/image-20220805143602572.png)]

4.SSD/YOLO(两阶段 - 单阶段)

1.Single Shot MultiBox Detector(SSD)

  • 全卷积网络:在所有位置进行分类和回归
  • 多分辨率特征图适应不同大小的物体

问题:稠密采样导致正负样本的不平衡,大量负样本会支配损失函数

改进:RetinaNet中的Focal Loss可以更多地关注困难样本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mje47Bv9-1659685824475)(C:/Users/13611/AppData/Roaming/Typora/typora-user-images/image-20220805144718877.png)]

2.You Only Look Once(YOLO)

  • V1:卷积全连接提取特征+全连接层输出物体类别和边框

  • V2-V4:增强特征提取网络,采用多尺度特征图,利用Anchor来辅助边框回归

问题:Anchor需要手工设计,Anchor数目较大影响算法速度

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4595YFgQ-1659685824475)(C:/Users/13611/AppData/Roaming/Typora/typora-user-images/image-20220805144829523.png)]

5.Keypoint(Anchor-based 到 Anchor-free)

1.CenterNet

  • backbone网络结构与R-CNN/YOLO类似
  • 不同之处在于head的设计:物体表示中心点,直接回归边框

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HSXHAFgM-1659685824476)(C:/Users/13611/AppData/Roaming/Typora/typora-user-images/image-20220805145204491.png)]

  • 中心点分类:正负样本的生成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zpZYOTGe-1659685824476)(C:/Users/13611/AppData/Roaming/Typora/typora-user-images/image-20220805150027984.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wVdwYvW1-1659685824476)(C:/Users/13611/AppData/Roaming/Typora/typora-user-images/image-20220805150257278.png)]

  • 与ROI Pooling的区别:只采用中心点处的特征
  • 与Anchor的区别:直接估计边框参数

问题:中心点处的特征表示性不够

2.FCOS(Fully Convolutional One-Stage Object Dection)

  • 在多分辨率的特征图上进行预测

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pboBWPGw-1659685824477)(C:/Users/13611/AppData/Roaming/Typora/typora-user-images/image-20220805150718997.png)]

  • 在中心点周边选取多个正样本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DgU8f0Gu-1659685824477)(C:/Users/13611/AppData/Roaming/Typora/typora-user-images/image-20220805151335199.png)]

  • 增加了一个Centerness预测分支

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-chNXMLNy-1659685824477)(C:/Users/13611/AppData/Roaming/Typora/typora-user-images/image-20220805151456295.png)]

2.CornerNet

  • Corner Pooling提取特征,预测角点
  • 匹配属于同一物体的角点

3.RepPoints

  • 物体表示为代表性点集
  • 可变性卷积适应物体形状变化
  • 点集转换为物体框,计算Loss

6.CenterNet检测结果分析(KITTI数据集)

1.漏检:中心被遮挡

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eR0cKYzm-1659685824478)(C:/Users/13611/AppData/Roaming/Typora/typora-user-images/image-20220805152828783.png)]

可能的解决方案:

  • 增加角点检测来提高对遮挡物体的鲁棒性,比如CornerNet
  • 采用语义分割将其检测为一般性的障碍物

2.误捡:物体处于图像边缘,只有部分可见

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bw2uoQoI-1659685824478)(C:/Users/13611/AppData/Roaming/Typora/typora-user-images/image-20220805153336892.png)]

可能的解决方案:

  • 根据多帧的结果进行过滤(物体跟踪)
  • 采用双目系统,通过增加信息冗余来过滤

3.漏检:物体距离较远,图像上的尺寸较小

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XrzamLgk-1659685824479)(C:/Users/13611/AppData/Roaming/Typora/typora-user-images/image-20220805153653801.png)]

可能的解决方案:

  • 增加特征图的分辨率,或者多尺度特征图,比如FPN
  • 考虑不同大小的检测框可能出现的区域,并相应调整置信度的阈值

4.漏检:多个目标聚集

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ryqRJQqG-1659685824479)(C:/Users/13611/AppData/Roaming/Typora/typora-user-images/image-20220805153900212.png)]

可能的解决方案:

  • 定义新的目标类别,比如"一组行人"
  • 采用语义分割而不是物体检测

5.漏检和误检:数据集中比较少见的目标

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MAC9UhJO-1659685824479)(C:/Users/13611/AppData/Roaming/Typora/typora-user-images/image-20220805154048031.png)]

可能的解决方案:

  • 挖掘“困难数据”,采用类似Boostrap的方式,重新训练模型
  • 收集“失败场景”,有针对性的采集类似的数据,迭代模型

7.不同系列物体检测方法对比(KITTI & Waymo)

算法 阶段 Anchor KITTI Car AP Waymo mAP 运行速度fps
Faster R-CNN +FPN 86.1% 62.4% 7
YOLOv4 90.1% 66.8% 31
CenterNet 86.7% 64.8% 28

NN +FPN | 两 | 有 | 86.1% | 62.4% | 7 |
| YOLOv4 | 单 | 有 | 90.1% | 66.8% | 31 |
| CenterNet | 单 | 无 | 86.7% | 64.8% | 28 |

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_46067306/article/details/126179354

智能推荐

oracle 中TYPE 关键字 IS RECORD 和 IS TABLE OF 关键字的使用_type is table of-程序员宅基地

文章浏览阅读2.3w次,点赞6次,收藏46次。_type is table of

不可错过的资源:国产数据库openGauss学习网站的无限可能!_神通opengauss-程序员宅基地

文章浏览阅读357次,点赞5次,收藏5次。openGauss是一个企业级开源数据库,由华为公司推出,深度融合了华为在数据库领域的多年经验与企业级场景需求。以下是关于openGauss的详细介绍:企业级定位:openGauss定位为企业级云分布式数据库,旨在提供传统数据库的企业级能力和互联网分布式数据库的高扩展性和高可用性。架构设计:openGauss基于计算存储分离的分布式架构,支持集中式和分布式两种部署形式,能够适应不同的业务场景和技术要求。性能优势:openGauss具备高性能的分布式执行框架,这意味着它可以高效处理业务应用下的复杂查询和_神通opengauss

Cpolar内网穿透快速入门教程:Termux系列_cpolar安卓版 教程-程序员宅基地

文章浏览阅读779次。如果您希望在Android中运行termux终端并执行一系列小型Linux服务,就会考虑到下一个问题:我如何远程管理它?这时候,就是cpolar内网穿透工具出场的时候了。它让您可以在任何地点,管理你的termux环境容器。_cpolar安卓版 教程

git编译报错解决-程序员宅基地

文章浏览阅读939次。git configure 配置时没有设定--with-curl --with-expat 造成首先确定是否安装curl包:rpm-qa|grepcurl如果没有安装,一定要安装:yuminstall-ycurlcurl-devel安装完成后,删除原安装目录和编译目录,重新解压缩:tar-zxfgit-2.9.2.tar.gz-C/tmp/cd/..._--with-curl失败

Johnson算法:多源最短路算法-程序员宅基地

文章浏览阅读304次。Johnson算法请不要轻易点击标题一个可以在有负边的图上使用的多源最短路算法时间复杂度\(O(n \cdot m \cdot log \ m+n \cdot m)\)空间复杂度\(O(n+m)\)这个神奇的算法综合利用了Dijkstra算法和Bellman-Ford算法(不要慌,虽然有负边但Dijkstra可以跑!)在开始讲解之前,我们将其与floyd进行比较\(flo..._多源最短路的最优复杂度

JTopo + Vue 实现自定义拖拽流程图_vue拖拽流程图-程序员宅基地

文章浏览阅读8.2k次,点赞32次,收藏42次。JTopo + Vue 实现自定义拖拽流程图 市场上做流程图的插件比较多,这里介绍一种基于canvas编写的js插件,结合vue框架做出精美的流程图 首先搭建vue框架,这里就不做介绍,由于jtopo官方demo里用到了jquery,所以我的项目里也引用了jquery插件,鉴于这里用到了很多的dom操作,所以建议大家也直接引用jquery进行操作; 然后将jtopo.js下载到本地,放到自己的vue项目的静态文件目录下,如下图: ![vue引入jtopo.js](https://im_vue拖拽流程图

随便推点

Myeclipse快捷键-程序员宅基地

文章浏览阅读69次。导入包:Ctrl+Shift+O 编辑 作用域 功能 快捷键 全局 查找并替换 Ctrl+F 文本编辑器 查找上一个 Ctrl+Shift+K 文本编辑器 查找下一个 Ctrl+K 全局 撤销 Ctrl+Z 全局 复制 Ctrl+C 全局 恢复上一个选择 Alt+Shift+↓ 全局 剪切 Ctrl+X 全局 快速修正 Ctrl1+1 全局 内容辅助 A...

税盘的批量抄报税和批量清卡--支持金税盘,税控盘,税务UKey_税控盘上出行tpass是什么意思-程序员宅基地

文章浏览阅读2.2k次。本文讲述了金税盘,税控盘,税务UKey抄报税和清卡的业务流程,以及常见的操作方式,并分析了哪种方式更加适合进行批量的抄报税,清卡操作。分享了使用组件进行批量抄报税,批量清卡的核心代码。_税控盘上出行tpass是什么意思

内向的人不适合做自由设计师吗?-程序员宅基地

文章浏览阅读452次,点赞9次,收藏13次。因此,我们应该以更加开放和包容的态度看待内向的人从事自由设计师职业的问题,为他们提供更多的支持和帮助。在未来的发展中,随着社会对多元文化和性格的接受度不断提高,相信会有越来越多的内向的人选择从事自由设计师这一职业,并在这个领域展现出自己的才华和魅力。同时,我们也期待看到更多的研究和探讨,以更加深入地了解内向的人与自由设计师职业之间的关系,为他们的职业发展提供更加有力的支持和指导。事实上,许多内向的设计师在职业生涯中取得了不俗的成就,他们通过精湛的设计技能和有效的沟通方式,赢得了客户的信任和好评。

终极软工笔记-程序员宅基地

文章浏览阅读1k次,点赞20次,收藏10次。例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

13 Django视图 - URLconf_root_urlconf是什么-程序员宅基地

文章浏览阅读258次。URLconf在settings.py文件中通过ROOT_URLCONF指定根级url的配置urlpatterns是一个url()实例的列表一个url()对象包括:正则表达式视图函数名称name编写URLconf的注意:若要从url中捕获一个值,需要在它周围设置一对圆括号不需要添加一个前导的反斜杠,如应该写作’test/’,而不应该写作’/test/’每个正则..._root_urlconf是什么

使用微信小程序开发制作一个简单的旅游攻略应用_微信小程序编写旅游小程序-程序员宅基地

文章浏览阅读300次,点赞6次,收藏12次。开发者只需熟悉微信小程序的开发流程和相关API,按照需求设计界面、编写交互逻辑,即可实现一个功能完备的小程序应用。当然,以上示例只是一个简单的示范,实际项目的开发还需要根据具体需求进行调整和完善。二、项目开发 1.创建项目 打开微信开发者工具,点击新建项目,填写项目名称和项目路径,选择对应的小程序类型,点击确定创建项目。以上是一个简单的旅游攻略应用的微信小程序开发示例,通过以上代码可以实现目的地、酒店和美食的展示和存储。可以使用微信小程序提供的组件进行页面的布局和样式的设置,也可以自定义组件来满足需求。_微信小程序编写旅游小程序

推荐文章

热门文章

相关标签