本文的主要工作就是复现下述论文中的算法。
该论文全称:Scaling Diffusion Models to Real-World 3D LiDAR Scene Completion
一、准备工作
首先通读readme.md文件的内容,了解所需要的相关依赖和数据等内容。
一定要多读几遍,不要扫一眼就过了。
接下来就是部署环境,而在这里需要特别注意的是该项目的环境是在Linux中部署运行的。
由于我电脑内存不够的原因,我在这里使用的是AutoDL上面的算力,它默认的就是Linux环境。至于AutoDL怎么用,可以去官网看帮助文档。
如果你嫌配置环境过于麻烦,可以后台私信我,我这边直接把AutoDL上的环境的镜像免费共享给你。
我的环境:
PyTorch:1.9.0 ;Cuda :11.1(可以在AutoDL上选择镜像时直接选择)
Python 3.8(ubuntu18.04) ;GPU:RTX 3090(24GB) * 1
论文作者用的GPU是:4块RTX A6000 (48GB)
因为当你在AutoDL上用多块GPU训练模型时,就会报错让你修改limit_val_batches的值(但是经过我的实验,一般使用四块以下是不需要修改的)而我怕修改这个值之后会破坏最终的结果,所以我在这里就只用一块GPU来跑这个代码了,主要也省钱。
二、环境部署
这边不建议直接运行pip install -r requirements.txt命令,因为你运行也是各种报错
当你使用AutoDL上的镜像时,pytorch1.9是已经给你配好的。如果你自己想用conda创建一个虚拟环境来装pytorch1.9的话也可以。这样的话就是比较废内存。不管你怎么装pyorch1.9,当你安装requirements.txt中的pytorch_lightning和open3d库时,有时候都会给你重装pytorch库,而且是最新版的pytorch2.3.1,所以我在这里建议不管你是使用AutoDL还是自己的Linux环境,配置好python环境后直接就是先装这两个库。(总结一句话就是,创建好python虚拟环境后先安装这两个库,安装完成后再安pytorch库,如果用AutoDL上已经装好pytorch库的镜像,也是这样做)
安装好pytorch_lightning和open3d库后,使用以下命令检验pytorch版本。
pip show torch
#或者直接conda list 看
如果不是pytorch1.9版本的话,直接卸载这个库
pip uninstall torch==具体的版本号
然后再运行pip show torch来检查torch版本,如果显示找不到torch的话,就运行下述命令即可安装对应于CUDA11.1的pytorch 1.9版本
pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
接下来就是安装hdbscan==0.8.28这个库,在安装这个版本的库时,会出现一大堆问题,我的解决办法是安装了0.8.31这个版本,能用,而且不会把报错。
然后安装pytorch3d这个库。直接pip是安装不上的,这边选择本地克隆的方法安装。你也可以选择其它的安装方式,但是都容易报错。
sudo apt-get update
sudo apt install build-essential python3-dev libopenblas-dev
# 上面两个命令不运行可能会报错,反正后面都得运行,你还是早早运行吧。
git clone https://github.com/facebookresearch/pytorch3d.git
cd pytorch3d
git checkout v0.7.1 #指定版本
python setup.py install #或者运行 pip install -e
安装成功后可以conda list查看。
接下来安装MinkowskiEngine库,MinkowskiEngine库的最新版本就是0.5.4版本,所以直接安装。这边也是选择本地克隆安装,你也可以选择其它的安装方式,但是都容易报错。
git clone https://github.com/NVIDIA/MinkowskiEngine.git
cd MinkowskiEngine
python setup.py install --blas_include_dirs=${CONDA_PREFIX}/include --blas=openblas
最后就是安装剩余的requests.txt文件里面的库了。
需要注意的是,这边有一个隐藏的库,运行代码时没有这个库会报错,而且还要与pytorch库和pytorch_lightning库版本匹配。所以安装好requests.txt文件里面的库和MinkowskiEngine库后,还需要安装这个库。
pip install torchmetrics ==1.1.2
这个库会不会重装pytorch我忘记了,应该是不会的。
至此,环境部署结束。
三、准备数据
在AutoDL中的autodl-pub文件夹中有SemanticKITTI数据集,所以我这边直接就使用了这里面的数据。
数据你放在哪里是不影响你运行这个项目的,这边直接解压到autodl-tmp文件夹的某个里面就可以,你可以根据自己的需求自己改一改。
其中00文件夹到10文件夹数据长这样
11文件夹到21文件夹长这样
至此数据准备完毕。
结语
感兴趣的小伙伴可以评论区留言或者私信我