引言
在计算机视觉和机器人领域,机器如何“看”物体与物体本身同样重要。想象一个试图拿起咖啡杯的机器人。对我们来说,它只是一个简单的杯子。对计算机来说,它可能是一团由数百万个点组成的密集云、一个沉重的三角网格,或者一个复杂的神经辐射场。
虽然这些细节丰富的表示非常适合渲染漂亮的图像,但对于物理模拟来说往往非常糟糕。计算一百万个多边形的网格与机械手之间的碰撞在计算上极其昂贵。这就是 形状抽象 (Shape Abstraction) 发挥作用的地方。它将复杂的物体简化为易于管理的基元 (primitives) ——就像用乐高积木搭建雕塑一样。
多年来,研究人员一直依赖简单的基元,如方块、球体或超二次曲面。但这些往往过于僵硬。不使用数百个方块,它们就无法捕捉复杂工具的微妙曲率或水果的有机形状。
在本文中,我们将深入探讨一篇 CVPR 论文,该论文提出了一种新的前进方向: 基于行进可微支撑函数的形状抽象 (Shape Abstraction via Marching Differentiable Support Functions, MDSF) 。 这种方法不仅简化了形状;它还是在一个完全可微的数学框架下进行的。这意味着抽象不仅仅是一个静态模型——它是一个数学上活跃的实体,可以计算接触力的梯度,使机器人能够“感觉”并优化它们与世界的交互。

如上图 1 所示,该方法将原始几何体 (SDF) 转换为一组平滑的凸基元,称为可微支撑函数 (Differentiable Support Functions, DSFs) 。这些基元解锁了强大的下游任务,如形状编辑和可微模拟。
当前表示法的弊端
在我们解开解决方案之前,我们需要了解瓶颈所在。
- 网格 (Meshes) 是标准的但对于碰撞检测来说计算量大。
- 隐式场 (SDFs) 将形状表示为连续函数,但在物理引擎中难以查询接触点。
- 基元分解 (Primitive Decomposition) (将形状分解为方块或球体) 对物理模拟来说很快,但通常不准确。球体的方块近似是一个很糟糕的滚动表面。
圣杯是一种既 通用 (可以是盒子、球体或奇怪的卵石形状) , 参数高效 (不需要成千上万个数字来定义) ,又 可微 (我们可以计算导数进行优化) 的基元。
核心概念: 可微支撑函数 (DSF)
研究人员建议使用一种特定的几何表示,称为 支撑函数 (Support Function) 。
什么是支撑函数?
在凸几何中,支撑函数 \(h(x)\) 描述了从原点到集合在方向 \(x\) 上的支撑超平面的距离。可以把它想象成从特定角度将一张平纸靠在形状上;支撑函数告诉你那张纸离中心有多远。
作者利用了由一组顶点定义的可微公式。他们从以下基本数学定义开始:

这里,\(v_i\) 是定义形状的顶点,\(p\) 是平滑参数。当 \(p\) 增加时,形状变得更锐利 (像多面体) 。当 \(p\) 减小时,它变平滑 (像一团球) 。
使其可微且鲁棒
标准支撑函数有一个限制: 原点必须在形状内部。为了解决这个问题并使表示在 3D 空间中的任何位置都具有鲁棒性,作者引入了一个 中心变量 \(c\)。

现在,形状是相对于这个中心 \(c\) 定义的。然而,仅仅添加一个变量是不够的。为了使几何体有效,中心 \(c\) 在数学上必须保持在顶点的凸包内部。
为了在不破坏可微性 (这对训练神经网络或运行优化至关重要) 的情况下强制执行此约束,他们使用了一种巧妙的参数化方法。他们将 \(c\) 定义为顶点的加权和,其中权重由无界参数 \(\alpha\) 控制:

他们还对平滑度 \(p\) 进行参数化,以确保其保持在有用的范围内 (在 2 和最大值之间) ,从而防止数值不稳定性:

为什么参数化很重要
这看起来可能只是代数变换,但它具有深远的视觉影响。通过允许中心“浮动”并且顶点通过这些可微参数进行调整,DSF 可以紧紧包裹住既有锋利边缘又有曲面的复杂凸形状。

在上图中,请看“中”列与“右”列的对比。当中心固定时 (右) ,形状抽象无法捕捉 D 形或四分之一圆的细微差别。通过提出的参数化 (中) ,顶点智能分布,同时捕捉到了平坦侧面和弯曲弧线。
拟合过程
我们实际上如何让 DSF 匹配目标物体?我们将其视为一个优化问题。我们要最小化我们的 DSF 与目标几何体 (表示为 SDF) 之间的差异。

通过最小化这个损失函数,算法会拉动 DSF 的顶点,直到它们紧贴目标物体的表面。

如图所示,即使只有 20 个顶点,单个 DSF 也能非常准确地表示各种形状——从球体到楔形再到棱柱。
算法: 基于行进的超平面
拟合一个凸形状很容易。但大多数现实世界的物体——比如机械臂或兔子——是 非凸的 。 你不能用单个凸块来表示甜甜圈;你需要将其分解。
作者提出了一种“行进 (Marching) ”方案。类似于从体积数据中提取网格的著名“移动立方体 (Marching Cubes) ”算法, 行进 DSF (Marching DSFs) 迭代地识别物体区域并将基元拟合到这些区域。
管道如下所示:

系统接收输入 (如点云) ,将其转换为符号距离场 (SDF) ,然后运行抽象算法。作者提出了两种互补的策略来分割空间: 区域缩减 (Region Reduction) 和 区域扩张 (Region Expansion) 。
策略 1: 区域缩减
把这想象成雕刻。你从一块粘土 (整个空间) 开始,切掉 不属于 物体的部分。
- 初始化: 从物体深处的一点开始。
- 切片: 识别物体表面上空间“空” (SDF > 0) 的最近点。
- 超平面: 在该点创建一个切割平面 (超平面) 。
- 重复: 继续切片,直到得到一个由这些平面交集定义的紧密凸区域。


这种方法非常准确,因为它严格根据物体表面定义边界。
策略 2: 区域扩张
把这想象成在物体内部给气球充气。
- 初始化: 从物体内部的一个小球体开始。
- 采样: 查看当前边界附近的点。
- 扩张: 向外推动边界 (超平面) 。
- 优化: 调整平面的偏移量以覆盖尽可能多的体积,而不至于过多地越过物体边界。

这种方法通常更有效率,产生的基元更少,尽管与缩减法相比可能会错过一些精细细节。
过程可视化
下图对于理解这种差异至关重要。

- 顶部 (b-c): 你可以看到线条穿过空间,缩小绿色形状。这是 缩减 。
- 底部 (d-f): 你可以看到一个形状从中心向外生长,推动边界直到符合形态。这是 扩张 。
混合方法
为什么只选一个?作者将它们结合起来。他们使用区域缩减来捕捉形状中棘手的高细节部分,并使用区域扩张来快速填充体积更大、更简单的部分。

上面的 Armadillo 模型展示了这种权衡。区域缩减 (a) 细节丰富但产生了很多碎片 (49 个 DSF) 。扩张 (b) 效率高 (22 个 DSF) 但错过了耳朵和手指。混合方法 (c) 取得了平衡 (31 个 DSF) ,在保持低数量的同时捕捉细节。
实验结果
也就是,MDSF 与其他最先进的方法相比如何?研究人员对比了 CvxNet (一种神经网络方法) 和 行进基元 (Marching Primitives, MP) (一种超二次曲面方法) 。
使用的指标包括:
- IoU (交并比) : 越高越好 (重叠精度) 。
- Chamfer-L1: 越低越好 (表面距离误差) 。
- \(N_c\): 越低越好 (所需基元数量) 。

从视觉上看,差异是明显的。CvxNet (第二列) 经常产生“团块状”的形状,无法捕捉锋利的机械边缘。提出的 MDSF (最右侧) 产生了清晰、干净的抽象,尊重了机器人连杆的几何形状。

数据支持了这一点。在表 1 中,MDSF 始终实现最高的准确度 (IoU ~0.93 vs CvxNet 的 0.81) ,同时使用的组件显著更少 (13.8 vs CvxNet 的 50) 。这种“高精度、低复杂度”的组合是模拟的最佳选择。
研究人员还进行了消融研究以验证他们的混合方法。

混合方法 (“Hyb”) 有效地平衡了缩减法 (“Red”) 的高精度和扩张法 (“Exp”) 的效率。
为什么这很重要: 应用
MDSF 的真正力量在于代表 可微 (Differentiable) 的 “D”。由于定义这些形状的数学允许我们计算梯度,我们可以解决以前非常困难的反问题。
1. 形状编辑
想象一个机器人需要抓取工具,但工具手柄的形状稍微不对。利用 MDSF,我们可以定义一个“接触损失”,并自动变形物体的形状以最小化手和物体之间的间隙。

由于间隙相对于形状参数 \(\phi\) 是可微的,我们可以使用梯度下降来重塑物体。

2. 接触定位
机器人到底接触到了物体的哪里?通常,机器人不得不根据嘈杂的传感器进行猜测。通过数学建模接触力约束,MDSF 允许系统求解精确的接触点和力向量。

该优化最小化了预期物理 (摩擦锥、扭矩) 与观测到的传感器数据之间的误差。

3. 可微模拟
最后,这实现了更好的规划。在可微模拟器中,机器人可以“想象”一条轨迹。如果它掉了一根香蕉,它可以计算运动 通过 与地板接触的梯度,从而在移动 之前 调整其抓握。

在图 11 中,苹果和香蕉的复杂几何形状分别被抽象为仅 9 个和 5 个 DSF。这种轻量级的表示允许规划器高效地解决复杂的操作任务。
结论
论文《基于行进可微支撑函数的形状抽象》在表示 3D 世界方面迈出了重要一步。通过摆脱僵硬的方块和沉重的网格,并拥抱 可微支撑函数 , 作者提供了一种既几何精确又物理实用的工具。
可微参数化 和 基于行进的超平面 的结合解决了拟合复杂形状和保持表示轻量级这两个双重问题。对于机器人领域的学生和研究人员来说,这突显了一个重要趋势: 计算机视觉的未来不仅仅是识别物体;而是以一种允许机器与周围世界互动、模拟并改变周围世界的方式来表示它们。
](https://deep-paper.org/en/paper/file-2221/images/cover.png)