spectralbrain.compute_ibks#
- spectralbrain.compute_ibks(decomp, *, gaussian_curvature=None, alpha=0.1, k_neighbours=10)[source]#
Improved BKS with curvature-aware neighbourhood aggregation.
Augments BKS with Gaussian curvature information to improve stability at articulation points and high-curvature regions.
IBKS(x) = BKS(x) + α · mean_{y ∈ N(x)} |K(y)| · BKS(y)
where K is Gaussian curvature and N(x) is the k-nearest neighbourhood.
- Parameters:
decomp (SpectralDecomposition)
gaussian_curvature (ndarray, shape (N,), optional) – Pre-computed Gaussian curvature. If
None, the curvature term is approximated from the eigenvectors (less accurate but avoids requiring a mesh).alpha (float) – Blending weight for the curvature term.
k_neighbours (int) – Neighbourhood size for local aggregation.
- Returns:
ndarray, shape (N,) – Per-vertex IBKS.
- Return type:
References
Zhang Y et al. Improved biharmonic kernel signature for 3D non-rigid shape matching and retrieval. The Visual Computer 40:969–980, 2024.