Actualización : aquí se puede encontrar una versión Python de este código con soporte para CPU/GPU.
Código CUDA/C++ para fusionar múltiples mapas de profundidad registrados en un volumen de vóxel proyectivo con función de distancia con signo truncado (TSDF), que luego se puede utilizar para crear mallas de superficie 3D y nubes de puntos de alta calidad. Probado en Ubuntu 14.04 y 16.04.
¿Busca una versión anterior? Ver aquí.
tsdf2mesh.m
ahora genera correctamente una malla en las coordenadas de la cámara en lugar de las coordenadas de vóxel.SaveVoxelGrid2SurfacePointCloud
en el código de demostración para permitir la creación de visualizaciones de nubes de puntos con un solo marco de profundidad. Esta demostración fusiona 50 mapas de profundidad registrados a partir de data/rgbd-frames
en un volumen de vóxel TSDF proyectivo y crea una nube de puntos de superficie 3D tsdf.ply
, que se puede visualizar con un visor 3D como Meshlab.
Nota : Los mapas de profundidad de entrada deben guardarse en formato: PNG de 16 bits, profundidad en milímetros.
./compile.sh # compiles demo executable
./demo # 3D point cloud saved to tsdf.ply and voxel grid saved to tsdf.bin
[Opcional] Esta demostración también guarda el volumen de vóxel calculado en un archivo binario tsdf.bin
. Ejecute el siguiente script en Matlab para crear una malla de superficie 3D mesh.ply
, que se puede visualizar con Meshlab.
tsdf2mesh ; % 3D mesh saved to mesh.ply
Este repositorio es parte de 3DMatch Toolbox. Si encuentra este código útil en su trabajo, considere citar:
@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}
}