OpenMVG

Is the ceres I have installed already conflicting, or is it using a submodule version that is wrong?

[ 48%] Building CXX object openMVG/multiview/CMakeFiles/openMVG_multiview.dir/translation_averaging_solver_softl1.cpp.o
/home/lwalter/other/openMVG/src/openMVG/multiview/translation_averaging_solver_softl1.cpp: In function ‘bool openMVG::solve_translations_problem_softl1(const std::vector<std::pair<std::pair<unsigned int, unsigned int>, std::pair<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<double, 3, 1> > > >&, bool, int, std::vector<Eigen::Matrix<double, 3, 1> >&, double)’:
/home/lwalter/other/openMVG/src/openMVG/multiview/translation_averaging_solver_softl1.cpp:181:56: error: ‘EIGEN_SPARSE’ is not a member of ‘ceres’
       ceres::IsSparseLinearAlgebraLibraryTypeAvailable(ceres::EIGEN_SPARSE))
                                                        ^
/home/lwalter/other/openMVG/src/openMVG/multiview/translation_averaging_solver_softl1.cpp:199:16: error: ‘struct ceres::Solver::Summary’ has no member named ‘IsSolutionUsable’
   if (!summary.IsSolutionUsable())
                ^
make[2]: *** [openMVG/multiview/CMakeFiles/openMVG_multiview.dir/translation_averaging_solver_softl1.cpp.o] Error 1
make[1]: *** [openMVG/multiview/CMakeFiles/openMVG_multiview.dir/all] Error 2
make: *** [all] Error 2

This is because it is finding Ceres 1.8 as installed in 1.8.0. The easiest thing to do is remove the find_package for ceres in src/CMakeLists.txt. The proper thing to do is to require Ceres have the required version that has EIGEN_SPARSE in it. (TBD actually do that and put in a merge request)

Try uninstalling ceres. That works.

Make a clean build dir, finding ceres 1.10 does work alonside apt-got 1.8.

Making documentation might be broken, confusion between ceres make_docs.py and mvg make_docs.py?

‘Disabling use of Eigen as a sparse linear algebra library’ do I want that?

SfM/tutorial_demo.py has to be run in the directory it is found in.

pmvs/cmvs

Use the github repo that provides a cmakelists.txt

pmvs2 looks to be fine to replace pmvs in example command line.

The output file was named pmvs_options.txt.ply, meshlab didn’t like it until renamed to pmvs_options.ply.

Tried taking some pictures and running sequential and global on it, it processed but no output files.

TBD add text output.

Questions

If I calibrate the camera myself (with a checkerboard and opencv) how do I pass that information to openmvg so it doesn’t have to figure it out, and doesn’t need sensor size?

Written on December 17, 2015