feature_register op• 資料種類:voxel → keypoints
• 呼叫: import fullseye as fs; fs.ledger.harris3d_keypoints(vol, device='cpu', k=0.005, nms=3, topn=64, sigma_i=1.5, response='mineig', rel_thresh=0.01, border=2)(要直接呼叫實作,import feat_harris; feat_harris.harris3d_keypoints(vol, device='cpu', k=0.005, nms=3, topn=64, sigma_i=1.5, response='mineig', rel_thresh=0.01, border=2);從台帳取用則 ops3d.get("harris3d_keypoints"))
• 經台帳呼叫的回傳值: fullseye.ledger.harris3d_keypoints(...) 只回傳宣告的 out 型別 keypoints 的值(底層函式還會回傳輔助資訊)。需要被捨棄的部分時,請用 fullseye.ledger.harris3d_keypoints.raw(...),或直接呼叫 feat_harris.harris3d_keypoints。
• 底層回傳: (keypoints, scores)
• GPU:該運算子有 GPU 路徑(device="cuda")
3D Harris 關鍵點偵測(2D Harris 角點偵測的 3D 版)。
從 voxel 密度場的 3D 梯度 g=(gz,gy,gx) 出發,在各體素建構局部結構張量 M=Σ_w w·g gᵀ(3x3 對稱,以 gaussian 視窗 sigma_i 加權求和),量測角點性。響應在周圍為極大且超過閾值的體素作為 keypoint(由於無需初始位姿估計即可偵測,可用於大旋轉+部分重疊的對應,或為 ICP 提供 coarse init)。
角點性指標:
• "mineig"(預設): 3x3 對稱矩陣的最小特徵值(Shi-Tomasi 式)。3 個方向都有結構(=角)時最小特徵值越大。以閉合式(三角函數法)計算。無需調整 k 且穩健(實測 mean repeatability 85%,min 72.5%)。
• "harris": R = det(M) - k·tr(M)³。3D 中有 3 個特徵值,因此以 tr 的 3 次方
無因次化。★注意: 在密度 voxel 的角處 det/tr³ 比經驗上只有 ~0.01,
因此用 2D 標準的 k=0.04〜0.06 時全部響應為負,偵測數為 0。
3D 中需要 k≈0.005(實測 k=0.005 時 mean 89.6%)。
參數:
vol: (D,H,W) 密度 voxel(numpy / torch)。假定為 points_to_voxel 的輸出。
device: torch 裝置("cpu" 等)。所有運算都在該裝置上進行。
k: Harris 的靈敏度係數(僅在 response="harris" 時有效)。3D 密度場中
約 0.005(2D 慣例的 0.04〜0.06 在 3D 中過強,偵測數為 0)。
nms: 非極大值抑制的立方體視窗邊長(奇數,標準 3 = 3x3x3 鄰域)。
topn: 依響應降序回傳的 keypoint 最大數量。
sigma_i: 結構張量積分視窗(gaussian)的標準差(voxel)。
response: "mineig"(預設,穩健)或 "harris"。
rel_thresh: 響應閾值 = rel_thresh × 有效區域的最大響應(抑制雜訊)。
border: 距邊緣 border 個體素以內不偵測(去除梯度的邊緣效應)。
回傳值:
keypoints: (M,3) float64。keypoint 的 voxel 座標 (z,y,x)(與 sobel3d
相同的軸順序)。依響應降序,最多 topn 個。
responses: (M,) float64。對應的響應值(降序)。
相依: sobel3d(3D 梯度)、_gauss3d(積分視窗平滑)。皆在 device 上執行。
• 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
keypoints 作為輸入)fuse_to_voxel · dlt_pose · pnp_ransac · reprojection_error
feature_register)iss_keypoints · compute_fpfh · shot_descriptor · register_spin · register_fpfh · register_shot
*Provenance: feat_harris.py — 3D 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.