|
default_scope = 'mmocr' |
|
env_cfg = dict( |
|
cudnn_benchmark=True, |
|
mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0), |
|
dist_cfg=dict(backend='nccl')) |
|
randomness = dict(seed=None) |
|
default_hooks = dict( |
|
timer=dict(type='IterTimerHook'), |
|
logger=dict(type='LoggerHook', interval=100), |
|
param_scheduler=dict(type='ParamSchedulerHook'), |
|
checkpoint=dict(type='CheckpointHook', interval=1), |
|
sampler_seed=dict(type='DistSamplerSeedHook'), |
|
sync_buffer=dict(type='SyncBuffersHook'), |
|
visualization=dict( |
|
type='VisualizationHook', |
|
interval=1, |
|
enable=False, |
|
show=False, |
|
draw_gt=False, |
|
draw_pred=False)) |
|
log_level = 'INFO' |
|
log_processor = dict(type='LogProcessor', window_size=10, by_epoch=True) |
|
load_from = './model.pth' |
|
resume = False |
|
val_evaluator = dict( |
|
type='Evaluator', |
|
metrics=[ |
|
dict( |
|
type='WordMetric', |
|
mode=['exact', 'ignore_case', 'ignore_case_symbol'], |
|
valid_symbol='[^A-Z^a-z^0-9^一-龥^å^ä^ö^Å^Ä^Ö]'), |
|
dict(type='CharMetric', valid_symbol='[^A-Z^a-z^0-9^一-龥^å^ä^ö^Å^Ä^Ö]'), |
|
dict( |
|
type='OneMinusNEDMetric', |
|
valid_symbol='[^A-Z^a-z^0-9^一-龥^å^ä^ö^Å^Ä^Ö]') |
|
]) |
|
test_evaluator = dict( |
|
type='Evaluator', |
|
metrics=[ |
|
dict( |
|
type='WordMetric', |
|
mode=['exact', 'ignore_case', 'ignore_case_symbol'], |
|
valid_symbol='[^A-Z^a-z^0-9^一-龥^å^ä^ö^Å^Ä^Ö]'), |
|
dict(type='CharMetric', valid_symbol='[^A-Z^a-z^0-9^一-龥^å^ä^ö^Å^Ä^Ö]'), |
|
dict( |
|
type='OneMinusNEDMetric', |
|
valid_symbol='[^A-Z^a-z^0-9^一-龥^å^ä^ö^Å^Ä^Ö]') |
|
]) |
|
vis_backends = [dict(type='LocalVisBackend')] |
|
visualizer = dict( |
|
type='TextRecogLocalVisualizer', |
|
name='visualizer', |
|
vis_backends=[dict(type='TensorboardVisBackend')]) |
|
optim_wrapper = dict( |
|
type='OptimWrapper', optimizer=dict(type='Adam', lr=0.0003)) |
|
train_cfg = dict(type='EpochBasedTrainLoop', max_epochs=5, val_interval=1) |
|
val_cfg = dict(type='ValLoop') |
|
test_cfg = dict(type='TestLoop') |
|
param_scheduler = [dict(type='MultiStepLR', milestones=[3, 4], end=5)] |
|
file_client_args = dict(backend='disk') |
|
dictionary = dict( |
|
type='Dictionary', |
|
dict_file= |
|
'./models--Riksarkivet--HTR_pipeline_models/snapshots/296681baf68583f07e89b5fed08136b77e3904cd/SATRN/dict1700.txt', |
|
with_padding=True, |
|
with_unknown=True, |
|
same_start_end=True, |
|
with_start=True, |
|
with_end=True) |
|
model = dict( |
|
type='SATRN', |
|
backbone=dict(type='ShallowCNN', input_channels=3, hidden_dim=512), |
|
encoder=dict( |
|
type='SATRNEncoder', |
|
n_layers=12, |
|
n_head=8, |
|
d_k=64, |
|
d_v=64, |
|
d_model=512, |
|
n_position=100, |
|
d_inner=2048, |
|
dropout=0.1), |
|
decoder=dict( |
|
type='NRTRDecoder', |
|
n_layers=6, |
|
d_embedding=512, |
|
n_head=8, |
|
d_model=512, |
|
d_inner=2048, |
|
d_k=64, |
|
d_v=64, |
|
module_loss=dict( |
|
type='CEModuleLoss', flatten=True, ignore_first_char=True), |
|
dictionary=dict( |
|
type='Dictionary', |
|
dict_file= |
|
'./models--Riksarkivet--HTR_pipeline_models/snapshots/296681baf68583f07e89b5fed08136b77e3904cd/SATRN/dict1700.txt', |
|
with_padding=True, |
|
with_unknown=True, |
|
same_start_end=True, |
|
with_start=True, |
|
with_end=True), |
|
max_seq_len=100, |
|
postprocessor=dict(type='AttentionPostprocessor')), |
|
data_preprocessor=dict( |
|
type='TextRecogDataPreprocessor', |
|
mean=[123.675, 116.28, 103.53], |
|
std=[58.395, 57.12, 57.375])) |
|
train_pipeline = [ |
|
dict( |
|
type='LoadImageFromFile', |
|
file_client_args=dict(backend='disk'), |
|
ignore_empty=True, |
|
min_size=2), |
|
dict(type='LoadOCRAnnotations', with_text=True), |
|
dict(type='Resize', scale=(400, 64), keep_ratio=False), |
|
dict( |
|
type='PackTextRecogInputs', |
|
meta_keys=('img_path', 'ori_shape', 'img_shape', 'valid_ratio')) |
|
] |
|
test_pipeline = [ |
|
dict(type='LoadImageFromFile', file_client_args=dict(backend='disk')), |
|
dict(type='Resize', scale=(400, 64), keep_ratio=False), |
|
dict(type='LoadOCRAnnotations', with_text=True), |
|
dict( |
|
type='PackTextRecogInputs', |
|
meta_keys=('img_path', 'ori_shape', 'img_shape', 'valid_ratio')) |
|
] |
|
HTR_1700_combined_train = dict( |
|
type='RecogTextDataset', |
|
parser_cfg=dict(type='LineJsonParser', keys=['filename', 'text']), |
|
data_root='/ceph/hpc/scratch/user/euerikl/data/HTR_1700_clean', |
|
ann_file= |
|
'/ceph/hpc/home/euerikl/projects/hf_openmmlab_models/data/processed/1700_HTR_shuffled_train.jsonl', |
|
test_mode=False, |
|
pipeline=None) |
|
HTR_1700_combined_test = dict( |
|
type='RecogTextDataset', |
|
parser_cfg=dict(type='LineJsonParser', keys=['filename', 'text']), |
|
data_root='/ceph/hpc/scratch/user/euerikl/data/HTR_1700_clean', |
|
ann_file= |
|
'/ceph/hpc/home/euerikl/projects/hf_openmmlab_models/data/processed/1700_HTR_shuffled_val.jsonl', |
|
test_mode=True, |
|
pipeline=None) |
|
pr_cr_combined_train = dict( |
|
type='RecogTextDataset', |
|
parser_cfg=dict( |
|
type='LineStrParser', keys=['filename', 'text'], separator='|'), |
|
data_root='/ceph/hpc/scratch/user/euerikl/data/line_images', |
|
ann_file= |
|
'/ceph/hpc/home/euerikl/projects/htr_1800/gt_files/combined_train.txt', |
|
test_mode=False, |
|
pipeline=None) |
|
pr_cr_combined_test = dict( |
|
type='RecogTextDataset', |
|
parser_cfg=dict( |
|
type='LineStrParser', keys=['filename', 'text'], separator='|'), |
|
data_root='/ceph/hpc/scratch/user/euerikl/data/line_images', |
|
ann_file= |
|
'/ceph/hpc/home/euerikl/projects/htr_1800/gt_files/combined_eval.txt', |
|
test_mode=True, |
|
pipeline=None) |
|
out_of_domain_1700_all_test = dict( |
|
type='RecogTextDataset', |
|
parser_cfg=dict(type='LineJsonParser', keys=['filename', 'text']), |
|
data_root='/ceph/hpc/scratch/user/euerikl/data/HTR_1700_testsets_clean', |
|
ann_file= |
|
'/ceph/hpc/home/euerikl/projects/hf_openmmlab_models/data/processed/1700_testsets_gt/1700_HTR_testsets_all.jsonl', |
|
test_mode=True, |
|
pipeline=None) |
|
train_list = [ |
|
dict( |
|
type='RecogTextDataset', |
|
parser_cfg=dict(type='LineJsonParser', keys=['filename', 'text']), |
|
data_root='/ceph/hpc/scratch/user/euerikl/data/HTR_1700_clean', |
|
ann_file= |
|
'/ceph/hpc/home/euerikl/projects/hf_openmmlab_models/data/processed/1700_HTR_shuffled_train.jsonl', |
|
test_mode=False, |
|
pipeline=None), |
|
dict( |
|
type='RecogTextDataset', |
|
parser_cfg=dict( |
|
type='LineStrParser', keys=['filename', 'text'], separator='|'), |
|
data_root='/ceph/hpc/scratch/user/euerikl/data/line_images', |
|
ann_file= |
|
'/ceph/hpc/home/euerikl/projects/htr_1800/gt_files/combined_train.txt', |
|
test_mode=False, |
|
pipeline=None) |
|
] |
|
test_list = [ |
|
dict( |
|
type='RecogTextDataset', |
|
parser_cfg=dict(type='LineJsonParser', keys=['filename', 'text']), |
|
data_root='/ceph/hpc/scratch/user/euerikl/data/HTR_1700_testsets_clean', |
|
ann_file= |
|
'/ceph/hpc/home/euerikl/projects/hf_openmmlab_models/data/processed/1700_testsets_gt/1700_HTR_testsets_all.jsonl', |
|
test_mode=True, |
|
pipeline=None) |
|
] |
|
train_dataset = dict( |
|
type='ConcatDataset', |
|
datasets=[ |
|
dict( |
|
type='RecogTextDataset', |
|
parser_cfg=dict(type='LineJsonParser', keys=['filename', 'text']), |
|
data_root='/ceph/hpc/scratch/user/euerikl/data/HTR_1700_clean', |
|
ann_file= |
|
'/ceph/hpc/home/euerikl/projects/hf_openmmlab_models/data/processed/1700_HTR_shuffled_train.jsonl', |
|
test_mode=False, |
|
pipeline=None), |
|
dict( |
|
type='RecogTextDataset', |
|
parser_cfg=dict( |
|
type='LineStrParser', keys=['filename', 'text'], |
|
separator='|'), |
|
data_root='/ceph/hpc/scratch/user/euerikl/data/line_images', |
|
ann_file= |
|
'/ceph/hpc/home/euerikl/projects/htr_1800/gt_files/combined_train.txt', |
|
test_mode=False, |
|
pipeline=None) |
|
], |
|
pipeline=[ |
|
dict( |
|
type='LoadImageFromFile', |
|
file_client_args=dict(backend='disk'), |
|
ignore_empty=True, |
|
min_size=2), |
|
dict(type='LoadOCRAnnotations', with_text=True), |
|
dict(type='Resize', scale=(400, 64), keep_ratio=False), |
|
dict( |
|
type='PackTextRecogInputs', |
|
meta_keys=('img_path', 'ori_shape', 'img_shape', 'valid_ratio')) |
|
]) |
|
test_dataset = dict( |
|
type='ConcatDataset', |
|
datasets=[ |
|
dict( |
|
type='RecogTextDataset', |
|
parser_cfg=dict(type='LineJsonParser', keys=['filename', 'text']), |
|
data_root= |
|
'/ceph/hpc/scratch/user/euerikl/data/HTR_1700_testsets_clean', |
|
ann_file= |
|
'/ceph/hpc/home/euerikl/projects/hf_openmmlab_models/data/processed/1700_testsets_gt/1700_HTR_testsets_all.jsonl', |
|
test_mode=True, |
|
pipeline=None) |
|
], |
|
pipeline=[ |
|
dict(type='LoadImageFromFile', file_client_args=dict(backend='disk')), |
|
dict(type='Resize', scale=(400, 64), keep_ratio=False), |
|
dict(type='LoadOCRAnnotations', with_text=True), |
|
dict( |
|
type='PackTextRecogInputs', |
|
meta_keys=('img_path', 'ori_shape', 'img_shape', 'valid_ratio')) |
|
]) |
|
train_dataloader = dict( |
|
batch_size=8, |
|
num_workers=1, |
|
persistent_workers=True, |
|
sampler=dict(type='DefaultSampler', shuffle=True), |
|
dataset=dict( |
|
type='ConcatDataset', |
|
datasets=[ |
|
dict( |
|
type='RecogTextDataset', |
|
parser_cfg=dict( |
|
type='LineJsonParser', keys=['filename', 'text']), |
|
data_root='/ceph/hpc/scratch/user/euerikl/data/HTR_1700_clean', |
|
ann_file= |
|
'/ceph/hpc/home/euerikl/projects/hf_openmmlab_models/data/processed/1700_HTR_shuffled_train.jsonl', |
|
test_mode=False, |
|
pipeline=None), |
|
dict( |
|
type='RecogTextDataset', |
|
parser_cfg=dict( |
|
type='LineStrParser', |
|
keys=['filename', 'text'], |
|
separator='|'), |
|
data_root='/ceph/hpc/scratch/user/euerikl/data/line_images', |
|
ann_file= |
|
'/ceph/hpc/home/euerikl/projects/htr_1800/gt_files/combined_train.txt', |
|
test_mode=False, |
|
pipeline=None) |
|
], |
|
pipeline=[ |
|
dict( |
|
type='LoadImageFromFile', |
|
file_client_args=dict(backend='disk'), |
|
ignore_empty=True, |
|
min_size=2), |
|
dict(type='LoadOCRAnnotations', with_text=True), |
|
dict(type='Resize', scale=(400, 64), keep_ratio=False), |
|
dict( |
|
type='PackTextRecogInputs', |
|
meta_keys=('img_path', 'ori_shape', 'img_shape', |
|
'valid_ratio')) |
|
])) |
|
test_dataloader = dict( |
|
batch_size=8, |
|
num_workers=1, |
|
persistent_workers=True, |
|
drop_last=False, |
|
sampler=dict(type='DefaultSampler', shuffle=False), |
|
dataset=dict( |
|
type='ConcatDataset', |
|
datasets=[ |
|
dict( |
|
type='RecogTextDataset', |
|
parser_cfg=dict( |
|
type='LineJsonParser', keys=['filename', 'text']), |
|
data_root= |
|
'/ceph/hpc/scratch/user/euerikl/data/HTR_1700_testsets_clean', |
|
ann_file= |
|
'/ceph/hpc/home/euerikl/projects/hf_openmmlab_models/data/processed/1700_testsets_gt/1700_HTR_testsets_all.jsonl', |
|
test_mode=True, |
|
pipeline=None) |
|
], |
|
pipeline=[ |
|
dict( |
|
type='LoadImageFromFile', |
|
file_client_args=dict(backend='disk')), |
|
dict(type='Resize', scale=(400, 64), keep_ratio=False), |
|
dict(type='LoadOCRAnnotations', with_text=True), |
|
dict( |
|
type='PackTextRecogInputs', |
|
meta_keys=('img_path', 'ori_shape', 'img_shape', |
|
'valid_ratio')) |
|
])) |
|
val_dataloader = dict( |
|
batch_size=8, |
|
num_workers=1, |
|
persistent_workers=True, |
|
drop_last=False, |
|
sampler=dict(type='DefaultSampler', shuffle=False), |
|
dataset=dict( |
|
type='ConcatDataset', |
|
datasets=[ |
|
dict( |
|
type='RecogTextDataset', |
|
parser_cfg=dict( |
|
type='LineJsonParser', keys=['filename', 'text']), |
|
data_root= |
|
'/ceph/hpc/scratch/user/euerikl/data/HTR_1700_testsets_clean', |
|
ann_file= |
|
'/ceph/hpc/home/euerikl/projects/hf_openmmlab_models/data/processed/1700_testsets_gt/1700_HTR_testsets_all.jsonl', |
|
test_mode=True, |
|
pipeline=None) |
|
], |
|
pipeline=[ |
|
dict( |
|
type='LoadImageFromFile', |
|
file_client_args=dict(backend='disk')), |
|
dict(type='Resize', scale=(400, 64), keep_ratio=False), |
|
dict(type='LoadOCRAnnotations', with_text=True), |
|
dict( |
|
type='PackTextRecogInputs', |
|
meta_keys=('img_path', 'ori_shape', 'img_shape', |
|
'valid_ratio')) |
|
])) |
|
gpu_ids = range(0, 4) |
|
cudnn_benchmark = True |
|
work_dir = '/ceph/hpc/home/euerikl/projects/hf_openmmlab_models/models/checkpoints/1700_1800_combined_satrn' |
|
checkpoint_config = dict(interval=1) |
|
auto_scale_lr = dict(base_batch_size=32) |
|
launcher = 'pytorch' |
|
|