【关于3D-R2N2的配置和使用】

3D-R2N2

github上关于这个项目的描述是:“基于深度学习的三维重建方法的研究”.
简单来说,就是给出一个物体的各个位置图片,通过卷积,解析,建模等等将这个物体用一个个体素块重建起来,也是三维建模的一种没那么复杂的表达方式。
项目路径为:https://github.com/bansheng/3D-R2N2-pytorch
推荐使用虚拟机,利用Ubuntu系统来进行实验,因为本项目的源码和各种类型的包都是在liux系统中构建的,使用起来可能会降低难度。但是由于我电脑磁盘不够,虚拟机分配空间太少,怕带不起来,就直接从我的Windows系统开始跑。

环境构建

原文:The package requires python3. You can follow the direction below to install virtual environment within the repository or install anaconda for python 3.
也就是说这个项目需要python3才能跑通,而且推荐使用anaconda来构建环境,因为我以前完成作业的时候就已经构建好了一个既有python3又有pytorch的环境(叫做yolov7,ps:当时用于yolov7的学习),所以这里就直接进入yolov7的虚拟环境。
关于虚拟环境的搭建请自行搜索。
需要强调的是:我这次使用的是cpu版本,也就是源项目中的
在这里插入图片描述

打开VScode,在终端输入下面代码,从上面的项目地址克隆项目到本地。

git clone https://github.com/chrischoy/3D-R2N2.git

之后把VScode的终端换成conda,然后进入我已经设置好的环境

conda activate yolov7 //这里换成你自己设置好的环境

成功以后就会在路径前面显示你的虚拟环境的名称,如下图所示。
在这里插入图片描述
然后在此电脑的文件搜索栏目中搜索ftp://cs.stanford.edu/cs/cvgl
就会进入到一个存放各种包的地址,然后把ShapeNetRendering.tgz,ShapeNetVox32.tgz,ResidualGRUNet.npy这三个文件复制到目录下,方便后续使用。
同时还需要安装一个meshlab,这是以后将程序运行出来的obj文件立体化可视化呈现的软件。
我这里提供一个2022年的安装包:链接:https://pan.baidu.com/s/1WokBX4hmaCd7Xm2v26okEw?pwd=www2
提取码:www2
然后继续在终端输入

conda install theano

这是项目运行必要的一个包。
然后继续输入

pip install -r requirements.txt

来安装此项目所需的其他包。

跑demo.py

在终端输入

python demo.py prediction.obj

这串代码运行后,会跑事先预设好的的demo,里面有用于测试的图片,然后跑通以后的数据将会存放在名为prediction的obj文件中。
例如我的在这里插入图片描述
最后一段话的意思是我需要meshlab来对这个obj文件进行可视化操作。原本这个项目放在liux系统中可以直接使用sudo apt-get install meshlab 来将这个软件直接安装到环境中,系统run demo.py结束后会自动调用,但是由于Windows系统中无法将meshlab直接安装到虚拟环境,因此我们需要手动打开。
去自己的项目路径中找到prediction.obj文件【关于3D-R2N2的配置和使用】_第1张图片
右键使用meshlab打开,就会出现已经使用体素构建好的三维立体模型。如图所示:【关于3D-R2N2的配置和使用】_第2张图片
【关于3D-R2N2的配置和使用】_第3张图片
至此结束。

遇到的问题

这次遇到的问题中大多都是各种包没有安装完全,或者就是参数没有设置正确,这些一般都很好解决。
我遇到的最大的问题是,我打算使用cpu版本,但是系统美版是直接识别我所使用的版本,于是就会各种报错,例如:AssertionError: AbstractConv2d Theano optimization failed: there is no implementation available supporting the requested options. Did you exclude both “conv_dnn” and “conv_gemm” from the optimizer? If on GPU, is cuDNN available and does the GPU support it? If on CPU, do you have a BLAS library installed Theano can link against?
于是乎我根据提示新安装了一个BLAS的包conda install OpenBLAS
然后在C:/ users/whatever路径下新建一个叫做.theanorc.txt 的文件,将以下内容输入保存,再次运行就欧克了。

[global]
floatX = float32
device = cpu
optimizer = None

这是用来帮助系统判断并使用cpu的。
再次强调:本项目仍推荐使用liux系统,因为原生系统操作更加方便简洁,而且没有个别包不兼容的现象,应该能将我用的两三天时间缩短到一天以内。

你可能感兴趣的:(3d)