• FFB6D搭建环境


    FFB6D搭建环境

    本文为cvpr21-FFB6D: A Full Flow Bidirectional Fusion Network for 6D Pose Estimation的环境搭建教程,使用的服务器版本为Ubuntu16.04,Python版本为3.6,使用linemod数据集为例

    源码地址

    本文顺序安装源码网站需要的环境依次安装,需要搭建的环境为apex,normal speed,RandLA

    搭建前的准备(根据需要选择性浏览)

    1. 使用anaconda创建虚拟环境
      conda create -n ffb6d python=3.6
      conda activate ffb6d
      
    2. 安装requirements.txt中的所需环境
      pip install -r requirements.txt
      
      requirements.txt中需要进行一些修改,yaml改为pyyaml,pytorch和torchvision版本根据显卡和cuda版本合理选择,源码需要使用cuda10.1或10.2。在最后加上以下库
      tqdm, tensorboardX,pandas,scikit-learn,termcolor,删除pprint(Python中自带)
    3. 使用源码安装cuda
      此处可参考教程,如何在服务器上安装多个版本的cuda

    安装apex

    直接pip安装即可

    pip install apex
    

    安装normal speed

    打开normal speed的github网站,发现需要三个依赖库:opecv3,numpy,pybind11,numpy在requirements.txt中以安装,opencv3需要使用源码安装(使用pip安装在后续搭建环境会报错)

    安装opencv3

    安装opencv3需要一些依赖项,如果都安装的话按照下面步骤应该不会出错,如果出错应该是依赖项的问题,这个请自行百度并让服务器管理员安装(安装依赖项需要sudo权限)

    本文以opencv3.4.15为例进行安装,首先进入官网下载opencv3.4.15的源码(source)

    在这里插入图片描述
    之后下载opencv_contrib,这是opencv的扩展项,如果不安装的话在后续编译过程会报错

    opencv_contrib需要和opencv版本对应,因此需要下载3.4版本的

    我直接将两个压缩包放到了服务器个人文件的根目录下(即/home/MyName/opencv-3.4.15.zip,MyName为用户名)

    解压opencv

    unzip opencv-3.4.15.zip
    

    将opecv_contrib解压至opencv下

    unzip opencv_contrib-3.4.zip -d opencv-3.4.15
    

    之后执行

    cd opencv-3.4.15
    mkdir build
    cd build
    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/home/MyName/opencv34 -D WITH_TBB=ON -D WITH_V4L=ON -D BUILD_TIFF=ON -D BUILD_EXAMPLES=ON -D WITH_OPENGL=ON -D WITH_EIGEN=ON -D WITH_CUDA=ON -D WITH_CUBLAS=ON -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules/ ..
    

    这里的CMAKE_INSTALL_PREFIX参数是opencv的安装路径,我放在/home/MyName/Opencv34中,OPENCV_EXTRA_MODULES_PATH为opencv_contrib的路径

    漫长等待ing

    在这里插入图片描述

    之后安装

    make -j16
    make install
    

    j16表示使用16线程安装,根据服务器性能决定

    在这里插入图片描述
    出现上图就表示安装以完成

    添加环境变量

    gedit ~/.bashrc
    

    添加

    PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/MyName/opencv34/lib/pkgconfig
    export PKG_CONFIG_PATH
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/MyName/opencv34/lib64/
    

    之后使环境变量生效

    source ~/.bashrc
    

    验证

    pkg-config --modversion opencv
    # 显示版本号表示成功
    

    安装pybind11

    直接pip安装

    pip install pybind11
    

    安装normal speed

    下载源码到根目录

    git clone https://github.com/hfutcgncas/normalSpeed.git
    

    进入/home/MyName/normalSpeed/normalSpeed/中打开CMakeList.txt并添加
    在这里插入图片描述

    红框部分是opencv和pybind11的安装目录

    切换工作目录并安装

    cd /home/MyName/normalSpeed/normalSpeed/
    python setup.py install
    

    在这里插入图片描述

    显示上图表示安装完成

    安装RandLA

    cd ffb6d/models/RandLA/
    sh compile_op.sh
    

    这里直接参考源码github即可

    运行代码前的准备

    将linemod数据集解压至ffb6d/datasets/linmode

    修改ffb6d/train_lm.py中的代码,对于高版本pyymal,直接运行可以会出现TypeError: load() missing 1 required positional argument: 'Loader'这个错误

    # 第139行
    self.lm_r_lst = yaml.load(lm_r_file)
    # 修改为
    self.lm_r_lst = yaml.load(lm_r_file, Loader=yaml.FullLoader)
    

    按照相同方法修改ffb6d/datasets/linmod_dataset.py中的第46行

    运行代码

    按照github中的说明运行即可,注意gpu数量别设置错了,理论上没啥问题了
    在这里插入图片描述

    有疑问多多交流,有错误请帮忙指出,共同进步

  • 相关阅读:
    一个由Dubbo Thread pool is EXHAUSTED引发的问题排查
    专题四:指令
    选择Amazon DynamoDB
    【Javascript】等于与全等于
    搭建深度学习环境(Pytorch)
    Gurobi 安装
    k8s pod常用运维命令
    计算机毕业设计Java学科竞赛管理系统(源码+系统+mysql数据库+Lw文档)
    【IDE】Navicat使用技巧
    oauth2.0使用redis和mysql存储token
  • 原文地址:https://blog.csdn.net/weixin_43414694/article/details/127102665