Open Toanl-H opened 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.
@Toanl-H did you run into any cmake errors?
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.
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.
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.
Hello @v-pnk, our team is still hoping to implement the algorithm into our pipeline, are there any updates to this issue?
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.
Sounds great, thanks for the quick response.
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.
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?
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.
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.
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.
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.
Hi @v-pnk, I also ran into the same issue as @christiandur4nt with the invalid KeyError for db_1883.jpg
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.
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!
Hi @christiandur4nt, sure, either write to me at vojtech.panek(at)cvut.cz or create an issue as you want.
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.
!!
!! 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. !!
-- 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
~~~~~~~~~~~ /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~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~~~~~~~~~~~~ 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~~~~~~~~~~~ /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~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~~~~~~~~~~~~ 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~~~~~~~~~~~ /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~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~~~~~~~~~~~~ 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~~~~~~~~~~~ /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~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~~~~~~~~~~~~ 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~~~~~~~~~~~ /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~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~~~~~~~~~~~~ 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~~~~~~~~~~~ /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~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~~~~~~~~~~~~ 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~~~~~~~~~~~ /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~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~~~~~~~~~~~~ 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~~~~~~~~~~~ /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~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~~~~~~~~~~~~ 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~~~~~~~~~~~ /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~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~~~~~~~~~~~~ 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~~~~~~~~~~~ /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~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~~~~~~~~~~~~ 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~~~~~~~~~~~ /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~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~~~~~~~~~~~~ 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~~~~~~~~~~~ /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~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~~~~~~~~~~~~ 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~~~~~~~~~~~ /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~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~~~~~~~~~~~~ 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~~~~~ /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~~~ /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~~~~ /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~~~~ /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~~~~^~~~ 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~~~~^~~~ 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~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,
|
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.
~~~^~~~ [ 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