refine op• Datenarten: voxel × voxel × position → table
• Aufruf: import fullseye as fs; fs.ledger.refine_lm(scene, template, init_pos, device='cpu', iters=50, scale=True, gain=False, lam0=0.001, tol=1e-08) (die Implementierung direkt: import match3d; match3d.refine_lm(scene, template, init_pos, device='cpu', iters=50, scale=True, gain=False, lam0=0.001, tol=1e-08); aus dem Register: ops3d.get("refine_lm"))
• GPU: Dieser Operator hat einen GPU-Pfad (device="cuda")
Subvoxel-Verfeinerung der Translation (plus isotroper Skalierung / Intensitätsverstärkung) per Levenberg-Marquardt.
Ausgehend von der groben Match-Position init_pos (Template-Zentrum in Szenenkoordinaten [z,y,x]) wird forward-additive Lucas-Kanade mit gedämpftem Gauss-Newton (LM) gelöst, um die SSD
E(p) = Σ_x [ I(W(x;p)) - g·T(x) ]²
zu minimieren. Eine nachgelagerte Stufe, die grobe Schätzungen aus ganzzahligem NCC / Fourier-Mellin / Hough zu kontinuierlichen Koordinaten konvergiert.
Warp W(x;p) = t + s·(x - c_T) (c_T = Template-Zentrum, t = Translation, s = isotrope Skalierung)
Jacobi-Matrix ∂I(W)/∂p wird exakt gewonnen, indem grid_sample durch Autodiff geführt wird (analytischer Gradient der trilinearen Interpolation.
Der Fixpunkt fällt mit dem wahren SSD-Minimum zusammen → vermeidet den konstanten Faktor-Bias von sobel, hohe Genauigkeit).
LM Δp = -(H + λ·diag(H))⁻¹ b; bei Erfolg (Kostensenkung) λ×0.4 Dämpfung, bei Misserfolg λ×5 Erhöhung.
Argumente:
scene : Szenen-Volume (D,H,W).
template : Template-Volume (Td,Th,Tw). Kleiner als die Szene.
init_pos : grobe Template-Zentrumsposition [z,y,x] (Voxel; z. B. [d,h,w] von NCC locate).
device : "cpu" / "cuda". Device-unabhängig.
iters : maximale Anzahl der Iterationen (konvergiert meist in 4-6).
scale : True optimiert die isotrope Skalierung s mit (4 Parameter). False nur Translation.
gain : True optimiert zusätzlich den Leuchtdichte-Gain g (Residuum I(W)-g·T). Robust gegen Helligkeitsunterschiede/Rauschen.
lam0, tol : anfänglicher Dämpfungskoeffizient / Konvergenzschwelle (Schrittnorm, relative Kostensenkung).
Rückgabewert (dict):
pos : verfeinertes Template-Zentrum [z,y,x] (kontinuierliche Koordinaten)
scale : isotrope Skalierung (1.0 bei scale=False)
gain : Leuchtdichte-Gain (1.0 bei gain=False)
cost : finale SSD, rms: Residuum-RMS pro 1 Voxel, iters: Anzahl ausgeführter Iterationen
• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).
• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.
• refinement — py -3.11 examples_3d/refinement.py
table als Eingabe)fuse_to_voxel · mesh_select_lod
refine)refine_peak_newton · refine_translation_lk · refine_rotation_z · icp_point2point_3d · icp_point2plane
*Provenance: match3d.py — 3D Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.