อัปเดต : สามารถดูเวอร์ชันหลามของโค้ดนี้ที่รองรับทั้ง CPU/GPU ได้ที่นี่
รหัส CUDA/C++ เพื่อหลอมรวมแผนที่ความลึกที่ลงทะเบียนหลายรายการให้เป็นปริมาตร voxel ของฟังก์ชันระยะทางที่ลงนาม (TSDF) ที่ถูกตัดทอนแบบโปรเจ็กต์ ซึ่งจากนั้นจะสามารถนำมาใช้เพื่อสร้างตาข่ายพื้นผิว 3 มิติคุณภาพสูงและพอยต์คลาวด์ได้ ทดสอบบน Ubuntu 14.04 และ 16.04
กำลังมองหารุ่นที่เก่ากว่าอยู่ใช่ไหม? ดูที่นี่
tsdf2mesh.m
สร้าง mesh ในพิกัดของกล้องอย่างถูกต้องแทนที่จะเป็นพิกัด voxelSaveVoxelGrid2SurfacePointCloud
ในโค้ดสาธิตเพื่อเปิดใช้งานการสร้างการแสดงภาพ point cloud ด้วยเฟรมความลึกเพียงเฟรมเดียว การสาธิตนี้รวมแผนที่เชิงลึกที่ลงทะเบียนไว้ 50 รายการจาก data/rgbd-frames
ลงในวอลุ่ม voxel TSDF ที่ฉายภาพ และสร้าง tsdf.ply
คลาวด์พื้นผิวแบบ 3 มิติ ซึ่งสามารถมองเห็นได้ด้วยมุมมอง 3 มิติ เช่น Meshlab
หมายเหตุ : แผนที่ความลึกอินพุตควรบันทึกในรูปแบบ: PNG 16 บิต ความลึกเป็นมิลลิเมตร
./compile.sh # compiles demo executable
./demo # 3D point cloud saved to tsdf.ply and voxel grid saved to tsdf.bin
[ไม่บังคับ] การสาธิตนี้ยังบันทึกปริมาตร voxel ที่คำนวณแล้วลงในไฟล์ไบนารี tsdf.bin
เรียกใช้สคริปต์ต่อไปนี้ใน Matlab เพื่อสร้างพื้นผิว 3 มิติ mesh mesh.ply
ซึ่งสามารถมองเห็นได้ด้วย Meshlab
tsdf2mesh ; % 3D mesh saved to mesh.ply
พื้นที่เก็บข้อมูลนี้เป็นส่วนหนึ่งของ 3Dmatch Toolbox หากคุณพบว่าโค้ดนี้มีประโยชน์ในการทำงานของคุณ โปรดพิจารณาการอ้างอิง:
@inproceedings{zeng20163dmatch,
title={3DMatch: Learning Local Geometric Descriptors from RGB-D Reconstructions},
author={Zeng, Andy and Song, Shuran and Nie{ss}ner, Matthias and Fisher, Matthew and Xiao, Jianxiong and Funkhouser, Thomas},
booktitle={CVPR},
year={2017}
}