Open Source Robotics

精选高质量开源机器人项目、工具和软件,推动机器人社区发展。

Chamfer Distance

  • 又称: CD, chamfer loss
  • 类别: Sensing › Perception outputs
  • 标签: point-cloud, loss-function, evaluation-metric, 3d-perception, deformable-objects

衡量两个点集差异程度的一种度量,其做法是把每个点与另一集合中的最近邻配对,并在两个方向上组合这些距离。

定义

Chamfer 距离(Chamfer distance)比较两个点云,而不需要知道哪个点与哪个点相对应。对于第一个集合中的每个点,它在第二个集合中找到最近的点并记录距离;然后从第二个集合到第一个集合做同样的事情,再把两个方向的项组合起来。一种常见形式是在每个方向上对最近邻距离的平方求平均,再把两个平均值相加;但也有其他形式用求和代替平均,或使用普通距离而不是距离的平方。这个名称来自倒角匹配(chamfer matching),这是 1970 年代末的一种图像分析技术,它用距离变换来比较边缘图。

两个方向都很重要。从预测到目标的测量检查的是每个预测点是否都靠近目标(精度);从目标到预测的测量检查的是目标的每个部分是否都被覆盖(完整性)。坍缩到目标某一区域的预测,在第一个方向上得分很好,在第二个方向上则很差。两个集合不需要有相同数量的点,这使得该度量便于比较传感器数据与模型输出。

借助 k-d 树等最近邻结构,或在 GPU 上用暴力搜索,Chamfer 距离的计算代价很低;而且它几乎处处对点的位置可微,因此被广泛用作点云生成和形状补全的训练损失,以及规划代价。它的主要弱点是忽略了点的分布方式:聚成一团的点仍可能给出很低的值。推土机距离(Earth mover's distance)通过在大小相等的集合之间找到一一匹配来解决这个问题,但计算代价更高;在某个距离阈值下的 F-score 也常与之一同报告。Hausdorff 距离是一个相关的度量,它取最差的最近邻距离而不是平均值。

为何重要

许多机器人问题都涉及在不存在点对应关系的情况下比较形状,例如把重建出的物体与扫描结果比较,或把预测的可变形物体与目标形状比较。Chamfer 距离为这类比较提供了一种快速、可微的打分方式,这就是它既作为学习损失、又作为规划代价出现的原因。

主要应用

  • 点云重建和形状补全网络的训练损失
  • 把可变形物体塑造成目标形状的规划代价
  • 3D 重建和建图的评估指标
  • 训练学习得到的基于粒子的动力学模型
  • 在标定仿真器时比较仿真与观测到的物体状态

实际应用

在可变形物体操作中,一个塑造面团的机器人采集当前面团的点云,并拥有目标形状的点云。一个学习得到的动力学模型预测每个候选工具动作之后面团的点;规划器按每个预测与目标之间的 Chamfer 距离为其打分,并执行最好的那一个。两个点云首先都被下采样到固定数量的点,通常使用最远点采样,这样代价计算得快,并且在各步之间可比较。团队会明确记下他们所用的具体变体,是否取平方、取平均还是求和,因为不同定义得到的数值无法相互比较。

常见误解

  • Chamfer 距离只有一个标准公式 — 各论文在使用距离平方还是普通距离、取平均还是求和、以及如何组合两个方向上各不相同,因此只有在相同定义下数值才可比较
  • Chamfer 距离低意味着点的分布一致 — 它忽略了点在表面上的分布方式;推土机距离对此敏感
  • 一个方向就足够了 — 只从预测到目标进行测量,会奖励那些只把目标的一小部分覆盖得很好的预测

谁需要了解

  • 处理点云的 3D 感知和学习研究人员
  • 研究可变形物体的操作研究人员
  • 评估重建质量的建图工程师

相关技术

  • 推土机距离(Earth Mover's Distance)
  • Hausdorff 距离(Hausdorff Distance)
  • F-score(3D 重建,3D Reconstruction)
  • k-d 树(k-d Tree)
  • PointNet

相关术语

  • Point Cloud
  • Iterative Closest Point
  • Forward Dynamics Model
  • Neural Implicit Representation
  • Farthest Point Sampling

相关项目

  • Open3D: Modern library for 3D point cloud processing, mesh operations, and 3D machine learning
  • PCL: Industry-standard C++ library for point cloud processing in robotics perception
  • OpenDroneMap: Open-source photogrammetry toolkit that turns drone images into maps and 3D models
  • LeGO-LOAM: Classic lightweight, ground-optimized lidar odometry and mapping baseline (IROS 2018)
  • libpointmatcher: Modular ICP library for 2D/3D point cloud registration and mapping
  • Patchwork++: Fast and robust ground segmentation for 3D LiDAR point clouds from KAIST

本网站需要 JavaScript 才能正常运行。请启用 JavaScript 以浏览我们的开源机器人项目。