跳到正文
返回

点云压成平面后,少看一个方向反而更清楚

6分钟阅读

一片玉米地变成点云之后,最难认的地方往往贴着地面。高处的叶片很显眼,大片裸土也容易辨认;麻烦的是垂下来的叶尖、茎秆的底部,以及它们之间零零散散的地面点。只看一个小邻域,这些点的形状和高度都可能十分接近。人会转动视角,看看它们接在什么结构上。理解 PlaneSegNet,可以从这个动作开始。

这篇论文给三维分割网络加了两个观察方向:XZ 和 YZ,也就是两个保留高度的侧视平面。消融实验中,再补上俯视的 XY 平面,边界分割反而变差了。三个方向看起来比两个方向更完整,为什么多看的这一眼没有帮上忙?

高度把两类点分开了

把 Z 轴放在竖直方向,差别就很直观。投到 XY 平面,相当于把上方的叶片和下方的土地压在同一张俯视图里,高度差消失了。投到 XZ 或 YZ 平面,地面大致收成一条低矮的带状结构,植株则从这条带上向上展开。贴地的叶片仍然难认,但模型多了一条线索:这个点与周围结构的关系,更像地面的一部分,还是植株向下延伸的一部分?下面三个视图来自同一个简化场景,可以直接比较丢掉不同坐标轴的结果。

一次投影,就是决定丢掉哪条坐标轴三个画面来自同一个简化的三维场景,改变的只有投影平面。
俯视 XY保留 水平位置 · 丢弃 高度 z
xy

高处的植物点被压回杂乱的地面足迹。

垂直 XZ保留 高度与 x 位置 · 丢弃 纵深 y
xz

植物仍然高于狭窄的地面带。

垂直 YZ保留 高度与 y 位置 · 丢弃 宽度 x
yz

另一侧的垂直视图也保留了高度过渡。

植物点地面与背景点
这是概念示意,不是论文特征图或实验数据的复刻。

高度在这里有用,是因为植物所处的世界有一个特殊方向:重力。地面沿水平方向铺开,植株总体向上生长;这使竖直方向承载了不同于水平方向的结构信息。两个侧视平面都保留高度,又分别保留一个水平方向,可以提供互补的观察。三个坐标轴在公式里地位相同,在这片玉米地里却各有分工。

投影之后,还要把信息送回三维

PlaneSegNet 保留了稀疏三维 U-Net 的主干。点云先被放进细小的立方网格,也就是体素;网络在有点的格子上提取特征,逐步扩大观察范围,再恢复分辨率。平面模块插在这个编码、解码的过程中,因此它看到的是不同尺度的三维特征。最后,体素的分类结果通过保存的索引对应回原始点云。原项目的网络结构图把这条主干和内部的平面模块放在了一起。

平面模块做的事情可以沿一个体素看清楚。投到 XZ 时,所有落在同一个 XZ 网格位置的三维特征,会沿 Y 方向取均值,得到这一位置的平面特征。随后,模块按照原来的坐标,把它分配回对应的三维体素。YZ 分支也做一次同样的操作。一个体素于是同时拿到了自己的局部特征,以及从两个方向汇集来的信息;这些特征经过拼接、两层全连接网络和残差连接,形成增强后的表示。

这样一来,原本沿某个方向相隔很远的体素,也有了直接共享信息的机会。三维分支继续保留局部细节,平面分支提供方向性的汇总;投影损失的那一维,并没有从整个网络中被删除。这种组织让模型更容易用上“同一高度附近的结构”,而无需仅靠局部卷积一层层把远处的线索传过来。

把指标移到最难的地方

论文的平面消融实验有一个容易被略过的现象:几个变体的整体 IoU 和 F1 分数非常接近。大量高处的植物点和清楚的地面点已经分对了,剩下的困难区域只占很小一部分。于是作者另外设计了按高度分层的评价:从最低植物点的高度开始,以 5 厘米为步长考察六层,把贴地的分割表现单独拿出来看。一个专门改善边界的方法,要到边界附近才能看清它的价值。

把评价范围缩到这里,各个方向的差别就显出来了。下面概括了论文消融实验中六种配置的关系。它与前面的几何直觉一致:保留高度的两个视图有帮助,额外的俯视聚合会损害边界表现。信息已经在输入里,并不意味着任意一种汇总方式都有利于模型使用它。

平面配置边界区域的表现
不加平面模块稀疏三维 U-Net 基线
只加 XY相比基线略有下降
只加 XZ;只加 YZ两个单平面变体均有改善
XZ + YZ六种配置中表现最好,底部差异尤其明显
XY + XZ + YZ低于只用两个垂直平面的配置

地面只剩几处碎片的时候

作物长到后期,密集的冠层会遮住地面,扫描得到的地面点变得稀疏而不连续。这时,“在附近找一块平整表面”的线索也跟着变弱了。论文用前期训练的权重直接测试这种场景,没有再微调:稀疏三维 U-Net 的地面 IoU 为 0.6613,PlaneSegNet 为 0.9774。IoU 衡量预测地面与标注地面的交集占并集的比例;这组结果说明,模型在这些场景中找回了更多被植株包围的地面碎片。从稀疏地面实验看,局部信息不足时,同一高度附近的远处结构仍能提供参照。

这个解释同时指出了一个实际条件:坐标系要能体现竖直方向。作者把点云绕 X、Y 轴分别倾斜 5°、10°、15°,模拟传感器安装或姿态的偏差;边界精度有所下降,但仍高于稀疏三维 U-Net 基线。轻微倾斜没有立刻抹掉有用的结构,却也说明这种方法主动利用了方向。部署时先把点云中的“上”放对位置,会比期待网络自己忽略一切姿态差别更顺理成章。

论文还分别在包含玉米、油菜和马铃薯的 Crop3D 温室数据,以及 DALES 机载点云上训练、评估了网络。后者要区分八类对象,已经超出了植物与背景的二分类。这些实验把设计的适用范围从一片玉米地推向了更多场景:地面、植被与建筑等对象,依然具有可利用的竖直结构。外部玉米数据的直接测试,则从另一个角度检查了已经学到的特征能否跨数据来源工作。

我喜欢这个设计的地方,在于它把人工看点云时的一点经验,变成了一条明确的信息通路。转到侧面,地面和植株的关系更容易看清;保留这两个方向的汇总,再让三维特征补足细节,网络便有了更合适的观察方式。点云原本已经包含了全部坐标。选择投影的价值,就在于把任务需要的关系从这些坐标里显露出来。