姿态估计2-02:PVNet(6D姿态估计)-官方模型训练测试-报错解决

v
以下链接是个人关于PVNet(6D姿态估计) 所有见解,如有错误欢迎大家指出,我会第一时间纠正。有兴趣的朋友可以加微信:17575010159 相互讨论技术。若是帮助到了你什么,一定要记得点赞!因为这是对我最大的鼓励。 文末附带 \color{blue}{文末附带} 文末附带 公众号 − \color{blue}{公众号 -} 公众号 海量资源。 \color{blue}{ 海量资源}。 海量资源

姿态估计2-00:PVNet(6D姿态估计)-目录-史上最新无死角讲解

注意,本人编写该博客的时间为 2020 / 06 / 29 ,也就是说,你现在下载的作者代码或许和 \color{red}{注意,本人编写该博客的时间为2020/06/29,也就是说,你现在下载的作者代码或许和} 注意,本人编写该博客的时间为2020/06/29,也就是说,你现在下载的作者代码或许和
本人的代码不一样(如果作者有更新过)还有就是,本人调试该代码为 u b u n t u 18.04 系统 \color{red}{本人的代码不一样(如果作者有更新过)还有就是,本人调试该代码为ubuntu18.04系统} 本人的代码不一样(如果作者有更新过)还有就是,本人调试该代码为ubuntu18.04系统
即下面的报错使用 u b u n t u 18.04 报错的过程,以及解决办法 \color{red}{即下面的报错使用ubuntu18.04报错的过程,以及解决办法} 即下面的报错使用ubuntu18.04报错的过程,以及解决办法

环境安装

使用conda创建虚拟环境:

conda create -n PVNet-pytorch1.4-py3.6 -y python=3.6 
conda activate PVNet-pytorch1.4-py3.6

# 本人尝试过torch=1.5.0的版本,但是没能成功搭建环境
pip install torch==1.4.0 torchvision==0.5.0 -i https://pypi.douban.com/simple
pip install Cython -i https://pypi.douban.com/simple
pip install cffi -i https://pypi.douban.com/simple
pip install yacs -i https://pypi.douban.com/simple
pip install open3d -i https://pypi.douban.com/simple
pip install opencv-python  -i https://pypi.douban.com/simple
pip install tqdm -i https://pypi.douban.com/simple
pip install scikit-image -i https://pypi.douban.com/simple
pip  install pycocotools -i https://pypi.douban.com/simple
pip  install plyfile -i https://pypi.douban.com/simple
pip  install transforms3d -i https://pypi.douban.com/simple
sudo apt-get install libglfw3-dev libglfw3

编译C代码:

# 这里的root表示从git下载项目的根目录
ROOT=/path/to/clean-pvnet
cd $ROOT/lib/csrc
# 本人cuda版本为10.1,
export CUDA_HOME="/usr/local/cuda-10.1"
cd dcn_v2
python setup.py build_ext --inplace
cd ../ransac_voting
python setup.py build_ext --inplace
cd ../nn
python setup.py build_ext --inplace

如果报错:gcc: error: /usr/local/cuda-9.0/lib64/libcudart.so: No such file or directory
执行vim setup.py,把其中的cuda-9.0都替换成10.1,然后重新执行python setup.py build_ext --inplace,接着运行如下指令:

cd ../fps
python setup.py build_ext --inplace



数据模型下载摆放

根据README.md,我们可以看到如下内容:
在这里插入图片描述
本人暂时下载了linemod,linemod_orig以及occlusion linemod数据集,如果后续有需要需要再下载其他的数据集。下载完成之后,全部解压,放在再ROOT/data目录下,然后继续阅读README.md可以看到如下部分:

在这里插入图片描述

点击蓝色的here即可以下载预训练模型。模型下载号之后,我们可是进行模型测试



模型测试

Testing on Linemod

继续阅读README.md,我们可以看到如下内容:

在这里插入图片描述

第一步: 首先在ROOT目录执行如下命令

# 注意,需要摆放好linemod,linemod_orig以及occlusion linemod 3个数据集之后,再执行该指令
python run.py --type linemod cls_type cat

执行本人显示如下:
在这里插入图片描述

第二步: 拷贝下载的预训练模型中的cat_199.pth 到 data/model/pvnet/cat/目录中,并且重命名199.pth

第三步: 执行如下指令

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

报错1:

RuntimeError: DataLoader worker (pid 2176) is killed by signal: Bus error. It is possible that dataloader's workers are out of shared memory. Please try to raise your shared memory limit.

这里报错的原因,主要是因为本人使用docker进行测试,出现共享内存不够的问题,可以通过如下博客连接解决:https://zhuanlan.zhihu.com/p/143914966

本人主要下修在run.py的def run_evaluate():函数中添加了cfg.train.num_workers = 0代码如下:

    ......
    load_network(network, cfg.model_dir, epoch=cfg.test.epoch)
    network.eval()
    cfg.train.num_workers = 0
    data_loader = make_data_loader(cfg, is_train=False)
    evaluator = make_evaluator(cfg)
    for batch in tqdm.tqdm(data_loader):
    ......

重新运行,本人显示如下:
在这里插入图片描述
然后再执行

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

本人打印如下:
在这里插入图片描述
其他的测试的测试如Test with icp,Test with the uncertainty-driven PnP请参照README.md自行测试。

Testing on Tless

该数据集本人没有下载,所以在这里就不做演示了。


Visualization

Visualization on Linemod

因为我们前面已经执行了python run.py --type linemod cls_type cat,所以这里不需要再重复执行。直接执行:

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

本人使用pycharm打印如下:
在这里插入图片描述
后续我们详细讲解其实现过程

Visualization on Tless

和前面一样,由于本人没有下载该数据集,所以就不做演示了。


Training

Training on Linemod

前面已经执行了python run.py --type linemod cls_type cat,所以不需要重复执行,直接执行:

python train_net.py --cfg_file configs/linemod.yaml model mycat cls_type cat

即可,本人打印如下:
在这里插入图片描述

Training on Tless

该数据集没有下载,不做讲解

结语

如果后续有时间,我会带大家训练自己的数据,敬请期待!

在这里插入图片描述

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 ]
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江南才尽,年少无知!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值