VisualSFM : A Visual Structure from Motion System

Changchang Wu  

 

Installation guide
Below are the instructions for installing VisualSFM and its depending libraries. GPU-acceleration requires certain hardware, and please refer to FAQ if some GPU steps do not work for you.

Windows
1. Try launch VisualSFM. If it does not launch, please install MSVC2010 runtime (64bit, 32bit)
2. (optional step) Install Yasutaka Furukawa's CMVS software for dense reconstruction.
- Obtain the CMVS/PMVS binaries. For example, the one by Pierre Moulon.
- Place cmvs/pmvs/genOption/pthreadVc2.dll in the same folder as VisualSFM.exe
3.

Try update your graphic card driver if some GPU stuff doesn't work!
Linux
* Check out Scott Sawyer's tutorial for Ubuntu and Martin Andrews's tutorial for Fedora
   
1. Make sure you have libgtk2.0-dev / gtk2-devel (2.18 or higher)
2. make (Do not lose your previous makefile modifications when updating)
3. Download SiftGPU code, and copy libsiftgpu.so to the vsfm/bin folder
  - You may set 'siftgpu_disable_devil = 1' in the makefile to drop the dependency on DevIL
- The CUDA-enabled SiftGPU is needed for running programs remotely through terminal
4. Do one of the following for PBA (Multicore Bundle Adjustment)
Option-1 for nVidia CUDA compatible graphic cards:
         Install CUDA toolkit, compile PBA, copy libpba.so to the vsfm/bin folder
Option-2 for all graphic cards:
         Compile PBA using makefile_no_gpu, and copy libpba_no_gpu.so to vsfm/bin/libpba.so
5. Install Yasutaka Furukawa's CMVS software for dense reconstruction.
- Download and compile the CMVS/PMVS2 package or find precompiled binaries.
- Place cmvs/pmvs/genOption in the same folder as VisualSFM(or PATH)
6. Make sure LD_LIBRARY_PATH/PATH are set correctly
  - Check dependency with ldd for libsiftgpu.so, libpba.so, ...
- VisualSFM will call dlopen("libsiftgpu.so"), dlopen("libpba.so"), system("pmvs.."), etc.
   
Mac OSX
* Check out the installers distributed by Dan Monaghan. (See the gtk+ bullet below!)
   
1. Install gtk+ through fink, homebrew, or mac-ports if you haven't
Modify makefile to specify the location of your pkg-config for gtk+2.0
  Note: VisualSFM requires gtk+ with x11 backend! The latest version of gtk+ from brew has removed
x11 backend. You either have to modify the Formula to enable x11 backend, or rollback to a version that still has x11 backend. For example, run the following before brew installs:
cd /usr/local; git checkout 99126a50c96b3c832d72f4531c116271f543eded
   
2. Make sure you have X11+GLX+OpenGL support (not OpenGL framework)
- libGL.1.dylib, libGLU.1.dylib libX11.6.dylib
- Mesa3D might be an alternative if something is not working.
3. make (Do not lose your previous makefile modifications when updating)
- In case the GUI closes without any symptoms, try an older version of XQuartz
- VisualSFM needs libstdc++, so I recommend using GNU G++ compiler.
4. Do the same steps as the steps 3-6 for Linux
  - The SiftGPU and PBA code may not support Mac so well (for now).
- You may need small modifications to the code, or search for their Mac OSX ports.