DataLoader处理MPI_INF_3DHP测试数据集

目录结构如图

 annot-test.h5是OriNet提供的,链接在这https://github.com/chenxuluo/OriNet-demo

annot-test.h5提供了3DHP测试数据集的大部分信息,包括3D关节位置、图片名字等,但是没有图像信息,所以需要自己用cv2提取图像信息。

代码如下

class MyDatasets(Dataset):

    def __init__(self):

        self.file = h5py.File('annot-test.h5', 'r')  # 打开h5文件


    def __getitem__(self, index):
        root_path = "E:\PythonCodes\ContextPose2\data\mpi_inf_3dhp"
        sample = defaultdict(list)

        image_path = ""
        for id in self.file["imagename"][index]:
            image_path += str(chr(int(id)))
        image_path = os.path.join(root_path,image_path)
        image = cv2.imread(image_path)
        sample['images'] = image
        part_3D_univ = torch.Tensor(self.file["part_3D_univ"][index])
        p = torch.ones(17)
        p = p.unsqueeze(-1)
        part_3D_univ = torch.cat((part_3D_univ, p), -1)
        sample['keypoints_3d'] = part_3D_univ
        sample['indexex'] = index
        sample['pred_keypoints_3d'] = []
        return sample

    def __len__(self):
        return len(self.file['part_3D_univ'])



data_test = MyDatasets()
data_loader_test = DataLoader(data_test, batch_size=8, shuffle=False)

主要做的就是根据 annot-test.h5提供的图像名找到图像位置,然后用cv2得到图像信息。需要什么信息一般看模型的需要,其他的 annot-test.h5中的也可以自己添加

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值