Uubuntu20.04复现SA-ConvONet步骤

发布于:2025-04-03 ⋅ 阅读:(11) ⋅ 点赞:(0)

项目地址:

tangjiapeng/SA-ConvONet: ICCV2021 Oral SA-ConvONet: Sign-Agnostic Optimization of Convolutional Occupancy Networks

安装步骤:

一、系统更新

检查系统是否已经更新到最新版本:

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/

数据集准备:

九、下载示例数据

项目支持以下数据集:

  1. ShapeNet

    • 下载预处理数据(73.4 GB)并放置在 data/ShapeNet 文件夹中。

  2. 合成室内场景数据集

    • 下载预处理数据(144 GB):

      bash scripts/download_data.sh
    • 数据将自动解压到 data/synthetic_room_dataset 文件夹。

  3. Matterport3D

  4. 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/generationout/demo_syn_room/generation,确认生成的网格文件和输入点云是否正确。 


        正常来讲流程是这么个流程,我已经成功完成环境,编译,数据集,模型下载等部分了,最后运行时报了错,大概就是CUDA的问题,这个代码要求的Pytorch版本比较低(1.4.0),然后对应的CUDA版本是10.1,按这样做了之后,还是报错,查了一下因为我的版本架构与其不符,无法运行,又不想重装驱动,先搁置到此,如果这个教程能帮助有人复现成功也算它有用了,没有就当记录一下某次失败的经历吧......