机器学习笔记 - 3D对象检测技术路线调研(未完)

一、3D对象检测简述

        3D对象检测是计算机视觉中的一项任务,其目标是根据对象的形状、位置和方向在 3D 环境中识别和定位对象。它涉及检测物体的存在并实时确定它们在 3D 空间中的位置。这项任务对于自动驾驶汽车、机器人和增强现实等应用至关重要。

1、基本流程

         给定图像,估计所有对象实例的3D形状和3D姿态。

        数据收集:收集包含图像和相应 3D 数据的数据集,例如来自 LiDAR 传感器的点云、深度图或立体图像。数据集应使用我们想要检测的对象的3D边界框信息进行注释。

        决定我们将用于捕获 3D 数据的传感器。常见选项包括 LiDAR 传感器、立体摄像头、RGB-D 摄像头(如 Microsoft Kinect)和深度传感器。每种传感器类型都有其优点和局限性,因此请选择适合您应用的传感器类型。

        通过用相应的 3D 边界框标记感兴趣的对象来注释我们的数据。这涉及指定对象的尺寸(长度、宽度、高度)及其在 3D 空间中的位置(通常由对象的质心或边界框的角表示)。Labelbox、VGG 图像注释器 (VIA) 或自定义脚本等工具可以帮助完成此过程。

        预处理:准备训练数据。这可能涉及标准化图像和数据、将图像与相应的 3D 数据对齐以及增强数据以增加训练集的多样性。

        架构选择:选择适合 3D 物体检测的架构。为此目的设计了各种神经网络架构,例如 PointNet、Frustum PointNets、PIXOR、VoxelNet 和 SECOND等等。这些架构可以处理不同类型的输入数据,例如点云或体素网格。

2、技术发展

        据了解目前大概有三个层次的,这里仅仅是个人了解到的一些信息整合,不保证准确,仅供参考。

        1、基于单个2D的RGB图像中围绕对象绘制3D边界框的任务。这是定位任务,但没有任何额外的信息,如深度或其他传感器或多图像。

        2、基于单目深度估计来生成3D点云,将相机转变为伪激光雷达传感器。或者基于深度图+RGB的思路。

        3、基于给定输入(例如RGB图像、LiDAR数据或两者的融合、LiDAR序列数据)识别和定位3D空间中的对象。

二、基于相机的3D对象检测

1、基于RGB图像

        基于锚点的单阶段方法利用图像特征和预定义的 3D 锚框来预测 3D 对象参数。单阶段无锚方法直接从图像像素预测 3D 对象参数。两阶段方法首先从 2D 检测器生成 2D 边界框,然后通过从 2D RoI 特征预测 3D 对象参数,将 2D 检测提升到 3D 空间。

2、基于RGB+深度

        基于深度图像的方法通过融合来自 RGB 图像和深度图像的信息来获得深度感知图像特征。基于伪激光雷达的方法首先将深度图像转换为 3D 伪点云,然后在点云上应用基于激光雷达的 3D 检测器来检测 3D 物体。基于补丁的方法将深度图像转换为二维坐标图,然后在坐标图上应用二维神经网络进行检测。

(1)DD3D

        这些两级检测器随着中间深度估计网络的准确性而提高,中间深度估计网络本身可以通过大规模自监督学习而无需手动标签而得到改进。然而,它们往往比端到端方法更容易遭受过度拟合,并且更复杂,并且与类似的基于激光雷达的检测器的差距仍然很大。

        端到端、单级、单目 3D 物体检测器 DD3D,它可以受益于伪激光雷达方法等深度预训练,但没有其限制。模型架构专为深度估计和 3D 检测之间的有效信息传输而设计,使得能够根据未标记的预训练数据量进行扩展。

我们的方法在两个具有挑战性的基准上取得了最先进的结果,在 KITTI-3D 基准上汽车和行人的 AP 分别为 16.34% 和 9.28%,在 NuScenes 上的 mAP 为 41.5%。

        论文地址

https://arxiv.org/abs/2108.06417icon-default.png?t=N7T8https://arxiv.org/abs/2108.06417

(2)待续

3、基于先验引导

        先验引导方法利用对象形状先验、几何先验、分割和时间约束来帮助检测 3D 对象。从这个思路猜测,如果是没见过的东西,那就不知道咋弄了可能。

4、基于立体估计

        基于 2D 检测的方法首先分别从左图像和右图像生成一对 2D 提案,然后根据配对提案估计 3D 对象参数。基于伪 LiDAR 的方法通过立体匹配预测视差图,然后将视差估计转换为深度和 3D 点云,然后使用基于 LiDAR 的检测器进行 3D 检测。基于体积的方法通过视图变换构造3D特征体积,然后在3D体积上应用基于网格的3D对象检测器进行检测。

四、基于LIDAR的3D对象检测

        用于2D对象检测和分类的CNN 已经成熟。但3D物体检测至少有两点不同:

        1、与 RGB 图像不同,LIDAR 点云是 3D 且非结构化的。

        2、自动驾驶的 3D 检测必须很快(<~100ms)。

        几种 3D 检测方法通过将 LIDAR 点云离散化为 3D 体素网格并应用 3D 卷积来解决第一个问题。然而,与 2D 卷积相比,3D 卷积的计算成本更高,因此延迟也更高。或者,可以将点云投影到自上而下的鸟瞰图 ( BEV ) 或 LIDAR 的本机范围视图 (RV) 中的2D图像。优点是可以通过更快的 2D 卷积有效地处理投影图像,从而产生更低的延迟。

        近几年的相关论文

1、基于点云

        通用的基于点的检测框架包含基于点的骨干网络和预测头。基于点的主干由几个用于点云采样和特征学习的块组成,预测头直接从候选点估计 3D 边界框。

2、基于网格

        基于网格的方法将点云栅格化为 3 种网格表示形式:体素、柱子和鸟瞰图 (BEV) 特征图。2D 卷积神经网络或 3D 稀疏神经网络应用于网格上进行特征提取。最终从 BEV 网格单元预测 3D 对象。

3、基于点体素

        单级点体素检测框架融合了主干网络中的点和体素特征。两阶段点体素检测框架首先使用基于体素的 3D 检测器生成 3D 对象建议,然后使用从点云采样的关键点细化这些建议。

4、基于范围

        第一类基于范围的方法直接根据范围图像中的像素预测 3D 对象,使用标准 2D 卷积或用于特征提取的专用卷积/图运算符。第二类将特征从范围视图转换为鸟瞰视图或点视图,然后从转换后的视图中检测3D对象。

5、基于锚点

        3D 锚框放置在每个 BEV 网格单元处。那些与基本事实具有高 IoU 的锚被选择为正样本。3D 对象的大小和中心从正锚点回归,并且通过基于 bin 的分类和回归来预测对象的航向角度。

6、无锚检测

        无锚学习目标可以分配到不同的视图,包括鸟瞰图、点视图和范围视图。直接从正样本预测对象参数。

五、基于多模态3D物体检测

1、LiDAR-相机融合

(1)早期融合

        早期融合方法在点云特征通过基于 LiDAR 的 3D 物体检测器之前,通过图像信息增强点云特征。在区域级知识融合中,首先对图像进行2D检测以生成2D边界框。然后将 2D 框挤压到视锥体中,为后续基于 LiDAR 的 3D 物体检测选择合适的点云区域。在点级知识融合中,首先将语义分割应用于图像,然后将分割结果从图像像素转移到点并用作附加到每个点的附加特征。增强的点云最终通过 LiDAR 探测器进行 3D 物体检测。

(2)中间融合

        中间融合方法旨在在 3D 对象检测管道的中间步骤进行多模态融合。在骨干网络中,首先通过相机到激光雷达的变换建立像素到点的对应关系,然后利用该对应关系,通过不同的融合算子将激光雷达特征与图像特征融合。融合可以在中间层进行,也可以仅在输出特征图上进行。在提案生成和细化阶段,首先生成 3D 对象提案,然后将其投影到相机和 LiDAR 视图中以裁剪不同模态的特征。最终融合多视图特征以细化用于检测的 3D 对象建议。

(3)后期融合

        基于后期融合的方法对输出进行操作,即分别由基于 LiDAR 的 3D 对象检测器和基于图像的 2D 对象检测器生成的 3D 和 2D 边界框。将3D box和2D box组合在一起并融合,得到最终的检测结果。

六、基于时间序列的3D物体检测

1、基于 LiDAR 序列

        在 LiDAR 序列的时间 3D 对象检测中,采用不同的时间聚合模块来融合来自多帧点云的特征和对象建议。

2、基于流数据

        在产生完整扫描之前,对每个 LiDAR 数据包进行流数据检测。

七、KITTI视觉基准测试

​        提供了一个标准化数据集,用于训练和评估不同 3D 物体检测器的性能。值得深入查看。The KITTI Vision Benchmark Suiteicon-default.png?t=N7T8http://www.cvlibs.net/datasets/kitti/

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

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

相关文章

虾皮买手号怎么弄的

想要拥有虾皮买手号&#xff0c;可以使用shopee买家通系统进行自动化注册&#xff0c;这款软件目前支持菲律宾、泰国、马来西亚、越南、巴西、印度尼西亚等国家使用。 软件注册流程简单方便&#xff0c;首先我们需要先准备好手机号&#xff0c;因为现在注册虾皮买家号基本上都是…

UI自动化的基本知识

一、UI自动化测试介绍 1、什么是自动化测试 概念&#xff1a;由程序代替人工进行系统校验的过程 1.1自动化测试能解决的问题&#xff1f; 回归测试 (冒烟测试) 针对之前老的功能进行测试 通过自动化的代码来实现。 针对上一个版本的问题的回归 兼容性测试 web实例化不同的浏…

C语言基础篇5:指针(一)

指针是C语言的核心、精髓所在&#xff0c;用好了指针可以在C语言编程中起到事半功倍的效果。指针一方面可以提高程序的编译效率和执行速度&#xff0c;而且还可以通过指针实现动态的存储分配&#xff0c;另一方面使用指针可使程序更灵活&#xff0c;便于表示各种数据结构&#…

力扣labuladong——一刷day57

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣1379. 找出克隆二叉树中的相同节点二、力扣LCR 143. 子结构判断三、力扣110. 平衡二叉树四、力扣250. 统计同值子树 前言 有些题目&#xff0c;你按照拍…

LeetCode Hot100 236.二叉树的最近公共祖先

题目&#xff1a; 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08;一个节…

HT97220与HT97230耳机放大器芯片对比

HT97230有两个不同开启时间(tON)版本&#xff0c;版本A、C和E的导通时间tON为5.5ms&#xff0c;用于耳机驱动&#xff1b;B和D则具有130ms的tON&#xff0c;用于机顶盒设计&#xff08;目前仅提供A版本&#xff0c;其他版本需预定&#xff09;。内部电荷泵对输入电源反相&#…

05 在C++中,什么是变量?变量有哪些类型?

系列文章目录 在C中&#xff0c;什么是变量&#xff1f;变量有哪些类型&#xff1f; 目录 系列文章目录 文章目录 前言 一、C中的变量 1.什么是变量&#xff1f; 2.变量的类型 二、C 中的变量定义和声明 1.变量定义 2.变量声明 三、扩展 1.函数 2.自动转换规则 总…

accelerate的使用说明

1 多卡(GPU)使用方法 终端输入指令&#xff0c;生成问答页面 accelerate config 这个方法也是可以的 2 后面修改直接找到这个yaml文件进行修改即可 cd ~/.cache/huggingface/accelerate vim default_config.yaml 进入vim进行修改 3 单卡(GPU)使用方法 vim default_config.…

什么是SQL?

SQL和MySQL是当今计算机领域中非常重要的两个概念。SQL是关系型数据库的查询语言&#xff0c;而MySQL是一种关系型数据库管理系统。它们在数据存储、管理和查询方面发挥着巨大的作用。在本文中&#xff0c;我们将深入探讨SQL和MySQL的定义、功能、应用以及它们之间的联系。 一…

边缘计算网关:智能制造的“智慧大脑”

一、智能制造的崛起 随着科技的飞速发展&#xff0c;智能制造已经成为了制造业的新趋势。智能制造不仅能够提高生产效率&#xff0c;降低生产成本&#xff0c;还能够实现个性化定制&#xff0c;满足消费者多样化的需求。然而&#xff0c;智能制造的实现离不开大量的数据处理和分…

2023.11.25电商项目平台建设2 -四大业务之核销主题建模

1.数仓建模步骤 自下而上 ADS-DWS-DWM-DWD 2.DWD方案(清洗转换,降维拉宽) DWD层的表 dwd_sale_store_sale_dtl_i 门店销售明细宽表 维度dim 销售sale合成成的宽表 dwd_dim_date_f 日期表 store_sale_dtl 门店销售明细表 dwd_sale_store_sale_dtl_i 门店销售明细表 …

快速上手Banana Pi BPI-R4 MediaTek MT7988A 开源路由器开发板

基础开发 准备开发 * 准备8G以上TF卡、USB转串口线、Ubuntu系统* 使用 USB 串行电缆&#xff08;3.3V TTL&#xff0c;波特115200&#xff09;连接到 BPI-R4 上的调试控制台G接地&#xff1b;RXBPI-R4输入&#xff1b;TXBPI-R4输出* BPI-R4 引导程序和设备选择跳线设置* 例子…

【leetcode】62. 不同路径

题目 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&#xff1f; …

基于SpringBoot的超市信息管理系

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 随着我国经济的不断发…

数据库日志解析:深入了解MySQL中的各类日志

**> &#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 数据库日志解析&#xff1a;深入了解MySQL中的各类日志 前言第一&#xff1a;错误日志❌1. 错误日志的作用2. 记录内容3. 故障排查的方法 第二&#xff1a;查询日志1.…

【华为OD】B\C卷真题 100%通过:需要打开多少监控器 C/C++实现

【华为OD】B\C卷真题 100%通过&#xff1a;需要打开多少监控器 C/C实现 目录 题目描述&#xff1a; 示例1 代码实现&#xff1a; 题目描述&#xff1a; 某长方形停车场&#xff0c;每个车位上方都有对应监控器&#xff0c;当且仅当在当前车位或者前后左右四个方向任意一个…

【Linux】第二十站:模拟实现shell

文章目录 一、shell的实现细节1.shell的一些细节2.用户名、主机名、工作目录2.输入命令3.改为循环4.切割字符串5.普通命令的执行6.内建命令的处理7.子进程的退出码8.总结 二、模式实现shell完整代码 一、shell的实现细节 1.shell的一些细节 shell操作系统的一个外壳程序。 s…

笔记:pycharm当有多个plt.show()时候,只显示第一个plt.show()

import matplotlib.pyplot as plt import numpy as np# 创建数据 x np.linspace(0, 10, 100) y1 np.sin(x) y2 np.cos(x) y3 np.tan(x) y4 np.exp(x)# 创建一个2x2的子图网格 # fig plt.figure() fig,((ax1, ax2), (ax3, ax4)) plt.subplots(nrows2, ncols2, figsize(8,…

角色管理--创新产品专家岗

研发组织管理--角色管理--创新产品专家岗 定位 部门创新业务的牵头人&#xff0c;提升部门的创新氛围&#xff0c;业务的拓边者 所需资质 对当前业务范围和内容有整体的了解和认知较强的自驱力和推动能力&#xff0c;能够牵头推动协助方共同配合尝试创新落地拥有较强的0-1能…

【matlab程序】matlab画台风符号和实例应用

【matlab程序】matlab画台风符号和实例应用 没有看文献&#xff0c;不知道文献中的符号什么样子&#xff0c;据我理解为这样子的&#xff1a; 因此&#xff0c;按照自己的理解做了这期。 结果浏览&#xff1a; 台风符号一切可改&#xff0c;可细细改。可是我不发论文&#xf…