本文主要讲解mmlab中对video的数据提取与处理,具体来说是Video Segmentation的任务,输入为视频的一些帧,输出是对应的GT Mask,以如下实例进行讲解
1 | train_pipeline = [ |
这是mmlab中的一个基本数据处理的pipeline,下面分别介绍以上出现方法,注意这里只介绍他们如何使用,并不在具体地代码层面进行解析
LoadImageFromFile
此参数较为简单,就是加载图片,加载完之后data数据有如下参数
img_info, ann_info, seg_fields, img_prefix, seg_prefix, filename, ori_filename, img, img_shape, ori_shape, pad_shape, scale_factor, img_norm_cfg
1 | dict(type='LoadImageFromFile'), |
LoadAnnotations
loadannotations和loadimage功能相同,只不过这里是加载了mask
- reduce_zero_label: 有时候0类代表背景类,我们在预测时也会预测背景类,如果设为True表示忽略背景类,例如之前加上背景类是[0, 1, 2, 3]四类,如果设为True就是[0, 1, 2]三类,之前的123类变为012来代替
1 | dict(type='LoadAnnotations', reduce_zero_label=True), |
Resize
加载完image以及对应的seg mask之后,我们对其进行resize处理
- process_clips: 此参数表示对视频还是对图片进行处理,这里设置为True表示对整个视频帧进行处理,比如我们取5帧,那么我们对这5帧同时resize处理
- img_scale: 表示要在多少img尺度上进行缩放,这里设为(853, 480)表示如果缩放的话,在此基础上进行缩放
- ratio_range: 缩放尺寸,在(0.5, 2.0)之间随机一个数字,乘上img_scale就是最后的尺寸大小
最后会保存缩放后的图片大小img_shape以及之前的大小ori_shape,并保存缩放因子scale_factor
1 | dict(type='Resize', img_scale=(853, 480), ratio_range=(0.5, 2.0), process_clips=True), |
这里区别不明显的原因是: 缩放的时候hw等比例缩放,所以放在这看不出区别
![]() |
![]() |
RandomCrop_clips
在图中,截取一个crop_size大小的区域,并且标记图像某一个类别的有效区域要占整幅图的比例小于cat_max_ratio
- crop_size: 预先定义,这里定义为(480, 480)
- cat_max_ratio: 某一个类别的有效标记区域占整幅图的比例要小于cat_max_ratio
1 | dict(type='RandomCrop_clips', crop_size=crop_size, cat_max_ratio=0.75), |
![]() |
![]() |
RandomFlip_clips
将图片进行翻转
- prob: 以prob的概率对图片进行翻转
1 | dict(type='RandomFlip_clips', prob=0.5), |
![]() |
![]() |
PhotoMetricDistortion_clips
1 | dict(type='PhotoMetricDistortion_clips'), |
Normalize_clips
normalize对图像归一化
- img_norm_cfg: 归一化参数,需提前设置
1 | img_norm_cfg = dict(mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) |
Pad_clips
填充图片
- size: 填充后图片的大小
- pad_val: 图片填充像素,这里用0对图片进行填充补全
- seg_pad_val: 对分割图进行填充,这里用255进行填充
1 | dict(type='Pad_clips', size=crop_size, pad_val=0, seg_pad_val=255), |
DefaultFormatBundle_clips
Collect
将其他信息,比如图像大小,缩放尺度等信息都归到img_metas属性中,并将keys中的属性单一归类
- keys: 被收集为data字典中的键,其余的键都归为data中的img_metas中
1 | dict(type='Collect', keys=['img', 'gt_semantic_seg']), |





