moment_axes — 3D match_pose op

• 数据种类:points → axes

• 调用: import fullseye as fs; fs.ledger.moment_axes(points, weights=None)(要直接调用实现,import match3d; match3d.moment_axes(points, weights=None);从台账取用则 ops3d.get("moment_axes"))

• GPU:无(仅 CPU 参考实现)

用法

点群/加权点的 重心 + 主轴(惯性张量的特征向量)。位姿估计的基础。

返回值(质心(3,),轴(3,3)列=主轴,eigvals(3,))。特征值降序排列。用于旋转标准化。

定义:将w标准化为总和1,质心c = Σ w p,散点矩阵C = Σ w (p−c)(p−c)ᵀ (协方差。惯性张量tr(C)I − C和特征向量是通用的,但特征值的顺序相反)通过eigh。拆卸。 axes[:, i] 是第 i 个最大特征值的主轴(按降序排列)。特征值是方差(长度²)。

• 特征向量的符号是任意的,并且“axes”可以是左手的(det=−1)(“match_pca”设置第三个轴

(颠倒过来使其成为右手)。

• weights 的长度为 N。0 的和除以 0 时为 NaN(无例外)。 0 分显然是一个 ValueError。

• 如果主轴是退化的(例如球体),则轴的方向是不确定的。

后来:match_pca,obb(定向 bbox),旋转到规范态度。

空输入(0 个元素的“points”)会导致 ValueError。

参考(示例数据、文献)

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

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

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

• itokawa_pose_canonical — py -3.11 examples_3d/itokawa_pose_canonical.py

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

fuse_to_voxel

同类别(match_pose)

match_phase_3d · match_pca · find_surface_pose · match_logpolar_z


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

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