OPENSFM编译Linux

  1. 了解了MVSnet和基于此的一系列改进,基本上都有源码,我选了一个未改进最基础的版本,尝试运行,要求的环境是python3.6、torch1.0,现在有一个torch1.10、python3.8的环境不知道行不行,先试试打算。
  2. 还找到了基于python的开源库openSFM,在windows上配置环境出现很多问题,都说不好解决,所以在linux上配置环境,最后配置成功了。下面是配置过程及遇到的一些问题记录(有些问题解决的过程忘记记录了)。
  3. 首先,下载opensfm的原始github库,由于使用git clone的方法下载不全且有点乱,所以直接下载的压缩包,OpenSfM/opensfm/src/third_party/pybind11文件夹下的内容下载不下来,要专门下载下来,然后复制到对应文件夹下。

Opensfm:https://github.com/mapillary/OpenSfM/releases/tag/v0.5.1

pybind11:https://github.com/pybind/pybind11/tree/v2.2.4

安装依赖

# 进入opensfm主目录

cd opensfm

# 再次更新子模块保证最新

git submodule update --init --recursive

# 更新源

sudo apt-get update

# 安装依赖的包

sudo apt-get install -y \

    build-essential vim curl cmake git \

    libatlas-base-dev libeigen3-dev \

    libgoogle-glog-dev libopencv-dev libsuitesparse-dev \

    python3-dev python3-numpy python3-opencv python3-pip \

    python3-pyproj python3-scipy python3-yaml

# ---------编译安装ceres---------

# 创建临时目录

mkdir source && cd source

# 下载ceres v1.14并解压

curl -L http://ceres-solver.org/ceres-solver-1.14.0.tar.gz | tar xz

# 创建编译文件夹

cd ceres-solver-1.14.0 && mkdir build && cd build

# cmake

cmake .. -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF

# 开启48线程编译安装

sudo make -j48 install

# ----------编译安装opengv-------

# 回到source文件夹下

cd ../../

# 下载opengv

git clone https://github.com/paulinus/opengv.git

# 更新子模块保证代码最新

cd opengv && git submodule update --init --recursive

# 创建编译文件夹

mkdir build && cd build

# cmake

cmake .. -DBUILD_TESTS=OFF \

         -DBUILD_PYTHON=ON \

         -DPYBIND11_PYTHON_VERSION=3.6 \

         -DPYTHON_INSTALL_DIR=/usr/local/lib/python3.6/dist-packages/

# 开启48线程编译安装

sudo make -j48 install

遇到的问题:

  • Git clone 失败

解决:git config --global  --unset https.https://github.com/laurentkneip/opengv. git

git clone https://github.com/laurentkneip/opengv.git

  • 开始直接就安装依赖库,很乱不知道怎么调用,后来才知道要装到open SFM库中,cd到下载的open SFM中再执行命令。
  1. 安装requirements.txt

直接创建一个python3.6的anaconda环境,使用命令pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt。(开始直接使用base环境下的,出现很多pip的版本问题)。

  1. 编译open SFM:python3 setup.py build,为了更直观的看错误,直接在pycharm中运行的setup.py文件,解决完出现的问题,又在终端使用指令编译的。

遇到的问题:

  • Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-0ibfwype/numpy/

解决:pip install --upgrade pip

  • Failed to find installed gflags CMake configuration, searching for gflags build directories exported with CMake

解决:安装gflags到opensfm的source文件夹下

  • ‘map’ in namespace ‘std’ does not name a template type

解决:找到发生错误的位置点开,在头文件中加入 #include <map>

  1. 安装特定版本的opencv-contrib,此时可用SIFT特征提取算法

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-contrib-python==3.4.2.16

  • 20
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值