3dmatch-toolbox详细安装教程-Ubuntu14.04

2024-02-03 09:04

本文主要是介绍3dmatch-toolbox详细安装教程-Ubuntu14.04,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

3dmatch-toolbox详细安装教程-Ubuntu14.04

  • 前言
  • docker搭建Ubuntu14.04
  • 安装第三方库
    • 安装cuda/cundnn
    • 安装OpenCV
    • 安装Matlab
  • 安装以及运行3dmatch-toolbox
    • 1.安装测试3dmatch-toolbox(对齐两个点云)
  • 总结

前言

paper:3DMatch: Learning Local Geometric Descriptors from RGB-D Reconstructions 【CVPR-2017】
githup::https://github.com/1447121704/3dmatch-toolbox
提示:3dmatch-toolbox源码作者只在Ubuntu 14.04上安装运行。
最近在docker的ubuntu14.04容器上配置3dmatch-toolbox运行环境时踩了很多坑,在这期间查阅了很多资料和博客,于是想对安装过程进行总结,方便自己反复查阅以及分享经验避免大家重复踩坑。
博主是用docker在ubuntu14.04容器中安装的3dmatch-toolbox,后续会打包成docker的镜像文件分享给大家。

docker搭建Ubuntu14.04

windows10下docker的安装教程参考博主之前的博文《【docker】Windows10系统下安装并配置阿里云镜像加速》,这里默认大家都装好docker了。
docker命令大全参考

# 获取镜像ubuntu14.04
docker pull snoopy86/desktop-dockers
# 查看镜像
docker images
# 创建(并启动)gpu版本容器,将容器内部的端口5900和22映射到宿主机上的相同端口
docker run -it --privileged=True --shm-size 8g --gpus all --name 3dmatch -p 5900:5900 -p 22:22 -d snoopy86/desktop-dockers:latest
# 只查看正在运行的容器
docker ps
# 进入容器
docker attach 3dmatch 
# 或者
docker exec -it 3dmatch /bin/bash

win10下cmd进行docker容器内部:

这里镜像博主找了很久,但是有个小问题,root用户的密码不知道:

解决办法如下,在cmd进行ubuntu容器时候设置root的密码

# 设置root密码
passwd root
# 这里也重置ubuntu(用户)的密码
passwd ubuntu

# 查看ubuntu版本
lsb_release -a
# 更新apt库,更新软件列表
sudo apt-get update
sudo apt-get upgrade

安装第三方库

安装cuda/cundnn

【参考】博主的ubuntu18.04下深度学习环境配置详细教程,按照比较类似博主不再赘述。

假如你是和博主一样用docker使用ubuntu14.04容器来搭建环境,推荐按照博主的选项来。

安装OpenCV

【OpenCV安装教程参考】
【OpenCV2.4.11官网地址】,直接下载安装即可(推荐)。

# 安装依赖项
sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev
#下载源码包到Downloads(不推荐)
cd Downloads
wget https://github.com/opencv/opencv/archive/2.4.11.zip
# 解压opencv源代码并进入目录
sudo apt-get install unzip
unzip opencv-2.4.11.zip && cd opencv-2.4.11
# 创建并进入构建目录
mkdir build && cd build
# 开始编译和安装
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CUDA_GENERATION=Kepler ..
# 4线程数量,根据电脑性能选择合适的数字
make -j4
sudo make install
#验证安装是否完成
# 安装pkg-config工具
sudo apt-get install -y pkg-config
# 查询OpenCV版本
pkg-config --modversion opencv
# 查询OpenCV库
pkg-config --cflags opencv
# 查询头文件目录
pkg-config --libs opencv

安装Matlab

【参考】
1.下载安装包和破解文件
matlabR2016b源码 提取码:kov1
下载的Linux matlabR2016b文件夹内有三个文件:

ubuntu14.04有个神坑,不能安装百度云,这里博主是下载到win10下,然后将三个文件夹打包后从win10主机复制文件到docker容器ubuntu14.04。

# 主机复制文件到docker容器
docker cp  hostfilepath  containerid:/filepath
#  eg:
docker cp  E:\BaiduNetdiskDownload\Linux.zip acd42a2ba5f2://home/ubuntu/Downloads


# 解压文件夹
unzip Linux.zip
# 解压Matlab 2016b Linux64 Crack.rar文件
sudo apt-get install unrar
cd Linux && unrar x Matlab_2016b_Linux64_Crack.rar
# 解压出如下文件
# license_server.lic
# Matlab_2016b_Linux64_Crack.rar
# R2016b
# license_standalone.lic
# MATLAB_Production_Server
# readme.txt
# 在Documents下新建matlab文佳夹用于挂载镜像
mkdir /home/ubuntu/Downloads/matlab
# 挂载镜像1
sudo mount -t auto -o loop /home/ubuntu/Downloads/Linux/R2016b_glnxa64_dvd1.iso /home/ubuntu/Downloads/matlab


2.安装Matlab

# 在挂载1的文件夹外执行
sudo /home/ubuntu/Downloads/matlab/install


同意条款下一步,在解压生成的readme.txt文件中找到"Use a File Installation Key":

一路下一步,直到系统提示挂载镜像2:

卸载镜像1,挂载镜像2,然后点击ok继续安装,等待程序运行结束:

# 新开一个命令行
sudo umount /home/ubuntu/Downloads/matlab
# 挂载到同一位置
sudo mount -t auto -o loop /home/ubuntu/Downloads/Linux/R2016b_glnxa64_dvd2.iso /home/ubuntu/Downloads/matlab	



3.注册并运行

# 安装完成后,将解压得到的R2016b/bin文件复制到安装目录下替换原有文件
sudo cp -r /home/ubuntu/Downloads/Linux/R2016b/bin/ /usr/local/MATLAB/R2016b/
# 再将解压得到的license_standalone.lic复制到安装目录
sudo mkdir /usr/local/MATLAB/R2016b/bin/licenses/ 
sudo cp /home/ubuntu/Downloads/Linux/license_standalone.lic /usr/local/MATLAB/R2016b/bin/licenses/ 
# 完成上述操作后把挂载卸载
sudo umount /home/ubuntu/Downloads/matlab
# 执行命令运行
sudo /usr/local/MATLAB/R2016b/bin/matlab


弹出激活框,然后导入/usr/local/MATLAB/R2016b/bin/licenses/ 文件目录下选择license_standalone.lic这个文件,即可激活。

完成安装。

安装以及运行3dmatch-toolbox

1.安装测试3dmatch-toolbox(对齐两个点云)

源码作者给出的过程和效果示意图:

# 新建3DMatch文件夹
mkdir 3DMatch && cd 3DMatch
# 通过git下载3dmatch-toolbox源码,需要科学上网
sudo apt-get install git 
git clone https://github.com/andyzeng/3dmatch-toolbox.git 3dmatch-toolbox
cd 3dmatch-toolbox/core
# 编译 C++/CUDA 演示代码
./compile.sh
# 下载3DMatch预训练权重
./download-weights.sh # 3dmatch-weights-snapshot-137000.marvin

下载权重出现以下问题,打开download-weights.sh文件添加 “–no-check-certificate”


加载两个示例 3D 点云,计算其 TDF 体素网格体积,并计算随机表面关键点及其 3DMatch 描述符,保存到磁盘上的二进制文件。

./demo ../data/sample/3dmatch-demo/single-depth-1.ply fragment-1
./demo ../data/sample/3dmatch-demo/single-depth-2.ply fragment-2 

成功运行的截图:


保存到磁盘上的对应二进制文件。

可能出现 “ error while loading shared libraries: libopencv_core.so.2.4: cannot open shared object file: No such file or directory” 错误

解决方法:

# 编辑修改文件ld.so.conf
sudo gedit /etc/ld.so.conf
# 插入信息,路径要根据自己的具体情况设置
include /usr/local/include/opencv/*
/sbin/ldconfig -v
# 保存退出执行以下命令
sudo ldconfig   

opencv下是头文件:

插入的内容:
=
在 Matlab 中运行以下脚本,加载关键点和3DMatch描述符,并使用RANSAC注册两个点云,对齐的点云的可视化保存到文件“result.ply”。

# 启动 Matlab 
sudo /usr/local/MATLAB/R2016b/bin/matlab
# 执行命令
demo

该文件也可以使用Meshlab或任何其他3D查看器进行查看。

注意:由于默认情况下随机选择的关键点不正确,首次尝试此演示时可能会导致对齐失败。


这里博主先暂时告一段落,后续会把其他部分内容补上。

总结

尽可能简单、详细的介绍3dmatch-toolbox的安装流程以及解决了安装过程中可能存在的问题。后续会根据自己学到的知识结合个人理解讲解3dmatch-toolbox的原理和代码。

这篇关于3dmatch-toolbox详细安装教程-Ubuntu14.04的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/673636

相关文章

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

SpringBoot整合liteflow的详细过程

《SpringBoot整合liteflow的详细过程》:本文主要介绍SpringBoot整合liteflow的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...  liteflow 是什么? 能做什么?总之一句话:能帮你规范写代码逻辑 ,编排并解耦业务逻辑,代码

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

SpringBoot连接Redis集群教程

《SpringBoot连接Redis集群教程》:本文主要介绍SpringBoot连接Redis集群教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 依赖2. 修改配置文件3. 创建RedisClusterConfig4. 测试总结1. 依赖 <de

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关