一文尽览 | 基于点云、多模态的3D目标检测算法综述!(Point/Voxel/Point-Voxel)(下)

简介: 目前3D目标检测领域方案主要包括基于单目、双目、激光雷达点云、多模态数据融合等方式,本文主要介绍基于激光雷达雷达点云、多模态数据的相关算法,下面展开讨论下~


基于Point-Voxel



PV-RCNN


基于Point-Voxel方法是介于point-based和voxel-based之间的一种方式。PV-RCNN是首个经典point-based和voxel-based结合的网络,论文提出了Voxel Set Abstraction操作,将Sparse Convolution主干网络中多个scale的sparse voxel及其特征投影回原始3D空间,然后将少量的keypoint (从点云中sample而来) 作为球中心,在每个scale上去聚合周围的voxel-wise的特征。这个过程实际上结合了point-based和voxel-based两种点云特征提取的结构,同时将整个场景的multi-scale的信息聚合到了少量的关键点特征中,以便下一步的RoI-pooling。论文还提出了Predicted Keypoint Weighting模块,通过从3D标注框中获取的免费点云分割标注,来更加凸显前景关键点的特征,削弱背景关键点的特征。除此之外,论文还设计了更强的点云3D RoI Pooling操作,也就是论文提出的RoI-grid Pooling: 与前面不同,每个RoI里面均匀的sample一些grid point,然后将grid point当做球中心,去聚合周围的keypoint的特征。通过Voxel-to-keypoint与keypoint-to-grid这两个point-voxel特征交互的过程,显著增强了PV-RCNN的结构多样性,使其可以从点云数据中学习更多样性的特征,来提升最终的3D检测性能。算法在仅使用LiDAR传感器的setting下,在自动驾驶领域Waymo Open Challenge点云挑战赛中取得了(所有不限传感器算法榜单)三项亚军、Lidar单模态算法三项第一的成绩,以及在KITTI Benchmark上保持总榜第一的成绩超过半年。

640.png



SA-SSD


SA-SSD将二阶段方法独有精细回归运用在一阶段的的检测方法上,为此作者采用了SECOND作为backbone,添加了两项附加任务,使得backbone具有structure aware的能力,定位更加准确,如下图所示,辅助头参与训练,推理阶段可以消除!


640.png


PV-RCNN++


PV-RCNN++提出了基于点体素区域的卷积神经网络,用于从点云中检测三维目标。首先,论文提出了一种新的三维检测器,它包括两个步骤:体素到关键点场景编码和关键点到网格RoI特征提取。这两个步骤将3D体素CNN与基于PointNet的集合抽象深度集成,以提取判别特征。除此之外,还提出了一个先进的框架PV-RCNN++,用于更有效和准确的3D对象检测。它包括两个主要的改进:一个是分区化的以提案为中心的策略,用于高效地生成更多代表性的关键点;另一个是矢量池聚合,用于以更少的资源消耗更好地聚合局部点特征。通过这两种策略,PV-RCNN++比PV-RCNN快两倍以上,同时在检测范围为150m×150m的大规模Waymo开放数据集上也实现了更好的性能。此外,提出的PV-RCNN在Waymo开放数据集和高度竞争的KITTI基准上都实现了最先进的3D检测性能。


640.png


基于多模态数据



基于多模态方法主要是结合点云、图像、深度图、range图等其中的两种或者多种来完成3D检测,性能一般要比单模态数据好。


MV3D


3D点云数据的一些主要问题可以体现在其稀疏性、无序性、冗余性三个方面。对于稀疏性,现有的一些方法喜欢引入体素(Voxel)进行三维空间的划分,然后将稀疏、无序,分布不均匀的点云数据分配于不同的体素,接着利用MLP、卷积、池化等操作实现对体素(点云)进行特征提取,很明显这种方法会引入大量的计算量。考虑到这一点,MV3D并没有使用类似的方法,而是将点云数据和图片数据映射到三个不同的维度进行特征融合,然后进行物体的定位和识别。这三个维度分别为:点云的BEV图、点云的前视图以及RGB图。MV3D结构如下图所示,输入为BEV和FV以及RGB图,在BEV分支申城3D proposal,然后送入到三个分支上,最后通过ROI pooling提取特征,然后汇总三个分支特征,进行分类和回归!相比于同时代的方法,KITTI上SOTA!


640.png


AVOD


AVOD输入RGB图像以及BEV(Bird's Eye View) Map,利用FPN网络得到二者全分辨率的feature map,然后通过crop&resize提取两个feature map对应的feature crop并融合,最后挑选出3D proposal以实现3D物体检测,整个过程是two-stage detection,可以理解为MV3D的加强版。相比于MV3D最大改进是3D RPN,MV3D使用的是微调的VGG16,同时做了一些操作(upsampling+remove some pooling layer),使得最终的feature map相对于input是 8x downsampling ;而AVOD使用的是FPN,包含了encoder和decoder,在保证最终的feature map相对于input是full-resolution的同时,并且还结合了底层细节信息和高层语义信息,因此能显著提高物体特别是小物体的检测效果。同时期来说,速度快,但性能未有非常大优势!


640.png640.png



MVXNet


MVXNet提出目前3D检测网络大多基于点云数据,通常基于单一模式,无法利用来自其它模式(如camera)的信息。虽然有几种方法融合不同模态的数据,但这些方法要么使用复杂的pipeline顺序处理模态,要么执行后期融合,无法在早期阶段了解不同模态之间的相互作用。MVXNet提出了点融合和体素融合:两种简单而有效的早期融合方法,通过利用最近引入的VoxelNet框架,将RGB和点云模式结合起来。在KITTI数据集的评估表明,与仅使用点云数据的方法相比,性能有显著提高。此外,通过使用简单的单级网络,所提出的方法提供了与最先进的multimodal算法对比的结果,在KITTI基准上的六个鸟瞰图和3D检测类别中的五个类别中排名前二。

640.png


PointPainting


3D物体目标检测任务最好采用哪种传感器?Camera还是Lidar?不同团队给出了不同的答案。Camera和Lidar作为目标检测领域的两大巨头传感器,各有优缺点:图像的分辨率比较高,纹理信息比较丰富,但深度信息相对模糊;点云的空间信息、深度信息比较准确丰富,但数据往往比较稀疏、不够完整。由于两种传感器在一些方面存在互补关系,所以很多人相信我们可以利用多模态的方案来实现强强联合,开创1+1>2的局面,但实际却是...各种1+1<1。这是因为图像和点云两种数据之间存在着完全不同的特性,这种差异性致使我们无法通过一些“理所当然”的方案来实现性能的叠加。虽然已经有很长一段时间各大榜单被Lidar-only的方案所霸占(最近好像有逆转的趋势),但在之间也不乏一些多模态方法的优秀工作,比如PointPainting。PointPainting是工业界发表的一篇多模态3D物体目标检测Paper,在文中作者提出了一种图像与点云的新型融合方案。PointPainting提出一种顺序融合的方法来解决该问题,其工作原理是将LIDAR点投影到图像语义分割网络的输出中,并将分类分数附加到每个点云上,Painted的点云可以输入任何LIDAR点云的网络,在Point-RCNN、voxelnet、pointpillar上均实现涨点。PointPainting是按顺序设计的,因此不能端到端优化!


如下图所示,PointPainting架构包括三个主要阶段:(1)基于图像的语义网络(2)融合(绘制)和(3)基于激光雷达的检测器。在第一步中,图像通过语义分割网络获得逐像素分割分数。在第二阶段,将激光雷达点投影到分割掩模中,并用在前一步骤中获得的分数进行装饰。最后,基于激光雷达的目标检测器可用于装饰(绘制)的点云,以获得3D检测结果!

640.png


3D-CVF


3D-CVF提出由于视角不同,相机特征投影到3D世界坐标中时,会丢失空间信息,因为这个转换是一对多(one-to-many)的映射。此外,投影坐标与LIDAR 3D坐标之间可能存在不一致性,因此如何在不损失信息的情况下融合2种特征至关重要。论文提出了一种融合camera和LIDAR进行3D目标检测的网络,camera和LIDAR存在的一个难点是:二者获取信息的视角不同,因此,在不丢失信息的情况下组合两个异构特征图毕竟困难。3D-CVF采用自动校准投影 (auto-calibrated projection),将2D camera特征转换为与BEV中的 LiDAR 特征对应性最高的平滑空间特征图。然后,应用gated feature fusion network,利用空间注意力机制,根据region适当地混合camera和LIDAR的特征。紧接着,在proposal refinement stage,进一步实现了camera-LIDAR的特征融合。使用ROI-based feature pooling分别池化low-level的camera和LIDAR特征,然后与联合camera-LIDAR特征融合以进一步refine结果。在KITTI和 nuScenes取得了SOTA结果。

640.png


CLOCs


CLOCs融合提供了一个低复杂度的多模态融合框架,显著提高了单模态检测器的性能。在任何2D和3D检测器的非最大抑制(NMS)之前,CLOCs对组合输出候选对象进行操作,并经过训练,利用它们的几何和语义一致性,生成更准确的最终3D和2D检测结果。我们对具有挑战性的KITTI目标检测基准的实验评估,包括3D和鸟瞰指标,显示了显著的改进,特别是在长距离,比最先进的基于融合的方法。在提交时,CLOCs在所有基于融合的方法中排名最高的官方KITTI排行榜。


640.png


工程落地支持



一般来说多模态性能>基于点云>基于双目>基于双目,单目本身无法获取深度学习,天生的缺陷导致其性能并不高,双目虽然可以借助几何关系获取更高的表征,但还是逊色于点云Lidar方案!下面是nuscene上3D检测榜单结果,可以看到基于camera的网络最高mAP在0.525,激光雷达方式在0.688,多模态方式(以最常见的Lidar+Camera为例)在0.756!

基于激光雷达:


640.png


基于Camera的:


640.png


基于多模态:


640.png


总结



聊一下目前工程上使用比较多的模型,基于单目的主要是FCOS3D、SMOKE、FCOS3D++等结构,结构相对简单,纯卷积方案(BEV感知也是一部分,但不在今天的讨论范围内!)


双目方案整体来说,相关研究较少(不那么热门),主要表现在开源数据base少,而且业内的一些自动驾驶方案不采用双目视觉方案,目前的一些思路主要是双目视觉图像生成深度图/伪激光雷达数据,然后送入基于点云的3D检测网络中,解决了激光雷达昂贵的问题。也有一些网络联合深度估计和3D检测任务,端到端。每个公司的落地方案暂时不明确,仁者见仁智者见智!


基于Lidar方案比较受欢迎的是PointPillars、SECOND,在一些自动驾驶公司和造车新势力产品上被广泛采用,速度快,性能佳!另外,一些框架如商汤的mmdeploy以及支持PointPillars到ONNX、TensorRT、OpenVINO了,部署起来很方便!不得不说,mmlab很给力~


多模态领域上使用CLOCs、Fast-CLOCs、PointPainting(pointaugmenting效果更好)使用较多,简单高效、容易部署!


原文首发微信公众号【自动驾驶之心】:一个专注自动驾驶与AI的社区(https://mp.weixin.qq.com/s/NK-0tfm_5KxmOfFHpK5mBA

相关文章
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于MSER和HOG特征提取的SVM交通标志检测和识别算法matlab仿真
### 算法简介 1. **算法运行效果图预览**:展示算法效果,完整程序运行后无水印。 2. **算法运行软件版本**:Matlab 2017b。 3. **部分核心程序**:完整版代码包含中文注释及操作步骤视频。 4. **算法理论概述**: - **MSER**:用于检测显著区域,提取图像中稳定区域,适用于光照变化下的交通标志检测。 - **HOG特征提取**:通过计算图像小区域的梯度直方图捕捉局部纹理信息,用于物体检测。 - **SVM**:寻找最大化间隔的超平面以分类样本。 整个算法流程图见下图。
|
29天前
|
机器学习/深度学习 监控 算法
基于反光衣和检测算法的应用探索
本文探讨了利用机器学习和计算机视觉技术进行反光衣检测的方法,涵盖图像预处理、目标检测与分类、特征提取等关键技术。通过YOLOv5等模型的训练与优化,展示了实现高效反光衣识别的完整流程,旨在提升智能检测系统的性能,应用于交通安全、工地监控等领域。
|
2月前
|
监控 算法 数据安全/隐私保护
基于三帧差算法的运动目标检测系统FPGA实现,包含testbench和MATLAB辅助验证程序
本项目展示了基于FPGA与MATLAB实现的三帧差算法运动目标检测。使用Vivado 2019.2和MATLAB 2022a开发环境,通过对比连续三帧图像的像素值变化,有效识别运动区域。项目包括完整无水印的运行效果预览、详细中文注释的代码及操作步骤视频,适合学习和研究。
|
2月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
76 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
1月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GA-PSO-SVM算法的混沌背景下微弱信号检测matlab仿真
本项目基于MATLAB 2022a,展示了SVM、PSO、GA-PSO-SVM在混沌背景下微弱信号检测中的性能对比。核心程序包含详细中文注释和操作步骤视频。GA-PSO-SVM算法通过遗传算法和粒子群优化算法优化SVM参数,提高信号检测的准确性和鲁棒性,尤其适用于低信噪比环境。
|
2月前
|
算法 安全
分别使用OVP-UVP和OFP-UFP算法以及AFD检测算法实现反孤岛检测simulink建模与仿真
本课题通过Simulink建模与仿真,实现OVP-UVP、OFP-UFP算法及AFD检测算法的反孤岛检测。OVP-UVP基于电压幅值变化,OFP-UFP基于频率变化,而AFD则通过注入频率偏移信号来检测孤岛效应,确保电力系统安全稳定运行。系统使用MATLAB 2013b进行建模与仿真验证。
|
1月前
|
存储 JSON 算法
TDengine 检测数据最佳压缩算法工具,助你一键找出最优压缩方案
在使用 TDengine 存储时序数据时,压缩数据以节省磁盘空间是至关重要的。TDengine 支持用户根据自身数据特性灵活指定压缩算法,从而实现更高效的存储。然而,如何选择最合适的压缩算法,才能最大限度地降低存储开销?为了解决这一问题,我们特别推出了一个实用工具,帮助用户快速判断并选择最适合其数据特征的压缩算法。
53 0
|
2月前
|
算法 计算机视觉 Python
圆形检测算法-基于颜色和形状(opencv)
该代码实现了一个圆检测算法,用于识别视频中的红色、白色和蓝色圆形。通过将图像从RGB转换为HSV颜色空间,并设置对应颜色的阈值范围,提取出目标颜色的区域。接着对这些区域进行轮廓提取和面积筛选,使用霍夫圆变换检测圆形,并在原图上绘制检测结果。
94 0
|
4月前
|
机器学习/深度学习 监控 算法
目标检测算法技术
8月更文挑战第11天
|
4月前
|
机器学习/深度学习 监控 算法
目标检测算法
8月更文挑战第5天
下一篇
DataWorks