【复现笔记】clean-pvnet复现

源代码链接:GitHub - zju3dv/clean-pvnet: Code for "PVNet: Pixel-wise Voting Network for 6DoF Pose Estimation" CVPR 2019 oral

目录

1、下载代码

2、配置环境

3、Compile cuda extensions under lib/csrc

4、Set up datasets:

(1)数据集

(2)训练好的权重文件

(3)测试成功

(4)虽然在data文件夹中新出现一个result文件夹,但里面没有结果文件?

5、可视化成功


1、下载代码

​git clone https://github.com/zju3dv/clean-pvnet.git

2、配置环境

conda create -n pvnet python=3.7
conda activate pvnet

conda install pytorch==1.5.0 torchvision==0.6.0 cudatoolkit=10.2 -c pytorch

pip install Cython==0.28.2
sudo apt-get install libglfw3-dev libglfw3
pip install -r requirements.txt

注意:

  • 我的gpu是rtx2060,cuda版本是10.2,所以改了一下(如果按照给的torch网址安装了cuda9.2的1.1版本,后续测试的时候会报错)
conda install pytorch==1.5.0 torchvision==0.6.0 cudatoolkit=10.2 -c pytorch
  • 该过程中遇到了版本不匹配的问题(例如以下问题),我的解决方案是直接修改requirements.txt中设置的版本号
  • 最后我在python3.7+torch1.5.0_cu102+cuda10.2环境下的requirements.txt如下所示
yacs==0.1.4
numpy==1.21.6
torchvision==0.6.0
opencv-python==3.4.2.17
tqdm==4.28.1
pycocotools==2.0.0
matplotlib==2.2.2
plyfile==0.6
scikit-image==0.14.2
scikit-learn
PyOpenGL==3.1.1a1
ipdb==0.13
cyglfw3==3.1.0.2
pyassimp==3.3
progressbar==2.5
open3d-python==0.5.0.0
tensorboardX==1.2
cffi==1.11.5
transforms3d
pillow==6.2.1

后续安装了transform3d(见第4节)

~/3dTracking/clean-pvnet$ pip install transforms3d
Collecting transforms3d
  Using cached transforms3d-0.4.1.tar.gz (1.4 MB)
  Preparing metadata (setup.py) ... done
Building wheels for collected packages: transforms3d
  Building wheel for transforms3d (setup.py) ... done
  Created wheel for transforms3d: filename=transforms3d-0.4.1-py3-none-any.whl size=1376757 sha256=890c7940063b6c9fca40c910e5bafea777f001ed762debc2f5055e2f408dcc54
  Stored in directory: /home/rakuli/.cache/pip/wheels/0b/2a/fe/379cf61e108f06750107439af6531daf372d7de2c390a939b4
Successfully built transforms3d
Installing collected packages: transforms3d
Successfully installed transforms3d-0.4.1

3、Compile cuda extensions under lib/csrc

ROOT=/path/to/clean-pvnet
cd $ROOT/lib/csrc
export CUDA_HOME="/usr/local/cuda-10.2"
cd ransac_voting
python setup.py build_ext --inplace
cd ../nn
python setup.py build_ext --inplace
cd ../fps
python setup.py build_ext --inplace

# If you want to run PVNet with a detector
cd ../dcn_v2
python setup.py build_ext --inplace

# If you want to use the uncertainty-driven PnP
cd ../uncertainty_pnp
sudo apt-get install libgoogle-glog-dev
sudo apt-get install libsuitesparse-dev
sudo apt-get install libatlas-base-dev
python setup.py build_ext --inplace

因为我的cuda版本是10.2,所以在export cuda_home的时候修改了路径

这一部分的输出日志较长(因为我还是希望保存一下),见以下链接:https://blog.csdn.net/weixin_54470372/article/details/128293517

4、Set up datasets:

(1)数据集

从以下链接下载linemod数据集;

OneDrive for Business

ROOT=/path/to/clean-pvnet
cd $ROOT/data
ln -s /path/to/linemod linemod
ln -s /path/to/linemod_orig linemod_orig
ln -s /path/to/occlusion_linemod occlusion_linemod

# the following is used for tless
ln -s /path/to/tless tless
ln -s /path/to/cache cache
ln -s /path/to/SUN2012pascalformat sun

我没有建立软链接,直接将LINEMOD压缩包解压在data文件夹内,文件夹名改为linemod

运行以下命令进行数据集的prepare

python run.py --type linemod cls_type cat

输出日志如下:

~/3dTracking/clean-pvnet$ python run.py --type linemod cls_type cat
100%|███████████████████████████████████████████████████████████████████████████████████████████████| 177/177 [00:00<00:00, 5575.48it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████| 10000/10000 [00:08<00:00, 1139.37it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████| 10000/10000 [00:00<00:00, 11956.80it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████| 1002/1002 [00:00<00:00, 6410.46it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████| 1187/1187 [00:00<00:00, 347379.21it/s]

(2)训练好的权重文件

 再从以下链接下载名为cat_199.pth文件,保存至data/model/pvnet/cat文件夹内,更改文件名为199.pth

https://1drv.ms/f/s!AtZjYZ01QjphgQBQDQghxjbkik5f

(3)测试成功

运行以下命令进行测试

python run.py --type evaluate --cfg_file configs/linemod.yaml model cat cls_type cat
python run.py --type evaluate --cfg_file configs/linemod.yaml test.dataset LinemodOccTest model cat cls_type cat

注:

(1)第一次运行时会从pytorch官网下载resnet的预训练文件

(2)由于报错,安装了transform3d

File "lib/evaluators/linemod/pvnet.py", line 19, in <module>
    from transforms3d.quaternions import mat2quat, quat2mat
ModuleNotFoundError: No module named 'transforms3d'

(3)由于报错,添加执行权限

RuntimeError: error executing torch_shm_manager at "/home/r**/anaconda3/envs/pvnet/lib/python3.7/site-packages/torch/bin/torch_shm_manager" at /pytorch/torch/lib/libshm/core.cpp:99

解决:

chmod +x /home/r*/anaconda3/envs/pvnet/lib/python3.7/site-packages/torch/bin/torch_shm_manager

(4)出现以下报错

cublas runtime error:the GPU program failed to execute at /pytorch/aten/src/THC/THCBlas.cu:450

查了一下大多数回答说是torch版本不匹配的问题,我的gpu是rtx2060,cuda版本是10.2,走投无路试着升级torch的版本

conda install pytorch==1.5.0 torchvision==0.6.0 cudatoolkit=10.2 -c pytorch

接着重新执行第3步,注意先需要删除lib/csrc/ransac_voting文件夹中的build和__pycache__两个文件夹。升级torch后的命令如下

终于终于终于成功运行。输出太长了,只截取结尾部分

(4)虽然在data文件夹中新出现一个result文件夹,但里面没有结果文件?

5、可视化成功

python run.py --type visualize --cfg_file configs/linemod.yaml model cat cls_type cat

运行后会自动弹出结果

  • 2
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 25
    评论
clean-pvnet是一个用于6DoF姿态估计的代码库,它是基于“PVNet: Pixel-wise Voting Network for 6DoF Pose Estimation”论文开发的。如果您想要下载clean-pvnet代码并配置环境,可以按照以下步骤进行操作: 1. 使用命令`git clone https://github.com/zju3dv/clean-pvnet.git`下载代码。 2. 配置环境,可以使用以下命令: ``` conda create -n pvnet python=3.7 conda activate pvnet conda install pytorch==1.5.0 torchvision==0.6.0 cudatoolkit=10.2 -c pytorch pip install Cython==0.28.2 sudo apt-get install libglfw3-dev libglfw3 pip install -r requirements.txt ``` 这些命令将创建一个名为`pvnet`的虚拟环境,并安装所需的依赖项。 3. 当您运行`run.py`时,输出日志将显示运行的进度和结果。根据提供的日志,运行看起来是成功的,并输出了一些信息。 4. 对于权重文件,根据提供的信息,训练好的权重文件可能存储在代码库的某个目录中。 请注意,这只是对clean-pvnet的简要介绍,如果您需要更多详细信息或有其他相关问题,请参考论文和代码库中的文档。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【复现笔记clean-pvnet复现](https://blog.csdn.net/weixin_54470372/article/details/128293400)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值