match_chamfer_3d — 3D match_localize op

• 데이터 종류: voxel × voxel → position

• 호출: import fullseye as fs; fs.ledger.match_chamfer_3d(scene, template, device='cpu', thr=0.3, edt='scipy')(구현을 직접 호출하려면 import match3d; match3d.match_chamfer_3d(scene, template, device='cpu', thr=0.3, edt='scipy'), 원장에서 가져오려면 ops3d.get("match_chamfer_3d"))

• 원장 경유의 반환값: fullseye.ledger.match_chamfer_3d(...) 는 선언된 out 형 position 의 값만 반환합니다(실제 함수는 보조 정보도 반환). 버려진 쪽이 필요하면 fullseye.ledger.match_chamfer_3d.raw(...) 를 쓰거나 match3d.match_chamfer_3d 를 직접 호출하세요.

• GPU: 없음(CPU 참조 구현만)

사용법

chamfer / 거리장 매칭(부분·가림에 강건). voxel × chamfer 열.

장면 가장자리의 EDT (각 voxel에서 최근 가장자리까지의 거리)에 템플리의 가장자리 점을 놓습니다. 거리 합을 최소화. score(pos)=Σ_{template edge} DT_scene(pos+edge)/n. 낮을수록 좋은 일치. 가장자리 점의 일부가 없어도 효과가 있습니다 (NCC보다 차폐에 강함). 상관(conv3d)은 항상 GPU. 거리장은 edt="scipy"(CPU, 기본값) 또는 edt="jfa"(edt_jfa, 모든 GPU에서 CPU 왕복 없음, scipy와 정확히 일치). 반환값 [chamfer 거리, d, h, w].

프로 시저 : 두 볼륨 모두에서 "| ∇ |

그라디언트에 대한 상대비, 그라디언트는 sobel3d''). 장면 가장자리의 거리 변환 DT를 만들고 템플리엣지 2 치 volume 를 커널에 conv3d 한 값을 엣지수 n 로 나눈다. 반환 값 "[dist, z, y, x]"의 "dist"는 "템플릿의 가장자리 1 voxel 당 가장 가까운 장면 가장자리까지평균 거리(voxel 단위)'에서 0이 정확히 일치합니다. 위치는 **템플리 중심 (T//2)** 의 scene 좌표로 ** 정수 ** T//2를 당긴다). 템플리가 완전히 맞지 않는 위치는 최대치 +1 로 메워 제외한다. 템플리에 엣지가 없다 (thr가 너무 높다 등)과 score 가 전 0 이 되어 index (0,0,0) 가 돌려준다. scene 에 엣지가 없는 경우의 거리장은 의미를 가지지 않는다 (thr를 내린다). edt="jfa"는edt_jfa를 사용해device'' 상에서 완결, 그 이외는 scipy(CPU). 템플리에 엣지가 없는 경우는 score 가 전 0 이 되어 유효 범위의 선두 (pd, ph, pw)를 돌려준다.

빈 입력 (scene이 0 요소)은 ValueError입니다.

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• matching_localize — py -3.11 examples_3d/matching_localize.py

타입이 이어지는 다음 연산자(position 를 입력으로 받는 것)

refine_peak_newton · refine_translation_lk · refine_lm · fuse_to_voxel

같은 카테고리(match_localize)

match_shape_3d · match_curvature_3d · match_hough_3d · match_mip_2d · match_points_ncc


*Provenance: match3d.py — 3D 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

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