I will generally be comparing the shared source photogrammetry software VisualSFM to Agisoft Photoscan. While there are many other free and open sourced photogrammetry software as well as proprietary options that exist, I have the most experience with these two programs. These two programs are also some of the most widely used programs for photogrammetry. Where the open/shared source software that I have been using is currently, this workflow seems better suited for educational purposes such as providing poeple with a free and relatively simple way to produce photogrammetric models at home or elsewhere. While the VisualSFM to Meshlab workflow produces visually accurate models of the original object or space, it does not allow the level of fine tuning and metering of point reconstruction accuracy as Agisoft. However, with the VisualSFM to Meshlab workflow, you can create a textured mesh from images in a short amount of time.
VisualSFM is a GUI application for 3D reconstruction using structure from motion (SFM). You can download this package http://opensourcephotogrammetry.blogspot.com/2010/12/new-package-available-for-windows.html that includes the libraries for feature detection and matching, sparse reconstruction and dense reconstruction typically used in VisualSFM. The .ply files created here can then be opened in Meshlab and converted into textured 3D meshes. VisualSFM is a free, shared-source (http://ccwu.me/vsfm/README) application created by Changchang Wu.
VisualSFM will only work on textured objects. Uniform surfaces such as a white wall will not work well. This tool will not work well if too few features are detected.
VisualSFM only accepts jpeg, ppm, and pgm image file types
The default maximum working dimension for images is 3200. If you have enough memory for size 4000, change the parameter by going to Tools -> Enable GPU -> Set Maximum DIM from the main tool bar at the top of the interface.
When you download the package from the link above, make sure the CMVS/PMVS binaries for sparse and dense reconstruction are placed in the same location as the VisualSFM.exe within the VisualSFM folder created upon downloading.
Minimize zooming, mouse dragging. etc. while processing to reduce the chance of memory leak (rare but possible) that may cause information to be lost. It is best to minimize the window during processing.
A finished dense reconstruction. You can toggle between the sparse and dense reconstruction view at any point using the tab key. Once the dense reconstruction has finished. It will be automatically saved in the folder you created. VisualSFM can be closed and your ready for Meshlab!
Meshlab is a free and open source software designed for editing unstructured meshes typically produced by 3D scans. We will be using Meshlab to transform our point clouds into textured meshes.
Meshlab tip: There is no undo option in Meshlab. Instead, it is a good idea to export the current version of project after each step. You can go to File -> Reload to recover a previous unsaved state if you want to undo a deletion for example.
Once the sparse point cloud has been imported, go to Render -> Show Cameras. The cameras may need to be scaled down. Click on the layer icon to show the layers panel on the right side of the screen. Open the drop down menu where it says Show cameras and change the scale from 5 to .0001 or until you can see point cloud.
Once the sparse point cloud has been imported, go to Render -> Show Cameras. The cameras may need to be scaled down. Click on the layer icon to show the layers panel on the right side of the screen. Open the drop down menu where it says Show cameras and change the scale from 5 to .0001 or until you can see point cloud.
Select the Delete Selected Vertices icon to clear your selection.
I'm still working out the meaning of the different setting but generally...
The Octree Depth controls the resolution of the triangulated mesh. Increasing this amount will increase the number of divisions of the mesh, creating more detail. Depending on the level of detail of your model, you probably want to increase the Octree Depth from the low resolution default amount of 6. However, increasing the Octree Depth uses more memory, slowing down the program. Increasing the Solver Divide helps to save some memory as the Octree Depth is increased. Increasing the Samples per Node smooths out your mesh if you want. Surface offsetting can help to remove some unwanted artifacts of the meshing process.
Hit apply when done.
Change the pixel size of texture image to whatever size you want to work with. I have just left the rest of the default settings as is.