Real-Time Seamless Single Shot 6D Object Pose Prediction代码复现

开源代码链接:https://github.com/Microsoft/singleshotpose/

1、我的设备环境

电脑系统:win10
运行平台:pycharm
框 架:pytorch, torchvision== 0.11.3 torch ==1.10.2

2、准备文件

(1)代码

github上下:
Real-Time Seamless Single Shot 6D Object Pose Prediction代码复现_第1张图片
解压即可。

(2)作者训练好的模型和数据

Real-Time Seamless Single Shot 6D Object Pose Prediction代码复现_第2张图片
在浏览器里打开这是个链接就可以下载了。

下载后:
Real-Time Seamless Single Shot 6D Object Pose Prediction代码复现_第3张图片
并解压。

3、开始复现

(1)将模型和数据集放入项目里

将这三个放入刚刚下载的代码文件里
在这里插入图片描述

就像这样:
Real-Time Seamless Single Shot 6D Object Pose Prediction代码复现_第4张图片

(2)尝试跑通代码

在pycharm底端打开终端:
在这里插入图片描述
输入代码:

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

出现:
Real-Time Seamless Single Shot 6D Object Pose Prediction代码复现_第5张图片
证明可以跑通。
注意:我将原本的valid.py改为了valid_0.py:
Real-Time Seamless Single Shot 6D Object Pose Prediction代码复现_第6张图片
故的输入的是:

python valid_0.py --datacfg cfg/ape.data --modelcfg cfg/yolo-pose.cfg --weightfile backup/ape/model_backup.weights
(3)单个图像的实例化

使用valid.ipynb来测试模型并可视化结果:
①用jupyter notebook打开
②打开之后把第一行注释掉,再把其他内容复制到pycharm的新建python文件:single_obj_testing.py

首先在终端上安装一下jupyter notebook:

pip install matplotlib
pip install jupyter notebook

打开jupyter notebook:

jupyter notebook

到浏览器:
Real-Time Seamless Single Shot 6D Object Pose Prediction代码复现_第7张图片
Real-Time Seamless Single Shot 6D Object Pose Prediction代码复现_第8张图片
然后点击打开文件,再进行下一步①:
Real-Time Seamless Single Shot 6D Object Pose Prediction代码复现_第9张图片
或者直接注释第一行,再复制剩下的代码②,放入新建的.py文件,即:single_obj_testing.py里。

我是按②来:
然后在terminal里输入:

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

就能出图。

若要测试其他图像,只需更改对应的代码。
比如:要测试cam
single_obj_testing.py中修改如下:
Real-Time Seamless Single Shot 6D Object Pose Prediction代码复现_第10张图片
terminal中的命令修改为:

python single_obj_testing.py --datacfg cfg/cam.data --modelcfg cfg/yolo-pose.cfg --weightfile backup/cam/model_backup.weights

出图如下:

(4)多图像的实例化

方法同单个图像实例化:
复制multi_obj_pose_estimation文件夹下的文件:valid_multi.ipynb来做一个新的multi_obj_testing.py文件,同样要注释掉第一行。

可能会有文件找不到的报错出现,修改一下这里:
在这里插入图片描述

可能会报这样的错:
FileNotFoundError: [Errno 2] No such file or directory: ‘…/LINEMOD/benchvise/JPEGImages/000000.jpg’
很懵,因为这个图片存在,不知道为什么报错:找不到。

后来,在GitHub上偶然看到了相似的问题,便将LINEMOD文件夹中每个子文件夹里的test_occlusion文本文件里的信息改了,路径为:
Real-Time Seamless Single Shot 6D Object Pose Prediction代码复现_第11张图片
即这个文件:
Real-Time Seamless Single Shot 6D Object Pose Prediction代码复现_第12张图片
将此文件里的…改为LINEMOD文件所在的路径(需将\换成/),即替换成D:/postgratude_one/4.singleshotpose-master即可。
Real-Time Seamless Single Shot 6D Object Pose Prediction代码复现_第13张图片
替换后:
Real-Time Seamless Single Shot 6D Object Pose Prediction代码复现_第14张图片
结果代码运行了(运行时间挺长的),结果如下:
Real-Time Seamless Single Shot 6D Object Pose Prediction代码复现_第15张图片

只差最后一步了,就是多图实例化,加油,搞出来!

多图的好像不能实例化???

你可能感兴趣的:(python,pytorch,深度学习,pycharm)