3D 目标检测:从萌芽到前沿的技术演进之路
亲爱的小伙伴们😘,在求知的漫漫旅途中,若你对深度学习的奥秘、JAVA 、PYTHON与SAP 的奇妙世界,亦或是读研论文的撰写攻略有所探寻🧐,那不妨给我一个小小的关注吧🥰。我会精心筹备,在未来的日子里不定期地为大家呈上这些领域的知识宝藏与实用经验分享🎁。每一个点赞👍,都如同春日里的一缕阳光,给予我满满的动力与温暖,让我们在学习成长的道路上相伴而行,共同进步✨。期待你的关注与点赞哟🤗!
早期探索阶段
- 在 3D 目标检测的早期,研究主要集中在基于手工特征和传统机器学习方法上。研究人员尝试利用物体的几何形状、颜色、纹理等特征,结合支持向量机(SVM)等分类器来识别和定位 3D 物体。然而,这些方法在复杂场景下的性能有限,难以处理大规模的数据和多样化的物体姿态。
基于点云的方法兴起
- VoxelNet :2017 年提出的 VoxelNet 是 3D 目标检测领域的一个重要里程碑。它将点云数据划分为体素,并使用 3D 卷积神经网络(CNN)来学习体素特征,从而实现 3D 目标检测.
- 论文:VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection
- 出处:CVPR 2018
- 原理改进:以往的方法多是将点云转换为其他形式再进行处理,而 VoxelNet 直接对体素化的点云进行 3D 卷积操作,自动学习点云的特征表示,无需人工设计特征,提高了检测的准确性和鲁棒性。其具体流程包括提素分区、分组、随机抽样、堆叠体素特征编码等步骤,最后通过区域提议网络生成检测框.
多模态融合方法的发展
- MV3D :2016 年的 MV3D 多视角 3D 网络,将激光雷达点云和 RGB 图像作为输入,预测定向 3D 边界框1.
- 论文:Multi-View 3D Object Detection Network for Autonomous Driving
- 出处:CVPR 2017
- 原理改进:此前的方法多单独依赖于点云或图像数据,MV3D 充分利用了激光雷达和相机的互补信息,通过多视角特征融合,使得网络能够更好地理解场景和物体,尤其是对于远处和小目标的检测效果有了明显提升。它通过两个子网络分别生成 3D 对象提议和进行多视角特征融合,并设计了深度融合方案,结合来自多个视角的区域特征来提高检测性能。
基于深度学习的进一步优化
- PointNet/PointNet++ :PointNet 及其升级版 PointNet++ 在 2017 年左右出现,它们直接处理点云数据,通过一系列的点云采样、分组和特征学习操作,有效地捕捉点云的局部和全局特征1.
- 论文:PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation、PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space
- 出处:CVPR 2017、NIPS 2017
- 原理改进:与之前的方法相比,PointNet 系列能够更好地处理点云的无序性和置换不变性,直接在原始点云上进行操作,避免了体素化等预处理过程中可能导致的信息丢失,从而更准确地提取点云的特征,提高了对复杂形状物体的检测精度。PointNet++ 通过构建点的分层分组,逐步抽象更大的局部区域,学习深度点集特征,进一步提升了模型的性能.
多传感器融合与序列信息利用
- PointPainting :2019 年提出的 PointPainting 方法,将激光雷达点投影到仅图像语义分割网络的输出中,并将类别评分追加到每个点上,然后将追加后的点云馈送到任何仅激光雷达的方法中,实现了点云和图像信息的有效融合,提升了检测性能 。
- 论文:PointPainting: Sequential Fusion for 3D Object Detection
- 出处:CVPR 2020
- 原理改进:该方法巧妙地将图像的语义信息融入到点云数据中,弥补了点云在语义理解上的不足,使得点云数据能够更好地识别物体的类别和位置,增强了检测的准确性和可靠性。
- MSF :2023 年的 MSF 方法利用目标运动的连续性来挖掘当前帧中用于目标检测的有用序列上下文。
- 论文:MSF: An Efficient 3D Object Detection Network based on Point Cloud Sequence Fusion
- 出处:公众号【自动驾驶之心】
- 原理改进:传统的多帧检测方法通常遵循 “检测和融合” 框架,存在冗余计算和对先前帧结果的过度依赖问题。MSF 方法则只在当前帧生成提议并传播到先前帧挖掘特征,减少了计算量和对前序帧的依赖,同时双向特征聚合模块加强了跨帧提议之间的信息交换,提高了边界框预测的准确性 。
基于 Transformer 的方法探索
- 近年来,Transformer 架构在自然语言处理领域取得了巨大成功后,也被引入到 3D 目标检测中。一些方法利用 Transformer 的自注意力机制来学习点云或多模态数据中的长程依赖关系,从而更好地捕捉物体之间的上下文信息,进一步提高了检测性能 。
- 论文:TransFusion: Robust LiDAR-Camera Fusion for 3D Object Detection with Transformers等
- 出处:相关的计算机视觉会议和期刊
- 原理改进:Transformer 的自注意力机制能够自适应地关注输入数据中的不同部分,对于处理 3D 目标检测中的复杂场景和多模态数据具有天然的优势。它可以更好地建模物体之间的关系,以及不同模态数据之间的相互作用,从而提升检测的精度和鲁棒性,尤其是在处理遮挡、重叠等复杂情况时表现出色 。
2024 最新技术
- Shift-SSD :2024 年,港科大提出了一种新的基于点的 3D 探测器模型 Shift-SSD,用于自动驾驶中的精确 3D 物体检测.
- 论文:Cross-Cluster Shifting for Efficient and Effective 3D Object Detection in Autonomous Driving
- 出处:ICRA 2024
- 原理改进:传统的基于点的 3D 目标检测器通常采用依赖于点的渐进式下采样的架构,会损害关键非局部信息的保存。Shift-SSD 引入了跨集群移位操作,通过移位相邻簇的部分通道来增强传统设计,从而实现与非局部区域的更丰富的交互,扩大簇的感受野,在检测精度和运行效率方面取得了最新性能。其整体架构由用于聚类点特征提取的主干网络和用于产生检测框的框预测网络组成,主干网络中的移位集抽象模块包括簇点选择、球分组、集合特征提取和跨簇移位层等操作.
- MV ACon :2024 年提出的多视角关注上下文化(MV ACon)方法,用于改进基于查询的多视角三维(MV3D)目标检测中二维到三维特征提取.
- 论文:Multi-View Attentive Contextualization for Multi-View 3D Object Detection
- 出处:CVPR 2024
- 原理改进:该方法采用一种具有表征密集性但计算稀疏性的关注特征上下文化方案,解决了现有方法在高分辨率 2D 特征利用和 3D 查询到多尺度 2D 特征的稀疏接地方面的不足,通过引入全局基于聚类的上下文有效地对 MV3D 目标检测的密集场景级上下文进行编码,在实验中表现出一致的检测性能提升,尤其是在增强位置、方向和速度预测方面表现出色.
相关文章:
3D 目标检测:从萌芽到前沿的技术演进之路
亲爱的小伙伴们😘,在求知的漫漫旅途中,若你对深度学习的奥秘、JAVA 、PYTHON与SAP 的奇妙世界,亦或是读研论文的撰写攻略有所探寻🧐,那不妨给我一个小小的关注吧🥰。我会精心筹备,在…...
Apifox 产品更新|支持发布多个文档站、文档站支持 Algolia 搜索配置、从返回响应直接设置断言
看看本次 这次版本更新主要涵盖的重点内容,有没有你所关注的功能特性: 「发布文档」升级为「发布文档站」 支持发布多个文档站 文档站支持 Algolia 搜索配置 支持从返回响应直接设置断言 用户反馈优化 解决恢复退出 App 时未关闭的标签页可能导致内存…...
Linux内核结构及源码概述
参考:深入分析LINUX内核源码 深入分析Linux内核源码 (kerneltravel.net) Linux 是一个庞大、高效而复杂的操作系统,虽然它的开发起始于 Linus Torvalds 一个人,但随着时间的推移,越来越多的人加入了 Linux 的开发和对它的不断完善…...
《探索C++在3D重建中的算法与技术要点》
3D重建作为计算机视觉领域的重要技术,在诸多行业有着广泛应用,而C以其高效性和对底层硬件的良好控制,成为实现3D重建算法的常用语言。以下是利用C进行3D重建的一些常见算法和技术要点。 多视图立体视觉算法 多视图立体视觉是3D重建的基础算…...
【老白学 Java】数字格式化
数字格式化 文章来源:《Head First Java》修炼感悟。 很多时候需要对数字或日期进行格式化操作,来达到某些输出效果。Java 的 Formatter 类提供了很多扩展性功能用于字符串的格式化,只要调用 String 静态方法 format() ,传入参数…...
useCallback和forwardRef的联合使用
文章目录 一、useCallback二、forwardRef 总结了useCallback、forwardRef中的deps,以及操作子组建时会遇到数据流不同步的问题 一、useCallback useCallback可以缓存函数,这样避免组建更新导致的函数重建;useCallback在函数更新以后会在deps中…...
C# .NET CORE 开发问题汇总
1. error MSB4803: .NET Core 版本的 MSBuild 不支持“ResolveComReference”。请使用 .NET Framework 版本的 MSBuild。 引用了一个COM组件, 使用donet 命令时,提示不支持, 可以先将项目设置为x86以构建, 将COM引用添加到核心项目中,构建它,在obj\x86\…...
【C语言】拆数字组成最大数
相信你是最棒哒!!! 文章目录 题目描述 正确代码 法一注释版 简洁版 法二注释版 简洁版 题目描述 任意输入一个自然数,输出该自然数的各位数字组成的最大数。例如,输入 1593 ,则输出为 9531 。 输入描述 …...
【Git系列】根据提交打印邮箱
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
Nginx在处理客户端请求的并发性发面是否依赖Linux的多线程原理
Nginx在处理客户端请求的并发性发面是否依赖Linux的多线程原理 Nginx 在处理客户端请求的并发性方面,并不依赖于 Linux 的多线程原理。 Nginx 的并发处理主要基于 事件驱动模型 和 异步非阻塞 I/O,而不是传统的多线程或多进程模型。 Nginx 的并发处理模…...
Python生成对抗神经网络GAN预测股票及LSTMs、ARIMA对比分析ETF金融时间序列可视化
全文链接:https://tecdat.cn/?p38528 本文聚焦于利用生成对抗网络(GANs)进行金融时间序列的概率预测。介绍了一种新颖的基于经济学驱动的生成器损失函数,使 GANs 更适用于分类任务并置于监督学习环境中,能给出价格回…...
深入了解C++中const的用法
文章目录 一、C中的const如何理解?二、C中的const与C语言中的const有何区别?三、const与指针、引用的结合使用 一、C中的const如何理解? 在C中,const是一个关键字,用来表示常量性,意在告诉编译器某些变量或…...
【Linux金典面试题(上)】41道Linux金典面试问题+详细解答,包含基本操作、系统维护、网络配置、脚本编程等问题。
大家好,我是摇光~,用大白话讲解所有你难懂的知识点 之前写了一篇关于 python 的面试题,感觉大家都很需要,所以打算出一个面试专栏。 【数据分析岗】Python金典面试题 这个专栏主要针对面试大数据岗位、数据分析岗位、数据运维等…...
利用Python实现多元回归预测汽车价格
引言: AI技术的热门使得大家对机器学习有了更多的关注,作为与AI技术息息相关的一门课程,从头了解基础的机器学习算法就显得十分有必要,如:梯度下降,线性回归等。 正文: 本文将讲解线性回归中多元回回归的案例 机器学习大致可以分为监督学习,非监督学习、半监督学习还…...
抓包软件fiddler和wireshark使用手册
fiddler官方文档 Fiddler 抓包教程1 Fiddler 抓包教程2 wireshark抓包学习 2添加链接描述 ip 过滤 ip.src_host ip.dst_host ip.addr mac 过滤 eth.src eth.dst eth.addr 端口过滤 tcp.port tcp.srcport tcp.dstport 协议类型过滤 arp dhcp 规则组合 and or...
初识三大 Observer
文章目录 ResizeObserver、MutationObserver和IntersectionObserver用MutationObserver实现图片懒加载MutationObserver 兼容性问题IntersectionObserver 应用MutationObserver和IntersectionObserver的区别IntersectionObserver 实例示例一:图片懒加载示例二&#…...
Eclipse MAT(Memory Analyzer Tool) 使用手册
参考:JAVA内存泄露使用MAT(Memory Analyzer Tool)快速定位代码 Eclipse MAT 1.15.0提示JDK版本最低需要使用17版本的,如果不想安装可以下载ZIP包,或者使用较低版本的MAT。 为了避免下载的17版本JDK和本地环境干扰,可以直接在MAT配…...
TongWe7.0-东方通TongWeb控制台无法访问 排查
**问题描述:**无法访问TongWeb的控制台 逐项排查: 1、控制台访问地址是否正确:http://IP:9060/console #IP是服务器的实际IP地址 2、确认TongWeb进程是否存在,执行命令:ps -ef|grep tongweb 3、确认TongWeb服务启动…...
Ariba Procurement: Administration_Master data
采购主数据集成Procurement Master Data Integration 注意:并非所有元素都是必需的,数据元素的名称可能根据ERP的不同,有所不同。 Types of Master Data Accounting 在SAP Ariba中的各种会计元素字段中,填充有效值选择列表。建…...
爬虫学习案例4
爬取猪八戒网站数据:2024-12-12 使用xpath解析元素,安装依赖库 pip install lxml使用selenium步骤我的上篇博客有提到,这里就不重复了 selenium使用博客导航 # 安装pip install lxml,使用xpath from lxml import etree import time from s…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...
Qt的学习(一)
1.什么是Qt Qt特指用来进行桌面应用开发(电脑上写的程序)涉及到的一套技术Qt无法开发网页前端,也不能开发移动应用。 客户端开发的重要任务:编写和用户交互的界面。一般来说和用户交互的界面,有两种典型风格&…...
前端工具库lodash与lodash-es区别详解
lodash 和 lodash-es 是同一工具库的两个不同版本,核心功能完全一致,主要区别在于模块化格式和优化方式,适合不同的开发环境。以下是详细对比: 1. 模块化格式 lodash 使用 CommonJS 模块格式(require/module.exports&a…...
CppCon 2015 学习:Reactive Stream Processing in Industrial IoT using DDS and Rx
“Reactive Stream Processing in Industrial IoT using DDS and Rx” 是指在工业物联网(IIoT)场景中,结合 DDS(Data Distribution Service) 和 Rx(Reactive Extensions) 技术,实现 …...
【QT控件】显示类控件
目录 一、Label 二、LCD Number 三、ProgressBar 四、Calendar Widget QT专栏:QT_uyeonashi的博客-CSDN博客 一、Label QLabel 可以用来显示文本和图片. 核心属性如下 代码示例: 显示不同格式的文本 1) 在界面上创建三个 QLabel 尺寸放大一些. objectName 分别…...
运行vue项目报错 errors and 0 warnings potentially fixable with the `--fix` option.
报错 找到package.json文件 找到这个修改成 "lint": "eslint --fix --ext .js,.vue src" 为elsint有配置结尾换行符,最后运行:npm run lint --fix...
02-性能方案设计
需求分析与测试设计 根据具体的性能测试需求,确定测试类型,以及压测的模块(web/mysql/redis/系统整体)前期要与相关人员充分沟通,初步确定压测方案及具体的性能指标QA完成性能测试设计后,需产出测试方案文档发送邮件到项目组&…...
