• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

复现笔记clean-pvnet复现

武飞扬头像
weixin_54470372
帮助1

源代码链接: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、配置环境

  1.  
    conda create -n pvnet python=3.7
  2.  
    conda activate pvnet
  3.  
     
  4.  
    conda install pytorch==1.5.0 torchvision==0.6.0 cudatoolkit=10.2 -c pytorch
  5.  
     
  6.  
    pip install Cython==0.28.2
  7.  
    sudo apt-get install libglfw3-dev libglfw3
  8.  
    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如下所示
  1.  
    yacs==0.1.4
  2.  
    numpy==1.21.6
  3.  
    torchvision==0.6.0
  4.  
    opencv-python==3.4.2.17
  5.  
    tqdm==4.28.1
  6.  
    pycocotools==2.0.0
  7.  
    matplotlib==2.2.2
  8.  
    plyfile==0.6
  9.  
    scikit-image==0.14.2
  10.  
    scikit-learn
  11.  
    PyOpenGL==3.1.1a1
  12.  
    ipdb==0.13
  13.  
    cyglfw3==3.1.0.2
  14.  
    pyassimp==3.3
  15.  
    progressbar==2.5
  16.  
    open3d-python==0.5.0.0
  17.  
    tensorboardX==1.2
  18.  
    cffi==1.11.5
  19.  
    transforms3d
  20.  
    pillow==6.2.1
学新通

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

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

3、Compile cuda extensions under lib/csrc

  1.  
    ROOT=/path/to/clean-pvnet
  2.  
    cd $ROOT/lib/csrc
  3.  
    export CUDA_HOME="/usr/local/cuda-10.2"
  4.  
    cd ransac_voting
  5.  
    python setup.py build_ext --inplace
  6.  
    cd ../nn
  7.  
    python setup.py build_ext --inplace
  8.  
    cd ../fps
  9.  
    python setup.py build_ext --inplace
  10.  
     
  11.  
    # If you want to run PVNet with a detector
  12.  
    cd ../dcn_v2
  13.  
    python setup.py build_ext --inplace
  14.  
     
  15.  
    # If you want to use the uncertainty-driven PnP
  16.  
    cd ../uncertainty_pnp
  17.  
    sudo apt-get install lib谷歌-glog-dev
  18.  
    sudo apt-get install libsuitesparse-dev
  19.  
    sudo apt-get install libatlas-base-dev
  20.  
    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

  1.  
    ROOT=/path/to/clean-pvnet
  2.  
    cd $ROOT/data
  3.  
    ln -s /path/to/linemod linemod
  4.  
    ln -s /path/to/linemod_orig linemod_orig
  5.  
    ln -s /path/to/occlusion_linemod occlusion_linemod
  6.  
     
  7.  
    # the following is used for tless
  8.  
    ln -s /path/to/tless tless
  9.  
    ln -s /path/to/cache cache
  10.  
    ln -s /path/to/SUN2012pascalformat sun

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

学新通

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

python run.py --type linemod cls_type cat

输出日志如下:

  1.  
    ~/3dTracking/clean-pvnet$ python run.py --type linemod cls_type cat
  2.  
    100%|███████████████████████████████████████████████████████████████████████████████████████████████| 177/177 [00:00<00:00, 5575.48it/s]
  3.  
    100%|███████████████████████████████████████████████████████████████████████████████████████████| 10000/10000 [00:08<00:00, 1139.37it/s]
  4.  
    100%|██████████████████████████████████████████████████████████████████████████████████████████| 10000/10000 [00:00<00:00, 11956.80it/s]
  5.  
    100%|█████████████████████████████████████████████████████████████████████████████████████████████| 1002/1002 [00:00<00:00, 6410.46it/s]
  6.  
    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)测试成功

运行以下命令进行测试

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

注:

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

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

  1.  
    File "lib/evaluators/linemod/pvnet.py", line 19, in <module>
  2.  
    from transforms3d.quaternions import mat2quat, quat2mat
  3.  
    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

运行后会自动弹出结果

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgfgakf
系列文章
更多 icon
同类精品
更多 icon
继续加载