From 59cc4efdc5552123d707a7ba84e0dee48c373aa5 Mon Sep 17 00:00:00 2001 From: tink2123 Date: Thu, 22 Jul 2021 19:58:14 +0800 Subject: [PATCH 01/25] add for SEED --- configs/rec/rec_resnet_stn_bilstm_att.yml | 101 +++ ppocr/data/imaug/label_ops.py | 64 +- ppocr/data/simple_dataset.py | 1 + ppocr/losses/__init__.py | 5 +- ppocr/losses/rec_aster_loss.py | 79 ++ ppocr/losses/rec_att_loss.py | 2 + ppocr/modeling/backbones/__init__.py | 4 +- ppocr/modeling/backbones/levit.py | 707 ++++++++++++++++++ ppocr/modeling/backbones/rec_resnet_aster.py | 147 ++++ ppocr/modeling/heads/__init__.py | 6 +- ppocr/modeling/heads/rec_aster_head.py | 258 +++++++ ppocr/modeling/heads/rec_att_head.py | 5 + ppocr/modeling/transforms/__init__.py | 3 +- ppocr/modeling/transforms/stn.py | 121 +++ ppocr/modeling/transforms/tps.py | 29 +- .../transforms/tps_spatial_transformer.py | 178 +++++ ppocr/modeling/transforms/tps_torch.py | 149 ++++ ppocr/postprocess/rec_postprocess.py | 29 +- ppocr/utils/save_load.py | 17 +- tools/program.py | 15 +- tools/train.py | 2 + 21 files changed, 1868 insertions(+), 54 deletions(-) create mode 100644 configs/rec/rec_resnet_stn_bilstm_att.yml create mode 100644 ppocr/losses/rec_aster_loss.py create mode 100644 ppocr/modeling/backbones/levit.py create mode 100644 ppocr/modeling/backbones/rec_resnet_aster.py create mode 100644 ppocr/modeling/heads/rec_aster_head.py create mode 100644 ppocr/modeling/transforms/stn.py create mode 100644 ppocr/modeling/transforms/tps_spatial_transformer.py create mode 100644 ppocr/modeling/transforms/tps_torch.py diff --git a/configs/rec/rec_resnet_stn_bilstm_att.yml b/configs/rec/rec_resnet_stn_bilstm_att.yml new file mode 100644 index 0000000000..f705f1e23d --- /dev/null +++ b/configs/rec/rec_resnet_stn_bilstm_att.yml @@ -0,0 +1,101 @@ +Global: + use_gpu: False + epoch_num: 400 + log_smooth_window: 20 + print_batch_step: 10 + save_model_dir: ./output/rec/b3_rare_r34_none_gru/ + save_epoch_step: 3 + # evaluation is run every 5000 iterations after the 4000th iteration + eval_batch_step: [0, 2000] + cal_metric_during_train: True + pretrained_model: + checkpoints: + save_inference_dir: + use_visualdl: False + infer_img: doc/imgs_words/ch/word_1.jpg + # for data or label process + character_dict_path: + character_type: EN_symbol + max_text_length: 25 + infer_mode: False + use_space_char: False + save_res_path: ./output/rec/predicts_b3_rare_r34_none_gru.txt + + +Optimizer: + name: Adam + beta1: 0.9 + beta2: 0.999 + lr: + learning_rate: 0.0005 + regularizer: + name: 'L2' + factor: 0.00000 + +Architecture: + model_type: rec + algorithm: ASTER + Transform: + name: STN_ON + tps_inputsize: [32, 64] + tps_outputsize: [32, 100] + num_control_points: 20 + tps_margins: [0.05,0.05] + stn_activation: none + Backbone: + name: ResNet_ASTER + Head: + name: AsterHead # AttentionHead + sDim: 512 + attDim: 512 + max_len_labels: 100 + +Loss: + name: AsterLoss + +PostProcess: + name: AttnLabelDecode + +Metric: + name: RecMetric + main_indicator: acc + +Train: + dataset: + name: SimpleDataSet + data_dir: ./train_data/ic15_data/ + label_file_list: ["./train_data/ic15_data/1.txt"] + transforms: + - DecodeImage: # load image + img_mode: BGR + channel_first: False + - AttnLabelEncode: # Class handling label + - RecResizeImg: + image_shape: [3, 32, 100] + - KeepKeys: + keep_keys: ['image', 'label', 'length'] # dataloader will return list in this order + loader: + shuffle: True + batch_size_per_card: 2 + drop_last: True + num_workers: 8 + +Eval: + dataset: + name: SimpleDataSet + data_dir: ./train_data/ic15_data/ + label_file_list: ["./train_data/ic15_data/1.txt"] + transforms: + - DecodeImage: # load image + img_mode: BGR + channel_first: False + - AttnLabelEncode: # Class handling label + - RecResizeImg: + image_shape: [3, 32, 100] + - KeepKeys: + keep_keys: ['image', 'label', 'length'] # dataloader will return list in this order + loader: + shuffle: False + drop_last: False + batch_size_per_card: 2 + num_workers: 8 diff --git a/ppocr/data/imaug/label_ops.py b/ppocr/data/imaug/label_ops.py index e25cce79b5..0e1d4939d6 100644 --- a/ppocr/data/imaug/label_ops.py +++ b/ppocr/data/imaug/label_ops.py @@ -104,6 +104,7 @@ class BaseRecLabelEncode(object): self.max_text_len = max_text_length self.beg_str = "sos" self.end_str = "eos" + self.unknown = "UNKNOWN" if character_type == "en": self.character_str = "0123456789abcdefghijklmnopqrstuvwxyz" dict_character = list(self.character_str) @@ -275,7 +276,9 @@ class AttnLabelEncode(BaseRecLabelEncode): def add_special_char(self, dict_character): self.beg_str = "sos" self.end_str = "eos" - dict_character = [self.beg_str] + dict_character + [self.end_str] + self.unknown = "UNKNOWN" + dict_character = [self.beg_str] + dict_character + [self.end_str + ] + [self.unknown] return dict_character def __call__(self, data): @@ -288,6 +291,7 @@ class AttnLabelEncode(BaseRecLabelEncode): data['length'] = np.array(len(text)) text = [0] + text + [len(self.character) - 1] + [0] * (self.max_text_len - len(text) - 2) + data['label'] = np.array(text) return data @@ -352,19 +356,22 @@ class SRNLabelEncode(BaseRecLabelEncode): % beg_or_end return idx + class TableLabelEncode(object): """ Convert between text-label and text-index """ - def __init__(self, - max_text_length, - max_elem_length, - max_cell_num, - character_dict_path, - span_weight = 1.0, - **kwargs): + + def __init__(self, + max_text_length, + max_elem_length, + max_cell_num, + character_dict_path, + span_weight=1.0, + **kwargs): self.max_text_length = max_text_length self.max_elem_length = max_elem_length self.max_cell_num = max_cell_num - list_character, list_elem = self.load_char_elem_dict(character_dict_path) + list_character, list_elem = self.load_char_elem_dict( + character_dict_path) list_character = self.add_special_char(list_character) list_elem = self.add_special_char(list_elem) self.dict_character = {} @@ -374,7 +381,7 @@ class TableLabelEncode(object): for i, elem in enumerate(list_elem): self.dict_elem[elem] = i self.span_weight = span_weight - + def load_char_elem_dict(self, character_dict_path): list_character = [] list_elem = [] @@ -383,27 +390,27 @@ class TableLabelEncode(object): substr = lines[0].decode('utf-8').strip("\n").split("\t") character_num = int(substr[0]) elem_num = int(substr[1]) - for cno in range(1, 1+character_num): + for cno in range(1, 1 + character_num): character = lines[cno].decode('utf-8').strip("\n") list_character.append(character) - for eno in range(1+character_num, 1+character_num+elem_num): + for eno in range(1 + character_num, 1 + character_num + elem_num): elem = lines[eno].decode('utf-8').strip("\n") list_elem.append(elem) return list_character, list_elem - + def add_special_char(self, list_character): self.beg_str = "sos" self.end_str = "eos" list_character = [self.beg_str] + list_character + [self.end_str] return list_character - + def get_span_idx_list(self): span_idx_list = [] for elem in self.dict_elem: if 'span' in elem: span_idx_list.append(self.dict_elem[elem]) return span_idx_list - + def __call__(self, data): cells = data['cells'] structure = data['structure']['tokens'] @@ -412,18 +419,22 @@ class TableLabelEncode(object): return None elem_num = len(structure) structure = [0] + structure + [len(self.dict_elem) - 1] - structure = structure + [0] * (self.max_elem_length + 2 - len(structure)) + structure = structure + [0] * (self.max_elem_length + 2 - len(structure) + ) structure = np.array(structure) data['structure'] = structure elem_char_idx1 = self.dict_elem[''] elem_char_idx2 = self.dict_elem[' 0: span_weight = len(td_idx_list) * 1.0 / len(span_idx_list) @@ -450,9 +461,11 @@ class TableLabelEncode(object): char_end_idx = self.get_beg_end_flag_idx('end', 'char') elem_beg_idx = self.get_beg_end_flag_idx('beg', 'elem') elem_end_idx = self.get_beg_end_flag_idx('end', 'elem') - data['sp_tokens'] = np.array([char_beg_idx, char_end_idx, elem_beg_idx, - elem_end_idx, elem_char_idx1, elem_char_idx2, self.max_text_length, - self.max_elem_length, self.max_cell_num, elem_num]) + data['sp_tokens'] = np.array([ + char_beg_idx, char_end_idx, elem_beg_idx, elem_end_idx, + elem_char_idx1, elem_char_idx2, self.max_text_length, + self.max_elem_length, self.max_cell_num, elem_num + ]) return data def encode(self, text, char_or_elem): @@ -504,9 +517,8 @@ class TableLabelEncode(object): idx = np.array(self.dict_elem[self.end_str]) else: assert False, "Unsupport type %s in get_beg_end_flag_idx of elem" \ - % beg_or_end + % beg_or_end else: assert False, "Unsupport type %s in char_or_elem" \ - % char_or_elem + % char_or_elem return idx - \ No newline at end of file diff --git a/ppocr/data/simple_dataset.py b/ppocr/data/simple_dataset.py index ce9e1b3867..b519f4fdea 100644 --- a/ppocr/data/simple_dataset.py +++ b/ppocr/data/simple_dataset.py @@ -22,6 +22,7 @@ from .imaug import transform, create_operators class SimpleDataSet(Dataset): def __init__(self, config, mode, logger, seed=None): + print("===== simpledataset ========") super(SimpleDataSet, self).__init__() self.logger = logger self.mode = mode.lower() diff --git a/ppocr/losses/__init__.py b/ppocr/losses/__init__.py index 025ae7ca5c..2a67377454 100755 --- a/ppocr/losses/__init__.py +++ b/ppocr/losses/__init__.py @@ -41,10 +41,13 @@ from .combined_loss import CombinedLoss # table loss from .table_att_loss import TableAttentionLoss +from .rec_aster_loss import AsterLoss + + def build_loss(config): support_dict = [ 'DBLoss', 'EASTLoss', 'SASTLoss', 'CTCLoss', 'ClsLoss', 'AttentionLoss', - 'SRNLoss', 'PGLoss', 'CombinedLoss', 'TableAttentionLoss' + 'SRNLoss', 'PGLoss', 'CombinedLoss', 'TableAttentionLoss', 'AsterLoss' ] config = copy.deepcopy(config) module_name = config.pop('name') diff --git a/ppocr/losses/rec_aster_loss.py b/ppocr/losses/rec_aster_loss.py new file mode 100644 index 0000000000..858fadc021 --- /dev/null +++ b/ppocr/losses/rec_aster_loss.py @@ -0,0 +1,79 @@ +# copyright (c) 2021 PaddlePaddle Authors. All Rights Reserve. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import paddle +from paddle import nn +import fasttext + + +class AsterLoss(nn.Layer): + def __init__(self, + weight=None, + size_average=True, + ignore_index=-100, + sequence_normalize=False, + sample_normalize=True, + **kwargs): + super(AsterLoss, self).__init__() + self.weight = weight + self.size_average = size_average + self.ignore_index = ignore_index + self.sequence_normalize = sequence_normalize + self.sample_normalize = sample_normalize + self.loss_func = paddle.nn.CosineSimilarity() + + def forward(self, predicts, batch): + targets = batch[1].astype("int64") + label_lengths = batch[2].astype('int64') + # sem_target = batch[3].astype('float32') + embedding_vectors = predicts['embedding_vectors'] + rec_pred = predicts['rec_pred'] + + # semantic loss + # print(embedding_vectors) + # print(embedding_vectors.shape) + # targets = fasttext[targets] + # sem_loss = 1 - self.loss_func(embedding_vectors, targets) + + # rec loss + batch_size, num_steps, num_classes = rec_pred.shape[0], rec_pred.shape[ + 1], rec_pred.shape[2] + assert len(targets.shape) == len(list(rec_pred.shape)) - 1, \ + "The target's shape and inputs's shape is [N, d] and [N, num_steps]" + + mask = paddle.zeros([batch_size, num_steps]) + for i in range(batch_size): + mask[i, :label_lengths[i]] = 1 + mask = paddle.cast(mask, "float32") + max_length = max(label_lengths) + assert max_length == rec_pred.shape[1] + targets = targets[:, :max_length] + mask = mask[:, :max_length] + rec_pred = paddle.reshape(rec_pred, [-1, rec_pred.shape[-1]]) + input = nn.functional.log_softmax(rec_pred, axis=1) + targets = paddle.reshape(targets, [-1, 1]) + mask = paddle.reshape(mask, [-1, 1]) + # print("input:", input) + output = -paddle.gather(input, index=targets, axis=1) * mask + output = paddle.sum(output) + if self.sequence_normalize: + output = output / paddle.sum(mask) + if self.sample_normalize: + output = output / batch_size + loss = output + return {'loss': loss} # , 'sem_loss':sem_loss} diff --git a/ppocr/losses/rec_att_loss.py b/ppocr/losses/rec_att_loss.py index 6e2f67483c..2d8d64b9d2 100644 --- a/ppocr/losses/rec_att_loss.py +++ b/ppocr/losses/rec_att_loss.py @@ -35,5 +35,7 @@ class AttentionLoss(nn.Layer): inputs = paddle.reshape(predicts, [-1, predicts.shape[-1]]) targets = paddle.reshape(targets, [-1]) + print("input:", paddle.argmax(inputs, axis=1)) + print("targets:", targets) return {'loss': paddle.sum(self.loss_func(inputs, targets))} diff --git a/ppocr/modeling/backbones/__init__.py b/ppocr/modeling/backbones/__init__.py index f4fe8c76be..e0bc45b476 100755 --- a/ppocr/modeling/backbones/__init__.py +++ b/ppocr/modeling/backbones/__init__.py @@ -26,8 +26,10 @@ def build_backbone(config, model_type): from .rec_resnet_vd import ResNet from .rec_resnet_fpn import ResNetFPN from .rec_mv1_enhance import MobileNetV1Enhance + from .rec_resnet_aster import ResNet_ASTER support_dict = [ - "MobileNetV1Enhance", "MobileNetV3", "ResNet", "ResNetFPN" + "MobileNetV1Enhance", "MobileNetV3", "ResNet", "ResNetFPN", + "ResNet_ASTER" ] elif model_type == "e2e": from .e2e_resnet_vd_pg import ResNet diff --git a/ppocr/modeling/backbones/levit.py b/ppocr/modeling/backbones/levit.py new file mode 100644 index 0000000000..8b04e9def9 --- /dev/null +++ b/ppocr/modeling/backbones/levit.py @@ -0,0 +1,707 @@ +# Copyright (c) 2015-present, Facebook, Inc. +# All rights reserved. + +# Modified from +# https://github.com/rwightman/pytorch-image-models/blob/master/timm/models/vision_transformer.py +# Copyright 2020 Ross Wightman, Apache-2.0 License + +import paddle +import itertools +#import utils +import math +import warnings +import paddle.nn.functional as F +from paddle.nn.initializer import TruncatedNormal, Constant + +#from timm.models.vision_transformer import trunc_normal_ +#from timm.models.registry import register_model + +specification = { + 'LeViT_128S': { + 'C': '128_256_384', + 'D': 16, + 'N': '4_6_8', + 'X': '2_3_4', + 'drop_path': 0, + 'weights': + 'https://dl.fbaipublicfiles.com/LeViT/LeViT-128S-96703c44.pth' + }, + 'LeViT_128': { + 'C': '128_256_384', + 'D': 16, + 'N': '4_8_12', + 'X': '4_4_4', + 'drop_path': 0, + 'weights': 'https://dl.fbaipublicfiles.com/LeViT/LeViT-128-b88c2750.pth' + }, + 'LeViT_192': { + 'C': '192_288_384', + 'D': 32, + 'N': '3_5_6', + 'X': '4_4_4', + 'drop_path': 0, + 'weights': 'https://dl.fbaipublicfiles.com/LeViT/LeViT-192-92712e41.pth' + }, + 'LeViT_256': { + 'C': '256_384_512', + 'D': 32, + 'N': '4_6_8', + 'X': '4_4_4', + 'drop_path': 0, + 'weights': 'https://dl.fbaipublicfiles.com/LeViT/LeViT-256-13b5763e.pth' + }, + 'LeViT_384': { + 'C': '384_512_768', + 'D': 32, + 'N': '6_9_12', + 'X': '4_4_4', + 'drop_path': 0.1, + 'weights': 'https://dl.fbaipublicfiles.com/LeViT/LeViT-384-9bdaf2e2.pth' + }, +} + +__all__ = [specification.keys()] + +trunc_normal_ = TruncatedNormal(std=.02) +zeros_ = Constant(value=0.) +ones_ = Constant(value=1.) + + +#@register_model +def LeViT_128S(class_dim=1000, distillation=True, pretrained=False, fuse=False): + return model_factory( + **specification['LeViT_128S'], + class_dim=class_dim, + distillation=distillation, + pretrained=pretrained, + fuse=fuse) + + +#@register_model +def LeViT_128(class_dim=1000, distillation=True, pretrained=False, fuse=False): + return model_factory( + **specification['LeViT_128'], + class_dim=class_dim, + distillation=distillation, + pretrained=pretrained, + fuse=fuse) + + +#@register_model +def LeViT_192(class_dim=1000, distillation=True, pretrained=False, fuse=False): + return model_factory( + **specification['LeViT_192'], + class_dim=class_dim, + distillation=distillation, + pretrained=pretrained, + fuse=fuse) + + +#@register_model +def LeViT_256(class_dim=1000, distillation=False, pretrained=False, fuse=False): + return model_factory( + **specification['LeViT_256'], + class_dim=class_dim, + distillation=distillation, + pretrained=pretrained, + fuse=fuse) + + +#@register_model +def LeViT_384(class_dim=1000, distillation=True, pretrained=False, fuse=False): + return model_factory( + **specification['LeViT_384'], + class_dim=class_dim, + distillation=distillation, + pretrained=pretrained, + fuse=fuse) + + +FLOPS_COUNTER = 0 + + +class Conv2d_BN(paddle.nn.Sequential): + def __init__(self, + a, + b, + ks=1, + stride=1, + pad=0, + dilation=1, + groups=1, + bn_weight_init=1, + resolution=-10000): + super().__init__() + self.add_sublayer( + 'c', + paddle.nn.Conv2D( + a, b, ks, stride, pad, dilation, groups, bias_attr=False)) + bn = paddle.nn.BatchNorm2D(b) + ones_(bn.weight) + zeros_(bn.bias) + self.add_sublayer('bn', bn) + + global FLOPS_COUNTER + output_points = ( + (resolution + 2 * pad - dilation * (ks - 1) - 1) // stride + 1)**2 + FLOPS_COUNTER += a * b * output_points * (ks**2) + + @paddle.no_grad() + def fuse(self): + c, bn = self._modules.values() + w = bn.weight / (bn.running_var + bn.eps)**0.5 + w = c.weight * w[:, None, None, None] + b = bn.bias - bn.running_mean * bn.weight / \ + (bn.running_var + bn.eps)**0.5 + m = paddle.nn.Conv2D( + w.size(1), + w.size(0), + w.shape[2:], + stride=self.c.stride, + padding=self.c.padding, + dilation=self.c.dilation, + groups=self.c.groups) + m.weight.data.copy_(w) + m.bias.data.copy_(b) + return m + + +class Linear_BN(paddle.nn.Sequential): + def __init__(self, a, b, bn_weight_init=1, resolution=-100000): + super().__init__() + self.add_sublayer('c', paddle.nn.Linear(a, b, bias_attr=False)) + bn = paddle.nn.BatchNorm1D(b) + ones_(bn.weight) + zeros_(bn.bias) + self.add_sublayer('bn', bn) + + global FLOPS_COUNTER + output_points = resolution**2 + FLOPS_COUNTER += a * b * output_points + + @paddle.no_grad() + def fuse(self): + l, bn = self._modules.values() + w = bn.weight / (bn.running_var + bn.eps)**0.5 + w = l.weight * w[:, None] + b = bn.bias - bn.running_mean * bn.weight / \ + (bn.running_var + bn.eps)**0.5 + m = paddle.nn.Linear(w.size(1), w.size(0)) + m.weight.data.copy_(w) + m.bias.data.copy_(b) + return m + + def forward(self, x): + l, bn = self._sub_layers.values() + x = l(x) + return paddle.reshape(bn(x.flatten(0, 1)), x.shape) + + +class BN_Linear(paddle.nn.Sequential): + def __init__(self, a, b, bias=True, std=0.02): + super().__init__() + self.add_sublayer('bn', paddle.nn.BatchNorm1D(a)) + l = paddle.nn.Linear(a, b, bias_attr=bias) + trunc_normal_(l.weight) + if bias: + zeros_(l.bias) + self.add_sublayer('l', l) + global FLOPS_COUNTER + FLOPS_COUNTER += a * b + + @paddle.no_grad() + def fuse(self): + bn, l = self._modules.values() + w = bn.weight / (bn.running_var + bn.eps)**0.5 + b = bn.bias - self.bn.running_mean * \ + self.bn.weight / (bn.running_var + bn.eps)**0.5 + w = l.weight * w[None, :] + if l.bias is None: + b = b @self.l.weight.T + else: + b = (l.weight @b[:, None]).view(-1) + self.l.bias + m = paddle.nn.Linear(w.size(1), w.size(0)) + m.weight.data.copy_(w) + m.bias.data.copy_(b) + return m + + +def b16(n, activation, resolution=224): + return paddle.nn.Sequential( + Conv2d_BN( + 3, n // 8, 3, 2, 1, resolution=resolution), + activation(), + Conv2d_BN( + n // 8, n // 4, 3, 2, 1, resolution=resolution // 2), + activation(), + Conv2d_BN( + n // 4, n // 2, 3, 2, 1, resolution=resolution // 4), + activation(), + Conv2d_BN( + n // 2, n, 3, 2, 1, resolution=resolution // 8)) + + +class Residual(paddle.nn.Layer): + def __init__(self, m, drop): + super().__init__() + self.m = m + self.drop = drop + + def forward(self, x): + if self.training and self.drop > 0: + return x + self.m(x) * paddle.rand( + x.size(0), 1, 1, + device=x.device).ge_(self.drop).div(1 - self.drop).detach() + else: + return x + self.m(x) + + +class Attention(paddle.nn.Layer): + def __init__(self, + dim, + key_dim, + num_heads=8, + attn_ratio=4, + activation=None, + resolution=14): + super().__init__() + self.num_heads = num_heads + self.scale = key_dim**-0.5 + self.key_dim = key_dim + self.nh_kd = nh_kd = key_dim * num_heads + self.d = int(attn_ratio * key_dim) + self.dh = int(attn_ratio * key_dim) * num_heads + self.attn_ratio = attn_ratio + self.h = self.dh + nh_kd * 2 + self.qkv = Linear_BN(dim, self.h, resolution=resolution) + self.proj = paddle.nn.Sequential( + activation(), + Linear_BN( + self.dh, dim, bn_weight_init=0, resolution=resolution)) + points = list(itertools.product(range(resolution), range(resolution))) + N = len(points) + attention_offsets = {} + idxs = [] + for p1 in points: + for p2 in points: + offset = (abs(p1[0] - p2[0]), abs(p1[1] - p2[1])) + if offset not in attention_offsets: + attention_offsets[offset] = len(attention_offsets) + idxs.append(attention_offsets[offset]) + self.attention_biases = self.create_parameter( + shape=(num_heads, len(attention_offsets)), + default_initializer=zeros_) + tensor_idxs = paddle.to_tensor(idxs, dtype='int64') + self.register_buffer('attention_bias_idxs', + paddle.reshape(tensor_idxs, [N, N])) + + global FLOPS_COUNTER + #queries * keys + FLOPS_COUNTER += num_heads * (resolution**4) * key_dim + # softmax + FLOPS_COUNTER += num_heads * (resolution**4) + #attention * v + FLOPS_COUNTER += num_heads * self.d * (resolution**4) + + @paddle.no_grad() + def train(self, mode=True): + if mode: + super().train() + else: + super().eval() + if mode and hasattr(self, 'ab'): + del self.ab + else: + gather_list = [] + attention_bias_t = paddle.transpose(self.attention_biases, (1, 0)) + for idx in self.attention_bias_idxs: + gather = paddle.gather(attention_bias_t, idx) + gather_list.append(gather) + attention_biases = paddle.transpose( + paddle.concat(gather_list), (1, 0)).reshape( + (0, self.attention_bias_idxs.shape[0], + self.attention_bias_idxs.shape[1])) + self.ab = attention_biases + #self.ab = self.attention_biases[:, self.attention_bias_idxs] + + def forward(self, x): # x (B,N,C) + self.training = True + B, N, C = x.shape + qkv = self.qkv(x) + qkv = paddle.reshape(qkv, + [B, N, self.num_heads, self.h // self.num_heads]) + q, k, v = paddle.split( + qkv, [self.key_dim, self.key_dim, self.d], axis=3) + q = paddle.transpose(q, perm=[0, 2, 1, 3]) + k = paddle.transpose(k, perm=[0, 2, 1, 3]) + v = paddle.transpose(v, perm=[0, 2, 1, 3]) + k_transpose = paddle.transpose(k, perm=[0, 1, 3, 2]) + + if self.training: + gather_list = [] + attention_bias_t = paddle.transpose(self.attention_biases, (1, 0)) + for idx in self.attention_bias_idxs: + gather = paddle.gather(attention_bias_t, idx) + gather_list.append(gather) + attention_biases = paddle.transpose( + paddle.concat(gather_list), (1, 0)).reshape( + (0, self.attention_bias_idxs.shape[0], + self.attention_bias_idxs.shape[1])) + else: + attention_biases = self.ab + #np_ = paddle.to_tensor(self.attention_biases.numpy()[:, self.attention_bias_idxs.numpy()]) + #print(self.attention_bias_idxs.shape) + #print(attention_biases.shape) + #print(np_.shape) + #print(np_.equal(attention_biases)) + #exit() + + attn = ((q @k_transpose) * self.scale + attention_biases) + attn = F.softmax(attn) + x = paddle.transpose(attn @v, perm=[0, 2, 1, 3]) + x = paddle.reshape(x, [B, N, self.dh]) + x = self.proj(x) + return x + + +class Subsample(paddle.nn.Layer): + def __init__(self, stride, resolution): + super().__init__() + self.stride = stride + self.resolution = resolution + + def forward(self, x): + B, N, C = x.shape + x = paddle.reshape(x, [B, self.resolution, self.resolution, + C])[:, ::self.stride, ::self.stride] + x = paddle.reshape(x, [B, -1, C]) + return x + + +class AttentionSubsample(paddle.nn.Layer): + def __init__(self, + in_dim, + out_dim, + key_dim, + num_heads=8, + attn_ratio=2, + activation=None, + stride=2, + resolution=14, + resolution_=7): + super().__init__() + self.num_heads = num_heads + self.scale = key_dim**-0.5 + self.key_dim = key_dim + self.nh_kd = nh_kd = key_dim * num_heads + self.d = int(attn_ratio * key_dim) + self.dh = int(attn_ratio * key_dim) * self.num_heads + self.attn_ratio = attn_ratio + self.resolution_ = resolution_ + self.resolution_2 = resolution_**2 + self.training = True + h = self.dh + nh_kd + self.kv = Linear_BN(in_dim, h, resolution=resolution) + + self.q = paddle.nn.Sequential( + Subsample(stride, resolution), + Linear_BN( + in_dim, nh_kd, resolution=resolution_)) + self.proj = paddle.nn.Sequential( + activation(), Linear_BN( + self.dh, out_dim, resolution=resolution_)) + + self.stride = stride + self.resolution = resolution + points = list(itertools.product(range(resolution), range(resolution))) + points_ = list( + itertools.product(range(resolution_), range(resolution_))) + + N = len(points) + N_ = len(points_) + attention_offsets = {} + idxs = [] + i = 0 + j = 0 + for p1 in points_: + i += 1 + for p2 in points: + j += 1 + size = 1 + offset = (abs(p1[0] * stride - p2[0] + (size - 1) / 2), + abs(p1[1] * stride - p2[1] + (size - 1) / 2)) + if offset not in attention_offsets: + attention_offsets[offset] = len(attention_offsets) + idxs.append(attention_offsets[offset]) + self.attention_biases = self.create_parameter( + shape=(num_heads, len(attention_offsets)), + default_initializer=zeros_) + + tensor_idxs_ = paddle.to_tensor(idxs, dtype='int64') + self.register_buffer('attention_bias_idxs', + paddle.reshape(tensor_idxs_, [N_, N])) + + global FLOPS_COUNTER + #queries * keys + FLOPS_COUNTER += num_heads * \ + (resolution**2) * (resolution_**2) * key_dim + # softmax + FLOPS_COUNTER += num_heads * (resolution**2) * (resolution_**2) + #attention * v + FLOPS_COUNTER += num_heads * \ + (resolution**2) * (resolution_**2) * self.d + + @paddle.no_grad() + def train(self, mode=True): + if mode: + super().train() + else: + super().eval() + if mode and hasattr(self, 'ab'): + del self.ab + else: + gather_list = [] + attention_bias_t = paddle.transpose(self.attention_biases, (1, 0)) + for idx in self.attention_bias_idxs: + gather = paddle.gather(attention_bias_t, idx) + gather_list.append(gather) + attention_biases = paddle.transpose( + paddle.concat(gather_list), (1, 0)).reshape( + (0, self.attention_bias_idxs.shape[0], + self.attention_bias_idxs.shape[1])) + self.ab = attention_biases + #self.ab = self.attention_biases[:, self.attention_bias_idxs] + + def forward(self, x): + self.training = True + B, N, C = x.shape + kv = self.kv(x) + kv = paddle.reshape(kv, [B, N, self.num_heads, -1]) + k, v = paddle.split(kv, [self.key_dim, self.d], axis=3) + k = paddle.transpose(k, perm=[0, 2, 1, 3]) # BHNC + v = paddle.transpose(v, perm=[0, 2, 1, 3]) + q = paddle.reshape( + self.q(x), [B, self.resolution_2, self.num_heads, self.key_dim]) + q = paddle.transpose(q, perm=[0, 2, 1, 3]) + + if self.training: + gather_list = [] + attention_bias_t = paddle.transpose(self.attention_biases, (1, 0)) + for idx in self.attention_bias_idxs: + gather = paddle.gather(attention_bias_t, idx) + gather_list.append(gather) + attention_biases = paddle.transpose( + paddle.concat(gather_list), (1, 0)).reshape( + (0, self.attention_bias_idxs.shape[0], + self.attention_bias_idxs.shape[1])) + else: + attention_biases = self.ab + + attn = (q @paddle.transpose( + k, perm=[0, 1, 3, 2])) * self.scale + attention_biases + attn = F.softmax(attn) + + x = paddle.reshape( + paddle.transpose( + (attn @v), perm=[0, 2, 1, 3]), [B, -1, self.dh]) + x = self.proj(x) + return x + + +class LeViT(paddle.nn.Layer): + """ Vision Transformer with support for patch or hybrid CNN input stage + """ + + def __init__(self, + img_size=224, + patch_size=16, + in_chans=3, + class_dim=1000, + embed_dim=[192], + key_dim=[64], + depth=[12], + num_heads=[3], + attn_ratio=[2], + mlp_ratio=[2], + hybrid_backbone=None, + down_ops=[], + attention_activation=paddle.nn.Hardswish, + mlp_activation=paddle.nn.Hardswish, + distillation=True, + drop_path=0): + super().__init__() + global FLOPS_COUNTER + + self.class_dim = class_dim + self.num_features = embed_dim[-1] + self.embed_dim = embed_dim + self.distillation = distillation + + self.patch_embed = hybrid_backbone + + self.blocks = [] + down_ops.append(['']) + resolution = img_size // patch_size + for i, (ed, kd, dpth, nh, ar, mr, do) in enumerate( + zip(embed_dim, key_dim, depth, num_heads, attn_ratio, mlp_ratio, + down_ops)): + for _ in range(dpth): + self.blocks.append( + Residual( + Attention( + ed, + kd, + nh, + attn_ratio=ar, + activation=attention_activation, + resolution=resolution, ), + drop_path)) + if mr > 0: + h = int(ed * mr) + self.blocks.append( + Residual( + paddle.nn.Sequential( + Linear_BN( + ed, h, resolution=resolution), + mlp_activation(), + Linear_BN( + h, + ed, + bn_weight_init=0, + resolution=resolution), ), + drop_path)) + if do[0] == 'Subsample': + #('Subsample',key_dim, num_heads, attn_ratio, mlp_ratio, stride) + resolution_ = (resolution - 1) // do[5] + 1 + self.blocks.append( + AttentionSubsample( + *embed_dim[i:i + 2], + key_dim=do[1], + num_heads=do[2], + attn_ratio=do[3], + activation=attention_activation, + stride=do[5], + resolution=resolution, + resolution_=resolution_)) + resolution = resolution_ + if do[4] > 0: # mlp_ratio + h = int(embed_dim[i + 1] * do[4]) + self.blocks.append( + Residual( + paddle.nn.Sequential( + Linear_BN( + embed_dim[i + 1], h, resolution=resolution), + mlp_activation(), + Linear_BN( + h, + embed_dim[i + 1], + bn_weight_init=0, + resolution=resolution), ), + drop_path)) + self.blocks = paddle.nn.Sequential(*self.blocks) + + # Classifier head + self.head = BN_Linear( + embed_dim[-1], class_dim) if class_dim > 0 else paddle.nn.Identity() + if distillation: + self.head_dist = BN_Linear( + embed_dim[-1], + class_dim) if class_dim > 0 else paddle.nn.Identity() + + self.FLOPS = FLOPS_COUNTER + FLOPS_COUNTER = 0 + + def no_weight_decay(self): + return {x for x in self.state_dict().keys() if 'attention_biases' in x} + + def forward(self, x): + x = self.patch_embed(x) + x = x.flatten(2) + x = paddle.transpose(x, perm=[0, 2, 1]) + x = self.blocks(x) + x = x.mean(1) + if self.distillation: + x = self.head(x), self.head_dist(x) + if not self.training: + x = (x[0] + x[1]) / 2 + else: + x = self.head(x) + return x + + +def model_factory(C, D, X, N, drop_path, weights, class_dim, distillation, + pretrained, fuse): + embed_dim = [int(x) for x in C.split('_')] + num_heads = [int(x) for x in N.split('_')] + depth = [int(x) for x in X.split('_')] + act = paddle.nn.Hardswish + model = LeViT( + patch_size=16, + embed_dim=embed_dim, + num_heads=num_heads, + key_dim=[D] * 3, + depth=depth, + attn_ratio=[2, 2, 2], + mlp_ratio=[2, 2, 2], + down_ops=[ + #('Subsample',key_dim, num_heads, attn_ratio, mlp_ratio, stride) + ['Subsample', D, embed_dim[0] // D, 4, 2, 2], + ['Subsample', D, embed_dim[1] // D, 4, 2, 2], + ], + attention_activation=act, + mlp_activation=act, + hybrid_backbone=b16(embed_dim[0], activation=act), + class_dim=class_dim, + drop_path=drop_path, + distillation=distillation) + # if pretrained: + # checkpoint = torch.hub.load_state_dict_from_url( + # weights, map_location='cpu') + # model.load_state_dict(checkpoint['model']) + if fuse: + utils.replace_batchnorm(model) + + return model + + +if __name__ == '__main__': + ''' + import torch + checkpoint = torch.load('../LeViT/pretrained256.pth') + torch_dict = checkpoint['net'] + paddle_dict = {} + fc_names = ["c.weight", "l.weight", "qkv.weight", "fc1.weight", "fc2.weight", "downsample.reduction.weight", "head.weight", "attn.proj.weight"] + rename_dict = {"running_mean": "_mean", "running_var": "_variance"} + range_tuple = (0, 502) + idx = 0 + for key in torch_dict: + idx += 1 + weight = torch_dict[key].cpu().numpy() + flag = [i in key for i in fc_names] + if any(flag): + if "emb" not in key: + print("weight {} need to be trans".format(key)) + weight = weight.transpose() + key = key.replace("running_mean", "_mean") + key = key.replace("running_var", "_variance") + paddle_dict[key]=weight + ''' + import numpy as np + net = globals()['LeViT_256'](fuse=False, + pretrained=False, + distillation=False) + load_layer_state_dict = paddle.load( + "./LeViT_256_official_nodistillation_paddle.pdparams") + #net.set_state_dict(paddle_dict) + net.set_state_dict(load_layer_state_dict) + net.eval() + #paddle.save(net.state_dict(), "./LeViT_256_official_paddle.pdparams") + #model = paddle.jit.to_static(net,input_spec=[paddle.static.InputSpec(shape=[None, 3, 224, 224], dtype='float32')]) + #paddle.jit.save(model, "./LeViT_256_official_inference/inference") + #exit() + np.random.seed(123) + img = np.random.rand(1, 3, 224, 224).astype('float32') + img = paddle.to_tensor(img) + outputs = net(img).numpy() + print(outputs[0][:10]) + #print(outputs.shape) diff --git a/ppocr/modeling/backbones/rec_resnet_aster.py b/ppocr/modeling/backbones/rec_resnet_aster.py new file mode 100644 index 0000000000..5bb5803575 --- /dev/null +++ b/ppocr/modeling/backbones/rec_resnet_aster.py @@ -0,0 +1,147 @@ +# copyright (c) 2020 PaddlePaddle Authors. All Rights Reserve. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import paddle +import paddle.nn as nn + +import sys +import math + + +def conv3x3(in_planes, out_planes, stride=1): + """3x3 convolution with padding""" + return nn.Conv2D( + in_planes, + out_planes, + kernel_size=3, + stride=stride, + padding=1, + bias_attr=False) + + +def conv1x1(in_planes, out_planes, stride=1): + """1x1 convolution""" + return nn.Conv2D( + in_planes, out_planes, kernel_size=1, stride=stride, bias_attr=False) + + +def get_sinusoid_encoding(n_position, feat_dim, wave_length=10000): + # [n_position] + positions = paddle.arange(0, n_position) + # [feat_dim] + dim_range = paddle.arange(0, feat_dim) + dim_range = paddle.pow(wave_length, 2 * (dim_range // 2) / feat_dim) + # [n_position, feat_dim] + angles = paddle.unsqueeze( + positions, axis=1) / paddle.unsqueeze( + dim_range, axis=0) + angles = paddle.cast(angles, "float32") + angles[:, 0::2] = paddle.sin(angles[:, 0::2]) + angles[:, 1::2] = paddle.cos(angles[:, 1::2]) + return angles + + +class AsterBlock(nn.Layer): + def __init__(self, inplanes, planes, stride=1, downsample=None): + super(AsterBlock, self).__init__() + self.conv1 = conv1x1(inplanes, planes, stride) + self.bn1 = nn.BatchNorm2D(planes) + self.relu = nn.ReLU() + self.conv2 = conv3x3(planes, planes) + self.bn2 = nn.BatchNorm2D(planes) + self.downsample = downsample + self.stride = stride + + def forward(self, x): + residual = x + out = self.conv1(x) + out = self.bn1(out) + out = self.relu(out) + out = self.conv2(out) + out = self.bn2(out) + + if self.downsample is not None: + residual = self.downsample(x) + out += residual + out = self.relu(out) + return out + + +class ResNet_ASTER(nn.Layer): + """For aster or crnn""" + + def __init__(self, with_lstm=True, n_group=1, in_channels=3): + super(ResNet_ASTER, self).__init__() + self.with_lstm = with_lstm + self.n_group = n_group + + self.layer0 = nn.Sequential( + nn.Conv2D( + in_channels, + 32, + kernel_size=(3, 3), + stride=1, + padding=1, + bias_attr=False), + nn.BatchNorm2D(32), + nn.ReLU()) + + self.inplanes = 32 + self.layer1 = self._make_layer(32, 3, [2, 2]) # [16, 50] + self.layer2 = self._make_layer(64, 4, [2, 2]) # [8, 25] + self.layer3 = self._make_layer(128, 6, [2, 1]) # [4, 25] + self.layer4 = self._make_layer(256, 6, [2, 1]) # [2, 25] + self.layer5 = self._make_layer(512, 3, [2, 1]) # [1, 25] + + if with_lstm: + self.rnn = nn.LSTM(512, 256, direction="bidirect", num_layers=2) + self.out_channels = 2 * 256 + else: + self.out_channels = 512 + + def _make_layer(self, planes, blocks, stride): + downsample = None + if stride != [1, 1] or self.inplanes != planes: + downsample = nn.Sequential( + conv1x1(self.inplanes, planes, stride), nn.BatchNorm2D(planes)) + + layers = [] + layers.append(AsterBlock(self.inplanes, planes, stride, downsample)) + self.inplanes = planes + for _ in range(1, blocks): + layers.append(AsterBlock(self.inplanes, planes)) + return nn.Sequential(*layers) + + def forward(self, x): + x0 = self.layer0(x) + x1 = self.layer1(x0) + x2 = self.layer2(x1) + x3 = self.layer3(x2) + x4 = self.layer4(x3) + x5 = self.layer5(x4) + + cnn_feat = x5.squeeze(2) # [N, c, w] + cnn_feat = paddle.transpose(cnn_feat, perm=[0, 2, 1]) + if self.with_lstm: + rnn_feat, _ = self.rnn(cnn_feat) + return rnn_feat + else: + return cnn_feat + + +if __name__ == "__main__": + x = paddle.randn([3, 3, 32, 100]) + net = ResNet_ASTER() + encoder_feat = net(x) + print(encoder_feat.shape) diff --git a/ppocr/modeling/heads/__init__.py b/ppocr/modeling/heads/__init__.py index 5096479415..cd923d78be 100755 --- a/ppocr/modeling/heads/__init__.py +++ b/ppocr/modeling/heads/__init__.py @@ -26,12 +26,15 @@ def build_head(config): from .rec_ctc_head import CTCHead from .rec_att_head import AttentionHead from .rec_srn_head import SRNHead + from .rec_aster_head import AttentionRecognitionHead, AsterHead # cls head from .cls_head import ClsHead support_dict = [ 'DBHead', 'EASTHead', 'SASTHead', 'CTCHead', 'ClsHead', 'AttentionHead', - 'SRNHead', 'PGHead', 'TableAttentionHead'] + 'SRNHead', 'PGHead', 'TableAttentionHead', 'AttentionRecognitionHead', + 'AsterHead' + ] #table head from .table_att_head import TableAttentionHead @@ -39,5 +42,6 @@ def build_head(config): module_name = config.pop('name') assert module_name in support_dict, Exception('head only support {}'.format( support_dict)) + print(config) module_class = eval(module_name)(**config) return module_class diff --git a/ppocr/modeling/heads/rec_aster_head.py b/ppocr/modeling/heads/rec_aster_head.py new file mode 100644 index 0000000000..055b109730 --- /dev/null +++ b/ppocr/modeling/heads/rec_aster_head.py @@ -0,0 +1,258 @@ +# copyright (c) 2020 PaddlePaddle Authors. All Rights Reserve. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import sys + +import paddle +from paddle import nn +from paddle.nn import functional as F + + +class AsterHead(nn.Layer): + def __init__(self, + in_channels, + out_channels, + sDim, + attDim, + max_len_labels, + time_step=25, + beam_width=5, + **kwargs): + super(AsterHead, self).__init__() + self.num_classes = out_channels + self.in_planes = in_channels + self.sDim = sDim + self.attDim = attDim + self.max_len_labels = max_len_labels + self.decoder = AttentionRecognitionHead(in_channels, out_channels, sDim, + attDim, max_len_labels) + self.time_step = time_step + self.embeder = Embedding(self.time_step, in_channels) + self.beam_width = beam_width + + def forward(self, x, targets=None, embed=None): + return_dict = {} + embedding_vectors = self.embeder(x) + rec_targets, rec_lengths = targets + + if self.training: + rec_pred = self.decoder([x, rec_targets, rec_lengths], + embedding_vectors) + return_dict['rec_pred'] = rec_pred + return_dict['embedding_vectors'] = embedding_vectors + else: + rec_pred, rec_pred_scores = self.decoder.beam_search( + x, self.beam_width, self.eos, embedding_vectors) + return_dict['rec_pred'] = rec_pred + return_dict['rec_pred_scores'] = rec_pred_scores + return_dict['embedding_vectors'] = embedding_vectors + + return return_dict + + +class Embedding(nn.Layer): + def __init__(self, in_timestep, in_planes, mid_dim=4096, embed_dim=300): + super(Embedding, self).__init__() + self.in_timestep = in_timestep + self.in_planes = in_planes + self.embed_dim = embed_dim + self.mid_dim = mid_dim + self.eEmbed = nn.Linear( + in_timestep * in_planes, + self.embed_dim) # Embed encoder output to a word-embedding like + + def forward(self, x): + x = paddle.reshape(x, [paddle.shape(x)[0], -1]) + x = self.eEmbed(x) + return x + + +class AttentionRecognitionHead(nn.Layer): + """ + input: [b x 16 x 64 x in_planes] + output: probability sequence: [b x T x num_classes] + """ + + def __init__(self, in_channels, out_channels, sDim, attDim, max_len_labels): + super(AttentionRecognitionHead, self).__init__() + self.num_classes = out_channels # this is the output classes. So it includes the . + self.in_planes = in_channels + self.sDim = sDim + self.attDim = attDim + self.max_len_labels = max_len_labels + + self.decoder = DecoderUnit( + sDim=sDim, xDim=in_channels, yDim=self.num_classes, attDim=attDim) + + def forward(self, x, embed): + x, targets, lengths = x + batch_size = paddle.shape(x)[0] + # Decoder + state = self.decoder.get_initial_state(embed) + outputs = [] + + for i in range(max(lengths)): + if i == 0: + y_prev = paddle.full( + shape=[batch_size], fill_value=self.num_classes) + else: + y_prev = targets[:, i - 1] + + output, state = self.decoder(x, state, y_prev) + outputs.append(output) + outputs = paddle.concat([_.unsqueeze(1) for _ in outputs], 1) + return outputs + + # inference stage. + def sample(self, x): + x, _, _ = x + batch_size = x.size(0) + # Decoder + state = paddle.zeros([1, batch_size, self.sDim]) + + predicted_ids, predicted_scores = [], [] + for i in range(self.max_len_labels): + if i == 0: + y_prev = paddle.full( + shape=[batch_size], fill_value=self.num_classes) + else: + y_prev = predicted + + output, state = self.decoder(x, state, y_prev) + output = F.softmax(output, axis=1) + score, predicted = output.max(1) + predicted_ids.append(predicted.unsqueeze(1)) + predicted_scores.append(score.unsqueeze(1)) + predicted_ids = paddle.concat([predicted_ids, 1]) + predicted_scores = paddle.concat([predicted_scores, 1]) + # return predicted_ids.squeeze(), predicted_scores.squeeze() + return predicted_ids, predicted_scores + + +class AttentionUnit(nn.Layer): + def __init__(self, sDim, xDim, attDim): + super(AttentionUnit, self).__init__() + + self.sDim = sDim + self.xDim = xDim + self.attDim = attDim + + self.sEmbed = nn.Linear( + sDim, + attDim, + weight_attr=paddle.nn.initializer.Normal(std=0.01), + bias_attr=paddle.nn.initializer.Constant(0.0)) + self.xEmbed = nn.Linear( + xDim, + attDim, + weight_attr=paddle.nn.initializer.Normal(std=0.01), + bias_attr=paddle.nn.initializer.Constant(0.0)) + self.wEmbed = nn.Linear( + attDim, + 1, + weight_attr=paddle.nn.initializer.Normal(std=0.01), + bias_attr=paddle.nn.initializer.Constant(0.0)) + + def forward(self, x, sPrev): + batch_size, T, _ = x.shape # [b x T x xDim] + x = paddle.reshape(x, [-1, self.xDim]) # [(b x T) x xDim] + xProj = self.xEmbed(x) # [(b x T) x attDim] + xProj = paddle.reshape(xProj, [batch_size, T, -1]) # [b x T x attDim] + + sPrev = sPrev.squeeze(0) + sProj = self.sEmbed(sPrev) # [b x attDim] + sProj = paddle.unsqueeze(sProj, 1) # [b x 1 x attDim] + sProj = paddle.expand(sProj, + [batch_size, T, self.attDim]) # [b x T x attDim] + + sumTanh = paddle.tanh(sProj + xProj) + sumTanh = paddle.reshape(sumTanh, [-1, self.attDim]) + + vProj = self.wEmbed(sumTanh) # [(b x T) x 1] + vProj = paddle.reshape(vProj, [batch_size, T]) + + alpha = F.softmax( + vProj, axis=1) # attention weights for each sample in the minibatch + + return alpha + + +class DecoderUnit(nn.Layer): + def __init__(self, sDim, xDim, yDim, attDim): + super(DecoderUnit, self).__init__() + self.sDim = sDim + self.xDim = xDim + self.yDim = yDim + self.attDim = attDim + self.emdDim = attDim + + self.attention_unit = AttentionUnit(sDim, xDim, attDim) + self.tgt_embedding = nn.Embedding( + yDim + 1, self.emdDim, weight_attr=nn.initializer.Normal( + std=0.01)) # the last is used for + self.gru = nn.GRUCell(input_size=xDim + self.emdDim, hidden_size=sDim) + self.fc = nn.Linear( + sDim, + yDim, + weight_attr=nn.initializer.Normal(std=0.01), + bias_attr=nn.initializer.Constant(value=0)) + self.embed_fc = nn.Linear(300, self.sDim) + + def get_initial_state(self, embed, tile_times=1): + assert embed.shape[1] == 300 + state = self.embed_fc(embed) # N * sDim + if tile_times != 1: + state = state.unsqueeze(1) + trans_state = paddle.transpose(state, perm=[1, 0, 2]) + state = paddle.tile(trans_state, repeat_times=[tile_times, 1, 1]) + trans_state = paddle.transpose(state, perm=[1, 0, 2]) + state = paddle.reshape(trans_state, shape=[-1, self.sDim]) + state = state.unsqueeze(0) # 1 * N * sDim + return state + + def forward(self, x, sPrev, yPrev): + # x: feature sequence from the image decoder. + batch_size, T, _ = x.shape + alpha = self.attention_unit(x, sPrev) + context = paddle.squeeze(paddle.matmul(alpha.unsqueeze(1), x), axis=1) + yPrev = paddle.cast(yPrev, dtype="int64") + yProj = self.tgt_embedding(yPrev) + + concat_context = paddle.concat([yProj, context], 1) + concat_context = paddle.squeeze(concat_context, 1) + sPrev = paddle.squeeze(sPrev, 0) + output, state = self.gru(concat_context, sPrev) + output = paddle.squeeze(output, axis=1) + output = self.fc(output) + return output, state + + +if __name__ == "__main__": + model = AttentionRecognitionHead( + num_classes=20, + in_channels=30, + sDim=512, + attDim=512, + max_len_labels=25, + out_channels=38) + + data = paddle.ones([16, 64, 3]) + targets = paddle.ones([16, 25]) + length = paddle.to_tensor(20) + x = [data, targets, length] + output = model(x) + print(output.shape) diff --git a/ppocr/modeling/heads/rec_att_head.py b/ppocr/modeling/heads/rec_att_head.py index 4286d7691d..79f112f723 100644 --- a/ppocr/modeling/heads/rec_att_head.py +++ b/ppocr/modeling/heads/rec_att_head.py @@ -44,10 +44,13 @@ class AttentionHead(nn.Layer): hidden = paddle.zeros((batch_size, self.hidden_size)) output_hiddens = [] + targets = targets[0] + print(targets) if targets is not None: for i in range(num_steps): char_onehots = self._char_to_onehot( targets[:, i], onehot_dim=self.num_classes) + # print("char_onehots:", char_onehots) (outputs, hidden), alpha = self.attention_cell(hidden, inputs, char_onehots) output_hiddens.append(paddle.unsqueeze(outputs, axis=1)) @@ -104,6 +107,8 @@ class AttentionGRUCell(nn.Layer): alpha = paddle.transpose(alpha, [0, 2, 1]) context = paddle.squeeze(paddle.mm(alpha, batch_H), axis=1) concat_context = paddle.concat([context, char_onehots], 1) + # print("concat_context:", concat_context.shape) + # print("prev_hidden:", prev_hidden.shape) cur_hidden = self.rnn(concat_context, prev_hidden) diff --git a/ppocr/modeling/transforms/__init__.py b/ppocr/modeling/transforms/__init__.py index 78eaecccc5..0e02a1c0cf 100755 --- a/ppocr/modeling/transforms/__init__.py +++ b/ppocr/modeling/transforms/__init__.py @@ -17,8 +17,9 @@ __all__ = ['build_transform'] def build_transform(config): from .tps import TPS + from .tps import STN_ON - support_dict = ['TPS'] + support_dict = ['TPS', 'STN_ON'] module_name = config.pop('name') assert module_name in support_dict, Exception( diff --git a/ppocr/modeling/transforms/stn.py b/ppocr/modeling/transforms/stn.py new file mode 100644 index 0000000000..0b26e27aea --- /dev/null +++ b/ppocr/modeling/transforms/stn.py @@ -0,0 +1,121 @@ +# copyright (c) 2020 PaddlePaddle Authors. All Rights Reserve. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import math +import paddle +from paddle import nn, ParamAttr +from paddle.nn import functional as F +import numpy as np + + +def conv3x3_block(in_channels, out_channels, stride=1): + n = 3 * 3 * out_channels + w = math.sqrt(2. / n) + conv_layer = nn.Conv2D( + in_channels, + out_channels, + kernel_size=3, + stride=stride, + padding=1, + weight_attr=nn.initializer.Normal( + mean=0.0, std=w), + bias_attr=nn.initializer.Constant(0)) + block = nn.Sequential(conv_layer, nn.BatchNorm2D(out_channels), nn.ReLU()) + return block + + +class STN(nn.Layer): + def __init__(self, in_channels, num_ctrlpoints, activation='none'): + super(STN, self).__init__() + self.in_channels = in_channels + self.num_ctrlpoints = num_ctrlpoints + self.activation = activation + self.stn_convnet = nn.Sequential( + conv3x3_block(in_channels, 32), #32x64 + nn.MaxPool2D( + kernel_size=2, stride=2), + conv3x3_block(32, 64), #16x32 + nn.MaxPool2D( + kernel_size=2, stride=2), + conv3x3_block(64, 128), # 8*16 + nn.MaxPool2D( + kernel_size=2, stride=2), + conv3x3_block(128, 256), # 4*8 + nn.MaxPool2D( + kernel_size=2, stride=2), + conv3x3_block(256, 256), # 2*4, + nn.MaxPool2D( + kernel_size=2, stride=2), + conv3x3_block(256, 256)) # 1*2 + self.stn_fc1 = nn.Sequential( + nn.Linear( + 2 * 256, + 512, + weight_attr=nn.initializer.Normal(0, 0.001), + bias_attr=nn.initializer.Constant(0)), + nn.BatchNorm1D(512), + nn.ReLU()) + fc2_bias = self.init_stn() + self.stn_fc2 = nn.Linear( + 512, + num_ctrlpoints * 2, + weight_attr=nn.initializer.Constant(0.0), + bias_attr=nn.initializer.Assign(fc2_bias)) + + def init_stn(self): + margin = 0.01 + sampling_num_per_side = int(self.num_ctrlpoints / 2) + ctrl_pts_x = np.linspace(margin, 1. - margin, sampling_num_per_side) + ctrl_pts_y_top = np.ones(sampling_num_per_side) * margin + ctrl_pts_y_bottom = np.ones(sampling_num_per_side) * (1 - margin) + ctrl_pts_top = np.stack([ctrl_pts_x, ctrl_pts_y_top], axis=1) + ctrl_pts_bottom = np.stack([ctrl_pts_x, ctrl_pts_y_bottom], axis=1) + ctrl_points = np.concatenate( + [ctrl_pts_top, ctrl_pts_bottom], axis=0).astype(np.float32) + if self.activation == 'none': + pass + elif self.activation == 'sigmoid': + ctrl_points = -np.log(1. / ctrl_points - 1.) + ctrl_points = paddle.to_tensor(ctrl_points) + fc2_bias = paddle.reshape( + ctrl_points, shape=[ctrl_points.shape[0] * ctrl_points.shape[1]]) + return fc2_bias + + def forward(self, x): + x = self.stn_convnet(x) + batch_size, _, h, w = x.shape + x = paddle.reshape(x, shape=(batch_size, -1)) + img_feat = self.stn_fc1(x) + x = self.stn_fc2(0.1 * img_feat) + if self.activation == 'sigmoid': + x = F.sigmoid(x) + x = paddle.reshape(x, shape=[-1, self.num_ctrlpoints, 2]) + return img_feat, x + + +if __name__ == "__main__": + in_planes = 3 + num_ctrlpoints = 20 + np.random.seed(100) + activation = 'none' # 'sigmoid' + stn_head = STN(in_planes, num_ctrlpoints, activation) + data = np.random.randn(10, 3, 32, 64).astype("float32") + print("data:", np.sum(data)) + input = paddle.to_tensor(data) + #input = paddle.randn([10, 3, 32, 64]) + control_points = stn_head(input) diff --git a/ppocr/modeling/transforms/tps.py b/ppocr/modeling/transforms/tps.py index dcce6246ac..fc46210071 100644 --- a/ppocr/modeling/transforms/tps.py +++ b/ppocr/modeling/transforms/tps.py @@ -22,6 +22,9 @@ from paddle import nn, ParamAttr from paddle.nn import functional as F import numpy as np +from .tps_spatial_transformer import TPSSpatialTransformer +from .stn import STN + class ConvBNLayer(nn.Layer): def __init__(self, @@ -231,7 +234,8 @@ class GridGenerator(nn.Layer): """ Return inv_delta_C which is needed to calculate T """ F = self.F hat_eye = paddle.eye(F, dtype='float64') # F x F - hat_C = paddle.norm(C.reshape([1, F, 2]) - C.reshape([F, 1, 2]), axis=2) + hat_eye + hat_C = paddle.norm( + C.reshape([1, F, 2]) - C.reshape([F, 1, 2]), axis=2) + hat_eye hat_C = (hat_C**2) * paddle.log(hat_C) delta_C = paddle.concat( # F+3 x F+3 [ @@ -301,3 +305,26 @@ class TPS(nn.Layer): [-1, image.shape[2], image.shape[3], 2]) batch_I_r = F.grid_sample(x=image, grid=batch_P_prime) return batch_I_r + + +class STN_ON(nn.Layer): + def __init__(self, in_channels, tps_inputsize, tps_outputsize, + num_control_points, tps_margins, stn_activation): + super(STN_ON, self).__init__() + self.tps = TPSSpatialTransformer( + output_image_size=tuple(tps_outputsize), + num_control_points=num_control_points, + margins=tuple(tps_margins)) + self.stn_head = STN(in_channels=in_channels, + num_ctrlpoints=num_control_points, + activation=stn_activation) + self.tps_inputsize = tps_inputsize + self.out_channels = in_channels + + def forward(self, image): + stn_input = paddle.nn.functional.interpolate( + image, self.tps_inputsize, mode="bilinear", align_corners=True) + stn_img_feat, ctrl_points = self.stn_head(stn_input) + x, _ = self.tps(image, ctrl_points) + # print(x.shape) + return x diff --git a/ppocr/modeling/transforms/tps_spatial_transformer.py b/ppocr/modeling/transforms/tps_spatial_transformer.py new file mode 100644 index 0000000000..da54ffb786 --- /dev/null +++ b/ppocr/modeling/transforms/tps_spatial_transformer.py @@ -0,0 +1,178 @@ +# copyright (c) 2020 PaddlePaddle Authors. All Rights Reserve. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import math +import paddle +from paddle import nn, ParamAttr +from paddle.nn import functional as F +import numpy as np +import itertools + + +def grid_sample(input, grid, canvas=None): + input.stop_gradient = False + output = F.grid_sample(input, grid) + if canvas is None: + return output + else: + input_mask = paddle.ones(shape=input.shape) + output_mask = F.grid_sample(input_mask, grid) + padded_output = output * output_mask + canvas * (1 - output_mask) + return padded_output + + +# phi(x1, x2) = r^2 * log(r), where r = ||x1 - x2||_2 +def compute_partial_repr(input_points, control_points): + N = input_points.shape[0] + M = control_points.shape[0] + pairwise_diff = paddle.reshape( + input_points, shape=[N, 1, 2]) - paddle.reshape( + control_points, shape=[1, M, 2]) + # original implementation, very slow + # pairwise_dist = torch.sum(pairwise_diff ** 2, dim = 2) # square of distance + pairwise_diff_square = pairwise_diff * pairwise_diff + pairwise_dist = pairwise_diff_square[:, :, 0] + pairwise_diff_square[:, :, + 1] + repr_matrix = 0.5 * pairwise_dist * paddle.log(pairwise_dist) + # fix numerical error for 0 * log(0), substitute all nan with 0 + mask = repr_matrix != repr_matrix + repr_matrix[mask] = 0 + return repr_matrix + + +# output_ctrl_pts are specified, according to our task. +def build_output_control_points(num_control_points, margins): + margin_x, margin_y = margins + num_ctrl_pts_per_side = num_control_points // 2 + ctrl_pts_x = np.linspace(margin_x, 1.0 - margin_x, num_ctrl_pts_per_side) + ctrl_pts_y_top = np.ones(num_ctrl_pts_per_side) * margin_y + ctrl_pts_y_bottom = np.ones(num_ctrl_pts_per_side) * (1.0 - margin_y) + ctrl_pts_top = np.stack([ctrl_pts_x, ctrl_pts_y_top], axis=1) + ctrl_pts_bottom = np.stack([ctrl_pts_x, ctrl_pts_y_bottom], axis=1) + # ctrl_pts_top = ctrl_pts_top[1:-1,:] + # ctrl_pts_bottom = ctrl_pts_bottom[1:-1,:] + output_ctrl_pts_arr = np.concatenate( + [ctrl_pts_top, ctrl_pts_bottom], axis=0) + output_ctrl_pts = paddle.to_tensor(output_ctrl_pts_arr) + return output_ctrl_pts + + +class TPSSpatialTransformer(nn.Layer): + def __init__(self, + output_image_size=None, + num_control_points=None, + margins=None): + super(TPSSpatialTransformer, self).__init__() + self.output_image_size = output_image_size + self.num_control_points = num_control_points + self.margins = margins + + self.target_height, self.target_width = output_image_size + target_control_points = build_output_control_points(num_control_points, + margins) + N = num_control_points + # N = N - 4 + + # create padded kernel matrix + forward_kernel = paddle.zeros(shape=[N + 3, N + 3]) + target_control_partial_repr = compute_partial_repr( + target_control_points, target_control_points) + target_control_partial_repr = paddle.cast(target_control_partial_repr, + forward_kernel.dtype) + forward_kernel[:N, :N] = target_control_partial_repr + forward_kernel[:N, -3] = 1 + forward_kernel[-3, :N] = 1 + target_control_points = paddle.cast(target_control_points, + forward_kernel.dtype) + forward_kernel[:N, -2:] = target_control_points + forward_kernel[-2:, :N] = paddle.transpose( + target_control_points, perm=[1, 0]) + # compute inverse matrix + inverse_kernel = paddle.inverse(forward_kernel) + + # create target cordinate matrix + HW = self.target_height * self.target_width + target_coordinate = list( + itertools.product( + range(self.target_height), range(self.target_width))) + target_coordinate = paddle.to_tensor(target_coordinate) # HW x 2 + Y, X = paddle.split( + target_coordinate, target_coordinate.shape[1], axis=1) + #Y, X = target_coordinate.split(1, dim = 1) + Y = Y / (self.target_height - 1) + X = X / (self.target_width - 1) + target_coordinate = paddle.concat( + [X, Y], axis=1) # convert from (y, x) to (x, y) + target_coordinate_partial_repr = compute_partial_repr( + target_coordinate, target_control_points) + target_coordinate_repr = paddle.concat( + [ + target_coordinate_partial_repr, paddle.ones(shape=[HW, 1]), + target_coordinate + ], + axis=1) + + # register precomputed matrices + self.inverse_kernel = inverse_kernel + self.padding_matrix = paddle.zeros(shape=[3, 2]) + self.target_coordinate_repr = target_coordinate_repr + self.target_control_points = target_control_points + + def forward(self, input, source_control_points): + assert source_control_points.ndimension() == 3 + assert source_control_points.shape[1] == self.num_control_points + assert source_control_points.shape[2] == 2 + batch_size = source_control_points.shape[0] + + self.padding_matrix = paddle.expand( + self.padding_matrix, shape=[batch_size, 3, 2]) + Y = paddle.concat([source_control_points, self.padding_matrix], 1) + mapping_matrix = paddle.matmul(self.inverse_kernel, Y) + source_coordinate = paddle.matmul(self.target_coordinate_repr, + mapping_matrix) + + grid = paddle.reshape( + source_coordinate, + shape=[-1, self.target_height, self.target_width, 2]) + grid = paddle.clip(grid, 0, + 1) # the source_control_points may be out of [0, 1]. + # the input to grid_sample is normalized [-1, 1], but what we get is [0, 1] + # grid = 2.0 * grid - 1.0 + output_maps = grid_sample(input, grid, canvas=None) + return output_maps, source_coordinate + + +if __name__ == "__main__": + from stn import STN + in_planes = 3 + num_ctrlpoints = 20 + np.random.seed(100) + activation = 'none' # 'sigmoid' + stn_head = STN(in_planes, num_ctrlpoints, activation) + data = np.random.randn(10, 3, 32, 64).astype("float32") + input = paddle.to_tensor(data) + #input = paddle.randn([10, 3, 32, 64]) + control_points = stn_head(input) + #print("control points:", control_points) + #input = paddle.randn(shape=[10,3,32,100]) + tps = TPSSpatialTransformer( + output_image_size=[32, 320], + num_control_points=20, + margins=[0.05, 0.05]) + out = tps(input, control_points[1]) + print("out 0 :", out[0].shape) + print("out 1:", out[1].shape) diff --git a/ppocr/modeling/transforms/tps_torch.py b/ppocr/modeling/transforms/tps_torch.py new file mode 100644 index 0000000000..7aee133ae3 --- /dev/null +++ b/ppocr/modeling/transforms/tps_torch.py @@ -0,0 +1,149 @@ +from __future__ import absolute_import + +import numpy as np +import itertools + +import torch +import torch.nn as nn +import torch.nn.functional as F + + +def grid_sample(input, grid, canvas=None): + output = F.grid_sample(input, grid) + if canvas is None: + return output + else: + input_mask = input.data.new(input.size()).fill_(1) + output_mask = F.grid_sample(input_mask, grid) + padded_output = output * output_mask + canvas * (1 - output_mask) + return padded_output + + +# phi(x1, x2) = r^2 * log(r), where r = ||x1 - x2||_2 +def compute_partial_repr(input_points, control_points): + N = input_points.size(0) + M = control_points.size(0) + pairwise_diff = input_points.view(N, 1, 2) - control_points.view(1, M, 2) + # original implementation, very slow + # pairwise_dist = torch.sum(pairwise_diff ** 2, dim = 2) # square of distance + pairwise_diff_square = pairwise_diff * pairwise_diff + pairwise_dist = pairwise_diff_square[:, :, 0] + pairwise_diff_square[:, :, + 1] + repr_matrix = 0.5 * pairwise_dist * torch.log(pairwise_dist) + # fix numerical error for 0 * log(0), substitute all nan with 0 + mask = repr_matrix != repr_matrix + repr_matrix.masked_fill_(mask, 0) + return repr_matrix + + +# output_ctrl_pts are specified, according to our task. +def build_output_control_points(num_control_points, margins): + margin_x, margin_y = margins + num_ctrl_pts_per_side = num_control_points // 2 + ctrl_pts_x = np.linspace(margin_x, 1.0 - margin_x, num_ctrl_pts_per_side) + ctrl_pts_y_top = np.ones(num_ctrl_pts_per_side) * margin_y + ctrl_pts_y_bottom = np.ones(num_ctrl_pts_per_side) * (1.0 - margin_y) + ctrl_pts_top = np.stack([ctrl_pts_x, ctrl_pts_y_top], axis=1) + ctrl_pts_bottom = np.stack([ctrl_pts_x, ctrl_pts_y_bottom], axis=1) + # ctrl_pts_top = ctrl_pts_top[1:-1,:] + # ctrl_pts_bottom = ctrl_pts_bottom[1:-1,:] + output_ctrl_pts_arr = np.concatenate( + [ctrl_pts_top, ctrl_pts_bottom], axis=0) + output_ctrl_pts = torch.Tensor(output_ctrl_pts_arr) + return output_ctrl_pts + + +# demo: ~/test/models/test_tps_transformation.py +class TPSSpatialTransformer(nn.Module): + def __init__(self, + output_image_size=None, + num_control_points=None, + margins=None): + super(TPSSpatialTransformer, self).__init__() + self.output_image_size = output_image_size + self.num_control_points = num_control_points + self.margins = margins + + self.target_height, self.target_width = output_image_size + target_control_points = build_output_control_points(num_control_points, + margins) + N = num_control_points + # N = N - 4 + + # create padded kernel matrix + forward_kernel = torch.zeros(N + 3, N + 3) + target_control_partial_repr = compute_partial_repr( + target_control_points, target_control_points) + forward_kernel[:N, :N].copy_(target_control_partial_repr) + forward_kernel[:N, -3].fill_(1) + forward_kernel[-3, :N].fill_(1) + forward_kernel[:N, -2:].copy_(target_control_points) + forward_kernel[-2:, :N].copy_(target_control_points.transpose(0, 1)) + # compute inverse matrix + inverse_kernel = torch.inverse(forward_kernel) + + # create target cordinate matrix + HW = self.target_height * self.target_width + target_coordinate = list( + itertools.product( + range(self.target_height), range(self.target_width))) + target_coordinate = torch.Tensor(target_coordinate) # HW x 2 + Y, X = target_coordinate.split(1, dim=1) + Y = Y / (self.target_height - 1) + X = X / (self.target_width - 1) + target_coordinate = torch.cat([X, Y], + dim=1) # convert from (y, x) to (x, y) + target_coordinate_partial_repr = compute_partial_repr( + target_coordinate, target_control_points) + target_coordinate_repr = torch.cat([ + target_coordinate_partial_repr, torch.ones(HW, 1), target_coordinate + ], + dim=1) + + # register precomputed matrices + self.register_buffer('inverse_kernel', inverse_kernel) + self.register_buffer('padding_matrix', torch.zeros(3, 2)) + self.register_buffer('target_coordinate_repr', target_coordinate_repr) + self.register_buffer('target_control_points', target_control_points) + + def forward(self, input, source_control_points): + assert source_control_points.ndimension() == 3 + assert source_control_points.size(1) == self.num_control_points + assert source_control_points.size(2) == 2 + batch_size = source_control_points.size(0) + + Y = torch.cat([ + source_control_points, self.padding_matrix.expand(batch_size, 3, 2) + ], 1) + mapping_matrix = torch.matmul(self.inverse_kernel, Y) + source_coordinate = torch.matmul(self.target_coordinate_repr, + mapping_matrix) + + grid = source_coordinate.view(-1, self.target_height, self.target_width, + 2) + grid = torch.clamp(grid, 0, + 1) # the source_control_points may be out of [0, 1]. + # the input to grid_sample is normalized [-1, 1], but what we get is [0, 1] + grid = 2.0 * grid - 1.0 + output_maps = grid_sample(input, grid, canvas=None) + return output_maps, source_coordinate + + +if __name__ == "__main__": + from stn_torch import STNHead + in_planes = 3 + num_ctrlpoints = 20 + torch.manual_seed(10) + activation = 'none' # 'sigmoid' + stn_head = STNHead(in_planes, num_ctrlpoints, activation) + np.random.seed(100) + data = np.random.randn(10, 3, 32, 64).astype("float32") + input = torch.tensor(data) + control_points = stn_head(input) + tps = TPSSpatialTransformer( + output_image_size=[32, 320], + num_control_points=20, + margins=[0.05, 0.05]) + out = tps(input, control_points[1]) + print("out 0 :", out[0].shape) + print("out 1:", out[1].shape) diff --git a/ppocr/postprocess/rec_postprocess.py b/ppocr/postprocess/rec_postprocess.py index 8426bcf2b9..17fc7e461c 100644 --- a/ppocr/postprocess/rec_postprocess.py +++ b/ppocr/postprocess/rec_postprocess.py @@ -170,8 +170,10 @@ class AttnLabelDecode(BaseRecLabelDecode): def add_special_char(self, dict_character): self.beg_str = "sos" self.end_str = "eos" + self.unkonwn = "UNKNOWN" dict_character = dict_character - dict_character = [self.beg_str] + dict_character + [self.end_str] + dict_character = [self.beg_str] + dict_character + [self.end_str + ] + [self.unkonwn] return dict_character def decode(self, text_index, text_prob=None, is_remove_duplicate=False): @@ -212,6 +214,7 @@ class AttnLabelDecode(BaseRecLabelDecode): label = self.decode(label, is_remove_duplicate=False) return text, label """ + preds = preds["rec_pred"] if isinstance(preds, paddle.Tensor): preds = preds.numpy() @@ -324,10 +327,9 @@ class SRNLabelDecode(BaseRecLabelDecode): class TableLabelDecode(object): """ """ - def __init__(self, - character_dict_path, - **kwargs): - list_character, list_elem = self.load_char_elem_dict(character_dict_path) + def __init__(self, character_dict_path, **kwargs): + list_character, list_elem = self.load_char_elem_dict( + character_dict_path) list_character = self.add_special_char(list_character) list_elem = self.add_special_char(list_elem) self.dict_character = {} @@ -366,14 +368,14 @@ class TableLabelDecode(object): def __call__(self, preds): structure_probs = preds['structure_probs'] loc_preds = preds['loc_preds'] - if isinstance(structure_probs,paddle.Tensor): + if isinstance(structure_probs, paddle.Tensor): structure_probs = structure_probs.numpy() - if isinstance(loc_preds,paddle.Tensor): + if isinstance(loc_preds, paddle.Tensor): loc_preds = loc_preds.numpy() structure_idx = structure_probs.argmax(axis=2) structure_probs = structure_probs.max(axis=2) - structure_str, structure_pos, result_score_list, result_elem_idx_list = self.decode(structure_idx, - structure_probs, 'elem') + structure_str, structure_pos, result_score_list, result_elem_idx_list = self.decode( + structure_idx, structure_probs, 'elem') res_html_code_list = [] res_loc_list = [] batch_num = len(structure_str) @@ -388,8 +390,13 @@ class TableLabelDecode(object): res_loc = np.array(res_loc) res_html_code_list.append(res_html_code) res_loc_list.append(res_loc) - return {'res_html_code': res_html_code_list, 'res_loc': res_loc_list, 'res_score_list': result_score_list, - 'res_elem_idx_list': result_elem_idx_list,'structure_str_list':structure_str} + return { + 'res_html_code': res_html_code_list, + 'res_loc': res_loc_list, + 'res_score_list': result_score_list, + 'res_elem_idx_list': result_elem_idx_list, + 'structure_str_list': structure_str + } def decode(self, text_index, structure_probs, char_or_elem): """convert text-label into text-index. diff --git a/ppocr/utils/save_load.py b/ppocr/utils/save_load.py index 1d760e983a..0453509c7b 100644 --- a/ppocr/utils/save_load.py +++ b/ppocr/utils/save_load.py @@ -105,13 +105,16 @@ def load_dygraph_params(config, model, logger, optimizer): params = paddle.load(pm) state_dict = model.state_dict() new_state_dict = {} - for k1, k2 in zip(state_dict.keys(), params.keys()): - if list(state_dict[k1].shape) == list(params[k2].shape): - new_state_dict[k1] = params[k2] - else: - logger.info( - f"The shape of model params {k1} {state_dict[k1].shape} not matched with loaded params {k2} {params[k2].shape} !" - ) + # for k1, k2 in zip(state_dict.keys(), params.keys()): + for k1 in state_dict.keys(): + if k1 not in params: + continue + if list(state_dict[k1].shape) == list(params[k1].shape): + new_state_dict[k1] = params[k1] + else: + logger.info( + f"The shape of model params {k1} {state_dict[k1].shape} not matched with loaded params {k1} {params[k1].shape} !" + ) model.set_state_dict(new_state_dict) logger.info(f"loaded pretrained_model successful from {pm}") return {} diff --git a/tools/program.py b/tools/program.py index 2d99f2968a..920cf417ce 100755 --- a/tools/program.py +++ b/tools/program.py @@ -187,6 +187,7 @@ def train(config, use_srn = config['Architecture']['algorithm'] == "SRN" model_type = config['Architecture']['model_type'] + algorithm = config['Architecture']['algorithm'] if 'start_epoch' in best_model_dict: start_epoch = best_model_dict['start_epoch'] @@ -210,10 +211,14 @@ def train(config, images = batch[0] if use_srn: model_average = True - if use_srn or model_type == 'table': - preds = model(images, data=batch[1:]) - else: - preds = model(images) + # if use_srn or model_type == 'table' or algorithm == "ASTER": + # preds = model(images, data=batch[1:]) + # else: + # preds = model(images) + preds = model(images, data=batch[1:]) + state_dict = model.state_dict() + # for key in state_dict: + # print(key) loss = loss_class(preds, batch) avg_loss = loss['loss'] avg_loss.backward() @@ -395,7 +400,7 @@ def preprocess(is_train=False): alg = config['Architecture']['algorithm'] assert alg in [ 'EAST', 'DB', 'SAST', 'Rosetta', 'CRNN', 'STARNet', 'RARE', 'SRN', - 'CLS', 'PGNet', 'Distillation', 'TableAttn' + 'CLS', 'PGNet', 'Distillation', 'TableAttn', 'ASTER' ] device = 'gpu:{}'.format(dist.ParallelEnv().dev_id) if use_gpu else 'cpu' diff --git a/tools/train.py b/tools/train.py index 20f5a670d5..e1515f57c9 100755 --- a/tools/train.py +++ b/tools/train.py @@ -72,6 +72,8 @@ def main(config, device, logger, vdl_writer): # for rec algorithm if hasattr(post_process_class, 'character'): char_num = len(getattr(post_process_class, 'character')) + character = getattr(post_process_class, 'character') + print("getattr character:", character) if config['Architecture']["algorithm"] in ["Distillation", ]: # distillation model for key in config['Architecture']["Models"]: From c9e1077daac3efb2e5c42ebf879aa363d4c59db4 Mon Sep 17 00:00:00 2001 From: tink2123 Date: Mon, 30 Aug 2021 06:32:54 +0000 Subject: [PATCH 02/25] polish code --- configs/rec/rec_resnet_stn_bilstm_att.yml | 65 +- ppocr/data/imaug/__init__.py | 2 +- ppocr/data/imaug/label_ops.py | 38 +- ppocr/data/imaug/operators.py | 16 +- ppocr/data/imaug/rec_img_aug.py | 23 + ppocr/data/simple_dataset.py | 1 - ppocr/losses/rec_aster_loss.py | 55 +- ppocr/losses/rec_att_loss.py | 2 - ppocr/metrics/rec_metric.py | 12 +- ppocr/modeling/backbones/__init__.py | 7 +- ppocr/modeling/backbones/levit.py | 707 ------------------ ppocr/modeling/heads/__init__.py | 1 - ppocr/modeling/heads/rec_aster_head.py | 208 +++++- ppocr/modeling/heads/rec_att_head.py | 5 - ppocr/modeling/transforms/stn.py | 13 - ppocr/modeling/transforms/tps.py | 1 + .../transforms/tps_spatial_transformer.py | 27 +- ppocr/modeling/transforms/tps_torch.py | 149 ---- ppocr/optimizer/optimizer.py | 31 + ppocr/postprocess/__init__.py | 4 +- ppocr/postprocess/rec_postprocess.py | 87 ++- ppocr/utils/save_load.py | 17 +- tools/program.py | 10 +- 23 files changed, 461 insertions(+), 1020 deletions(-) delete mode 100644 ppocr/modeling/backbones/levit.py delete mode 100644 ppocr/modeling/transforms/tps_torch.py diff --git a/configs/rec/rec_resnet_stn_bilstm_att.yml b/configs/rec/rec_resnet_stn_bilstm_att.yml index f705f1e23d..7b5a9c7117 100644 --- a/configs/rec/rec_resnet_stn_bilstm_att.yml +++ b/configs/rec/rec_resnet_stn_bilstm_att.yml @@ -1,9 +1,9 @@ Global: - use_gpu: False + use_gpu: True epoch_num: 400 log_smooth_window: 20 print_batch_step: 10 - save_model_dir: ./output/rec/b3_rare_r34_none_gru/ + save_model_dir: ./output/rec/seed save_epoch_step: 3 # evaluation is run every 5000 iterations after the 4000th iteration eval_batch_step: [0, 2000] @@ -12,28 +12,32 @@ Global: checkpoints: save_inference_dir: use_visualdl: False - infer_img: doc/imgs_words/ch/word_1.jpg + infer_img: doc/imgs_words_en/word_10.png # for data or label process character_dict_path: character_type: EN_symbol - max_text_length: 25 + max_text_length: 100 infer_mode: False use_space_char: False - save_res_path: ./output/rec/predicts_b3_rare_r34_none_gru.txt + eval_filter: True + save_res_path: ./output/rec/predicts_seed.txt Optimizer: - name: Adam - beta1: 0.9 - beta2: 0.999 + name: Adadelta + weight_deacy: 0.0 + momentum: 0.9 lr: - learning_rate: 0.0005 + name: Piecewise + decay_epochs: [4,5,8] + values: [1.0, 0.1, 0.01] regularizer: name: 'L2' - factor: 0.00000 + factor: 2.0e-05 + Architecture: - model_type: rec + model_type: seed algorithm: ASTER Transform: name: STN_ON @@ -54,48 +58,49 @@ Loss: name: AsterLoss PostProcess: - name: AttnLabelDecode + name: SEEDLabelDecode Metric: name: RecMetric main_indicator: acc + is_filter: True Train: dataset: - name: SimpleDataSet - data_dir: ./train_data/ic15_data/ - label_file_list: ["./train_data/ic15_data/1.txt"] + name: LMDBDataSet + data_dir: ./train_data/data_lmdb_release/training/ transforms: + - Fasttext: + path: "./cc.en.300.bin" - DecodeImage: # load image img_mode: BGR channel_first: False - - AttnLabelEncode: # Class handling label - - RecResizeImg: - image_shape: [3, 32, 100] + - SEEDLabelEncode: # Class handling label + - SEEDResize: + image_shape: [3, 64, 256] - KeepKeys: - keep_keys: ['image', 'label', 'length'] # dataloader will return list in this order + keep_keys: ['image', 'label', 'length', 'fast_label'] # dataloader will return list in this order loader: shuffle: True - batch_size_per_card: 2 + batch_size_per_card: 256 drop_last: True - num_workers: 8 + num_workers: 6 Eval: dataset: - name: SimpleDataSet - data_dir: ./train_data/ic15_data/ - label_file_list: ["./train_data/ic15_data/1.txt"] + name: LMDBDataSet + data_dir: ./train_data/data_lmdb_release/evaluation/ transforms: - DecodeImage: # load image img_mode: BGR channel_first: False - - AttnLabelEncode: # Class handling label - - RecResizeImg: - image_shape: [3, 32, 100] + - SEEDLabelEncode: # Class handling label + - SEEDResize: + image_shape: [3, 64, 256] - KeepKeys: keep_keys: ['image', 'label', 'length'] # dataloader will return list in this order loader: shuffle: False - drop_last: False - batch_size_per_card: 2 - num_workers: 8 + drop_last: True + batch_size_per_card: 256 + num_workers: 4 diff --git a/ppocr/data/imaug/__init__.py b/ppocr/data/imaug/__init__.py index 52194eb964..7a792c2fe7 100644 --- a/ppocr/data/imaug/__init__.py +++ b/ppocr/data/imaug/__init__.py @@ -21,7 +21,7 @@ from .make_border_map import MakeBorderMap from .make_shrink_map import MakeShrinkMap from .random_crop_data import EastRandomCropData, PSERandomCrop -from .rec_img_aug import RecAug, RecResizeImg, ClsResizeImg, SRNRecResizeImg +from .rec_img_aug import RecAug, RecResizeImg, ClsResizeImg, SRNRecResizeImg, SEEDResize from .randaugment import RandAugment from .copy_paste import CopyPaste from .operators import * diff --git a/ppocr/data/imaug/label_ops.py b/ppocr/data/imaug/label_ops.py index 0e1d4939d6..21d910304e 100644 --- a/ppocr/data/imaug/label_ops.py +++ b/ppocr/data/imaug/label_ops.py @@ -276,9 +276,7 @@ class AttnLabelEncode(BaseRecLabelEncode): def add_special_char(self, dict_character): self.beg_str = "sos" self.end_str = "eos" - self.unknown = "UNKNOWN" - dict_character = [self.beg_str] + dict_character + [self.end_str - ] + [self.unknown] + dict_character = [self.beg_str] + dict_character + [self.end_str] return dict_character def __call__(self, data): @@ -291,7 +289,6 @@ class AttnLabelEncode(BaseRecLabelEncode): data['length'] = np.array(len(text)) text = [0] + text + [len(self.character) - 1] + [0] * (self.max_text_len - len(text) - 2) - data['label'] = np.array(text) return data @@ -311,6 +308,39 @@ class AttnLabelEncode(BaseRecLabelEncode): return idx +class SEEDLabelEncode(BaseRecLabelEncode): + """ Convert between text-label and text-index """ + + def __init__(self, + max_text_length, + character_dict_path=None, + character_type='ch', + use_space_char=False, + **kwargs): + super(SEEDLabelEncode, + self).__init__(max_text_length, character_dict_path, + character_type, use_space_char) + + def add_special_char(self, dict_character): + self.beg_str = "sos" + self.end_str = "eos" + dict_character = dict_character + [self.end_str] + return dict_character + + def __call__(self, data): + text = data['label'] + text = self.encode(text) + if text is None: + return None + if len(text) >= self.max_text_len: + return None + data['length'] = np.array(len(text)) + 1 # conclue eos + text = text + [len(self.character) - 1] * (self.max_text_len - len(text) + ) + data['label'] = np.array(text) + return data + + class SRNLabelEncode(BaseRecLabelEncode): """ Convert between text-label and text-index """ diff --git a/ppocr/data/imaug/operators.py b/ppocr/data/imaug/operators.py index 2535b4420c..ba5f01b4ec 100644 --- a/ppocr/data/imaug/operators.py +++ b/ppocr/data/imaug/operators.py @@ -23,6 +23,7 @@ import sys import six import cv2 import numpy as np +import fasttext class DecodeImage(object): @@ -81,7 +82,7 @@ class NormalizeImage(object): assert isinstance(img, np.ndarray), "invalid input 'img' in NormalizeImage" data['image'] = ( - img.astype('float32') * self.scale - self.mean) / self.std + img.astype('float32') * self.scale - self.mean) / self.std return data @@ -101,6 +102,17 @@ class ToCHWImage(object): return data +class Fasttext(object): + def __init__(self, path="None", **kwargs): + self.fast_model = fasttext.load_model(path) + + def __call__(self, data): + label = data['label'] + fast_label = self.fast_model[label] + data['fast_label'] = fast_label + return data + + class KeepKeys(object): def __init__(self, keep_keys, **kwargs): self.keep_keys = keep_keys @@ -183,7 +195,7 @@ class DetResizeForTest(object): else: ratio = 1. elif self.limit_type == 'resize_long': - ratio = float(limit_side_len) / max(h,w) + ratio = float(limit_side_len) / max(h, w) else: raise Exception('not support limit type, image ') resize_h = int(h * ratio) diff --git a/ppocr/data/imaug/rec_img_aug.py b/ppocr/data/imaug/rec_img_aug.py index 28e6bd0bce..ed5b7a52c6 100644 --- a/ppocr/data/imaug/rec_img_aug.py +++ b/ppocr/data/imaug/rec_img_aug.py @@ -63,6 +63,18 @@ class RecResizeImg(object): return data +class SEEDResize(object): + def __init__(self, image_shape, infer_mode=False, **kwargs): + self.image_shape = image_shape + self.infer_mode = infer_mode + + def __call__(self, data): + img = data['image'] + norm_img = resize_no_padding_img(img, self.image_shape) + data['image'] = norm_img + return data + + class SRNRecResizeImg(object): def __init__(self, image_shape, num_heads, max_text_length, **kwargs): self.image_shape = image_shape @@ -106,6 +118,17 @@ def resize_norm_img(img, image_shape): return padding_im +def resize_no_padding_img(img, image_shape): + imgC, imgH, imgW = image_shape + resized_image = cv2.resize( + img, (imgW, imgH), interpolation=cv2.INTER_LINEAR) + resized_image = resized_image.astype('float32') + resized_image = resized_image.transpose((2, 0, 1)) / 255 + resized_image -= 0.5 + resized_image /= 0.5 + return resized_image + + def resize_norm_img_chinese(img, image_shape): imgC, imgH, imgW = image_shape # todo: change to 0 and modified image shape diff --git a/ppocr/data/simple_dataset.py b/ppocr/data/simple_dataset.py index b519f4fdea..ce9e1b3867 100644 --- a/ppocr/data/simple_dataset.py +++ b/ppocr/data/simple_dataset.py @@ -22,7 +22,6 @@ from .imaug import transform, create_operators class SimpleDataSet(Dataset): def __init__(self, config, mode, logger, seed=None): - print("===== simpledataset ========") super(SimpleDataSet, self).__init__() self.logger = logger self.mode = mode.lower() diff --git a/ppocr/losses/rec_aster_loss.py b/ppocr/losses/rec_aster_loss.py index 858fadc021..d900617ffd 100644 --- a/ppocr/losses/rec_aster_loss.py +++ b/ppocr/losses/rec_aster_loss.py @@ -18,7 +18,26 @@ from __future__ import print_function import paddle from paddle import nn -import fasttext + + +class CosineEmbeddingLoss(nn.Layer): + def __init__(self, margin=0.): + super(CosineEmbeddingLoss, self).__init__() + self.margin = margin + + def forward(self, x1, x2, target): + similarity = paddle.fluid.layers.reduce_sum( + x1 * x2, dim=-1) / (paddle.norm( + x1, axis=-1) * paddle.norm( + x2, axis=-1)) + one_list = paddle.full_like(target, fill_value=1) + out = paddle.fluid.layers.reduce_mean( + paddle.where( + paddle.equal(target, one_list), 1. - similarity, + paddle.maximum( + paddle.zeros_like(similarity), similarity - self.margin))) + + return out class AsterLoss(nn.Layer): @@ -35,28 +54,28 @@ class AsterLoss(nn.Layer): self.ignore_index = ignore_index self.sequence_normalize = sequence_normalize self.sample_normalize = sample_normalize - self.loss_func = paddle.nn.CosineSimilarity() + self.loss_sem = CosineEmbeddingLoss() + self.is_cosin_loss = True + self.loss_func_rec = nn.CrossEntropyLoss(weight=None, reduction='none') def forward(self, predicts, batch): targets = batch[1].astype("int64") label_lengths = batch[2].astype('int64') - # sem_target = batch[3].astype('float32') + sem_target = batch[3].astype('float32') embedding_vectors = predicts['embedding_vectors'] rec_pred = predicts['rec_pred'] - # semantic loss - # print(embedding_vectors) - # print(embedding_vectors.shape) - # targets = fasttext[targets] - # sem_loss = 1 - self.loss_func(embedding_vectors, targets) + if not self.is_cosin_loss: + sem_loss = paddle.sum(self.loss_sem(embedding_vectors, sem_target)) + else: + label_target = paddle.ones([embedding_vectors.shape[0]]) + sem_loss = paddle.sum( + self.loss_sem(embedding_vectors, sem_target, label_target)) # rec loss - batch_size, num_steps, num_classes = rec_pred.shape[0], rec_pred.shape[ - 1], rec_pred.shape[2] - assert len(targets.shape) == len(list(rec_pred.shape)) - 1, \ - "The target's shape and inputs's shape is [N, d] and [N, num_steps]" + batch_size, def_max_length = targets.shape[0], targets.shape[1] - mask = paddle.zeros([batch_size, num_steps]) + mask = paddle.zeros([batch_size, def_max_length]) for i in range(batch_size): mask[i, :label_lengths[i]] = 1 mask = paddle.cast(mask, "float32") @@ -64,16 +83,16 @@ class AsterLoss(nn.Layer): assert max_length == rec_pred.shape[1] targets = targets[:, :max_length] mask = mask[:, :max_length] - rec_pred = paddle.reshape(rec_pred, [-1, rec_pred.shape[-1]]) + rec_pred = paddle.reshape(rec_pred, [-1, rec_pred.shape[2]]) input = nn.functional.log_softmax(rec_pred, axis=1) targets = paddle.reshape(targets, [-1, 1]) mask = paddle.reshape(mask, [-1, 1]) - # print("input:", input) - output = -paddle.gather(input, index=targets, axis=1) * mask + output = -paddle.index_sample(input, index=targets) * mask output = paddle.sum(output) if self.sequence_normalize: output = output / paddle.sum(mask) if self.sample_normalize: output = output / batch_size - loss = output - return {'loss': loss} # , 'sem_loss':sem_loss} + + loss = output + sem_loss * 0.1 + return {'loss': loss} diff --git a/ppocr/losses/rec_att_loss.py b/ppocr/losses/rec_att_loss.py index 2d8d64b9d2..6e2f67483c 100644 --- a/ppocr/losses/rec_att_loss.py +++ b/ppocr/losses/rec_att_loss.py @@ -35,7 +35,5 @@ class AttentionLoss(nn.Layer): inputs = paddle.reshape(predicts, [-1, predicts.shape[-1]]) targets = paddle.reshape(targets, [-1]) - print("input:", paddle.argmax(inputs, axis=1)) - print("targets:", targets) return {'loss': paddle.sum(self.loss_func(inputs, targets))} diff --git a/ppocr/metrics/rec_metric.py b/ppocr/metrics/rec_metric.py index 66c084d771..db2f41c3a1 100644 --- a/ppocr/metrics/rec_metric.py +++ b/ppocr/metrics/rec_metric.py @@ -13,13 +13,20 @@ # limitations under the License. import Levenshtein +import string class RecMetric(object): - def __init__(self, main_indicator='acc', **kwargs): + def __init__(self, main_indicator='acc', is_filter=False, **kwargs): self.main_indicator = main_indicator + self.is_filter = is_filter self.reset() + def _normalize_text(self, text): + text = ''.join( + filter(lambda x: x in (string.digits + string.ascii_letters), text)) + return text.lower() + def __call__(self, pred_label, *args, **kwargs): preds, labels = pred_label correct_num = 0 @@ -28,6 +35,9 @@ class RecMetric(object): for (pred, pred_conf), (target, _) in zip(preds, labels): pred = pred.replace(" ", "") target = target.replace(" ", "") + if self.is_filter: + pred = self._normalize_text(pred) + target = self._normalize_text(target) norm_edit_dis += Levenshtein.distance(pred, target) / max( len(pred), len(target), 1) if pred == target: diff --git a/ppocr/modeling/backbones/__init__.py b/ppocr/modeling/backbones/__init__.py index e0bc45b476..25cedb1624 100755 --- a/ppocr/modeling/backbones/__init__.py +++ b/ppocr/modeling/backbones/__init__.py @@ -26,10 +26,8 @@ def build_backbone(config, model_type): from .rec_resnet_vd import ResNet from .rec_resnet_fpn import ResNetFPN from .rec_mv1_enhance import MobileNetV1Enhance - from .rec_resnet_aster import ResNet_ASTER support_dict = [ - "MobileNetV1Enhance", "MobileNetV3", "ResNet", "ResNetFPN", - "ResNet_ASTER" + "MobileNetV1Enhance", "MobileNetV3", "ResNet", "ResNetFPN" ] elif model_type == "e2e": from .e2e_resnet_vd_pg import ResNet @@ -38,6 +36,9 @@ def build_backbone(config, model_type): from .table_resnet_vd import ResNet from .table_mobilenet_v3 import MobileNetV3 support_dict = ["ResNet", "MobileNetV3"] + elif model_type == "seed": + from .rec_resnet_aster import ResNet_ASTER + support_dict = ["ResNet_ASTER"] else: raise NotImplementedError diff --git a/ppocr/modeling/backbones/levit.py b/ppocr/modeling/backbones/levit.py deleted file mode 100644 index 8b04e9def9..0000000000 --- a/ppocr/modeling/backbones/levit.py +++ /dev/null @@ -1,707 +0,0 @@ -# Copyright (c) 2015-present, Facebook, Inc. -# All rights reserved. - -# Modified from -# https://github.com/rwightman/pytorch-image-models/blob/master/timm/models/vision_transformer.py -# Copyright 2020 Ross Wightman, Apache-2.0 License - -import paddle -import itertools -#import utils -import math -import warnings -import paddle.nn.functional as F -from paddle.nn.initializer import TruncatedNormal, Constant - -#from timm.models.vision_transformer import trunc_normal_ -#from timm.models.registry import register_model - -specification = { - 'LeViT_128S': { - 'C': '128_256_384', - 'D': 16, - 'N': '4_6_8', - 'X': '2_3_4', - 'drop_path': 0, - 'weights': - 'https://dl.fbaipublicfiles.com/LeViT/LeViT-128S-96703c44.pth' - }, - 'LeViT_128': { - 'C': '128_256_384', - 'D': 16, - 'N': '4_8_12', - 'X': '4_4_4', - 'drop_path': 0, - 'weights': 'https://dl.fbaipublicfiles.com/LeViT/LeViT-128-b88c2750.pth' - }, - 'LeViT_192': { - 'C': '192_288_384', - 'D': 32, - 'N': '3_5_6', - 'X': '4_4_4', - 'drop_path': 0, - 'weights': 'https://dl.fbaipublicfiles.com/LeViT/LeViT-192-92712e41.pth' - }, - 'LeViT_256': { - 'C': '256_384_512', - 'D': 32, - 'N': '4_6_8', - 'X': '4_4_4', - 'drop_path': 0, - 'weights': 'https://dl.fbaipublicfiles.com/LeViT/LeViT-256-13b5763e.pth' - }, - 'LeViT_384': { - 'C': '384_512_768', - 'D': 32, - 'N': '6_9_12', - 'X': '4_4_4', - 'drop_path': 0.1, - 'weights': 'https://dl.fbaipublicfiles.com/LeViT/LeViT-384-9bdaf2e2.pth' - }, -} - -__all__ = [specification.keys()] - -trunc_normal_ = TruncatedNormal(std=.02) -zeros_ = Constant(value=0.) -ones_ = Constant(value=1.) - - -#@register_model -def LeViT_128S(class_dim=1000, distillation=True, pretrained=False, fuse=False): - return model_factory( - **specification['LeViT_128S'], - class_dim=class_dim, - distillation=distillation, - pretrained=pretrained, - fuse=fuse) - - -#@register_model -def LeViT_128(class_dim=1000, distillation=True, pretrained=False, fuse=False): - return model_factory( - **specification['LeViT_128'], - class_dim=class_dim, - distillation=distillation, - pretrained=pretrained, - fuse=fuse) - - -#@register_model -def LeViT_192(class_dim=1000, distillation=True, pretrained=False, fuse=False): - return model_factory( - **specification['LeViT_192'], - class_dim=class_dim, - distillation=distillation, - pretrained=pretrained, - fuse=fuse) - - -#@register_model -def LeViT_256(class_dim=1000, distillation=False, pretrained=False, fuse=False): - return model_factory( - **specification['LeViT_256'], - class_dim=class_dim, - distillation=distillation, - pretrained=pretrained, - fuse=fuse) - - -#@register_model -def LeViT_384(class_dim=1000, distillation=True, pretrained=False, fuse=False): - return model_factory( - **specification['LeViT_384'], - class_dim=class_dim, - distillation=distillation, - pretrained=pretrained, - fuse=fuse) - - -FLOPS_COUNTER = 0 - - -class Conv2d_BN(paddle.nn.Sequential): - def __init__(self, - a, - b, - ks=1, - stride=1, - pad=0, - dilation=1, - groups=1, - bn_weight_init=1, - resolution=-10000): - super().__init__() - self.add_sublayer( - 'c', - paddle.nn.Conv2D( - a, b, ks, stride, pad, dilation, groups, bias_attr=False)) - bn = paddle.nn.BatchNorm2D(b) - ones_(bn.weight) - zeros_(bn.bias) - self.add_sublayer('bn', bn) - - global FLOPS_COUNTER - output_points = ( - (resolution + 2 * pad - dilation * (ks - 1) - 1) // stride + 1)**2 - FLOPS_COUNTER += a * b * output_points * (ks**2) - - @paddle.no_grad() - def fuse(self): - c, bn = self._modules.values() - w = bn.weight / (bn.running_var + bn.eps)**0.5 - w = c.weight * w[:, None, None, None] - b = bn.bias - bn.running_mean * bn.weight / \ - (bn.running_var + bn.eps)**0.5 - m = paddle.nn.Conv2D( - w.size(1), - w.size(0), - w.shape[2:], - stride=self.c.stride, - padding=self.c.padding, - dilation=self.c.dilation, - groups=self.c.groups) - m.weight.data.copy_(w) - m.bias.data.copy_(b) - return m - - -class Linear_BN(paddle.nn.Sequential): - def __init__(self, a, b, bn_weight_init=1, resolution=-100000): - super().__init__() - self.add_sublayer('c', paddle.nn.Linear(a, b, bias_attr=False)) - bn = paddle.nn.BatchNorm1D(b) - ones_(bn.weight) - zeros_(bn.bias) - self.add_sublayer('bn', bn) - - global FLOPS_COUNTER - output_points = resolution**2 - FLOPS_COUNTER += a * b * output_points - - @paddle.no_grad() - def fuse(self): - l, bn = self._modules.values() - w = bn.weight / (bn.running_var + bn.eps)**0.5 - w = l.weight * w[:, None] - b = bn.bias - bn.running_mean * bn.weight / \ - (bn.running_var + bn.eps)**0.5 - m = paddle.nn.Linear(w.size(1), w.size(0)) - m.weight.data.copy_(w) - m.bias.data.copy_(b) - return m - - def forward(self, x): - l, bn = self._sub_layers.values() - x = l(x) - return paddle.reshape(bn(x.flatten(0, 1)), x.shape) - - -class BN_Linear(paddle.nn.Sequential): - def __init__(self, a, b, bias=True, std=0.02): - super().__init__() - self.add_sublayer('bn', paddle.nn.BatchNorm1D(a)) - l = paddle.nn.Linear(a, b, bias_attr=bias) - trunc_normal_(l.weight) - if bias: - zeros_(l.bias) - self.add_sublayer('l', l) - global FLOPS_COUNTER - FLOPS_COUNTER += a * b - - @paddle.no_grad() - def fuse(self): - bn, l = self._modules.values() - w = bn.weight / (bn.running_var + bn.eps)**0.5 - b = bn.bias - self.bn.running_mean * \ - self.bn.weight / (bn.running_var + bn.eps)**0.5 - w = l.weight * w[None, :] - if l.bias is None: - b = b @self.l.weight.T - else: - b = (l.weight @b[:, None]).view(-1) + self.l.bias - m = paddle.nn.Linear(w.size(1), w.size(0)) - m.weight.data.copy_(w) - m.bias.data.copy_(b) - return m - - -def b16(n, activation, resolution=224): - return paddle.nn.Sequential( - Conv2d_BN( - 3, n // 8, 3, 2, 1, resolution=resolution), - activation(), - Conv2d_BN( - n // 8, n // 4, 3, 2, 1, resolution=resolution // 2), - activation(), - Conv2d_BN( - n // 4, n // 2, 3, 2, 1, resolution=resolution // 4), - activation(), - Conv2d_BN( - n // 2, n, 3, 2, 1, resolution=resolution // 8)) - - -class Residual(paddle.nn.Layer): - def __init__(self, m, drop): - super().__init__() - self.m = m - self.drop = drop - - def forward(self, x): - if self.training and self.drop > 0: - return x + self.m(x) * paddle.rand( - x.size(0), 1, 1, - device=x.device).ge_(self.drop).div(1 - self.drop).detach() - else: - return x + self.m(x) - - -class Attention(paddle.nn.Layer): - def __init__(self, - dim, - key_dim, - num_heads=8, - attn_ratio=4, - activation=None, - resolution=14): - super().__init__() - self.num_heads = num_heads - self.scale = key_dim**-0.5 - self.key_dim = key_dim - self.nh_kd = nh_kd = key_dim * num_heads - self.d = int(attn_ratio * key_dim) - self.dh = int(attn_ratio * key_dim) * num_heads - self.attn_ratio = attn_ratio - self.h = self.dh + nh_kd * 2 - self.qkv = Linear_BN(dim, self.h, resolution=resolution) - self.proj = paddle.nn.Sequential( - activation(), - Linear_BN( - self.dh, dim, bn_weight_init=0, resolution=resolution)) - points = list(itertools.product(range(resolution), range(resolution))) - N = len(points) - attention_offsets = {} - idxs = [] - for p1 in points: - for p2 in points: - offset = (abs(p1[0] - p2[0]), abs(p1[1] - p2[1])) - if offset not in attention_offsets: - attention_offsets[offset] = len(attention_offsets) - idxs.append(attention_offsets[offset]) - self.attention_biases = self.create_parameter( - shape=(num_heads, len(attention_offsets)), - default_initializer=zeros_) - tensor_idxs = paddle.to_tensor(idxs, dtype='int64') - self.register_buffer('attention_bias_idxs', - paddle.reshape(tensor_idxs, [N, N])) - - global FLOPS_COUNTER - #queries * keys - FLOPS_COUNTER += num_heads * (resolution**4) * key_dim - # softmax - FLOPS_COUNTER += num_heads * (resolution**4) - #attention * v - FLOPS_COUNTER += num_heads * self.d * (resolution**4) - - @paddle.no_grad() - def train(self, mode=True): - if mode: - super().train() - else: - super().eval() - if mode and hasattr(self, 'ab'): - del self.ab - else: - gather_list = [] - attention_bias_t = paddle.transpose(self.attention_biases, (1, 0)) - for idx in self.attention_bias_idxs: - gather = paddle.gather(attention_bias_t, idx) - gather_list.append(gather) - attention_biases = paddle.transpose( - paddle.concat(gather_list), (1, 0)).reshape( - (0, self.attention_bias_idxs.shape[0], - self.attention_bias_idxs.shape[1])) - self.ab = attention_biases - #self.ab = self.attention_biases[:, self.attention_bias_idxs] - - def forward(self, x): # x (B,N,C) - self.training = True - B, N, C = x.shape - qkv = self.qkv(x) - qkv = paddle.reshape(qkv, - [B, N, self.num_heads, self.h // self.num_heads]) - q, k, v = paddle.split( - qkv, [self.key_dim, self.key_dim, self.d], axis=3) - q = paddle.transpose(q, perm=[0, 2, 1, 3]) - k = paddle.transpose(k, perm=[0, 2, 1, 3]) - v = paddle.transpose(v, perm=[0, 2, 1, 3]) - k_transpose = paddle.transpose(k, perm=[0, 1, 3, 2]) - - if self.training: - gather_list = [] - attention_bias_t = paddle.transpose(self.attention_biases, (1, 0)) - for idx in self.attention_bias_idxs: - gather = paddle.gather(attention_bias_t, idx) - gather_list.append(gather) - attention_biases = paddle.transpose( - paddle.concat(gather_list), (1, 0)).reshape( - (0, self.attention_bias_idxs.shape[0], - self.attention_bias_idxs.shape[1])) - else: - attention_biases = self.ab - #np_ = paddle.to_tensor(self.attention_biases.numpy()[:, self.attention_bias_idxs.numpy()]) - #print(self.attention_bias_idxs.shape) - #print(attention_biases.shape) - #print(np_.shape) - #print(np_.equal(attention_biases)) - #exit() - - attn = ((q @k_transpose) * self.scale + attention_biases) - attn = F.softmax(attn) - x = paddle.transpose(attn @v, perm=[0, 2, 1, 3]) - x = paddle.reshape(x, [B, N, self.dh]) - x = self.proj(x) - return x - - -class Subsample(paddle.nn.Layer): - def __init__(self, stride, resolution): - super().__init__() - self.stride = stride - self.resolution = resolution - - def forward(self, x): - B, N, C = x.shape - x = paddle.reshape(x, [B, self.resolution, self.resolution, - C])[:, ::self.stride, ::self.stride] - x = paddle.reshape(x, [B, -1, C]) - return x - - -class AttentionSubsample(paddle.nn.Layer): - def __init__(self, - in_dim, - out_dim, - key_dim, - num_heads=8, - attn_ratio=2, - activation=None, - stride=2, - resolution=14, - resolution_=7): - super().__init__() - self.num_heads = num_heads - self.scale = key_dim**-0.5 - self.key_dim = key_dim - self.nh_kd = nh_kd = key_dim * num_heads - self.d = int(attn_ratio * key_dim) - self.dh = int(attn_ratio * key_dim) * self.num_heads - self.attn_ratio = attn_ratio - self.resolution_ = resolution_ - self.resolution_2 = resolution_**2 - self.training = True - h = self.dh + nh_kd - self.kv = Linear_BN(in_dim, h, resolution=resolution) - - self.q = paddle.nn.Sequential( - Subsample(stride, resolution), - Linear_BN( - in_dim, nh_kd, resolution=resolution_)) - self.proj = paddle.nn.Sequential( - activation(), Linear_BN( - self.dh, out_dim, resolution=resolution_)) - - self.stride = stride - self.resolution = resolution - points = list(itertools.product(range(resolution), range(resolution))) - points_ = list( - itertools.product(range(resolution_), range(resolution_))) - - N = len(points) - N_ = len(points_) - attention_offsets = {} - idxs = [] - i = 0 - j = 0 - for p1 in points_: - i += 1 - for p2 in points: - j += 1 - size = 1 - offset = (abs(p1[0] * stride - p2[0] + (size - 1) / 2), - abs(p1[1] * stride - p2[1] + (size - 1) / 2)) - if offset not in attention_offsets: - attention_offsets[offset] = len(attention_offsets) - idxs.append(attention_offsets[offset]) - self.attention_biases = self.create_parameter( - shape=(num_heads, len(attention_offsets)), - default_initializer=zeros_) - - tensor_idxs_ = paddle.to_tensor(idxs, dtype='int64') - self.register_buffer('attention_bias_idxs', - paddle.reshape(tensor_idxs_, [N_, N])) - - global FLOPS_COUNTER - #queries * keys - FLOPS_COUNTER += num_heads * \ - (resolution**2) * (resolution_**2) * key_dim - # softmax - FLOPS_COUNTER += num_heads * (resolution**2) * (resolution_**2) - #attention * v - FLOPS_COUNTER += num_heads * \ - (resolution**2) * (resolution_**2) * self.d - - @paddle.no_grad() - def train(self, mode=True): - if mode: - super().train() - else: - super().eval() - if mode and hasattr(self, 'ab'): - del self.ab - else: - gather_list = [] - attention_bias_t = paddle.transpose(self.attention_biases, (1, 0)) - for idx in self.attention_bias_idxs: - gather = paddle.gather(attention_bias_t, idx) - gather_list.append(gather) - attention_biases = paddle.transpose( - paddle.concat(gather_list), (1, 0)).reshape( - (0, self.attention_bias_idxs.shape[0], - self.attention_bias_idxs.shape[1])) - self.ab = attention_biases - #self.ab = self.attention_biases[:, self.attention_bias_idxs] - - def forward(self, x): - self.training = True - B, N, C = x.shape - kv = self.kv(x) - kv = paddle.reshape(kv, [B, N, self.num_heads, -1]) - k, v = paddle.split(kv, [self.key_dim, self.d], axis=3) - k = paddle.transpose(k, perm=[0, 2, 1, 3]) # BHNC - v = paddle.transpose(v, perm=[0, 2, 1, 3]) - q = paddle.reshape( - self.q(x), [B, self.resolution_2, self.num_heads, self.key_dim]) - q = paddle.transpose(q, perm=[0, 2, 1, 3]) - - if self.training: - gather_list = [] - attention_bias_t = paddle.transpose(self.attention_biases, (1, 0)) - for idx in self.attention_bias_idxs: - gather = paddle.gather(attention_bias_t, idx) - gather_list.append(gather) - attention_biases = paddle.transpose( - paddle.concat(gather_list), (1, 0)).reshape( - (0, self.attention_bias_idxs.shape[0], - self.attention_bias_idxs.shape[1])) - else: - attention_biases = self.ab - - attn = (q @paddle.transpose( - k, perm=[0, 1, 3, 2])) * self.scale + attention_biases - attn = F.softmax(attn) - - x = paddle.reshape( - paddle.transpose( - (attn @v), perm=[0, 2, 1, 3]), [B, -1, self.dh]) - x = self.proj(x) - return x - - -class LeViT(paddle.nn.Layer): - """ Vision Transformer with support for patch or hybrid CNN input stage - """ - - def __init__(self, - img_size=224, - patch_size=16, - in_chans=3, - class_dim=1000, - embed_dim=[192], - key_dim=[64], - depth=[12], - num_heads=[3], - attn_ratio=[2], - mlp_ratio=[2], - hybrid_backbone=None, - down_ops=[], - attention_activation=paddle.nn.Hardswish, - mlp_activation=paddle.nn.Hardswish, - distillation=True, - drop_path=0): - super().__init__() - global FLOPS_COUNTER - - self.class_dim = class_dim - self.num_features = embed_dim[-1] - self.embed_dim = embed_dim - self.distillation = distillation - - self.patch_embed = hybrid_backbone - - self.blocks = [] - down_ops.append(['']) - resolution = img_size // patch_size - for i, (ed, kd, dpth, nh, ar, mr, do) in enumerate( - zip(embed_dim, key_dim, depth, num_heads, attn_ratio, mlp_ratio, - down_ops)): - for _ in range(dpth): - self.blocks.append( - Residual( - Attention( - ed, - kd, - nh, - attn_ratio=ar, - activation=attention_activation, - resolution=resolution, ), - drop_path)) - if mr > 0: - h = int(ed * mr) - self.blocks.append( - Residual( - paddle.nn.Sequential( - Linear_BN( - ed, h, resolution=resolution), - mlp_activation(), - Linear_BN( - h, - ed, - bn_weight_init=0, - resolution=resolution), ), - drop_path)) - if do[0] == 'Subsample': - #('Subsample',key_dim, num_heads, attn_ratio, mlp_ratio, stride) - resolution_ = (resolution - 1) // do[5] + 1 - self.blocks.append( - AttentionSubsample( - *embed_dim[i:i + 2], - key_dim=do[1], - num_heads=do[2], - attn_ratio=do[3], - activation=attention_activation, - stride=do[5], - resolution=resolution, - resolution_=resolution_)) - resolution = resolution_ - if do[4] > 0: # mlp_ratio - h = int(embed_dim[i + 1] * do[4]) - self.blocks.append( - Residual( - paddle.nn.Sequential( - Linear_BN( - embed_dim[i + 1], h, resolution=resolution), - mlp_activation(), - Linear_BN( - h, - embed_dim[i + 1], - bn_weight_init=0, - resolution=resolution), ), - drop_path)) - self.blocks = paddle.nn.Sequential(*self.blocks) - - # Classifier head - self.head = BN_Linear( - embed_dim[-1], class_dim) if class_dim > 0 else paddle.nn.Identity() - if distillation: - self.head_dist = BN_Linear( - embed_dim[-1], - class_dim) if class_dim > 0 else paddle.nn.Identity() - - self.FLOPS = FLOPS_COUNTER - FLOPS_COUNTER = 0 - - def no_weight_decay(self): - return {x for x in self.state_dict().keys() if 'attention_biases' in x} - - def forward(self, x): - x = self.patch_embed(x) - x = x.flatten(2) - x = paddle.transpose(x, perm=[0, 2, 1]) - x = self.blocks(x) - x = x.mean(1) - if self.distillation: - x = self.head(x), self.head_dist(x) - if not self.training: - x = (x[0] + x[1]) / 2 - else: - x = self.head(x) - return x - - -def model_factory(C, D, X, N, drop_path, weights, class_dim, distillation, - pretrained, fuse): - embed_dim = [int(x) for x in C.split('_')] - num_heads = [int(x) for x in N.split('_')] - depth = [int(x) for x in X.split('_')] - act = paddle.nn.Hardswish - model = LeViT( - patch_size=16, - embed_dim=embed_dim, - num_heads=num_heads, - key_dim=[D] * 3, - depth=depth, - attn_ratio=[2, 2, 2], - mlp_ratio=[2, 2, 2], - down_ops=[ - #('Subsample',key_dim, num_heads, attn_ratio, mlp_ratio, stride) - ['Subsample', D, embed_dim[0] // D, 4, 2, 2], - ['Subsample', D, embed_dim[1] // D, 4, 2, 2], - ], - attention_activation=act, - mlp_activation=act, - hybrid_backbone=b16(embed_dim[0], activation=act), - class_dim=class_dim, - drop_path=drop_path, - distillation=distillation) - # if pretrained: - # checkpoint = torch.hub.load_state_dict_from_url( - # weights, map_location='cpu') - # model.load_state_dict(checkpoint['model']) - if fuse: - utils.replace_batchnorm(model) - - return model - - -if __name__ == '__main__': - ''' - import torch - checkpoint = torch.load('../LeViT/pretrained256.pth') - torch_dict = checkpoint['net'] - paddle_dict = {} - fc_names = ["c.weight", "l.weight", "qkv.weight", "fc1.weight", "fc2.weight", "downsample.reduction.weight", "head.weight", "attn.proj.weight"] - rename_dict = {"running_mean": "_mean", "running_var": "_variance"} - range_tuple = (0, 502) - idx = 0 - for key in torch_dict: - idx += 1 - weight = torch_dict[key].cpu().numpy() - flag = [i in key for i in fc_names] - if any(flag): - if "emb" not in key: - print("weight {} need to be trans".format(key)) - weight = weight.transpose() - key = key.replace("running_mean", "_mean") - key = key.replace("running_var", "_variance") - paddle_dict[key]=weight - ''' - import numpy as np - net = globals()['LeViT_256'](fuse=False, - pretrained=False, - distillation=False) - load_layer_state_dict = paddle.load( - "./LeViT_256_official_nodistillation_paddle.pdparams") - #net.set_state_dict(paddle_dict) - net.set_state_dict(load_layer_state_dict) - net.eval() - #paddle.save(net.state_dict(), "./LeViT_256_official_paddle.pdparams") - #model = paddle.jit.to_static(net,input_spec=[paddle.static.InputSpec(shape=[None, 3, 224, 224], dtype='float32')]) - #paddle.jit.save(model, "./LeViT_256_official_inference/inference") - #exit() - np.random.seed(123) - img = np.random.rand(1, 3, 224, 224).astype('float32') - img = paddle.to_tensor(img) - outputs = net(img).numpy() - print(outputs[0][:10]) - #print(outputs.shape) diff --git a/ppocr/modeling/heads/__init__.py b/ppocr/modeling/heads/__init__.py index cd923d78be..c04ff81adf 100755 --- a/ppocr/modeling/heads/__init__.py +++ b/ppocr/modeling/heads/__init__.py @@ -42,6 +42,5 @@ def build_head(config): module_name = config.pop('name') assert module_name in support_dict, Exception('head only support {}'.format( support_dict)) - print(config) module_class = eval(module_name)(**config) return module_class diff --git a/ppocr/modeling/heads/rec_aster_head.py b/ppocr/modeling/heads/rec_aster_head.py index 055b109730..ed520669e3 100644 --- a/ppocr/modeling/heads/rec_aster_head.py +++ b/ppocr/modeling/heads/rec_aster_head.py @@ -43,13 +43,14 @@ class AsterHead(nn.Layer): self.time_step = time_step self.embeder = Embedding(self.time_step, in_channels) self.beam_width = beam_width + self.eos = self.num_classes - 1 def forward(self, x, targets=None, embed=None): return_dict = {} embedding_vectors = self.embeder(x) - rec_targets, rec_lengths = targets if self.training: + rec_targets, rec_lengths, _ = targets rec_pred = self.decoder([x, rec_targets, rec_lengths], embedding_vectors) return_dict['rec_pred'] = rec_pred @@ -104,14 +105,12 @@ class AttentionRecognitionHead(nn.Layer): # Decoder state = self.decoder.get_initial_state(embed) outputs = [] - for i in range(max(lengths)): if i == 0: y_prev = paddle.full( shape=[batch_size], fill_value=self.num_classes) else: y_prev = targets[:, i - 1] - output, state = self.decoder(x, state, y_prev) outputs.append(output) outputs = paddle.concat([_.unsqueeze(1) for _ in outputs], 1) @@ -142,6 +141,170 @@ class AttentionRecognitionHead(nn.Layer): # return predicted_ids.squeeze(), predicted_scores.squeeze() return predicted_ids, predicted_scores + def beam_search(self, x, beam_width, eos, embed): + def _inflate(tensor, times, dim): + repeat_dims = [1] * tensor.dim() + repeat_dims[dim] = times + output = paddle.tile(tensor, repeat_dims) + return output + + # https://github.com/IBM/pytorch-seq2seq/blob/fede87655ddce6c94b38886089e05321dc9802af/seq2seq/models/TopKDecoder.py + batch_size, l, d = x.shape + # inflated_encoder_feats = _inflate(encoder_feats, beam_width, 0) # ABC --> AABBCC -/-> ABCABC + x = paddle.tile( + paddle.transpose( + x.unsqueeze(1), perm=[1, 0, 2, 3]), [beam_width, 1, 1, 1]) + inflated_encoder_feats = paddle.reshape( + paddle.transpose( + x, perm=[1, 0, 2, 3]), [-1, l, d]) + + # Initialize the decoder + state = self.decoder.get_initial_state(embed, tile_times=beam_width) + + pos_index = paddle.reshape( + paddle.arange(batch_size) * beam_width, shape=[-1, 1]) + + # Initialize the scores + sequence_scores = paddle.full( + shape=[batch_size * beam_width, 1], fill_value=-float('Inf')) + index = [i * beam_width for i in range(0, batch_size)] + sequence_scores[index] = 0.0 + + # Initialize the input vector + y_prev = paddle.full( + shape=[batch_size * beam_width], fill_value=self.num_classes) + + # Store decisions for backtracking + stored_scores = list() + stored_predecessors = list() + stored_emitted_symbols = list() + + for i in range(self.max_len_labels): + output, state = self.decoder(inflated_encoder_feats, state, y_prev) + state = paddle.unsqueeze(state, axis=0) + log_softmax_output = paddle.nn.functional.log_softmax( + output, axis=1) + + sequence_scores = _inflate(sequence_scores, self.num_classes, 1) + sequence_scores += log_softmax_output + scores, candidates = paddle.topk( + paddle.reshape(sequence_scores, [batch_size, -1]), + beam_width, + axis=1) + + # Reshape input = (bk, 1) and sequence_scores = (bk, 1) + y_prev = paddle.reshape( + candidates % self.num_classes, shape=[batch_size * beam_width]) + sequence_scores = paddle.reshape( + scores, shape=[batch_size * beam_width, 1]) + + # Update fields for next timestep + pos_index = paddle.expand_as(pos_index, candidates) + predecessors = paddle.cast( + candidates / self.num_classes + pos_index, dtype='int64') + predecessors = paddle.reshape( + predecessors, shape=[batch_size * beam_width, 1]) + state = paddle.index_select( + state, index=predecessors.squeeze(), axis=1) + + # Update sequence socres and erase scores for symbol so that they aren't expanded + stored_scores.append(sequence_scores.clone()) + y_prev = paddle.reshape(y_prev, shape=[-1, 1]) + eos_prev = paddle.full_like(y_prev, fill_value=eos) + mask = eos_prev == y_prev + mask = paddle.nonzero(mask) + if mask.dim() > 0: + sequence_scores = sequence_scores.numpy() + mask = mask.numpy() + sequence_scores[mask] = -float('inf') + sequence_scores = paddle.to_tensor(sequence_scores) + + # Cache results for backtracking + stored_predecessors.append(predecessors) + y_prev = paddle.squeeze(y_prev) + stored_emitted_symbols.append(y_prev) + + # Do backtracking to return the optimal values + #====== backtrak ======# + # Initialize return variables given different types + p = list() + l = [[self.max_len_labels] * beam_width for _ in range(batch_size) + ] # Placeholder for lengths of top-k sequences + + # the last step output of the beams are not sorted + # thus they are sorted here + sorted_score, sorted_idx = paddle.topk( + paddle.reshape( + stored_scores[-1], shape=[batch_size, beam_width]), + beam_width) + + # initialize the sequence scores with the sorted last step beam scores + s = sorted_score.clone() + + batch_eos_found = [0] * batch_size # the number of EOS found + # in the backward loop below for each batch + t = self.max_len_labels - 1 + # initialize the back pointer with the sorted order of the last step beams. + # add pos_index for indexing variable with b*k as the first dimension. + t_predecessors = paddle.reshape( + sorted_idx + pos_index.expand_as(sorted_idx), + shape=[batch_size * beam_width]) + while t >= 0: + # Re-order the variables with the back pointer + current_symbol = paddle.index_select( + stored_emitted_symbols[t], index=t_predecessors, axis=0) + t_predecessors = paddle.index_select( + stored_predecessors[t].squeeze(), index=t_predecessors, axis=0) + eos_indices = stored_emitted_symbols[t] == eos + eos_indices = paddle.nonzero(eos_indices) + + if eos_indices.dim() > 0: + for i in range(eos_indices.shape[0] - 1, -1, -1): + # Indices of the EOS symbol for both variables + # with b*k as the first dimension, and b, k for + # the first two dimensions + idx = eos_indices[i] + b_idx = int(idx[0] / beam_width) + # The indices of the replacing position + # according to the replacement strategy noted above + res_k_idx = beam_width - (batch_eos_found[b_idx] % + beam_width) - 1 + batch_eos_found[b_idx] += 1 + res_idx = b_idx * beam_width + res_k_idx + + # Replace the old information in return variables + # with the new ended sequence information + t_predecessors[res_idx] = stored_predecessors[t][idx[0]] + current_symbol[res_idx] = stored_emitted_symbols[t][idx[0]] + s[b_idx, res_k_idx] = stored_scores[t][idx[0], 0] + l[b_idx][res_k_idx] = t + 1 + + # record the back tracked results + p.append(current_symbol) + t -= 1 + + # Sort and re-order again as the added ended sequences may change + # the order (very unlikely) + s, re_sorted_idx = s.topk(beam_width) + for b_idx in range(batch_size): + l[b_idx] = [ + l[b_idx][k_idx.item()] for k_idx in re_sorted_idx[b_idx, :] + ] + + re_sorted_idx = paddle.reshape( + re_sorted_idx + pos_index.expand_as(re_sorted_idx), + [batch_size * beam_width]) + + # Reverse the sequences and re-order at the same time + # It is reversed because the backtracking happens in reverse time order + p = [ + paddle.reshape( + paddle.index_select(step, re_sorted_idx, 0), + shape=[batch_size, beam_width, -1]) for step in reversed(p) + ] + p = paddle.concat(p, -1)[:, 0, :] + return p, paddle.ones_like(p) + class AttentionUnit(nn.Layer): def __init__(self, sDim, xDim, attDim): @@ -151,21 +314,9 @@ class AttentionUnit(nn.Layer): self.xDim = xDim self.attDim = attDim - self.sEmbed = nn.Linear( - sDim, - attDim, - weight_attr=paddle.nn.initializer.Normal(std=0.01), - bias_attr=paddle.nn.initializer.Constant(0.0)) - self.xEmbed = nn.Linear( - xDim, - attDim, - weight_attr=paddle.nn.initializer.Normal(std=0.01), - bias_attr=paddle.nn.initializer.Constant(0.0)) - self.wEmbed = nn.Linear( - attDim, - 1, - weight_attr=paddle.nn.initializer.Normal(std=0.01), - bias_attr=paddle.nn.initializer.Constant(0.0)) + self.sEmbed = nn.Linear(sDim, attDim) + self.xEmbed = nn.Linear(xDim, attDim) + self.wEmbed = nn.Linear(attDim, 1) def forward(self, x, sPrev): batch_size, T, _ = x.shape # [b x T x xDim] @@ -184,10 +335,8 @@ class AttentionUnit(nn.Layer): vProj = self.wEmbed(sumTanh) # [(b x T) x 1] vProj = paddle.reshape(vProj, [batch_size, T]) - alpha = F.softmax( vProj, axis=1) # attention weights for each sample in the minibatch - return alpha @@ -238,21 +387,4 @@ class DecoderUnit(nn.Layer): output, state = self.gru(concat_context, sPrev) output = paddle.squeeze(output, axis=1) output = self.fc(output) - return output, state - - -if __name__ == "__main__": - model = AttentionRecognitionHead( - num_classes=20, - in_channels=30, - sDim=512, - attDim=512, - max_len_labels=25, - out_channels=38) - - data = paddle.ones([16, 64, 3]) - targets = paddle.ones([16, 25]) - length = paddle.to_tensor(20) - x = [data, targets, length] - output = model(x) - print(output.shape) + return output, state \ No newline at end of file diff --git a/ppocr/modeling/heads/rec_att_head.py b/ppocr/modeling/heads/rec_att_head.py index 79f112f723..4286d7691d 100644 --- a/ppocr/modeling/heads/rec_att_head.py +++ b/ppocr/modeling/heads/rec_att_head.py @@ -44,13 +44,10 @@ class AttentionHead(nn.Layer): hidden = paddle.zeros((batch_size, self.hidden_size)) output_hiddens = [] - targets = targets[0] - print(targets) if targets is not None: for i in range(num_steps): char_onehots = self._char_to_onehot( targets[:, i], onehot_dim=self.num_classes) - # print("char_onehots:", char_onehots) (outputs, hidden), alpha = self.attention_cell(hidden, inputs, char_onehots) output_hiddens.append(paddle.unsqueeze(outputs, axis=1)) @@ -107,8 +104,6 @@ class AttentionGRUCell(nn.Layer): alpha = paddle.transpose(alpha, [0, 2, 1]) context = paddle.squeeze(paddle.mm(alpha, batch_H), axis=1) concat_context = paddle.concat([context, char_onehots], 1) - # print("concat_context:", concat_context.shape) - # print("prev_hidden:", prev_hidden.shape) cur_hidden = self.rnn(concat_context, prev_hidden) diff --git a/ppocr/modeling/transforms/stn.py b/ppocr/modeling/transforms/stn.py index 0b26e27aea..23bd21891f 100644 --- a/ppocr/modeling/transforms/stn.py +++ b/ppocr/modeling/transforms/stn.py @@ -106,16 +106,3 @@ class STN(nn.Layer): x = F.sigmoid(x) x = paddle.reshape(x, shape=[-1, self.num_ctrlpoints, 2]) return img_feat, x - - -if __name__ == "__main__": - in_planes = 3 - num_ctrlpoints = 20 - np.random.seed(100) - activation = 'none' # 'sigmoid' - stn_head = STN(in_planes, num_ctrlpoints, activation) - data = np.random.randn(10, 3, 32, 64).astype("float32") - print("data:", np.sum(data)) - input = paddle.to_tensor(data) - #input = paddle.randn([10, 3, 32, 64]) - control_points = stn_head(input) diff --git a/ppocr/modeling/transforms/tps.py b/ppocr/modeling/transforms/tps.py index fc46210071..de4bb7a686 100644 --- a/ppocr/modeling/transforms/tps.py +++ b/ppocr/modeling/transforms/tps.py @@ -326,5 +326,6 @@ class STN_ON(nn.Layer): image, self.tps_inputsize, mode="bilinear", align_corners=True) stn_img_feat, ctrl_points = self.stn_head(stn_input) x, _ = self.tps(image, ctrl_points) + #print("x:", np.sum(x.numpy())) # print(x.shape) return x diff --git a/ppocr/modeling/transforms/tps_spatial_transformer.py b/ppocr/modeling/transforms/tps_spatial_transformer.py index da54ffb786..731e3ee9f0 100644 --- a/ppocr/modeling/transforms/tps_spatial_transformer.py +++ b/ppocr/modeling/transforms/tps_spatial_transformer.py @@ -136,7 +136,8 @@ class TPSSpatialTransformer(nn.Layer): assert source_control_points.ndimension() == 3 assert source_control_points.shape[1] == self.num_control_points assert source_control_points.shape[2] == 2 - batch_size = source_control_points.shape[0] + #batch_size = source_control_points.shape[0] + batch_size = paddle.shape(source_control_points)[0] self.padding_matrix = paddle.expand( self.padding_matrix, shape=[batch_size, 3, 2]) @@ -151,28 +152,6 @@ class TPSSpatialTransformer(nn.Layer): grid = paddle.clip(grid, 0, 1) # the source_control_points may be out of [0, 1]. # the input to grid_sample is normalized [-1, 1], but what we get is [0, 1] - # grid = 2.0 * grid - 1.0 + grid = 2.0 * grid - 1.0 output_maps = grid_sample(input, grid, canvas=None) return output_maps, source_coordinate - - -if __name__ == "__main__": - from stn import STN - in_planes = 3 - num_ctrlpoints = 20 - np.random.seed(100) - activation = 'none' # 'sigmoid' - stn_head = STN(in_planes, num_ctrlpoints, activation) - data = np.random.randn(10, 3, 32, 64).astype("float32") - input = paddle.to_tensor(data) - #input = paddle.randn([10, 3, 32, 64]) - control_points = stn_head(input) - #print("control points:", control_points) - #input = paddle.randn(shape=[10,3,32,100]) - tps = TPSSpatialTransformer( - output_image_size=[32, 320], - num_control_points=20, - margins=[0.05, 0.05]) - out = tps(input, control_points[1]) - print("out 0 :", out[0].shape) - print("out 1:", out[1].shape) diff --git a/ppocr/modeling/transforms/tps_torch.py b/ppocr/modeling/transforms/tps_torch.py deleted file mode 100644 index 7aee133ae3..0000000000 --- a/ppocr/modeling/transforms/tps_torch.py +++ /dev/null @@ -1,149 +0,0 @@ -from __future__ import absolute_import - -import numpy as np -import itertools - -import torch -import torch.nn as nn -import torch.nn.functional as F - - -def grid_sample(input, grid, canvas=None): - output = F.grid_sample(input, grid) - if canvas is None: - return output - else: - input_mask = input.data.new(input.size()).fill_(1) - output_mask = F.grid_sample(input_mask, grid) - padded_output = output * output_mask + canvas * (1 - output_mask) - return padded_output - - -# phi(x1, x2) = r^2 * log(r), where r = ||x1 - x2||_2 -def compute_partial_repr(input_points, control_points): - N = input_points.size(0) - M = control_points.size(0) - pairwise_diff = input_points.view(N, 1, 2) - control_points.view(1, M, 2) - # original implementation, very slow - # pairwise_dist = torch.sum(pairwise_diff ** 2, dim = 2) # square of distance - pairwise_diff_square = pairwise_diff * pairwise_diff - pairwise_dist = pairwise_diff_square[:, :, 0] + pairwise_diff_square[:, :, - 1] - repr_matrix = 0.5 * pairwise_dist * torch.log(pairwise_dist) - # fix numerical error for 0 * log(0), substitute all nan with 0 - mask = repr_matrix != repr_matrix - repr_matrix.masked_fill_(mask, 0) - return repr_matrix - - -# output_ctrl_pts are specified, according to our task. -def build_output_control_points(num_control_points, margins): - margin_x, margin_y = margins - num_ctrl_pts_per_side = num_control_points // 2 - ctrl_pts_x = np.linspace(margin_x, 1.0 - margin_x, num_ctrl_pts_per_side) - ctrl_pts_y_top = np.ones(num_ctrl_pts_per_side) * margin_y - ctrl_pts_y_bottom = np.ones(num_ctrl_pts_per_side) * (1.0 - margin_y) - ctrl_pts_top = np.stack([ctrl_pts_x, ctrl_pts_y_top], axis=1) - ctrl_pts_bottom = np.stack([ctrl_pts_x, ctrl_pts_y_bottom], axis=1) - # ctrl_pts_top = ctrl_pts_top[1:-1,:] - # ctrl_pts_bottom = ctrl_pts_bottom[1:-1,:] - output_ctrl_pts_arr = np.concatenate( - [ctrl_pts_top, ctrl_pts_bottom], axis=0) - output_ctrl_pts = torch.Tensor(output_ctrl_pts_arr) - return output_ctrl_pts - - -# demo: ~/test/models/test_tps_transformation.py -class TPSSpatialTransformer(nn.Module): - def __init__(self, - output_image_size=None, - num_control_points=None, - margins=None): - super(TPSSpatialTransformer, self).__init__() - self.output_image_size = output_image_size - self.num_control_points = num_control_points - self.margins = margins - - self.target_height, self.target_width = output_image_size - target_control_points = build_output_control_points(num_control_points, - margins) - N = num_control_points - # N = N - 4 - - # create padded kernel matrix - forward_kernel = torch.zeros(N + 3, N + 3) - target_control_partial_repr = compute_partial_repr( - target_control_points, target_control_points) - forward_kernel[:N, :N].copy_(target_control_partial_repr) - forward_kernel[:N, -3].fill_(1) - forward_kernel[-3, :N].fill_(1) - forward_kernel[:N, -2:].copy_(target_control_points) - forward_kernel[-2:, :N].copy_(target_control_points.transpose(0, 1)) - # compute inverse matrix - inverse_kernel = torch.inverse(forward_kernel) - - # create target cordinate matrix - HW = self.target_height * self.target_width - target_coordinate = list( - itertools.product( - range(self.target_height), range(self.target_width))) - target_coordinate = torch.Tensor(target_coordinate) # HW x 2 - Y, X = target_coordinate.split(1, dim=1) - Y = Y / (self.target_height - 1) - X = X / (self.target_width - 1) - target_coordinate = torch.cat([X, Y], - dim=1) # convert from (y, x) to (x, y) - target_coordinate_partial_repr = compute_partial_repr( - target_coordinate, target_control_points) - target_coordinate_repr = torch.cat([ - target_coordinate_partial_repr, torch.ones(HW, 1), target_coordinate - ], - dim=1) - - # register precomputed matrices - self.register_buffer('inverse_kernel', inverse_kernel) - self.register_buffer('padding_matrix', torch.zeros(3, 2)) - self.register_buffer('target_coordinate_repr', target_coordinate_repr) - self.register_buffer('target_control_points', target_control_points) - - def forward(self, input, source_control_points): - assert source_control_points.ndimension() == 3 - assert source_control_points.size(1) == self.num_control_points - assert source_control_points.size(2) == 2 - batch_size = source_control_points.size(0) - - Y = torch.cat([ - source_control_points, self.padding_matrix.expand(batch_size, 3, 2) - ], 1) - mapping_matrix = torch.matmul(self.inverse_kernel, Y) - source_coordinate = torch.matmul(self.target_coordinate_repr, - mapping_matrix) - - grid = source_coordinate.view(-1, self.target_height, self.target_width, - 2) - grid = torch.clamp(grid, 0, - 1) # the source_control_points may be out of [0, 1]. - # the input to grid_sample is normalized [-1, 1], but what we get is [0, 1] - grid = 2.0 * grid - 1.0 - output_maps = grid_sample(input, grid, canvas=None) - return output_maps, source_coordinate - - -if __name__ == "__main__": - from stn_torch import STNHead - in_planes = 3 - num_ctrlpoints = 20 - torch.manual_seed(10) - activation = 'none' # 'sigmoid' - stn_head = STNHead(in_planes, num_ctrlpoints, activation) - np.random.seed(100) - data = np.random.randn(10, 3, 32, 64).astype("float32") - input = torch.tensor(data) - control_points = stn_head(input) - tps = TPSSpatialTransformer( - output_image_size=[32, 320], - num_control_points=20, - margins=[0.05, 0.05]) - out = tps(input, control_points[1]) - print("out 0 :", out[0].shape) - print("out 1:", out[1].shape) diff --git a/ppocr/optimizer/optimizer.py b/ppocr/optimizer/optimizer.py index 8215b92d8c..34098c0fad 100644 --- a/ppocr/optimizer/optimizer.py +++ b/ppocr/optimizer/optimizer.py @@ -127,3 +127,34 @@ class RMSProp(object): grad_clip=self.grad_clip, parameters=parameters) return opt + + +class Adadelta(object): + def __init__(self, + learning_rate=0.001, + epsilon=1e-08, + rho=0.95, + parameter_list=None, + weight_decay=None, + grad_clip=None, + name=None, + **kwargs): + self.learning_rate = learning_rate + self.epsilon = epsilon + self.rho = rho + self.parameter_list = parameter_list + self.learning_rate = learning_rate + self.weight_decay = weight_decay + self.grad_clip = grad_clip + self.name = name + + def __call__(self, parameters): + opt = optim.Adadelta( + learning_rate=self.learning_rate, + epsilon=self.epsilon, + rho=self.rho, + weight_decay=self.weight_decay, + grad_clip=self.grad_clip, + name=self.name, + parameters=parameters) + return opt diff --git a/ppocr/postprocess/__init__.py b/ppocr/postprocess/__init__.py index 2f5bdc3b13..ba7e06db29 100644 --- a/ppocr/postprocess/__init__.py +++ b/ppocr/postprocess/__init__.py @@ -25,7 +25,7 @@ from .db_postprocess import DBPostProcess from .east_postprocess import EASTPostProcess from .sast_postprocess import SASTPostProcess from .rec_postprocess import CTCLabelDecode, AttnLabelDecode, SRNLabelDecode, DistillationCTCLabelDecode, \ - TableLabelDecode + TableLabelDecode, SEEDLabelDecode from .cls_postprocess import ClsPostProcess from .pg_postprocess import PGPostProcess @@ -34,7 +34,7 @@ def build_post_process(config, global_config=None): support_dict = [ 'DBPostProcess', 'EASTPostProcess', 'SASTPostProcess', 'CTCLabelDecode', 'AttnLabelDecode', 'ClsPostProcess', 'SRNLabelDecode', 'PGPostProcess', - 'DistillationCTCLabelDecode', 'TableLabelDecode' + 'DistillationCTCLabelDecode', 'TableLabelDecode', 'SEEDLabelDecode' ] config = copy.deepcopy(config) diff --git a/ppocr/postprocess/rec_postprocess.py b/ppocr/postprocess/rec_postprocess.py index 17fc7e461c..921d619a36 100644 --- a/ppocr/postprocess/rec_postprocess.py +++ b/ppocr/postprocess/rec_postprocess.py @@ -170,10 +170,8 @@ class AttnLabelDecode(BaseRecLabelDecode): def add_special_char(self, dict_character): self.beg_str = "sos" self.end_str = "eos" - self.unkonwn = "UNKNOWN" dict_character = dict_character - dict_character = [self.beg_str] + dict_character + [self.end_str - ] + [self.unkonwn] + dict_character = [self.beg_str] + dict_character + [self.end_str] return dict_character def decode(self, text_index, text_prob=None, is_remove_duplicate=False): @@ -214,7 +212,6 @@ class AttnLabelDecode(BaseRecLabelDecode): label = self.decode(label, is_remove_duplicate=False) return text, label """ - preds = preds["rec_pred"] if isinstance(preds, paddle.Tensor): preds = preds.numpy() @@ -242,6 +239,88 @@ class AttnLabelDecode(BaseRecLabelDecode): return idx +class SEEDLabelDecode(BaseRecLabelDecode): + """ Convert between text-label and text-index """ + + def __init__(self, + character_dict_path=None, + character_type='ch', + use_space_char=False, + **kwargs): + super(SEEDLabelDecode, self).__init__(character_dict_path, + character_type, use_space_char) + + def add_special_char(self, dict_character): + self.beg_str = "sos" + self.end_str = "eos" + dict_character = dict_character + dict_character = dict_character + [self.end_str] + return dict_character + + def get_ignored_tokens(self): + end_idx = self.get_beg_end_flag_idx("eos") + return [end_idx] + + def get_beg_end_flag_idx(self, beg_or_end): + if beg_or_end == "sos": + idx = np.array(self.dict[self.beg_str]) + elif beg_or_end == "eos": + idx = np.array(self.dict[self.end_str]) + else: + assert False, "unsupport type %s in get_beg_end_flag_idx" % beg_or_end + return idx + + def decode(self, text_index, text_prob=None, is_remove_duplicate=False): + """ convert text-index into text-label. """ + result_list = [] + [end_idx] = self.get_ignored_tokens() + batch_size = len(text_index) + for batch_idx in range(batch_size): + char_list = [] + conf_list = [] + for idx in range(len(text_index[batch_idx])): + if int(text_index[batch_idx][idx]) == int(end_idx): + break + if is_remove_duplicate: + # only for predict + if idx > 0 and text_index[batch_idx][idx - 1] == text_index[ + batch_idx][idx]: + continue + char_list.append(self.character[int(text_index[batch_idx][ + idx])]) + if text_prob is not None: + conf_list.append(text_prob[batch_idx][idx]) + else: + conf_list.append(1) + text = ''.join(char_list) + result_list.append((text, np.mean(conf_list))) + return result_list + + def __call__(self, preds, label=None, *args, **kwargs): + """ + text = self.decode(text) + if label is None: + return text + else: + label = self.decode(label, is_remove_duplicate=False) + return text, label + """ + preds_idx = preds["rec_pred"] + if isinstance(preds_idx, paddle.Tensor): + preds_idx = preds_idx.numpy() + if "rec_pred_scores" in preds: + preds_idx = preds["rec_pred"] + preds_prob = preds["rec_pred_scores"] + else: + preds_idx = preds["rec_pred"].argmax(axis=2) + preds_prob = preds["rec_pred"].max(axis=2) + text = self.decode(preds_idx, preds_prob, is_remove_duplicate=False) + if label is None: + return text + label = self.decode(label, is_remove_duplicate=False) + return text, label + + class SRNLabelDecode(BaseRecLabelDecode): """ Convert between text-label and text-index """ diff --git a/ppocr/utils/save_load.py b/ppocr/utils/save_load.py index 0453509c7b..1d760e983a 100644 --- a/ppocr/utils/save_load.py +++ b/ppocr/utils/save_load.py @@ -105,16 +105,13 @@ def load_dygraph_params(config, model, logger, optimizer): params = paddle.load(pm) state_dict = model.state_dict() new_state_dict = {} - # for k1, k2 in zip(state_dict.keys(), params.keys()): - for k1 in state_dict.keys(): - if k1 not in params: - continue - if list(state_dict[k1].shape) == list(params[k1].shape): - new_state_dict[k1] = params[k1] - else: - logger.info( - f"The shape of model params {k1} {state_dict[k1].shape} not matched with loaded params {k1} {params[k1].shape} !" - ) + for k1, k2 in zip(state_dict.keys(), params.keys()): + if list(state_dict[k1].shape) == list(params[k2].shape): + new_state_dict[k1] = params[k2] + else: + logger.info( + f"The shape of model params {k1} {state_dict[k1].shape} not matched with loaded params {k2} {params[k2].shape} !" + ) model.set_state_dict(new_state_dict) logger.info(f"loaded pretrained_model successful from {pm}") return {} diff --git a/tools/program.py b/tools/program.py index 920cf417ce..3479ff26fc 100755 --- a/tools/program.py +++ b/tools/program.py @@ -211,11 +211,10 @@ def train(config, images = batch[0] if use_srn: model_average = True - # if use_srn or model_type == 'table' or algorithm == "ASTER": - # preds = model(images, data=batch[1:]) - # else: - # preds = model(images) - preds = model(images, data=batch[1:]) + if use_srn or model_type == 'table' or model_type == "seed": + preds = model(images, data=batch[1:]) + else: + preds = model(images) state_dict = model.state_dict() # for key in state_dict: # print(key) @@ -415,6 +414,7 @@ def preprocess(is_train=False): yaml.dump( dict(config), f, default_flow_style=False, sort_keys=False) log_file = '{}/train.log'.format(save_model_dir) + print("log has save in {}/train.log".format(save_model_dir)) else: log_file = None logger = get_logger(name='root', log_file=log_file) From 1b2ca6e641fb8c5e2ac5171f38fb5f37cbdee785 Mon Sep 17 00:00:00 2001 From: tink2123 Date: Mon, 30 Aug 2021 06:37:26 +0000 Subject: [PATCH 03/25] polish code --- ppocr/modeling/transforms/tps.py | 2 -- tools/program.py | 4 ---- tools/train.py | 2 -- 3 files changed, 8 deletions(-) diff --git a/ppocr/modeling/transforms/tps.py b/ppocr/modeling/transforms/tps.py index de4bb7a686..81221b0351 100644 --- a/ppocr/modeling/transforms/tps.py +++ b/ppocr/modeling/transforms/tps.py @@ -326,6 +326,4 @@ class STN_ON(nn.Layer): image, self.tps_inputsize, mode="bilinear", align_corners=True) stn_img_feat, ctrl_points = self.stn_head(stn_input) x, _ = self.tps(image, ctrl_points) - #print("x:", np.sum(x.numpy())) - # print(x.shape) return x diff --git a/tools/program.py b/tools/program.py index 3479ff26fc..f77c69f88f 100755 --- a/tools/program.py +++ b/tools/program.py @@ -215,9 +215,6 @@ def train(config, preds = model(images, data=batch[1:]) else: preds = model(images) - state_dict = model.state_dict() - # for key in state_dict: - # print(key) loss = loss_class(preds, batch) avg_loss = loss['loss'] avg_loss.backward() @@ -414,7 +411,6 @@ def preprocess(is_train=False): yaml.dump( dict(config), f, default_flow_style=False, sort_keys=False) log_file = '{}/train.log'.format(save_model_dir) - print("log has save in {}/train.log".format(save_model_dir)) else: log_file = None logger = get_logger(name='root', log_file=log_file) diff --git a/tools/train.py b/tools/train.py index e1515f57c9..20f5a670d5 100755 --- a/tools/train.py +++ b/tools/train.py @@ -72,8 +72,6 @@ def main(config, device, logger, vdl_writer): # for rec algorithm if hasattr(post_process_class, 'character'): char_num = len(getattr(post_process_class, 'character')) - character = getattr(post_process_class, 'character') - print("getattr character:", character) if config['Architecture']["algorithm"] in ["Distillation", ]: # distillation model for key in config['Architecture']["Models"]: From 07006b8674c5edce709ab11272c40c7c045b22a2 Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Thu, 23 Sep 2021 19:25:11 +0800 Subject: [PATCH 04/25] add det benchmark --- benchmark/run_benchmark_det.sh | 54 ++++++++++++++++++++++++++++++++++ benchmark/run_det.sh | 28 ++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 benchmark/run_benchmark_det.sh create mode 100644 benchmark/run_det.sh diff --git a/benchmark/run_benchmark_det.sh b/benchmark/run_benchmark_det.sh new file mode 100644 index 0000000000..36228adcf4 --- /dev/null +++ b/benchmark/run_benchmark_det.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash +set -xe +# 运行示例:CUDA_VISIBLE_DEVICES=0 bash run_benchmark.sh ${run_mode} ${bs_item} ${fp_item} 500 ${model_mode} +# 参数说明 +function _set_params(){ + run_mode=${1:-"sp"} # 单卡sp|多卡mp + batch_size=${2:-"64"} + fp_item=${3:-"fp32"} # fp32|fp16 + max_iter=${4:-"500"} # 可选,如果需要修改代码提前中断 + model_name=${5:-"model_name"} + run_log_path=${TRAIN_LOG_DIR:-$(pwd)} # TRAIN_LOG_DIR 后续QA设置该参数 + +# 以下不用修改 + device=${CUDA_VISIBLE_DEVICES//,/ } + arr=(${device}) + num_gpu_devices=${#arr[*]} + log_file=${run_log_path}/${model_name}_${run_mode}_bs${batch_size}_${fp_item}_${num_gpu_devices} +} +function _train(){ + echo "Train on ${num_gpu_devices} GPUs" + echo "current CUDA_VISIBLE_DEVICES=$CUDA_VISIBLE_DEVICES, gpus=$num_gpu_devices, batch_size=$batch_size" + + train_cmd="-c configs/det/${model_name}.yml + -o Train.loader.batch_size_per_card=${batch_size} + -o Global.epoch_num=${max_iter} " + case ${run_mode} in + sp) + train_cmd="python3.7 tools/train.py "${train_cmd}"" + ;; + mp) + train_cmd="python3.7 -m paddle.distributed.launch --log_dir=./mylog --gpus=$CUDA_VISIBLE_DEVICES tools/train.py ${train_cmd}" + ;; + *) echo "choose run_mode(sp or mp)"; exit 1; + esac +# 以下不用修改 + timeout 15m ${train_cmd} > ${log_file} 2>&1 + if [ $? -ne 0 ];then + echo -e "${model_name}, FAIL" + export job_fail_flag=1 + else + echo -e "${model_name}, SUCCESS" + export job_fail_flag=0 + fi + kill -9 `ps -ef|grep 'python3.7'|awk '{print $2}'` + + if [ $run_mode = "mp" -a -d mylog ]; then + rm ${log_file} + cp mylog/workerlog.0 ${log_file} + fi +} + +_set_params $@ +_train + diff --git a/benchmark/run_det.sh b/benchmark/run_det.sh new file mode 100644 index 0000000000..4631f6ff0a --- /dev/null +++ b/benchmark/run_det.sh @@ -0,0 +1,28 @@ +# 提供可稳定复现性能的脚本,默认在标准docker环境内py37执行: paddlepaddle/paddle:latest-gpu-cuda10.1-cudnn7 paddle=2.1.2 py=37 +# 执行目录:需说明 +# cd PaddleOCR +# 1 安装该模型需要的依赖 (如需开启优化策略请注明) +# python3.7 -m pip install -r requirements.txt +# 2 拷贝该模型需要数据、预训练模型 +# wget -p ./tain_data/ xxxxx +# 3 批量运行(如不方便批量,1,2需放到单个模型中) + +model_mode_list=(det_mv3_db det_r50_vd_east) +fp_item_list=(fp32) +bs_list=(256 128) +for model_mode in ${model_mode_list[@]}; do + for fp_item in ${fp_item_list[@]}; do + for bs_item in ${bs_list[@]}; do + echo "index is speed, 1gpus, begin, ${model_name}" + run_mode=sp + CUDA_VISIBLE_DEVICES=7 bash benchmark/run_benchmark.sh ${run_mode} ${bs_item} ${fp_item} 10 ${model_mode} # (5min) + sleep 60 + echo "index is speed, 8gpus, run_mode is multi_process, begin, ${model_name}" + run_mode=mp + CUDA_VISIBLE_DEVICES=6,7 bash benchmark/run_benchmark.sh ${run_mode} ${bs_item} ${fp_item} 10 ${model_mode} + sleep 60 + done + done +done + + From 49fba3e876a287d34a776fca564e077f7690039d Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Thu, 23 Sep 2021 19:42:27 +0800 Subject: [PATCH 05/25] fix comment --- benchmark/run_det.sh | 11 ++++++----- configs/det/det_r50_vd_east.yml | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/benchmark/run_det.sh b/benchmark/run_det.sh index 4631f6ff0a..c94af85c36 100644 --- a/benchmark/run_det.sh +++ b/benchmark/run_det.sh @@ -1,10 +1,11 @@ # 提供可稳定复现性能的脚本,默认在标准docker环境内py37执行: paddlepaddle/paddle:latest-gpu-cuda10.1-cudnn7 paddle=2.1.2 py=37 # 执行目录:需说明 -# cd PaddleOCR +cd PaddleOCR # 1 安装该模型需要的依赖 (如需开启优化策略请注明) -# python3.7 -m pip install -r requirements.txt +python3.7 -m pip install -r requirements.txt # 2 拷贝该模型需要数据、预训练模型 -# wget -p ./tain_data/ xxxxx +wget -p ./tain_data/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/icdar2015.tar && cd train_data && tar xf icdar2015.tar && cd ../ +wget -p ./pretrain_models/ https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/ResNet50_vd_pretrained.pdparams # 3 批量运行(如不方便批量,1,2需放到单个模型中) model_mode_list=(det_mv3_db det_r50_vd_east) @@ -15,11 +16,11 @@ for model_mode in ${model_mode_list[@]}; do for bs_item in ${bs_list[@]}; do echo "index is speed, 1gpus, begin, ${model_name}" run_mode=sp - CUDA_VISIBLE_DEVICES=7 bash benchmark/run_benchmark.sh ${run_mode} ${bs_item} ${fp_item} 10 ${model_mode} # (5min) + CUDA_VISIBLE_DEVICES=0 bash benchmark/run_benchmark.sh ${run_mode} ${bs_item} ${fp_item} 10 ${model_mode} # (5min) sleep 60 echo "index is speed, 8gpus, run_mode is multi_process, begin, ${model_name}" run_mode=mp - CUDA_VISIBLE_DEVICES=6,7 bash benchmark/run_benchmark.sh ${run_mode} ${bs_item} ${fp_item} 10 ${model_mode} + CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 bash benchmark/run_benchmark.sh ${run_mode} ${bs_item} ${fp_item} 10 ${model_mode} sleep 60 done done diff --git a/configs/det/det_r50_vd_east.yml b/configs/det/det_r50_vd_east.yml index 0253c5bd99..e84a5fa7a7 100644 --- a/configs/det/det_r50_vd_east.yml +++ b/configs/det/det_r50_vd_east.yml @@ -8,7 +8,7 @@ Global: # evaluation is run every 5000 iterations after the 4000th iteration eval_batch_step: [4000, 5000] cal_metric_during_train: False - pretrained_model: ./pretrain_models/ResNet50_vd_pretrained/ + pretrained_model: ./pretrain_models/ResNet50_vd_pretrained checkpoints: save_inference_dir: use_visualdl: False From 9dba4a12146d672541b96390666c53120a2a850f Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Sun, 26 Sep 2021 15:09:48 +0800 Subject: [PATCH 06/25] optimize the prune --- deploy/slim/prune/sensitivity_anal.py | 51 ++++++++++++++++++--------- tools/program.py | 2 +- 2 files changed, 35 insertions(+), 18 deletions(-) diff --git a/deploy/slim/prune/sensitivity_anal.py b/deploy/slim/prune/sensitivity_anal.py index f80ddd9fb4..0f0492af2f 100644 --- a/deploy/slim/prune/sensitivity_anal.py +++ b/deploy/slim/prune/sensitivity_anal.py @@ -110,25 +110,42 @@ def main(config, device, logger, vdl_writer): logger.info("metric['hmean']: {}".format(metric['hmean'])) return metric['hmean'] - params_sensitive = pruner.sensitive( - eval_func=eval_fn, - sen_file="./sen.pickle", - skip_vars=[ - "conv2d_57.w_0", "conv2d_transpose_2.w_0", "conv2d_transpose_3.w_0" - ]) + run_sensitive_analysis = False + """ + run_sensitive_analysis=True: + Automatically compute the sensitivities of convolutions in a model. + The sensitivity of a convolution is the losses of accuracy on test dataset in + differenct pruned ratios. The sensitivities can be used to get a group of best + ratios with some condition. + + run_sensitive_analysis=False: + Set prune trim ratio to a fixed value, such as 10%. The larger the value, + the more convolution weights will be cropped. - logger.info( - "The sensitivity analysis results of model parameters saved in sen.pickle" - ) - # calculate pruned params's ratio - params_sensitive = pruner._get_ratios_by_loss(params_sensitive, loss=0.02) - for key in params_sensitive.keys(): - logger.info("{}, {}".format(key, params_sensitive[key])) + """ - #params_sensitive = {} - #for param in model.parameters(): - # if 'transpose' not in param.name and 'linear' not in param.name: - # params_sensitive[param.name] = 0.1 + if run_sensitive_analysis: + params_sensitive = pruner.sensitive( + eval_func=eval_fn, + sen_file="./deploy/slim/prune/sen.pickle", + skip_vars=[ + "conv2d_57.w_0", "conv2d_transpose_2.w_0", + "conv2d_transpose_3.w_0" + ]) + logger.info( + "The sensitivity analysis results of model parameters saved in sen.pickle" + ) + # calculate pruned params's ratio + params_sensitive = pruner._get_ratios_by_loss( + params_sensitive, loss=0.02) + for key in params_sensitive.keys(): + logger.info("{}, {}".format(key, params_sensitive[key])) + else: + params_sensitive = {} + for param in model.parameters(): + if 'transpose' not in param.name and 'linear' not in param.name: + # set prune ratio as 10%. The larger the value, the more convolution weights will be cropped + params_sensitive[param.name] = 0.1 plan = pruner.prune_vars(params_sensitive, [0]) diff --git a/tools/program.py b/tools/program.py index f484cf4a1f..2015a0fa74 100755 --- a/tools/program.py +++ b/tools/program.py @@ -351,7 +351,7 @@ def eval(model, valid_dataloader, post_process_class, eval_class, - model_type, + model_type=None, use_srn=False, use_sar=False): model.eval() From 1effa5f3fea6b99561812b77e7ef39f0c7d4e280 Mon Sep 17 00:00:00 2001 From: tink2123 Date: Mon, 27 Sep 2021 15:21:27 +0800 Subject: [PATCH 07/25] rm anno --- ppocr/data/imaug/label_ops.py | 2 +- ppocr/modeling/backbones/rec_resnet_aster.py | 7 ------- ppocr/modeling/heads/rec_aster_head.py | 1 - ppocr/modeling/transforms/tps_spatial_transformer.py | 5 ----- 4 files changed, 1 insertion(+), 14 deletions(-) diff --git a/ppocr/data/imaug/label_ops.py b/ppocr/data/imaug/label_ops.py index 17fee02d7f..45bb2a1fcb 100644 --- a/ppocr/data/imaug/label_ops.py +++ b/ppocr/data/imaug/label_ops.py @@ -369,7 +369,7 @@ class SEEDLabelEncode(BaseRecLabelEncode): return None if len(text) >= self.max_text_len: return None - data['length'] = np.array(len(text)) + 1 # conclue eos + data['length'] = np.array(len(text)) + 1 # conclude eos text = text + [len(self.character) - 1] * (self.max_text_len - len(text) ) data['label'] = np.array(text) diff --git a/ppocr/modeling/backbones/rec_resnet_aster.py b/ppocr/modeling/backbones/rec_resnet_aster.py index 5bb5803575..bdecaf46af 100644 --- a/ppocr/modeling/backbones/rec_resnet_aster.py +++ b/ppocr/modeling/backbones/rec_resnet_aster.py @@ -138,10 +138,3 @@ class ResNet_ASTER(nn.Layer): return rnn_feat else: return cnn_feat - - -if __name__ == "__main__": - x = paddle.randn([3, 3, 32, 100]) - net = ResNet_ASTER() - encoder_feat = net(x) - print(encoder_feat.shape) diff --git a/ppocr/modeling/heads/rec_aster_head.py b/ppocr/modeling/heads/rec_aster_head.py index ed520669e3..4961897b40 100644 --- a/ppocr/modeling/heads/rec_aster_head.py +++ b/ppocr/modeling/heads/rec_aster_head.py @@ -150,7 +150,6 @@ class AttentionRecognitionHead(nn.Layer): # https://github.com/IBM/pytorch-seq2seq/blob/fede87655ddce6c94b38886089e05321dc9802af/seq2seq/models/TopKDecoder.py batch_size, l, d = x.shape - # inflated_encoder_feats = _inflate(encoder_feats, beam_width, 0) # ABC --> AABBCC -/-> ABCABC x = paddle.tile( paddle.transpose( x.unsqueeze(1), perm=[1, 0, 2, 3]), [beam_width, 1, 1, 1]) diff --git a/ppocr/modeling/transforms/tps_spatial_transformer.py b/ppocr/modeling/transforms/tps_spatial_transformer.py index 731e3ee9f0..b510acb0d4 100644 --- a/ppocr/modeling/transforms/tps_spatial_transformer.py +++ b/ppocr/modeling/transforms/tps_spatial_transformer.py @@ -63,8 +63,6 @@ def build_output_control_points(num_control_points, margins): ctrl_pts_y_bottom = np.ones(num_ctrl_pts_per_side) * (1.0 - margin_y) ctrl_pts_top = np.stack([ctrl_pts_x, ctrl_pts_y_top], axis=1) ctrl_pts_bottom = np.stack([ctrl_pts_x, ctrl_pts_y_bottom], axis=1) - # ctrl_pts_top = ctrl_pts_top[1:-1,:] - # ctrl_pts_bottom = ctrl_pts_bottom[1:-1,:] output_ctrl_pts_arr = np.concatenate( [ctrl_pts_top, ctrl_pts_bottom], axis=0) output_ctrl_pts = paddle.to_tensor(output_ctrl_pts_arr) @@ -85,7 +83,6 @@ class TPSSpatialTransformer(nn.Layer): target_control_points = build_output_control_points(num_control_points, margins) N = num_control_points - # N = N - 4 # create padded kernel matrix forward_kernel = paddle.zeros(shape=[N + 3, N + 3]) @@ -112,7 +109,6 @@ class TPSSpatialTransformer(nn.Layer): target_coordinate = paddle.to_tensor(target_coordinate) # HW x 2 Y, X = paddle.split( target_coordinate, target_coordinate.shape[1], axis=1) - #Y, X = target_coordinate.split(1, dim = 1) Y = Y / (self.target_height - 1) X = X / (self.target_width - 1) target_coordinate = paddle.concat( @@ -136,7 +132,6 @@ class TPSSpatialTransformer(nn.Layer): assert source_control_points.ndimension() == 3 assert source_control_points.shape[1] == self.num_control_points assert source_control_points.shape[2] == 2 - #batch_size = source_control_points.shape[0] batch_size = paddle.shape(source_control_points)[0] self.padding_matrix = paddle.expand( From b6a9f5d2daea025a96084e9f100684065c7185ae Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Mon, 27 Sep 2021 19:43:36 +0800 Subject: [PATCH 08/25] add pse to windows_not_support_list --- ppocr/postprocess/__init__.py | 7 ++++++- tools/program.py | 35 +++++++++++++++++++++-------------- 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/ppocr/postprocess/__init__.py b/ppocr/postprocess/__init__.py index 3eb5e28da3..80d926a212 100644 --- a/ppocr/postprocess/__init__.py +++ b/ppocr/postprocess/__init__.py @@ -18,8 +18,10 @@ from __future__ import print_function from __future__ import unicode_literals import copy +import platform __all__ = ['build_post_process'] +from ppocr.utils.logging import get_logger from .db_postprocess import DBPostProcess, DistillationDBPostProcess from .east_postprocess import EASTPostProcess @@ -28,7 +30,10 @@ from .rec_postprocess import CTCLabelDecode, AttnLabelDecode, SRNLabelDecode, Di TableLabelDecode, SARLabelDecode from .cls_postprocess import ClsPostProcess from .pg_postprocess import PGPostProcess -from .pse_postprocess import PSEPostProcess + +if platform.system() != "Windows": + # pse is not support in Windows + from .pse_postprocess import PSEPostProcess def build_post_process(config, global_config=None): diff --git a/tools/program.py b/tools/program.py index f484cf4a1f..10eb246a60 100755 --- a/tools/program.py +++ b/tools/program.py @@ -395,20 +395,6 @@ def preprocess(is_train=False): config = load_config(FLAGS.config) merge_config(FLAGS.opt) - # check if set use_gpu=True in paddlepaddle cpu version - use_gpu = config['Global']['use_gpu'] - check_gpu(use_gpu) - - alg = config['Architecture']['algorithm'] - assert alg in [ - 'EAST', 'DB', 'SAST', 'Rosetta', 'CRNN', 'STARNet', 'RARE', 'SRN', - 'CLS', 'PGNet', 'Distillation', 'NRTR', 'TableAttn', 'SAR', 'PSE' - ] - - device = 'gpu:{}'.format(dist.ParallelEnv().dev_id) if use_gpu else 'cpu' - device = paddle.set_device(device) - - config['Global']['distributed'] = dist.get_world_size() != 1 if is_train: # save_config save_model_dir = config['Global']['save_model_dir'] @@ -420,6 +406,27 @@ def preprocess(is_train=False): else: log_file = None logger = get_logger(name='root', log_file=log_file) + + # check if set use_gpu=True in paddlepaddle cpu version + use_gpu = config['Global']['use_gpu'] + check_gpu(use_gpu) + + alg = config['Architecture']['algorithm'] + assert alg in [ + 'EAST', 'DB', 'SAST', 'Rosetta', 'CRNN', 'STARNet', 'RARE', 'SRN', + 'CLS', 'PGNet', 'Distillation', 'NRTR', 'TableAttn', 'SAR', 'PSE' + ] + windows_not_support_list = ['PSE'] + if platform.system() == "Windows" and alg in windows_not_support_list: + logger.warning('{} is not support in Windows now'.format( + windows_not_support_list)) + sys.exit() + + device = 'gpu:{}'.format(dist.ParallelEnv().dev_id) if use_gpu else 'cpu' + device = paddle.set_device(device) + + config['Global']['distributed'] = dist.get_world_size() != 1 + if config['Global']['use_visualdl']: from visualdl import LogWriter save_model_dir = config['Global']['save_model_dir'] From d89c6b43088f1be31ec3f436b7f26d0d262309df Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Tue, 28 Sep 2021 10:01:37 +0800 Subject: [PATCH 09/25] add profile --- tools/program.py | 14 ++++++++++++-- tools/train.py | 11 +++++++---- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/tools/program.py b/tools/program.py index 2015a0fa74..c89d7e3c99 100755 --- a/tools/program.py +++ b/tools/program.py @@ -42,6 +42,13 @@ class ArgsParser(ArgumentParser): self.add_argument("-c", "--config", help="configuration file to use") self.add_argument( "-o", "--opt", nargs='+', help="set configuration options") + self.add_argument( + '-p', + '--profiler_options', + type=str, + default=None, + help='The option of profiler, which should be in format \"key1=value1;key2=value2;key3=value3\".' + ) def parse_args(self, argv=None): args = super(ArgsParser, self).parse_args(argv) @@ -151,7 +158,8 @@ def train(config, eval_class, pre_best_model_dict, logger, - vdl_writer=None): + vdl_writer=None, + profiler_options=None): cal_metric_during_train = config['Global'].get('cal_metric_during_train', False) log_smooth_window = config['Global']['log_smooth_window'] @@ -208,6 +216,7 @@ def train(config, max_iter = len(train_dataloader) - 1 if platform.system( ) == "Windows" else len(train_dataloader) for idx, batch in enumerate(train_dataloader): + profiler.add_profiler_step(profiler_options) train_reader_cost += time.time() - batch_start if idx >= max_iter: break @@ -392,6 +401,7 @@ def eval(model, def preprocess(is_train=False): FLAGS = ArgsParser().parse_args() + profiler_options = FLAGS.profiler_options config = load_config(FLAGS.config) merge_config(FLAGS.opt) @@ -431,4 +441,4 @@ def preprocess(is_train=False): print_dict(config, logger) logger.info('train with paddle {} and device {}'.format(paddle.__version__, device)) - return config, device, logger, vdl_writer + return config, device, logger, vdl_writer, profiler_options diff --git a/tools/train.py b/tools/train.py index 05d295aa99..17a1239040 100755 --- a/tools/train.py +++ b/tools/train.py @@ -41,7 +41,7 @@ import tools.program as program dist.get_world_size() -def main(config, device, logger, vdl_writer): +def main(config, device, logger, vdl_writer, profiler_options): # init dist environment if config['Global']['distributed']: dist.init_parallel_env() @@ -105,7 +105,8 @@ def main(config, device, logger, vdl_writer): # start train program.train(config, train_dataloader, valid_dataloader, device, model, loss_class, optimizer, lr_scheduler, post_process_class, - eval_class, pre_best_model_dict, logger, vdl_writer) + eval_class, pre_best_model_dict, logger, vdl_writer, + profiler_options) def test_reader(config, device, logger): @@ -127,6 +128,8 @@ def test_reader(config, device, logger): if __name__ == '__main__': - config, device, logger, vdl_writer = program.preprocess(is_train=True) - main(config, device, logger, vdl_writer) + config, device, logger, vdl_writer, profiler_options = program.preprocess( + is_train=True) + main(config, device, logger, vdl_writer, profiler_options) + # test_reader(config, device, logger) # test_reader(config, device, logger) From f906f849812060fb225dbd1c379279a418db8c1b Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Tue, 28 Sep 2021 02:28:25 +0000 Subject: [PATCH 10/25] opt benchmark --- benchmark/run_det.sh | 16 +++--- ppocr/utils/profiler.py | 110 ++++++++++++++++++++++++++++++++++++++++ tools/program.py | 1 + 3 files changed, 119 insertions(+), 8 deletions(-) create mode 100644 ppocr/utils/profiler.py diff --git a/benchmark/run_det.sh b/benchmark/run_det.sh index c94af85c36..cf1abab0dd 100644 --- a/benchmark/run_det.sh +++ b/benchmark/run_det.sh @@ -1,27 +1,27 @@ # 提供可稳定复现性能的脚本,默认在标准docker环境内py37执行: paddlepaddle/paddle:latest-gpu-cuda10.1-cudnn7 paddle=2.1.2 py=37 # 执行目录:需说明 -cd PaddleOCR +#cd PaddleOCR # 1 安装该模型需要的依赖 (如需开启优化策略请注明) python3.7 -m pip install -r requirements.txt # 2 拷贝该模型需要数据、预训练模型 -wget -p ./tain_data/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/icdar2015.tar && cd train_data && tar xf icdar2015.tar && cd ../ -wget -p ./pretrain_models/ https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/ResNet50_vd_pretrained.pdparams +#wget -p ./tain_data/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/icdar2015.tar && cd train_data && tar xf icdar2015.tar && cd ../ +#wget -p ./pretrain_models/ https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/ResNet50_vd_pretrained.pdparams # 3 批量运行(如不方便批量,1,2需放到单个模型中) model_mode_list=(det_mv3_db det_r50_vd_east) fp_item_list=(fp32) -bs_list=(256 128) +bs_list=(4 8) for model_mode in ${model_mode_list[@]}; do for fp_item in ${fp_item_list[@]}; do for bs_item in ${bs_list[@]}; do echo "index is speed, 1gpus, begin, ${model_name}" run_mode=sp - CUDA_VISIBLE_DEVICES=0 bash benchmark/run_benchmark.sh ${run_mode} ${bs_item} ${fp_item} 10 ${model_mode} # (5min) + CUDA_VISIBLE_DEVICES=3 bash benchmark/run_benchmark_det.sh ${run_mode} ${bs_item} ${fp_item} 10 ${model_mode} # (5min) sleep 60 echo "index is speed, 8gpus, run_mode is multi_process, begin, ${model_name}" - run_mode=mp - CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 bash benchmark/run_benchmark.sh ${run_mode} ${bs_item} ${fp_item} 10 ${model_mode} - sleep 60 + #run_mode=mp + #CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 bash benchmark/run_benchmark.sh ${run_mode} ${bs_item} ${fp_item} 10 ${model_mode} + #sleep 60 done done done diff --git a/ppocr/utils/profiler.py b/ppocr/utils/profiler.py new file mode 100644 index 0000000000..c4e28bc6be --- /dev/null +++ b/ppocr/utils/profiler.py @@ -0,0 +1,110 @@ +# copyright (c) 2021 PaddlePaddle Authors. All Rights Reserve. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import sys +import paddle + +# A global variable to record the number of calling times for profiler +# functions. It is used to specify the tracing range of training steps. +_profiler_step_id = 0 + +# A global variable to avoid parsing from string every time. +_profiler_options = None + + +class ProfilerOptions(object): + ''' + Use a string to initialize a ProfilerOptions. + The string should be in the format: "key1=value1;key2=value;key3=value3". + For example: + "profile_path=model.profile" + "batch_range=[50, 60]; profile_path=model.profile" + "batch_range=[50, 60]; tracer_option=OpDetail; profile_path=model.profile" + ProfilerOptions supports following key-value pair: + batch_range - a integer list, e.g. [100, 110]. + state - a string, the optional values are 'CPU', 'GPU' or 'All'. + sorted_key - a string, the optional values are 'calls', 'total', + 'max', 'min' or 'ave. + tracer_option - a string, the optional values are 'Default', 'OpDetail', + 'AllOpDetail'. + profile_path - a string, the path to save the serialized profile data, + which can be used to generate a timeline. + exit_on_finished - a boolean. + ''' + + def __init__(self, options_str): + assert isinstance(options_str, str) + + self._options = { + 'batch_range': [10, 20], + 'state': 'All', + 'sorted_key': 'total', + 'tracer_option': 'Default', + 'profile_path': '/tmp/profile', + 'exit_on_finished': True + } + self._parse_from_string(options_str) + + def _parse_from_string(self, options_str): + for kv in options_str.replace(' ', '').split(';'): + key, value = kv.split('=') + if key == 'batch_range': + value_list = value.replace('[', '').replace(']', '').split(',') + value_list = list(map(int, value_list)) + if len(value_list) >= 2 and value_list[0] >= 0 and value_list[ + 1] > value_list[0]: + self._options[key] = value_list + elif key == 'exit_on_finished': + self._options[key] = value.lower() in ("yes", "true", "t", "1") + elif key in [ + 'state', 'sorted_key', 'tracer_option', 'profile_path' + ]: + self._options[key] = value + + def __getitem__(self, name): + if self._options.get(name, None) is None: + raise ValueError( + "ProfilerOptions does not have an option named %s." % name) + return self._options[name] + + +def add_profiler_step(options_str=None): + ''' + Enable the operator-level timing using PaddlePaddle's profiler. + The profiler uses a independent variable to count the profiler steps. + One call of this function is treated as a profiler step. + + Args: + profiler_options - a string to initialize the ProfilerOptions. + Default is None, and the profiler is disabled. + ''' + if options_str is None: + return + + global _profiler_step_id + global _profiler_options + + if _profiler_options is None: + _profiler_options = ProfilerOptions(options_str) + + if _profiler_step_id == _profiler_options['batch_range'][0]: + paddle.utils.profiler.start_profiler( + _profiler_options['state'], _profiler_options['tracer_option']) + elif _profiler_step_id == _profiler_options['batch_range'][1]: + paddle.utils.profiler.stop_profiler(_profiler_options['sorted_key'], + _profiler_options['profile_path']) + if _profiler_options['exit_on_finished']: + sys.exit(0) + + _profiler_step_id += 1 diff --git a/tools/program.py b/tools/program.py index c89d7e3c99..d941e71760 100755 --- a/tools/program.py +++ b/tools/program.py @@ -31,6 +31,7 @@ from ppocr.utils.stats import TrainingStats from ppocr.utils.save_load import save_model from ppocr.utils.utility import print_dict from ppocr.utils.logging import get_logger +from ppocr.utils import profiler from ppocr.data import build_dataloader import numpy as np From a14f8da961cba7d418dae0bbd6a7c42436b7dd07 Mon Sep 17 00:00:00 2001 From: tink2123 Date: Tue, 28 Sep 2021 11:51:01 +0800 Subject: [PATCH 11/25] polish seed code --- configs/rec/rec_resnet_stn_bilstm_att.yml | 13 ++++--- ppocr/data/imaug/label_ops.py | 2 -- ppocr/data/imaug/rec_img_aug.py | 42 +++++++---------------- ppocr/modeling/transforms/__init__.py | 2 +- ppocr/modeling/transforms/stn.py | 24 +++++++++++++ ppocr/modeling/transforms/tps.py | 25 -------------- ppocr/postprocess/rec_postprocess.py | 1 - requirements.txt | 3 +- tools/program.py | 15 ++++---- 9 files changed, 54 insertions(+), 73 deletions(-) diff --git a/configs/rec/rec_resnet_stn_bilstm_att.yml b/configs/rec/rec_resnet_stn_bilstm_att.yml index 7b5a9c7117..b18bb68573 100644 --- a/configs/rec/rec_resnet_stn_bilstm_att.yml +++ b/configs/rec/rec_resnet_stn_bilstm_att.yml @@ -19,7 +19,6 @@ Global: max_text_length: 100 infer_mode: False use_space_char: False - eval_filter: True save_res_path: ./output/rec/predicts_seed.txt @@ -37,8 +36,8 @@ Optimizer: Architecture: - model_type: seed - algorithm: ASTER + model_type: rec + algorithm: seed Transform: name: STN_ON tps_inputsize: [32, 64] @@ -76,8 +75,10 @@ Train: img_mode: BGR channel_first: False - SEEDLabelEncode: # Class handling label - - SEEDResize: + - RecResizeImg: + character_type: en image_shape: [3, 64, 256] + padding: False - KeepKeys: keep_keys: ['image', 'label', 'length', 'fast_label'] # dataloader will return list in this order loader: @@ -95,8 +96,10 @@ Eval: img_mode: BGR channel_first: False - SEEDLabelEncode: # Class handling label - - SEEDResize: + - RecResizeImg: + character_type: en image_shape: [3, 64, 256] + padding: False - KeepKeys: keep_keys: ['image', 'label', 'length'] # dataloader will return list in this order loader: diff --git a/ppocr/data/imaug/label_ops.py b/ppocr/data/imaug/label_ops.py index 45bb2a1fcb..f761eaf669 100644 --- a/ppocr/data/imaug/label_ops.py +++ b/ppocr/data/imaug/label_ops.py @@ -106,7 +106,6 @@ class BaseRecLabelEncode(object): self.max_text_len = max_text_length self.beg_str = "sos" self.end_str = "eos" - self.unknown = "UNKNOWN" if character_type == "en": self.character_str = "0123456789abcdefghijklmnopqrstuvwxyz" dict_character = list(self.character_str) @@ -357,7 +356,6 @@ class SEEDLabelEncode(BaseRecLabelEncode): character_type, use_space_char) def add_special_char(self, dict_character): - self.beg_str = "sos" self.end_str = "eos" dict_character = dict_character + [self.end_str] return dict_character diff --git a/ppocr/data/imaug/rec_img_aug.py b/ppocr/data/imaug/rec_img_aug.py index 6904d38e6d..71ed8976db 100644 --- a/ppocr/data/imaug/rec_img_aug.py +++ b/ppocr/data/imaug/rec_img_aug.py @@ -88,29 +88,19 @@ class RecResizeImg(object): image_shape, infer_mode=False, character_type='ch', + padding=True, **kwargs): self.image_shape = image_shape self.infer_mode = infer_mode self.character_type = character_type + self.padding = padding def __call__(self, data): img = data['image'] if self.infer_mode and self.character_type == "ch": norm_img = resize_norm_img_chinese(img, self.image_shape) else: - norm_img = resize_norm_img(img, self.image_shape) - data['image'] = norm_img - return data - - -class SEEDResize(object): - def __init__(self, image_shape, infer_mode=False, **kwargs): - self.image_shape = image_shape - self.infer_mode = infer_mode - - def __call__(self, data): - img = data['image'] - norm_img = resize_no_padding_img(img, self.image_shape) + norm_img = resize_norm_img(img, self.image_shape, self.padding) data['image'] = norm_img return data @@ -186,16 +176,21 @@ def resize_norm_img_sar(img, image_shape, width_downsample_ratio=0.25): return padding_im, resize_shape, pad_shape, valid_ratio -def resize_norm_img(img, image_shape): +def resize_norm_img(img, image_shape, padding=True): imgC, imgH, imgW = image_shape h = img.shape[0] w = img.shape[1] - ratio = w / float(h) - if math.ceil(imgH * ratio) > imgW: + if not padding: + resized_image = cv2.resize( + img, (imgW, imgH), interpolation=cv2.INTER_LINEAR) resized_w = imgW else: - resized_w = int(math.ceil(imgH * ratio)) - resized_image = cv2.resize(img, (resized_w, imgH)) + ratio = w / float(h) + if math.ceil(imgH * ratio) > imgW: + resized_w = imgW + else: + resized_w = int(math.ceil(imgH * ratio)) + resized_image = cv2.resize(img, (resized_w, imgH)) resized_image = resized_image.astype('float32') if image_shape[0] == 1: resized_image = resized_image / 255 @@ -209,17 +204,6 @@ def resize_norm_img(img, image_shape): return padding_im -def resize_no_padding_img(img, image_shape): - imgC, imgH, imgW = image_shape - resized_image = cv2.resize( - img, (imgW, imgH), interpolation=cv2.INTER_LINEAR) - resized_image = resized_image.astype('float32') - resized_image = resized_image.transpose((2, 0, 1)) / 255 - resized_image -= 0.5 - resized_image /= 0.5 - return resized_image - - def resize_norm_img_chinese(img, image_shape): imgC, imgH, imgW = image_shape # todo: change to 0 and modified image shape diff --git a/ppocr/modeling/transforms/__init__.py b/ppocr/modeling/transforms/__init__.py index 0e02a1c0cf..405ab3cc6c 100755 --- a/ppocr/modeling/transforms/__init__.py +++ b/ppocr/modeling/transforms/__init__.py @@ -17,7 +17,7 @@ __all__ = ['build_transform'] def build_transform(config): from .tps import TPS - from .tps import STN_ON + from .stn import STN_ON support_dict = ['TPS', 'STN_ON'] diff --git a/ppocr/modeling/transforms/stn.py b/ppocr/modeling/transforms/stn.py index 23bd21891f..215895f4c4 100644 --- a/ppocr/modeling/transforms/stn.py +++ b/ppocr/modeling/transforms/stn.py @@ -22,6 +22,8 @@ from paddle import nn, ParamAttr from paddle.nn import functional as F import numpy as np +from .tps_spatial_transformer import TPSSpatialTransformer + def conv3x3_block(in_channels, out_channels, stride=1): n = 3 * 3 * out_channels @@ -106,3 +108,25 @@ class STN(nn.Layer): x = F.sigmoid(x) x = paddle.reshape(x, shape=[-1, self.num_ctrlpoints, 2]) return img_feat, x + + +class STN_ON(nn.Layer): + def __init__(self, in_channels, tps_inputsize, tps_outputsize, + num_control_points, tps_margins, stn_activation): + super(STN_ON, self).__init__() + self.tps = TPSSpatialTransformer( + output_image_size=tuple(tps_outputsize), + num_control_points=num_control_points, + margins=tuple(tps_margins)) + self.stn_head = STN(in_channels=in_channels, + num_ctrlpoints=num_control_points, + activation=stn_activation) + self.tps_inputsize = tps_inputsize + self.out_channels = in_channels + + def forward(self, image): + stn_input = paddle.nn.functional.interpolate( + image, self.tps_inputsize, mode="bilinear", align_corners=True) + stn_img_feat, ctrl_points = self.stn_head(stn_input) + x, _ = self.tps(image, ctrl_points) + return x diff --git a/ppocr/modeling/transforms/tps.py b/ppocr/modeling/transforms/tps.py index 81221b0351..6cd6855536 100644 --- a/ppocr/modeling/transforms/tps.py +++ b/ppocr/modeling/transforms/tps.py @@ -22,9 +22,6 @@ from paddle import nn, ParamAttr from paddle.nn import functional as F import numpy as np -from .tps_spatial_transformer import TPSSpatialTransformer -from .stn import STN - class ConvBNLayer(nn.Layer): def __init__(self, @@ -305,25 +302,3 @@ class TPS(nn.Layer): [-1, image.shape[2], image.shape[3], 2]) batch_I_r = F.grid_sample(x=image, grid=batch_P_prime) return batch_I_r - - -class STN_ON(nn.Layer): - def __init__(self, in_channels, tps_inputsize, tps_outputsize, - num_control_points, tps_margins, stn_activation): - super(STN_ON, self).__init__() - self.tps = TPSSpatialTransformer( - output_image_size=tuple(tps_outputsize), - num_control_points=num_control_points, - margins=tuple(tps_margins)) - self.stn_head = STN(in_channels=in_channels, - num_ctrlpoints=num_control_points, - activation=stn_activation) - self.tps_inputsize = tps_inputsize - self.out_channels = in_channels - - def forward(self, image): - stn_input = paddle.nn.functional.interpolate( - image, self.tps_inputsize, mode="bilinear", align_corners=True) - stn_img_feat, ctrl_points = self.stn_head(stn_input) - x, _ = self.tps(image, ctrl_points) - return x diff --git a/ppocr/postprocess/rec_postprocess.py b/ppocr/postprocess/rec_postprocess.py index 6c28e2b7a9..16f7f76596 100644 --- a/ppocr/postprocess/rec_postprocess.py +++ b/ppocr/postprocess/rec_postprocess.py @@ -322,7 +322,6 @@ class SEEDLabelDecode(BaseRecLabelDecode): def add_special_char(self, dict_character): self.beg_str = "sos" self.end_str = "eos" - dict_character = dict_character dict_character = dict_character + [self.end_str] return dict_character diff --git a/requirements.txt b/requirements.txt index 0b2366c5cd..311030f65f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,4 +11,5 @@ opencv-contrib-python==4.4.0.46 cython lxml premailer -openpyxl \ No newline at end of file +openpyxl +fasttext==0.9.1 \ No newline at end of file diff --git a/tools/program.py b/tools/program.py index 8a405d7d4f..8750dd9adc 100755 --- a/tools/program.py +++ b/tools/program.py @@ -186,9 +186,8 @@ def train(config, model.train() use_srn = config['Architecture']['algorithm'] == "SRN" - use_nrtr = config['Architecture']['algorithm'] == "NRTR" - use_sar = config['Architecture']['algorithm'] == 'SAR' - use_seed = config['Architecture']['algorithm'] == 'SEED' + extra_input = config['Architecture'][ + 'algorithm'] in ["SRN", "NRTR", "SAR", "SEED"] try: model_type = config['Architecture']['model_type'] except: @@ -217,7 +216,7 @@ def train(config, images = batch[0] if use_srn: model_average = True - if use_srn or model_type == 'table' or use_nrtr or use_sar or use_seed: + if model_type == 'table' or extra_input: preds = model(images, data=batch[1:]) else: preds = model(images) @@ -281,8 +280,7 @@ def train(config, post_process_class, eval_class, model_type, - use_srn=use_srn, - use_sar=use_sar) + extra_input=extra_input) cur_metric_str = 'cur metric, {}'.format(', '.join( ['{}: {}'.format(k, v) for k, v in cur_metric.items()])) logger.info(cur_metric_str) @@ -354,8 +352,7 @@ def eval(model, post_process_class, eval_class, model_type=None, - use_srn=False, - use_sar=False): + extra_input=False): model.eval() with paddle.no_grad(): total_frame = 0.0 @@ -368,7 +365,7 @@ def eval(model, break images = batch[0] start = time.time() - if use_srn or model_type == 'table' or use_sar: + if model_type == 'table' or extra_input: preds = model(images, data=batch[1:]) else: preds = model(images) From e885b57ea5a6cec66982935db9f34ad8ad329820 Mon Sep 17 00:00:00 2001 From: tink2123 Date: Tue, 28 Sep 2021 15:05:02 +0800 Subject: [PATCH 12/25] add doc for seed --- doc/doc_ch/algorithm_overview.md | 3 ++- doc/doc_ch/recognition.md | 5 +++-- ppocr/data/imaug/__init__.py | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/doc/doc_ch/algorithm_overview.md b/doc/doc_ch/algorithm_overview.md index 6daacaf7f0..af883de86c 100755 --- a/doc/doc_ch/algorithm_overview.md +++ b/doc/doc_ch/algorithm_overview.md @@ -50,6 +50,7 @@ PaddleOCR基于动态图开源的文本识别算法列表: - [x] SRN([paper](https://arxiv.org/abs/2003.12294)) - [x] NRTR([paper](https://arxiv.org/abs/1806.00926v2)) - [x] SAR([paper](https://arxiv.org/abs/1811.00751v2)) +- [x] SEED([paper](https://arxiv.org/pdf/2005.10977.pdf)) 参考[DTRB](https://arxiv.org/abs/1904.01906) 文字识别训练和评估流程,使用MJSynth和SynthText两个文字识别数据集训练,在IIIT, SVT, IC03, IC13, IC15, SVTP, CUTE数据集上进行评估,算法效果如下: @@ -66,5 +67,5 @@ PaddleOCR基于动态图开源的文本识别算法列表: |SRN|Resnet50_vd_fpn| 88.52% | rec_r50fpn_vd_none_srn | [下载链接](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_r50_vd_srn_train.tar) | |NRTR|NRTR_MTB| 84.3% | rec_mtb_nrtr | [下载链接](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_mtb_nrtr_train.tar) | |SAR|Resnet31| 87.2% | rec_r31_sar | [下载链接](https://paddleocr.bj.bcebos.com/dygraph_v2.1/rec/rec_r31_sar_train.tar) | - +|SEED| Aster_Resnet | 85.2% | rec_resnet_stn_bilstm_att | [下载链接](https://paddleocr.bj.bcebos.com/dygraph_v2.1/rec/rec_resnet_stn_bilstm_att.tar)| PaddleOCR文本识别算法的训练和使用请参考文档教程中[模型训练/评估中的文本识别部分](./recognition.md)。 diff --git a/doc/doc_ch/recognition.md b/doc/doc_ch/recognition.md index c9fd63f71f..52f978a734 100644 --- a/doc/doc_ch/recognition.md +++ b/doc/doc_ch/recognition.md @@ -234,6 +234,9 @@ PaddleOCR支持训练和评估交替进行, 可以在 `configs/rec/rec_icdar15_t | rec_r50fpn_vd_none_srn.yml | SRN | Resnet50_fpn_vd | None | rnn | srn | | rec_mtb_nrtr.yml | NRTR | nrtr_mtb | None | transformer encoder | transformer decoder | | rec_r31_sar.yml | SAR | ResNet31 | None | LSTM encoder | LSTM decoder | +| rec_resnet_stn_bilstm_att.yml | SEED | Aster_Resnet | STN | BiLSTM | att | + +*其中SEED模型需要额外加载FastText训练好的[语言模型](https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.en.300.bin.gz) 训练中文数据,推荐使用[rec_chinese_lite_train_v2.0.yml](../../configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml),如您希望尝试其他算法在中文数据集上的效果,请参考下列说明修改配置文件: @@ -460,5 +463,3 @@ python3 tools/export_model.py -c configs/rec/ch_ppocr_v2.0/rec_chinese_lite_trai ``` python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png" --rec_model_dir="./your inference model" --rec_image_shape="3, 32, 100" --rec_char_type="ch" --rec_char_dict_path="your text dict path" ``` - - diff --git a/ppocr/data/imaug/__init__.py b/ppocr/data/imaug/__init__.py index 5888029ebb..5aaa1cd71e 100644 --- a/ppocr/data/imaug/__init__.py +++ b/ppocr/data/imaug/__init__.py @@ -22,7 +22,7 @@ from .make_shrink_map import MakeShrinkMap from .random_crop_data import EastRandomCropData, RandomCropImgMask from .make_pse_gt import MakePseGt -from .rec_img_aug import RecAug, RecResizeImg, ClsResizeImg, SRNRecResizeImg, NRTRRecResizeImg, SARRecResizeImg, SEEDResize +from .rec_img_aug import RecAug, RecResizeImg, ClsResizeImg, SRNRecResizeImg, NRTRRecResizeImg, SARRecResizeImg from .randaugment import RandAugment from .copy_paste import CopyPaste from .ColorJitter import ColorJitter From 560f2f49848657d8f268126bdbee08f4428de88a Mon Sep 17 00:00:00 2001 From: tink2123 Date: Tue, 28 Sep 2021 16:25:43 +0800 Subject: [PATCH 13/25] fix eval --- tools/eval.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tools/eval.py b/tools/eval.py index 39a26ffeff..28247bc574 100755 --- a/tools/eval.py +++ b/tools/eval.py @@ -54,8 +54,7 @@ def main(): config['Architecture']["Head"]['out_channels'] = char_num model = build_model(config['Architecture']) - use_srn = config['Architecture']['algorithm'] == "SRN" - use_sar = config['Architecture']['algorithm'] == "SAR" + extra_input = config['Architecture']['algorithm'] in ["SRN", "SAR"] if "model_type" in config['Architecture'].keys(): model_type = config['Architecture']['model_type'] else: @@ -72,7 +71,7 @@ def main(): # start eval metric = program.eval(model, valid_dataloader, post_process_class, - eval_class, model_type, use_srn, use_sar) + eval_class, model_type, extra_input) logger.info('metric eval ***************') for k, v in metric.items(): logger.info('{}:{}'.format(k, v)) From ca24d38622c5e66875ed5fc256c88b16c07bb346 Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Tue, 28 Sep 2021 17:14:49 +0800 Subject: [PATCH 14/25] remove logger import --- ppocr/postprocess/__init__.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ppocr/postprocess/__init__.py b/ppocr/postprocess/__init__.py index 80d926a212..8c43c9f16f 100644 --- a/ppocr/postprocess/__init__.py +++ b/ppocr/postprocess/__init__.py @@ -21,7 +21,6 @@ import copy import platform __all__ = ['build_post_process'] -from ppocr.utils.logging import get_logger from .db_postprocess import DBPostProcess, DistillationDBPostProcess from .east_postprocess import EASTPostProcess From 5613e21d860da9e50dbacae6686b2df49152d692 Mon Sep 17 00:00:00 2001 From: littletomatodonkey Date: Tue, 28 Sep 2021 18:27:44 +0800 Subject: [PATCH 15/25] fix map name (#4191) --- ppocr/losses/distillation_loss.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ppocr/losses/distillation_loss.py b/ppocr/losses/distillation_loss.py index 73d3ae2ad2..06aa7fa845 100644 --- a/ppocr/losses/distillation_loss.py +++ b/ppocr/losses/distillation_loss.py @@ -112,7 +112,7 @@ class DistillationDMLLoss(DMLLoss): if isinstance(loss, dict): for key in loss: loss_dict["{}_{}_{}_{}_{}".format(key, pair[ - 0], pair[1], map_name, idx)] = loss[key] + 0], pair[1], self.maps_name, idx)] = loss[key] else: loss_dict["{}_{}_{}".format(self.name, self.maps_name[ _c], idx)] = loss From 222c08446a2759b9a7f6bc5995c1cd1f825b9291 Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Tue, 28 Sep 2021 11:44:17 +0000 Subject: [PATCH 16/25] add benchmark --- benchmark/analysis.py | 273 ++++++++++++++++++++++++++++++ benchmark/run_benchmark_det.sh | 4 +- benchmark/run_det.sh | 12 +- configs/det/det_res18_db_v2.0.yml | 131 ++++++++++++++ 4 files changed, 411 insertions(+), 9 deletions(-) create mode 100644 benchmark/analysis.py create mode 100644 configs/det/det_res18_db_v2.0.yml diff --git a/benchmark/analysis.py b/benchmark/analysis.py new file mode 100644 index 0000000000..c4189b99d8 --- /dev/null +++ b/benchmark/analysis.py @@ -0,0 +1,273 @@ +# copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import print_function + +import argparse +import json +import os +import re +import traceback + + +def parse_args(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "--filename", type=str, help="The name of log which need to analysis.") + parser.add_argument( + "--log_with_profiler", type=str, help="The path of train log with profiler") + parser.add_argument( + "--profiler_path", type=str, help="The path of profiler timeline log.") + parser.add_argument( + "--keyword", type=str, help="Keyword to specify analysis data") + parser.add_argument( + "--separator", type=str, default=None, help="Separator of different field in log") + parser.add_argument( + '--position', type=int, default=None, help='The position of data field') + parser.add_argument( + '--range', type=str, default="", help='The range of data field to intercept') + parser.add_argument( + '--base_batch_size', type=int, help='base_batch size on gpu') + parser.add_argument( + '--skip_steps', type=int, default=0, help='The number of steps to be skipped') + parser.add_argument( + '--model_mode', type=int, default=-1, help='Analysis mode, default value is -1') + parser.add_argument( + '--ips_unit', type=str, default=None, help='IPS unit') + parser.add_argument( + '--model_name', type=str, default=0, help='training model_name, transformer_base') + parser.add_argument( + '--mission_name', type=str, default=0, help='training mission name') + parser.add_argument( + '--direction_id', type=int, default=0, help='training direction_id') + parser.add_argument( + '--run_mode', type=str, default="sp", help='multi process or single process') + parser.add_argument( + '--index', type=int, default=1, help='{1: speed, 2:mem, 3:profiler, 6:max_batch_size}') + parser.add_argument( + '--gpu_num', type=int, default=1, help='nums of training gpus') + args = parser.parse_args() + args.separator = None if args.separator == "None" else args.separator + return args + + +def _is_number(num): + pattern = re.compile(r'^[-+]?[-0-9]\d*\.\d*|[-+]?\.?[0-9]\d*$') + result = pattern.match(num) + if result: + return True + else: + return False + + +class TimeAnalyzer(object): + def __init__(self, filename, keyword=None, separator=None, position=None, range="-1"): + if filename is None: + raise Exception("Please specify the filename!") + + if keyword is None: + raise Exception("Please specify the keyword!") + + self.filename = filename + self.keyword = keyword + self.separator = separator + self.position = position + self.range = range + self.records = None + self._distil() + + def _distil(self): + self.records = [] + with open(self.filename, "r") as f_object: + lines = f_object.readlines() + for line in lines: + if self.keyword not in line: + continue + try: + result = None + + # Distil the string from a line. + line = line.strip() + line_words = line.split(self.separator) if self.separator else line.split() + if args.position: + result = line_words[self.position] + else: + # Distil the string following the keyword. + for i in range(len(line_words) - 1): + if line_words[i] == self.keyword: + result = line_words[i + 1] + break + + # Distil the result from the picked string. + if not self.range: + result = result[0:] + elif _is_number(self.range): + result = result[0: int(self.range)] + else: + result = result[int(self.range.split(":")[0]): int(self.range.split(":")[1])] + self.records.append(float(result)) + except Exception as exc: + print("line is: {}; separator={}; position={}".format(line, self.separator, self.position)) + + print("Extract {} records: separator={}; position={}".format(len(self.records), self.separator, self.position)) + + def _get_fps(self, mode, batch_size, gpu_num, avg_of_records, run_mode, unit=None): + if mode == -1 and run_mode == 'sp': + assert unit, "Please set the unit when mode is -1." + fps = gpu_num * avg_of_records + elif mode == -1 and run_mode == 'mp': + assert unit, "Please set the unit when mode is -1." + fps = gpu_num * avg_of_records #temporarily, not used now + print("------------this is mp") + elif mode == 0: + # s/step -> samples/s + fps = (batch_size * gpu_num) / avg_of_records + unit = "samples/s" + elif mode == 1: + # steps/s -> steps/s + fps = avg_of_records + unit = "steps/s" + elif mode == 2: + # s/step -> steps/s + fps = 1 / avg_of_records + unit = "steps/s" + elif mode == 3: + # steps/s -> samples/s + fps = batch_size * gpu_num * avg_of_records + unit = "samples/s" + elif mode == 4: + # s/epoch -> s/epoch + fps = avg_of_records + unit = "s/epoch" + else: + ValueError("Unsupported analysis mode.") + + return fps, unit + + def analysis(self, batch_size, gpu_num=1, skip_steps=0, mode=-1, run_mode='sp', unit=None): + if batch_size <= 0: + print("base_batch_size should larger than 0.") + return 0, '' + + if len(self.records) <= skip_steps: # to address the condition which item of log equals to skip_steps + print("no records") + return 0, '' + + sum_of_records = 0 + sum_of_records_skipped = 0 + skip_min = self.records[skip_steps] + skip_max = self.records[skip_steps] + + count = len(self.records) + for i in range(count): + sum_of_records += self.records[i] + if i >= skip_steps: + sum_of_records_skipped += self.records[i] + if self.records[i] < skip_min: + skip_min = self.records[i] + if self.records[i] > skip_max: + skip_max = self.records[i] + + avg_of_records = sum_of_records / float(count) + avg_of_records_skipped = sum_of_records_skipped / float(count - skip_steps) + + fps, fps_unit = self._get_fps(mode, batch_size, gpu_num, avg_of_records, run_mode, unit) + fps_skipped, _ = self._get_fps(mode, batch_size, gpu_num, avg_of_records_skipped, run_mode, unit) + if mode == -1: + print("average ips of %d steps, skip 0 step:" % count) + print("\tAvg: %.3f %s" % (avg_of_records, fps_unit)) + print("\tFPS: %.3f %s" % (fps, fps_unit)) + if skip_steps > 0: + print("average ips of %d steps, skip %d steps:" % (count, skip_steps)) + print("\tAvg: %.3f %s" % (avg_of_records_skipped, fps_unit)) + print("\tMin: %.3f %s" % (skip_min, fps_unit)) + print("\tMax: %.3f %s" % (skip_max, fps_unit)) + print("\tFPS: %.3f %s" % (fps_skipped, fps_unit)) + elif mode == 1 or mode == 3: + print("average latency of %d steps, skip 0 step:" % count) + print("\tAvg: %.3f steps/s" % avg_of_records) + print("\tFPS: %.3f %s" % (fps, fps_unit)) + if skip_steps > 0: + print("average latency of %d steps, skip %d steps:" % (count, skip_steps)) + print("\tAvg: %.3f steps/s" % avg_of_records_skipped) + print("\tMin: %.3f steps/s" % skip_min) + print("\tMax: %.3f steps/s" % skip_max) + print("\tFPS: %.3f %s" % (fps_skipped, fps_unit)) + elif mode == 0 or mode == 2: + print("average latency of %d steps, skip 0 step:" % count) + print("\tAvg: %.3f s/step" % avg_of_records) + print("\tFPS: %.3f %s" % (fps, fps_unit)) + if skip_steps > 0: + print("average latency of %d steps, skip %d steps:" % (count, skip_steps)) + print("\tAvg: %.3f s/step" % avg_of_records_skipped) + print("\tMin: %.3f s/step" % skip_min) + print("\tMax: %.3f s/step" % skip_max) + print("\tFPS: %.3f %s" % (fps_skipped, fps_unit)) + + return round(fps_skipped, 3), fps_unit + + +if __name__ == "__main__": + args = parse_args() + run_info = dict() + run_info["log_file"] = args.filename + run_info["model_name"] = args.model_name + run_info["mission_name"] = args.mission_name + run_info["direction_id"] = args.direction_id + run_info["run_mode"] = args.run_mode + run_info["index"] = args.index + run_info["gpu_num"] = args.gpu_num + run_info["FINAL_RESULT"] = 0 + run_info["JOB_FAIL_FLAG"] = 0 + + try: + if args.index == 1: + if args.gpu_num == 1: + run_info["log_with_profiler"] = args.log_with_profiler + run_info["profiler_path"] = args.profiler_path + analyzer = TimeAnalyzer(args.filename, args.keyword, args.separator, args.position, args.range) + run_info["FINAL_RESULT"], run_info["UNIT"] = analyzer.analysis( + batch_size=args.base_batch_size, + gpu_num=args.gpu_num, + skip_steps=args.skip_steps, + mode=args.model_mode, + run_mode=args.run_mode, + unit=args.ips_unit) + try: + if int(os.getenv('job_fail_flag')) == 1 or int(run_info["FINAL_RESULT"]) == 0: + run_info["JOB_FAIL_FLAG"] = 1 + except: + pass + elif args.index == 3: + run_info["FINAL_RESULT"] = {} + records_fo_total = TimeAnalyzer(args.filename, 'Framework overhead', None, 3, '').records + records_fo_ratio = TimeAnalyzer(args.filename, 'Framework overhead', None, 5).records + records_ct_total = TimeAnalyzer(args.filename, 'Computation time', None, 3, '').records + records_gm_total = TimeAnalyzer(args.filename, 'GpuMemcpy Calls', None, 4, '').records + records_gm_ratio = TimeAnalyzer(args.filename, 'GpuMemcpy Calls', None, 6).records + records_gmas_total = TimeAnalyzer(args.filename, 'GpuMemcpyAsync Calls', None, 4, '').records + records_gms_total = TimeAnalyzer(args.filename, 'GpuMemcpySync Calls', None, 4, '').records + run_info["FINAL_RESULT"]["Framework_Total"] = records_fo_total[0] if records_fo_total else 0 + run_info["FINAL_RESULT"]["Framework_Ratio"] = records_fo_ratio[0] if records_fo_ratio else 0 + run_info["FINAL_RESULT"]["ComputationTime_Total"] = records_ct_total[0] if records_ct_total else 0 + run_info["FINAL_RESULT"]["GpuMemcpy_Total"] = records_gm_total[0] if records_gm_total else 0 + run_info["FINAL_RESULT"]["GpuMemcpy_Ratio"] = records_gm_ratio[0] if records_gm_ratio else 0 + run_info["FINAL_RESULT"]["GpuMemcpyAsync_Total"] = records_gmas_total[0] if records_gmas_total else 0 + run_info["FINAL_RESULT"]["GpuMemcpySync_Total"] = records_gms_total[0] if records_gms_total else 0 + else: + print("Not support!") + except Exception: + traceback.print_exc() + print("{}".format(json.dumps(run_info))) # it's required, for the log file path insert to the database + diff --git a/benchmark/run_benchmark_det.sh b/benchmark/run_benchmark_det.sh index 36228adcf4..0deede00a5 100644 --- a/benchmark/run_benchmark_det.sh +++ b/benchmark/run_benchmark_det.sh @@ -20,9 +20,7 @@ function _train(){ echo "Train on ${num_gpu_devices} GPUs" echo "current CUDA_VISIBLE_DEVICES=$CUDA_VISIBLE_DEVICES, gpus=$num_gpu_devices, batch_size=$batch_size" - train_cmd="-c configs/det/${model_name}.yml - -o Train.loader.batch_size_per_card=${batch_size} - -o Global.epoch_num=${max_iter} " + train_cmd="-c configs/det/${model_name}.yml -o Train.loader.batch_size_per_card=${batch_size} Global.epoch_num=${max_iter} " case ${run_mode} in sp) train_cmd="python3.7 tools/train.py "${train_cmd}"" diff --git a/benchmark/run_det.sh b/benchmark/run_det.sh index cf1abab0dd..d664b7f881 100644 --- a/benchmark/run_det.sh +++ b/benchmark/run_det.sh @@ -8,20 +8,20 @@ python3.7 -m pip install -r requirements.txt #wget -p ./pretrain_models/ https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/ResNet50_vd_pretrained.pdparams # 3 批量运行(如不方便批量,1,2需放到单个模型中) -model_mode_list=(det_mv3_db det_r50_vd_east) +model_mode_list=(ch_ppocr_v2.0/ch_det_res18_db_v2.0 det_r50_vd_east) fp_item_list=(fp32) -bs_list=(4 8) +bs_list=(8 16) for model_mode in ${model_mode_list[@]}; do for fp_item in ${fp_item_list[@]}; do for bs_item in ${bs_list[@]}; do echo "index is speed, 1gpus, begin, ${model_name}" run_mode=sp - CUDA_VISIBLE_DEVICES=3 bash benchmark/run_benchmark_det.sh ${run_mode} ${bs_item} ${fp_item} 10 ${model_mode} # (5min) + CUDA_VISIBLE_DEVICES=0 bash benchmark/run_benchmark_det.sh ${run_mode} ${bs_item} ${fp_item} 10 ${model_mode} # (5min) sleep 60 echo "index is speed, 8gpus, run_mode is multi_process, begin, ${model_name}" - #run_mode=mp - #CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 bash benchmark/run_benchmark.sh ${run_mode} ${bs_item} ${fp_item} 10 ${model_mode} - #sleep 60 + run_mode=mp + CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 bash benchmark/run_benchmark_det.sh ${run_mode} ${bs_item} ${fp_item} 10 ${model_mode} + sleep 60 done done done diff --git a/configs/det/det_res18_db_v2.0.yml b/configs/det/det_res18_db_v2.0.yml new file mode 100644 index 0000000000..7b07ef9964 --- /dev/null +++ b/configs/det/det_res18_db_v2.0.yml @@ -0,0 +1,131 @@ +Global: + use_gpu: true + epoch_num: 1200 + log_smooth_window: 20 + print_batch_step: 2 + save_model_dir: ./output/ch_db_res18/ + save_epoch_step: 1200 + # evaluation is run every 5000 iterations after the 4000th iteration + eval_batch_step: [3000, 2000] + cal_metric_during_train: False + pretrained_model: ./pretrain_models/ResNet18_vd_pretrained + checkpoints: + save_inference_dir: + use_visualdl: False + infer_img: doc/imgs_en/img_10.jpg + save_res_path: ./output/det_db/predicts_db.txt + +Architecture: + model_type: det + algorithm: DB + Transform: + Backbone: + name: ResNet + layers: 18 + disable_se: True + Neck: + name: DBFPN + out_channels: 256 + Head: + name: DBHead + k: 50 + +Loss: + name: DBLoss + balance_loss: true + main_loss_type: DiceLoss + alpha: 5 + beta: 10 + ohem_ratio: 3 + +Optimizer: + name: Adam + beta1: 0.9 + beta2: 0.999 + lr: + name: Cosine + learning_rate: 0.001 + warmup_epoch: 2 + regularizer: + name: 'L2' + factor: 0 + +PostProcess: + name: DBPostProcess + thresh: 0.3 + box_thresh: 0.6 + max_candidates: 1000 + unclip_ratio: 1.5 + +Metric: + name: DetMetric + main_indicator: hmean + +Train: + dataset: + name: SimpleDataSet + data_dir: ./train_data/icdar2015/text_localization/ + label_file_list: + - ./train_data/icdar2015/text_localization/train_icdar2015_label.txt + ratio_list: [1.0] + transforms: + - DecodeImage: # load image + img_mode: BGR + channel_first: False + - DetLabelEncode: # Class handling label + - IaaAugment: + augmenter_args: + - { 'type': Fliplr, 'args': { 'p': 0.5 } } + - { 'type': Affine, 'args': { 'rotate': [-10, 10] } } + - { 'type': Resize, 'args': { 'size': [0.5, 3] } } + - EastRandomCropData: + size: [960, 960] + max_tries: 50 + keep_ratio: true + - MakeBorderMap: + shrink_ratio: 0.4 + thresh_min: 0.3 + thresh_max: 0.7 + - MakeShrinkMap: + shrink_ratio: 0.4 + min_text_size: 8 + - NormalizeImage: + scale: 1./255. + mean: [0.485, 0.456, 0.406] + std: [0.229, 0.224, 0.225] + order: 'hwc' + - ToCHWImage: + - KeepKeys: + keep_keys: ['image', 'threshold_map', 'threshold_mask', 'shrink_map', 'shrink_mask'] # the order of the dataloader list + loader: + shuffle: True + drop_last: False + batch_size_per_card: 8 + num_workers: 4 + +Eval: + dataset: + name: SimpleDataSet + data_dir: ./train_data/icdar2015/text_localization/ + label_file_list: + - ./train_data/icdar2015/text_localization/test_icdar2015_label.txt + transforms: + - DecodeImage: # load image + img_mode: BGR + channel_first: False + - DetLabelEncode: # Class handling label + - DetResizeForTest: +# image_shape: [736, 1280] + - NormalizeImage: + scale: 1./255. + mean: [0.485, 0.456, 0.406] + std: [0.229, 0.224, 0.225] + order: 'hwc' + - ToCHWImage: + - KeepKeys: + keep_keys: ['image', 'shape', 'polys', 'ignore_tags'] + loader: + shuffle: False + drop_last: False + batch_size_per_card: 1 # must be 1 + num_workers: 2 From 05a7ca248037cc38118fcd6d5129cef70252d1c6 Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Tue, 28 Sep 2021 11:47:32 +0000 Subject: [PATCH 17/25] add analysis --- benchmark/run_benchmark_det.sh | 4 ++++ benchmark/run_det.sh | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/benchmark/run_benchmark_det.sh b/benchmark/run_benchmark_det.sh index 0deede00a5..26bcda5d20 100644 --- a/benchmark/run_benchmark_det.sh +++ b/benchmark/run_benchmark_det.sh @@ -45,6 +45,10 @@ function _train(){ rm ${log_file} cp mylog/workerlog.0 ${log_file} fi + + # run log analysis + analysis_cmd="python3.7 benchmark/analysis.py --filename ${log_file} --mission_name ${model_name} --run_mode ${mode} --direction_id 0 --keyword 'ips:' --base_batch_size ${batch_szie} --skip_steps 1 --gpu_num ${num_gpu_devices} --index 1 --model_mode=-1 --ips_unit=samples/sec" + eval $analysis_cmd } _set_params $@ diff --git a/benchmark/run_det.sh b/benchmark/run_det.sh index d664b7f881..582ac9b560 100644 --- a/benchmark/run_det.sh +++ b/benchmark/run_det.sh @@ -8,7 +8,7 @@ python3.7 -m pip install -r requirements.txt #wget -p ./pretrain_models/ https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/ResNet50_vd_pretrained.pdparams # 3 批量运行(如不方便批量,1,2需放到单个模型中) -model_mode_list=(ch_ppocr_v2.0/ch_det_res18_db_v2.0 det_r50_vd_east) +model_mode_list=(det_res18_db_v2.0 det_r50_vd_east) fp_item_list=(fp32) bs_list=(8 16) for model_mode in ${model_mode_list[@]}; do From 8dd147991b60d3de61aa16176539a82eb895d4fa Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Tue, 28 Sep 2021 12:22:13 +0000 Subject: [PATCH 18/25] add readme --- benchmark/readme.md | 34 ++++++++++++++++++++++++++++++++++ benchmark/run_det.sh | 7 +++---- 2 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 benchmark/readme.md diff --git a/benchmark/readme.md b/benchmark/readme.md new file mode 100644 index 0000000000..7f7704cca5 --- /dev/null +++ b/benchmark/readme.md @@ -0,0 +1,34 @@ + +# PaddleOCR DB/EAST 算法训练benchmark测试 + +PaddleOCR/benchmark目录下的文件用于获取并分析训练日志。 +训练采用icdar2015数据集,包括1000张训练图像和500张测试图像。模型配置采用resnet18_vd作为backbone,分别训练batch_size=8和batch_size=16的情况。 + +## 运行训练benchmark + +benchmark/run_det.sh 中包含了三个过程: +- 安装依赖 +- 下载数据 +- 执行训练 +- 日志分析获取IPS + +在执行训练部分,会执行单机单卡(默认0号卡)单机多卡训练,并分别执行batch_size=8和batch_size=16的情况。所以执行完后,每种模型会得到4个日志文件。 + +run_det.sh 执行方式如下: + +``` +# cd PaddleOCR/ +bash benchmark/run_det.sh +``` + +以DB为例,将得到四个日志文件,如下: +``` +det_res18_db_v2.0_sp_bs16_fp32_1 +det_res18_db_v2.0_sp_bs8_fp32_1 +det_res18_db_v2.0_mp_bs16_fp32_1 +det_res18_db_v2.0_mp_bs8_fp32_1 +``` + + + + diff --git a/benchmark/run_det.sh b/benchmark/run_det.sh index 582ac9b560..c507510c61 100644 --- a/benchmark/run_det.sh +++ b/benchmark/run_det.sh @@ -1,11 +1,10 @@ # 提供可稳定复现性能的脚本,默认在标准docker环境内py37执行: paddlepaddle/paddle:latest-gpu-cuda10.1-cudnn7 paddle=2.1.2 py=37 -# 执行目录:需说明 -#cd PaddleOCR +# 执行目录: ./PaddleOCR # 1 安装该模型需要的依赖 (如需开启优化策略请注明) python3.7 -m pip install -r requirements.txt # 2 拷贝该模型需要数据、预训练模型 -#wget -p ./tain_data/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/icdar2015.tar && cd train_data && tar xf icdar2015.tar && cd ../ -#wget -p ./pretrain_models/ https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/ResNet50_vd_pretrained.pdparams +wget -c -p ./tain_data/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/icdar2015.tar && cd train_data && tar xf icdar2015.tar && cd ../ +wget -c -p ./pretrain_models/ https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/ResNet50_vd_pretrained.pdparams # 3 批量运行(如不方便批量,1,2需放到单个模型中) model_mode_list=(det_res18_db_v2.0 det_r50_vd_east) From b40ffdd45c8e5bf65aab1ff54a08f3be4849c4d3 Mon Sep 17 00:00:00 2001 From: Topdu <784990967@qq.com> Date: Wed, 29 Sep 2021 01:50:24 +0000 Subject: [PATCH 19/25] fix sar export inference model --- tools/export_model.py | 6 ++++ tools/infer/predict_rec.py | 71 +++++++++++++++++++++++++++++++++++++- 2 files changed, 76 insertions(+), 1 deletion(-) diff --git a/tools/export_model.py b/tools/export_model.py index d8fe297235..64a0d40363 100755 --- a/tools/export_model.py +++ b/tools/export_model.py @@ -49,6 +49,12 @@ def export_single_model(model, arch_config, save_path, logger): ] ] model = to_static(model, input_spec=other_shape) + elif arch_config["algorithm"] == "SAR": + other_shape = [ + paddle.static.InputSpec( + shape=[None, 3, 48, 160], dtype="float32"), + ] + model = to_static(model, input_spec=other_shape) else: infer_shape = [3, -1, -1] if arch_config["model_type"] == "rec": diff --git a/tools/infer/predict_rec.py b/tools/infer/predict_rec.py index 332cffd539..dad70281ef 100755 --- a/tools/infer/predict_rec.py +++ b/tools/infer/predict_rec.py @@ -68,6 +68,13 @@ class TextRecognizer(object): "character_dict_path": args.rec_char_dict_path, "use_space_char": args.use_space_char } + elif self.rec_algorithm == "SAR": + postprocess_params = { + 'name': 'SARLabelDecode', + "character_type": args.rec_char_type, + "character_dict_path": args.rec_char_dict_path, + "use_space_char": args.use_space_char + } self.postprocess_op = build_post_process(postprocess_params) self.predictor, self.input_tensor, self.output_tensors, self.config = \ utility.create_predictor(args, 'rec', logger) @@ -194,6 +201,41 @@ class TextRecognizer(object): return (norm_img, encoder_word_pos, gsrm_word_pos, gsrm_slf_attn_bias1, gsrm_slf_attn_bias2) + def resize_norm_img_sar(self, img, image_shape, + width_downsample_ratio=0.25): + imgC, imgH, imgW_min, imgW_max = image_shape + h = img.shape[0] + w = img.shape[1] + valid_ratio = 1.0 + # make sure new_width is an integral multiple of width_divisor. + width_divisor = int(1 / width_downsample_ratio) + # resize + ratio = w / float(h) + resize_w = math.ceil(imgH * ratio) + if resize_w % width_divisor != 0: + resize_w = round(resize_w / width_divisor) * width_divisor + if imgW_min is not None: + resize_w = max(imgW_min, resize_w) + if imgW_max is not None: + valid_ratio = min(1.0, 1.0 * resize_w / imgW_max) + resize_w = min(imgW_max, resize_w) + resized_image = cv2.resize(img, (resize_w, imgH)) + resized_image = resized_image.astype('float32') + # norm + if image_shape[0] == 1: + resized_image = resized_image / 255 + resized_image = resized_image[np.newaxis, :] + else: + resized_image = resized_image.transpose((2, 0, 1)) / 255 + resized_image -= 0.5 + resized_image /= 0.5 + resize_shape = resized_image.shape + padding_im = -1.0 * np.ones((imgC, imgH, imgW_max), dtype=np.float32) + padding_im[:, :, 0:resize_w] = resized_image + pad_shape = padding_im.shape + + return padding_im, resize_shape, pad_shape, valid_ratio + def __call__(self, img_list): img_num = len(img_list) # Calculate the aspect ratio of all text bars @@ -216,11 +258,19 @@ class TextRecognizer(object): wh_ratio = w * 1.0 / h max_wh_ratio = max(max_wh_ratio, wh_ratio) for ino in range(beg_img_no, end_img_no): - if self.rec_algorithm != "SRN": + if self.rec_algorithm != "SRN" and self.rec_algorithm != "SAR": norm_img = self.resize_norm_img(img_list[indices[ino]], max_wh_ratio) norm_img = norm_img[np.newaxis, :] norm_img_batch.append(norm_img) + elif self.rec_algorithm == "SAR": + norm_img, _, _, valid_ratio = self.resize_norm_img_sar( + img_list[indices[ino]], self.rec_image_shape) + norm_img = norm_img[np.newaxis, :] + valid_ratio = np.expand_dims(valid_ratio, axis=0) + valid_ratios = [] + valid_ratios.append(valid_ratio) + norm_img_batch.append(norm_img) else: norm_img = self.process_image_srn( img_list[indices[ino]], self.rec_image_shape, 8, 25) @@ -266,6 +316,25 @@ class TextRecognizer(object): if self.benchmark: self.autolog.times.stamp() preds = {"predict": outputs[2]} + elif self.rec_algorithm == "SAR": + valid_ratios = np.concatenate(valid_ratios) + inputs = [ + norm_img_batch, + valid_ratios, + ] + input_names = self.predictor.get_input_names() + for i in range(len(input_names)): + input_tensor = self.predictor.get_input_handle(input_names[ + i]) + input_tensor.copy_from_cpu(inputs[i]) + self.predictor.run() + outputs = [] + for output_tensor in self.output_tensors: + output = output_tensor.copy_to_cpu() + outputs.append(output) + if self.benchmark: + self.autolog.times.stamp() + preds = outputs[0] else: self.input_tensor.copy_from_cpu(norm_img_batch) self.predictor.run() From 9cf6c4e8340b16c568721db914ab05c79216dbdd Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Wed, 29 Sep 2021 01:59:43 +0000 Subject: [PATCH 20/25] fix profile_options --- tools/program.py | 9 ++++++--- tools/train.py | 11 +++++------ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/tools/program.py b/tools/program.py index d941e71760..18fead8ba8 100755 --- a/tools/program.py +++ b/tools/program.py @@ -159,8 +159,7 @@ def train(config, eval_class, pre_best_model_dict, logger, - vdl_writer=None, - profiler_options=None): + vdl_writer=None): cal_metric_during_train = config['Global'].get('cal_metric_during_train', False) log_smooth_window = config['Global']['log_smooth_window'] @@ -168,6 +167,8 @@ def train(config, print_batch_step = config['Global']['print_batch_step'] eval_batch_step = config['Global']['eval_batch_step'] + profiler_options = config['profiler_options'] + global_step = 0 if 'global_step' in pre_best_model_dict: global_step = pre_best_model_dict['global_step'] @@ -405,6 +406,8 @@ def preprocess(is_train=False): profiler_options = FLAGS.profiler_options config = load_config(FLAGS.config) merge_config(FLAGS.opt) + profile_dic = {"profiler_options": FLAGS.profiler_options} + merge_config(profile_dic) # check if set use_gpu=True in paddlepaddle cpu version use_gpu = config['Global']['use_gpu'] @@ -442,4 +445,4 @@ def preprocess(is_train=False): print_dict(config, logger) logger.info('train with paddle {} and device {}'.format(paddle.__version__, device)) - return config, device, logger, vdl_writer, profiler_options + return config, device, logger, vdl_writer diff --git a/tools/train.py b/tools/train.py index 17a1239040..ee81961414 100755 --- a/tools/train.py +++ b/tools/train.py @@ -41,7 +41,7 @@ import tools.program as program dist.get_world_size() -def main(config, device, logger, vdl_writer, profiler_options): +def main(config, device, logger, vdl_writer): # init dist environment if config['Global']['distributed']: dist.init_parallel_env() @@ -105,8 +105,7 @@ def main(config, device, logger, vdl_writer, profiler_options): # start train program.train(config, train_dataloader, valid_dataloader, device, model, loss_class, optimizer, lr_scheduler, post_process_class, - eval_class, pre_best_model_dict, logger, vdl_writer, - profiler_options) + eval_class, pre_best_model_dict, logger, vdl_writer) def test_reader(config, device, logger): @@ -128,8 +127,8 @@ def test_reader(config, device, logger): if __name__ == '__main__': - config, device, logger, vdl_writer, profiler_options = program.preprocess( + config, device, logger, vdl_writer = program.preprocess( is_train=True) - main(config, device, logger, vdl_writer, profiler_options) - # test_reader(config, device, logger) + logger.info(f"config.profiler_options: {config.profiler_options}") + main(config, device, logger, vdl_writer) # test_reader(config, device, logger) From 54207e82eb69b791855127e439582cb368f41109 Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Wed, 29 Sep 2021 02:01:56 +0000 Subject: [PATCH 21/25] delete debug --- tools/program.py | 1 - tools/train.py | 4 +--- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/tools/program.py b/tools/program.py index 18fead8ba8..2f8b0e4adb 100755 --- a/tools/program.py +++ b/tools/program.py @@ -166,7 +166,6 @@ def train(config, epoch_num = config['Global']['epoch_num'] print_batch_step = config['Global']['print_batch_step'] eval_batch_step = config['Global']['eval_batch_step'] - profiler_options = config['profiler_options'] global_step = 0 diff --git a/tools/train.py b/tools/train.py index ee81961414..05d295aa99 100755 --- a/tools/train.py +++ b/tools/train.py @@ -127,8 +127,6 @@ def test_reader(config, device, logger): if __name__ == '__main__': - config, device, logger, vdl_writer = program.preprocess( - is_train=True) - logger.info(f"config.profiler_options: {config.profiler_options}") + config, device, logger, vdl_writer = program.preprocess(is_train=True) main(config, device, logger, vdl_writer) # test_reader(config, device, logger) From 27b6346c955e546422ab17b4d545b5eefdbfe2b3 Mon Sep 17 00:00:00 2001 From: littletomatodonkey Date: Wed, 29 Sep 2021 10:30:09 +0800 Subject: [PATCH 22/25] add center loss cod and cfg (#4165) * add center loss cod and cfg * fix name --- .../ch_PP-OCRv2_rec_enhanced_ctc_loss.yml | 126 ++++++++++++++++++ ppocr/data/imaug/label_ops.py | 5 + ppocr/losses/__init__.py | 1 - ppocr/losses/ace_loss.py | 50 +++++++ ppocr/losses/center_loss.py | 89 +++++++++++++ ppocr/losses/combined_loss.py | 4 + ppocr/losses/rec_ctc_loss.py | 10 +- ppocr/modeling/heads/rec_ctc_head.py | 17 ++- ppocr/postprocess/rec_postprocess.py | 2 + 9 files changed, 298 insertions(+), 6 deletions(-) create mode 100644 configs/rec/ch_PP-OCRv2/ch_PP-OCRv2_rec_enhanced_ctc_loss.yml create mode 100644 ppocr/losses/ace_loss.py create mode 100644 ppocr/losses/center_loss.py diff --git a/configs/rec/ch_PP-OCRv2/ch_PP-OCRv2_rec_enhanced_ctc_loss.yml b/configs/rec/ch_PP-OCRv2/ch_PP-OCRv2_rec_enhanced_ctc_loss.yml new file mode 100644 index 0000000000..8b568637a1 --- /dev/null +++ b/configs/rec/ch_PP-OCRv2/ch_PP-OCRv2_rec_enhanced_ctc_loss.yml @@ -0,0 +1,126 @@ +Global: + debug: false + use_gpu: true + epoch_num: 800 + log_smooth_window: 20 + print_batch_step: 10 + save_model_dir: ./output/rec_mobile_pp-OCRv2_enhanced_ctc_loss + save_epoch_step: 3 + eval_batch_step: [0, 2000] + cal_metric_during_train: true + pretrained_model: + checkpoints: + save_inference_dir: + use_visualdl: false + infer_img: doc/imgs_words/ch/word_1.jpg + character_dict_path: ppocr/utils/ppocr_keys_v1.txt + character_type: ch + max_text_length: 25 + infer_mode: false + use_space_char: true + distributed: true + save_res_path: ./output/rec/predicts_mobile_pp-OCRv2_enhanced_ctc_loss.txt + + +Optimizer: + name: Adam + beta1: 0.9 + beta2: 0.999 + lr: + name: Piecewise + decay_epochs : [700, 800] + values : [0.001, 0.0001] + warmup_epoch: 5 + regularizer: + name: L2 + factor: 2.0e-05 + + +Architecture: + model_type: rec + algorithm: CRNN + Transform: + Backbone: + name: MobileNetV1Enhance + scale: 0.5 + Neck: + name: SequenceEncoder + encoder_type: rnn + hidden_size: 64 + Head: + name: CTCHead + mid_channels: 96 + fc_decay: 0.00002 + return_feats: true + +Loss: + name: CombinedLoss + loss_config_list: + - CTCLoss: + use_focal_loss: false + weight: 1.0 + - CenterLoss: + weight: 0.05 + num_classes: 6625 + feat_dim: 96 + init_center: false + center_file_path: "./train_center.pkl" + # you can also try to add ace loss on your own dataset + # - ACELoss: + # weight: 0.1 + +PostProcess: + name: CTCLabelDecode + +Metric: + name: RecMetric + main_indicator: acc + +Train: + dataset: + name: SimpleDataSet + data_dir: ./train_data/ + label_file_list: + - ./train_data/train_list.txt + transforms: + - DecodeImage: + img_mode: BGR + channel_first: false + - RecAug: + - CTCLabelEncode: + - RecResizeImg: + image_shape: [3, 32, 320] + - KeepKeys: + keep_keys: + - image + - label + - length + - label_ace + loader: + shuffle: true + batch_size_per_card: 128 + drop_last: true + num_workers: 8 +Eval: + dataset: + name: SimpleDataSet + data_dir: ./train_data + label_file_list: + - ./train_data/val_list.txt + transforms: + - DecodeImage: + img_mode: BGR + channel_first: false + - CTCLabelEncode: + - RecResizeImg: + image_shape: [3, 32, 320] + - KeepKeys: + keep_keys: + - image + - label + - length + loader: + shuffle: false + drop_last: false + batch_size_per_card: 128 + num_workers: 8 diff --git a/ppocr/data/imaug/label_ops.py b/ppocr/data/imaug/label_ops.py index f761eaf669..ebf52ec4e1 100644 --- a/ppocr/data/imaug/label_ops.py +++ b/ppocr/data/imaug/label_ops.py @@ -215,6 +215,11 @@ class CTCLabelEncode(BaseRecLabelEncode): data['length'] = np.array(len(text)) text = text + [0] * (self.max_text_len - len(text)) data['label'] = np.array(text) + + label = [0] * len(self.character) + for x in text: + label[x] += 1 + data['label_ace'] = np.array(label) return data def add_special_char(self, dict_character): diff --git a/ppocr/losses/__init__.py b/ppocr/losses/__init__.py index a6c2a9f6d1..f3f4cd4933 100755 --- a/ppocr/losses/__init__.py +++ b/ppocr/losses/__init__.py @@ -52,7 +52,6 @@ def build_loss(config): 'AttentionLoss', 'SRNLoss', 'PGLoss', 'CombinedLoss', 'NRTRLoss', 'TableAttentionLoss', 'SARLoss', 'AsterLoss' ] - config = copy.deepcopy(config) module_name = config.pop('name') assert module_name in support_dict, Exception('loss only support {}'.format( diff --git a/ppocr/losses/ace_loss.py b/ppocr/losses/ace_loss.py new file mode 100644 index 0000000000..9c868520e5 --- /dev/null +++ b/ppocr/losses/ace_loss.py @@ -0,0 +1,50 @@ +# copyright (c) 2021 PaddlePaddle Authors. All Rights Reserve. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import paddle +import paddle.nn as nn + + +class ACELoss(nn.Layer): + def __init__(self, **kwargs): + super().__init__() + self.loss_func = nn.CrossEntropyLoss( + weight=None, + ignore_index=0, + reduction='none', + soft_label=True, + axis=-1) + + def __call__(self, predicts, batch): + if isinstance(predicts, (list, tuple)): + predicts = predicts[-1] + B, N = predicts.shape[:2] + div = paddle.to_tensor([N]).astype('float32') + + predicts = nn.functional.softmax(predicts, axis=-1) + aggregation_preds = paddle.sum(predicts, axis=1) + aggregation_preds = paddle.divide(aggregation_preds, div) + + length = batch[2].astype("float32") + batch = batch[3].astype("float32") + batch[:, 0] = paddle.subtract(div, length) + + batch = paddle.divide(batch, div) + + loss = self.loss_func(aggregation_preds, batch) + + return {"loss_ace": loss} diff --git a/ppocr/losses/center_loss.py b/ppocr/losses/center_loss.py new file mode 100644 index 0000000000..72149df19f --- /dev/null +++ b/ppocr/losses/center_loss.py @@ -0,0 +1,89 @@ +#copyright (c) 2021 PaddlePaddle Authors. All Rights Reserve. +# +#Licensed under the Apache License, Version 2.0 (the "License"); +#you may not use this file except in compliance with the License. +#You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +#Unless required by applicable law or agreed to in writing, software +#distributed under the License is distributed on an "AS IS" BASIS, +#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +#See the License for the specific language governing permissions and +#limitations under the License. + +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function +import os +import pickle + +import paddle +import paddle.nn as nn +import paddle.nn.functional as F + + +class CenterLoss(nn.Layer): + """ + Reference: Wen et al. A Discriminative Feature Learning Approach for Deep Face Recognition. ECCV 2016. + """ + + def __init__(self, + num_classes=6625, + feat_dim=96, + init_center=False, + center_file_path=None): + super().__init__() + self.num_classes = num_classes + self.feat_dim = feat_dim + self.centers = paddle.randn( + shape=[self.num_classes, self.feat_dim]).astype( + "float64") #random center + + if init_center: + assert os.path.exists( + center_file_path + ), f"center path({center_file_path}) must exist when init_center is set as True." + with open(center_file_path, 'rb') as f: + char_dict = pickle.load(f) + for key in char_dict.keys(): + self.centers[key] = paddle.to_tensor(char_dict[key]) + + def __call__(self, predicts, batch): + assert isinstance(predicts, (list, tuple)) + features, predicts = predicts + + feats_reshape = paddle.reshape( + features, [-1, features.shape[-1]]).astype("float64") + label = paddle.argmax(predicts, axis=2) + label = paddle.reshape(label, [label.shape[0] * label.shape[1]]) + + batch_size = feats_reshape.shape[0] + + #calc feat * feat + dist1 = paddle.sum(paddle.square(feats_reshape), axis=1, keepdim=True) + dist1 = paddle.expand(dist1, [batch_size, self.num_classes]) + + #dist2 of centers + dist2 = paddle.sum(paddle.square(self.centers), axis=1, + keepdim=True) #num_classes + dist2 = paddle.expand(dist2, + [self.num_classes, batch_size]).astype("float64") + dist2 = paddle.transpose(dist2, [1, 0]) + + #first x * x + y * y + distmat = paddle.add(dist1, dist2) + tmp = paddle.matmul(feats_reshape, + paddle.transpose(self.centers, [1, 0])) + distmat = distmat - 2.0 * tmp + + #generate the mask + classes = paddle.arange(self.num_classes).astype("int64") + label = paddle.expand( + paddle.unsqueeze(label, 1), (batch_size, self.num_classes)) + mask = paddle.equal( + paddle.expand(classes, [batch_size, self.num_classes]), + label).astype("float64") #get mask + dist = paddle.multiply(distmat, mask) + loss = paddle.sum(paddle.clip(dist, min=1e-12, max=1e+12)) / batch_size + return {'loss_center': loss} diff --git a/ppocr/losses/combined_loss.py b/ppocr/losses/combined_loss.py index f3bb36cf5a..72f706e37d 100644 --- a/ppocr/losses/combined_loss.py +++ b/ppocr/losses/combined_loss.py @@ -15,6 +15,10 @@ import paddle import paddle.nn as nn +from .rec_ctc_loss import CTCLoss +from .center_loss import CenterLoss +from .ace_loss import ACELoss + from .distillation_loss import DistillationCTCLoss from .distillation_loss import DistillationDMLLoss from .distillation_loss import DistillationDistanceLoss, DistillationDBLoss, DistillationDilaDBLoss diff --git a/ppocr/losses/rec_ctc_loss.py b/ppocr/losses/rec_ctc_loss.py index 6c0b56ff84..5d09802b46 100755 --- a/ppocr/losses/rec_ctc_loss.py +++ b/ppocr/losses/rec_ctc_loss.py @@ -21,16 +21,24 @@ from paddle import nn class CTCLoss(nn.Layer): - def __init__(self, **kwargs): + def __init__(self, use_focal_loss=False, **kwargs): super(CTCLoss, self).__init__() self.loss_func = nn.CTCLoss(blank=0, reduction='none') + self.use_focal_loss = use_focal_loss def forward(self, predicts, batch): + if isinstance(predicts, (list, tuple)): + predicts = predicts[-1] predicts = predicts.transpose((1, 0, 2)) N, B, _ = predicts.shape preds_lengths = paddle.to_tensor([N] * B, dtype='int64') labels = batch[1].astype("int32") label_lengths = batch[2].astype('int64') loss = self.loss_func(predicts, labels, preds_lengths, label_lengths) + if self.use_focal_loss: + weight = paddle.exp(-loss) + weight = paddle.subtract(paddle.to_tensor([1.0]), weight) + weight = paddle.square(weight) * self.focal_loss_alpha + loss = paddle.multiply(loss, weight) loss = loss.mean() # sum return {'loss': loss} diff --git a/ppocr/modeling/heads/rec_ctc_head.py b/ppocr/modeling/heads/rec_ctc_head.py index 9c38d31fa0..35d33d5f56 100755 --- a/ppocr/modeling/heads/rec_ctc_head.py +++ b/ppocr/modeling/heads/rec_ctc_head.py @@ -38,6 +38,7 @@ class CTCHead(nn.Layer): out_channels, fc_decay=0.0004, mid_channels=None, + return_feats=False, **kwargs): super(CTCHead, self).__init__() if mid_channels is None: @@ -66,14 +67,22 @@ class CTCHead(nn.Layer): bias_attr=bias_attr2) self.out_channels = out_channels self.mid_channels = mid_channels + self.return_feats = return_feats def forward(self, x, targets=None): if self.mid_channels is None: predicts = self.fc(x) else: - predicts = self.fc1(x) - predicts = self.fc2(predicts) - + x = self.fc1(x) + predicts = self.fc2(x) + + if self.return_feats: + result = (x, predicts) + else: + result = predicts + if not self.training: predicts = F.softmax(predicts, axis=2) - return predicts + result = predicts + + return result diff --git a/ppocr/postprocess/rec_postprocess.py b/ppocr/postprocess/rec_postprocess.py index 16f7f76596..c06159ca55 100644 --- a/ppocr/postprocess/rec_postprocess.py +++ b/ppocr/postprocess/rec_postprocess.py @@ -111,6 +111,8 @@ class CTCLabelDecode(BaseRecLabelDecode): character_type, use_space_char) def __call__(self, preds, label=None, *args, **kwargs): + if isinstance(preds, tuple): + preds = preds[-1] if isinstance(preds, paddle.Tensor): preds = preds.numpy() preds_idx = preds.argmax(axis=2) From 93118497f4f4c8f74cc60b8f3b77671f452ec99a Mon Sep 17 00:00:00 2001 From: tink2123 Date: Wed, 29 Sep 2021 02:48:11 +0000 Subject: [PATCH 23/25] fix typo --- configs/rec/rec_resnet_stn_bilstm_att.yml | 2 +- ppocr/modeling/backbones/__init__.py | 6 ++---- tools/program.py | 3 +-- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/configs/rec/rec_resnet_stn_bilstm_att.yml b/configs/rec/rec_resnet_stn_bilstm_att.yml index b18bb68573..1f6e534a68 100644 --- a/configs/rec/rec_resnet_stn_bilstm_att.yml +++ b/configs/rec/rec_resnet_stn_bilstm_att.yml @@ -37,7 +37,7 @@ Optimizer: Architecture: model_type: rec - algorithm: seed + algorithm: SEED Transform: name: STN_ON tps_inputsize: [32, 64] diff --git a/ppocr/modeling/backbones/__init__.py b/ppocr/modeling/backbones/__init__.py index d9815021c9..169eb821f1 100755 --- a/ppocr/modeling/backbones/__init__.py +++ b/ppocr/modeling/backbones/__init__.py @@ -28,9 +28,10 @@ def build_backbone(config, model_type): from .rec_mv1_enhance import MobileNetV1Enhance from .rec_nrtr_mtb import MTB from .rec_resnet_31 import ResNet31 + from .rec_resnet_aster import ResNet_ASTER support_dict = [ 'MobileNetV1Enhance', 'MobileNetV3', 'ResNet', 'ResNetFPN', 'MTB', - "ResNet31" + "ResNet31", "ResNet_ASTER" ] elif model_type == "e2e": from .e2e_resnet_vd_pg import ResNet @@ -39,9 +40,6 @@ def build_backbone(config, model_type): from .table_resnet_vd import ResNet from .table_mobilenet_v3 import MobileNetV3 support_dict = ["ResNet", "MobileNetV3"] - elif model_type == "seed": - from .rec_resnet_aster import ResNet_ASTER - support_dict = ["ResNet_ASTER"] else: raise NotImplementedError diff --git a/tools/program.py b/tools/program.py index 8750dd9adc..4df87c1686 100755 --- a/tools/program.py +++ b/tools/program.py @@ -402,8 +402,7 @@ def preprocess(is_train=False): assert alg in [ 'EAST', 'DB', 'SAST', 'Rosetta', 'CRNN', 'STARNet', 'RARE', 'SRN', 'CLS', 'PGNet', 'Distillation', 'NRTR', 'TableAttn', 'SAR', 'PSE', - 'ASTER' - ] + 'SEED'] device = 'gpu:{}'.format(dist.ParallelEnv().dev_id) if use_gpu else 'cpu' device = paddle.set_device(device) From c9181af9e52e61b7b72a3268a70b661d2a2d6fa2 Mon Sep 17 00:00:00 2001 From: Leif <4603009@qq.com> Date: Thu, 30 Sep 2021 21:55:01 +0800 Subject: [PATCH 24/25] Update joinus.png Update joinus.png --- doc/joinus.PNG | Bin 195334 -> 188140 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/joinus.PNG b/doc/joinus.PNG index 8c93b4fd6baf70c8280c9b768ac0492d82355ecf..998b4b556eb5b2e6f40568af8fed175c40272e4c 100644 GIT binary patch literal 188140 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 GnMqK8J7L2YiVt9r=$B{<5YRRtSNRv;H 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

>K$uv_8cLA%QUXsuM{P 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 rwV%*y1m z1tyn1v43s6aT4b0zI+CwNO}L${S;)TQd6DWR%y_x*@r-XIej<|KF%%;BU-a_W>-u% zI+j@=TdIlgr^LSJWZvI`xDQI=vPpD6RrJIYlJr(GZix)$Zzt{#iE+a%qkmyV3wCLH zN<~S83VvDts1T;`Ht*MqL^4Q_LRSlwA-5cvSM{Iru0>A`rppupm>D|?N14FQLB~T9 zp~0@&??>}{D*W7TCs(&(mu&(@*YwD3$%ek! zXHzP;snNYKBAL~=H-cDyH;KUNa74I2^&~Bq_xOFezkwNYIWvxoDuD8H?K_$P#86y~ z)9%w30hdme^r7_6?a|LQC!S76g!e5HzUUACJE=8}F4r->EG0U}VXBkYg|50vhWO)t z^X2m&USAfvQ^$Aoy{Vm?qU!Vp-fz|y)Eya+sC5LR*6le&SGIqEE@}FxO&sNZoV>ed ze$ot0i?*}Ym7h4!OPG~piSr}wkE zN8_CdwS2?gDz&l?vE}-Q!>p&pv8e1lTlosJyotzH)43eZ6DPW9v6Y8v5JIYeg#A;y ze$F}A03YiAwrO+GfoAvcWHBEJRA2-7?=w8h&;O5yr%!a9;@pf`-9P7mf)K3dF}Q7v zOCI!5dSY_lC{3PmMa&Puz(ke5cyO|Eaky@?3wm_wO)mehBwRRYr37-CqbqG$NiK@CXb8}oFsn2W&buZmggxi>YT0N--hYYEzy0PZ9SKIkqU}&+_Fm0C z98-Z|mH=1xKgC(;o;i5~(>oXrgB=iU%2t)JMC+q5e|Mm;z!cGCEypw%<~FzcJ1rN( zK2D%D*)m?-JYiHC+k~5)d=*v)=KX&~;^OsjT}GVoNwU3H&X~ggQ z$zKC&oHkHtmwjnJfXEpvNW5k12j1M;nTgeu0_fH7WtTsR!}LT1VB!8#M-p@?kD1eJy5D#^p=H1#ls_0?p0_vJdZn+p1|A4QJ$1OVb4x3;(g4tlCofo7XidYKM z3^wn)0O_~;vS4%Q@yc)hj^Ub@N#qI@_&q?ftW==;`VjE#KK_!~|L%|uY;6KAUBQI5 zEy!R({Ni(^Cl8FYT*Q36am2+qmkU+9nVUtnMi?$6&|MO(VMTU5xDs?_F7g${-;JpW z9G6$7N@z*q%Dn$qd)FGxR=S4WmQKg5V~K04+M33#rY>zXt~KcBh^nCogH%J*t%Ia8 zt)NuSAcRCvLW8>0wbHc2rKK9JxU`rpO{io9vDyXXD<&$&Rq$P=*vr*y7G_6hjL-#{*u6G@^vMDs_!sRMrR6< z*gBC;xMq)qCIt|%0NDRhrWdU>p+0lc5-lU(0dtZ`Fj>%f_i{|=Edc(&2EN^UzFnps z>t&m$PrQD;F_^2nciLj&$!&RAI2aCp#q%B$hl0+SqkaKX2&DMHurN7jZYPw^;(%2! zDBuBQ)zEv+4$oT7&cPS#drj)- z)^Rz>(Zm|fN5{2rI6{^Nv z- zwp5XI@8QfDVdl#^kRzY@sECgoz~lRu+o4E0bz8oVL}&c&@i83jv#LV4{AOlafETch zYL?qpR2SgJ6X;u`P=&UXGA>Eo` zUqqQ9y{p1M47|@_2-N868iepS$b`Cf!-`_0pRg@<<~nvghFv+b&r_Wi(!ha$K`4kh zU~r#6N^9abU0127XDZ4{>pD*dDHaD@Z5YqN)(@X97#k@*B!^gS=% z>83`gfoZGTdWB}`V*G-(ercil6MS91X`xFUof=wh;4KJuDt(R99 zx^_OMoGf=`OkK4?I4kSrp0hSe#;Xcpbss|0@brZUX8X(s920&!j)D|@JGMMn%N#o; zRKT1`#_t)~(bU=ONiogOQ~GAbE-oM}q{N|g{4xja*87TSK{&!#!#n8w3F zNEJClTLpdL)*N=t5TY1teOIDNYl+M|}N&m$9;phGR zD2MFA29#|Xhc6rysx_i+CY=zyu$r|ex_MbFI%xDO2l-u0#QV97jC4jD}Mh~w6yCd4E7vIc9BhM-Dc-0;5MYj3z_B zhhxjyM?NE~ywI(+2M@&WZ_RMejg+jfGc$8J(=#wuioN$^ye|IzJR4Dnx>TTL9O8@C z^-g%gx^{|IcJyPLyiik^0&>m;eqFKWsH;ZN_s-KRd)9m_;k;&j8+tVqDbD3e&3eXKp3MbkZ9Ijlh=n;3Vx z;Ri^V6{$8A!+#U-tBr&t|1{X&*iHsB{~zp3|3CdzrTA~0U;o=seY7cY?`}ze O!`ac*q2505#=ijIbPhZK

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 rwV%*y1m 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 O!`ac*q2505#=ijIbPhZK literal 195334 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

>K$uv_8cLA%QUXsuM{P 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�!~vcMf}J1l*d;n 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%0AK2R+l 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 S>0%oA(bm-evq;_Qum1vSA9t|; From 914ec890b0d42870109f06723a1c8a3469bee765 Mon Sep 17 00:00:00 2001 From: Evezerest <50011306+Evezerest@users.noreply.github.com> Date: Fri, 8 Oct 2021 13:51:51 +0800 Subject: [PATCH 25/25] Update joinus.png (#4261) Update joinus.png --- doc/joinus.PNG | Bin 188140 -> 198531 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/joinus.PNG b/doc/joinus.PNG index 998b4b556eb5b2e6f40568af8fed175c40272e4c..f7bac06594caebbd481547d3415a6fc03ba0b60a 100644 GIT binary patch literal 198531 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%0DK(bmC>!% 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 M)Vx!mVD9%n02wY|N&o-= literal 188140 zcmeFZbx@RH|2ImxAg!WwC@3JcfYK=f5>g`4Aub@D3rjajDv}~CBEr($p`g@~OP6#m zvcS@ui|6;eGw&bgoik_V{CQ@UVdviEjw`;`r!L-WX(&^WGLYio;ZdkOd#ZznN3ehO zLjnOuET?ntfM3_0pBcE};gQ|C`oYKh{Dlq=j}1@dsl2Y2=~g--`hhayvSoAzBi>cq zWGB#ICpr78t&`xjF9#&8C-U#S{?iXn<;dUP)qcXy^oi{mxz5dZq5j75f+W9)uJv@@ zdtYlwb|Y2nPO>IcaQsMrYSXT1b7CSDfs)z4DX$xuI5~N?R0v~w8!`RZk9w#5r*O}g z(g!10DG&F=AwxToV7C9fpe{DZ1y~CWkv#R)%fj_Tpy_|!$x}a|yS{eqzlVcA{{M%s zn&todHo0DIW>4h8q`-YGk0zdj{%8*S6;+mGgUqgi;29Ao$OaJO&EdAC5gaN6$j4GB zg?Nr#zq#4XZ}KUWvRy9r80HA?F~g~|x;=b#gGI4$%&ACbZvac93<&`bJMwWmG;|g5 zUH9RH5tG5dC?S>4f|3k|5qa#1)K)wJ*WIpI;7|RbJZ?$xMYtx?}f=C zD7kjw=m(DLIa~~-mWs89sfSTQeIeB`Ej}3$Q1a{qh7GmY+bb&EVNi17H)cs)iSrvI zmvK2HqqeuTY3`ClDm?{{?>`qtn6OcT4tgJQSx zXzFM9y_+)J5=-?4)^5{BEK6|U>g_))ebY`zVtiyBz{m+cbr^Afr%f|~*)vaVhcXR# z%;A)Gru8Dx-fV1JxYKH5n1*ehdxHrtA0Iw+?|sf1R}=kx@+T+fGL<6Cy-@NSirR-m z?{nrbxigLmb`Bwb{9DX^#C;-iAU2<5oEm^eOk!{jCJkehSf0w~+B61pUp*#|d)Z?x z?P#aZI$fkh4(3PZEUKDR(@IZ@DaB+`Z0bm?u^-288wK0dB23 z6DTcYnG>>lKC-6mZ+5$2RkEdKq#X+JXDfeR!KI zkD3VoUwZZ^qI{g29aHYSoE+;?(lk+Ug6!?zIRd~Cl*0m z=D{bnRgq#M!m=H2;yJE^Kd+MCV&mhKHYH3s`Q1A@Op3kI$bDMiuJj<*GVPmAZu<79q2=4R*E3e{k`OTF+c-$@!48eNhqcLr@zm7R zY(&x&uw&cs!ELypu&|}_`+`ro)t{aS?uUU7NrLeXy#2Ob>mm<21?sYe+@6MpV^gg& z+Foc%S3QU^duFk_0{QB~l&e>0(G|-)-t5;vAy?7XK!(A<8@%@ZaF&&p;;|vkP{Qmj zf!8PLe-BSM&eY#-@Wd$P4$?W_YaM)xeC&8~rp|t{^hxvY@oHvGOPMh&cROR%VzoaV zoKG?^S5j~>P=^$$M|Oz|xFp7ddw<05|4ulkksm_FU)$P!=b5#XQhL%VLdlCOro)?X6uE85>7h@#{Y#wb5 zL8^OlL}(OmY#d1ROKcY9Lau`@c7KS&%*9z}ARsYHgc-^Fx4DDm|AD7}pPEWvI1IxT ziIU5)`fLd@NqJG@ZSCDhMiF|q_S$YuR1kA!`U(Y(_$Mx$%Gg#h9BxlV{Q9NHc;;N{ znDDbKRong%gV#ilX}EV&te8jzJ8apIn`z%`tE_8x+6`qer78P?Sd!t~pLO+%8>N+% zRhGx`niQUH;Y;w^KlKCOk*>ZasD2qXINv|NGhKH}z^jccYh>JdsLWwmoWUY{5e50kTm4`*IU2>3jEqj7Su9KA`g5mpe6I}4H|K+5RZ|X) zr!$z&Tbfc9nSDOueRM=tUt^R8uu_djzXUp4&U#wLZ;+sPSn&_ISK7~$)=H1 z{<|S!3!%5Nstj6?y2rogIR3Q~Qq4PEtT=74;d@-;!qBwrC6@f0yF8z>1jCUK{)6|o zU6tX{ifGGwM#oxwq+ZWPxX${PC5t3{t2IJq|E{suLKr%3usU(srD?!0cWV1@kJ*Kg zWBvLAP}T}hVct3gy42x!FZKj3Z@w}`1b&jSbOIwif{L}8vX8>P;HS##U{~C!e@oo?DQG;&LHN%5E8Y^pShgQtrZ)K*XMF#EApBLw+R}HEkVpuo|I?vu<4>ZZB z?Suv?W|?clJ6V7V`IwSfBJ>o~GRLp^{vOsJPm4ti8Op94%NBWW|8zz1NnY=F<&Rsh zLeLB-*-NRbaj#eSc%Y8SqYll8eB3W{Y7d6O=9~DRy+!tK^1XDqU}&Gqqb^yc{9yw) zb#7JX+x&D0SgY~cUB$t4-f6k?uQcStTj#a>=xB=s)x>=J3%Wzubc`{tcdMfUr)VdN?VqMwbiYrCZ}Y2{k?v+Wi4B=e$*@r-4G{Di9j0F z5ImFgwS&D{94B{|x;(>rtz}0HVA4GG!bj^crzx44HNr9~IiblR2&z*Pd99>c+nd-p{Qc%)*+F zp~tI&VX1`6g}hZt=6tG`YJMo3T&t0i0DD0>#D>Umyp25^LjVkjWyb#kXH3RO^M=wc~?fr z6MIbrs0|$N>B*g$cS{eIh&57&RubjKg;T6AI#n)IUME%De~)m=pK+X;>t3SkTL11= zGNzC_7^q`wuvs%vE&l9lf`O~Bt#Lq`Hey9!vqK5rA$*g);-Z+Oo04wdQxT#2FrEIj z2{gvy?e)S4|1^*1l0votVh=^6vOGf=85Xo9-Lsh(OwFD9=+YU?38WcVVySC2hH=9l ze#LEr5;Lx`sK09(=#RUe676Cl0-}TR#kBT6$q5V~W7OD7@Lb}FkDZY*pYo%RUK`}; z7>v16ba?1m*i@$zCe>IS>Mwlfh5=+`&sKGZD9GReUdq8K@9@7Rnwi!;uQptt+8251 z@fqJ~w)}ToLKSL7W*b5nf#CAoKKdle50DoO~9KO3#N^ zoRe(7NNn;mIvyAF8s__?RJ848mR2v(M-*+neOf+OciGU=pk$qb-z~$LrZmxHC!f); z&0T#M!;*XIcj$~^l(Ka zHplEZ3alV9q-!IlBj%r^me}3HTM8)~=A+3e9)@8Ybh$`2uS8(-QF1{oRs7Kqd zU+P@qWOUBHo~pKtu{0{gA;{>vj%ISjxzl0YNV)|qR|?@*&0lVlzJt;*K}*cARM{6k z&r6Vw`E>Gza2}~S6oJpzdG*LOkYe~;<#pxf=2&R$T~NITZK50hY1}N9`a8}PO!W2ig{H)# z=|`X4ZM5GU*5;SJZWUEsqoaGq`DgyE3rs0Uqt*~P8Jnc@V4hF7I3sz-v-iAqMv7(- zgTw!tPSO39D}~ct*Dy^k3c;sF25o!UWLhIMFiC{7%l3TqyO)P>qMXofZHwo&o4sGl zT!fC5*@BStKR>r-g5~*B8HSk7&k1DElfDy}33npP(@)COM2GGU5UY`r@^buj`NtM? zpv1CA_8wDLGAf2z*c@~ttuu-~6K}>m{W!rni|bP&=KB7}6!P7-H5-0Tjtk`f(DzeB$2kBv~& z@QX53CmSNe*`UN~_yv6|_eXBvoN8n`uc2>YpE8@q#xlhXTnwNGlqj+IpOnh(GrJi_ zXsnKI9&EkqunNTwLa(oflbcJSh#HFbDBW}yNw9^w^_gNJ1NPJkGh%wv)^8nxUqF5} znW7|qZArtRHhX?lV@k9Wvfo7VpzXLfiOzUX;&Y1vKp^3PA zoU5l+Nubs!*u^;3*lh-kz+QASu@R=!zs~9uG17IiCsuh)xt_yMF|6D=BJKeN82#PD zm;O1N*q?ZD@cg2V-_;|V2U)rdc!bNu7G)XV^7H?lVNtZ`mn?>MfOuKJ;b=(7*3+eh zji-QV)=VkJr_3iG3$$aUc=`D!W1X4Og05O~Fq(8FWPR5OIXv;_o>vSepL0d;;mXs| zdyF()>kIyJhOcsYhixs0O}N9rdY)xkVl>15V{>#KVU-n%%C}Eon0;?5FzuaZk~PPW zELF@|smk1><3CGsu`O7;xuf7HSH+QntiG>t+i?ly8*LH9^pdQ#)rnsLQ$jT> zJYh90n$XU&b-AVkq!VbwJg(vnflsTR%~)os-Bv=on{;m`>fAU@v7g7rwFfy=lKp5# z8S%cj^^1c>5P{|wlYa_8>U98+N;vI@o6(!&e(^0WLWfiU@kh=1;&_#6&CS5PKM;pD za{4u_DeHh0FFLnD{u{T9n}`kJi7VejWJKg=c#~fKW4#Ol4CAPo{uh6Pvfc1PEpFDw z!CUTli_v^((6Q#ESlv2Z*0tkPazeQ=N9ESO!p;2%-4Xu41@pw|}Rg!ECAw z4>N?$Uv(2bSxxuMNMzp5T#aeAY`B>c7eY++H=NP26^%4uW%*4vcna`0AH9B*_WX3}J51<$slN@aW8Lzdr`q*zoQyXds%VVn1ta<+ zZs$~8hx6Ah-8`GcoX?h1O#dTTmdkD5697F2E>o)Ua4MxDAdbDr$RDCk7`;d*domce z`!6nliI|e9wB_YPtLKZVj0I>b?ijnTi9)$aQBhHZ^`g9N_<;%$lnb4VPL=E?UmoLk zQ~Yr{>vWoL#P)Y=ZSltcR9|+Zso84g%VW>jcj@}o^LyKozCK9 zBqPT*4Q&QjQ|<53Ub z%P(HMSi|*6GRQG3kuOTl9aG92|Is9XB6j^+O0i0S3|<_?UDB;)`0#`G397`p-D2)* z)Xjim{XLv=su5!PmTVsY9-oAufT6IVRvP96{FOVg zz40Sz0!=g}{s)CO6s?qE(|_dj)AbD5i#V`po{I4gP-3QPs4`DR@?*;pxj#q8;0+E3 z&LitZcjiRZu9=01Krr)-hk)1xi4(P1k=>k>2yD7&83NkXXu5_tAqko}t zob5Lz#A3Be#$1L}IBzplFW!bQJmP&c0H}1Im0RmXJ;Y|3T>A#%cw{pAdmjq5ct!r_ z>T;`i9Ev6aXR#2o2i-EsN-}X`u`Wlu7I-TXa51{9H<^ky&c?*QGz_W?`P2o-6{JqL zD&U40{W6;2UrkGL$2LJdyaW0G6wAoD4)gq=TK1oI@^s;1u1h3INlAb@dS@NXlkFKW z#6W;f1t?G%tmh6_9#mS|tdP0bYOc+idV)LCPj6bXe}vx#7Z1YZ-BmUh^TInYYF zgVilaff;DOnWfdI1XUl4#a3sC`)G5h;ekH|bFO+=ZicsqJs>SJvkOo{Vq_fOI4MB| zhmC%I&{4Ai|F78QRpusjeyWw>(erXw{Pp^MFdZj__(Yo$UDpP(gAB-!Jt12hg3Q@K zO;UgUd_tt7+R$Afgbn$8U<-25u~crV)$hWzINuhcJW;IO!KSt8ew?uy<1b?VxYl70 zRLP&!4pZ}p+<<)Z_;;4WWtkZnO7STZ1}FP2gUh2rW%zyoAJ{Q{`l+6)2~JP@Gd7u2 z;*O1e;Qp@yHj*uG30%Dj2O|*}>h=C}jpK^!BKEd^;k@9*yq?EB7jjf~I$ zJ);!xxSpT$t|`W`iK@REshJe5{9KWG3N=%GrXqo>sh-4i37jgyRu$p{;@us%J|PNp zDkhCqENYfhpCaKUbxN`^e#MvfJx-BJn2ongT|k@#HF(WkV%M)iqml%I*gE2?@daxG zAwD^_OC+9nSX*_%75)Y=MbYe1n+RS?tZnX~T>RGto7;c1xho`-R#Wpl$=?Jmqkx(`au;V7|5eRV z$%L33Vq(BmCDP!HOyCj{hRRcuk2ukVhaK*CeH+`n3q(z-f(H9rxrZ+pfBl5)lk57< zso&s%Rf{lsET+>Ws3uPgqzukO=kpZ4h8Xii2;163SBm7S_6Fp=hKpu>TE)27e+z$Q zX>OvheX-pgJ7;IYq>oqdB~`$G^&*pacuCEaJice=t_u@YBd?M)SAFu>aWmrXhv9$j z#^mmM&u&&+%wl`%Eg;j1Z;=p&Sq?$95BjXd_Skt3ro>kdAFn9xvOpjzuT9(Yq?F(5 zgfvV%)qYbW&s*q*rvKoWMv|hvZvp*{l@dN(N-E)!Ztd+JNE#5dHIeEjO9=|I9o^b{ zDv8vUs5eev*_JZz?w+q(^Zt9$FY@_ZhH9)#*sNn?((i%C13ONou&G!-*_q=X>W885 z_{|;sVV3S)zu`f4-%c@k1HuBN$EL%G2i{ljC+Eg7B?de;x44O`NBc+!kHumKZ60M+ zrT!s8E6IvP{-9<=W znU&8iw=s8>!~S%S<@GvpsQgGUnOX6Z~kLkBS3>ax20D<;y_#`%6CDmhY61!e827sR5h;*YpU6Yr(Lc>d?+=X zvH-gsVR?YlBPrG(m=Wdlw}k2&bdI+I-3zT8IaPe<6<3VI8Uyz4pLNwQVsgWq6YG0V z81lU>{p!5yrU@rvmE(VYQCrxEMt8DCt3@YpST+0wzC+gvjrGPP)Tf!A&QT>!SpVO& znJ9VR-KW4MF^ron1>;{9Io!DnxpU?qu3^rXg?-IZDI=jTKo+>S<5BX`7ST3Y+aUy% zBPVd%xZh)_tHc16*irrU1-gk?zn+5_v3(3wDW4dfZ!eY+zw%${pc`dk`|c_~T3P)2 zE>Vbh#>RnM>O+R3AqSPIQGu?#wVd58ynpkFQsdk?y#|`T8rt4GVb&D8(EDgJrZg;` z5=BoE$NO#j`iRQJwzK;x!9W*=H<);r-k9=?|9aYw^Ogpe-1ly3-=}k~lX#X+6gk!J zy@!wdc?N5vRJ<{A|J$#Y)G_T%+Tm=omk*`&OVl51UhgT< z_0F0tRTz!6{!X~XJ9Ht?#X>$jrM<8Lbs#|LkaYARY?6Auk*)b%t}XiWB$A$-`>z*7 z=340!I>*>ErD@-W+;ns<`*?IQPXhhWty9oe@Dj)1kHRDf1wDnkhsIhDxoi$0Mf19o zMFF>VtRb7j4X(Qb5qMh~c7Qou*+&Ds?c+>M;g&jEN12RI%6wV-fnz0M42a`Agpe`C z<2PBiy4F>KMvy|{<$X8iMDYQMy3t=1SON8I#^mRw<%UZXczCbT!}K}ST7UCP{%EeP zeOFLW(0-brN)X8UGBr!UKb<2*vB|pC*{}97)}F}Tta#ew*#1GK29;3`tNA%ag}hy! z0;05kTHi(({fZ@xKg*LM8olyH8-;bo&3G<0pYHS+H^CF=ALr4uLo21&lr?{2rsq_6mt5gXz{T-VuIveW zVVpKi_Sh!#XdS#juW!9K^K^Pu3n=A8_>`!PAA@QdlPEKZOkR;%@t_E=1 zyYme1B;w4|-43e7E6xH`WgvR=Pb*~nuPi{M&|k4m9@BrMS8Qyz@$W>vHh^m}V=Wg4 zVt^@r;8=H!joE#PfI^OrQ30_Se_Vs!iXC6FOZdfFza-`-pljB|YT*<02R~j+nxU|z zJ~+q5jh7|uNqk0Ny$PDxvab(hp(B^`n~V0J1$^=7x3Wxpo$EH2(0JgVTZ!n${4M)x zEujEdkIZh$ST->vM5R4|0U3SQGXUp#SX1swur6GQCQ+!+lRBMNu?F5&?Z%J7-Hlf* z49!>WXzql)m4IYqiSIIx7sh8Us*5#%NtIc8@)bu~lt43`=#2XmLz^UF| z^+Q*@&i5V-Ccs~8pb0#AmC&!W8`W|YMR<~zaQ#WoH^cSX^#pzX;tpO{qAEj*7OZ4T zh-k}kA7T2YMZd#+=zM`*AtCcS;H{#t=r@PJ<}rp(z`VBY%%TjD)%N-0wpF_Yntr6L zN3FzQXpxv7wFaXZ1bi3B{*}e~^-`+hg;dwR!vtKO9_@IxM6G59uo$Mvr&!>MH~}cW zGNg7_11?st`qX;r2l{~*U;K4Esq_8e+S8o|7fcgwQbU6}uw( zeIqaf6^r~mD@6Eief{l}<%8Z!??n+;(Q`wjm9n(S@ydckBZmqEZ8S7!mtO4lMHk3J z0=RNx{)rZq+`&@2?N2{>rM0@FH{2?DfH!jGr^x-LPgly-_KMRX1tVH{eaw)k#dG7qYndeC|9ACR@3+$U88rVp4< zkPYeBKApmQ()c>*^Lz2C_f1Hj(XZa<68!NJYx*SqE5^#kq%k~ABx}^R4Lg+l>C>A= zCGFhby_2=e)}~Q!=)<#3BotCha}7cZF$U@Qk%T-Og{!IkMMj>AxFQJr(YT&L92jQM zGHtFra5=zqfa%{yyZO2zJAuCF``G5Qcz2~RVGWprkMut&Vafa|`attpDJQp<5pw(X zzzj$jB?BJtOo4(p{^&J>{R+^4s!)$2i$8I>(rr>O6H*XjUoJtX=ORob{|pS&F26}n zqR(=yi4qgpY+iRxvecJGZHWmzehfRPpTkU104YSe0~hNFRW>Ebeku801YslfPy34bnS$g!gLI>M^Yk0~u#uu8*>!(;4k zLoLd)#DZbV*~*3R0uU1~=5VVT>N!yXx!9WPg+zx@#kss2XzS5~v}i(#xR6@OEW1-Sx1s%8V?Pm|4(8 zcG#Till81LKd%7PpWU^KAci9(etmr%MlY9?F3>r2{3ZaEQ#DcbJ`;cVEuZUQAVM$W z1*$MP<|nq7L?=neawjP&lQAazyqFv%>0PJxar#w=PDl_Xvz|d#gQ0$`{c(7@4~THTs5U^0ghJ#dc=m+FZzo=J%O14^T62Ek_zem!#v4 zf1mb+wYbrSaWP2Uls2-W&7-lcnryw}ks*3QXi=$wt69M=)*cPqr_Jlt^O9;+Em$zJ zvvq)9SbTP|Ka}+hK!r%e&y2EbdMX8>t!R_kpgw{E#2Z;@n*RJf?6BghiI1T;D^Ics zn@SPM=hTjj-OQ$u=8_O~qxq!whO`(3DssnPYX~b(<_-0a8F=d&JUcu0&zealW4Eec z>(o10KdpDM9E%$Qo9RL@ljz9h-(pl~T5OJPy#ONB6iHJJ+i;lJu~2m8l$58te{+D0 zF>>>0FW6;F3+vQw{-NcxS(ch3dT4@LGzFgSXJE*CtEa1FCQF7&g5n!JQCsAfE>{<9 zXUk&k*~nAmaBl5P}?bn|nwC;3lZ0pnOiT1Q@+e8aF@gt6ztkO(U z2mPJxo>gCy*XIL|x2cMzs}GOuM?L=OUJUXw8*9h1=_TlnkY&qXeV}aM5V)fLXFKOr%Ip#Uhh=qh0l9D@c-G_;hiJ$~GnU?G)7@)9Q z+0s&_Z}kJ)R^60-Zgc!96Swd%Hjk(q+nhjgesLyPSy?GhrUX#*(Hgki6QIO`(}M}A zGeIODs8ttXxFxCr7I&1QX(`lnzX!b!r(a_wX% z8kA*zq%}{%L{?(!>dV5HPd|#QlRwk+6bP=T?OK`t!3Gs}9-)<|yLQZ?LX9Rt4r>cY zkme(mfjgi%h+`%@wtHjxbN|*R2Q{{4#K>5 zl0qg)v#MbEVexD*0qw?!UCKD`>Q{;d5`Vlh)(1Mv#QTyQq+@%MC6S@_O{_gFfYJkkaD^PL5KMl5z7I-BUrX`E zOum<@6e<7w`STOH@aiT3Yn5C!URwHWTJ&uOL&#Hd(+s~u17pt_4}E?8(iZ%;T8f0v zB6?9&()-kRXlaozU<{1`k9Wll^YeL|uOcn$`I(LZah4UnS-e_nxYOG6!zq_3hnk7N z48$@PdzHJn0?*3L+!0kE$S@6`ayUAyX`w(q*ZSe%tz)h&R{>Z?=EZ(K+GXhYQ%?Dn zTzM<=i0CTkGN+lWDrm#?a5Y2PXSdk1sYl{TH;}j;*fZx04c} zCqZ(K>sEE*m3=XHaagl}`1WFQ-Q6B9Ntvk&gvgGjTF#AZ(woN?CWECw`iUjr%w^hr z_&I1Gxp;DZPo5mT!iAS5-naiF=QG4)A3##7hwVjN4kxS?Hr)+KvEqLQ^yaQIItOSY zq)a)Xu&UmP6iT?F5_l31FLtResbiEn;LTC{wt2PN$5kbMd{=t^)H;8~@>z!Wlhf>~ z)aT!1sY6HE@S934Y9YG=*$TBg^_$K>(ZuK6(16v?36KAAOEJu64%23EpToHTL^lrr zJN^gwL%I*HBZ56wGIwD~GsD~ox(2cbN$`}>hl|d;5T)J*U4rN5V)XX=WG_#XF| zb;dGFLWT&sr&{@Hrh~7bJqVT%Lv3XD=ACFwz3yJ@YhKb^iIj)mq5<(zUYYol?@!s_ z`Nd)$am6XInU{^}ZAP(Yafue*TH*iWtL=g;6Ftz-TWzo_e-SKzRXP9rMZ0K%@g9?7 zrzCM*ITbOC)z`Hj!DnW?(-US98Ic*(7 zSX82#7YtNKq?qsvJz~{7wM{8hg|JaEB`h0gPT}Y3xSmN9?@&OsdyB zF7yliEHmhlxck z<}=5N^zHT&o_dyN*v@Lo6ro>b>m#=l`M?9m`c|)|rt;w$RKj2+!S3HikR{6_Gu}74 zzICXd>)WM->%6sYe5P!ib}c2(Wb>o4h1*>)(~1Y)2@WiHJ_>dJA;&P#5MJ_|q`vd< z>5Q#2wx_WU1=A9=|EgG!i!(&|WRMZEn(r@nw@aAsuA$>r69r!4#q#$+l~J3=sh3n_ z^+!Hvmpd`hNC+fuqC8=l3JRkNc28z&ofh7b>7LtuRExh=+v@$gnQn_OpQ3iz+2co% zuVH?h7%ah0k42Rk`KjmQ{b7q43Z60VwZBSjZGrt{fql18zIhhApOUX)u3M(!Q9PxsxE&;IwoO zFRGo&bRoXx$taQ6Yudi!cuf)E?n(H5k?z2ICgZ1JQr8xCdd8}IXYqZylwV@POodJ@ z<1=a^_@#$u#D^UCFQ0gh8B*7}Wl6nhW@sfEcnWYTo1Kh!VoxNn1A)Udye_xtzM6XP zJMDB?cvpw=M{y2bs&0AiiYStrwkXSrno~mzzCSO=`w7z*c9x=bQxRxo49Qaa=EOIy z+2M1g_ zx1ZIbR9_~v^n%C zabK&5K2=G49LM{yRiJ^7J0>Q`5AyP6W zYt4Y6f*^j$*cczw*wC>2*kb;}D}hjX%__sHHd-nj0;Rciv|+AJfj&ZbH-{Gs{HGLv zRj5-4i$L+kbK_Ds&|(eGrXWbvxjG)tv3B4c_Eu3l6nL~CvN3ToH0k~`a^E)Be5QWc zMYFXxWIIo6&{^H1i z9L!={^;z1lk}FO<%GDyUi@rQZ!tA>JiwtYZVgd*;d8CAd%4>;PU=@Q`VA(lz5V@@=Iz)a7-L89 z^1Zc3GcA5|AQ=RvgqYXveBi&G18;yl4l%q}W_=r8h`mJcmHJriIAfcx$kYYjPlokc zf~YHcUHM~b_-c#xB7&vbeuAKtsGht(D%b=pUjTPgcdd*Vch{=3@F?2F02K#HzD-iX z_=xse7`SN=1Gln*fH7uaV`W44=FT5C;O>IsAmR!P&HLQo?G-8^E&o}zz9sk}i+m#0 zSyGbmIgKJ{aj@Dd1JT-zZF_$uyQ(u=AtEcG9RwZ*?L|O}!XZ6*y$48%WkA~kGW9mx zVRw4-fOL~hmQfmtZpI4BuNrc=f;i37Ju3#sRT_exJBZzz^g(pSDz zg!5N<2+$fS@`e;jrBFOf*~GmEK&l0Er`oM2_N_LaPh)OX>dVP8%LwEu(DV(RKv409 z_lB%P1)DubTE%U$u4}5?jr(~5zpir3AV6fusY=|_daMuh7KWXR?Nb?$%&loY;G1^s z;e+qT$P*|p?_Grvz`YZ_jhRLf5>t-LmGV9_rO>8Xh?U%FMb^wl zf>8)eShk*fmFV#bYbu$eHYx(BH?`vW$(m5}ai7zbird-x&N-eV?Ck@UU}aW6ng~kf z?h9Qpp+@aci+3Q1eW_SDTFz`#-Efa?*Vwu3npdBlX$Vl;KqHS=PvyiKQxoYM8n#=@ zo*IDA4@i-L+czx{9T4mp+B|@YibiPUTP~wwE$IPrn>+6J1m1BVSLD{3KM)U<5a9c_ zG{o?oe5R&Ktx+soiN)Hi2j7ustEEerfDipFkjz2&;ZEQnE96iSa5-$hBvrHQ(avvZ zDpQG;oVNV? zK%ag)&j2yu@zC2M-=zm56hx1b&HTkdJ|k0~vqbk~$Uc?*_e$6?Z_nIplh42EnkEW> zp?@$h!#*pvT{929DRBp-X4V~buR_K>p|`hpzPyLO1D0%Jg&nsSLGng+-q2MTX3(a?)<9Gt2_M| z=S$RbXxDPJEdh{T<*BHpf`oPuhVg6Mc5vztMoAH(gw>wMbNHp!zXM>-6xHb4ADGO% zA(ay0vr|Vb3z9SroE(w8Lq&l5we8F_{3~oZDI9O`bXu>Kq+)g<=VVxOsrTcb=NTd=^<)W>WLeoX^y65_+Ll5K#ye(d5 zee_`dhPJ9tVINY7CnwV2p}+g0n`pf_*K$&o8<>ld$o{thkVlHns%dRcD<+;6jxub7 z8We*FylUR-5G}|d!o~q@;x_V5_&U=l)BOx*y@yMx8U(lUep*;7#iSkJ43jFB!R2hxQFAKNT+-6oML%7e7C`C{Nn_IcB#ghtuk9;Bysv~@d6)EO@d$(Bd_Bvi zM((U3;u~BZ6>Hw@zWD1JvWEEr+HqtFcRy59K}uk?9`g|Ot*w>pgmp1ciV9iJVl%P7 z`7_O#Yem?j(8|PTjRE6+JHKTwSZ>QBN@OQHd-yV#ZWWeH{;vCt9L@ zna6Q%q#L$QbIRXbvRrdC9AU-uI~ zt0x#}r^}sLUHwrg-hA|A1}PA+!jl;?b zTQ$xdbfAX#rdYw8HJFJJum~ceT zkh)g@%)@)VJ9hhX`J|1F=Uc|>ey~}1PTKpvf-0yyetP_BYKKebHBk}}8rOGc_~Bxs z&vPGjw?Z)7!iKPkE7BgX$L@$3m-1~P``+DR#u|p?<;ERd{mM5IWHb97B|enZiohv;6sLPg(imh~2xk2UyjQvaD~uC-QaP-&Pucge-i zRWS8XJQ86LHMjKt#3B9R9po3EXb8MJ1P4?8{fVOt|31cZSn^J#2)jsQX8JXVv15kV z6x8;3cmiZ1gC?Ra+6b_U2wvKa6m&>#4h)*kA&4)f%w*Ekn+p=a20|w2fK&z8lrwf? zR#H_z78HFzv17}3qTVfzL+&sMGC{B?I}_&o**LOFg#^h2AI7>GPS72llK7|3!ApD|NWFFBe%BO4=DqpD);<9m9Qc2OHRU&e6KXj1|%4y3Q zH6vx3#kXud=`l73lmkt)u)`asv|A&h!fDm}2CFS@s~U~FVFFA?j_lbX`Pq9?R3HS) zzZJGuuM$|E?*<99s(633*nnJU&SMVMR7zULQpUC8W-5U6>_x6}#93gw<=AGnUZH_? z%TVWb_t0Z|Jm>c7ob!qT-Zv^mO3cxstf^Z^+p`!dm zW-(gWz7@=_r-WQd?{!E4(Csj=P6tI9Tx44(zZ~xrL`^$CvMcYd<;LA3A+SM$v_9Yz zWX#-ny?uQPBQG?o)OyBmKCR0(LZ5?z!-VgS|t{deK5(cT>GodNf3e)3kUNi zz|gMbtwXSnk(kwY0J3ji0TVd|dT2HKA9AhW)-TWac&Ro_=)%3`gNUJ$l6DT)tuOY> z8Ph(0ZU;M_Y%?qLyrr%KpalHfB7p&K=RU z>Pn}3Jpx^dv?d94-j-P|)&ox#{XyoI79#NJb?90p=xZxru7g;E?_ouzV#{33@`{rj z1KmI2^x3P}wC|b%Yx~g9O+%1>0yvgKaM*cAx{Flugz1WR#S^9kgEGvL(Q8b!qCCq|sX&hC+Q3u%gSdEV@#gT&i z2YasR)*Y|wWtm_Jog3=-RDXYqbK#}>~_EgOx)x|v3 zE?LVi8J_yCFSr80ZV8YkK!1US5IhQ~8OW-Ry*YjkHZdNInZ;e6lw1abh)^GnDDn*z zogV`9>GorH5m>qmP(No8s|x}be+5dxSmt=2Y65PddbTSJFwe^~)aB2s6X+FQYvsMQ zjyuhBH2~Xp7q%);otLKpmsE!N!g8%gBLLc;-IUu+kr%)je}m#V2SHpMmsT{z%$ z<26pKl_GHe$0BwW?O8iP#4N2>LM2xu$m2M)nucQ1KCbo%v@pFg@knGQ|NHygDnx{z zgrMIV`5kFHCXzXwrNd~ z-BXF@zNX;fcu|y9X=c-dQ(Wy6`r(DacUMss0iTH;2*WoY3JTJmo&T_z5Gt8>U=Jay zrtEp;d4`hjW1;L9kfHvc;5sf~xGc7l34~(u1mJUiwsam6ln*$u7}z4~&rrl<$i0Rnp)p2LjSXAWR>_ zze%z+Sw(i$ywNiap1Hu+73wNW72?}uD%(bPY?PapUcVe!#;D^6iTF1 z?lj>{C54}y^LF6;8kg=11Yy!}bd~%pT;j9Y0%XB>`I-I_hdVP-9D)@Mm2Vki&{mKX zL40$G&I50gNlFn5IZaN+@Vg+}3)KQcT27C{+M*@QFO;J|lY!3G-*2 z;}_Ovv*$55XWcOT7cEY3FM5$DFNo5iScQ~V5>x=-IurJ4gAD=HU4r0jliMOdqNUgk z{7Xqxvgs~y=+-c!R58(ODj^310eFL!>cmF`L(jdgH3ZA&z6an1d>992#g7JVrW}{x z-ys-+S)%<0p3FrSh&}GNvh**SosxL)*Z0A$ zl{^DQ{3e}m*b&E?t60Al9Z_3(@<|abNM@UsOlcpN!zD@E2YOFRW6DfQV4u65#HZlA zYL`l896@4O{b5M9RDuq;wL>R(bi4CW1J4sukC1A>?)OivCd^Z%7Y?*(EL>b}T#}tZTOaLvi3?YulX^7MtK9%wM|LJ3*Y}pr2ks z6H8t$9bLcJXefo+D%D2nZIdNxKk~KCv7g_8>xM2XG^it11IY+m&w;} zn||+5{%u~sbpKB5v3>KD9{b$wqHpHfG^WQH3*wc3Y7xu&*Bwt(DRy$&EBE$(OTEFk za5u=3Vfq~3C;6=?wVm|%cct5vOOjF}heJ@cWGaW^h+PIx#;)b9SVHm*Z@oEmu>Co! zTDtYJM3H?LX=di=@bd4Er5T8T_-K^>+VpXl5w+FSn;U28C!5_l&-fdy@4LQf4qRTB zb=lm}AClB7_ijI7Ny_kvQ=9eVS8PelyY{ukdi$dEbXtPv)R9KZQSKpe&H2(tPrt)c z?VORp?a<7gJw)RZX^4`*rpxQUgx(TvdA)~0x_|q=RT@(5EcW{~nUr@%s5aj;_~la1 zDKo5b)2%*_v69k9gps!9WU;B}1sifvTSwOsg4a4oF^B65QVB)CV-#5usxYj6(D7O# z4Y_)cd&{Wv^9p?JJ4u-yy45(5KWM(1V@5bDw3d&GGkQSsnR2nIR5~Mo>sR3yP6&V^t zQkp}z(umU1H6S3;3?VIj_ndp*cdg%D>;7@)uX9+O!_0TSvG;zS=d*dgI-Z{pzJDgS zxp7Z(@_TFcyRM}PmQ*9TQ=VEv<;j2SyJH1X+6txF)YUlWf}a}cll`oXtF5Q<&ZrW< z+)|Ypo5`KT6Z=KSDonr2N{=yr^OdX7hA+%cWw(zrjyXJaLwGa?qzl+o2nc&VXhb7=$p!-7BN_=*ePOPdUO(el;vBNe;*X8cVqhwDjMR2_bc9g48 zrk7eIkI7vC=_(D6^O;B#C%j4r%IoW8^ z+ajYeqES0xAGr(UdE%*DwqN>99_m+#w6oTQNU0@WYkw82kKFJci{p} z{hu1)qxnu1jwp(*#G|}N-g$IQ+(C|m?)#~_QU-Nb{|qldgJ7(UI!Pex{{Aa$Py308 zv8MR_s6=7cq3(N}*9yy0k-VFHckN-YXsgMUJ3Wui9Qj?Xxfp}I_%4`^G4|pIk7khq zcL}d}!bxiw-`ZC9nF?rg?Qy~=J3e(OjTQJ%jY`H^K>>abgM0fw(cj+xu3fRhKX;t0 z#-_g@?$a+p>KbG5{E-hONA`253(Udmy8lXlF^+7?{fTOJ?zqfOk04A<{Y;vy6Ojma zMo4U7pWzx(TlaB-)!f@I773^NpCPgJ2E-ImpN9rYWy&G?h=c7Xuu3w$(BH-gNRFnc zFv9)$FE(ifkvMRCgJ{F8mOB0c3;>^@)BqEOg8{I5yy@BC!3J+*{L72n2cbtB1o!kI zGwK2fKr=vA$W2VYD}F|*%84CvM@VfG#nQPwY7NSTNiVjN6NAb=y-E>W7aK~v-Ely_ z=-)ipg2Wd!%&n?>X(_Km&q2(d900?>Ap)J&33|*Dr0Ko~;uFFz!Xw5p-H0`Y;~lmx zrEdK58mej-RD#@8ni3?|%cPF0{>vSl7o^E@YZFb{EzG+ugiPO{!KrG32S3sEY+d*i z&rkl*ZMd}Vah&%sWyeJF%lX+c79*2Qpi~KMCk-4ytT7l0JIBoxkGg6SeLWOZ&5|3R zTM5q9b9vIZHZ3m!*<58SycB#Xf++kzHPM_?|(dCI)?RzQG*v#EQ!=~w2 zu@TPu#v+AK7Yb+uBOo0p#*$q{Qz! zs1-8LIEQFWw7yW3FFfvgpVI*E;(OBc?yciGZoad=V-VNZuqc*UQs-tk8DS9n8k8Sw z<1Nrl`3`Y_<Wv zvGp{B9E9k?zslKHIZRfQ`h!Oz9F&Nn(XCO8I}Ga!1d;z5dbhi{v8UGrN;{er8-c5t zM0e}H9;KUs^d%Ta{*ZgkM=2E+bH()%T?Zh}^iJx*uadLX5`u}T&&#YPcmVDBLI?(i zIxPJL>y@SGc3p)2?)l+D!kjtNF%1?FW8-KwC?*&Wfm)bD_8b(rJ4C_-j)n)`^V7|CjPZd4h#jimd+?}QP#El-p1b%n-isG6i0}jp9zLm#qiDYa1+mM}1JT)M z=X=i_C6rJId7#l4lQA>U%3#CHE1LdvSW^gydR%d;pZvg``+lQ-N8=|Dd`4xzyBu!! z&s{Hi!2c}&18o}IjVAA8KSdFawp}a6SBW+O^NU>V6CKXi@Om(bpB>nH>@=)MD&{>8 zv2#d0W0U6){amKO*KZ!CZZbClbAuxreEWnO++CR2)=;R#ak5tU#~(!h7H+`2h4NeoBpT>^p~sqBS@ozx zck_ZA2z|CjsJ-%c;B(vX(i3MaW}=#?A%yl z5%9s1sxJQx>#CmSX9D%Y-a>2-5N>Z}Blq;7KoZv(N zQP%z%7`@fHtHBcnVGKx1AK2-EpBhJzJ(#%}f|oExk<`+)l*q4YgRwsY$0x+tO)3+g z4L1p_B8in=>m5dku(dxRrdo_)|rQ zYf7hZlj6|3CPqOQs2I^=5koRjND8LyyRh)*nU%5yUQ(a{A%`@APqg6L2mVj6sxZ6 z!k1V{mMXH*Q~q67+YuhYf>taUzZX29@6mjm3XfIwJm(CuEO=4?Jzw=y(ZyK(D<3?0 z16mFoLR##X2}3$9*&q}S{nHHnYi)d zOSShfR7O#=-Zss#aYu%+eULlAzuSC)zVM)`gMF{dci)vkRLP3AqoleaoK94hCuVeI zKy3K#G?-xE?U;dI)HtCBOqU9JP&SSZZ#I*z>Q1~d-K(a9Z|wJ=6Q|_~ zy0lX4&usNrd3jMR2!cDm7hNj8me;x8PeHKz)EFq1sQf2@Sx67Q-~atDUoWuWHvFGP zQJw$)@nibN?(pM9Ve%Z@!4!N{u4rWY^^My&S(0No!Os3lQE311De-_h&(hR#Nyq2Z z7aH}AtA}v?ts8cX4-VFfFRG`_@QU)9&TZB2ih1gKhB%_z?E~DXKZ2*jB|c@ejv|`1 ztj^YDjATaChgO&Cd+uEw>ZxkLD$<23t}q^Rzg{356j4KxRivS-zZp4?nk|tsOAA`) zH9q}muYbEnQr6( z@TZ3&y3VhHs9Fu$on%W+RZSYw;uMwW-RHNNt1Rcfg%Iw_O~~P}$kDYz>Ts2xjFAXOsy-bbTLB3+Q&rFv|R+#qXJh?(G&V{kpa@$F}&=a#&H*i zY8s0=j+ksrUIvG>Le*Mo+}*=F($$YALT_>ij^a+%8y+CFY9MmP52=lzEN9N(#?Td# z)*W^JH0!yawH*+_*KaWMZXL8di&d=|Tu5EFEYEsiaf}PYkSwn{g`yv5N;!$VR-vx0 zwt&>8A@~8 zo^J&&7sf@e!I3iaAgKL~PX0AdrG^Zf=X_}GvefH$R_jYH8j$zC`b_Yu3Ac4Y(VR4^ zPnqI{083<7#sxn=kle zGNusfFl5Yyn+r-j6pjXKOtSaj5 zZ+{?iP$d#0v9E6PZ-%xV;>4^5S6y$7`L9YD% zx%FmGuuwtQ@wv1ovc}koAjCA}N0fZD@^2#i-?u3)ux^LGinXK_j{C-XH_@iDizhp0 z_*>eOM4E6*p*O0^H_~6Xa43e$vtH`pdZ#@~tk%chGuT}>wSIEuwd%8h+^j!n1cL3< z>Hc%s$3|19jR(^&dS9e2iTCMmh`+R=A|OJPK{%9#le~zHCijFR0%}|^z4weXKt{J~ zQ*7{tt5MCL00!gM{X}nqERTVR!esp=B|Hz4_S)*nBELV9+4F_uGQkH+ol*NV?G3p_ zCG5z>I7i{mf&}@}R4>`{#l&lKie;XL7ndyi=PPRlD45AT@Yi*1vd>9|8 z#19|%1Cx#X0ldlceT7iz3}@>q$v#*l=I1RIR~K5Cqa~CYHr*s%%P+%EG)ot2i^XlL zu@SpxRF(G#Y@{l05d{UF4UvgdwA>x=RSR^-)KdJ>@z}kl(4vCqUMZ-a8IbS~xey8R zZS(GKtu^l4DNjc-n8EasL6u$}mSZLFz5_l#HK2 z%mGWt4a;uq02QR)Dot(g=)vhd7!x2u-F>!xdbug+)_ zx;(hWo}hHhJl8!Wbr}OXz8(0QLo|>Y@R|cQ7JR~`(&2OCf8p+KHt{)Qx9#;_WV_Uw zSFlVw%Caq7n0z^~@+*UqcLpRky;t+G?EyGqQhP?&GDEuT2noR;H(BExI){+C*mKmy zRW(WnKf#)k%lyy%1V3ID}j){qB+oZg>S6BdP%AZn_n5Lsou}~ehc{Uvz!F(Pka@VmbPAPY&1*_XZ zPoLQLa)u9)t*biw!5oDx^@D)F0a21vlM*I_Fn^$Ev>}&LfEo4*C-3P#Fuloane4D&Dy#e`}UHkL18ulv-YbPv$%y8~tk)dZ!Qi9?gBY zU((!rtX*RFsGI&?^xHh}>w9m~<|6UELkN+3kmtJkpkM?qazBTG-B-TILQ4E-Idg0J zpphCnXX__Q7&l*MS;*IFD=}Eo4T!}r5TXSCX19MYhZet}xc1Vsv+aZjsTmxrwA$;T zb7JF7{!Ihg1Ojq?zbYRg+FP*wD%PR}C)Ly8ofy^@sPCb~EW19&YiwNpC{_onQ(^7+ zV7C8@_f^YS&(gb^sZ1sMf_0j&$l1o`85x|nqJhBiT;C$qhc|-luVl}6WZR*GP{(;R zOthnq$gbH7^FL^HK>(`gB^a^pBf0}(m$EB*6_UMvzs1INgP?Di`q^H;cs1k(w)3CG z1~@!6r%C0upB9X`?hs+gJ%3wePwu@unPY0--4&|Tm`UpzvXrwxVv`DB(z=&Bw9;uf z;0xz8beA}T+3E_1hJ4RM<_FdIzS}=LHo(ciZ{*vI*}G>?djS|SaN0>_a0u)voURg1 z&MZl9BC&4-PtHQ)nSS|pzY;ia1^cxv((F4w!t-8Y;v?${{Vxzo!WA?7O=EeOB=xLt z%=~+s4x4luSi-CE&4W8_ogh{Aq~GcOnmwc6UsDK7VLR|e!DERt@a!zbAqOQ=-qpzR z(SqQFMWw!XDwRQhzCJ=hdU3q;KF<+=hA$=eOp5=T3OC|vN!Kj4;2+v4-w0b2*(d;pM4X^JwSU6?$)3= z<#dMxK{dEWp?QOe%LA>>BM#Mw@S3@f0B}w)(8RWvk;q`Lce%~5oM3|M@Re8EUK4Si zCSjiX!dWt18BeweCq*i9k#@)hEKUH_L3jIrg$)M>#tuc+tg@ORat5NiKVmO;cC)W1 zx>H^VEJL#dva0akxf2MNsQJCM%7b9X>+2OmD>Sn0o7?Gr3@>`_JU2pH7APyJDiWSj zxhFKr<;Nwu7~QsK?0?9C$j)R*kB-RfN3m|t+xw?_lJ=k1`i%|YtX-uuP8jQ-2&C+9 ziW$(} z29=#_QXqA6myK87j8Z(OUihJindUVN9M)ZI5x813#Ac#!fGc3f*j|1wY&2t1;Xq4v zIc(iNYy%@op?S(z>-gg#&b7HZX8MEjLCFm>esmA51m7 zSUBK$i>#g$J{qkuEpy%U^c}E9kd|XUkP^t&&~y8x`R1%^IhLO%yk{@W{XVL@?_DQY zN@1~s)}-E{*{@xQ6s@(J)V``q)+Zi+ju6Z zXr}v=ow#N^?I$NMXE#{x+oKyJwa%*Rj{(d8&?L&v8@wtvCogV4FN5>O;R|(p`KEWa z4)ETp42qtIDf%ScUsS{F3iUcLOvbZQ5`&A+7yZ$El4qeJ z+J={1YiHB+m$X#F(DY+gLtXp5xms7fI84{{Z-ABp_wsSQ&!rxRg>s~OxJPF_5 zl|)w8fGY>+$Ewwt6)6b(I~$4WM+*sQ3fdFe6-^bvkC~^262iHfD#+Kh{_(Vz%8nJ^ zPh=pJsUzy!fi6dGVkO<2#_ik;U1=L*%TM!?Kt4b<+x3HkGNkEhCU1R)Awo_v&kI?Y z0RnM>va>UEpE$KR$$!-bgzus!!K1&^WA4*^<9G+Rps1wO&F)Y4NnYXPS3rC|iK+x@ z*PP(YDmRX3R)530t9YCE_np0VeT*BBsn$Vk%+k&II{EV=Qm8pB@tp{7E=JE9T%O#B z_B(|7TjzcrU!K|ksh1kQXr)C30pivxP!)Y^3#Z=#&rqU$g-F9_zed5xKejO-w8I#w zJb~`37J(Cu7M{-SRZZDS4MOJ1_+a{&`$5P_QOi$_+#^2kibfl(sVzQfGVc;|e_}UK z3jmt{48LHWr=A*C9hw!VC9!lA8FU{2^y{zg-m|uy3)m`^*oL zAK@S2=ESidSYM0Pr|FVY7SW(#tG+$t zZ5Pn_+V-CGsVwcpcm=(~a>&XfLFQh#91h!aj~ktXG#A5G?tI=PbpJ~BRk}|Q*PC%I zOMpRSVvT1n_^7#FCq#SLXB#8-ON_$nmWsETQz}WqSQC3{;F(=I^LAAsHYqvV1gCt=aCPo-)6}vYy27MpeOz zxQfa@HUUmAb&^Rr<8y})Zzb98!05Qh@DwUca-%hZw(lt^aZ1!&R?E+?UxV_O{W#b% z3k$DE48DE)Hj2B|&YYX6J0n&=BTOT$MKLPVkn^{m;**t^z5w%kb?erxQqxuf8(w+v z=3VTk|GDGOOu8!`-nre6JCTOA;mxdoajL-3wp*nf-Tm>E`%&tWx?I;`fOH__1W=A2 zR)V@qU=BgBr(DGuw3R%QRfVF%Z8?(Ij3&!dBIPNAbCtor8kx~;3I&1HINjTF5FIjr zCp-Ukwd4=vL7U5aQhE_)k|A39RmH1N!2i1a&SIWR#X_P^XQk<7h#D;@ww>h*YoVB0 ztLlh71uuVDsXi?E5r>oAGBtq=a$PXV$NtSIBV$4nUVVtWUbz63Gqh<6zHfB|D7=3) zje^JNQ2#B;1Ig0kL}fB-L2^oCANAy1VN!{;7!!8vThW(|?0-vVlJq9m*PoMoc_2 zmWi<7D1drKR@V9C%jn8rvG!N%x?+0=#rzX=e%1XIsRwi~D&wyLs-etWUW#kYvMxpjG8Le95cNkRCB4RtPU$fNwVppdkJ8mldC&vSJ}1?fhkmvy&#yfS zM_R=~MVY3HatT|}Bls~7If)CA()84F$v^+4v_fnc+?zR4^{FAfLWd2T$6g}^##rzE zlp6<)94A}mrUyQCy8zwFv5bh*&o``5QB)%JYcJ<%|H3T_>ubZVg7Dpm^PC|S{TYC@ zn1OKl+(@79TRHAwOV5kc9mLa@Ti^|q6}X=jA}~degDpex=gu`VTB%?`vfXCaeb#dtU%Yr z;$<*JHF#n#(MHB-tkDk$rr7ufXtkelkXFWwb7E}(!$(R%&xw*?hIS?SPh?4P|Nz7oC37;B&BF*`67a zl8aSyKmYw5cIVC=-1N`u#+NHcF`locJ(f=x6t2Qz2Bu$K+$B5+(ub-+_X#4dUAqRo zfx#HAbQwN>w#BQ>X`jvSSpAKWuzvJi-Xn>rysEa##((gzDgN=#E-V2;L}vGT(gPRp zvl>g9&b+ZyUbs<+6{@SVsDZ+LxR`{E>?fWh9rr~eCH_L${}RrU@4YFKvq*u14`i> z=y+PN%O$X1m$)6T{0nWCMo1FDVuq8;;Iy-M_%ODFhLkh~C;f!~RqR3ztd_XDe37}l zE2jJ8M5^&@uf+UdV+u#-3ze{#fxQ&WAFyyIZ2Z&A%wyjC?2>~^hv!WlM&ZVkt-egZ9EQhCWbXd1C`PGOrZJ`L-|vPL!`1xsy`3OW~!WGjT#Wj zc}&@ZFMv1dR1@y|!oz8N;CB4$L-R!79uy|*`6Bt6JvJ1cS4JFabNL?DazwZ!7nA4m z#Ol0O%O1Vd71hW}G)OI^^mY`+j0C$EPi~VJ2k%Su)j#Ud5Z-)d4--N#v=od4&2_x* z;XhhHZue?r4)A+#)(RxWh~8DN%W*dOSeYx;ki`dPMKD#gDQ(wD!MzQtKNv~=h-Qp0 zvU%mlS<0)e8gD(2rleil*ub>g0+%6FvM`DOt+|p9`M1&8*dhB2f5kyjwlbbp?e=j7 z-^N%k3>E7UeMa>Nr3n!kzLIH_8~l@phdQq9!|nN|M}K?xW5aKb6Hu;<80f5tw|xNH zG1Lunc~$WPA*`LxBp)pQ1h46*hX$JciMT7SIA=LS={I#0-3S!Q>4Z;{6LbWEx|-iA zcFqVP#^O*k4D7+ab@g%*|JV{Dd05V^2lvKXX*~AnMBZh3 z$lb@d87gO6SYPx@CB%g6wKRnWx;|93!uwlTzbmB~&snCSpN1TZanhYGD8-f_$#G}DyOZZt_@ZD-k1HGGACwbXv*xn z$;$_ief>Rt^#tN4T-$dYr=^tyDot0PA-d(*79{Ot^WAHMwV}(ybVX=o-Yg4)Qs(@AJHnXXn4~iR`z2L2opHQC)aZRk}WSM#4d6Wn*3)UV#d; z_bn-Rg72!#I=UF31DPbx))3_p+t?k;EuJ-1!dPSj}&_6mWlzLERrfl*^i_g(Pu*{0G>2o2S za*O5I===L!OEXy=dDI0K)vf6_h7u=QUY|Z){7$A5`kIuCU&8)|g;< z)oR2^vWBqAU~8S1qp`05!I@@OILjQ`J_x4KdZ7EGMH+@wjYE#krRQBWT z$v{i2Sm44F`r=FR+EtB2oWmpY&2~h)>tMlX?Vsn#BROb?j{>&5Eh_)of>;uoirUp9 z!s#7_$R+uTxfu)zv=k2Co73`ZsY={7$h8ib9|@exB4pnp!Cj28q+!!$B_!dB^Z1&n z+>1rgB^EsVKz`Jtnk~@ZIEJrsa~*e&BC=dUqqgLwtc|rC7yY#EBkL2CZP|kizx`nM zh2uu?NINsLugedjG;Uuk%ATVN`6T|*fo5hw%+*AnQely~!E|1J%2|jmr$UTq;>{8g zdKD;I1Xixk))sHQ1$jjEt#he)U{#2R^RcR7`*ykvWJ;j6pMwR0=O%o=o~L9rmZeBh z(4XxNI=5&WYMJ)cR8r>z$<{^XR(iFm+CQ8eV1Z$ZY4fdo(J9ANE z{k4#w-dB63l2mkli0&IyvAiW=H)$VluwP^L4M`!KNr=%S6#tYBKt8EH46$qCejX;M zFT0oYGWnUQ33*3_m})Y6w_+x)T#zb35qt|M7Q(mT_#}9o_N!rYS((dWY?_P#FPDy8 zEu_gaXbDy&BN=EZH)F zFUgbM7=ug|j}jxfcTH@m#Umu;jp@s~i0<^)m@bnm*8QfKT>q%}uJ*h4Civ2z%YoD9E~NsP z=oL2ZWzSjaFf31iqfMEpVM?{iyC<%a zRnZaUx9BeYTZ|0kF(4cKIIm1A^sh8!hB$c{bO-R%pSVhf7=a~(dK*&s#VL56ueLG24fpRsGR_63c#tnOjMB0?+Dwuxd2Q~ z$~<6SGe+!a6G{HDKNzSxcp;H5ZnilK*w_O#-iF>2AQpm3$Rd_%B>&3QTC9b?Z_EL64MLFB<) zXOtAdqs+UUud)0nY&4z`_6g$X^rf<^6~1!-$p2HI)8_0^-^2osg{8&gr6Jk8Y zUl!?}`k(H7NJ#;`hCdKcY9)jj%8IWK*3bY>HIM(muh#?L-6!yrVhxYjT;8isJd*_@ zc5TMTS3?Ab_F+RFg(~Ncv8FLUx$-eY$FauClcw{7a~Ou2?tbv|8it#s6r?QShML2( zJAi~T9J|H?HrciP5S@9?8r71XA;ra(k_fxiVBs9j75^o%LE=8Oh?aAFa;X4VxstLd z=pnJaib^Tct^a-9YjScr1WuS6s3ErSIh+L%IRE}86VuNVdwHR_G$zfQTGu7|NmWA9W-hwSC zk)H(1r8R|V$D5l-al7o~Ls+~Rh$(4e42TWI#e={^8VNDT)VaW-o^*qvoA2hc$K(3d2rkEp@6d#l3uQ1FbT6;< z^pI@SZORD7G~?Jww|cuEh#3uwsA6@j9>rA0zGkQfJ0vLSa-5IHU0CAY@np}ruX{`` zKh|zfYFveu|6;%7H7SlC*-(Hj*N?7j7fLO+GyNxCH<&FMoPNT7>y|ou1_!U41$x~B zJGlAi@z&AlDoEdRZQ(g^a1tNW#!lPKB3EwRkUd8CsnIK8664>!!;Wuu$KwTc_{ zAP7d>W8|SX4OY(V^q`?K%+Z!tdH_B`)!C&Ud&=y(LW_mFNG`Sp-@cfX$26}NFUrHf zUMIiV-Ex9S@8sjo_vR2m63g8occThQ`{7rg-mebc0TSa}UKpJT!3$K(?Q5py3G7N{ zV@xGKR*wz7){@?%rOg3gb9s(?8RgU*Qs7<-GhA1ReT2eCB+cRNVWh{hh|b|;cy zN|-8rWoBFkHPGoecAT)dc;?^%ZL5~mwVfa&bCvzX4#d__G8rv{-cZ8g9#-{;iD8|NSFn>P*d2gifQ1{S|+NvzKW@JdcFy7Owr7xKwHk$Clq zgsZKL#LUb1JThJ+nN=XESHcak!m+qA@15ztqNa$4p9eN`lJ_Cmu@~4*WKlykf5S+G z$+>EEerMs{p+KeYp!L5mNQZqFA)&h}J7j=|ch)P>IP%Tor2}(-+uIl;CKL;4TsSX% z9n{<(3EmydkI*x4_0tpaDr~eiA6en#SG^}HyA7Bqb5SjoXcTI(^MZ0PiHNJh*o4*? zZa!i5AOR9lx}Msv_#~ruJzVYX*t+dM#3>(t^eru1bYeXXs=hp6cy>$QQ0CN$++Dr z?m(lQ3=_s>-ca9}bexp2Z9fmM0JA3R-1b`fYO=piJvPv$Ow>1g z2QtA3PSnHf=%&P=2UjjAQ|LQAnXedSIW(^OkGz?cWwG}E)7t${Ewqeyc}{PCM}tCq zfq#?N+N{Z!seMKMa_|Pe_e}aCeXl~DL?QLxeNU=72lN!_kx>)PUy=>w{!Qe5(#mNg z`w2>Ne!juiX_L(4nfZA`vXOhar8bvzi)h_F(!CO*jiaw86Jyk!=J{HFa$G(ecLnSm z7=HK4pS(=gQuW}UMO|wBDv^oMy&KZ~`mh{hrgyl*XlNb6%VKGsD|vfdlD+H!twpZE zQW}MX#(FTX{pteq;p7-vLZGKXt;NqnWXh$b_u-RU3gePxe{$1$-v{|25g~<*;K1=O zr{E`G@kmMto$8&iP1Rz4yHA?NN?2w*1vE9;@Q1PSV5&jh5%$2`5(GX`b=;Q}D>!O>`&f zG>yLm0+`p&QW_!_Dr#B`P&-{Y7_subY@HQ(t^H~*sVzRu_#T!t>X340$ GnMqK8J7L2YiVt9r=$B{<5YRRtSNRv;H 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