feature_register op• 資料種類:points × points → pose
• 呼叫: import fullseye as fs; fs.ledger.register_shot(src, dst, radius=None, normal_k=16, ratio=0.9, ransac_iters=2000, inlier_thr=None, refine_icp=True, max_kp=400, device='cpu', seed=0)(要直接呼叫實作,import feat_shot; feat_shot.register_shot(src, dst, radius=None, normal_k=16, ratio=0.9, ransac_iters=2000, inlier_thr=None, refine_icp=True, max_kp=400, device='cpu', seed=0);從台帳取用則 ops3d.get("register_shot"))
SHOT 描述子的稀疏特徵匹配 + RANSAC 剛體姿態估計(完整管線)。
無需初始估計,即可將大旋轉、部分重疊的 2 個點雲對應起來並回傳剛體變換(旋轉 R + 平移 t)。與稠密匹配(NCC/Hough/PCA)不同,在每個 ISS keypoint 上建立局部參考座標系(LRF),以球狀分割單元的法線角度直方圖(SHOT)描述 → 以 Lowe 比率測試 + 相互最近鄰匹配 → 以 RANSAC 對離群值穩健地估計位姿。得到的位姿也可用於為 ICP 提供粗初始值(coarse init)。
LRF 的符號歧義: 距離加權共變異數的特徵向量符號不確定, 因此將各軸(x=最大, z=最小 特徵值)對齊到鄰域向量 (p_i-p) 投影的多數方向(Tombari 的符號規則),並以 y=z×x 構成右手系。點法線也依同一規則統一為遠離鄰域質量的方向(局部向外),因此對旋轉共變,對部分重疊也穩定。對兩個點雲套用同一規則,以確保描述子的 repeatability。
參數:
src, dst: (N,3)/(M,3) 點雲(numpy 或 torch)。將 src 對齊到 dst。
radius: SHOT 支撐半徑。None 時為各點雲自身 bbox 對角線(取較小者)的 0.15 倍
(聯合 bbox 的對角線會因平移而虛增、使尺度失準,因此不使用)。
normal_k: 法線估計的 knn 數。
ratio: Lowe 比率測試閾值(越小越嚴格)。
ransac_iters: RANSAC 迭代次數。
inlier_thr: RANSAC 內點距離。None 時為 bbox 對角線的 0.03 倍。
refine_icp: 為 True 時以得到的位姿為初始值,以 Trimmed ICP(icp_point2point_3d)精化。
max_kp: keypoint 上限。
device: torch 裝置("cpu" 等)。在其上求解 SVD/ICP。
seed: RANSAC 亂數種子。
回傳值:
R: (3,3) numpy。滿足 dst ≈ src @ R.T + t 的旋轉(與 icp 同一慣例)。
t: (3,) numpy。平移。
info: dict。"n_kp_src","n_kp_dst","n_matches","n_inliers","inlier_ratio",
"icp_rmse"(refine_icp 時),"ok"(True=估計成功; 內點<4 時
視為不可信,回傳 False + 單位變換)。
• blas_threads_and_memory — 矩陣分解為何慢 —— BLAS 執行緒、快取、記憶體配置
• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。
• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。
• feature_register — py -3.11 examples_3d/feature_register.py
pose 作為輸入)fuse_to_voxel · pose_error · bundle_adjust · mean_reprojection_error · optimize_pose_graph · relative_pose · mean_edge_error · rotation_translation_error
feature_register)harris3d_keypoints · iss_keypoints · compute_fpfh · shot_descriptor · register_spin · register_fpfh
*Provenance: feat_shot.py — 3D 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.