Code Monkey home page Code Monkey logo

colmap-pcd's Introduction

Colmap-PCD

Colmap-PCD is an open-source tool for fine image-to-point cloud registration. The software extracts and matches features between pairwise images and from images to a point cloud. The matched features are formulated into constraints in a factor-graph optimization problem that solves for the camera poses together with the 3D reconstructed features. The initial image needs an approximately known camera pose for the processing to start. The repository is based on the original Colmap as imaged-based 3D reconstruction software.

The tool is developed as part of the CMU-Recon System.

Example Dataset

Prerequisite

The repository has been tested in Ubuntu 20.04 and Ubuntu 22.04. Install dependencies with the command line below.

sudo apt-get install \
    git \
    cmake \
    build-essential \
    libboost-program-options-dev \
    libboost-filesystem-dev \
    libboost-graph-dev \
    libboost-system-dev \
    libboost-test-dev \
    libeigen3-dev \
    libsuitesparse-dev \
    libfreeimage-dev \
    libmetis-dev \
    libgoogle-glog-dev \
    libgflags-dev \
    libglew-dev \
    qtbase5-dev \
    libqt5opengl5-dev \
    libcgal-dev \
    libcgal-qt5-dev \
    libatlas-base-dev \
    libsuitesparse-dev

Install the latest stable release of Ceres Solver (click to download a 'ceres-solver-2.1.0.tar.gz' file). For computers with a Nvidia GPU, installing CUDA is highly recommended.

Quick Start

Clone the open-source repository, compile, and install.

git clone https://github.com/XiaoBaiiiiii/colmap-pcd.git
cd colmap-pcd
mkdir build
cd build
cmake ..
make -j
sudo make install

Launch Colmap-PCD.

colmap gui

Download Smith Hall Outdoor Dataset. We only need '25_images.zip', 'intrinsics.txt', and 'pointcloud_with_norm.ply' for quick testing, while we keep '450_images.zip' for full-scale testing later. After downloading, unzip '25_images.zip'. Then, follow this instruction video to load the example dataset to Colmap-PCD and start processing. The red lines illustrate the initial image-to-point cloud association. The blue and yellow lines illustrate the final associations for non-level and level surface points, respectively.

Instruction Video
Instruction Video

Advanced

Preparing point cloud: We recommend using CloudCompare to prepare the point cloud. Downsample the point cloud to 3-5cm resolution, calculate normals using radius at 10-20cm, and save the point cloud in PLY format (binary or ASCII). Make sure the coordinate convention of the point cloud is x-front, y-left, and z-up. Users can also view the 'pointcloud_with_norm.ply' file from Smith Hall Outdoor Dataset in CloudCompare.

Setting initial camera pose: The default camera pose of the initial image is set to the point cloud origin without rotation (camera is level and looking toward x-axis). If users record the initial image elsewhere and need to set the initial camera pose, click 'Reconstruction->Reconstruction options', in the 'Init' tab, set 'init_image_x [m]', 'init_image_y [m]', 'init_image_z [m]', 'init_image_roll [deg]', 'init_image_pitch [deg]', and 'init_image_yaw [deg]'. Note that the camera pose follows the same coordinate convention with the point cloud, x-front, y-left, z-up, which is different from typical camera coordinate conventions.

Saving camera poses: After processing completes, click 'Reconstruction->Reconstruction options', in the 'Lidar' tab, set 'save_image_pose_folder'. Then, click the button in the figure below to save a 'pose.ply' file. Users can exame the camera poses in the file with a text editor. Note that the camera poses follow the same coordinate convention with the point cloud, x-front, y-left, and z-up, which is different from typical camera coordinate conventions.

Method

Loading camera pose priors: Before processing starts, click 'Reconstruction->Reconstruction options', in the 'Lidar' tab, check 'if_import_image_pose_prior' and set 'image_pose_prior_path'. The path should point to a file containing camera poses in the same format as the 'pose.ply' file mentioned above. The processing will use the camera poses in the loaded file as priors to seed the factor-graph optimization.

Tunning parameters: Click 'Reconstruction->Reconstruction options', in the 'Lidar' tab, 'depth_proj_constraint_weight' defines the weight of the image-to-point cloud constraints in initial association, 'icp_nonground_constraint_weight' and 'icp_ground_constraint_weight' define the weights in final associations for non-level and level surface points, respectively, 'min_depth_proj_dist' and 'max_depth_proj_dist' define the minimum and maximum distances w.r.t. the camera for initial association, 'kdtree_max_search_dist' and 'kdtree_min_search_dist' define the start and end distance thresholds between reconstructed features to the point cloud in final associations, and 'kdtree_search_dist_drop' defines the distance threshold dropping interval.

Refining registration: After processing completes, users can optionally choose to refine the registration in a batch optimization. Click 'Reconstruction->Bundle adjustment' followed by the 'Run' button. Users can optionally refine the camera intrinsics together by checking 'refine_focal_length', 'refine_prinpical_point', and 'refine_extra_params'.

Datasets

NSH Atrium Indoor Dataset: Registration of 450 images in the figure below.

Example Dataset

NSH Patio Outdoor Dataset: Registration of 450 images in the figure below. To improve initialization robustness, click 'Reconstruction->Reconstruction options', in the 'Init' tab, set 'init_image_id2 = 2'.

Example Dataset

Smith Hall Outdoor Dataset: Registration of 25 images in the instruction video, and registration of 450 images in the figure below.

Example Dataset

Paper

Thank you for citing our paper if you use any of this code or datasets. (Submitted)

License

The repository is licensed under BSD license.

Authors

Chunge Bai, Ruijie Fu, and Ji Zhang

Credits

This repository is based on the original Colmap.

colmap-pcd's People

Contributors

jizhang-cmu avatar xiaobaiiiiii avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

colmap-pcd's Issues

Could you support command line usage or give a example?

As we know, colmap supports using command line in terminal instead of GUI. Since I'm using remote server for developing, so I'd like to ask for an example of using ur method purely by command line in terminal instead of a gui. Thanks in advance!

Issue when compiling (make -j)

Hi. Thank you for your great work. When I attempted to install, in this step(make -j), I got the following error. Can you please help me to resolve this issue?
Ubuntu Version: 22.04

/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libvtkCommonCore-9.1.so.9.1.0: undefined reference to `std::condition_variable::wait(std::unique_lockstd::mutex&)@GLIBCXX_3.4.30'
collect2: error: ld returned 1 exit status
make[2]: *** [src/exe/CMakeFiles/colmap_exe.dir/build.make:398: src/exe/colmap] Error 1
make[1]: *** [CMakeFiles/Makefile2:655: src/exe/CMakeFiles/colmap_exe.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

support fisheye cameras

Thank you for your work. I would like to support fisheye cameras, do you think it is feasible?

图像数据处理

自制数据集测试colmap-pcd到底是一个什么样的流程?位姿文件什么时候保存?尝试了好几次都在保存位姿时闪退了

Image poses

Hello,
I would like to ask for your advice,
What coordinate system is the output images pose in, and what is its relationship with the point cloud.
I am trying to project the point cloud onto the image, but the result is not quite accurate.
I calculated the optical center, but the result is a bit strange.
colmap-pcd
img

Fail to compile

Describe the bug
When I tried
make -j
An error occurred ,

nvcc fatal   : Unknown option '-fPIC'
nvcc fatal   : Unknown option '-fPIC'
nvcc fatal   : Unknown option '-fPIC'
make[2]: *** [src/CMakeFiles/colmap_cuda.dir/build.make:76: src/CMakeFiles/colmap_cuda.dir/mvs/gpu_mat_ref_image.cu.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [src/CMakeFiles/colmap_cuda.dir/build.make:63: src/CMakeFiles/colmap_cuda.dir/mvs/gpu_mat_prng.cu.o] Error 1
make[2]: *** [src/CMakeFiles/colmap_cuda.dir/build.make:102: src/CMakeFiles/colmap_cuda.dir/mvs/patch_match_cuda.cu.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:682: src/CMakeFiles/colmap_cuda.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

What should I do to fix this problem?

Environment:

  • OS: Ubuntu 20.04
  • CUDA_version : 11.6

About an error that occurred during initialization

Hi, thanks for this wonderful job!

I followed your instruction video on my dataset, and when I took the last step, the log displayed initialization failure.

Some of the information is shown below:

image

I tried the solutions it provided, however they didn't work.

The following image is a screenshot of my point cloud in the GUI.

image

How can I solve this problem?

double free or corruption (out)

当我使用image25进行重建的时候,按照视频中的步骤,在点击 start reconstruction 按钮之后,出现了下面的报错:

li@li:~/Downloads$ colmap gui
libpng warning: iCCP: known incorrect sRGB profile
Gtk-Message: 16:22:53.978: GtkDialog mapped without a transient parent. This is discouraged.
Gtk-Message: 16:23:19.610: GtkDialog mapped without a transient parent. This is discouraged.
Gtk-Message: 16:23:40.619: GtkDialog mapped without a transient parent. This is discouraged.
Gtk-Message: 16:23:44.735: GtkDialog mapped without a transient parent. This is discouraged.
Gtk-Message: 16:24:40.324: GtkDialog mapped without a transient parent. This is discouraged.
Gtk-Message: 16:24:58.252: GtkDialog mapped without a transient parent. This is discouraged.
Gtk-Message: 16:31:20.058: GtkDialog mapped without a transient parent. This is discouraged.
E1215 16:32:55.414878 29141 trust_region_minimizer.cc:71] Terminating: Residual and Jacobian evaluation failed.
E1215 16:32:55.813428 29141 trust_region_minimizer.cc:71] Terminating: Residual and Jacobian evaluation failed.
E1215 16:32:56.109669 29141 trust_region_minimizer.cc:71] Terminating: Residual and Jacobian evaluation failed.
double free or corruption (out)
*** Aborted at 1702629176 (unix time) try "date -d @1702629176" if you are using GNU date ***
PC: @     0x7f2245f83e87 gsignal
*** SIGABRT (@0x3e800006e5a) received by PID 28250 (TID 0x7f2202cfe700) from PID 28250; stack trace: ***
    @     0x7f227f3ca980 (unknown)
    @     0x7f2245f83e87 gsignal
    @     0x7f2245f857f1 abort
    @     0x7f2245fce837 (unknown)
    @     0x7f2245fd58ba (unknown)
    @     0x7f2245fdce4a cfree
    @     0x55a1a9255ad9 _ZZN5ceres8internal15SchurEliminatorILin1ELin1ELin1EE14BackSubstituteERKNS0_21BlockSparseMatrixDataEPKdS7_S7_PdENKUliE_clEi
    @     0x55a1a910b2d3 ceres::internal::ParallelFor()
    @     0x55a1a924e757 ceres::internal::SchurEliminator<>::BackSubstitute()
    @     0x55a1a9163b35 ceres::internal::SchurComplementSolver::SolveImpl()
    @     0x55a1a916562f ceres::internal::TypedLinearSolver<>::Solve()
    @     0x55a1a912ddca ceres::internal::LevenbergMarquardtStrategy::ComputeStep()
    @     0x55a1a90faa65 ceres::internal::TrustRegionMinimizer::ComputeTrustRegionStep()
    @     0x55a1a90ff30b ceres::internal::TrustRegionMinimizer::Minimize()
    @     0x55a1a9087fe8 ceres::Solver::Solve()
    @     0x55a1a9088bd3 ceres::Solve()
    @     0x55a1a8aeb631 colmap::BundleAdjuster::Solve()
    @     0x55a1a8b72596 colmap::IncrementalMapper::AdjustGlobalBundleByLidar()
    @     0x55a1a8a2dee9 colmap::(anonymous namespace)::AdjustGlobalBundle()
    @     0x55a1a8a2e17f colmap::(anonymous namespace)::IterativeGlobalRefinement()
    @     0x55a1a8a2f06c colmap::IncrementalMapperController::Reconstruct()
    @     0x55a1a8a33133 colmap::IncrementalMapperController::Run()
    @     0x55a1a8bba38c colmap::Thread::RunFunc()
    @     0x7f2246bd86df (unknown)
    @     0x7f227f3bf6db start_thread
    @     0x7f224606661f clone
已放弃 (核心已转储)

Environment:

  • OS: Ubuntu 18.04
    ldd colmap result:
li@li:~/Downloads$ ldd /usr/local/bin/colmap 
	linux-vdso.so.1 (0x00007ffe981e4000)
	libGLEW.so.2.0 => /usr/lib/x86_64-linux-gnu/libGLEW.so.2.0 (0x00007f236790f000)
	libpcl_io.so.1.10 => /usr/local/lib/libpcl_io.so.1.10 (0x00007f23674e7000)
	libpcl_common.so.1.10 => /usr/local/lib/libpcl_common.so.1.10 (0x00007f2367241000)
	libGL.so.1 => /usr/lib/x86_64-linux-gnu/libGL.so.1 (0x00007f2366fb5000)
	libflann.so.1.9 => /usr/lib/x86_64-linux-gnu/libflann.so.1.9 (0x00007f23668b9000)
	libfreeimage.so.3 => /usr/lib/x86_64-linux-gnu/libfreeimage.so.3 (0x00007f236660a000)
	libmetis.so.5 => /usr/lib/x86_64-linux-gnu/libmetis.so.5 (0x00007f236639c000)
	libglog.so.0 => /usr/lib/x86_64-linux-gnu/libglog.so.0 (0x00007f236616b000)
	libspqr.so.2 => /usr/lib/x86_64-linux-gnu/libspqr.so.2 (0x00007f2365f40000)
	libcholmod.so.3 => /usr/lib/x86_64-linux-gnu/libcholmod.so.3 (0x00007f2365c6a000)
	libcxsparse.so.3 => /usr/lib/x86_64-linux-gnu/libcxsparse.so.3 (0x00007f2365a3f000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f236583b000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f236561c000)
	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f2365414000)
	libcublas.so.11 => /usr/local/cuda-11.1/lib64/libcublas.so.11 (0x00007f235cff8000)
	libcusolver.so.11 => /usr/local/cuda-11.1/lib64/libcusolver.so.11 (0x00007f2332ca2000)
	liblapack.so.3 => /usr/lib/x86_64-linux-gnu/liblapack.so.3 (0x00007f23323e3000)
	libf77blas.so.3 => /usr/lib/x86_64-linux-gnu/libf77blas.so.3 (0x00007f23321c1000)
	libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007f2331eb8000)
	libQt5Widgets.so.5 => /home/li/Qt5.9.9/5.9.9/gcc_64/lib/libQt5Widgets.so.5 (0x00007f2331684000)
	libQt5Gui.so.5 => /home/li/Qt5.9.9/5.9.9/gcc_64/lib/libQt5Gui.so.5 (0x00007f2330ed3000)
	libQt5Core.so.5 => /home/li/Qt5.9.9/5.9.9/gcc_64/lib/libQt5Core.so.5 (0x00007f233078c000)
	libCGAL.so.13 => /usr/lib/x86_64-linux-gnu/libCGAL.so.13 (0x00007f233056d000)
	libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f23302ec000)
	libopencv_imgcodecs.so.405 => /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.405 (0x00007f2330089000)
	libopencv_imgproc.so.405 => /usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.405 (0x00007f232e2fd000)
	libopencv_core.so.405 => /usr/lib/x86_64-linux-gnu/libopencv_core.so.405 (0x00007f232d108000)
	libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f232cd7f000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f232c9e1000)
	libgomp.so.1 => /usr/lib/x86_64-linux-gnu/libgomp.so.1 (0x00007f232c7b2000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f232c59a000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f232c1a9000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f2368bb2000)
	libboost_filesystem.so.1.65.1 => /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.65.1 (0x00007f232bf8f000)
	libboost_iostreams.so.1.65.1 => /usr/lib/x86_64-linux-gnu/libboost_iostreams.so.1.65.1 (0x00007f232bd75000)
	libboost_system.so.1.65.1 => /usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 (0x00007f232bb70000)
	libpcl_io_ply.so.1.10 => /usr/local/lib/libpcl_io_ply.so.1.10 (0x00007f232b914000)
	libpng16.so.16 => /usr/lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f232b6e2000)
	libvtkIOLegacy-6.3.so.6.3 => /usr/lib/x86_64-linux-gnu/libvtkIOLegacy-6.3.so.6.3 (0x00007f232b43e000)
	libvtkIOPLY-6.3.so.6.3 => /usr/lib/x86_64-linux-gnu/libvtkIOPLY-6.3.so.6.3 (0x00007f232b224000)
	libusb-1.0.so.0 => /lib/x86_64-linux-gnu/libusb-1.0.so.0 (0x00007f232b00c000)
	libOpenNI2.so.0 => /usr/lib/libOpenNI2.so.0 (0x00007f232adad000)
	libOpenNI.so.0 => /usr/lib/libOpenNI.so.0 (0x00007f232ab30000)
	libvtkIOGeometry-6.3.so.6.3 => /usr/lib/x86_64-linux-gnu/libvtkIOGeometry-6.3.so.6.3 (0x00007f232a819000)
	libvtkIOImage-6.3.so.6.3 => /usr/lib/x86_64-linux-gnu/libvtkIOImage-6.3.so.6.3 (0x00007f232a496000)
	libvtkIOCore-6.3.so.6.3 => /usr/lib/x86_64-linux-gnu/libvtkIOCore-6.3.so.6.3 (0x00007f232a223000)
	libvtkImagingCore-6.3.so.6.3 => /usr/lib/x86_64-linux-gnu/libvtkImagingCore-6.3.so.6.3 (0x00007f2329e53000)
	libvtkCommonExecutionModel-6.3.so.6.3 => /usr/lib/x86_64-linux-gnu/libvtkCommonExecutionModel-6.3.so.6.3 (0x00007f2329bac000)
	libvtkCommonDataModel-6.3.so.6.3 => /usr/lib/x86_64-linux-gnu/libvtkCommonDataModel-6.3.so.6.3 (0x00007f2329653000)
	libvtkCommonCore-6.3.so.6.3 => /usr/lib/x86_64-linux-gnu/libvtkCommonCore-6.3.so.6.3 (0x00007f2329133000)
	libGLX.so.0 => /usr/lib/x86_64-linux-gnu/libGLX.so.0 (0x00007f2328f02000)
	libGLdispatch.so.0 => /usr/lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007f2328c4c000)
	libjxrglue.so.0 => /usr/lib/x86_64-linux-gnu/libjxrglue.so.0 (0x00007f2328a2c000)
	libjpeg.so.8 => /usr/lib/x86_64-linux-gnu/libjpeg.so.8 (0x00007f23287c4000)
	libopenjp2.so.7 => /usr/lib/x86_64-linux-gnu/libopenjp2.so.7 (0x00007f232856d000)
	libraw.so.16 => /usr/lib/x86_64-linux-gnu/libraw.so.16 (0x00007f2328299000)
	libtiff.so.5 => /usr/lib/x86_64-linux-gnu/libtiff.so.5 (0x00007f2328021000)
	libwebpmux.so.3 => /usr/lib/x86_64-linux-gnu/libwebpmux.so.3 (0x00007f2327e17000)
	libwebp.so.6 => /usr/lib/x86_64-linux-gnu/libwebp.so.6 (0x00007f2327bae000)
	libIlmImf-2_2.so.22 => /usr/lib/x86_64-linux-gnu/libIlmImf-2_2.so.22 (0x00007f23276ea000)
	libHalf.so.12 => /usr/lib/x86_64-linux-gnu/libHalf.so.12 (0x00007f23274a7000)
	libIex-2_2.so.12 => /usr/lib/x86_64-linux-gnu/libIex-2_2.so.12 (0x00007f2327289000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f232706c000)
	libgflags.so.2.2 => /usr/lib/x86_64-linux-gnu/libgflags.so.2.2 (0x00007f2326e47000)
	libunwind.so.8 => /usr/local/lib/libunwind.so.8 (0x00007f2326c2e000)
	libsuitesparseconfig.so.5 => /usr/lib/x86_64-linux-gnu/libsuitesparseconfig.so.5 (0x00007f2326a2b000)
	libblas.so.3 => /usr/lib/x86_64-linux-gnu/libblas.so.3 (0x00007f2326469000)
	libamd.so.2 => /usr/lib/x86_64-linux-gnu/libamd.so.2 (0x00007f2326260000)
	libcolamd.so.2 => /usr/lib/x86_64-linux-gnu/libcolamd.so.2 (0x00007f2326059000)
	libccolamd.so.2 => /usr/lib/x86_64-linux-gnu/libccolamd.so.2 (0x00007f2325e4f000)
	libcamd.so.2 => /usr/lib/x86_64-linux-gnu/libcamd.so.2 (0x00007f2325c45000)
	libcublasLt.so.11 => /usr/local/cuda-11.1/lib64/libcublasLt.so.11 (0x00007f2317c51000)
	libgfortran.so.4 => /usr/lib/x86_64-linux-gnu/libgfortran.so.4 (0x00007f2317872000)
	libatlas.so.3 => /usr/lib/x86_64-linux-gnu/libatlas.so.3 (0x00007f23172e9000)
	libicui18n.so.56 => /home/li/Qt5.9.9/5.9.9/gcc_64/lib/libicui18n.so.56 (0x00007f2316e50000)
	libicuuc.so.56 => /home/li/Qt5.9.9/5.9.9/gcc_64/lib/libicuuc.so.56 (0x00007f2316a98000)
	libicudata.so.56 => /home/li/Qt5.9.9/5.9.9/gcc_64/lib/libicudata.so.56 (0x00007f23150b5000)
	libgthread-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007f2314eb3000)
	libglib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f2314b9c000)
	libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007f231498c000)
	libvtksys-6.3.so.6.3 => /usr/lib/x86_64-linux-gnu/libvtksys-6.3.so.6.3 (0x00007f2314746000)
	libvtkCommonMisc-6.3.so.6.3 => /usr/lib/x86_64-linux-gnu/libvtkCommonMisc-6.3.so.6.3 (0x00007f2314530000)
	libudev.so.1 => /lib/x86_64-linux-gnu/libudev.so.1 (0x00007f2314312000)
	libtinyxml.so.2.6.2 => /usr/lib/x86_64-linux-gnu/libtinyxml.so.2.6.2 (0x00007f23140fd000)
	libvtkCommonSystem-6.3.so.6.3 => /usr/lib/x86_64-linux-gnu/libvtkCommonSystem-6.3.so.6.3 (0x00007f2313ee9000)
	libvtkCommonTransforms-6.3.so.6.3 => /usr/lib/x86_64-linux-gnu/libvtkCommonTransforms-6.3.so.6.3 (0x00007f2313cbb000)
	libvtkmetaio-6.3.so.6.3 => /usr/lib/x86_64-linux-gnu/libvtkmetaio-6.3.so.6.3 (0x00007f2313a27000)
	libvtkDICOMParser-6.3.so.6.3 => /usr/lib/x86_64-linux-gnu/libvtkDICOMParser-6.3.so.6.3 (0x00007f231380f000)
	libvtkCommonMath-6.3.so.6.3 => /usr/lib/x86_64-linux-gnu/libvtkCommonMath-6.3.so.6.3 (0x00007f23135ef000)
	libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f23132b7000)
	libjpegxr.so.0 => /usr/lib/x86_64-linux-gnu/libjpegxr.so.0 (0x00007f2313083000)
	liblcms2.so.2 => /usr/lib/x86_64-linux-gnu/liblcms2.so.2 (0x00007f2312e2b000)
	liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f2312c05000)
	libjbig.so.0 => /usr/lib/x86_64-linux-gnu/libjbig.so.0 (0x00007f23129f7000)
	libIlmThread-2_2.so.12 => /usr/lib/x86_64-linux-gnu/libIlmThread-2_2.so.12 (0x00007f23127f0000)
	libquadmath.so.0 => /usr/lib/x86_64-linux-gnu/libquadmath.so.0 (0x00007f23125b0000)
	libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f231233f000)
	libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f2312117000)
	libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f2311f13000)
	libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f2311d0d000)
	libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f2311af8000)

您知道是哪里的问题吗?

How to get colored pointcloud?

Hi,Thanks for this good job!
I found that you show the colored point cloud to prove the accuray of image localization.
So I want to know how to get colored point cloud in the paper?

111

How to get colored pointcloud and Complete the step in Figure 9

Hi,Thanks for this good job!
I found in Figure 9 that you have shown a color point cloud to demonstrate the accuracy of image localization.
So I want to know how to get colored point clouds on paper? Which option is it on colmap pcd? Could you please
1

Feature Matching not Using GPU

Describe the bug
The feature matching process is running extremely slow because it does not use GPU. My GPU has zero load.

To Reproduce
Running feature matching on a machine with Nvidia GPU.

Expected behavior
Feature matching between two 1504x1504 images takes 7-8s.

Environment:

  • OS: Ubuntu 20.04
  • GPU: RTX 4090
  • Nvidia driver: 535
  • CUDA version: 12.1

Name conflit with original colmap

Name conflit with original colmap. Make install may overwrite each other.
Could you please provide a solution? Or anyone has ideas?

How to build pointcloud map?

Thank you for sharing the excellent results.
I want to try with a different sensor than the provided dataset. How can I create a map of high quality like the provided pointcloud map?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.