
SFM Scanner
thingiverse
Structure from Motion (SfM) is an algorithmic approach that reconstructs 3D scenes using data about corresponding points in images. Unlike laser-based scanners, SfM requires no specialized hardware except a camera. This year has seen numerous SfM-based 3D scanning solutions, like My3DScanner.com, but all are closed source. The open-source innovation in this field is scarce despite software usually being an area that embraces open-source philosophy. For his computational photography final project, the author tried to develop an open-source SfM scanner in MATLAB. The program uses David Lowe's SIFT for feature point extraction, Philip Torr's MAPSAC algorithm for outlier removal, and Vincent Rabaud's toolkit for 3D position reconstruction. It then applies Giaccari's Crust algorithm to generate a surface mesh automatically. The final output is an STL file, although manual meshing may yield better results. Currently, the program only extracts structure from two images using the normalized eight-point algorithm. A stereo camera setup or additional methods like affine and metric upgrades might improve the results. All code is modular for easy modifications. The author's final project report provides more detailed information on how everything was done. To use the program, install Matlab, its Image Processing and Data Acquisition toolkits, and download the required dependencies including Vincent Rabaud's SFM toolbox, Philip Torr's SAM toolkit, and Visual Studio 2008 express. Instructions for using the program are provided in the "sfm with sift" folder. The output is an STL file named "output.stl", which can be opened in ReplicatorG or manually meshed for better results.
With this file you will be able to print SFM Scanner with your 3D printer. Click on the button and save the file on your computer to work, edit or customize your design. You can also find more 3D designs for printers on SFM Scanner.