【3D目标检测】Frustum PointNets

IT资讯2年前 (2023)发布 IT大王
0

《Frustum PointNets for 3D Object Detection from RGB-D Data》论文笔记

  • 一、论文思路
  • 二、模型介绍
    • 2.1 模型结构
    • 2.2 实现细节
      • 2.2.1 Frustum Proposal
      • 2.2.2 3D Instance Segmentation
      • 2.2.3 Amodal 3D Box Estimation
      • 2.2.4 模型结构
      • 2.2.5 损失函数
  • 三、实验结果

代码
论文

一、论文思路

本文先通过2D模型通过图像生成2D的bounding box,再通过frustum(平截头体)的方式去映射成一个3D的候选区域。在模型的第二阶段,本文使用3D基于点云的模型(如PointNet和PointNet++)去对 上一阶段frustum找出的候选区域进行实例分割和最终3D bounding box的回归。

二、模型介绍

2.1 模型结构

【3D目标检测】Frustum PointNets

  • 从图中的第一部分可以看出,该模型首先通过一个2D的CNN去得到一个物体2D的bounding box和它的类别,然后将2D的bounding box映射成一个3D的frustum proposal。
  • 图中的第二部分是一个实例分割的网络,可以将上一步frustum proposal中的点采样到NCN\times C,其中NN是点的个数,CC是每个点的特征维度,包含XYZ以及强度信息。最终这些点和这个proposal通过2D CNN得到的类别的one hot vector一起作为这一步实例分割网络的输入,输出一个对于N个点的mask掩码,被掩码过滤过的MM个点继续作为下一阶段的输入。
  • 最后一阶段,一个基于PointNet的TNet网络,将输入点校正对齐,并通过另一个网络回归预测出3D的bounding box。

2.2 实现细节

2.2.1 Frustum Proposal

通过一个投影矩阵,每一个2D的bounding box可以被映射成一个3D的frustum proposal。由于每一个frustum proposal的朝向都不一样,因此如下图过程(a)到(b),其会先将其旋转到与相机正交的方向,这样增加了后续算法的旋转不变性。

在2D的detection模型中,本文选用了FPN架构,在ImageNet上面训练,并在KITTI上面fine tune。

【3D目标检测】Frustum PointNets

2.2.2 3D Instance Segmentation

从下图可以看出,如果仅仅使用Frustum Proposal的话,得到的点云中还包含了大量的背景点,因此这一模块主要的功能就是将我们需要的前景从背景中分割出来。并且如上一张图(c),对于分割出来的前景点云还要将其中心化来引入平移不变性。

【3D目标检测】Frustum PointNets

2.2.3 Amodal 3D Box Estimation

【3D目标检测】Frustum PointNets


这一部分主要包含两个部分:

  • T-Net:和PointNet中的T-Net类似,只不过这里学习的不是旋转矩阵,而是一个物体中心点的残差,并且这里是有监督的。
  • Box Estimation Net:输出最终bounding box的各种参数,输出的维度为3+4NS+2NH3 + 4 NS + 2NH,其中3代表对于中心点的残差回归,是接在T-Net回归之后的;NS代表不同size的anchor个数,每个anchor有四个维度,分别是该anchor的置信度以及长宽高的残差回归;NH代表不同朝向的anchor,每个anchor有两个参数,分别是置信度和朝向角。

2.2.4 模型结构

模型的具体结构如下:

【3D目标检测】Frustum PointNets

2.2.5 损失函数

由于这是一个多任务优化算法,因此在损失函数中应包含用于图像分割的Pointnet的损失LsegL_{seg}用于坐标平移的T-Net的损失、和用于框出目标的损失三部分组成。具体的公式如下:

【3D目标检测】Frustum PointNets

  • Lc1regL_{c1-reg}Lc2regL_{c2-reg} 分别对应T-Net的坐标平移损失和box estimation的中心回归损失(也就是判断中心产生的损失)。
  • LhclsL_{h-cls}LhregL_{h-reg}分别对应朝向的类别损失和回归损失(即离散值anchor的类型分类,和连续值的回归)。
  • LsclsL_{s-cls}LsregL_{s-reg}分别代表box尺寸的类别损失和回归损失,与朝向类似。

上面的损失公式将box的尺寸和角度等参数视为独立的变量计算损失,但实际情况是box的尺寸和角度共同决定了box的信息,而最终得到的box的信息才是我们想要的。因此,frumstum pointnet引入了box的角损失(即对8个bounding box的corner进行损失计算),也就是上面的损失公式中的LcornerL_{corner},具体的计算公式为:

【3D目标检测】Frustum PointNets


这里在NSxNH个anchor中仅有正确的size和head朝向的那个box会计算损失(即其他时候=0)。对于第i个size的第j个朝向的box的第k个角PkijP^{ij}_k,会移动到ground truth box的中心,与每个对应的角算L1 Loss。为了考虑到翻转180度的问题,这里会算与180度旋转之后的角PP^{**}的损失,并取最小值。(后面最后一项中是对k求和而不是i,论文应该写错了)

三、实验结果

论文在detection的任务里比较了KITTI数据集(包含3D detection和鸟瞰图的detection)和SUN-RGBD数据集。

【3D目标检测】Frustum PointNets

【3D目标检测】Frustum PointNets


【3D目标检测】Frustum PointNets

【3D目标检测】Frustum PointNets

© 版权声明
好牛新坐标 广告
版权声明:
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com

相关文章