点云分割是理解三维环境的基础。然而,目前的三维点云分割方法对场景边界的分割效果较差,导致整体分割性能下降。本文主要研究场景边界的分割。因此,我们首先探索指标来评估分割性能的场景边界。针对边界分割性能不理想的问题,我们提出了一种新的对比边界学习(CBL)框架用于点云分割。具体地说,本文提出的CBL通过在多尺度场景背景的帮助下对比点的表征,增强了跨边界点之间的特征识别。通过在三种不同的基线方法上应用CBL,我们实验表明,CBL不断地改进不同的基线,并帮助它们在边界上取得引人注目的性能,以及整体性能,如mIoU。实验结果表明了该方法的有效性和边界对三维点云分割的重要性。代码和模型将在https://github.com/LiyaoTang/contrastBoundary上公开。
边界问题在二维图像处理中有着悠久的历史,但很少有研究认识到边界在三维点云分割中的重要意义。然而,这些工作都涉及到用于显式边界预测或局部聚合的复杂模块。这些操作在很大程度上增加了模型的复杂性,但对整体度量的性能增益有限。对于边界的分割性能,它们也只能给出定性的结果。作为比较,我们提出了一个对比学习框架,它给模型带来了很少的开销,并且可以通过简单的调整改进各种基线。此外,我们想要注意的是,我们第一次用数值度量量化边界质量,并证明边界问题确实广泛存在于当前的方法中。
对比学习在计算机视觉任务的表征学习中表现出了良好的性能,范围从无监督设置到有监督设置。近年来,对比学习也被引入到二维分割中,无监督表示学习也被引入到点云处理中。特别是 P o i n t C o n t r a s t PointContrast PointContrast 进行逐点对比学习来克服几何变换,如刚性变换。 P 4 C o n t r a s t P4Contrast P4Contrast 提出了一种更加灵活的对比策略,促进几何信息和RGB信息的多模态融合。相反,在我们的工作中,我们采取监督设置,并与CBL证明,对比学习是非常适合提高分割质量的边界区域。此外,与上述只使用输入点云点的工作不同,我们利用下采样点云在多个尺度上检查场景上下文。
由于目前的研究大多集中在改进一般指标,如平均交并比(mIoU),整体精度(OA),平均平均精度(mAP),点云分割的边界质量往往被忽视。与最近边界相关的研究[15,28]只给出边界的定性结果不同,我们是第一个量化边界分割质量的。特别地,我们引入了一系列表示指标,包括mIoU@boundary、mIoU@inner和2D实例分割任务的边界IoU (B-IoU)分数。
在 g r o u n d t r u t h ground \; truth groundtruth 的基础上,我们认为如果一个点的邻域内存在不同标注的点,则将该点视为边界点。同样,对于模型预测,如果存在具有不同预测标号的附近点,则将该点视为边界点。更正式地,我们将点云记为 X \mathcal X X,第 i i i个点记为 x i x_i xi,其局部邻域为 N i = N ( x i ) \mathcal N_i = \mathcal N (x_i) Ni=N(xi),对应的 g r o u n d t r u t h ground \; truth groundtruth 标签为 l i l_i li,模型预测标签为 p i p_i pi。我们进一步注意到 ground truth 中的边界点集 B l \mathcal B_l Bl和预测分割中的边界点集 B p \mathcal B_p Bp,因此我们有: B l = { x i ∈ X ∣ ∃ x j ∈ N i , l j ≠ l i } ( 1 ) \mathcal B_l=\lbrace x_i \in \mathcal X \; | \;\exists x_j \in N_i,\; l_j \not= l_i \rbrace \qquad(1) Bl={xi∈X∣∃xj∈Ni,lj=li}(1) B p = { x i ∈ X ∣ ∃ x j ∈ N i , p j ≠ p i } \mathcal B_p=\lbrace x_i \in \mathcal X \; | \;\exists x_j \in N_i,\; p_j \not= p_i \rbrace \qquad\quad Bp={xi∈X∣∃xj∈Ni,pj=pi} 按照惯例,我们把 N i \mathcal N_i Ni 设为半径 0.1 0.1 0.1 的邻域。
为了检验边界分割的结果,直观的方法是计算边界区域内的 m I o U mIoU mIoU,即 m I o U @ b o u n d a r y mIoU@boundary mIoU@boundary。为了进一步比较模型在边界区域和非边界(内部)区域的性能,我们进一步计算了内部区域的 m I o U mIoU mIoU,即 m I o U @ i n n e r mIoU@inner mIoU@inner。假设mIoU是在整个点云 X \mathcal X X上计算的: m I o U ( X ) = 1 K ∑ k = 1 K ∑ x i ∈ X 1 [ p i = k ∧ l i = k ] ∑ x i ∈ X 1 [ p j = k ∨ l j = k ] ( 2 ) mIoU(\mathcal X)=\frac{1}{K} \sum^K_{k=1}\frac{\sum_{x_i \in \mathcal X}1[p_i=k\wedge l_i=k]}{\sum_{x_i \in \mathcal X}1[p_j=k\vee l_j=k]} \qquad (2) mIoU(X)=K1k=1∑K∑xi∈X1[pj=k∨lj=k]∑xi∈X1[pi=k∧li=k](2)其中 K K K 是总类别数; 1 [ ⋅ ] 1[\cdot] 1[⋅]表示一个布尔函数,如果 [ ⋅ ] [\cdot] [⋅]内的条件为真,则输出1,否则输出0; m I o U @ b o u n d a r y mIoU@boundary mIoU@boundary 和 m I o U @ i n n e r mIoU@inner mIoU@inner 定义如下: m I o U @ b o u n d a r y = m I o U ( B l ) mIoU@boundary=mIoU(\mathcal B_l) \qquad \quad mIoU@boundary=mIoU(Bl) m I o U @ i n n e r = m I o U ( X − B l ) ( 3 ) mIoU@inner=mIoU(\mathcal X-\mathcal B_l) \qquad (3) mIoU@inner=mIoU(X−Bl)(3)其中 X − B l \mathcal X-\mathcal B_l X−Bl 是 inner 区域点的集合。
然而, m I o U @ b o u n d a r y mIoU@boundary mIoU@boundary 和 m I o U @ i n n e r mIoU@inner mIoU@inner 在模型预测分割中没有考虑错误边界。受二维实例分割的边界IoU启发,为了更好地评估,我们考虑了分割预测与地面真实数据中的边界之间的对齐。因此,B-IoU 评估定义如下: B − I o U = B l ∩ B p B l ∪ B p ( 4 ) B-IoU=\frac{\mathcal B_l \cap \mathcal B_p}{\mathcal B_l \cup \mathcal B_p} \qquad(4) B−IoU=Bl∪BpBl∩Bp(4)
在本节中,我们将介绍对比边界学习(CBL)框架,如图2所示。它采用对比学习来增强跨边界特征识别。然后,为了深度增强模型在边界上的性能,我们通过子场景边界挖掘实现了下采样点云即子场景的CBL。
我们根据广泛使用的 I n f o N C E l o s s InfoNCE loss InfoNCEloss1及其泛化2 3定义边界点上的对比优化目标。特别地,对于一个边界点 x i ∫ B l x_i \int \mathcal B_l xi∫Bl,我们鼓励学习到的表征和与它来自同一类别的邻域点更相似,并且与来自不同类别的其他邻居点更有区别。例如: L C B L = − 1 ∣ B l ∣ ∑ x i ∈ B l l o g ∑ x j ∈ N i ∧ l j = l i e x p ( − d ( f i , f j ) / τ ) ∑ x k ∈ N i e x p ( − d ( f i , f k ) / τ ) ( 5 ) L_{CBL}=\frac{-1}{|B_l|}\sum_{x_i \in B_l}log \frac{\sum_{x_j \in \mathcal N_i \wedge l_j=l_i}exp(-d(f_i,f_j)/ \tau)}{\sum_{x_k \in \mathcal N_i}exp(-d(f_i,f_k)/ \tau)} \qquad(5) LCBL=∣Bl∣−1xi∈Bl∑log∑xk∈Niexp(−d(fi,fk)/τ)∑xj∈Ni∧lj=liexp(−d(fi,fj)/τ)(5)其中 f i f_i fi 是点 x i x_i xi 的特征值, d ( ⋅ , ⋅ ) d(\cdot,\cdot) d(⋅,⋅) 是距离测量值, τ \tau τ 是对比学习中的温度。上式的对比学习只关注边界点,也就是图中的红色虚线圆。
首先,我们考虑公式(1)中定义的 g r o u n d t r u t h ground \; truth groundtruth 的所有边界点 B l \mathcal B_l Bl。然后,对于每个点 x i ∈ B l x_i \in \mathcal B_l xi∈Bl,我们限制其正、负的抽样点都在其局部邻域 N i \mathcal N_i Ni内。在这种强空间约束下,我们得到 每个点 x i x_i xi 都满足 { x j ∈ N i ∧ l j = l i } \lbrace x_j \in \mathcal N_i \wedge l_j = l_i \rbrace {xj∈Ni∧lj=li}的正点对,和邻域中剩余点组成的负点对 { x j ∈ N i ∧ l j ≠ l i } \lbrace x_j \in \mathcal N_i \wedge l_j \not= l_i \rbrace {xj∈Ni∧lj=li}。因此,对比学习增强了跨场景边界的特征识别,对于改进边界区域的分割具有重要意义。
为了更好地探索场景边界,我们在多个尺度上检查下采样点云的边界,这使得骨干模型的不同子采样阶段的对比边界学习成为可能。从输入点云中收集边界点可以直接使用地面真实值标签。但分采样后,很难根据公式(1)得到合适的边界点集定义。由于下采样点的标签未定义,因此,为了实现下采样点云的CBL,我们提出了子场景边界挖掘,即确定每个子采样阶段的 g r o u n d − t r u t h ground-truth ground−truth 边界点集。
具体地说,我们用上标来表示阶段。在次采样阶段 n n n,我们将其子采样点云表示为 X n \mathcal X^n Xn。对于输入点云,有 X 0 = X \mathcal X^0= \mathcal X X0=X。当计算阶段 n n n 的边界点集 B l n ∈ X n \mathcal B^n_l \in \mathcal X^n Bln∈Xn 时,需要确定子采样点集 x i n ∈ X n x^n_i \in \mathcal X^n xin∈Xn 的标签 l i n l^n_i lin,也就是子场景注释。每个子采样点集 x i n ∈ X n x^n_i \in \mathcal X^n xin∈Xn 都是从它的前一个点云 X n − 1 \mathcal X^{n-1} Xn−1 中的一组点聚合而来的。因此,我们利用子抽样程序来迭代确定标签。我们取 l i 0 l^0_i li0为点 x i 0 = x i x^0_i = x_i xi0=xi 的 g r o u n d t r u t h ground \; truth groundtruth 标签的一个热标签 l i l_i li,有如下结果: l i n = A V G ( { l j n − 1 ∣ x j n − 1 ∈ N n − 1 ( x i n ) } ) ( 6 ) l^n_i=AVG(\lbrace l^{n-1}_j \; | \; x^{n-1}_j \in \mathcal N^{n-1}(x^n_i)\rbrace) \qquad (6) lin=AVG({ljn−1∣xjn−1∈Nn−1(xin)})(6)其中 N n − 1 ( x i n ) \mathcal N^{n-1}(x^n_i) Nn−1(xin) 定义了前一阶段中点 x i x_i xi 的局部邻域(图2左侧的灰色圆形区域),即从 X n − 1 \mathcal X^{n-1} Xn−1 集合的一组点,经过子抽样程序后,由单个点 x i n ∈ X n x^n_i \in \mathcal X^n xin∈Xn 表示,AVG表示平均池化。通过公式(6)和 g r o u n d − t r u t h ground-truth ground−truth 标签,我们可以迭代得到子场景注释 l i l_i li 作为一个分布,其第 k k k 个位置描述了第 k k k 个类在输入点云中对应的一组点中的比例。为了确定下采样点云 X n \mathcal X^n Xn 的边界点集,我们只需取 a r g m a x l i n arg max\; l^n_i argmaxlin 允许对公式(1)中的边界点进行评估,并利用下采样点的特征进行公式(5)中的对比边界优化。最后,对于子场景边界挖掘,我们在各个阶段都应用了CBL,最终损失定义如下: L = L c r o s s e n t r o p y + λ ∑ n L C B L n ( 7 ) L=L_{cross entropy} + \lambda \sum_n L^n_{CBL} \qquad (7) L=Lcrossentropy+λn∑LCBLn(7) 其中 L C B L n L^n_{CBL} LCBLn 是阶段 n n n 的 C B L CBL CBL损失, λ \lambda λ是损失权重。
由于三维ConvNet已经成为点云处理的一个流行的骨干模型,为了给出一个通用的实现,我们用一个ConvNet基线(图3)来举例说明CBL在点云处理中的应用。
我们在三维连续空间中构建卷积网络: f i = ( h ∘ g ) ( x i ) = ∑ x j ∈ N i g ( x i − x j ) h ( x j ) ( 8 ) f_i=(h \circ g)(x_i)=\sum_{x_j \in \mathcal N_i}g(x_i-x_j)h(x_j) \qquad (8) fi=(h∘g)(xi)=xj∈Ni∑g(xi−xj)h(xj)(8) 其中 ∘ \circ ∘ 表示卷积操作,连续核函数 g ( ⋅ ) g(\cdot) g(⋅) 近似为单层 MLP,集合 h ( x j ) = f j h(x_j)=f_j h(xj)=fj 简单地利用了点 x j x_j xj 的特征。我们注意到,与其他利用局部上下文的高级局部聚合模块相比,公式(8)中的3D卷积纯粹是基于中心点与其邻居之间的空间位置。为了更好地利用多尺度CBL优化的边界特征,我们使用多尺度头进行预测,它简单地将每个下采样点云的点特征连接到最后的输出层。正如我们在消融研究中所显示的,如果没有CBL,这种跨多个尺度的串联就失败了。请注意,CBL可以与任何其他多级骨干结合。具体来说,我们还将CBL应用于其他两个流行的基线:RandLA-Net和CloserLook3D,以演示其通用性。RandLA-Net利用随机抽样和细心的局部聚集对大规模场景进行快速处理;CloserLook3D提出了一个无参数的PosPool模块,该模块极大地减少了模型参数和资源消耗,同时实现了与其他具有参数聚合模块的方法(如KPConv)相比的性能。结合ConvNet基线,我们的实验覆盖了大多数典型的点云局部聚集方法的主干,从卷积、注意运算到无参数运算。对于训练,我们遵循基线的设置,并设置权重 λ = 0.1 \lambda = 0.1 λ=0.1。更多细节将在附录中提供。
Aaron van den Oord, Yazhe Li, and Oriol Vinyals. Representation learning with contrastive predictive coding,2018. ↩︎
Nicholas Frosst, Nicolas Papernot, and Geoffrey E. Hinton. Analyzing and improving representations with the soft nearest neighbor loss. In ICML, 2019. ↩︎
Michael Gutmann and Aapo Hyvarinen. Noise-contrastive estimation: A new estimation principle for unnormalized statistical models. Journal of Machine Learning Research-Proceedings Track, 9:297–304, 01 2010. ↩︎