三维网格分割的评价指标:Rand Index、Hamming、Cut Discrepancy 与边界距离度量

三维网格分割的评价指标:Rand Index、Hamming、Cut Discrepancy 与边界距离度量

起因:读 Bang et al.(Computer Graphics Forum 2021)《Estimating Garment Patterns from Static Scan Data》时发现,这类服装 / 网格分割工作常常只用"跑通了 + 肉眼看着边界更平滑"来交差,几乎没有可比的量化指标。可真要评一个分割算法,到底该用哪些数?

这篇把网格分割评测里最常被引用的那套指标讲清楚——源自 Princeton Segmentation Benchmark(PSB,Chen 等,SIGGRAPH 2009) 的区域型指标(Rand Index / Hamming / Cut Discrepancy),以及常用的边界敏感指标(Boundary F-score / Hausdorff)。

先统一记号

  • 网格有 N 个元素(面片或顶点),每个元素被赋予一个标号(label)。
  • S = 真值分割(ground truth,通常取多个人工标注的统计结果);S′ = 算法输出的预测分割。
  • 评测目标:衡量 S′ 和 S 到底有多"像"。

指标分两大派:

  1. 区域 / 逐对型(pair-wise, region-based):只看"哪些元素被分到了一起",对边界具体落在哪不敏感。
  2. 边界 / 距离型(boundary-based, distance-based):只看"分界线在哪、离真值差多远",对区域内部纯不纯净不敏感。

要评得站得住脚,两边都得报。

一、区域型指标

1. Rand Index(RI)

把每个元素看成一个点,考察所有点对是否被一致地分在了一起。

  • a = 在 S 和 S′ 里都同属一组的点对数
  • b = 在两边都分属不同组的点对数
  • c、d = 只在一方同组、另一方不同组的点对数(分歧)
RI = (a + b) / C(N, 2)       其中 C(N,2) = N(N-1)/2

范围 [0, 1],越大越好,1 表示完全一致。

直觉:它同时奖励"该在一块的确实在一块"(a)和"该分开的确实分开了"(b)。

坑:

  • "两端同组"和"两端不同组"被同等看待。当分割很碎(组很多)时,b 天然就大,RI 会虚高——随机分割也常能拿到 0.7 以上。所以 RI 必须配着别的指标一起看。
  • 对"分割成几块"不敏感。真值只有 3 组、你却切了 30 组,RI 也可能不低。

改进版:Adjusted Rand Index(ARI)(扣除随机期望)、Probabilistic Rand Index(PRI)(对多个人工真值取期望,PSB 用的就是这个思路)。

2. Fowlkes–Mallows Index(FM)

把"逐对"判定拆成查准 / 查全,再取几何平均:

逐对查准 precision = a / (a + c)
逐对查全 recall    = a / (a + d)
FM = sqrt(precision × recall) = a / sqrt((a + c)(a + d))

范围 [0, 1],越大越好。比 RI 更能体现"预测出的组是否真的对应真值的组",PSB 里常与 RI 并列使用。

3. Purity 与 Entropy(PSB 也用了)

这两个衡量每个预测组内部有多"纯":

  • Purity:对每个预测组 R′,取出它与某个真值组 R 的最大重叠,再按组大小加权平均。
Purity = (1/N) × Σ_{R′} max_{R} |R ∩ R′|

越大越好,1 表示每个预测组都完整落在一个真值组里。

  • Entropy:对每个预测组 R′,计算其成员落在各真值组上的分布熵,再按组大小加权平均。
Entropy = −(1/N) × Σ_{R′} Σ_{R} |R ∩ R′| × log( |R ∩ R′| / |R′| )

越小越好,0 表示毫无歧义。

Purity / Entropy 的毛病和 RI 恰好相反:它们不惩罚"过度分割"——把每个元素单独列成一组,Purity 直接满分。所以还是那句话:单独一个数都不够用。

二、边界距离型指标

区域型指标对"边界偏了 1cm 还是 10cm"毫无感觉。要评边界,就得直接量分界线之间的距离。

4. Cut Discrepancy(CD)

先把分割的"切割线"(segment 之间的边界)取出来,记 S 的切割点集为 C,S′ 的为 C′。

  • 对 C 中每个点,量它到 C′ 中最近点的距离(在网格上量测地距离);
  • 反向再量一遍 C′ → C;
  • 两边距离求和,再用两条切割线的平均长度(或网格尺度)做归一化:
CD(S, S′) = ( Σ_{p∈C} d(p, C′) + Σ_{q∈C′} d(q, C) ) / avg_cut_length(S, S′)

越小越好,0 表示边界完全重合。它回答的问题是:"你的边界和真值边界,平均偏出去多远?"

5. Hamming Distance(HD,分割语境下)

在网格分割评测里,HD 不是信息论里那个逐位比较,而是:

在把两个分割的区域做最优一一配对之后,最少需要改变多少个元素的标号,才能让两个分割完全一致。

换句话说,它是"被分错归属的元素数量"的一个下界式度量。越小越好,0 表示完全一致。常用于报告边界处错配的比例。

三、边界敏感指标(源自 2D,3D 可迁移)

6. Boundary F-score(BF)

设真值边界点集 B_g,预测边界点集 B_p,给定一个容差 τ:

  • 预测点算命中(TP):它与 B_g 中最近点的距离 ≤ τ
  • precision = |命中预测点| / |B_p|
  • recall = |能在 τ 内找到预测点对应的真值点| / |B_g|
  • BF = 2 × precision × recall / (precision + recall)

越大越好,1 表示在 τ 容差下边界完全吻合。

关键在 τ:它把"严格逐点对齐"放宽成"差不太多就算对",更符合人对分割质量的感知。τ 通常取网格平均边长或某个绝对尺度,报告时必须写清 τ 是多少,否则这个数字没有意义。

变体:Boundary IoU(把 IoU 只算在边界带内)、relaxed boundary、trimap 等,思路同源。

7. Hausdorff Distance

衡量两组点集在最坏情况下的偏差。

  • 单向:h(A,B) = max_{a∈A} min_{b∈B} d(a,b)(A 中最"孤单偏远"的点,离 B 有多远)
  • 对称 Hausdorff:H(A,B) = max( h(A,B), h(B,A) )

用在分割上,A、B 就是真值 / 预测的边界点集。越小越好。

坑: 单个离群点就能把 Hausdorff 顶到天上去(因为取 max)。实践中几乎都改用鲁棒版本:

  • 95th-percentile Hausdorff:取距离分布的第 95 百分位,抗离群;
  • ASSD(Average Symmetric Surface Distance,平均对称表面距离):
ASSD = ( Σ_{a∈A} min_{b∈B} d(a,b) + Σ_{b∈B} min_{a∈A} d(a,b) ) / ( |A| + |B| )

即双向平均距离,最平滑、最稳,医学图像里最常用。

四、怎么选?一张决策表

你关心什么 用哪个 方向
元素有没有被分到一起 Rand Index / FM 越大越好
每个预测组纯不纯 Purity / Entropy 纯度越大、熵越小越好
分界线平均偏了多远 Cut Discrepancy 越小越好
有多少元素归属错了 Hamming Distance 越小越好
容差内边界对不对 Boundary F-score 越大越好
边界最坏偏差 / 平均偏差 Hausdorff / 95%-Hausdorff / ASSD 越小越好
逐元素类平均交并比(补充) mIoU / Accuracy 越大越好

建议: 区域型(RI/FM 或 mIoU)+ 边界型(CD 或 BF)各报一个,再配可视化对比。只用单个指标,一定经不起推敲。

五、常见坑

  1. RI 虚高:随机分割也能 0.7+,别只报 RI。
  2. Purity 不罚过度分割:把每个元素单列一组就满分,必须配 RI / HD。
  3. 不写容差 τ 的 Boundary F-score 等于没写。
  4. 裸 Hausdorff 被离群点毒害:改用 95% 分位或 ASSD。
  5. 测地距离 vs 欧氏距离:3D 网格边界距离要走表面测地距离,欧氏距离会"穿墙"从而低估偏差。
  6. 对齐 / 归一化要交代:不同数据集尺度不同,报告前说明归一化方式。
  7. 只做定性对比:像不少早期服装重建工作那样,只给"边界更平滑"的肉眼结论 + 计算耗时,读者无法复现、无法比较。想被引用,就给数字。

六、和 IoU / Accuracy 的关系

  • mIoU / Accuracy 也是区域型,但按"每个元素归到哪一类"直接算,适合有固定语义类别(上衣 / 裤子 / 皮肤)的分割。
  • RI / FM / Purity / Entropy 不依赖类别语义、也不依赖类别数,适合无监督 / 形状分割(把同一形状切块),这正是 PSB 的场景。
  • CD / HD / BF / Hausdorff 是"边界派",与上面两类正交。

术语表 / Key Terms

  • PSB(Princeton Segmentation Benchmark) — 普林斯顿分割基准,Chen 等 2009;网格分割评测的经典数据集与指标集
  • Rand Index (RI) — 逐点对一致性比例
  • ARI / PRI — 调整 RI / 概率 RI,分别修正随机期望与多人真值
  • Fowlkes–Mallows (FM) — 逐对查准 × 查全的几何平均
  • Purity / Entropy — 预测组的纯度 / 歧义熵
  • Cut Discrepancy (CD) — 切割线之间的双向归一化距离,越小越好
  • Hamming Distance (HD) — 最优区域配对下需改标签的元素数,越小越好
  • Boundary F-score (BF) — 容差 τ 下边界的查准 / 查全调和平均
  • Boundary IoU — 只算边界带内的 IoU
  • Hausdorff Distance — 两边界点集的最坏偏差(取 max)
  • 95th-percentile Hausdorff — 取第 95 分位的鲁棒 Hausdorff
  • ASSD — 平均对称表面距离,双向平均、最稳
  • Geodesic Distance — 测地距离,沿表面走的最短路径长度
  • Consistency Error — 后续工作为修正 RI / HD 的偏好而提出的改进指标

笔记系列。

posted @ 2026-10-07 20:30  Quentin_Yws154  阅读(12)  评论(0)    收藏  举报