[Fix] Fix some config errors
@ -1,15 +1,14 @@
|
|||||||
# Text Recognition Training set, including:
|
# Text Recognition Training set, including:
|
||||||
# Synthetic Datasets: Syn90k
|
# Synthetic Datasets: Syn90k
|
||||||
data_root = 'data/recog'
|
data_root = 'data/rec'
|
||||||
train_img_prefix1 = 'Syn90k/mnt/ramdisk/max/90kDICT32px'
|
train_img_prefix1 = 'Syn90k/mnt/ramdisk/max/90kDICT32px'
|
||||||
train_ann_file1 = 'Syn90k/label.json'
|
train_ann_file1 = 'Syn90k/label.json'
|
||||||
file_client_args = dict(backend='disk')
|
|
||||||
|
|
||||||
train = dict(
|
MJ = dict(
|
||||||
type='OCRDataset',
|
type='OCRDataset',
|
||||||
data_root=data_root,
|
data_root=data_root,
|
||||||
data_prefix=dict(img_path=train_img_prefix1),
|
data_prefix=dict(img_path=train_img_prefix1),
|
||||||
ann_file=train_ann_file1,
|
ann_file=train_ann_file1,
|
||||||
test_mode=False,
|
test_mode=False,
|
||||||
pipeline=None)
|
pipeline=None)
|
||||||
train_list = [train]
|
train_list = [MJ]
|
||||||
|
@ -2,12 +2,11 @@
|
|||||||
# Synthetic Datasets: SynthText, Syn90k
|
# Synthetic Datasets: SynthText, Syn90k
|
||||||
# Both annotations are filtered so that
|
# Both annotations are filtered so that
|
||||||
# only alphanumeric terms are left
|
# only alphanumeric terms are left
|
||||||
data_root = 'data/recog'
|
data_root = 'data/rec'
|
||||||
train_img_prefix1 = 'Syn90k/mnt/ramdisk/max/90kDICT32px'
|
train_img_prefix1 = 'Syn90k/mnt/ramdisk/max/90kDICT32px'
|
||||||
train_ann_file1 = 'Syn90k/label.json'
|
train_ann_file1 = 'Syn90k/label.json'
|
||||||
file_client_args = dict(backend='disk')
|
|
||||||
|
|
||||||
train1 = dict(
|
MJ = dict(
|
||||||
type='OCRDataset',
|
type='OCRDataset',
|
||||||
data_root=data_root,
|
data_root=data_root,
|
||||||
data_prefix=dict(img_path=train_img_prefix1),
|
data_prefix=dict(img_path=train_img_prefix1),
|
||||||
@ -17,9 +16,13 @@ train1 = dict(
|
|||||||
|
|
||||||
train_img_prefix2 = 'SynthText/synthtext/SynthText_patch_horizontal'
|
train_img_prefix2 = 'SynthText/synthtext/SynthText_patch_horizontal'
|
||||||
train_ann_file2 = 'SynthText/alphanumeric_label.json'
|
train_ann_file2 = 'SynthText/alphanumeric_label.json'
|
||||||
train2 = {key: value for key, value in train1.items()}
|
|
||||||
train2['data_root'] = data_root
|
|
||||||
train2['data_prefix'] = dict(img_path=train_img_prefix2),
|
|
||||||
train2['ann_file'] = dict(img_path=train_ann_file2),
|
|
||||||
|
|
||||||
train_list = [train1, train2]
|
ST = 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)
|
||||||
|
|
||||||
|
train_list = [MJ, ST]
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
# Text Recognition Training set, including:
|
# Text Recognition Training set, including:
|
||||||
# Synthetic Datasets: SynthText, Syn90k
|
# Synthetic Datasets: SynthText, Syn90k
|
||||||
|
|
||||||
data_root = 'data/recog'
|
data_root = 'data/rec'
|
||||||
|
|
||||||
train_img_prefix1 = 'Syn90k/mnt/ramdisk/max/90kDICT32px'
|
train_img_prefix1 = 'Syn90k/mnt/ramdisk/max/90kDICT32px'
|
||||||
train_ann_file1 = 'Syn90k/label.json'
|
train_ann_file1 = 'Syn90k/label.json'
|
||||||
file_client_args = dict(backend='disk')
|
file_client_args = dict(backend='disk')
|
||||||
|
|
||||||
train1 = dict(
|
MJ = dict(
|
||||||
type='OCRDataset',
|
type='OCRDataset',
|
||||||
data_root=data_root,
|
data_root=data_root,
|
||||||
data_prefix=dict(img_path=train_img_prefix1),
|
data_prefix=dict(img_path=train_img_prefix1),
|
||||||
@ -17,9 +17,13 @@ train1 = dict(
|
|||||||
|
|
||||||
train_img_prefix2 = 'SynthText/synthtext/SynthText_patch_horizontal'
|
train_img_prefix2 = 'SynthText/synthtext/SynthText_patch_horizontal'
|
||||||
train_ann_file2 = 'SynthText/label.json'
|
train_ann_file2 = 'SynthText/label.json'
|
||||||
train2 = {key: value for key, value in train1.items()}
|
|
||||||
train2['data_root'] = data_root
|
|
||||||
train2['data_prefix'] = dict(img_path=train_img_prefix2),
|
|
||||||
train2['ann_file'] = dict(img_path=train_ann_file2),
|
|
||||||
|
|
||||||
train_list = [train1, train2]
|
ST = 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)
|
||||||
|
|
||||||
|
train_list = [MJ, ST]
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Text Recognition Training set, including:
|
# Text Recognition Training set, including:
|
||||||
# Synthetic Datasets: SynthText, SynthAdd, Syn90k
|
# Synthetic Datasets: SynthText, SynthAdd, Syn90k
|
||||||
# Real Dataset: IC11, IC13, IC15, COCO-Test, IIIT5k
|
# Real Dataset: IC11, IC13, IC15, COCO-Test, IIIT5k
|
||||||
data_root = 'data/recog'
|
data_root = 'data/rec'
|
||||||
|
|
||||||
train_img_prefix1 = 'icdar_2011'
|
train_img_prefix1 = 'icdar_2011'
|
||||||
train_img_prefix2 = 'icdar_2013'
|
train_img_prefix2 = 'icdar_2013'
|
||||||
@ -9,19 +9,19 @@ train_img_prefix3 = 'icdar_2015'
|
|||||||
train_img_prefix4 = 'coco_text'
|
train_img_prefix4 = 'coco_text'
|
||||||
train_img_prefix5 = 'IIIT5K'
|
train_img_prefix5 = 'IIIT5K'
|
||||||
train_img_prefix6 = 'SynthText_Add'
|
train_img_prefix6 = 'SynthText_Add'
|
||||||
train_img_prefix7 = 'SynthText'
|
train_img_prefix7 = 'SynthText/synthtext/SynthText_patch_horizontal'
|
||||||
train_img_prefix8 = 'Syn90k'
|
train_img_prefix8 = 'Syn90k/mnt/ramdisk/max/90kDICT32px'
|
||||||
|
|
||||||
train_ann_file1 = 'icdar_2011/train_label.json',
|
train_ann_file1 = 'icdar_2011/train_label.json',
|
||||||
train_ann_file2 = 'icdar_2013/train_label.json',
|
train_ann_file2 = 'icdar_2013/train_label.json',
|
||||||
train_ann_file3 = 'icdar_2015/train_label.json',
|
train_ann_file3 = 'icdar_2015/train_label.json',
|
||||||
train_ann_file4 = 'coco_text/train_label.json',
|
train_ann_file4 = 'coco_text/train_label.json',
|
||||||
train_ann_file5 = 'IIIT5K/train_label.json',
|
train_ann_file5 = 'IIIT5K/train_label.json',
|
||||||
train_ann_file6 = 'SynthText_Add/label.json',
|
train_ann_file6 = 'SynthText_Add/train_label.json',
|
||||||
train_ann_file7 = 'SynthText/shuffle_labels.json',
|
train_ann_file7 = 'SynthText/shuffle_label.json',
|
||||||
train_ann_file8 = 'Syn90k/shuffle_labels.json'
|
train_ann_file8 = 'Syn90k/mnt/ramdisk/max/90kDICT32px/shuffle_label.json'
|
||||||
|
|
||||||
train1 = dict(
|
IC11 = dict(
|
||||||
type='OCRDataset',
|
type='OCRDataset',
|
||||||
data_root=data_root,
|
data_root=data_root,
|
||||||
data_prefix=dict(img_path=train_img_prefix1),
|
data_prefix=dict(img_path=train_img_prefix1),
|
||||||
@ -29,32 +29,60 @@ train1 = dict(
|
|||||||
test_mode=False,
|
test_mode=False,
|
||||||
pipeline=None)
|
pipeline=None)
|
||||||
|
|
||||||
train2 = {key: value for key, value in train1.items()}
|
IC13 = dict(
|
||||||
train2['data_prefix'] = dict(img_path=train_img_prefix2)
|
type='OCRDataset',
|
||||||
train2['ann_file'] = train_ann_file2
|
data_root=data_root,
|
||||||
|
data_prefix=dict(img_path=train_img_prefix2),
|
||||||
|
ann_file=train_ann_file2,
|
||||||
|
test_mode=False,
|
||||||
|
pipeline=None)
|
||||||
|
|
||||||
train3 = {key: value for key, value in train1.items()}
|
IC15 = dict(
|
||||||
train3['img_prefix'] = dict(img_path=train_img_prefix3)
|
type='OCRDataset',
|
||||||
train3['ann_file'] = train_ann_file3
|
data_root=data_root,
|
||||||
|
data_prefix=dict(img_path=train_img_prefix3),
|
||||||
|
ann_file=train_ann_file3,
|
||||||
|
test_mode=False,
|
||||||
|
pipeline=None)
|
||||||
|
|
||||||
train4 = {key: value for key, value in train1.items()}
|
COCO = dict(
|
||||||
train4['img_prefix'] = dict(img_path=train_img_prefix4)
|
type='OCRDataset',
|
||||||
train4['ann_file'] = train_ann_file4
|
data_root=data_root,
|
||||||
|
data_prefix=dict(img_path=train_img_prefix4),
|
||||||
|
ann_file=train_ann_file4,
|
||||||
|
test_mode=False,
|
||||||
|
pipeline=None)
|
||||||
|
|
||||||
train5 = {key: value for key, value in train1.items()}
|
IIIT5K = dict(
|
||||||
train5['img_prefix'] = dict(img_path=train_img_prefix5)
|
type='OCRDataset',
|
||||||
train5['ann_file'] = train_ann_file5
|
data_root=data_root,
|
||||||
|
data_prefix=dict(img_path=train_img_prefix5),
|
||||||
|
ann_file=train_ann_file5,
|
||||||
|
test_mode=False,
|
||||||
|
pipeline=None)
|
||||||
|
|
||||||
train6 = {key: value for key, value in train1.items()}
|
STADD = dict(
|
||||||
train6['img_prefix'] = dict(img_path=train_img_prefix6)
|
type='OCRDataset',
|
||||||
train6['ann_file'] = train_ann_file6
|
data_root=data_root,
|
||||||
|
data_prefix=dict(img_path=train_img_prefix6),
|
||||||
|
ann_file=train_ann_file6,
|
||||||
|
test_mode=False,
|
||||||
|
pipeline=None)
|
||||||
|
|
||||||
train7 = {key: value for key, value in train1.items()}
|
ST = dict(
|
||||||
train7['img_prefix'] = dict(img_path=train_img_prefix7)
|
type='OCRDataset',
|
||||||
train7['ann_file'] = train_ann_file7
|
data_root=data_root,
|
||||||
|
data_prefix=dict(img_path=train_img_prefix7),
|
||||||
|
ann_file=train_ann_file7,
|
||||||
|
test_mode=False,
|
||||||
|
pipeline=None)
|
||||||
|
|
||||||
train8 = {key: value for key, value in train1.items()}
|
MJ = dict(
|
||||||
train8['img_prefix'] = dict(img_path=train_img_prefix8)
|
type='OCRDataset',
|
||||||
train8['ann_file'] = train_ann_file8
|
data_root=data_root,
|
||||||
|
data_prefix=dict(img_path=train_img_prefix8),
|
||||||
|
ann_file=train_ann_file8,
|
||||||
|
test_mode=False,
|
||||||
|
pipeline=None)
|
||||||
|
|
||||||
train_list = [train1, train2, train3, train4, train5, train6, train7, train8]
|
train_list = [IC13, IC11, IC15, COCO, IIIT5K, STADD, ST, MJ]
|
||||||
|
@ -1,17 +1,10 @@
|
|||||||
# Text Recognition Training set, including:
|
# Text Recognition Training set, including:
|
||||||
# Synthetic Datasets: SynthText, Syn90k
|
# Synthetic Datasets: SynthText, Syn90k
|
||||||
data_root = 'data/recog'
|
data_root = 'data/rec'
|
||||||
|
train_img_prefix1 = 'Syn90k/mnt/ramdisk/max/90kDICT32px'
|
||||||
|
train_ann_file1 = 'Syn90k/label.json'
|
||||||
|
|
||||||
train_img_prefix1 = 'SynthText_Add'
|
MJ = dict(
|
||||||
train_img_prefix2 = 'SynthText/synthtext/' + \
|
|
||||||
'SynthText_patch_horizontal'
|
|
||||||
train_img_prefix3 = 'Syn90k/mnt/ramdisk/max/90kDICT32px'
|
|
||||||
|
|
||||||
train_ann_file1 = 'SynthText_Add/label.json',
|
|
||||||
train_ann_file2 = 'SynthText/label.json',
|
|
||||||
train_ann_file3 = 'Syn90k/label.json'
|
|
||||||
|
|
||||||
train1 = dict(
|
|
||||||
type='OCRDataset',
|
type='OCRDataset',
|
||||||
data_root=data_root,
|
data_root=data_root,
|
||||||
data_prefix=dict(img_path=train_img_prefix1),
|
data_prefix=dict(img_path=train_img_prefix1),
|
||||||
@ -19,12 +12,27 @@ train1 = dict(
|
|||||||
test_mode=False,
|
test_mode=False,
|
||||||
pipeline=None)
|
pipeline=None)
|
||||||
|
|
||||||
train2 = {key: value for key, value in train1.items()}
|
train_img_prefix2 = 'SynthText/synthtext/' + \
|
||||||
train2['data_prefix'] = dict(img_path=train_img_prefix2)
|
'SynthText_patch_horizontal'
|
||||||
train2['ann_file'] = train_ann_file2
|
train_ann_file2 = 'SynthText/label.json',
|
||||||
|
|
||||||
train3 = {key: value for key, value in train1.items()}
|
ST = dict(
|
||||||
train3['img_prefix'] = dict(img_path=train_img_prefix3)
|
type='OCRDataset',
|
||||||
train3['ann_file'] = train_ann_file3
|
data_root=data_root,
|
||||||
|
data_prefix=dict(img_path=train_img_prefix2),
|
||||||
|
ann_file=train_ann_file2,
|
||||||
|
test_mode=False,
|
||||||
|
pipeline=None)
|
||||||
|
|
||||||
train_list = [train1, train2, train3]
|
train_img_prefix3 = 'SynthText_Add'
|
||||||
|
train_ann_file3 = 'SynthText_Add/label.json'
|
||||||
|
|
||||||
|
STADD = 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)
|
||||||
|
|
||||||
|
train_list = [MJ, ST, STADD]
|
||||||
|
@ -2,23 +2,23 @@
|
|||||||
# Regular Datasets: IIIT5K, SVT, IC13
|
# Regular Datasets: IIIT5K, SVT, IC13
|
||||||
# Irregular Datasets: IC15, SVTP, CT80
|
# Irregular Datasets: IC15, SVTP, CT80
|
||||||
|
|
||||||
test_root = 'data/recog'
|
test_root = 'data/rec'
|
||||||
|
|
||||||
test_img_prefix1 = 'IIIT5K/'
|
test_img_prefix1 = 'IIIT5K/'
|
||||||
test_img_prefix2 = 'svt/'
|
test_img_prefix2 = 'svt/'
|
||||||
test_img_prefix3 = 'icdar_2013/'
|
test_img_prefix3 = 'icdar_2013/Challenge2_Test_Task3_Images/'
|
||||||
test_img_prefix4 = 'icdar_2015/'
|
test_img_prefix4 = 'icdar_2015/ch4_test_word_images_gt'
|
||||||
test_img_prefix5 = 'svtp/'
|
test_img_prefix5 = 'svtp/'
|
||||||
test_img_prefix6 = 'ct80/'
|
test_img_prefix6 = 'ct80/'
|
||||||
|
|
||||||
test_ann_file1 = 'IIIT5K/test_label.josn'
|
test_ann_file1 = 'IIIT5K/test_label.json'
|
||||||
test_ann_file2 = 'svt/test_label.josn'
|
test_ann_file2 = 'svt/test_label.json'
|
||||||
test_ann_file3 = 'icdar_2013/test_label_1015.josn'
|
test_ann_file3 = 'icdar_2013/test_label.json'
|
||||||
test_ann_file4 = 'icdar_2015/test_label.josn'
|
test_ann_file4 = 'icdar_2015/test_label.json'
|
||||||
test_ann_file5 = 'svtp/test_label.josn'
|
test_ann_file5 = 'svtp/test_label.json'
|
||||||
test_ann_file6 = 'ct80/test_label.josn'
|
test_ann_file6 = 'ct80/test_label.json'
|
||||||
|
|
||||||
test1 = dict(
|
IIIT5K = dict(
|
||||||
type='OCRDataset',
|
type='OCRDataset',
|
||||||
data_root=test_root,
|
data_root=test_root,
|
||||||
data_prefix=dict(img_path=test_img_prefix1),
|
data_prefix=dict(img_path=test_img_prefix1),
|
||||||
@ -26,24 +26,44 @@ test1 = dict(
|
|||||||
test_mode=True,
|
test_mode=True,
|
||||||
pipeline=None)
|
pipeline=None)
|
||||||
|
|
||||||
test2 = {key: value for key, value in test1.items()}
|
SVT = dict(
|
||||||
test2['data_prefix'] = dict(img_path=test_img_prefix2)
|
type='OCRDataset',
|
||||||
test2['ann_file'] = test_ann_file2
|
data_root=test_root,
|
||||||
|
data_prefix=dict(img_path=test_img_prefix2),
|
||||||
|
ann_file=test_ann_file2,
|
||||||
|
test_mode=True,
|
||||||
|
pipeline=None)
|
||||||
|
|
||||||
test3 = {key: value for key, value in test1.items()}
|
IC13 = dict(
|
||||||
test3['data_prefix'] = dict(img_path=test_img_prefix3)
|
type='OCRDataset',
|
||||||
test3['ann_file'] = test_ann_file3
|
data_root=test_root,
|
||||||
|
data_prefix=dict(img_path=test_img_prefix3),
|
||||||
|
ann_file=test_ann_file3,
|
||||||
|
test_mode=True,
|
||||||
|
pipeline=None)
|
||||||
|
|
||||||
test4 = {key: value for key, value in test1.items()}
|
IC15 = dict(
|
||||||
test4['data_prefix'] = dict(img_path=test_img_prefix4)
|
type='OCRDataset',
|
||||||
test4['ann_file'] = test_ann_file4
|
data_root=test_root,
|
||||||
|
data_prefix=dict(img_path=test_img_prefix4),
|
||||||
|
ann_file=test_ann_file4,
|
||||||
|
test_mode=True,
|
||||||
|
pipeline=None)
|
||||||
|
|
||||||
test5 = {key: value for key, value in test1.items()}
|
SVTP = dict(
|
||||||
test5['data_prefix'] = dict(img_path=test_img_prefix5)
|
type='OCRDataset',
|
||||||
test5['ann_file'] = test_ann_file5
|
data_root=test_root,
|
||||||
|
data_prefix=dict(img_path=test_img_prefix5),
|
||||||
|
ann_file=test_ann_file5,
|
||||||
|
test_mode=True,
|
||||||
|
pipeline=None)
|
||||||
|
|
||||||
test6 = {key: value for key, value in test1.items()}
|
CUTE80 = dict(
|
||||||
test6['data_prefix'] = dict(img_path=test_img_prefix6)
|
type='OCRDataset',
|
||||||
test6['ann_file'] = test_ann_file6
|
data_root=test_root,
|
||||||
|
data_prefix=dict(img_path=test_img_prefix6),
|
||||||
|
ann_file=test_ann_file6,
|
||||||
|
test_mode=True,
|
||||||
|
pipeline=None)
|
||||||
|
|
||||||
test_list = [test1, test2, test3, test4, test5, test6]
|
test_list = [IIIT5K, SVT, IC13, IC15, SVTP, CUTE80]
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
data_root = 'tests/data/recog_toy_dataset'
|
data_root = 'tests/data/rec_toy_dataset'
|
||||||
train_img_prefix = 'imgs/'
|
train_img_prefix = 'imgs/'
|
||||||
train_anno_file = 'label.json'
|
train_anno_file = 'label.json'
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
_base_ = [
|
_base_ = [
|
||||||
'fcenet_r50_fpn.py',
|
'fcenet_r50dcnv2_fpn.py',
|
||||||
'../../_base_/det_datasets/ctw1500.py',
|
'../../_base_/det_datasets/ctw1500.py',
|
||||||
'../../_base_/default_runtime.py',
|
'../../_base_/default_runtime.py',
|
||||||
'../../_base_/schedules/schedule_sgd_1500e.py',
|
'../../_base_/schedules/schedule_sgd_1500e.py',
|
||||||
|
@ -44,7 +44,7 @@ test_pipeline = [
|
|||||||
|
|
||||||
train_dataloader = dict(
|
train_dataloader = dict(
|
||||||
batch_size=512,
|
batch_size=512,
|
||||||
num_workers=8,
|
num_workers=4,
|
||||||
persistent_workers=True,
|
persistent_workers=True,
|
||||||
sampler=dict(type='DefaultSampler', shuffle=True),
|
sampler=dict(type='DefaultSampler', shuffle=True),
|
||||||
dataset=dict(
|
dataset=dict(
|
||||||
|
@ -45,8 +45,8 @@ test_pipeline = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
train_dataloader = dict(
|
train_dataloader = dict(
|
||||||
batch_size=256,
|
batch_size=384,
|
||||||
num_workers=2,
|
num_workers=32,
|
||||||
persistent_workers=True,
|
persistent_workers=True,
|
||||||
sampler=dict(type='DefaultSampler', shuffle=True),
|
sampler=dict(type='DefaultSampler', shuffle=True),
|
||||||
dataset=dict(
|
dataset=dict(
|
||||||
@ -54,7 +54,7 @@ train_dataloader = dict(
|
|||||||
|
|
||||||
val_dataloader = dict(
|
val_dataloader = dict(
|
||||||
batch_size=128,
|
batch_size=128,
|
||||||
num_workers=2,
|
num_workers=4,
|
||||||
persistent_workers=True,
|
persistent_workers=True,
|
||||||
drop_last=False,
|
drop_last=False,
|
||||||
sampler=dict(type='DefaultSampler', shuffle=False),
|
sampler=dict(type='DefaultSampler', shuffle=False),
|
||||||
|
@ -40,16 +40,16 @@ test_pipeline = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
train_dataloader = dict(
|
train_dataloader = dict(
|
||||||
batch_size=256,
|
batch_size=8,
|
||||||
num_workers=2,
|
num_workers=4,
|
||||||
persistent_workers=True,
|
persistent_workers=True,
|
||||||
sampler=dict(type='DefaultSampler', shuffle=True),
|
sampler=dict(type='DefaultSampler', shuffle=True),
|
||||||
dataset=dict(
|
dataset=dict(
|
||||||
type='ConcatDataset', datasets=train_list, pipeline=test_pipeline))
|
type='ConcatDataset', datasets=train_list, pipeline=test_pipeline))
|
||||||
|
|
||||||
val_dataloader = dict(
|
val_dataloader = dict(
|
||||||
batch_size=128,
|
batch_size=1,
|
||||||
num_workers=2,
|
num_workers=4,
|
||||||
persistent_workers=True,
|
persistent_workers=True,
|
||||||
drop_last=False,
|
drop_last=False,
|
||||||
sampler=dict(type='DefaultSampler', shuffle=False),
|
sampler=dict(type='DefaultSampler', shuffle=False),
|
||||||
|
30
configs/textrecog/nrtr/nrtr_r31.py
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
dictionary = dict(
|
||||||
|
type='Dictionary',
|
||||||
|
dict_file='dicts/english_digits_symbols.txt',
|
||||||
|
with_padding=True,
|
||||||
|
with_unknown=True,
|
||||||
|
same_start_end=True,
|
||||||
|
with_start=True,
|
||||||
|
with_end=True)
|
||||||
|
|
||||||
|
model = dict(
|
||||||
|
type='NRTR',
|
||||||
|
backbone=dict(
|
||||||
|
type='ResNet31OCR',
|
||||||
|
layers=[1, 2, 5, 3],
|
||||||
|
channels=[32, 64, 128, 256, 512, 512],
|
||||||
|
stage4_pool_cfg=dict(kernel_size=(2, 1), stride=(2, 1)),
|
||||||
|
last_stage_pool=True),
|
||||||
|
encoder=dict(type='NRTREncoder'),
|
||||||
|
decoder=dict(
|
||||||
|
type='NRTRDecoder',
|
||||||
|
module_loss=dict(
|
||||||
|
type='CEModuleLoss', ignore_first_char=True, flatten=True),
|
||||||
|
postprocessor=dict(type='AttentionPostprocessor'),
|
||||||
|
dictionary=dictionary,
|
||||||
|
max_seq_len=30,
|
||||||
|
),
|
||||||
|
data_preprocessor=dict(
|
||||||
|
type='TextRecogDataPreprocessor',
|
||||||
|
mean=[123.675, 116.28, 103.53],
|
||||||
|
std=[58.395, 57.12, 57.375]))
|
@ -1,5 +1,5 @@
|
|||||||
_base_ = [
|
_base_ = [
|
||||||
'../../_base_/recog_datasets/ST_MJ_train.py',
|
'nrtr_r31.py', '../../_base_/recog_datasets/ST_MJ_train.py',
|
||||||
'../../_base_/recog_datasets/academic_test.py',
|
'../../_base_/recog_datasets/academic_test.py',
|
||||||
'../../_base_/default_runtime.py',
|
'../../_base_/default_runtime.py',
|
||||||
'../../_base_/schedules/schedule_adam_step_6e.py'
|
'../../_base_/schedules/schedule_adam_step_6e.py'
|
||||||
@ -13,34 +13,6 @@ test_list = {{_base_.test_list}}
|
|||||||
file_client_args = dict(backend='disk')
|
file_client_args = dict(backend='disk')
|
||||||
default_hooks = dict(logger=dict(type='LoggerHook', interval=100))
|
default_hooks = dict(logger=dict(type='LoggerHook', interval=100))
|
||||||
|
|
||||||
dictionary = dict(
|
|
||||||
type='Dictionary',
|
|
||||||
dict_file='dicts/english_digits_symbols.txt',
|
|
||||||
with_padding=True,
|
|
||||||
with_unknown=True,
|
|
||||||
same_start_end=True,
|
|
||||||
with_start=True,
|
|
||||||
with_end=True)
|
|
||||||
|
|
||||||
model = dict(
|
|
||||||
type='NRTR',
|
|
||||||
backbone=dict(
|
|
||||||
type='ResNet31OCR',
|
|
||||||
layers=[1, 2, 5, 3],
|
|
||||||
channels=[32, 64, 128, 256, 512, 512],
|
|
||||||
stage4_pool_cfg=dict(kernel_size=(2, 1), stride=(2, 1)),
|
|
||||||
last_stage_pool=True),
|
|
||||||
encoder=dict(type='NRTREncoder'),
|
|
||||||
decoder=dict(
|
|
||||||
type='NRTRDecoder',
|
|
||||||
module_loss=dict(
|
|
||||||
type='CEModuleLoss', ignore_first_char=True, flatten=True),
|
|
||||||
postprocessor=dict(type='AttentionPostprocessor')),
|
|
||||||
dictionary=dictionary,
|
|
||||||
max_seq_len=30,
|
|
||||||
preprocess_cfg=dict(
|
|
||||||
mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375]))
|
|
||||||
|
|
||||||
train_pipeline = [
|
train_pipeline = [
|
||||||
dict(type='LoadImageFromFile', file_client_args=file_client_args),
|
dict(type='LoadImageFromFile', file_client_args=file_client_args),
|
||||||
dict(type='LoadOCRAnnotations', with_text=True),
|
dict(type='LoadOCRAnnotations', with_text=True),
|
||||||
@ -72,8 +44,8 @@ test_pipeline = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
train_dataloader = dict(
|
train_dataloader = dict(
|
||||||
batch_size=256,
|
batch_size=384,
|
||||||
num_workers=2,
|
num_workers=32,
|
||||||
persistent_workers=True,
|
persistent_workers=True,
|
||||||
sampler=dict(type='DefaultSampler', shuffle=True),
|
sampler=dict(type='DefaultSampler', shuffle=True),
|
||||||
dataset=dict(
|
dataset=dict(
|
||||||
@ -81,7 +53,7 @@ train_dataloader = dict(
|
|||||||
|
|
||||||
val_dataloader = dict(
|
val_dataloader = dict(
|
||||||
batch_size=128,
|
batch_size=128,
|
||||||
num_workers=2,
|
num_workers=4,
|
||||||
persistent_workers=True,
|
persistent_workers=True,
|
||||||
drop_last=False,
|
drop_last=False,
|
||||||
sampler=dict(type='DefaultSampler', shuffle=False),
|
sampler=dict(type='DefaultSampler', shuffle=False),
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
_base_ = [
|
_base_ = [
|
||||||
'../../_base_/recog_datasets/ST_MJ_train.py',
|
'nrtr_r31.py', '../../_base_/recog_datasets/ST_MJ_train.py',
|
||||||
'../../_base_/recog_datasets/academic_test.py',
|
'../../_base_/recog_datasets/academic_test.py',
|
||||||
'../../_base_/default_runtime.py',
|
'../../_base_/default_runtime.py',
|
||||||
'../../_base_/schedules/schedule_adam_step_6e.py'
|
'../../_base_/schedules/schedule_adam_step_6e.py'
|
||||||
@ -14,33 +14,7 @@ test_list = {{_base_.test_list}}
|
|||||||
file_client_args = dict(backend='disk')
|
file_client_args = dict(backend='disk')
|
||||||
default_hooks = dict(logger=dict(type='LoggerHook', interval=100))
|
default_hooks = dict(logger=dict(type='LoggerHook', interval=100))
|
||||||
|
|
||||||
dictionary = dict(
|
model = dict(backbone=dict(last_stage_pool=False))
|
||||||
type='Dictionary',
|
|
||||||
dict_file='dicts/english_digits_symbols.txt',
|
|
||||||
with_padding=True,
|
|
||||||
with_unknown=True,
|
|
||||||
same_start_end=True,
|
|
||||||
with_start=True,
|
|
||||||
with_end=True)
|
|
||||||
|
|
||||||
model = dict(
|
|
||||||
type='NRTR',
|
|
||||||
backbone=dict(
|
|
||||||
type='ResNet31OCR',
|
|
||||||
layers=[1, 2, 5, 3],
|
|
||||||
channels=[32, 64, 128, 256, 512, 512],
|
|
||||||
stage4_pool_cfg=dict(kernel_size=(2, 1), stride=(2, 1)),
|
|
||||||
last_stage_pool=False),
|
|
||||||
encoder=dict(type='NRTREncoder'),
|
|
||||||
decoder=dict(
|
|
||||||
type='NRTRDecoder',
|
|
||||||
module_loss=dict(
|
|
||||||
type='CEModuleLoss', ignore_first_char=True, flatten=True),
|
|
||||||
postprocessor=dict(type='AttentionPostprocessor')),
|
|
||||||
dictionary=dictionary,
|
|
||||||
max_seq_len=30,
|
|
||||||
preprocess_cfg=dict(
|
|
||||||
mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375]))
|
|
||||||
|
|
||||||
train_pipeline = [
|
train_pipeline = [
|
||||||
dict(type='LoadImageFromFile', file_client_args=file_client_args),
|
dict(type='LoadImageFromFile', file_client_args=file_client_args),
|
||||||
@ -73,8 +47,8 @@ test_pipeline = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
train_dataloader = dict(
|
train_dataloader = dict(
|
||||||
batch_size=256,
|
batch_size=384,
|
||||||
num_workers=2,
|
num_workers=32,
|
||||||
persistent_workers=True,
|
persistent_workers=True,
|
||||||
sampler=dict(type='DefaultSampler', shuffle=True),
|
sampler=dict(type='DefaultSampler', shuffle=True),
|
||||||
dataset=dict(
|
dataset=dict(
|
||||||
@ -82,7 +56,7 @@ train_dataloader = dict(
|
|||||||
|
|
||||||
val_dataloader = dict(
|
val_dataloader = dict(
|
||||||
batch_size=128,
|
batch_size=128,
|
||||||
num_workers=2,
|
num_workers=4,
|
||||||
persistent_workers=True,
|
persistent_workers=True,
|
||||||
drop_last=False,
|
drop_last=False,
|
||||||
sampler=dict(type='DefaultSampler', shuffle=False),
|
sampler=dict(type='DefaultSampler', shuffle=False),
|
||||||
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
@ -28,7 +28,7 @@ class TestRecogLMDBDataset(TestCase):
|
|||||||
|
|
||||||
# test initialization
|
# test initialization
|
||||||
dataset = RecogLMDBDataset(
|
dataset = RecogLMDBDataset(
|
||||||
ann_file='tests/data/recog_toy_dataset/label.lmdb',
|
ann_file='tests/data/rec_toy_dataset/label.lmdb',
|
||||||
data_prefix=dict(img_path='imgs'),
|
data_prefix=dict(img_path='imgs'),
|
||||||
pipeline=[])
|
pipeline=[])
|
||||||
dataset.full_init()
|
dataset.full_init()
|
||||||
@ -44,7 +44,7 @@ class TestRecogLMDBDataset(TestCase):
|
|||||||
|
|
||||||
# test initialization
|
# test initialization
|
||||||
dataset = RecogLMDBDataset(
|
dataset = RecogLMDBDataset(
|
||||||
ann_file='tests/data/recog_toy_dataset/imgs.lmdb',
|
ann_file='tests/data/rec_toy_dataset/imgs.lmdb',
|
||||||
data_prefix=dict(img_path='imgs'),
|
data_prefix=dict(img_path='imgs'),
|
||||||
pipeline=[])
|
pipeline=[])
|
||||||
dataset.full_init()
|
dataset.full_init()
|
||||||
|
@ -10,7 +10,7 @@ class TestRecogTextDataset(TestCase):
|
|||||||
|
|
||||||
# test initialization
|
# test initialization
|
||||||
dataset = RecogTextDataset(
|
dataset = RecogTextDataset(
|
||||||
ann_file='tests/data/recog_toy_dataset/old_label.txt',
|
ann_file='tests/data/rec_toy_dataset/old_label.txt',
|
||||||
data_prefix=dict(img_path='imgs'),
|
data_prefix=dict(img_path='imgs'),
|
||||||
parser_cfg=dict(
|
parser_cfg=dict(
|
||||||
type='LineStrParser',
|
type='LineStrParser',
|
||||||
@ -30,7 +30,7 @@ class TestRecogTextDataset(TestCase):
|
|||||||
|
|
||||||
def test_jsonl_dataset(self):
|
def test_jsonl_dataset(self):
|
||||||
dataset = RecogTextDataset(
|
dataset = RecogTextDataset(
|
||||||
ann_file='tests/data/recog_toy_dataset/old_label.jsonl',
|
ann_file='tests/data/rec_toy_dataset/old_label.jsonl',
|
||||||
data_prefix=dict(img_path='imgs'),
|
data_prefix=dict(img_path='imgs'),
|
||||||
parser_cfg=dict(type='LineJsonParser', keys=['filename', 'text']),
|
parser_cfg=dict(type='LineJsonParser', keys=['filename', 'text']),
|
||||||
pipeline=[])
|
pipeline=[])
|
||||||
|
@ -142,12 +142,12 @@ class TestLoadImageFromLMDB(TestCase):
|
|||||||
def setUp(self):
|
def setUp(self):
|
||||||
img_key = 'image-%09d' % 1
|
img_key = 'image-%09d' % 1
|
||||||
self.results1 = {
|
self.results1 = {
|
||||||
'img_path': f'tests/data/recog_toy_dataset/imgs.lmdb/{img_key}'
|
'img_path': f'tests/data/rec_toy_dataset/imgs.lmdb/{img_key}'
|
||||||
}
|
}
|
||||||
|
|
||||||
img_key = 'image-%09d' % 100
|
img_key = 'image-%09d' % 100
|
||||||
self.results2 = {
|
self.results2 = {
|
||||||
'img_path': f'tests/data/recog_toy_dataset/imgs.lmdb/{img_key}'
|
'img_path': f'tests/data/rec_toy_dataset/imgs.lmdb/{img_key}'
|
||||||
}
|
}
|
||||||
|
|
||||||
def test_transform(self):
|
def test_transform(self):
|
||||||
|