curvature_maps — 3D feature op

• Data kinds: voxel → curvature

• Call: import fullseye as fs; fs.ledger.curvature_maps(vol, device='cpu', mc=0.000625) (implementation को सीधे call करना हो तो import match3d; match3d.curvature_maps(vol, device='cpu', mc=0.000625), registry से लेना हो तो ops3d.get("curvature_maps"))

• GPU: इस op का GPU path है (device="cuda")

उपयोग

level-set की principal curvatures → shape index S (Koenderink) और curvedness। closed form (Kindlmann 2003)।

2D contour की curvature (1 scalar) का line→surface lift: surface के 2 principal curvature κ1,κ2 होते हैं। mean = (κ1+κ2)/2 = (|g|²trH − gᵀHg)/|g|³, Gauss K = κ1κ2 = gᵀadj(H)g/|g|⁴ (g=∇, H=Hessian)। S=(2/π)atan2(κ1+κ2, κ1−κ2) ∈[-1,1] intensity और rotation से अप्रभावित local surface type है (cup−1/rut/saddle0/ ridge+.5/cap+1)। बाहर की ओर वाले normal के नियम में चमकीला convex blob = cap(+1)। Return value (S, curvedness, mask, |g|), सभी torch।

इकाइयाँ: sobel3d के separable conv का gain 32 (deriv[-1,0,1]×smoothing[1,2,1]²) यहाँ वापस भाग दिया जाता है, इसलिए κ1,κ2/curvedness असली 1/voxel इकाई में हैं (radius R के spherical shell पर curvedness=1/R), और |g| तथा mask threshold mc प्रति voxel असली gradient इकाई में हैं। पुराना version (2026-08-29 तक) भाग देना भूल गया था:

curvedness 1/32 गुना था और mc कच्ची sobel3d इकाई में था (shape index S अनुपात है, इसलिए उस पर असर नहीं)। पुराने mc मान इस्तेमाल किए हों तो उन्हें 1/32 से गुणा करके दें (default 0.02→6.25e-4 भी बराबर रूप में बदला जा चुका है)।

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• diff_features — py -3.11 examples_3d/diff_features.py

वे अगले ops जिनसे type जुड़ता है (curvature को input के रूप में लेते हैं)

fuse_to_voxel

इसी category के (feature)

sobel3d · hessian3d · edt_jfa · edt_jfa_vector · vol_frangi · vol_local_std · vol_local_thickness · vol_orientation_coherence


*Provenance: match3d.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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