一、大体内容
PointRCNN和前面提到的VoxelNet、SECOND、PointPillar一阶段模型不同,如下图所示PointRCNN将目标检测任务分为两个阶段,第一个阶段借助点云分割得到前景点以及对应的候选目标框,第二阶段再对候选目标框进行优化调整。
二、贡献点
- 提出了一种新的基于自下而上的点云的三维候选框生成算法,该算法通过将点云分割为前景对象和背景来生成少量高质量的三维候选框。从分割中学习到的点表示不仅有利于候选框的生成,而且有助于后期的框细化。
- 提出3D边界框优化方法,对前面得到的候选框进行坐标细化。
- PointRCNN仅使用点云作为输入,并在KITTI 3D数据集上排名第一(截至2018年11月16日)。
三、细节
1、第一阶段采用的什么分割算法
采用前面介绍过的PointNet++网络作为BackBone,提取出每个点的特征向量。为后续前景点分割以及候选框生成提供基础特征。
2、第一阶段如何得到前景点(Foreground Point Segmentation)
在前面PointNet++提取的基础特征上,再借助一个分割分支估计出前景点。分割分支在训练时采用真实3D框中的点作为前景点,考虑到点云数据中前景点和背景点数量差距较大,所以分割分支的损失函数采用Focal Loss。
文中\(\alpha_t\)和\(\gamma\)的值设为0.25和2。
3、第一阶段如何生成3D候选框(Bin-based 3D Box Generation)
在前面PointNet++提取的基础特征上,借助一个回归分支来得到3D候选框。回归分支在训练时只回归前景点的3D包围框位置,这里还引入基于Bin的回归损失来约束候选框的生成,最后再对每个前景点的3D框进行Iou计算,以过滤重叠量较大的候选框(阈值文中给定的是0.8,在训练阶段保留300个候选框,在测试阶段仅保留100个)。
那基于Bin的回归损失又是什么呢?
和原先的主要区别在于对于X、Z以及角度\(\theta\)引入了类别损失,其他的Y,h, w, l还是只用到回归损失,这样做的目的文中说是能更好的估计物体的中心点(感觉像是把X,Z和角度划分成bin后,预测类别在预测其偏移量,和后续h,w,l给定物体尺寸类似,最终回归损失都是预测和给定值的偏移量)。
-
X,Z
文中说为了更好的估计出物体的中心点位置,其将XZ维度按照前景点位置将物体所在区域划分成等间隔的块,将每个块看成一个类别,对于X和Z维度不仅计算回归损失,还添加类别损失进行限制。
具体计算如下:
其中S表示范围(实验给定是3m),\(\delta\)表示间隔长度(0.5m)。 -
\theta
对于偏转角\(\theta\)也将一个圆周(360)划分成不同的块,然后计算角度类别损失和回归损失。 -
全部损失
按照前面介绍,损失分为x,z,\(\theta\)以及y,h,w,l两大块。
4、第二阶段的Point Cloud Region Pooling
在获得3D候选框后,我们的目标是基于先前生成的框来进一步优化其的位置和方向。为了学习每个框更具体的局部特征,提出根据每个3D框的位置,从第一阶段中汇集3D点及其对应的点特征,便于后续更好的进行框优化。
这一步的目的主要是将点的特征进行聚合,其可以分为以下两个步骤。
-
将候选框的范围扩大一个常量n(1.0m)
即将框\(b_i =(x_i,y_i,z_i,h_i,w_i,l_i,\theta_i)\) 变为\(b_i^e =(x_i,y_i,z_i,h_i + n,w_i + n ,l_i + n,\theta_i)\)
-
特征聚合
对\(b_i^e\)内部的所有点进行特征进行聚合,包括:原始点云坐标(x, y, z)反射强度(r),该点的类别(m, 前景或背景)以及该点在在第一阶段通过PointNet++得到的C维度的特征向量(\(f_p\))。
5、第二阶段的Canonical 3D bounding box refinement
这一部分对前面聚合的特征进一步划分为局部特征和语义特征,其中局部特征经过坐标变换后重新提取,语义特征就是PointNet++提取的特征向量\(f_p\)。
Canonical transformation
对每一个框建立一个坐标系,将坐标变换后文中说是可以更好的获取局部特征,这个坐标系的特点为:
- 坐标系的原点为proposal的中点;
- X和Z轴与水平地面平行且X轴为获选框朝向的位置;
- Y轴水平向下;
局部特征
但是坐标系改变后,点的深度信息难免会损失,为了解决这个问题,作者引入\(d^p = \sqrt{(x^p) ^ 2 + (yp)2 + (zp)2}\)来作为深度特征,所以经过坐标变换后提取的局部特征为:
\([r, m, d]\), r表示原始点云的强度信息,m表示点的类别(前景或背景),d表示深度特征。
框优化损失
如果获选框和真实框的IOU超过0.55,则将这个候选框作为学习目标。损失函数如下:第一项为框是Positive还是Negative的分类损失;第二项为Positive框的位置细化损失。
-
X, Z损失
参考前面第一阶段候选框生成的损失,这里的X和Z依旧采用bin_based损失,只不过这里对于真实标注框和候选框都做了坐标变换。
候选框:\(b_i = (x_i, y_i, z_i, h_i, w_i, l_i, \theta_i)\)变为\((b_i)^~ = (0, 0, 0, h_i, w_i, l_i, 0)\)
真实框:\(b_i^{gt} = ((x_i)^{gt}, (y_i)^{gt}, (z_i)^{gt}, h_i^{gt}, w_i^{gt}, l_i^{gt}, \theta_i{gt})\)变为\(b_i{gt} = ((x_i)^{gt} - x_i, (y_i)^{gt} - y_i, (z_i)^{gt} - z_i, h_i^{gt}, w_i^{gt}, l_i^{gt}, \theta_i^{gt} - \theta_i)\) -
角度损失
角度变换后表示的是真实框和候选框角度的差值,所以这里将其划分在\([-\frac{\pi}{4}, \frac{\pi}{4}]\),其类别及残差损失如下:
四、效果
实验结果显示PointRCNN表现较好。
最后
感谢你们的阅读和喜欢,我收藏了很多技术干货,可以共享给喜欢我文章的朋友们,如果你肯花时间沉下心去学习,它们一定能帮到你。
因为这个行业不同于其他行业,知识体系实在是过于庞大,知识更新也非常快。作为一个普通人,无法全部学完,所以我们在提升技术的时候,首先需要明确一个目标,然后制定好完整的计划,同时找到好的学习方法,这样才能更快的提升自己。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
四、AI大模型商业化落地方案
五、面试资料
我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】