3D重建作业-软件安装(1)

news/2024/11/15 5:55:53/

Bundler可以得到较为稀疏的点云(point clouds)数据。如果需要得到更密集的点,MVPS2。一种比较常见的途径是使用Bundler来得到相机参数,然后使用Bundle2PMVS程序,将生成结果转换为PMVS2的输入,然后使用PMVS2来得到更密集的点云。CMVS是一个场景聚类程序,在使用PMVS2前可以使用它来进行一些预处理。

Ubunu16.0 安装bundler
一、Bundler源码包的获取
1. 到http://phototour.cs.washington.edu/bundler/下载Bundler的源码包bundler-v0.4-source.tar.gz
2. 下载完成后,解压该源码包:
tar -zxvf bundler-v0.4-source.tar.gz
并将其解压缩到一个目录中,称为BASE_PATH。
3.在系统上安装ImageMagick:用于将jpg文件转换为pgm格式,这是David Lowe的SIFT二进制文件所需的格式。
4.功能检测器SIFT,地址:http://www.cs.ubc.ca/~lowe/keypoints/
make之后会有sift可执行文件并将其复制到BASE_PATH / bin,确保它被称为’sift’
RunBundler.sh脚本依赖于正在安装的bash和perl。 在Windows中运行此脚本的最简单方法是通过cygwin。

二、GFortran的安装
Bundler所依赖的库中有些库是用Fortran写成的。为了编译Fortran程序,需要安装GFortran编译器。
sudo apt-get?install gfortran

三、编译 / 安装依赖库
Bundler所依赖的外部库列表如下:
LAPACK:线性代数计算库
BLAS:基础线性代数子程序,在LAPACK包中有自带,但需进行设置
libjpeg:jpeg库,Ubuntu已自带
libz:通用目的的压缩库

  1. LAPACK、BLAS的编译
    下载LAPACK编译包,下载地址为:
    http://www.netlib.org/lapack/#_strong_lapack_version_3_3_0_strong
    下载完后解压:
    tar -zxvf lapack-3.3.0.tgz
    在make之前,需要先创建一个make.inc文件,命令为:
    cd lapack-3.3.0
    cp make.inc.example make.inc
    使用Ubuntu+gfortran,则无须更改make.inc里的内容。
    设置BLAS需要修改一下makefile:
    gedit Makefile
    光标定位到第11行并将内容改为:
    lib: blaslib lapacklib tmglib
    保存退出,然后开始make整个工程:
    make
    编译完成后,目录下将生成blas_LINUX.a、lapack_LINUX.a和tmglib_LINUX.a三个文件。如图1所示。
    这里写图片描述
    图1 LAPACK编译结果
    将这三个文件分别更名为:libblas.a,liblapack.a,libtmglib.a并复制到BASE_PATH/lib目录下。

2.zlib的编译安装
下载地址:http://www.zlib.net/
解压:
tar-zxvf zlib-1.2.5.tar.gz
编译安装:
cd zlib-1.2.5
./configure
sudo make install

四、编译安装Bundler
设置共享库:将BASE_PATH\bin目录下的libANN_char.so复制到BASE_PATH/lib中。
回到Bundler的工程目录,make
根据报错提示修改如下:
BATH_PATH/src/Bundle2PMVS.cpp
217行更改为 fprintf(f_scr, “mv %s.jpg %s/visualize/%08d.jpg\n”,
151行改为output_path
BATH_PATH/src/BundleApp.h
620行更改为BundlerApp();或者直接注释

更改后再次make进行编译安装。
make完成后在bin目录下就会看到新生成的bundler可执行文件。

五、测试Bundler
RunBundler.sh中17行编译BASE_PATH的地址,19行末加分号
在BASE_PATH\examples\kermit下执行sh RunBundler.sh
完成后,提示运行成功,如图2所示。
这里写图片描述
Kermit下的运行截图:
这里写图片描述
kermit/Bundle下截图:
这里写图片描述
Bundler输出的文件大多以“bundle_*.out”的形式来命名,我们称之为“bundle文件”。
这些ply文件可以通过使用专用的查看器scanalyze来查看,地址为:
http://graphics.stanford.edu/software/scanalyze/

几个错误及其解决方法:
这里写图片描述
无法找到相机CCD传感器宽度信息。初次使用自己拍摄的照片兴致勃勃测试程序效果的时候,一般都会遇到这个问题。而没有CCD宽度信息,就无法计算点云的三维坐标,再继续跑下去也是白搭。
解决方法:①先确定你的相机型号,然后到网上查找该相机的CCD参数。比如www.dpreview.com。需要注意的是,程序要求的CCD宽度并不是说只能用CCD相机,CMOS相机也是一样的,CMOS感应器宽度就是所需的CCD宽度。
② 查到CCD/CMOS宽度信息后,在bin目录下找到extract_focal.pl配置文件,使用notepad++之类的记事本程序打开,按照相应格式把你的相机传感器宽度信息加进去。注意格式要严格按照规定:
“[Camera make] [Camera model]” => [Sensor width]
(即”[相机制造商] [相机型号]” => [传感器宽度])。比如我们的相机是”NIKON CORPORATION NIKON D7100” => 23.5
另,至于如何确定相机制造商Camera make和型号Camera model,可以把你拍摄的一张照片放到bin文件目录中,打开cmd控制台,通过jhead程序进行确认。如下图,我的照片是1.jpg:
这里写图片描述
在利用Bundler得到场景的稀疏点云后就可以利用PMVS进行稠密点云的重建了,当然在这之前我们还需要将Bundler的输出转换为CMVS-PMVS2的输入格式。我们利用bin下的Bundle2PMVS即可完成这一过程。
../../bin/Bundle2PMVS prepare/list.txt bundle/bundle.init.out

Centos7上用的是:
media/data-1/sy/3Dre/BASE_PATH/bin/Bundle2PMVS
/media/data-1/sy/3Dre/BASE_PATH/examples/ET/prepare/list.txt boundle/bundle.init.out

Ubuntu下用的是
/media/sy/life/cv/3Dre/sfm/BASE_PATH/bin/Bundle2PMVS /media/sy/life/cv/3Dre/sfm/BASE_PATH/examples/ET/prepare/list.txt /examples/ET/bundle/bundle.out

/media/sy/life/cv/3Dre/sfm/BASE_PATH/bin/Bundle2PMVS /media/sy/life/cv/3Dre/sfm/BASE_PATH/examples/test/prepare/list.txt /examples/test/bundle/bundle.out

执行完毕后会有如下提示:
Error opening file /examples/ET/bundle/bundle.init.out for reading
@@ Conversion complete, execute “sh pmvs/prep_pmvs.sh” to finalize
@@ (you will first need to edit prep_pmvs.sh to specify your bundler path,
@@ so that the script knows where to find your
@@ RadialUndistort and Bundle2Vis binaries)
此时会生成了pmvs子目录, 里面有文件prep_pmvs.sh,我们需要执行
sh pmvs/prep_pmvs.sh,
在执行前需要编辑prep_pmvs.sh,将BUNDLER_BIN_PATH修改为bundler的bin文件夹的实际路径。例如:
BUNDLER_BIN_PATH=/media/sy/life/cv/3Dre/sfm/BASE_PATH/bin
之后就可以执行sh pmvs/prep_pmvs.sh了。
然后,会得到txt, visualize, models目录和bundle.rd.out, list.rd.txt, vis.dat, pmvs_options.txt等文件,这些东西就可以作为PMVS的输入了。
报错更改记录:
/media/data-1/sy/3Dre/BATH_PATH/src/RadialUndistort.cpp中359行
int last_dot = files[i].rfind(‘.’);改成int last_dot = files[i].rfind(‘.’,1);

ImageMagick安装:
https://blog.csdn.net/nash603/article/details/6102615
下载的是ImageMagick-6.4.0-0.tar.gz
通过命令 tar xzvf ImageMagick-6.4.0-0.tar.gz解压
./configure
make
make install
设置环境变量。我的做法是输入命令 vim ~/.bash_profile
PATH= PATH:/opt/bokee/ImageMagick/binexportLDLIBRARYPATH=:/opt/bokee/soft/JMagick/lib:/opt/bokee/ImageMagick/libexportDYLDLIBRARYPATH=:/opt/bokee/soft/JMagick/lib:/opt/bokee/ImageMagick/libexportPATHsource /.bashprofileImageMagickconvertversion P A T H : / o p t / b o k e e / I m a g e M a g i c k / b i n e x p o r t L D L I B R A R Y P A T H =: / o p t / b o k e e / s o f t / J M a g i c k / l i b : / o p t / b o k e e / I m a g e M a g i c k / l i b e x p o r t D Y L D L I B R A R Y P A T H =: / o p t / b o k e e / s o f t / J M a g i c k / l i b : / o p t / b o k e e / I m a g e M a g i c k / l i b e x p o r t P A T H 保 存 关 闭 文 件 后 , 输 入 s o u r c e / . b a s h p r o f i l e 跟 新 配 置 文 件 , 大 功 告 成 ! 检 查 I m a g e M a g i c k 是 否 已 经 安 装 成 功 , 在 命 令 行 输 入 c o n v e r t − v e r s i o n 。 安 装 成 功 以 后 出 现 的 信 息 如 下 : convert -version
Version: ImageMagick 6.4.0 12/28/10 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2008 ImageMagick Studio LLC


http://www.ppmy.cn/news/379536.html

相关文章

单反DCP文件制作教程 电影色调3Dlut快速实现

单反DCP文件制作教程 dcptool下载地址:https://sourceforge.net/projects/dcptool/ 1、解压 2、快捷键win r启动命令行 3、cd /d E:\TDDownload\dcpTool_v1.7.0\Windows 后面目录更换为你自己实际的目录 4、随便选择一个其他相机的dcp文件,本例以Nikon…

相机标定与3D重建(opencv-python实现)

文章目录 1. 相机标定的四个坐标系以及转换关系1.1 四个坐标系介绍1.1.1 世界坐标系(X~w~, Y~w~, Z~w~)1.1.2 摄像机坐标系(X~c~, Y~c~, Z~c~)1.1.3 图像坐标系(x,y)1.1.4 像素坐标系(u,v) 1.2 简单知识介绍1.3 图像坐标系与像素坐标系的关系1.4 世界坐标系与摄像机坐标系的关系…

【阅读整理】Implementation of an algorithm for automated phenotyping through plant 3D-modeling

目录 主体篇幅目录: Abstract Conclusion 实验方案设计(2.1 Experimental design and data collection) 三维重建&处理(2.2 Three-dimensional reconstruction and processing) 三维模型分割(2.3 3D-mo…

2021年全球与中国3D光学计量行业市场规模及发展前景分析

2021年全球与中国3D光学计量行业市场规模及发展前景分析 本报告研究全球与中国市场3D光学计量的发展现状及未来发展趋势,分别从生产和消费的角度分析3D光学计量的主要生产地区、主要消费地区以及主要的生产商。重点分析全球与中国市场的主要厂商产品特点、产品规格、…

看一图而思全云

>> 前言 << 我在看财经十一人吴俊宇老师撰写的《阿里云计划在12月内独立上市》时&#xff0c;看到了一张全球及中国IT支出结构图。就是下图这张图&#xff0c;盯着这张图&#xff0c;我看到了星辰大海&#xff0c;也想到了广阔天地大有可为。 但只看这个图不够过瘾…

苹果手机之间如何互传照片?批量传输操作指南

很多时候&#xff0c;我们用手机拍摄了好看的照片或者收藏了一些有趣的图片&#xff0c;想要分享给朋友&#xff0c;却不知道苹果手机之间如何互传照片&#xff1f;在分享大量照片的时候不清楚如何批量操作&#xff1f;别担心&#xff0c;下面小编就来分享一下苹果手机照片传输…

数据库:mysqldump用法详解

目录 一、命令格式详解 1.1 语法格式 1.2 常用参数 1.3 完整参数 二、mysqldump常见的几个错误 2.1、提示命令未找到 -bash: mysqldump: 未找到命令 2.2、 the command line interface can be insecure 2.3、Gotpacket bigger than ‘max_allowed_packet‘ bytes 一、命令格式详…

K歌伴奏与人声延迟测试

一.测试前期准备 两台测试手机&#xff0c;一台安装好所需测试的app&#xff0c;一台播放人声 mac电脑一台&#xff0c;需要安装audition 测试case一个&#xff0c;为样本语音 安静的测试环境 二.测试环境搭建 1.K歌伴奏与人声——方法一延迟测试拓扑图 三.测试步骤 1.使…