tsattler / meshloc_release

BSD 3-Clause "New" or "Revised" License
184 stars 15 forks source link

Errors in python setup.py develop #13

Open Toanl-H opened 1 month ago

Toanl-H commented 1 month ago

Dear Author, l followed your steps to configure, but l get the following error when cd python setup.py develop. l really can't find the reason for this. Perhaps you have encountered a similar problem? The error are as follows. (immatchlsk) lsk@lsk-B760M-GAMING-AC-DDR4:~/lsk/code/image-matching-toolbox/meshloc_release$ python setup.py develop running develop /home/lsk/anaconda3/envs/immatchlsk/lib/python3.8/site-packages/setuptools/command/develop.py:41: EasyInstallDeprecationWarning: easy_install command is deprecated. !!

    ********************************************************************************
    Please avoid running ``setup.py`` and ``easy_install``.
    Instead, use pypa/build, pypa/installer or other
    standards-based tools.

    See https://github.com/pypa/setuptools/issues/917 for details.
    ********************************************************************************

!! easy_install.initialize_options(self) /home/lsk/anaconda3/envs/immatchlsk/lib/python3.8/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated. !!

    ********************************************************************************
    Please avoid running ``setup.py`` directly.
    Instead, use pypa/build, pypa/installer or other
    standards-based tools.

    See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
    ********************************************************************************
!! self.initialize_options() running egg_info writing meshloc.egg-info/PKG-INFO writing dependency_links to meshloc.egg-info/dependency_links.txt writing top-level names to meshloc.egg-info/top_level.txt reading manifest file 'meshloc.egg-info/SOURCES.txt' adding license file 'LICENSE' writing manifest file 'meshloc.egg-info/SOURCES.txt' running build_ext ['cmake', '/home/lsk/lsk/code/image-matching-toolbox/meshloc_release', '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/lsk/lsk/code/image-matching-toolbox/meshloc_release', '-DPYTHON_EXECUTABLE=/home/lsk/anaconda3/envs/immatchlsk/bin/python', '-DCMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc', '-DCMAKE_BUILD_TYPE=Release'] -- pybind11 v2.14.0 dev1 -- Found installed version of Eigen: /usr/lib/cmake/eigen3 -- Found required Ceres dependency: Eigen version 3.3.7 in /usr/include/eigen3 -- Found required Ceres dependency: glog -- Found installed version of gflags: /usr/lib/x86_64-linux-gnu/cmake/gflags -- Detected gflags version: 2.2.2 -- Found required Ceres dependency: gflags -- Found Ceres version: 1.14.0 installed in: /usr with components: [EigenSparse, SparseLinearAlgebraLibrary, LAPACK, SuiteSparse, CXSparse, SchurSpecializations, OpenMP, Multithreading] -- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found version "1.71.0") found components: filesystem graph program_options system -- Found FreeImage -- Includes : /usr/include -- Libraries : /usr/lib/x86_64-linux-gnu/libfreeimage.so -- Found FLANN -- Includes : /usr/include -- Libraries : /usr/lib/x86_64-linux-gnu/libflann.so -- Found LZ4 -- Includes : /usr/include -- Libraries : /usr/lib/x86_64-linux-gnu/liblz4.so -- Found Metis -- Includes : /usr/include -- Libraries : /usr/lib/x86_64-linux-gnu/libmetis.so -- Found Glog -- Includes : /usr/include -- Libraries : /usr/lib/x86_64-linux-gnu/libglog.so -- Found Glew -- Includes : /usr/include -- Libraries : /usr/lib/x86_64-linux-gnu/libGLEW.so -- Found installed version of Eigen: /usr/lib/cmake/eigen3 -- Found required Ceres dependency: Eigen version 3.3.7 in /usr/include/eigen3 -- Found required Ceres dependency: glog -- Found installed version of gflags: /usr/lib/x86_64-linux-gnu/cmake/gflags -- Detected gflags version: 2.2.2 -- Found required Ceres dependency: gflags -- Found Ceres version: 1.14.0 installed in: /usr with components: [EigenSparse, SparseLinearAlgebraLibrary, LAPACK, SuiteSparse, CXSparse, SchurSpecializations, OpenMP, Multithreading] -- Enabling OpenMP support -- Using header-only CGAL -- Targetting Unix Makefiles -- Using /usr/bin/c++ compiler. -- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found suitable version "1.71.0", minimum required is "1.48")
-- Boost include dirs: /usr/include -- Boost libraries:
-- Using gcc version 4 or later. Adding -frounding-math -- Found CGAL -- Includes : /usr/include -- Libraries : CGAL -- Enabling CUDA support (version: 11.8.89, archs: native) -- Found Qt -- Module : /home/lsk/anaconda3/envs/immatchlsk/lib/cmake/Qt5Core -- Module : /home/lsk/anaconda3/envs/immatchlsk/lib/cmake/Qt5OpenGL -- Module : /home/lsk/anaconda3/envs/immatchlsk/lib/cmake/Qt5Widgets -- Enabling GUI support -- Disabling OpenGL support -- Enabling GPU support (OpenGL: , CUDA: ON) -- Configuring done (0.2s) -- Generating done (0.0s) -- Build files have been written to: /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/build/temp.linux-x86_64-cpython-38 [ 2%] Building CXX object src/CMakeFiles/meshloc.dir/main.cc.o [ 4%] Building CXX object src/CMakeFiles/meshloc.dir/__/PoseLib/PoseLib/misc/essential.cc.o In file included from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/camera_pose.h:33, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:55, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:61: warning: "EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM" redefined 61
#define EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM(...) \
In file included from /usr/local/include/colmap/sensor/models.h:33, from /usr/local/include/colmap/scene/camera.h:32, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:51, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /usr/local/include/colmap/util/eigen_alignment.h:56: note: this is the location of the previous definition 56 #define EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM(...) \
In file included from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/camera_pose.h:33, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:55, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: error: redefinition of ‘class std::vector<Eigen::Matrix<double, 2, 1>, std::allocator<Eigen::Matrix<double, 2, 1> > >’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~~~~~~~~~~~ /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: note: in definition of macro ‘EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~ In file included from /usr/local/include/colmap/sensor/models.h:33, from /usr/local/include/colmap/scene/camera.h:32, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:51, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /usr/local/include/colmap/util/eigen_alignment.h:89:1: note: previous definition of ‘class std::vector<Eigen::Matrix<double, 2, 1>, std::allocator<Eigen::Matrix<double, 2, 1> > >’ 89 EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM(Eigen::Vector2d) ^~~~~~~~~~~~~ In file included from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/camera_pose.h:33, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:55, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: error: redefinition of ‘class std::vector<Eigen::Matrix<double, 4, 1>, std::allocator<Eigen::Matrix<double, 4, 1> > >’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~~~~~~~~~~~ /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: note: in definition of macro ‘EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~ In file included from /usr/local/include/colmap/sensor/models.h:33, from /usr/local/include/colmap/scene/camera.h:32, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:51, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /usr/local/include/colmap/util/eigen_alignment.h:90:1: note: previous definition of ‘class std::vector<Eigen::Matrix<double, 4, 1>, std::allocator<Eigen::Matrix<double, 4, 1> > >’ 90 EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM(Eigen::Vector4d) ^~~~~~~~~~~~~ In file included from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/camera_pose.h:33, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:55, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: error: redefinition of ‘class std::vector<Eigen::Matrix<float, 4, 1>, std::allocator<Eigen::Matrix<float, 4, 1> > >’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~~~~~~~~~~~ /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: note: in definition of macro ‘EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~ In file included from /usr/local/include/colmap/sensor/models.h:33, from /usr/local/include/colmap/scene/camera.h:32, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:51, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /usr/local/include/colmap/util/eigen_alignment.h:91:1: note: previous definition of ‘class std::vector<Eigen::Matrix<float, 4, 1>, std::allocator<Eigen::Matrix<float, 4, 1> > >’ 91 EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM(Eigen::Vector4f) ^~~~~~~~~~~~~ In file included from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/camera_pose.h:33, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:55, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: error: redefinition of ‘class std::vector<Eigen::Matrix<double, 2, 2>, std::allocator<Eigen::Matrix<double, 2, 2> > >’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~~~~~~~~~~~ /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: note: in definition of macro ‘EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~ In file included from /usr/local/include/colmap/sensor/models.h:33, from /usr/local/include/colmap/scene/camera.h:32, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:51, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /usr/local/include/colmap/util/eigen_alignment.h:92:1: note: previous definition of ‘class std::vector<Eigen::Matrix<double, 2, 2>, std::allocator<Eigen::Matrix<double, 2, 2> > >’ 92 EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM(Eigen::Matrix2d) ^~~~~~~~~~~~~ In file included from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/camera_pose.h:33, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:55, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: error: redefinition of ‘class std::vector<Eigen::Matrix<float, 2, 2>, std::allocator<Eigen::Matrix<float, 2, 2> > >’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~~~~~~~~~~~ /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: note: in definition of macro ‘EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~ In file included from /usr/local/include/colmap/sensor/models.h:33, from /usr/local/include/colmap/scene/camera.h:32, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:51, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /usr/local/include/colmap/util/eigen_alignment.h:93:1: note: previous definition of ‘class std::vector<Eigen::Matrix<float, 2, 2>, std::allocator<Eigen::Matrix<float, 2, 2> > >’ 93 EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM(Eigen::Matrix2f) ^~~~~~~~~~~~~ In file included from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/camera_pose.h:33, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:55, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: error: redefinition of ‘class std::vector<Eigen::Matrix<double, 4, 4>, std::allocator<Eigen::Matrix<double, 4, 4> > >’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~~~~~~~~~~~ /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: note: in definition of macro ‘EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~ In file included from /usr/local/include/colmap/sensor/models.h:33, from /usr/local/include/colmap/scene/camera.h:32, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:51, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /usr/local/include/colmap/util/eigen_alignment.h:94:1: note: previous definition of ‘class std::vector<Eigen::Matrix<double, 4, 4>, std::allocator<Eigen::Matrix<double, 4, 4> > >’ 94 EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM(Eigen::Matrix4d) ^~~~~~~~~~~~~ In file included from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/camera_pose.h:33, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:55, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: error: redefinition of ‘class std::vector<Eigen::Matrix<float, 4, 4>, std::allocator<Eigen::Matrix<float, 4, 4> > >’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~~~~~~~~~~~ /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: note: in definition of macro ‘EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~ In file included from /usr/local/include/colmap/sensor/models.h:33, from /usr/local/include/colmap/scene/camera.h:32, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:51, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /usr/local/include/colmap/util/eigen_alignment.h:95:1: note: previous definition of ‘class std::vector<Eigen::Matrix<float, 4, 4>, std::allocator<Eigen::Matrix<float, 4, 4> > >’ 95 EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM(Eigen::Matrix4f) ^~~~~~~~~~~~~ In file included from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/camera_pose.h:33, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:55, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: error: redefinition of ‘class std::vector<Eigen::Transform<double, 3, 2>, std::allocator<Eigen::Transform<double, 3, 2> > >’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~~~~~~~~~~~ /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: note: in definition of macro ‘EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~ In file included from /usr/local/include/colmap/sensor/models.h:33, from /usr/local/include/colmap/scene/camera.h:32, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:51, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /usr/local/include/colmap/util/eigen_alignment.h:96:1: note: previous definition of ‘class std::vector<Eigen::Transform<double, 3, 2>, std::allocator<Eigen::Transform<double, 3, 2> > >’ 96 EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM(Eigen::Affine3d) ^~~~~~~~~~~~~ In file included from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/camera_pose.h:33, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:55, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: error: redefinition of ‘class std::vector<Eigen::Transform<float, 3, 2>, std::allocator<Eigen::Transform<float, 3, 2> > >’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~~~~~~~~~~~ /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: note: in definition of macro ‘EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~ In file included from /usr/local/include/colmap/sensor/models.h:33, from /usr/local/include/colmap/scene/camera.h:32, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:51, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /usr/local/include/colmap/util/eigen_alignment.h:97:1: note: previous definition of ‘class std::vector<Eigen::Transform<float, 3, 2>, std::allocator<Eigen::Transform<float, 3, 2> > >’ 97 EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM(Eigen::Affine3f) ^~~~~~~~~~~~~ In file included from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/camera_pose.h:33, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:55, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: error: redefinition of ‘class std::vector<Eigen::Quaternion, std::allocator<Eigen::Quaternion > >’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~~~~~~~~~~~ /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: note: in definition of macro ‘EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~ In file included from /usr/local/include/colmap/sensor/models.h:33, from /usr/local/include/colmap/scene/camera.h:32, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:51, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /usr/local/include/colmap/util/eigen_alignment.h:98:1: note: previous definition of ‘class std::vector<Eigen::Quaternion, std::allocator<Eigen::Quaternion > >’ 98 EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM(Eigen::Quaterniond) ^~~~~~~~~~~~~ In file included from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/camera_pose.h:33, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:55, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: error: redefinition of ‘class std::vector<Eigen::Quaternion, std::allocator<Eigen::Quaternion > >’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~~~~~~~~~~~ /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: note: in definition of macro ‘EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~ In file included from /usr/local/include/colmap/sensor/models.h:33, from /usr/local/include/colmap/scene/camera.h:32, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:51, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /usr/local/include/colmap/util/eigen_alignment.h:99:1: note: previous definition of ‘class std::vector<Eigen::Quaternion, std::allocator<Eigen::Quaternion > >’ 99 EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM(Eigen::Quaternionf) ^~~~~~~~~~~~~ In file included from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/camera_pose.h:33, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:55, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: error: redefinition of ‘class std::vector<Eigen::Matrix<float, 3, 4>, std::allocator<Eigen::Matrix<float, 3, 4> > >’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~~~~~~~~~~~ /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: note: in definition of macro ‘EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~ In file included from /usr/local/include/colmap/sensor/models.h:33, from /usr/local/include/colmap/scene/camera.h:32, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:51, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /usr/local/include/colmap/util/eigen_alignment.h:100:1: note: previous definition of ‘class std::vector<Eigen::Matrix<float, 3, 4>, std::allocator<Eigen::Matrix<float, 3, 4> > >’ 100 EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM(Eigen::Matrix<float, 3, 4>) ^~~~~~~~~~~~~ In file included from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/camera_pose.h:33, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:55, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: error: redefinition of ‘class std::vector<Eigen::Matrix<double, 3, 4>, std::allocator<Eigen::Matrix<double, 3, 4> > >’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~~~~~~~~~~~ /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/PoseLib/PoseLib/alignment.h:64:11: note: in definition of macro ‘EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM’ 64 class vector<VA_ARGS, std::allocator<VA_ARGS>> \ ^~ In file included from /usr/local/include/colmap/sensor/models.h:33, from /usr/local/include/colmap/scene/camera.h:32, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:51, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /usr/local/include/colmap/util/eigen_alignment.h:101:1: note: previous definition of ‘class std::vector<Eigen::Matrix<double, 3, 4>, std::allocator<Eigen::Matrix<double, 3, 4> > >’ 101 EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM(Eigen::Matrix<double, 3, 4>) ^~~~~~~~~~~~~ In file included from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc: In function ‘pybind11::dict pose_estimation(pybind11::dict, std::vector, std::vector, pybind11::dict)’: /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:470:19: error: ‘struct colmap::Camera’ has no member named ‘SetModelIdFromName’ 470 colmap_camera.SetModelIdFromName("PINHOLE"); ^~~~~~ /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:471:19: error: ‘struct colmap::Camera’ has no member named ‘SetWidth’ 471 colmap_camera.SetWidth(kWidth); ^~~~ /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:472:19: error: ‘struct colmap::Camera’ has no member named ‘SetHeight’ 472 colmap_camera.SetHeight(kHeight); ^~~~~ /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:475:19: error: ‘struct colmap::Camera’ has no member named ‘SetParams’ 475 colmap_camera.SetParams(colmap_cam_params); ^~~~~ /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:524:41: error: cannot convert ‘Eigen::Vector4d’ {aka ‘Eigen::Matrix<double, 4, 1>’} to ‘colmap::Rigid3d*’ 524 &q_vec, &t_vec, &colmap_camera, ^~
Eigen::Vector4d {aka Eigen::Matrix<double, 4, 1>}
In file included from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:52, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /usr/local/include/colmap/estimators/pose.h:132:36: note: initializing argument 4 of ‘bool colmap::EstimateAbsolutePose(const colmap::AbsolutePoseEstimationOptions&, const std::vector<Eigen::Matrix<double, 2, 1>, std::allocator<Eigen::Matrix<double, 2, 1> > >&, const std::vector<Eigen::Matrix<double, 3, 1> >&, colmap::Rigid3d, colmap::Camera, size_t, std::vector)’ 132 Rigid3d* cam_from_world, ~~~^~~~ In file included from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:533:41: error: cannot convert ‘Eigen::Vector4d’ {aka ‘Eigen::Matrix<double, 4, 1>’} to ‘colmap::Rigid3d*’ 533 &q_vec, &t_vec, &colmap_camera)) { ^~
Eigen::Vector4d {aka Eigen::Matrix<double, 4, 1>}
In file included from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:52, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /usr/local/include/colmap/estimators/pose.h:172:34: note: initializing argument 5 of ‘bool colmap::RefineAbsolutePose(const colmap::AbsolutePoseRefinementOptions&, const std::vector&, const std::vector<Eigen::Matrix<double, 2, 1>, std::allocator<Eigen::Matrix<double, 2, 1> > >&, const std::vector<Eigen::Matrix<double, 3, 1> >&, colmap::Rigid3d, colmap::Camera, Eigen::Matrix6d*)’ 172 Rigid3d* cam_from_world, ~~~^~~~ In file included from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:620:38: error: cannot convert ‘Eigen::Vector4d’ {aka ‘Eigen::Matrix<double, 4, 1>’} to ‘colmap::Rigid3d*’ 620 &q_vec, &t_vec, &colmap_camera)) { ^~
Eigen::Vector4d {aka Eigen::Matrix<double, 4, 1>}

In file included from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/pose_estimation.cc:52, from /home/lsk/lsk/code/image-matching-toolbox/meshloc_release/src/main.cc:33: /usr/local/include/colmap/estimators/pose.h:172:34: note: initializing argument 5 of ‘bool colmap::RefineAbsolutePose(const colmap::AbsolutePoseRefinementOptions&, const std::vector&, const std::vector<Eigen::Matrix<double, 2, 1>, std::allocator<Eigen::Matrix<double, 2, 1> > >&, const std::vector<Eigen::Matrix<double, 3, 1> >&, colmap::Rigid3d, colmap::Camera, Eigen::Matrix6d)’ 172 | Rigid3d cam_from_world, | ~~~^~~~ [ 6%] Building CXX object src/CMakeFiles/meshloc.dir//PoseLib/PoseLib/robust.cc.o [ 8%] Building CXX object src/CMakeFiles/meshloc.dir//PoseLib/PoseLib/robust/bundle.cc.o make[2]: [src/CMakeFiles/meshloc.dir/build.make:76:src/CMakeFiles/meshloc.dir/main.cc.o] 错误 1 make[2]: 正在等待未完成的任务.... make[1]: [CMakeFiles/Makefile2:116:src/CMakeFiles/meshloc.dir/all] 错误 2 make: [Makefile:91:all] 错误 2 Traceback (most recent call last): File "setup.py", line 86, in setup( File "/home/lsk/anaconda3/envs/immatchlsk/lib/python3.8/site-packages/setuptools/init.py", line 117, in setup return distutils.core.setup(**attrs) File "/home/lsk/anaconda3/envs/immatchlsk/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 183, in setup return run_commands(dist) File "/home/lsk/anaconda3/envs/immatchlsk/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 199, in run_commands dist.run_commands() File "/home/lsk/anaconda3/envs/immatchlsk/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 954, in run_commands self.run_command(cmd) File "/home/lsk/anaconda3/envs/immatchlsk/lib/python3.8/site-packages/setuptools/dist.py", line 950, in run_command super().run_command(command) File "/home/lsk/anaconda3/envs/immatchlsk/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 973, in run_command cmd_obj.run() File "/home/lsk/anaconda3/envs/immatchlsk/lib/python3.8/site-packages/setuptools/command/develop.py", line 35, in run self.install_for_development() File "/home/lsk/anaconda3/envs/immatchlsk/lib/python3.8/site-packages/setuptools/command/develop.py", line 112, in install_for_development self.run_command('build_ext') File "/home/lsk/anaconda3/envs/immatchlsk/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 316, in run_command self.distribution.run_command(command) File "/home/lsk/anaconda3/envs/immatchlsk/lib/python3.8/site-packages/setuptools/dist.py", line 950, in run_command super().run_command(command) File "/home/lsk/anaconda3/envs/immatchlsk/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 973, in run_command cmd_obj.run() File "setup.py", line 39, in run self.build_extension(ext) File "setup.py", line 84, in build_extension subprocess.check_call(['cmake', '--build', '.'] + build_args, cwd=self.build_temp) File "/home/lsk/anaconda3/envs/immatchlsk/lib/python3.8/subprocess.py", line 364, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--config', 'Release', '--', '-j2']' returned non-zero exit status 2.

v-pnk commented 1 month ago

Hi @Toanl-H, I suspect the issue is coming from COLMAP API change (I think it came with version 3.9). I'll try to test the hypothesis and update the code in the next days.

colintle commented 1 month ago

@Toanl-H did you run into any cmake errors?

christiandur4nt commented 1 month ago

Hi @Toanl-H, I suspect the issue is coming from COLMAP API change (I think it came with version 3.9). I'll try to test the hypothesis and update the code in the next days.

Hey @v-pnk, did you manage to get the setup working? My team and I are having several issues pertaining to CMake, setuptools, colmap, and a bunch of other dependencies. Do you have any insight into how we can get this thing working?

The farthest I've gotten is that I've successfully run the image-matching-toolbox python setup.py develop command (and even that required a lot of updating of dependencies and manual installation of packages to get working). At the moment, when I personally attempt to run python setup.py develop for meshloc, I get the following error:

/home/cd-linux/git-projects/meshloc_release/src/pose_estimation.cc:50:10: fatal error: colmap/base/camera.h: No such file or directory
   50 | #include <colmap/base/camera.h>

We've followed the official instructions to install colmap on our systems (WSL and MacOS), but we're still having issues.

After looking into it, it seems that the camera.h header file in question instead exists at colmap/scene/camera.h. Upon changing the header manually in meshloc_release/src/pose_estimation.cc, I get a series of new errors such as no member named 'SetHeight', suggesting that pose_estimation.cc needs updating to reflect the newest changes in the colmap binaries (I found function declarations with very similar names in the colmap/scene/camera.h header file).

I wonder if using an old version of colmap would resolve this issue temporarily.

v-pnk commented 1 month ago

Hi, I did not run into any issues with COLMAP 3.8. I'll install the latest COLMAP version and change the code to be compatible.

christiandur4nt commented 1 month ago

Hi, I did not run into any issues with COLMAP 3.8. I'll install the latest COLMAP version and change the code to be compatible.

Hey, sounds good. I'll keep an eye out for the update. Please do let us know if there are any other concerns we should be aware of during installation.

AlainAmbrose commented 1 month ago

Hello @v-pnk, our team is still hoping to implement the algorithm into our pipeline, are there any updates to this issue?

v-pnk commented 1 month ago

Hi @AlainAmbrose, I changed the code to work with the new PyCOLMAP version, but encountered some segmentation faults during testing, which need to be fixed before updating the repo. Hopefully it will be ready withing the next few days. Sorry that it takes so long and thanks for your patience.

AlainAmbrose commented 1 month ago

Sounds great, thanks for the quick response.

v-pnk commented 1 month ago

The repository is now updated and tested with COLMAP 3.11. I also encountered some issues with Image Matching Toolbox installation (as mentioned by @christiandur4nt), but the updated installation instructions in README are working on my machine. Check if it works for you too and let me know if you encounter any issues.

christiandur4nt commented 1 month ago

The repository is now updated and tested with COLMAP 3.11. I also encountered some issues with Image Matching Toolbox installation (as mentioned by @christiandur4nt), but the updated installation instructions in README are working on my machine. Check if it works for you too and let me know if you encounter any issues.

Hey @v-pnk. thanks for letting us know about those updates. We're going to test the install as soon as we can, and we'll let you know how it goes.

I'm curious, how did you get the Image Matching Toolbox to work? Did you also have to manually update dependencies?

v-pnk commented 1 month ago

Yes, there is now a pip command in README which installs a minimal set of compatible packages (determined by trial and error) instead of creating the environment using the yaml file from the Image Matching Toolbox repository.

christiandur4nt commented 1 month ago

Hey @v-pnk, I tried the new installation steps, and this time it seems MeshLoc was successfully installed. However, when I try to execute the example commands for localization, I get the following error:

Can not import sparsencnet: No module named 'MinkowskiEngine'
Namespace(all_matches_ransac=False, bias_x=0.0, bias_y=0.0, cluster_keypoints=True, colmap_model_dir='../meshloc_release/datasets/aachen_day_night_v11/db_colmap_models/800_undist', covisibility_filtering=False, db_depth_image_dir='../meshloc_release/datasets/aachen_day_night_v11/db_renderings/AC14_depth_800_undist', db_image_dir='../meshloc_release/datasets/aachen_day_night_v11/images/images_db_undist_800', match_prefix='../meshloc_release/experiment_matches', max_ransac_iterations=100000, max_side_length=-1, merge_3D_points=False, method_config='aachen_v1_1', method_name='patch2pix', method_string='patch2pix_aachen_v1_1_', min_ransac_iterations=10000, out_prefix='../meshloc_release/experiment_outputs', query_dir='../meshloc_release/datasets/aachen_day_night_v11/images/images_q_night_800', query_list='../meshloc_release/datasets/aachen_day_night_v11/night_time_queries_with_intrinsics_800_basenames.txt', ransac_type='POSELIB+REF', refinement_range=1.0, refinement_step=0.25, rendering_postfix=None, reproj_error=20.0, retrieval_pairs='../meshloc_release/datasets/aachen_day_night_v11/retrieval_pairs/NetVLAD_top50_underscores.txt', top_k=50, triangulate=False, use_orig_db_images=True)
191
Loading the reference poses
Detected model format: '.txt'
Found 6697 images and 5232 cameras
Using the 50 top-ranked images
configs/patch2pix.yml
aachen_v1_1
Traceback (most recent call last):
  File "../meshloc_release/localize.py", line 624, in <module>
    main()
  File "../meshloc_release/localize.py", line 366, in main
    imm_args = yaml.load(f, Loader=yaml.FullLoader)[args.method_config]
KeyError: 'aachen_v1_1'

I followed the new instructions you provided and did not refer to the image-matching-toolbox instructions this time, but is there more I have to do to install this 'MinkowskiEngine'? Is this the source of the issue? I am aware that the instructions for setting up SparseNCNet exist here, but I would like to know how you got it working on your end.

Also, for more context, once I am able to get MeshLoc working, I'd like to try deploying it on new 3D meshes for a project I'm working on to perform localization on new query images. I'd appreciate any insight you could provide.

v-pnk commented 1 month ago

Hi @christiandur4nt, I am getting Can not import sparsencnet: No module named 'MinkowskiEngine' too, but the script runs OK with Patch2Pix. I guess it would matter only if you would like to use Sparse-NCNet for matching. In that case you would have to somehow install MinkowskiEngine. I think I tried it from source at some point and it worked fine.

The actual error which stops your script is because of the method_config parameter. Apparently we have a mistake in the example in README. It should be aachen_v1.1 instead of aachen_v1_1. You can find the configurations for every matching method here.

christiandur4nt commented 1 month ago

Thanks @v-pnk. I made the change and it fixed that issue. I then ran into the issue with the Image Matching Toolbox failing to download the pretrained models but your suggested fix of switching to a more recent branch in Patch2Pix fixed that too. With these fixes I manually downloaded each of the directories/files required for the Aachen v1.1 dataset example command from here (using the included download script to download everything was taking too long), then I ran the example command and got the following:

EDIT: @colintle also ran into this issue below.

 Trying to localize query image IMG_20161227_172439.jpg
   Matching against ../meshloc_release/datasets/aachen_day_night_v11/images/images_db_undist_800/db_1883.jpg
  0%|                                                                                                                                                    | 0/191 [00:00<?, ?it/s]
Traceback (most recent call last):
  File "../meshloc_release/localize.py", line 624, in <module>
    main()
  File "../meshloc_release/localize.py", line 450, in main
    img2_id = map_db_name_to_id[retrieved_db[j].strip()]
KeyError: 'db_1883.jpg'

I checked, and this db_1883.jpg image does exist in the given directory. In case you're curious, here is the command that I ran:

python3 ../meshloc_release/localize.py \
--db_image_dir ../meshloc_release/datasets/aachen_day_night_v11/images/images_db_undist_800 \
--db_depth_image_dir ../meshloc_release/datasets/aachen_day_night_v11/db_renderings/AC14_depth_800_undist \
--colmap_model_dir ../meshloc_release/datasets/aachen_day_night_v11/db_colmap_models/800_undist \
--query_dir ../meshloc_release/datasets/aachen_day_night_v11/images/images_q_night_800 \
--query_list ../meshloc_release/datasets/aachen_day_night_v11/night_time_queries_with_intrinsics_800_basenames.txt \
--out_prefix ../meshloc_release/experiment_outputs \
--match_prefix ../meshloc_release/experiment_matches \
--method_name patch2pix \
--method_config aachen_v1.1 \
--method_string patch2pix_aachen_v1_1_ \
--retrieval_pairs ../meshloc_release/datasets/aachen_day_night_v11/retrieval_pairs/NetVLAD_top50_underscores.txt \
--top_k 50 \
--max_side_length -1 \
--ransac_type POSELIB+REF \
--min_ransac_iterations 10000 \
--max_ransac_iterations 100000 \
--reproj_error 20.0 \
--use_orig_db_images \
--cluster_keypoints

FYI, the installation README currently says to run conda env create --name immatch python=3.7, but I believe it should be conda create --name immatch python=3.7 (no env). Just wanted to let you know since I also ran into that minor issue during installation.

colintle commented 1 month ago

Hi @v-pnk, I also ran into the same issue as @christiandur4nt with the invalid KeyError for db_1883.jpg

v-pnk commented 1 month ago

Hi @christiandur4nt, @colintle, thanks for reporting that.

There are two ways how to store the images - in the original directory structure (db/1883.jpg) or in a flattened directory structure (db_1883.jpg). I guess there is a mismatch somewhere between the images, retrieval file and the COLMAP model. The ret. file and COLMAP model using flat structure have _underscores in their name).

Try to change

--colmap_model_dir <meshloc_dataset_path>/aachen_day_night_v11/db_colmap_models/800_undist

to

--colmap_model_dir <meshloc_dataset_path>/aachen_day_night_v11/db_colmap_models/800_undist_underscores

In the repository, there are both options for undistorted database COLMAP models at 800 px (800_undist and 800_undist_underscores) and for retrieval files (NetVLAD_top50.txt and NetVLAD_top50_unerscores.txt). The undistorted resized 800px database images are in flattened format only (images_db_undist_800.zip). All the rendered images are also only in the flattened format.

Sorry for confusion, I have to fix that and make the description in the README more detailed.

christiandur4nt commented 1 month ago

Hey @v-pnk. Thanks a ton for helping us out. It seems that it worked and we've finally gotten things running on our ends 😄. I'll be sure to keep in touch in case we run into any other issues.

On a final note, since my team and I are interested in using MeshLoc for a project, would it be okay to stay in contact with you? I'm sure we'll have questions down the line, and we'd appreciate having a point of contact along the way. Otherwise, we can create issues instead if you prefer. Thanks again!

v-pnk commented 1 month ago

Hi @christiandur4nt, sure, either write to me at vojtech.panek(at)cvut.cz or create an issue as you want.