当前位置:   article > 正文

Single Shot 6D Object Pose Prediction代码复现--测试_gen6d csdn

gen6d csdn

Singleshot 6D Object Pose Prediction代码复现–测试

初研究6D位姿估计,在网上看到了Real-Time Seamless Single Shot 6D Object Pose Prediction这篇文章,并有开源代码https://github.com/Microsoft/singleshotpose/,所以就认真研读了论文,并复现了一下源代码。这篇文章主要记录我复现测试部分代码的过程。

我的环境是:ubuntu16.04 cuda9.0 python2.7+pytorch0.3.1
具体过程如下:

一、准备工作

1.创建环境

conda create -n pose python=2.7  # 创建conda环境
conda activate pose              #激活环境pose
  • 1
  • 2

2.安装pytorch
直接安装会报错,所以我参考这篇文章进行安装。

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/  # 使用清华镜像源
conda config --set show_channel_urls yes
conda install pytorch=0.3.1 torchvision cuda90 -c pytorch
pip install torchvision==0.2.1
  • 1
  • 2
  • 3
  • 4

此时可以测试torch是否安装成功:
打开终端,在pose环境下运行python然后输入:
在这里插入图片描述
证明安装成功。

3.安装以下依赖项:numpy,scipy,PIL,opencv-python

conda install --channel https://conda.anaconda.org/menpo opencv
conda install numpy
conda install scipy
  • 1
  • 2
  • 3

安装PIL时:

conda install -c http://conda.anaconda.org/reeder pillow
  • 1

4.下载并准备数据集

wget -O LINEMOD.tar --no-check-certificate "https://onedrive.live.com/download?cid=05750EBEE1537631&resid=5750EBEE1537631%21135&authkey=AJRHFmZbcjXxTmI"
wget -O backup.tar --no-check-certificate "https://onedrive.live.com/download?cid=0C78B7DE6C569D7B&resid=C78B7DE6C569D7B%21191&authkey=AP183o4PlczZR78"
wget -O multi_obj_pose_estimation/backup_multi.tar --no-check-certificate  "https://onedrive.live.com/download?cid=05750EBEE1537631&resid=5750EBEE1537631%21136&authkey=AFQv01OSbvhGnoM"
wget https://pjreddie.com/media/files/VOCtrainval_11-May-2012.tar
  • 1
  • 2
  • 3
  • 4

此时,由于我的Linux系统无法连接外网,所以我直接采用作者说的直接复制网址在windows上下载,最后下载成功:
在这里插入图片描述
然后将他们都放在Linux系统上,继续进行:
在终端下进行:

wget https://pjreddie.com/media/files/darknet19_448.conv.23 -P cfg/
tar xf LINEMOD.tar
tar xf backup.tar
tar xf multi_obj_pose_estimation/backup_multi.tar -C multi_obj_pose_estimation/
tar xf VOCtrainval_11-May-2012.tar
  • 1
  • 2
  • 3
  • 4
  • 5

然后将解压好的数据集权重放到相应的文件夹中。
二、测试
1、单目标情况:Linemod数据集

python valid.py --datacfg cfg/ape.data --modelcfg cfg/yolo-pose.cfg --weightfile backup/ape/model_backup.weights
  • 1

运行结果:(一张图截不下所以分三次截全)
在这里插入图片描述在这里插入图片描述在这里插入图片描述使用valid.ipynb来测试模型并可视化结果:我是在jupyter上把valid.ipynb转为valid.py文件在pycharm上运行测试的。步骤如下:
首先在终端上进行以下步骤:

pip install matplotlib
pip install jupyter notebook
  • 1
  • 2

在一个新终端下运行:

jupyter notebook
  • 1

会直接跳到浏览器上打开界面:
在这里插入图片描述点击“上传”选择要上传的文件,然后点“打开”
在这里插入图片描述然后点击“上传”
在这里插入图片描述然后可以看到如下界面:此时你可以选择直接在jupyter上运行文件(要在相应的环境下运行),也可以转为.py文件在pycharm上运行。我选择后者,转换步骤如下:
在这里插入图片描述点击“文件”,点击“下载”,选择“python(.py)”,然后选择保存路径就可以下载保存了。
在这里插入图片描述
我保存到了singleshotpose-master下新建的文件夹jupyter下。
在这里插入图片描述
然后将原代码中的valid.py备份(valid–原.py),将转换后的valid.py放到文件夹下,进行运行测试:
在这里插入图片描述

python valid.py --datacfg cfg/ape.data --modelcfg cfg/yolo-pose.cfg --weightfile backup/ape/model_backup.weights
  • 1

可以看到输出图片如下:
在这里插入图片描述2、多目标情况:OCCLUSION数据集
运行代码:

python valid_multi.py cfg/yolo-pose-multi.cfg backup_multi/model_backup.weights
  • 1

输出结果如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述
多目标情况也进行可视化:与单目标的可视化方法一样。将对应的文件夹multi_obj_pose_estimation下的valid_multi.jpynb在jupyter上转为.py文件,备份原valid_multi.py文件(valid_multi–原.py),将转换好的放到文件夹下,进行运行即可。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/83942
推荐阅读
相关标签
  

闽ICP备14008679号