mirror of https://github.com/open-mmlab/mmocr.git
[Config] recog dataset config refactor (#1275)
parent
792cb26924
commit
1978075577
configs
textrecog
abinet
robust_scanner
satrn
|
@ -1,12 +0,0 @@
|
|||
# Text Recognition Training set, including:
|
||||
# Synthetic Datasets: Syn90k
|
||||
|
||||
mj_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root='data/rec',
|
||||
data_prefix=dict(img_path='Syn90k/mnt/ramdisk/max/90kDICT32px'),
|
||||
ann_file='Syn90k/train_labels.json',
|
||||
test_mode=False,
|
||||
pipeline=None)
|
||||
|
||||
train_list = [mj_rec_train]
|
|
@ -1,24 +0,0 @@
|
|||
# Text Recognition Training set, including:
|
||||
# Synthetic Datasets: SynthText, Syn90k
|
||||
# Both annotations are filtered so that
|
||||
# only alphanumeric terms are left
|
||||
data_root = 'data/rec'
|
||||
|
||||
mj_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root=data_root,
|
||||
data_prefix=dict(img_path='Syn90k/mnt/ramdisk/max/90kDICT32px'),
|
||||
ann_file='Syn90k/train_labels.json',
|
||||
test_mode=False,
|
||||
pipeline=None)
|
||||
|
||||
st_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root=data_root,
|
||||
data_prefix=dict(
|
||||
img_path='SynthText/synthtext/SynthText_patch_horizontal'),
|
||||
ann_file='SynthText/alphanumeric_train_labels.json',
|
||||
test_mode=False,
|
||||
pipeline=None)
|
||||
|
||||
train_list = [mj_rec_train, st_rec_train]
|
|
@ -1,23 +0,0 @@
|
|||
# Text Recognition Training set, including:
|
||||
# Synthetic Datasets: SynthText, Syn90k
|
||||
|
||||
data_root = 'data/rec'
|
||||
|
||||
mj_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root=data_root,
|
||||
data_prefix=dict(img_path='Syn90k/mnt/ramdisk/max/90kDICT32px'),
|
||||
ann_file='Syn90k/train_labels.json',
|
||||
test_mode=False,
|
||||
pipeline=None)
|
||||
|
||||
st_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root=data_root,
|
||||
data_prefix=dict(
|
||||
img_path='SynthText/synthtext/SynthText_patch_horizontal'),
|
||||
ann_file='SynthText/train_labels.json',
|
||||
test_mode=False,
|
||||
pipeline=None)
|
||||
|
||||
train_list = [mj_rec_train, st_rec_train]
|
|
@ -1,91 +0,0 @@
|
|||
# Text Recognition Training set, including:
|
||||
# Synthetic Datasets: SynthText, SynthAdd, Syn90k
|
||||
# Real Dataset: IC11, IC13, IC15, COCO-Test, IIIT5k
|
||||
data_root = 'data/rec'
|
||||
|
||||
train_img_prefix1 = 'icdar_2011'
|
||||
train_img_prefix2 = 'icdar_2013'
|
||||
train_img_prefix3 = 'icdar_2015'
|
||||
train_img_prefix4 = 'coco_text_v1'
|
||||
train_img_prefix5 = 'IIIT5K'
|
||||
train_img_prefix6 = 'synthtext_add'
|
||||
train_img_prefix7 = 'SynthText/synthtext/SynthText_patch_horizontal'
|
||||
train_img_prefix8 = 'Syn90k/mnt/ramdisk/max/90kDICT32px'
|
||||
|
||||
train_ann_file1 = 'icdar_2011/train_labels.json'
|
||||
train_ann_file2 = 'icdar_2013/train_labels.json'
|
||||
train_ann_file3 = 'icdar_2015/train_labels.json'
|
||||
train_ann_file4 = 'coco_text_v1/train_labels.json'
|
||||
train_ann_file5 = 'IIIT5K/train_labels.json'
|
||||
train_ann_file6 = 'synthtext_add/train_labels.json'
|
||||
train_ann_file7 = 'SynthText/shuffle_train_labels.json'
|
||||
train_ann_file8 = 'Syn90k/shuffle_train_labels.json'
|
||||
|
||||
ic11_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root=data_root,
|
||||
data_prefix=dict(img_path=train_img_prefix1),
|
||||
ann_file=train_ann_file1,
|
||||
test_mode=False,
|
||||
pipeline=None)
|
||||
|
||||
ic13_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root=data_root,
|
||||
data_prefix=dict(img_path=train_img_prefix2),
|
||||
ann_file=train_ann_file2,
|
||||
test_mode=False,
|
||||
pipeline=None)
|
||||
|
||||
ic15_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root=data_root,
|
||||
data_prefix=dict(img_path=train_img_prefix3),
|
||||
ann_file=train_ann_file3,
|
||||
test_mode=False,
|
||||
pipeline=None)
|
||||
|
||||
cocov1_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root=data_root,
|
||||
data_prefix=dict(img_path=train_img_prefix4),
|
||||
ann_file=train_ann_file4,
|
||||
test_mode=False,
|
||||
pipeline=None)
|
||||
|
||||
iiit5k_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root=data_root,
|
||||
data_prefix=dict(img_path=train_img_prefix5),
|
||||
ann_file=train_ann_file5,
|
||||
test_mode=False,
|
||||
pipeline=None)
|
||||
|
||||
st_add_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root=data_root,
|
||||
data_prefix=dict(img_path=train_img_prefix6),
|
||||
ann_file=train_ann_file6,
|
||||
test_mode=False,
|
||||
pipeline=None)
|
||||
|
||||
st_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root=data_root,
|
||||
data_prefix=dict(img_path=train_img_prefix7),
|
||||
ann_file=train_ann_file7,
|
||||
test_mode=False,
|
||||
pipeline=None)
|
||||
|
||||
mj_rec_trian = dict(
|
||||
type='OCRDataset',
|
||||
data_root=data_root,
|
||||
data_prefix=dict(img_path=train_img_prefix8),
|
||||
ann_file=train_ann_file8,
|
||||
test_mode=False,
|
||||
pipeline=None)
|
||||
|
||||
train_list = [
|
||||
ic13_rec_train, ic11_rec_train, ic15_rec_train, cocov1_rec_train,
|
||||
iiit5k_rec_train, st_add_rec_train, st_rec_train, mj_rec_trian
|
||||
]
|
|
@ -1,30 +0,0 @@
|
|||
# Text Recognition Training set, including:
|
||||
# Synthetic Datasets: SynthText, Syn90k
|
||||
data_root = 'data/rec'
|
||||
|
||||
mj_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root=data_root,
|
||||
data_prefix=dict(img_path='Syn90k/mnt/ramdisk/max/90kDICT32px'),
|
||||
ann_file='Syn90k/train_labels.json',
|
||||
test_mode=False,
|
||||
pipeline=None)
|
||||
|
||||
st_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root=data_root,
|
||||
data_prefix=dict(
|
||||
img_path='SynthText/synthtext/SynthText_patch_horizontal'),
|
||||
ann_file='SynthText/train_labels.json',
|
||||
test_mode=False,
|
||||
pipeline=None)
|
||||
|
||||
st_add_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root=data_root,
|
||||
data_prefix=dict(img_path='synthtext_add'),
|
||||
ann_file='synthtext_add/train_labels.json',
|
||||
test_mode=False,
|
||||
pipeline=None)
|
||||
|
||||
train_list = [mj_rec_train, st_rec_train, st_add_rec_train]
|
|
@ -1,170 +0,0 @@
|
|||
# Text Recognition Testing set, including:
|
||||
# Regular Datasets: IIIT5K, SVT, IC13
|
||||
# Irregular Datasets: IC15, SVTP, CT80
|
||||
|
||||
test_root = 'data/rec'
|
||||
|
||||
test_img_prefix1 = 'IIIT5K/'
|
||||
test_img_prefix2 = 'svt/'
|
||||
test_img_prefix3 = 'icdar_2013/Challenge2_Test_Task3_Images/'
|
||||
test_img_prefix4 = 'icdar_2015/ch4_test_word_images_gt'
|
||||
test_img_prefix5 = 'svtp/'
|
||||
test_img_prefix6 = 'ct80/'
|
||||
|
||||
test_ann_file1 = 'IIIT5K/test_labels.json'
|
||||
test_ann_file2 = 'svt/test_labels.json'
|
||||
test_ann_file3 = 'icdar_2013/test_labels.json'
|
||||
test_ann_file4 = 'icdar_2015/test_labels.json'
|
||||
test_ann_file5 = 'svtp/test_labels.json'
|
||||
test_ann_file6 = 'ct80/test_labels.json'
|
||||
|
||||
iiit5k_rec_test = dict(
|
||||
type='OCRDataset',
|
||||
data_root=test_root,
|
||||
data_prefix=dict(img_path=test_img_prefix1),
|
||||
ann_file=test_ann_file1,
|
||||
test_mode=True,
|
||||
pipeline=None)
|
||||
|
||||
svt_rec_test = dict(
|
||||
type='OCRDataset',
|
||||
data_root=test_root,
|
||||
data_prefix=dict(img_path=test_img_prefix2),
|
||||
ann_file=test_ann_file2,
|
||||
test_mode=True,
|
||||
pipeline=None)
|
||||
|
||||
ic13_rec_test = dict(
|
||||
type='OCRDataset',
|
||||
data_root=test_root,
|
||||
data_prefix=dict(img_path=test_img_prefix3),
|
||||
ann_file=test_ann_file3,
|
||||
test_mode=True,
|
||||
pipeline=None)
|
||||
|
||||
ic15_rec_test = dict(
|
||||
type='OCRDataset',
|
||||
data_root=test_root,
|
||||
data_prefix=dict(img_path=test_img_prefix4),
|
||||
ann_file=test_ann_file4,
|
||||
test_mode=True,
|
||||
pipeline=None)
|
||||
|
||||
svtp_rec_test = dict(
|
||||
type='OCRDataset',
|
||||
data_root=test_root,
|
||||
data_prefix=dict(img_path=test_img_prefix5),
|
||||
ann_file=test_ann_file5,
|
||||
test_mode=True,
|
||||
pipeline=None)
|
||||
|
||||
cute80_rec_test = dict(
|
||||
type='OCRDataset',
|
||||
data_root=test_root,
|
||||
data_prefix=dict(img_path=test_img_prefix6),
|
||||
ann_file=test_ann_file6,
|
||||
test_mode=True,
|
||||
pipeline=None)
|
||||
|
||||
iiit5k_val_dataloader = dict(
|
||||
batch_size=1,
|
||||
num_workers=4,
|
||||
persistent_workers=True,
|
||||
drop_last=False,
|
||||
sampler=dict(type='DefaultSampler', shuffle=False),
|
||||
dataset=iiit5k_rec_test)
|
||||
|
||||
svt_val_dataloader = dict(
|
||||
batch_size=1,
|
||||
num_workers=4,
|
||||
persistent_workers=True,
|
||||
drop_last=False,
|
||||
sampler=dict(type='DefaultSampler', shuffle=False),
|
||||
dataset=svt_rec_test)
|
||||
|
||||
ic13_val_dataloader = dict(
|
||||
batch_size=1,
|
||||
num_workers=4,
|
||||
persistent_workers=True,
|
||||
drop_last=False,
|
||||
sampler=dict(type='DefaultSampler', shuffle=False),
|
||||
dataset=ic13_rec_test)
|
||||
|
||||
ic15_val_dataloader = dict(
|
||||
batch_size=1,
|
||||
num_workers=4,
|
||||
persistent_workers=True,
|
||||
drop_last=False,
|
||||
sampler=dict(type='DefaultSampler', shuffle=False),
|
||||
dataset=ic15_rec_test)
|
||||
|
||||
svtp_val_dataloader = dict(
|
||||
batch_size=1,
|
||||
num_workers=4,
|
||||
persistent_workers=True,
|
||||
drop_last=False,
|
||||
sampler=dict(type='DefaultSampler', shuffle=False),
|
||||
dataset=svtp_rec_test)
|
||||
|
||||
cute80_val_dataloader = dict(
|
||||
batch_size=1,
|
||||
num_workers=4,
|
||||
persistent_workers=True,
|
||||
drop_last=False,
|
||||
sampler=dict(type='DefaultSampler', shuffle=False),
|
||||
dataset=cute80_rec_test)
|
||||
|
||||
val_dataloader = [
|
||||
iiit5k_val_dataloader, svt_val_dataloader, ic13_val_dataloader,
|
||||
ic15_val_dataloader, svtp_val_dataloader, cute80_val_dataloader
|
||||
]
|
||||
|
||||
test_dataloader = val_dataloader
|
||||
|
||||
val_evaluator = [[
|
||||
dict(
|
||||
type='WordMetric',
|
||||
mode=['exact', 'ignore_case', 'ignore_case_symbol'],
|
||||
prefix='IIIT5K'),
|
||||
dict(type='CharMetric', prefix='IIIT5K')
|
||||
],
|
||||
[
|
||||
dict(
|
||||
type='WordMetric',
|
||||
mode=['exact', 'ignore_case', 'ignore_case_symbol'],
|
||||
prefix='svt'),
|
||||
dict(type='CharMetric', prefix='svt')
|
||||
],
|
||||
[
|
||||
dict(
|
||||
type='WordMetric',
|
||||
mode=['exact', 'ignore_case', 'ignore_case_symbol'],
|
||||
prefix='icdar_2013'),
|
||||
dict(type='CharMetric', prefix='icdar_2013')
|
||||
],
|
||||
[
|
||||
dict(
|
||||
type='WordMetric',
|
||||
mode=['exact', 'ignore_case', 'ignore_case_symbol'],
|
||||
prefix='icdar_2015'),
|
||||
dict(type='CharMetric', prefix='icdar_2015')
|
||||
],
|
||||
[
|
||||
dict(
|
||||
type='WordMetric',
|
||||
mode=['exact', 'ignore_case', 'ignore_case_symbol'],
|
||||
prefix='svtp'),
|
||||
dict(type='CharMetric', prefix='svtp')
|
||||
],
|
||||
[
|
||||
dict(
|
||||
type='WordMetric',
|
||||
mode=['exact', 'ignore_case', 'ignore_case_symbol'],
|
||||
prefix='ct80'),
|
||||
dict(type='CharMetric', prefix='ct80')
|
||||
]]
|
||||
test_evaluator = val_evaluator
|
||||
test_list = [
|
||||
iiit5k_rec_test, svt_rec_test, ic13_rec_test, ic15_rec_test, svtp_rec_test,
|
||||
cute80_rec_test
|
||||
]
|
|
@ -0,0 +1,8 @@
|
|||
cocov1_rec_train_data_root = 'data/rec/coco_text_v1'
|
||||
|
||||
cocov1_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root=cocov1_rec_train_data_root,
|
||||
ann_file='train_labels.json',
|
||||
test_mode=False,
|
||||
pipeline=None)
|
|
@ -0,0 +1,8 @@
|
|||
cute80_rec_data_root = 'data/rec/ct80/'
|
||||
|
||||
cute80_rec_test = dict(
|
||||
type='OCRDataset',
|
||||
data_root=cute80_rec_data_root,
|
||||
ann_file='test_labels.json',
|
||||
test_mode=True,
|
||||
pipeline=None)
|
|
@ -0,0 +1,8 @@
|
|||
ic11_rec_data_root = 'data/rec/icdar_2011/'
|
||||
|
||||
ic11_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root=ic11_rec_data_root,
|
||||
ann_file='train_labels.json',
|
||||
test_mode=False,
|
||||
pipeline=None)
|
|
@ -0,0 +1,16 @@
|
|||
ic13_rec_data_root = 'data/rec/icdar_2013/'
|
||||
|
||||
ic13_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root=ic13_rec_data_root,
|
||||
ann_file='train_labels.json',
|
||||
test_mode=False,
|
||||
pipeline=None)
|
||||
|
||||
ic13_rec_test = dict(
|
||||
type='OCRDataset',
|
||||
data_root=ic13_rec_data_root,
|
||||
data_prefix=dict(img_path='Challenge2_Test_Task3_Images/'),
|
||||
ann_file='test_labels.json',
|
||||
test_mode=True,
|
||||
pipeline=None)
|
|
@ -0,0 +1,16 @@
|
|||
ic15_rec_data_root = 'data/rec/icdar_2015/'
|
||||
|
||||
ic15_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root=ic15_rec_data_root,
|
||||
ann_file='train_labels.json',
|
||||
test_mode=False,
|
||||
pipeline=None)
|
||||
|
||||
ic15_rec_test = dict(
|
||||
type='OCRDataset',
|
||||
data_root=ic15_rec_data_root,
|
||||
data_prefix=dict(img_path='ch4_test_word_images_gt/'),
|
||||
ann_file='test_labels.json',
|
||||
test_mode=True,
|
||||
pipeline=None)
|
|
@ -0,0 +1,15 @@
|
|||
iiit5k_rec_data_root = 'data/rec/IIIT5K/'
|
||||
|
||||
iiit5k_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root=iiit5k_rec_data_root,
|
||||
ann_file='train_labels.json',
|
||||
test_mode=False,
|
||||
pipeline=None)
|
||||
|
||||
iiit5k_rec_test = dict(
|
||||
type='OCRDataset',
|
||||
data_root=iiit5k_rec_data_root,
|
||||
ann_file='test_labels.json',
|
||||
test_mode=True,
|
||||
pipeline=None)
|
|
@ -0,0 +1,17 @@
|
|||
mj_rec_data_root = 'data/rec/'
|
||||
|
||||
mj_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root=mj_rec_data_root,
|
||||
data_prefix=dict(img_path='mnt/ramdisk/max/90kDICT32px'),
|
||||
ann_file='train_labels.json',
|
||||
test_mode=False,
|
||||
pipeline=None)
|
||||
|
||||
mj_sub_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root=mj_rec_data_root,
|
||||
data_prefix=dict(img_path='mnt/ramdisk/max/90kDICT32px'),
|
||||
ann_file='subset_train_labels.json',
|
||||
test_mode=False,
|
||||
pipeline=None)
|
|
@ -0,0 +1,8 @@
|
|||
svt_rec_data_root = 'data/rec/svt/'
|
||||
|
||||
svt_rec_test = dict(
|
||||
type='OCRDataset',
|
||||
data_root=svt_rec_data_root,
|
||||
ann_file='test_labels.json',
|
||||
test_mode=True,
|
||||
pipeline=None)
|
|
@ -0,0 +1,8 @@
|
|||
svtp_rec_data_root = 'data/rec/svtp/'
|
||||
|
||||
svtp_rec_test = dict(
|
||||
type='OCRDataset',
|
||||
data_root=svtp_rec_data_root,
|
||||
ann_file='test_labels.json',
|
||||
test_mode=True,
|
||||
pipeline=None)
|
|
@ -0,0 +1,25 @@
|
|||
st_data_root = 'data/rec/SynthText/'
|
||||
|
||||
st_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root=st_data_root,
|
||||
data_prefix=dict(img_path='synthtext/SynthText_patch_horizontal'),
|
||||
ann_file='train_labels.json',
|
||||
test_mode=False,
|
||||
pipeline=None)
|
||||
|
||||
st_an_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root=st_data_root,
|
||||
data_prefix=dict(img_path='synthtext/SynthText_patch_horizontal'),
|
||||
ann_file='alphanumeric_train_labels.json',
|
||||
test_mode=False,
|
||||
pipeline=None)
|
||||
|
||||
st_sub_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root=st_data_root,
|
||||
data_prefix=dict(img_path='synthtext/SynthText_patch_horizontal'),
|
||||
ann_file='subset_train_labels.json',
|
||||
test_mode=False,
|
||||
pipeline=None)
|
|
@ -0,0 +1,8 @@
|
|||
st_add_rec_data_root = 'data/rec/st_add/'
|
||||
|
||||
st_add_rec_train = dict(
|
||||
type='OCRDataset',
|
||||
data_root=st_add_rec_data_root,
|
||||
ann_file='train_labels.json',
|
||||
test_mode=False,
|
||||
pipeline=None)
|
|
@ -1,12 +1,22 @@
|
|||
_base_ = [
|
||||
'../../_base_/recog_datasets/ST_MJ_alphanumeric_train.py',
|
||||
'../../_base_/recog_datasets/academic_test.py',
|
||||
'../../_base_/recog_datasets/mjsynth.py',
|
||||
'../../_base_/recog_datasets/synthtext.py',
|
||||
'../../_base_/recog_datasets/cute80.py',
|
||||
'../../_base_/recog_datasets/iiit5k.py',
|
||||
'../../_base_/recog_datasets/svt.py',
|
||||
'../../_base_/recog_datasets/svtp.py',
|
||||
'../../_base_/recog_datasets/icdar2013.py',
|
||||
'../../_base_/recog_datasets/icdar2015.py',
|
||||
'../../_base_/default_runtime.py',
|
||||
'../../_base_/schedules/schedule_adam_step_20e.py',
|
||||
]
|
||||
|
||||
# dataset settings
|
||||
train_list = {{_base_.train_list}}
|
||||
train_list = [_base_.mj_rec_train, _base_.st_an_rec_train]
|
||||
test_list = [
|
||||
_base_.cute80_rec_test, _base_.iiit5k_rec_test, _base_.svt_rec_test,
|
||||
_base_.svtp_rec_test, _base_.ic13_rec_test, _base_.ic15_rec_test
|
||||
]
|
||||
file_client_args = dict(backend='disk')
|
||||
default_hooks = dict(logger=dict(type='LoggerHook', interval=100))
|
||||
|
||||
|
@ -93,13 +103,25 @@ train_dataloader = dict(
|
|||
dataset=dict(
|
||||
type='ConcatDataset', datasets=train_list, pipeline=train_pipeline))
|
||||
|
||||
visualizer = dict(type='TextRecogLocalVisualizer', name='visualizer')
|
||||
test_dataloader = dict(
|
||||
batch_size=1,
|
||||
num_workers=4,
|
||||
persistent_workers=True,
|
||||
drop_last=False,
|
||||
sampler=dict(type='DefaultSampler', shuffle=False),
|
||||
dataset=dict(
|
||||
type='ConcatDataset', datasets=test_list, pipeline=test_pipeline))
|
||||
val_dataloader = test_dataloader
|
||||
|
||||
test_cfg = dict(type='MultiTestLoop')
|
||||
val_cfg = dict(type='MultiValLoop')
|
||||
val_dataloader = _base_.val_dataloader
|
||||
test_dataloader = _base_.test_dataloader
|
||||
for dataloader in test_dataloader:
|
||||
dataloader['dataset']['pipeline'] = test_pipeline
|
||||
for dataloader in val_dataloader:
|
||||
dataloader['dataset']['pipeline'] = test_pipeline
|
||||
val_evaluator = dict(
|
||||
type='MultiDatasetsEvaluator',
|
||||
metrics=[
|
||||
dict(
|
||||
type='WordMetric',
|
||||
mode=['exact', 'ignore_case', 'ignore_case_symbol']),
|
||||
dict(type='CharMetric')
|
||||
],
|
||||
datasets_prefix=['CUTE80', 'IIIT5K', 'SVT', 'SVTP', 'IC13', 'IC15'])
|
||||
test_evaluator = val_evaluator
|
||||
|
||||
visualizer = dict(type='TextRecogLocalVisualizer', name='visualizer')
|
||||
|
|
|
@ -1,15 +1,23 @@
|
|||
# training schedule for 1x
|
||||
_base_ = [
|
||||
'crnn.py',
|
||||
'../../_base_/recog_datasets/mjsynth.py',
|
||||
'../../_base_/recog_datasets/cute80.py',
|
||||
'../../_base_/recog_datasets/iiit5k.py',
|
||||
'../../_base_/recog_datasets/svt.py',
|
||||
'../../_base_/recog_datasets/svtp.py',
|
||||
'../../_base_/recog_datasets/icdar2013.py',
|
||||
'../../_base_/recog_datasets/icdar2015.py',
|
||||
'../../_base_/default_runtime.py',
|
||||
'../../_base_/recog_datasets/MJ_train.py',
|
||||
'../../_base_/recog_datasets/academic_test.py',
|
||||
'../../_base_/schedules/schedule_adadelta_5e.py',
|
||||
'crnn.py',
|
||||
]
|
||||
|
||||
# dataset settings
|
||||
train_list = {{_base_.train_list}}
|
||||
|
||||
train_list = [_base_.mj_rec_train]
|
||||
test_list = [
|
||||
_base_.cute80_rec_test, _base_.iiit5k_rec_test, _base_.svt_rec_test,
|
||||
_base_.svtp_rec_test, _base_.ic13_rec_test, _base_.ic15_rec_test
|
||||
]
|
||||
file_client_args = dict(backend='disk')
|
||||
default_hooks = dict(logger=dict(type='LoggerHook', interval=50), )
|
||||
|
||||
|
@ -53,14 +61,25 @@ train_dataloader = dict(
|
|||
sampler=dict(type='DefaultSampler', shuffle=True),
|
||||
dataset=dict(
|
||||
type='ConcatDataset', datasets=train_list, pipeline=train_pipeline))
|
||||
test_dataloader = dict(
|
||||
batch_size=1,
|
||||
num_workers=4,
|
||||
persistent_workers=True,
|
||||
drop_last=False,
|
||||
sampler=dict(type='DefaultSampler', shuffle=False),
|
||||
dataset=dict(
|
||||
type='ConcatDataset', datasets=test_list, pipeline=test_pipeline))
|
||||
val_dataloader = test_dataloader
|
||||
|
||||
test_cfg = dict(type='MultiTestLoop')
|
||||
val_cfg = dict(type='MultiValLoop')
|
||||
val_dataloader = _base_.val_dataloader
|
||||
test_dataloader = _base_.test_dataloader
|
||||
for dataloader in test_dataloader:
|
||||
dataloader['dataset']['pipeline'] = test_pipeline
|
||||
for dataloader in val_dataloader:
|
||||
dataloader['dataset']['pipeline'] = test_pipeline
|
||||
val_evaluator = dict(
|
||||
type='MultiDatasetsEvaluator',
|
||||
metrics=[
|
||||
dict(
|
||||
type='WordMetric',
|
||||
mode=['exact', 'ignore_case', 'ignore_case_symbol']),
|
||||
dict(type='CharMetric')
|
||||
],
|
||||
datasets_prefix=['CUTE80', 'IIIT5K', 'SVT', 'SVTP', 'IC13', 'IC15'])
|
||||
test_evaluator = val_evaluator
|
||||
|
||||
visualizer = dict(type='TextRecogLocalVisualizer', name='visualizer')
|
||||
|
|
|
@ -1,13 +1,26 @@
|
|||
_base_ = [
|
||||
'master.py',
|
||||
'../../_base_/recog_datasets/ST_SA_MJ_train.py',
|
||||
'../../_base_/recog_datasets/academic_test.py',
|
||||
'../../_base_/recog_datasets/mjsynth.py',
|
||||
'../../_base_/recog_datasets/synthtext.py',
|
||||
'../../_base_/recog_datasets/synthtext_add.py',
|
||||
'../../_base_/recog_datasets/cute80.py',
|
||||
'../../_base_/recog_datasets/iiit5k.py',
|
||||
'../../_base_/recog_datasets/svt.py',
|
||||
'../../_base_/recog_datasets/svtp.py',
|
||||
'../../_base_/recog_datasets/icdar2013.py',
|
||||
'../../_base_/recog_datasets/icdar2015.py',
|
||||
'../../_base_/default_runtime.py',
|
||||
'../../_base_/schedules/schedule_adam_step_12e.py',
|
||||
'master.py',
|
||||
]
|
||||
|
||||
# dataset settings
|
||||
train_list = {{_base_.train_list}}
|
||||
train_list = [
|
||||
_base_.mj_rec_train, _base_.st_rec_train, _base_.st_add_rec_train
|
||||
]
|
||||
test_list = [
|
||||
_base_.cute80_rec_test, _base_.iiit5k_rec_test, _base_.svt_rec_test,
|
||||
_base_.svtp_rec_test, _base_.ic13_rec_test, _base_.ic15_rec_test
|
||||
]
|
||||
file_client_args = dict(backend='disk')
|
||||
default_hooks = dict(logger=dict(type='LoggerHook', interval=50), )
|
||||
|
||||
|
@ -54,14 +67,25 @@ train_dataloader = dict(
|
|||
sampler=dict(type='DefaultSampler', shuffle=True),
|
||||
dataset=dict(
|
||||
type='ConcatDataset', datasets=train_list, pipeline=train_pipeline))
|
||||
test_dataloader = dict(
|
||||
batch_size=1,
|
||||
num_workers=4,
|
||||
persistent_workers=True,
|
||||
drop_last=False,
|
||||
sampler=dict(type='DefaultSampler', shuffle=False),
|
||||
dataset=dict(
|
||||
type='ConcatDataset', datasets=test_list, pipeline=test_pipeline))
|
||||
val_dataloader = test_dataloader
|
||||
|
||||
test_cfg = dict(type='MultiTestLoop')
|
||||
val_cfg = dict(type='MultiValLoop')
|
||||
val_dataloader = _base_.val_dataloader
|
||||
test_dataloader = _base_.test_dataloader
|
||||
for dataloader in test_dataloader:
|
||||
dataloader['dataset']['pipeline'] = test_pipeline
|
||||
for dataloader in val_dataloader:
|
||||
dataloader['dataset']['pipeline'] = test_pipeline
|
||||
val_evaluator = dict(
|
||||
type='MultiDatasetsEvaluator',
|
||||
metrics=[
|
||||
dict(
|
||||
type='WordMetric',
|
||||
mode=['exact', 'ignore_case', 'ignore_case_symbol']),
|
||||
dict(type='CharMetric')
|
||||
],
|
||||
datasets_prefix=['CUTE80', 'IIIT5K', 'SVT', 'SVTP', 'IC13', 'IC15'])
|
||||
test_evaluator = val_evaluator
|
||||
|
||||
visualizer = dict(type='TextRecogLocalVisualizer', name='visualizer')
|
||||
|
|
|
@ -1,15 +1,26 @@
|
|||
_base_ = [
|
||||
'nrtr_modality_transform.py', '../../_base_/recog_datasets/ST_MJ_train.py',
|
||||
'../../_base_/recog_datasets/academic_test.py',
|
||||
'../../_base_/recog_datasets/mjsynth.py',
|
||||
'../../_base_/recog_datasets/synthtext.py',
|
||||
'../../_base_/recog_datasets/cute80.py',
|
||||
'../../_base_/recog_datasets/iiit5k.py',
|
||||
'../../_base_/recog_datasets/svt.py',
|
||||
'../../_base_/recog_datasets/svtp.py',
|
||||
'../../_base_/recog_datasets/icdar2013.py',
|
||||
'../../_base_/recog_datasets/icdar2015.py',
|
||||
'../../_base_/default_runtime.py',
|
||||
'../../_base_/schedules/schedule_adam_step_6e.py'
|
||||
'../../_base_/schedules/schedule_adam_step_6e.py',
|
||||
'nrtr_modality_transform.py',
|
||||
]
|
||||
|
||||
# optimizer settings
|
||||
optim_wrapper = dict(type='OptimWrapper', optimizer=dict(type='Adam', lr=3e-4))
|
||||
|
||||
# dataset settings
|
||||
train_list = {{_base_.train_list}}
|
||||
train_list = [_base_.mj_rec_train, _base_.st_rec_train]
|
||||
test_list = [
|
||||
_base_.cute80_rec_test, _base_.iiit5k_rec_test, _base_.svt_rec_test,
|
||||
_base_.svtp_rec_test, _base_.ic13_rec_test, _base_.ic15_rec_test
|
||||
]
|
||||
|
||||
file_client_args = dict(backend='disk')
|
||||
default_hooks = dict(logger=dict(type='LoggerHook', interval=50), )
|
||||
|
@ -58,13 +69,25 @@ train_dataloader = dict(
|
|||
dataset=dict(
|
||||
type='ConcatDataset', datasets=train_list, pipeline=train_pipeline))
|
||||
|
||||
test_cfg = dict(type='MultiTestLoop')
|
||||
val_cfg = dict(type='MultiValLoop')
|
||||
val_dataloader = _base_.val_dataloader
|
||||
test_dataloader = _base_.test_dataloader
|
||||
for dataloader in test_dataloader:
|
||||
dataloader['dataset']['pipeline'] = test_pipeline
|
||||
for dataloader in val_dataloader:
|
||||
dataloader['dataset']['pipeline'] = test_pipeline
|
||||
test_dataloader = dict(
|
||||
batch_size=1,
|
||||
num_workers=4,
|
||||
persistent_workers=True,
|
||||
drop_last=False,
|
||||
sampler=dict(type='DefaultSampler', shuffle=False),
|
||||
dataset=dict(
|
||||
type='ConcatDataset', datasets=test_list, pipeline=test_pipeline))
|
||||
val_dataloader = test_dataloader
|
||||
|
||||
val_evaluator = dict(
|
||||
type='MultiDatasetsEvaluator',
|
||||
metrics=[
|
||||
dict(
|
||||
type='WordMetric',
|
||||
mode=['exact', 'ignore_case', 'ignore_case_symbol']),
|
||||
dict(type='CharMetric')
|
||||
],
|
||||
datasets_prefix=['CUTE80', 'IIIT5K', 'SVT', 'SVTP', 'IC13', 'IC15'])
|
||||
test_evaluator = val_evaluator
|
||||
|
||||
visualizer = dict(type='TextRecogLocalVisualizer', name='visualizer')
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
_base_ = [
|
||||
'nrtr_modality_transform.py', '../../_base_/default_runtime.py',
|
||||
'../../_base_/recog_datasets/toy_data.py',
|
||||
'../../_base_/schedules/schedule_adam_step_6e.py'
|
||||
'../../_base_/default_runtime.py',
|
||||
'../../_base_/schedules/schedule_adam_step_6e.py',
|
||||
'nrtr_modality_transform.py',
|
||||
]
|
||||
|
||||
# dataset settings
|
||||
|
|
|
@ -1,15 +1,26 @@
|
|||
_base_ = [
|
||||
'nrtr_r31.py', '../../_base_/recog_datasets/ST_MJ_train.py',
|
||||
'../../_base_/recog_datasets/academic_test.py',
|
||||
'../../_base_/recog_datasets/mjsynth.py',
|
||||
'../../_base_/recog_datasets/synthtext.py',
|
||||
'../../_base_/recog_datasets/cute80.py',
|
||||
'../../_base_/recog_datasets/iiit5k.py',
|
||||
'../../_base_/recog_datasets/svt.py',
|
||||
'../../_base_/recog_datasets/svtp.py',
|
||||
'../../_base_/recog_datasets/icdar2013.py',
|
||||
'../../_base_/recog_datasets/icdar2015.py',
|
||||
'../../_base_/default_runtime.py',
|
||||
'../../_base_/schedules/schedule_adam_step_6e.py'
|
||||
'../../_base_/schedules/schedule_adam_step_6e.py',
|
||||
'nrtr_r31.py',
|
||||
]
|
||||
|
||||
# optimizer settings
|
||||
optim_wrapper = dict(type='OptimWrapper', optimizer=dict(type='Adam', lr=3e-4))
|
||||
|
||||
# dataset settings
|
||||
train_list = {{_base_.train_list}}
|
||||
train_list = [_base_.mj_rec_train, _base_.st_rec_train]
|
||||
test_list = [
|
||||
_base_.cute80_rec_test, _base_.iiit5k_rec_test, _base_.svt_rec_test,
|
||||
_base_.svtp_rec_test, _base_.ic13_rec_test, _base_.ic15_rec_test
|
||||
]
|
||||
|
||||
file_client_args = dict(backend='disk')
|
||||
default_hooks = dict(logger=dict(type='LoggerHook', interval=50))
|
||||
|
@ -58,13 +69,25 @@ train_dataloader = dict(
|
|||
dataset=dict(
|
||||
type='ConcatDataset', datasets=train_list, pipeline=train_pipeline))
|
||||
|
||||
test_cfg = dict(type='MultiTestLoop')
|
||||
val_cfg = dict(type='MultiValLoop')
|
||||
val_dataloader = _base_.val_dataloader
|
||||
test_dataloader = _base_.test_dataloader
|
||||
for dataloader in test_dataloader:
|
||||
dataloader['dataset']['pipeline'] = test_pipeline
|
||||
for dataloader in val_dataloader:
|
||||
dataloader['dataset']['pipeline'] = test_pipeline
|
||||
test_dataloader = dict(
|
||||
batch_size=1,
|
||||
num_workers=4,
|
||||
persistent_workers=True,
|
||||
drop_last=False,
|
||||
sampler=dict(type='DefaultSampler', shuffle=False),
|
||||
dataset=dict(
|
||||
type='ConcatDataset', datasets=test_list, pipeline=test_pipeline))
|
||||
val_dataloader = test_dataloader
|
||||
|
||||
val_evaluator = dict(
|
||||
type='MultiDatasetsEvaluator',
|
||||
metrics=[
|
||||
dict(
|
||||
type='WordMetric',
|
||||
mode=['exact', 'ignore_case', 'ignore_case_symbol']),
|
||||
dict(type='CharMetric')
|
||||
],
|
||||
datasets_prefix=['CUTE80', 'IIIT5K', 'SVT', 'SVTP', 'IC13', 'IC15'])
|
||||
test_evaluator = val_evaluator
|
||||
|
||||
visualizer = dict(type='TextRecogLocalVisualizer', name='visualizer')
|
||||
|
|
|
@ -1,15 +1,26 @@
|
|||
_base_ = [
|
||||
'nrtr_r31.py', '../../_base_/recog_datasets/ST_MJ_train.py',
|
||||
'../../_base_/recog_datasets/academic_test.py',
|
||||
'../../_base_/recog_datasets/mjsynth.py',
|
||||
'../../_base_/recog_datasets/synthtext.py',
|
||||
'../../_base_/recog_datasets/cute80.py',
|
||||
'../../_base_/recog_datasets/iiit5k.py',
|
||||
'../../_base_/recog_datasets/svt.py',
|
||||
'../../_base_/recog_datasets/svtp.py',
|
||||
'../../_base_/recog_datasets/icdar2013.py',
|
||||
'../../_base_/recog_datasets/icdar2015.py',
|
||||
'../../_base_/default_runtime.py',
|
||||
'../../_base_/schedules/schedule_adam_step_6e.py'
|
||||
'../../_base_/schedules/schedule_adam_step_6e.py',
|
||||
'nrtr_r31.py',
|
||||
]
|
||||
|
||||
# optimizer settings
|
||||
optim_wrapper = dict(type='OptimWrapper', optimizer=dict(type='Adam', lr=3e-4))
|
||||
|
||||
# dataset settings
|
||||
train_list = {{_base_.train_list}}
|
||||
train_list = [_base_.mj_rec_train, _base_.st_rec_train]
|
||||
test_list = [
|
||||
_base_.cute80_rec_test, _base_.iiit5k_rec_test, _base_.svt_rec_test,
|
||||
_base_.svtp_rec_test, _base_.ic13_rec_test, _base_.ic15_rec_test
|
||||
]
|
||||
|
||||
file_client_args = dict(backend='disk')
|
||||
default_hooks = dict(logger=dict(type='LoggerHook', interval=50), )
|
||||
|
@ -60,13 +71,25 @@ train_dataloader = dict(
|
|||
dataset=dict(
|
||||
type='ConcatDataset', datasets=train_list, pipeline=train_pipeline))
|
||||
|
||||
test_cfg = dict(type='MultiTestLoop')
|
||||
val_cfg = dict(type='MultiValLoop')
|
||||
val_dataloader = _base_.val_dataloader
|
||||
test_dataloader = _base_.test_dataloader
|
||||
for dataloader in test_dataloader:
|
||||
dataloader['dataset']['pipeline'] = test_pipeline
|
||||
for dataloader in val_dataloader:
|
||||
dataloader['dataset']['pipeline'] = test_pipeline
|
||||
test_dataloader = dict(
|
||||
batch_size=1,
|
||||
num_workers=4,
|
||||
persistent_workers=True,
|
||||
drop_last=False,
|
||||
sampler=dict(type='DefaultSampler', shuffle=False),
|
||||
dataset=dict(
|
||||
type='ConcatDataset', datasets=test_list, pipeline=test_pipeline))
|
||||
val_dataloader = test_dataloader
|
||||
|
||||
val_evaluator = dict(
|
||||
type='MultiDatasetsEvaluator',
|
||||
metrics=[
|
||||
dict(
|
||||
type='WordMetric',
|
||||
mode=['exact', 'ignore_case', 'ignore_case_symbol']),
|
||||
dict(type='CharMetric')
|
||||
],
|
||||
datasets_prefix=['CUTE80', 'IIIT5K', 'SVT', 'SVTP', 'IC13', 'IC15'])
|
||||
test_evaluator = val_evaluator
|
||||
|
||||
visualizer = dict(type='TextRecogLocalVisualizer', name='visualizer')
|
||||
|
|
|
@ -1,8 +1,16 @@
|
|||
_base_ = [
|
||||
'robust_scanner.py', '../../_base_/recog_datasets/ST_SA_MJ_real_train.py',
|
||||
'../../_base_/recog_datasets/academic_test.py',
|
||||
'../../_base_/recog_datasets/mjsynth.py',
|
||||
'../../_base_/recog_datasets/synthtext.py',
|
||||
'../../_base_/recog_datasets/coco_text_v1.py'
|
||||
'../../_base_/recog_datasets/cute80.py',
|
||||
'../../_base_/recog_datasets/iiit5k.py',
|
||||
'../../_base_/recog_datasets/svt.py',
|
||||
'../../_base_/recog_datasets/svtp.py',
|
||||
'../../_base_/recog_datasets/icdar2013.py',
|
||||
'../../_base_/recog_datasets/icdar2015.py',
|
||||
'../../_base_/default_runtime.py',
|
||||
'../../_base_/schedules/schedule_adam_step_5e.py'
|
||||
'../../_base_/schedules/schedule_adam_step_5e.py',
|
||||
'robust_scanner.py',
|
||||
]
|
||||
|
||||
file_client_args = dict(backend='disk')
|
||||
|
@ -45,47 +53,55 @@ test_pipeline = [
|
|||
]
|
||||
|
||||
# dataset settings
|
||||
ic11_rec_train = _base_.ic11_rec_train
|
||||
ic13_rec_train = _base_.ic13_rec_train
|
||||
ic15_rec_train = _base_.ic15_rec_train
|
||||
cocov1_rec_train = _base_.cocov1_rec_train
|
||||
iiit5k_rec_train = _base_.iiit5k_rec_train
|
||||
st_add_rec_train = _base_.st_add_rec_train
|
||||
st_rec_train = _base_.st_rec_train
|
||||
mj_rec_trian = _base_.mj_rec_trian
|
||||
train_list = [
|
||||
_base_.ic11_rec_train, _base_.ic13_rec_train, _base_.ic15_rec_train,
|
||||
_base_.cocov1_rec_train, _base_.iiit5k_rec_train, _base_.mj_sub_rec_train,
|
||||
_base_.st_sub_rec_train, _base_.st_add_rec_train
|
||||
]
|
||||
test_list = [
|
||||
_base_.cute80_rec_test, _base_.iiit5k_rec_test, _base_.svt_rec_test,
|
||||
_base_.svtp_rec_test, _base_.ic13_rec_test, _base_.ic15_rec_test
|
||||
]
|
||||
|
||||
ic11_rec_train.pipeline = test_pipeline
|
||||
ic13_rec_train.pipeline = test_pipeline
|
||||
ic15_rec_train.pipeline = test_pipeline
|
||||
cocov1_rec_train.pipeline = test_pipeline
|
||||
iiit5k_rec_train.pipeline = test_pipeline
|
||||
st_add_rec_train.pipeline = test_pipeline
|
||||
st_rec_train.pipeline = test_pipeline
|
||||
mj_rec_trian.pipeline = test_pipeline
|
||||
repeat_ic11 = dict(type='RepeatDataset', dataset=ic11_rec_train, times=20)
|
||||
repeat_ic13 = dict(type='RepeatDataset', dataset=ic13_rec_train, times=20)
|
||||
repeat_ic15 = dict(type='RepeatDataset', dataset=ic15_rec_train, times=20)
|
||||
repeat_cocov1 = dict(type='RepeatDataset', dataset=cocov1_rec_train, times=20)
|
||||
repeat_iiit5k = dict(type='RepeatDataset', dataset=iiit5k_rec_train, times=20)
|
||||
train_list = [
|
||||
dict(
|
||||
type='RepeatDataset',
|
||||
dataset=dict(
|
||||
type='ConcatDataset',
|
||||
datasets=train_list[:5],
|
||||
pipeline=train_pipeline),
|
||||
times=20),
|
||||
dict(
|
||||
type='ConcatDataset', datasets=train_list[5:],
|
||||
pipeline=train_pipeline),
|
||||
]
|
||||
|
||||
train_dataloader = dict(
|
||||
batch_size=64,
|
||||
num_workers=8,
|
||||
persistent_workers=True,
|
||||
sampler=dict(type='DefaultSampler', shuffle=True),
|
||||
dataset=dict(
|
||||
type='ConcatDataset',
|
||||
datasets=[
|
||||
repeat_ic11, repeat_ic13, repeat_ic15, repeat_cocov1,
|
||||
repeat_iiit5k, st_add_rec_train, st_rec_train, mj_rec_trian
|
||||
]))
|
||||
dataset=dict(type='ConcatDataset', datasets=train_list))
|
||||
|
||||
test_dataloader = dict(
|
||||
batch_size=1,
|
||||
num_workers=4,
|
||||
persistent_workers=True,
|
||||
drop_last=False,
|
||||
sampler=dict(type='DefaultSampler', shuffle=False),
|
||||
dataset=dict(
|
||||
type='ConcatDataset', datasets=test_list, pipeline=test_pipeline))
|
||||
val_dataloader = test_dataloader
|
||||
|
||||
val_evaluator = dict(
|
||||
type='MultiDatasetsEvaluator',
|
||||
metrics=[
|
||||
dict(
|
||||
type='WordMetric',
|
||||
mode=['exact', 'ignore_case', 'ignore_case_symbol']),
|
||||
dict(type='CharMetric')
|
||||
],
|
||||
datasets_prefix=['CUTE80', 'IIIT5K', 'SVT', 'SVTP', 'IC13', 'IC15'])
|
||||
test_evaluator = val_evaluator
|
||||
|
||||
test_cfg = dict(type='MultiTestLoop')
|
||||
val_cfg = dict(type='MultiValLoop')
|
||||
val_dataloader = _base_.val_dataloader
|
||||
test_dataloader = _base_.test_dataloader
|
||||
for dataloader in test_dataloader:
|
||||
dataloader['dataset']['pipeline'] = test_pipeline
|
||||
for dataloader in val_dataloader:
|
||||
dataloader['dataset']['pipeline'] = test_pipeline
|
||||
visualizer = dict(type='TextRecogLocalVisualizer', name='visualizer')
|
||||
|
|
|
@ -1,12 +1,18 @@
|
|||
_base_ = [
|
||||
'sar.py',
|
||||
'../../_base_/recog_datasets/ST_SA_MJ_real_train.py',
|
||||
'../../_base_/recog_datasets/academic_test.py',
|
||||
'../../_base_/recog_datasets/mjsynth.py',
|
||||
'../../_base_/recog_datasets/synthtext.py',
|
||||
'../../_base_/recog_datasets/coco_text_v1.py'
|
||||
'../../_base_/recog_datasets/cute80.py',
|
||||
'../../_base_/recog_datasets/iiit5k.py',
|
||||
'../../_base_/recog_datasets/svt.py',
|
||||
'../../_base_/recog_datasets/svtp.py',
|
||||
'../../_base_/recog_datasets/icdar2013.py',
|
||||
'../../_base_/recog_datasets/icdar2015.py',
|
||||
'../../_base_/default_runtime.py',
|
||||
'../../_base_/schedules/schedule_adam_step_5e.py',
|
||||
'sar.py',
|
||||
]
|
||||
|
||||
# dataset settings
|
||||
file_client_args = dict(backend='disk')
|
||||
default_hooks = dict(logger=dict(type='LoggerHook', interval=100))
|
||||
|
||||
|
@ -47,47 +53,54 @@ test_pipeline = [
|
|||
]
|
||||
|
||||
# dataset settings
|
||||
ic11_rec_train = _base_.ic11_rec_train
|
||||
ic13_rec_train = _base_.ic13_rec_train
|
||||
ic15_rec_train = _base_.ic15_rec_train
|
||||
cocov1_rec_train = _base_.cocov1_rec_train
|
||||
iiit5k_rec_train = _base_.iiit5k_rec_train
|
||||
st_add_rec_train = _base_.st_add_rec_train
|
||||
st_rec_train = _base_.st_rec_train
|
||||
mj_rec_trian = _base_.mj_rec_trian
|
||||
train_list = [
|
||||
_base_.ic11_rec_train, _base_.ic13_rec_train, _base_.ic15_rec_train,
|
||||
_base_.cocov1_rec_train, _base_.iiit5k_rec_train, _base_.mj_sub_rec_train,
|
||||
_base_.st_sub_rec_train, _base_.st_add_rec_train
|
||||
]
|
||||
test_list = [
|
||||
_base_.cute80_rec_test, _base_.iiit5k_rec_test, _base_.svt_rec_test,
|
||||
_base_.svtp_rec_test, _base_.ic13_rec_test, _base_.ic15_rec_test
|
||||
]
|
||||
|
||||
ic11_rec_train.pipeline = test_pipeline
|
||||
ic13_rec_train.pipeline = test_pipeline
|
||||
ic15_rec_train.pipeline = test_pipeline
|
||||
cocov1_rec_train.pipeline = test_pipeline
|
||||
iiit5k_rec_train.pipeline = test_pipeline
|
||||
st_add_rec_train.pipeline = test_pipeline
|
||||
st_rec_train.pipeline = test_pipeline
|
||||
mj_rec_trian.pipeline = test_pipeline
|
||||
repeat_ic11 = dict(type='RepeatDataset', dataset=ic11_rec_train, times=20)
|
||||
repeat_ic13 = dict(type='RepeatDataset', dataset=ic13_rec_train, times=20)
|
||||
repeat_ic15 = dict(type='RepeatDataset', dataset=ic15_rec_train, times=20)
|
||||
repeat_cocov1 = dict(type='RepeatDataset', dataset=cocov1_rec_train, times=20)
|
||||
repeat_iiit5k = dict(type='RepeatDataset', dataset=iiit5k_rec_train, times=20)
|
||||
train_list = [
|
||||
dict(
|
||||
type='RepeatDataset',
|
||||
dataset=dict(
|
||||
type='ConcatDataset',
|
||||
datasets=train_list[:5],
|
||||
pipeline=train_pipeline),
|
||||
times=20),
|
||||
dict(
|
||||
type='ConcatDataset', datasets=train_list[5:],
|
||||
pipeline=train_pipeline),
|
||||
]
|
||||
|
||||
train_dataloader = dict(
|
||||
batch_size=64,
|
||||
num_workers=8,
|
||||
persistent_workers=True,
|
||||
sampler=dict(type='DefaultSampler', shuffle=True),
|
||||
dataset=dict(type='ConcatDataset', datasets=train_list))
|
||||
test_dataloader = dict(
|
||||
batch_size=1,
|
||||
num_workers=4,
|
||||
persistent_workers=True,
|
||||
drop_last=False,
|
||||
sampler=dict(type='DefaultSampler', shuffle=False),
|
||||
dataset=dict(
|
||||
type='ConcatDataset',
|
||||
datasets=[
|
||||
repeat_ic11, repeat_ic13, repeat_ic15, repeat_cocov1,
|
||||
repeat_iiit5k, st_add_rec_train, st_rec_train, mj_rec_trian
|
||||
]))
|
||||
type='ConcatDataset', datasets=test_list, pipeline=test_pipeline))
|
||||
val_dataloader = test_dataloader
|
||||
|
||||
val_evaluator = dict(
|
||||
type='MultiDatasetsEvaluator',
|
||||
metrics=[
|
||||
dict(
|
||||
type='WordMetric',
|
||||
mode=['exact', 'ignore_case', 'ignore_case_symbol']),
|
||||
dict(type='CharMetric')
|
||||
],
|
||||
datasets_prefix=['CUTE80', 'IIIT5K', 'SVT', 'SVTP', 'IC13', 'IC15'])
|
||||
test_evaluator = val_evaluator
|
||||
|
||||
test_cfg = dict(type='MultiTestLoop')
|
||||
val_cfg = dict(type='MultiValLoop')
|
||||
val_dataloader = _base_.val_dataloader
|
||||
test_dataloader = _base_.test_dataloader
|
||||
for dataloader in test_dataloader:
|
||||
dataloader['dataset']['pipeline'] = test_pipeline
|
||||
for dataloader in val_dataloader:
|
||||
dataloader['dataset']['pipeline'] = test_pipeline
|
||||
visualizer = dict(type='TextRecogLocalVisualizer', name='visualizer')
|
||||
|
|
|
@ -1,12 +1,18 @@
|
|||
_base_ = [
|
||||
'sar.py',
|
||||
'../../_base_/recog_datasets/ST_SA_MJ_real_train.py',
|
||||
'../../_base_/recog_datasets/academic_test.py',
|
||||
'../../_base_/recog_datasets/mjsynth.py',
|
||||
'../../_base_/recog_datasets/synthtext.py',
|
||||
'../../_base_/recog_datasets/coco_text_v1.py'
|
||||
'../../_base_/recog_datasets/cute80.py',
|
||||
'../../_base_/recog_datasets/iiit5k.py',
|
||||
'../../_base_/recog_datasets/svt.py',
|
||||
'../../_base_/recog_datasets/svtp.py',
|
||||
'../../_base_/recog_datasets/icdar2013.py',
|
||||
'../../_base_/recog_datasets/icdar2015.py',
|
||||
'../../_base_/default_runtime.py',
|
||||
'../../_base_/schedules/schedule_adam_step_5e.py',
|
||||
'sar.py',
|
||||
]
|
||||
|
||||
# dataset settings
|
||||
file_client_args = dict(backend='disk')
|
||||
default_hooks = dict(logger=dict(type='LoggerHook', interval=100))
|
||||
|
||||
|
@ -47,79 +53,56 @@ test_pipeline = [
|
|||
]
|
||||
|
||||
# dataset settings
|
||||
ic11_rec_train = _base_.ic11_rec_train
|
||||
ic13_rec_train = _base_.ic13_rec_train
|
||||
ic15_rec_train = _base_.ic15_rec_train
|
||||
cocov1_rec_train = _base_.cocov1_rec_train
|
||||
iiit5k_rec_train = _base_.iiit5k_rec_train
|
||||
st_add_rec_train = _base_.st_add_rec_train
|
||||
st_rec_train = _base_.st_rec_train
|
||||
mj_rec_trian = _base_.mj_rec_trian
|
||||
train_list = [
|
||||
_base_.ic11_rec_train, _base_.ic13_rec_train, _base_.ic15_rec_train,
|
||||
_base_.cocov1_rec_train, _base_.iiit5k_rec_train, _base_.mj_sub_rec_train,
|
||||
_base_.st_sub_rec_train, _base_.st_add_rec_train
|
||||
]
|
||||
test_list = [
|
||||
_base_.cute80_rec_test, _base_.iiit5k_rec_test, _base_.svt_rec_test,
|
||||
_base_.svtp_rec_test, _base_.ic13_rec_test, _base_.ic15_rec_test
|
||||
]
|
||||
|
||||
ic11_rec_train.pipeline = train_pipeline
|
||||
ic13_rec_train.pipeline = train_pipeline
|
||||
ic15_rec_train.pipeline = train_pipeline
|
||||
cocov1_rec_train.pipeline = train_pipeline
|
||||
iiit5k_rec_train.pipeline = train_pipeline
|
||||
st_add_rec_train.pipeline = train_pipeline
|
||||
st_rec_train.pipeline = train_pipeline
|
||||
mj_rec_trian.pipeline = train_pipeline
|
||||
repeat_ic11 = dict(type='RepeatDataset', dataset=ic11_rec_train, times=20)
|
||||
repeat_ic13 = dict(type='RepeatDataset', dataset=ic13_rec_train, times=20)
|
||||
repeat_ic15 = dict(type='RepeatDataset', dataset=ic15_rec_train, times=20)
|
||||
repeat_cocov1 = dict(type='RepeatDataset', dataset=cocov1_rec_train, times=20)
|
||||
repeat_iiit5k = dict(type='RepeatDataset', dataset=iiit5k_rec_train, times=20)
|
||||
train_list = [
|
||||
dict(
|
||||
type='RepeatDataset',
|
||||
dataset=dict(
|
||||
type='ConcatDataset',
|
||||
datasets=train_list[:5],
|
||||
pipeline=train_pipeline),
|
||||
times=20),
|
||||
dict(
|
||||
type='ConcatDataset', datasets=train_list[5:],
|
||||
pipeline=train_pipeline),
|
||||
]
|
||||
|
||||
train_dataloader = dict(
|
||||
batch_size=64,
|
||||
num_workers=16,
|
||||
persistent_workers=True,
|
||||
sampler=dict(type='DefaultSampler', shuffle=True),
|
||||
dataset=dict(type='ConcatDataset', datasets=train_list))
|
||||
test_dataloader = dict(
|
||||
batch_size=1,
|
||||
num_workers=4,
|
||||
persistent_workers=True,
|
||||
drop_last=False,
|
||||
sampler=dict(type='DefaultSampler', shuffle=False),
|
||||
dataset=dict(
|
||||
type='ConcatDataset',
|
||||
datasets=[
|
||||
repeat_ic11, repeat_ic13, repeat_ic15, repeat_cocov1,
|
||||
repeat_iiit5k, st_add_rec_train, st_rec_train, mj_rec_trian
|
||||
]))
|
||||
type='ConcatDataset', datasets=test_list, pipeline=test_pipeline))
|
||||
val_dataloader = test_dataloader
|
||||
|
||||
val_evaluator = dict(
|
||||
type='MultiDatasetsEvaluator',
|
||||
metrics=[
|
||||
dict(
|
||||
type='WordMetric',
|
||||
mode=['exact', 'ignore_case', 'ignore_case_symbol']),
|
||||
dict(type='CharMetric')
|
||||
],
|
||||
datasets_prefix=['CUTE80', 'IIIT5K', 'SVT', 'SVTP', 'IC13', 'IC15'])
|
||||
test_evaluator = val_evaluator
|
||||
|
||||
test_cfg = dict(type='MultiTestLoop')
|
||||
val_cfg = dict(type='MultiValLoop')
|
||||
val_dataloader = _base_.val_dataloader
|
||||
test_dataloader = _base_.test_dataloader
|
||||
for dataloader in test_dataloader:
|
||||
dataloader['dataset']['pipeline'] = test_pipeline
|
||||
for dataloader in val_dataloader:
|
||||
dataloader['dataset']['pipeline'] = test_pipeline
|
||||
visualizer = dict(type='TextRecogLocalVisualizer', name='visualizer')
|
||||
|
||||
dictionary = dict(
|
||||
type='Dictionary',
|
||||
dict_file='dicts/english_digits_symbols.txt',
|
||||
with_start=True,
|
||||
with_end=True,
|
||||
same_start_end=True,
|
||||
with_padding=True,
|
||||
with_unknown=True)
|
||||
model = dict(
|
||||
type='SARNet',
|
||||
backbone=dict(type='ResNet31OCR'),
|
||||
encoder=dict(
|
||||
type='SAREncoder',
|
||||
enc_bi_rnn=False,
|
||||
enc_do_rnn=0.1,
|
||||
enc_gru=False,
|
||||
),
|
||||
decoder=dict(
|
||||
type='SequentialSARDecoder',
|
||||
enc_bi_rnn=False,
|
||||
dec_bi_rnn=False,
|
||||
dec_do_rnn=0,
|
||||
dec_gru=False,
|
||||
pred_dropout=0.1,
|
||||
d_k=512,
|
||||
pred_concat=True,
|
||||
postprocessor=dict(type='AttentionPostprocessor'),
|
||||
module_loss=dict(
|
||||
type='CEModuleLoss', ignore_first_char=True, reduction='mean'),
|
||||
dictionary=dictionary,
|
||||
max_seq_len=30))
|
||||
model = dict(decoder=dict(type='SequentialSARDecoder'))
|
||||
|
|
|
@ -1,13 +1,23 @@
|
|||
_base_ = [
|
||||
'satrn.py',
|
||||
'../../_base_/recog_datasets/ST_MJ_train.py',
|
||||
'../../_base_/recog_datasets/academic_test.py',
|
||||
'../../_base_/recog_datasets/mjsynth.py',
|
||||
'../../_base_/recog_datasets/synthtext.py',
|
||||
'../../_base_/recog_datasets/cute80.py',
|
||||
'../../_base_/recog_datasets/iiit5k.py',
|
||||
'../../_base_/recog_datasets/svt.py',
|
||||
'../../_base_/recog_datasets/svtp.py',
|
||||
'../../_base_/recog_datasets/icdar2013.py',
|
||||
'../../_base_/recog_datasets/icdar2015.py',
|
||||
'../../_base_/default_runtime.py',
|
||||
'../../_base_/schedules/schedule_adam_step_5e.py',
|
||||
'satrn.py',
|
||||
]
|
||||
|
||||
# dataset settings
|
||||
train_list = {{_base_.train_list}}
|
||||
train_list = [_base_.mj_rec_train, _base_.st_rec_train]
|
||||
test_list = [
|
||||
_base_.cute80_rec_test, _base_.iiit5k_rec_test, _base_.svt_rec_test,
|
||||
_base_.svtp_rec_test, _base_.ic13_rec_test, _base_.ic15_rec_test
|
||||
]
|
||||
file_client_args = dict(backend='disk')
|
||||
default_hooks = dict(logger=dict(type='LoggerHook', interval=50))
|
||||
|
||||
|
@ -73,13 +83,25 @@ train_dataloader = dict(
|
|||
sampler=dict(type='DefaultSampler', shuffle=True),
|
||||
dataset=dict(
|
||||
type='ConcatDataset', datasets=train_list, pipeline=train_pipeline))
|
||||
test_dataloader = dict(
|
||||
batch_size=1,
|
||||
num_workers=4,
|
||||
persistent_workers=True,
|
||||
drop_last=False,
|
||||
sampler=dict(type='DefaultSampler', shuffle=False),
|
||||
dataset=dict(
|
||||
type='ConcatDataset', datasets=test_list, pipeline=test_pipeline))
|
||||
val_dataloader = test_dataloader
|
||||
|
||||
val_evaluator = dict(
|
||||
type='MultiDatasetsEvaluator',
|
||||
metrics=[
|
||||
dict(
|
||||
type='WordMetric',
|
||||
mode=['exact', 'ignore_case', 'ignore_case_symbol']),
|
||||
dict(type='CharMetric')
|
||||
],
|
||||
datasets_prefix=['CUTE80', 'IIIT5K', 'SVT', 'SVTP', 'IC13', 'IC15'])
|
||||
test_evaluator = val_evaluator
|
||||
|
||||
test_cfg = dict(type='MultiTestLoop')
|
||||
val_cfg = dict(type='MultiValLoop')
|
||||
val_dataloader = _base_.val_dataloader
|
||||
test_dataloader = _base_.test_dataloader
|
||||
for dataloader in test_dataloader:
|
||||
dataloader['dataset']['pipeline'] = test_pipeline
|
||||
for dataloader in val_dataloader:
|
||||
dataloader['dataset']['pipeline'] = test_pipeline
|
||||
visualizer = dict(type='TextRecogLocalVisualizer', name='visualizer')
|
||||
|
|
Loading…
Reference in New Issue