论文解读|用于从RGB-D数据进行3D物体检测的Frustum PointNets

news2024/10/6 8:22:18

原创 | 文 BFT机器人 

图片

01

摘要

论文研究了室内和室外场景中基于RGBD数据的3D目标检测。论文的方法不仅仅依赖于3D方案,而是利用成熟的2D对象检测器和先进的3D深度学习进行对象定位,即使是小对象也能实现高效率和高召回。

直接在原始点云中学习,可以在强遮挡或非常稀疏的点下也能够精确地估计3D边界框。在KITTI和SUN RGB-D 3D检测基准测试中,此方法展现出显著的优势,不仅具有实时能力,而且在性能上表现出色。

02

介绍

这篇论文介绍了一种用于从RGB-D数据中进行3D物体检测的新框架,称为"Frustum PointNets"。该方法通过将深度图像转换为3D点云并利用PointNets网络处理点云数据,实现了在三维空间中对物体进行分类和定位的任务。

与以往的方法不同,该方法以3D为中心,直接在3D空间中操作点云数据,而不是将RGB-D数据视为2D地图。通过在3D坐标上连续应用变换,点云被对齐成一系列更受约束和规范的帧,使得3D几何图案更加明显,从而更容易进行3D物体检测。此外,该方法可以更好地利用3D空间的几何和拓扑结构,使得学习者可以更自然地参数化和捕获许多几何结构,如重复、平面性和对称性。

论文展示了该方法在KITTI 3D物体检测和鸟瞰图检测等基准测试中取得了领先地位。与之前的技术相比,"Frustum PointNets"在3D汽车AP上的效率提高了8.04%,运行速度高达5 fps。同时,在室内RGBD数据上,该方法在SUN-RGBD基准测试中也取得了显著的性能提升。

论文的主要贡献包括提出了新的框架"Frustum PointNets",展示了如何训练3D物体探测器并在基准测试中实现了最先进的性能,同时提供了广泛的定量评估和定性结果来验证该方法的优势和局限性。

二维目标检测器:

图片

03

相关工作

基于RGB-D数据的3D目标检测

此节介绍了解决3D检测问题的不同方法,包括基于前视图像的方法、基于鸟瞰图的方法以及基于3D的方法。前视图像的方法利用RGB图像和形状先验或遮挡模式进行三维边界框推断,而基于鸟瞰图的方法则将LiDAR点云投影到鸟瞰图中,使用区域建议网络进行三维边界框建议。然而,这些方法在检测小物体和多物体场景方面存在一定滞后和适应性不足。

相比之下,研究人员提出了基于3D点云的方法。一些方法使用支持向量机训练手工设计的几何特征来进行3D目标分类,然后使用滑动窗口搜索定位目标。其他方法将整个场景的点云转换为体积网格,并使用3D体积CNN进行目标提议和分类。

然而,由于高昂的三维卷积成本和大的搜索空间,这些方法的计算成本较高。最近,也有一些2D驱动的3D目标检测方法,但他们使用的是手工制作的特征和简单的全连接网络,速度和性能上都不是最优的。

相较于这些方法,该研究提出了一种更灵活有效的解决方案,即使用深度3D特征学习(PointNets)。将深度数据表示为点云,并利用先进的3D深度网络(PointNets)能更有效地利用3D几何结构。这种方法在解决3D检测问题上具有优势。

点云上的深度学习

此节总结了现有的在点云处理方面的方法。大多数方法在进行特征学习之前都会将点云转换为图像或体积的形式。有些方法采用体网格方法将点云转换为体网格,并将图像CNN泛化为3D CNN。

另一些方法设计了更高效的3D CNN或神经网络架构来利用点云的稀疏性。然而,这些基于CNN的方法仍然需要对点云进行量化处理。最近出现了一些新型的网络架构,如PointNets,直接使用原始的点云数据而不进行转换。PointNets已经在单个对象分类和语义分割方面得到了应用,而本文则探索了如何将这种架构扩展应用于3D对象检测。

04

三维检测与Frustum PointNets

图片

如图所示,三维目标检测系统包括三个模块:截锥体建议、三维实例分割和三维模态边界框估计。首先,使用二维CNN对象检测器对二维图像区域进行检测和分类。然后,将这些二维区域转换为3D截锥体提案。

对于每个截锥体内的点云(每个点具有n个点和c个通道,如XYZ坐标和强度),通过对每个点进行二值分类来分割出对象实例。根据分割后的目标点云(具有m个点和c个通道),使用轻量级回归点网(T-Net)进行平移对齐,使其质心接近模态盒(3D边界框)的中心。最后,使用盒估计网络对目标的模态三维边界框进行估计。

Frustum建议

利用二维目标检测器在RGB图像中提取二维目标区域,并对这些区域进行分类。然后,利用相机投影矩阵,将这些二维边界框提升到3D截锥体中,定义了物体的3D搜索空间。接下来,他们收集截锥内的所有点,形成一个截锥点云。

由于截锥可能朝向多个方向,点云的位置变化较大,所以为了提高算法的旋转不变性,他们通过旋转截锥体的中心轴使其与图像平面正交。这个过程被称为从RGB-D数据中提取截锥体点云的截锥体建议生成。

他们采用了基于FPN的模型,并在ImageNet分类和COCO目标检测数据集上预训练模型权重。然后,在KITTI 2D目标检测数据集上进一步微调模型权重,以分类和预测3D模态边界框。有关二维检测器训练的更多细节可在论文附录中找到。

三维实例分割

在给定一个二维图像区域及其对应的三维图像的情况下,实现三维目标检测的方法。论文指出直接在深度图上使用二维CNN回归三维对象位置并不容易,因为遮挡和混乱的情况在自然场景中很常见,可能导致严重的3D定位问题。

为了解决这个问题,论文建议在3D点云中进行实例分割,而不是在2D图像中进行。通过基于点云的圆锥体网络实现三维实例分割,然后能够实现基于残差的三维定位,预测三维边界框的中心在一个局部坐标系中。这种方法可以应对不同传感器设置下物体距离的变化。

图片

该网络在截锥体中提取点云,并预测每个点属于感兴趣对象的概率。每个截锥体只包含一个感兴趣的对象,而其他点可能是不相关的区域、遮挡物体或位于感兴趣对象后面的实例。

网络通过学习遮挡和杂波模式,并识别某一类物体的几何形状来进行分割。在多类检测情况下,还利用2D检测器的语义信息进行更好的实例分割。经过3D实例分割后,提取被分类为感兴趣对象的点,并进一步规范化其坐标以提高算法的平移不变性。作者故意不缩放点云,以保持局部点云的实际大小,有助于框大小的估计。

图片

三维模态边界框估计

给定分割的对象点(在3D掩模坐标中),该模块通过使用盒回归PointNet和预处理变压器网络来估计对象的面向模态的3D边界框。

论文提出了基于T-Net的学习三维对齐方法。尽管我们已经对被分割的对象点按照质心位置对齐,但发现掩模坐标框的原点可能离模态盒中心很远。

为此,论文引入了轻量级回归PointNet(T-Net),用于估计完整对象的真实中心,并通过转换坐标,将预测的中心调整为原点。T-Net的架构和训练与之前的工作类似,可以看作是一种特殊类型的空间变压器网络(STN)。与原始STN不同的是,论文采用显式监督来预测从掩模坐标原点到真实物体中心的中心残差。

图片

对于给定3D物体坐标中的物体点云,盒估计网络用于预测给定3D物体点云中的物体的模态边界框,即使该物体的一部分不可见也能进行预测。网络架构类似于对象分类,但不再输出对象分类分数,而是输出3D边界框的参数。

在参数化3D边界框时,论文采用中心(cx, cy, cz)、大小(h, w, l)和朝向角θ(沿上轴)来表示。我们采用"残差"方法对框的中心进行估计。盒估计网络预测的中心残差与之前的T-Net中心残差和被掩点的质心结合,从而恢复绝对中心。

对于盒的大小和航向角度,我们采用之前的工作中的方法,使用分类和回归混合公式。具体来说,我们预定义了N个大小的模板和N个相等间隔角度的框。论文的模型将尺寸/角度分类到预定义的类别,并预测每个类别的残差值来调整高度、宽度、长度和角度。最后,净输出总共为3 + 4×NS + 2×NH数。

图片

多任务损失训练

论文优化了涉及的三个网络(3D实例分割PointNet, T-Net和模态盒估计PointNet)的多任务损失。

图片

针对最终的三维框精度进行优化,引入了一种新的正则化损失,即角损失。该损失旨在优化所有三个参数(中心、大小和方向),以获得最佳的三维框估计,特别是在IoU度量下,避免航向角度的偏离对三维框的精度产生主导影响。通过角损失的加入,可以实现对中心、大小和方向等参数的共同优化,从而提高三维框的准确度。

图片

05

实验

实验分为三个部分。首先,比较了KITTI和SUN-RGBD上最先进的3D目标检测方法。其次,论文提供了深入的分析来验证我们的设计选择。最后,展示了定性结果,并讨论了论文方法的优势和局限性。

图片

Frustum PointNet模型的实验结果和观察。主要观察如下:

对于合理距离内未遮挡物体的简单情况,模型输出的3D实例分割蒙版和3D边界框非常准确。

模型甚至可以从部分数据中预测正确的模态3D框,即使使用很少的点。这些结果对于人类来说,仅仅使用点云数据来注释是困难的。

在一些情况下,虽然在图像中定位具有许多附近甚至重叠的2D框的物体可能具有挑战性,但转换到3D空间后,定位变得更容易。

模型的一些失败模式表明可能需要改进的方向。例如,在稀疏点云中,姿态和大小估计可能不准确,图像特征可能有助于解决这个问题。

当一个截锥体中有来自同一类别的多个实例时,模型可能会输出混合的分割结果。如果能够在每个截锥体中提出多个3D边界框,可能可以缓解这个问题。

2D检测器有时会因为光线较暗或遮挡较强而错过目标,但三维实例分割和模态三维框估计PointNets并不局限于RGB视图建议,也可以扩展到鸟瞰图中提出的3D区域。

总的来说,该模型在许多情况下表现良好,但也面临一些挑战和改进的空间。

作者 | 淳豪

排版 | 居居手

更多精彩内容请关注公众号:BFT机器人
本文为原创文章,版权归BFT机器人所有,如需转载请与我们联系。若您对该文章内容有任何疑问,请与我们联系,将及时回应。

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

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

相关文章

如何让GPT自己命令自己?榨干最后一丝智能,解放双手!

1.让GPT先别说话 2.接下来,看看它学的怎么样 使用成功了!效果拔群! 3.接下来,让他回答自己生成的指令: 效果比想象的还要好!果然最懂GPT的还是它自己,生成的prompt比自己手写的prompt更加精准有…

rocketmq客户端本地日志文件过大调整配置(导致pod缓存cache过高)

现象 在使用rocketmq时,发现本地项目中文件越来越大,查找发现在/home/root/logs/rocketmqlog目录下存在大量rocketmq_client.log日志文件。 配置调整 开启slf4j日志模式,在项目启动项中增加-Drocketmq.client.logUseSlf4jtrue因为配置使用的…

Bug管理规范

目录 1.目的 2.角色和职责 3.缺陷等级定义 4.缺陷提交原则 5.缺陷流转流程 5.1创建缺陷 5.2缺陷分拣/分配 5.3研发认领缺陷 5.4.研发解决缺陷 5.5关闭缺陷 5.6缺陷激活 1.目的 项目过程中对缺陷管理的规则,明确提单规范、用例优先级的选择规则、走单流程、…

为Android构建现代应用——应用架构

选择风格(Choosing a style) 我们将依照Google在《应用架构指南》中推荐的最佳实践和架构指南来构建OrderNow的架构。 这些定义包括通过各层定义组件的一些Clean Architecture原则。 层次的定义(Definition of the layers) 在应用程序中,我们将定义以下主要层次…

【C++ 进阶】继承

一.继承的定义格式 基类又叫父类,派生类又叫子类; 二.继承方式 继承方式分为三种: 1.public继承 2.protected继承 3.private继承 基类成员与继承方式的关系共有9种,见下表: 虽然说是有9种,但其实最常用的还…

【教学类-34-07】20230726拼图(“菱形”凹凸拼图)3*4格子(中班主题《个别化拼图》偏美术)

作品展示: 背景需求 我尝试将拼图的“圆形凹凸角”变成"正方形凹凸角”,没有成功,但做出了“菱形凹凸角”。 实用性思考: 1、这种菱形凹凸角与正方形结构近似,裁剪难度中等(比圆角容易剪&#xff0…

Android Studio Giraffe 发布,快来看有什么更新吧

又双叒叕到了「激动人心」 的 Android Studio 更新,这次更新的版本是 Giraffe | 2022.3.1,本次更新的 Giraffe(长颈鹿)将 IntelliJ 平台升级到 2022.3 版本,也将 AGP 支持提高到 8.1 ,虽然最低支持 3.2&…

LED智能照明在商业照明中的应用都有哪些?SLM421A数明深力科带你一起去了解

数明深力科SLM421A系列产品是用于两通道、高精度恒流源的LED线性驱动芯片。无需功率电感,无频闪、无EMC困扰,支持高频率PWM调色调光,在LED智能照明产品运用中周边线路简单,成本低。 SLM421每路驱动仅需要从SET到GND接一个电阻即可…

fpga_pwm呼吸灯(EP4CE6F17C8)

文章目录 一、呼吸灯二、代码实现三、引脚分配 一、呼吸灯 呼吸灯是指灯光在微电脑的控制之下完成由亮到暗的逐渐变化,使用开发板上的四个led灯实现1s间隔的呼吸灯。 二、代码实现 c module pwm_led( input clk ,input rst_n ,output reg [3:0] led ); …

从安装到实战!Citespace保姆级教程!

来源:浙师教育研会 软件介绍 Citespace是一款文献梳理软件 支持从主要来源(如Web of Science,Scopus,Dimensions,CNKI,CSSCI和其他一些来源)检索的书目和引文数据。能够把文件之间的关系&…

IntelliJ IDEA流行的构建工具——Gradle

IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。 如…

华为数通HCIP-ISIS原理与配置

IS-IS的基本概念 isis(中间系统到中间路由协议) 链路状态路由协议、IGP、无类路由协议; IS-IS是一种链路状态路由协议,IS-IS与OSPF在许多方面非常相似:运行IS-IS协议的直连设备之间通过发送Hello报文发现彼此,然后建…

用Python实战,畅享音乐海洋,一键采集你喜爱的音乐!

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 环境使用: Python 3.8 解释器 Pycharm 编辑器 模块使用: requests >>> pip install requests re 第三方模块安装方法: win R 输入cmd 输入安装命令 pip install 模块名 (如果你觉得安装速…

逻辑的极限

逻辑的极限,数学和沉思 发表于康托尔的天堂 当逻辑出错时会发生什么? 让我们看看为什么排除中间定律是错误的(有时),发现数学核心的基本问题,然后再最终尝试解决出了什么问题。 您还将学习如何理解-1的负根…

Nvlddmkm错误

问题描述: 使用maya或多开应用,会不定期黑屏 电脑配置如下: 黑屏时,系统错误日志如下: 处理方式: 1、更换旧版本显卡驱动或更新显卡驱动 (目前从Navid下载的都是新版本显卡驱动 &#xff…

Linux推出Debian 12.1,并进行多方面系统修复

据了解,Debian是最古老的 GNU / Linux 发行版之一,也是许多其他基于 Linux 的操作系统的基础,包括 Ubuntu、Kali、MX 和树莓派 OS 等。 此外,该操作系统以稳定性为重,不追求花哨的新功能,因此新版本的发布…

3ds Max图文教程: 创建致命的冠状病毒动画

推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 病毒建模 步骤 1 打开 3ds Max。 打开 3ds Max 步骤 2 在透视视口中创建一个半径为 50,线段为 20 的 GeoSphere。 创建地球 步骤 3 打开修改器列表并将置换修改器应用于地理 球。 置换…

Python数据分析实战-dataframe筛选某字段是(精确匹配)某些值的记录(附源码和实现效果)

实现功能 Python数据分析实战-data[data[].isin([])],筛选dataframe某字段是(精确匹配)某些值的记录 实现代码 import pandas as pddf {DataBase:[mysql,test,test,test,test],table:[user,student,course,sc,book]} df pd.DataFrame(df)…

SRC | 逻辑漏洞原理及实战

前言 作者简介:不知名白帽,网络安全学习者。 博客主页:不知名白帽_网络安全,CTF,内网渗透-CSDN博客 网络安全交流社区:https://bbs.csdn.net/forums/angluoanquan 目录 逻辑漏洞基础 概述 分类 URL跳转漏洞 概述 危害 漏洞…

CGT Asia嘉年华 | 2023单细胞测序与精准医疗论坛10月广州召开

单细胞测序技术是生物技术发展史中的里程碑式技术,目前在肿瘤研究、免疫研究、神经生物学研究及发育研究等领域都有越来越广泛的应用。单细胞测序技术可以发现稀少肿瘤细胞并进行动态监控,有助于肿瘤的个性化和精准治疗,对于精准医疗的发展至…