记录PU-GCN复现过程

参考链接:GitHub - guochengqian/PU-GCN: PU-GCN: Point Cloud Upsampling using Graph Convolutional Networks (CVPR2021)

一、安装anaconda3

#cd ~/
#wget https://repo.anaconda.com/archive/Anaconda3-2019.07-Linux-x86_64.sh
#bash Anaconda3-2019.07-Linux-x86_64.sh

(官方教程,没试过)


二、下载

1. 下载PU-GCN代码:

下载地址:GitHub - guochengqian/PU-GCN: PU-GCN: Point Cloud Upsampling using Graph Convolutional Networks (CVPR2021)

cd PU-GCN

2. 下载PU1K数据集:

下载地址:release - Google 云端硬盘

建立软连接:

mkdir data #在PU-GCN下建立data文件夹
ln -s /path/to/PU1K ./data/   #路径修改为ln -s /home/lyl/pu/PU1K ./data/

3. 下载预训练代码:

下载地址:pretrained_PU1K.zip - Google 云端硬盘

路径如下: 

三、安装pugcn环境

1. 创建pugcn环境

conda remove --name pugcn --all
conda create -n pugcn python=3.6.8 cudatoolkit=10.0 cudnn numpy=1.16

2. 激活pugcn环境

conda activate pugcn

3. 安装包

pip install matplotlib tensorflow-gpu==1.13.1 open3d==0.9 sklearn Pillow gdown plyfile

注:请不要通过 conda 安装 tensorflow gpu。 它可能会影响以下编译。

四、编译tf_ops

cd tf_ops
bash compile.sh linux

五、训练

1、下载预训练模型和数据集

2、训练

  • PU-GCN

    python main.py --phase train --model pugcn --upsampler nodeshuffle --k 20 
  • PU-Net

    python main.py --phase train --model punet --upsampler original  
    
  • MPU

    python main.py --phase train --model mpu --upsampler duplicate 
    
  • PU-GAN

    python main.py --phase train --model pugan --more_up 2 

六、测试和评估(一体的)

1、编译evaluation_code

cd evaluation_code
bash compile.sh

2、存放路径:

训练好用于测试的模型:/home/lyl/pu/PU-GCN/pretrain/pu1k-pugcn

测试后生成的上采样点云:/home/lyl/pu/PU-GCN/evaluation_code/result

评估得到的性能指标数据:/home/lyl/pu/PU-GCN/pretrain/pu1k-pugcn/evaluation.csv

3、根据需要修改测试代码

PU1K数据集:

原始版本:

test_pu1k_allmodels.sh:

#!/usr/bin/env bash

### result of
source test_pu1k_all.sh pretrain/pu1k-pugcn/ 0 1 --model pugcn --k 20
#source test_pu1k.sh pretrain/pu1k-punet/ 0 1 --model punet --upsampler original
#source test_pu1k.sh pretrain/pu1k-mpu/ 0 1 --model mpu --upsampler duplicate

test_pu1k.sh不改动。

简化版本:

test_pu1k_allmodels.sh:

#!/usr/bin/env bash

### result of
source test_pu1k_all.sh pretrain/pu1k-pugcn/ 0 --model pugcn --k 20

批量测试 test_pu1k_all.sh:

#!/usr/bin/env bash

cur_dir=$PWD
echo "current project director is: $cur_dir"
pretrain_folder=$1   # the pretrain 
GPU=$2
PY_ARGS=${@:3}
in_data_dir=data/PU1K/test/input_2048/input_2048
gt_data_dir=data/PU1K/test/input_2048/gt_8192

logdir=$pretrain_folder
echo "===> test the ckpt from ${logdir}"
echo ;

for (( i = 0; i < 40; i++ )) ;   #40可以根据模型数量更改
do
    #训练
    CUDA_VISIBLE_DEVICES=${GPU} python main.py --phase test --restore ${logdir} --data_dir  ${in_data_dir} ${PY_ARGS}
    #测试 CD HD
    CUDA_VISIBLE_DEVICES=${GPU} python evaluate.py --pred evaluation_code/result/ --gt ${gt_data_dir} --save_path ${logdir}
done

单个测试  test_pu1k.sh:

#!/usr/bin/env bash

cur_dir=$PWD
echo "current project director is: $cur_dir"
pretrain_folder=$1   # the pretrain 
GPU=$2
PY_ARGS=${@:3}
in_data_dir=data/PU1K/test/input_2048/input_2048
gt_data_dir=data/PU1K/test/input_2048/gt_8192

logdir=$pretrain_folder
echo "===> test the ckpt from ${logdir}"
echo ;
# test
CUDA_VISIBLE_DEVICES=${GPU} python main.py --phase test --restore ${logdir} --data_dir  ${in_data_dir} ${PY_ARGS}

# evaluation p2f
#cd evaluation_code
#bash eval_pu1k.sh
#cd ..

# evaluation CD HD
CUDA_VISIBLE_DEVICES=${GPU} python evaluate.py --pred evaluation_code/result/ --gt ${gt_data_dir} --save_path ${logdir}

kitti数据集:

修改main.py:

FLAGS.test_data = os.path.join(FLAGS.data_dir, '*.xyz')
改为
FLAGS.test_data = os.path.join(FLAGS.data_dir, '*.ply')

4、运行测试指令

  • Test on PU1K dataset
bash test_pu1k_allmodels.sh
  • Test on PU-GAN dataset
bash test_pugan_allmodels.sh
  • Test on real-scanned dataset
bash test_realscan_allmodels.sh
  • Visualization.

check below. You have to modify the path inside.

python vis_benchmark.py

七、tensorboard可视化

参考链接:python编程之TensorBoard的使用入门教程,傻瓜教程_tian_jiangnan的博客-CSDN博客_tensorboard使用教程

1. 打开服务器图形界面

win + R
输入 mstsc
确定
然后输入你的用户名密码

2. 打开终端

3. 激活虚拟环境

source activate pugcn

4. 在终端输入

tensorboard --logdir=/home/lyl/pu/PU-GCN3/log/20211123-101315 #events.out.tfevents...所在路径

5. 打开浏览器,输入网址localhost:6006

### 使用 OpenPose 和 ST-GCN 进行动作识别或姿态估计项目的复现 #### 准备工作 为了成功搭建并运行基于OpenPose和ST-GCN的动作识别系统,需先安装必要的软件包以及准备相应的硬件资源。考虑到不同操作系统可能存在差异,在Windows环境下配置可能遇到更多挑战[^2]。 #### 安装 OpenPose 对于希望采用原始方案即通过OpenPose获取骨骼节点信息的研究者来说,需要下载官方版本的OpenPose源码,并按照文档指示完成编译操作。这一步骤涉及CMake构建工具的应用及CUDA/GPU加速的支持设置。如果目标平台支持Python API,则可以直接调用预训练模型来简化开发流程[^4]。 ```bash git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose.git cd openpose mkdir build && cd build cmake .. make -j`nproc` ``` #### 数据采集与预处理 一旦OpenPose部署完毕,就可以着手收集用于后续分析的数据集。这里可以录制一段或多段视频片段作为输入素材交给OpenPose处理,从而获得每帧图像对应的二维坐标系下的关键点位置向量序列。这些数据构成了时空图卷积网络(ST-GCN)所需的结构化特征表示形式之一[^3]。 #### 配置 MMSkeleton 环境 鉴于MMSkeleton框架已经内置了HRNet等高效的人体姿态预测模块,建议切换至此路径上来降低前期准备工作难度。遵循官方指南逐步执行依赖项安装命令直至整个环境初始化结束。此时无需单独引入额外的姿态检测组件比如OpenPose,因为MMSkeleton内部已集成更优的选择。 ```bash pip install mmpose mmcv-full==latest+torch.cuda_version torchvision cuda_version -f https://download.openmmlab.com/mmcv/dist/index.html git clone https://github.com/open-mmlab/mmaction2.git cd mmaction2; pip install -e . git clone https://github.com/open-mmlab/mmskeleton.git cd mmskeleton; pip install -e . ``` #### 训练与评估 ST-GCN 模型 最后阶段便是利用上述途径产生的高质量样本集对选定的目标函数实施优化迭代运算。具体而言就是调整超参数设定、定义损失计算方式等方面的工作。当一切就绪后启动训练脚本等待最终成果呈现出来。期间可借助可视化手段监控进度变化趋势以便及时作出相应对策调整[^1]。 ```python from mmskeleton.apis import train_model, init_dist import torch.multiprocessing as mp if __name__ == '__main__': config_file = 'configs/stgcn/custom_dataset.py' checkpoint_dir = './checkpoints/' # 单机多卡分布式训练模式 world_size = torch.cuda.device_count() mp.spawn(train_model, args=(world_size, config_file, checkpoint_dir), nprocs=world_size, join=True) ```
评论 47
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值