Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Errors in python setup.py develop #13

Open
Toanl-H opened this issue Sep 29, 2024 · 18 comments
Open

Errors in python setup.py develop #13

Toanl-H opened this issue Sep 29, 2024 · 18 comments

Comments

@Toanl-H
Copy link

Toanl-H commented Sep 29, 2024

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::vectorpybind11::dict, std::vectorpybind11::dict, 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
Copy link
Collaborator

v-pnk commented Oct 2, 2024

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
Copy link

colintle commented Oct 4, 2024

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

@christiandur4nt
Copy link

christiandur4nt commented Oct 4, 2024

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
Copy link
Collaborator

v-pnk commented Oct 5, 2024

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
Copy link

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
Copy link

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

@v-pnk
Copy link
Collaborator

v-pnk commented Oct 14, 2024

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
Copy link

Sounds great, thanks for the quick response.

v-pnk added a commit that referenced this issue Oct 15, 2024
- Should address the COLMAP compatibility issues mentioned in #13.
- Update the installation instructions in README.
- Clarify in README that the original Aachen v1.1 and 12 Scenes datasets need to be downloaded as well as mentioned in #12.
- Other minor adjustments and cleaning.
@v-pnk
Copy link
Collaborator

v-pnk commented Oct 15, 2024

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
Copy link

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
Copy link
Collaborator

v-pnk commented Oct 15, 2024

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
Copy link

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
Copy link
Collaborator

v-pnk commented Oct 16, 2024

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.

v-pnk added a commit that referenced this issue Oct 16, 2024
- Change method_config parameter in Aachen localization example to conform with immatch Patch2Pix config as mentioned in #13
@christiandur4nt
Copy link

christiandur4nt commented Oct 16, 2024

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.

v-pnk added a commit that referenced this issue Oct 16, 2024
@colintle
Copy link

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

@v-pnk
Copy link
Collaborator

v-pnk commented Oct 17, 2024

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.

v-pnk added a commit that referenced this issue Oct 17, 2024
- Fix the Aachen v1.1 recipe and add more details to the image directory structure used in the data repository as discussed in #13
@christiandur4nt
Copy link

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
Copy link
Collaborator

v-pnk commented Oct 18, 2024

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants