ubuntu20.04下源码编译colmap

由于稠密重建需要CUDA,因此先安装CUDA,我使用的是3050GPU,nvidia-smi显示最高支持CUDA11.4。
在这里插入图片描述
不要用sudo apt安装,版本较低,30系显卡建议安装CUDA11.0以上,这里安装了11.1版本。

  • 下载: cuda_11.1.0_455.23.05_linux.run,参考博客把上面网址中的.com改成.cn,速度会快。
  • 安装参考:https://zhuanlan.zhihu.com/p/122286055
  • 安装成功以后,添加环境变量,nvcc -V显示如下即可。
    在这里插入图片描述

colmap编译,参考官方文档https://colmap.github.io/install.html
参考:https://zhuanlan.zhihu.com/p/526135749,这个博客居然几个坑都提到了。这个帖子用的make install,但是官方文档上用的是的是ninja install(显示的3.9-dev,但看了github代码版本,只有3.8版本,疑惑)。


步骤及报错记录:

# 安装依赖
sudo apt-get install \git \cmake \ninja-build \build-essential \libboost-program-options-dev \libboost-filesystem-dev \libboost-graph-dev \libboost-system-dev \libeigen3-dev \libflann-dev \libfreeimage-dev \libmetis-dev \libgoogle-glog-dev \libgtest-dev \libsqlite3-dev \libglew-dev \qtbase5-dev \libqt5opengl5-dev \libcgal-dev \libceres-dev
# 安装Qt5 package
sudo apt-get install libcgal-qt5-dev

继续官方文档步骤

git clone https://github.com/colmap/colmap.git
cd colmap
# git checkout dev //这里执行报错,跳过
mkdir build
cd build
cmake .. -GNinja 
# 出现ninja报错:sudo apt-get install ninja-build
# 再次cmake以后,出现ceres报错,需要安装ceres库

ceres安装参考https://zhuanlan.zhihu.com/p/460685629
但安装时git clone失败,用如下下载方式

wget ceres-solver.org/ceres-solver-1.14.0.tar.gz
tar -zxvf ceres-solver-1.14.0.tar.gz
cd ceres-solver-1.14.0
mkdir build
cd build
cmake ..
make -j8
sudo make install

继续之前的步骤cmake .. -GNinja 通过,执行ninja,ninja出现FAILED: src/colmap/exe/colmap 错误。
解决方法:更改Anaconda3文件夹名字以后,再编译就成功了。
参考:https://github.com/colmap/colmap/issues/1945、https://github.com/colmap/colmap/issues/391
最后执行sudo ninja install安装即可。

colmap -h
colmap gui

成功运行colmap。
稠密重建流程参考:colmap稠密重建


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/89561.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【phpMyadmin】MYSQL突破secure_file_priv写shell提权

前言 phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径,尤其要处理大量资料的汇入及汇出更为方便。…

分享从零开始学习网络设备配置--任务3.5 使用静态路由实现网络连通

任务描述 某公司规模较小,该公司的网络管理员经过考虑,决定在公司的路由器、交换机与运营商路由器之间使用静态路由,实现网络的互连。 静态路由一般适用于比较简单的网络环境。在这样的环境中,网络管理员应非常清楚地了解网络…

网络爬虫——urllib(1)

前言🍭 ❤️❤️❤️网络爬虫专栏更新中,各位大佬觉得写得不错,支持一下,感谢了!❤️❤️❤️ 前篇简单介绍了什么是网络爬虫及相关概念,这篇开始讲解爬虫中的第一个库——urllib。 urllib🍭 …

RestTemplate发送HTTPS请求

RestTemplate发送HTTPS请求 基础知识: Https原理与工作流程及证书校验:https://www.cnblogs.com/zjdxr-up/p/14359904.html 忽略ssl证书的方式配置: import lombok.extern.slf4j.Slf4j;import org.springframework.http.client.SimpleClien…

PPT系统化学习 - 第1天

文章目录 更改PPT主题更改最大撤回次数自动保存禁止PPT压缩图片字体嵌入PPTPPT导出为PDFPPT导出为图片PPT导出为图片型幻灯片PPT导出成视频添加参考线设置默认字体设置默认形状建立模板、保存模板、使用模板建立模板保存模板使用模板 更改PPT主题 更改PPT的主题: 夜…

图像处理: ImageKit.NET 3.0.10704 Crack

关于 ImageKit.NET3 100% 原生 .NET 图像处理组件。 ImageKit.NET 可让您快速轻松地向 .NET 应用程序添加图像处理功能。从 TWAIN 扫描仪和数码相机检索图像;加载和保存多种格式的图像文件;对图像应用图像滤镜和变换;在显示屏、平移窗口或缩略…

基于springboot+vue的新闻推荐系统

目录 前言 一、技术栈 二、系统功能介绍 管理员模块的实现 用户信息管理 排行榜管理 新闻信息管理 用户模块的实现 首页信息 新闻信息 我的收藏 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息互联网购物的飞速发展,国内放开了自…

基于springboot实现二手交易平台管理系统演示【项目源码】分享

基于springboot实现二手交易平台管理系统演示 java简介 Java语言是在二十世纪末由Sun公司发布的,而且公开源代码,这一优点吸引了许多世界各地优秀的编程爱好者,也使得他们开发出当时一款又一款经典好玩的小游戏。Java语言是纯面向对象语言之…

多维时序 | MATLAB实现WOA-CNN-GRU-Attention多变量时间序列预测(SE注意力机制)

多维时序 | MATLAB实现WOA-CNN-GRU-Attention多变量时间序列预测(SE注意力机制) 目录 多维时序 | MATLAB实现WOA-CNN-GRU-Attention多变量时间序列预测(SE注意力机制)预测效果基本描述模型描述程序设计参考资料 预测效果 基本描述…

stable diffusion和gpt4-free快速运行

这是一个快速搭建环境并运行的教程 stable diffusion快速运行gpt快速运行 包含已经搭建好的环境和指令,代码等运行所需。安装好系统必备anaconda、conda即可运行。 stable diffusion快速运行 github: AUTOMATIC1111/稳定扩散网络UI:稳定扩散网页用户界…

InnoDB的BufferPool

title: “InnoDB的BufferPool” createTime: 2022-03-06T15:52:4108:00 updateTime: 2022-03-06T15:52:4108:00 draft: false author: “ggball” tags: [“mysql”] categories: [“db”] description: “” InnoDB的BufferPool 为什么需要缓存? 因为存储引擎需…

Yarn的状态机框架分析

Yarn的状态机框架分析 什么是状态机 状态机(State Machine),是有限状态自动机的简称。简单解释:给定一个状态机,同时给定它的当前状态和输入,那么输出状态时可以明确的运算出来的。 yarn中的状态机 YARN将各种处理逻辑抽象成事…

Unity-Input System新输入系统插件学习

1.键盘、鼠标操作 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.UI;public class NewInputSystem : MonoBehaviour {public float SpaceKeyValue;public float RightMouseValue;public…

【每日一题】9.25 App测试和web测试有什么区别

“App 测试”和“Web 测试”是指软件测试的不同类型,每个都专注于软件开发的特定方面: 1. **App 测试(应用程序测试)**: - **平台**:这种类型的测试主要侧重于移动应用程序,包括为 iOS&#xf…

LaTex模板免费下载网站

LaTex模板免费下载网站 在进行文档排版时候,有时需要对不同类型文章的格式进行编辑,本博文推荐一个免费下载LaTex模板的网站。 一、网站地址 链接: LaTex模板网址:http://www.latextemplates.com/ 二、模板类型 模板类型如图2和图3所示。…

APACHE NIFI学习之—UpdateAttribute

UpdateAttribute 描述: 通过设置属性表达式来更新属性,也可以基于属性正则匹配来删除属性 标签: attributes, modification, update, delete, Attribute Expression Language, state, 属性, 修改, 更新, 删除, 表达式 参数: 如下列表中,必填参数则标识为加粗. 其他未加…

(PTA) 习题3-1 比较大小 (10分)

​ 本题要求将输入的任意3个整数从小到大输出。 输入格式: 输入在一行中给出3个整数&#xff0c;其间以空格分隔。 输出格式: 在一行中将3个整数从小到大输出&#xff0c;其间以“->”相连。 输入样例: 4 2 8输出样例: 2->4->8代码如下&#xff1a; #include<…

回归预测 | Matlab实现基于MIC-BP最大互信息系数数据特征选择算法结合BP神经网络的数据回归预测

回归预测 | Matlab实现基于MIC-BP最大互信息系数数据特征选择算法结合BP神经网络的数据回归预测 目录 回归预测 | Matlab实现基于MIC-BP最大互信息系数数据特征选择算法结合BP神经网络的数据回归预测效果一览基本介绍研究内容程序设计参考资料 效果一览 基本介绍 Matlab实现基于…

C++ 类的前置声明

最近在仿照muduo的网络库源代码写自己的网络服务器&#xff0c;当初想着整个项目分模块去写&#xff0c;最后再和主程序链接&#xff0c;正好升入理解一下编译链接的过程&#xff0c;但是现在发现每个模块的内容其实也不是很多&#xff0c;实际上没有必要分模块去写。然后在写的…

如何将48位立即数加载到ARM通用寄存器中?

安全之安全(security)博客目录导读 问题&#xff1a;如何将48位立即数加载到ARM通用寄存器中? AArch64执行状态中支持的指令集称为A64。所有A64指令的宽度都是32位。Move(宽立即数)被限制为16位立即数。 如果使用以下指令将一个48位的值赋给一个通用寄存器&#xff0c;会得到…