【复现笔记】clean-pvnet复现

这篇具有很好参考价值的文章主要介绍了【复现笔记】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

【复现笔记】clean-pvnet复现

运行以下命令进行数据集的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

【复现笔记】clean-pvnet复现

(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后的命令如下

【复现笔记】clean-pvnet复现

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

【复现笔记】clean-pvnet复现

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

5、可视化成功

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

运行后会自动弹出结果

【复现笔记】clean-pvnet复现文章来源地址https://www.toymoban.com/news/detail-422124.html

到了这里,关于【复现笔记】clean-pvnet复现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GDB 源代码查看、管理、搜索、设置源代码目录,调试发行版,观察点

    C_FLAGS中加入-g选项后,生成的可执行文件中会保存调试信息。 1、 set listsize 10:设置list查看的代码行数        list -: 向前查看代码        list 函数名: 产看函数代码 2、search        forward-search :跟 search功能一样       reverse-search:反向搜索 3、directories 路径:添加源代码路

    2024年02月09日
    浏览(72)
  • Python背单词记单词小程序源代码,背单词记单词小游戏源代码

    背单词小游戏,要有多界面交互,界面整洁、美观,可调节游戏等级难度,可配置游戏信息。 有游戏分数,游戏时间,动画特效,背景音乐,不同游戏等级的历史最高分记录。 拼写成功的英文单词显示中文意思。支持长按回删键[backspace],快速删除单词字母。 多种游戏困难

    2024年02月15日
    浏览(67)
  • git源代码泄露

    需要的工具:kali,githack(win版没下载成功) 安装方法: kali命令行中输入:git clone https://github.com/lijiejie/GitHack 下载成功如下: ​ 输入GitHack,然后输入python GitHack.py +所要下载的网页链接+/.git/ GIT文件基本介绍:         Git 是目前最流行的版本控制系统。版本控制系统在一

    2024年02月07日
    浏览(66)
  • linux 源代码编译

    有时候会在linux上下载源码包,然后进行编译成可执行的文件,这个过程需要经过configure、make、make install、make clean四个步骤 configure 为这个程序在当前的操作系统环境下选择合适的编译器和环境参数来编译该代码 make 对程序代码进行编译操作,会将源码编译成可执行的目标文

    2024年02月11日
    浏览(64)
  • 跑酷游戏源代码

    import pygame, sys import random class Person():  # 人物     def __init__(self, surf=None, y=None):         self.surface = surf         self.y = y  # y坐标         self.w = (surf.get_width()) / 12  # 宽度         self.h = surf.get_height() / 2  # 高度         self.cur_frame = -1  # 当前的运动状态帧         self.

    2024年02月07日
    浏览(65)
  • matlab查看源代码

    matlab函数源代码-查看 Ctrl+D 最简单方便的一种方法,鼠标划中函数名,按CTRL+D即可打开函数的m文件

    2024年01月25日
    浏览(56)
  • bugku--源代码

    查看源代码 发显URL编码 解码 在拼接这一串 拿着去提交就行啦

    2024年02月04日
    浏览(59)
  • Git源代码管理方案

    背景 现阶段的Git源代码管理上有一些漏洞,导致在每次上线发布的时间长、出问题,对整体产品的进度有一定的影响。 作用 新的Git源代码管理方案有以下作用: 多功能并行开发时,测试人员可以根据需求任务分配测试自己的功能,环境互不干扰(需要提供多环境),也可以集

    2024年02月16日
    浏览(63)
  • C# 关于源代码生成

    步骤1: 首先建立一个控制台程序 SourceGeneratorDome1 选择版本.net7 代码如下: 建立类文 件  GreetingUsePartialClassm 这是一个类分布文件。 看清楚哟。这里只是定义了一个分布类和分布方法。具体实现方法通过源代码生成 步骤2:建立一个源代码生成项目 但是类型选择. netstanda

    2024年02月11日
    浏览(61)
  • 什么是网站的源代码?

    什么是网站的源代码? 我们可以把它理解成源文代码,当前看到的这个网页来说,其实它是由一大堆的源代码组成,通过我们的IE(Microsoft Internet Explorer)浏览器(或服务器)翻译成现在我们所看到的样子。 网站源代码是什么? 如果您要制作网页,您可以选用如Frontpage或D

    2024年02月12日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包