Spaces:
Build error
Build error
napatswift
commited on
Commit
·
f8610ca
1
Parent(s):
b650184
Add files
Browse files- Dockerfile +27 -0
- main.py +0 -0
- model/20230224_051330.log +755 -0
- model/config.py +259 -0
- model/epoch_20.pth +3 -0
- model/epoch_40.pth +3 -0
- requirements.txt +7 -0
Dockerfile
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
FROM python:3.9
|
2 |
+
|
3 |
+
WORKDIR /code
|
4 |
+
|
5 |
+
COPY ./requirements.txt /code/requirements.txt
|
6 |
+
|
7 |
+
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
|
8 |
+
|
9 |
+
RUN mim install mmengine
|
10 |
+
RUN mim install 'mmcv>=2.0.0rc1'
|
11 |
+
RUN mim install 'mmdet>=3.0.0rc0'
|
12 |
+
|
13 |
+
# Set up a new user named "user" with user ID 1000
|
14 |
+
RUN useradd -m -u 1000 user
|
15 |
+
# Switch to the "user" user
|
16 |
+
USER user
|
17 |
+
# Set home to the user's home directory
|
18 |
+
ENV HOME=/home/user \
|
19 |
+
PATH=/home/user/.local/bin:$PATH
|
20 |
+
|
21 |
+
# Set the working directory to the user's home directory
|
22 |
+
WORKDIR $HOME/app
|
23 |
+
|
24 |
+
# Copy the current directory contents into the container at $HOME/app setting the owner to the user
|
25 |
+
COPY --chown=user . $HOME/app
|
26 |
+
|
27 |
+
CMD ["python", "main.py"]
|
main.py
ADDED
File without changes
|
model/20230224_051330.log
ADDED
@@ -0,0 +1,755 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
2023/02/24 05:13:32 - mmengine - INFO -
|
2 |
+
------------------------------------------------------------
|
3 |
+
System environment:
|
4 |
+
sys.platform: linux
|
5 |
+
Python: 3.8.10 (default, Nov 14 2022, 12:59:47) [GCC 9.4.0]
|
6 |
+
CUDA available: True
|
7 |
+
numpy_random_seed: 1569491978
|
8 |
+
GPU 0: Tesla T4
|
9 |
+
CUDA_HOME: /usr/local/cuda
|
10 |
+
NVCC: Cuda compilation tools, release 11.6, V11.6.124
|
11 |
+
GCC: x86_64-linux-gnu-gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
|
12 |
+
PyTorch: 1.13.1+cu116
|
13 |
+
PyTorch compiling details: PyTorch built with:
|
14 |
+
- GCC 9.3
|
15 |
+
- C++ Version: 201402
|
16 |
+
- Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
|
17 |
+
- Intel(R) MKL-DNN v2.6.0 (Git Hash 52b5f107dd9cf10910aaa19cb47f3abf9b349815)
|
18 |
+
- OpenMP 201511 (a.k.a. OpenMP 4.5)
|
19 |
+
- LAPACK is enabled (usually provided by MKL)
|
20 |
+
- NNPACK is enabled
|
21 |
+
- CPU capability usage: AVX2
|
22 |
+
- CUDA Runtime 11.6
|
23 |
+
- NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86
|
24 |
+
- CuDNN 8.3.2 (built against CUDA 11.5)
|
25 |
+
- Magma 2.6.1
|
26 |
+
- Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=11.6, CUDNN_VERSION=8.3.2, CXX_COMPILER=/opt/rh/devtoolset-9/root/usr/bin/c++, CXX_FLAGS= -fabi-version=11 -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_KINETO -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -DEDGE_PROFILER_USE_KINETO -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Werror=non-virtual-dtor -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wunused-local-typedefs -Wno-unused-parameter -Wno-unused-function -Wno-unused-result -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Werror=cast-function-type -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=1.13.1, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON, USE_ROCM=OFF,
|
27 |
+
|
28 |
+
TorchVision: 0.14.1+cu116
|
29 |
+
OpenCV: 4.6.0
|
30 |
+
MMEngine: 0.5.0
|
31 |
+
|
32 |
+
Runtime environment:
|
33 |
+
cudnn_benchmark: True
|
34 |
+
mp_cfg: {'mp_start_method': 'fork', 'opencv_num_threads': 0}
|
35 |
+
dist_cfg: {'backend': 'nccl'}
|
36 |
+
seed: None
|
37 |
+
Distributed launcher: none
|
38 |
+
Distributed training: False
|
39 |
+
GPU number: 1
|
40 |
+
------------------------------------------------------------
|
41 |
+
|
42 |
+
2023/02/24 05:13:33 - mmengine - INFO - Config:
|
43 |
+
file_client_args = dict(backend='disk')
|
44 |
+
model = dict(
|
45 |
+
type='DBNet',
|
46 |
+
backbone=dict(
|
47 |
+
type='mmdet.ResNet',
|
48 |
+
depth=18,
|
49 |
+
num_stages=4,
|
50 |
+
out_indices=(0, 1, 2, 3),
|
51 |
+
frozen_stages=-1,
|
52 |
+
norm_cfg=dict(type='BN', requires_grad=True),
|
53 |
+
init_cfg=dict(type='Pretrained', checkpoint='torchvision://resnet18'),
|
54 |
+
norm_eval=False,
|
55 |
+
style='caffe'),
|
56 |
+
neck=dict(
|
57 |
+
type='FPNC', in_channels=[64, 128, 256, 512], lateral_channels=256),
|
58 |
+
det_head=dict(
|
59 |
+
type='DBHead',
|
60 |
+
in_channels=256,
|
61 |
+
module_loss=dict(type='DBModuleLoss'),
|
62 |
+
postprocessor=dict(type='DBPostprocessor', text_repr_type='quad')),
|
63 |
+
data_preprocessor=dict(
|
64 |
+
type='TextDetDataPreprocessor',
|
65 |
+
mean=[123.675, 116.28, 103.53],
|
66 |
+
std=[58.395, 57.12, 57.375],
|
67 |
+
bgr_to_rgb=True,
|
68 |
+
pad_size_divisor=32))
|
69 |
+
train_pipeline = [
|
70 |
+
dict(
|
71 |
+
type='LoadImageFromFile',
|
72 |
+
file_client_args=dict(backend='disk'),
|
73 |
+
color_type='color_ignore_orientation'),
|
74 |
+
dict(
|
75 |
+
type='LoadOCRAnnotations',
|
76 |
+
with_polygon=True,
|
77 |
+
with_bbox=True,
|
78 |
+
with_label=True),
|
79 |
+
dict(
|
80 |
+
type='TorchVisionWrapper',
|
81 |
+
op='ColorJitter',
|
82 |
+
brightness=0.12549019607843137,
|
83 |
+
saturation=0.5),
|
84 |
+
dict(
|
85 |
+
type='ImgAugWrapper',
|
86 |
+
args=[['Fliplr', 0.5], {
|
87 |
+
'cls': 'Affine',
|
88 |
+
'rotate': [-10, 10]
|
89 |
+
}, ['Resize', [0.5, 3.0]]]),
|
90 |
+
dict(type='RandomCrop', min_side_ratio=0.1),
|
91 |
+
dict(type='Resize', scale=(640, 640), keep_ratio=True),
|
92 |
+
dict(type='Pad', size=(640, 640)),
|
93 |
+
dict(
|
94 |
+
type='PackTextDetInputs',
|
95 |
+
meta_keys=('img_path', 'ori_shape', 'img_shape'))
|
96 |
+
]
|
97 |
+
test_pipeline = [
|
98 |
+
dict(
|
99 |
+
type='LoadImageFromFile',
|
100 |
+
file_client_args=dict(backend='disk'),
|
101 |
+
color_type='color_ignore_orientation'),
|
102 |
+
dict(type='Resize', scale=(1333, 736), keep_ratio=True),
|
103 |
+
dict(
|
104 |
+
type='LoadOCRAnnotations',
|
105 |
+
with_polygon=True,
|
106 |
+
with_bbox=True,
|
107 |
+
with_label=True),
|
108 |
+
dict(
|
109 |
+
type='PackTextDetInputs',
|
110 |
+
meta_keys=('img_path', 'ori_shape', 'img_shape', 'scale_factor'))
|
111 |
+
]
|
112 |
+
icdar2015_textdet_data_root = 'data/det/textdet-thvote'
|
113 |
+
icdar2015_textdet_train = dict(
|
114 |
+
type='OCRDataset',
|
115 |
+
data_root='data/det/textdet-thvote',
|
116 |
+
ann_file='textdet_train.json',
|
117 |
+
data_prefix=dict(img_path='imgs/'),
|
118 |
+
filter_cfg=dict(filter_empty_gt=True, min_size=32),
|
119 |
+
pipeline=[
|
120 |
+
dict(
|
121 |
+
type='LoadImageFromFile',
|
122 |
+
file_client_args=dict(backend='disk'),
|
123 |
+
color_type='color_ignore_orientation'),
|
124 |
+
dict(
|
125 |
+
type='LoadOCRAnnotations',
|
126 |
+
with_polygon=True,
|
127 |
+
with_bbox=True,
|
128 |
+
with_label=True),
|
129 |
+
dict(
|
130 |
+
type='TorchVisionWrapper',
|
131 |
+
op='ColorJitter',
|
132 |
+
brightness=0.12549019607843137,
|
133 |
+
saturation=0.5),
|
134 |
+
dict(
|
135 |
+
type='ImgAugWrapper',
|
136 |
+
args=[['Fliplr', 0.5], {
|
137 |
+
'cls': 'Affine',
|
138 |
+
'rotate': [-10, 10]
|
139 |
+
}, ['Resize', [0.5, 3.0]]]),
|
140 |
+
dict(type='RandomCrop', min_side_ratio=0.1),
|
141 |
+
dict(type='Resize', scale=(640, 640), keep_ratio=True),
|
142 |
+
dict(type='Pad', size=(640, 640)),
|
143 |
+
dict(
|
144 |
+
type='PackTextDetInputs',
|
145 |
+
meta_keys=('img_path', 'ori_shape', 'img_shape'))
|
146 |
+
])
|
147 |
+
icdar2015_textdet_test = dict(
|
148 |
+
type='OCRDataset',
|
149 |
+
data_root='data/det/textdet-thvote',
|
150 |
+
ann_file='textdet_test.json',
|
151 |
+
data_prefix=dict(img_path='imgs/'),
|
152 |
+
test_mode=True,
|
153 |
+
pipeline=[
|
154 |
+
dict(
|
155 |
+
type='LoadImageFromFile',
|
156 |
+
file_client_args=dict(backend='disk'),
|
157 |
+
color_type='color_ignore_orientation'),
|
158 |
+
dict(type='Resize', scale=(1333, 736), keep_ratio=True),
|
159 |
+
dict(
|
160 |
+
type='LoadOCRAnnotations',
|
161 |
+
with_polygon=True,
|
162 |
+
with_bbox=True,
|
163 |
+
with_label=True),
|
164 |
+
dict(
|
165 |
+
type='PackTextDetInputs',
|
166 |
+
meta_keys=('img_path', 'ori_shape', 'img_shape', 'scale_factor'))
|
167 |
+
])
|
168 |
+
default_scope = 'mmocr'
|
169 |
+
env_cfg = dict(
|
170 |
+
cudnn_benchmark=True,
|
171 |
+
mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
|
172 |
+
dist_cfg=dict(backend='nccl'))
|
173 |
+
randomness = dict(seed=None)
|
174 |
+
default_hooks = dict(
|
175 |
+
timer=dict(type='IterTimerHook'),
|
176 |
+
logger=dict(type='LoggerHook', interval=5),
|
177 |
+
param_scheduler=dict(type='ParamSchedulerHook'),
|
178 |
+
checkpoint=dict(type='CheckpointHook', interval=20),
|
179 |
+
sampler_seed=dict(type='DistSamplerSeedHook'),
|
180 |
+
sync_buffer=dict(type='SyncBuffersHook'),
|
181 |
+
visualization=dict(
|
182 |
+
type='VisualizationHook',
|
183 |
+
interval=1,
|
184 |
+
enable=False,
|
185 |
+
show=False,
|
186 |
+
draw_gt=False,
|
187 |
+
draw_pred=False))
|
188 |
+
log_level = 'INFO'
|
189 |
+
log_processor = dict(type='LogProcessor', window_size=10, by_epoch=True)
|
190 |
+
load_from = None
|
191 |
+
resume = False
|
192 |
+
val_evaluator = dict(type='HmeanIOUMetric')
|
193 |
+
test_evaluator = dict(type='HmeanIOUMetric')
|
194 |
+
vis_backends = [dict(type='LocalVisBackend')]
|
195 |
+
visualizer = dict(
|
196 |
+
type='TextDetLocalVisualizer',
|
197 |
+
name='visualizer',
|
198 |
+
vis_backends=[dict(type='LocalVisBackend')])
|
199 |
+
optim_wrapper = dict(
|
200 |
+
type='OptimWrapper',
|
201 |
+
optimizer=dict(type='SGD', lr=0.007, momentum=0.9, weight_decay=0.0001))
|
202 |
+
train_cfg = dict(type='EpochBasedTrainLoop', max_epochs=1200, val_interval=20)
|
203 |
+
val_cfg = dict(type='ValLoop')
|
204 |
+
test_cfg = dict(type='TestLoop')
|
205 |
+
param_scheduler = [dict(type='PolyLR', power=0.9, eta_min=1e-07, end=1200)]
|
206 |
+
train_dataloader = dict(
|
207 |
+
batch_size=16,
|
208 |
+
num_workers=8,
|
209 |
+
persistent_workers=True,
|
210 |
+
sampler=dict(type='DefaultSampler', shuffle=True),
|
211 |
+
dataset=dict(
|
212 |
+
type='OCRDataset',
|
213 |
+
data_root='data/det/textdet-thvote',
|
214 |
+
ann_file='textdet_train.json',
|
215 |
+
data_prefix=dict(img_path='imgs/'),
|
216 |
+
filter_cfg=dict(filter_empty_gt=True, min_size=32),
|
217 |
+
pipeline=[
|
218 |
+
dict(
|
219 |
+
type='LoadImageFromFile',
|
220 |
+
file_client_args=dict(backend='disk'),
|
221 |
+
color_type='color_ignore_orientation'),
|
222 |
+
dict(
|
223 |
+
type='LoadOCRAnnotations',
|
224 |
+
with_polygon=True,
|
225 |
+
with_bbox=True,
|
226 |
+
with_label=True),
|
227 |
+
dict(
|
228 |
+
type='TorchVisionWrapper',
|
229 |
+
op='ColorJitter',
|
230 |
+
brightness=0.12549019607843137,
|
231 |
+
saturation=0.5),
|
232 |
+
dict(
|
233 |
+
type='ImgAugWrapper',
|
234 |
+
args=[['Fliplr', 0.5], {
|
235 |
+
'cls': 'Affine',
|
236 |
+
'rotate': [-10, 10]
|
237 |
+
}, ['Resize', [0.5, 3.0]]]),
|
238 |
+
dict(type='RandomCrop', min_side_ratio=0.1),
|
239 |
+
dict(type='Resize', scale=(640, 640), keep_ratio=True),
|
240 |
+
dict(type='Pad', size=(640, 640)),
|
241 |
+
dict(
|
242 |
+
type='PackTextDetInputs',
|
243 |
+
meta_keys=('img_path', 'ori_shape', 'img_shape'))
|
244 |
+
]))
|
245 |
+
val_dataloader = dict(
|
246 |
+
batch_size=1,
|
247 |
+
num_workers=4,
|
248 |
+
persistent_workers=True,
|
249 |
+
sampler=dict(type='DefaultSampler', shuffle=False),
|
250 |
+
dataset=dict(
|
251 |
+
type='OCRDataset',
|
252 |
+
data_root='data/det/textdet-thvote',
|
253 |
+
ann_file='textdet_test.json',
|
254 |
+
data_prefix=dict(img_path='imgs/'),
|
255 |
+
test_mode=True,
|
256 |
+
pipeline=[
|
257 |
+
dict(
|
258 |
+
type='LoadImageFromFile',
|
259 |
+
file_client_args=dict(backend='disk'),
|
260 |
+
color_type='color_ignore_orientation'),
|
261 |
+
dict(type='Resize', scale=(1333, 736), keep_ratio=True),
|
262 |
+
dict(
|
263 |
+
type='LoadOCRAnnotations',
|
264 |
+
with_polygon=True,
|
265 |
+
with_bbox=True,
|
266 |
+
with_label=True),
|
267 |
+
dict(
|
268 |
+
type='PackTextDetInputs',
|
269 |
+
meta_keys=('img_path', 'ori_shape', 'img_shape',
|
270 |
+
'scale_factor'))
|
271 |
+
]))
|
272 |
+
test_dataloader = dict(
|
273 |
+
batch_size=1,
|
274 |
+
num_workers=4,
|
275 |
+
persistent_workers=True,
|
276 |
+
sampler=dict(type='DefaultSampler', shuffle=False),
|
277 |
+
dataset=dict(
|
278 |
+
type='OCRDataset',
|
279 |
+
data_root='data/det/textdet-thvote',
|
280 |
+
ann_file='textdet_test.json',
|
281 |
+
data_prefix=dict(img_path='imgs/'),
|
282 |
+
test_mode=True,
|
283 |
+
pipeline=[
|
284 |
+
dict(
|
285 |
+
type='LoadImageFromFile',
|
286 |
+
file_client_args=dict(backend='disk'),
|
287 |
+
color_type='color_ignore_orientation'),
|
288 |
+
dict(type='Resize', scale=(1333, 736), keep_ratio=True),
|
289 |
+
dict(
|
290 |
+
type='LoadOCRAnnotations',
|
291 |
+
with_polygon=True,
|
292 |
+
with_bbox=True,
|
293 |
+
with_label=True),
|
294 |
+
dict(
|
295 |
+
type='PackTextDetInputs',
|
296 |
+
meta_keys=('img_path', 'ori_shape', 'img_shape',
|
297 |
+
'scale_factor'))
|
298 |
+
]))
|
299 |
+
auto_scale_lr = dict(base_batch_size=16)
|
300 |
+
launcher = 'none'
|
301 |
+
work_dir = './work_dirs/dbnet_resnet18_fpnc_1200e_icdar2015'
|
302 |
+
|
303 |
+
2023/02/24 05:13:33 - mmengine - WARNING - The "visualizer" registry in mmocr did not set import location. Fallback to call `mmocr.utils.register_all_modules` instead.
|
304 |
+
2023/02/24 05:13:33 - mmengine - WARNING - The "vis_backend" registry in mmocr did not set import location. Fallback to call `mmocr.utils.register_all_modules` instead.
|
305 |
+
2023/02/24 05:13:34 - mmengine - WARNING - The "model" registry in mmocr did not set import location. Fallback to call `mmocr.utils.register_all_modules` instead.
|
306 |
+
2023/02/24 05:13:34 - mmengine - WARNING - The "model" registry in mmdet did not set import location. Fallback to call `mmdet.utils.register_all_modules` instead.
|
307 |
+
2023/02/24 05:13:38 - mmengine - INFO - Distributed training is not used, all SyncBatchNorm (SyncBN) layers in the model will be automatically reverted to BatchNormXd layers if they are used.
|
308 |
+
2023/02/24 05:13:38 - mmengine - WARNING - The "hook" registry in mmocr did not set import location. Fallback to call `mmocr.utils.register_all_modules` instead.
|
309 |
+
2023/02/24 05:13:38 - mmengine - INFO - Hooks will be executed in the following order:
|
310 |
+
before_run:
|
311 |
+
(VERY_HIGH ) RuntimeInfoHook
|
312 |
+
(BELOW_NORMAL) LoggerHook
|
313 |
+
--------------------
|
314 |
+
before_train:
|
315 |
+
(VERY_HIGH ) RuntimeInfoHook
|
316 |
+
(NORMAL ) IterTimerHook
|
317 |
+
(VERY_LOW ) CheckpointHook
|
318 |
+
--------------------
|
319 |
+
before_train_epoch:
|
320 |
+
(VERY_HIGH ) RuntimeInfoHook
|
321 |
+
(NORMAL ) IterTimerHook
|
322 |
+
(NORMAL ) DistSamplerSeedHook
|
323 |
+
--------------------
|
324 |
+
before_train_iter:
|
325 |
+
(VERY_HIGH ) RuntimeInfoHook
|
326 |
+
(NORMAL ) IterTimerHook
|
327 |
+
--------------------
|
328 |
+
after_train_iter:
|
329 |
+
(VERY_HIGH ) RuntimeInfoHook
|
330 |
+
(NORMAL ) IterTimerHook
|
331 |
+
(BELOW_NORMAL) LoggerHook
|
332 |
+
(LOW ) ParamSchedulerHook
|
333 |
+
(VERY_LOW ) CheckpointHook
|
334 |
+
--------------------
|
335 |
+
after_train_epoch:
|
336 |
+
(NORMAL ) IterTimerHook
|
337 |
+
(NORMAL ) SyncBuffersHook
|
338 |
+
(LOW ) ParamSchedulerHook
|
339 |
+
(VERY_LOW ) CheckpointHook
|
340 |
+
--------------------
|
341 |
+
before_val_epoch:
|
342 |
+
(NORMAL ) IterTimerHook
|
343 |
+
--------------------
|
344 |
+
before_val_iter:
|
345 |
+
(NORMAL ) IterTimerHook
|
346 |
+
--------------------
|
347 |
+
after_val_iter:
|
348 |
+
(NORMAL ) IterTimerHook
|
349 |
+
(NORMAL ) VisualizationHook
|
350 |
+
(BELOW_NORMAL) LoggerHook
|
351 |
+
--------------------
|
352 |
+
after_val_epoch:
|
353 |
+
(VERY_HIGH ) RuntimeInfoHook
|
354 |
+
(NORMAL ) IterTimerHook
|
355 |
+
(BELOW_NORMAL) LoggerHook
|
356 |
+
(LOW ) ParamSchedulerHook
|
357 |
+
(VERY_LOW ) CheckpointHook
|
358 |
+
--------------------
|
359 |
+
before_test_epoch:
|
360 |
+
(NORMAL ) IterTimerHook
|
361 |
+
--------------------
|
362 |
+
before_test_iter:
|
363 |
+
(NORMAL ) IterTimerHook
|
364 |
+
--------------------
|
365 |
+
after_test_iter:
|
366 |
+
(NORMAL ) IterTimerHook
|
367 |
+
(NORMAL ) VisualizationHook
|
368 |
+
(BELOW_NORMAL) LoggerHook
|
369 |
+
--------------------
|
370 |
+
after_test_epoch:
|
371 |
+
(VERY_HIGH ) RuntimeInfoHook
|
372 |
+
(NORMAL ) IterTimerHook
|
373 |
+
(BELOW_NORMAL) LoggerHook
|
374 |
+
--------------------
|
375 |
+
after_run:
|
376 |
+
(BELOW_NORMAL) LoggerHook
|
377 |
+
--------------------
|
378 |
+
2023/02/24 05:13:39 - mmengine - WARNING - The "loop" registry in mmocr did not set import location. Fallback to call `mmocr.utils.register_all_modules` instead.
|
379 |
+
2023/02/24 05:13:39 - mmengine - WARNING - The "dataset" registry in mmocr did not set import location. Fallback to call `mmocr.utils.register_all_modules` instead.
|
380 |
+
2023/02/24 05:13:39 - mmengine - WARNING - The "transform" registry in mmocr did not set import location. Fallback to call `mmocr.utils.register_all_modules` instead.
|
381 |
+
2023/02/24 05:13:39 - mmengine - WARNING - The "data sampler" registry in mmocr did not set import location. Fallback to call `mmocr.utils.register_all_modules` instead.
|
382 |
+
2023/02/24 05:13:39 - mmengine - WARNING - The "optimizer constructor" registry in mmocr did not set import location. Fallback to call `mmocr.utils.register_all_modules` instead.
|
383 |
+
2023/02/24 05:13:39 - mmengine - WARNING - The "optimizer" registry in mmocr did not set import location. Fallback to call `mmocr.utils.register_all_modules` instead.
|
384 |
+
2023/02/24 05:13:39 - mmengine - WARNING - The "optim wrapper" registry in mmocr did not set import location. Fallback to call `mmocr.utils.register_all_modules` instead.
|
385 |
+
2023/02/24 05:13:39 - mmengine - WARNING - The "parameter scheduler" registry in mmocr did not set import location. Fallback to call `mmocr.utils.register_all_modules` instead.
|
386 |
+
2023/02/24 05:13:40 - mmengine - WARNING - The "metric" registry in mmocr did not set import location. Fallback to call `mmocr.utils.register_all_modules` instead.
|
387 |
+
2023/02/24 05:13:40 - mmengine - WARNING - The "weight initializer" registry in mmocr did not set import location. Fallback to call `mmocr.utils.register_all_modules` instead.
|
388 |
+
2023/02/24 05:13:40 - mmengine - INFO - load model from: torchvision://resnet18
|
389 |
+
2023/02/24 05:13:40 - mmengine - INFO - Loads checkpoint by torchvision backend from path: torchvision://resnet18
|
390 |
+
2023/02/24 05:13:40 - mmengine - WARNING - The model and loaded state dict do not match exactly
|
391 |
+
|
392 |
+
unexpected key in source state_dict: fc.weight, fc.bias
|
393 |
+
|
394 |
+
Name of parameter - Initialization information
|
395 |
+
|
396 |
+
backbone.conv1.weight - torch.Size([64, 3, 7, 7]):
|
397 |
+
PretrainedInit: load from torchvision://resnet18
|
398 |
+
|
399 |
+
backbone.bn1.weight - torch.Size([64]):
|
400 |
+
PretrainedInit: load from torchvision://resnet18
|
401 |
+
|
402 |
+
backbone.bn1.bias - torch.Size([64]):
|
403 |
+
PretrainedInit: load from torchvision://resnet18
|
404 |
+
|
405 |
+
backbone.layer1.0.conv1.weight - torch.Size([64, 64, 3, 3]):
|
406 |
+
PretrainedInit: load from torchvision://resnet18
|
407 |
+
|
408 |
+
backbone.layer1.0.bn1.weight - torch.Size([64]):
|
409 |
+
PretrainedInit: load from torchvision://resnet18
|
410 |
+
|
411 |
+
backbone.layer1.0.bn1.bias - torch.Size([64]):
|
412 |
+
PretrainedInit: load from torchvision://resnet18
|
413 |
+
|
414 |
+
backbone.layer1.0.conv2.weight - torch.Size([64, 64, 3, 3]):
|
415 |
+
PretrainedInit: load from torchvision://resnet18
|
416 |
+
|
417 |
+
backbone.layer1.0.bn2.weight - torch.Size([64]):
|
418 |
+
PretrainedInit: load from torchvision://resnet18
|
419 |
+
|
420 |
+
backbone.layer1.0.bn2.bias - torch.Size([64]):
|
421 |
+
PretrainedInit: load from torchvision://resnet18
|
422 |
+
|
423 |
+
backbone.layer1.1.conv1.weight - torch.Size([64, 64, 3, 3]):
|
424 |
+
PretrainedInit: load from torchvision://resnet18
|
425 |
+
|
426 |
+
backbone.layer1.1.bn1.weight - torch.Size([64]):
|
427 |
+
PretrainedInit: load from torchvision://resnet18
|
428 |
+
|
429 |
+
backbone.layer1.1.bn1.bias - torch.Size([64]):
|
430 |
+
PretrainedInit: load from torchvision://resnet18
|
431 |
+
|
432 |
+
backbone.layer1.1.conv2.weight - torch.Size([64, 64, 3, 3]):
|
433 |
+
PretrainedInit: load from torchvision://resnet18
|
434 |
+
|
435 |
+
backbone.layer1.1.bn2.weight - torch.Size([64]):
|
436 |
+
PretrainedInit: load from torchvision://resnet18
|
437 |
+
|
438 |
+
backbone.layer1.1.bn2.bias - torch.Size([64]):
|
439 |
+
PretrainedInit: load from torchvision://resnet18
|
440 |
+
|
441 |
+
backbone.layer2.0.conv1.weight - torch.Size([128, 64, 3, 3]):
|
442 |
+
PretrainedInit: load from torchvision://resnet18
|
443 |
+
|
444 |
+
backbone.layer2.0.bn1.weight - torch.Size([128]):
|
445 |
+
PretrainedInit: load from torchvision://resnet18
|
446 |
+
|
447 |
+
backbone.layer2.0.bn1.bias - torch.Size([128]):
|
448 |
+
PretrainedInit: load from torchvision://resnet18
|
449 |
+
|
450 |
+
backbone.layer2.0.conv2.weight - torch.Size([128, 128, 3, 3]):
|
451 |
+
PretrainedInit: load from torchvision://resnet18
|
452 |
+
|
453 |
+
backbone.layer2.0.bn2.weight - torch.Size([128]):
|
454 |
+
PretrainedInit: load from torchvision://resnet18
|
455 |
+
|
456 |
+
backbone.layer2.0.bn2.bias - torch.Size([128]):
|
457 |
+
PretrainedInit: load from torchvision://resnet18
|
458 |
+
|
459 |
+
backbone.layer2.0.downsample.0.weight - torch.Size([128, 64, 1, 1]):
|
460 |
+
PretrainedInit: load from torchvision://resnet18
|
461 |
+
|
462 |
+
backbone.layer2.0.downsample.1.weight - torch.Size([128]):
|
463 |
+
PretrainedInit: load from torchvision://resnet18
|
464 |
+
|
465 |
+
backbone.layer2.0.downsample.1.bias - torch.Size([128]):
|
466 |
+
PretrainedInit: load from torchvision://resnet18
|
467 |
+
|
468 |
+
backbone.layer2.1.conv1.weight - torch.Size([128, 128, 3, 3]):
|
469 |
+
PretrainedInit: load from torchvision://resnet18
|
470 |
+
|
471 |
+
backbone.layer2.1.bn1.weight - torch.Size([128]):
|
472 |
+
PretrainedInit: load from torchvision://resnet18
|
473 |
+
|
474 |
+
backbone.layer2.1.bn1.bias - torch.Size([128]):
|
475 |
+
PretrainedInit: load from torchvision://resnet18
|
476 |
+
|
477 |
+
backbone.layer2.1.conv2.weight - torch.Size([128, 128, 3, 3]):
|
478 |
+
PretrainedInit: load from torchvision://resnet18
|
479 |
+
|
480 |
+
backbone.layer2.1.bn2.weight - torch.Size([128]):
|
481 |
+
PretrainedInit: load from torchvision://resnet18
|
482 |
+
|
483 |
+
backbone.layer2.1.bn2.bias - torch.Size([128]):
|
484 |
+
PretrainedInit: load from torchvision://resnet18
|
485 |
+
|
486 |
+
backbone.layer3.0.conv1.weight - torch.Size([256, 128, 3, 3]):
|
487 |
+
PretrainedInit: load from torchvision://resnet18
|
488 |
+
|
489 |
+
backbone.layer3.0.bn1.weight - torch.Size([256]):
|
490 |
+
PretrainedInit: load from torchvision://resnet18
|
491 |
+
|
492 |
+
backbone.layer3.0.bn1.bias - torch.Size([256]):
|
493 |
+
PretrainedInit: load from torchvision://resnet18
|
494 |
+
|
495 |
+
backbone.layer3.0.conv2.weight - torch.Size([256, 256, 3, 3]):
|
496 |
+
PretrainedInit: load from torchvision://resnet18
|
497 |
+
|
498 |
+
backbone.layer3.0.bn2.weight - torch.Size([256]):
|
499 |
+
PretrainedInit: load from torchvision://resnet18
|
500 |
+
|
501 |
+
backbone.layer3.0.bn2.bias - torch.Size([256]):
|
502 |
+
PretrainedInit: load from torchvision://resnet18
|
503 |
+
|
504 |
+
backbone.layer3.0.downsample.0.weight - torch.Size([256, 128, 1, 1]):
|
505 |
+
PretrainedInit: load from torchvision://resnet18
|
506 |
+
|
507 |
+
backbone.layer3.0.downsample.1.weight - torch.Size([256]):
|
508 |
+
PretrainedInit: load from torchvision://resnet18
|
509 |
+
|
510 |
+
backbone.layer3.0.downsample.1.bias - torch.Size([256]):
|
511 |
+
PretrainedInit: load from torchvision://resnet18
|
512 |
+
|
513 |
+
backbone.layer3.1.conv1.weight - torch.Size([256, 256, 3, 3]):
|
514 |
+
PretrainedInit: load from torchvision://resnet18
|
515 |
+
|
516 |
+
backbone.layer3.1.bn1.weight - torch.Size([256]):
|
517 |
+
PretrainedInit: load from torchvision://resnet18
|
518 |
+
|
519 |
+
backbone.layer3.1.bn1.bias - torch.Size([256]):
|
520 |
+
PretrainedInit: load from torchvision://resnet18
|
521 |
+
|
522 |
+
backbone.layer3.1.conv2.weight - torch.Size([256, 256, 3, 3]):
|
523 |
+
PretrainedInit: load from torchvision://resnet18
|
524 |
+
|
525 |
+
backbone.layer3.1.bn2.weight - torch.Size([256]):
|
526 |
+
PretrainedInit: load from torchvision://resnet18
|
527 |
+
|
528 |
+
backbone.layer3.1.bn2.bias - torch.Size([256]):
|
529 |
+
PretrainedInit: load from torchvision://resnet18
|
530 |
+
|
531 |
+
backbone.layer4.0.conv1.weight - torch.Size([512, 256, 3, 3]):
|
532 |
+
PretrainedInit: load from torchvision://resnet18
|
533 |
+
|
534 |
+
backbone.layer4.0.bn1.weight - torch.Size([512]):
|
535 |
+
PretrainedInit: load from torchvision://resnet18
|
536 |
+
|
537 |
+
backbone.layer4.0.bn1.bias - torch.Size([512]):
|
538 |
+
PretrainedInit: load from torchvision://resnet18
|
539 |
+
|
540 |
+
backbone.layer4.0.conv2.weight - torch.Size([512, 512, 3, 3]):
|
541 |
+
PretrainedInit: load from torchvision://resnet18
|
542 |
+
|
543 |
+
backbone.layer4.0.bn2.weight - torch.Size([512]):
|
544 |
+
PretrainedInit: load from torchvision://resnet18
|
545 |
+
|
546 |
+
backbone.layer4.0.bn2.bias - torch.Size([512]):
|
547 |
+
PretrainedInit: load from torchvision://resnet18
|
548 |
+
|
549 |
+
backbone.layer4.0.downsample.0.weight - torch.Size([512, 256, 1, 1]):
|
550 |
+
PretrainedInit: load from torchvision://resnet18
|
551 |
+
|
552 |
+
backbone.layer4.0.downsample.1.weight - torch.Size([512]):
|
553 |
+
PretrainedInit: load from torchvision://resnet18
|
554 |
+
|
555 |
+
backbone.layer4.0.downsample.1.bias - torch.Size([512]):
|
556 |
+
PretrainedInit: load from torchvision://resnet18
|
557 |
+
|
558 |
+
backbone.layer4.1.conv1.weight - torch.Size([512, 512, 3, 3]):
|
559 |
+
PretrainedInit: load from torchvision://resnet18
|
560 |
+
|
561 |
+
backbone.layer4.1.bn1.weight - torch.Size([512]):
|
562 |
+
PretrainedInit: load from torchvision://resnet18
|
563 |
+
|
564 |
+
backbone.layer4.1.bn1.bias - torch.Size([512]):
|
565 |
+
PretrainedInit: load from torchvision://resnet18
|
566 |
+
|
567 |
+
backbone.layer4.1.conv2.weight - torch.Size([512, 512, 3, 3]):
|
568 |
+
PretrainedInit: load from torchvision://resnet18
|
569 |
+
|
570 |
+
backbone.layer4.1.bn2.weight - torch.Size([512]):
|
571 |
+
PretrainedInit: load from torchvision://resnet18
|
572 |
+
|
573 |
+
backbone.layer4.1.bn2.bias - torch.Size([512]):
|
574 |
+
PretrainedInit: load from torchvision://resnet18
|
575 |
+
|
576 |
+
neck.lateral_convs.0.conv.weight - torch.Size([256, 64, 1, 1]):
|
577 |
+
Initialized by user-defined `init_weights` in ConvModule
|
578 |
+
|
579 |
+
neck.lateral_convs.1.conv.weight - torch.Size([256, 128, 1, 1]):
|
580 |
+
Initialized by user-defined `init_weights` in ConvModule
|
581 |
+
|
582 |
+
neck.lateral_convs.2.conv.weight - torch.Size([256, 256, 1, 1]):
|
583 |
+
Initialized by user-defined `init_weights` in ConvModule
|
584 |
+
|
585 |
+
neck.lateral_convs.3.conv.weight - torch.Size([256, 512, 1, 1]):
|
586 |
+
Initialized by user-defined `init_weights` in ConvModule
|
587 |
+
|
588 |
+
neck.smooth_convs.0.conv.weight - torch.Size([64, 256, 3, 3]):
|
589 |
+
Initialized by user-defined `init_weights` in ConvModule
|
590 |
+
|
591 |
+
neck.smooth_convs.1.conv.weight - torch.Size([64, 256, 3, 3]):
|
592 |
+
Initialized by user-defined `init_weights` in ConvModule
|
593 |
+
|
594 |
+
neck.smooth_convs.2.conv.weight - torch.Size([64, 256, 3, 3]):
|
595 |
+
Initialized by user-defined `init_weights` in ConvModule
|
596 |
+
|
597 |
+
neck.smooth_convs.3.conv.weight - torch.Size([64, 256, 3, 3]):
|
598 |
+
Initialized by user-defined `init_weights` in ConvModule
|
599 |
+
|
600 |
+
det_head.binarize.0.weight - torch.Size([64, 256, 3, 3]):
|
601 |
+
The value is the same before and after calling `init_weights` of DBNet
|
602 |
+
|
603 |
+
det_head.binarize.1.weight - torch.Size([64]):
|
604 |
+
The value is the same before and after calling `init_weights` of DBNet
|
605 |
+
|
606 |
+
det_head.binarize.1.bias - torch.Size([64]):
|
607 |
+
The value is the same before and after calling `init_weights` of DBNet
|
608 |
+
|
609 |
+
det_head.binarize.3.weight - torch.Size([64, 64, 2, 2]):
|
610 |
+
The value is the same before and after calling `init_weights` of DBNet
|
611 |
+
|
612 |
+
det_head.binarize.3.bias - torch.Size([64]):
|
613 |
+
The value is the same before and after calling `init_weights` of DBNet
|
614 |
+
|
615 |
+
det_head.binarize.4.weight - torch.Size([64]):
|
616 |
+
The value is the same before and after calling `init_weights` of DBNet
|
617 |
+
|
618 |
+
det_head.binarize.4.bias - torch.Size([64]):
|
619 |
+
The value is the same before and after calling `init_weights` of DBNet
|
620 |
+
|
621 |
+
det_head.binarize.6.weight - torch.Size([64, 1, 2, 2]):
|
622 |
+
The value is the same before and after calling `init_weights` of DBNet
|
623 |
+
|
624 |
+
det_head.binarize.6.bias - torch.Size([1]):
|
625 |
+
The value is the same before and after calling `init_weights` of DBNet
|
626 |
+
|
627 |
+
det_head.threshold.0.weight - torch.Size([64, 256, 3, 3]):
|
628 |
+
The value is the same before and after calling `init_weights` of DBNet
|
629 |
+
|
630 |
+
det_head.threshold.1.weight - torch.Size([64]):
|
631 |
+
The value is the same before and after calling `init_weights` of DBNet
|
632 |
+
|
633 |
+
det_head.threshold.1.bias - torch.Size([64]):
|
634 |
+
The value is the same before and after calling `init_weights` of DBNet
|
635 |
+
|
636 |
+
det_head.threshold.3.weight - torch.Size([64, 64, 2, 2]):
|
637 |
+
The value is the same before and after calling `init_weights` of DBNet
|
638 |
+
|
639 |
+
det_head.threshold.3.bias - torch.Size([64]):
|
640 |
+
The value is the same before and after calling `init_weights` of DBNet
|
641 |
+
|
642 |
+
det_head.threshold.4.weight - torch.Size([64]):
|
643 |
+
The value is the same before and after calling `init_weights` of DBNet
|
644 |
+
|
645 |
+
det_head.threshold.4.bias - torch.Size([64]):
|
646 |
+
The value is the same before and after calling `init_weights` of DBNet
|
647 |
+
|
648 |
+
det_head.threshold.6.weight - torch.Size([64, 1, 2, 2]):
|
649 |
+
The value is the same before and after calling `init_weights` of DBNet
|
650 |
+
|
651 |
+
det_head.threshold.6.bias - torch.Size([1]):
|
652 |
+
The value is the same before and after calling `init_weights` of DBNet
|
653 |
+
2023/02/24 05:13:40 - mmengine - INFO - Checkpoints will be saved to /content/mmocr/work_dirs/dbnet_resnet18_fpnc_1200e_icdar2015.
|
654 |
+
2023/02/24 05:16:48 - mmengine - INFO - Epoch(train) [1][ 5/22] lr: 7.0000e-03 eta: 11 days, 10:56:37 time: 37.4994 data_time: 13.3666 memory: 12058 loss: 10.5798 loss_prob: 7.3334 loss_thr: 2.3504 loss_db: 0.8960
|
655 |
+
2023/02/24 05:17:25 - mmengine - INFO - Epoch(train) [1][10/22] lr: 7.0000e-03 eta: 6 days, 20:37:40 time: 22.4578 data_time: 6.7581 memory: 6713 loss: 8.0422 loss_prob: 5.2998 loss_thr: 1.8354 loss_db: 0.9071
|
656 |
+
2023/02/24 05:17:49 - mmengine - INFO - Epoch(train) [1][15/22] lr: 7.0000e-03 eta: 5 days, 1:36:06 time: 6.1375 data_time: 0.0814 memory: 6713 loss: 5.2709 loss_prob: 3.0675 loss_thr: 1.2472 loss_db: 0.9562
|
657 |
+
2023/02/24 05:18:13 - mmengine - INFO - Epoch(train) [1][20/22] lr: 7.0000e-03 eta: 4 days, 3:52:43 time: 4.8026 data_time: 0.0312 memory: 6713 loss: 4.9844 loss_prob: 2.8490 loss_thr: 1.1389 loss_db: 0.9965
|
658 |
+
2023/02/24 05:18:25 - mmengine - INFO - Exp name: dbnet_resnet18_fpnc_1200e_icdar2015_20230224_051330
|
659 |
+
2023/02/24 05:21:34 - mmengine - INFO - Epoch(train) [2][ 5/22] lr: 6.9947e-03 eta: 5 days, 8:31:25 time: 21.5618 data_time: 7.1003 memory: 11447 loss: 4.8425 loss_prob: 2.8106 loss_thr: 1.0607 loss_db: 0.9712
|
660 |
+
2023/02/24 05:22:09 - mmengine - INFO - Epoch(train) [2][10/22] lr: 6.9947e-03 eta: 4 days, 20:24:29 time: 22.4338 data_time: 7.1646 memory: 6712 loss: 4.7001 loss_prob: 2.7874 loss_thr: 1.1015 loss_db: 0.8112
|
661 |
+
2023/02/24 05:22:33 - mmengine - INFO - Epoch(train) [2][15/22] lr: 6.9947e-03 eta: 4 days, 9:30:51 time: 5.9429 data_time: 0.0877 memory: 6712 loss: 4.4307 loss_prob: 2.7478 loss_thr: 1.1405 loss_db: 0.5424
|
662 |
+
2023/02/24 05:22:56 - mmengine - INFO - Epoch(train) [2][20/22] lr: 6.9947e-03 eta: 4 days, 0:51:26 time: 4.7033 data_time: 0.0489 memory: 6712 loss: 4.1205 loss_prob: 2.6747 loss_thr: 1.0579 loss_db: 0.3879
|
663 |
+
2023/02/24 05:23:05 - mmengine - INFO - Exp name: dbnet_resnet18_fpnc_1200e_icdar2015_20230224_051330
|
664 |
+
2023/02/24 05:25:58 - mmengine - INFO - Epoch(train) [3][ 5/22] lr: 6.9895e-03 eta: 4 days, 14:13:27 time: 19.7292 data_time: 6.3200 memory: 6712 loss: 3.7028 loss_prob: 2.4246 loss_thr: 0.9721 loss_db: 0.3061
|
665 |
+
2023/02/24 05:26:33 - mmengine - INFO - Epoch(train) [3][10/22] lr: 6.9895e-03 eta: 4 days, 8:44:41 time: 20.8299 data_time: 6.3501 memory: 6712 loss: 3.4052 loss_prob: 2.1909 loss_thr: 0.9435 loss_db: 0.2709
|
666 |
+
2023/02/24 05:26:53 - mmengine - INFO - Epoch(train) [3][15/22] lr: 6.9895e-03 eta: 4 days, 2:14:03 time: 5.4242 data_time: 0.0758 memory: 6712 loss: 3.1914 loss_prob: 2.0126 loss_thr: 0.9125 loss_db: 0.2664
|
667 |
+
2023/02/24 05:27:15 - mmengine - INFO - Epoch(train) [3][20/22] lr: 6.9895e-03 eta: 3 days, 21:04:03 time: 4.1317 data_time: 0.0486 memory: 6712 loss: 2.9899 loss_prob: 1.8336 loss_thr: 0.8950 loss_db: 0.2613
|
668 |
+
2023/02/24 05:27:23 - mmengine - INFO - Exp name: dbnet_resnet18_fpnc_1200e_icdar2015_20230224_051330
|
669 |
+
2023/02/24 05:30:21 - mmengine - INFO - Epoch(train) [4][ 5/22] lr: 6.9842e-03 eta: 4 days, 7:06:23 time: 19.9728 data_time: 6.5625 memory: 6712 loss: 2.7135 loss_prob: 1.6040 loss_thr: 0.8757 loss_db: 0.2338
|
670 |
+
2023/02/24 05:30:55 - mmengine - INFO - Epoch(train) [4][10/22] lr: 6.9842e-03 eta: 4 days, 3:31:24 time: 21.1335 data_time: 6.5916 memory: 6712 loss: 2.5669 loss_prob: 1.4807 loss_thr: 0.8647 loss_db: 0.2215
|
671 |
+
2023/02/24 05:31:16 - mmengine - INFO - Epoch(train) [4][15/22] lr: 6.9842e-03 eta: 3 days, 23:16:49 time: 5.4703 data_time: 0.0655 memory: 6712 loss: 2.5318 loss_prob: 1.4490 loss_thr: 0.8641 loss_db: 0.2187
|
672 |
+
2023/02/24 05:31:37 - mmengine - INFO - Epoch(train) [4][20/22] lr: 6.9842e-03 eta: 3 days, 19:28:30 time: 4.1855 data_time: 0.0463 memory: 6712 loss: 2.4536 loss_prob: 1.3779 loss_thr: 0.8595 loss_db: 0.2161
|
673 |
+
2023/02/24 05:31:43 - mmengine - INFO - Exp name: dbnet_resnet18_fpnc_1200e_icdar2015_20230224_051330
|
674 |
+
2023/02/24 05:34:41 - mmengine - INFO - Epoch(train) [5][ 5/22] lr: 6.9790e-03 eta: 4 days, 3:03:02 time: 19.6819 data_time: 6.5648 memory: 6712 loss: 2.2837 loss_prob: 1.2531 loss_thr: 0.8280 loss_db: 0.2027
|
675 |
+
2023/02/24 05:35:13 - mmengine - INFO - Epoch(train) [5][10/22] lr: 6.9790e-03 eta: 4 days, 0:23:14 time: 20.9855 data_time: 6.6279 memory: 6712 loss: 2.2122 loss_prob: 1.1990 loss_thr: 0.8168 loss_db: 0.1964
|
676 |
+
2023/02/24 05:35:36 - mmengine - INFO - Epoch(train) [5][15/22] lr: 6.9790e-03 eta: 3 days, 21:16:29 time: 5.4636 data_time: 0.0946 memory: 6712 loss: 2.1482 loss_prob: 1.1455 loss_thr: 0.8120 loss_db: 0.1906
|
677 |
+
2023/02/24 05:35:57 - mmengine - INFO - Epoch(train) [5][20/22] lr: 6.9790e-03 eta: 3 days, 18:24:00 time: 4.3929 data_time: 0.0363 memory: 6712 loss: 2.2215 loss_prob: 1.2052 loss_thr: 0.8195 loss_db: 0.1968
|
678 |
+
2023/02/24 05:36:05 - mmengine - INFO - Exp name: dbnet_resnet18_fpnc_1200e_icdar2015_20230224_051330
|
679 |
+
2023/02/24 05:39:01 - mmengine - INFO - Epoch(train) [6][ 5/22] lr: 6.9737e-03 eta: 4 days, 0:33:26 time: 19.8343 data_time: 6.6865 memory: 6712 loss: 2.2092 loss_prob: 1.1873 loss_thr: 0.8270 loss_db: 0.1949
|
680 |
+
2023/02/24 05:39:35 - mmengine - INFO - Epoch(train) [6][10/22] lr: 6.9737e-03 eta: 3 days, 22:34:41 time: 21.0220 data_time: 6.7316 memory: 6712 loss: 2.0882 loss_prob: 1.0934 loss_thr: 0.8093 loss_db: 0.1856
|
681 |
+
2023/02/24 05:39:55 - mmengine - INFO - Epoch(train) [6][15/22] lr: 6.9737e-03 eta: 3 days, 19:56:56 time: 5.3949 data_time: 0.0639 memory: 6712 loss: 2.0953 loss_prob: 1.1014 loss_thr: 0.8072 loss_db: 0.1867
|
682 |
+
2023/02/24 05:40:15 - mmengine - INFO - Epoch(train) [6][20/22] lr: 6.9737e-03 eta: 3 days, 17:30:13 time: 3.9802 data_time: 0.0307 memory: 6712 loss: 2.1803 loss_prob: 1.1807 loss_thr: 0.8064 loss_db: 0.1932
|
683 |
+
2023/02/24 05:40:24 - mmengine - INFO - Exp name: dbnet_resnet18_fpnc_1200e_icdar2015_20230224_051330
|
684 |
+
2023/02/24 05:43:18 - mmengine - INFO - Epoch(train) [7][ 5/22] lr: 6.9685e-03 eta: 3 days, 22:38:09 time: 19.3378 data_time: 6.0656 memory: 6712 loss: 2.1125 loss_prob: 1.1454 loss_thr: 0.7801 loss_db: 0.1870
|
685 |
+
2023/02/24 05:43:52 - mmengine - INFO - Epoch(train) [7][10/22] lr: 6.9685e-03 eta: 3 days, 21:03:26 time: 20.8409 data_time: 6.1127 memory: 6712 loss: 2.1082 loss_prob: 1.1444 loss_thr: 0.7752 loss_db: 0.1886
|
686 |
+
2023/02/24 05:44:14 - mmengine - INFO - Epoch(train) [7][15/22] lr: 6.9685e-03 eta: 3 days, 18:57:55 time: 5.6460 data_time: 0.0896 memory: 6712 loss: 2.0828 loss_prob: 1.1309 loss_thr: 0.7652 loss_db: 0.1867
|
687 |
+
2023/02/24 05:44:35 - mmengine - INFO - Epoch(train) [7][20/22] lr: 6.9685e-03 eta: 3 days, 16:56:45 time: 4.2613 data_time: 0.0588 memory: 6712 loss: 1.9454 loss_prob: 1.0347 loss_thr: 0.7355 loss_db: 0.1752
|
688 |
+
2023/02/24 05:44:42 - mmengine - INFO - Exp name: dbnet_resnet18_fpnc_1200e_icdar2015_20230224_051330
|
689 |
+
2023/02/24 05:47:42 - mmengine - INFO - Epoch(train) [8][ 5/22] lr: 6.9632e-03 eta: 3 days, 21:35:37 time: 20.0738 data_time: 7.0659 memory: 6712 loss: 1.9103 loss_prob: 1.0182 loss_thr: 0.7198 loss_db: 0.1723
|
690 |
+
2023/02/24 05:48:18 - mmengine - INFO - Epoch(train) [8][10/22] lr: 6.9632e-03 eta: 3 days, 20:19:25 time: 21.6464 data_time: 7.0947 memory: 6712 loss: 1.9593 loss_prob: 1.0665 loss_thr: 0.7176 loss_db: 0.1751
|
691 |
+
2023/02/24 05:48:41 - mmengine - INFO - Epoch(train) [8][15/22] lr: 6.9632e-03 eta: 3 days, 18:33:12 time: 5.8713 data_time: 0.0769 memory: 6712 loss: 1.9544 loss_prob: 1.0733 loss_thr: 0.7049 loss_db: 0.1762
|
692 |
+
2023/02/24 05:49:01 - mmengine - INFO - Epoch(train) [8][20/22] lr: 6.9632e-03 eta: 3 days, 16:48:01 time: 4.3373 data_time: 0.0467 memory: 6712 loss: 1.8306 loss_prob: 0.9863 loss_thr: 0.6770 loss_db: 0.1673
|
693 |
+
2023/02/24 05:49:08 - mmengine - INFO - Exp name: dbnet_resnet18_fpnc_1200e_icdar2015_20230224_051330
|
694 |
+
2023/02/24 05:52:08 - mmengine - INFO - Epoch(train) [9][ 5/22] lr: 6.9580e-03 eta: 3 days, 20:51:50 time: 20.0004 data_time: 6.3228 memory: 6712 loss: 1.9089 loss_prob: 1.0586 loss_thr: 0.6772 loss_db: 0.1731
|
695 |
+
2023/02/24 05:52:41 - mmengine - INFO - Epoch(train) [9][10/22] lr: 6.9580e-03 eta: 3 days, 19:38:00 time: 21.3337 data_time: 6.3790 memory: 6712 loss: 1.8955 loss_prob: 1.0480 loss_thr: 0.6761 loss_db: 0.1714
|
696 |
+
2023/02/24 05:53:02 - mmengine - INFO - Epoch(train) [9][15/22] lr: 6.9580e-03 eta: 3 days, 17:59:55 time: 5.3263 data_time: 0.0722 memory: 6712 loss: 1.7788 loss_prob: 0.9520 loss_thr: 0.6654 loss_db: 0.1614
|
697 |
+
2023/02/24 05:53:21 - mmengine - INFO - Epoch(train) [9][20/22] lr: 6.9580e-03 eta: 3 days, 16:25:34 time: 4.0420 data_time: 0.0361 memory: 6712 loss: 1.8003 loss_prob: 0.9682 loss_thr: 0.6678 loss_db: 0.1643
|
698 |
+
2023/02/24 05:53:31 - mmengine - INFO - Exp name: dbnet_resnet18_fpnc_1200e_icdar2015_20230224_051330
|
699 |
+
2023/02/24 05:56:27 - mmengine - INFO - Epoch(train) [10][ 5/22] lr: 6.9527e-03 eta: 3 days, 20:00:04 time: 19.6905 data_time: 6.3250 memory: 6712 loss: 1.8357 loss_prob: 0.9859 loss_thr: 0.6834 loss_db: 0.1663
|
700 |
+
2023/02/24 05:57:04 - mmengine - INFO - Epoch(train) [10][10/22] lr: 6.9527e-03 eta: 3 days, 19:04:40 time: 21.3082 data_time: 6.3498 memory: 6712 loss: 1.8376 loss_prob: 0.9889 loss_thr: 0.6809 loss_db: 0.1677
|
701 |
+
2023/02/24 05:57:27 - mmengine - INFO - Epoch(train) [10][15/22] lr: 6.9527e-03 eta: 3 days, 17:43:00 time: 6.0559 data_time: 0.0570 memory: 6712 loss: 1.7998 loss_prob: 0.9688 loss_thr: 0.6660 loss_db: 0.1651
|
702 |
+
2023/02/24 05:57:48 - mmengine - INFO - Epoch(train) [10][20/22] lr: 6.9527e-03 eta: 3 days, 16:20:24 time: 4.4162 data_time: 0.0306 memory: 6712 loss: 1.8812 loss_prob: 1.0357 loss_thr: 0.6779 loss_db: 0.1676
|
703 |
+
2023/02/24 05:57:55 - mmengine - INFO - Exp name: dbnet_resnet18_fpnc_1200e_icdar2015_20230224_051330
|
704 |
+
2023/02/24 06:01:01 - mmengine - INFO - Epoch(train) [11][ 5/22] lr: 6.9474e-03 eta: 3 days, 19:46:57 time: 20.5701 data_time: 7.2858 memory: 6712 loss: 1.8385 loss_prob: 1.0164 loss_thr: 0.6580 loss_db: 0.1641
|
705 |
+
2023/02/24 06:01:42 - mmengine - INFO - Epoch(train) [11][10/22] lr: 6.9474e-03 eta: 3 days, 19:04:25 time: 22.6877 data_time: 7.3177 memory: 6712 loss: 1.7372 loss_prob: 0.9383 loss_thr: 0.6403 loss_db: 0.1586
|
706 |
+
2023/02/24 06:02:04 - mmengine - INFO - Epoch(train) [11][15/22] lr: 6.9474e-03 eta: 3 days, 17:48:05 time: 6.3309 data_time: 0.0664 memory: 6712 loss: 1.8261 loss_prob: 1.0116 loss_thr: 0.6501 loss_db: 0.1644
|
707 |
+
2023/02/24 06:02:27 - mmengine - INFO - Epoch(train) [11][20/22] lr: 6.9474e-03 eta: 3 days, 16:36:23 time: 4.4944 data_time: 0.0463 memory: 6712 loss: 1.8030 loss_prob: 0.9974 loss_thr: 0.6439 loss_db: 0.1618
|
708 |
+
2023/02/24 06:02:35 - mmengine - INFO - Exp name: dbnet_resnet18_fpnc_1200e_icdar2015_20230224_051330
|
709 |
+
2023/02/24 06:05:43 - mmengine - INFO - Epoch(train) [12][ 5/22] lr: 6.9422e-03 eta: 3 days, 19:50:54 time: 21.0802 data_time: 6.7792 memory: 6712 loss: 1.7311 loss_prob: 0.9384 loss_thr: 0.6339 loss_db: 0.1588
|
710 |
+
2023/02/24 06:06:16 - mmengine - INFO - Epoch(train) [12][10/22] lr: 6.9422e-03 eta: 3 days, 18:57:51 time: 22.1269 data_time: 6.7959 memory: 6712 loss: 1.7188 loss_prob: 0.9327 loss_thr: 0.6281 loss_db: 0.1580
|
711 |
+
2023/02/24 06:06:38 - mmengine - INFO - Epoch(train) [12][15/22] lr: 6.9422e-03 eta: 3 days, 17:47:34 time: 5.4922 data_time: 0.0768 memory: 6712 loss: 1.7922 loss_prob: 0.9895 loss_thr: 0.6431 loss_db: 0.1596
|
712 |
+
2023/02/24 06:06:59 - mmengine - INFO - Epoch(train) [12][20/22] lr: 6.9422e-03 eta: 3 days, 16:38:54 time: 4.2930 data_time: 0.0734 memory: 6712 loss: 1.8091 loss_prob: 1.0073 loss_thr: 0.6390 loss_db: 0.1628
|
713 |
+
2023/02/24 06:07:07 - mmengine - INFO - Exp name: dbnet_resnet18_fpnc_1200e_icdar2015_20230224_051330
|
714 |
+
2023/02/24 06:10:14 - mmengine - INFO - Epoch(train) [13][ 5/22] lr: 6.9369e-03 eta: 3 days, 19:34:46 time: 20.8475 data_time: 6.4862 memory: 6712 loss: 1.7225 loss_prob: 0.9462 loss_thr: 0.6158 loss_db: 0.1605
|
715 |
+
2023/02/24 06:10:45 - mmengine - INFO - Epoch(train) [13][10/22] lr: 6.9369e-03 eta: 3 days, 18:42:55 time: 21.8411 data_time: 6.5244 memory: 6712 loss: 1.6861 loss_prob: 0.9208 loss_thr: 0.6085 loss_db: 0.1568
|
716 |
+
2023/02/24 06:11:08 - mmengine - INFO - Epoch(train) [13][15/22] lr: 6.9369e-03 eta: 3 days, 17:39:18 time: 5.3518 data_time: 0.0755 memory: 6712 loss: 1.6869 loss_prob: 0.9212 loss_thr: 0.6091 loss_db: 0.1566
|
717 |
+
2023/02/24 06:11:29 - mmengine - INFO - Epoch(train) [13][20/22] lr: 6.9369e-03 eta: 3 days, 16:36:44 time: 4.4030 data_time: 0.0427 memory: 6712 loss: 1.6707 loss_prob: 0.9171 loss_thr: 0.5988 loss_db: 0.1549
|
718 |
+
2023/02/24 06:11:39 - mmengine - INFO - Exp name: dbnet_resnet18_fpnc_1200e_icdar2015_20230224_051330
|
719 |
+
2023/02/24 06:14:33 - mmengine - INFO - Epoch(train) [14][ 5/22] lr: 6.9317e-03 eta: 3 days, 19:01:21 time: 19.7550 data_time: 6.6183 memory: 6712 loss: 1.7619 loss_prob: 1.0020 loss_thr: 0.6010 loss_db: 0.1589
|
720 |
+
2023/02/24 06:15:10 - mmengine - INFO - Epoch(train) [14][10/22] lr: 6.9317e-03 eta: 3 days, 18:23:36 time: 21.1018 data_time: 6.6633 memory: 6712 loss: 1.7161 loss_prob: 0.9654 loss_thr: 0.5944 loss_db: 0.1563
|
721 |
+
2023/02/24 06:15:32 - mmengine - INFO - Epoch(train) [14][15/22] lr: 6.9317e-03 eta: 3 days, 17:22:58 time: 5.8873 data_time: 0.0648 memory: 6712 loss: 1.7192 loss_prob: 0.9679 loss_thr: 0.5954 loss_db: 0.1559
|
722 |
+
2023/02/24 06:15:54 - mmengine - INFO - Epoch(train) [14][20/22] lr: 6.9317e-03 eta: 3 days, 16:25:59 time: 4.3364 data_time: 0.0274 memory: 6712 loss: 1.6298 loss_prob: 0.8869 loss_thr: 0.5926 loss_db: 0.1503
|
723 |
+
2023/02/24 06:16:02 - mmengine - INFO - Exp name: dbnet_resnet18_fpnc_1200e_icdar2015_20230224_051330
|
724 |
+
2023/02/24 06:19:00 - mmengine - INFO - Epoch(train) [15][ 5/22] lr: 6.9264e-03 eta: 3 days, 18:44:04 time: 19.8166 data_time: 6.2719 memory: 6712 loss: 1.6233 loss_prob: 0.8843 loss_thr: 0.5895 loss_db: 0.1495
|
725 |
+
2023/02/24 06:19:35 - mmengine - INFO - Epoch(train) [15][10/22] lr: 6.9264e-03 eta: 3 days, 18:05:44 time: 21.3018 data_time: 6.3262 memory: 6712 loss: 1.6084 loss_prob: 0.8760 loss_thr: 0.5845 loss_db: 0.1478
|
726 |
+
2023/02/24 06:19:56 - mmengine - INFO - Epoch(train) [15][15/22] lr: 6.9264e-03 eta: 3 days, 17:09:18 time: 5.6332 data_time: 0.0798 memory: 6712 loss: 1.5740 loss_prob: 0.8612 loss_thr: 0.5668 loss_db: 0.1460
|
727 |
+
2023/02/24 06:20:17 - mmengine - INFO - Epoch(train) [15][20/22] lr: 6.9264e-03 eta: 3 days, 16:14:55 time: 4.2267 data_time: 0.0394 memory: 6712 loss: 1.6627 loss_prob: 0.9368 loss_thr: 0.5743 loss_db: 0.1516
|
728 |
+
2023/02/24 06:20:27 - mmengine - INFO - Exp name: dbnet_resnet18_fpnc_1200e_icdar2015_20230224_051330
|
729 |
+
2023/02/24 06:23:29 - mmengine - INFO - Epoch(train) [16][ 5/22] lr: 6.9211e-03 eta: 3 days, 18:31:35 time: 20.4682 data_time: 6.4376 memory: 6712 loss: 1.6751 loss_prob: 0.9439 loss_thr: 0.5791 loss_db: 0.1521
|
730 |
+
2023/02/24 06:24:03 - mmengine - INFO - Epoch(train) [16][10/22] lr: 6.9211e-03 eta: 3 days, 17:53:41 time: 21.5603 data_time: 6.4834 memory: 6712 loss: 1.5881 loss_prob: 0.8699 loss_thr: 0.5714 loss_db: 0.1468
|
731 |
+
2023/02/24 06:24:24 - mmengine - INFO - Epoch(train) [16][15/22] lr: 6.9211e-03 eta: 3 days, 17:01:54 time: 5.5439 data_time: 0.0674 memory: 6712 loss: 1.5751 loss_prob: 0.8581 loss_thr: 0.5713 loss_db: 0.1457
|
732 |
+
2023/02/24 06:24:46 - mmengine - INFO - Epoch(train) [16][20/22] lr: 6.9211e-03 eta: 3 days, 16:11:19 time: 4.3338 data_time: 0.0365 memory: 6712 loss: 1.6895 loss_prob: 0.9474 loss_thr: 0.5892 loss_db: 0.1528
|
733 |
+
2023/02/24 06:24:54 - mmengine - INFO - Exp name: dbnet_resnet18_fpnc_1200e_icdar2015_20230224_051330
|
734 |
+
2023/02/24 06:27:53 - mmengine - INFO - Epoch(train) [17][ 5/22] lr: 6.9159e-03 eta: 3 days, 18:13:54 time: 20.1179 data_time: 7.1602 memory: 6712 loss: 1.5890 loss_prob: 0.8658 loss_thr: 0.5758 loss_db: 0.1473
|
735 |
+
2023/02/24 06:28:29 - mmengine - INFO - Epoch(train) [17][10/22] lr: 6.9159e-03 eta: 3 days, 17:40:34 time: 21.5151 data_time: 7.1956 memory: 6712 loss: 1.5827 loss_prob: 0.8728 loss_thr: 0.5623 loss_db: 0.1476
|
736 |
+
2023/02/24 06:28:52 - mmengine - INFO - Epoch(train) [17][15/22] lr: 6.9159e-03 eta: 3 days, 16:53:08 time: 5.8176 data_time: 0.0500 memory: 6712 loss: 1.5498 loss_prob: 0.8583 loss_thr: 0.5468 loss_db: 0.1447
|
737 |
+
2023/02/24 06:29:14 - mmengine - INFO - Epoch(train) [17][20/22] lr: 6.9159e-03 eta: 3 days, 16:06:35 time: 4.5159 data_time: 0.0371 memory: 6712 loss: 1.5092 loss_prob: 0.8323 loss_thr: 0.5363 loss_db: 0.1406
|
738 |
+
2023/02/24 06:29:21 - mmengine - INFO - Exp name: dbnet_resnet18_fpnc_1200e_icdar2015_20230224_051330
|
739 |
+
2023/02/24 06:32:11 - mmengine - INFO - Epoch(train) [18][ 5/22] lr: 6.9106e-03 eta: 3 days, 17:49:46 time: 19.0947 data_time: 6.1514 memory: 6712 loss: 1.6499 loss_prob: 0.9514 loss_thr: 0.5495 loss_db: 0.1489
|
740 |
+
2023/02/24 06:32:41 - mmengine - INFO - Epoch(train) [18][10/22] lr: 6.9106e-03 eta: 3 days, 17:13:04 time: 19.9988 data_time: 6.1911 memory: 6712 loss: 1.5199 loss_prob: 0.8403 loss_thr: 0.5375 loss_db: 0.1421
|
741 |
+
2023/02/24 06:33:02 - mmengine - INFO - Epoch(train) [18][15/22] lr: 6.9106e-03 eta: 3 days, 16:26:56 time: 5.1812 data_time: 0.0669 memory: 6712 loss: 1.6338 loss_prob: 0.9296 loss_thr: 0.5540 loss_db: 0.1502
|
742 |
+
2023/02/24 06:33:23 - mmengine - INFO - Epoch(train) [18][20/22] lr: 6.9106e-03 eta: 3 days, 15:41:20 time: 4.1944 data_time: 0.0443 memory: 6712 loss: 1.6014 loss_prob: 0.9109 loss_thr: 0.5433 loss_db: 0.1472
|
743 |
+
2023/02/24 06:33:30 - mmengine - INFO - Exp name: dbnet_resnet18_fpnc_1200e_icdar2015_20230224_051330
|
744 |
+
2023/02/24 06:36:13 - mmengine - INFO - Epoch(train) [19][ 5/22] lr: 6.9054e-03 eta: 3 days, 17:11:46 time: 18.3289 data_time: 6.0725 memory: 6712 loss: 1.5865 loss_prob: 0.9040 loss_thr: 0.5374 loss_db: 0.1451
|
745 |
+
2023/02/24 06:36:44 - mmengine - INFO - Epoch(train) [19][10/22] lr: 6.9054e-03 eta: 3 days, 16:38:02 time: 19.4111 data_time: 6.1041 memory: 6712 loss: 1.5683 loss_prob: 0.8961 loss_thr: 0.5286 loss_db: 0.1436
|
746 |
+
2023/02/24 06:37:03 - mmengine - INFO - Epoch(train) [19][15/22] lr: 6.9054e-03 eta: 3 days, 15:52:19 time: 5.0075 data_time: 0.0461 memory: 6712 loss: 1.4666 loss_prob: 0.8143 loss_thr: 0.5145 loss_db: 0.1378
|
747 |
+
2023/02/24 06:37:22 - mmengine - INFO - Epoch(train) [19][20/22] lr: 6.9054e-03 eta: 3 days, 15:07:51 time: 3.8092 data_time: 0.0239 memory: 6712 loss: 1.4776 loss_prob: 0.8202 loss_thr: 0.5185 loss_db: 0.1389
|
748 |
+
2023/02/24 06:37:30 - mmengine - INFO - Exp name: dbnet_resnet18_fpnc_1200e_icdar2015_20230224_051330
|
749 |
+
2023/02/24 06:40:10 - mmengine - INFO - Epoch(train) [20][ 5/22] lr: 6.9001e-03 eta: 3 days, 16:31:37 time: 18.0048 data_time: 5.7458 memory: 6712 loss: 1.5888 loss_prob: 0.9128 loss_thr: 0.5328 loss_db: 0.1432
|
750 |
+
2023/02/24 06:40:37 - mmengine - INFO - Epoch(train) [20][10/22] lr: 6.9001e-03 eta: 3 days, 15:56:20 time: 18.7845 data_time: 5.7862 memory: 6712 loss: 1.6013 loss_prob: 0.9205 loss_thr: 0.5363 loss_db: 0.1445
|
751 |
+
2023/02/24 06:40:58 - mmengine - INFO - Epoch(train) [20][15/22] lr: 6.9001e-03 eta: 3 days, 15:14:41 time: 4.7755 data_time: 0.0685 memory: 6712 loss: 1.4801 loss_prob: 0.8185 loss_thr: 0.5228 loss_db: 0.1389
|
752 |
+
2023/02/24 06:41:17 - mmengine - INFO - Epoch(train) [20][20/22] lr: 6.9001e-03 eta: 3 days, 14:32:56 time: 3.9535 data_time: 0.0450 memory: 6712 loss: 1.4580 loss_prob: 0.8092 loss_thr: 0.5116 loss_db: 0.1372
|
753 |
+
2023/02/24 06:41:23 - mmengine - INFO - Exp name: dbnet_resnet18_fpnc_1200e_icdar2015_20230224_051330
|
754 |
+
2023/02/24 06:41:23 - mmengine - INFO - Saving checkpoint at 20 epochs
|
755 |
+
2023/02/24 06:43:59 - mmengine - INFO - Epoch(val) [20][ 5/88] eta: 0:42:55 time: 31.0259 data_time: 0.0756 memory: 8651
|
model/config.py
ADDED
@@ -0,0 +1,259 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
file_client_args = dict(backend='disk')
|
2 |
+
model = dict(
|
3 |
+
type='DBNet',
|
4 |
+
backbone=dict(
|
5 |
+
type='mmdet.ResNet',
|
6 |
+
depth=18,
|
7 |
+
num_stages=4,
|
8 |
+
out_indices=(0, 1, 2, 3),
|
9 |
+
frozen_stages=-1,
|
10 |
+
norm_cfg=dict(type='BN', requires_grad=True),
|
11 |
+
init_cfg=dict(type='Pretrained', checkpoint='torchvision://resnet18'),
|
12 |
+
norm_eval=False,
|
13 |
+
style='caffe'),
|
14 |
+
neck=dict(
|
15 |
+
type='FPNC', in_channels=[64, 128, 256, 512], lateral_channels=256),
|
16 |
+
det_head=dict(
|
17 |
+
type='DBHead',
|
18 |
+
in_channels=256,
|
19 |
+
module_loss=dict(type='DBModuleLoss'),
|
20 |
+
postprocessor=dict(type='DBPostprocessor', text_repr_type='quad')),
|
21 |
+
data_preprocessor=dict(
|
22 |
+
type='TextDetDataPreprocessor',
|
23 |
+
mean=[123.675, 116.28, 103.53],
|
24 |
+
std=[58.395, 57.12, 57.375],
|
25 |
+
bgr_to_rgb=True,
|
26 |
+
pad_size_divisor=32))
|
27 |
+
train_pipeline = [
|
28 |
+
dict(
|
29 |
+
type='LoadImageFromFile',
|
30 |
+
file_client_args=dict(backend='disk'),
|
31 |
+
color_type='color_ignore_orientation'),
|
32 |
+
dict(
|
33 |
+
type='LoadOCRAnnotations',
|
34 |
+
with_polygon=True,
|
35 |
+
with_bbox=True,
|
36 |
+
with_label=True),
|
37 |
+
dict(
|
38 |
+
type='TorchVisionWrapper',
|
39 |
+
op='ColorJitter',
|
40 |
+
brightness=0.12549019607843137,
|
41 |
+
saturation=0.5),
|
42 |
+
dict(
|
43 |
+
type='ImgAugWrapper',
|
44 |
+
args=[['Fliplr', 0.5], {
|
45 |
+
'cls': 'Affine',
|
46 |
+
'rotate': [-10, 10]
|
47 |
+
}, ['Resize', [0.5, 3.0]]]),
|
48 |
+
dict(type='RandomCrop', min_side_ratio=0.1),
|
49 |
+
dict(type='Resize', scale=(640, 640), keep_ratio=True),
|
50 |
+
dict(type='Pad', size=(640, 640)),
|
51 |
+
dict(
|
52 |
+
type='PackTextDetInputs',
|
53 |
+
meta_keys=('img_path', 'ori_shape', 'img_shape'))
|
54 |
+
]
|
55 |
+
test_pipeline = [
|
56 |
+
dict(
|
57 |
+
type='LoadImageFromFile',
|
58 |
+
file_client_args=dict(backend='disk'),
|
59 |
+
color_type='color_ignore_orientation'),
|
60 |
+
dict(type='Resize', scale=(1333, 736), keep_ratio=True),
|
61 |
+
dict(
|
62 |
+
type='LoadOCRAnnotations',
|
63 |
+
with_polygon=True,
|
64 |
+
with_bbox=True,
|
65 |
+
with_label=True),
|
66 |
+
dict(
|
67 |
+
type='PackTextDetInputs',
|
68 |
+
meta_keys=('img_path', 'ori_shape', 'img_shape', 'scale_factor'))
|
69 |
+
]
|
70 |
+
icdar2015_textdet_data_root = 'data/det/textdet-thvote'
|
71 |
+
icdar2015_textdet_train = dict(
|
72 |
+
type='OCRDataset',
|
73 |
+
data_root='data/det/textdet-thvote',
|
74 |
+
ann_file='textdet_train.json',
|
75 |
+
data_prefix=dict(img_path='imgs/'),
|
76 |
+
filter_cfg=dict(filter_empty_gt=True, min_size=32),
|
77 |
+
pipeline=[
|
78 |
+
dict(
|
79 |
+
type='LoadImageFromFile',
|
80 |
+
file_client_args=dict(backend='disk'),
|
81 |
+
color_type='color_ignore_orientation'),
|
82 |
+
dict(
|
83 |
+
type='LoadOCRAnnotations',
|
84 |
+
with_polygon=True,
|
85 |
+
with_bbox=True,
|
86 |
+
with_label=True),
|
87 |
+
dict(
|
88 |
+
type='TorchVisionWrapper',
|
89 |
+
op='ColorJitter',
|
90 |
+
brightness=0.12549019607843137,
|
91 |
+
saturation=0.5),
|
92 |
+
dict(
|
93 |
+
type='ImgAugWrapper',
|
94 |
+
args=[['Fliplr', 0.5], {
|
95 |
+
'cls': 'Affine',
|
96 |
+
'rotate': [-10, 10]
|
97 |
+
}, ['Resize', [0.5, 3.0]]]),
|
98 |
+
dict(type='RandomCrop', min_side_ratio=0.1),
|
99 |
+
dict(type='Resize', scale=(640, 640), keep_ratio=True),
|
100 |
+
dict(type='Pad', size=(640, 640)),
|
101 |
+
dict(
|
102 |
+
type='PackTextDetInputs',
|
103 |
+
meta_keys=('img_path', 'ori_shape', 'img_shape'))
|
104 |
+
])
|
105 |
+
icdar2015_textdet_test = dict(
|
106 |
+
type='OCRDataset',
|
107 |
+
data_root='data/det/textdet-thvote',
|
108 |
+
ann_file='textdet_test.json',
|
109 |
+
data_prefix=dict(img_path='imgs/'),
|
110 |
+
test_mode=True,
|
111 |
+
pipeline=[
|
112 |
+
dict(
|
113 |
+
type='LoadImageFromFile',
|
114 |
+
file_client_args=dict(backend='disk'),
|
115 |
+
color_type='color_ignore_orientation'),
|
116 |
+
dict(type='Resize', scale=(1333, 736), keep_ratio=True),
|
117 |
+
dict(
|
118 |
+
type='LoadOCRAnnotations',
|
119 |
+
with_polygon=True,
|
120 |
+
with_bbox=True,
|
121 |
+
with_label=True),
|
122 |
+
dict(
|
123 |
+
type='PackTextDetInputs',
|
124 |
+
meta_keys=('img_path', 'ori_shape', 'img_shape', 'scale_factor'))
|
125 |
+
])
|
126 |
+
default_scope = 'mmocr'
|
127 |
+
env_cfg = dict(
|
128 |
+
cudnn_benchmark=True,
|
129 |
+
mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
|
130 |
+
dist_cfg=dict(backend='nccl'))
|
131 |
+
randomness = dict(seed=None)
|
132 |
+
default_hooks = dict(
|
133 |
+
timer=dict(type='IterTimerHook'),
|
134 |
+
logger=dict(type='LoggerHook', interval=5),
|
135 |
+
param_scheduler=dict(type='ParamSchedulerHook'),
|
136 |
+
checkpoint=dict(type='CheckpointHook', interval=20),
|
137 |
+
sampler_seed=dict(type='DistSamplerSeedHook'),
|
138 |
+
sync_buffer=dict(type='SyncBuffersHook'),
|
139 |
+
visualization=dict(
|
140 |
+
type='VisualizationHook',
|
141 |
+
interval=1,
|
142 |
+
enable=False,
|
143 |
+
show=False,
|
144 |
+
draw_gt=False,
|
145 |
+
draw_pred=False))
|
146 |
+
log_level = 'INFO'
|
147 |
+
log_processor = dict(type='LogProcessor', window_size=10, by_epoch=True)
|
148 |
+
load_from = None
|
149 |
+
resume = False
|
150 |
+
val_evaluator = dict(type='HmeanIOUMetric')
|
151 |
+
test_evaluator = dict(type='HmeanIOUMetric')
|
152 |
+
vis_backends = [dict(type='LocalVisBackend')]
|
153 |
+
visualizer = dict(
|
154 |
+
type='TextDetLocalVisualizer',
|
155 |
+
name='visualizer',
|
156 |
+
vis_backends=[dict(type='LocalVisBackend')])
|
157 |
+
optim_wrapper = dict(
|
158 |
+
type='OptimWrapper',
|
159 |
+
optimizer=dict(type='SGD', lr=0.007, momentum=0.9, weight_decay=0.0001))
|
160 |
+
train_cfg = dict(type='EpochBasedTrainLoop', max_epochs=1200, val_interval=20)
|
161 |
+
val_cfg = dict(type='ValLoop')
|
162 |
+
test_cfg = dict(type='TestLoop')
|
163 |
+
param_scheduler = [dict(type='PolyLR', power=0.9, eta_min=1e-07, end=1200)]
|
164 |
+
train_dataloader = dict(
|
165 |
+
batch_size=16,
|
166 |
+
num_workers=8,
|
167 |
+
persistent_workers=True,
|
168 |
+
sampler=dict(type='DefaultSampler', shuffle=True),
|
169 |
+
dataset=dict(
|
170 |
+
type='OCRDataset',
|
171 |
+
data_root='data/det/textdet-thvote',
|
172 |
+
ann_file='textdet_train.json',
|
173 |
+
data_prefix=dict(img_path='imgs/'),
|
174 |
+
filter_cfg=dict(filter_empty_gt=True, min_size=32),
|
175 |
+
pipeline=[
|
176 |
+
dict(
|
177 |
+
type='LoadImageFromFile',
|
178 |
+
file_client_args=dict(backend='disk'),
|
179 |
+
color_type='color_ignore_orientation'),
|
180 |
+
dict(
|
181 |
+
type='LoadOCRAnnotations',
|
182 |
+
with_polygon=True,
|
183 |
+
with_bbox=True,
|
184 |
+
with_label=True),
|
185 |
+
dict(
|
186 |
+
type='TorchVisionWrapper',
|
187 |
+
op='ColorJitter',
|
188 |
+
brightness=0.12549019607843137,
|
189 |
+
saturation=0.5),
|
190 |
+
dict(
|
191 |
+
type='ImgAugWrapper',
|
192 |
+
args=[['Fliplr', 0.5], {
|
193 |
+
'cls': 'Affine',
|
194 |
+
'rotate': [-10, 10]
|
195 |
+
}, ['Resize', [0.5, 3.0]]]),
|
196 |
+
dict(type='RandomCrop', min_side_ratio=0.1),
|
197 |
+
dict(type='Resize', scale=(640, 640), keep_ratio=True),
|
198 |
+
dict(type='Pad', size=(640, 640)),
|
199 |
+
dict(
|
200 |
+
type='PackTextDetInputs',
|
201 |
+
meta_keys=('img_path', 'ori_shape', 'img_shape'))
|
202 |
+
]))
|
203 |
+
val_dataloader = dict(
|
204 |
+
batch_size=1,
|
205 |
+
num_workers=4,
|
206 |
+
persistent_workers=True,
|
207 |
+
sampler=dict(type='DefaultSampler', shuffle=False),
|
208 |
+
dataset=dict(
|
209 |
+
type='OCRDataset',
|
210 |
+
data_root='data/det/textdet-thvote',
|
211 |
+
ann_file='textdet_test.json',
|
212 |
+
data_prefix=dict(img_path='imgs/'),
|
213 |
+
test_mode=True,
|
214 |
+
pipeline=[
|
215 |
+
dict(
|
216 |
+
type='LoadImageFromFile',
|
217 |
+
file_client_args=dict(backend='disk'),
|
218 |
+
color_type='color_ignore_orientation'),
|
219 |
+
dict(type='Resize', scale=(1333, 736), keep_ratio=True),
|
220 |
+
dict(
|
221 |
+
type='LoadOCRAnnotations',
|
222 |
+
with_polygon=True,
|
223 |
+
with_bbox=True,
|
224 |
+
with_label=True),
|
225 |
+
dict(
|
226 |
+
type='PackTextDetInputs',
|
227 |
+
meta_keys=('img_path', 'ori_shape', 'img_shape',
|
228 |
+
'scale_factor'))
|
229 |
+
]))
|
230 |
+
test_dataloader = dict(
|
231 |
+
batch_size=1,
|
232 |
+
num_workers=4,
|
233 |
+
persistent_workers=True,
|
234 |
+
sampler=dict(type='DefaultSampler', shuffle=False),
|
235 |
+
dataset=dict(
|
236 |
+
type='OCRDataset',
|
237 |
+
data_root='data/det/textdet-thvote',
|
238 |
+
ann_file='textdet_test.json',
|
239 |
+
data_prefix=dict(img_path='imgs/'),
|
240 |
+
test_mode=True,
|
241 |
+
pipeline=[
|
242 |
+
dict(
|
243 |
+
type='LoadImageFromFile',
|
244 |
+
file_client_args=dict(backend='disk'),
|
245 |
+
color_type='color_ignore_orientation'),
|
246 |
+
dict(type='Resize', scale=(1333, 736), keep_ratio=True),
|
247 |
+
dict(
|
248 |
+
type='LoadOCRAnnotations',
|
249 |
+
with_polygon=True,
|
250 |
+
with_bbox=True,
|
251 |
+
with_label=True),
|
252 |
+
dict(
|
253 |
+
type='PackTextDetInputs',
|
254 |
+
meta_keys=('img_path', 'ori_shape', 'img_shape',
|
255 |
+
'scale_factor'))
|
256 |
+
]))
|
257 |
+
auto_scale_lr = dict(base_batch_size=16)
|
258 |
+
launcher = 'none'
|
259 |
+
work_dir = './work_dirs/dbnet_resnet18_fpnc_1200e_icdar2015'
|
model/epoch_20.pth
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:0d6272124c7fcedcdb64c2de3e82d1d6588f9f5f45abaa114048badaeb887a29
|
3 |
+
size 98924057
|
model/epoch_40.pth
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:3c73dfa8e57af4ec4080e6b60d58e1d2d26d212ea93d3fcab0d9a23e7713c48e
|
3 |
+
size 98980313
|
requirements.txt
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
gradio
|
2 |
+
torch
|
3 |
+
torchvision
|
4 |
+
requests
|
5 |
+
openmim
|
6 |
+
mmdet>=3.0.0rc0
|
7 |
+
mmocr>=1.0.0rc0
|