IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【3D 目标检测】STD: Sparse-to-Dense 3D Object Detector for Point Cloud 详解 -> 正文阅读

[人工智能]【3D 目标检测】STD: Sparse-to-Dense 3D Object Detector for Point Cloud 详解

一 核心思想

这篇文章最主要的想法是更好的结合point-based和voxel-based方法,是一个2-stage的检测方法,与Faster RCNN类似,第一阶段进行proposal的选择,第二阶段对第一阶段的proposal进行refine处理。

除此之外,本文还提出Spherical anchor、PointsPool Layer的创新方法,不过个人认为只是对Pointrcnn与voxel的一种整合办法,pointrcnn负责stage-1,VFE作为stage-2的特征提取。

下图为算法的整个步骤。

二 核心步骤

本文提出的二阶段算法主要分为三大块,分别为Proposal Generation Module、Proposal Feature Generation和Box Prediction Network。

2.1 Proposal Generation Module

整体步骤如上图所示,核心步骤分为两步,分别为Spherical Anchor的proposal选择和基于Spherical Anchor的proposal选择出更精细的proposal。

2.1.1 Spherical Anchor

如上图所示,这边提出的spherical Anchor,是对每一个point都提出一个spherical anchor,也就是以这个point为中心,对每一个类别提出特定的半径作为这个spherical anchor的范围(car:2m;cyclist and people:1m ),仅仅是起到一个聚类的作用(后续需要用到这个聚类内的点进行特征提取。),之后仍然是有pre-define的hwl

作者提出这个spherical Anchor是因为作者认为其他的地方提出的传统的anchor还要考虑orientation的问题(不过看了很多论文之后,并不认为这个是个问题,因为只是给anchor加了一个pre-defineangle,或者根本就是直接预测。),于是为了不让angle影响对proposal的选取,提出了spherical Anchor。

然后,为了减少冗余的anchor,使用NMS,基于PointNet++得出的每个点的segmentation label score来选择排名前500的proposal作为下一步的输入。

注意,在进行NMS时,由于我们在这里采用的是spherical Anchor因此传统的IoU肯定是无法适用的,于是作者提出了PointsIoU,这边对PointsIoU的定义为: 两个区域交集面积上的点数与两个区域并集的点数的商。

?2.1.2 Proposal Generation Network

?本步骤也是stage-1的最后一步,是对之前一步经过NMS抑制后的输出的500个proposal进行进一步的筛选。这里也就用到spherical anchor的性质,基于PointNet的方法,对proposal相应的spherical anchor内的点进行特征的提取。当然在此之前,对每一个spherical anchor内的点的坐标首先转化到以该anchor的中心点(X,Y,Z)作为坐标系下的坐标(也就是对坐标的normalize操作。)。然后就是将spherical anchor内的每个点经过PointNet++后的segment featuresnormalize后的每个点的坐标作为输入,输入到PointNet网络中,提取这个proposal的特征,然后通过两个分支分别得出这个proposal的class label和local regression。具体框架见下图所示。

?在这里,spherical anchor的中心(Ax,Ay,Az)和预先定义的anchor的(Ah,Aw,Al)被用于NMS中(这边用到了预测出来的local regression参数来提取出真实的预测出来的bbox信息),以选择前300个proposal。注意NMS用到的是class label scoreoriented BEV IoU

?2.2 Proposal Feature Generation

这里开始了stage-2的阶段,首先是对stage-1阶段传过来的300个proposal进行特征处理。stage-2也就没有spherical anchor的身影了。

这里对与每一个proposal,将其内部的点进行VFE的处理。在进行VFE操作之前,对于每个建议,我们通过减去proposal中心(X, Y, Z)值并将它们旋转到proposal预测方向来获得normalized坐标系。

在进行VFE(128,128,256)处理之后,得到这个proposal的体素特征(dl×dw×dh×256),然后将体素特征进行flatten操作,也就变为了(n×256)n的值也就等于dl*dw*dh

?2.3 Box Prediction Network

对于stage-2的最后一个阶段,作者将预测分为了两个大的预测branch,分别为box estimation branch和IoU estimation branch。box estimation branch预测常规的class label score和location score;IoU estimation branch预测该proposal与真实框的IoU(至于为什么要预测IoU而不是直接使用,是因为在测试集上,无法得知IoU)

将预测出的IoU与class进行相乘,感觉相当于是attention机制,这一步作者说是比单纯的用class score来进行NMS要好,实验确实验证了该观点。

2.4 Loss Function

?总损失函数为:

1、首先是对stage-1的损失函数Lprop的讨论:

其中Lseg表示PointNet++预测出的segmention label loss(这里也就是预测前景点与背景点),使用flocal loss;siui分别表示stage-1中第i个预测的classification score和ground-truth label;NclsNpos分别表示stage-1的anchors的数量和前景的数量;Lcls只是简单的softmax cross entropy loss。

这边需要对LlocLang更进一步讨论:

(1) 对于Lloc,假定预先给每个proposal定义的anchor(这里就是传统的anchor参数,作者仅仅是在第一阶段提出了spherical anchor的概念,这边都是传统的anchor)为(Al,Aw,Ah),这个proposal的中心为(Ax,Ay,Az)。其对于的ground truth为(Gx,Gy,Gz,Gl,Gw,Gh),则Lloc定义为:

?其中Ldis表示Smooth-L1 loss。Actr表示预测出的center residual;Asize表示size residual;Gctr表示center residual target;Gsize表示size residual target。且GctrGsize表示为:

?(2) 对于Lang,包含orientation classification class和residual prediction loss,具体为:

?其中,ta-clsta-res表示预测出的angle class和residual;va-clsva-res表示其target。

2、其次对于stage-2的Lbox,对于Box Estimation Branch的loss与stage-1相同(只是没有加上Lseg)。

对于IoU Estimation Branch的loss,将其分为两个loss,第一个loss为3D IoU loss,第二个为corner loss。

其中corner loss表示为:

?PkGk分别表示预测出的点和ground truth的点。

三 总结

本文提出的方法,首先采用了segment label进行NMS抑制,这一步减少了后续的计算量,算是本文的创新点之一。然后是spherical anchor,作者认为该方法可以减少计算量,不过本人认为只是单纯的起到了聚类特征的作用。最后预测的IoU,类似于attention机制,确实在精确性上提升,可以考虑用在其他算法上。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-06 11:07:54  更:2021-09-06 11:11:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 16:42:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码