cvg / pixel-perfect-sfm

Pixel-Perfect Structure-from-Motion with Featuremetric Refinement (ICCV 2021, Best Student Paper Award)
Apache License 2.0
1.29k stars 132 forks source link

Update to COLMAP 3.9 #138

Open Dawars opened 3 months ago

Dawars commented 3 months ago

Updating to work with colmap 3.9+ according to #110

I managed to compile the code but it still doesn't link.

Todo:

I had to add a print function for CameraModelId because apparently enums cannot be easily printed: std::ostream& operator<<(std::ostream& os, const colmap::CameraModelId& id) Probably there is a really easy fix for this though.

Details

Linking CXX shared module ../../lib.linux-x86_64-3.10/pixsfm/_pixsfm.cpython-310-x86_64-linux-gnu.so /usr/bin/ld: libpixsfm.a(graph.cc.o): in function `operator<<(std::ostream&, colmap::CameraModelId const&)': graph.cc:(.text+0x11c0): multiple definition of `operator<<(std::ostream&, colmap::CameraModelId const&)'; CMakeFiles/_pixsfm.dir/_pixsfm/bindings.cc.o (symbol from plugin):(.text+0x0): first defined here /usr/bin/ld: libpixsfm.a(featurepatch.cc.o): in function `operator<<(std::ostream&, colmap::CameraModelId const&)': featurepatch.cc:(.text+0x760): multiple definition of `operator<<(std::ostream&, colmap::CameraModelId const&)'; CMakeFiles/_pixsfm.dir/_pixsfm/bindings.cc.o (symbol from plugin):(.text+0x0): first defined here /usr/bin/ld: libpixsfm.a(featuremap.cc.o): in function `operator<<(std::ostream&, colmap::CameraModelId const&)': featuremap.cc:(.text+0x8a0): multiple definition of `operator<<(std::ostream&, colmap::CameraModelId const&)'; CMakeFiles/_pixsfm.dir/_pixsfm/bindings.cc.o (symbol from plugin):(.text+0x0): first defined here /usr/bin/ld: libpixsfm.a(featuremanager.cc.o): in function `operator<<(std::ostream&, colmap::CameraModelId const&)': featuremanager.cc:(.text+0xe0): multiple definition of `operator<<(std::ostream&, colmap::CameraModelId const&)'; CMakeFiles/_pixsfm.dir/_pixsfm/bindings.cc.o (symbol from plugin):(.text+0x0): first defined here /usr/bin/ld: libpixsfm.a(featureview.cc.o): in function `operator<<(std::ostream&, colmap::CameraModelId const&)': featureview.cc:(.text+0x690): multiple definition of `operator<<(std::ostream&, colmap::CameraModelId const&)'; CMakeFiles/_pixsfm.dir/_pixsfm/bindings.cc.o (symbol from plugin):(.text+0x0): first defined here /usr/bin/ld: libpixsfm.a(featureset.cc.o): in function `operator<<(std::ostream&, colmap::CameraModelId const&)': featureset.cc:(.text+0xc00): multiple definition of `operator<<(std::ostream&, colmap::CameraModelId const&)'; CMakeFiles/_pixsfm.dir/_pixsfm/bindings.cc.o (symbol from plugin):(.text+0x0): first defined here /usr/bin/ld: libpixsfm.a(references.cc.o): in function `operator<<(std::ostream&, colmap::CameraModelId const&)': references.cc:(.text+0x340): multiple definition of `operator<<(std::ostream&, colmap::CameraModelId const&)'; CMakeFiles/_pixsfm.dir/_pixsfm/bindings.cc.o (symbol from plugin):(.text+0x0): first defined here /usr/bin/ld: libpixsfm.a(keypoint_adjustment_options.cc.o): in function `operator<<(std::ostream&, colmap::CameraModelId const&)': keypoint_adjustment_options.cc:(.text+0x0): multiple definition of `operator<<(std::ostream&, colmap::CameraModelId const&)'; CMakeFiles/_pixsfm.dir/_pixsfm/bindings.cc.o (symbol from plugin):(.text+0x0): first defined here /usr/bin/ld: libpixsfm.a(bundle_adjustment_options.cc.o): in function `operator<<(std::ostream&, colmap::CameraModelId const&)': bundle_adjustment_options.cc:(.text+0x0): multiple definition of `operator<<(std::ostream&, colmap::CameraModelId const&)'; CMakeFiles/_pixsfm.dir/_pixsfm/bindings.cc.o (symbol from plugin):(.text+0x0): first defined here

I don't want to spend more time on figuring these out in the near future but I'm happy to address any reviews.