[Config] recog dataset config refactor ()

pull/1285/head
liukuikun 2022-08-16 16:32:50 +08:00 committed by GitHub
parent 792cb26924
commit 1978075577
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
28 changed files with 538 additions and 582 deletions

View File

@ -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]

View File

@ -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]

View File

@ -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]

View File

@ -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
]

View File

@ -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]

View File

@ -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
]

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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')

View File

@ -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')

View File

@ -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')

View File

@ -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')

View File

@ -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

View File

@ -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')

View File

@ -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')

View File

@ -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')

View File

@ -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')

View File

@ -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'))

View File

@ -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')