Haobo Yuan
add omg code
b34d1d6
from mmcv import TransformBroadcaster, LoadImageFromFile, RandomResize
from mmdet.datasets.transforms import Resize, RandomFlip, RandomCrop
from mmengine.dataset import DefaultSampler
from seg.datasets.pipeliens.loading import LoadVideoSegAnnotations, ResizeOri
from seg.datasets.pipeliens.formatting import PackVidSegInputs
from seg.datasets.pipeliens.frame_sampling import VideoClipSample
from seg.datasets.samplers.batch_sampler import VideoSegAspectRatioBatchSampler
from seg.datasets.vipseg import VIPSegDataset
from seg.evaluation.metrics.vip_seg_metric import VIPSegMetric
dataset_type = VIPSegDataset
data_root = 'data/VIPSeg'
backend_args = None
image_size = (1280, 736)
# dataset settings
train_pipeline = [
dict(
type=VideoClipSample,
num_selected=2,
interval=2),
dict(
type=TransformBroadcaster,
share_random_params=True,
transforms=[
dict(type=LoadImageFromFile, backend_args=backend_args),
dict(type=LoadVideoSegAnnotations, with_bbox=True, with_label=True, with_mask=True, with_seg=True),
dict(
type=RandomResize,
resize_type=Resize,
scale=image_size,
ratio_range=(.8, 2.),
keep_ratio=True,
),
dict(
type=RandomCrop,
crop_size=image_size,
crop_type='absolute',
recompute_bbox=True,
allow_negative_crop=True),
dict(type=RandomFlip, prob=0.5),
]),
dict(type=PackVidSegInputs)
]
test_pipeline = [
dict(
type=TransformBroadcaster,
transforms=[
dict(type=LoadImageFromFile, backend_args=backend_args),
dict(type=LoadVideoSegAnnotations, with_bbox=True, with_label=True, with_mask=True, with_seg=True),
dict(type=Resize, scale=image_size, keep_ratio=True),
dict(type=ResizeOri),
]),
dict(type=PackVidSegInputs)
]
# dataloader
train_dataloader = dict(
batch_size=2,
num_workers=2,
persistent_workers=True,
sampler=dict(type=DefaultSampler, shuffle=True),
batch_sampler=dict(type=VideoSegAspectRatioBatchSampler),
dataset=dict(
type=dataset_type,
data_root=data_root,
ann_file='train.txt',
data_prefix=dict(img='imgs/', seg='panomasks/'),
# check whether it is necessary.
filter_cfg=dict(filter_empty_gt=True, min_size=32),
pipeline=train_pipeline))
val_dataloader = dict(
batch_size=1,
num_workers=2,
persistent_workers=True,
drop_last=False,
sampler=dict(type=DefaultSampler, shuffle=False, round_up=False),
dataset=dict(
type=dataset_type,
data_root=data_root,
ann_file='val.txt',
data_prefix=dict(img='imgs/', seg='panomasks/'),
test_mode=True,
pipeline=test_pipeline))
test_dataloader = val_dataloader
val_evaluator = dict(
type=VIPSegMetric,
metric=['VPQ@1', 'VPQ@2', 'VPQ@4', 'VPQ@6'],
)
test_evaluator = val_evaluator