Contact
Project 2
Point Cloud Architectural Segmentation
2025
For an internal team competition at work, we decided to explore smart point cloud annotation. The idea was to allow users to upload .ply or other 3D friendly files to automatically identify building regions of interest with the goal of eventually incorporating deep learning-based classification via PointNet++, PointNeXt or similar models (getting PyTorch to cooperate seamlessly with Open3D required more finagling than expected!) While figuring this out, I worked on the Python backend as its sole developer and developed a CLI-based approach using open3d, numpy, and scikit-learn. The script is designed to run locally in the command line and accepts .ply filepaths as arguments with the --input flag. I opted to use Sceaux Castle for its significance in the OpenMVG/S multiview geometry library.
This pipeline takes raw point cloud data and segments it into meaningful structural elements using DBSCAN clustering by combining XYZ coordinates with surface normals and height data to help the algorithm understand building geometry. Further enhancements could include utilizing RANSAC to remove large planar surfaces, like floors and walls, before clustering remaining objects, which would be particularly effective in indoor scenes. The last step of this project was developing a Flask API to integrate with our frontend WASD viewer and annotation tool.
Data sources: Github (cdcseacave)