3D scan and reconstruction system using Intel® RealSense™ Depth Camera D435i
This project works in the system:
- Intel® RealSense™ Depth Camera D435i with its tripod
- Open 3D 12.0
- Python 3.8
- Ubuntu 20.04 LTS
- Processor: Intel® Core™ i5-9600K OC @5.1GHz
- Motherboard: Asus ROG Strix Z390-E Gaming
- RAM: Corsair Vengeance LPX 32GB DDR4 OC @4200MHz
- GPU: NVIDIA GeForce RTX2060 Super, with CUDA 11.5
- Storage: Samsung 850 Evo SATA III 1TB
- Turn table (set the first loop of frame as the indicator of one rotation by changing the
frame_loop_at
) - Object above the turn table with the maximum recommended height of 25 cm
Procedure:
- Place the camera 30 cm in front of the object.
- Turn on the turn table with the object to be scanned on it.
- Run
3D-Scan-Record-RGBD.py
. - Input the distance (cm) from the object's centre to the camera.
- Input the object's maximum radius (cm) from the centre.
- Let the camera scan the object until the 360-degree rotation is achieved (hit
spacebar
to pause andESC
to exit). The program will exit automatically and save the capture in thedataset
directory. - Run
3D-Construct-RGBD.py
to begin the reconstruction system. - Program will show the results of the
.ply
file from the reconstruction system.
Note: if the object is quite complex in terms of the surface (rough surface with many indentations), the scanning process might need to be done twice, from a higher-level point-of-view and lower-level point-of-view to ensure all surfaces are already captured and not leaving holes in the reconstructed model.
Scan position example:
Depth scanning before (top) and after (bottom) optimization of the camera preset:
Result from default and custom/optimized camera preset and reconstruction configuration:
Time elapsed for each of the reconstruction pipelines and its RMSE (Root Mean Square Error):