三维网格分割的评价指标: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 到底有多"像"。
指标分两大派:
- 区域 / 逐对型(pair-wise, region-based):只看"哪些元素被分到了一起",对边界具体落在哪不敏感。
- 边界 / 距离型(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)各报一个,再配可视化对比。只用单个指标,一定经不起推敲。
五、常见坑
- RI 虚高:随机分割也能 0.7+,别只报 RI。
- Purity 不罚过度分割:把每个元素单列一组就满分,必须配 RI / HD。
- 不写容差 τ 的 Boundary F-score 等于没写。
- 裸 Hausdorff 被离群点毒害:改用 95% 分位或 ASSD。
- 测地距离 vs 欧氏距离:3D 网格边界距离要走表面测地距离,欧氏距离会"穿墙"从而低估偏差。
- 对齐 / 归一化要交代:不同数据集尺度不同,报告前说明归一化方式。
- 只做定性对比:像不少早期服装重建工作那样,只给"边界更平滑"的肉眼结论 + 计算耗时,读者无法复现、无法比较。想被引用,就给数字。
六、和 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 的偏好而提出的改进指标
笔记系列。
浙公网安备 33010602011771号