fuse — 3D tsdf_fusion op

• 데이터 종류: depth → sdf

• 호출: import fullseye as fs; fs.ledger.fuse(depths: 'Sequence[np.ndarray]', Ks: 'Sequence', Rs: 'Sequence', ts: 'Sequence', bounds: 'Bounds', res: 'int', trunc: 'float') -> 'Tuple[np.ndarray, np.ndarray]'(구현을 직접 호출하려면 import tsdf_fusion; tsdf_fusion.fuse(depths: 'Sequence[np.ndarray]', Ks: 'Sequence', Rs: 'Sequence', ts: 'Sequence', bounds: 'Bounds', res: 'int', trunc: 'float') -> 'Tuple[np.ndarray, np.ndarray]', 원장에서 가져오려면 ops3d.get("fuse"))

사용법

깊이 열을 new_volume + integrate 로 하나의 TSDF volume 에 융합. 반환값 (tsdf, weight).

각 프레임의 (K,R,t) 는 world→camera. 다시점으로 같은 표면을 관측하면 가중치가 누적되어, 단일 프레임에서는 보이지 않는(자기 가림의) 면이 다른 시점으로 메워진다.

• depths: (H,W) 깊이 영상의 리스트(카메라 Z 깊이. 0 이하·비유한 화소는 미관측 취급). 크기는 프레임마다 달라도 된다.

• Ks / Rs / ts: 각 프레임의 (3,3) 내부 행렬·(3,3) 회전·(3,) 병진(X_cam = R X + t).

• bounds: ((xmin,xmax),(ymin,ymax),(zmin,zmax)) 의 world 영역(각 축 max > min).

• res: 한 변의 voxel 수(양의 int). volume 은 res×res×res, 축 순서는 (x,y,z) 의 indexing='ij'.

• trunc: 절단 거리(world 단위, 양의 유한값). voxel 크기의 몇 배가 기준이며, 너무 작으면표면 양쪽에 관측이 실리지 않고, 너무 크면 얇은 구조의 앞뒤가 섞인다.

반환값: tsdf (res,res,res) float32(미관측 +1.0, 표면 앞쪽이 양·뒤쪽이 음, [-1,1])와 weight (res,res,res) float32(관측 횟수). 표면점은 extract_surface_points(tsdf, weight, bounds, res) 로 꺼낸다. fail-closed(실패 시 거부): 프레임 0 장, 리스트 길이 불일치, 퇴화 bounds, 양이 아닌 res / trunc 는 ValueError. 통합의 상세(가림 영역을 갱신하지 않는 규칙)는 integrate 를 참조.

배경 지식 가이드(이 연산자 앞에 있는 물리·규약)

• depth_sensors — 깊이 센서 지식 — 측거 원리·실기 수치·결측이 나타나는 방식

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

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

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

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

• tsdf_fusion_demo — py -3.11 examples_3d/tsdf_fusion_demo.py

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

sdf_to_occupancy · fuse_to_voxel · integrate · extract_surface_points · query_distance · sdf_union · sdf_intersect · sdf_subtract

같은 카테고리(tsdf_fusion)

integrate · extract_surface_points


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

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