colmap windows编译 ceres库支持cuda

       接上一篇 windows+cuda 编译 pycolmap-CSDN博客,发现在稀疏点云生成的时候ba优化的时候如果需要用cuda的话,要先编译ceres的cuda版本,经试验前面用vcpkg 编译过colmap已经安装过cpu版本的ceres,再单独编译ceres之后python 设置

recon_options.ba_use_gpu = True

recon_options.ba_gpu_index = '0'

还是会打印

"Requested to use GPU for bundle adjustment, but Ceres was compiled without CUDA support. Falling back to CPU-based dense solvers."

后面直接 设置colmap里面的 vcpkg.json 增加cuda。删掉原来安装的ceres,重新利用上一篇中的命令编译colmap就可以了。

    通过上面步骤编译出来的pycolmap还是比较慢,因为ceres2.3版本才支持cuDSS,需要下载ceres master分支的代码,源码编译ceres。

1. 源码编译ceres

a) 下载cuDss安装;

b)cmake 编译,这一步我用的是cmake gui,config报错的时候添加对应的路径即可,勾掉example和test的编译。

缺少absl库

vcpkg install abseil

2. 编译colmap

cmake .. -DCMAKE_PREFIX_PATH=path_to_ceres-solver/install/lib/cmake/Ceres -DCMAKE_TOOLCHAIN_FILE=path_to_vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows -DCMAKE_INSTALL_PREFIX=colmap_master/install -DCMAKE_CUDA_ARCHITECTURES="native" -Dcudss_DIR=cuDSS/v0.4/lib/12/cmake/cudss -Dabsl_DIR=path_to_vcpkg\installed\x64-windows\share\absl

3. 编译pycolmap

cmake .. -DCMAKE_PREFIX_PATH=path_to_ceres-solver/install/lib/cmake/Ceres -DCMAKE_TOOLCHAIN_FILE=path_to_vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows -DCMAKE_INSTALL_PREFIX=path_to_colmap_master/pycolmap -DCMAKE_CUDA_ARCHITECTURES="native" -Dcudss_DIR=cuDSS/v0.4/lib/12/cmake/cudss -Dabsl_DIR=path_to_vcpkg\installed\x64-windows\share\absl -Dcolmap_DIR=path_to_colmap_master/install/share/colmap

遇到问题:

error LNK2001: 无法解析的外部符号 "public: __cdecl absl::lts_20250127::log_internal::LogMessageFatal::LogMessageFatal(char const *,int,char const *)"

手动添加absl 的库在vs工程里,参照colmap工程里的库列表。

### 安装 Colmap 的准备工作 为了成功安装并运行 Colmap,在 Windows 上的操作涉及几个重要步骤。由于 Conda 环境可能存在兼容性问题,建议直接从官方网站获取最新版的 Colmap 压缩包[^1]。 解压下载好的文件之后,需将 `bin` 文件夹的位置添加至系统的环境变量中以便全局访问 Colmap 执行程序。如果之前已经在 Conda 中安装过 Colmap,则应先卸载该版本以避免冲突。 ### 使用预编译二进制文件快速部署 对于希望简化流程而不打算自行编译源码的用户来说,采用官方发布的预编译二进制分发包是最简便的方式之一。完成上述提到的环境设置后即可立即使用命令行工具启动 Colmap 应用程序。 ### 编译自定义版本 (高级选项) 针对有特定需求或想要优化性能的研究人员和技术爱好者而言,可以从 GitHub 获取最新的开发分支,并按照给定参数通过 CMake 和 Ninja 构建系统来本地化构建项目: ```bash python D:\colmapcode\colmap-dev\scripts\python\build.py --build_path D:\colmapcode\colmap-dev\build --colmap_path D:\colmapcode\colmap-dev --boost_path "C:/local/boost_1_66_0/lib64-msvc-14.0" --qt_path "C:\Qt\5.11.2\msvc2015_64" --cuda_path "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.1" --cgal_path "F:\CGAL4.13" ``` 此过程可能遇到一些依赖项错误;例如,当 CUDA 版本不匹配时可能会抛出类似于 “You must set CMAKE_CUDA_ARCHITECTURES”的提示信息。此时应当参照相关文档调整配置直至解决问题[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值