用PVN3D训练自制LINEMOD数据集过程记录

1.制作自己的LINEMOD数据集

(1)制作过程与步骤

制作数据集的过程参考:6d位姿估计—制作自己的LINEMOD数据集过程记录(有效的方法)

(2)合并数据集、生成test.txt与train.txt

数据制作过程中在获取帧变换(python compute_gt_poses.py LINEMOD/duck2
)步骤中,若录制的图片过多的话,内存会溢出,因此不建议一次性录制太多图片,本人在record2.py中,RECORD_LENGTH=50,每次录制大概能够生成一千零几张图片。

基于以上原因,我们需要录制多个数据集,并在后期需要将rgb、depth、mask图像以及gt.yml、info.yml进行合并,并生成train.txt和test.txt。合并程序的电脑不能联网,有需要的可以私信我。

2.将PVN3D的输入替换为自己的数据集

(1)将datasets/linemod/Linemod_preprocessed/data/09改为009,将自己的merge文件夹改为09;

(2)将JPEGImages改为rgb;

(3)在common.py中修改相机内参;并将第37行的mini_batch_size=32

(4)将./pnv3d/datasets/linemod/linvmod_dataset.py中的第188中的png改为jpg,是因为我的rgb图未jpg格式。而程序默认的格式的png。

注:因为在生成info.yml的时候depth_scale用的是0.001

3.训练

训练集大概有12000多张图片

cd pvn3d
python3 -m train.train_linemod_pvn3d --cls duck

4训练结果

(1)使用与训练集一同录制的数据集分割出来的测试效果

在这里插入图片描述
由图可以看出,基本是正确的。

(2)使用与训练集同一场景下录制的数据集进行测试

在这里插入图片描述
由图可以看出来,小了一号,是整个数据集进行测试结果都小一号,不知道为什么。

(3)使用不同场景下录制的数据集进行测试

在这里插入图片描述

emm…可以看出来,基本芭比 q了

猜你喜欢

转载自blog.csdn.net/weixin_41837701/article/details/123094114