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
キーポイントごとに局所参照フレーム(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: キーポイント上限。
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 スレッド・キャッシュ・メモリ配置
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL 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 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.