Description
I tried to install pycolmap after I installed the latest release of colmap from source (tag 3.6). However, I got a compiler error in generalized_absolute_pose.cc, line 263, which was modified in a commit yesterday (6e048c2)
@skydes Can we circumvent this change somehow or should I upgrade my colmap source instead?
pip3 install git+https://github.com/mihaidusmanu/pycolmap
[...]
-- The C compiler identification is GNU 8.4.0
-- The CXX compiler identification is GNU 8.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found required Ceres dependency: Eigen version 3.3.4 in /usr/include/eigen3
-- Found required Ceres dependency: glog
-- Found required Ceres dependency: gflags
-- Found Ceres version: 2.0.0 installed in: /usr/local with components: [EigenSparse, SparseLinearAlgebraLibrary, LAPACK, SuiteSparse, CXSparse, SchurSpecializations, Multithreading]
-- Boost version: 1.65.1
-- Found the following Boost libraries:
-- program_options
-- filesystem
-- regex
-- system
-- unit_test_framework
-- Found Eigen3: /usr/include/eigen3 (Required is at least version "2.91.0")
-- Found Eigen
-- Includes : /usr/include/eigen3
-- Found FreeImage
-- Includes : /usr/include
-- Libraries : /usr/lib/x86_64-linux-gnu/libfreeimage.so
-- Found Glog
-- Includes : /usr/include
-- Libraries : /usr/lib/x86_64-linux-gnu/libglog.so
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so
-- Found Glew
-- Includes : /usr/include
-- Libraries : /usr/lib/x86_64-linux-gnu/libGLEW.so
-- Found PythonInterp: /home/esoptron/anaconda3/envs/mcl/bin/python (found version "3.6.13")
-- Found PythonLibs: /home/esoptron/anaconda3/envs/mcl/lib/libpython3.6m.so
-- Performing Test HAS_CPP14_FLAG
-- Performing Test HAS_CPP14_FLAG - Success
-- pybind11 v2.5.dev1
-- Performing Test HAS_FLTO
-- Performing Test HAS_FLTO - Success
-- LTO enabled
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/pip-req-build-ru57jz_j/build/temp.linux-x86_64-3.6
Scanning dependencies of target pycolmap
[ 50%] Building CXX object CMakeFiles/pycolmap.dir/main.cc.o
In file included from /tmp/pip-req-build-ru57jz_j/main.cc:6:
/tmp/pip-req-build-ru57jz_j/generalized_absolute_pose.cc: In function ‘pybind11::dict rig_absolute_pose_estimation(std::vector<std::vector<Eigen::Matrix<double, 2, 1>, std::allocator<Eigen::Matrix<double, 2, 1> > > >, std::vector<std::vector<Eigen::Matrix<double, 3, 1> > >, std::vectorpybind11::dict, std::vector<Eigen::Matrix<double, 4, 1>, std::allocator<Eigen::Matrix<double, 4, 1> > >, std::vector<Eigen::Matrix<double, 3, 1> >, double)’:
/tmp/pip-req-build-ru57jz_j/generalized_absolute_pose.cc:263:22: error: ‘class colmap::GP3PEstimator’ has no member named ‘residual_type’; did you mean ‘Residuals’?
ransac.estimator.residual_type = GP3PEstimator::ResidualType::ReprojectionError;
^~~~~~~~~~~~~
Residuals
/tmp/pip-req-build-ru57jz_j/generalized_absolute_pose.cc:263:53: error: ‘colmap::GP3PEstimator::ResidualType’ has not been declared
ransac.estimator.residual_type = GP3PEstimator::ResidualType::ReprojectionError;
^~~~~~~~~~~~
CMakeFiles/pycolmap.dir/build.make:62: recipe for target 'CMakeFiles/pycolmap.dir/main.cc.o' failed
make[2]: *** [CMakeFiles/pycolmap.dir/main.cc.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/pycolmap.dir/all' failed
make[1]: *** [CMakeFiles/pycolmap.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
[...]
ERROR: Failed building wheel for pycolmap