作者:PCIPG-Zhb | 来源:3D视觉工坊
在公众号「3D视觉工坊 」后台,回复「原论文 」可获取论文pdf、代码、视频链接。
添加微信:dddvisiona,备注:3D点云,拉你入群。文末附行业细分群。
1 前言点云作为一种重要的数据表示,广泛应用于自动驾驶、增强现实和机器人技术等领域。由于点云数据量通常很大,对其进行采样以获得一个具有代表性的点集子集是三维计算机视觉中的一个基础和重要的任务。除了随机采样和最远点采样之外,大多数传统的点云采样方法都是基于数学统计的,例如均匀采样、网格采样和几何采样等,这些方法对于点云密度和分布比较敏感。最近,一些基于神经网络的方法开始通过端到端的任务驱动学习方式进行更好的任务定向采样,例如S-Net、SampleNet、DA-Net等。但是这些方法大多是基于生成模型的,而不是直接选择点。另一方面,为点云设计基于神经网络的局部特征聚合算子的工作越来越多。虽然其中一些(例如 PointCNN 、PointASNL 、GSS )在学习潜在特征时减少了点数,但由于处理过程中不存在真正的空间点,它们很难被认为是真实意义上的采样方法。此外,上述方法都没有将形状轮廓视为特殊特征。受 Canny 边缘检测算法和注意力机制的启发,本文提出了一种基于非生成注意力的点云边缘采样方法 (APES),结合了基于神经网络的学习和基于数学统计的直接点选择。APES使用注意力机制来计算相关图和样本边缘点,这些边缘点的属性反映在这些相关图中。提出了两种具有不同注意力模式的 APES。此外,我们的方法可以将输入点云下采样到任何所需的大小。基于邻居到点(N2P)注意,计算每个点与其相邻点之间的相关映射,提出了基于局部的APES
基于点对点 (P2P) 注意力,它计算所有点之间的相关性图,提出了基于全局的 APES
本文的贡献如下:
1)一种点云边缘采样方法,称为 APES,它结合了基于神经网络的学习和基于数学统计的直接点选择 2)通过使用两种不同的注意力模式,基于局部的 APES 和基于全局的 APES 的两种变体 2 相关背景传统点云采样方法
随机采样(RS):简单高效,但无法控制采样点分布。 最远点采样(FPS):迭代选择点云中最远点,目前最广泛使用。 深度学习点云采样方法
SampleNet:在S-Net基础上引入软投影操作。 MOPS-Net:学习采样变换矩阵与原点云相乘生成新点云。 PST-NET:使用self-attention层替代S-Net中的MLP层。 但是现有的深度学习采样方法大多基于生成模型,不能直接选择点,也没有考虑形状边缘作为特殊特征。
3 方法 3.1 图像中的Canny边缘检测Canny图像边缘检测流程:
(v) 通过抑制所有其他弱且不连接到强边的边来最终检测边缘。 替换的边缘检测核心思想是计算每个像素的梯度强度。可以更通用地考虑:
使用标准差代替了梯度计算,该方法相比原本的图像的Canny边缘检测器计算成本更高,但却可以将其应用于点云边缘采样。相比图像规整的排列,点云通常是不规则的,无序的,甚至是稀疏的,因此基于体素的3D卷积不适用。与图像具有多种属性(如RGB或灰度值)相比,对于许多点云来说,点坐标可能是唯一可用的特征。
图1 使用标准偏差来选择边缘像素/点的图示。在中心像素/点与其相邻像素之间计算归一化相关图。中心像素/点作为邻居自包含。归一化相关图中的较大标准偏差意味着它是边缘像素/点的可能性更高。
3.2 基于局部的点云边缘采样对于点云,我们定义 近邻定义每个点的局部邻域点云
,然后延续刚刚的替换Canny边缘检测算法的思路。
其中,与原始的Transformer的模型相比,
和 分别表示应用于查询输入和关键输入的线性层, 即为 ,特征维度计数平方根 用作比例因子
称之为邻域-点(N2P)注意力 ,它捕获局部信息。
3.3 基于全局的点云边缘采样对于采样问题,全局信息也是至关重要的。考虑k = N的情况,利用线性层Q和K共享所有点,将其称为点对点 (P2P) 注意力 ,基于全局的相关特性与相关性映射如下: 得到全相关性图
本文改为按列计算和(而不是行),计算得到 , 较大的点作为边缘点采样。主要考虑到,如果点 邻近边缘点
,那么 应较大,如果 在 中对应的列元素的值也较大,那么 也可能是边缘点。
图2 所提出方法的关键思想。N 表示点的总数,而 k 表示用于基于局部采样方法的邻居数量。
3.4 网络框架基于上述两种模块,本文构建了分类网络和分割网络,如下图所示
图3 用于分类的网络架构(左上)和分割(右上)。还给出了 N2P 注意力特征学习层(左下)、两个替代下采样层(左下)和上采样层(右下)的结构。这两种下采样层将点云从 N 个点下采样到 M 个点,而上采样层将其从 M 个点上采样到 N 个点。
主要组成部分:
采样层:应用提出的基于局部或全局的边缘点采样方法进行下采样。 4 实验 4.1 分类网络数据集:ModelNet40
定量比较:分类精度与SOTA方法处于同水平
表1 ModelNet40 上的分类结果。与其他仅使用原始点云作为输入的 SOTA 方法相比。请注意,我们报告的结果没有考虑投票策略。
定性结果
图5 基于局部的APES和基于全局的APES在不同形状上的可视化采样结果。所有形状都来自测试集。
4.2 分割网络数据集:ShapeNetPart
定量分析:分割精度略差于SOTA,但对下采样点云的中间结果优于SOTA,说明下采样的边缘点对于算法的性能贡献较大,而由于边缘下采样改变了点云的分布,导致插值上采样无法重构。这里也推荐「3D视觉工坊」新课程 《 三维点云处理:算法与实战汇总 》 。 定性结果
图6 将可视化分割结果作为形状点云进行下采样。所有形状都来自测试集。
4.3 消融实验数据集:ModelNet40
Feature Learning Layer Embedding Dimension Choice of k in local-based APES Successive sampling vs. Direct sampling Additional edge point supervision
4.4 对比实验数据集:ModelNet40
定量分析: 定性分析: 计算复杂度比较
5 总结
本文提出了一种基于注意力的点云边缘采样(APES)方法。它使用注意力机制相应地计算相关图并采样边缘点。基于不同的注意力模式,提出了基于局部 APES 和基于全局的 APES 的两种变体。定性和定量结果表明,我们的方法在常见的点云基准任务上取得了良好的性能。在未来的工作中,可以为训练设计其他补充损失。此外,我们注意到边缘点采样的不同点分布阻碍了后期上采样操作和分割性能。设计能够更好地应对边缘点采样的上采样方法会很有趣。
6 参考https://blog.csdn.net/qazwsxrx/article/details/132187461
—END— 高效学习3D视觉三部曲 第一步 加入行业交流群,保持技术的先进性 目前工坊已经建立了3D视觉方向多个社群,包括SLAM、工业3D视觉、自动驾驶方向,细分群包括:[工业方向 ]三维点云、结构光、机械臂、缺陷检测、三维测量、TOF、相机标定、综合群;[SLAM方向 ]多传感器融合、ORB-SLAM、激光SLAM、机器人导航、RTK|GPS|UWB等传感器交流群、SLAM综合讨论群;[自动驾驶方向 ]深度估计、Transformer、毫米波|激光雷达|视觉摄像头传感器讨论群、多传感器标定、自动驾驶综合群等。[三维重建方向 ]NeRF、colmap、OpenMVS等。除了这些,还有求职、硬件选型、视觉产品落地等交流群。大家可以添加小助理微信: dddvisiona,备注:加群+方向+学校|公司, 小助理会拉你入群。
添加小助理微信:cv3d007, 拉你入群 第二步 加入知识星球,问题及时得到解答 3.1 「3D视觉从入门到精通」技术星球 针对3D视觉领域的视频课程(三维重建、三维点云、结构光、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)、源码分享、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答 等进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业、项目对接为一体的铁杆粉丝聚集区,6000+星球成员为创造更好的AI世界共同进步,知识星球入口:「3D视觉从入门到精通」
学习3D视觉核心技术,扫描查看,3天内无条件退款 高质量教程资料、答疑解惑、助你高效解决问题 3.2 3D视觉岗求职星球 本星球:3D视觉岗求职星球 依托于公众号「3D视觉工坊」和「计算机视觉工坊」、「3DCV」,旨在发布3D视觉项目、3D视觉产品、3D视觉算法招聘信息,具体内容主要包括:
收集汇总并发布3D视觉领域优秀企业的最新招聘信息。
发布项目需求,包括2D、3D视觉、深度学习、VSLAM,自动驾驶、三维重建、结构光、机械臂位姿估计与抓取、光场重建、无人机、AR/VR等。
分享3D视觉算法岗的秋招、春招准备攻略,心得体会,内推机会、实习机会等,涉及计算机视觉、SLAM、深度学习、自动驾驶、大数据等方向。
星球内含有多家企业HR及猎头提供就业机会。群主和嘉宾既有21届/22届/23届参与招聘拿到算法offer(含有海康威视、阿里、美团、华为等大厂offer)。
扫码加入,3D视觉岗求职星球,简历投起来
第三步 系统学习3D视觉,对模块知识体系,深刻理解并运行 如果大家对3D视觉某一个细分方向想系统学习[从理论、代码到实战],推荐3D视觉精品课程学习网址:www.3dcver.com
科研论文写作:
[1] 国内首个面向三维视觉的科研方法与学术论文写作教程
基础课程:
[1]面向三维视觉算法的C++重要模块精讲:从零基础入门到进阶
[2]面向三维视觉的Linux嵌入式系统教程[理论+代码+实战]
[3]如何学习相机模型与标定?(代码+实战)
[4]ROS2从入门到精通:理论与实战
[5]彻底理解dToF雷达系统设计[理论+代码+实战]
工业3D视觉方向课程:
[1](第二期)从零搭建一套结构光3D重建系统[理论+源码+实践]
[2]保姆级线结构光(单目&双目)三维重建系统教程
[3]机械臂抓取从入门到实战课程(理论+源码)
[4]三维点云处理:算法与实战汇总
[5]彻底搞懂基于Open3D的点云处理教程!
[6]3D视觉缺陷检测教程:理论与实战!
SLAM方向课程:
[1]深度剖析面向机器人领域的3D激光SLAM技术原理、代码与实战
[2]彻底剖析激光-视觉-IMU-GPS融合SLAM算法:理论推导、代码讲解和实战
[3](第二期)彻底搞懂基于LOAM框架的3D激光SLAM:源码剖析到算法优化
[4]彻底搞懂视觉-惯性SLAM:VINS-Fusion原理精讲与源码剖析
[5]彻底剖析室内、室外激光SLAM关键算法和实战(cartographer+LOAM+LIO-SAM)
[6](第二期)ORB-SLAM3理论讲解与代码精析
视觉三维重建:
[1]彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
自动驾驶方向课程:
[1] 深度剖析面向自动驾驶领域的车载传感器空间同步(标定)
[2] 国内首个面向自动驾驶目标检测领域的Transformer原理与实战课程
[3]单目深度估计方法:算法梳理与代码实现
[4]面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
[5]如何将深度学习模型部署到实际工程中?(分类+检测+分割)
无人机: [1] 零基础入门四旋翼建模与控制(MATLAB仿真)[理论+实战]
最后 1、3D视觉文章投稿作者招募
2、3D视觉课程(自动驾驶、SLAM和工业3D视觉)主讲老师招募
3、顶会论文分享与3D视觉传感器行业直播邀请