This project came as a request from the president of my college. One day an art professor approached me and asked if a 3D model of the college's chapel can be made. It was 2 weeks before finals as well as the deadline for the project, but I said yes. The goal was to make small chapels for the donors of the college.
Throughout the past semester, I was working on a project involving photogrammetry, which is the process of generating a 3D model from still images. The typical approach is to take photos of an object, often with a DSLR, and throw them into the photogrammetry software. This takes quite a bit of time, so I came up with a new approach. The idea is pretty simple; using videos as the source instead of images. Since videos are a collection of images strung together, I just needed to find a way to do the separation. A reverse stop motion film in a sense. To do this, I found a python library, called OpenCV, that specializes in image processing. The code is very simple and is available on GitHub. There are two versions of the code; one to process a single video and the other processes batches of videos. For those who are interested, details on the code are on GitHub.
Here's the fun part of the project; flying the drone. Above are a few samples of images I got after processing the video. I used the college's DJI spark drone and did a spiral sweep of the chapel with a total flight time of a few minutes.
Now for the 3D model generating.
The images are now imported into the photogrammetry software to be used in generating the 3D model. The first step is to align the images within the software; creating an arbitrary guess of where each photo was taken in relation to others.
We now have a point cloud render. The point cloud is a collection of 3D points generated from the overlapping parts from the images. It's the software's best guess in making out distinct features of the chapel. Surrounding the points is a white scribble representing the path the drone flew in. You might be able to trace its flight as a spiral going counter- clockwise.
Some points are generated from the surrounding that we would like to ignore. To do this, a construction region is made, defining the points we would like to include for the final 3D model.
The 3D model is generated. Trees from the environment made its way in, but that can be taken care of later. Time to add color!
The 3D model is now exported. From here edits are made in Autodesk's Meshmixer to remove unwanted parts.
The following are interactive viewers for the two versions of the chapel I made; pre-edit and post-edit. I'm still trying to figure out the lack of color bug, so until then the models will stay grey. The files are also very big, so give it some time to load. Let me know in the comments what you think.
My job was now done. I handed the model off to the art professor to let him make the physical model. He opted to use the 5 axis cnc mill we have here, but the smaller parts of the chapel made it impossible to carve. Option two was to 3D print it and make a mold and cast it using what I believe is bronze. A filler of some sort was used to pad the fragile parts of the print for added support.
The results were fantastic!