Shortcuts

注意

您正在阅读 MMEditing 0.x。 MMEditing 0.x 会在 2022 年末开始逐步停止维护,建议您及时升级到 MMEditing 1.0 版本,享受由 OpenMMLab 2.0 带来的更多新特性和更佳的性能表现。阅读 MMEditing 1.0 的发版日志代码文档 以了解更多。

mmedit.datasets.vfi_vimeo90k_7frames_dataset 源代码

# Copyright (c) OpenMMLab. All rights reserved.
import os
import os.path as osp

from .base_vfi_dataset import BaseVFIDataset
from .registry import DATASETS


[文档]@DATASETS.register_module() class VFIVimeo90K7FramesDataset(BaseVFIDataset): """Utilize Vimeo90K dataset (7 frames) for video frame interpolation. Load 7 GT (Ground-Truth) frames from the dataset, predict several frame(s) from other frames. Then it applies specified transforms and finally returns a dict containing paired data and other information. It reads Vimeo90K keys from the txt file. Each line contains: 1. video frame folder 2. number of frames 3. image shape Examples: :: 00001/0266 7 (256,448,3) 00001/0268 7 (256,448,3) Note: Only `video frame folder` is required information. Args: folder (str | :obj:`Path`): Path to image folder. ann_file (str | :obj:`Path`): Path to the annotation file. pipeline (list[dict | callable]): A sequence of data transformations. input_frames (list[int]): Index of input frames. target_frames (list[int]): Index of target frames. test_mode (bool): Store `True` when building test dataset. Default: `False`. """ def __init__(self, folder, ann_file, pipeline, input_frames, target_frames, test_mode=False): super().__init__( pipeline=pipeline, folder=folder, ann_file=ann_file, test_mode=test_mode) self.input_frames = input_frames self.target_frames = target_frames self.data_infos = self.load_annotations()
[文档] def load_annotations(self): """Load annoations for Vimeo-90K dataset. Returns: list[dict]: A list of dicts for paired paths and other information. """ # get keys with open(self.ann_file, 'r') as fin: keys = [line.strip().split(' ')[0] for line in fin] data_infos = [] for key in keys: key = key.replace('/', os.sep) inputs_path = [ osp.join(self.folder, key, f'im{i}.png') for i in self.input_frames ] target_path = [ osp.join(self.folder, key, f'im{i}.png') for i in self.target_frames ] data_infos.append( dict( inputs_path=inputs_path, target_path=target_path, key=key)) return data_infos