sklearn加载自己的数据_使用Dataloader加载自己的视频帧数据

手头的数据一般都是在若干个文件夹中保存有若干视频帧。例如000-199共200个文件夹,每个文件夹下有连续的200帧。模拟实验涉及降采样的LR数据,Bicubic的数据,以及真实GT数据。

之前的RBPN是在数据加载的时候用的python的Bicubic内核进行降采样,实际上:

python的Bicubic内核与matlab内核的降采样是不同的。

我用python降采样后再上采样与GT求PSNR,发现python的结果会比matlab的高一些。而数据的退化一般都是在matlab里做,然后得到三个数据:GT,LR,和Bicubic

所以Dataloader需要微改一下。

三个py文件:1.dataset.py写自己的Dataset类;2.data.py写函数;3.main.py做测试

需要假设:

  • GT,LR,Bicubic文件夹下存放视频序列文件夹,视频帧的命名需要一样

4e0dea46ce077b077173b02eefda0ba2.png
  • 每个文件夹下为000-199共200个文件夹,每个文件夹保存100帧:001.png-100.png
  • 命名规则可以改,只需要相同

1.dataset.py代码可能需要修改的部分

for i in seq:
        index1 = int(lr_filepath[char_len-7:char_len-4]) + i  # 最后4-7的字符,4代表.png,若序号为03d,则为7=3+4,若为08d,则为12=8+4,同理
        file_name1 = lr_filepath[0:char_len-7]+'{0:03d}'.format(index1) + '.png'  # 0保存为000,{0:0xd},x可修改

        if os.path.exists(file_name1):
            temp = modcrop(Image.open(file_name1).convert('RGB'), scale)  # 如果相邻帧存在,加入neibor[]中
            neibor.append(temp)

# 定义自己的datasst类
# image_dir为存放数据集的文件夹,如.../Jilin-1;file_list为真实图像的图像名列表,如000/001.png···;
class LoadTrainingDataFromFolder(data.Dataset):
    def __init__(self, image_dir, nFrames, upscale_factor, data_augmentation, file_list, path_size, transform=None):
        super(LoadTrainingDataFromFolder, self).__init__()
        GT_folder_name = 'train/GT/'
        LR_folder_name = 'train/LR4x/'
        Bic_folder_name = 'train/Bicubic4x/'  # 这三个需要改成自己的
        # 读出GT/file_list的内容,,即['GT/000/001.png',···,'GT/000/100.png']
        gt_alist = [GT_folder_name + line.rstrip() for line in open(join(image_dir, file_list))]
        lr_alist = [LR_folder_name + line.rstrip() for line in open(join(image_dir, file_list))]
        bic_alist = [Bic_folder_name + line.rstrip() for line in open(join(image_dir, file_list))]
        # ['E:Github_package/video_dataloader/trainGT/000/001.png',···]
        self.gt_image_filenames = [join(image_dir, x) for
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值