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 體。回傳 (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 — 深度感測器知識 —— 測距原理、實機數值、缺測的表現
• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 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 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.