注1:本文系“计算机视觉/三维重建论文速递”系列之一,致力于简洁清晰完整地介绍、解读计算机视觉,特别是三维重建领域最新的顶会/顶刊论文(包括但不限于 CVPR, ICCV, ECCV, NeurIPS等)。本次介绍的论文是:
CVPR 2023 | Attention-Based Point Cloud Edge Sampling
CVPR 2023 | Attention-Based Point Cloud Edge Sampling
一、背景介绍
点云作为一种重要的数据表示,广泛应用于自动驾驶、增强现实和机器人技术等领域。由于点云数据量通常很大,对其进行采样以获得一个具有代表性的点集子集是三维计算机视觉中的一个基础和重要的任务。
除了随机采样和最远点采样之外,大多数传统的点云采样方法都是基于数学统计的,例如均匀采样、网格采样和几何采样等。最近,一些基于神经网络的方法开始通过端到端的任务驱动学习方式进行更好的任务定向采样,例如S-Net、SampleNet、DA-Net等。但是这些方法大多是基于生成模型的,而不是直接选择点。
本文提出了一种结合神经网络学习和数学统计直接点选择的点云边缘采样方法APES。它借鉴了Canny边缘检测算法的思想,使用注意力机制计算点之间的相关性,并采样相关性更高的边缘点。
二、研究现状
点云采样的研究可以分为基于数学统计的传统方法和基于深度学习的方法:
(1)传统采样方法:
-
随机采样(RS):简单高效,但无法控制采样点分布。
-
最远点采样(FPS):迭代选择点云中最远点,目前最广泛使用。
-
均匀采样:选择点云中均匀分布的点。
-
网格采样:使用规则网格采样点,无法精确控制点数。
-
几何采样:基于局部几何信息采样,例如曲率。
-
逆密度采样(IDIS):采样距离和值较小的点。
(2)深度学习采样方法:
-
S-Net:直接从全局特征生成新点坐标。
-
SampleNet:在S-Net基础上引入软投影操作。
-
DA-Net:考虑点云密度进行自适应采样。
-
MOPS-Net:学习采样变换矩阵与原点云相乘生成新点云。
-
PST-NET:使用self-attention层替代S-Net中的MLP层。
但是现有的深度学习采样方法大多基于生成模型,不能直接选择点;也没有考虑形状边缘作为特殊特征。
三、开展研究的动机
-
现有采样方法存在的问题:
1)传统方法无法进行任务驱动的采样;
2)深度学习采样方法多基于生成模型;
3)没有将形状轮廓作为特殊特征。
-
可以借鉴图像Canny边缘检测的思想,检测点云的轮廓边缘点。
-
注意力机制可以用来计算点之间的关联性。
-
因此,有必要开展一种结合深度学习和数学统计的点云边缘采样方法。
四、方法介绍
1. Canny边缘检测算法
关键思路是计算每个像素与邻域内像素的梯度关系,梯度大的判断为边缘像素。
具体步骤:
(1)高斯滤波平滑图像
(2)计算梯度幅值和方向
(3)非极大值抑制
(4)双阈值检测潜在边缘
(5)连接边缘
核心思想是计算每个像素的梯度强度。我们可以更通用地考虑:
-
定义像素 i i i与邻域像素 j j j之间的特征相关性 h ( p i , p j ) h(p_i, p_j) h(pi,pj);
-
计算归一化的相关性图 m i = 1 k ∑ j ∈ S i h ( p i , p j ) m_i=\frac{1}{k}\sum_{j\in S_i} h(p_i, p_j) mi=k1∑j∈Sih(pi,pj), S i S_i Si是像素 i i i的邻域;
-
计算 m i m_i mi的标准差 σ i \sigma_i σi, σ i \sigma_i σi大的点选为边缘点。
这样相当于用标准差替代了梯度计算。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RR81icYF-1691562376798)(图片1链接)]
图1. Canny边缘检测算法关键思路
2. 基于局部的边缘采样
对点云,我们可以用 k k k近邻定义每个点的局部邻域 S i S_i Si,然后应用上述Canny边缘检测算法的思路:
-
定义点 i i i与邻点 j j j的特征相关性 h l ( p i , p j ) h_l(p_i,p_j) hl(pi,pj);
-
计算归一化图 m i l = 1 k ∑ j ∈ S i h l ( p i , p j ) m_i^l=\frac{1}{k}\sum_{j\in S_i} h_l(p_i,p_j) mil=k1∑j∈Sihl(pi,pj);
-
计算标准差 σ i \sigma_i σi, σ i \sigma_i σi大的点为边缘点。
这里, h l ( ⋅ ) h_l(·) hl(⋅)采用注意力机制计算:
h l ( p i , p j ) = Q ( p i ) T K ( p j − p i ) h_l(p_i, p_j)=Q(p_i)^TK(p_j-p_i) hl(pi,pj)=Q(pi)TK(pj−pi)
Q Q Q、 K K K是点特征的线性映射。我们称之为邻域-点(N2P)注意力,它捕获局部信息。
采样结果如图2所示。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qzs1LLQJ-1691562376799)(图片2链接)]
图2. 基于局部的边缘点采样
3. 基于全局的边缘采样
全局信息对采样也很重要。令 k = N k=N k=N,即考虑全部点,那么N2P注意力化简为全注意力:
h g ( p i , p j ) = Q ( p i ) T K ( p j ) h_g(p_i,p_j)=Q(p_i)^TK(p_j) hg(pi,pj)=Q(pi)TK(pj)
称为点-点(P2P)注意力。
得到全相关性图 M g M_g Mg,我们改为按列(而不是行)计算和,得到 u j = ∑ i m i j u_j=\sum_i m_{ij} uj=∑imij。 u j u_j uj较大的点作为边缘点采样。
这是因为,如果点 j j j邻近边缘点 i i i,那么 m i j m_{ij} mij应较大,如果 j j j在 M g M_g Mg中对应列元素的值经常较大,则 j j j也可能是边缘点。
4. 网络框架
基于上述方法,我们构建了分类网络和分割网络,结构如图3所示:
主要组成部分:
-
编码层:提取点云特征。
-
采样层:应用提出的基于局部或全局的边缘点采样方法进行下采样。
-
解码层:使用注意力机制进行上采样。
5. 算法伪代码
基于局部的边缘采样伪代码:
输入:
原始点云P,包含N个点
采样大小M
邻域大小k
输出:
采样后的点云Q,包含M个点
P' = FPS(P, 2M) // 先用FPS采样2M点
for i = 1 to N:
Si = KNN(P', i, k) // 找到第i个点的k近邻
mi = Attention(P'[i], P'[Si]) // 注意力计算局部归一化相关性图
σi = Std(mi) // 计算标准差
I = 按σi从大到小排序 // 按标准差排序
Q = P'[I[0:M]] // 取前M个点作为采样结果
基于全局的采样类似,区别在于直接计算全局归一化相关性图,并按列和排序。
五、实验结果
在ModelNet40分类任务和ShapeNetPart分割任务上进行评估。
1. 定量结果
-
分类精度与SOTA方法处于同水平。
-
分割精度略低于SOTA,但对下采样点云的中间结果非常好。
这是因为边缘采样改变了点云分布,上采样时无法很好重构。
2. 定性结果
如下图所示,边缘采样明显捕捉了形状轮廓。
基于局部的更严格地聚焦边缘点;基于全局的也采样了一些边缘附近的关键点。
3. 对比实验
与其它采样方法比较,边缘采样整体效果较好,尤其是采样率较高时。如图5所示,边缘采样明显聚焦轮廓。
六、讨论与未来展望
1. 优点
-
直接选择点进行采样,过程可视化。
-
可以采样任意数量的点。
-
效果好,尤其是采样率高时。
2. 不足
-
分割精度略低,上采样时无法很好重构。
-
只考虑了边缘特征,没有利用其它几何特征。
3. 未来展望
-
设计上采样方法以处理边缘采样的分布改变。
-
加入其它辅助损失进行训练。
-
结合更多几何特征进行采样。
总结
本文提出了一种结合深度学习和数学统计的点云边缘采样方法APES。它使用注意力机制计算点之间的相关性,采样相关性高的边缘点。定量和定性结果都验证了其有效性。未来可以考虑引入更多几何特征、设计更好的上采样方法等。