From 63484257442362057ab4ea4acd769d52d42da9f1 Mon Sep 17 00:00:00 2001 From: xyzhu8 Date: Sun, 22 May 2022 13:16:52 +0800 Subject: [PATCH 01/17] add robustscanner --- configs/rec/rec_r31_robustscanner.yml | 108 +++ doc/doc_ch/algorithm_overview.md | 2 + doc/doc_ch/algorithm_rec_robustscanner.md | 114 +++ doc/doc_en/algorithm_overview_en.md | 3 +- doc/doc_en/algorithm_rec_robustscanner_en.md | 115 +++ ppocr/data/imaug/__init__.py | 3 +- ppocr/data/imaug/rec_img_aug.py | 20 + ppocr/modeling/backbones/__init__.py | 3 +- ppocr/modeling/backbones/rec_resnet_31_v2.py | 216 +++++ ppocr/modeling/heads/__init__.py | 3 +- .../modeling/heads/rec_robustscanner_head.py | 764 ++++++++++++++++++ .../rec_r31_robustscanner.yml | 110 +++ .../train_infer_python.txt | 52 ++ tools/eval.py | 2 +- tools/export_model.py | 16 + tools/infer/predict_rec.py | 52 +- tools/infer_rec.py | 10 + tools/program.py | 5 +- 18 files changed, 1590 insertions(+), 8 deletions(-) create mode 100644 configs/rec/rec_r31_robustscanner.yml create mode 100644 doc/doc_ch/algorithm_rec_robustscanner.md create mode 100644 doc/doc_en/algorithm_rec_robustscanner_en.md create mode 100644 ppocr/modeling/backbones/rec_resnet_31_v2.py create mode 100644 ppocr/modeling/heads/rec_robustscanner_head.py create mode 100644 test_tipc/configs/rec_r31_robustscanner/rec_r31_robustscanner.yml create mode 100644 test_tipc/configs/rec_r31_robustscanner/train_infer_python.txt diff --git a/configs/rec/rec_r31_robustscanner.yml b/configs/rec/rec_r31_robustscanner.yml new file mode 100644 index 000000000..4d2ae57b7 --- /dev/null +++ b/configs/rec/rec_r31_robustscanner.yml @@ -0,0 +1,108 @@ +Global: + use_gpu: true + epoch_num: 5 + log_smooth_window: 20 + print_batch_step: 20 + save_model_dir: ./output/rec/rec_r31_robustscanner/ + save_epoch_step: 1 + # evaluation is run every 2000 iterations + eval_batch_step: [0, 2000] + cal_metric_during_train: True + pretrained_model: + checkpoints: + save_inference_dir: + use_visualdl: False + infer_img: ./inference/rec_inference + # for data or label process + character_dict_path: ppocr/utils/dict90.txt + max_text_length: 40 + infer_mode: False + use_space_char: False + rm_symbol: True + save_res_path: ./output/rec/predicts_robustscanner.txt + +Optimizer: + name: Adam + beta1: 0.9 + beta2: 0.999 + lr: + name: Piecewise + decay_epochs: [3, 4] + values: [0.001, 0.0001, 0.00001] + regularizer: + name: 'L2' + factor: 0 + +Architecture: + model_type: rec + algorithm: RobustScanner + Transform: + Backbone: + name: ResNet31V2 + Head: + name: RobustScannerHead + enc_outchannles: 128 + hybrid_dec_rnn_layers: 2 + hybrid_dec_dropout: 0 + position_dec_rnn_layers: 2 + start_idx: 91 + mask: True + padding_idx: 92 + encode_value: False + max_seq_len: 40 + +Loss: + name: SARLoss + +PostProcess: + name: SARLabelDecode + +Metric: + name: RecMetric + is_filter: True + + +Train: + dataset: + name: LMDBDataSet + data_dir: I:/dataset/OCR/deep_text_recognition/data_lmdb/evaluation/CUTE80 + transforms: + - DecodeImage: # load image + img_mode: BGR + channel_first: False + - SARLabelEncode: # Class handling label + - RobustScannerRecResizeImg: + image_shape: [3, 48, 48, 160] # h:48 w:[48,160] + width_downsample_ratio: 0.25 + max_seq_len: 40 + - KeepKeys: + keep_keys: ['image', 'label', 'valid_ratio', 'word_positons'] # dataloader will return list in this order + loader: + shuffle: True + batch_size_per_card: 4 + drop_last: True + num_workers: 0 + use_shared_memory: False + +Eval: + dataset: + name: LMDBDataSet + data_dir: I:/dataset/OCR/deep_text_recognition/data_lmdb/evaluation/CUTE80 + transforms: + - DecodeImage: # load image + img_mode: BGR + channel_first: False + - SARLabelEncode: # Class handling label + - RobustScannerRecResizeImg: + image_shape: [3, 48, 48, 160] + max_seq_len: 40 + width_downsample_ratio: 0.25 + - KeepKeys: + keep_keys: ['image', 'label', 'valid_ratio', 'word_positons'] # dataloader will return list in this order + loader: + shuffle: False + drop_last: False + batch_size_per_card: 1 + num_workers: 0 + use_shared_memory: False + diff --git a/doc/doc_ch/algorithm_overview.md b/doc/doc_ch/algorithm_overview.md index 6227a2149..056d05ed4 100755 --- a/doc/doc_ch/algorithm_overview.md +++ b/doc/doc_ch/algorithm_overview.md @@ -66,6 +66,7 @@ - [x] [SAR](./algorithm_rec_sar.md) - [x] [SEED](./algorithm_rec_seed.md) - [x] [SVTR](./algorithm_rec_svtr.md) +- [x] [RobustScanner](./algorithm_rec_robustscanner.md) 参考[DTRB](https://arxiv.org/abs/1904.01906)[3]文字识别训练和评估流程,使用MJSynth和SynthText两个文字识别数据集训练,在IIIT, SVT, IC03, IC13, IC15, SVTP, CUTE数据集上进行评估,算法效果如下: @@ -84,6 +85,7 @@ |SAR|Resnet31| 87.20% | rec_r31_sar | [训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.1/rec/rec_r31_sar_train.tar) | |SEED|Aster_Resnet| 85.35% | rec_resnet_stn_bilstm_att | [训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.1/rec/rec_resnet_stn_bilstm_att.tar) | |SVTR|SVTR-Tiny| 89.25% | rec_svtr_tiny_none_ctc_en | [训练模型](https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/rec_svtr_tiny_none_ctc_en_train.tar) | +|RobustScanner|ResNet31V2| 87.77% | rec_r31_robustscanner | [训练模型]() | diff --git a/doc/doc_ch/algorithm_rec_robustscanner.md b/doc/doc_ch/algorithm_rec_robustscanner.md new file mode 100644 index 000000000..f504cf5f6 --- /dev/null +++ b/doc/doc_ch/algorithm_rec_robustscanner.md @@ -0,0 +1,114 @@ +# RobustScanner + +- [1. 算法简介](#1) +- [2. 环境配置](#2) +- [3. 模型训练、评估、预测](#3) + - [3.1 训练](#3-1) + - [3.2 评估](#3-2) + - [3.3 预测](#3-3) +- [4. 推理部署](#4) + - [4.1 Python推理](#4-1) + - [4.2 C++推理](#4-2) + - [4.3 Serving服务化部署](#4-3) + - [4.4 更多推理部署](#4-4) +- [5. FAQ](#5) + + +## 1. 算法简介 + +论文信息: +> [RobustScanner: Dynamically Enhancing Positional Clues for Robust Text Recognition](https://arxiv.org/pdf/2007.07542.pdf) +> Xiaoyu Yue, Zhanghui Kuang, Chenhao Lin, Hongbin Sun, Wayne +Zhang +> ECCV, 2020 + +使用MJSynth和SynthText两个合成文字识别数据集训练,在IIIT, SVT, IC13, IC15, SVTP, CUTE数据集上进行评估,算法复现效果如下: + +|模型|骨干网络|配置文件|Acc|下载链接| +| --- | --- | --- | --- | --- | +|RobustScanner|ResNet31V2|[rec_r31_robustscanner.yml](../../configs/rec/rec_r31_robustscanner.yml)|87.77%|[训练模型]()| + +注:除了使用MJSynth和SynthText两个文字识别数据集外,还加入了[SynthAdd](https://pan.baidu.com/share/init?surl=uV0LtoNmcxbO-0YA7Ch4dg)数据(提取码:627x),和部分真实数据,具体数据细节可以参考论文。 + + +## 2. 环境配置 +请先参考[《运行环境准备》](./environment.md)配置PaddleOCR运行环境,参考[《项目克隆》](./clone.md)克隆项目代码。 + + + +## 3. 模型训练、评估、预测 + +请参考[文本识别教程](./recognition.md)。PaddleOCR对代码进行了模块化,训练不同的识别模型只需要**更换配置文件**即可。 + +训练 + +具体地,在完成数据准备后,便可以启动训练,训练命令如下: + +``` +#单卡训练(训练周期长,不建议) +python3 tools/train.py -c configs/rec/rec_r31_robustscanner.yml + +#多卡训练,通过--gpus参数指定卡号 +python3 -m paddle.distributed.launch --gpus '0,1,2,3' tools/train.py -c configs/rec/rec_r31_robustscanner.yml +``` + +评估 + +``` +# GPU 评估, Global.pretrained_model 为待测权重 +python3 -m paddle.distributed.launch --gpus '0' tools/eval.py -c configs/rec/rec_r31_robustscanner.yml -o Global.pretrained_model={path/to/weights}/best_accuracy +``` + +预测: + +``` +# 预测使用的配置文件必须与训练一致 +python3 tools/infer_rec.py -c configs/rec/rec_r31_robustscanner.yml -o Global.pretrained_model={path/to/weights}/best_accuracy Global.infer_img=doc/imgs_words/en/word_1.png +``` + + +## 4. 推理部署 + + +### 4.1 Python推理 +首先将RobustScanner文本识别训练过程中保存的模型,转换成inference model。( [模型下载地址]() ),可以使用如下命令进行转换: + +``` +python3 tools/export_model.py -c configs/rec/rec_r31_robustscanner.yml -o Global.pretrained_model={path/to/weights}/best_accuracy Global.save_inference_dir=./inference/rec_r31_robustscanner +``` +RobustScanner文本识别模型推理,可以执行如下命令: + +``` +python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words/en/word_1.png" --rec_model_dir="./inference/rec_r31_robustscanner/" --rec_image_shape="3, 48, 48, 160" --rec_algorithm="RobustScanner" --rec_char_dict_path="ppocr/utils/dict90.txt" --use_space_char=False +``` + + +### 4.2 C++推理 + +由于C++预处理后处理还未支持SAR,所以暂未支持 + + +### 4.3 Serving服务化部署 + +暂不支持 + + +### 4.4 更多推理部署 + +暂不支持 + + +## 5. FAQ + + +## 引用 + +```bibtex +@article{Li2019ShowAA, + title={Show, Attend and Read: A Simple and Strong Baseline for Irregular Text Recognition}, + author={Hui Li and Peng Wang and Chunhua Shen and Guyu Zhang}, + journal={ArXiv}, + year={2019}, + volume={abs/1811.00751} +} +``` diff --git a/doc/doc_en/algorithm_overview_en.md b/doc/doc_en/algorithm_overview_en.md index 383cbe39b..7579da88e 100755 --- a/doc/doc_en/algorithm_overview_en.md +++ b/doc/doc_en/algorithm_overview_en.md @@ -65,6 +65,7 @@ Supported text recognition algorithms (Click the link to get the tutorial): - [x] [SAR](./algorithm_rec_sar_en.md) - [x] [SEED](./algorithm_rec_seed_en.md) - [x] [SVTR](./algorithm_rec_svtr_en.md) +- [x] [RobustScanner](./algorithm_rec_robustscanner_en.md) Refer to [DTRB](https://arxiv.org/abs/1904.01906), the training and evaluation result of these above text recognition (using MJSynth and SynthText for training, evaluate on IIIT, SVT, IC03, IC13, IC15, SVTP, CUTE) is as follow: @@ -83,7 +84,7 @@ Refer to [DTRB](https://arxiv.org/abs/1904.01906), the training and evaluation r |SAR|Resnet31| 87.20% | rec_r31_sar | [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.1/rec/rec_r31_sar_train.tar) | |SEED|Aster_Resnet| 85.35% | rec_resnet_stn_bilstm_att | [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.1/rec/rec_resnet_stn_bilstm_att.tar) | |SVTR|SVTR-Tiny| 89.25% | rec_svtr_tiny_none_ctc_en | [trained model](https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/rec_svtr_tiny_none_ctc_en_train.tar) | - +|RobustScanner|ResNet31V2| 87.77% | rec_r31_robustscanner | [trained model]() | diff --git a/doc/doc_en/algorithm_rec_robustscanner_en.md b/doc/doc_en/algorithm_rec_robustscanner_en.md new file mode 100644 index 000000000..9b6c772ac --- /dev/null +++ b/doc/doc_en/algorithm_rec_robustscanner_en.md @@ -0,0 +1,115 @@ +# SAR + +- [1. Introduction](#1) +- [2. Environment](#2) +- [3. Model Training / Evaluation / Prediction](#3) + - [3.1 Training](#3-1) + - [3.2 Evaluation](#3-2) + - [3.3 Prediction](#3-3) +- [4. Inference and Deployment](#4) + - [4.1 Python Inference](#4-1) + - [4.2 C++ Inference](#4-2) + - [4.3 Serving](#4-3) + - [4.4 More](#4-4) +- [5. FAQ](#5) + + +## 1. Introduction + +Paper: +> [RobustScanner: Dynamically Enhancing Positional Clues for Robust Text Recognition](https://arxiv.org/pdf/2007.07542.pdf) +> Xiaoyu Yue, Zhanghui Kuang, Chenhao Lin, Hongbin Sun, Wayne +Zhang +> ECCV, 2020 + +Using MJSynth and SynthText two text recognition datasets for training, and evaluating on IIIT, SVT, IC13, IC15, SVTP, CUTE datasets, the algorithm reproduction effect is as follows: + +|Model|Backbone|config|Acc|Download link| +| --- | --- | --- | --- | --- | +|RobustScanner|ResNet31V2|[rec_r31_robustscanner.yml](../../configs/rec/rec_r31_robustscanner.yml)|87.77%|[train model]()| + +Note:In addition to using the two text recognition datasets MJSynth and SynthText, [SynthAdd](https://pan.baidu.com/share/init?surl=uV0LtoNmcxbO-0YA7Ch4dg) data (extraction code: 627x), and some real data are used in training, the specific data details can refer to the paper. + + +## 2. Environment +Please refer to ["Environment Preparation"](./environment_en.md) to configure the PaddleOCR environment, and refer to ["Project Clone"](./clone_en.md) to clone the project code. + + + +## 3. Model Training / Evaluation / Prediction + +Please refer to [Text Recognition Tutorial](./recognition_en.md). PaddleOCR modularizes the code, and training different recognition models only requires **changing the configuration file**. + +Training: + +Specifically, after the data preparation is completed, the training can be started. The training command is as follows: + +``` +#Single GPU training (long training period, not recommended) +python3 tools/train.py -c configs/rec/rec_r31_robustscanner.yml + +#Multi GPU training, specify the gpu number through the --gpus parameter +python3 -m paddle.distributed.launch --gpus '0,1,2,3' tools/train.py -c configs/rec/rec_r31_robustscanner.yml +``` + +Evaluation: + +``` +# GPU evaluation +python3 -m paddle.distributed.launch --gpus '0' tools/eval.py -c configs/rec/rec_r31_robustscanner.yml -o Global.pretrained_model={path/to/weights}/best_accuracy +``` + +Prediction: + +``` +# The configuration file used for prediction must match the training +python3 tools/infer_rec.py -c configs/rec/rec_r31_robustscanner.yml -o Global.pretrained_model={path/to/weights}/best_accuracy Global.infer_img=doc/imgs_words/en/word_1.png +``` + + +## 4. Inference and Deployment + + +### 4.1 Python Inference +First, the model saved during the RobustScanner text recognition training process is converted into an inference model. ( [Model download link]() ), you can use the following command to convert: + +``` +python3 tools/export_model.py -c configs/rec/rec_r31_robustscanner.yml -o Global.pretrained_model={path/to/weights}/best_accuracy Global.save_inference_dir=./inference/rec_r31_robustscanner +``` + +For RobustScanner text recognition model inference, the following commands can be executed: + +``` +python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words/en/word_1.png" --rec_model_dir="./inference/rec_r31_robustscanner/" --rec_image_shape="3, 48, 48, 160" --rec_algorithm="RobustScanner" --rec_char_dict_path="ppocr/utils/dict90.txt" --use_space_char=False +``` + + +### 4.2 C++ Inference + +Not supported + + +### 4.3 Serving + +Not supported + + +### 4.4 More + +Not supported + + +## 5. FAQ + + +## Citation + +```bibtex +@article{Li2019ShowAA, + title={Show, Attend and Read: A Simple and Strong Baseline for Irregular Text Recognition}, + author={Hui Li and Peng Wang and Chunhua Shen and Guyu Zhang}, + journal={ArXiv}, + year={2019}, + volume={abs/1811.00751} +} +``` diff --git a/ppocr/data/imaug/__init__.py b/ppocr/data/imaug/__init__.py index 548832fb0..c5853dd20 100644 --- a/ppocr/data/imaug/__init__.py +++ b/ppocr/data/imaug/__init__.py @@ -23,7 +23,8 @@ from .random_crop_data import EastRandomCropData, RandomCropImgMask from .make_pse_gt import MakePseGt from .rec_img_aug import RecAug, RecConAug, RecResizeImg, ClsResizeImg, \ - SRNRecResizeImg, NRTRRecResizeImg, SARRecResizeImg, PRENResizeImg + SRNRecResizeImg, NRTRRecResizeImg, SARRecResizeImg, PRENResizeImg, \ + RobustScannerRecResizeImg from .ssl_img_aug import SSLRotateResize from .randaugment import RandAugment from .copy_paste import CopyPaste diff --git a/ppocr/data/imaug/rec_img_aug.py b/ppocr/data/imaug/rec_img_aug.py index 7483dffe5..11af19e7a 100644 --- a/ppocr/data/imaug/rec_img_aug.py +++ b/ppocr/data/imaug/rec_img_aug.py @@ -206,6 +206,23 @@ class PRENResizeImg(object): data['image'] = resized_img.astype(np.float32) return data +class RobustScannerRecResizeImg(object): + def __init__(self, image_shape, max_seq_len, width_downsample_ratio=0.25, **kwargs): + self.image_shape = image_shape + self.width_downsample_ratio = width_downsample_ratio + self.max_seq_len = max_seq_len + + def __call__(self, data): + img = data['image'] + norm_img, resize_shape, pad_shape, valid_ratio = resize_norm_img_sar( + img, self.image_shape, self.width_downsample_ratio) + word_positons = robustscanner_other_inputs(self.max_seq_len) + data['image'] = norm_img + data['resized_shape'] = resize_shape + data['pad_shape'] = pad_shape + data['valid_ratio'] = valid_ratio + data['word_positons'] = word_positons + return data def resize_norm_img_sar(img, image_shape, width_downsample_ratio=0.25): imgC, imgH, imgW_min, imgW_max = image_shape @@ -351,6 +368,9 @@ def srn_other_inputs(image_shape, num_heads, max_text_length): gsrm_slf_attn_bias2 ] +def robustscanner_other_inputs(max_text_length): + word_pos = np.array(range(0, max_text_length)).astype('int64') + return word_pos def flag(): """ diff --git a/ppocr/modeling/backbones/__init__.py b/ppocr/modeling/backbones/__init__.py index 072d6e0f8..a90051f1d 100755 --- a/ppocr/modeling/backbones/__init__.py +++ b/ppocr/modeling/backbones/__init__.py @@ -28,6 +28,7 @@ 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_31_v2 import ResNet31V2 from .rec_resnet_aster import ResNet_ASTER from .rec_micronet import MicroNet from .rec_efficientb3_pren import EfficientNetb3_PREN @@ -35,7 +36,7 @@ def build_backbone(config, model_type): support_dict = [ 'MobileNetV1Enhance', 'MobileNetV3', 'ResNet', 'ResNetFPN', 'MTB', "ResNet31", "ResNet_ASTER", 'MicroNet', 'EfficientNetb3_PREN', - 'SVTRNet' + 'SVTRNet', "ResNet31V2" ] elif model_type == "e2e": from .e2e_resnet_vd_pg import ResNet diff --git a/ppocr/modeling/backbones/rec_resnet_31_v2.py b/ppocr/modeling/backbones/rec_resnet_31_v2.py new file mode 100644 index 000000000..7812b6296 --- /dev/null +++ b/ppocr/modeling/backbones/rec_resnet_31_v2.py @@ -0,0 +1,216 @@ +# 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. +""" +This code is refer from: +https://github.com/open-mmlab/mmocr/blob/main/mmocr/models/textrecog/layers/conv_layer.py +https://github.com/open-mmlab/mmocr/blob/main/mmocr/models/textrecog/backbones/resnet31_ocr.py +""" + +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import paddle +from paddle import ParamAttr +import paddle.nn as nn +import paddle.nn.functional as F +import numpy as np + +__all__ = ["ResNet31V2"] + + +conv_weight_attr = nn.initializer.KaimingNormal() +bn_weight_attr = ParamAttr(initializer=nn.initializer.Uniform(), learning_rate=1) + +def conv3x3(in_channel, out_channel, stride=1): + return nn.Conv2D( + in_channel, + out_channel, + kernel_size=3, + stride=stride, + padding=1, + weight_attr=conv_weight_attr, + bias_attr=False) + + +class BasicBlock(nn.Layer): + expansion = 1 + + def __init__(self, in_channels, channels, stride=1, downsample=False): + super().__init__() + self.conv1 = conv3x3(in_channels, channels, stride) + self.bn1 = nn.BatchNorm2D(channels, weight_attr=bn_weight_attr) + self.relu = nn.ReLU() + self.conv2 = conv3x3(channels, channels) + self.bn2 = nn.BatchNorm2D(channels, weight_attr=bn_weight_attr) + self.downsample = downsample + if downsample: + self.downsample = nn.Sequential( + nn.Conv2D( + in_channels, + channels * self.expansion, + 1, + stride, + weight_attr=conv_weight_attr, + bias_attr=False), + nn.BatchNorm2D(channels * self.expansion, weight_attr=bn_weight_attr)) + else: + self.downsample = nn.Sequential() + 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: + residual = self.downsample(x) + + out += residual + out = self.relu(out) + + return out + + +class ResNet31V2(nn.Layer): + ''' + Args: + in_channels (int): Number of channels of input image tensor. + layers (list[int]): List of BasicBlock number for each stage. + channels (list[int]): List of out_channels of Conv2d layer. + out_indices (None | Sequence[int]): Indices of output stages. + last_stage_pool (bool): If True, add `MaxPool2d` layer to last stage. + ''' + + def __init__(self, + in_channels=3, + layers=[1, 2, 5, 3], + channels=[64, 128, 256, 256, 512, 512, 512], + out_indices=None, + last_stage_pool=False): + super(ResNet31V2, self).__init__() + assert isinstance(in_channels, int) + assert isinstance(last_stage_pool, bool) + + self.out_indices = out_indices + self.last_stage_pool = last_stage_pool + + # conv 1 (Conv Conv) + self.conv1_1 = nn.Conv2D( + in_channels, channels[0], kernel_size=3, stride=1, padding=1, weight_attr=conv_weight_attr) + self.bn1_1 = nn.BatchNorm2D(channels[0], weight_attr=bn_weight_attr) + self.relu1_1 = nn.ReLU() + + self.conv1_2 = nn.Conv2D( + channels[0], channels[1], kernel_size=3, stride=1, padding=1, weight_attr=conv_weight_attr) + self.bn1_2 = nn.BatchNorm2D(channels[1], weight_attr=bn_weight_attr) + self.relu1_2 = nn.ReLU() + + # conv 2 (Max-pooling, Residual block, Conv) + self.pool2 = nn.MaxPool2D( + kernel_size=2, stride=2, padding=0, ceil_mode=True) + self.block2 = self._make_layer(channels[1], channels[2], layers[0]) + self.conv2 = nn.Conv2D( + channels[2], channels[2], kernel_size=3, stride=1, padding=1, weight_attr=conv_weight_attr) + self.bn2 = nn.BatchNorm2D(channels[2], weight_attr=bn_weight_attr) + self.relu2 = nn.ReLU() + + # conv 3 (Max-pooling, Residual block, Conv) + self.pool3 = nn.MaxPool2D( + kernel_size=2, stride=2, padding=0, ceil_mode=True) + self.block3 = self._make_layer(channels[2], channels[3], layers[1]) + self.conv3 = nn.Conv2D( + channels[3], channels[3], kernel_size=3, stride=1, padding=1, weight_attr=conv_weight_attr) + self.bn3 = nn.BatchNorm2D(channels[3], weight_attr=bn_weight_attr) + self.relu3 = nn.ReLU() + + # conv 4 (Max-pooling, Residual block, Conv) + self.pool4 = nn.MaxPool2D( + kernel_size=(2, 1), stride=(2, 1), padding=0, ceil_mode=True) + self.block4 = self._make_layer(channels[3], channels[4], layers[2]) + self.conv4 = nn.Conv2D( + channels[4], channels[4], kernel_size=3, stride=1, padding=1, weight_attr=conv_weight_attr) + self.bn4 = nn.BatchNorm2D(channels[4], weight_attr=bn_weight_attr) + self.relu4 = nn.ReLU() + + # conv 5 ((Max-pooling), Residual block, Conv) + self.pool5 = None + if self.last_stage_pool: + self.pool5 = nn.MaxPool2D( + kernel_size=2, stride=2, padding=0, ceil_mode=True) + self.block5 = self._make_layer(channels[4], channels[5], layers[3]) + self.conv5 = nn.Conv2D( + channels[5], channels[5], kernel_size=3, stride=1, padding=1, weight_attr=conv_weight_attr) + self.bn5 = nn.BatchNorm2D(channels[5], weight_attr=bn_weight_attr) + self.relu5 = nn.ReLU() + + self.out_channels = channels[-1] + + def _make_layer(self, input_channels, output_channels, blocks): + layers = [] + for _ in range(blocks): + downsample = None + if input_channels != output_channels: + downsample = nn.Sequential( + nn.Conv2D( + input_channels, + output_channels, + kernel_size=1, + stride=1, + weight_attr=conv_weight_attr, + bias_attr=False), + nn.BatchNorm2D(output_channels, weight_attr=bn_weight_attr)) + + layers.append( + BasicBlock( + input_channels, output_channels, downsample=downsample)) + input_channels = output_channels + return nn.Sequential(*layers) + + def forward(self, x): + x = self.conv1_1(x) + x = self.bn1_1(x) + x = self.relu1_1(x) + + x = self.conv1_2(x) + x = self.bn1_2(x) + x = self.relu1_2(x) + + outs = [] + for i in range(4): + layer_index = i + 2 + pool_layer = getattr(self, f'pool{layer_index}') + block_layer = getattr(self, f'block{layer_index}') + conv_layer = getattr(self, f'conv{layer_index}') + bn_layer = getattr(self, f'bn{layer_index}') + relu_layer = getattr(self, f'relu{layer_index}') + + if pool_layer is not None: + x = pool_layer(x) + x = block_layer(x) + x = conv_layer(x) + x = bn_layer(x) + x = relu_layer(x) + + outs.append(x) + + if self.out_indices is not None: + return tuple([outs[i] for i in self.out_indices]) + + return x diff --git a/ppocr/modeling/heads/__init__.py b/ppocr/modeling/heads/__init__.py index 1670ea38e..fd2d89315 100755 --- a/ppocr/modeling/heads/__init__.py +++ b/ppocr/modeling/heads/__init__.py @@ -33,6 +33,7 @@ def build_head(config): from .rec_aster_head import AsterHead from .rec_pren_head import PRENHead from .rec_multi_head import MultiHead + from .rec_robustscanner_head import RobustScannerHead # cls head from .cls_head import ClsHead @@ -46,7 +47,7 @@ def build_head(config): 'DBHead', 'PSEHead', 'FCEHead', 'EASTHead', 'SASTHead', 'CTCHead', 'ClsHead', 'AttentionHead', 'SRNHead', 'PGHead', 'Transformer', 'TableAttentionHead', 'SARHead', 'AsterHead', 'SDMGRHead', 'PRENHead', - 'MultiHead' + 'MultiHead', 'RobustScannerHead' ] #table head diff --git a/ppocr/modeling/heads/rec_robustscanner_head.py b/ppocr/modeling/heads/rec_robustscanner_head.py new file mode 100644 index 000000000..b45893797 --- /dev/null +++ b/ppocr/modeling/heads/rec_robustscanner_head.py @@ -0,0 +1,764 @@ +# 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. + +""" +This code is refer from: +https://github.com/open-mmlab/mmocr/blob/main/mmocr/models/textrecog/encoders/channel_reduction_encoder.py +https://github.com/open-mmlab/mmocr/blob/main/mmocr/models/textrecog/decoders/robust_scanner_decoder.py +""" + +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import math +import paddle +from paddle import ParamAttr +import paddle.nn as nn +import paddle.nn.functional as F + +class BaseDecoder(nn.Layer): + def __init__(self, **kwargs): + super().__init__() + + def forward_train(self, feat, out_enc, targets, img_metas): + raise NotImplementedError + + def forward_test(self, feat, out_enc, img_metas): + raise NotImplementedError + + def forward(self, + feat, + out_enc, + label=None, + valid_ratios=None, + word_positions=None, + train_mode=True): + self.train_mode = train_mode + + if train_mode: + return self.forward_train(feat, out_enc, label, valid_ratios, word_positions) + return self.forward_test(feat, out_enc, valid_ratios, word_positions) + +class ChannelReductionEncoder(nn.Layer): + """Change the channel number with a one by one convoluational layer. + + Args: + in_channels (int): Number of input channels. + out_channels (int): Number of output channels. + """ + + def __init__(self, + in_channels, + out_channels, + **kwargs): + super(ChannelReductionEncoder, self).__init__() + + self.layer = nn.Conv2D( + in_channels, out_channels, kernel_size=1, stride=1, padding=0, weight_attr=nn.initializer.XavierNormal()) + + def forward(self, feat): + """ + Args: + feat (Tensor): Image features with the shape of + :math:`(N, C_{in}, H, W)`. + + Returns: + Tensor: A tensor of shape :math:`(N, C_{out}, H, W)`. + """ + return self.layer(feat) + + +def masked_fill(x, mask, value): + y = paddle.full(x.shape, value, x.dtype) + return paddle.where(mask, y, x) + +class DotProductAttentionLayer(nn.Layer): + + def __init__(self, dim_model=None): + super().__init__() + + self.scale = dim_model**-0.5 if dim_model is not None else 1. + + def forward(self, query, key, value, h, w, valid_ratios=None): + query = paddle.transpose(query, (0, 2, 1)) + logits = paddle.matmul(query, key) * self.scale + n, c, t = logits.shape + # reshape to (n, c, h, w) + logits = paddle.reshape(logits, [n, c, h, w]) + if valid_ratios is not None: + # cal mask of attention weight + for i, valid_ratio in enumerate(valid_ratios): + valid_width = min(w, int(w * valid_ratio + 0.5)) + if valid_width < w: + logits[i, :, :, valid_width:] = float('-inf') + + # reshape to (n, c, h, w) + logits = paddle.reshape(logits, [n, c, t]) + weights = F.softmax(logits, axis=2) + value = paddle.transpose(value, (0, 2, 1)) + glimpse = paddle.matmul(weights, value) + glimpse = paddle.transpose(glimpse, (0, 2, 1)) + return glimpse + +class SequenceAttentionDecoder(BaseDecoder): + """Sequence attention decoder for RobustScanner. + + RobustScanner: `RobustScanner: Dynamically Enhancing Positional Clues for + Robust Text Recognition `_ + + Args: + num_classes (int): Number of output classes :math:`C`. + rnn_layers (int): Number of RNN layers. + dim_input (int): Dimension :math:`D_i` of input vector ``feat``. + dim_model (int): Dimension :math:`D_m` of the model. Should also be the + same as encoder output vector ``out_enc``. + max_seq_len (int): Maximum output sequence length :math:`T`. + start_idx (int): The index of ``. + mask (bool): Whether to mask input features according to + ``img_meta['valid_ratio']``. + padding_idx (int): The index of ``. + dropout (float): Dropout rate. + return_feature (bool): Return feature or logits as the result. + encode_value (bool): Whether to use the output of encoder ``out_enc`` + as `value` of attention layer. If False, the original feature + ``feat`` will be used. + + Warning: + This decoder will not predict the final class which is assumed to be + ``. Therefore, its output size is always :math:`C - 1`. `` + is also ignored by loss as specified in + :obj:`mmocr.models.textrecog.recognizer.EncodeDecodeRecognizer`. + """ + + def __init__(self, + num_classes=None, + rnn_layers=2, + dim_input=512, + dim_model=128, + max_seq_len=40, + start_idx=0, + mask=True, + padding_idx=None, + dropout=0, + return_feature=False, + encode_value=False): + super().__init__() + + self.num_classes = num_classes + self.dim_input = dim_input + self.dim_model = dim_model + self.return_feature = return_feature + self.encode_value = encode_value + self.max_seq_len = max_seq_len + self.start_idx = start_idx + self.mask = mask + + self.embedding = nn.Embedding( + self.num_classes, self.dim_model, padding_idx=padding_idx) + + self.sequence_layer = nn.LSTM( + input_size=dim_model, + hidden_size=dim_model, + num_layers=rnn_layers, + time_major=False, + dropout=dropout) + + self.attention_layer = DotProductAttentionLayer() + + self.prediction = None + if not self.return_feature: + pred_num_classes = num_classes - 1 + self.prediction = nn.Linear( + dim_model if encode_value else dim_input, pred_num_classes) + + def forward_train(self, feat, out_enc, targets, valid_ratios): + """ + Args: + feat (Tensor): Tensor of shape :math:`(N, D_i, H, W)`. + out_enc (Tensor): Encoder output of shape + :math:`(N, D_m, H, W)`. + targets (Tensor): a tensor of shape :math:`(N, T)`. Each element is the index of a + character. + valid_ratios (Tensor): valid length ratio of img. + Returns: + Tensor: A raw logit tensor of shape :math:`(N, T, C-1)` if + ``return_feature=False``. Otherwise it would be the hidden feature + before the prediction projection layer, whose shape is + :math:`(N, T, D_m)`. + """ + + tgt_embedding = self.embedding(targets) + + n, c_enc, h, w = out_enc.shape + assert c_enc == self.dim_model + _, c_feat, _, _ = feat.shape + assert c_feat == self.dim_input + _, len_q, c_q = tgt_embedding.shape + assert c_q == self.dim_model + assert len_q <= self.max_seq_len + + query, _ = self.sequence_layer(tgt_embedding) + query = paddle.transpose(query, (0, 2, 1)) + key = paddle.reshape(out_enc, [n, c_enc, h * w]) + if self.encode_value: + value = key + else: + value = paddle.reshape(feat, [n, c_feat, h * w]) + + # mask = None + # if valid_ratios is not None: + # mask = paddle.zeros(shape=[n, len_q, h, w], dtype='bool') + # for i, valid_ratio in enumerate(valid_ratios): + # valid_width = min(w, math.ceil(w * valid_ratio)) + # if valid_width < w: + # mask[i, :, :, valid_width:] = True + # # mask = mask.view(n, h * w) + # mask = paddle.reshape(mask, (n, len_q, h * w)) + + attn_out = self.attention_layer(query, key, value, h, w, valid_ratios) + # attn_out = attn_out.permute(0, 2, 1).contiguous() + attn_out = paddle.transpose(attn_out, (0, 2, 1)) + + if self.return_feature: + return attn_out + + out = self.prediction(attn_out) + + return out + + def forward_test(self, feat, out_enc, valid_ratios): + """ + Args: + feat (Tensor): Tensor of shape :math:`(N, D_i, H, W)`. + out_enc (Tensor): Encoder output of shape + :math:`(N, D_m, H, W)`. + valid_ratios (Tensor): valid length ratio of img. + + Returns: + Tensor: The output logit sequence tensor of shape + :math:`(N, T, C-1)`. + """ + seq_len = self.max_seq_len + batch_size = feat.shape[0] + + # decode_sequence = (feat.new_ones( + # (batch_size, seq_len)) * self.start_idx).long() + decode_sequence = (paddle.ones((batch_size, seq_len), dtype='int64') * self.start_idx) + + outputs = [] + for i in range(seq_len): + step_out = self.forward_test_step(feat, out_enc, decode_sequence, + i, valid_ratios) + outputs.append(step_out) + max_idx = paddle.argmax(step_out, axis=1, keepdim=False) + if i < seq_len - 1: + decode_sequence[:, i + 1] = max_idx + + outputs = paddle.stack(outputs, 1) + + return outputs + + def forward_test_step(self, feat, out_enc, decode_sequence, current_step, + valid_ratios): + """ + Args: + feat (Tensor): Tensor of shape :math:`(N, D_i, H, W)`. + out_enc (Tensor): Encoder output of shape + :math:`(N, D_m, H, W)`. + decode_sequence (Tensor): Shape :math:`(N, T)`. The tensor that + stores history decoding result. + current_step (int): Current decoding step. + valid_ratios (Tensor): valid length ratio of img + + Returns: + Tensor: Shape :math:`(N, C-1)`. The logit tensor of predicted + tokens at current time step. + """ + + embed = self.embedding(decode_sequence) + + n, c_enc, h, w = out_enc.shape + assert c_enc == self.dim_model + _, c_feat, _, _ = feat.shape + assert c_feat == self.dim_input + _, _, c_q = embed.shape + assert c_q == self.dim_model + + query, _ = self.sequence_layer(embed) + query = paddle.transpose(query, (0, 2, 1)) + key = paddle.reshape(out_enc, [n, c_enc, h * w]) + if self.encode_value: + value = key + else: + value = paddle.reshape(feat, [n, c_feat, h * w]) + # len_q = query.shape[2] + # mask = None + # if valid_ratios is not None: + # mask = paddle.zeros(shape=[n, len_q, h, w], dtype='bool') + # for i, valid_ratio in enumerate(valid_ratios): + # valid_width = min(w, math.ceil(w * valid_ratio)) + # if valid_width < w: + # mask[i, :, :, valid_width:] = True + # # mask = mask.view(n, h * w) + # mask = paddle.reshape(mask, (n, len_q, h * w)) + + # [n, c, l] + # attn_out = self.attention_layer(query, key, value, mask) + + attn_out = self.attention_layer(query, key, value, h, w, valid_ratios) + out = attn_out[:, :, current_step] + + if self.return_feature: + return out + + out = self.prediction(out) + out = F.softmax(out, dim=-1) + + return out + + +class PositionAwareLayer(nn.Layer): + + def __init__(self, dim_model, rnn_layers=2): + super().__init__() + + self.dim_model = dim_model + + self.rnn = nn.LSTM( + input_size=dim_model, + hidden_size=dim_model, + num_layers=rnn_layers, + time_major=False) + + self.mixer = nn.Sequential( + nn.Conv2D( + dim_model, dim_model, kernel_size=3, stride=1, padding=1), + nn.ReLU(), + nn.Conv2D( + dim_model, dim_model, kernel_size=3, stride=1, padding=1)) + + def forward(self, img_feature): + n, c, h, w = img_feature.shape + rnn_input = paddle.transpose(img_feature, (0, 2, 3, 1)) + rnn_input = paddle.reshape(rnn_input, (n * h, w, c)) + rnn_output, _ = self.rnn(rnn_input) + rnn_output = paddle.reshape(rnn_output, (n, h, w, c)) + rnn_output = paddle.transpose(rnn_output, (0, 3, 1, 2)) + out = self.mixer(rnn_output) + return out + + +class PositionAttentionDecoder(BaseDecoder): + """Position attention decoder for RobustScanner. + + RobustScanner: `RobustScanner: Dynamically Enhancing Positional Clues for + Robust Text Recognition `_ + + Args: + num_classes (int): Number of output classes :math:`C`. + rnn_layers (int): Number of RNN layers. + dim_input (int): Dimension :math:`D_i` of input vector ``feat``. + dim_model (int): Dimension :math:`D_m` of the model. Should also be the + same as encoder output vector ``out_enc``. + max_seq_len (int): Maximum output sequence length :math:`T`. + mask (bool): Whether to mask input features according to + ``img_meta['valid_ratio']``. + return_feature (bool): Return feature or logits as the result. + encode_value (bool): Whether to use the output of encoder ``out_enc`` + as `value` of attention layer. If False, the original feature + ``feat`` will be used. + + Warning: + This decoder will not predict the final class which is assumed to be + ``. Therefore, its output size is always :math:`C - 1`. `` + is also ignored by loss + + """ + + def __init__(self, + num_classes=None, + rnn_layers=2, + dim_input=512, + dim_model=128, + max_seq_len=40, + mask=True, + return_feature=False, + encode_value=False): + super().__init__() + + self.num_classes = num_classes + self.dim_input = dim_input + self.dim_model = dim_model + self.max_seq_len = max_seq_len + self.return_feature = return_feature + self.encode_value = encode_value + self.mask = mask + + self.embedding = nn.Embedding(self.max_seq_len + 1, self.dim_model) + + self.position_aware_module = PositionAwareLayer( + self.dim_model, rnn_layers) + + self.attention_layer = DotProductAttentionLayer() + + self.prediction = None + if not self.return_feature: + pred_num_classes = num_classes - 1 + self.prediction = nn.Linear( + dim_model if encode_value else dim_input, pred_num_classes) + + def _get_position_index(self, length, batch_size): + position_index_list = [] + for i in range(batch_size): + position_index = paddle.arange(0, end=length, step=1, dtype='int64') + position_index_list.append(position_index) + batch_position_index = paddle.stack(position_index_list, axis=0) + return batch_position_index + + def forward_train(self, feat, out_enc, targets, valid_ratios, position_index): + """ + Args: + feat (Tensor): Tensor of shape :math:`(N, D_i, H, W)`. + out_enc (Tensor): Encoder output of shape + :math:`(N, D_m, H, W)`. + targets (dict): A dict with the key ``padded_targets``, a + tensor of shape :math:`(N, T)`. Each element is the index of a + character. + valid_ratios (Tensor): valid length ratio of img. + position_index (Tensor): The position of each word. + + Returns: + Tensor: A raw logit tensor of shape :math:`(N, T, C-1)` if + ``return_feature=False``. Otherwise it will be the hidden feature + before the prediction projection layer, whose shape is + :math:`(N, T, D_m)`. + """ + # + n, c_enc, h, w = out_enc.shape + assert c_enc == self.dim_model + _, c_feat, _, _ = feat.shape + assert c_feat == self.dim_input + _, len_q = targets.shape + assert len_q <= self.max_seq_len + + # position_index = self._get_position_index(len_q, n) + + position_out_enc = self.position_aware_module(out_enc) + + query = self.embedding(position_index) + query = paddle.transpose(query, (0, 2, 1)) + key = paddle.reshape(position_out_enc, (n, c_enc, h * w)) + if self.encode_value: + value = paddle.reshape(out_enc,(n, c_enc, h * w)) + else: + value = paddle.reshape(feat,(n, c_feat, h * w)) + + # mask = None + # if valid_ratios is not None: + # mask = paddle.zeros(shape=[n, len_q, h, w], dtype='bool') + # for i, valid_ratio in enumerate(valid_ratios): + # valid_width = min(w, math.ceil(w * valid_ratio)) + # if valid_width < w: + # mask[i, :, :, valid_width:] = True + # # mask = mask.view(n, h * w) + # mask = paddle.reshape(mask, (n, len_q, h * w)) + + attn_out = self.attention_layer(query, key, value, h, w, valid_ratios) + attn_out = paddle.transpose(attn_out, (0, 2, 1)) # [n, len_q, dim_v] + + if self.return_feature: + return attn_out + + return self.prediction(attn_out) + + def forward_test(self, feat, out_enc, valid_ratios, position_index): + """ + Args: + feat (Tensor): Tensor of shape :math:`(N, D_i, H, W)`. + out_enc (Tensor): Encoder output of shape + :math:`(N, D_m, H, W)`. + valid_ratios (Tensor): valid length ratio of img + position_index (Tensor): The position of each word. + + Returns: + Tensor: A raw logit tensor of shape :math:`(N, T, C-1)` if + ``return_feature=False``. Otherwise it would be the hidden feature + before the prediction projection layer, whose shape is + :math:`(N, T, D_m)`. + """ + # seq_len = self.max_seq_len + n, c_enc, h, w = out_enc.shape + assert c_enc == self.dim_model + _, c_feat, _, _ = feat.shape + assert c_feat == self.dim_input + + # the _get_position_index is not ok for export_model + # position_index = self._get_position_index(self.max_seq_len, n) + + position_out_enc = self.position_aware_module(out_enc) + + query = self.embedding(position_index) + query = paddle.transpose(query, (0, 2, 1)) + key = paddle.reshape(position_out_enc, (n, c_enc, h * w)) + if self.encode_value: + value = paddle.reshape(out_enc,(n, c_enc, h * w)) + else: + value = paddle.reshape(feat,(n, c_feat, h * w)) + # len_q = query.shape[2] + # mask = None + # if valid_ratios is not None: + # mask = paddle.zeros(shape=[n, len_q, h, w], dtype='bool') + # for i, valid_ratio in enumerate(valid_ratios): + # valid_width = min(w, math.ceil(w * valid_ratio)) + # if valid_width < w: + # mask[i, :, :, valid_width:] = True + # # mask = mask.view(n, h * w) + # mask = paddle.reshape(mask, (n, len_q, h * w)) + + attn_out = self.attention_layer(query, key, value, h, w, valid_ratios) + attn_out = paddle.transpose(attn_out, (0, 2, 1)) # [n, len_q, dim_v] + + if self.return_feature: + return attn_out + + return self.prediction(attn_out) + +class RobustScannerFusionLayer(nn.Layer): + + def __init__(self, dim_model, dim=-1): + super(RobustScannerFusionLayer, self).__init__() + + self.dim_model = dim_model + self.dim = dim + self.linear_layer = nn.Linear(dim_model * 2, dim_model * 2) + + def forward(self, x0, x1): + assert x0.shape == x1.shape + fusion_input = paddle.concat([x0, x1], self.dim) + output = self.linear_layer(fusion_input) + output = F.glu(output, self.dim) + return output + +class RobustScannerDecoder(BaseDecoder): + """Decoder for RobustScanner. + + RobustScanner: `RobustScanner: Dynamically Enhancing Positional Clues for + Robust Text Recognition `_ + + Args: + num_classes (int): Number of output classes :math:`C`. + dim_input (int): Dimension :math:`D_i` of input vector ``feat``. + dim_model (int): Dimension :math:`D_m` of the model. Should also be the + same as encoder output vector ``out_enc``. + max_seq_len (int): Maximum output sequence length :math:`T`. + start_idx (int): The index of ``. + mask (bool): Whether to mask input features according to + ``img_meta['valid_ratio']``. + padding_idx (int): The index of ``. + encode_value (bool): Whether to use the output of encoder ``out_enc`` + as `value` of attention layer. If False, the original feature + ``feat`` will be used. + + Warning: + This decoder will not predict the final class which is assumed to be + ``. Therefore, its output size is always :math:`C - 1`. `` + is also ignored by loss as specified in + :obj:`mmocr.models.textrecog.recognizer.EncodeDecodeRecognizer`. + """ + + def __init__(self, + num_classes=None, + dim_input=512, + dim_model=128, + hybrid_decoder_rnn_layers=2, + hybrid_decoder_dropout=0, + position_decoder_rnn_layers=2, + max_seq_len=40, + start_idx=0, + mask=True, + padding_idx=None, + encode_value=False): + super().__init__() + self.num_classes = num_classes + self.dim_input = dim_input + self.dim_model = dim_model + self.max_seq_len = max_seq_len + self.encode_value = encode_value + self.start_idx = start_idx + self.padding_idx = padding_idx + self.mask = mask + + # init hybrid decoder + self.hybrid_decoder = SequenceAttentionDecoder( + num_classes=num_classes, + rnn_layers=hybrid_decoder_rnn_layers, + dim_input=dim_input, + dim_model=dim_model, + max_seq_len=max_seq_len, + start_idx=start_idx, + mask=mask, + padding_idx=padding_idx, + dropout=hybrid_decoder_dropout, + encode_value=encode_value, + return_feature=True + ) + + # init position decoder + self.position_decoder = PositionAttentionDecoder( + num_classes=num_classes, + rnn_layers=position_decoder_rnn_layers, + dim_input=dim_input, + dim_model=dim_model, + max_seq_len=max_seq_len, + mask=mask, + encode_value=encode_value, + return_feature=True + ) + + + self.fusion_module = RobustScannerFusionLayer( + self.dim_model if encode_value else dim_input) + + pred_num_classes = num_classes - 1 + self.prediction = nn.Linear(dim_model if encode_value else dim_input, + pred_num_classes) + + def forward_train(self, feat, out_enc, target, valid_ratios, word_positions): + """ + Args: + feat (Tensor): Tensor of shape :math:`(N, D_i, H, W)`. + out_enc (Tensor): Encoder output of shape + :math:`(N, D_m, H, W)`. + target (dict): A dict with the key ``padded_targets``, a + tensor of shape :math:`(N, T)`. Each element is the index of a + character. + valid_ratios (Tensor): + word_positions (Tensor): The position of each word. + + Returns: + Tensor: A raw logit tensor of shape :math:`(N, T, C-1)`. + """ + hybrid_glimpse = self.hybrid_decoder.forward_train( + feat, out_enc, target, valid_ratios) + position_glimpse = self.position_decoder.forward_train( + feat, out_enc, target, valid_ratios, word_positions) + + fusion_out = self.fusion_module(hybrid_glimpse, position_glimpse) + + out = self.prediction(fusion_out) + + return out + + def forward_test(self, feat, out_enc, valid_ratios, word_positions): + """ + Args: + feat (Tensor): Tensor of shape :math:`(N, D_i, H, W)`. + out_enc (Tensor): Encoder output of shape + :math:`(N, D_m, H, W)`. + valid_ratios (Tensor): + word_positions (Tensor): The position of each word. + Returns: + Tensor: The output logit sequence tensor of shape + :math:`(N, T, C-1)`. + """ + seq_len = self.max_seq_len + batch_size = feat.shape[0] + + # decode_sequence = (feat.new_ones( + # (batch_size, seq_len)) * self.start_idx).long() + + decode_sequence = (paddle.ones((batch_size, seq_len), dtype='int64') * self.start_idx) + + position_glimpse = self.position_decoder.forward_test( + feat, out_enc, valid_ratios, word_positions) + + outputs = [] + for i in range(seq_len): + hybrid_glimpse_step = self.hybrid_decoder.forward_test_step( + feat, out_enc, decode_sequence, i, valid_ratios) + + fusion_out = self.fusion_module(hybrid_glimpse_step, + position_glimpse[:, i, :]) + + char_out = self.prediction(fusion_out) + char_out = F.softmax(char_out, -1) + outputs.append(char_out) + max_idx = paddle.argmax(char_out, axis=1, keepdim=False) + if i < seq_len - 1: + decode_sequence[:, i + 1] = max_idx + + outputs = paddle.stack(outputs, 1) + + return outputs + +class RobustScannerHead(nn.Layer): + def __init__(self, + out_channels, # 90 + unknown + start + padding + in_channels, + enc_outchannles=128, + hybrid_dec_rnn_layers=2, + hybrid_dec_dropout=0, + position_dec_rnn_layers=2, + start_idx=0, + max_seq_len=40, + mask=True, + padding_idx=None, + encode_value=False, + **kwargs): + super(RobustScannerHead, self).__init__() + + # encoder module + self.encoder = ChannelReductionEncoder( + in_channels=in_channels, out_channels=enc_outchannles) + + # decoder module + self.decoder =RobustScannerDecoder( + num_classes=out_channels, + dim_input=in_channels, + dim_model=enc_outchannles, + hybrid_decoder_rnn_layers=hybrid_dec_rnn_layers, + hybrid_decoder_dropout=hybrid_dec_dropout, + position_decoder_rnn_layers=position_dec_rnn_layers, + max_seq_len=max_seq_len, + start_idx=start_idx, + mask=mask, + padding_idx=padding_idx, + encode_value=encode_value) + + def forward(self, inputs, targets=None): + ''' + targets: [label, valid_ratio, word_positions] + ''' + out_enc = self.encoder(inputs) + valid_ratios = None + word_positions = targets[-1] + + if len(targets) > 1: + valid_ratios = targets[-2] + + if self.training: + label = targets[0] # label + label = paddle.to_tensor(label, dtype='int64') + final_out = self.decoder( + inputs, out_enc, label, valid_ratios, word_positions) + if not self.training: + final_out = self.decoder( + inputs, + out_enc, + label=None, + valid_ratios=valid_ratios, + word_positions=word_positions, + train_mode=False) + return final_out diff --git a/test_tipc/configs/rec_r31_robustscanner/rec_r31_robustscanner.yml b/test_tipc/configs/rec_r31_robustscanner/rec_r31_robustscanner.yml new file mode 100644 index 000000000..20ec9be96 --- /dev/null +++ b/test_tipc/configs/rec_r31_robustscanner/rec_r31_robustscanner.yml @@ -0,0 +1,110 @@ +Global: + use_gpu: true + epoch_num: 5 + log_smooth_window: 20 + print_batch_step: 20 + save_model_dir: ./output/rec/rec_r31_robustscanner/ + save_epoch_step: 1 + # evaluation is run every 2000 iterations + eval_batch_step: [0, 2000] + cal_metric_during_train: True + pretrained_model: + checkpoints: + save_inference_dir: + use_visualdl: False + infer_img: + # for data or label process + character_dict_path: ppocr/utils/dict90.txt + max_text_length: 40 + infer_mode: False + use_space_char: False + rm_symbol: True + save_res_path: ./output/rec/predicts_robustscanner.txt + +Optimizer: + name: Adam + beta1: 0.9 + beta2: 0.999 + lr: + name: Piecewise + decay_epochs: [3, 4] + values: [0.001, 0.0001, 0.00001] + regularizer: + name: 'L2' + factor: 0 + +Architecture: + model_type: rec + algorithm: RobustScanner + Transform: + Backbone: + name: ResNet31V2 + Head: + name: RobustScannerHead + enc_outchannles: 128 + hybrid_dec_rnn_layers: 2 + hybrid_dec_dropout: 0 + position_dec_rnn_layers: 2 + start_idx: 91 + mask: True + padding_idx: 92 + encode_value: False + max_seq_len: 40 + +Loss: + name: SARLoss + +PostProcess: + name: SARLabelDecode + +Metric: + name: RecMetric + is_filter: True + + +Train: + dataset: + name: SimpleDataSet + data_dir: ./train_data/ic15_data/ + label_file_list: ["./train_data/ic15_data/rec_gt_train.txt"] + transforms: + - DecodeImage: # load image + img_mode: BGR + channel_first: False + - SARLabelEncode: # Class handling label + - RobustScannerRecResizeImg: + image_shape: [3, 48, 48, 160] # h:48 w:[48,160] + width_downsample_ratio: 0.25 + max_seq_len: 40 + - KeepKeys: + keep_keys: ['image', 'label', 'valid_ratio', 'word_positons'] # dataloader will return list in this order + loader: + shuffle: True + batch_size_per_card: 16 + drop_last: True + num_workers: 0 + use_shared_memory: False + +Eval: + dataset: + name: SimpleDataSet + data_dir: ./train_data/ic15_data + label_file_list: ["./train_data/ic15_data/rec_gt_test.txt"] + transforms: + - DecodeImage: # load image + img_mode: BGR + channel_first: False + - SARLabelEncode: # Class handling label + - RobustScannerRecResizeImg: + image_shape: [3, 48, 48, 160] + max_seq_len: 40 + width_downsample_ratio: 0.25 + - KeepKeys: + keep_keys: ['image', 'label', 'valid_ratio', 'word_positons'] # dataloader will return list in this order + loader: + shuffle: False + drop_last: False + batch_size_per_card: 16 + num_workers: 0 + use_shared_memory: False + diff --git a/test_tipc/configs/rec_r31_robustscanner/train_infer_python.txt b/test_tipc/configs/rec_r31_robustscanner/train_infer_python.txt new file mode 100644 index 000000000..2f58d8f3e --- /dev/null +++ b/test_tipc/configs/rec_r31_robustscanner/train_infer_python.txt @@ -0,0 +1,52 @@ +===========================train_params=========================== +model_name:rec_r31_robustscanner +python:python +gpu_list:0|0,1 +Global.use_gpu:True|True +Global.auto_cast:null +Global.epoch_num:lite_train_lite_infer=2|whole_train_whole_infer=5 +Global.save_model_dir:./output/ +Train.loader.batch_size_per_card:lite_train_lite_infer=16|whole_train_whole_infer=64 +Global.pretrained_model:null +train_model_name:latest +train_infer_img_dir:./inference/rec_inference +null:null +## +trainer:norm_train +norm_train:tools/train.py -c test_tipc/configs/rec_r31_robustscanner/rec_r31_robustscanner.yml -o +pact_train:null +fpgm_train:null +distill_train:null +null:null +null:null +## +===========================eval_params=========================== +eval:tools/eval.py -c test_tipc/configs/rec_r31_robustscanner/rec_r31_robustscanner.yml -o +null:null +## +===========================infer_params=========================== +Global.save_inference_dir:./output/ +Global.checkpoints: +norm_export:tools/export_model.py -c test_tipc/configs/rec_r31_robustscanner/rec_r31_robustscanner.yml -o +quant_export:null +fpgm_export:null +distill_export:null +export1:null +export2:null +## +train_model:./inference/rec_r31_robustscanner/best_accuracy +infer_export:tools/export_model.py -c test_tipc/configs/rec_r31_robustscanner/rec_r31_robustscanner.yml -o +infer_quant:False +inference:tools/infer/predict_rec.py --rec_char_dict_path=./ppocr/utils/dict90.txt --rec_image_shape="3,48,48,160" --use_space_char=False --rec_algorithm="RobustScanner" +--use_gpu:True|False +--enable_mkldnn:True|False +--cpu_threads:1|6 +--rec_batch_num:1|6 +--use_tensorrt:False|False +--precision:fp32|int8 +--rec_model_dir: +--image_dir:./inference/rec_inference +--save_log_path:./test/output/ +--benchmark:True +null:null + diff --git a/tools/eval.py b/tools/eval.py index cab283343..6f5189fd6 100755 --- a/tools/eval.py +++ b/tools/eval.py @@ -73,7 +73,7 @@ def main(): config['Architecture']["Head"]['out_channels'] = char_num model = build_model(config['Architecture']) - extra_input_models = ["SRN", "NRTR", "SAR", "SEED", "SVTR"] + extra_input_models = ["SRN", "NRTR", "SAR", "SEED", "SVTR", "RobustScanner"] extra_input = False if config['Architecture']['algorithm'] == 'Distillation': for key in config['Architecture']["Models"]: diff --git a/tools/export_model.py b/tools/export_model.py index c0cbcd361..1a894bdf2 100755 --- a/tools/export_model.py +++ b/tools/export_model.py @@ -73,6 +73,22 @@ def export_single_model(model, arch_config, save_path, logger, quanter=None): shape=[None, 3, 64, 512], dtype="float32"), ] model = to_static(model, input_spec=other_shape) + elif arch_config["algorithm"] == "RobustScanner": + max_seq_len = arch_config["Head"]["max_seq_len"] + other_shape = [ + paddle.static.InputSpec( + shape=[None, 3, 48, 160], dtype="float32"), + + [ + paddle.static.InputSpec( + shape=[None, ], + dtype="float32"), + paddle.static.InputSpec( + shape=[None, max_seq_len], + dtype="int64") + ] + ] + 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 3664ef2ca..6647c9ab5 100755 --- a/tools/infer/predict_rec.py +++ b/tools/infer/predict_rec.py @@ -69,6 +69,14 @@ class TextRecognizer(object): "character_dict_path": args.rec_char_dict_path, "use_space_char": args.use_space_char } + elif self.rec_algorithm == "RobustScanner": + postprocess_params = { + 'name': 'SARLabelDecode', + "character_dict_path": args.rec_char_dict_path, + "use_space_char": args.use_space_char, + "rm_symbol": True + + } self.postprocess_op = build_post_process(postprocess_params) self.predictor, self.input_tensor, self.output_tensors, self.config = \ utility.create_predictor(args, 'rec', logger) @@ -266,7 +274,8 @@ class TextRecognizer(object): for beg_img_no in range(0, img_num, batch_num): end_img_no = min(img_num, beg_img_no + batch_num) norm_img_batch = [] - imgC, imgH, imgW = self.rec_image_shape + # imgC, imgH, imgW = self.rec_image_shape + imgH, imgW = self.rec_image_shape[-2:] max_wh_ratio = imgW / imgH # max_wh_ratio = 0 for ino in range(beg_img_no, end_img_no): @@ -300,6 +309,18 @@ class TextRecognizer(object): self.rec_image_shape) norm_img = norm_img[np.newaxis, :] norm_img_batch.append(norm_img) + elif self.rec_algorithm == "RobustScanner": + norm_img, _, _, valid_ratio = self.resize_norm_img_sar( + img_list[indices[ino]], self.rec_image_shape, width_downsample_ratio=0.25) + 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) + word_positions_list = [] + word_positions = np.array(range(0, 40)).astype('int64') + word_positions = np.expand_dims(word_positions, axis=0) + word_positions_list.append(word_positions) else: norm_img = self.resize_norm_img(img_list[indices[ino]], max_wh_ratio) @@ -351,6 +372,35 @@ class TextRecognizer(object): norm_img_batch, valid_ratios, ] + if self.use_onnx: + input_dict = {} + input_dict[self.input_tensor.name] = norm_img_batch + outputs = self.predictor.run(self.output_tensors, + input_dict) + preds = outputs[0] + else: + 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] + elif self.rec_algorithm == "RobustScanner": + valid_ratios = np.concatenate(valid_ratios) + word_positions_list = np.concatenate(word_positions_list) + inputs = [ + norm_img_batch, + valid_ratios, + word_positions_list + ] + if self.use_onnx: input_dict = {} input_dict[self.input_tensor.name] = norm_img_batch diff --git a/tools/infer_rec.py b/tools/infer_rec.py index a08fa25b4..670733cb9 100755 --- a/tools/infer_rec.py +++ b/tools/infer_rec.py @@ -96,6 +96,8 @@ def main(): ] elif config['Architecture']['algorithm'] == "SAR": op[op_name]['keep_keys'] = ['image', 'valid_ratio'] + elif config['Architecture']['algorithm'] == "RobustScanner": + op[op_name]['keep_keys'] = ['image', 'valid_ratio', 'word_positons'] else: op[op_name]['keep_keys'] = ['image'] transforms.append(op) @@ -131,6 +133,12 @@ def main(): if config['Architecture']['algorithm'] == "SAR": valid_ratio = np.expand_dims(batch[-1], axis=0) img_metas = [paddle.to_tensor(valid_ratio)] + if config['Architecture']['algorithm'] == "RobustScanner": + valid_ratio = np.expand_dims(batch[1], axis=0) + word_positons = np.expand_dims(batch[2], axis=0) + img_metas = [paddle.to_tensor(valid_ratio), + paddle.to_tensor(word_positons), + ] images = np.expand_dims(batch[0], axis=0) images = paddle.to_tensor(images) @@ -138,6 +146,8 @@ def main(): preds = model(images, others) elif config['Architecture']['algorithm'] == "SAR": preds = model(images, img_metas) + elif config['Architecture']['algorithm'] == "RobustScanner": + preds = model(images, img_metas) else: preds = model(images) post_result = post_process_class(preds) diff --git a/tools/program.py b/tools/program.py index 7c02dc014..d18817499 100755 --- a/tools/program.py +++ b/tools/program.py @@ -202,7 +202,7 @@ def train(config, model.train() use_srn = config['Architecture']['algorithm'] == "SRN" - extra_input_models = ["SRN", "NRTR", "SAR", "SEED", "SVTR"] + extra_input_models = ["SRN", "NRTR", "SAR", "SEED", "SVTR", "RobustScanner"] extra_input = False if config['Architecture']['algorithm'] == 'Distillation': for key in config['Architecture']["Models"]: @@ -559,7 +559,8 @@ def preprocess(is_train=False): assert alg in [ 'EAST', 'DB', 'SAST', 'Rosetta', 'CRNN', 'STARNet', 'RARE', 'SRN', 'CLS', 'PGNet', 'Distillation', 'NRTR', 'TableAttn', 'SAR', 'PSE', - 'SEED', 'SDMGR', 'LayoutXLM', 'LayoutLM', 'PREN', 'FCE', 'SVTR' + 'SEED', 'SDMGR', 'LayoutXLM', 'LayoutLM', 'PREN', 'FCE', 'SVTR', + 'RobustScanner' ] device = 'cpu' From 47cb27499f8fe58e48e9c638de48b6422c8721ca Mon Sep 17 00:00:00 2001 From: smilelite Date: Sun, 12 Jun 2022 12:25:34 +0800 Subject: [PATCH 02/17] update pr --- configs/rec/rec_r31_robustscanner.yml | 25 +- doc/doc_ch/algorithm_overview.md | 2 +- doc/doc_ch/algorithm_rec_robustscanner.md | 17 +- doc/doc_en/algorithm_rec_robustscanner_en.md | 17 +- ppocr/data/imaug/rec_img_aug.py | 9 +- ppocr/modeling/backbones/__init__.py | 1 - ppocr/modeling/backbones/rec_resnet_31.py | 40 ++-- ppocr/modeling/backbones/rec_resnet_31_v2.py | 216 ------------------ .../modeling/heads/rec_robustscanner_head.py | 56 +---- .../rec_r31_robustscanner.yml | 8 +- 10 files changed, 62 insertions(+), 329 deletions(-) delete mode 100644 ppocr/modeling/backbones/rec_resnet_31_v2.py diff --git a/configs/rec/rec_r31_robustscanner.yml b/configs/rec/rec_r31_robustscanner.yml index 4d2ae57b7..3e1d3009c 100644 --- a/configs/rec/rec_r31_robustscanner.yml +++ b/configs/rec/rec_r31_robustscanner.yml @@ -15,7 +15,7 @@ Global: infer_img: ./inference/rec_inference # for data or label process character_dict_path: ppocr/utils/dict90.txt - max_text_length: 40 + max_text_length: &max_text_length 40 infer_mode: False use_space_char: False rm_symbol: True @@ -38,7 +38,7 @@ Architecture: algorithm: RobustScanner Transform: Backbone: - name: ResNet31V2 + name: ResNet31 Head: name: RobustScannerHead enc_outchannles: 128 @@ -49,7 +49,7 @@ Architecture: mask: True padding_idx: 92 encode_value: False - max_seq_len: 40 + max_text_length: *max_text_length Loss: name: SARLoss @@ -64,8 +64,9 @@ Metric: Train: dataset: - name: LMDBDataSet - data_dir: I:/dataset/OCR/deep_text_recognition/data_lmdb/evaluation/CUTE80 + name: SimpleDataSet + label_file_list: ['./train_data/train_list.txt'] + data_dir: ./train_data/ transforms: - DecodeImage: # load image img_mode: BGR @@ -74,20 +75,20 @@ Train: - RobustScannerRecResizeImg: image_shape: [3, 48, 48, 160] # h:48 w:[48,160] width_downsample_ratio: 0.25 - max_seq_len: 40 + max_text_length: *max_text_length - KeepKeys: keep_keys: ['image', 'label', 'valid_ratio', 'word_positons'] # dataloader will return list in this order loader: shuffle: True - batch_size_per_card: 4 + batch_size_per_card: 64 drop_last: True - num_workers: 0 + num_workers: 8 use_shared_memory: False Eval: dataset: name: LMDBDataSet - data_dir: I:/dataset/OCR/deep_text_recognition/data_lmdb/evaluation/CUTE80 + data_dir: ./train_data/data_lmdb_release/evaluation/ transforms: - DecodeImage: # load image img_mode: BGR @@ -95,14 +96,14 @@ Eval: - SARLabelEncode: # Class handling label - RobustScannerRecResizeImg: image_shape: [3, 48, 48, 160] - max_seq_len: 40 + max_seq_len: *max_text_length width_downsample_ratio: 0.25 - KeepKeys: keep_keys: ['image', 'label', 'valid_ratio', 'word_positons'] # dataloader will return list in this order loader: shuffle: False drop_last: False - batch_size_per_card: 1 - num_workers: 0 + batch_size_per_card: 64 + num_workers: 4 use_shared_memory: False diff --git a/doc/doc_ch/algorithm_overview.md b/doc/doc_ch/algorithm_overview.md index 056d05ed4..c32d5a77b 100755 --- a/doc/doc_ch/algorithm_overview.md +++ b/doc/doc_ch/algorithm_overview.md @@ -85,7 +85,7 @@ |SAR|Resnet31| 87.20% | rec_r31_sar | [训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.1/rec/rec_r31_sar_train.tar) | |SEED|Aster_Resnet| 85.35% | rec_resnet_stn_bilstm_att | [训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.1/rec/rec_resnet_stn_bilstm_att.tar) | |SVTR|SVTR-Tiny| 89.25% | rec_svtr_tiny_none_ctc_en | [训练模型](https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/rec_svtr_tiny_none_ctc_en_train.tar) | -|RobustScanner|ResNet31V2| 87.77% | rec_r31_robustscanner | [训练模型]() | +|RobustScanner|ResNet31V2| 87.77% | rec_r31_robustscanner | coming soon | diff --git a/doc/doc_ch/algorithm_rec_robustscanner.md b/doc/doc_ch/algorithm_rec_robustscanner.md index f504cf5f6..869f9a7c0 100644 --- a/doc/doc_ch/algorithm_rec_robustscanner.md +++ b/doc/doc_ch/algorithm_rec_robustscanner.md @@ -26,7 +26,7 @@ Zhang |模型|骨干网络|配置文件|Acc|下载链接| | --- | --- | --- | --- | --- | -|RobustScanner|ResNet31V2|[rec_r31_robustscanner.yml](../../configs/rec/rec_r31_robustscanner.yml)|87.77%|[训练模型]()| +|RobustScanner|ResNet31|[rec_r31_robustscanner.yml](../../configs/rec/rec_r31_robustscanner.yml)|87.77%|coming soon| 注:除了使用MJSynth和SynthText两个文字识别数据集外,还加入了[SynthAdd](https://pan.baidu.com/share/init?surl=uV0LtoNmcxbO-0YA7Ch4dg)数据(提取码:627x),和部分真实数据,具体数据细节可以参考论文。 @@ -71,7 +71,7 @@ python3 tools/infer_rec.py -c configs/rec/rec_r31_robustscanner.yml -o Global.pr ### 4.1 Python推理 -首先将RobustScanner文本识别训练过程中保存的模型,转换成inference model。( [模型下载地址]() ),可以使用如下命令进行转换: +首先将RobustScanner文本识别训练过程中保存的模型,转换成inference model。可以使用如下命令进行转换: ``` python3 tools/export_model.py -c configs/rec/rec_r31_robustscanner.yml -o Global.pretrained_model={path/to/weights}/best_accuracy Global.save_inference_dir=./inference/rec_r31_robustscanner @@ -85,7 +85,7 @@ python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words/en/word_1.png" ### 4.2 C++推理 -由于C++预处理后处理还未支持SAR,所以暂未支持 +由于C++预处理后处理还未支持RobustScanner,所以暂未支持 ### 4.3 Serving服务化部署 @@ -104,11 +104,10 @@ python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words/en/word_1.png" ## 引用 ```bibtex -@article{Li2019ShowAA, - title={Show, Attend and Read: A Simple and Strong Baseline for Irregular Text Recognition}, - author={Hui Li and Peng Wang and Chunhua Shen and Guyu Zhang}, - journal={ArXiv}, - year={2019}, - volume={abs/1811.00751} +@article{2020RobustScanner, + title={RobustScanner: Dynamically Enhancing Positional Clues for Robust Text Recognition}, + author={Xiaoyu Yue and Zhanghui Kuang and Chenhao Lin and Hongbin Sun and Wayne Zhang}, + journal={ECCV2020}, + year={2020}, } ``` diff --git a/doc/doc_en/algorithm_rec_robustscanner_en.md b/doc/doc_en/algorithm_rec_robustscanner_en.md index 9b6c772ac..a5454476d 100644 --- a/doc/doc_en/algorithm_rec_robustscanner_en.md +++ b/doc/doc_en/algorithm_rec_robustscanner_en.md @@ -1,4 +1,4 @@ -# SAR +# RobustScanner - [1. Introduction](#1) - [2. Environment](#2) @@ -26,7 +26,7 @@ Using MJSynth and SynthText two text recognition datasets for training, and eval |Model|Backbone|config|Acc|Download link| | --- | --- | --- | --- | --- | -|RobustScanner|ResNet31V2|[rec_r31_robustscanner.yml](../../configs/rec/rec_r31_robustscanner.yml)|87.77%|[train model]()| +|RobustScanner|ResNet31V2|[rec_r31_robustscanner.yml](../../configs/rec/rec_r31_robustscanner.yml)|87.77%|coming soon| Note:In addition to using the two text recognition datasets MJSynth and SynthText, [SynthAdd](https://pan.baidu.com/share/init?surl=uV0LtoNmcxbO-0YA7Ch4dg) data (extraction code: 627x), and some real data are used in training, the specific data details can refer to the paper. @@ -71,7 +71,7 @@ python3 tools/infer_rec.py -c configs/rec/rec_r31_robustscanner.yml -o Global.pr ### 4.1 Python Inference -First, the model saved during the RobustScanner text recognition training process is converted into an inference model. ( [Model download link]() ), you can use the following command to convert: +First, the model saved during the RobustScanner text recognition training process is converted into an inference model. you can use the following command to convert: ``` python3 tools/export_model.py -c configs/rec/rec_r31_robustscanner.yml -o Global.pretrained_model={path/to/weights}/best_accuracy Global.save_inference_dir=./inference/rec_r31_robustscanner @@ -105,11 +105,10 @@ Not supported ## Citation ```bibtex -@article{Li2019ShowAA, - title={Show, Attend and Read: A Simple and Strong Baseline for Irregular Text Recognition}, - author={Hui Li and Peng Wang and Chunhua Shen and Guyu Zhang}, - journal={ArXiv}, - year={2019}, - volume={abs/1811.00751} +@article{2020RobustScanner, + title={RobustScanner: Dynamically Enhancing Positional Clues for Robust Text Recognition}, + author={Xiaoyu Yue and Zhanghui Kuang and Chenhao Lin and Hongbin Sun and Wayne Zhang}, + journal={ECCV2020}, + year={2020}, } ``` diff --git a/ppocr/data/imaug/rec_img_aug.py b/ppocr/data/imaug/rec_img_aug.py index b97b78ce4..aa4523329 100644 --- a/ppocr/data/imaug/rec_img_aug.py +++ b/ppocr/data/imaug/rec_img_aug.py @@ -268,16 +268,16 @@ class PRENResizeImg(object): return data class RobustScannerRecResizeImg(object): - def __init__(self, image_shape, max_seq_len, width_downsample_ratio=0.25, **kwargs): + def __init__(self, image_shape, max_text_length, width_downsample_ratio=0.25, **kwargs): self.image_shape = image_shape self.width_downsample_ratio = width_downsample_ratio - self.max_seq_len = max_seq_len + self.max_text_length = max_text_length def __call__(self, data): img = data['image'] norm_img, resize_shape, pad_shape, valid_ratio = resize_norm_img_sar( img, self.image_shape, self.width_downsample_ratio) - word_positons = robustscanner_other_inputs(self.max_seq_len) + word_positons = np.array(range(0, self.max_text_length)).astype('int64') data['image'] = norm_img data['resized_shape'] = resize_shape data['pad_shape'] = pad_shape @@ -429,9 +429,6 @@ def srn_other_inputs(image_shape, num_heads, max_text_length): gsrm_slf_attn_bias2 ] -def robustscanner_other_inputs(max_text_length): - word_pos = np.array(range(0, max_text_length)).astype('int64') - return word_pos def flag(): """ diff --git a/ppocr/modeling/backbones/__init__.py b/ppocr/modeling/backbones/__init__.py index a90051f1d..0cc894dbf 100755 --- a/ppocr/modeling/backbones/__init__.py +++ b/ppocr/modeling/backbones/__init__.py @@ -28,7 +28,6 @@ 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_31_v2 import ResNet31V2 from .rec_resnet_aster import ResNet_ASTER from .rec_micronet import MicroNet from .rec_efficientb3_pren import EfficientNetb3_PREN diff --git a/ppocr/modeling/backbones/rec_resnet_31.py b/ppocr/modeling/backbones/rec_resnet_31.py index 965170138..e1d77c405 100644 --- a/ppocr/modeling/backbones/rec_resnet_31.py +++ b/ppocr/modeling/backbones/rec_resnet_31.py @@ -27,9 +27,12 @@ import paddle.nn as nn import paddle.nn.functional as F import numpy as np -__all__ = ["ResNet31"] +__all__ = ["ResNet31V2"] +conv_weight_attr = nn.initializer.KaimingNormal() +bn_weight_attr = ParamAttr(initializer=nn.initializer.Uniform(), learning_rate=1) + def conv3x3(in_channel, out_channel, stride=1): return nn.Conv2D( in_channel, @@ -37,6 +40,7 @@ def conv3x3(in_channel, out_channel, stride=1): kernel_size=3, stride=stride, padding=1, + weight_attr=conv_weight_attr, bias_attr=False) @@ -46,10 +50,10 @@ class BasicBlock(nn.Layer): def __init__(self, in_channels, channels, stride=1, downsample=False): super().__init__() self.conv1 = conv3x3(in_channels, channels, stride) - self.bn1 = nn.BatchNorm2D(channels) + self.bn1 = nn.BatchNorm2D(channels, weight_attr=bn_weight_attr) self.relu = nn.ReLU() self.conv2 = conv3x3(channels, channels) - self.bn2 = nn.BatchNorm2D(channels) + self.bn2 = nn.BatchNorm2D(channels, weight_attr=bn_weight_attr) self.downsample = downsample if downsample: self.downsample = nn.Sequential( @@ -58,8 +62,9 @@ class BasicBlock(nn.Layer): channels * self.expansion, 1, stride, + weight_attr=conv_weight_attr, bias_attr=False), - nn.BatchNorm2D(channels * self.expansion), ) + nn.BatchNorm2D(channels * self.expansion, weight_attr=bn_weight_attr)) else: self.downsample = nn.Sequential() self.stride = stride @@ -108,13 +113,13 @@ class ResNet31(nn.Layer): # conv 1 (Conv Conv) self.conv1_1 = nn.Conv2D( - in_channels, channels[0], kernel_size=3, stride=1, padding=1) - self.bn1_1 = nn.BatchNorm2D(channels[0]) + in_channels, channels[0], kernel_size=3, stride=1, padding=1, weight_attr=conv_weight_attr) + self.bn1_1 = nn.BatchNorm2D(channels[0], weight_attr=bn_weight_attr) self.relu1_1 = nn.ReLU() self.conv1_2 = nn.Conv2D( - channels[0], channels[1], kernel_size=3, stride=1, padding=1) - self.bn1_2 = nn.BatchNorm2D(channels[1]) + channels[0], channels[1], kernel_size=3, stride=1, padding=1, weight_attr=conv_weight_attr) + self.bn1_2 = nn.BatchNorm2D(channels[1], weight_attr=bn_weight_attr) self.relu1_2 = nn.ReLU() # conv 2 (Max-pooling, Residual block, Conv) @@ -122,8 +127,8 @@ class ResNet31(nn.Layer): kernel_size=2, stride=2, padding=0, ceil_mode=True) self.block2 = self._make_layer(channels[1], channels[2], layers[0]) self.conv2 = nn.Conv2D( - channels[2], channels[2], kernel_size=3, stride=1, padding=1) - self.bn2 = nn.BatchNorm2D(channels[2]) + channels[2], channels[2], kernel_size=3, stride=1, padding=1, weight_attr=conv_weight_attr) + self.bn2 = nn.BatchNorm2D(channels[2], weight_attr=bn_weight_attr) self.relu2 = nn.ReLU() # conv 3 (Max-pooling, Residual block, Conv) @@ -131,8 +136,8 @@ class ResNet31(nn.Layer): kernel_size=2, stride=2, padding=0, ceil_mode=True) self.block3 = self._make_layer(channels[2], channels[3], layers[1]) self.conv3 = nn.Conv2D( - channels[3], channels[3], kernel_size=3, stride=1, padding=1) - self.bn3 = nn.BatchNorm2D(channels[3]) + channels[3], channels[3], kernel_size=3, stride=1, padding=1, weight_attr=conv_weight_attr) + self.bn3 = nn.BatchNorm2D(channels[3], weight_attr=bn_weight_attr) self.relu3 = nn.ReLU() # conv 4 (Max-pooling, Residual block, Conv) @@ -140,8 +145,8 @@ class ResNet31(nn.Layer): kernel_size=(2, 1), stride=(2, 1), padding=0, ceil_mode=True) self.block4 = self._make_layer(channels[3], channels[4], layers[2]) self.conv4 = nn.Conv2D( - channels[4], channels[4], kernel_size=3, stride=1, padding=1) - self.bn4 = nn.BatchNorm2D(channels[4]) + channels[4], channels[4], kernel_size=3, stride=1, padding=1, weight_attr=conv_weight_attr) + self.bn4 = nn.BatchNorm2D(channels[4], weight_attr=bn_weight_attr) self.relu4 = nn.ReLU() # conv 5 ((Max-pooling), Residual block, Conv) @@ -151,8 +156,8 @@ class ResNet31(nn.Layer): kernel_size=2, stride=2, padding=0, ceil_mode=True) self.block5 = self._make_layer(channels[4], channels[5], layers[3]) self.conv5 = nn.Conv2D( - channels[5], channels[5], kernel_size=3, stride=1, padding=1) - self.bn5 = nn.BatchNorm2D(channels[5]) + channels[5], channels[5], kernel_size=3, stride=1, padding=1, weight_attr=conv_weight_attr) + self.bn5 = nn.BatchNorm2D(channels[5], weight_attr=bn_weight_attr) self.relu5 = nn.ReLU() self.out_channels = channels[-1] @@ -168,8 +173,9 @@ class ResNet31(nn.Layer): output_channels, kernel_size=1, stride=1, + weight_attr=conv_weight_attr, bias_attr=False), - nn.BatchNorm2D(output_channels), ) + nn.BatchNorm2D(output_channels, weight_attr=bn_weight_attr)) layers.append( BasicBlock( diff --git a/ppocr/modeling/backbones/rec_resnet_31_v2.py b/ppocr/modeling/backbones/rec_resnet_31_v2.py deleted file mode 100644 index 7812b6296..000000000 --- a/ppocr/modeling/backbones/rec_resnet_31_v2.py +++ /dev/null @@ -1,216 +0,0 @@ -# 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. -""" -This code is refer from: -https://github.com/open-mmlab/mmocr/blob/main/mmocr/models/textrecog/layers/conv_layer.py -https://github.com/open-mmlab/mmocr/blob/main/mmocr/models/textrecog/backbones/resnet31_ocr.py -""" - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import paddle -from paddle import ParamAttr -import paddle.nn as nn -import paddle.nn.functional as F -import numpy as np - -__all__ = ["ResNet31V2"] - - -conv_weight_attr = nn.initializer.KaimingNormal() -bn_weight_attr = ParamAttr(initializer=nn.initializer.Uniform(), learning_rate=1) - -def conv3x3(in_channel, out_channel, stride=1): - return nn.Conv2D( - in_channel, - out_channel, - kernel_size=3, - stride=stride, - padding=1, - weight_attr=conv_weight_attr, - bias_attr=False) - - -class BasicBlock(nn.Layer): - expansion = 1 - - def __init__(self, in_channels, channels, stride=1, downsample=False): - super().__init__() - self.conv1 = conv3x3(in_channels, channels, stride) - self.bn1 = nn.BatchNorm2D(channels, weight_attr=bn_weight_attr) - self.relu = nn.ReLU() - self.conv2 = conv3x3(channels, channels) - self.bn2 = nn.BatchNorm2D(channels, weight_attr=bn_weight_attr) - self.downsample = downsample - if downsample: - self.downsample = nn.Sequential( - nn.Conv2D( - in_channels, - channels * self.expansion, - 1, - stride, - weight_attr=conv_weight_attr, - bias_attr=False), - nn.BatchNorm2D(channels * self.expansion, weight_attr=bn_weight_attr)) - else: - self.downsample = nn.Sequential() - 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: - residual = self.downsample(x) - - out += residual - out = self.relu(out) - - return out - - -class ResNet31V2(nn.Layer): - ''' - Args: - in_channels (int): Number of channels of input image tensor. - layers (list[int]): List of BasicBlock number for each stage. - channels (list[int]): List of out_channels of Conv2d layer. - out_indices (None | Sequence[int]): Indices of output stages. - last_stage_pool (bool): If True, add `MaxPool2d` layer to last stage. - ''' - - def __init__(self, - in_channels=3, - layers=[1, 2, 5, 3], - channels=[64, 128, 256, 256, 512, 512, 512], - out_indices=None, - last_stage_pool=False): - super(ResNet31V2, self).__init__() - assert isinstance(in_channels, int) - assert isinstance(last_stage_pool, bool) - - self.out_indices = out_indices - self.last_stage_pool = last_stage_pool - - # conv 1 (Conv Conv) - self.conv1_1 = nn.Conv2D( - in_channels, channels[0], kernel_size=3, stride=1, padding=1, weight_attr=conv_weight_attr) - self.bn1_1 = nn.BatchNorm2D(channels[0], weight_attr=bn_weight_attr) - self.relu1_1 = nn.ReLU() - - self.conv1_2 = nn.Conv2D( - channels[0], channels[1], kernel_size=3, stride=1, padding=1, weight_attr=conv_weight_attr) - self.bn1_2 = nn.BatchNorm2D(channels[1], weight_attr=bn_weight_attr) - self.relu1_2 = nn.ReLU() - - # conv 2 (Max-pooling, Residual block, Conv) - self.pool2 = nn.MaxPool2D( - kernel_size=2, stride=2, padding=0, ceil_mode=True) - self.block2 = self._make_layer(channels[1], channels[2], layers[0]) - self.conv2 = nn.Conv2D( - channels[2], channels[2], kernel_size=3, stride=1, padding=1, weight_attr=conv_weight_attr) - self.bn2 = nn.BatchNorm2D(channels[2], weight_attr=bn_weight_attr) - self.relu2 = nn.ReLU() - - # conv 3 (Max-pooling, Residual block, Conv) - self.pool3 = nn.MaxPool2D( - kernel_size=2, stride=2, padding=0, ceil_mode=True) - self.block3 = self._make_layer(channels[2], channels[3], layers[1]) - self.conv3 = nn.Conv2D( - channels[3], channels[3], kernel_size=3, stride=1, padding=1, weight_attr=conv_weight_attr) - self.bn3 = nn.BatchNorm2D(channels[3], weight_attr=bn_weight_attr) - self.relu3 = nn.ReLU() - - # conv 4 (Max-pooling, Residual block, Conv) - self.pool4 = nn.MaxPool2D( - kernel_size=(2, 1), stride=(2, 1), padding=0, ceil_mode=True) - self.block4 = self._make_layer(channels[3], channels[4], layers[2]) - self.conv4 = nn.Conv2D( - channels[4], channels[4], kernel_size=3, stride=1, padding=1, weight_attr=conv_weight_attr) - self.bn4 = nn.BatchNorm2D(channels[4], weight_attr=bn_weight_attr) - self.relu4 = nn.ReLU() - - # conv 5 ((Max-pooling), Residual block, Conv) - self.pool5 = None - if self.last_stage_pool: - self.pool5 = nn.MaxPool2D( - kernel_size=2, stride=2, padding=0, ceil_mode=True) - self.block5 = self._make_layer(channels[4], channels[5], layers[3]) - self.conv5 = nn.Conv2D( - channels[5], channels[5], kernel_size=3, stride=1, padding=1, weight_attr=conv_weight_attr) - self.bn5 = nn.BatchNorm2D(channels[5], weight_attr=bn_weight_attr) - self.relu5 = nn.ReLU() - - self.out_channels = channels[-1] - - def _make_layer(self, input_channels, output_channels, blocks): - layers = [] - for _ in range(blocks): - downsample = None - if input_channels != output_channels: - downsample = nn.Sequential( - nn.Conv2D( - input_channels, - output_channels, - kernel_size=1, - stride=1, - weight_attr=conv_weight_attr, - bias_attr=False), - nn.BatchNorm2D(output_channels, weight_attr=bn_weight_attr)) - - layers.append( - BasicBlock( - input_channels, output_channels, downsample=downsample)) - input_channels = output_channels - return nn.Sequential(*layers) - - def forward(self, x): - x = self.conv1_1(x) - x = self.bn1_1(x) - x = self.relu1_1(x) - - x = self.conv1_2(x) - x = self.bn1_2(x) - x = self.relu1_2(x) - - outs = [] - for i in range(4): - layer_index = i + 2 - pool_layer = getattr(self, f'pool{layer_index}') - block_layer = getattr(self, f'block{layer_index}') - conv_layer = getattr(self, f'conv{layer_index}') - bn_layer = getattr(self, f'bn{layer_index}') - relu_layer = getattr(self, f'relu{layer_index}') - - if pool_layer is not None: - x = pool_layer(x) - x = block_layer(x) - x = conv_layer(x) - x = bn_layer(x) - x = relu_layer(x) - - outs.append(x) - - if self.out_indices is not None: - return tuple([outs[i] for i in self.out_indices]) - - return x diff --git a/ppocr/modeling/heads/rec_robustscanner_head.py b/ppocr/modeling/heads/rec_robustscanner_head.py index b45893797..fc889d59c 100644 --- a/ppocr/modeling/heads/rec_robustscanner_head.py +++ b/ppocr/modeling/heads/rec_robustscanner_head.py @@ -217,18 +217,7 @@ class SequenceAttentionDecoder(BaseDecoder): else: value = paddle.reshape(feat, [n, c_feat, h * w]) - # mask = None - # if valid_ratios is not None: - # mask = paddle.zeros(shape=[n, len_q, h, w], dtype='bool') - # for i, valid_ratio in enumerate(valid_ratios): - # valid_width = min(w, math.ceil(w * valid_ratio)) - # if valid_width < w: - # mask[i, :, :, valid_width:] = True - # # mask = mask.view(n, h * w) - # mask = paddle.reshape(mask, (n, len_q, h * w)) - attn_out = self.attention_layer(query, key, value, h, w, valid_ratios) - # attn_out = attn_out.permute(0, 2, 1).contiguous() attn_out = paddle.transpose(attn_out, (0, 2, 1)) if self.return_feature: @@ -253,8 +242,6 @@ class SequenceAttentionDecoder(BaseDecoder): seq_len = self.max_seq_len batch_size = feat.shape[0] - # decode_sequence = (feat.new_ones( - # (batch_size, seq_len)) * self.start_idx).long() decode_sequence = (paddle.ones((batch_size, seq_len), dtype='int64') * self.start_idx) outputs = [] @@ -303,20 +290,8 @@ class SequenceAttentionDecoder(BaseDecoder): value = key else: value = paddle.reshape(feat, [n, c_feat, h * w]) - # len_q = query.shape[2] - # mask = None - # if valid_ratios is not None: - # mask = paddle.zeros(shape=[n, len_q, h, w], dtype='bool') - # for i, valid_ratio in enumerate(valid_ratios): - # valid_width = min(w, math.ceil(w * valid_ratio)) - # if valid_width < w: - # mask[i, :, :, valid_width:] = True - # # mask = mask.view(n, h * w) - # mask = paddle.reshape(mask, (n, len_q, h * w)) # [n, c, l] - # attn_out = self.attention_layer(query, key, value, mask) - attn_out = self.attention_layer(query, key, value, h, w, valid_ratios) out = attn_out[:, :, current_step] @@ -445,7 +420,6 @@ class PositionAttentionDecoder(BaseDecoder): before the prediction projection layer, whose shape is :math:`(N, T, D_m)`. """ - # n, c_enc, h, w = out_enc.shape assert c_enc == self.dim_model _, c_feat, _, _ = feat.shape @@ -453,8 +427,6 @@ class PositionAttentionDecoder(BaseDecoder): _, len_q = targets.shape assert len_q <= self.max_seq_len - # position_index = self._get_position_index(len_q, n) - position_out_enc = self.position_aware_module(out_enc) query = self.embedding(position_index) @@ -465,16 +437,6 @@ class PositionAttentionDecoder(BaseDecoder): else: value = paddle.reshape(feat,(n, c_feat, h * w)) - # mask = None - # if valid_ratios is not None: - # mask = paddle.zeros(shape=[n, len_q, h, w], dtype='bool') - # for i, valid_ratio in enumerate(valid_ratios): - # valid_width = min(w, math.ceil(w * valid_ratio)) - # if valid_width < w: - # mask[i, :, :, valid_width:] = True - # # mask = mask.view(n, h * w) - # mask = paddle.reshape(mask, (n, len_q, h * w)) - attn_out = self.attention_layer(query, key, value, h, w, valid_ratios) attn_out = paddle.transpose(attn_out, (0, 2, 1)) # [n, len_q, dim_v] @@ -498,7 +460,6 @@ class PositionAttentionDecoder(BaseDecoder): before the prediction projection layer, whose shape is :math:`(N, T, D_m)`. """ - # seq_len = self.max_seq_len n, c_enc, h, w = out_enc.shape assert c_enc == self.dim_model _, c_feat, _, _ = feat.shape @@ -516,16 +477,6 @@ class PositionAttentionDecoder(BaseDecoder): value = paddle.reshape(out_enc,(n, c_enc, h * w)) else: value = paddle.reshape(feat,(n, c_feat, h * w)) - # len_q = query.shape[2] - # mask = None - # if valid_ratios is not None: - # mask = paddle.zeros(shape=[n, len_q, h, w], dtype='bool') - # for i, valid_ratio in enumerate(valid_ratios): - # valid_width = min(w, math.ceil(w * valid_ratio)) - # if valid_width < w: - # mask[i, :, :, valid_width:] = True - # # mask = mask.view(n, h * w) - # mask = paddle.reshape(mask, (n, len_q, h * w)) attn_out = self.attention_layer(query, key, value, h, w, valid_ratios) attn_out = paddle.transpose(attn_out, (0, 2, 1)) # [n, len_q, dim_v] @@ -676,9 +627,6 @@ class RobustScannerDecoder(BaseDecoder): seq_len = self.max_seq_len batch_size = feat.shape[0] - # decode_sequence = (feat.new_ones( - # (batch_size, seq_len)) * self.start_idx).long() - decode_sequence = (paddle.ones((batch_size, seq_len), dtype='int64') * self.start_idx) position_glimpse = self.position_decoder.forward_test( @@ -712,7 +660,7 @@ class RobustScannerHead(nn.Layer): hybrid_dec_dropout=0, position_dec_rnn_layers=2, start_idx=0, - max_seq_len=40, + max_text_length=40, mask=True, padding_idx=None, encode_value=False, @@ -731,7 +679,7 @@ class RobustScannerHead(nn.Layer): hybrid_decoder_rnn_layers=hybrid_dec_rnn_layers, hybrid_decoder_dropout=hybrid_dec_dropout, position_decoder_rnn_layers=position_dec_rnn_layers, - max_seq_len=max_seq_len, + max_seq_len=max_text_length, start_idx=start_idx, mask=mask, padding_idx=padding_idx, diff --git a/test_tipc/configs/rec_r31_robustscanner/rec_r31_robustscanner.yml b/test_tipc/configs/rec_r31_robustscanner/rec_r31_robustscanner.yml index 20ec9be96..a49f332aa 100644 --- a/test_tipc/configs/rec_r31_robustscanner/rec_r31_robustscanner.yml +++ b/test_tipc/configs/rec_r31_robustscanner/rec_r31_robustscanner.yml @@ -15,7 +15,7 @@ Global: infer_img: # for data or label process character_dict_path: ppocr/utils/dict90.txt - max_text_length: 40 + max_text_length: &max_text_length 40 infer_mode: False use_space_char: False rm_symbol: True @@ -38,7 +38,7 @@ Architecture: algorithm: RobustScanner Transform: Backbone: - name: ResNet31V2 + name: ResNet31 Head: name: RobustScannerHead enc_outchannles: 128 @@ -75,7 +75,7 @@ Train: - RobustScannerRecResizeImg: image_shape: [3, 48, 48, 160] # h:48 w:[48,160] width_downsample_ratio: 0.25 - max_seq_len: 40 + max_seq_len: *max_text_length - KeepKeys: keep_keys: ['image', 'label', 'valid_ratio', 'word_positons'] # dataloader will return list in this order loader: @@ -97,7 +97,7 @@ Eval: - SARLabelEncode: # Class handling label - RobustScannerRecResizeImg: image_shape: [3, 48, 48, 160] - max_seq_len: 40 + max_seq_len: *max_text_length width_downsample_ratio: 0.25 - KeepKeys: keep_keys: ['image', 'label', 'valid_ratio', 'word_positons'] # dataloader will return list in this order From 0bb195c8e14d61c250a1cc7c167d33475a8b73ee Mon Sep 17 00:00:00 2001 From: smilelite Date: Sun, 12 Jun 2022 13:29:14 +0800 Subject: [PATCH 03/17] modify algorithm_overview_en --- doc/doc_en/algorithm_overview_en.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/doc_en/algorithm_overview_en.md b/doc/doc_en/algorithm_overview_en.md index 7579da88e..1f539558c 100755 --- a/doc/doc_en/algorithm_overview_en.md +++ b/doc/doc_en/algorithm_overview_en.md @@ -84,7 +84,7 @@ Refer to [DTRB](https://arxiv.org/abs/1904.01906), the training and evaluation r |SAR|Resnet31| 87.20% | rec_r31_sar | [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.1/rec/rec_r31_sar_train.tar) | |SEED|Aster_Resnet| 85.35% | rec_resnet_stn_bilstm_att | [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.1/rec/rec_resnet_stn_bilstm_att.tar) | |SVTR|SVTR-Tiny| 89.25% | rec_svtr_tiny_none_ctc_en | [trained model](https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/rec_svtr_tiny_none_ctc_en_train.tar) | -|RobustScanner|ResNet31V2| 87.77% | rec_r31_robustscanner | [trained model]() | +|RobustScanner|ResNet32| 87.77% | rec_r31_robustscanner | coming soon | From 32f85fd92b9bf0728b7fa9eaa796417dd4f83f67 Mon Sep 17 00:00:00 2001 From: smilelite Date: Sun, 12 Jun 2022 13:31:33 +0800 Subject: [PATCH 04/17] modify algorithm_overview_en_again --- doc/doc_en/algorithm_overview_en.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/doc_en/algorithm_overview_en.md b/doc/doc_en/algorithm_overview_en.md index 1f539558c..9c09be902 100755 --- a/doc/doc_en/algorithm_overview_en.md +++ b/doc/doc_en/algorithm_overview_en.md @@ -84,7 +84,7 @@ Refer to [DTRB](https://arxiv.org/abs/1904.01906), the training and evaluation r |SAR|Resnet31| 87.20% | rec_r31_sar | [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.1/rec/rec_r31_sar_train.tar) | |SEED|Aster_Resnet| 85.35% | rec_resnet_stn_bilstm_att | [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.1/rec/rec_resnet_stn_bilstm_att.tar) | |SVTR|SVTR-Tiny| 89.25% | rec_svtr_tiny_none_ctc_en | [trained model](https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/rec_svtr_tiny_none_ctc_en_train.tar) | -|RobustScanner|ResNet32| 87.77% | rec_r31_robustscanner | coming soon | +|RobustScanner|ResNet31| 87.77% | rec_r31_robustscanner | coming soon | From 6aa35c18ae1e7696fbb94a255d8133ace8234ea0 Mon Sep 17 00:00:00 2001 From: smilelite Date: Sun, 10 Jul 2022 12:31:27 +0800 Subject: [PATCH 05/17] modified head --- ppocr/modeling/heads/__init__.py | 2 +- ppocr/modeling/heads/rec_robustscanner_head.py | 2 +- tools/export_model.py | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ppocr/modeling/heads/__init__.py b/ppocr/modeling/heads/__init__.py index 99cb59e67..9a1b76576 100755 --- a/ppocr/modeling/heads/__init__.py +++ b/ppocr/modeling/heads/__init__.py @@ -33,8 +33,8 @@ def build_head(config): from .rec_aster_head import AsterHead from .rec_pren_head import PRENHead from .rec_multi_head import MultiHead - from .rec_robustscanner_head import RobustScannerHead from .rec_abinet_head import ABINetHead + from .rec_robustscanner_head import RobustScannerHead # cls head from .cls_head import ClsHead diff --git a/ppocr/modeling/heads/rec_robustscanner_head.py b/ppocr/modeling/heads/rec_robustscanner_head.py index fc889d59c..b9f8962d5 100644 --- a/ppocr/modeling/heads/rec_robustscanner_head.py +++ b/ppocr/modeling/heads/rec_robustscanner_head.py @@ -1,4 +1,4 @@ -# copyright (c) 2021 PaddlePaddle Authors. All Rights Reserve. +# copyright (c) 2022 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. diff --git a/tools/export_model.py b/tools/export_model.py index 11794f742..a9f4a62e8 100755 --- a/tools/export_model.py +++ b/tools/export_model.py @@ -79,7 +79,7 @@ def export_single_model(model, ] model = to_static(model, input_spec=other_shape) elif arch_config["algorithm"] == "RobustScanner": - max_seq_len = arch_config["Head"]["max_seq_len"] + max_text_length = arch_config["Head"]["max_text_length"] other_shape = [ paddle.static.InputSpec( shape=[None, 3, 48, 160], dtype="float32"), @@ -89,7 +89,7 @@ def export_single_model(model, shape=[None, ], dtype="float32"), paddle.static.InputSpec( - shape=[None, max_seq_len], + shape=[None, max_text_length], dtype="int64") ] ] From c53a6e5137c231e4a738bcf99b2e805e9ad4cc97 Mon Sep 17 00:00:00 2001 From: smilelite Date: Mon, 11 Jul 2022 23:28:51 +0800 Subject: [PATCH 06/17] modified config --- .gitignore | 2 ++ configs/rec/rec_r31_robustscanner.yml | 2 +- .../rec_r31_robustscanner/rec_r31_robustscanner.yml | 8 ++++---- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index caf886a2b..70f136ccf 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,8 @@ __pycache__/ inference/ inference_results/ output/ +train_data +log *.DS_Store *.vs diff --git a/configs/rec/rec_r31_robustscanner.yml b/configs/rec/rec_r31_robustscanner.yml index 3e1d3009c..271ae8fd3 100644 --- a/configs/rec/rec_r31_robustscanner.yml +++ b/configs/rec/rec_r31_robustscanner.yml @@ -96,7 +96,7 @@ Eval: - SARLabelEncode: # Class handling label - RobustScannerRecResizeImg: image_shape: [3, 48, 48, 160] - max_seq_len: *max_text_length + max_text_length: *max_text_length width_downsample_ratio: 0.25 - KeepKeys: keep_keys: ['image', 'label', 'valid_ratio', 'word_positons'] # dataloader will return list in this order diff --git a/test_tipc/configs/rec_r31_robustscanner/rec_r31_robustscanner.yml b/test_tipc/configs/rec_r31_robustscanner/rec_r31_robustscanner.yml index a49f332aa..83db9461d 100644 --- a/test_tipc/configs/rec_r31_robustscanner/rec_r31_robustscanner.yml +++ b/test_tipc/configs/rec_r31_robustscanner/rec_r31_robustscanner.yml @@ -12,7 +12,7 @@ Global: checkpoints: save_inference_dir: use_visualdl: False - infer_img: + infer_img: ./inference/rec_inference # for data or label process character_dict_path: ppocr/utils/dict90.txt max_text_length: &max_text_length 40 @@ -49,7 +49,7 @@ Architecture: mask: True padding_idx: 92 encode_value: False - max_seq_len: 40 + max_text_length: *max_text_length Loss: name: SARLoss @@ -75,7 +75,7 @@ Train: - RobustScannerRecResizeImg: image_shape: [3, 48, 48, 160] # h:48 w:[48,160] width_downsample_ratio: 0.25 - max_seq_len: *max_text_length + max_text_length: *max_text_length - KeepKeys: keep_keys: ['image', 'label', 'valid_ratio', 'word_positons'] # dataloader will return list in this order loader: @@ -97,7 +97,7 @@ Eval: - SARLabelEncode: # Class handling label - RobustScannerRecResizeImg: image_shape: [3, 48, 48, 160] - max_seq_len: *max_text_length + max_text_length: *max_text_length width_downsample_ratio: 0.25 - KeepKeys: keep_keys: ['image', 'label', 'valid_ratio', 'word_positons'] # dataloader will return list in this order From e181622756ed1476c1a6edaedde7db55de1c1f5c Mon Sep 17 00:00:00 2001 From: smilelite Date: Wed, 13 Jul 2022 22:33:11 +0800 Subject: [PATCH 07/17] modified rb head and infer_benchmark --- ppocr/modeling/heads/rec_robustscanner_head.py | 3 --- test_tipc/configs/rec_r31_robustscanner/train_infer_python.txt | 2 ++ 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/ppocr/modeling/heads/rec_robustscanner_head.py b/ppocr/modeling/heads/rec_robustscanner_head.py index b9f8962d5..7956059ec 100644 --- a/ppocr/modeling/heads/rec_robustscanner_head.py +++ b/ppocr/modeling/heads/rec_robustscanner_head.py @@ -465,9 +465,6 @@ class PositionAttentionDecoder(BaseDecoder): _, c_feat, _, _ = feat.shape assert c_feat == self.dim_input - # the _get_position_index is not ok for export_model - # position_index = self._get_position_index(self.max_seq_len, n) - position_out_enc = self.position_aware_module(out_enc) query = self.embedding(position_index) diff --git a/test_tipc/configs/rec_r31_robustscanner/train_infer_python.txt b/test_tipc/configs/rec_r31_robustscanner/train_infer_python.txt index 2f58d8f3e..07498c9e8 100644 --- a/test_tipc/configs/rec_r31_robustscanner/train_infer_python.txt +++ b/test_tipc/configs/rec_r31_robustscanner/train_infer_python.txt @@ -49,4 +49,6 @@ inference:tools/infer/predict_rec.py --rec_char_dict_path=./ppocr/utils/dict90.t --save_log_path:./test/output/ --benchmark:True null:null +===========================infer_benchmark_params========================== +random_infer_input:[{float32,[3,48,160]}] From 7c5b47069e69b2d9d755dafe81a39b948e039c35 Mon Sep 17 00:00:00 2001 From: smilelite Date: Thu, 14 Jul 2022 23:11:20 +0800 Subject: [PATCH 08/17] modified config and resnet31 --- configs/rec/rec_r31_robustscanner.yml | 6 +-- ppocr/modeling/backbones/rec_resnet_31.py | 45 +++++++++++++++-------- 2 files changed, 33 insertions(+), 18 deletions(-) diff --git a/configs/rec/rec_r31_robustscanner.yml b/configs/rec/rec_r31_robustscanner.yml index 271ae8fd3..40d39aee3 100644 --- a/configs/rec/rec_r31_robustscanner.yml +++ b/configs/rec/rec_r31_robustscanner.yml @@ -39,6 +39,7 @@ Architecture: Transform: Backbone: name: ResNet31 + init_type: KaimingNormal Head: name: RobustScannerHead enc_outchannles: 128 @@ -64,9 +65,8 @@ Metric: Train: dataset: - name: SimpleDataSet - label_file_list: ['./train_data/train_list.txt'] - data_dir: ./train_data/ + name: LMDBDataSet + data_dir: ./train_data/data_lmdb_release/training/ transforms: - DecodeImage: # load image img_mode: BGR diff --git a/ppocr/modeling/backbones/rec_resnet_31.py b/ppocr/modeling/backbones/rec_resnet_31.py index b7990b67a..46dc37400 100644 --- a/ppocr/modeling/backbones/rec_resnet_31.py +++ b/ppocr/modeling/backbones/rec_resnet_31.py @@ -29,11 +29,7 @@ import numpy as np __all__ = ["ResNet31"] - -conv_weight_attr = nn.initializer.KaimingNormal() -bn_weight_attr = ParamAttr(initializer=nn.initializer.Uniform(), learning_rate=1) - -def conv3x3(in_channel, out_channel, stride=1): +def conv3x3(in_channel, out_channel, stride=1, conv_weight_attr=None): return nn.Conv2D( in_channel, out_channel, @@ -47,12 +43,14 @@ def conv3x3(in_channel, out_channel, stride=1): class BasicBlock(nn.Layer): expansion = 1 - def __init__(self, in_channels, channels, stride=1, downsample=False): + def __init__(self, in_channels, channels, stride=1, downsample=False, conv_weight_attr=None, bn_weight_attr=None): super().__init__() - self.conv1 = conv3x3(in_channels, channels, stride) + self.conv1 = conv3x3(in_channels, channels, stride, + conv_weight_attr=conv_weight_attr) self.bn1 = nn.BatchNorm2D(channels, weight_attr=bn_weight_attr) self.relu = nn.ReLU() - self.conv2 = conv3x3(channels, channels) + self.conv2 = conv3x3(channels, channels, + conv_weight_attr=conv_weight_attr) self.bn2 = nn.BatchNorm2D(channels, weight_attr=bn_weight_attr) self.downsample = downsample if downsample: @@ -96,6 +94,7 @@ class ResNet31(nn.Layer): channels (list[int]): List of out_channels of Conv2d layer. out_indices (None | Sequence[int]): Indices of output stages. last_stage_pool (bool): If True, add `MaxPool2d` layer to last stage. + init_type (None | str): the config to control the initialization. ''' def __init__(self, @@ -103,7 +102,8 @@ class ResNet31(nn.Layer): layers=[1, 2, 5, 3], channels=[64, 128, 256, 256, 512, 512, 512], out_indices=None, - last_stage_pool=False): + last_stage_pool=False, + init_type=None): super(ResNet31, self).__init__() assert isinstance(in_channels, int) assert isinstance(last_stage_pool, bool) @@ -111,6 +111,16 @@ class ResNet31(nn.Layer): self.out_indices = out_indices self.last_stage_pool = last_stage_pool + conv_weight_attr = None + bn_weight_attr = None + + if init_type is not None: + support_dict = ['KaimingNormal'] + assert init_type in support_dict, Exception( + "resnet31 only support {}".format(support_dict)) + conv_weight_attr = nn.initializer.KaimingNormal() + bn_weight_attr = ParamAttr(initializer=nn.initializer.Uniform(), learning_rate=1) + # conv 1 (Conv Conv) self.conv1_1 = nn.Conv2D( in_channels, channels[0], kernel_size=3, stride=1, padding=1, weight_attr=conv_weight_attr) @@ -125,7 +135,8 @@ class ResNet31(nn.Layer): # conv 2 (Max-pooling, Residual block, Conv) self.pool2 = nn.MaxPool2D( kernel_size=2, stride=2, padding=0, ceil_mode=True) - self.block2 = self._make_layer(channels[1], channels[2], layers[0]) + self.block2 = self._make_layer(channels[1], channels[2], layers[0], + conv_weight_attr=conv_weight_attr, bn_weight_attr=bn_weight_attr) self.conv2 = nn.Conv2D( channels[2], channels[2], kernel_size=3, stride=1, padding=1, weight_attr=conv_weight_attr) self.bn2 = nn.BatchNorm2D(channels[2], weight_attr=bn_weight_attr) @@ -134,7 +145,8 @@ class ResNet31(nn.Layer): # conv 3 (Max-pooling, Residual block, Conv) self.pool3 = nn.MaxPool2D( kernel_size=2, stride=2, padding=0, ceil_mode=True) - self.block3 = self._make_layer(channels[2], channels[3], layers[1]) + self.block3 = self._make_layer(channels[2], channels[3], layers[1], + conv_weight_attr=conv_weight_attr, bn_weight_attr=bn_weight_attr) self.conv3 = nn.Conv2D( channels[3], channels[3], kernel_size=3, stride=1, padding=1, weight_attr=conv_weight_attr) self.bn3 = nn.BatchNorm2D(channels[3], weight_attr=bn_weight_attr) @@ -143,7 +155,8 @@ class ResNet31(nn.Layer): # conv 4 (Max-pooling, Residual block, Conv) self.pool4 = nn.MaxPool2D( kernel_size=(2, 1), stride=(2, 1), padding=0, ceil_mode=True) - self.block4 = self._make_layer(channels[3], channels[4], layers[2]) + self.block4 = self._make_layer(channels[3], channels[4], layers[2], + conv_weight_attr=conv_weight_attr, bn_weight_attr=bn_weight_attr) self.conv4 = nn.Conv2D( channels[4], channels[4], kernel_size=3, stride=1, padding=1, weight_attr=conv_weight_attr) self.bn4 = nn.BatchNorm2D(channels[4], weight_attr=bn_weight_attr) @@ -154,7 +167,8 @@ class ResNet31(nn.Layer): if self.last_stage_pool: self.pool5 = nn.MaxPool2D( kernel_size=2, stride=2, padding=0, ceil_mode=True) - self.block5 = self._make_layer(channels[4], channels[5], layers[3]) + self.block5 = self._make_layer(channels[4], channels[5], layers[3], + conv_weight_attr=conv_weight_attr, bn_weight_attr=bn_weight_attr) self.conv5 = nn.Conv2D( channels[5], channels[5], kernel_size=3, stride=1, padding=1, weight_attr=conv_weight_attr) self.bn5 = nn.BatchNorm2D(channels[5], weight_attr=bn_weight_attr) @@ -162,7 +176,7 @@ class ResNet31(nn.Layer): self.out_channels = channels[-1] - def _make_layer(self, input_channels, output_channels, blocks): + def _make_layer(self, input_channels, output_channels, blocks, conv_weight_attr=None, bn_weight_attr=None): layers = [] for _ in range(blocks): downsample = None @@ -179,7 +193,8 @@ class ResNet31(nn.Layer): layers.append( BasicBlock( - input_channels, output_channels, downsample=downsample)) + input_channels, output_channels, downsample=downsample, + conv_weight_attr=conv_weight_attr, bn_weight_attr=bn_weight_attr)) input_channels = output_channels return nn.Sequential(*layers) From a328368a575c8b41d0c9efbb62894193d5a40009 Mon Sep 17 00:00:00 2001 From: smilelite Date: Thu, 14 Jul 2022 23:16:14 +0800 Subject: [PATCH 09/17] modified config --- .../configs/rec_r31_robustscanner/rec_r31_robustscanner.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/test_tipc/configs/rec_r31_robustscanner/rec_r31_robustscanner.yml b/test_tipc/configs/rec_r31_robustscanner/rec_r31_robustscanner.yml index 83db9461d..b5466d447 100644 --- a/test_tipc/configs/rec_r31_robustscanner/rec_r31_robustscanner.yml +++ b/test_tipc/configs/rec_r31_robustscanner/rec_r31_robustscanner.yml @@ -39,6 +39,7 @@ Architecture: Transform: Backbone: name: ResNet31 + init_type: KaimingNormal Head: name: RobustScannerHead enc_outchannles: 128 From c5e396576cd006ff6009b920fc11726ddda02e36 Mon Sep 17 00:00:00 2001 From: smilelite Date: Mon, 1 Aug 2022 21:42:25 +0800 Subject: [PATCH 10/17] modify algorithm_overview.md 20220801 --- doc/doc_ch/algorithm_overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/doc_ch/algorithm_overview.md b/doc/doc_ch/algorithm_overview.md index 5d6153924..43c046c5c 100755 --- a/doc/doc_ch/algorithm_overview.md +++ b/doc/doc_ch/algorithm_overview.md @@ -92,7 +92,7 @@ |ViTSTR|ViTSTR| 79.82% | rec_vitstr_none_ce | [训练模型](https://paddleocr.bj.bcebos.com/rec_vitstr_none_ce_train.tar) | |ABINet|Resnet45| 90.75% | rec_r45_abinet | [训练模型](https://paddleocr.bj.bcebos.com/rec_r45_abinet_train.tar) | |SPIN|ResNet32| 90.00% | rec_r32_gaspin_bilstm_att | coming soon | -|RobustScanner|ResNet31V2| 87.77% | rec_r31_robustscanner | coming soon | +|RobustScanner|ResNet31| 87.77% | rec_r31_robustscanner | coming soon | From 3337dee65a10252b8c978dbe233b45d9f74c5555 Mon Sep 17 00:00:00 2001 From: smilelite Date: Mon, 1 Aug 2022 22:09:12 +0800 Subject: [PATCH 11/17] fixed rec_img_aug 20220801 --- configs/rec/rec_r31_robustscanner.yml | 6 +++-- ppocr/data/imaug/rec_img_aug.py | 36 +++++++++++++-------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/configs/rec/rec_r31_robustscanner.yml b/configs/rec/rec_r31_robustscanner.yml index 40d39aee3..6dd35394e 100644 --- a/configs/rec/rec_r31_robustscanner.yml +++ b/configs/rec/rec_r31_robustscanner.yml @@ -66,7 +66,8 @@ Metric: Train: dataset: name: LMDBDataSet - data_dir: ./train_data/data_lmdb_release/training/ + # data_dir: ./train_data/data_lmdb_release/training/ + data_dir: I:/dataset/OCR/STR/evaluation/evaluation/CUTE80 transforms: - DecodeImage: # load image img_mode: BGR @@ -88,7 +89,8 @@ Train: Eval: dataset: name: LMDBDataSet - data_dir: ./train_data/data_lmdb_release/evaluation/ + # data_dir: ./train_data/data_lmdb_release/evaluation/ + data_dir: I:/dataset/OCR/STR/evaluation/evaluation/CUTE80 transforms: - DecodeImage: # load image img_mode: BGR diff --git a/ppocr/data/imaug/rec_img_aug.py b/ppocr/data/imaug/rec_img_aug.py index a5620f84f..8b2309f44 100644 --- a/ppocr/data/imaug/rec_img_aug.py +++ b/ppocr/data/imaug/rec_img_aug.py @@ -259,24 +259,6 @@ class PRENResizeImg(object): data['image'] = resized_img.astype(np.float32) return data -<<<<<<< HEAD -class RobustScannerRecResizeImg(object): - def __init__(self, image_shape, max_text_length, width_downsample_ratio=0.25, **kwargs): - self.image_shape = image_shape - self.width_downsample_ratio = width_downsample_ratio - self.max_text_length = max_text_length - - def __call__(self, data): - img = data['image'] - norm_img, resize_shape, pad_shape, valid_ratio = resize_norm_img_sar( - img, self.image_shape, self.width_downsample_ratio) - word_positons = np.array(range(0, self.max_text_length)).astype('int64') - data['image'] = norm_img - data['resized_shape'] = resize_shape - data['pad_shape'] = pad_shape - data['valid_ratio'] = valid_ratio - data['word_positons'] = word_positons -======= class SPINRecResizeImg(object): def __init__(self, image_shape, @@ -319,7 +301,6 @@ class SPINRecResizeImg(object): img -= mean img *= stdinv data['image'] = img ->>>>>>> 1696b36bdb4152138ed5cb08a357df8fe03dc067 return data class GrayRecResizeImg(object): @@ -399,6 +380,23 @@ class SVTRRecResizeImg(object): data['valid_ratio'] = valid_ratio return data +class RobustScannerRecResizeImg(object): + def __init__(self, image_shape, max_text_length, width_downsample_ratio=0.25, **kwargs): + self.image_shape = image_shape + self.width_downsample_ratio = width_downsample_ratio + self.max_text_length = max_text_length + + def __call__(self, data): + img = data['image'] + norm_img, resize_shape, pad_shape, valid_ratio = resize_norm_img_sar( + img, self.image_shape, self.width_downsample_ratio) + word_positons = np.array(range(0, self.max_text_length)).astype('int64') + data['image'] = norm_img + data['resized_shape'] = resize_shape + data['pad_shape'] = pad_shape + data['valid_ratio'] = valid_ratio + data['word_positons'] = word_positons + return data def resize_norm_img_sar(img, image_shape, width_downsample_ratio=0.25): imgC, imgH, imgW_min, imgW_max = image_shape From b324c727dfb8dde5ee060476f917777ea239281f Mon Sep 17 00:00:00 2001 From: smilelite Date: Mon, 1 Aug 2022 22:20:34 +0800 Subject: [PATCH 12/17] fixed gitignore 20220801 --- .gitignore | 6 ------ configs/rec/rec_r31_robustscanner.yml | 6 ++---- doc/doc_en/algorithm_rec_robustscanner_en.md | 2 +- 3 files changed, 3 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index ed9bc452f..3300be325 100644 --- a/.gitignore +++ b/.gitignore @@ -10,14 +10,8 @@ __pycache__/ inference/ inference_results/ output/ -<<<<<<< HEAD -train_data -log - -======= train_data/ log/ ->>>>>>> 1696b36bdb4152138ed5cb08a357df8fe03dc067 *.DS_Store *.vs *.user diff --git a/configs/rec/rec_r31_robustscanner.yml b/configs/rec/rec_r31_robustscanner.yml index 6dd35394e..40d39aee3 100644 --- a/configs/rec/rec_r31_robustscanner.yml +++ b/configs/rec/rec_r31_robustscanner.yml @@ -66,8 +66,7 @@ Metric: Train: dataset: name: LMDBDataSet - # data_dir: ./train_data/data_lmdb_release/training/ - data_dir: I:/dataset/OCR/STR/evaluation/evaluation/CUTE80 + data_dir: ./train_data/data_lmdb_release/training/ transforms: - DecodeImage: # load image img_mode: BGR @@ -89,8 +88,7 @@ Train: Eval: dataset: name: LMDBDataSet - # data_dir: ./train_data/data_lmdb_release/evaluation/ - data_dir: I:/dataset/OCR/STR/evaluation/evaluation/CUTE80 + data_dir: ./train_data/data_lmdb_release/evaluation/ transforms: - DecodeImage: # load image img_mode: BGR diff --git a/doc/doc_en/algorithm_rec_robustscanner_en.md b/doc/doc_en/algorithm_rec_robustscanner_en.md index a5454476d..a324a6d54 100644 --- a/doc/doc_en/algorithm_rec_robustscanner_en.md +++ b/doc/doc_en/algorithm_rec_robustscanner_en.md @@ -26,7 +26,7 @@ Using MJSynth and SynthText two text recognition datasets for training, and eval |Model|Backbone|config|Acc|Download link| | --- | --- | --- | --- | --- | -|RobustScanner|ResNet31V2|[rec_r31_robustscanner.yml](../../configs/rec/rec_r31_robustscanner.yml)|87.77%|coming soon| +|RobustScanner|ResNet31|[rec_r31_robustscanner.yml](../../configs/rec/rec_r31_robustscanner.yml)|87.77%|coming soon| Note:In addition to using the two text recognition datasets MJSynth and SynthText, [SynthAdd](https://pan.baidu.com/share/init?surl=uV0LtoNmcxbO-0YA7Ch4dg) data (extraction code: 627x), and some real data are used in training, the specific data details can refer to the paper. From 13c8569dfedb9f468adc07a077fcceb27f8a2466 Mon Sep 17 00:00:00 2001 From: WenmuZhou <572459439@qq.com> Date: Wed, 17 Aug 2022 09:16:39 +0000 Subject: [PATCH 13/17] fix link --- doc/doc_ch/algorithm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/doc_ch/algorithm.md b/doc/doc_ch/algorithm.md index d50a5aa4e..c91fc783f 100644 --- a/doc/doc_ch/algorithm.md +++ b/doc/doc_ch/algorithm.md @@ -5,7 +5,7 @@ PaddleOCR将**持续新增**支持OCR领域前沿算法与模型,已支持的 - [文本检测算法](./algorithm_overview.md#11-%E6%96%87%E6%9C%AC%E6%A3%80%E6%B5%8B%E7%AE%97%E6%B3%95) - [文本识别算法](./algorithm_overview.md#12-%E6%96%87%E6%9C%AC%E8%AF%86%E5%88%AB%E7%AE%97%E6%B3%95) - [端到端算法](./algorithm_overview.md#2-%E6%96%87%E6%9C%AC%E8%AF%86%E5%88%AB%E7%AE%97%E6%B3%95) -- [表格识别]](./algorithm_overview.md#3-%E8%A1%A8%E6%A0%BC%E8%AF%86%E5%88%AB%E7%AE%97%E6%B3%95) +- [表格识别](./algorithm_overview.md#3-%E8%A1%A8%E6%A0%BC%E8%AF%86%E5%88%AB%E7%AE%97%E6%B3%95) **欢迎广大开发者合作共建,贡献更多算法,合入有奖🎁!具体可查看[社区常规赛](https://github.com/PaddlePaddle/PaddleOCR/issues/4982)。** From f68571b2f6b9d73eef93f12165f427ae9b244a7b Mon Sep 17 00:00:00 2001 From: littletomatodonkey Date: Wed, 17 Aug 2022 23:24:47 +0800 Subject: [PATCH 14/17] rm dyg shape for trt (#7221) --- tools/infer/utility.py | 85 ++---------------------------------------- 1 file changed, 3 insertions(+), 82 deletions(-) diff --git a/tools/infer/utility.py b/tools/infer/utility.py index 81d0196cc..1eebc73f3 100644 --- a/tools/infer/utility.py +++ b/tools/infer/utility.py @@ -231,89 +231,10 @@ def create_predictor(args, mode, logger): ) config.enable_tuned_tensorrt_dynamic_shape( args.shape_info_filename, True) - - use_dynamic_shape = True - if mode == "det": - min_input_shape = { - "x": [1, 3, 50, 50], - "conv2d_92.tmp_0": [1, 120, 20, 20], - "conv2d_91.tmp_0": [1, 24, 10, 10], - "conv2d_59.tmp_0": [1, 96, 20, 20], - "nearest_interp_v2_1.tmp_0": [1, 256, 10, 10], - "nearest_interp_v2_2.tmp_0": [1, 256, 20, 20], - "conv2d_124.tmp_0": [1, 256, 20, 20], - "nearest_interp_v2_3.tmp_0": [1, 64, 20, 20], - "nearest_interp_v2_4.tmp_0": [1, 64, 20, 20], - "nearest_interp_v2_5.tmp_0": [1, 64, 20, 20], - "elementwise_add_7": [1, 56, 2, 2], - "nearest_interp_v2_0.tmp_0": [1, 256, 2, 2] - } - max_input_shape = { - "x": [1, 3, 1536, 1536], - "conv2d_92.tmp_0": [1, 120, 400, 400], - "conv2d_91.tmp_0": [1, 24, 200, 200], - "conv2d_59.tmp_0": [1, 96, 400, 400], - "nearest_interp_v2_1.tmp_0": [1, 256, 200, 200], - "conv2d_124.tmp_0": [1, 256, 400, 400], - "nearest_interp_v2_2.tmp_0": [1, 256, 400, 400], - "nearest_interp_v2_3.tmp_0": [1, 64, 400, 400], - "nearest_interp_v2_4.tmp_0": [1, 64, 400, 400], - "nearest_interp_v2_5.tmp_0": [1, 64, 400, 400], - "elementwise_add_7": [1, 56, 400, 400], - "nearest_interp_v2_0.tmp_0": [1, 256, 400, 400] - } - opt_input_shape = { - "x": [1, 3, 640, 640], - "conv2d_92.tmp_0": [1, 120, 160, 160], - "conv2d_91.tmp_0": [1, 24, 80, 80], - "conv2d_59.tmp_0": [1, 96, 160, 160], - "nearest_interp_v2_1.tmp_0": [1, 256, 80, 80], - "nearest_interp_v2_2.tmp_0": [1, 256, 160, 160], - "conv2d_124.tmp_0": [1, 256, 160, 160], - "nearest_interp_v2_3.tmp_0": [1, 64, 160, 160], - "nearest_interp_v2_4.tmp_0": [1, 64, 160, 160], - "nearest_interp_v2_5.tmp_0": [1, 64, 160, 160], - "elementwise_add_7": [1, 56, 40, 40], - "nearest_interp_v2_0.tmp_0": [1, 256, 40, 40] - } - min_pact_shape = { - "nearest_interp_v2_26.tmp_0": [1, 256, 20, 20], - "nearest_interp_v2_27.tmp_0": [1, 64, 20, 20], - "nearest_interp_v2_28.tmp_0": [1, 64, 20, 20], - "nearest_interp_v2_29.tmp_0": [1, 64, 20, 20] - } - max_pact_shape = { - "nearest_interp_v2_26.tmp_0": [1, 256, 400, 400], - "nearest_interp_v2_27.tmp_0": [1, 64, 400, 400], - "nearest_interp_v2_28.tmp_0": [1, 64, 400, 400], - "nearest_interp_v2_29.tmp_0": [1, 64, 400, 400] - } - opt_pact_shape = { - "nearest_interp_v2_26.tmp_0": [1, 256, 160, 160], - "nearest_interp_v2_27.tmp_0": [1, 64, 160, 160], - "nearest_interp_v2_28.tmp_0": [1, 64, 160, 160], - "nearest_interp_v2_29.tmp_0": [1, 64, 160, 160] - } - min_input_shape.update(min_pact_shape) - max_input_shape.update(max_pact_shape) - opt_input_shape.update(opt_pact_shape) - elif mode == "rec": - if args.rec_algorithm not in ["CRNN", "SVTR_LCNet"]: - use_dynamic_shape = False - imgH = int(args.rec_image_shape.split(',')[-2]) - min_input_shape = {"x": [1, 3, imgH, 10]} - max_input_shape = {"x": [args.rec_batch_num, 3, imgH, 2304]} - opt_input_shape = {"x": [args.rec_batch_num, 3, imgH, 320]} - config.exp_disable_tensorrt_ops(["transpose2"]) - elif mode == "cls": - min_input_shape = {"x": [1, 3, 48, 10]} - max_input_shape = {"x": [args.rec_batch_num, 3, 48, 1024]} - opt_input_shape = {"x": [args.rec_batch_num, 3, 48, 320]} else: - use_dynamic_shape = False - if use_dynamic_shape: - config.set_trt_dynamic_shape_info( - min_input_shape, max_input_shape, opt_input_shape) + logger.info( + f"when using tensorrt, dynamic shape is a suggested option, you can use '--shape_info_filename=shape.txt' for offline dygnamic shape tuning" + ) elif args.use_xpu: config.enable_xpu(10 * 1024 * 1024) From 3d3d0d31700b6c580ee1194dc6ba6feb245f1684 Mon Sep 17 00:00:00 2001 From: WenmuZhou <572459439@qq.com> Date: Thu, 18 Aug 2022 03:07:46 +0000 Subject: [PATCH 15/17] fix vis error --- ppstructure/table/predict_structure.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ppstructure/table/predict_structure.py b/ppstructure/table/predict_structure.py index 7198fb2bc..a580947aa 100755 --- a/ppstructure/table/predict_structure.py +++ b/ppstructure/table/predict_structure.py @@ -148,7 +148,7 @@ def main(args): bbox_list_str)) if len(bbox_list) > 0 and len(bbox_list[0]) == 4: - img = draw_rectangle(image_file, pred_res['cell_bbox']) + img = draw_rectangle(image_file, bbox_list) else: img = utility.draw_boxes(img, bbox_list) img_save_path = os.path.join(args.output, From f2c986d625941a0338333d86007a7fae02788f0e Mon Sep 17 00:00:00 2001 From: WenmuZhou <572459439@qq.com> Date: Thu, 18 Aug 2022 04:01:36 +0000 Subject: [PATCH 16/17] update metric --- ppstructure/table/README.md | 4 ++-- ppstructure/table/README_ch.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ppstructure/table/README.md b/ppstructure/table/README.md index f4eff868d..3732a89c5 100644 --- a/ppstructure/table/README.md +++ b/ppstructure/table/README.md @@ -33,8 +33,8 @@ We evaluated the algorithm on the PubTabNet[1] eval dataset, and the |Method|Acc|[TEDS(Tree-Edit-Distance-based Similarity)](https://github.com/ibm-aur-nlp/PubTabNet/tree/master/src)|Speed| | --- | --- | --- | ---| | EDD[2] |x| 88.3 |x| -| TableRec-RARE(ours) |73.8%| 93.32 |1550ms| -| SLANet(ours) | 76.2%| 94.98 |766ms| +| TableRec-RARE(ours) |73.8%| 95.3% |1550ms| +| SLANet(ours) | 76.2%| 95.85% |766ms| The performance indicators are explained as follows: - Acc: The accuracy of the table structure in each image, a wrong token is considered an error. diff --git a/ppstructure/table/README_ch.md b/ppstructure/table/README_ch.md index badabc799..cc73f8bce 100644 --- a/ppstructure/table/README_ch.md +++ b/ppstructure/table/README_ch.md @@ -38,9 +38,9 @@ |算法|Acc|[TEDS(Tree-Edit-Distance-based Similarity)](https://github.com/ibm-aur-nlp/PubTabNet/tree/master/src)|Speed| | --- | --- | --- | ---| -| EDD[2] |x| 88.3 |x| -| TableRec-RARE(ours) |73.8%| 93.32 |1550ms| -| SLANet(ours) | 76.2%| 94.98 |766ms| +| EDD[2] |x| 88.3% |x| +| TableRec-RARE(ours) |73.8%| 95.3% |1550ms| +| SLANet(ours) | 76.2%| 95.85% |766ms| 性能指标解释如下: - Acc: 模型对每张图像里表格结构的识别准确率,错一个token就算错误。 From bfff01db7e3553fd5f4edabee122a5ee352379fd Mon Sep 17 00:00:00 2001 From: user1018 <614803115@qq.com> Date: Thu, 18 Aug 2022 19:43:03 +0800 Subject: [PATCH 17/17] Upstream/layout update (#7220) * update layout * update layout * update layout * update layout * update layout --- .../dict/layout_dict/layout_cdla_dict.txt | 10 + .../layout_dict/layout_publaynet_dict.txt | 5 + .../dict/layout_dict/layout_table_dict.txt | 1 + ppstructure/docs/layout/layout.png | Bin 0 -> 182857 bytes ppstructure/docs/layout/layout_res.jpg | Bin 0 -> 461510 bytes ppstructure/layout/README.md | 560 ++++++++++++++---- ppstructure/layout/README_ch.md | 133 ----- ppstructure/layout/layout_in_ocr.md | 469 +++++++++++++++ .../layout/train_layoutparser_model.md | 174 ------ .../layout/train_layoutparser_model_ch.md | 176 ------ ppstructure/utility.py | 2 +- 11 files changed, 937 insertions(+), 593 deletions(-) create mode 100644 ppocr/utils/dict/layout_dict/layout_cdla_dict.txt create mode 100644 ppocr/utils/dict/layout_dict/layout_publaynet_dict.txt create mode 100644 ppocr/utils/dict/layout_dict/layout_table_dict.txt create mode 100644 ppstructure/docs/layout/layout.png create mode 100644 ppstructure/docs/layout/layout_res.jpg delete mode 100644 ppstructure/layout/README_ch.md create mode 100644 ppstructure/layout/layout_in_ocr.md delete mode 100644 ppstructure/layout/train_layoutparser_model.md delete mode 100644 ppstructure/layout/train_layoutparser_model_ch.md diff --git a/ppocr/utils/dict/layout_dict/layout_cdla_dict.txt b/ppocr/utils/dict/layout_dict/layout_cdla_dict.txt new file mode 100644 index 000000000..8be0f4860 --- /dev/null +++ b/ppocr/utils/dict/layout_dict/layout_cdla_dict.txt @@ -0,0 +1,10 @@ +text +title +figure +figure_caption +table +table_caption +header +footer +reference +equation \ No newline at end of file diff --git a/ppocr/utils/dict/layout_dict/layout_publaynet_dict.txt b/ppocr/utils/dict/layout_dict/layout_publaynet_dict.txt new file mode 100644 index 000000000..ca6acf4ee --- /dev/null +++ b/ppocr/utils/dict/layout_dict/layout_publaynet_dict.txt @@ -0,0 +1,5 @@ +text +title +list +table +figure \ No newline at end of file diff --git a/ppocr/utils/dict/layout_dict/layout_table_dict.txt b/ppocr/utils/dict/layout_dict/layout_table_dict.txt new file mode 100644 index 000000000..faea15ea0 --- /dev/null +++ b/ppocr/utils/dict/layout_dict/layout_table_dict.txt @@ -0,0 +1 @@ +table \ No newline at end of file diff --git a/ppstructure/docs/layout/layout.png b/ppstructure/docs/layout/layout.png new file mode 100644 index 0000000000000000000000000000000000000000..da9640e245e34659771353e328bf97da129bd622 GIT binary patch literal 182857 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%0AAhoYWtybj* zsa5mJiEXBn553KD;gD0!KLR=+d?e1+@DJ@b33M zrrID(S09P&dWNMM^O+FQ584}FxF)}TwG8ZNW5%7h%4ammMVyTP15nG^?naOWy}KIe z=`YJ3k+d>ODP}Ho71TOiw0FoTd-c%**&FCkm!e9TG}B!hs(~nRY;XfI$JAD)rXC7u zxRb*aw>Xn!G1=NeSEoD;7V}=< zv1UtsmzN~lpf{c|V+E@t?>bL_HLeSdJXOiC$!eRW>zZ*J$Wl4jpL0&k2c1zaZG3|* z;fwT1WAH#_Q>Z5N+U@f`f7QV&A(-KNQe#GLX}sa2u@qI_fmBjN=Okhr;saZ?ze43 zOub5E#jJ~Bk?m+56ZILU^hu+WCA7s8x3WycXLJoY%ETZ1%Pgu3qD}j{Il6_~(BWQF z?22t7aW~N~00Ab07*BL=BHG+#rP@*@7gioVXMy}Fp8CeV9bcfpRvqt*(YK@IuKv2w z3Pk?3l|9S9rH=}OxRdrHEz;IMjvHfWsSb>eb1ds{c&Nu!ID?Qi(W*P=~Y4IifI%F z`ayaTukgeMQXSFHUCFkJl#Oup?3pn;%Uj)M?)ubFN}=9rG0d9MIMQba+z8z&wzY3z z)655aT=Wf#!X4bC*x#n{yj@HN7Z8$xY6H;Y$ek{=^IT5wTY+Pkx@K zfKY4d)OK2JoDFLMePBhT2T8sf7}v;6cNL7-DIO79$BsX{a3%90F}6AkzhK>e*lWX^%?6GH&G z^J|W_NO}o7(*OKDxb9BL@!0Mr_We!hCRU>@& zc4Ckm6ytky&tUcDz&dbu#=Q`qEWiFydQN1ots&qoHhRk2wE-c-hx&COtO;r>4o$ka zfV_|=As)QEQ2E7;sC+gOv`qqBuh@ZRnPD6E%rkHQ?3s)@_QG`yGz_bgHZYojZSvc) z$YRvkj7RDZNqN+MC3-Gz+UcrU0;wtUYhF250mHTSRzAbRR+>s882{Q?CTkTyHpcQL z4e$i$wj7B#Wb0a;Ij@JQ?B@3bqZ$M~uJ)HME5qcEWs6jLRy?_1eE`P(U#$IATw8D0 z{SBr-f#Rh_gL`pzD-1RNVY}xe>!UR)lMsl?PE#5k9;&ZvX zwIj$y0Vy71ZRp6~#BihHGr6O(*6TGeYoOPVWfuLb8*MpHc z4u%Fut+hWBInXAXU$p;CN4r20(|Q24NK6kFsWzQM-zE}-E2Dt><&lwxZn8x2#vbIhm|EBIX!|1tQF`7AHK-jk; z&Exo)85&jV{ocpHy%dC>)9h}&l=je6-B9K4V*i4ah04d;Z|55a)3YIhpAYu`)>5wa z|Gnz=(1}7)lp>bD?6|Lz?c5JMJ~|%O_s(LpCVi#^f&*e|S6Qca$#glx*yKK(b;jFr zzY=>09uDH}h4plo$>tM-tJGERfMS&qE#aT3WbEmbB#8PWh{?$GRq<})%06*%7Nq%*amBkyS zzyh42cKpxFXP2lI#=tm?r4m0gwi*16`$rQ8P`UGmezpuG2`HMl$NWi|pk_qguny&A zN4^3-nmozRmHlqfjPgr1HZw9cF*lK~b>blz@{GXfm}Cr_gdT|Qd7Kb%6ciw_S02^I z9jcBEdNBV7Fcb&b%UP9q?Ra6$fv0t;!epPuOm7-#Z<^s+_&p)dMZ&<-;NHI;DU@}aj-`z>nOtfWHD^ql{V_kM3H%gH^3>*n2;NSzXp#ES zFdxWVV=_+D!ctzYPSE?~vLQz)y+n^y+L|{qC_x}LA+4WY)tLDqar_@YLcnKRYrQm< ztz<43_$(3SJB?$Zja)D?@08lT&`j;`^)rl>C{c}4#>v$ReG9>80#37CYTQhE{TFH5 z0DR}NATkYQPgCv-A-EeKd!hIX)trJ+`26!W!9rn~aPV9XH-U8g{Oxd^6CQVw&1<`4 z<+B%4s`8@^ksu8Fq&uDqBr5GdKJ$zMv5ezkpuYM9a*^2d18|qIAJsK}%yn_`B;yjZ zZ(=qK7U<#B80^t!7c>2GC_n6j((+*Xw5#^ZT5)ROdo{%x_wdz5wI6>9Ip+jz=^x(_ z^LpFTeWFlJEishvLmiaUbJ?YL#Z7h>ZS7g?pmwt{R`iYQFpt|#XI8#PnDx~MG`Upn zE!1zShng5A@E^Ne2FVPdTD(<~2>vuSH8%{rkhRv~wj@25-AQ=7wob%8| z)=08QQrCV-9as$j^Gd$|ftg6b#oU5z$-r98GDa$$Y8zt8DGolcRW-|S#+;Nu- z?C=6PZ$eC8zbI*3rbLpGbqJ2mVLWu-G_fpg=*lbOi>E!a*my!m^40zG`VWvw8x-6x z-XjjVzY9k&RwCAR$zo+%F1elzeXQ`8|5!uUsI>aOtx?j6`lfxiJ*p(H3#dbho?)I( zIPm`fXO}R_%bm+1P5jnO?;g5TFvzz%a=WE>#kJUg3%BuzufAVwPjug~XF16tb4@MN z=KA~EpJ2zuJK_DFjFujQ-)ui(hpq==*$UDAKfDM-gI!Si7T#R2GaQzT$tAaWHL_ZhiQ=gI^*AE4c+>U5E`X%~)x{>53Up%4%9d8%OJvGkDY!^z zPyv3=C;cEr?$Gkwfy8s%H5AzXmtsO zh{juo>sHid$XKoU99V$-HuGLH)*N6(A2nD?u;j-j#i_PvZ;|2EO1=Ch9vgx#S6O`j;_-`j_~DOtb_juq#5LCGOnd(2R6O z6&hvS5ko8iwqc9MiUoL930(EZxtb<>E@EXFcOo`m*J{5NTPhKeXoG5?qp&f_gX9vo z4-hR|db@;%5V^5xx$v9~DBL}YyQr%zPCsd)UNK+qrIj-;6}04PqH5}2etpT#jgRyhJ>BcSv>@B6a64Xjvsz6Abq zF~9q#yw|Rp4axIH*X+PwMDnZoNd^5Z&d?8ENr$x2^TI+{Gk0eO+n8d3NpJgslT;U# z4C0L?cvS+tjQiMTBBXu59WT8%6n{BRf)vpF^(V$XCn| z0h+Mq%NQXF>HaFv3EH_$Yoba?rH&QH}=Dq7edbYxFcRRB%2Lo;Y{8;ycZl%DBNJtP!<$F8_nd|yNbV=8uEyAFHMn}o?x7G^c)g#6%W*j-auwo8 zQi4^Gu0qjIl2`z^0RgjGs0D^UFYy04op=6c6uo-5{LP!~N78WI4cg)E2)PZ_S zJCO%dmWmJCV@8UvM&7n7;kQZi<+^DE~DXYs^bcfw>drF4Hk{4THkN}vF*9qWs`dfjA?BC_GF z$m<#W(%v|({hY(Upng2(sVik0V!&IxWE;z!o@0wFDl~8bZBuZB&75~PF(C;!rN8W0 zTrq!J%}ssZ#I>)jng8%jq~TT?&2;}5W5n)Q^id%h_#ilhGf$EVX z#&_$yx{}+y4aMuMNm2 zg5a~Be<*yAuqk0$GHKw6?^0%~Iae#hy(ETjZR>uud(MIwlE@2{_qXq#9w3BtiSE0*bF&f3*})$FdDoLwns!#OwCn$lsFH^SmB}> zQUGd(usrtO(ElR0$K8tEL~n#`Hte=68w9B1Ol>$TE(xd15k<=G$WC&wF&o(#p}iLs zn)%z?lo`<+{x%I#Y|@=UZGx}j#+|>ec2`l<8Z~vz7-2+~xS|hJgmV@(q0~#IzDoip zTD)7H2z1kh@_8ZZcQ?PU9&m+P8e)FvDJo}r=(}JgOHkntSD?A#qEaO-C`$0}7K!xw z_Id8Z7@O~{4v9h`nWhyFy>pD1(nh4_(pGui@T0HHvxRUBlQSMCFTvzNcC_J=q^avS zjzB1DI`_ed;iSu+(jvpLVQiBs)S$F=_XdzF3CKc6Jy?I`D1wcb;# zlk?{lI}FLZYSw&<5MJy5yj1fU4$?g0+6QBJJ+yske5V{XbTZRz!W&_1_}vWy%^p#? zJ;_Gn>R{0n5_f!_Vx3;XG%PNsGJsYhnZn@_;Y8v`tZ3l?2kl%G2~Bqw#1y5fsdQED z8Et(^JI8me$8WcP!=Wg*A4x8y;7P-b0M-={uQ;2(UD7X7JAGV3{Xx@nHkr;~j7Sxr zNOOSS94|K$+TL+08<;UY7kIO|nOw||s0LDUB#^O4fOq~pZSLcR^ z1*nr&=$VUSl!0;?OnlqP61ul_D{F&2?-B#fHHS=wYmlW*9+;J0VCJ6V;(VY{zCZ_Y z;R^>$oDk2bw6=Y8T~ov!szX*j^6>Wdj~$9T-~Hu%u`yoEonA_ro>tVf-Bk%*VVLm! zZtKkq5aM9i^+kMCo6CdxPfG?CG=)Yi9{1Dha5nb9GQ*=Lg2VO%!@DoA9%zYlL?tB7 zD0NjW&)kVf1;F+Eqlxo0g;dr;S`O8_Yun0xm;yUQ@=!Pjad-BnE?t-juW7XQwzR1* z=Zj`_YBC5iFr~*~&~XG-i2Z$welz(0w}}0e1x)+#wCXKPyCqBv4=U0C%{uT6b8X+I zTArHTWw>6KcPdxoNoIO6Gg1Bb1xH&v-Vxxa;kaKKrA@sQMl{hz_OL^|`YA6XeYoUC z%=rKOiRN;hl5y#1&qH%dS;&yFm;3zFO2g1k`ppgxHG+2JG-%wm)z4tXOmS2%R`lZa z2ag5^^`Y|@zlk9jmN#`gMDx`%gOHy+H04BwZW4k$e~109f|ph^R-cwfHFK7hWEk!P z-2Jibv|eEWKd1cJPK?Sg_)+kGYw3Q15hF}ZKpQcfk}S)qe5|!7r$fpoJ58T0GqAUL^eoVEJ;O z5EP8CK;qEDgNJjz{&OpUlaDf&=m>4+OsYQ*jvhRu)N75h+2RAW%()O%! zWP{lHxb|8=;h$Y@{sXX8+M9O@^qZHs?pvlM6V~dS4I&u`Pztm3$(LEwCVHlmtuB)O zxfLn6ZXWCadNOMYNQij)+StI;{F3SX^%1$9*p1c6yL#lh4EY5C7n09tJZmr^BZKvT zr(Wds&DPb?a$@uUdFb;Bfjm6t{qR(Z%~kh!VHGCO)7a{-A$}LFnUn)~i_x3E*sL|y zh&Ut;7u;}QNrX(icLpDtuQ1X6tZt&hUG*je8 z0oi$Ry)U94bt$bjHk)XvalE-3M-w=Ue}LGukl&swEx+@%LV0Pim{A^PAL+mU0j?Z2 z77Y7oP{#AHkS7Cp66!&2Qxa$fCH)*vq(YcyWnG)V31;}PHz{GeI(c<_*ivveg}9{N zp5I3lVYl%;grS!kU#`siZgGg-|1SrBLCLX`)$3Z2pvy!o5BHp1I-XeLUolGIKo29k z59Y&)$BA`cE7(2n!u9ch7icQ4%2STrwZ2e8d!hC5%X>PTg;?o!wI)JDv>4CRW97Zl ze}FXU(;q#=4XDi>x3i8Ke$)u)oe6NcDP3n`EWJ$!T>)8j879kEA?Z`e@Z1)}H$!#( z9v(Y9w@mBg-Q2)Hb+aDWn<={Yzg&f=Qz?OUUId>z*G9s2wAB4Q4`Y~|99y6>t{shifcbS3KlcGG;)wjicmy}pY?XWb=3 z>bS}v7Io%jTzeBc@>;3~cU2Xb*UfDW=8TLeu=`mr7}4WtJCyfo{?GUE*0#Wv|DOP7 z8~guUlRXbzB`Z$Wek#qv{m~DuB~(8BSlz-hYq`5OOQ|QX1MTNmv2m)eYidH3CjokV zS1^8TMk!CWe+S%CGP`v9z1J7z8??xekF~J~d7bC3APy(8WT(~gk#1?+xZHFo6q-6W zB$-~jzq;WZ+d<)bNyI0ZC-+*hei^`xVF@$41bzO@$}KNf!E zoO~%GdyQvKO0v^Dm)djZd~$SHhYB|AT!hvHtuLMXY_HUD-HK#BdLDB!r%DFff=0=5 z*~1w6wVRkft#Diug9p1Hg1vS>J$y8NuR zxd=|xoopA~TJZVtRY6=dibI~0l%`|!uG7Rn1$t-lvVbxDGq?_Lr9E#G4lZO=jnu+F z{qM=DJ;Yfq9X1u5(Swr@WY08z4tu7^hpP zqn}qFT7tBu>`kcx0b?X8{i7S(^;S(qh{5;EU3{g8R@~vRdBc{l07l;hu8pqhE`+2M-|q{O`Tpz>uqI%C98I^qqI@Sf4#%qBE!6pSg={pE}U{{Mhl!o zFfl2}RoBHIU;W;ujM=rH~^+Uz6I6pu$c5h5lNPQwZxjT2Py(WEk- z21|^-O4DqgV`&W#yQ7sRnq!YiF%7IPij+Ah-hX{$jt`F-p23Fj%MgMbP2l>oX9XHO zJI0gmKb=>^(Ayjw=m*U>s<5Bo?MWCYI6mvjBZ>_Qc`gUuheIOUoR`cIYpYO9 zjnF-t{P?!D_8yb@4tP`qr`!1%_mh$x)w1E1H8iHy&};q7;YxO9Yc<~Yb|41;SN9s- zBJ%-HT2O%yN}!g-GjB6}s|Fg9j#To==Y$$qVAq(f)_(1-K9u`y(XY!P9;!fp*kNuh zPsB~tb-2J&Cq&azjrv+r=zhgiV+{8t}3atvr7@#>G0K8Nyb?-Jzbtx5+;Y54HKYhTY0*^ zz(F73Z)RA(wot!!VO%Vv3`3Z^i;RJ4M5{*Rtddgi@fzy>?Ku~^G3Eta(jb<$hF687 zJA7*@okSuCiakWW9wh|L@T`Tb%TXzpN!a;V(V%0lerStB`RAgdsb z;qC*c?WZAXg_G1p`Pk)*4hE5$>1uY(o4@1naD%N6CGaP0(R*8CO@G7wWMs4OWK|8R z8RvPoUtN{N>A+5QE>py7Jd~u{<_VAeevc4B34C}4^Hhd=Ev z_H7{{2@ESCh#vv&YZVuyAz5VnLMs=O@oR6;P-D5_OID_jYY5XZuho9W`Xss5*NIy3 z4f#=|WGkFBuI!i>Y}jg;`5G8E9{5g>9Gc@_JeeA0n-cn(K7$UED$suH2x6~E1Qt(kI=*BFWfC(o)iH%JCo!Ef zb-vu+_WBNRM4zFD8xDgKWMq4mZerZHYXaqc$}QB~f8>TxZjL-tB4xN#BJ92^#uCb| ziMNv^qO27?!YdF3n}x!5=puJX)L8!Bz&&7O&Iv8Z#^{%IA}o4ebp5C55rpD4m=K)* zYOWaw#us;$Q4L$gPImeM(LDn+9u>LBrhUA-qxw) z+-uZBTv5A`9X@yil;M1$s1e6Vfx`|q+gp^-y``8 zfyHY`5cz(FtM4@FyRK~G+GLEh$EbW%EJVp;w-?uBhPh@r#v5@E_w3?nPG|cNcJ*rP zAzNuNZwShM@rZ2t`}|H4X2zhw_lorU!PhHuXmz*RzQ6wR^eJVqwH5S%b^# zoN3WyO6p}U^m+$r$5FmcJ)i&0+(}D}lE5?q@dNgf;(FeIxZF5+&a$e7#PC|}-9_cS zJOdkI-dKq}ZV5}_2M+JLugvH#w^VI-&WzR@PkU9GZGO;IveqtreEq?b_2r_;xJXjw z=XUL;7gd|V+f_1TtO)R<+~40ON)Ajlu$_xp?#oTViIe*NNZC)G+^-136bG;{Vy}9! zPPbsqT`z?;>nebX(4|Y4i=#OnbE1(6q>%~%!QZ9#n5q|Jh8%6Tbqu}mYy{RDRK5?j zBSHg0`P0MudYXT7Q zjqLuM`6|uwyM>w`3?hss?dZ^~SQpNwz58K0O@&+kV0TaI*}3>@*BE20`m?=h_kIGS zdWS|in5U~B`kZSrW9sTWGu(P&x8UkdZK1+B20yu{{1ylFAGDS*CGYEBC1dsV&^;*t z_;5TGVa8~1aq$nzj z4TYQXn`pubw$yS~uYA9OWLL3Phdj`>KbY(Q8^*0AtXn0$;6Z!+J=}1bJO?}csT{ZT z(sh69o2K*ZOTS%GADyw*$B9aU6Ue&$+u3Y_nn$TqlgLWx8ZaCU=uhdY0k#yh?x#Gt znm9&B{s*{^PO$%ZI+~Tr`yjrs$$%iKJ^efZiJc!Y@kv-+TXR!0do}lpHStO<(^tO@ zPk*W|eVtsI)?W-0dQJ;BIT|P+aIb0pVjv}aqzkjJ3odtVoS1dZ-`o^VB>$xsQ!u?* zTuT@HZF{%2?osyC&>Crmxu?(?t_c?^%ky3qK~t&Ob2Z@*@n<9uE=lhFp13A$Ku$pL z4s-vU-fWr2ha?_x@@UHSe+t%YiOH@(N?~eOeAufVRW$14k zGcRLO4yyZuTFw&E%%*X?S^5WCdFKjGy)?$axO(@hqM*6e#izR~3xy(VmM@&?kq6Lk zT?>cvu##43#TdJd#CTmQ_d^?YUHH;enIcn`w4q>m;pIaHVZ$Dw3YcWy-IyC8r>l8JaR8pdaY^sC*(09pq9B zpav_|2W$~oY#obtM^<%u$>TTS`mp~|OP+6EYftYO~}L1BrV%73|i7B!!M-}=-_Adx@h{=mi92@o#V&zH>N;GgAc&jg|l(y zD7wVLL=M{bh{xS8s?_|TZd!GI^Zw#>V1PfZcl`;$gx%M)>(Vx0iPV5{kSwO`JJg`3 zG5szvCy*BQ-Dz3)u7|c|_L9>rQ2KE53i~|u6~(NZ(l4aR>r}bg1NwVgw^sK&^q z)^zIhVTNr&sTH%^N?^7<|nu#Ej{22@BW# zA0zPX#+%VOgv8(`d6K>`{CJv)Xx+6fy_O~0RuAidMvpf;#=0=9Dy56)MN06a_^C^Z z(Xk8>UF0u(1JECXJw^VRjE?4ZeW$M{Ls+erN;ta;%zlbBALmd}VXlDpiE;YiB{=fJ z*45oP;4&F1ew^GoyJE%K(hTXwSW}yh%-XGCAqJWQ z1uKt+^EW)NAWb@5acWC935=T1T#YZHf);J9-Jz+LjYxR!e5u4@$O9Sr%g|$KLPWo$ zp-jSsd!U_Dr7;K+Db&*0(9MEfldD?)?ZLI{O#PC>R+!%?-uG&QY`1QR6ebcODOLyh zb#B)HcZ<&qq7(RvTx;mcV1;Va^#u+yRdUbg-K~fcj$sAw1h3@FymI>Ov}zcK$`&mO zp5{u#2+nL)`>qBWr~`R3IgPD1$z5@V0;{ov((de+7+}>VZ_UN#GyXb}QJO6tJuzMw zTx^2$TZxq;_tV6Ga#QhYb$+A6AMA2~Bd?W^8)2LOel5u~D*5ch9qS%+#7dO3b{r(G zpf!z5Onfrf38<{C>!*=e_Nf8s%yA3)3jx*Ct!lW0PG2Ut9z=r%x$ievjG|I@S$HQ* zSavk@Wo2Z0txv@Sw^ot{Is)f8>t1#bxiXafK5(aP;=quvOxEWRYdcjU}qiKkaVXnel^`68wMN^0~M{jBNr5+s*$s zdfqW`JE(;v&8x%|GBThgCdFyjO*;VYf2+FQ(@MnN+< zzjFOtD?y04{)@Agcg$fYU+_0BxbnE?$J$u-?jscTBg}jOYcaZAu@-S#L{I8Flb3{$ z;sHN{L$PLRjk6VV(~f?~I3E8f+4$nj)Z6Vn4?1DtTytqee+|OmNU5iDF1W#kB^9>W z3Z*QNRIuYbsrcR5=tVL1$8;}3l&=2}4=&PI0|p`Ve+2S3z=yk`cN$;4SLzCsxE=lj zC=yl2Voc0hh78N2`m)5f6U=0GI9pqT*yn2{KVG`;LhLP?M&0C$yK2Pz)GtO4uS40e z)lYu?EK?*IAAMBaviK4<`Z4ZVKIu<6yOD-^}x>lNu5G!e+AUM(Tj!f5G3z{a~-!kL+SJ4j{?4SB}bW6^>Q^G zGE^ag_kud+j8;!QRwnLyxE5~46PiCrPw1d+8ZLQ*dU)^u1Q7b#Og((j;o)zlCZ;}qg_-m^1>DEdpD_hzyErwf{%HAkE z8_t}gxEfJ9x1wI0?H@UJv4ywkxURVhMQ^s5ME}08Gb`iZ|0GsKEu#$2!7VOzYCSY= zE`;UgTA`_V9c1%U8r8VYN8!_Ewu3yz#uj?$%$@`gc|PuCkn~$A_QTP^VHY8M{R=AK z>0_to-PxJu({+%aEuD5~ST|O9kjN$^ZO5Pq{=rGuui^NguEmO3X2Ub^roe^^C{w~Mv_FIooLk1{MM!h*~=Z1v~yQ#Om(|~E6csOD-bHT>a z&8yic>MmeuZMbIli~OjtK$Wv^X0Sc7j~x|k?8!4k`%;v&_Q{BCJjtKJ%k&&2e5LJ5 zd9KR5T>oOSA#;MY`e(#)%0| zqFBew&$FqA%U&jL1cti=KFn$|z9O$MYe=>5$9b{z#EuXOhD{DOK_G~qxCfc?^$phq zSvEr%OL4A;d($pe>>Mt?-p@>V^36D*I==}jOOKa)4QQkq63%v7K72#Ch}sY&d6XTb zl(F|cAl;TQ0&@wr{qQZ~{{xVfARJKEKNrp;j~#qN?FcuXP0@Wv=7tx(=q=D!iBw^e z&7p(B*1x6s5uFB0)i=I#-VZvL`U`>${`QTMU>_%6lJLMSmQ!ucB9+JAjr#}h0rpA% zvnO-CcGg8)U}bG+zFR3%Y1GT%r=ieMi!y!_JoV~fIk{SdPl6B@u5A%H4*Rz@!ue5r zxaGY2;GjywCJ~6TkSb&#yvZSM5F5X7NvTcIl+7lCV3eG7$?A?&HuHetz8A z*{+nN3gpDxhSO?Brqf=9HcyQZu6NF!68|)%>2by#py^>SfDKCgCbX-Sw{6-PBCw0> z-PMdW*u?AZoYTQjcLt_7<5Cy`agJ%@4gxL=Q6?wzb1jx-I46d>`~K>>;?xu7yvjEKB34JLf3qV_n~M ztLvzQSH6cS3Oaqxvwvc8ms*op|IL9aD9rMA8=I4~-Y`pcW%a_imhrVc zm85`6J?ZbdTF8R|!~+;Pv)ekmhx|sQ`1$1g>3nTU23V0g}7gP#~tVKapu{hMM@6maalh-m0Cd%Wbf< z%}zBbW{TT&hj1c4ZBB3vecg8Fisu$EmZn1d`?s9na+}?9D#j%QX=YW!zBMM{WXk7K zDM<)%&r#rG5Kn%=MqX$Y+fa5T0a;nE2d}cU-KT36C^!#wT`i z=Y=bE@rOXf^Z_f&z4j@!@)gi0W&_yzrgY)&_1a_=d4EpgF(w*E{+GP?#T-ve`-PKh zcb}IE7ikUW13j$p>H@xe@`D8XUN)b!-tY5W_fJ$~GJ8b69E#QdhSLY<8P=pUf=mQ_ zkuaRsxl~@haIKwFmve8}pgj}iPFE$BHaAWFDf-eFHdOzvG6;ol%K4=x0hSU`TOi)N z19t|jcXfF72b2#<{=JWX^K!496+jO4YzLsb%Rhe?GNYW=Xpoi)Q$7oB6ls_vmv|06 z7+JbT%KbfQKXTIX$8rP_t`t?5{;stchG}v~IFzrH7nIm>(=|bR!Wd4N(WhlxIZZtt z>(S!j8k(zbwC1fBcjvrw!Q+AtE&j#wpRcGDYTSx78)a2QvzI>p^nCkGUx(m5_)+=P z-J=rJlU8ObNxT^+>QWn(GrM{+_ea7tWkG^p>5v^$N0|+mxcSBW6AwbnAGW8}+T~7~ z+Z-ncoxk9kn=Mw0VF+6#X`?Usk`zr&orPB&3MEgkV$^v4ejzv}7`+W|Y|fDsSFaX8 zwct3k)VKT3+6@(Z*K|6i6-unR&x8i=MvVeBqk1ss11*#6=zHo@uSDIbcLheNXuLQB z2F^v1cjScI*4X4xchSrE`&vxm0MN9Be$)JZt`^@YdxbB80nz?p!9Aa2Hf=)^~KlCWLD8x(Eg5P|MHm4AI4`pBJXB zytr(voC3R_$zr=Cc0oq&f>P$dh_mxa&hwQ@LRiQ8qj&7Ko`Q^ca*ICpa4QF!-Bf*4aCM_CsLH zd=Q7@B@bt)ENe1eDG9_we2~bv+w+Cbh}d zOD$$V!v&>PTV2-xaD}|&A=mG=6cg-JK~AzP#+S18^c|XK&vg(7Q(9P}g-KaDVQllW z9IkQg)ij21+}rrAHYT-h6+MGjVbT|T#x$=_jnG5bfgGIy2qRog#_pqzjGP(z~)Jxspx6i<# zRVEtx**ekyj;yCK2R1$ae>)+Jr$)sg5=Chc>Ay#zCUMT21XQWd+P-zR?fN1Pcs@thHqRQy=& z&}19?kFIUR4aqOgJ;teKs~f~ScwZW8yvJ($*+J7;0!bZi;UfL3iL;^UcG-|gJjgM~ zp4>-Oor3aA_kkyLw`Yda-%Mnh=;@4bCd3Zb{7L~rhRX}e$0^rB4^-~_^;E7cHI(C+ zV=kqMAxZ`?rLT6sTe4jC(r>4A;EeToB?*k}J^2T3Nk53`XT2jIF-&AbFYBXzNwRkd z3*Qs!$u4)g`#h4yVQf*;*IuBT$BNVVN4cSiQ-X!*y$40wq!POgQ|k3)?BurLP!({0 z!KQ02Lt%lg-GQ>ZpV7W`+188DqCr5G@KI5w%}bW1srvMvX4KNkZ9p%x+a+TQl$j!2 zoqm7^u*Vwz9q+y>izd7VVmP?jXcx-?z7R>*A`Qc{Df+aJU}fw=>^by>j~CAO`I)mod)49)go~> zpQPuw4W#7U3Dm3{xPBFJhKZS=MVok*DXl6`Mfg#j1KXOcAz^5^_UWDd6LT{1A$El}sYv+8tONwaININzpf93!D>9j$S?0%U3| zMxz24q}1qgu=*A;W-s{SI0!9jfX|U%B#b&|!c6C%3hpEaZHv%C+0nBTr%dqSzBd*f zfDdGZmC7-ayG=O6#c$j~OK`FpsL4_pEcG1jOdRb4sTDHlj8`3DxyoV7{%u9Ymt6Uv zsA&cp-KniXaeQ8%h>tWKC^s4#uQ|p0I9(jX3WgHv*{3Ud&Q@-Xe<{j(w;LkiDVH!5 zf~9Lz+e3W*DDAxq07-?@$(3Pc-Vg0xGg5b^s4UG%;_gbZZhw@)zv)(7Q(vM- zQ8@z1T3tps0_vI`tnDQ9qY1Aa00lJw?;P%^GDy&n)2be(=zXTdfrGuZr*U?Sz4ZQK z7v2%cVU9(AFA;7YtwCGPnr5m*Q%;d&8Gw6mFton$kN3o0*YkV( zVq?}^tQ3Va=`UXgt(ZZ6tb!fA`N}3M6lye}x`(U7l6S;|3=eV4T|;Q9{B4|_`8toA zL+b$PK&h8u$#OPww4uwQDKm06)i*tzJ6w4iZQpEqybqoA&kOVH|7Ex&P5NB_q)-A1 zn*Vnfa?iQ!mceZmi{(Yx{R6{+9Xr8jWLtpfl@6BB(cQhTpQOo#0*j3?R>t;IOgy3)sn2<)s9 zp26Y3K}xq=aLM4#<&7qR0KZgRO)8Fq;1VO1JG8 zZ#^Y8$lP89|I?L9(^~dU5YVolYr!p|9x0U=wvHfwXykNdWTUgBjy@l!!12&6-6!50 zx2$5##&f(dA;pbc$0Sdv4$@72#TdWGDDCtERb+aYx7ST;)LWq0(J<$u-xhhXXOItW zZbgm@+pir(KV)TPi!>!{+BCd~*>D(@!FjUTEr`}RO`f#;C)jw*0usA@_ie28Jm4<= z$B5w(DB95N)2=`#IiUZL+AmrXeJAOyGttTC#gZ!(3_|P=sKw8wFuSqY>#(+ox=pMy zabkR#7k|xPM84|M+`-Dx%L%B+3CL~Vzxtyw;H@n{9HN?#44|-(d4hr3_ z6jBqrJ?EcSP15zRE9JGw_4~T6I8Q#Ap02&nAgA#kAX}Nq@Qn`)Yq$GXP7a=~qwtc; zGSV?lugzuDhr7arKLK+|Uu}#Kh%4v<{A4r{65#DlRnhd}WMTrR@q3sAk#k1UP7R}6 zTUTd&q`YvE*U`qb)h`VhOWkKwXQddpx%4w2ZOV^HToS171 zDyI%YTbuMHXo#eZT@TQm^w;Pti>7k_2C5>o;SR$=Ov~=xxX;|1Gg|X*HJp=RGCq}T zx~A7-+aJ~_n8Qq6Tsuv9wGQR_XtHZhJCq_(>%VhXx4-WJIc!~X@qhfOZQfsn`P*w3 z1UdWj&_!NwU>b`|#E-XB(dojkej5;?;yF;yTqr3q1d^T5|*8(TR zgG`}5qTHUlY;x|rqYRm{q1o_eG}Py{_7)x^ndex3-)c&nE#r{dh3)Lxn_hJ$hll@; zzj}og{;^@P`E}Lw_9KP9TQz544oD$7l!};wn1SGb${cwKff^p>`edl_K`fT=f zh0ViL<|*S5eq}n`%xkI2%PwtDNNAd=+Z4GgAKyNt7kRvi4DTPHq&WWh(9ZsKzGOj zAkB2@E3HSFk&8BNfAa71$vp##nB2q+eZz>|sHQQi?1?FvLbtw;D%ng1{C#QIwct{1 zm%zP|Hih>gl7+3vkf|xO1yf-1b^hXXpe&5Ldyfap>5eq#JLzh7!eZB{$2%u_CPHo> zs}NH`P5$`MYZ6iNT8<%^rpv@zi>N!~D@~$5>nhKgKb`I~p}G@2F8oGPdByw~mgmh1 zOxbi;{3O3*3keP8ZqFG_+IyPkxrZ8$p}}@N>hb>Qcz$M#Ub&#cRjrS|LfU(KiD4cwVgZ9?|B@bjNoo-%urU#w?R$nS82>0bhL76rfT@+!nYU$Fs@hdg&kE~hIl81qKd+3QwEM_NmrqC(m0Q*eMi>V&gqmFg^lJV5aKCE!r?)YsUbf$c z8-#kp3lly}B!)f>euJVZs_6*jX^p=;Yn-K1H7t^l^cj!f^=-z1YKA$@~}9>%jOqDa5}!w2Tnk#AL6 zOSI+NFK6AQ-=Zn(yP0m}TEX}J~84|@_3_#;`uD#!y_b>P>(51g5kc)Q}*+vQrQaQ(K3pW;Ij zAXA@OX^LB?q51e-hgNpR$Cwwp>}agRImZzhbCUj>0+RVsna^q$P?sE1VwsVjW(~yF zGTE);^vt*v_Z3Zi*c;`2ouKNvLVHnhiBj@r3lWKIY?tEP_mqUE48xjj6kH3KoH+SLI5nxD+_RgwI_1^e=}zd*VOFUn zc~ytffi$0hD&V)h9ZcV0*HY4JXoL2xdg)lVQL(QCv4lWW_M5I)9wkMK{~tku!Tgvi zf+D(dkn~Z(2{}`_vr~Jo=sMOJqnX9M^-Tk7%BJi2op#!!p^UvF4n!?y;@M#K`1Hmw zU5cMiwS~DprOwkb?f8$MtmR#-v4csfAvN%^=UWv8=IJQd))t79Q0Gc+ zw*ENqGk5Y&%d}5+5rGWMlX819mswSN`u35i@-k{3q& zUh{3Y8(5#l@^a!0WG>EhPYKEcbsSjy(yB`#n8V;ClgNe@*bAWl`lBY#z*O+b+c)07 zfXv#>g}op$fve%|@EHE~%rBsnq?ZE)ht%zBzk@JD-QVB2+LunAnp(X&TEyFp2iXbP zgmd{XD=3ZD2bdRQK4m>qMjaZY*L!ELOS1=aE6Z3=H>hjuVi~FiM6Lql-T_l$*ht(j zNQ?cDe^t}5-Lg*@By+WI1)t?N?>Au1Y|nn|U}%vOcJ8{ui}UAbQ4^GL+I|38+1T+e z+=UJ`zP?eUBSFti*eh!mKAn-RI%LQ^RvjGDiu?(?s6R;x3{Xg*tqKVsE1(~%NQbrU zYCV&>RuHLtIRYE4Bd|b!!O%v2u z6UsV4N}o{q{nAwBIQMnb45#*>b62OV;J7NNLy5a#zrKAfEAY-5#-`oZw+!A#?hGeb zJ|DPm6EoWXkR6-Xi>}eLtY9|9D5T$i7p=ghnGU#S*b5)umZL<{?Zn` z=Tmaq%6sxczC-JzP%&Jd&=2h8;J4q;tLc7X=KeM0C1Sd;uTr)@!pl#YP!i`mD@M+U4j=a;}EsOE~a95&y{BRj82 zeEh?`lz)9}q<*zmr09v4E-_11SkEG8ZjwN zYSw#M0Z&K?aU&V}-{}}D+lEL;$^(rNmxa+oJ0PR38veDZwPt+XzKhiaGoKGhgR z@vw5xf%=gJrJhu4g|1=1F;QU3-=#lJHtH1bjximIcPhsglVQ>HE&zE{f*|@M>&7Pe z;GCE?H24ptUMY^T(>HHzf~i!j*lB^r7q>>F5#P3h#nB#t&JV?b`y{kZxXasd4$B7) z*ICj+xq?Z<3I-pe538uL7F?_u8W~{=Z;+=kWnHa(DE4LJ%Y%ovt`%qP1$-r6VvXU6 z5qMf}qhC43%PZr@{El5cHT3+!Z0F1sL|)Q?#i9J-SrdMv_NPZy^iyC$Zzobc)nQe{ zu4^#$tl7OgUz&tDou%8~_#H>GCOgG)!vtw8qEK);UQSnGni%^N#2r_Oe$r_}^lj4S&;B`OPmdcd4gnAMMq!_O>}j*shmtwhL0} zTO37RwgUbR?&haOciC~hHyHP_>^h1IIbKv-U6)XeWuMz^!rhgT@hkG&KE1XITzh!S&t7J|symgjDks=_PZ559SLdSdZG#jQ^|^c%kb1y$9*Jj8NJY;b z%S{9DXowxNlGq4-1uprv_#RZ~XpuYuDY{PZv(K7|Aqe=QF*L*`WA)s_1!I85YOuCE z|G4+*chF41orH6UmtW-=*S3-}-m?#emd`a|-Y?Ef{Dg^KuM68XV@@PcHAfat3{!%i zpN4AYdx9Z>Kpfv13Hi>Uu(l7i0SIAIs5Nr-?=I)6r0~m2f_i%c(b=0EDq4CA^--Aq zFFR~LEkLtX>w(EwDe|v+)7lDD!aAgfC@+fhn9FIM$xI}dYLdHL2Txqa?hB<_zdoXB zxL-~qU|k*ykt=y;%6UyPpXHtkrN+9iyR@unj?M6JAl)3-bw(#Zi%8eOH1}pDXE~lA z4bIY4uw5Fb7Ww$T2M(XTZS0yBexwq!dh4CWS^jJD%)^llD&9g@Oj>y+i-gmhr!Fa6 z12_B3D`VJ@%+8!qbo|bBfn2M^)rz6J%_+xV`(~_R%2h4_Vvoh8`;+P7jd-dA^oY*@ zWF;D_NbqNK&n$ANh`Aql2Tt+rv8NOs<)M+zh6Q|ktv10$P*y_Y6)d{1NV2VUkcqrZ zvk`g{Sh=cJ{zlSPw_YOeIl<0xskgoy^_P7Ed`y?L`RA0^-3y5O!Si8zV5Px#qy3%P zKztlFySa}JfsH>S&O|XVmMt#N>5-qc{F7W4K0a1i|4WrgQAW{2G2TjS<$vH&K_d#R z%NG%#^MA}dMW=Wd?vke;)Mp*14Q#FRyti3Ny(~nb#Ys18RJ<)2%E+;En58*r%FBmK z^dEPtDfDAn*LNT4@8ac!TetrAYZw0kI;{Xgf?pxYVnx5M-oM%p;T$<3l5C4Pn9+@YmW)Ghnw6zYfRCkt zz1&wbIF?hZ_;eoAAM(RAi5fHh11#qq{|BHM5Q7{dQbw8jMXrsrbzi~`Cd@g&oFm@@ zF;S+uPQ~w+l!jaLTV)o1q}CywV@1M?p?EH=FFOV@&lNwo!o`I9Yz~r+_n3t$RF3T& zRP;Udf;Jq(%A6T1uP$DR>>h@+WnZ0+H1;rvov3@iFotzo#X2o$f2ixhy$?esyVg32 zyHNBH5j7=>7?2hE%j^MI)yeSlBWGo$F&n~NpcGK>KLDYnMgZbrt^rC1c3*H1@7g$!M07j-J@Vr(s?Be8M0mvHpA@(1BX42@ zU71hgz&7bpX-4B8pJ3w(#SRd%kn&+;BNirf6%SZ=sQiPv+M{#mqqH(mny9%Zt;_^`G@D-Zj6j`Vzvto>B~Q70?Q$ek0LJb&CRu5EsqlSiZZ1A zsXt`z;GbBxadITc zScDwc=pJ#fyfM(Dbuv~hl7uX?>DJ!uSibx)@G2%&cp;N=@5h_s zMz-}wm=?lZ0x<{$Q<{pl?O}cQPqBYhjUzG8JRf_D5S2G&6AM!%5Il3-}d1&M2Q z&iZ8C%{9xgR@t7G)E2QL!=n1kD2ERkiJW2i+=j2eRhwx%rqR;J&RKIeYcqeBi@Uh+zmxv+xg!8K^%0%FJZgU0qW(e24SN>I+Jy=No2HND%cUH zf#u!!OB(#@5>hH1^dAqJu|yf;o~Y$>+GAmk!mqIFhaO-s6?Gu~(K!~A5*Cp4qdwNX z=4!CzH`nJbMNBU(%#HlZ$E1b=*N!^P%C%^)-tmDPr{~hkPxC+IAqx=MUwKy#mwxYP zXs-$#f?g^9G`_H7W_2tgc8a6v)DGU6@Y;zWXh_gS?#22BW%n&hG6|X$?aH!(T#eMl z)CrQsjj-F5*-0bi4e;497O17RotOVMM$)xm<2k%l<>R7dV`E=Ib)%Lc{(?QwtIIXCNAzsT zct#l+6aLS$H`^$Fc?6rF_#{~!OC57ihS2{xuj=~NsK68~w`vtAMF#lZ+P;*#-3Buf zau6SH)&>b)dnCPMQVcZ0P6d>Z$rl{Xcb39`7#DG_xF4CelbGB|7`8YC1p4Q^DUB=R zf2yM0WlMUINJ_d4&)#FLKUu3OaJ%rR9f2KsslWt3>svwMk zmaUny=Y_M^LYI0b>C0a=^#j!GCh@{$uLvKP@W(dR*E?8g-#xAsEt4?t^a(6*_xS8} zW&Y%R{*9>`-jxkN5(+r8wNWcPU*bfuCL!uoR`gzWB)PfU=Tq>zUN!Xys;k=g?+SF| zbGd@$BQ3KAq584XX#~RZ*k4D(*$G*5$gyo~3+d3nj#o0wev+H_qR8o!#~+%p&>rd> z;H&nXiyD}UJ>@u{GjD@o`>PbeL|PM=iyCVR7VKO+`uH4qnekP9z1ad1ZoXIQbdr3s zt1Iy9lGhBto{ALZ8`H!m9y%$m54K+G<3P#0TWYU=b?Iw*v{IUk;Q37QC1XNtiX>^$ zTnaZYW^U+V2mVo?42_LYYg=-)qD5NArUOASLUjF5* z{{gcO|9O-%I>5W~JNFCpcp)r|T3g4)0_+%uc)IMV_k3`3E1Ho}AR)hB51o^N|tWHJ3hf;_F1Zpd+0_BwKNX94WUo!&kU z3|<^#5UU)CdNI=BEz4e%y@9YExqH@;KZBT$rZTr6ykHgPrFlM0L9Q7kIt{0wR*BRcF(9TGNX#klOSCRw}b2Y+Ck zzx@pX>)lei8h2gWZf}ppRRYpU?chnH*heOh5{iI>uv@kR#j$^!S7RZH2V)PYlp(4a zMi$Z|Q(cl#rzV$Bdv*Lm%TMVny~74fNwK_*Dp5Gzl6OH=xSdH1?h-tWlj zow~_ghuLNGZjNmnj>Rllt}ltJH-l^nEPLkde+qy9QX=V2enbAmw1Feul-D9v$2)Lo zoCy$^)V3d)oCCGuY(^O;(RNp7tTF>_fS zhqy=P#$`7bE=%r>A3E24cR&WQA%*2l<2uc4l$s37nx-5g6AwHKPpfNHHeREzt6`>v zPOixLe>J?_Gz}Hb%<4QHeJ1%kQDdXt+UukIo6|G|uQ^pdYzznmnz| zl48}C6D(On*E43ivac1K&$wOk*xikVf2C6Yk+x>KrwgeKd#^$BZ;$66%yO$hciFsG z+g9DrFjU9b z=Wq4}&hmr=jbMj;I^S_(_|uv;N2bvNy$2?^ezGAXN+;j%aC55O6c~54Zyd2>Z{x*; z&AUbAG0URzf|$D0LCC+oIC+) zc6^)h~u94o><{{w_FxN-FPJqt8@p6GWK3~)d!z&;zc3Jy*Kh>z)eg#|NxeibHFcXMJ%1{QA=%4#28vlEN z0-b`8j+1{ST^8b>0~6k!&v~+ba6o@~arC9bQi+#?gAasXGBsv~bR6Hq3RYRSUFwq& zp8erPH0K<^^UYL*hO0A&Z=$%{2Rrc-^y9ZDgUJfA->v9Z{7#mA?+R6})mAQ_@iSX@ zJ9BO_N@vI#5`P;We$VE9kO;uXE{D9uIKO5+&tO)O^}KmLlIbqlNEiPY)6VU4eChpd zKK0RT!{@{`???lrk33$Z6Fg9KkK{~DWQ6d&o%56qx$gbm2nO<7%FsW*-k1jViZ{3X z@)oao(;{h|{C4;Nc)>Q_@xzfOal`lrx4-HGr>0%IxBAwe&D{7BE0dRC%)D_&yJ7;2 zHKDe?s4YhtR8Le;Bk< z$tI~KmaBSwCStHFCS{>$!FfLog}m~`B)c`Bz5Gj3q8EaiN#y}lmX^-*pP$H6&6W<| ze%b;n(#uyWe)g&O7OcPMCThFn*N<=5iMgl5L=Y9IJ@HSNp4G&d!)yey0EL^u%w+(q zVIX25@#f#pNB))44L>=mit}$}=1KlIMbGm0^u=gDgbBAwnnV-fZ=Hzl7-9+nju#9f zrOtsqj& zjq#nKXQk%eiA7TNtY=9o*62gR;qggAh460S0TD2-9!3&UFU3R$Y0RPnA9p!NJbY=& z`0J)`dJVve_AjQCTwrwR$%(1I7Zmo}{$pODG%rQ(zOgP#=C7k(^sI3DFfCzS|4P7iEN1J>@H(JD6go7Z8@48k^ z&uNwGq%x=RbYTaKcCfW^xiGdd(iYSL2|Cvvp# zEVr~An&eB8nu*GJA`a8$jW){BKI00^sJ{H9?DRb+%a>>MjWX3kS!P+OiAUrnvhN9v z)ftQpAqym-OSFtd?Ud(MY+X&u?!V{6UA2m&L~(Kg0*ohl1&&p+BiN-+@l=cOlyHgq zsSfkvn!v%rC+#)mCmRNB&h;F3z>Z>hn`4SwTTWGu?a|wyviDUq_KO%uxTgD2e*}rw z8h8E)&djbiO_ysA|`e8&Iv|A(d%foFCiTGjA3#55 zK_6J#+k2eMoe%;yulX_v=*hlTT>Htg9pDn_5uQW_!Fhh*{5+l=d3b*TeF&H3~;tKhQEAinlE zM=gW8yS3#x?H+{qv?n*X(JHM54cA@<`%Zo6=nhJ<)fd%kP8K`Wegw{&5UYHn7(Y7t z^y`p2l~e{(laB|YL`O~Z5xI-sjsN*ojMAm61nfLi^5n}{f1w{zji}38@Ea$+fF_Xs%0I zx}R9S)#&S7{YhG8pF;CvD{fhHTR+mx;hNBJ=+aNYyhPAacjAJoL?%{L%4n%w@P%;O z%*-vTD}}uOI#NsWgBgxDanfRO8Yo~^&IfdO@HYYZNF_)h9n?*cD4tVheg4ZMFbC&J^JONxlzbx zD&Crb2GFhurA>C~GRJLU?&+iC8gHy}{R$coo0QPJ zdXOtvIBSr`pfp`R(Nt|LbvB4JR7|$wLhIhWg$%%SrN>R_G*j=neOFU) zy}A)Gnw19l9Jv@*LxcXPB9$Ll5OGq5!q-h+zTACfF6%qYth4La-JQIXi+Q-}eA{Gj>|VEqh}?vsdaS_*RxQB_^3Zx0dWaaKlAvx9zF{;F3?esc8)gElNQLcf-Rh-Ojnnci&X;I^ zpyc4j-QL=3#r;@dol*qo)&jmd(shvcJYNEWV^*wyooy-e4EvHxlchPHBXr!njGsdl zgXL1RazMbD&*1u>mscXJ^s2e_;NZqKogwB=3|TZ85AWa4wDJuppAe#CMtVBx5B0HK zdgx+wSIxr`?EBX*xgc++!_Q3COSk3tGfuk_ZB&^ZlLavq)+mj`01Qi5`JN2X`~9c8 zXgfbQMhVqU(Whb1>=c|SA)0;Re1ojwQ>7uDiW2<3OM|XQgwdfRJV?&GcIr?Mjdlwj z?YwtVL!HHT_D4dAUyuZz>Vf0_S*X9mFWXm*kz40pbuH$6`L0UUxO21FP0ezxF-6iT zl|C`!%Z%X?@^9$IcN9m=EeE6O+KGNt|DHL?wAhC6Ou#({ZO!1b1hxzzcMO}EN&y(U zFr*AxOj(I3Lxdq%QMfbbv}52u9oY_X3)G8}hI;R`ti|~mo;@XG>$QJ-js5m)km;VN z#^w2Uq`nu+(Z7hTiuzHN7xF9A;ujoow^2TV)OY(rdDc4v>#8XDkjxu6(80^cQ{>d? z0OTY;F(Ut_H_OlzCos*-t6wv?dUF$SB$Y&UsNPw#=e#jMy;{Dah~QXu7g8IqaAh}Y z-v~bAAvuYlh6(A=IlU+6Al`3XZEJq0;4-~v^euF*&t4ya8#uMgsTX}v{U&rhq&u>o z4)eL6jm~0-74C1}E2?d(n@mSq7Z!U&(EXcN%MOR^9XP$rJ5jVLD< z2*Ez6iV0RbxV@)wAUUuczUh;{xwFfJYZ3cIyIr?!tF8iGe{pmLV0|uy-@jiuL=m}o zTJBvgOO(myq^inU)V#d4@Q9*)PY-OS_INr84`8*s6TM08y`H7*sc!{2o6k6pglKPa z=jg0^*tXa@GsNLtDA*dkcbCO@b*m=k1S}oj^<+;wF4p(Gs&vT@`7Qk)Kx#BVKjdx% z2sWKI7vu-Winb-TM7rGvBBN;YJ8DB5f=FUAs(IRSPNbZUj9X)_=IGsOZhac@iS?EA zlmHDKdz2S_qGj}w5AMexYsYmVcMsw8TOsoo9bYF~sc)Y>XZurk!t>tjGYrB)g!m6I zfqtaW-zVyqGim8+K@xuq&0wjla!Kv0Egz#xzif3kQ#;TcUQ@Ynm@V**+_=}m#9jxe z*DriYEZvQR7DH!e$fmdmPBLuM)lcBqN5mJ??&E(JM87>Q714Ji)vGY>s^xP_l@0Bp zU-KiEi?y1c9a&)0CY}#lTBQpdEeNmPc);|k?_TmoW3?7;L%-XP8c=!BgF{{XGBid#y9ETS~rJvKdKVds8Ux&6njlcruIF18GDgpAAC5b>-M%nYf->+XRaIc(cW{ zeLVP)_{pN&MY}6^Dj2RI_zG zjlIAmdtLSqP|eJAZ|ha+dxv3bc1xt!xT?1i6AaurVbqg+ZMGuyx$NbBidl2Sza?6b zfym9=hh6_;T-ahyuX=D7lDrvnMpsP?5~4lsUjK-=QEN)SJ(Y&Jl5rBfjy`q7{S5vr z-k~8RPNPLHEixbn5g2i<_b3^R5AyPKXUBLe6nTRn_Ve_~B&)>F15N(m07wldRMATa z>*z2tc~Qh3i3?F+IV5z11kAB2>_5g$X4~?5fAXu!lJF#P-86vxn@D0l9V;8Uw_Qc%(R5egx2T0{N{0aN+8KB3O7JtLBQH?u*hG%W%~~6 zHnBb#9{gNxu@2*%dD%@a+tEubCD{uZs3L3d^S^?n=zw>$GCdt-ejy*EzBOx z?1ASLFxdN3;*xOX_xn$OivAA!{Phm1g*)EqgONbaK)+4h+?m=J-Ric22yY523f%U8 z8Yj}em`*D&XPX$rf+Se9EVi`23rEW4%zYYz$@|SN8w&vDLxKpQyJFb;ByrhyR z`&J#qhP!#7>T{npZO5hSy9VUY=68t4dKA9a@*f7ovQ501Fe^>G8Lg>pKCk60-g>gV z{Fh{92Kt(hG86rrf)}dVsHD1VANV<4nwhw2+$AMbmvF?Th*HLEPv_fo>O65$nvQT2 z6o&o`H9(H%kj4_P=TwczXo;C|~Uea77j6KmG^hoKkEEN+Td9OS6l$&9E zigg*7Q8+V?E#9O94pv86k0#kctr&E9_e}d&CE>4>kGsIy1kbc!BToC`Zdq@>OrCce zPK$5JX+2w!d@#{nt0#HP3L{y4qQ!L$J|gX1ntplgGu_gXwi)p<{-B)=CWko5t6KPG zq4tfY?M}J>b;}H#K-ji7vulCreI9e;?s?a)^dde-HCp1Z&OGa;^Q-f}Vz^$J)O^tf z;{iR*o^m|>)}aIqET?>p85! z#NYVoaI{#*GDWYrxrBS!cy|}Z*%*X;gI2yeEoM}MelR-p&-MQ#?%nTRB7P?P*z~He%xPh#glt(qQvRL| zS;clOZ2BMI?4`;72T>bJ|DM_dkrF9ygF011;SE;l3$HcC)Z>WKmddOCHM!PjHI{kj zrWwB-x$Vns5@m)FwR%*-H-~LXrl_3L)M%ndT&O~AGD5K&`so;xJ z$d5yX!EfJFcT_{FDog7Uz_vSm!V12N9XXB9t_q(>syo%EaWiFJDar*VbWS$je+b1I z#W1=RN5c|+Yj}krQxM~2&ccb0G@rO~v?6u>184+9m$iSIfik;A(ciq-t}7Q$C1C%Q zq{{^T=pUWZr2BC*TOzPBF>=eO?P_c_=^7%0{`={ZOS5#Anf+W(vSkzrH&27k^gpy|;1iUx{d+iO3 zXw-3yvSD~93&m&FljRbJg1rfA}cM8eXWX-ZIdaZcU_D!|TJj18c&pF3+Xtq}9op4E~{1k`n9z zR4h~!2XfnbNJ4I19erSW+?C216K|RuP5h);>)3J#59)VoLhYv*5k~qa_kDuN${(Vt zj$?B9Epr!h6>yCoGqzJ|^#0 z$)<`jWmnEV?cu^*gf~S1-^g)lH{j}0f#hDHH~k#gFLG(!c^0d`N@;0zmVWu9p({@( zHw(p;A~x(*+&?rjfeafGvm7YN2k*h`2SDS!FZ-8rb%c#qAU?duvrns)*rl;vxVvU9 zV*V={dYB^Y>hA}uU)$*7cPR$q<W9t9#Geoc;s&(weFbY$GDWhhy{FQ{C_1_F}FQ z8AC6nn-M<*;T2sd-pBy(k*SV@sbU-0K9E8BDv=-{dmC?Un~8Z5FE%!mJXjuCR8QKD z*ukoQ)*)WtMe}pl!dA2Nb9mywP_Hn;pljqOlhV|TpJLPn)82((ejEl z{cW_r9`X+#De{ih^0-$ba2yPIjI}Q3FLrFXh>p{TSUxl&B@i(KzZAL=w~fS8lzJk5 zpd2b8FMY~bJRQX;ujk;cofFC}SxybKO;t#%N{89~g^Ws%Op{vm)T^BpO9Ghe(cSCi zRvTlD{RsV;7yxgu~wy<#~56z>|;jfyy$^D!YpMlA~6bG!Q1zg7nA@( zdUh6>#83u^=)?+93XOAyh4|S9EnuQrpWsgZf=W9|{haiWIQS0}gzK3UCR`WAinZ*A zItY=`?Tz@oAlU+BZS=*d7pgR&6wT{UyCxE^eNt`K5xwn`goK))9{vL)`w`rmRa-CE zKC-nI=sQa~3%?g<>OIc58n5G_5NV|_BcP$;pOQcA6*xVS2J zi#m%=6tKOjfC=iwVfE#$up)+C6unMHyl!q)LA^dM+PYm8*BG@_=hdc}@T{QNHj*nCv zVSSG7the}{-M%8Bw6jCTJ;d#rphp~v3PPiulW}aqAo&hmP zdY;p>o>mnY@G;`+&ism8TYL)F*ZWa~(H!rhELPKV05&bzCu^dM$zN?uNhPoYiCRnQ zC$Qto63a>*uvWQ0QR4dx_G&<2Cp3&ISR2`qRjFF*#Q1L_tjwvg;k+JUW_7uHVk$cO z^PSC(gwPU<>q*1pGoej3@iPc~0wagih+BwlOAz)0+Z3(toYRKVXK7OGobg%<9;I2b z5;o@E&xZLM0qkbNKWfB2GNBcrtaLfUA3qcdo_WIy{9F46@{eCL`3DM~%F!h94=G0j zkhq45xC3mjk{XJ=9I6*s3fsr}do6zaZIO+Kj2iO$=e9lx$4d7<6pWnnlD3jWL%|*a z&Shwo1H9z_0EQWQ`ac=Ck{{pHX~(A@hxsLhKHM z1lKyG!BXWpFS)a8nS}prb6|^ykCi6x>ad1}K#$)8@Otmb(XQMk*$ZE{bNz_8JNi2x zH+p^@8%5ig@SlLMUpvL~PUJojo%@w&?h#!?5@^?z4g056)(Uzn-!nF&C8Y9(&y0Rj zXHfQ0e4Ey~XOvaL05v#zcW0*9YP%-Xu<-eCrJ)`)vOL+*ae_L$du^Bn7hnoWr@LL! z=Wg&fCP(Fr%{_4(=vb8U!SOj?>aS>w<<{I$@2Yn15E7c>X!S4jDwd29XaMp9{=5if zg{bJVX)eCi5(7EmNt6)!mD(oQycS8eBgb)?WlQP@wJaJ~KW~RpCp2oPN2$b7U>;Hton?)4)1WeM7`hHp9dyqfE?8(xX-%hy%$ zEjacS?vb_YOsxi#g2#-=@s;;6DIcyLRCawOWKeSr{QF9ppe-Sxn9M@0C!nuCx=e_? zS}6@gejLYXFcyQX!KxJ<+KYK>cK$Nxdw_y^ZPm8vo{CgZNu!5+qhwk&<$ZWxa;OD4 zef7{m88UX{#~ulK)0sRV^<$9CPoETm zG03g3sH$X!G{8q%Zxg&kvWRQlxG0KqF34WejT?p(~;|tjd4z)2wR$mx`(a^+Q|VGem#bP41c$ z*i}8^A$j%)-x2m!Y8F>lqp$}6@)|9$hk!Z#U`=v$#ci+86z?G@i}lE) z$&6w07a@3YtLB2iGi%7dL(xv$M5B``or-9?R^3*hSig@VHG;CzQNCyfoAg)3{iLP> zxmzs(wVYYR5NotvC^rlSS^uR-u)RA|z6ta~bY-s{CO_m{FmYg|*<7yuXR(%c=t z2P`_(&Rz!&AK#|ycc{@@E)$F-rX6J~24jKrHWb9C8ip}7w%86cDOlZdm>sBrb7yK> zN}VhDKw9xV8mOZWli@;iYSF6uFXF%XdXIw!m4MV7D!YX>$0|K{GWSb(vC}+&Gx_-e47~TiHdE4tReH(mAvl?u-7Ods$>g-%% zsolLQTm1uKU59*5kFZ0VT7gZ`tlNBa^%Yl8H+1^< zPHa&w9(`8Vir`x@i|J!G1tw!gAetuiCDLq)z* zV4U_H{*@Zv;i*)AiPm8f)qX{fHAMaH0tGo!ZtZIiI!mf`9cmi|m|jHZt7SB)Wyp>J z{PQtGQyx#y#iJDHGP9KitABi@Ngput<#FIRJt~28TyCPg@dNSKQB-CNck=h#L8|uh zuYBXc>)W}1YTNAyIzZNmUd=KGGlpgHS=;w|e>NGFl;t}rf>3qn+k34F=fAo<{S|W^Swi`8QL6|L+&gXI z*C#B#6_Wn|&j?S*a@aA4b({hvnrw`B^GE)>(eV{sY1(5yxhS~1eT?BCcO-XzA9wRi zaPB-Io(I~vh=i4;cqDAArBLDg*ZKLuR%0cnnTVCyvu)r}ZQC+s9!$m)4-d1V(2*!> z-JWI15PiLk%ffaut~JLVg4+wsL1AMPUPF@=sadDufDSu&HW8xudT~z| zse8$Ve9Ue9T1+(OK?k#6xrCV}P_t^6BjF4+Y8J zS$1rrnt)}GPsPNrTPcpOJA`Eeu45Q$K=^h3^+j~twP)C}_&&v_bih;1uM_*$P!gHR zJKD&XOdwZakox0VH}9^T8Bh9-9j|JuO}+uaFzlGrnP*P zwUvg=L1V%IMSc(5E!g2Ex={zDBG?Jib;!`-M|XD>=- zR2_*|T#e-ba+3mSf*VV~>WG91YC;?vvvQ#*^*9-Rd;$8x?KRiE@I9h-+CWiBxz2!~*z2&4 z259YqJk{j+uKT+_xD&TAJ>OD9Mc@JlVlQrx`H!Xe$mts-MnAC>4_%1ReQIQefUsRi z6wc&UXi=w8{H&4g%&+{0xnPrr%35r0k&!#WzKmSboPmXHXCii?FTKOA@-f0BKr#6@sVhBVHr z)UAT34Erv~J2z{W9%plTIIugtr)Wh`VdW5Z%1yoCK8%mwAcEzQ zz2OzH&+0Lqpf%5eT+46KcH1S{Vi~=-{(V?==)uuJYTqQg(T{j#*q}27j<%u`O96F%yL9J8qkKA(O5!xl!fkdtv@CYD)L&YtF3`U!ARu&)n&wpw5u!ib#R`1-T> zqPBm)vllo758fF>p%|wU?Oq%bD=#DUBi}-4H#X?T=Pgy=4Z7|a1_?^wh|j;_+HP*` zwoaFvH$Co@LD}||psNmIlQ59+giVolIk5xFS1_O@%$c>3GKU`S8vtrA=9 z|64VACRp%)MN6$#6>!3|-iK{}3yV=qf6Di@`W*8X{(rs{C@==V40I!+A?3~(9iWXG zh^!KxEy9m+75;FE>mP^7tN_X5(qnCN(go%*UsXRT+g{hqVWhxY>?fQkQo{jaW{7IUocYXvI>dK@&} z*9({a5MMbeX%V>Ewfb#lv0loTgvIJEugkNi;|~pE1&uFPPw-j<`Yq0Nl-{{R;HGQq z28PRR5zM&m&flNli93l{8@fa_41y(6_|k|olYQbIOxJF-;d=RM8nfz7=SA!*&*jz6 ze;WD`}g zPCAbxFvaozPG=h7t_ol;fe-P4xg^OUw{sBHHf=!&8h?l&By?M=Lzb;X8mIg%>K;OT zvHi=zrO7jxlcfHR%^=Pyc?zhU7Fwq}zzn(jRwS7CaAS=kVtP4%^gyV~p75RY%c^$F z%6Y?K$B3R+*xM>AZ!j4)Y>mtYN}y`EG>hw({%7$BM z^6>;CRCGX$iKn`NP#4vxquSr?lb!1CVU&U}L5imUaLg}o#$)c+~a`-A!?xstK zI2?sW%|BZawni-NKO!nU2MXU_ETXXjb~Kh?z(^}Gk3>R?k(gud0o6mFyt?!g?0q${ zKZIK|o${_WE^701VzkbST)iYLXjt@osVj4b3XBVQ{zS}^<+Y3~otI1NjguAeoD)Z@ ztd=BUA5BFJ_`eHy5O4L*S?|d*%7h(5X&LBD!&}rC9Phn1swLazRxPGRib4_^p z(Si}yEL!3a_brA>AF>^i_%m#!xu?6L#_Yu0bpR9N@x*#X&`$N&DbsFIj*;m#3)M*5 zdEkWM?LAY>%m4X!@HtK?^gXy2c~lb?YE0F*wmfe2AF3m}iDx*Wv-0 zMAZGD{lU34URKDC`#1r*^BATB1F3bF3??we?q{Jo0|DBeeKXmu4ZUC6Xy>bBc{8#J z^cH-txv2vu(U_Zw-RF^idHbP7?6b*$8}wCq2W{4+9x#13n~!yTy?pIlkn{R(QN7Mp z+Ui5Jw^6_X`JPc2JpEl3cfBUW`E>Ci7CwD`;e9btespEgYBw!iHb+{+l?W63+Gz*m zBc|flU)$Pl7)v!4`d5dl)~>9y(0_q)NAQ1O2@QY zN0C?XdRwTJ%=!TzzR|NN&Kvaw$EbJgA7PYfuq$U39W6x{vHN}BxE^+7V;=!foQzb; zQ(2>3OiadHsx2u${d)G-9@p%~vv57hRd|eVeMH8<=Ov|nBZ)BV(fygK+sZlp5q7-4 zzN^151d74k4zchisbN1))(3IxdhNbU&LJ!bhyoK=h+t2Yxp%QD+3zUtLGA)IUS)eH z?##9W=%x*_qOI{w)CP|Xoj(;a%QUJipO~?_q_cegPFJb3<>xs3<~thRoXjpnf*09= zbVLpD1K#Vy#*SL^G|`jyZ3;5zKe|$cU^1C#chEn^v@)mFJJ;cr#@S8PGE#f9?x&xz zy`hrvSo&LzbhZnxdApu0T0U4DgJ#V`<4!+{&x>9oNWx8>Wd6Cy_BacNXPEiAEBb1Z zgp+_V&?7VY8dT99qmui`ZeRxbN4TS`(jk0#ID=8j<4&}KYlnA2rMq8I9XJr zNtvq|M>wtahOaqMbgV;Ux_zq4YEomJik_X)kd{Y51Zcu!zQIF#kyx*Lsqt7$-Gj7SHzxb(tQK9jHN5&#Cq)2UR>6r`Wb4??6+N*>oR;(x75xRF_ z-jSnoJDu0TJ+9vC##YC9ft^3IESW4nUEVL96gzhI$UpnSjBZ@z0@8FO4l-d1?(*q_ zJ#YKm;?px#@GX^xjm6OWD5nl~pOuBV5o{T9+VR%RYu@8K<}y8^Z_U_oUPT1AC#s~x zc(w=g{ail(qA*(6JYK3ZNJ~)fh*re26NrqY$T#pIf*Xp{g6_UF<%h2_sG^r8SOxFh z4eX-0Q+F|s+bdD-g&LLQPUSaRL>zRJdrQ_|rY3WzG}CPyMS2+81l}1cpQy*oBh5m? zioB89qr=SLo)3sc$~SjiYA)Dv=+*|@)fzX{W)^8PPB>;gPElY3zjwyo-8lsM`8eQf zCpW&p)O2IXxczW|C8gzUCRDO?tDjo7+JXm_Dkf#7TcBI1iqQO_^g|IS$+8%U-TH>2 z5@JWQ=Wo_eLJnmdoTw2PCQT8Y_LdWL^WIx`c?s(9ImVqSaY&`noYL;Ie#96;D!_-@ z=S8#5XH9A^#)3S9#_w5TrX8t`FdRu6)Rwr@LvOB+|Mf^Ddemmw8i&%-`K2r3O1`bVNH>&5Us-PI;c3vN2a ze;|Od<)E?(skro$HpC>ZBT*K3*7HSa1dWFF1u!xKcj`4I^3v_T zzgAz{nB~@1Ti?p%#BrCJ^c%ctjW}bak=6YCoM<&-YP^*N0XAx`t{g+E+q!b(IaJSH zX<1pz(+!H&KZe%pi|%;z5=Jphd(@xCDorCTTSXxOFX}QK9ggXimp-0lsamCLWWuXm zs=qMv-;_i#B)(XyXm2A%@-)JXvAcar;qn#`N63l)w~l#yy(2BHA-o0)0)e2<9k|8| zXl!wWJf`a>U72{O6V<5}bqX;mf&))d*kcRJ5Kb%c7YTRct(aZEq}=4h3ulufF(|w1 zst~zzCZsZH^vuMZL+28`xJ+(FM6Ko<5~aogt1_Wbg-`ni1vBC9VeenIH8f|5n-G3J zxBXPaZ~Q$06oNsJ;JKNgH1yI@=5+v$@zRj1>w5H?geQqZ@6;TrXpJGR58{cA)(+R= zERzX{hiZ;;hydV`Ho~>$piW>peg02!8jJAcF76+BFyQjOM9{eLYw`-YdradN1 z-}!iIZY{JUmhF4-9TTi~IF#4H&jz?{graI9B;$=z3T_^Gy?8NMG_?uGs-PU6NaxKD zS!HsA?ayy`W09c^m)`HiYWG_7)TxMVr2UXd(}sXw$UZ)YS-j<@EA*S}yi}mav;Y`I9{-R_p{=)khqRyou z&xt9+-A^&Psu3`C3i>4QJR43;rC_Uj|s1it#3&&5!#?wU)Xwd< zwdrUtzdVl7U`=5~!&i=ASW|JZmY{U)k|B{|+~8_{4<=?R}Gz!ZdH|AzqL9-7M|Y_MG)NJC>u&91|=<6 zb$XY<7g!taUM6NVS#AkH5O|%?k)_!;9!EmsKP|Pc^%+6%d*#^B`N*Kwr>UVQKNj?k z?@W3&#m<$py_4X-U)Pjwg-4OD9i1O0dLhyAP`P9VOeM`=u%PNI7J1msKS$rlN%Ry4 z{mIr(v>=|xD23AZB|<#7vmVZ-G-R?dv1l-8rl8$rJ;U-v*TCl6hp zbGzdZ@>8m~1kfJ@(?9(*k@z%#(JOu}QXVz%PDP|dSf_V>8U3?b+fckif*CYdF+PyK zKZmFo`U+vcJ>L%1NB??QMu7uwN;q)lN#o}_BNgJd_Tc}Pb3t428ESDFUD#N-JMaGy z;(j@-Jin~WE9w_dST@x;A_ta&T&hs;KU5(M@`%?@&8}{PRXB09ruO*EdY4ohLT;Vc&;P+3xk=dntl#*Gbhp5+Ac8lC@oS>#k52W{vbdQu)v{Z=M zYUkBQX%8_l1bSrXlocI#*caO-rn9_e7Em;i>sSkv*_f`HS+{<>qLr$w=B@UP;|&`N ztr!M=A43kb<;XS{8+<Uvc^-k!s)8lHFjAsI)^-tX*2bB^O+y#zg&0nHT zS!j`9-?U(8JGSC`ah&v-o_^Vk*>lGzR`TlL6`)s+!|^|sKEQmNhH)-Z!*=_P1dpz* zZv}tPgJhV&{MegmtiVv7^>N&2aama0QwvbCOLrmK70wUNeCbE0VW*v5z_i{k&}*qk znx@%VUBN3uJ&OlVvhQM|=aak%Hfr)8S*DFyUS8&-Jg~p?2+xpXuiJZO5H`uWl=h~( z(KLx5kHp2f%VTIQG_NQMz}{a*{pt~uZ=|p*2`ZYg~mE> zv;?ZVOS~T{M`)9A!F;?^C^Q?N?wE70KI160LcLja2Cap|4E&dkFLhtw5;h-c30X%E z(cja`4HORTIk_|Rd7wzX)UY>YK5}l^$mHSUw<&!``MuwoEz!x!pRb}HJA5!})<6uM z4yl9`PDvTwX^74zXBz{+f>>3Invxd-6Cmh>mh$6TKxmUv zh?LxCL`v`3wrZwTe8syEO2(-Vp>uS_e6^j_%$3R;n3;{G_%d@F9oK$!>Gsy8`^8O? zvkHav?{WDT^uN7^EpV`=b&=poxD>aEx+r7s&2)&SqX-ZRkFp1`ro5owR(#$USHTs(_Op%A&9@B)Vc6$SsdxONjm%pR_bo9SNuyjt zH;oX)8t2ASP=NL^2IVaiqVYz^i+DpUoEfeZAp$YM598LEBJ1>u$Kz@alJD)4a9v>_ z;!2kJqTX>n)9uf;fy(9qfGB#rFPtwpHEaAeGf!czF~j!e_wStzEE#8KHgWcq>>d9o z!%&TVDr6@)g~V~Zh~*#ovVUfvvX$!BUTQI-EkS^t68u&l`?3ZA=i@4q*9d-0jqwzA z-AQx2@^fqErL^oo2XwD-;DNw>kkIGS>|DuuB>6)CZslSM&Qw(9RizpdBpwlMtHb%k z!;O$6jP+G!BlC{91P$ev0JDnVor*9d;6A@i`2|9n=k3?V^4%(o0@*_u1nJf7+Gx1v z{UXFkw~zMfltm@{(P!J~isHNY4DjqhWy?o;;R=6k&Wan%ONv@~d}jd_Y8Ye*pG8KCAx)+Mo#Nx&sA|1gx>bIZ;@K zzd-N^=@LDeNuyt&D+_>X;19YhHTB^M3(xHt#S~dz)CGA}h(fY@=`BkrttJkzi2slK+X_Qyt<(&bs<~J&1NHwQR{IK%cw6gclswdeD zhYW)W$9z@tun8Zejd?JY51&Ox3}1u)aV5bhm^vBoMgO>veDD|Dj$fc_ntykg?b;hH zdk<+sQ|i4jFUNiC@e4vl>PRg?T$b9ZnB8uV1TwXr4OX_|*)2tA)9#71_=+^Ht3J8x`^I5@%+$?!RSmU#|jgJGt9&6X2|4A8b9#0hR%<02!k4THp zUa>te%5+Pc)v3HNmDp9kcwzx!Ma97{t3mg!%gla(G=Vh|Td^oir~sUNov)h@2cfGx zT@!%U;qCdE`%9!~_&MW7`nUo73%+ScrH8!dwc!WUij zbjk1PJGIZsbgnzWqI&p&u9RK<3>!A4YVD|~U!dPi^9%GbwmTa^3!vKc-UA#PJcP6& z@gHRE&$ky{-_XQXPF@8OW;+z(-g*Xxw!-pt5P|PutiX-$7MU6PV^NaS>Y>F|a zb~#0-w(`NBfBa}SX8Vb<#pgrHk+qP}yXwiJs@Kl0U13wbl9n-E6>R})L9HYK-v`!B zkp%zZXJEO_$HeZoe;(~mWbt?R;=KG2-0Ra~0*0MDuFtX!o#QS1%7PES^un5L$~i+*})z_M(5C9m2Iq-7%iR z&koyuCtS0=CHBCmFRtd+QD!2ip_Pmaslp*K48rvF`e25N!5abK%tTx40 z5#yDoGTudW#&o1V?GKQx0V6o6+p~#`?8NA-!=$w6fpXW-sF3E{uBZLQ%HP2E<|FvU zHx{R3f9nF|4vLJA%+G)BA9wga2xVhh1D|fW`)1v(cH+)Rc20SoXI^BT7`5hm(X>&g zK+kS=CQY_CRq`K-b#^Tf_5M(SyaO`Tye7Nr8{31@xux(!v&f+gIUa=Qhzp9{V0ZuXA(62RDY z35XhDq7z&EF6PEmdlfnXZ?^FIoW*|32vYkWsVEw*HSAl0EOr1oXD9$Apr$^{x_W3w zDkZ-zqQMUWrnCb#@&2qEv$DA0;7DO&vYr6Hb$M^AV!M=K>r1X}*u66FfZmfL$Jt=z zL?MY~V>%6qmrrZq_8Y*eu!G1)YTRZj*&P{K#VPeOqa?%xDKbr#G?>}q(cO;5`9!pD zZ-GqmZyIF+>$%xRBxD@^!A@8@i8hLP=W-)H?3H=1+~LM?ble*C3bXbOBXYtKf-gTMF^EF4UZwb zA9%jS%o2^hRy>SKhfziZ{sI+RUjo7%ux;@#8$o|P7 zPOU|LGAC`RG-_sc2;tZ_S5&6GUiIUeC?Q`P4Xg=(NfT6`ioSJq6)A{K-%|0~A7?xh z4rSL?(iLxKFt0lp3wjgu?ADk2;|u(hvAh@SQ7qY?RfNttQFz#JaF32@-E{rxjXL?P z9-Bd5Xh@PEO#Z=W(QwN^I9jsU6KM?!E7^Vtk#;2WZO*Yjmz@u!R8-RHOVc=n_qdEG zhp?S|R^E+0+-HEq+kng?kdEW33Xgc4FKnesrYj(PS?DW#q^-=}d1=Ml-_665ztqCg zo~GRa2MF;e==4LoUoGnb+JR$(u5;${bakzNpC9&krOvajlajiO3mx$ zf#+fpb0z7(e>$o~cjSGnnr41|TZ|-i{6SXGChiiKCFVGB8J7c~bpdQG<}~48Mct zR$}BPPee(3SAJ+i&$}BiR|Pgj)MJ*};5y+29oTai4B^&0Hx#+ z^~Z}0E~*=vN>oUU$5^CVlups+2|ZHAZ&>Sa~=OYgF6`Mb;y zaDw`=iD_hV@-A@@l10vN;&3!p%*bXywaDHE`4bm+0)AMwocG_TUT-zHn9fA&{R2tA z-ex;38M2-{gCVJMo|@V0r>fu2nd7*G24Nzv=UwljHQk*-NWe|IS18RVD|mm{^Y9(= z8(>e&E2gZ|7FE_Zp{qCX7g|3LtZVl-QSdwb?PG14A^v5z@BhVq`ssWLC~gGin1J4I zbQu9C`;9UpcbG@Y@UyA@0sbc&1F8B9DHlj&yi{ z=A<;O2~@T!RAn-SYu2I?!l@baq%lJAoh6lXkcOod=~cGC%d4c;shdfEK!)1;kZk^J z|5Ukhzv)8yUshn^$m6%e{wF752OQRB*Wi}slt1wcROP5v58Ix!(C0`X-!3S~9Pd3~ z)-~R9=_V{f(@j_yqt?DHkdn(YGMOEQd>rMe$%s-OaNcb$<15YKUQEDH@&;B-3y>$! z<6nybEJJ?k``aat{Fh5!3hXis=nzL?B8KFF4&oialulRIKv;T;JEN1_-MhGH!Gghm zW~B0)jqTc8uN=Fkqn;XD%IKcbNXj{?=U8QTa!rps(KNU!*}i~aS~rTo1{yF@e-im( zy&uU{YI`Z5Jg+{V;wN};r17j>R*(C$zma!)h!uVOhNbn;yPIx*z&KtWNwdN^1b%^J z{);XM;3ls|e-rQe_P+v)3xf_+?#?gJ5EzMryggm%Rj1w0dYIboQxE%CmmyKkVqa0M zvRSgQNY1g%a|WwPn6{J(vhI+%j}bj4EsDtNK1Do#$VaYcyXQ+Bx>Hl1u&+W3R9nX4 zR9RJ8x8!@V#o3D3MAiH={t+_#)%*Kzlm1Uf?9YrO+42UyzJ9X$Jbryh^}R92PLDrc z<0Rz7;4rML{7zUpWFwA}Lu&MXQ_9bqq%sy~#=x@uU1ds;k&8`1!wv~|ly8rNNWXP;%j{cz#|I9-lz)Vne z?>xrGJRH4Cq2WAkwF#HNK!HMY1NyS|kY%Dh8+nzpT;i(-a$QK(8%5r?r(#Nos_(Wd zHj_02jvA`wtWg0WE>LOe#a5D^&nJ zs>m-F$~w`a`^ny;K3puS-0k42;{I-prtEzFc4Gs6qpo| z_zQ&b-`R?I!ROiqK|xChW>zw zv~p}hOVX7jdrqkDtH-jjp~~0SZZdb@iaARpZV@#bw<3NAc<>1zhXKC4`tJw^7xCzy zZt36g@FT9(8Du=LD?DJf76^^=_l(&!PemriC&#gx;oixH?Pq?uRH+YZ;B zOl*Dn5kk2pCUdH>@|H?B-gYKMa#M`_7pOQ$uS|RM7sy?$SA9)u9<{P^r=l$HYZUE!`4d`xnB9SAp zdcih*Ihd0Gq7?$x4q-P^{=Sz^V&GZ;;EBNBO4>ixNvR>A^a}eH^U38rR~H1xF678y z9xvOJxjB(Moj$vAE%mtkX5sg-u8wncEot>Uh}g$48;BHFYd@IV50iHbuqubqsoGoJ zNe}wGIXYPhBHDbr{D)8dNypXQw)WK@h=A*X2pHpcobY2##wj~E4ru8HHgJ&UvLqZ% zr>ue`6QI|RzA~+$syD$uNXZv=E3g1(Fen^}KE+OTZB<_FvMs~UhHJN3D7*Cb%|!fY zLkS5A&|-JW*;2Ut$h!rl$h=)27#fn(9}(6DW(U_MtzMe>jvej(B>n@9QvX7NyxQ9~ z6uzlJpPxmp7tH2$w8?KeTmF;IL~<0qK99O?t@~wmSvVWUOn~5v@ZdBU71H)Q6~hQ< zO>iEHeg+84@cn`RwLc6%$tVFgBQp&RMg_6>LMYGMfON!a(Mr`$R~T~>BBW&5hJUe9 z)w?#mv`kA8gIznnQNxg7L!w<8R`a6*aZkN{$@N*?bd9l?aZ7c}Th5y1TG+I5QTU{w zq~s#WV0#dbICIdw%OAd>*Q0R(-=C&S*JwMY}Z%FNB9(sa#M{68MS))Aj7RHXj2hwuCKysvyP!XrL zGOM|5pjUu@R(6r(s~GJVpD;LOpO*zB-Wg=kMf7s7v_S)=Cv1I^Y(Zvv21F>5?*V^WW+2201DOiy=w;1wg0LdFRS z?Zs;abon3w#{cL9BvG&d?bx^b2ZBIyTbR@V@Zomx9~-5r_GLUd=7oECwWL9~T4H{A z3?xdE=4C*J=>Pi@RR8C#YE}TD%BlWwR*$ecNqSziiLyd%-GvS}W!U){+Jknc8}*NW zqGWFboczWY3f53L-3bRVs#O2x{R_ryBn9?rVV*73$D-X<<}BO|eda8B-`6T6Q7|pe z4orq1$v^SzmV%di{qHX}xg>pK4REO50JD_N^tb%rAVJPUIk4vckra|n|B%;~c=kWG={&m?fat+45CFqIUI`C4B?7cS?3A$~3J-h=maV<YF`3H_{9y7tu59m+;W_ExAd`atDqDm-hU)r?2E$?CimIn~Z<@;lgm;dJ+qVyN# z@`r~9^y^7ZuGl|Uu&X+;c$-A;WZ&u+WcB6M|hhQqejyTd^aH2MrU{8jC@5dZ4V)f7$znKev&k<4x zTi(hAaX)3~w}{FgOQhimP8dqh(vK;^zAvxP3Op(+^;!|VnRBuLu(vNnyiw)m>GQz{ zM{{alsp_8Ylp>njnOLV?#3)LDik!E^FhY81MaU0RKcQ`OzvwZPi3Ab z)0;+*K{?^&XE!L)uZE_R(ZkUx*#z~GB_;|Gu3SC(R5I_U3}T7Slu4;PZ#YhKkeR8y z10u$%YedZ@h^NL70M}9a=tuvLhGW)-gguJ{VRT`%P5LX%pt6ux@xeyRWdQOm&|wbM z{Uo<`i?2WZqo^TDfpIB%YpA_&S|#I2>h@y9AW1Kp2m4FLS?oZBTs5#^{vg1fDE+hj zwN+1z4i^U7{L;`>Y4t*X`OQZOD?KB}o4#)noNO~n8!Na_?J4)GT0U$<293jJ4UF}b z=tpk0ox%es+~%y|?6Dyi^mFXr2dZj=yRJj$<~6yGn07NMH(YW> z9HP#M_!U5=)d1qMNmsX%xBa?aURC4d`1W4j)Fyeq*68yPw!~X7IpcIaTHX~#Y5Vbu zI2vg>q)CDwwO*oOea!Xry%*XT-KkCtA&!TZ@riE6Y!S=u_hdo+Sjy&)mEaibO^XHB zh{yYzo!6z+vhxa))`#(SRGs&}Q|T>R*LX7tD(Y`ATL|LqLWMSn8CSeQUyK8YT8N{K z2?*K>V@N;w&{p?NUfidcC+wTXpTF(Dz$E_wa+zQ0Y>TCCvQB*kC)L?=cuI|0XbNX* zHng8K%uXiyey(bBgfqxoFHV?1Z@OO8brLQu>gU*{JiQhJbcS{b&CPbsw|rsq)RLF7 z9)1#1UuYR#4%?!;p*QrfeHp}HpH4L01DF0^&avF+JZ zxp3hZ#N-%x<@xM4{BTT^OLyJngT~iyTROJoJe#D7U%hGel0Xls@2&_>5vy=5LC9z( z@$`&8?8#XsgeqRMf#(k_FA2*?4d+2hN=ba`BcMykFhET_ zX%1n#{lT(I=E?O$>#;YhjSluhPYrYg_1a4BSF|5PrW9VejEduIVJoo+H#WL`2Gd@^|C7;J?VYI&n3Ng zH@&5O|FF6W`YzPapB3>Q{=Bc}CllQmlI8@{C#W-ZIA>{yCcIpDlFaEbC7f|;;RBQO zAb=!8Y5E+|1{XZ(>U+_0O1M-usiE(ES>@$|I2Sae&h!YtA*3Q8E01!+#&;K?Ucr!Y8`iQ zXLMQLR&7>zua(rr9Zd&~I%2ZWSWALv@uRhmU=i+g$3{`vU6-xEW)}=i2k;m4yj~yc zb7+sxZ}=RWjYK;?dHT5G+k2J8SxRd}5!`#Lp}T{RzDWeP z8Izl4>sx4?0^hOasj@fJ8EorN+*P%WW1N$GJO;k1R~ht?_B4x5Z@bO5W~B~sUcqe6 z0ALpD9uyP2uF{VJMFX!KU(>4_AfBUAJ4!saj1g}~a%G$r#iAaV)+Nl(gi=vXxkn!8 zvouUt!Bj<5T4wPbUo{fus-C|^RSyB$2~oce?lBfJX`ZM7V|v$}?h7pR3GJnlp|+y4 zuVwGa#`#}6YdY%=azCdmMqlYxhoLy(_Fn$JgyxiubR)Z3%eA zjO!`N^A3jgtq@Dumw2_RlOiO3^pmzH*AJvfSu zhC;m80*IGY)`~(kCaneb&D8{*QwBeFBo1-9ps(Q&_#cp`^a#9)#e^+9@HNUx-yCpc!u~2R8;_#PKqStc$-_BoVYw|M^!)VYM0PQ z@BKxELeRUiS3l6a)Zzgef$LzP;d&bxQf>;#zQOfK?D5x{#>y(5oFxN;r*xayLU&x` zYXWly?=Zd$TI=O+(S&1cFz&!EjtCGYzP`mZjEbrcm&8=Qk{L_hmO+*YKX$u-A7Gtj zMrMn#veJU8OQFJuxnk@|2+|OJpVUs*WnSpO)mz%I!y}$w4s@1A`|6IrGddM!JglmX z0L7`wRyDjHJ}EJQshLe_Tp1(WYFk0gMTW(P)t_8<%uMohGsW0&9o+lYRpyd9FxP9n zC5tM?7x(Aq$h!KsT~69blER+cy7a6n6v!Us$;k^aH6nYBpgtoxb0ofGU-X@!p=|1X z_R=1I*(0nyECxsRH@y@)9|B#b+wf2_@_BMaY8zoDre73Og}`LXRJN#Ly99A3E@oQu zWSBrKe;nFtN=I;LHq%}Gu@-Cmu-V&S$sY)Qzx?{St#5bIGe}A|d&bzbA1oDbd{v@k9U&rM3za2aQY6n8o0eaFt6NAkkm+d`0! z3UJG)HlD&oEwLhVSb@xzFvq$!h>`9%V{AF9(+;%)i0kbL10K%j2$^5<2f zwhf;&49G*YUm9FU-oqFy^=E*3S5NX3IMEsofLdx2-2D9aB66iO+1g*Twt2&DJwAY{ zi&x1$=}fGFdy9pQ$-9aSC(NtHYci#m^>}KB^7ZrU69yHYYnj(UL~lTe=?5yEIb)`~2|(2$9C$p-LZjed?+|8PDU7irRA5K5UeI zHb=&!6H9pB=bn@tc(&c?+Uavafwmby*@}+n>l4f3Yx-VGC^#)czFWQbQ}le4gZFYl zvCio(Y4*JynXKpEZxWvQ5(ZEqA0a+gs1~c)ezMJaUQ`&V?{-yDh>I4XJddqN8s|dT z5fJ~}QZ5CDYs@BxSSWN&x0{Er+b281?duEm1l3!Pd0`~2;A~m7{2gs1Z8#a@t)lb-x*xo#-7Q}wgs7X$6pG9YG z|D^_Y{Qe3Cip?ujby8O!{;09d6t^(FV9{`2@Lpr1LR+|X!#DOMVNZVL$B8$Wzi?9&HpsXg9X6BWWI;L+EQ1G)$2{a*VfV~@nW zVqo*_OLP?&(0+Jyr1Ve~ul4S!Q}261peOQ0X!m)`_r;Z`Z5GoU@tgIc^`Afy;A&(Q zE=Qet`kORCTvo#UBn|9neE?FdXdOF%)WBYAPR-LUPL*f5+AG1~{3J^OXAEXD#ha(s zoo01b-GR1Xp^gZE7mfjKLR_vCgs;PGGLQ!hb-Qu6=IbkN4zz468r=;J{KkDwg=4Zz zZ){J0f!13iebaPwRmZA|To9(p>8>yn8fUzE2O3oC;hl0DSh zgpGF3d|ohDAcT>k<6Ctw2Ri3RZO)Vc$2KMo^nW;%qhMWvD4aLkN?>nps)kc`gYDjR z)J_KERkiQkB`E*=?5#8;WJJWD1^Niy7cQkxbYQ|XwGn*SWLB5)qD0+^mFjDCiiT7^ zGZqY2SBgwu5wz(EP&;)Q%8O_d&J}O*zFSYNbrpWw>`t#nYF|ydNKxbPiKi(U6LvO4 zo@8|7<=P=FS$`^B4UE!j*0p|ZlD|zmHyx7f9=4!RPiIpbBy7)wp>-X>{aW7&`vfAtA}*I^Y)KYzP2?hh*JHKm>fuFI66 zp7@p*ei>Zhuv%eHH3IV!&^I%eZ6RT1s)5uY^B#5VDM0AI69=1~DgE9IXFe5+N-S_o z{(tVd{m^!5;1s?LI`!=3!``DyMY8E;RG#iNWc8_>@|F}U5Vp-*>g9`3)s6Qw&RH{= zcov5V5h%YyTFCUZVX3i&-eC998|zu1C}YF0wHkhbQo$B0ZIl;44wkRyIPa?&{Wag>EEU+|mNqJ|iz(U?7{dlhM%-ADws6g)iMz4(d*M_%6>+y`R2tkap^sxyUqHA0x{m)+u4$+w}KzbP}%u7n1J<4k2c|$RIap6ue|dKII+YcQzD&}Hx*GLW=f2n znfE4xgXi{s?)vC0*5k)^Om^lz31v_I&|}7$!admh=H!l4}^%)8T!)vy%$-q0#efbO zV4i!s#S_rSYwN)K9_OLxgit^c7ueD&veAZABBlmfASk^uDFVz_TTp;P2$SdlpC1Px z=pR-8?MuO@W7((bKv_yUz;hdbvVI*6waWgV)G$p5l-!p9>vGTO?JndeVK2J`%w@ml2GYPRa z#-|?F`RT^;{bjLJWRqu1t+Diq=2Rx6=16MpO3Y)d{M4GQvMZsEZQP0vz_6ka-#K6%=b|B+yBW7mKhNMR5KC-7?GoOZ?yr zQlqMtY$eU~w*663UwLF>C>|dZCt|kwEfx4aH z0lz?ZHUG_NTMeoaA?u@LHrM!w0M+_XjcFvKdx-*L@3Y5iWV1@Rk36Uw2c#I7FGL=% ztY=kQee}wE;Z$ofkh6ETY#9DAM8_>$YALV~*OoE~OXCIo)0Brve>qW!dS5nz)74J3 zRP2ayL*65fMr#)}Y{GMnX$iYWe<*>cj7{4s`{NS;=K41$*9{+2y5z+lJt0N}e<1w@ zk_P%u-c~Qj{M~DHJVT}Vfqc9;l-=RdAAFk!^~Til_Kic0EDOFlQ;g?Zt`_fP;bTnF zP0;+m{?LC%x|ZiH=X!{7w+gVTRUNIca?8Wd#_|uEU`PpS{)`@xex{$2IEjpKerdUQ{y^8<0H$yX&X3MugJc|AHGZKK!5x`M%$BA z{q$$-kDCVnv2}cegJsLiiQAIs^lLohvaJ+ube~j`n&3I0nv!@!eP`!qC{k`2=NBm3 z6{vd7{RsU#1^2g9*6lwiM!fGfrEm+VL_V8w;Bm+IoK%dqZ1S!ZjaSYU;LNmTTOG+K zqtZJSJGvW}IKBjZO4SO~R^K_HNRD0s1Ia1iI`%L8XR=ElZpX4(C;z1YAO2GTN&|f* z|Myz>sva0idKZtnyI^~59qGs#WGwByQ+2~lNbumJMO0$-x8-pOXU`B8D&wyQkz=iV z``1*}zP2S^sW%o*;f`*RdX7akwX){QrnhF=Smt!kl#ss9MUNz8DxFONyaKuzS7Wb! z${-1|E&cHC;_TQLQCHH96X3%Fr6)Cj8lhc5|6aIfIJ*E?_;s}Kw zOJqNdj{ z-pX;1K_J#NFu}7nrkM34ES+qzpZAED9$)NORyHT)aUTKRkLCM_1Sx?M(IhCi)MQ=6 zNqTTr5U^fK!haPTpuF=Rh>cU9$s;&0^1^}$kgLSM%`SGJ&S&PswT-7pmg+Axd~G2S zmh5?ln1+c3kynPGUstRy-1irtuFG(*%jEVDBeaK*4S2I(ze_O>?2g=QrwnJS1nqcr z{Kb>FA^s0Mi7jJrkF;0|B9t%Kshl$gzcy5F;y7VhuyU5BPSwunzD_(Z`iBdFkp@nC zy81$-?94@)o1wk2sQ9r6)+CjRWq*WH?dzxqSsvkf*w`Nw>1oCP&WVuuH|Fr~orp7& zL^!znvhqO3=j+h0Um@T{Xq|R{!6i}q8vdgBRRWcK)KU9Y%$D5`M!_HZ29VZVNEZ1U zbmdn`uM%B?Yi^>}|H?CfkM;kfli0ocFR32+m&*Uoq}r70V1@dHA|l-?UsVb>r?w19 z?fEXq;F@OKB|>gDo^1g}{OwK0W5NSIU~ji7gk4I$bw*>_akZ{?!r^1a<&%V0yrV(` zQCD_S;XjpUqoIZDf!lv2%Y^BFqG?RU_Ld)gF_wQ}N^06=K|zP~(T;fD0Ue+dPxpSL zKW}tzSFv4!Q);9Dm}$~SWab&`K~<&?9o+E~cz*bznL!GJ$n=C;A^Fw*NcJx580E=6 z8npk_-gO5xoqhX2l#T(VNec>!3kZT@1Y-gsAhL)-$|5CF6fq(yElMDO(t=16M0AN# z1f+=uBE2^YD2fqWN_ujlWZ~wSS<~x)5-g{5|oO92) zsZ5Ji9K7`IFL3aO=RqSsy+j%<@i7C-{K{U2_WGQWSFJSeFksw<-vx($CGayXhS;`R z^+wDY!xLjgKDr0i_Lx~VL7|=Yv$A3}>S>MbGg6mVtKoV0zi*@4UJ{Pc2nr?mi0#4P zY`45u?9l@h%Hy=IuAQnM?P-N-$qdX!y^E}T^)(%FuRZ6E$;Kc9f<_rf8yuFdcAPo8 zF55R>Kl$Q?kDm|N3pt5E0&f4fPRPBYPkr(BAIkj?m-8>WGsogaWaE%l*{5{qKWk{> zmV+CqhAq0z+)l;Gw5&Z&c?u;DFKrkbRaKWNLTQ|4PK0jim2)0MU2Xcw=BF(FQxWYd z#*fx!9=I-jZujjHgLRZuiV%ICCq)E6p{bZjRu-?%fR>{-8 zHxb$j-tWBxs8eyvw*Z(M;I0KY-t`7JcA4bh?dqSE)$ao1_jij*$%RE3>X>GM^nTJN zQ>i0--weSIRIbe4k#iF~eYfGN}w1`l@ z)6vOD!fKy(RqgTb*7d56BiJ+~w|O1-Vf>(^@Zb{zgNCldJMP?u&h5c2;+Np1p4i!K z*%KFt%$KeJCfy|h$olJRa)5=1WdlU8fALy9lZIP?wk`;+x~rHW$=h3j%A@^^1&P z04s|J)&tN591v4HlottF`~k)&p{<~^>igTE;6W6L3C`K^04`~EDP4iTz;b>w!;(o7 zgifSq)$oByf=2xS^!++bM=DmfPGS)E0-rJ3ghC=JILMnf=y@^M#S8UHY#kYUHas(c zw}q5_JliNyxh71{Xd^oH!V9h)ZINu-J#+5Z)yaus-f%65YZ+?6Uxuo&9h^D1V*>|c-MkkHPNX3<-+f6j+v4n{StY!W z$=4?52~9==djCwolX;Rl%A)jyAy`!1X6Pp=PQAyw#lwbyN)62fbC$<&dmJUW7}^rL zhLzj<^HlaPjp|JU1VMid%&b$T?X!yiUO-{dsp3^1OPgN;0Sp5)BwF zk2*&jeVYFqoCy|}9)>N+azV@~sv5fzp!$^m-$U%r`y56Vo0M>N58sr7`d`*3%IuJ5 zYN$Lu7FqL9mwu+fKsV2MPW7(J^FjiSZCUE*;@#gJ!S(iAJD=_3YJzAg#uqUksAR*+ z2v4KV!WI(>iu*#fyd|7E1JKd)CoDr;{HH2pI+_Ohvg`si-s`0xJwz+RwL~JW$rju( z&-BJBh02}EI8hOQ507ofI5{>Xu3RJ`Qr{xzt`Uhz@w6BYK=zW^r%EBj7xf_6rVqpi zL_r(^Ord*BI0pzQwGBYrJpI2y;+#r}v(kbKvFuPhN|{CD$uodSu8D)SGHA9{5SY?1fex_IgsgySa($ zXFeVdxcx_8_5;wG2DJ^bvX5CbO zO_l!D9${6Eb=vG!8Q(`;KI8p<|zjBf5eQ3RWV_u?5oNS)D`5z>w%GqR}uu%uA~BqS~jQnK_fOvQ@Y zkz{iA*3*?(Z;Xal906KAFhW2Kub?T`&7Wz_gNA?DAib%DFt%^7&z7Huq6mI!Hg_#N zh>=w+v7F=Jlz7KxpwFSob*Ex6JwZ_>8g-P|R79)$@v0*6?j;*%ZYUcU7$;2w zbl$8+noM9ma#hhwv>lyxF@_}U=bKy`GQEv}BtZ*5Rz5t6x?lRUZOT;gi5N zB8Ys%w>N-_`KV^s@9^A~JygI>(_H=#TKXBd9CsSPQA5bLgWCf_)a`^_SVdm1yg>GS z9MyiIVhC3379qMl{O4;0$XQ>lB9RTg{ESbC%Za_S)Ywq535TjHOI_jj-kF3HoR$IU zIGe;=_lWn0pWQl=7Ni*=481)**0_|%6Io{MRuWxkVvdKqzkJ@>@)ZJOl$0&J%}PFi zxD?Z(TPYAIE*}MnkFZr6rgb2&a3||W4{7D4B7<+=Jyl|+?JZ2l$Udp2h8<#j_A&iz zxijrZxN~9yKPp<3Hv>1BpT0KKClw;v?={UDUPk;#=^>Vvjz_(+&S(+NDpwAuiF&8G z^{qoNpSRF@_~5ws7n`1*owx$g%W@fmeJ$~01w$K?1LHk04^kCKo=Fq)l~Ze_Fh(mw zJQI;7OESpVePWZRk+8|NY?Z4C=S+`(gs?#h6H)PT^I)D9MDYGgQz;1MJHr87<-Wa#i$GFQaGDN7 zE%~jJS;r>dtrE0#Nq6uae6GU}x-4c#*CYy^&8*=xz&Gf-U@>*&EZ02TNpjzm#!Zs> zf@R9S$=XV__}0x8V#b{cO0kV{kRJ3}uGUg{CUyJ3sB<5-eDdIr$8Sa5c>$qT3Ru0_C?>p3r(Tg@0+~-v&oK;qB%GZ$I zOjq)6QOQ4A{h@1r>J;vozjf>)RoH8LbW8lsW0V?Jk-ZEpkiq9wf%9qGJ=^tS@IuGY zu(o|SJGUg{t#ZnLchUv*K}V9FUGbRmcy+s4DmmoU{-aOaAeEIItEQ5P?)8=te#!h{ zIY+m!F?U^n?|O(gGWD$Y?&}$`GGks+5G-lz(0RGHwoYv*tIBZ$b^R2&POM?;c-+ZX z1mhrI@oI~LoH*^*GQI+Le2Q&vU%ol=EKFDJ`j&I+G?mdYC_~&WO?*IarV!U@!MkGM zSaC1oR_z1Q!Tl|)?)A&ri;;vpBOx(I;Y4U}{x?#-eC9i-#2LFviF~e#{jkQFm^zhcoLa$J3t*iacp?yG~AZYR=S8akiH1q>UMMp|`4mMxl z>xmP6Ctq2~A*MsB|Kehv z1R4ayr;HMLa#(5NY*oE?e)h`0E-(AF61(%4r@4-^C^e9~dr0v8{biW<1Yi)dJ=s73 zN6EHgxh19jr?>H5l4tLHg*daYpC{45Xcn6dv-LB`;)cw`LB@clh{>M z34H|;J|M4~D!4RG0yz&1r;q(;6<=hp;x{biHD);*J!Z_S9H}3F9l8*zwTgA~S8<#J zLtlz`s{6|kVhO(V%RIc69EV!P7RYZIu9stF3h&>^vxQG(YVtzNXS_zbzhU=;zZdqO zCHen1#ek5QuV|l{-<6L_Is58kQI0ObN5M=0#g8ux2Y%w@a{g~}BfB)V!u*zhjk93? zw{&YV8+vcj5YdpZW@4%J%EFDnOvzVnRppg2?P_}4i%xe;Hb@^g1~;t9l~j;4yHY;* zkl{9GbIlRGzW^`$z@M$=KYw2d?^I>w-r*;0`(HO;>Gi(PO`P8lEa<*bOGAxGBc(8G zS;*F=MO)Il!@U9bEK)bu+`w7+DpB}8rDmJdSrxf%g6d8qbw(H-bXpinV`5N-#Y@F! ziaiJ(fF5OS&DF{XO`o|}+!!%(p&QYcosP`&t2P&VLVAa>4J0e_pr_Evlwc)US5|0! zc5dWTYsIRyuQA9gB?CpCBqQ?|>w;fnp`b*oUYsl1qrYADAnRmpar6B{r3NhNXFH{u zQv2(iG4VOd#sXpBlJ^^2DHEG$yB?kb{wbYD&7VpE;IVMIVx(zsvgw1B-Q1|qwSf%H zx5L*}YoD!Ap>EgINFUI!UPo*^q+QNYQf-yws#eA$9RSJ`oYW4PYNKFs!=(5z{43HaqqpN~i53nD(@y9#dmMpf(?%#BtKiTjlq4GnR*7vZ+-_O2}!T#Qtf4MJwU;F+8XrV}V literal 0 HcmV?d00001 diff --git a/ppstructure/docs/layout/layout_res.jpg b/ppstructure/docs/layout/layout_res.jpg new file mode 100644 index 0000000000000000000000000000000000000000..93b3a8bef3bfc9f5c80a9505239af05d526b45a7 GIT binary patch literal 461510 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%0D>VErH_I+AE_v1p% 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

1*3&{;#k{_|@u(@7vPFX%w(#U0x_abiG~ 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

4pj0jh$VDs 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
?XJ?}kNm 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 HNSTfj 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%0DPUeZdW8o5Thb7jMrUaa^qE1%z-LG~ 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 literal 0 HcmV?d00001 diff --git a/ppstructure/layout/README.md b/ppstructure/layout/README.md index 3a4f52917..3762544b8 100644 --- a/ppstructure/layout/README.md +++ b/ppstructure/layout/README.md @@ -1,127 +1,469 @@ -English | [简体中文](README_ch.md) -- [Getting Started](#getting-started) - - [1. Install whl package](#1--install-whl-package) - - [2. Quick Start](#2-quick-start) - - [3. PostProcess](#3-postprocess) - - [4. Results](#4-results) - - [5. Training](#5-training) +- [1. 简介](#1-简介) -# Getting Started +- [2. 安装](#2-安装) + + - [2.1 安装PaddlePaddle](#21-安装paddlepaddle) + - [2.2 安装PaddleDetection](#22-安装paddledetection) + +- [3. 数据准备](#3-数据准备) + + - [3.1 英文数据集](#31-英文数据集) + - [3.2 更多数据集](#32-更多数据集) + +- [4. 开始训练](#4-开始训练) + + - [4.1 启动训练](#41-启动训练) + - [4.2 FGD蒸馏训练](#42-FGD蒸馏训练) + +- [5. 模型评估与预测](#5-模型评估与预测) + + - [5.1 指标评估](#51-指标评估) + - [5.2 测试版面分析结果](#52-测试版面分析结果) + +- [6 模型导出与预测](#6-模型导出与预测) + + - [6.1 模型导出](#61-模型导出) + + - [6.2 模型推理](#62-模型推理) + +# 版面分析 + +## 1. 简介 + +版面分析指的是对图片形式的文档进行区域划分,定位其中的关键区域,如文字、标题、表格、图片等。版面分析算法基于[PaddleDetection](https://github.com/PaddlePaddle/PaddleDetection)的轻量模型PP-PicoDet进行开发。 + +
+ +
+ + + +## 2. 安装依赖 + +### 2.1. 安装PaddlePaddle + +- **(1) 安装PaddlePaddle** -## 1. Install whl package ```bash -wget https://paddleocr.bj.bcebos.com/whl/layoutparser-0.0.0-py3-none-any.whl -pip install -U layoutparser-0.0.0-py3-none-any.whl +python3 -m pip install --upgrade pip + +# GPU安装 +python3 -m pip install "paddlepaddle-gpu>=2.2" -i https://mirror.baidu.com/pypi/simple + +# CPU安装 +python3 -m pip install "paddlepaddle>=2.2" -i https://mirror.baidu.com/pypi/simple +``` +更多需求,请参照[安装文档](https://www.paddlepaddle.org.cn/install/quick)中的说明进行操作。 + +### 2.2. 安装PaddleDetection + +- **(1)下载PaddleDetection源码** + +```bash +git clone https://github.com/PaddlePaddle/PaddleDetection.git ``` -## 2. Quick Start +- **(2)安装其他依赖 ** -Use LayoutParser to identify the layout of a document: - -```python -import cv2 -import layoutparser as lp -image = cv2.imread("doc/table/layout.jpg") -image = image[..., ::-1] - -# load model -model = lp.PaddleDetectionLayoutModel(config_path="lp://PubLayNet/ppyolov2_r50vd_dcn_365e_publaynet/config", - threshold=0.5, - label_map={0: "Text", 1: "Title", 2: "List", 3:"Table", 4:"Figure"}, - enforce_cpu=False, - enable_mkldnn=True) -# detect -layout = model.detect(image) - -# show result -show_img = lp.draw_box(image, layout, box_width=3, show_element_type=True) -show_img.show() +```bash +cd PaddleDetection +python3 -m pip install -r requirements.txt ``` -The following figure shows the result, with different colored detection boxes representing different categories and displaying specific categories in the upper left corner of the box with `show_element_type` +## 3. 数据准备 + +如果希望直接体验预测过程,可以跳过数据准备,下载我们提供的预训练模型。 + +### 3.1. 英文数据集 + +下载文档分析数据集[PubLayNet](https://developer.ibm.com/exchanges/data/all/publaynet/)(数据集96G),包含5个类:`{0: "Text", 1: "Title", 2: "List", 3:"Table", 4:"Figure"}` + +``` +# 下载数据 +wget https://dax-cdn.cdn.appdomain.cloud/dax-publaynet/1.0.0/publaynet.tar.gz +# 解压数据 +tar -xvf publaynet.tar.gz +``` + +解压之后的**目录结构:** + +``` +|-publaynet + |- test + |- PMC1277013_00004.jpg + |- PMC1291385_00002.jpg + | ... + |- train.json + |- train + |- PMC1291385_00002.jpg + |- PMC1277013_00004.jpg + | ... + |- val.json + |- val + |- PMC538274_00004.jpg + |- PMC539300_00004.jpg + | ... +``` + +**数据分布:** + +| File or Folder | Description | num | +| :------------- | :------------- | ------- | +| `train/` | 训练集图片 | 335,703 | +| `val/` | 验证集图片 | 11,245 | +| `test/` | 测试集图片 | 11,405 | +| `train.json` | 训练集标注文件 | - | +| `val.json` | 验证集标注文件 | - | + +**标注格式:** + +json文件包含所有图像的标注,数据以字典嵌套的方式存放,包含以下key: + +- info,表示标注文件info。 + +- licenses,表示标注文件licenses。 + +- images,表示标注文件中图像信息列表,每个元素是一张图像的信息。如下为其中一张图像的信息: + + ``` + { + 'file_name': 'PMC4055390_00006.jpg', # file_name + 'height': 601, # image height + 'width': 792, # image width + 'id': 341427 # image id + } + ``` + +- annotations,表示标注文件中目标物体的标注信息列表,每个元素是一个目标物体的标注信息。如下为其中一个目标物体的标注信息: + + ``` + { + + 'segmentation': # 物体的分割标注 + 'area': 60518.099043117836, # 物体的区域面积 + 'iscrowd': 0, # iscrowd + 'image_id': 341427, # image id + 'bbox': [50.58, 490.86, 240.15, 252.16], # bbox [x1,y1,w,h] + 'category_id': 1, # category_id + 'id': 3322348 # image id + } + ``` + +### 3.2. 更多数据集 + +我们提供了CDLA(中文版面分析)、TableBank(表格版面分析)等数据集的下连接,处理为上述标注文件json格式,即可以按相同方式进行训练。 + +| dataset | 简介 | +| ------------------------------------------------------------ | ------------------------------------------------------------ | +| [cTDaR2019_cTDaR](https://cndplab-founder.github.io/cTDaR2019/) | 用于表格检测(TRACKA)和表格识别(TRACKB)。图片类型包含历史数据集(以cTDaR_t0开头,如cTDaR_t00872.jpg)和现代数据集(以cTDaR_t1开头,cTDaR_t10482.jpg)。 | +| [IIIT-AR-13K](http://cvit.iiit.ac.in/usodi/iiitar13k.php) | 手动注释公开的年度报告中的图形或页面而构建的数据集,包含5类:table, figure, natural image, logo, and signature | +| [CDLA](https://github.com/buptlihang/CDLA) | 中文文档版面分析数据集,面向中文文献类(论文)场景,包含10类:Table、Figure、Figure caption、Table、Table caption、Header、Footer、Reference、Equation | +| [TableBank](https://github.com/doc-analysis/TableBank) | 用于表格检测和识别大型数据集,包含Word和Latex2种文档格式 | +| [DocBank](https://github.com/doc-analysis/DocBank) | 使用弱监督方法构建的大规模数据集(500K文档页面),用于文档布局分析,包含12类:Author、Caption、Date、Equation、Figure、Footer、List、Paragraph、Reference、Section、Table、Title | + + +## 4. 开始训练 + +提供了训练脚本、评估脚本和预测脚本,本节将以PubLayNet预训练模型为例进行讲解。 + +如果不希望训练,直接体验后面的模型评估、预测、动转静、推理的流程,可以下载提供的预训练模型,并跳过本部分。 + +``` +mkdir pretrained_model +cd pretrained_model +# 下载并解压PubLayNet预训练模型 +wget https://paddleocr.bj.bcebos.com/ppstructure/models/layout/picodet_lcnet_x1_0_layout.pdparams +``` + +### 4.1. 启动训练 + +开始训练: + +* 修改配置文件 + +如果你希望训练自己的数据集,需要修改配置文件中的数据配置、类别数。 + + +以`configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x1_0_layout.yml` 为例,修改的内容如下所示。 + +```yaml +metric: COCO +# 类别数 +num_classes: 5 + +TrainDataset: + !COCODataSet + # 修改为你自己的训练数据目录 + image_dir: train + # 修改为你自己的训练数据标签文件 + anno_path: train.json + # 修改为你自己的训练数据根目录 + dataset_dir: /root/publaynet/ + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + # 修改为你自己的验证数据目录 + image_dir: val + # 修改为你自己的验证数据标签文件 + anno_path: val.json + # 修改为你自己的验证数据根目录 + dataset_dir: /root/publaynet/ + +TestDataset: + !ImageFolder + # 修改为你自己的测试数据标签文件 + anno_path: /root/publaynet/val.json +``` + +* 开始训练,在训练时,会默认下载PP-PicoDet预训练模型,这里无需预先下载。 + +```bash +# GPU训练 支持单卡,多卡训练 +# 训练日志会自动保存到 log 目录中 + +# 单卡训练 +python3 tools/train.py \ + -c configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x1_0_layout.yml \ + --eval + +# 多卡训练,通过--gpus参数指定卡号 +python3 -m paddle.distributed.launch --gpus '0,1,2,3' tools/train.py \ + -c configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x1_0_layout.yml \ + --eval +``` + +正常启动训练后,会看到以下log输出: + +``` +[08/15 04:02:30] ppdet.utils.checkpoint INFO: Finish loading model weights: /root/.cache/paddle/weights/LCNet_x1_0_pretrained.pdparams +[08/15 04:02:46] ppdet.engine INFO: Epoch: [0] [ 0/1929] learning_rate: 0.040000 loss_vfl: 1.216707 loss_bbox: 1.142163 loss_dfl: 0.544196 loss: 2.903065 eta: 17 days, 13:50:26 batch_cost: 15.7452 data_cost: 2.9112 ips: 1.5243 images/s +[08/15 04:03:19] ppdet.engine INFO: Epoch: [0] [ 20/1929] learning_rate: 0.064000 loss_vfl: 1.180627 loss_bbox: 0.939552 loss_dfl: 0.442436 loss: 2.628206 eta: 2 days, 12:18:53 batch_cost: 1.5770 data_cost: 0.0008 ips: 15.2184 images/s +[08/15 04:03:47] ppdet.engine INFO: Epoch: [0] [ 40/1929] learning_rate: 0.088000 loss_vfl: 0.543321 loss_bbox: 1.071401 loss_dfl: 0.457817 loss: 2.057003 eta: 2 days, 0:07:03 batch_cost: 1.3190 data_cost: 0.0007 ips: 18.1954 images/s +[08/15 04:04:12] ppdet.engine INFO: Epoch: [0] [ 60/1929] learning_rate: 0.112000 loss_vfl: 0.630989 loss_bbox: 0.859183 loss_dfl: 0.384702 loss: 1.883143 eta: 1 day, 19:01:29 batch_cost: 1.2177 data_cost: 0.0006 ips: 19.7087 images/s +``` + +- `--eval`表示训练的同时,进行评估, 评估过程中默认将最佳模型,保存为 `output/picodet_lcnet_x1_0_layout/best_accuracy` 。 + +**注意,预测/评估时的配置文件请务必与训练一致。** + +### 4.2. FGD蒸馏训练 + +PaddleDetection支持了基于FGD([Focal and Global Knowledge Distillation for Detectors](https://arxiv.org/abs/2111.11837v1))蒸馏的目标检测模型训练过程,FGD蒸馏分为两个部分`Focal`和`Global`。`Focal`蒸馏分离图像的前景和背景,让学生模型分别关注教师模型的前景和背景部分特征的关键像素;`Global`蒸馏部分重建不同像素之间的关系并将其从教师转移到学生,以补偿`Focal`蒸馏中丢失的全局信息。 + +更换数据集,修改【TODO】配置中的数据配置、类别数,具体可以参考4.1。启动训练: + +```bash +python3 -m paddle.distributed.launch --gpus '0,1,2,3' tools/train.py \ + -c configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x1_0_layout.yml \ + --slim_config configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x2_5_layout.yml \ + --eval +``` + +- `-c`: 指定模型配置文件。 +- `--slim_config`: 指定压缩策略配置文件。 + +## 5. 模型评估与预测 + +### 5.1. 指标评估 + +训练中模型参数默认保存在`output/picodet_lcnet_x1_0_layout`目录下。在评估指标时,需要设置`weights`指向保存的参数文件。评估数据集可以通过 `configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x1_0_layout.yml` 修改`EvalDataset`中的 `image_dir`、`anno_path`和`dataset_dir` 设置。 + +```bash +# GPU 评估, weights 为待测权重 +python3 tools/eval.py \ + -c configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x1_0_layout.yml \ + -o weigths=./output/picodet_lcnet_x1_0_layout/best_model +``` + +会输出以下信息,打印出mAP、AP0.5等信息。 + +```py + Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.935 + Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.979 + Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.956 + Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.404 + Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.782 + Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.969 + Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.539 + Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.938 + Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.949 + Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.495 + Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.818 + Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.978 +[08/15 07:07:09] ppdet.engine INFO: Total sample number: 11245, averge FPS: 24.405059207157436 +[08/15 07:07:09] ppdet.engine INFO: Best test bbox ap is 0.935. +``` + +使用FGD蒸馏模型进行评估: + +``` +python3 tools/eval.py \ + -c configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x1_0_layout.yml \ + --slim_config configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x2_5_layout.yml \ + -o weights=output/picodet_lcnet_x2_5_layout/best_model +``` + +- `-c`: 指定模型配置文件。 +- `--slim_config`: 指定蒸馏策略配置文件。 +- `-o weights`: 指定蒸馏算法训好的模型路径。 + +### 5.2. 测试版面分析结果 + + +预测使用的配置文件必须与训练一致,如您通过 `python3 tools/train.py -c configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x1_0_layout.yml` 完成了模型的训练过程。 + +使用 PaddleDetection 训练好的模型,您可以使用如下命令进行中文模型预测。 + + +```bash +python3 tools/infer.py \ + -c configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x1_0_layout.yml \ + -o weights='output/picodet_lcnet_x1_0_layout/best_model.pdparams' \ + --infer_img='docs/images/layout.jpg' \ + --output_dir=output_dir/ \ + --draw_threshold=0.4 +``` + +- `--infer_img`: 推理单张图片,也可以通过`--infer_dir`推理文件中的所有图片。 +- `--output_dir`: 指定可视化结果保存路径。 +- `--draw_threshold`:指定绘制结果框的NMS阈值。 + +预测图片如下所示,图片会存储在`output_dir`路径中。 + +使用FGD蒸馏模型进行测试: + +``` +python3 tools/infer.py \ + -c configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x1_0_layout.yml \ + --slim_config configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x2_5_layout.yml \ + -o weights='output/picodet_lcnet_x2_5_layout/best_model.pdparams' \ + --infer_img='docs/images/layout.jpg' \ + --output_dir=output_dir/ \ + --draw_threshold=0.4 +``` + + + +## 6. 模型导出与预测 + + +### 6.1 模型导出 + +inference 模型(`paddle.jit.save`保存的模型) 一般是模型训练,把模型结构和模型参数保存在文件中的固化模型,多用于预测部署场景。 训练过程中保存的模型是checkpoints模型,保存的只有模型的参数,多用于恢复训练等。 与checkpoints模型相比,inference 模型会额外保存模型的结构信息,在预测部署、加速推理上性能优越,灵活方便,适合于实际系统集成。 + +版面分析模型转inference模型步骤如下: + +```bash +python3 tools/export_model.py \ + -c configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x1_0_layout.yml \ + -o weights=output/picodet_lcnet_x1_0_layout/best_model \ + --output_dir=output_inference/ +``` + +* 如无需导出后处理,请指定:`-o export.benchmark=True`(如果-o已出现过,此处删掉-o) +* 如无需导出NMS,请指定:`-o export.nms=False` + +转换成功后,在目录下有三个文件: + +``` +output_inference/picodet_lcnet_x1_0_layout/ + ├── model.pdiparams # inference模型的参数文件 + ├── model.pdiparams.info # inference模型的参数信息,可忽略 + └── model.pdmodel # inference模型的模型结构文件 +``` + +FGD蒸馏模型转inference模型步骤如下: + +```bash +python3 tools/export_model.py \ + -c configs/picodet/legacy_model/application/publayernet_lcnet_x1_5/picodet_student.yml \ + --slim_config configs/picodet/legacy_model/application/publayernet_lcnet_x1_5/picodet_teacher.yml \ + -o weights=./output/picodet_lcnet_x2_5_layout/best_model \ + --output_dir=output_inference/ +``` + + + +### 6.2 模型推理 + +版面恢复任务进行推理,可以执行如下命令: + +```bash +python3 deploy/python/infer.py \ + --model_dir=output_inference/picodet_lcnet_x1_0_layout/ \ + --image_file=docs/images/layout.jpg \ + --device=CPU +``` + +- --device:指定GPU、CPU设备 + +模型推理完成,会看到以下log输出 + +``` +------------------------------------------ +----------- Model Configuration ----------- +Model Arch: PicoDet +Transform Order: +--transform op: Resize +--transform op: NormalizeImage +--transform op: Permute +--transform op: PadStride +-------------------------------------------- +class_id:0, confidence:0.9921, left_top:[20.18,35.66],right_bottom:[341.58,600.99] +class_id:0, confidence:0.9914, left_top:[19.77,611.42],right_bottom:[341.48,901.82] +class_id:0, confidence:0.9904, left_top:[369.36,375.10],right_bottom:[691.29,600.59] +class_id:0, confidence:0.9835, left_top:[369.60,608.60],right_bottom:[691.38,736.72] +class_id:0, confidence:0.9830, left_top:[369.58,805.38],right_bottom:[690.97,901.80] +class_id:0, confidence:0.9716, left_top:[383.68,271.44],right_bottom:[688.93,335.39] +class_id:0, confidence:0.9452, left_top:[370.82,34.48],right_bottom:[688.10,63.54] +class_id:1, confidence:0.8712, left_top:[370.84,771.03],right_bottom:[519.30,789.13] +class_id:3, confidence:0.9856, left_top:[371.28,67.85],right_bottom:[685.73,267.72] +save result to: output/layout.jpg +Test iter 0 +------------------ Inference Time Info ---------------------- +total_time(ms): 2196.0, img_num: 1 +average latency time(ms): 2196.00, QPS: 0.455373 +preprocess_time(ms): 2172.50, inference_time(ms): 11.90, postprocess_time(ms): 11.60 +``` + +- Model:模型结构 +- Transform Order:预处理操作 +- class_id、confidence、left_top、right_bottom:分别表示类别id、置信度、左上角坐标、右下角坐标 +- save result to:可视化版面分析结果保存路径,默认保存到`./output`文件夹 +- Inference Time Info:推理时间,其中preprocess_time表示预处理耗时,inference_time表示模型预测耗时,postprocess_time表示后处理耗时 + +可视化版面结果如下图所示
- +
-`PaddleDetectionLayoutModel`parameters are described as follows: -| parameter | description | default | remark | -| :------------: | :------------------------------------------------------: | :---------: | :----------------------------------------------------------: | -| config_path | model config path | None | Specify config_ path will automatically download the model (only for the first time,the model will exist and will not be downloaded again) | -| model_path | model path | None | local model path, config_ path and model_ path must be set to one, cannot be none at the same time | -| threshold | threshold of prediction score | 0.5 | \ | -| input_shape | picture size of reshape | [3,640,640] | \ | -| batch_size | testing batch size | 1 | \ | -| label_map | category mapping table | None | Setting config_ path, it can be none, and the label is automatically obtained according to the dataset name_ map, You need to specify it manually when setting model_path | -| enforce_cpu | whether to use CPU | False | False to use GPU, and True to force the use of CPU | -| enforce_mkldnn | whether mkldnn acceleration is enabled in CPU prediction | True | \ | -| thread_num | the number of CPU threads | 10 | \ | -The following model configurations and label maps are currently supported, which you can use by modifying '--config_path' and '--label_map' to detect different types of content: -| dataset | config_path | label_map | -| ------------------------------------------------------------ | ------------------------------------------------------------ | --------------------------------------------------------- | -| [TableBank](https://doc-analysis.github.io/tablebank-page/index.html) word | lp://TableBank/ppyolov2_r50vd_dcn_365e_tableBank_word/config | {0:"Table"} | -| TableBank latex | lp://TableBank/ppyolov2_r50vd_dcn_365e_tableBank_latex/config | {0:"Table"} | -| [PubLayNet](https://github.com/ibm-aur-nlp/PubLayNet) | lp://PubLayNet/ppyolov2_r50vd_dcn_365e_publaynet/config | {0: "Text", 1: "Title", 2: "List", 3:"Table", 4:"Figure"} | +## Citations -* TableBank word and TableBank latex are trained on datasets of word documents and latex documents respectively; -* Download TableBank dataset contains both word and latex。 +``` +@inproceedings{zhong2019publaynet, + title={PubLayNet: largest dataset ever for document layout analysis}, + author={Zhong, Xu and Tang, Jianbin and Yepes, Antonio Jimeno}, + booktitle={2019 International Conference on Document Analysis and Recognition (ICDAR)}, + year={2019}, + volume={}, + number={}, + pages={1015-1022}, + doi={10.1109/ICDAR.2019.00166}, + ISSN={1520-5363}, + month={Sep.}, + organization={IEEE} +} -## 3. PostProcess - -Layout parser contains multiple categories, if you only want to get the detection box for a specific category (such as the "Text" category), you can use the following code: - -```python -# follow the above code -# filter areas for a specific text type -text_blocks = lp.Layout([b for b in layout if b.type=='Text']) -figure_blocks = lp.Layout([b for b in layout if b.type=='Figure']) - -# text areas may be detected within the image area, delete these areas -text_blocks = lp.Layout([b for b in text_blocks \ - if not any(b.is_in(b_fig) for b_fig in figure_blocks)]) - -# sort text areas and assign ID -h, w = image.shape[:2] - -left_interval = lp.Interval(0, w/2*1.05, axis='x').put_on_canvas(image) - -left_blocks = text_blocks.filter_by(left_interval, center=True) -left_blocks.sort(key = lambda b:b.coordinates[1]) - -right_blocks = [b for b in text_blocks if b not in left_blocks] -right_blocks.sort(key = lambda b:b.coordinates[1]) - -# the two lists are merged and the indexes are added in order -text_blocks = lp.Layout([b.set(id = idx) for idx, b in enumerate(left_blocks + right_blocks)]) - -# display result -show_img = lp.draw_box(image, text_blocks, - box_width=3, - show_element_id=True) -show_img.show() +@inproceedings{yang2022focal, + title={Focal and global knowledge distillation for detectors}, + author={Yang, Zhendong and Li, Zhe and Jiang, Xiaohu and Gong, Yuan and Yuan, Zehuan and Zhao, Danpei and Yuan, Chun}, + booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition}, + pages={4643--4652}, + year={2022} +} ``` -Displays results with only the "Text" category: - -
- -
- -## 4. Results - -| Dataset | mAP | CPU time cost | GPU time cost | -| --------- | ---- | ------------- | ------------- | -| PubLayNet | 93.6 | 1713.7ms | 66.6ms | -| TableBank | 96.2 | 1968.4ms | 65.1ms | - -**Envrionment:** - -​ **CPU:** Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz,24core - -​ **GPU:** a single NVIDIA Tesla P40 - -## 5. Training - -The above model is based on [PaddleDetection](https://github.com/PaddlePaddle/PaddleDetection). If you want to train your own layout parser model,please refer to:[train_layoutparser_model](train_layoutparser_model.md) diff --git a/ppstructure/layout/README_ch.md b/ppstructure/layout/README_ch.md deleted file mode 100644 index 69419ad1e..000000000 --- a/ppstructure/layout/README_ch.md +++ /dev/null @@ -1,133 +0,0 @@ -[English](README.md) | 简体中文 - -# 版面分析使用说明 - -- [1. 安装whl包](#1) -- [2. 使用](#2) -- [3. 后处理](#3) -- [4. 指标](#4) -- [5. 训练版面分析模型](#5) - - -
-## 1. 安装whl包 -```bash -pip install -U https://paddleocr.bj.bcebos.com/whl/layoutparser-0.0.0-py3-none-any.whl -``` - - -## 2. 使用 - -使用layoutparser识别给定文档的布局: - -```python -import cv2 -import layoutparser as lp -image = cv2.imread("ppstructure/docs/table/layout.jpg") -image = image[..., ::-1] - -# 加载模型 -model = lp.PaddleDetectionLayoutModel(config_path="lp://PubLayNet/ppyolov2_r50vd_dcn_365e_publaynet/config", - threshold=0.5, - label_map={0: "Text", 1: "Title", 2: "List", 3:"Table", 4:"Figure"}, - enforce_cpu=False, - enable_mkldnn=True) -# 检测 -layout = model.detect(image) - -# 显示结果 -show_img = lp.draw_box(image, layout, box_width=3, show_element_type=True) -show_img.show() -``` - -下图展示了结果,不同颜色的检测框表示不同的类别,并通过`show_element_type`在框的左上角显示具体类别: - -
- -
- -`PaddleDetectionLayoutModel`函数参数说明如下: - -| 参数 | 含义 | 默认值 | 备注 | -| :------------: | :-------------------------: | :---------: | :----------------------------------------------------------: | -| config_path | 模型配置路径 | None | 指定config_path会自动下载模型(仅第一次,之后模型存在,不会再下载) | -| model_path | 模型路径 | None | 本地模型路径,config_path和model_path必须设置一个,不能同时为None | -| threshold | 预测得分的阈值 | 0.5 | \ | -| input_shape | reshape之后图片尺寸 | [3,640,640] | \ | -| batch_size | 测试batch size | 1 | \ | -| label_map | 类别映射表 | None | 设置config_path时,可以为None,根据数据集名称自动获取label_map,设置model_path时需要手动指定 | -| enforce_cpu | 代码是否使用CPU运行 | False | 设置为False表示使用GPU,True表示强制使用CPU | -| enforce_mkldnn | CPU预测中是否开启MKLDNN加速 | True | \ | -| thread_num | 设置CPU线程数 | 10 | \ | - -目前支持以下几种模型配置和label map,您可以通过修改 `--config_path`和 `--label_map`使用这些模型,从而检测不同类型的内容: - -| dataset | config_path | label_map | -| ------------------------------------------------------------ | ------------------------------------------------------------ | --------------------------------------------------------- | -| [TableBank](https://doc-analysis.github.io/tablebank-page/index.html) word | lp://TableBank/ppyolov2_r50vd_dcn_365e_tableBank_word/config | {0:"Table"} | -| TableBank latex | lp://TableBank/ppyolov2_r50vd_dcn_365e_tableBank_latex/config | {0:"Table"} | -| [PubLayNet](https://github.com/ibm-aur-nlp/PubLayNet) | lp://PubLayNet/ppyolov2_r50vd_dcn_365e_publaynet/config | {0: "Text", 1: "Title", 2: "List", 3:"Table", 4:"Figure"} | - -* TableBank word和TableBank latex分别在word文档、latex文档数据集训练; -* 下载的TableBank数据集里同时包含word和latex。 - - -## 3. 后处理 - -版面分析检测包含多个类别,如果只想获取指定类别(如"Text"类别)的检测框、可以使用下述代码: - -```python -# 接上面代码 -# 首先过滤特定文本类型的区域 -text_blocks = lp.Layout([b for b in layout if b.type=='Text']) -figure_blocks = lp.Layout([b for b in layout if b.type=='Figure']) - -# 因为在图像区域内可能检测到文本区域,所以只需要删除它们 -text_blocks = lp.Layout([b for b in text_blocks \ - if not any(b.is_in(b_fig) for b_fig in figure_blocks)]) - -# 对文本区域排序并分配id -h, w = image.shape[:2] - -left_interval = lp.Interval(0, w/2*1.05, axis='x').put_on_canvas(image) - -left_blocks = text_blocks.filter_by(left_interval, center=True) -left_blocks.sort(key = lambda b:b.coordinates[1]) - -right_blocks = [b for b in text_blocks if b not in left_blocks] -right_blocks.sort(key = lambda b:b.coordinates[1]) - -# 最终合并两个列表,并按顺序添加索引 -text_blocks = lp.Layout([b.set(id = idx) for idx, b in enumerate(left_blocks + right_blocks)]) - -# 显示结果 -show_img = lp.draw_box(image, text_blocks, - box_width=3, - show_element_id=True) -show_img.show() -``` - -显示只有"Text"类别的结果: - -
- -
- - -## 4. 指标 - -| Dataset | mAP | CPU time cost | GPU time cost | -| --------- | ---- | ------------- | ------------- | -| PubLayNet | 93.6 | 1713.7ms | 66.6ms | -| TableBank | 96.2 | 1968.4ms | 65.1ms | - -**Envrionment:** - -​ **CPU:** Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz,24core - -​ **GPU:** a single NVIDIA Tesla P40 - - -## 5. 训练版面分析模型 - -上述模型基于[PaddleDetection](https://github.com/PaddlePaddle/PaddleDetection) 训练,如果您想训练自己的版面分析模型,请参考:[train_layoutparser_model](train_layoutparser_model_ch.md) diff --git a/ppstructure/layout/layout_in_ocr.md b/ppstructure/layout/layout_in_ocr.md new file mode 100644 index 000000000..3762544b8 --- /dev/null +++ b/ppstructure/layout/layout_in_ocr.md @@ -0,0 +1,469 @@ +- [1. 简介](#1-简介) + +- [2. 安装](#2-安装) + + - [2.1 安装PaddlePaddle](#21-安装paddlepaddle) + - [2.2 安装PaddleDetection](#22-安装paddledetection) + +- [3. 数据准备](#3-数据准备) + + - [3.1 英文数据集](#31-英文数据集) + - [3.2 更多数据集](#32-更多数据集) + +- [4. 开始训练](#4-开始训练) + + - [4.1 启动训练](#41-启动训练) + - [4.2 FGD蒸馏训练](#42-FGD蒸馏训练) + +- [5. 模型评估与预测](#5-模型评估与预测) + + - [5.1 指标评估](#51-指标评估) + - [5.2 测试版面分析结果](#52-测试版面分析结果) + +- [6 模型导出与预测](#6-模型导出与预测) + + - [6.1 模型导出](#61-模型导出) + + - [6.2 模型推理](#62-模型推理) + +# 版面分析 + +## 1. 简介 + +版面分析指的是对图片形式的文档进行区域划分,定位其中的关键区域,如文字、标题、表格、图片等。版面分析算法基于[PaddleDetection](https://github.com/PaddlePaddle/PaddleDetection)的轻量模型PP-PicoDet进行开发。 + +
+ +
+ + + +## 2. 安装依赖 + +### 2.1. 安装PaddlePaddle + +- **(1) 安装PaddlePaddle** + +```bash +python3 -m pip install --upgrade pip + +# GPU安装 +python3 -m pip install "paddlepaddle-gpu>=2.2" -i https://mirror.baidu.com/pypi/simple + +# CPU安装 +python3 -m pip install "paddlepaddle>=2.2" -i https://mirror.baidu.com/pypi/simple +``` +更多需求,请参照[安装文档](https://www.paddlepaddle.org.cn/install/quick)中的说明进行操作。 + +### 2.2. 安装PaddleDetection + +- **(1)下载PaddleDetection源码** + +```bash +git clone https://github.com/PaddlePaddle/PaddleDetection.git +``` + +- **(2)安装其他依赖 ** + +```bash +cd PaddleDetection +python3 -m pip install -r requirements.txt +``` + +## 3. 数据准备 + +如果希望直接体验预测过程,可以跳过数据准备,下载我们提供的预训练模型。 + +### 3.1. 英文数据集 + +下载文档分析数据集[PubLayNet](https://developer.ibm.com/exchanges/data/all/publaynet/)(数据集96G),包含5个类:`{0: "Text", 1: "Title", 2: "List", 3:"Table", 4:"Figure"}` + +``` +# 下载数据 +wget https://dax-cdn.cdn.appdomain.cloud/dax-publaynet/1.0.0/publaynet.tar.gz +# 解压数据 +tar -xvf publaynet.tar.gz +``` + +解压之后的**目录结构:** + +``` +|-publaynet + |- test + |- PMC1277013_00004.jpg + |- PMC1291385_00002.jpg + | ... + |- train.json + |- train + |- PMC1291385_00002.jpg + |- PMC1277013_00004.jpg + | ... + |- val.json + |- val + |- PMC538274_00004.jpg + |- PMC539300_00004.jpg + | ... +``` + +**数据分布:** + +| File or Folder | Description | num | +| :------------- | :------------- | ------- | +| `train/` | 训练集图片 | 335,703 | +| `val/` | 验证集图片 | 11,245 | +| `test/` | 测试集图片 | 11,405 | +| `train.json` | 训练集标注文件 | - | +| `val.json` | 验证集标注文件 | - | + +**标注格式:** + +json文件包含所有图像的标注,数据以字典嵌套的方式存放,包含以下key: + +- info,表示标注文件info。 + +- licenses,表示标注文件licenses。 + +- images,表示标注文件中图像信息列表,每个元素是一张图像的信息。如下为其中一张图像的信息: + + ``` + { + 'file_name': 'PMC4055390_00006.jpg', # file_name + 'height': 601, # image height + 'width': 792, # image width + 'id': 341427 # image id + } + ``` + +- annotations,表示标注文件中目标物体的标注信息列表,每个元素是一个目标物体的标注信息。如下为其中一个目标物体的标注信息: + + ``` + { + + 'segmentation': # 物体的分割标注 + 'area': 60518.099043117836, # 物体的区域面积 + 'iscrowd': 0, # iscrowd + 'image_id': 341427, # image id + 'bbox': [50.58, 490.86, 240.15, 252.16], # bbox [x1,y1,w,h] + 'category_id': 1, # category_id + 'id': 3322348 # image id + } + ``` + +### 3.2. 更多数据集 + +我们提供了CDLA(中文版面分析)、TableBank(表格版面分析)等数据集的下连接,处理为上述标注文件json格式,即可以按相同方式进行训练。 + +| dataset | 简介 | +| ------------------------------------------------------------ | ------------------------------------------------------------ | +| [cTDaR2019_cTDaR](https://cndplab-founder.github.io/cTDaR2019/) | 用于表格检测(TRACKA)和表格识别(TRACKB)。图片类型包含历史数据集(以cTDaR_t0开头,如cTDaR_t00872.jpg)和现代数据集(以cTDaR_t1开头,cTDaR_t10482.jpg)。 | +| [IIIT-AR-13K](http://cvit.iiit.ac.in/usodi/iiitar13k.php) | 手动注释公开的年度报告中的图形或页面而构建的数据集,包含5类:table, figure, natural image, logo, and signature | +| [CDLA](https://github.com/buptlihang/CDLA) | 中文文档版面分析数据集,面向中文文献类(论文)场景,包含10类:Table、Figure、Figure caption、Table、Table caption、Header、Footer、Reference、Equation | +| [TableBank](https://github.com/doc-analysis/TableBank) | 用于表格检测和识别大型数据集,包含Word和Latex2种文档格式 | +| [DocBank](https://github.com/doc-analysis/DocBank) | 使用弱监督方法构建的大规模数据集(500K文档页面),用于文档布局分析,包含12类:Author、Caption、Date、Equation、Figure、Footer、List、Paragraph、Reference、Section、Table、Title | + + +## 4. 开始训练 + +提供了训练脚本、评估脚本和预测脚本,本节将以PubLayNet预训练模型为例进行讲解。 + +如果不希望训练,直接体验后面的模型评估、预测、动转静、推理的流程,可以下载提供的预训练模型,并跳过本部分。 + +``` +mkdir pretrained_model +cd pretrained_model +# 下载并解压PubLayNet预训练模型 +wget https://paddleocr.bj.bcebos.com/ppstructure/models/layout/picodet_lcnet_x1_0_layout.pdparams +``` + +### 4.1. 启动训练 + +开始训练: + +* 修改配置文件 + +如果你希望训练自己的数据集,需要修改配置文件中的数据配置、类别数。 + + +以`configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x1_0_layout.yml` 为例,修改的内容如下所示。 + +```yaml +metric: COCO +# 类别数 +num_classes: 5 + +TrainDataset: + !COCODataSet + # 修改为你自己的训练数据目录 + image_dir: train + # 修改为你自己的训练数据标签文件 + anno_path: train.json + # 修改为你自己的训练数据根目录 + dataset_dir: /root/publaynet/ + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + # 修改为你自己的验证数据目录 + image_dir: val + # 修改为你自己的验证数据标签文件 + anno_path: val.json + # 修改为你自己的验证数据根目录 + dataset_dir: /root/publaynet/ + +TestDataset: + !ImageFolder + # 修改为你自己的测试数据标签文件 + anno_path: /root/publaynet/val.json +``` + +* 开始训练,在训练时,会默认下载PP-PicoDet预训练模型,这里无需预先下载。 + +```bash +# GPU训练 支持单卡,多卡训练 +# 训练日志会自动保存到 log 目录中 + +# 单卡训练 +python3 tools/train.py \ + -c configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x1_0_layout.yml \ + --eval + +# 多卡训练,通过--gpus参数指定卡号 +python3 -m paddle.distributed.launch --gpus '0,1,2,3' tools/train.py \ + -c configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x1_0_layout.yml \ + --eval +``` + +正常启动训练后,会看到以下log输出: + +``` +[08/15 04:02:30] ppdet.utils.checkpoint INFO: Finish loading model weights: /root/.cache/paddle/weights/LCNet_x1_0_pretrained.pdparams +[08/15 04:02:46] ppdet.engine INFO: Epoch: [0] [ 0/1929] learning_rate: 0.040000 loss_vfl: 1.216707 loss_bbox: 1.142163 loss_dfl: 0.544196 loss: 2.903065 eta: 17 days, 13:50:26 batch_cost: 15.7452 data_cost: 2.9112 ips: 1.5243 images/s +[08/15 04:03:19] ppdet.engine INFO: Epoch: [0] [ 20/1929] learning_rate: 0.064000 loss_vfl: 1.180627 loss_bbox: 0.939552 loss_dfl: 0.442436 loss: 2.628206 eta: 2 days, 12:18:53 batch_cost: 1.5770 data_cost: 0.0008 ips: 15.2184 images/s +[08/15 04:03:47] ppdet.engine INFO: Epoch: [0] [ 40/1929] learning_rate: 0.088000 loss_vfl: 0.543321 loss_bbox: 1.071401 loss_dfl: 0.457817 loss: 2.057003 eta: 2 days, 0:07:03 batch_cost: 1.3190 data_cost: 0.0007 ips: 18.1954 images/s +[08/15 04:04:12] ppdet.engine INFO: Epoch: [0] [ 60/1929] learning_rate: 0.112000 loss_vfl: 0.630989 loss_bbox: 0.859183 loss_dfl: 0.384702 loss: 1.883143 eta: 1 day, 19:01:29 batch_cost: 1.2177 data_cost: 0.0006 ips: 19.7087 images/s +``` + +- `--eval`表示训练的同时,进行评估, 评估过程中默认将最佳模型,保存为 `output/picodet_lcnet_x1_0_layout/best_accuracy` 。 + +**注意,预测/评估时的配置文件请务必与训练一致。** + +### 4.2. FGD蒸馏训练 + +PaddleDetection支持了基于FGD([Focal and Global Knowledge Distillation for Detectors](https://arxiv.org/abs/2111.11837v1))蒸馏的目标检测模型训练过程,FGD蒸馏分为两个部分`Focal`和`Global`。`Focal`蒸馏分离图像的前景和背景,让学生模型分别关注教师模型的前景和背景部分特征的关键像素;`Global`蒸馏部分重建不同像素之间的关系并将其从教师转移到学生,以补偿`Focal`蒸馏中丢失的全局信息。 + +更换数据集,修改【TODO】配置中的数据配置、类别数,具体可以参考4.1。启动训练: + +```bash +python3 -m paddle.distributed.launch --gpus '0,1,2,3' tools/train.py \ + -c configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x1_0_layout.yml \ + --slim_config configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x2_5_layout.yml \ + --eval +``` + +- `-c`: 指定模型配置文件。 +- `--slim_config`: 指定压缩策略配置文件。 + +## 5. 模型评估与预测 + +### 5.1. 指标评估 + +训练中模型参数默认保存在`output/picodet_lcnet_x1_0_layout`目录下。在评估指标时,需要设置`weights`指向保存的参数文件。评估数据集可以通过 `configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x1_0_layout.yml` 修改`EvalDataset`中的 `image_dir`、`anno_path`和`dataset_dir` 设置。 + +```bash +# GPU 评估, weights 为待测权重 +python3 tools/eval.py \ + -c configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x1_0_layout.yml \ + -o weigths=./output/picodet_lcnet_x1_0_layout/best_model +``` + +会输出以下信息,打印出mAP、AP0.5等信息。 + +```py + Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.935 + Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.979 + Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.956 + Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.404 + Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.782 + Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.969 + Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.539 + Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.938 + Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.949 + Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.495 + Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.818 + Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.978 +[08/15 07:07:09] ppdet.engine INFO: Total sample number: 11245, averge FPS: 24.405059207157436 +[08/15 07:07:09] ppdet.engine INFO: Best test bbox ap is 0.935. +``` + +使用FGD蒸馏模型进行评估: + +``` +python3 tools/eval.py \ + -c configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x1_0_layout.yml \ + --slim_config configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x2_5_layout.yml \ + -o weights=output/picodet_lcnet_x2_5_layout/best_model +``` + +- `-c`: 指定模型配置文件。 +- `--slim_config`: 指定蒸馏策略配置文件。 +- `-o weights`: 指定蒸馏算法训好的模型路径。 + +### 5.2. 测试版面分析结果 + + +预测使用的配置文件必须与训练一致,如您通过 `python3 tools/train.py -c configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x1_0_layout.yml` 完成了模型的训练过程。 + +使用 PaddleDetection 训练好的模型,您可以使用如下命令进行中文模型预测。 + + +```bash +python3 tools/infer.py \ + -c configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x1_0_layout.yml \ + -o weights='output/picodet_lcnet_x1_0_layout/best_model.pdparams' \ + --infer_img='docs/images/layout.jpg' \ + --output_dir=output_dir/ \ + --draw_threshold=0.4 +``` + +- `--infer_img`: 推理单张图片,也可以通过`--infer_dir`推理文件中的所有图片。 +- `--output_dir`: 指定可视化结果保存路径。 +- `--draw_threshold`:指定绘制结果框的NMS阈值。 + +预测图片如下所示,图片会存储在`output_dir`路径中。 + +使用FGD蒸馏模型进行测试: + +``` +python3 tools/infer.py \ + -c configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x1_0_layout.yml \ + --slim_config configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x2_5_layout.yml \ + -o weights='output/picodet_lcnet_x2_5_layout/best_model.pdparams' \ + --infer_img='docs/images/layout.jpg' \ + --output_dir=output_dir/ \ + --draw_threshold=0.4 +``` + + + +## 6. 模型导出与预测 + + +### 6.1 模型导出 + +inference 模型(`paddle.jit.save`保存的模型) 一般是模型训练,把模型结构和模型参数保存在文件中的固化模型,多用于预测部署场景。 训练过程中保存的模型是checkpoints模型,保存的只有模型的参数,多用于恢复训练等。 与checkpoints模型相比,inference 模型会额外保存模型的结构信息,在预测部署、加速推理上性能优越,灵活方便,适合于实际系统集成。 + +版面分析模型转inference模型步骤如下: + +```bash +python3 tools/export_model.py \ + -c configs/picodet/legacy_model/application/layout_detection/picodet_lcnet_x1_0_layout.yml \ + -o weights=output/picodet_lcnet_x1_0_layout/best_model \ + --output_dir=output_inference/ +``` + +* 如无需导出后处理,请指定:`-o export.benchmark=True`(如果-o已出现过,此处删掉-o) +* 如无需导出NMS,请指定:`-o export.nms=False` + +转换成功后,在目录下有三个文件: + +``` +output_inference/picodet_lcnet_x1_0_layout/ + ├── model.pdiparams # inference模型的参数文件 + ├── model.pdiparams.info # inference模型的参数信息,可忽略 + └── model.pdmodel # inference模型的模型结构文件 +``` + +FGD蒸馏模型转inference模型步骤如下: + +```bash +python3 tools/export_model.py \ + -c configs/picodet/legacy_model/application/publayernet_lcnet_x1_5/picodet_student.yml \ + --slim_config configs/picodet/legacy_model/application/publayernet_lcnet_x1_5/picodet_teacher.yml \ + -o weights=./output/picodet_lcnet_x2_5_layout/best_model \ + --output_dir=output_inference/ +``` + + + +### 6.2 模型推理 + +版面恢复任务进行推理,可以执行如下命令: + +```bash +python3 deploy/python/infer.py \ + --model_dir=output_inference/picodet_lcnet_x1_0_layout/ \ + --image_file=docs/images/layout.jpg \ + --device=CPU +``` + +- --device:指定GPU、CPU设备 + +模型推理完成,会看到以下log输出 + +``` +------------------------------------------ +----------- Model Configuration ----------- +Model Arch: PicoDet +Transform Order: +--transform op: Resize +--transform op: NormalizeImage +--transform op: Permute +--transform op: PadStride +-------------------------------------------- +class_id:0, confidence:0.9921, left_top:[20.18,35.66],right_bottom:[341.58,600.99] +class_id:0, confidence:0.9914, left_top:[19.77,611.42],right_bottom:[341.48,901.82] +class_id:0, confidence:0.9904, left_top:[369.36,375.10],right_bottom:[691.29,600.59] +class_id:0, confidence:0.9835, left_top:[369.60,608.60],right_bottom:[691.38,736.72] +class_id:0, confidence:0.9830, left_top:[369.58,805.38],right_bottom:[690.97,901.80] +class_id:0, confidence:0.9716, left_top:[383.68,271.44],right_bottom:[688.93,335.39] +class_id:0, confidence:0.9452, left_top:[370.82,34.48],right_bottom:[688.10,63.54] +class_id:1, confidence:0.8712, left_top:[370.84,771.03],right_bottom:[519.30,789.13] +class_id:3, confidence:0.9856, left_top:[371.28,67.85],right_bottom:[685.73,267.72] +save result to: output/layout.jpg +Test iter 0 +------------------ Inference Time Info ---------------------- +total_time(ms): 2196.0, img_num: 1 +average latency time(ms): 2196.00, QPS: 0.455373 +preprocess_time(ms): 2172.50, inference_time(ms): 11.90, postprocess_time(ms): 11.60 +``` + +- Model:模型结构 +- Transform Order:预处理操作 +- class_id、confidence、left_top、right_bottom:分别表示类别id、置信度、左上角坐标、右下角坐标 +- save result to:可视化版面分析结果保存路径,默认保存到`./output`文件夹 +- Inference Time Info:推理时间,其中preprocess_time表示预处理耗时,inference_time表示模型预测耗时,postprocess_time表示后处理耗时 + +可视化版面结果如下图所示 + +
+ +
+ + + +## Citations + +``` +@inproceedings{zhong2019publaynet, + title={PubLayNet: largest dataset ever for document layout analysis}, + author={Zhong, Xu and Tang, Jianbin and Yepes, Antonio Jimeno}, + booktitle={2019 International Conference on Document Analysis and Recognition (ICDAR)}, + year={2019}, + volume={}, + number={}, + pages={1015-1022}, + doi={10.1109/ICDAR.2019.00166}, + ISSN={1520-5363}, + month={Sep.}, + organization={IEEE} +} + +@inproceedings{yang2022focal, + title={Focal and global knowledge distillation for detectors}, + author={Yang, Zhendong and Li, Zhe and Jiang, Xiaohu and Gong, Yuan and Yuan, Zehuan and Zhao, Danpei and Yuan, Chun}, + booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition}, + pages={4643--4652}, + year={2022} +} +``` + diff --git a/ppstructure/layout/train_layoutparser_model.md b/ppstructure/layout/train_layoutparser_model.md deleted file mode 100644 index e877c9c0c..000000000 --- a/ppstructure/layout/train_layoutparser_model.md +++ /dev/null @@ -1,174 +0,0 @@ -English | [简体中文](train_layoutparser_model_ch.md) -- [Training layout-parse](#training-layout-parse) - - [1. Installation](#1--installation) - - [1.1 Requirements](#11-requirements) - - [1.2 Install PaddleDetection](#12-install-paddledetection) - - [2. Data preparation](#2-data-preparation) - - [3. Configuration](#3-configuration) - - [4. Training](#4-training) - - [5. Prediction](#5-prediction) - - [6. Deployment](#6-deployment) - - [6.1 Export model](#61-export-model) - - [6.2 Inference](#62-inference) - -# Training layout-parse - -## 1. Installation - -### 1.1 Requirements - -- PaddlePaddle 2.1 -- OS 64 bit -- Python 3(3.5.1+/3.6/3.7/3.8/3.9),64 bit -- pip/pip3(9.0.1+), 64 bit -- CUDA >= 10.1 -- cuDNN >= 7.6 - -### 1.2 Install PaddleDetection - -```bash -# Clone PaddleDetection repository -cd -git clone https://github.com/PaddlePaddle/PaddleDetection.git - -cd PaddleDetection -# Install other dependencies -pip install -r requirements.txt -``` - -For more installation tutorials, please refer to: [Install doc](https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.1/docs/tutorials/INSTALL_cn.md) - -## 2. Data preparation - -Download the [PubLayNet](https://github.com/ibm-aur-nlp/PubLayNet) dataset - -```bash -cd PaddleDetection/dataset/ -mkdir publaynet -# execute the command,download PubLayNet -wget -O publaynet.tar.gz https://dax-cdn.cdn.appdomain.cloud/dax-publaynet/1.0.0/publaynet.tar.gz?_ga=2.104193024.1076900768.1622560733-649911202.1622560733 -# unpack -tar -xvf publaynet.tar.gz -``` - -PubLayNet directory structure after decompressing : - -| File or Folder | Description | num | -| :------------- | :----------------------------------------------- | ------- | -| `train/` | Images in the training subset | 335,703 | -| `val/` | Images in the validation subset | 11,245 | -| `test/` | Images in the testing subset | 11,405 | -| `train.json` | Annotations for training images | 1 | -| `val.json` | Annotations for validation images | 1 | -| `LICENSE.txt` | Plaintext version of the CDLA-Permissive license | 1 | -| `README.txt` | Text file with the file names and description | 1 | - -For other datasets,please refer to [the PrepareDataSet]((https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.1/docs/tutorials/PrepareDataSet.md) ) - -## 3. Configuration - -We use the `configs/ppyolo/ppyolov2_r50vd_dcn_365e_coco.yml` configuration for training,the configuration file is as follows - -```bash -_BASE_: [ - '../datasets/coco_detection.yml', - '../runtime.yml', - './_base_/ppyolov2_r50vd_dcn.yml', - './_base_/optimizer_365e.yml', - './_base_/ppyolov2_reader.yml', -] - -snapshot_epoch: 8 -weights: output/ppyolov2_r50vd_dcn_365e_coco/model_final -``` -The `ppyolov2_r50vd_dcn_365e_coco.yml` configuration depends on other configuration files, in this case: - -- coco_detection.yml:mainly explains the path of training data and verification data - -- runtime.yml:mainly describes the common parameters, such as whether to use the GPU and how many epoch to save model etc. - -- optimizer_365e.yml:mainly explains the learning rate and optimizer configuration - -- ppyolov2_r50vd_dcn.yml:mainly describes the model and the network - -- ppyolov2_reader.yml:mainly describes the configuration of data readers, such as batch size and number of concurrent loading child processes, and also includes post preprocessing, such as resize and data augmention etc. - - -Modify the preceding files, such as the dataset path and batch size etc. - -## 4. Training - -PaddleDetection provides single-card/multi-card training mode to meet various training needs of users: - -* GPU single card training - -```bash -export CUDA_VISIBLE_DEVICES=0 #Don't need to run this command on Windows and Mac -python tools/train.py -c configs/ppyolo/ppyolov2_r50vd_dcn_365e_coco.yml -``` - -* GPU multi-card training - -```bash -export CUDA_VISIBLE_DEVICES=0,1,2,3 -python -m paddle.distributed.launch --gpus 0,1,2,3 tools/train.py -c configs/ppyolo/ppyolov2_r50vd_dcn_365e_coco.yml --eval -``` - ---eval: training while verifying - -* Model recovery training - -During the daily training, if training is interrupted due to some reasons, you can use the -r command to resume the training: - -```bash -export CUDA_VISIBLE_DEVICES=0,1,2,3 -python -m paddle.distributed.launch --gpus 0,1,2,3 tools/train.py -c configs/ppyolo/ppyolov2_r50vd_dcn_365e_coco.yml --eval -r output/ppyolov2_r50vd_dcn_365e_coco/10000 -``` - -Note: If you encounter "`Out of memory error`" , try reducing `batch_size` in the `ppyolov2_reader.yml` file - -## 5. Prediction - -Set parameters and use PaddleDetection to predict: - -```bash -export CUDA_VISIBLE_DEVICES=0 -python tools/infer.py -c configs/ppyolo/ppyolov2_r50vd_dcn_365e_coco.yml --infer_img=images/paper-image.jpg --output_dir=infer_output/ --draw_threshold=0.5 -o weights=output/ppyolov2_r50vd_dcn_365e_coco/model_final --use_vdl=Ture -``` - -`--draw_threshold` is an optional parameter. According to the calculation of [NMS](https://ieeexplore.ieee.org/document/1699659), different threshold will produce different results, ` keep_top_k ` represent the maximum amount of output target, the default value is 10. You can set different value according to your own actual situation。 - -## 6. Deployment - -Use your trained model in Layout Parser - -### 6.1 Export model - -n the process of model training, the model file saved contains the process of forward prediction and back propagation. In the actual industrial deployment, there is no need for back propagation. Therefore, the model should be translated into the model format required by the deployment. The `tools/export_model.py` script is provided in PaddleDetection to export the model. - -The exported model name defaults to `model.*`, Layout Parser's code model is `inference.*`, So change [PaddleDetection/ppdet/engine/trainer. Py ](https://github.com/PaddlePaddle/PaddleDetection/blob/b87a1ea86fa18ce69e44a17ad1b49c1326f19ff9/ppdet/engine/trainer.py# L512) (click on the link to see the detailed line of code), change 'model' to 'inference'. - -Execute the script to export model: - -```bash -python tools/export_model.py -c configs/ppyolo/ppyolov2_r50vd_dcn_365e_coco.yml --output_dir=./inference -o weights=output/ppyolov2_r50vd_dcn_365e_coco/model_final.pdparams -``` - -The prediction model is exported to `inference/ppyolov2_r50vd_dcn_365e_coco` ,including:`infer_cfg.yml`(prediction not required), `inference.pdiparams`, `inference.pdiparams.info`,`inference.pdmodel` - -More model export tutorials, please refer to:[EXPORT_MODEL](https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.1/deploy/EXPORT_MODEL.md) - -### 6.2 Inference - -`model_path` represent the trained model path, and layoutparser is used to predict: - -```bash -import layoutparser as lp -model = lp.PaddleDetectionLayoutModel(model_path="inference/ppyolov2_r50vd_dcn_365e_coco", threshold=0.5,label_map={0: "Text", 1: "Title", 2: "List", 3:"Table", 4:"Figure"},enforce_cpu=True,enable_mkldnn=True) -``` - -*** - -More PaddleDetection training tutorials,please reference:[PaddleDetection Training](https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.1/docs/tutorials/GETTING_STARTED_cn.md) - -*** diff --git a/ppstructure/layout/train_layoutparser_model_ch.md b/ppstructure/layout/train_layoutparser_model_ch.md deleted file mode 100644 index a89b0f381..000000000 --- a/ppstructure/layout/train_layoutparser_model_ch.md +++ /dev/null @@ -1,176 +0,0 @@ -[English](train_layoutparser_model.md) | 简体中文 -- [训练版面分析](#训练版面分析) - - [1. 安装](#1-安装) - - [1.1 环境要求](#11-环境要求) - - [1.2 安装PaddleDetection](#12-安装paddledetection) - - [2. 准备数据](#2-准备数据) - - [3. 配置文件改动和说明](#3-配置文件改动和说明) - - [4. PaddleDetection训练](#4-paddledetection训练) - - [5. PaddleDetection预测](#5-paddledetection预测) - - [6. 预测部署](#6-预测部署) - - [6.1 模型导出](#61-模型导出) - - [6.2 layout_parser预测](#62-layout_parser预测) - -# 训练版面分析 - -## 1. 安装 - -### 1.1 环境要求 - -- PaddlePaddle 2.1 -- OS 64 bit -- Python 3(3.5.1+/3.6/3.7/3.8/3.9),64 bit -- pip/pip3(9.0.1+), 64 bit -- CUDA >= 10.1 -- cuDNN >= 7.6 - -### 1.2 安装PaddleDetection - -```bash -# 克隆PaddleDetection仓库 -cd -git clone https://github.com/PaddlePaddle/PaddleDetection.git - -cd PaddleDetection -# 安装其他依赖 -pip install -r requirements.txt -``` - -更多安装教程,请参考: [Install doc](https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.1/docs/tutorials/INSTALL_cn.md) - -## 2. 准备数据 - -下载 [PubLayNet](https://github.com/ibm-aur-nlp/PubLayNet) 数据集: - -```bash -cd PaddleDetection/dataset/ -mkdir publaynet -# 执行命令,下载 -wget -O publaynet.tar.gz https://dax-cdn.cdn.appdomain.cloud/dax-publaynet/1.0.0/publaynet.tar.gz?_ga=2.104193024.1076900768.1622560733-649911202.1622560733 -# 解压 -tar -xvf publaynet.tar.gz -``` - -解压之后PubLayNet目录结构: - -| File or Folder | Description | num | -| :------------- | :----------------------------------------------- | ------- | -| `train/` | Images in the training subset | 335,703 | -| `val/` | Images in the validation subset | 11,245 | -| `test/` | Images in the testing subset | 11,405 | -| `train.json` | Annotations for training images | 1 | -| `val.json` | Annotations for validation images | 1 | -| `LICENSE.txt` | Plaintext version of the CDLA-Permissive license | 1 | -| `README.txt` | Text file with the file names and description | 1 | - -如果使用其它数据集,请参考[准备训练数据](https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.1/docs/tutorials/PrepareDataSet.md) - -## 3. 配置文件改动和说明 - -我们使用 `configs/ppyolo/ppyolov2_r50vd_dcn_365e_coco.yml`配置进行训练,配置文件摘要如下: - -```bash -_BASE_: [ - '../datasets/coco_detection.yml', - '../runtime.yml', - './_base_/ppyolov2_r50vd_dcn.yml', - './_base_/optimizer_365e.yml', - './_base_/ppyolov2_reader.yml', -] - -snapshot_epoch: 8 -weights: output/ppyolov2_r50vd_dcn_365e_coco/model_final -``` -从中可以看到 `ppyolov2_r50vd_dcn_365e_coco.yml` 配置需要依赖其他的配置文件,在该例子中需要依赖: - -- coco_detection.yml:主要说明了训练数据和验证数据的路径 - -- runtime.yml:主要说明了公共的运行参数,比如是否使用GPU、每多少个epoch存储checkpoint等 - -- optimizer_365e.yml:主要说明了学习率和优化器的配置 - -- ppyolov2_r50vd_dcn.yml:主要说明模型和主干网络的情况 - -- ppyolov2_reader.yml:主要说明数据读取器配置,如batch size,并发加载子进程数等,同时包含读取后预处理操作,如resize、数据增强等等 - - -根据实际情况,修改上述文件,比如数据集路径、batch size等。 - -## 4. PaddleDetection训练 - -PaddleDetection提供了单卡/多卡训练模式,满足用户多种训练需求 - -* GPU 单卡训练 - -```bash -export CUDA_VISIBLE_DEVICES=0 #windows和Mac下不需要执行该命令 -python tools/train.py -c configs/ppyolo/ppyolov2_r50vd_dcn_365e_coco.yml -``` - -* GPU多卡训练 - -```bash -export CUDA_VISIBLE_DEVICES=0,1,2,3 -python -m paddle.distributed.launch --gpus 0,1,2,3 tools/train.py -c configs/ppyolo/ppyolov2_r50vd_dcn_365e_coco.yml --eval -``` - ---eval:表示边训练边验证 - -* 模型恢复训练 - -在日常训练过程中,有的用户由于一些原因导致训练中断,用户可以使用-r的命令恢复训练: - -```bash -export CUDA_VISIBLE_DEVICES=0,1,2,3 -python -m paddle.distributed.launch --gpus 0,1,2,3 tools/train.py -c configs/ppyolo/ppyolov2_r50vd_dcn_365e_coco.yml --eval -r output/ppyolov2_r50vd_dcn_365e_coco/10000 -``` - -注意:如果遇到 "`Out of memory error`" 问题, 尝试在 `ppyolov2_reader.yml` 文件中调小`batch_size` - -## 5. PaddleDetection预测 - -设置参数,使用PaddleDetection预测: - -```bash -export CUDA_VISIBLE_DEVICES=0 -python tools/infer.py -c configs/ppyolo/ppyolov2_r50vd_dcn_365e_coco.yml --infer_img=images/paper-image.jpg --output_dir=infer_output/ --draw_threshold=0.5 -o weights=output/ppyolov2_r50vd_dcn_365e_coco/model_final --use_vdl=Ture -``` - -`--draw_threshold` 是个可选参数. 根据 [NMS](https://ieeexplore.ieee.org/document/1699659) 的计算,不同阈值会产生不同的结果 `keep_top_k`表示设置输出目标的最大数量,默认值为100,用户可以根据自己的实际情况进行设定。 - -## 6. 预测部署 - -在layout parser中使用自己训练好的模型。 - -### 6.1 模型导出 - -在模型训练过程中保存的模型文件是包含前向预测和反向传播的过程,在实际的工业部署则不需要反向传播,因此需要将模型进行导成部署需要的模型格式。 在PaddleDetection中提供了 `tools/export_model.py`脚本来导出模型。 - -导出模型名称默认是`model.*`,layout parser代码模型名称是`inference.*`, 所以修改[PaddleDetection/ppdet/engine/trainer.py ](https://github.com/PaddlePaddle/PaddleDetection/blob/b87a1ea86fa18ce69e44a17ad1b49c1326f19ff9/ppdet/engine/trainer.py#L512) (点开链接查看详细代码行),将`model`改为`inference`即可。 - -执行导出模型脚本: - -```bash -python tools/export_model.py -c configs/ppyolo/ppyolov2_r50vd_dcn_365e_coco.yml --output_dir=./inference -o weights=output/ppyolov2_r50vd_dcn_365e_coco/model_final.pdparams -``` - -预测模型会导出到`inference/ppyolov2_r50vd_dcn_365e_coco`目录下,分别为`infer_cfg.yml`(预测不需要), `inference.pdiparams`, `inference.pdiparams.info`,`inference.pdmodel` 。 - -更多模型导出教程,请参考:[EXPORT_MODEL](https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.1/deploy/EXPORT_MODEL.md) - -### 6.2 layout_parser预测 - -`model_path`指定训练好的模型路径,使用layout parser进行预测: - -```bash -import layoutparser as lp -model = lp.PaddleDetectionLayoutModel(model_path="inference/ppyolov2_r50vd_dcn_365e_coco", threshold=0.5,label_map={0: "Text", 1: "Title", 2: "List", 3:"Table", 4:"Figure"},enforce_cpu=True,enable_mkldnn=True) -``` - - - -*** - -更多PaddleDetection训练教程,请参考:[PaddleDetection训练](https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.1/docs/tutorials/GETTING_STARTED_cn.md) - -*** diff --git a/ppstructure/utility.py b/ppstructure/utility.py index cda4c063b..625185e6f 100644 --- a/ppstructure/utility.py +++ b/ppstructure/utility.py @@ -38,7 +38,7 @@ def init_args(): parser.add_argument( "--layout_dict_path", type=str, - default="../ppocr/utils/dict/layout_publaynet_dict.txt") + default="../ppocr/utils/dict/layout_dict/layout_pubalynet_dict.txt") parser.add_argument( "--layout_score_threshold", type=float,