rmse_correspondence — 3D metrics op

• 数据种类:points × points → measurement

• 调用: import fullseye as fs; fs.ledger.rmse_correspondence(a, b)(要直接调用实现,import metrics3d; metrics3d.rmse_correspondence(a, b);从台账取用则 ops3d.get("rmse_correspondence"))

用法

对应已知(同 index)的 RMSE = sqrt(mean |a_i - b_i|^2)。→ scalar。评估配准残差。

计算:将 a、b 转为 float 数组,把逐行欧几里得距离的 2 次方 sum((a - b)**2, axis=1) 取平均后开平方根。不做最近邻搜索 —— 由调用方保证 a[i] 与 b[i] 是同一点的对应(经配准变换的 src @ R.T + t 与对应的 dst 点列、合成数据的 GT 对应等)。

参数与验证:a.shape != b.shape 时为 ValueError。除此之外没有检查:两个空的 (0, 3) 因 mean 为空而返回 NaN(带警告),不是 (N, 3) 时只要是能以 axis=1 求和的形状也会返回值。请传入 3 列的点云。

返回值:Python float,单位为坐标的单位,[0, inf)。相同则为 0。

注意:用于对应错位(index 被重新排列)的点云时,即使位姿正确也会得到很大的值。对应未知时用 chamfer_distance / fscore,要把位姿本身与 GT 比较时用 pose_error。

背景知识指南(该算子背后的物理与约定)

• blender_interop — 与 Blender 配合使用 —— 在 Blender 中建形、用 fullseye 测量(坐标轴、单位、真值数据的陷阱)

• measurement_uncertainty — 测量不确定度与校准知识 —— 为了能主张“测得准”

参考(示例数据、文献)

• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。

• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。

可运行的示例(实际调用该算子并已验证的样例)

• metrics_eval — py -3.11 examples_3d/metrics_eval.py

类型可衔接的下一个算子(可接受 measurement 作为输入)

vol_gaussian_psf · fuse_to_voxel · fresnel_reflectance · snell_angle

同类别(metrics)

chamfer_distance · hausdorff_distance · m3c2_distance · fscore · normal_consistency · voxel_iou · pose_error


*Provenance: metrics3d.py — 3D 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.