You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After updating to COLMAP 3.9.1, I wasn't able to install PixSFM using pip install -e . --verbose.
To make it work, I made a lot of changes to the PixSFM repo (will make a pull request later) and was able to install it successfully.
However, when I am trying to import PixSFM in my notebook as follows =>
%load_ext autoreload
%autoreload 2
import tqdm, tqdm.notebook
tqdm.tqdm = tqdm.notebook.tqdm # notebook-friendly progress bars
from pathlib import Path
import os
import time
import sys
from hloc import extract_features, match_features, reconstruction, pairs_from_exhaustive, visualization
from hloc.visualization import plot_images, read_image
from hloc.utils.viz_3d import init_figure, plot_points, plot_reconstruction, plot_camera_colmap
from pixsfm.util.visualize import init_image, plot_points2D
from pixsfm.refine_hloc import PixSfM
from pixsfm import ostream_redirect
from PIL import Image, ImageDraw
import pycolmap
import visualize_model
# redirect the C++ outputs to notebook cells
cpp_out = ostream_redirect(stderr=True, stdout=True)
cpp_out.__enter__()
I am getting the following error =>
ImportError Traceback (most recent call last)
Cell In[1], line 13
10 from hloc.visualization import plot_images, read_image
11 from hloc.utils.viz_3d import init_figure, plot_points, plot_reconstruction, plot_camera_colmap
---> 13 from pixsfm.util.visualize import init_image, plot_points2D
14 from pixsfm.refine_hloc import PixSfM
15 from pixsfm import ostream_redirect
File ~/pixel-perfect-sfm/pixsfm/__init__.py:17
14 logger.propagate = False
16 import pyceres # noqa F403
---> 17 from ._pixsfm import * # noqa F403
19 from . import ( # noqa F403
20 base, features, bundle_adjustment, keypoint_adjustment,
21 extract, localization, util, cpplog
22 )
24 cpplog.level = 1 # do not log DEBUG
ImportError: /home/skumar/pixel-perfect-sfm/pixsfm/_pixsfm.cpython-38-x86_64-linux-gnu.so: undefined symbol: _ZNK6colmap22BundleAdjustmentConfig16HasConstantPointEm
It looks like some sort of binding error to me.
Let me also share the updatedbundle_adjustment/bindings.cc , bundle_adjustment/src/bundle_adjustment_options.h and bundle_adjustment_options.cc with you =>
Pixsfm must be built with: ceres-solver 2.1.0. The newer one (2.2.0) is not working. pyceres v1.0 with CUDA that built by ceres-solver 2.1.0. pycolmap 0.4.0 with CUDA that built by ceres-solver 2.1.0. hloc 1.4 with CUDA that built by ceres-solver 2.1.0. instead of hloc 1.5 colmap 3.8 with CUDA that built by ceres-solver 2.1.0 instead of colmap 3.9.1 .
Maybe we must add it explicitly in readme for clearer instruction.
@ichsan2895 Thanks for this list. I had not figured out yet that you need ceres-solver 2.1.0 and hloc 1.4, which is not documented anywhere yet.
Also: For COLMAP 3.8 you need CUDA 11.x which in turn requires a gcc <= 10 (higher versions won't work). Also use cmake 3.26.
After updating to
COLMAP 3.9.1
, I wasn't able to installPixSFM
usingpip install -e . --verbose
.To make it work, I made a lot of changes to the
PixSFM
repo (will make a pull request later) and was able to install it successfully.However, when I am trying to import
PixSFM
in my notebook as follows =>I am getting the following error =>
It looks like some sort of binding error to me.
Let me also share the updated
bundle_adjustment/bindings.cc
,bundle_adjustment/src/bundle_adjustment_options.h
andbundle_adjustment_options.cc
with you =>bindings.cc
bundle_adjustment_options.h
bundle_adjustment_options.cc
The text was updated successfully, but these errors were encountered: