项目地址:
安装步骤:
一、系统更新
检查系统是否已经更新到最新版本:
sudo apt-get update
sudo apt-get upgrade -y
二、安装基本依赖
安装一些必要的系统依赖库:
sudo apt-get install build-essential cmake git unzip pkg-config -y
三、Anaconda 安装
检查是否安装了Anaconda:
which conda
如果返回Anaconda的路径(如/home/username/anaconda3/bin/conda
),说明Anaconda已安装。
四、创建虚拟环境
创建一个名为sa_conet
的虚拟环境,并安装依赖:
conda create -n sa_conet python=3.8 -y
conda activate sa_conet
报错:
conda激活错误。解决方法:(参考https://zhuanlan.zhihu.com/p/200849155)
1、重新进入虚拟环境:
source activate
2、退出虚拟环境 :
conda deactivate
3、重新执行:
conda activate sa_conet
不报错即可:
错误原因:
ssh连接该服务器使用conda activate
sa_conet命令激活环境后未使用conda deactivate
退出环境就关闭终端导致的。
五、克隆代码
从GitHub克隆代码:
git clone https://github.com/tangjiapeng/SA-ConvONet.git
cd SA-ConvONet
六、安装PyTorch
1.安装与CUDA兼容的PyTorch版本:
conda install pytorch==1.10.0 torchvision==0.11.1 torchaudio==0.10.0 pytorch-cuda=11.7 -c pytorch -c nvidia
2.检查 PyTorch 是否支持 CUDA:
在 Python 中运行以下代码:
import torch
print("CUDA Available:", torch.cuda.is_available())
print("CUDA Device Count:", torch.cuda.device_count())
print("Current CUDA Device:", torch.cuda.current_device())
print("Current Device Name:", torch.cuda.get_device_name(torch.cuda.current_device()))
如果输出显示 CUDA Available: True
,则说明 PyTorch 已正确安装并能够使用 GPU。
or
import torch
print(torch.cuda.is_available()) # 应返回 True
print(torch.version.cuda) # 应返回安装的 CUDA 版本
七、安装依赖
运行以下命令安装项目依赖:(其实可以直接按文件创建,这样会方便一些)
conda env create -f environment.yaml
conda activate sa_conet
如果环境 sa_conet
已经存在,但不是通过 environment.yaml
创建的,解决方案:
方法1:
更新环境依赖,使用 conda env update
命令更新现有环境以匹配 environment.yaml
文件:
conda env update --name sa_conet --file environment.yaml
方法2:
(1)删除现有环境:
conda remove --name sa_conet --all
(2)重新创建环境:
conda activate sa_conet
(3)激活新环境:
conda activate sa_conet
手动安装 torch-scatter:
pip install torch-scatter==2.0.4 -f https://pytorch-geometric.com/whl/torch-1.10.0+cu117.html
八、编译扩展模块
编译项目所需的扩展模块:
python setup.py build_ext --inplace
编译报错:
清理之前的编译文件,然后重新运行编译命令:
rm -rf build/ dist/ *.egg-info/
数据集准备:
九、下载示例数据
项目支持以下数据集:
ShapeNet:
下载预处理数据(73.4 GB)并放置在
data/ShapeNet
文件夹中。合成室内场景数据集:
下载预处理数据(144 GB):
bash scripts/download_data.sh
数据将自动解压到
data/synthetic_room_dataset
文件夹。Matterport3D:
从 Matterport3D 官网 下载数据,并使用提供的脚本预处理。
ScanNet:
从 ScanNet 官网 下载数据,并使用提供的脚本预处理。
内部逻辑:
mkdir data
cd data
wget https://example.com/dataset.zip # 替换为实际的数据集下载链接
unzip dataset.zip
cd ..
使用方法:
十、运行示例
1.重建大规模场景
运行以下命令重建Matterport3D场景:
python scripts/dataset_matterport/make_cropscene_dataset2.py --in_folder data/demo/Matterport3D_processed --out_folder data/demo/Matterport3D_processed_normalize --do_norm
python generate_optim_largescene.py configs/pointcloud_crop/demo_matterport.yaml
2.重建合成室内场景
运行以下命令重建合成室内场景:
python generate_optim_scene.py configs/pointcloud/demo_syn_room.yaml
3.ShapeNet 物体重建:
python generate_optim_object.py configs/pointcloud/demo_shapenet.yaml
下载模型文件:
https://s3.eu-central-1.amazonaws.com/avg-projects/convolutional_occupancy_networks/models/pointcloud_crop/room_grid64.pt
十一、 验证结果
检查输出文件夹out/demo_matterport/generation
或out/demo_syn_room/generation
,确认生成的网格文件和输入点云是否正确。
正常来讲流程是这么个流程,我已经成功完成环境,编译,数据集,模型下载等部分了,最后运行时报了错,大概就是CUDA的问题,这个代码要求的Pytorch版本比较低(1.4.0),然后对应的CUDA版本是10.1,按这样做了之后,还是报错,查了一下因为我的版本架构与其不符,无法运行,又不想重装驱动,先搁置到此,如果这个教程能帮助有人复现成功也算它有用了,没有就当记录一下某次失败的经历吧......