val_pipeline = [
dict(type='MMUniformSampleFrames', clip_len=dict(RGB=8), num_clips=1),
dict(type='MMDecode'),
dict(type='MMCompact', hw_ratio=1., allow_imgpad=True),
dict(type='Resize', scale=(224, 224), keep_ratio=False),
dict(type='Normalize', **img_norm_cfg),
dict(type='FormatShape', input_format='NCTHW'),
dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]),
dict(type='ToTensor', keys=['imgs'])
]
test_pipeline = [
dict(type='MMUniformSampleFrames', clip_len=dict(RGB=8), num_clips=10),
dict(type='MMDecode'),
dict(type='MMCompact', hw_ratio=1., allow_imgpad=True),
dict(type='Resize', scale=(224, 224), keep_ratio=False),
dict(type='Normalize', **img_norm_cfg),
dict(type='FormatShape', input_format='NCTHW'),
dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]),
dict(type='ToTensor', keys=['imgs'])
]
val_pipeline
和test_pipeline
之间的主要区别如下:
-
采样帧数不同:
val_pipeline
采样 1 个视频片段,每个片段包含 8 帧图像。test_pipeline
采样 10 个视频片段,每个片段包含 8 帧图像。
-
用途不同:
val_pipeline
通常用于验证集的数据预处理和增强。test_pipeline
通常用于测试集的数据预处理和增强。
-
预处理过程一致:
- 两个管道在预处理步骤(如解码、调整大小、归一化等)上是一致的。
-
Meta 信息保存不同:
val_pipeline
不保存任何 meta 信息。test_pipeline
也不保存任何 meta 信息。
总的来说,val_pipeline
和test_pipeline
的主要区别在于采样帧数的不同,体现了验证集和测试集的数据处理需求通常不尽相同。验证集可能只需要较少的采样帧数,而测试集需要更多的采样帧数来更好地评估模型的性能。其他预处理步骤保持一致,以确保训练和评估的数据处理流程是统一的。
pyskl/configs/rgbpose_conv3d/rgb_only.py at main · kennymckormick/pyskl · GitHub