From 8ecaf41e8264b89e02a4499ca2628f67887d1896 Mon Sep 17 00:00:00 2001 From: xmy0916 <863299715@qq.com> Date: Thu, 3 Dec 2020 17:29:29 +0800 Subject: [PATCH 01/51] fix doc algorithm_overview ch&en --- doc/doc_ch/algorithm_overview.md | 30 ++++++++++++++--------------- doc/doc_en/algorithm_overview_en.md | 30 ++++++++++++++--------------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/doc/doc_ch/algorithm_overview.md b/doc/doc_ch/algorithm_overview.md index c4a3b3255..475db6793 100644 --- a/doc/doc_ch/algorithm_overview.md +++ b/doc/doc_ch/algorithm_overview.md @@ -17,17 +17,17 @@ PaddleOCR开源的文本检测算法列表: |模型|骨干网络|precision|recall|Hmean|下载链接| |-|-|-|-|-|-| -|EAST|ResNet50_vd|88.18%|85.51%|86.82%|[下载链接](https://paddleocr.bj.bcebos.com/det_r50_vd_east.tar)| -|EAST|MobileNetV3|81.67%|79.83%|80.74%|[下载链接](https://paddleocr.bj.bcebos.com/det_mv3_east.tar)| -|DB|ResNet50_vd|83.79%|80.65%|82.19%|[下载链接](https://paddleocr.bj.bcebos.com/det_r50_vd_db.tar)| -|DB|MobileNetV3|75.92%|73.18%|74.53%|[下载链接](https://paddleocr.bj.bcebos.com/det_mv3_db.tar)| -|SAST|ResNet50_vd|92.18%|82.96%|87.33%|[下载链接](https://paddleocr.bj.bcebos.com/SAST/sast_r50_vd_icdar2015.tar)| +|EAST|ResNet50_vd||||[敬请期待]()| +|EAST|MobileNetV3||||[敬请期待]()| +|DB|ResNet50_vd||||[敬请期待]()| +|DB|MobileNetV3||||[敬请期待]()| +|SAST|ResNet50_vd||||[敬请期待]()| 在Total-text文本检测公开数据集上,算法效果如下: |模型|骨干网络|precision|recall|Hmean|下载链接| |-|-|-|-|-|-| -|SAST|ResNet50_vd|88.74%|79.80%|84.03%|[下载链接](https://paddleocr.bj.bcebos.com/SAST/sast_r50_vd_total_text.tar)| +|SAST|ResNet50_vd||||[敬请期待]()| **说明:** SAST模型训练额外加入了icdar2013、icdar2017、COCO-Text、ArT等公开数据集进行调优。PaddleOCR用到的经过整理格式的英文公开数据集下载:[百度云地址](https://pan.baidu.com/s/12cPnZcVuV1zn5DOd4mqjVw) (提取码: 2bpi) @@ -48,15 +48,15 @@ PaddleOCR开源的文本识别算法列表: |模型|骨干网络|Avg Accuracy|模型存储命名|下载链接| |-|-|-|-|-| -|Rosetta|Resnet34_vd|80.24%|rec_r34_vd_none_none_ctc|[下载链接](https://paddleocr.bj.bcebos.com/rec_r34_vd_none_none_ctc.tar)| -|Rosetta|MobileNetV3|78.16%|rec_mv3_none_none_ctc|[下载链接](https://paddleocr.bj.bcebos.com/rec_mv3_none_none_ctc.tar)| -|CRNN|Resnet34_vd|82.20%|rec_r34_vd_none_bilstm_ctc|[下载链接](https://paddleocr.bj.bcebos.com/rec_r34_vd_none_bilstm_ctc.tar)| -|CRNN|MobileNetV3|79.37%|rec_mv3_none_bilstm_ctc|[下载链接](https://paddleocr.bj.bcebos.com/rec_mv3_none_bilstm_ctc.tar)| -|STAR-Net|Resnet34_vd|83.93%|rec_r34_vd_tps_bilstm_ctc|[下载链接](https://paddleocr.bj.bcebos.com/rec_r34_vd_tps_bilstm_ctc.tar)| -|STAR-Net|MobileNetV3|81.56%|rec_mv3_tps_bilstm_ctc|[下载链接](https://paddleocr.bj.bcebos.com/rec_mv3_tps_bilstm_ctc.tar)| -|RARE|Resnet34_vd|84.90%|rec_r34_vd_tps_bilstm_attn|[下载链接](https://paddleocr.bj.bcebos.com/rec_r34_vd_tps_bilstm_attn.tar)| -|RARE|MobileNetV3|83.32%|rec_mv3_tps_bilstm_attn|[下载链接](https://paddleocr.bj.bcebos.com/rec_mv3_tps_bilstm_attn.tar)| -|SRN|Resnet50_vd_fpn|88.33%|rec_r50fpn_vd_none_srn|[下载链接](https://paddleocr.bj.bcebos.com/SRN/rec_r50fpn_vd_none_srn.tar)| +|Rosetta|Resnet34_vd||rec_r34_vd_none_none_ctc|[敬请期待]()| +|Rosetta|MobileNetV3||rec_mv3_none_none_ctc|[敬请期待]()| +|CRNN|Resnet34_vd||rec_r34_vd_none_bilstm_ctc|[敬请期待]()| +|CRNN|MobileNetV3||rec_mv3_none_bilstm_ctc|[敬请期待]()| +|STAR-Net|Resnet34_vd||rec_r34_vd_tps_bilstm_ctc|[敬请期待]()| +|STAR-Net|MobileNetV3||rec_mv3_tps_bilstm_ctc|[敬请期待]()| +|RARE|Resnet34_vd||rec_r34_vd_tps_bilstm_attn|[敬请期待]()| +|RARE|MobileNetV3||rec_mv3_tps_bilstm_attn|[敬请期待]()| +|SRN|Resnet50_vd_fpn||rec_r50fpn_vd_none_srn|[敬请期待]()| **说明:** SRN模型使用了数据扰动方法对上述提到对两个训练集进行增广,增广后的数据可以在[百度网盘](https://pan.baidu.com/s/1-HSZ-ZVdqBF2HaBZ5pRAKA)上下载,提取码: y3ry。 原始论文使用两阶段训练平均精度为89.74%,PaddleOCR中使用one-stage训练,平均精度为88.33%。两种预训练权重均在[下载链接](https://paddleocr.bj.bcebos.com/SRN/rec_r50fpn_vd_none_srn.tar)中。 diff --git a/doc/doc_en/algorithm_overview_en.md b/doc/doc_en/algorithm_overview_en.md index 2e21fd621..6cdf310f0 100644 --- a/doc/doc_en/algorithm_overview_en.md +++ b/doc/doc_en/algorithm_overview_en.md @@ -19,17 +19,17 @@ On the ICDAR2015 dataset, the text detection result is as follows: |Model|Backbone|precision|recall|Hmean|Download link| |-|-|-|-|-|-| -|EAST|ResNet50_vd|88.18%|85.51%|86.82%|[Download link](https://paddleocr.bj.bcebos.com/det_r50_vd_east.tar)| -|EAST|MobileNetV3|81.67%|79.83%|80.74%|[Download link](https://paddleocr.bj.bcebos.com/det_mv3_east.tar)| -|DB|ResNet50_vd|83.79%|80.65%|82.19%|[Download link](https://paddleocr.bj.bcebos.com/det_r50_vd_db.tar)| -|DB|MobileNetV3|75.92%|73.18%|74.53%|[Download link](https://paddleocr.bj.bcebos.com/det_mv3_db.tar)| -|SAST|ResNet50_vd|92.18%|82.96%|87.33%|[Download link](https://paddleocr.bj.bcebos.com/SAST/sast_r50_vd_icdar2015.tar)| +|EAST|ResNet50_vd||||[Coming soon]()| +|EAST|MobileNetV3||||[Coming soon]()| +|DB|ResNet50_vd||||[Coming soon]()| +|DB|MobileNetV3||||[Coming soon]()| +|SAST|ResNet50_vd||||[Coming soon]()| On Total-Text dataset, the text detection result is as follows: |Model|Backbone|precision|recall|Hmean|Download link| |-|-|-|-|-|-| -|SAST|ResNet50_vd|88.74%|79.80%|84.03%|[Download link](https://paddleocr.bj.bcebos.com/SAST/sast_r50_vd_total_text.tar)| +|SAST|ResNet50_vd||||[Coming soon]()| **Note:** Additional data, like icdar2013, icdar2017, COCO-Text, ArT, was added to the model training of SAST. Download English public dataset in organized format used by PaddleOCR from [Baidu Drive](https://pan.baidu.com/s/12cPnZcVuV1zn5DOd4mqjVw) (download code: 2bpi). @@ -49,15 +49,15 @@ Refer to [DTRB](https://arxiv.org/abs/1904.01906), the training and evaluation r |Model|Backbone|Avg Accuracy|Module combination|Download link| |-|-|-|-|-| -|Rosetta|Resnet34_vd|80.24%|rec_r34_vd_none_none_ctc|[Download link](https://paddleocr.bj.bcebos.com/rec_r34_vd_none_none_ctc.tar)| -|Rosetta|MobileNetV3|78.16%|rec_mv3_none_none_ctc|[Download link](https://paddleocr.bj.bcebos.com/rec_mv3_none_none_ctc.tar)| -|CRNN|Resnet34_vd|82.20%|rec_r34_vd_none_bilstm_ctc|[Download link](https://paddleocr.bj.bcebos.com/rec_r34_vd_none_bilstm_ctc.tar)| -|CRNN|MobileNetV3|79.37%|rec_mv3_none_bilstm_ctc|[Download link](https://paddleocr.bj.bcebos.com/rec_mv3_none_bilstm_ctc.tar)| -|STAR-Net|Resnet34_vd|83.93%|rec_r34_vd_tps_bilstm_ctc|[Download link](https://paddleocr.bj.bcebos.com/rec_r34_vd_tps_bilstm_ctc.tar)| -|STAR-Net|MobileNetV3|81.56%|rec_mv3_tps_bilstm_ctc|[Download link](https://paddleocr.bj.bcebos.com/rec_mv3_tps_bilstm_ctc.tar)| -|RARE|Resnet34_vd|84.90%|rec_r34_vd_tps_bilstm_attn|[Download link](https://paddleocr.bj.bcebos.com/rec_r34_vd_tps_bilstm_attn.tar)| -|RARE|MobileNetV3|83.32%|rec_mv3_tps_bilstm_attn|[Download link](https://paddleocr.bj.bcebos.com/rec_mv3_tps_bilstm_attn.tar)| -|SRN|Resnet50_vd_fpn|88.33%|rec_r50fpn_vd_none_srn|[Download link](https://paddleocr.bj.bcebos.com/SRN/rec_r50fpn_vd_none_srn.tar)| +|Rosetta|Resnet34_vd||rec_r34_vd_none_none_ctc|[Coming soon]()| +|Rosetta|MobileNetV3||rec_mv3_none_none_ctc|[Coming soon]()| +|CRNN|Resnet34_vd||rec_r34_vd_none_bilstm_ctc|[Coming soon]()| +|CRNN|MobileNetV3||rec_mv3_none_bilstm_ctc|[Coming soon]()| +|STAR-Net|Resnet34_vd||rec_r34_vd_tps_bilstm_ctc|[Coming soon]()| +|STAR-Net|MobileNetV3||rec_mv3_tps_bilstm_ctc|[Coming soon]()| +|RARE|Resnet34_vd||rec_r34_vd_tps_bilstm_attn|[Coming soon]()| +|RARE|MobileNetV3||rec_mv3_tps_bilstm_attn|[Coming soon]()| +|SRN|Resnet50_vd_fpn||rec_r50fpn_vd_none_srn|[Coming soon]()| **Note:** SRN model uses data expansion method to expand the two training sets mentioned above, and the expanded data can be downloaded from [Baidu Drive](https://pan.baidu.com/s/1-HSZ-ZVdqBF2HaBZ5pRAKA) (download code: y3ry). From 1e15b1d1c2e9579b7e391d72814096effa5165c5 Mon Sep 17 00:00:00 2001 From: xmy0916 <863299715@qq.com> Date: Thu, 3 Dec 2020 19:58:35 +0800 Subject: [PATCH 02/51] fix doc recognition ch&en --- doc/doc_ch/recognition.md | 119 ++++++++++++++++++++++++-------------- 1 file changed, 75 insertions(+), 44 deletions(-) diff --git a/doc/doc_ch/recognition.md b/doc/doc_ch/recognition.md index 71be1e89d..6c5ea02fb 100644 --- a/doc/doc_ch/recognition.md +++ b/doc/doc_ch/recognition.md @@ -144,7 +144,6 @@ word_dict.txt 每行有一个单字,将字符与数字索引映射在一起, 如果希望支持识别"空格"类别, 请将yml文件中的 `use_space_char` 字段设置为 `true`。 -**注意:`use_space_char` 仅在 `character_type=ch` 时生效** ### 启动训练 @@ -167,10 +166,9 @@ tar -xf rec_mv3_none_bilstm_ctc.tar && rm -rf rec_mv3_none_bilstm_ctc.tar *如果您安装的是cpu版本,请将配置文件中的 `use_gpu` 字段修改为false* ``` -# GPU训练 支持单卡,多卡训练,通过CUDA_VISIBLE_DEVICES指定卡号 -export CUDA_VISIBLE_DEVICES=0,1,2,3 +# GPU训练 支持单卡,多卡训练,通过selected_gpus参数指定卡号 # 训练icdar15英文数据 并将训练日志保存为 tain_rec.log -python3 tools/train.py -c configs/rec/rec_icdar15_train.yml 2>&1 | tee train_rec.log +python3 -m paddle.distributed.launch --selected_gpus '0,1,2,3' tools/train.py -c configs/rec/rec_icdar15_train.yml 2>&1 | tee train_rec.log ``` - 数据增强 @@ -212,37 +210,67 @@ PaddleOCR支持训练和评估交替进行, 可以在 `configs/rec/rec_icdar15_t 训练中文数据,推荐使用[rec_chinese_lite_train_v1.1.yml](../../configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yml),如您希望尝试其他算法在中文数据集上的效果,请参考下列说明修改配置文件: -以 `rec_mv3_none_none_ctc.yml` 为例: +以 `rec_chinese_lite_train_v1.1.yml` 为例: ``` Global: ... - # 修改 image_shape 以适应长文本 - image_shape: [3, 32, 320] - ... + # 添加自定义字典,如修改字典请将路径指向新字典 + character_dict_path: ppocr/utils/ppocr_keys_v1.txt # 修改字符类型 character_type: ch - # 添加自定义字典,如修改字典请将路径指向新字典 - character_dict_path: ./ppocr/utils/ppocr_keys_v1.txt - # 训练时添加数据增强 - distort: true + ... # 识别空格 - use_space_char: true - ... - # 修改reader类型 - reader_yml: ./configs/rec/rec_chinese_reader.yml - ... + use_space_char: False -... Optimizer: ... # 添加学习率衰减策略 - decay: - function: cosine_decay - # 每个 epoch 包含 iter 数 - step_each_epoch: 20 - # 总共训练epoch数 - total_epoch: 1000 + lr: + name: Cosine + learning_rate: 0.001 + ... + +... + +Train: + dataset: + # 数据集格式,支持LMDBDateSet以及SimpleDataSet + name: SimpleDataSet + # 数据集路径 + data_dir: ./train_data/ + # 训练集标签文件 + label_file_list: ["./train_data/train_list.txt"] + transforms: + ... + - RecResizeImg: + # 修改 image_shape 以适应长文本 + image_shape: [3, 32, 320] + ... + loader: + ... + # 单卡训练的batch_size + batch_size_per_card: 256 + ... + +Eval: + dataset: + # 数据集格式,支持LMDBDateSet以及SimpleDataSet + name: SimpleDataSet + # 数据集路径 + data_dir: ./train_data + # 验证集标签文件 + label_file_list: ["./train_data/val_list.txt"] + transforms: + ... + - RecResizeImg: + # 修改 image_shape 以适应长文本 + image_shape: [3, 32, 320] + ... + loader: + # 单卡验证的batch_size + batch_size_per_card: 256 + ... ``` **注意,预测/评估时的配置文件请务必与训练一致。** @@ -270,33 +298,36 @@ Global: ... # 添加自定义字典,如修改字典请将路径指向新字典 character_dict_path: ./ppocr/utils/dict/french_dict.txt - # 训练时添加数据增强 - distort: true + ... # 识别空格 - use_space_char: true - ... - # 修改reader类型 - reader_yml: ./configs/rec/multi_languages/rec_french_reader.yml - ... -... -``` - -同时需要修改数据读取文件 `rec_french_reader.yml`: - -``` -TrainReader: - ... - # 修改训练数据存放的目录名 - img_set_dir: ./train_data - # 修改 label 文件名称 - label_file_path: ./train_data/french_train.txt + use_space_char: False ... + +Train: + dataset: + # 数据集格式,支持LMDBDateSet以及SimpleDataSet + name: SimpleDataSet + # 数据集路径 + data_dir: ./train_data/ + # 训练集标签文件 + label_file_list: ["./train_data/french_train.txt"] + ... + +Eval: + dataset: + # 数据集格式,支持LMDBDateSet以及SimpleDataSet + name: SimpleDataSet + # 数据集路径 + data_dir: ./train_data + # 验证集标签文件 + label_file_list: ["./train_data/french_val.txt"] + ... ``` ### 评估 -评估数据集可以通过 `configs/rec/rec_icdar15_reader.yml` 修改EvalReader中的 `label_file_path` 设置。 +评估数据集可以通过 `configs/rec/rec_icdar15_train.yml` 修改Eval中的 `label_file_path` 设置。 *注意* 评估时必须确保配置文件中 infer_img 字段为空 ``` From cb371c1eccf6c5f856e01b99d15fe51c532c3931 Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Fri, 4 Dec 2020 17:09:28 +0800 Subject: [PATCH 03/51] first update inference.md --- doc/doc_ch/inference.md | 123 ++++++++++++++++++++-------------------- 1 file changed, 61 insertions(+), 62 deletions(-) diff --git a/doc/doc_ch/inference.md b/doc/doc_ch/inference.md index 0432695a3..bcd078b9d 100644 --- a/doc/doc_ch/inference.md +++ b/doc/doc_ch/inference.md @@ -1,11 +1,11 @@ # 基于Python预测引擎推理 -inference 模型(`fluid.io.save_inference_model`保存的模型) +inference 模型(`paddle.jit.save`保存的模型) 一般是模型训练完成后保存的固化模型,多用于预测部署。训练过程中保存的模型是checkpoints模型,保存的是模型的参数,多用于恢复训练等。 -与checkpoints模型相比,inference 模型会额外保存模型的结构信息,在预测部署、加速推理上性能优越,灵活方便,适合与实际系统集成。更详细的介绍请参考文档[分类预测框架](https://github.com/PaddlePaddle/PaddleClas/blob/master/docs/zh_CN/extension/paddle_inference.md). +与checkpoints模型相比,inference 模型会额外保存模型的结构信息,在预测部署、加速推理上性能优越,灵活方便,适合与实际系统集成。 -接下来首先介绍如何将训练的模型转换成inference模型,然后将依次介绍文本检测、文本识别以及两者串联基于预测引擎推理。 +接下来首先介绍如何将训练的模型转换成inference模型,然后将依次介绍文本检测、文本角度分类器、文本识别以及三者串联基于预测引擎推理。 - [一、训练模型转inference模型](#训练模型转inference模型) @@ -42,24 +42,22 @@ inference 模型(`fluid.io.save_inference_model`保存的模型) 下载超轻量级中文检测模型: ``` -wget -P ./ch_lite/ https://paddleocr.bj.bcebos.com/20-09-22/mobile/det/ch_ppocr_mobile_v1.1_det_train.tar && tar xf ./ch_lite/ch_ppocr_mobile_v1.1_det_train.tar -C ./ch_lite/ +wget -P ./ch_lite/ {link} && tar xf ./ch_lite/{file} -C ./ch_lite/ ``` 上述模型是以MobileNetV3为backbone训练的DB算法,将训练好的模型转换成inference模型只需要运行如下命令: ``` -# -c后面设置训练算法的yml配置文件 -# -o配置可选参数 -# Global.checkpoints参数设置待转换的训练模型地址,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 -# Global.save_inference_dir参数设置转换的模型将保存的地址。 +# -c 后面设置训练算法的yml配置文件,需将待转换的训练模型地址写入配置文件里的Global.checkpoints字段下, 不用添加文件后缀.pdmodel,.pdopt或.pdparams。 +# -o 后面设置转换的模型将保存的地址。 -python3 tools/export_model.py -c configs/det/det_mv3_db_v1.1.yml -o Global.checkpoints=./ch_lite/ch_ppocr_mobile_v1.1_det_train/best_accuracy Global.save_inference_dir=./inference/det_db/ +python3 tools/export_model.py -c configs/det/det_mv3_db_v1.1.yml -o ./inference/det_db/ ``` -转inference模型时,使用的配置文件和训练时使用的配置文件相同。另外,还需要设置配置文件中的`Global.checkpoints`、`Global.save_inference_dir`参数。 -其中`Global.checkpoints`指向训练中保存的模型参数文件,`Global.save_inference_dir`是生成的inference模型要保存的目录。 -转换成功后,在`save_inference_dir`目录下有两个文件: +转inference模型时,使用的配置文件和训练时使用的配置文件相同。另外,还需要设置配置文件中的`Global.checkpoints`参数,其指向训练中保存的模型参数文件。 +转换成功后,在模型保存目录下有三个文件: ``` inference/det_db/ - └─ model 检测inference模型的program文件 - └─ params 检测inference模型的参数文件 + ├── det.pdiparams # 检测inference模型的参数文件,需要重命名为params + ├── det.pdiparams.info # 检测inference模型的参数信息,可忽略 + └── det.pdmodel # 检测inference模型的program文件,需要重命名为model ``` @@ -67,27 +65,24 @@ inference/det_db/ 下载超轻量中文识别模型: ``` -wget -P ./ch_lite/ https://paddleocr.bj.bcebos.com/20-09-22/mobile/rec/ch_ppocr_mobile_v1.1_rec_train.tar && tar xf ./ch_lite/ch_ppocr_mobile_v1.1_rec_train.tar -C ./ch_lite/ +wget -P ./ch_lite/ {link} && tar xf ./ch_lite/{file} -C ./ch_lite/ ``` 识别模型转inference模型与检测的方式相同,如下: ``` -# -c后面设置训练算法的yml配置文件 -# -o配置可选参数 -# Global.checkpoints参数设置待转换的训练模型地址,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 -# Global.save_inference_dir参数设置转换的模型将保存的地址。 - -python3 tools/export_model.py -c configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yml -o Global.checkpoints=./ch_lite/ch_ppocr_mobile_v1.1_rec_train/best_accuracy \ - Global.save_inference_dir=./inference/rec_crnn/ +# -c 后面设置训练算法的yml配置文件,需将待转换的训练模型地址写入配置文件里的Global.checkpoints字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 +# -o 后面设置转换的模型将保存的地址。 +python3 tools/export_model.py -c configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yml -o ./inference/rec_crnn/ ``` **注意:**如果您是在自己的数据集上训练的模型,并且调整了中文字符的字典文件,请注意修改配置文件中的`character_dict_path`是否是所需要的字典文件。 -转换成功后,在目录下有两个文件: +转换成功后,在目录下有三个文件: ``` /inference/rec_crnn/ - └─ model 识别inference模型的program文件 - └─ params 识别inference模型的参数文件 + ├── rec.pdiparams # 识别inference模型的参数文件,需要重命名为params + ├── rec.pdiparams.info # 识别inference模型的参数信息,可忽略 + └── rec.pdmodel # 识别inference模型的program文件,需要重命名为model ``` @@ -95,25 +90,23 @@ python3 tools/export_model.py -c configs/rec/ch_ppocr_v1.1/rec_chinese_lite_trai 下载方向分类模型: ``` -wget -P ./ch_lite/ https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_train.tar && tar xf ./ch_lite/ch_ppocr_mobile_v1.1_cls_train.tar -C ./ch_lite/ +wget -P ./ch_lite/ {link} && tar xf ./ch_lite/{file} -C ./ch_lite/ ``` 方向分类模型转inference模型与检测的方式相同,如下: ``` -# -c后面设置训练算法的yml配置文件 -# -o配置可选参数 -# Global.checkpoints参数设置待转换的训练模型地址,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 -# Global.save_inference_dir参数设置转换的模型将保存的地址。 +# -c 后面设置训练算法的yml配置文件,需将待转换的训练模型地址写入配置文件里的Global.checkpoints字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 +# -o 后面设置转换的模型将保存的地址。 -python3 tools/export_model.py -c configs/cls/cls_mv3.yml -o Global.checkpoints=./ch_lite/ch_ppocr_mobile_v1.1_cls_train/best_accuracy \ - Global.save_inference_dir=./inference/cls/ +python3 tools/export_model.py -c configs/cls/cls_mv3.yml -o ./inference/cls/ ``` -转换成功后,在目录下有两个文件: +转换成功后,在目录下有三个文件: ``` /inference/cls/ - └─ model 识别inference模型的program文件 - └─ params 识别inference模型的参数文件 + ├── cls.pdiparams # 分类inference模型的参数文件,需要重命名为params + ├── cls.pdiparams.info # 分类inference模型的参数信息,可忽略 + └── cls.pdmodel # 分类inference模型的program文件,需要重命名为model ``` @@ -134,7 +127,9 @@ python3 tools/infer/predict_det.py --image_dir="./doc/imgs/2.jpg" --det_model_di ![](../imgs_results/det_res_2.jpg) -通过设置参数`det_max_side_len`的大小,改变检测算法中图片规范化的最大值。当图片的长宽都小于`det_max_side_len`,则使用原图预测,否则将图片等比例缩放到最大值,进行预测。该参数默认设置为`det_max_side_len=960`。 如果输入图片的分辨率比较大,而且想使用更大的分辨率预测,可以执行如下命令: +通过参数`limit_type`和`det_limit_side_len`来对图片的尺寸进行限制限,`max`为限制长边长度<`det_limit_side_len`,`min`为限制短边长度>`det_limit_side_len`, +图片不满足限制条件时(`max`时>`det_limit_side_len`或`min`时<`det_limit_side_len`),将对图片进行等比例缩放。 +该参数默认设置为`limit_type='max',det_max_side_len=960`。 如果输入图片的分辨率比较大,而且想使用更大的分辨率预测,可以执行如下命令: ``` python3 tools/infer/predict_det.py --image_dir="./doc/imgs/2.jpg" --det_model_dir="./inference/det_db/" --det_max_side_len=1200 @@ -148,14 +143,13 @@ python3 tools/infer/predict_det.py --image_dir="./doc/imgs/2.jpg" --det_model_di ### 2. DB文本检测模型推理 -首先将DB文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例([模型下载地址](https://paddleocr.bj.bcebos.com/det_r50_vd_db.tar)),可以使用如下命令进行转换: +首先将DB文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例([模型下载地址](地址)),可以使用如下命令进行转换: ``` -# -c后面设置训练算法的yml配置文件 -# Global.checkpoints参数设置待转换的训练模型地址,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 -# Global.save_inference_dir参数设置转换的模型将保存的地址。 +# -c 后面设置训练算法的yml配置文件,需将待转换的训练模型地址写入配置文件里的Global.checkpoints字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 +# -o 后面设置转换的模型将保存的地址。 -python3 tools/export_model.py -c configs/det/det_r50_vd_db.yml -o Global.checkpoints="./models/det_r50_vd_db/best_accuracy" Global.save_inference_dir="./inference/det_db" +python3 tools/export_model.py -c configs/det/det_r50_vd_db.yml -o "./inference/det_db" ``` DB文本检测模型推理,可以执行如下命令: @@ -173,12 +167,11 @@ python3 tools/infer/predict_det.py --image_dir="./doc/imgs_en/img_10.jpg" --det_ ### 3. EAST文本检测模型推理 -首先将EAST文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例([模型下载地址](https://paddleocr.bj.bcebos.com/det_r50_vd_east.tar)),可以使用如下命令进行转换: +首先将EAST文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例([模型下载地址](地址)),可以使用如下命令进行转换: ``` -# -c后面设置训练算法的yml配置文件 -# Global.checkpoints参数设置待转换的训练模型地址,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 -# Global.save_inference_dir参数设置转换的模型将保存的地址。 +# -c 后面设置训练算法的yml配置文件,需将待转换的训练模型地址写入配置文件里的Global.checkpoints字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 +# -o 后面设置转换的模型将保存的地址。 python3 tools/export_model.py -c configs/det/det_r50_vd_east.yml -o Global.checkpoints="./models/det_r50_vd_east/best_accuracy" Global.save_inference_dir="./inference/det_east" ``` @@ -198,9 +191,12 @@ python3 tools/infer/predict_det.py --det_algorithm="EAST" --image_dir="./doc/img ### 4. SAST文本检测模型推理 #### (1). 四边形文本检测模型(ICDAR2015) -首先将SAST文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例([模型下载地址](https://paddleocr.bj.bcebos.com/SAST/sast_r50_vd_icdar2015.tar)),可以使用如下命令进行转换: +首先将SAST文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例([模型下载地址](地址)),可以使用如下命令进行转换: ``` -python3 tools/export_model.py -c configs/det/det_r50_vd_sast_icdar15.yml -o Global.checkpoints="./models/sast_r50_vd_icdar2015/best_accuracy" Global.save_inference_dir="./inference/det_sast_ic15" +# -c 后面设置训练算法的yml配置文件,需将待转换的训练模型地址写入配置文件里的Global.checkpoints字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 +# -o 后面设置转换的模型将保存的地址。 + +python3 tools/export_model.py -c configs/det/det_r50_vd_sast_icdar15.yml -o "./inference/det_sast_ic15" ``` **SAST文本检测模型推理,需要设置参数`--det_algorithm="SAST"`**,可以执行如下命令: ``` @@ -211,10 +207,13 @@ python3 tools/infer/predict_det.py --det_algorithm="SAST" --image_dir="./doc/img ![](../imgs_results/det_res_img_10_sast.jpg) #### (2). 弯曲文本检测模型(Total-Text) -首先将SAST文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在Total-Text英文数据集训练的模型为例([模型下载地址](https://paddleocr.bj.bcebos.com/SAST/sast_r50_vd_total_text.tar)),可以使用如下命令进行转换: +首先将SAST文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在Total-Text英文数据集训练的模型为例([模型下载地址](地址)),可以使用如下命令进行转换: ``` -python3 tools/export_model.py -c configs/det/det_r50_vd_sast_totaltext.yml -o Global.checkpoints="./models/sast_r50_vd_total_text/best_accuracy" Global.save_inference_dir="./inference/det_sast_tt" +# -c 后面设置训练算法的yml配置文件,需将待转换的训练模型地址写入配置文件里的Global.checkpoints字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 +# -o 后面设置转换的模型将保存的地址。 + +python3 tools/export_model.py -c configs/det/det_r50_vd_sast_totaltext.yml -o "./inference/det_sast_tt" ``` **SAST文本检测模型推理,需要设置参数`--det_algorithm="SAST"`,同时,还需要增加参数`--det_sast_polygon=True`,**可以执行如下命令: @@ -256,14 +255,13 @@ Predicts of ./doc/imgs_words/ch/word_4.jpg:['实力活力', 0.89552695] 我们以STAR-Net为例,介绍基于CTC损失的识别模型推理。 CRNN和Rosetta使用方式类似,不用设置识别算法参数rec_algorithm。 首先将STAR-Net文本识别训练过程中保存的模型,转换成inference model。以基于Resnet34_vd骨干网络,使用MJSynth和SynthText两个英文文本识别合成数据集训练 -的模型为例([模型下载地址](https://paddleocr.bj.bcebos.com/rec_r34_vd_tps_bilstm_ctc.tar)),可以使用如下命令进行转换: +的模型为例([模型下载地址](地址)),可以使用如下命令进行转换: ``` -# -c后面设置训练算法的yml配置文件 -# Global.checkpoints参数设置待转换的训练模型地址,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 -# Global.save_inference_dir参数设置转换的模型将保存的地址。 +# -c 后面设置训练算法的yml配置文件,需将待转换的训练模型地址写入配置文件里的Global.checkpoints字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 +# -o 后面设置转换的模型将保存的地址。 -python3 tools/export_model.py -c configs/rec/rec_r34_vd_tps_bilstm_ctc.yml -o Global.checkpoints="./models/rec_r34_vd_tps_bilstm_ctc/best_accuracy" Global.save_inference_dir="./inference/starnet" +python3 tools/export_model.py -c configs/rec/rec_r34_vd_tps_bilstm_ctc.yml -o "./inference/starnet" ``` STAR-Net文本识别模型推理,可以执行如下命令: @@ -275,11 +273,9 @@ python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png ### 3. 基于Attention损失的识别模型推理 -基于Attention损失的识别模型与ctc不同,需要额外设置识别算法参数 --rec_algorithm="RARE" - RARE 文本识别模型推理,可以执行如下命令: ``` -python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png" --rec_model_dir="./inference/rare/" --rec_image_shape="3, 32, 100" --rec_char_type="en" --rec_algorithm="RARE" +python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png" --rec_model_dir="./inference/rare/" --rec_image_shape="3, 32, 100" --rec_char_type="en" ``` ![](../imgs_words_en/word_336.png) @@ -298,17 +294,17 @@ Predicts of ./doc/imgs_words_en/word_336.png:['super', 0.9999555] self.character_str = "0123456789abcdefghijklmnopqrstuvwxyz" dict_character = list(self.character_str) ``` + ### 4. 基于SRN损失的识别模型推理 -基于SRN损失的识别模型,需要额外设置识别算法参数 --rec_algorithm="SRN"。 同时需要保证预测shape与训练时一致,如: --rec_image_shape="1, 64, 256" +基于SRN损失的识别模型需要保证预测shape与训练时一致,如: --rec_image_shape="1, 64, 256" ``` python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png" \ --rec_model_dir="./inference/srn/" \ --rec_image_shape="1, 64, 256" \ - --rec_char_type="en" \ - --rec_algorithm="SRN" + --rec_char_type="en" ``` @@ -350,11 +346,14 @@ python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words/korean/1.jpg" - python3 tools/infer/predict_cls.py --image_dir="./doc/imgs_words/ch/word_4.jpg" --cls_model_dir="./inference/cls/" ``` -![](../imgs_words/ch/word_4.jpg) +![](../imgs_words/ch/word_1.jpg) 执行命令后,上面图像的预测结果(分类的方向和得分)会打印到屏幕上,示例如下: -Predicts of ./doc/imgs_words/ch/word_4.jpg:['0', 0.9999963] +``` +infer_img: doc/imgs_words/ch/word_1.jpg + result: ('0', 0.9998784) +``` ## 五、文本检测、方向分类和文字识别串联推理 From d986c2208569c063a040e7add805da8e03c314d9 Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Mon, 7 Dec 2020 15:48:46 +0800 Subject: [PATCH 04/51] update inference doc --- doc/doc_ch/inference.md | 6 +-- doc/doc_en/inference_en.md | 107 ++++++++++++++++++------------------- 2 files changed, 54 insertions(+), 59 deletions(-) diff --git a/doc/doc_ch/inference.md b/doc/doc_ch/inference.md index bcd078b9d..3af84807e 100644 --- a/doc/doc_ch/inference.md +++ b/doc/doc_ch/inference.md @@ -127,12 +127,12 @@ python3 tools/infer/predict_det.py --image_dir="./doc/imgs/2.jpg" --det_model_di ![](../imgs_results/det_res_2.jpg) -通过参数`limit_type`和`det_limit_side_len`来对图片的尺寸进行限制限,`max`为限制长边长度<`det_limit_side_len`,`min`为限制短边长度>`det_limit_side_len`, -图片不满足限制条件时(`max`时>`det_limit_side_len`或`min`时<`det_limit_side_len`),将对图片进行等比例缩放。 +通过参数`limit_type`和`det_limit_side_len`来对图片的尺寸进行限制限,`limit_type=max`为限制长边长度<`det_limit_side_len`,`limit_type=min`为限制短边长度>`det_limit_side_len`, +图片不满足限制条件时(`limit_type=max`时长边长度>`det_limit_side_len`或`limit_type=min`时短边长度<`det_limit_side_len`),将对图片进行等比例缩放。 该参数默认设置为`limit_type='max',det_max_side_len=960`。 如果输入图片的分辨率比较大,而且想使用更大的分辨率预测,可以执行如下命令: ``` -python3 tools/infer/predict_det.py --image_dir="./doc/imgs/2.jpg" --det_model_dir="./inference/det_db/" --det_max_side_len=1200 +python3 tools/infer/predict_det.py --image_dir="./doc/imgs/2.jpg" --det_model_dir="./inference/det_db/" --det_limit_type=max --det_limit_side_len=1200 ``` 如果想使用CPU进行预测,执行命令如下 diff --git a/doc/doc_en/inference_en.md b/doc/doc_en/inference_en.md index 609b65fa5..31f6b1e5b 100644 --- a/doc/doc_en/inference_en.md +++ b/doc/doc_en/inference_en.md @@ -1,13 +1,13 @@ # Reasoning based on Python prediction engine -The inference model (the model saved by `fluid.io.save_inference_model`) is generally a solidified model saved after the model training is completed, and is mostly used to give prediction in deployment. +The inference model (the model saved by `paddle.jit.save`) is generally a solidified model saved after the model training is completed, and is mostly used to give prediction in deployment. The model saved during the training process is the checkpoints model, which saves the parameters of the model and is mostly used to resume training. Compared with the checkpoints model, the inference model will additionally save the structural information of the model. It has superior performance in predicting in deployment and accelerating inferencing, is flexible and convenient, and is suitable for integration with actual systems. For more details, please refer to the document [Classification Framework](https://github.com/PaddlePaddle/PaddleClas/blob/master/docs/zh_CN/extension/paddle_inference.md). -Next, we first introduce how to convert a trained model into an inference model, and then we will introduce text detection, text recognition, and the concatenation of them based on inference model. +Next, we first introduce how to convert a trained model into an inference model, and then we will introduce text detection, text recognition, angle class, and the concatenation of them based on inference model. - [CONVERT TRAINING MODEL TO INFERENCE MODEL](#CONVERT) - [Convert detection model to inference model](#Convert_detection_model) @@ -44,26 +44,24 @@ Next, we first introduce how to convert a trained model into an inference model, Download the lightweight Chinese detection model: ``` -wget -P ./ch_lite/ https://paddleocr.bj.bcebos.com/20-09-22/mobile/det/ch_ppocr_mobile_v1.1_det_train.tar && tar xf ./ch_lite/ch_ppocr_mobile_v1.1_det_train.tar -C ./ch_lite/ +wget -P ./ch_lite/ {link} && tar xf ./ch_lite/{file} -C ./ch_lite/ ``` The above model is a DB algorithm trained with MobileNetV3 as the backbone. To convert the trained model into an inference model, just run the following command: ``` -# -c Set the training algorithm yml configuration file -# -o Set optional parameters -# Global.checkpoints parameter Set the training model address to be converted without adding the file suffix .pdmodel, .pdopt or .pdparams. -# Global.save_inference_dir Set the address where the converted model will be saved. +# -c Set the yml configuration file of the training algorithm, you need to write the path of the training model to be converted into the Global.checkpoints parameter in the configuration file, without adding the file suffixes .pdmodel, .pdopt or .pdparams. +# -o Set the address where the converted model will be saved. -python3 tools/export_model.py -c configs/det/det_mv3_db_v1.1.yml -o Global.checkpoints=./ch_lite/ch_ppocr_mobile_v1.1_det_train/best_accuracy Global.save_inference_dir=./inference/det_db/ +python3 tools/export_model.py -c configs/det/det_mv3_db_v1.1.yml -o ./inference/det_db/ ``` -When converting to an inference model, the configuration file used is the same as the configuration file used during training. In addition, you also need to set the `Global.checkpoints` and `Global.save_inference_dir` parameters in the configuration file. -`Global.checkpoints` points to the model parameter file saved during training, and `Global.save_inference_dir` is the directory where the generated inference model is saved. -After the conversion is successful, there are two files in the `save_inference_dir` directory: +When converting to an inference model, the configuration file used is the same as the configuration file used during training. In addition, you also need to set the `Global.checkpoints` parameter in the configuration file. +After the conversion is successful, there are three files in the model save directory: ``` inference/det_db/ - └─ model Check the program file of inference model - └─ params Check the parameter file of the inference model + ├── det.pdiparams # The parameter file of detection inference model which needs to be renamed to params + ├── det.pdiparams.info # The parameter information of detection inference model, which can be ignored + └── det.pdmodel # The program file of detection inference model which needs to be renamed to model ``` @@ -71,26 +69,25 @@ inference/det_db/ Download the lightweight Chinese recognition model: ``` -wget -P ./ch_lite/ https://paddleocr.bj.bcebos.com/20-09-22/mobile/rec/ch_ppocr_mobile_v1.1_rec_train.tar && tar xf ch_ppocr_mobile_v1.1_rec_train.tar -C ./ch_lite/ +wget -P ./ch_lite/ {link} && tar xf ./ch_lite/{file} -C ./ch_lite/ ``` The recognition model is converted to the inference model in the same way as the detection, as follows: ``` -# -c Set the training algorithm yml configuration file -# -o Set optional parameters -# Global.checkpoints parameter Set the training model address to be converted without adding the file suffix .pdmodel, .pdopt or .pdparams. -# Global.save_inference_dir Set the address where the converted model will be saved. +# -c Set the yml configuration file of the training algorithm, you need to write the path of the training model to be converted into the Global.checkpoints parameter in the configuration file, without adding the file suffixes .pdmodel, .pdopt or .pdparams. +# -o Set the address where the converted model will be saved. -python3 tools/export_model.py -c configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yml -o Global.checkpoints=./ch_lite/ch_ppocr_mobile_v1.1_rec_train/best_accuracy \ +python3 tools/export_model.py -c configs/cls/cls_mv3.yml -o ./inference/cls/ ``` If you have a model trained on your own dataset with a different dictionary file, please make sure that you modify the `character_dict_path` in the configuration file to your dictionary file path. -After the conversion is successful, there are two files in the directory: +After the conversion is successful, there are three files in the model save directory: ``` -/inference/rec_crnn/ - └─ model Identify the saved model files - └─ params Identify the parameter files of the inference model +inference/det_db/ + ├── rec.pdiparams # The parameter file of recognition inference model which needs to be renamed to params + ├── rec.pdiparams.info # The parameter information of recognition inference model, which can be ignored + └── rec.pdmodel # The program file of detection recognition model which needs to be renamed to model ``` @@ -98,18 +95,15 @@ After the conversion is successful, there are two files in the directory: Download the angle classification model: ``` -wget -P ./ch_lite/ https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_train.tar && tar xf ./ch_lite/ch_ppocr_mobile_v1.1_cls_train.tar -C ./ch_lite/ +wget -P ./ch_lite/ {link} && tar xf ./ch_lite/{file} -C ./ch_lite/ ``` The angle classification model is converted to the inference model in the same way as the detection, as follows: ``` -# -c Set the training algorithm yml configuration file -# -o Set optional parameters -# Global.checkpoints parameter Set the training model address to be converted without adding the file suffix .pdmodel, .pdopt or .pdparams. -# Global.save_inference_dir Set the address where the converted model will be saved. +# -c Set the yml configuration file of the training algorithm, you need to write the path of the training model to be converted into the Global.checkpoints parameter in the configuration file, without adding the file suffixes .pdmodel, .pdopt or .pdparams. +# -o Set the address where the converted model will be saved. -python3 tools/export_model.py -c configs/cls/cls_mv3.yml -o Global.checkpoints=./ch_lite/ch_ppocr_mobile_v1.1_cls_train/best_accuracy \ - Global.save_inference_dir=./inference/cls/ +python3 tools/export_model.py -c configs/cls/cls_mv3.yml -o ./inference/cls/ ``` After the conversion is successful, there are two files in the directory: @@ -139,10 +133,12 @@ The visual text detection results are saved to the ./inference_results folder by ![](../imgs_results/det_res_2.jpg) -By setting the size of the parameter `det_max_side_len`, the maximum value of picture normalization in the detection algorithm is changed. When the length and width of the picture are less than det_max_side_len, the original picture is used for prediction, otherwise the picture is scaled to the maximum value for prediction. This parameter is set to det_max_side_len=960 by default. If the resolution of the input picture is relatively large and you want to use a larger resolution for prediction, you can execute the following command: +The size of the image is limited by the parameters `limit_type` and `det_limit_side_len`, `limit_type=max` is to limit the length of the long side <`det_limit_side_len`, and `limit_type=min` is to limit the length of the short side>`det_limit_side_len`, +When the picture does not meet the restriction conditions (for `limit_type=max`and long side >`det_limit_side_len` or for `min` and short side <`det_limit_side_len`), the image will be scaled proportionally. +This parameter is set to `limit_type='max', det_max_side_len=960` by default. If the resolution of the input picture is relatively large, and you want to use a larger resolution prediction, you can execute the following command: ``` -python3 tools/infer/predict_det.py --image_dir="./doc/imgs/2.jpg" --det_model_dir="./inference/det_db/" --det_max_side_len=1200 +python3 tools/infer/predict_det.py --image_dir="./doc/imgs/2.jpg" --det_model_dir="./inference/det_db/" --det_limit_type=max --det_limit_side_len=1200 ``` If you want to use the CPU for prediction, execute the command as follows @@ -153,14 +149,13 @@ python3 tools/infer/predict_det.py --image_dir="./doc/imgs/2.jpg" --det_model_di ### 2. DB TEXT DETECTION MODEL INFERENCE -First, convert the model saved in the DB text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the ICDAR2015 English dataset as an example ([model download link](https://paddleocr.bj.bcebos.com/det_r50_vd_db.tar)), you can use the following command to convert: +First, convert the model saved in the DB text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the ICDAR2015 English dataset as an example ([model download link](link)), you can use the following command to convert: ``` -# Set the yml configuration file of the training algorithm after -c -# The Global.checkpoints parameter sets the address of the training model to be converted without adding the file suffix .pdmodel, .pdopt or .pdparams. -# The Global.save_inference_dir parameter sets the address where the converted model will be saved. +# -c Set the yml configuration file of the training algorithm, you need to write the path of the training model to be converted into the Global.checkpoints parameter in the configuration file, without adding the file suffixes .pdmodel, .pdopt or .pdparams. +# -o Set the address where the converted model will be saved. -python3 tools/export_model.py -c configs/det/det_r50_vd_db.yml -o Global.checkpoints="./models/det_r50_vd_db/best_accuracy" Global.save_inference_dir="./inference/det_db" +python3 tools/export_model.py -c configs/det/det_r50_vd_db.yml -o "./inference/det_db" ``` DB text detection model inference, you can execute the following command: @@ -178,16 +173,14 @@ The visualized text detection results are saved to the `./inference_results` fol ### 3. EAST TEXT DETECTION MODEL INFERENCE -First, convert the model saved in the EAST text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the ICDAR2015 English dataset as an example ([model download link](https://paddleocr.bj.bcebos.com/det_r50_vd_east.tar)), you can use the following command to convert: +First, convert the model saved in the EAST text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the ICDAR2015 English dataset as an example ([model download link](link)), you can use the following command to convert: ``` -# Set the yml configuration file of the training algorithm after -c -# The Global.checkpoints parameter sets the address of the training model to be converted without adding the file suffix .pdmodel, .pdopt or .pdparams. -# The Global.save_inference_dir parameter sets the address where the converted model will be saved. +# -c Set the yml configuration file of the training algorithm, you need to write the path of the training model to be converted into the Global.checkpoints parameter in the configuration file, without adding the file suffixes .pdmodel, .pdopt or .pdparams. +# -o Set the address where the converted model will be saved. python3 tools/export_model.py -c configs/det/det_r50_vd_east.yml -o Global.checkpoints="./models/det_r50_vd_east/best_accuracy" Global.save_inference_dir="./inference/det_east" ``` - **For EAST text detection model inference, you need to set the parameter ``--det_algorithm="EAST"``**, run the following command: ``` @@ -204,10 +197,13 @@ The visualized text detection results are saved to the `./inference_results` fol ### 4. SAST TEXT DETECTION MODEL INFERENCE #### (1). Quadrangle text detection model (ICDAR2015) -First, convert the model saved in the SAST text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the ICDAR2015 English dataset as an example ([model download link](https://paddleocr.bj.bcebos.com/SAST/sast_r50_vd_icdar2015.tar)), you can use the following command to convert: +First, convert the model saved in the SAST text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the ICDAR2015 English dataset as an example ([model download link](link)), you can use the following command to convert: ``` -python3 tools/export_model.py -c configs/det/det_r50_vd_sast_icdar15.yml -o Global.checkpoints="./models/sast_r50_vd_icdar2015/best_accuracy" Global.save_inference_dir="./inference/det_sast_ic15" +# -c Set the yml configuration file of the training algorithm, you need to write the path of the training model to be converted into the Global.checkpoints parameter in the configuration file, without adding the file suffixes .pdmodel, .pdopt or .pdparams. +# -o Set the address where the converted model will be saved. + +python3 tools/export_model.py -c configs/det/det_r50_vd_sast_icdar15.yml -o "./inference/det_sast_ic15" ``` **For SAST quadrangle text detection model inference, you need to set the parameter `--det_algorithm="SAST"`**, run the following command: @@ -266,14 +262,13 @@ Predicts of ./doc/imgs_words/ch/word_4.jpg:['实力活力', 0.89552695] Taking STAR-Net as an example, we introduce the recognition model inference based on CTC loss. CRNN and Rosetta are used in a similar way, by setting the recognition algorithm parameter `rec_algorithm`. -First, convert the model saved in the STAR-Net text recognition training process into an inference model. Taking the model based on Resnet34_vd backbone network, using MJSynth and SynthText (two English text recognition synthetic datasets) for training, as an example ([model download address](https://paddleocr.bj.bcebos.com/rec_r34_vd_tps_bilstm_ctc.tar)). It can be converted as follow: +First, convert the model saved in the STAR-Net text recognition training process into an inference model. Taking the model based on Resnet34_vd backbone network, using MJSynth and SynthText (two English text recognition synthetic datasets) for training, as an example ([model download address](link)). It can be converted as follow: ``` -# Set the yml configuration file of the training algorithm after -c -# The Global.checkpoints parameter sets the address of the training model to be converted without adding the file suffix .pdmodel, .pdopt or .pdparams. -# The Global.save_inference_dir parameter sets the address where the converted model will be saved. +# -c Set the yml configuration file of the training algorithm, you need to write the path of the training model to be converted into the Global.checkpoints parameter in the configuration file, without adding the file suffixes .pdmodel, .pdopt or .pdparams. +# -o Set the address where the converted model will be saved. -python3 tools/export_model.py -c configs/rec/rec_r34_vd_tps_bilstm_ctc.yml -o Global.checkpoints="./models/rec_r34_vd_tps_bilstm_ctc/best_accuracy" Global.save_inference_dir="./inference/starnet" +python3 tools/export_model.py -c configs/rec/rec_r34_vd_tps_bilstm_ctc.yml -o "./inference/starnet" ``` For STAR-Net text recognition model inference, execute the following commands: @@ -304,15 +299,13 @@ dict_character = list(self.character_str) ### 4. SRN-BASED TEXT RECOGNITION MODEL INFERENCE -The recognition model based on SRN requires additional setting of the recognition algorithm parameter --rec_algorithm="SRN". -At the same time, it is necessary to ensure that the predicted shape is consistent with the training, such as: --rec_image_shape="1, 64, 256" +The recognition model based on SRN need to ensure that the predicted shape is consistent with the training, such as: --rec_image_shape="1, 64, 256" ``` python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png" \ --rec_model_dir="./inference/srn/" \ --rec_image_shape="1, 64, 256" \ - --rec_char_type="en" \ - --rec_algorithm="SRN" + --rec_char_type="en" ``` @@ -357,12 +350,14 @@ For angle classification model inference, you can execute the following commands python3 tools/infer/predict_cls.py --image_dir="./doc/imgs_words/ch/word_4.jpg" --cls_model_dir="./inference/cls/" ``` -![](../imgs_words/ch/word_4.jpg) +![](../imgs_words_en/word_10.png) After executing the command, the prediction results (classification angle and score) of the above image will be printed on the screen. -Predicts of ./doc/imgs_words/ch/word_4.jpg:['0', 0.9999963] - +``` +infer_img: doc/imgs_words_en/word_10.png + result: ('0', 0.9999995) +``` ## TEXT DETECTION ANGLE CLASSIFICATION AND RECOGNITION INFERENCE CONCATENATION From bccb261228fd2fe21534f8b9eabf21fc8856974b Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Mon, 7 Dec 2020 16:32:57 +0800 Subject: [PATCH 05/51] =?UTF-8?q?rename=20=E5=9C=B0=E5=9D=80=20to=20link?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/doc_ch/inference.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/doc_ch/inference.md b/doc/doc_ch/inference.md index 3af84807e..1b8554b92 100644 --- a/doc/doc_ch/inference.md +++ b/doc/doc_ch/inference.md @@ -143,7 +143,7 @@ python3 tools/infer/predict_det.py --image_dir="./doc/imgs/2.jpg" --det_model_di ### 2. DB文本检测模型推理 -首先将DB文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例([模型下载地址](地址)),可以使用如下命令进行转换: +首先将DB文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例([模型下载地址](link)),可以使用如下命令进行转换: ``` # -c 后面设置训练算法的yml配置文件,需将待转换的训练模型地址写入配置文件里的Global.checkpoints字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 @@ -167,7 +167,7 @@ python3 tools/infer/predict_det.py --image_dir="./doc/imgs_en/img_10.jpg" --det_ ### 3. EAST文本检测模型推理 -首先将EAST文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例([模型下载地址](地址)),可以使用如下命令进行转换: +首先将EAST文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例([模型下载地址](link)),可以使用如下命令进行转换: ``` # -c 后面设置训练算法的yml配置文件,需将待转换的训练模型地址写入配置文件里的Global.checkpoints字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 @@ -191,7 +191,7 @@ python3 tools/infer/predict_det.py --det_algorithm="EAST" --image_dir="./doc/img ### 4. SAST文本检测模型推理 #### (1). 四边形文本检测模型(ICDAR2015) -首先将SAST文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例([模型下载地址](地址)),可以使用如下命令进行转换: +首先将SAST文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例([模型下载地址](link)),可以使用如下命令进行转换: ``` # -c 后面设置训练算法的yml配置文件,需将待转换的训练模型地址写入配置文件里的Global.checkpoints字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 # -o 后面设置转换的模型将保存的地址。 @@ -207,7 +207,7 @@ python3 tools/infer/predict_det.py --det_algorithm="SAST" --image_dir="./doc/img ![](../imgs_results/det_res_img_10_sast.jpg) #### (2). 弯曲文本检测模型(Total-Text) -首先将SAST文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在Total-Text英文数据集训练的模型为例([模型下载地址](地址)),可以使用如下命令进行转换: +首先将SAST文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在Total-Text英文数据集训练的模型为例([模型下载地址](link)),可以使用如下命令进行转换: ``` # -c 后面设置训练算法的yml配置文件,需将待转换的训练模型地址写入配置文件里的Global.checkpoints字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 @@ -255,7 +255,7 @@ Predicts of ./doc/imgs_words/ch/word_4.jpg:['实力活力', 0.89552695] 我们以STAR-Net为例,介绍基于CTC损失的识别模型推理。 CRNN和Rosetta使用方式类似,不用设置识别算法参数rec_algorithm。 首先将STAR-Net文本识别训练过程中保存的模型,转换成inference model。以基于Resnet34_vd骨干网络,使用MJSynth和SynthText两个英文文本识别合成数据集训练 -的模型为例([模型下载地址](地址)),可以使用如下命令进行转换: +的模型为例([模型下载地址](link)),可以使用如下命令进行转换: ``` # -c 后面设置训练算法的yml配置文件,需将待转换的训练模型地址写入配置文件里的Global.checkpoints字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 From 2af8f2a011c67fdc44d31358666acf51e4728fc9 Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Wed, 9 Dec 2020 16:35:55 +0800 Subject: [PATCH 06/51] update quickstart doc, model link uses link as a placeholder --- doc/doc_ch/quickstart.md | 14 +++++++------- doc/doc_en/quickstart_en.md | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/doc/doc_ch/quickstart.md b/doc/doc_ch/quickstart.md index 97c3d41da..b10258857 100644 --- a/doc/doc_ch/quickstart.md +++ b/doc/doc_ch/quickstart.md @@ -5,7 +5,7 @@ 请先参考[快速安装](./installation.md)配置PaddleOCR运行环境。 -*注意:也可以通过 whl 包安装使用PaddleOCR,具体参考[Paddleocr Package使用说明](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_ch/whl.md)。* +*注意:也可以通过 whl 包安装使用PaddleOCR,具体参考[Paddleocr Package使用说明](./whl.md)。* ## 2.inference模型下载 @@ -13,8 +13,8 @@ | 模型简介 | 模型名称 |推荐场景 | 检测模型 | 方向分类器 | 识别模型 | | ------------ | --------------- | ----------------|---- | ---------- | -------- | -| 中英文超轻量OCR模型(8.1M) | ch_ppocr_mobile_v1.1_xx |移动端&服务器端|[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/det/ch_ppocr_mobile_v1.1_det_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/det/ch_ppocr_mobile_v1.1_det_train.tar)|[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/rec/ch_ppocr_mobile_v1.1_rec_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/rec/ch_ppocr_mobile_v1.1_rec_pre.tar) | -| 中英文通用OCR模型(155.1M) |ch_ppocr_server_v1.1_xx|服务器端 |[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/server/det/ch_ppocr_server_v1.1_det_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/20-09-22/server/det/ch_ppocr_server_v1.1_det_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/server/rec/ch_ppocr_server_v1.1_rec_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/20-09-22/server/rec/ch_ppocr_server_v1.1_rec_pre.tar) | +| 中英文超轻量OCR模型(xM) | |移动端&服务器端|[推理模型](link) / [预训练模型](link)|[推理模型]({}) / [预训练模型]({}) |[推理模型]({}) / [预训练模型]({}) | +| 中英文通用OCR模型(xM) | |服务器端 |[推理模型]({}) / [预训练模型]({}) |[推理模型]({}) / [预训练模型]({}) |[推理模型]({}) / [预训练模型]({}}) | * windows 环境下如果没有安装wget,下载模型时可将链接复制到浏览器中下载,并解压放置在相应目录下 @@ -37,11 +37,11 @@ cd .. ``` mkdir inference && cd inference # 下载超轻量级中文OCR模型的检测模型并解压 -wget https://paddleocr.bj.bcebos.com/20-09-22/mobile/det/ch_ppocr_mobile_v1.1_det_infer.tar && tar xf ch_ppocr_mobile_v1.1_det_infer.tar +wget {} && tar xf ch_ppocr_mobile_v1.1_det_infer.tar # 下载超轻量级中文OCR模型的识别模型并解压 -wget https://paddleocr.bj.bcebos.com/20-09-22/mobile/rec/ch_ppocr_mobile_v1.1_rec_infer.tar && tar xf ch_ppocr_mobile_v1.1_rec_infer.tar +wget {} && tar xf ch_ppocr_mobile_v1.1_rec_infer.tar # 下载超轻量级中文OCR模型的文本方向分类器模型并解压 -wget https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_infer.tar && tar xf ch_ppocr_mobile_v1.1_cls_infer.tar +wget {} && tar xf ch_ppocr_mobile_v1.1_cls_infer.tar cd .. ``` @@ -63,7 +63,7 @@ cd .. ## 3.单张图像或者图像集合预测 -以下代码实现了文本检测、识别串联推理,在执行预测时,需要通过参数image_dir指定单张图像或者图像集合的路径、参数`det_model_dir`指定检测inference模型的路径、参数`rec_model_dir`指定识别inference模型的路径、参数`use_angle_cls`指定是否使用方向分类器、参数`cls_model_dir`指定方向分类器inference模型的路径、参数`use_space_char`指定是否预测空格字符。可视化识别结果默认保存到`./inference_results`文件夹里面。 +以下代码实现了文本检测、方向分类器和识别串联推理,在执行预测时,需要通过参数image_dir指定单张图像或者图像集合的路径、参数`det_model_dir`指定检测inference模型的路径、参数`rec_model_dir`指定识别inference模型的路径、参数`use_angle_cls`指定是否使用方向分类器、参数`cls_model_dir`指定方向分类器inference模型的路径、参数`use_space_char`指定是否预测空格字符。可视化识别结果默认保存到`./inference_results`文件夹里面。 ```bash diff --git a/doc/doc_en/quickstart_en.md b/doc/doc_en/quickstart_en.md index 6a5f36934..6d4ce95d3 100644 --- a/doc/doc_en/quickstart_en.md +++ b/doc/doc_en/quickstart_en.md @@ -5,7 +5,7 @@ Please refer to [quick installation](./installation_en.md) to configure the PaddleOCR operating environment. -* Note: Support the use of PaddleOCR through whl package installation,pelease refer [PaddleOCR Package](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_en/whl_en.md). +* Note: Support the use of PaddleOCR through whl package installation,pelease refer [PaddleOCR Package](./whl_en.md). ## 2.inference models @@ -14,8 +14,8 @@ The detection and recognition models on the mobile and server sides are as follo | Model introduction | Model name | Recommended scene | Detection model | Direction Classifier | Recognition model | | ------------ | --------------- | ----------------|---- | ---------- | -------- | -| Ultra-lightweight Chinese OCR model(8.1M) | ch_ppocr_mobile_v1.1_xx |Mobile-side/Server-side|[inference model](https://paddleocr.bj.bcebos.com/20-09-22/mobile/det/ch_ppocr_mobile_v1.1_det_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/20-09-22/mobile/det/ch_ppocr_mobile_v1.1_det_train.tar)|[inference model](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/20-09-22/mobile/rec/ch_ppocr_mobile_v1.1_rec_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/20-09-22/mobile/rec/ch_ppocr_mobile_v1.1_rec_pre.tar) | -| Universal Chinese OCR model(155.1M) |ch_ppocr_server_v1.1_xx|Server-side |[inference model](https://paddleocr.bj.bcebos.com/20-09-22/server/det/ch_ppocr_server_v1.1_det_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/20-09-22/server/det/ch_ppocr_server_v1.1_det_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/20-09-22/server/rec/ch_ppocr_server_v1.1_rec_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/20-09-22/server/rec/ch_ppocr_server_v1.1_rec_pre.tar) | +| Ultra-lightweight Chinese OCR model(xM) | ch_ppocr_mobile_v1.1_xx |Mobile-side/Server-side|[inference model](link) / [pretrained model](link)|[inference model](link) / [pretrained model](link) |[inference model](link) / [pretrained model](link) | +| Universal Chinese OCR model(xM) |ch_ppocr_server_v1.1_xx|Server-side |[inference model](link) / [pretrained model](link) |[inference model](link) / [pretrained model](link) |[inference model](link) / [pretrained model](link) | * If `wget` is not installed in the windows environment, you can copy the link to the browser to download when downloading the model, then uncompress it and place it in the corresponding directory. @@ -37,11 +37,11 @@ Take the ultra-lightweight model as an example: ``` mkdir inference && cd inference # Download the detection model of the ultra-lightweight Chinese OCR model and uncompress it -wget https://paddleocr.bj.bcebos.com/20-09-22/mobile/det/ch_ppocr_mobile_v1.1_det_infer.tar && tar xf ch_ppocr_mobile_v1.1_det_infer.tar +wget link && tar xf ch_ppocr_mobile_v1.1_det_infer.tar # Download the recognition model of the ultra-lightweight Chinese OCR model and uncompress it -wget https://paddleocr.bj.bcebos.com/20-09-22/mobile/rec/ch_ppocr_mobile_v1.1_rec_infer.tar && tar xf ch_ppocr_mobile_v1.1_rec_infer.tar +wget link && tar xf ch_ppocr_mobile_v1.1_rec_infer.tar # Download the direction classifier model of the ultra-lightweight Chinese OCR model and uncompress it -wget https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_infer.tar && tar xf ch_ppocr_mobile_v1.1_cls_infer.tar +wget link && tar xf ch_ppocr_mobile_v1.1_cls_infer.tar cd .. ``` @@ -63,7 +63,7 @@ After decompression, the file structure should be as follows: ## 3. Single image or image set prediction -* The following code implements text detection and recognition process. When performing prediction, you need to specify the path of a single image or image set through the parameter `image_dir`, the parameter `det_model_dir` specifies the path to detect the inference model, the parameter `rec_model_dir` specifies the path to identify the inference model, the parameter `use_angle_cls` specifies whether to use the direction classifier, the parameter `cls_model_dir` specifies the path to identify the direction classifier model, the parameter `use_space_char` specifies whether to predict the space char. The visual results are saved to the `./inference_results` folder by default. +* The following code implements text detection、angle class and recognition process. When performing prediction, you need to specify the path of a single image or image set through the parameter `image_dir`, the parameter `det_model_dir` specifies the path to detect the inference model, the parameter `rec_model_dir` specifies the path to identify the inference model, the parameter `use_angle_cls` specifies whether to use the direction classifier, the parameter `cls_model_dir` specifies the path to identify the direction classifier model, the parameter `use_space_char` specifies whether to predict the space char. The visual results are saved to the `./inference_results` folder by default. From 72cbcc23e1b88be4db8871932372f54ed0934097 Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Wed, 9 Dec 2020 17:42:14 +0800 Subject: [PATCH 07/51] delete srn --- doc/doc_ch/inference.md | 22 ++++------------------ doc/doc_en/inference_en.md | 22 ++++------------------ 2 files changed, 8 insertions(+), 36 deletions(-) diff --git a/doc/doc_ch/inference.md b/doc/doc_ch/inference.md index 1b8554b92..805414d32 100644 --- a/doc/doc_ch/inference.md +++ b/doc/doc_ch/inference.md @@ -23,9 +23,8 @@ inference 模型(`paddle.jit.save`保存的模型) - [1. 超轻量中文识别模型推理](#超轻量中文识别模型推理) - [2. 基于CTC损失的识别模型推理](#基于CTC损失的识别模型推理) - [3. 基于Attention损失的识别模型推理](#基于Attention损失的识别模型推理) - - [4. 基于SRN损失的识别模型推理](#基于SRN损失的识别模型推理) - - [5. 自定义文本识别字典的推理](#自定义文本识别字典的推理) - - [6. 多语言模型的推理](#多语言模型的推理) + - [4. 自定义文本识别字典的推理](#自定义文本识别字典的推理) + - [5. 多语言模型的推理](#多语言模型的推理) - [四、方向分类模型推理](#方向识别模型推理) - [1. 方向分类模型推理](#方向分类模型推理) @@ -295,20 +294,7 @@ self.character_str = "0123456789abcdefghijklmnopqrstuvwxyz" dict_character = list(self.character_str) ``` - -### 4. 基于SRN损失的识别模型推理 - -基于SRN损失的识别模型需要保证预测shape与训练时一致,如: --rec_image_shape="1, 64, 256" - -``` -python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png" \ - --rec_model_dir="./inference/srn/" \ - --rec_image_shape="1, 64, 256" \ - --rec_char_type="en" -``` - - -### 5. 自定义文本识别字典的推理 +### 4. 自定义文本识别字典的推理 如果训练时修改了文本的字典,在使用inference模型预测时,需要通过`--rec_char_dict_path`指定使用的字典路径 ``` @@ -316,7 +302,7 @@ python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png ``` -### 6. 多语言模型的推理 +### 5. 多语言模型的推理 如果您需要预测的是其他语言模型,在使用inference模型预测时,需要通过`--rec_char_dict_path`指定使用的字典路径, 同时为了得到正确的可视化结果, 需要通过 `--vis_font_path` 指定可视化的字体路径,`doc/` 路径下有默认提供的小语种字体,例如韩文识别: diff --git a/doc/doc_en/inference_en.md b/doc/doc_en/inference_en.md index 31f6b1e5b..8ce0ea4d2 100644 --- a/doc/doc_en/inference_en.md +++ b/doc/doc_en/inference_en.md @@ -26,9 +26,8 @@ Next, we first introduce how to convert a trained model into an inference model, - [1. LIGHTWEIGHT CHINESE MODEL](#LIGHTWEIGHT_RECOGNITION) - [2. CTC-BASED TEXT RECOGNITION MODEL INFERENCE](#CTC-BASED_RECOGNITION) - [3. ATTENTION-BASED TEXT RECOGNITION MODEL INFERENCE](#ATTENTION-BASED_RECOGNITION) - - [4. SRN-BASED TEXT RECOGNITION MODEL INFERENCE](#SRN-BASED_RECOGNITION) - - [5. TEXT RECOGNITION MODEL INFERENCE USING CUSTOM CHARACTERS DICTIONARY](#USING_CUSTOM_CHARACTERS) - - [6. MULTILINGUAL MODEL INFERENCE](MULTILINGUAL_MODEL_INFERENCE) + - [4. TEXT RECOGNITION MODEL INFERENCE USING CUSTOM CHARACTERS DICTIONARY](#USING_CUSTOM_CHARACTERS) + - [5. MULTILINGUAL MODEL INFERENCE](MULTILINGUAL_MODEL_INFERENCE) - [ANGLE CLASSIFICATION MODEL INFERENCE](#ANGLE_CLASS_MODEL_INFERENCE) - [1. ANGLE CLASSIFICATION MODEL INFERENCE](#ANGLE_CLASS_MODEL_INFERENCE) @@ -296,21 +295,8 @@ self.character_str = "0123456789abcdefghijklmnopqrstuvwxyz" dict_character = list(self.character_str) ``` - -### 4. SRN-BASED TEXT RECOGNITION MODEL INFERENCE - -The recognition model based on SRN need to ensure that the predicted shape is consistent with the training, such as: --rec_image_shape="1, 64, 256" - -``` -python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png" \ - --rec_model_dir="./inference/srn/" \ - --rec_image_shape="1, 64, 256" \ - --rec_char_type="en" -``` - - -### 5. TEXT RECOGNITION MODEL INFERENCE USING CUSTOM CHARACTERS DICTIONARY +### 4. TEXT RECOGNITION MODEL INFERENCE USING CUSTOM CHARACTERS DICTIONARY If the chars dictionary is modified during training, you need to specify the new dictionary path by setting the parameter `rec_char_dict_path` when using your inference model to predict. ``` @@ -318,7 +304,7 @@ python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png ``` -### 6. MULTILINGAUL MODEL INFERENCE +### 5. MULTILINGAUL MODEL INFERENCE If you need to predict other language models, when using inference model prediction, you need to specify the dictionary path used by `--rec_char_dict_path`. At the same time, in order to get the correct visualization results, You need to specify the visual font path through `--vis_font_path`. There are small language fonts provided by default under the `doc/` path, such as Korean recognition: From 13cc1f3c41c97447342ebd4fe753100ebcd95bc8 Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Wed, 9 Dec 2020 18:38:27 +0800 Subject: [PATCH 08/51] delete rename --- doc/doc_ch/inference.md | 8 ++++---- doc/doc_en/inference_en.md | 15 ++++++++------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/doc/doc_ch/inference.md b/doc/doc_ch/inference.md index 805414d32..a37b50df6 100644 --- a/doc/doc_ch/inference.md +++ b/doc/doc_ch/inference.md @@ -79,9 +79,9 @@ python3 tools/export_model.py -c configs/rec/ch_ppocr_v1.1/rec_chinese_lite_trai 转换成功后,在目录下有三个文件: ``` /inference/rec_crnn/ - ├── rec.pdiparams # 识别inference模型的参数文件,需要重命名为params + ├── rec.pdiparams # 识别inference模型的参数文件 ├── rec.pdiparams.info # 识别inference模型的参数信息,可忽略 - └── rec.pdmodel # 识别inference模型的program文件,需要重命名为model + └── rec.pdmodel # 识别inference模型的program文件 ``` @@ -103,9 +103,9 @@ python3 tools/export_model.py -c configs/cls/cls_mv3.yml -o ./inference/cls/ 转换成功后,在目录下有三个文件: ``` /inference/cls/ - ├── cls.pdiparams # 分类inference模型的参数文件,需要重命名为params + ├── cls.pdiparams # 分类inference模型的参数文件 ├── cls.pdiparams.info # 分类inference模型的参数信息,可忽略 - └── cls.pdmodel # 分类inference模型的program文件,需要重命名为model + └── cls.pdmodel # 分类inference模型的program文件 ``` diff --git a/doc/doc_en/inference_en.md b/doc/doc_en/inference_en.md index 8ce0ea4d2..e103c6c64 100644 --- a/doc/doc_en/inference_en.md +++ b/doc/doc_en/inference_en.md @@ -58,9 +58,9 @@ When converting to an inference model, the configuration file used is the same a After the conversion is successful, there are three files in the model save directory: ``` inference/det_db/ - ├── det.pdiparams # The parameter file of detection inference model which needs to be renamed to params + ├── det.pdiparams # The parameter file of detection inference model ├── det.pdiparams.info # The parameter information of detection inference model, which can be ignored - └── det.pdmodel # The program file of detection inference model which needs to be renamed to model + └── det.pdmodel # The program file of detection inference model ``` @@ -84,9 +84,9 @@ If you have a model trained on your own dataset with a different dictionary file After the conversion is successful, there are three files in the model save directory: ``` inference/det_db/ - ├── rec.pdiparams # The parameter file of recognition inference model which needs to be renamed to params + ├── rec.pdiparams # The parameter file of recognition inference model ├── rec.pdiparams.info # The parameter information of recognition inference model, which can be ignored - └── rec.pdmodel # The program file of detection recognition model which needs to be renamed to model + └── rec.pdmodel # The program file of recognition model ``` @@ -107,9 +107,10 @@ python3 tools/export_model.py -c configs/cls/cls_mv3.yml -o ./inference/cls/ After the conversion is successful, there are two files in the directory: ``` -/inference/cls/ - └─ model Identify the saved model files - └─ params Identify the parameter files of the inference model +inference/det_db/ + ├── rec.pdiparams # The parameter file of angle class inference model + ├── rec.pdiparams.info # The parameter information of angle class inference model, which can be ignored + └── rec.pdmodel # The program file of angle class model ``` From fa0ad0f4fd7b45bbf750b83b4bf51ffbce1c5e3e Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Wed, 9 Dec 2020 18:40:44 +0800 Subject: [PATCH 09/51] rename inference model name --- deploy/cpp_infer/src/ocr_cls.cpp | 2 +- deploy/cpp_infer/src/ocr_det.cpp | 2 +- deploy/cpp_infer/src/ocr_rec.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/deploy/cpp_infer/src/ocr_cls.cpp b/deploy/cpp_infer/src/ocr_cls.cpp index 40debaa78..679397275 100644 --- a/deploy/cpp_infer/src/ocr_cls.cpp +++ b/deploy/cpp_infer/src/ocr_cls.cpp @@ -81,7 +81,7 @@ cv::Mat Classifier::Run(cv::Mat &img) { void Classifier::LoadModel(const std::string &model_dir) { AnalysisConfig config; - config.SetModel(model_dir + "/model", model_dir + "/params"); + config.SetModel(model_dir + "/cls.pdmodel", model_dir + "/cls.pdiparams"); if (this->use_gpu_) { config.EnableUseGpu(this->gpu_mem_, this->gpu_id_); diff --git a/deploy/cpp_infer/src/ocr_det.cpp b/deploy/cpp_infer/src/ocr_det.cpp index 1e1aaa1bf..3ca4cc26b 100644 --- a/deploy/cpp_infer/src/ocr_det.cpp +++ b/deploy/cpp_infer/src/ocr_det.cpp @@ -18,7 +18,7 @@ namespace PaddleOCR { void DBDetector::LoadModel(const std::string &model_dir) { AnalysisConfig config; - config.SetModel(model_dir + "/model", model_dir + "/params"); + config.SetModel(model_dir + "/det.pdmodel", model_dir + "/det.pdiparams"); if (this->use_gpu_) { config.EnableUseGpu(this->gpu_mem_, this->gpu_id_); diff --git a/deploy/cpp_infer/src/ocr_rec.cpp b/deploy/cpp_infer/src/ocr_rec.cpp index 009b6b75f..0b6d0532b 100644 --- a/deploy/cpp_infer/src/ocr_rec.cpp +++ b/deploy/cpp_infer/src/ocr_rec.cpp @@ -103,7 +103,7 @@ void CRNNRecognizer::Run(std::vector>> boxes, void CRNNRecognizer::LoadModel(const std::string &model_dir) { AnalysisConfig config; - config.SetModel(model_dir + "/model", model_dir + "/params"); + config.SetModel(model_dir + "/rec.pdmodel", model_dir + "/rec.pdiparams"); if (this->use_gpu_) { config.EnableUseGpu(this->gpu_mem_, this->gpu_id_); From 204ab814f1b65fbd9eda56028d824d702817ebcc Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Wed, 9 Dec 2020 18:42:47 +0800 Subject: [PATCH 10/51] delete rename --- doc/doc_ch/inference.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/doc_ch/inference.md b/doc/doc_ch/inference.md index a37b50df6..ae1429d86 100644 --- a/doc/doc_ch/inference.md +++ b/doc/doc_ch/inference.md @@ -54,9 +54,9 @@ python3 tools/export_model.py -c configs/det/det_mv3_db_v1.1.yml -o ./inference/ 转换成功后,在模型保存目录下有三个文件: ``` inference/det_db/ - ├── det.pdiparams # 检测inference模型的参数文件,需要重命名为params + ├── det.pdiparams # 检测inference模型的参数文件 ├── det.pdiparams.info # 检测inference模型的参数信息,可忽略 - └── det.pdmodel # 检测inference模型的program文件,需要重命名为model + └── det.pdmodel # 检测inference模型的program文件 ``` From 7eeef5933c359258b02835ca5e06b406dd6de407 Mon Sep 17 00:00:00 2001 From: tink2123 Date: Wed, 9 Dec 2020 11:56:37 +0000 Subject: [PATCH 11/51] update multi dic and export --- .../rec_en_number_lite_train.yml | 4 +- .../multi_language/rec_french_lite_train.yml | 8 +-- .../multi_language/rec_german_lite_train.yml | 4 +- .../multi_language/rec_japan_lite_train.yml | 4 +- .../multi_language/rec_korean_lite_train.yml | 4 +- deploy/cpp_infer/src/ocr_cls.cpp | 2 +- deploy/cpp_infer/src/ocr_det.cpp | 2 +- deploy/cpp_infer/src/ocr_rec.cpp | 4 +- ppocr/utils/dict/en_dict.txt | 63 +++++++++++++++++++ ppocr/utils/dict/french_dict.txt | 3 +- ppocr/utils/dict/german_dict.txt | 3 +- ppocr/utils/dict/japan_dict.txt | 3 +- ppocr/utils/dict/korean_dict.txt | 5 +- tools/export_model.py | 29 ++++----- tools/infer/utility.py | 12 ++-- 15 files changed, 105 insertions(+), 45 deletions(-) create mode 100644 ppocr/utils/dict/en_dict.txt diff --git a/configs/rec/multi_language/rec_en_number_lite_train.yml b/configs/rec/multi_language/rec_en_number_lite_train.yml index 70d825e61..cee051211 100644 --- a/configs/rec/multi_language/rec_en_number_lite_train.yml +++ b/configs/rec/multi_language/rec_en_number_lite_train.yml @@ -1,5 +1,5 @@ Global: - use_gpu: true + use_gpu: True epoch_num: 500 log_smooth_window: 20 print_batch_step: 10 @@ -15,7 +15,7 @@ Global: use_visualdl: False infer_img: # for data or label process - character_dict_path: ppocr/utils/dict/ic15_dict.txt + character_dict_path: ppocr/utils/dict/en_dict.txt character_type: ch max_text_length: 25 infer_mode: False diff --git a/configs/rec/multi_language/rec_french_lite_train.yml b/configs/rec/multi_language/rec_french_lite_train.yml index 0e8f4eb3a..63378d38a 100644 --- a/configs/rec/multi_language/rec_french_lite_train.yml +++ b/configs/rec/multi_language/rec_french_lite_train.yml @@ -1,5 +1,5 @@ Global: - use_gpu: true + use_gpu: True epoch_num: 500 log_smooth_window: 20 print_batch_step: 10 @@ -9,9 +9,9 @@ Global: eval_batch_step: [0, 2000] # if pretrained_model is saved in static mode, load_static_weights must set to True cal_metric_during_train: True - pretrained_model: + pretrained_model: checkpoints: - save_inference_dir: + save_inference_dir: use_visualdl: False infer_img: # for data or label process @@ -19,7 +19,7 @@ Global: character_type: french max_text_length: 25 infer_mode: False - use_space_char: True + use_space_char: False Optimizer: diff --git a/configs/rec/multi_language/rec_german_lite_train.yml b/configs/rec/multi_language/rec_german_lite_train.yml index 9978a21e1..1651510c5 100644 --- a/configs/rec/multi_language/rec_german_lite_train.yml +++ b/configs/rec/multi_language/rec_german_lite_train.yml @@ -1,5 +1,5 @@ Global: - use_gpu: true + use_gpu: True epoch_num: 500 log_smooth_window: 20 print_batch_step: 10 @@ -19,7 +19,7 @@ Global: character_type: german max_text_length: 25 infer_mode: False - use_space_char: True + use_space_char: False Optimizer: diff --git a/configs/rec/multi_language/rec_japan_lite_train.yml b/configs/rec/multi_language/rec_japan_lite_train.yml index 938d377e5..bb47584ed 100644 --- a/configs/rec/multi_language/rec_japan_lite_train.yml +++ b/configs/rec/multi_language/rec_japan_lite_train.yml @@ -1,5 +1,5 @@ Global: - use_gpu: true + use_gpu: True epoch_num: 500 log_smooth_window: 20 print_batch_step: 10 @@ -19,7 +19,7 @@ Global: character_type: japan max_text_length: 25 infer_mode: False - use_space_char: True + use_space_char: False Optimizer: diff --git a/configs/rec/multi_language/rec_korean_lite_train.yml b/configs/rec/multi_language/rec_korean_lite_train.yml index 7b070c449..77f15524f 100644 --- a/configs/rec/multi_language/rec_korean_lite_train.yml +++ b/configs/rec/multi_language/rec_korean_lite_train.yml @@ -1,5 +1,5 @@ Global: - use_gpu: true + use_gpu: True epoch_num: 500 log_smooth_window: 20 print_batch_step: 10 @@ -19,7 +19,7 @@ Global: character_type: korean max_text_length: 25 infer_mode: False - use_space_char: True + use_space_char: False Optimizer: diff --git a/deploy/cpp_infer/src/ocr_cls.cpp b/deploy/cpp_infer/src/ocr_cls.cpp index 40debaa78..2c85712b4 100644 --- a/deploy/cpp_infer/src/ocr_cls.cpp +++ b/deploy/cpp_infer/src/ocr_cls.cpp @@ -81,7 +81,7 @@ cv::Mat Classifier::Run(cv::Mat &img) { void Classifier::LoadModel(const std::string &model_dir) { AnalysisConfig config; - config.SetModel(model_dir + "/model", model_dir + "/params"); + config.SetModel(model_dir + ".pdmodel", model_dir + ".pdiparams"); if (this->use_gpu_) { config.EnableUseGpu(this->gpu_mem_, this->gpu_id_); diff --git a/deploy/cpp_infer/src/ocr_det.cpp b/deploy/cpp_infer/src/ocr_det.cpp index 1e1aaa1bf..ef6f96a29 100644 --- a/deploy/cpp_infer/src/ocr_det.cpp +++ b/deploy/cpp_infer/src/ocr_det.cpp @@ -18,7 +18,7 @@ namespace PaddleOCR { void DBDetector::LoadModel(const std::string &model_dir) { AnalysisConfig config; - config.SetModel(model_dir + "/model", model_dir + "/params"); + config.SetModel(model_dir + ".pdmodel", model_dir + ".pdiparams"); if (this->use_gpu_) { config.EnableUseGpu(this->gpu_mem_, this->gpu_id_); diff --git a/deploy/cpp_infer/src/ocr_rec.cpp b/deploy/cpp_infer/src/ocr_rec.cpp index 009b6b75f..335d201b2 100644 --- a/deploy/cpp_infer/src/ocr_rec.cpp +++ b/deploy/cpp_infer/src/ocr_rec.cpp @@ -103,7 +103,7 @@ void CRNNRecognizer::Run(std::vector>> boxes, void CRNNRecognizer::LoadModel(const std::string &model_dir) { AnalysisConfig config; - config.SetModel(model_dir + "/model", model_dir + "/params"); + config.SetModel(model_dir + ".pdmodel", model_dir + ".pdiparams"); if (this->use_gpu_) { config.EnableUseGpu(this->gpu_mem_, this->gpu_id_); @@ -186,4 +186,4 @@ cv::Mat CRNNRecognizer::GetRotateCropImage(const cv::Mat &srcimage, } } -} // namespace PaddleOCR \ No newline at end of file +} // namespace PaddleOCR diff --git a/ppocr/utils/dict/en_dict.txt b/ppocr/utils/dict/en_dict.txt new file mode 100644 index 000000000..6fbd99f46 --- /dev/null +++ b/ppocr/utils/dict/en_dict.txt @@ -0,0 +1,63 @@ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x +y +z +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y +Z + diff --git a/ppocr/utils/dict/french_dict.txt b/ppocr/utils/dict/french_dict.txt index a74c60ad3..e8f657db3 100644 --- a/ppocr/utils/dict/french_dict.txt +++ b/ppocr/utils/dict/french_dict.txt @@ -132,4 +132,5 @@ j ³ Å $ -# \ No newline at end of file +# + diff --git a/ppocr/utils/dict/german_dict.txt b/ppocr/utils/dict/german_dict.txt index ba9d472ad..af0b01ebc 100644 --- a/ppocr/utils/dict/german_dict.txt +++ b/ppocr/utils/dict/german_dict.txt @@ -123,4 +123,5 @@ z â å æ -é \ No newline at end of file +é + diff --git a/ppocr/utils/dict/japan_dict.txt b/ppocr/utils/dict/japan_dict.txt index 926979bc6..339d4b89e 100644 --- a/ppocr/utils/dict/japan_dict.txt +++ b/ppocr/utils/dict/japan_dict.txt @@ -4395,4 +4395,5 @@ z y z ~ -・ \ No newline at end of file +・ + diff --git a/ppocr/utils/dict/korean_dict.txt b/ppocr/utils/dict/korean_dict.txt index 77ae5c301..a13899f14 100644 --- a/ppocr/utils/dict/korean_dict.txt +++ b/ppocr/utils/dict/korean_dict.txt @@ -179,7 +179,7 @@ z с т я - +​ ’ “ ” @@ -3684,4 +3684,5 @@ z 立 茶 切 -宅 \ No newline at end of file +宅 + diff --git a/tools/export_model.py b/tools/export_model.py index cf568884f..46a8a8b8d 100755 --- a/tools/export_model.py +++ b/tools/export_model.py @@ -39,26 +39,12 @@ def parse_args(): return parser.parse_args() -class Model(paddle.nn.Layer): - def __init__(self, model): - super(Model, self).__init__() - self.pre_model = model - - # Please modify the 'shape' according to actual needs - @to_static(input_spec=[ - paddle.static.InputSpec( - shape=[None, 3, 640, 640], dtype='float32') - ]) - def forward(self, inputs): - x = self.pre_model(inputs) - return x - - def main(): FLAGS = parse_args() config = load_config(FLAGS.config) logger = get_logger() # build post process + post_process_class = build_post_process(config['PostProcess'], config['Global']) @@ -71,9 +57,16 @@ def main(): init_model(config, model, logger) model.eval() - model = Model(model) - save_path = '{}/{}'.format(FLAGS.output_path, - config['Architecture']['model_type']) + save_path = '{}/{}/inference'.format(FLAGS.output_path, + config['Architecture']['model_type']) + infer_shape = [3, 32, 100] if config['Architecture'][ + 'model_type'] != "det" else [3, 640, 640] + model = to_static( + model, + input_spec=[ + paddle.static.InputSpec( + shape=[None] + infer_shape, dtype='float32') + ]) paddle.jit.save(model, save_path) logger.info('inference model is saved to {}'.format(save_path)) diff --git a/tools/infer/utility.py b/tools/infer/utility.py index ee1f954dc..75b725a7a 100755 --- a/tools/infer/utility.py +++ b/tools/infer/utility.py @@ -100,8 +100,8 @@ def create_predictor(args, mode, logger): if model_dir is None: logger.info("not find {} model file path {}".format(mode, model_dir)) sys.exit(0) - model_file_path = model_dir + "/model" - params_file_path = model_dir + "/params" + model_file_path = model_dir + ".pdmodel" + params_file_path = model_dir + ".pdiparams" if not os.path.exists(model_file_path): logger.info("not find model file path {}".format(model_file_path)) sys.exit(0) @@ -230,10 +230,10 @@ def draw_ocr_box_txt(image, box[2][1], box[3][0], box[3][1] ], outline=color) - box_height = math.sqrt((box[0][0] - box[3][0]) ** 2 + (box[0][1] - box[3][ - 1]) ** 2) - box_width = math.sqrt((box[0][0] - box[1][0]) ** 2 + (box[0][1] - box[1][ - 1]) ** 2) + box_height = math.sqrt((box[0][0] - box[3][0])**2 + (box[0][1] - box[3][ + 1])**2) + box_width = math.sqrt((box[0][0] - box[1][0])**2 + (box[0][1] - box[1][ + 1])**2) if box_height > 2 * box_width: font_size = max(int(box_width * 0.9), 10) font = ImageFont.truetype(font_path, font_size, encoding="utf-8") From a31626759cf67f00e4c3ca102afec56ad01d59a2 Mon Sep 17 00:00:00 2001 From: tink2123 Date: Wed, 9 Dec 2020 20:18:10 +0800 Subject: [PATCH 12/51] update reademe for dygraph --- README_ch.md | 18 +- README_en.md | 259 ++++++++++++---------------- doc/doc_ch/algorithm_overview.md | 36 ++-- doc/doc_en/algorithm_overview_en.md | 23 +-- 4 files changed, 141 insertions(+), 195 deletions(-) diff --git a/README_ch.md b/README_ch.md index 7d29a6a37..a97614cfb 100644 --- a/README_ch.md +++ b/README_ch.md @@ -4,16 +4,18 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力使用者训练出更好的模型,并应用落地。 **近期更新** +- 2020.12.07 [FAQ](./doc/doc_ch/FAQ.md)新增5个高频问题,总数124个,并且计划以后每周一都会更新,欢迎大家持续关注。 +- 2020.11.25 更新半自动标注工具[PPOCRLabel](./PPOCRLabel/README.md),辅助开发者高效完成标注任务,输出格式与PP-OCR训练任务完美衔接。 - 2020.9.22 更新PP-OCR技术文章,https://arxiv.org/abs/2009.09941 -- 2020.9.19 更新超轻量压缩ppocr_mobile_slim系列模型,整体模型3.5M(详见[PP-OCR Pipline](#PP-OCR)),适合在移动端部署使用。[模型下载](#模型下载) +- 2020.9.19 更新超轻量压缩ppocr_mobile_slim系列模型,整体模型3.5M(详见[PP-OCR Pipeline](#PP-OCR)),适合在移动端部署使用。[模型下载](#模型下载) - 2020.9.17 更新超轻量ppocr_mobile系列和通用ppocr_server系列中英文ocr模型,媲美商业效果。[模型下载](#模型下载) - 2020.9.17 更新[英文识别模型](./doc/doc_ch/models_list.md#英文识别模型)和[多语言识别模型](doc/doc_ch/models_list.md#多语言识别模型),已支持`德语、法语、日语、韩语`,更多语种识别模型将持续更新。 -- 2020.8.26 更新OCR相关的84个常见问题及解答,具体参考[FAQ](./doc/doc_ch/FAQ.md) - 2020.8.24 支持通过whl包安装使用PaddleOCR,具体参考[Paddleocr Package使用说明](./doc/doc_ch/whl.md) - 2020.8.21 更新8月18日B站直播课回放和PPT,课节2,易学易用的OCR工具大礼包,[获取地址](https://aistudio.baidu.com/aistudio/education/group/info/1519) - [More](./doc/doc_ch/update.md) + ## 特性 - PPOCR系列高质量预训练模型,准确的识别效果 @@ -48,13 +50,13 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力 - 代码体验:从[快速安装](./doc/doc_ch/installation.md) 开始 -## PP-OCR 1.1系列模型列表(9月17日更新) +## PP-OCR 1.1系列模型列表(更新中) | 模型简介 | 模型名称 |推荐场景 | 检测模型 | 方向分类器 | 识别模型 | | ------------ | --------------- | ----------------|---- | ---------- | -------- | -| 中英文超轻量OCR模型(8.1M) | ch_ppocr_mobile_v1.1_xx |移动端&服务器端|[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/det/ch_ppocr_mobile_v1.1_det_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/det/ch_ppocr_mobile_v1.1_det_train.tar)|[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/rec/ch_ppocr_mobile_v1.1_rec_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/rec/ch_ppocr_mobile_v1.1_rec_pre.tar) | -| 中英文通用OCR模型(155.1M) |ch_ppocr_server_v1.1_xx|服务器端 |[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/server/det/ch_ppocr_server_v1.1_det_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/20-09-22/server/det/ch_ppocr_server_v1.1_det_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/server/rec/ch_ppocr_server_v1.1_rec_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/20-09-22/server/rec/ch_ppocr_server_v1.1_rec_pre.tar) | -| 中英文超轻量压缩OCR模型(3.5M) | ch_ppocr_mobile_slim_v1.1_xx| 移动端 |[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile-slim/det/ch_ppocr_mobile_v1.1_det_prune_infer.tar) / [slim模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/lite/ch_ppocr_mobile_v1.1_det_prune_opt.nb) |[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_quant_infer.tar) / [slim模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/lite/ch_ppocr_mobile_v1.1_cls_quant_opt.nb)| [推理模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile-slim/rec/ch_ppocr_mobile_v1.1_rec_quant_infer.tar) / [slim模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/lite/ch_ppocr_mobile_v1.1_rec_quant_opt.nb)| +| 中英文超轻量OCR模型(8.1M) | ch_ppocr_mobile_v1.1_xx |移动端&服务器端|[推理模型](link) / [预训练模型](link)|[推理模型](link) / [预训练模型](link) |[推理模型](link) / [预训练模型](link) | +| 中英文通用OCR模型(155.1M) |ch_ppocr_server_v1.1_xx|服务器端 |[推理模型](link) / [预训练模型](link) |[推理模型](link) / [预训练模型](link) |[推理模型](link) / [预训练模型](link) | +| 中英文超轻量压缩OCR模型(3.5M) | ch_ppocr_mobile_slim_v1.1_xx| 移动端 |[推理模型](link) / [slim模型](link) |[推理模型](link) / [slim模型](link)| [推理模型](link) / [slim模型](link)| 更多模型下载(包括多语言),可以参考[PP-OCR v1.1 系列模型下载](./doc/doc_ch/models_list.md) @@ -141,6 +143,7 @@ PP-OCR是一个实用的超轻量OCR系统。主要由DB文本检测、检测框 ## 贡献代码 我们非常欢迎你为PaddleOCR贡献代码,也十分感谢你的反馈。 + - 非常感谢 [Khanh Tran](https://github.com/xxxpsyduck) 和 [Karl Horky](https://github.com/karlhorky) 贡献修改英文文档 - 非常感谢 [zhangxin](https://github.com/ZhangXinNan)([Blog](https://blog.csdn.net/sdlypyzq)) 贡献新的可视化方式、添加.gitgnore、处理手动设置PYTHONPATH环境变量的问题 - 非常感谢 [lyl120117](https://github.com/lyl120117) 贡献打印网络结构的代码 @@ -148,3 +151,6 @@ PP-OCR是一个实用的超轻量OCR系统。主要由DB文本检测、检测框 - 非常感谢 [authorfu](https://github.com/authorfu) 贡献Android和[xiadeye](https://github.com/xiadeye) 贡献IOS的demo代码 - 非常感谢 [BeyondYourself](https://github.com/BeyondYourself) 给PaddleOCR提了很多非常棒的建议,并简化了PaddleOCR的部分代码风格。 - 非常感谢 [tangmq](https://gitee.com/tangmq) 给PaddleOCR增加Docker化部署服务,支持快速发布可调用的Restful API服务。 +- 非常感谢 [lijinhan](https://github.com/lijinhan) 给PaddleOCR增加java SpringBoot 调用OCR Hubserving接口完成对OCR服务化部署的使用。 +- 非常感谢 [Mejans](https://github.com/Mejans) 给PaddleOCR增加新语言奥克西坦语Occitan的字典和语料。 +- 非常感谢 [Evezerest](https://github.com/Evezerest), [ninetailskim](https://github.com/ninetailskim), [edencfc](https://github.com/edencfc), [BeyondYourself](https://github.com/BeyondYourself), [1084667371](https://github.com/1084667371) 贡献了PPOCRLabel的完整代码。 diff --git a/README_en.md b/README_en.md index 37250da2c..ddde11b21 100644 --- a/README_en.md +++ b/README_en.md @@ -1,32 +1,48 @@ -English | [简体中文](README.md) +English | [简体中文](README_ch.md) ## Introduction -PaddleOCR aims to create rich, leading, and practical OCR tools that help users train better models and apply them into practice. +PaddleOCR aims to create multilingual, awesome, leading, and practical OCR tools that help users train better models and apply them into practice. **Recent updates** -- 2020.8.24 Support the use of PaddleOCR through whl package installation,pelease refer [PaddleOCR Package](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_en/whl_en.md) -- 2020.8.16, Release text detection algorithm [SAST](https://arxiv.org/abs/1908.05498) and text recognition algorithm [SRN](https://arxiv.org/abs/2003.12294) -- 2020.7.23, Release the playback and PPT of live class on BiliBili station, PaddleOCR Introduction, [address](https://aistudio.baidu.com/aistudio/course/introduce/1519) -- 2020.7.15, Add mobile App demo , support both iOS and Android ( based on easyedge and Paddle Lite) -- 2020.7.15, Improve the deployment ability, add the C + + inference , serving deployment. In addition, the benchmarks of the ultra-lightweight OCR model are provided. -- 2020.7.15, Add several related datasets, data annotation and synthesis tools. +- 2020.11.25 Update a new data annotation tool, i.e., [PPOCRLabel](./PPOCRLabel/README_en.md), which is helpful to improve the labeling efficiency. Moreover, the labeling results can be used in training of the PP-OCR system directly. +- 2020.9.22 Update the PP-OCR technical article, https://arxiv.org/abs/2009.09941 +- 2020.9.19 Update the ultra lightweight compressed ppocr_mobile_slim series models, the overall model size is 3.5M (see [PP-OCR Pipeline](#PP-OCR-Pipeline)), suitable for mobile deployment. [Model Downloads](#Supported-Chinese-model-list) +- 2020.9.17 Update the ultra lightweight ppocr_mobile series and general ppocr_server series Chinese and English ocr models, which are comparable to commercial effects. [Model Downloads](#Supported-Chinese-model-list) +- 2020.9.17 update [English recognition model](./doc/doc_en/models_list_en.md#english-recognition-model) and [Multilingual recognition model](doc/doc_en/models_list_en.md#english-recognition-model), `English`, `Chinese`, `German`, `French`, `Japanese` and `Korean` have been supported. Models for more languages will continue to be updated. +- 2020.8.24 Support the use of PaddleOCR through whl package installation,please refer [PaddleOCR Package](./doc/doc_en/whl_en.md) +- 2020.8.21 Update the replay and PPT of the live lesson at Bilibili on August 18, lesson 2, easy to learn and use OCR tool spree. [Get Address](https://aistudio.baidu.com/aistudio/education/group/info/1519) - [more](./doc/doc_en/update_en.md) ## Features -- Ultra-lightweight OCR model, total model size is only 8.6M - - Single model supports Chinese/English numbers combination recognition, vertical text recognition, long text recognition - - Detection model DB (4.1M) + recognition model CRNN (4.5M) -- Various text detection algorithms: EAST, DB -- Various text recognition algorithms: Rosetta, CRNN, STAR-Net, RARE -- Support Linux, Windows, macOS and other systems. +- PPOCR series of high-quality pre-trained models, comparable to commercial effects + - Ultra lightweight ppocr_mobile series models: detection (2.6M) + direction classifier (0.9M) + recognition (4.6M) = 8.1M + - General ppocr_server series models: detection (47.2M) + direction classifier (0.9M) + recognition (107M) = 155.1M + - Ultra lightweight compression ppocr_mobile_slim series models: detection (1.4M) + direction classifier (0.5M) + recognition (1.6M) = 3.5M +- Support Chinese, English, and digit recognition, vertical text recognition, and long text recognition +- Support multi-language recognition: Korean, Japanese, German, French +- Support user-defined training, provides rich predictive inference deployment solutions +- Support PIP installation, easy to use +- Support Linux, Windows, MacOS and other systems ## Visualization -![](doc/imgs_results/11.jpg) +
+ + +
-![](doc/imgs_results/img_10.jpg) +The above pictures are the visualizations of the general ppocr_server model. For more effect pictures, please see [More visualizations](./doc/doc_en/visualization_en.md). -[More visualization](./doc/doc_en/visualization_en.md) + +## Community +- Scan the QR code below with your Wechat, you can access to official technical exchange group. Look forward to your participation. + +
+ +
+ + +## Quick Experience You can also quickly experience the ultra-lightweight OCR : [Online Experience](https://www.paddlepaddle.org.cn/hub/scene/ocr) @@ -42,178 +58,111 @@ Mobile DEMO experience (based on EasyEdge and Paddle-Lite, supports iOS and Andr -### Supported Models: +## PP-OCR 1.1 series model list(Update on Sep 17) -|Model Name|Description |Detection Model link|Recognition Model link| Support for space Recognition Model link| -|-|-|-|-|-| -|db_crnn_mobile|ultra-lightweight OCR model|[inference model](https://paddleocr.bj.bcebos.com/ch_models/ch_det_mv3_db_infer.tar) / [pre-trained model](https://paddleocr.bj.bcebos.com/ch_models/ch_det_mv3_db.tar)|[inference model](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_mv3_crnn_infer.tar) / [pre-trained model](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_mv3_crnn.tar)|[inference model](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_mv3_crnn_enhance_infer.tar) / [pre-train model](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_mv3_crnn_enhance.tar) -|db_crnn_server|General OCR model|[inference model](https://paddleocr.bj.bcebos.com/ch_models/ch_det_r50_vd_db_infer.tar) / [pre-trained model](https://paddleocr.bj.bcebos.com/ch_models/ch_det_r50_vd_db.tar)|[inference model](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_r34_vd_crnn_infer.tar) / [pre-trained model](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_r34_vd_crnn.tar)|[inference model](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_r34_vd_crnn_enhance_infer.tar) / [pre-train model](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_r34_vd_crnn_enhance.tar) +| Model introduction | Model name | Recommended scene | Detection model | Direction classifier | Recognition model | +| ------------------------------------------------------------ | ---------------------------- | ----------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | +| Chinese and English ultra-lightweight OCR model (8.1M) | ch_ppocr_mobile_v1.1_xx | Mobile & server | [inference model](link) / [pre-trained model](link) | [inference model](link) / [pre-trained model](link) | [inference model](link) / [pre-trained model](link) | +| Chinese and English general OCR model (155.1M) | ch_ppocr_server_v1.1_xx | Server | [inference model](link) / [pre-trained model](link) | [inference model](link) / [pre-trained model](link) | [inference model](link) / [pre-trained model](link) | +| Chinese and English ultra-lightweight compressed OCR model (3.5M) | ch_ppocr_mobile_slim_v1.1_xx | Mobile | [inference model](link) / [slim model](link) | [inference model](link) / [slim model](link) | [inference model](link) / [slim model](link) | +| French ultra-lightweight OCR model (4.6M) | french_ppocr_mobile_v1.1_xx | Mobile & server | [inference model](link) / [pre-trained model](link) | - | [inference model](link) / [pre-trained model](link) | +| German ultra-lightweight OCR model (4.6M) | german_ppocr_mobile_v1.1_xx | Mobile & server | [inference model](link) / [pre-trained model](link) | - |[inference model](link) / [pre-trained model](link) | +| Korean ultra-lightweight OCR model (5.9M) | korean_ppocr_mobile_v1.1_xx | Mobile & server | [inference model](link) / [pre-trained model](link) | - |[inference model](link) / [pre-trained model](link)| +| Japan ultra-lightweight OCR model (6.2M) | japan_ppocr_mobile_v1.1_xx | Mobile & server | [inference model](link) / [pre-trained model](link) | - |[inference model](link) / [pre-trained model](link) | +For more model downloads (including multiple languages), please refer to [PP-OCR v1.1 series model downloads](./doc/doc_en/models_list_en.md). + +For a new language request, please refer to [Guideline for new language_requests](#language_requests). ## Tutorials - [Installation](./doc/doc_en/installation_en.md) - [Quick Start](./doc/doc_en/quickstart_en.md) -- Algorithm introduction - - [Text Detection Algorithm](#TEXTDETECTIONALGORITHM) - - [Text Recognition Algorithm](#TEXTRECOGNITIONALGORITHM) - - [END-TO-END OCR Algorithm](#ENDENDOCRALGORITHM) -- Model training/evaluation +- [Code Structure](./doc/doc_en/tree_en.md) +- Algorithm Introduction + - [Text Detection Algorithm](./doc/doc_en/algorithm_overview_en.md) + - [Text Recognition Algorithm](./doc/doc_en/algorithm_overview_en.md) + - [PP-OCR Pipeline](#PP-OCR-Pipeline) +- Model Training/Evaluation - [Text Detection](./doc/doc_en/detection_en.md) - [Text Recognition](./doc/doc_en/recognition_en.md) + - [Direction Classification](./doc/doc_en/angle_class_en.md) - [Yml Configuration](./doc/doc_en/config_en.md) - - [Tricks](./doc/doc_en/tricks_en.md) -- Deployment +- Inference and Deployment + - [Quick Inference Based on PIP](./doc/doc_en/whl_en.md) - [Python Inference](./doc/doc_en/inference_en.md) - [C++ Inference](./deploy/cpp_infer/readme_en.md) - - [Serving](./doc/doc_en/serving_en.md) + - [Serving](./deploy/hubserving/readme_en.md) - [Mobile](./deploy/lite/readme_en.md) - - Model Quantization and Compression (coming soon) - - [Benchmark](./doc/doc_en/benchmark_en.md) + - [Model Quantization](./deploy/slim/quantization/README_en.md) + - [Model Compression](./deploy/slim/prune/README_en.md) + - [Benchmark](./doc/doc_en/benchmark_en.md) +- Data Annotation and Synthesis + - [Semi-automatic Annotation Tool](./PPOCRLabel/README_en.md) + - [Data Annotation Tools](./doc/doc_en/data_annotation_en.md) + - [Data Synthesis Tools](./doc/doc_en/data_synthesis_en.md) - Datasets - [General OCR Datasets(Chinese/English)](./doc/doc_en/datasets_en.md) - [HandWritten_OCR_Datasets(Chinese)](./doc/doc_en/handwritten_datasets_en.md) - [Various OCR Datasets(multilingual)](./doc/doc_en/vertical_and_multilingual_datasets_en.md) - - [Data Annotation Tools](./doc/doc_en/data_annotation_en.md) - - [Data Synthesis Tools](./doc/doc_en/data_synthesis_en.md) -- [FAQ](#FAQ) -- Visualization - - [Ultra-lightweight Chinese/English OCR Visualization](#UCOCRVIS) - - [General Chinese/English OCR Visualization](#GeOCRVIS) - - [Chinese/English OCR Visualization (Support Space Recognition )](#SpaceOCRVIS) +- [Visualization](#Visualization) +- [New language requests](#language_requests) +- [FAQ](./doc/doc_en/FAQ_en.md) - [Community](#Community) - [References](./doc/doc_en/reference_en.md) - [License](#LICENSE) - [Contribution](#CONTRIBUTION) - -## Text Detection Algorithm + -PaddleOCR open source text detection algorithms list: -- [x] EAST([paper](https://arxiv.org/abs/1704.03155)) -- [x] DB([paper](https://arxiv.org/abs/1911.08947)) -- [x] SAST([paper](https://arxiv.org/abs/1908.05498))(Baidu Self-Research) - -On the ICDAR2015 dataset, the text detection result is as follows: - -|Model|Backbone|precision|recall|Hmean|Download link| -|-|-|-|-|-|-| -|EAST|ResNet50_vd|88.18%|85.51%|86.82%|[Download link](https://paddleocr.bj.bcebos.com/det_r50_vd_east.tar)| -|EAST|MobileNetV3|81.67%|79.83%|80.74%|[Download link](https://paddleocr.bj.bcebos.com/det_mv3_east.tar)| -|DB|ResNet50_vd|83.79%|80.65%|82.19%|[Download link](https://paddleocr.bj.bcebos.com/det_r50_vd_db.tar)| -|DB|MobileNetV3|75.92%|73.18%|74.53%|[Download link](https://paddleocr.bj.bcebos.com/det_mv3_db.tar)| -|SAST|ResNet50_vd|92.18%|82.96%|87.33%|[Download link](https://paddleocr.bj.bcebos.com/SAST/sast_r50_vd_icdar2015.tar)| - -On Total-Text dataset, the text detection result is as follows: - -|Model|Backbone|precision|recall|Hmean|Download link| -|-|-|-|-|-|-| -|SAST|ResNet50_vd|88.74%|79.80%|84.03%|[Download link](https://paddleocr.bj.bcebos.com/SAST/sast_r50_vd_total_text.tar)| - -**Note:** Additional data, like icdar2013, icdar2017, COCO-Text, ArT, was added to the model training of SAST. Download English public dataset in organized format used by PaddleOCR from [Baidu Drive](https://pan.baidu.com/s/12cPnZcVuV1zn5DOd4mqjVw) (download code: 2bpi). - -For use of [LSVT](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_en/datasets_en.md#1-icdar2019-lsvt) street view dataset with a total of 3w training data,the related configuration and pre-trained models for text detection task are as follows: -|Model|Backbone|Configuration file|Pre-trained model| -|-|-|-|-| -|ultra-lightweight OCR model|MobileNetV3|det_mv3_db.yml|[Download link](https://paddleocr.bj.bcebos.com/ch_models/ch_det_mv3_db.tar)| -|General OCR model|ResNet50_vd|det_r50_vd_db.yml|[Download link](https://paddleocr.bj.bcebos.com/ch_models/ch_det_r50_vd_db.tar)| - -* Note: For the training and evaluation of the above DB model, post-processing parameters box_thresh=0.6 and unclip_ratio=1.5 need to be set. If using different datasets and different models for training, these two parameters can be adjusted for better result. - -For the training guide and use of PaddleOCR text detection algorithms, please refer to the document [Text detection model training/evaluation/prediction](./doc/doc_en/detection_en.md) - - -## Text Recognition Algorithm - -PaddleOCR open-source text recognition algorithms list: -- [x] CRNN([paper](https://arxiv.org/abs/1507.05717)) -- [x] Rosetta([paper](https://arxiv.org/abs/1910.05085)) -- [x] STAR-Net([paper](http://www.bmva.org/bmvc/2016/papers/paper043/index.html)) -- [x] RARE([paper](https://arxiv.org/abs/1603.03915v1)) -- [x] SRN([paper](https://arxiv.org/abs/2003.12294))(Baidu Self-Research) - -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: - -|Model|Backbone|Avg Accuracy|Module combination|Download link| -|-|-|-|-|-| -|Rosetta|Resnet34_vd|80.24%|rec_r34_vd_none_none_ctc|[Download link](https://paddleocr.bj.bcebos.com/rec_r34_vd_none_none_ctc.tar)| -|Rosetta|MobileNetV3|78.16%|rec_mv3_none_none_ctc|[Download link](https://paddleocr.bj.bcebos.com/rec_mv3_none_none_ctc.tar)| -|CRNN|Resnet34_vd|82.20%|rec_r34_vd_none_bilstm_ctc|[Download link](https://paddleocr.bj.bcebos.com/rec_r34_vd_none_bilstm_ctc.tar)| -|CRNN|MobileNetV3|79.37%|rec_mv3_none_bilstm_ctc|[Download link](https://paddleocr.bj.bcebos.com/rec_mv3_none_bilstm_ctc.tar)| -|STAR-Net|Resnet34_vd|83.93%|rec_r34_vd_tps_bilstm_ctc|[Download link](https://paddleocr.bj.bcebos.com/rec_r34_vd_tps_bilstm_ctc.tar)| -|STAR-Net|MobileNetV3|81.56%|rec_mv3_tps_bilstm_ctc|[Download link](https://paddleocr.bj.bcebos.com/rec_mv3_tps_bilstm_ctc.tar)| -|RARE|Resnet34_vd|84.90%|rec_r34_vd_tps_bilstm_attn|[Download link](https://paddleocr.bj.bcebos.com/rec_r34_vd_tps_bilstm_attn.tar)| -|RARE|MobileNetV3|83.32%|rec_mv3_tps_bilstm_attn|[Download link](https://paddleocr.bj.bcebos.com/rec_mv3_tps_bilstm_attn.tar)| -|SRN|Resnet50_vd_fpn|88.33%|rec_r50fpn_vd_none_srn|[Download link](https://paddleocr.bj.bcebos.com/SRN/rec_r50fpn_vd_none_srn.tar)| - -**Note:** SRN model uses data expansion method to expand the two training sets mentioned above, and the expanded data can be downloaded from [Baidu Drive](https://pan.baidu.com/s/1-HSZ-ZVdqBF2HaBZ5pRAKA) (download code: y3ry). - -The average accuracy of the two-stage training in the original paper is 89.74%, and that of one stage training in paddleocr is 88.33%. Both pre-trained weights can be downloaded [here](https://paddleocr.bj.bcebos.com/SRN/rec_r50fpn_vd_none_srn.tar). - -We use [LSVT](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_en/datasets_en.md#1-icdar2019-lsvt) dataset and cropout 30w training data from original photos by using position groundtruth and make some calibration needed. In addition, based on the LSVT corpus, 500w synthetic data is generated to train the model. The related configuration and pre-trained models are as follows: - -|Model|Backbone|Configuration file|Pre-trained model| -|-|-|-|-| -|ultra-lightweight OCR model|MobileNetV3|rec_chinese_lite_train.yml|[Download link](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_mv3_crnn.tar)|[inference model](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_mv3_crnn_enhance_infer.tar) & [pre-trained model](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_mv3_crnn_enhance.tar)| -|General OCR model|Resnet34_vd|rec_chinese_common_train.yml|[Download link](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_r34_vd_crnn.tar)|[inference model](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_r34_vd_crnn_enhance_infer.tar) & [pre-trained model](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_r34_vd_crnn_enhance.tar)| - -Please refer to the document for training guide and use of PaddleOCR text recognition algorithms [Text recognition model training/evaluation/prediction](./doc/doc_en/recognition_en.md) - - -## END-TO-END OCR Algorithm -- [ ] [End2End-PSL](https://arxiv.org/abs/1909.07808)(Baidu Self-Research, coming soon) - -## Visualization - - -### 1.Ultra-lightweight Chinese/English OCR Visualization [more](./doc/doc_en/visualization_en.md) +## PP-OCR Pipeline
- +
- -### 2. General Chinese/English OCR Visualization [more](./doc/doc_en/visualization_en.md) +PP-OCR is a practical ultra-lightweight OCR system. It is mainly composed of three parts: DB text detection, detection frame correction and CRNN text recognition. The system adopts 19 effective strategies from 8 aspects including backbone network selection and adjustment, prediction head design, data augmentation, learning rate transformation strategy, regularization parameter selection, pre-training model use, and automatic model tailoring and quantization to optimize and slim down the models of each module. The final results are an ultra-lightweight Chinese and English OCR model with an overall size of 3.5M and a 2.8M English digital OCR model. For more details, please refer to the PP-OCR technical article (https://arxiv.org/abs/2009.09941). Besides, The implementation of the FPGM Pruner and PACT quantization is based on [PaddleSlim](https://github.com/PaddlePaddle/PaddleSlim). + + +## Visualization [more](./doc/doc_en/visualization_en.md) +- Chinese OCR model
- + + + +
- -### 3.Chinese/English OCR Visualization (Space_support) [more](./doc/doc_en/visualization_en.md) - +- English OCR model
- +
- - -## FAQ -1. Error when using attention-based recognition model: KeyError: 'predict' - - The inference of recognition model based on attention loss is still being debugged. For Chinese text recognition, it is recommended to choose the recognition model based on CTC loss first. In practice, it is also found that the recognition model based on attention loss is not as effective as the one based on CTC loss. - -2. About inference speed - - When there are a lot of texts in the picture, the prediction time will increase. You can use `--rec_batch_num` to set a smaller prediction batch size. The default value is 30, which can be changed to 10 or other values. - -3. Service deployment and mobile deployment - - It is expected that the service deployment based on Serving and the mobile deployment based on Paddle Lite will be released successively in mid-to-late June. Stay tuned for more updates. - -4. Release time of self-developed algorithm - - Baidu Self-developed algorithms such as SAST, SRN and end2end PSL will be released in June or July. Please be patient. - -[more](./doc/doc_en/FAQ_en.md) - - -## Community -Scan the QR code below with your wechat and completing the questionnaire, you can access to offical technical exchange group. - +- Multilingual OCR model
- + +
+ + +## Guideline for new language requests + +If you want to request a new language support, a PR with 2 following files are needed: + +1. In folder [ppocr/utils/dict](https://github.com/PaddlePaddle/PaddleOCR/tree/develop/ppocr/utils/dict), +it is necessary to submit the dict text to this path and name it with `{language}_dict.txt` that contains a list of all characters. Please see the format example from other files in that folder. + +2. In folder [ppocr/utils/corpus](https://github.com/PaddlePaddle/PaddleOCR/tree/develop/ppocr/utils/corpus), +it is necessary to submit the corpus to this path and name it with `{language}_corpus.txt` that contains a list of words in your language. +Maybe, 50000 words per language is necessary at least. +Of course, the more, the better. + +If your language has unique elements, please tell me in advance within any way, such as useful links, wikipedia and so on. + +More details, please refer to [Multilingual OCR Development Plan](https://github.com/PaddlePaddle/PaddleOCR/issues/1048). + + ## License This project is released under Apache 2.0 license @@ -229,3 +178,7 @@ We welcome all the contributions to PaddleOCR and appreciate for your feedback v - Thanks [authorfu](https://github.com/authorfu) for contributing Android demo and [xiadeye](https://github.com/xiadeye) contributing iOS demo, respectively. - Thanks [BeyondYourself](https://github.com/BeyondYourself) for contributing many great suggestions and simplifying part of the code style. - Thanks [tangmq](https://gitee.com/tangmq) for contributing Dockerized deployment services to PaddleOCR and supporting the rapid release of callable Restful API services. +- Thanks [lijinhan](https://github.com/lijinhan) for contributing a new way, i.e., java SpringBoot, to achieve the request for the Hubserving deployment. +- Thanks [Mejans](https://github.com/Mejans) for contributing the Occitan corpus and character set. +- Thanks [LKKlein](https://github.com/LKKlein) for contributing a new deploying package with the Golang program language. +- Thanks [Evezerest](https://github.com/Evezerest), [ninetailskim](https://github.com/ninetailskim), [edencfc](https://github.com/edencfc), [BeyondYourself](https://github.com/BeyondYourself) and [1084667371](https://github.com/1084667371) for contributing a new data annotation tool, i.e., PPOCRLabel。 diff --git a/doc/doc_ch/algorithm_overview.md b/doc/doc_ch/algorithm_overview.md index c4a3b3255..01570f30c 100644 --- a/doc/doc_ch/algorithm_overview.md +++ b/doc/doc_ch/algorithm_overview.md @@ -17,17 +17,17 @@ PaddleOCR开源的文本检测算法列表: |模型|骨干网络|precision|recall|Hmean|下载链接| |-|-|-|-|-|-| -|EAST|ResNet50_vd|88.18%|85.51%|86.82%|[下载链接](https://paddleocr.bj.bcebos.com/det_r50_vd_east.tar)| -|EAST|MobileNetV3|81.67%|79.83%|80.74%|[下载链接](https://paddleocr.bj.bcebos.com/det_mv3_east.tar)| -|DB|ResNet50_vd|83.79%|80.65%|82.19%|[下载链接](https://paddleocr.bj.bcebos.com/det_r50_vd_db.tar)| -|DB|MobileNetV3|75.92%|73.18%|74.53%|[下载链接](https://paddleocr.bj.bcebos.com/det_mv3_db.tar)| -|SAST|ResNet50_vd|92.18%|82.96%|87.33%|[下载链接](https://paddleocr.bj.bcebos.com/SAST/sast_r50_vd_icdar2015.tar)| +|EAST|ResNet50_vd|88.18%|85.51%|86.82%|[下载链接](link)| +|EAST|MobileNetV3|81.67%|79.83%|80.74%|[下载链接](link)| +|DB|ResNet50_vd|83.79%|80.65%|82.19%|[下载链接](link)| +|DB|MobileNetV3|75.92%|73.18%|74.53%|[下载链接](link)| +|SAST|ResNet50_vd|92.18%|82.96%|87.33%|[下载链接](link))| 在Total-text文本检测公开数据集上,算法效果如下: |模型|骨干网络|precision|recall|Hmean|下载链接| |-|-|-|-|-|-| -|SAST|ResNet50_vd|88.74%|79.80%|84.03%|[下载链接](https://paddleocr.bj.bcebos.com/SAST/sast_r50_vd_total_text.tar)| +|SAST|ResNet50_vd|88.74%|79.80%|84.03%|[下载链接](link)| **说明:** SAST模型训练额外加入了icdar2013、icdar2017、COCO-Text、ArT等公开数据集进行调优。PaddleOCR用到的经过整理格式的英文公开数据集下载:[百度云地址](https://pan.baidu.com/s/12cPnZcVuV1zn5DOd4mqjVw) (提取码: 2bpi) @@ -37,28 +37,22 @@ PaddleOCR文本检测算法的训练和使用请参考文档教程中[模型训 ### 2.文本识别算法 -PaddleOCR开源的文本识别算法列表: +PaddleOCR基于动态图开源的文本识别算法列表: - [x] CRNN([paper](https://arxiv.org/abs/1507.05717))(ppocr推荐) - [x] Rosetta([paper](https://arxiv.org/abs/1910.05085)) - [x] STAR-Net([paper](http://www.bmva.org/bmvc/2016/papers/paper043/index.html)) -- [x] RARE([paper](https://arxiv.org/abs/1603.03915v1)) -- [x] SRN([paper](https://arxiv.org/abs/2003.12294)) +- [ ] RARE([paper](https://arxiv.org/abs/1603.03915v1)) +- [ ] SRN([paper](https://arxiv.org/abs/2003.12294)) 参考[DTRB](https://arxiv.org/abs/1904.01906)文字识别训练和评估流程,使用MJSynth和SynthText两个文字识别数据集训练,在IIIT, SVT, IC03, IC13, IC15, SVTP, CUTE数据集上进行评估,算法效果如下: |模型|骨干网络|Avg Accuracy|模型存储命名|下载链接| |-|-|-|-|-| -|Rosetta|Resnet34_vd|80.24%|rec_r34_vd_none_none_ctc|[下载链接](https://paddleocr.bj.bcebos.com/rec_r34_vd_none_none_ctc.tar)| -|Rosetta|MobileNetV3|78.16%|rec_mv3_none_none_ctc|[下载链接](https://paddleocr.bj.bcebos.com/rec_mv3_none_none_ctc.tar)| -|CRNN|Resnet34_vd|82.20%|rec_r34_vd_none_bilstm_ctc|[下载链接](https://paddleocr.bj.bcebos.com/rec_r34_vd_none_bilstm_ctc.tar)| -|CRNN|MobileNetV3|79.37%|rec_mv3_none_bilstm_ctc|[下载链接](https://paddleocr.bj.bcebos.com/rec_mv3_none_bilstm_ctc.tar)| -|STAR-Net|Resnet34_vd|83.93%|rec_r34_vd_tps_bilstm_ctc|[下载链接](https://paddleocr.bj.bcebos.com/rec_r34_vd_tps_bilstm_ctc.tar)| -|STAR-Net|MobileNetV3|81.56%|rec_mv3_tps_bilstm_ctc|[下载链接](https://paddleocr.bj.bcebos.com/rec_mv3_tps_bilstm_ctc.tar)| -|RARE|Resnet34_vd|84.90%|rec_r34_vd_tps_bilstm_attn|[下载链接](https://paddleocr.bj.bcebos.com/rec_r34_vd_tps_bilstm_attn.tar)| -|RARE|MobileNetV3|83.32%|rec_mv3_tps_bilstm_attn|[下载链接](https://paddleocr.bj.bcebos.com/rec_mv3_tps_bilstm_attn.tar)| -|SRN|Resnet50_vd_fpn|88.33%|rec_r50fpn_vd_none_srn|[下载链接](https://paddleocr.bj.bcebos.com/SRN/rec_r50fpn_vd_none_srn.tar)| - -**说明:** SRN模型使用了数据扰动方法对上述提到对两个训练集进行增广,增广后的数据可以在[百度网盘](https://pan.baidu.com/s/1-HSZ-ZVdqBF2HaBZ5pRAKA)上下载,提取码: y3ry。 -原始论文使用两阶段训练平均精度为89.74%,PaddleOCR中使用one-stage训练,平均精度为88.33%。两种预训练权重均在[下载链接](https://paddleocr.bj.bcebos.com/SRN/rec_r50fpn_vd_none_srn.tar)中。 +|Rosetta|Resnet34_vd|80.24%|rec_r34_vd_none_none_ctc|[下载链接](link)| +|Rosetta|MobileNetV3|78.16%|rec_mv3_none_none_ctc|[下载链接](link)| +|CRNN|Resnet34_vd|82.20%|rec_r34_vd_none_bilstm_ctc|[下载链接](link)| +|CRNN|MobileNetV3|79.37%|rec_mv3_none_bilstm_ctc|[下载链接](link)| +|STAR-Net|Resnet34_vd|83.93%|rec_r34_vd_tps_bilstm_ctc|[下载链接](link)| +|STAR-Net|MobileNetV3|81.56%|rec_mv3_tps_bilstm_ctc|[下载链接](link)| PaddleOCR文本识别算法的训练和使用请参考文档教程中[模型训练/评估中的文本识别部分](./recognition.md)。 diff --git a/doc/doc_en/algorithm_overview_en.md b/doc/doc_en/algorithm_overview_en.md index 2e21fd621..998ef08f5 100644 --- a/doc/doc_en/algorithm_overview_en.md +++ b/doc/doc_en/algorithm_overview_en.md @@ -19,17 +19,17 @@ On the ICDAR2015 dataset, the text detection result is as follows: |Model|Backbone|precision|recall|Hmean|Download link| |-|-|-|-|-|-| -|EAST|ResNet50_vd|88.18%|85.51%|86.82%|[Download link](https://paddleocr.bj.bcebos.com/det_r50_vd_east.tar)| -|EAST|MobileNetV3|81.67%|79.83%|80.74%|[Download link](https://paddleocr.bj.bcebos.com/det_mv3_east.tar)| -|DB|ResNet50_vd|83.79%|80.65%|82.19%|[Download link](https://paddleocr.bj.bcebos.com/det_r50_vd_db.tar)| -|DB|MobileNetV3|75.92%|73.18%|74.53%|[Download link](https://paddleocr.bj.bcebos.com/det_mv3_db.tar)| -|SAST|ResNet50_vd|92.18%|82.96%|87.33%|[Download link](https://paddleocr.bj.bcebos.com/SAST/sast_r50_vd_icdar2015.tar)| +|EAST|ResNet50_vd|88.18%|85.51%|86.82%|[Download link](link)| +|EAST|MobileNetV3|81.67%|79.83%|80.74%|[Download link](link)| +|DB|ResNet50_vd|83.79%|80.65%|82.19%|[Download link](link)| +|DB|MobileNetV3|75.92%|73.18%|74.53%|[Download link](link)| +|SAST|ResNet50_vd|92.18%|82.96%|87.33%|[Download link](link)| On Total-Text dataset, the text detection result is as follows: |Model|Backbone|precision|recall|Hmean|Download link| |-|-|-|-|-|-| -|SAST|ResNet50_vd|88.74%|79.80%|84.03%|[Download link](https://paddleocr.bj.bcebos.com/SAST/sast_r50_vd_total_text.tar)| +|SAST|ResNet50_vd|88.74%|79.80%|84.03%|[Download link](link)| **Note:** Additional data, like icdar2013, icdar2017, COCO-Text, ArT, was added to the model training of SAST. Download English public dataset in organized format used by PaddleOCR from [Baidu Drive](https://pan.baidu.com/s/12cPnZcVuV1zn5DOd4mqjVw) (download code: 2bpi). @@ -42,8 +42,8 @@ PaddleOCR open-source text recognition algorithms list: - [x] CRNN([paper](https://arxiv.org/abs/1507.05717)) - [x] Rosetta([paper](https://arxiv.org/abs/1910.05085)) - [x] STAR-Net([paper](http://www.bmva.org/bmvc/2016/papers/paper043/index.html)) -- [x] RARE([paper](https://arxiv.org/abs/1603.03915v1)) -- [x] SRN([paper](https://arxiv.org/abs/2003.12294))(Baidu Self-Research) +- [ ] RARE([paper](https://arxiv.org/abs/1603.03915v1)) +- [ ] SRN([paper](https://arxiv.org/abs/2003.12294))(Baidu Self-Research) 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: @@ -55,12 +55,5 @@ Refer to [DTRB](https://arxiv.org/abs/1904.01906), the training and evaluation r |CRNN|MobileNetV3|79.37%|rec_mv3_none_bilstm_ctc|[Download link](https://paddleocr.bj.bcebos.com/rec_mv3_none_bilstm_ctc.tar)| |STAR-Net|Resnet34_vd|83.93%|rec_r34_vd_tps_bilstm_ctc|[Download link](https://paddleocr.bj.bcebos.com/rec_r34_vd_tps_bilstm_ctc.tar)| |STAR-Net|MobileNetV3|81.56%|rec_mv3_tps_bilstm_ctc|[Download link](https://paddleocr.bj.bcebos.com/rec_mv3_tps_bilstm_ctc.tar)| -|RARE|Resnet34_vd|84.90%|rec_r34_vd_tps_bilstm_attn|[Download link](https://paddleocr.bj.bcebos.com/rec_r34_vd_tps_bilstm_attn.tar)| -|RARE|MobileNetV3|83.32%|rec_mv3_tps_bilstm_attn|[Download link](https://paddleocr.bj.bcebos.com/rec_mv3_tps_bilstm_attn.tar)| -|SRN|Resnet50_vd_fpn|88.33%|rec_r50fpn_vd_none_srn|[Download link](https://paddleocr.bj.bcebos.com/SRN/rec_r50fpn_vd_none_srn.tar)| - -**Note:** SRN model uses data expansion method to expand the two training sets mentioned above, and the expanded data can be downloaded from [Baidu Drive](https://pan.baidu.com/s/1-HSZ-ZVdqBF2HaBZ5pRAKA) (download code: y3ry). - -The average accuracy of the two-stage training in the original paper is 89.74%, and that of one stage training in paddleocr is 88.33%. Both pre-trained weights can be downloaded [here](https://paddleocr.bj.bcebos.com/SRN/rec_r50fpn_vd_none_srn.tar). Please refer to the document for training guide and use of PaddleOCR text recognition algorithms [Text recognition model training/evaluation/prediction](./doc/doc_en/recognition_en.md) From ce518e552cebfd98f1ba7372ea066bbc54aa7e3c Mon Sep 17 00:00:00 2001 From: xmy0916 <863299715@qq.com> Date: Wed, 9 Dec 2020 20:45:56 +0800 Subject: [PATCH 13/51] fix doc algorithm&recognition en&ch --- doc/doc_ch/algorithm_overview.md | 5 -- doc/doc_ch/recognition.md | 7 +- doc/doc_en/algorithm_overview_en.md | 6 -- doc/doc_en/recognition_en.md | 111 +++++++++++++++++++--------- 4 files changed, 80 insertions(+), 49 deletions(-) diff --git a/doc/doc_ch/algorithm_overview.md b/doc/doc_ch/algorithm_overview.md index 475db6793..d047959db 100644 --- a/doc/doc_ch/algorithm_overview.md +++ b/doc/doc_ch/algorithm_overview.md @@ -54,11 +54,6 @@ PaddleOCR开源的文本识别算法列表: |CRNN|MobileNetV3||rec_mv3_none_bilstm_ctc|[敬请期待]()| |STAR-Net|Resnet34_vd||rec_r34_vd_tps_bilstm_ctc|[敬请期待]()| |STAR-Net|MobileNetV3||rec_mv3_tps_bilstm_ctc|[敬请期待]()| -|RARE|Resnet34_vd||rec_r34_vd_tps_bilstm_attn|[敬请期待]()| -|RARE|MobileNetV3||rec_mv3_tps_bilstm_attn|[敬请期待]()| -|SRN|Resnet50_vd_fpn||rec_r50fpn_vd_none_srn|[敬请期待]()| -**说明:** SRN模型使用了数据扰动方法对上述提到对两个训练集进行增广,增广后的数据可以在[百度网盘](https://pan.baidu.com/s/1-HSZ-ZVdqBF2HaBZ5pRAKA)上下载,提取码: y3ry。 -原始论文使用两阶段训练平均精度为89.74%,PaddleOCR中使用one-stage训练,平均精度为88.33%。两种预训练权重均在[下载链接](https://paddleocr.bj.bcebos.com/SRN/rec_r50fpn_vd_none_srn.tar)中。 PaddleOCR文本识别算法的训练和使用请参考文档教程中[模型训练/评估中的文本识别部分](./recognition.md)。 diff --git a/doc/doc_ch/recognition.md b/doc/doc_ch/recognition.md index 6c5ea02fb..6c5efc067 100644 --- a/doc/doc_ch/recognition.md +++ b/doc/doc_ch/recognition.md @@ -166,9 +166,9 @@ tar -xf rec_mv3_none_bilstm_ctc.tar && rm -rf rec_mv3_none_bilstm_ctc.tar *如果您安装的是cpu版本,请将配置文件中的 `use_gpu` 字段修改为false* ``` -# GPU训练 支持单卡,多卡训练,通过selected_gpus参数指定卡号 +# GPU训练 支持单卡,多卡训练,通过--gpus参数指定卡号 # 训练icdar15英文数据 并将训练日志保存为 tain_rec.log -python3 -m paddle.distributed.launch --selected_gpus '0,1,2,3' tools/train.py -c configs/rec/rec_icdar15_train.yml 2>&1 | tee train_rec.log +python3 -m paddle.distributed.launch --gpus '0,1,2,3' tools/train.py -c configs/rec/rec_icdar15_train.yml ``` - 数据增强 @@ -331,9 +331,8 @@ Eval: *注意* 评估时必须确保配置文件中 infer_img 字段为空 ``` -export CUDA_VISIBLE_DEVICES=0 # GPU 评估, Global.checkpoints 为待测权重 -python3 tools/eval.py -c configs/rec/rec_icdar15_train.yml -o Global.checkpoints={path/to/weights}/best_accuracy +python3 --gpus '0' tools/eval.py -c configs/rec/rec_icdar15_train.yml -o Global.checkpoints={path/to/weights}/best_accuracy ``` diff --git a/doc/doc_en/algorithm_overview_en.md b/doc/doc_en/algorithm_overview_en.md index 6cdf310f0..60c44865a 100644 --- a/doc/doc_en/algorithm_overview_en.md +++ b/doc/doc_en/algorithm_overview_en.md @@ -55,12 +55,6 @@ Refer to [DTRB](https://arxiv.org/abs/1904.01906), the training and evaluation r |CRNN|MobileNetV3||rec_mv3_none_bilstm_ctc|[Coming soon]()| |STAR-Net|Resnet34_vd||rec_r34_vd_tps_bilstm_ctc|[Coming soon]()| |STAR-Net|MobileNetV3||rec_mv3_tps_bilstm_ctc|[Coming soon]()| -|RARE|Resnet34_vd||rec_r34_vd_tps_bilstm_attn|[Coming soon]()| -|RARE|MobileNetV3||rec_mv3_tps_bilstm_attn|[Coming soon]()| -|SRN|Resnet50_vd_fpn||rec_r50fpn_vd_none_srn|[Coming soon]()| -**Note:** SRN model uses data expansion method to expand the two training sets mentioned above, and the expanded data can be downloaded from [Baidu Drive](https://pan.baidu.com/s/1-HSZ-ZVdqBF2HaBZ5pRAKA) (download code: y3ry). - -The average accuracy of the two-stage training in the original paper is 89.74%, and that of one stage training in paddleocr is 88.33%. Both pre-trained weights can be downloaded [here](https://paddleocr.bj.bcebos.com/SRN/rec_r50fpn_vd_none_srn.tar). Please refer to the document for training guide and use of PaddleOCR text recognition algorithms [Text recognition model training/evaluation/prediction](./doc/doc_en/recognition_en.md) diff --git a/doc/doc_en/recognition_en.md b/doc/doc_en/recognition_en.md index 41b00c52a..daa12820f 100644 --- a/doc/doc_en/recognition_en.md +++ b/doc/doc_en/recognition_en.md @@ -158,10 +158,9 @@ tar -xf rec_mv3_none_bilstm_ctc.tar && rm -rf rec_mv3_none_bilstm_ctc.tar Start training: ``` -# GPU training Support single card and multi-card training, specify the card number through CUDA_VISIBLE_DEVICES -export CUDA_VISIBLE_DEVICES=0,1,2,3 +# GPU training Support single card and multi-card training, specify the card number through --gpus # Training icdar15 English data and saving the log as train_rec.log -python3 tools/train.py -c configs/rec/rec_icdar15_train.yml 2>&1 | tee train_rec.log +python3 -m paddle.distributed.launch --gpus '0,1,2,3' tools/train.py -c configs/rec/rec_icdar15_train.yml ``` - Data Augmentation @@ -199,39 +198,69 @@ If the evaluation set is large, the test will be time-consuming. It is recommend | rec_r34_vd_tps_bilstm_ctc.yml | STARNet | Resnet34_vd | tps | BiLSTM | ctc | For training Chinese data, it is recommended to use -训练中文数据,推荐使用[rec_chinese_lite_train_v1.1.yml](../../configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yml). If you want to try the result of other algorithms on the Chinese data set, please refer to the following instructions to modify the configuration file: +[rec_chinese_lite_train_v1.1.yml](../../configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yml). If you want to try the result of other algorithms on the Chinese data set, please refer to the following instructions to modify the configuration file: co -Take `rec_mv3_none_none_ctc.yml` as an example: +Take `rec_chinese_lite_train_v1.1.yml` as an example: ``` Global: ... - # Modify image_shape to fit long text - image_shape: [3, 32, 320] - ... + # Add a custom dictionary, such as modify the dictionary, please point the path to the new dictionary + character_dict_path: ppocr/utils/ppocr_keys_v1.txt # Modify character type character_type: ch - # Add a custom dictionary, such as modify the dictionary, please point the path to the new dictionary - character_dict_path: ./ppocr/utils/ppocr_keys_v1.txt ... - # Modify reader type - reader_yml: ./configs/rec/rec_chinese_reader.yml - # Whether to use data augmentation - distort: true # Whether to recognize spaces - use_space_char: true - ... + use_space_char: False -... Optimizer: ... # Add learning rate decay strategy - decay: - function: cosine_decay - # Each epoch contains iter number - step_each_epoch: 20 - # Total epoch number - total_epoch: 1000 + lr: + name: Cosine + learning_rate: 0.001 + ... + +... + +Train: + dataset: + # Type of dataset,we support LMDBDateSet and SimpleDataSet + name: SimpleDataSet + # Path of dataset + data_dir: ./train_data/ + # Path of train list + label_file_list: ["./train_data/train_list.txt"] + transforms: + ... + - RecResizeImg: + # Modify image_shape to fit long text + image_shape: [3, 32, 320] + ... + loader: + ... + # Train batch_size for Single card + batch_size_per_card: 256 + ... + +Eval: + dataset: + # Type of dataset,we support LMDBDateSet and SimpleDataSet + name: SimpleDataSet + # Path of dataset + data_dir: ./train_data + # Path of eval list + label_file_list: ["./train_data/val_list.txt"] + transforms: + ... + - RecResizeImg: + # Modify image_shape to fit long text + image_shape: [3, 32, 320] + ... + loader: + # Eval batch_size for Single card + batch_size_per_card: 256 + ... ``` **Note that the configuration file for prediction/evaluation must be consistent with the training.** @@ -257,18 +286,33 @@ Take `rec_french_lite_train` as an example: ``` Global: ... - # Add a custom dictionary, if you modify the dictionary - # please point the path to the new dictionary + # Add a custom dictionary, such as modify the dictionary, please point the path to the new dictionary character_dict_path: ./ppocr/utils/dict/french_dict.txt - # Add data augmentation during training - distort: true - # Identify spaces - use_space_char: true - ... - # Modify reader type - reader_yml: ./configs/rec/multi_languages/rec_french_reader.yml ... + # Whether to recognize spaces + use_space_char: False + ... + +Train: + dataset: + # Type of dataset,we support LMDBDateSet and SimpleDataSet + name: SimpleDataSet + # Path of dataset + data_dir: ./train_data/ + # Path of train list + label_file_list: ["./train_data/french_train.txt"] + ... + +Eval: + dataset: + # Type of dataset,we support LMDBDateSet and SimpleDataSet + name: SimpleDataSet + # Path of dataset + data_dir: ./train_data + # Path of eval list + label_file_list: ["./train_data/french_val.txt"] + ... ``` @@ -277,9 +321,8 @@ Global: The evaluation data set can be modified via `configs/rec/rec_icdar15_reader.yml` setting of `label_file_path` in EvalReader. ``` -export CUDA_VISIBLE_DEVICES=0 # GPU evaluation, Global.checkpoints is the weight to be tested -python3 tools/eval.py -c configs/rec/rec_icdar15_reader.yml -o Global.checkpoints={path/to/weights}/best_accuracy +python3 --gpus '0' tools/eval.py -c configs/rec/rec_icdar15_reader.yml -o Global.checkpoints={path/to/weights}/best_accuracy ``` From c1ca9e3769c6c86d7485e1eca84ad8d1e04658ba Mon Sep 17 00:00:00 2001 From: WenmuZhou <572459439@qq.com> Date: Wed, 9 Dec 2020 23:32:12 +0800 Subject: [PATCH 14/51] add docker depoly --- deploy/docker/hubserving/README.md | 54 +++++++++++++++++++++ deploy/docker/hubserving/README_cn.md | 53 ++++++++++++++++++++ deploy/docker/hubserving/cpu/Dockerfile | 32 ++++++++++++ deploy/docker/hubserving/gpu/Dockerfile | 32 ++++++++++++ deploy/docker/hubserving/sample_request.txt | 1 + 5 files changed, 172 insertions(+) create mode 100644 deploy/docker/hubserving/README.md create mode 100644 deploy/docker/hubserving/README_cn.md create mode 100644 deploy/docker/hubserving/cpu/Dockerfile create mode 100644 deploy/docker/hubserving/gpu/Dockerfile create mode 100644 deploy/docker/hubserving/sample_request.txt diff --git a/deploy/docker/hubserving/README.md b/deploy/docker/hubserving/README.md new file mode 100644 index 000000000..fff882753 --- /dev/null +++ b/deploy/docker/hubserving/README.md @@ -0,0 +1,54 @@ +English | [简体中文](README_cn.md) + +## Introduction +Many user hopes package the PaddleOCR service into an docker image, so that it can be quickly released and used in the docker or k8s environment. + +This page provide some standardized code to achieve this goal. You can quickly publish the PaddleOCR project into a callable Restful API service through the following steps. (At present, the deployment based on the HubServing mode is implemented first, and author plans to increase the deployment of the PaddleServing mode in the futrue) + +## 1. Prerequisites + +You need to install the following basic components first: +a. Docker +b. Graphics driver and CUDA 10.0+(GPU) +c. NVIDIA Container Toolkit(GPU,Docker 19.03+ can skip this) +d. cuDNN 7.6+(GPU) + +## 2. Build Image +a. Goto Dockerfile directory(ps:Need to distinguish between cpu and gpu version, the following takes cpu as an example, gpu version needs to replace the keyword) +``` +cd deploy/docker/hubserving/cpu +``` +c. Build image +``` +docker build -t paddleocr:cpu . +``` + +## 3. Start container +a. CPU version +``` +sudo docker run -dp 8868:8868 --name paddle_ocr paddleocr:cpu +``` +b. GPU version (base on NVIDIA Container Toolkit) +``` +sudo nvidia-docker run -dp 8868:8868 --name paddle_ocr paddleocr:gpu +``` +c. GPU version (Docker 19.03++) +``` +sudo docker run -dp 8868:8868 --gpus all --name paddle_ocr paddleocr:gpu +``` +d. Check service status(If you can see the following statement then it means completed:Successfully installed ocr_system && Running on http://0.0.0.0:8868/) +``` +docker logs -f paddle_ocr +``` + +## 4. Test +a. Calculate the Base64 encoding of the picture to be recognized (if you just test, you can use a free online tool, like:https://freeonlinetools24.com/base64-image/) +b. Post a service request(sample request in sample_request.txt) + +``` +curl -H "Content-Type:application/json" -X POST --data "{\"images\": [\"Input image Base64 encode(need to delete the code 'data:image/jpg;base64,')\"]}" http://localhost:8868/predict/ocr_system +``` +c. Get resposne(If the call is successful, the following result will be returned) +``` +{"msg":"","results":[[{"confidence":0.8403433561325073,"text":"约定","text_region":[[345,377],[641,390],[634,540],[339,528]]},{"confidence":0.8131805658340454,"text":"最终相遇","text_region":[[356,532],[624,530],[624,596],[356,598]]}]],"status":"0"} +``` diff --git a/deploy/docker/hubserving/README_cn.md b/deploy/docker/hubserving/README_cn.md new file mode 100644 index 000000000..046903c4c --- /dev/null +++ b/deploy/docker/hubserving/README_cn.md @@ -0,0 +1,53 @@ +[English](README.md) | 简体中文 + +## Docker化部署服务 +在日常项目应用中,相信大家一般都会希望能通过Docker技术,把PaddleOCR服务打包成一个镜像,以便在Docker或k8s环境里,快速发布上线使用。 + +本文将提供一些标准化的代码来实现这样的目标。大家通过如下步骤可以把PaddleOCR项目快速发布成可调用的Restful API服务。(目前暂时先实现了基于HubServing模式的部署,后续作者计划增加PaddleServing模式的部署) + +## 1.实施前提准备 + +需要先完成如下基本组件的安装: +a. Docker环境 +b. 显卡驱动和CUDA 10.0+(GPU) +c. NVIDIA Container Toolkit(GPU,Docker 19.03以上版本可以跳过此步) +d. cuDNN 7.6+(GPU) + +## 2.制作镜像 +a.切换至Dockerfile目录(注:需要区分cpu或gpu版本,下文以cpu为例,gpu版本需要替换一下关键字即可) +``` +cd deploy/docker/hubserving/cpu +``` +c.生成镜像 +``` +docker build -t paddleocr:cpu . +``` + +## 3.启动Docker容器 +a. CPU 版本 +``` +sudo docker run -dp 8868:8868 --name paddle_ocr paddleocr:cpu +``` +b. GPU 版本 (通过NVIDIA Container Toolkit) +``` +sudo nvidia-docker run -dp 8868:8868 --name paddle_ocr paddleocr:gpu +``` +c. GPU 版本 (Docker 19.03以上版本,可以直接用如下命令) +``` +sudo docker run -dp 8868:8869 --gpus all --name paddle_ocr paddleocr:gpu +``` +d. 检查服务运行情况(出现:Successfully installed ocr_system和Running on http://0.0.0.0:8868 等信息,表示运行成功) +``` +docker logs -f paddle_ocr +``` + +## 4.测试服务 +a. 计算待识别图片的Base64编码(如果只是测试一下效果,可以通过免费的在线工具实现,如:http://tool.chinaz.com/tools/imgtobase/) +b. 发送服务请求(可参见sample_request.txt中的值) +``` +curl -H "Content-Type:application/json" -X POST --data "{\"images\": [\"填入图片Base64编码(需要删除'data:image/jpg;base64,')\"]}" http://localhost:8868/predict/ocr_system +``` +c. 返回结果(如果调用成功,会返回如下结果) +``` +{"msg":"","results":[[{"confidence":0.8403433561325073,"text":"约定","text_region":[[345,377],[641,390],[634,540],[339,528]]},{"confidence":0.8131805658340454,"text":"最终相遇","text_region":[[356,532],[624,530],[624,596],[356,598]]}]],"status":"0"} +``` diff --git a/deploy/docker/hubserving/cpu/Dockerfile b/deploy/docker/hubserving/cpu/Dockerfile new file mode 100644 index 000000000..342f1e819 --- /dev/null +++ b/deploy/docker/hubserving/cpu/Dockerfile @@ -0,0 +1,32 @@ +# Version: 1.0.0 +FROM hub.baidubce.com/paddlepaddle/paddle:latest-gpu-cuda10.0-cudnn7-dev + +# PaddleOCR base on Python3.7 +RUN pip3.7 install --upgrade pip -i https://mirror.baidu.com/pypi/simple + +RUN python3.7 -m pip install paddlepaddle==2.0.0rc0 -i https://mirror.baidu.com/pypi/simple + +RUN pip3.7 install paddlehub --upgrade -i https://mirror.baidu.com/pypi/simple + +RUN git clone https://github.com/PaddlePaddle/PaddleOCR.git /PaddleOCR + +WORKDIR /PaddleOCR + +RUN pip3.7 install -r requirements.txt -i https://mirror.baidu.com/pypi/simple + +RUN mkdir -p /PaddleOCR/inference/ +# Download orc detect model(light version). if you want to change normal version, you can change ch_ppocr_mobile_v1.1_det_infer to ch_ppocr_server_v1.1_det_infer, also remember change det_model_dir in deploy/hubserving/ocr_system/params.py) +ADD {link} /PaddleOCR/inference/ +RUN tar xf /PaddleOCR/inference/{file} -C /PaddleOCR/inference/ + +# Download direction classifier(light version). If you want to change normal version, you can change ch_ppocr_mobile_v1.1_cls_infer to ch_ppocr_mobile_v1.1_cls_infer, also remember change cls_model_dir in deploy/hubserving/ocr_system/params.py) +ADD {link} /PaddleOCR/inference/ +RUN tar xf /PaddleOCR/inference/{file}.tar -C /PaddleOCR/inference/ + +# Download orc recognition model(light version). If you want to change normal version, you can change ch_ppocr_mobile_v1.1_rec_infer to ch_ppocr_server_v1.1_rec_infer, also remember change rec_model_dir in deploy/hubserving/ocr_system/params.py) +ADD {link} /PaddleOCR/inference/ +RUN tar xf /PaddleOCR/inference/{file}.tar -C /PaddleOCR/inference/ + +EXPOSE 8868 + +CMD ["/bin/bash","-c","hub install deploy/hubserving/ocr_system/ && hub serving start -m ocr_system"] \ No newline at end of file diff --git a/deploy/docker/hubserving/gpu/Dockerfile b/deploy/docker/hubserving/gpu/Dockerfile new file mode 100644 index 000000000..222d053d9 --- /dev/null +++ b/deploy/docker/hubserving/gpu/Dockerfile @@ -0,0 +1,32 @@ +# Version: 1.0.0 +FROM hub.baidubce.com/paddlepaddle/paddle:latest-gpu-cuda10.0-cudnn7-dev + +# PaddleOCR base on Python3.7 +RUN pip3.7 install --upgrade pip -i https://mirror.baidu.com/pypi/simple + +RUN python3.7 -m pip install paddlepaddle-gpu==2.0.0rc0 -i https://mirror.baidu.com/pypi/simple + +RUN pip3.7 install paddlehub --upgrade -i https://mirror.baidu.com/pypi/simple + +RUN git clone https://github.com/PaddlePaddle/PaddleOCR.git /PaddleOCR + +WORKDIR /PaddleOCR + +RUN pip3.7 install -r requirements.txt -i https://mirror.baidu.com/pypi/simple + +RUN mkdir -p /PaddleOCR/inference/ +# Download orc detect model(light version). if you want to change normal version, you can change ch_ppocr_mobile_v1.1_det_infer to ch_ppocr_server_v1.1_det_infer, also remember change det_model_dir in deploy/hubserving/ocr_system/params.py) +ADD {link} /PaddleOCR/inference/ +RUN tar xf /PaddleOCR/inference/{file}.tar -C /PaddleOCR/inference/ + +# Download direction classifier(light version). If you want to change normal version, you can change ch_ppocr_mobile_v1.1_cls_infer to ch_ppocr_mobile_v1.1_cls_infer, also remember change cls_model_dir in deploy/hubserving/ocr_system/params.py) +ADD {link} /PaddleOCR/inference/ +RUN tar xf /PaddleOCR/inference/{file} -C /PaddleOCR/inference/ + +# Download orc recognition model(light version). If you want to change normal version, you can change ch_ppocr_mobile_v1.1_rec_infer to ch_ppocr_server_v1.1_rec_infer, also remember change rec_model_dir in deploy/hubserving/ocr_system/params.py) +ADD {link} /PaddleOCR/inference/ +RUN tar xf /PaddleOCR/inference/{file}.tar -C /PaddleOCR/inference/ + +EXPOSE 8868 + +CMD ["/bin/bash","-c","hub install deploy/hubserving/ocr_system/ && hub serving start -m ocr_system"] \ No newline at end of file diff --git a/deploy/docker/hubserving/sample_request.txt b/deploy/docker/hubserving/sample_request.txt new file mode 100644 index 000000000..ec2b25b1f --- /dev/null +++ b/deploy/docker/hubserving/sample_request.txt @@ -0,0 +1 @@ +curl -H "Content-Type:application/json" -X POST --data "{\"images\": [\"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\"]}" http://localhost:8866/predict/ocr_system \ No newline at end of file From 2f67f2c839532765e5d76b60fb1d224c45e3cf09 Mon Sep 17 00:00:00 2001 From: littletomatodonkey <2120160898@bit.edu.cn> Date: Wed, 9 Dec 2020 23:47:06 +0800 Subject: [PATCH 15/51] fix config (#1373) --- .../rec_chinese_common_train_v2.0.yaml} | 2 +- .../rec_chinese_lite_train_v2.0.yaml} | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename configs/rec/{ch_ppocr_v1.1/rec_chinese_common_train_v1.1.yaml => ch_ppocr_v2.0/rec_chinese_common_train_v2.0.yaml} (97%) rename configs/rec/{ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yaml => ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yaml} (96%) diff --git a/configs/rec/ch_ppocr_v1.1/rec_chinese_common_train_v1.1.yaml b/configs/rec/ch_ppocr_v2.0/rec_chinese_common_train_v2.0.yaml similarity index 97% rename from configs/rec/ch_ppocr_v1.1/rec_chinese_common_train_v1.1.yaml rename to configs/rec/ch_ppocr_v2.0/rec_chinese_common_train_v2.0.yaml index 6d53ce8b0..1db3e1cb8 100644 --- a/configs/rec/ch_ppocr_v1.1/rec_chinese_common_train_v1.1.yaml +++ b/configs/rec/ch_ppocr_v2.0/rec_chinese_common_train_v2.0.yaml @@ -3,7 +3,7 @@ Global: epoch_num: 500 log_smooth_window: 20 print_batch_step: 10 - save_model_dir: ./output/rec_chinese_common_v1.1 + save_model_dir: ./output/rec_chinese_common_v2.0 save_epoch_step: 3 # evaluation is run every 5000 iterations after the 4000th iteration eval_batch_step: [0, 2000] diff --git a/configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yaml b/configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yaml similarity index 96% rename from configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yaml rename to configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yaml index 94a22e5c6..dc9d650f3 100644 --- a/configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yaml +++ b/configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yaml @@ -3,7 +3,7 @@ Global: epoch_num: 500 log_smooth_window: 20 print_batch_step: 10 - save_model_dir: ./output/rec_chinese_lite_v1.1 + save_model_dir: ./output/rec_chinese_lite_v2.0 save_epoch_step: 3 # evaluation is run every 5000 iterations after the 4000th iteration eval_batch_step: [0, 2000] @@ -19,7 +19,7 @@ Global: character_type: ch max_text_length: 25 infer_mode: False - use_space_char: False + use_space_char: True Optimizer: From 4fd696ccdf657457e396cd790156cbf1eeaddf30 Mon Sep 17 00:00:00 2001 From: WenmuZhou <572459439@qq.com> Date: Wed, 9 Dec 2020 23:55:38 +0800 Subject: [PATCH 16/51] update inference model name --- deploy/cpp_infer/src/ocr_cls.cpp | 3 ++- deploy/cpp_infer/src/ocr_det.cpp | 3 ++- deploy/cpp_infer/src/ocr_rec.cpp | 3 ++- tools/infer/utility.py | 4 ++-- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/deploy/cpp_infer/src/ocr_cls.cpp b/deploy/cpp_infer/src/ocr_cls.cpp index 679397275..fed2023f9 100644 --- a/deploy/cpp_infer/src/ocr_cls.cpp +++ b/deploy/cpp_infer/src/ocr_cls.cpp @@ -81,7 +81,8 @@ cv::Mat Classifier::Run(cv::Mat &img) { void Classifier::LoadModel(const std::string &model_dir) { AnalysisConfig config; - config.SetModel(model_dir + "/cls.pdmodel", model_dir + "/cls.pdiparams"); + config.SetModel(model_dir + "/inference.pdmodel", + model_dir + "/inference.pdiparams"); if (this->use_gpu_) { config.EnableUseGpu(this->gpu_mem_, this->gpu_id_); diff --git a/deploy/cpp_infer/src/ocr_det.cpp b/deploy/cpp_infer/src/ocr_det.cpp index 3ca4cc26b..e253f9cc8 100644 --- a/deploy/cpp_infer/src/ocr_det.cpp +++ b/deploy/cpp_infer/src/ocr_det.cpp @@ -18,7 +18,8 @@ namespace PaddleOCR { void DBDetector::LoadModel(const std::string &model_dir) { AnalysisConfig config; - config.SetModel(model_dir + "/det.pdmodel", model_dir + "/det.pdiparams"); + config.SetModel(model_dir + "/inference.pdmodel", + model_dir + "/inference.pdiparams"); if (this->use_gpu_) { config.EnableUseGpu(this->gpu_mem_, this->gpu_id_); diff --git a/deploy/cpp_infer/src/ocr_rec.cpp b/deploy/cpp_infer/src/ocr_rec.cpp index 0b6d0532b..d4deb5a17 100644 --- a/deploy/cpp_infer/src/ocr_rec.cpp +++ b/deploy/cpp_infer/src/ocr_rec.cpp @@ -103,7 +103,8 @@ void CRNNRecognizer::Run(std::vector>> boxes, void CRNNRecognizer::LoadModel(const std::string &model_dir) { AnalysisConfig config; - config.SetModel(model_dir + "/rec.pdmodel", model_dir + "/rec.pdiparams"); + config.SetModel(model_dir + "/inference.pdmodel", + model_dir + "/inference.pdiparams"); if (this->use_gpu_) { config.EnableUseGpu(this->gpu_mem_, this->gpu_id_); diff --git a/tools/infer/utility.py b/tools/infer/utility.py index 35b031e13..4b06b60b9 100755 --- a/tools/infer/utility.py +++ b/tools/infer/utility.py @@ -100,8 +100,8 @@ def create_predictor(args, mode, logger): if model_dir is None: logger.info("not find {} model file path {}".format(mode, model_dir)) sys.exit(0) - model_file_path = model_dir + ".pdmodel" - params_file_path = model_dir + ".pdiparams" + model_file_path = model_dir + "/inference.pdmodel" + params_file_path = model_dir + "/inference.pdiparams" if not os.path.exists(model_file_path): logger.info("not find model file path {}".format(model_file_path)) sys.exit(0) From 0ff2aef299b319edc2b783246e0b42e45a23b890 Mon Sep 17 00:00:00 2001 From: WenmuZhou <572459439@qq.com> Date: Wed, 9 Dec 2020 23:59:29 +0800 Subject: [PATCH 17/51] rename inference model save path --- tools/export_model.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/export_model.py b/tools/export_model.py index 46a8a8b8d..b6c03efba 100755 --- a/tools/export_model.py +++ b/tools/export_model.py @@ -57,8 +57,7 @@ def main(): init_model(config, model, logger) model.eval() - save_path = '{}/{}/inference'.format(FLAGS.output_path, - config['Architecture']['model_type']) + save_path = '{}/inference'.format(FLAGS.output_path) infer_shape = [3, 32, 100] if config['Architecture'][ 'model_type'] != "det" else [3, 640, 640] model = to_static( From 0a28221d763beeba72ae62171ac0f0c75c52dd90 Mon Sep 17 00:00:00 2001 From: WenmuZhou <572459439@qq.com> Date: Thu, 10 Dec 2020 00:26:19 +0800 Subject: [PATCH 18/51] Update model conversion instructions --- doc/doc_ch/inference.md | 36 ++++++++++++++++++------------------ doc/doc_en/inference_en.md | 35 +++++++++++++++++++---------------- 2 files changed, 37 insertions(+), 34 deletions(-) diff --git a/doc/doc_ch/inference.md b/doc/doc_ch/inference.md index ae1429d86..bab54bf92 100644 --- a/doc/doc_ch/inference.md +++ b/doc/doc_ch/inference.md @@ -45,7 +45,7 @@ wget -P ./ch_lite/ {link} && tar xf ./ch_lite/{file} -C ./ch_lite/ ``` 上述模型是以MobileNetV3为backbone训练的DB算法,将训练好的模型转换成inference模型只需要运行如下命令: ``` -# -c 后面设置训练算法的yml配置文件,需将待转换的训练模型地址写入配置文件里的Global.checkpoints字段下, 不用添加文件后缀.pdmodel,.pdopt或.pdparams。 +# -c 后面设置训练算法的yml配置文件,需设置 `Global.load_static_weights=False`, 并将待转换的训练模型地址写入配置文件里的 `Global.pretrained_model` 字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 # -o 后面设置转换的模型将保存的地址。 python3 tools/export_model.py -c configs/det/det_mv3_db_v1.1.yml -o ./inference/det_db/ @@ -54,9 +54,9 @@ python3 tools/export_model.py -c configs/det/det_mv3_db_v1.1.yml -o ./inference/ 转换成功后,在模型保存目录下有三个文件: ``` inference/det_db/ - ├── det.pdiparams # 检测inference模型的参数文件 - ├── det.pdiparams.info # 检测inference模型的参数信息,可忽略 - └── det.pdmodel # 检测inference模型的program文件 + ├── inference.pdiparams # 检测inference模型的参数文件 + ├── inference.pdiparams.info # 检测inference模型的参数信息,可忽略 + └── inference.pdmodel # 检测inference模型的program文件 ``` @@ -69,7 +69,7 @@ wget -P ./ch_lite/ {link} && tar xf ./ch_lite/{file} -C ./ch_lite/ 识别模型转inference模型与检测的方式相同,如下: ``` -# -c 后面设置训练算法的yml配置文件,需将待转换的训练模型地址写入配置文件里的Global.checkpoints字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 +# -c 后面设置训练算法的yml配置文件,需设置 `Global.load_static_weights=False`, 并将待转换的训练模型地址写入配置文件里的 `Global.pretrained_model` 字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 # -o 后面设置转换的模型将保存的地址。 python3 tools/export_model.py -c configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yml -o ./inference/rec_crnn/ ``` @@ -79,9 +79,9 @@ python3 tools/export_model.py -c configs/rec/ch_ppocr_v1.1/rec_chinese_lite_trai 转换成功后,在目录下有三个文件: ``` /inference/rec_crnn/ - ├── rec.pdiparams # 识别inference模型的参数文件 - ├── rec.pdiparams.info # 识别inference模型的参数信息,可忽略 - └── rec.pdmodel # 识别inference模型的program文件 + ├── inference.pdiparams # 识别inference模型的参数文件 + ├── inference.pdiparams.info # 识别inference模型的参数信息,可忽略 + └── inference.pdmodel # 识别inference模型的program文件 ``` @@ -94,7 +94,7 @@ wget -P ./ch_lite/ {link} && tar xf ./ch_lite/{file} -C ./ch_lite/ 方向分类模型转inference模型与检测的方式相同,如下: ``` -# -c 后面设置训练算法的yml配置文件,需将待转换的训练模型地址写入配置文件里的Global.checkpoints字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 +# -c 后面设置训练算法的yml配置文件,需设置 `Global.load_static_weights=False`, 并将待转换的训练模型地址写入配置文件里的 `Global.pretrained_model` 字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 # -o 后面设置转换的模型将保存的地址。 python3 tools/export_model.py -c configs/cls/cls_mv3.yml -o ./inference/cls/ @@ -103,9 +103,9 @@ python3 tools/export_model.py -c configs/cls/cls_mv3.yml -o ./inference/cls/ 转换成功后,在目录下有三个文件: ``` /inference/cls/ - ├── cls.pdiparams # 分类inference模型的参数文件 - ├── cls.pdiparams.info # 分类inference模型的参数信息,可忽略 - └── cls.pdmodel # 分类inference模型的program文件 + ├── inference.pdiparams # 分类inference模型的参数文件 + ├── inference.pdiparams.info # 分类inference模型的参数信息,可忽略 + └── inference.pdmodel # 分类inference模型的program文件 ``` @@ -126,7 +126,7 @@ python3 tools/infer/predict_det.py --image_dir="./doc/imgs/2.jpg" --det_model_di ![](../imgs_results/det_res_2.jpg) -通过参数`limit_type`和`det_limit_side_len`来对图片的尺寸进行限制限,`limit_type=max`为限制长边长度<`det_limit_side_len`,`limit_type=min`为限制短边长度>`det_limit_side_len`, +通过参数`limit_type`和`det_limit_side_len`来对图片的尺寸进行限制限,`limit_type=max`为限制长边长度<`det_limit_side_len`,`limit_type=min`为限制短边长度>`det_limit_side_len`, 图片不满足限制条件时(`limit_type=max`时长边长度>`det_limit_side_len`或`limit_type=min`时短边长度<`det_limit_side_len`),将对图片进行等比例缩放。 该参数默认设置为`limit_type='max',det_max_side_len=960`。 如果输入图片的分辨率比较大,而且想使用更大的分辨率预测,可以执行如下命令: @@ -145,7 +145,7 @@ python3 tools/infer/predict_det.py --image_dir="./doc/imgs/2.jpg" --det_model_di 首先将DB文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例([模型下载地址](link)),可以使用如下命令进行转换: ``` -# -c 后面设置训练算法的yml配置文件,需将待转换的训练模型地址写入配置文件里的Global.checkpoints字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 +# -c 后面设置训练算法的yml配置文件,需设置 `Global.load_static_weights=False`, 并将待转换的训练模型地址写入配置文件里的 `Global.pretrained_model` 字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 # -o 后面设置转换的模型将保存的地址。 python3 tools/export_model.py -c configs/det/det_r50_vd_db.yml -o "./inference/det_db" @@ -169,7 +169,7 @@ python3 tools/infer/predict_det.py --image_dir="./doc/imgs_en/img_10.jpg" --det_ 首先将EAST文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例([模型下载地址](link)),可以使用如下命令进行转换: ``` -# -c 后面设置训练算法的yml配置文件,需将待转换的训练模型地址写入配置文件里的Global.checkpoints字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 +# -c 后面设置训练算法的yml配置文件,需设置 `Global.load_static_weights=False`, 并将待转换的训练模型地址写入配置文件里的 `Global.pretrained_model` 字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 # -o 后面设置转换的模型将保存的地址。 python3 tools/export_model.py -c configs/det/det_r50_vd_east.yml -o Global.checkpoints="./models/det_r50_vd_east/best_accuracy" Global.save_inference_dir="./inference/det_east" @@ -192,7 +192,7 @@ python3 tools/infer/predict_det.py --det_algorithm="EAST" --image_dir="./doc/img #### (1). 四边形文本检测模型(ICDAR2015) 首先将SAST文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例([模型下载地址](link)),可以使用如下命令进行转换: ``` -# -c 后面设置训练算法的yml配置文件,需将待转换的训练模型地址写入配置文件里的Global.checkpoints字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 +# -c 后面设置训练算法的yml配置文件,需设置 `Global.load_static_weights=False`, 并将待转换的训练模型地址写入配置文件里的 `Global.pretrained_model` 字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 # -o 后面设置转换的模型将保存的地址。 python3 tools/export_model.py -c configs/det/det_r50_vd_sast_icdar15.yml -o "./inference/det_sast_ic15" @@ -209,7 +209,7 @@ python3 tools/infer/predict_det.py --det_algorithm="SAST" --image_dir="./doc/img 首先将SAST文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在Total-Text英文数据集训练的模型为例([模型下载地址](link)),可以使用如下命令进行转换: ``` -# -c 后面设置训练算法的yml配置文件,需将待转换的训练模型地址写入配置文件里的Global.checkpoints字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 +# -c 后面设置训练算法的yml配置文件,需设置 `Global.load_static_weights=False`, 并将待转换的训练模型地址写入配置文件里的 `Global.pretrained_model` 字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 # -o 后面设置转换的模型将保存的地址。 python3 tools/export_model.py -c configs/det/det_r50_vd_sast_totaltext.yml -o "./inference/det_sast_tt" @@ -257,7 +257,7 @@ Predicts of ./doc/imgs_words/ch/word_4.jpg:['实力活力', 0.89552695] 的模型为例([模型下载地址](link)),可以使用如下命令进行转换: ``` -# -c 后面设置训练算法的yml配置文件,需将待转换的训练模型地址写入配置文件里的Global.checkpoints字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 +# -c 后面设置训练算法的yml配置文件,需设置 `Global.load_static_weights=False`, 并将待转换的训练模型地址写入配置文件里的 `Global.pretrained_model` 字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 # -o 后面设置转换的模型将保存的地址。 python3 tools/export_model.py -c configs/rec/rec_r34_vd_tps_bilstm_ctc.yml -o "./inference/starnet" diff --git a/doc/doc_en/inference_en.md b/doc/doc_en/inference_en.md index e103c6c64..40ac3d8c6 100644 --- a/doc/doc_en/inference_en.md +++ b/doc/doc_en/inference_en.md @@ -48,7 +48,7 @@ wget -P ./ch_lite/ {link} && tar xf ./ch_lite/{file} -C ./ch_lite/ The above model is a DB algorithm trained with MobileNetV3 as the backbone. To convert the trained model into an inference model, just run the following command: ``` -# -c Set the yml configuration file of the training algorithm, you need to write the path of the training model to be converted into the Global.checkpoints parameter in the configuration file, without adding the file suffixes .pdmodel, .pdopt or .pdparams. +-c Set the yml configuration file of the algorithm, you need to set `Global.load_static_weights=False`, and write the path of the training model to be converted under the `Global.pretrained_model` parameter in the configuration file, without adding the file suffix .pdmodel, .pdopt or .pdparams. # -o Set the address where the converted model will be saved. python3 tools/export_model.py -c configs/det/det_mv3_db_v1.1.yml -o ./inference/det_db/ @@ -58,9 +58,9 @@ When converting to an inference model, the configuration file used is the same a After the conversion is successful, there are three files in the model save directory: ``` inference/det_db/ - ├── det.pdiparams # The parameter file of detection inference model - ├── det.pdiparams.info # The parameter information of detection inference model, which can be ignored - └── det.pdmodel # The program file of detection inference model + ├── inference.pdiparams # The parameter file of detection inference model + ├── inference.pdiparams.info # The parameter information of detection inference model, which can be ignored + └── inference.pdmodel # The program file of detection inference model ``` @@ -73,7 +73,7 @@ wget -P ./ch_lite/ {link} && tar xf ./ch_lite/{file} -C ./ch_lite/ The recognition model is converted to the inference model in the same way as the detection, as follows: ``` -# -c Set the yml configuration file of the training algorithm, you need to write the path of the training model to be converted into the Global.checkpoints parameter in the configuration file, without adding the file suffixes .pdmodel, .pdopt or .pdparams. +-c Set the yml configuration file of the algorithm, you need to set `Global.load_static_weights=False`, and write the path of the training model to be converted under the `Global.pretrained_model` parameter in the configuration file, without adding the file suffix .pdmodel, .pdopt or .pdparams. # -o Set the address where the converted model will be saved. python3 tools/export_model.py -c configs/cls/cls_mv3.yml -o ./inference/cls/ @@ -84,9 +84,9 @@ If you have a model trained on your own dataset with a different dictionary file After the conversion is successful, there are three files in the model save directory: ``` inference/det_db/ - ├── rec.pdiparams # The parameter file of recognition inference model - ├── rec.pdiparams.info # The parameter information of recognition inference model, which can be ignored - └── rec.pdmodel # The program file of recognition model + ├── inference.pdiparams # The parameter file of recognition inference model + ├── inference.pdiparams.info # The parameter information of recognition inference model, which can be ignored + └── inference.pdmodel # The program file of recognition model ``` @@ -99,7 +99,7 @@ wget -P ./ch_lite/ {link} && tar xf ./ch_lite/{file} -C ./ch_lite/ The angle classification model is converted to the inference model in the same way as the detection, as follows: ``` -# -c Set the yml configuration file of the training algorithm, you need to write the path of the training model to be converted into the Global.checkpoints parameter in the configuration file, without adding the file suffixes .pdmodel, .pdopt or .pdparams. +-c Set the yml configuration file of the algorithm, you need to set `Global.load_static_weights=False`, and write the path of the training model to be converted under the `Global.pretrained_model` parameter in the configuration file, without adding the file suffix .pdmodel, .pdopt or .pdparams. # -o Set the address where the converted model will be saved. python3 tools/export_model.py -c configs/cls/cls_mv3.yml -o ./inference/cls/ @@ -108,9 +108,9 @@ python3 tools/export_model.py -c configs/cls/cls_mv3.yml -o ./inference/cls/ After the conversion is successful, there are two files in the directory: ``` inference/det_db/ - ├── rec.pdiparams # The parameter file of angle class inference model - ├── rec.pdiparams.info # The parameter information of angle class inference model, which can be ignored - └── rec.pdmodel # The program file of angle class model + ├── inference.pdiparams # The parameter file of angle class inference model + ├── inference.pdiparams.info # The parameter information of angle class inference model, which can be ignored + └── inference.pdmodel # The program file of angle class model ``` @@ -152,7 +152,7 @@ python3 tools/infer/predict_det.py --image_dir="./doc/imgs/2.jpg" --det_model_di First, convert the model saved in the DB text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the ICDAR2015 English dataset as an example ([model download link](link)), you can use the following command to convert: ``` -# -c Set the yml configuration file of the training algorithm, you need to write the path of the training model to be converted into the Global.checkpoints parameter in the configuration file, without adding the file suffixes .pdmodel, .pdopt or .pdparams. +-c Set the yml configuration file of the algorithm, you need to set `Global.load_static_weights=False`, and write the path of the training model to be converted under the `Global.pretrained_model` parameter in the configuration file, without adding the file suffix .pdmodel, .pdopt or .pdparams. # -o Set the address where the converted model will be saved. python3 tools/export_model.py -c configs/det/det_r50_vd_db.yml -o "./inference/det_db" @@ -176,7 +176,7 @@ The visualized text detection results are saved to the `./inference_results` fol First, convert the model saved in the EAST text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the ICDAR2015 English dataset as an example ([model download link](link)), you can use the following command to convert: ``` -# -c Set the yml configuration file of the training algorithm, you need to write the path of the training model to be converted into the Global.checkpoints parameter in the configuration file, without adding the file suffixes .pdmodel, .pdopt or .pdparams. +-c Set the yml configuration file of the algorithm, you need to set `Global.load_static_weights=False`, and write the path of the training model to be converted under the `Global.pretrained_model` parameter in the configuration file, without adding the file suffix .pdmodel, .pdopt or .pdparams. # -o Set the address where the converted model will be saved. python3 tools/export_model.py -c configs/det/det_r50_vd_east.yml -o Global.checkpoints="./models/det_r50_vd_east/best_accuracy" Global.save_inference_dir="./inference/det_east" @@ -200,7 +200,7 @@ The visualized text detection results are saved to the `./inference_results` fol First, convert the model saved in the SAST text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the ICDAR2015 English dataset as an example ([model download link](link)), you can use the following command to convert: ``` -# -c Set the yml configuration file of the training algorithm, you need to write the path of the training model to be converted into the Global.checkpoints parameter in the configuration file, without adding the file suffixes .pdmodel, .pdopt or .pdparams. +-c Set the yml configuration file of the algorithm, you need to set `Global.load_static_weights=False`, and write the path of the training model to be converted under the `Global.pretrained_model` parameter in the configuration file, without adding the file suffix .pdmodel, .pdopt or .pdparams. # -o Set the address where the converted model will be saved. python3 tools/export_model.py -c configs/det/det_r50_vd_sast_icdar15.yml -o "./inference/det_sast_ic15" @@ -220,6 +220,9 @@ The visualized text detection results are saved to the `./inference_results` fol First, convert the model saved in the SAST text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the Total-Text English dataset as an example ([model download link](https://paddleocr.bj.bcebos.com/SAST/sast_r50_vd_total_text.tar)), you can use the following command to convert: ``` +-c Set the yml configuration file of the algorithm, you need to set `Global.load_static_weights=False`, and write the path of the training model to be converted under the `Global.pretrained_model` parameter in the configuration file, without adding the file suffix .pdmodel, .pdopt or .pdparams. +# -o Set the address where the converted model will be saved. + python3 tools/export_model.py -c configs/det/det_r50_vd_sast_totaltext.yml -o Global.checkpoints="./models/sast_r50_vd_total_text/best_accuracy" Global.save_inference_dir="./inference/det_sast_tt" ``` @@ -265,7 +268,7 @@ Taking STAR-Net as an example, we introduce the recognition model inference base First, convert the model saved in the STAR-Net text recognition training process into an inference model. Taking the model based on Resnet34_vd backbone network, using MJSynth and SynthText (two English text recognition synthetic datasets) for training, as an example ([model download address](link)). It can be converted as follow: ``` -# -c Set the yml configuration file of the training algorithm, you need to write the path of the training model to be converted into the Global.checkpoints parameter in the configuration file, without adding the file suffixes .pdmodel, .pdopt or .pdparams. +-c Set the yml configuration file of the algorithm, you need to set `Global.load_static_weights=False`, and write the path of the training model to be converted under the `Global.pretrained_model` parameter in the configuration file, without adding the file suffix .pdmodel, .pdopt or .pdparams. # -o Set the address where the converted model will be saved. python3 tools/export_model.py -c configs/rec/rec_r34_vd_tps_bilstm_ctc.yml -o "./inference/starnet" From 7e0324a4de449b3129754a433009d64b9626175b Mon Sep 17 00:00:00 2001 From: WenmuZhou <572459439@qq.com> Date: Thu, 10 Dec 2020 00:28:57 +0800 Subject: [PATCH 19/51] reomve load_static_weights --- configs/cls/cls_mv3.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/configs/cls/cls_mv3.yml b/configs/cls/cls_mv3.yml index c2b171590..b165bc483 100644 --- a/configs/cls/cls_mv3.yml +++ b/configs/cls/cls_mv3.yml @@ -8,7 +8,6 @@ Global: # evaluation is run every 5000 iterations after the 4000th iteration eval_batch_step: [0, 1000] # if pretrained_model is saved in static mode, load_static_weights must set to True - load_static_weights: True cal_metric_during_train: True pretrained_model: checkpoints: From 81a1087ece7f1033b8a5c5ed13681be0d520b987 Mon Sep 17 00:00:00 2001 From: WenmuZhou <572459439@qq.com> Date: Thu, 10 Dec 2020 00:58:24 +0800 Subject: [PATCH 20/51] Fix spelling errors --- deploy/docker/hubserving/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deploy/docker/hubserving/README.md b/deploy/docker/hubserving/README.md index fff882753..d4db277ff 100644 --- a/deploy/docker/hubserving/README.md +++ b/deploy/docker/hubserving/README.md @@ -1,9 +1,9 @@ English | [简体中文](README_cn.md) ## Introduction -Many user hopes package the PaddleOCR service into an docker image, so that it can be quickly released and used in the docker or k8s environment. +Many users hope package the PaddleOCR service into a docker image, so that it can be quickly released and used in the docker or k8s environment. -This page provide some standardized code to achieve this goal. You can quickly publish the PaddleOCR project into a callable Restful API service through the following steps. (At present, the deployment based on the HubServing mode is implemented first, and author plans to increase the deployment of the PaddleServing mode in the futrue) +This page provides some standardized code to achieve this goal. You can quickly publish the PaddleOCR project into a callable Restful API service through the following steps. (At present, the deployment based on the HubServing mode is implemented first, and author plans to increase the deployment of the PaddleServing mode in the futrue) ## 1. Prerequisites From 8520dd1e8c222bef242561add2d918ed69d457b5 Mon Sep 17 00:00:00 2001 From: tink2123 Date: Thu, 10 Dec 2020 14:21:23 +0800 Subject: [PATCH 21/51] update readme --- README_ch.md | 2 +- README_en.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README_ch.md b/README_ch.md index a97614cfb..b1f07e293 100644 --- a/README_ch.md +++ b/README_ch.md @@ -50,7 +50,7 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力 - 代码体验:从[快速安装](./doc/doc_ch/installation.md) 开始 -## PP-OCR 1.1系列模型列表(更新中) +## PP-OCR 2.0系列模型列表(更新中) | 模型简介 | 模型名称 |推荐场景 | 检测模型 | 方向分类器 | 识别模型 | | ------------ | --------------- | ----------------|---- | ---------- | -------- | diff --git a/README_en.md b/README_en.md index ddde11b21..d74c97aee 100644 --- a/README_en.md +++ b/README_en.md @@ -58,7 +58,7 @@ Mobile DEMO experience (based on EasyEdge and Paddle-Lite, supports iOS and Andr -## PP-OCR 1.1 series model list(Update on Sep 17) +## PP-OCR 2.0 series model list(Update on Sep 17) | Model introduction | Model name | Recommended scene | Detection model | Direction classifier | Recognition model | | ------------------------------------------------------------ | ---------------------------- | ----------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | From 042034b61d3f6e1961db11ecafe60649b9e95b94 Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Thu, 10 Dec 2020 17:14:58 +0800 Subject: [PATCH 22/51] The parameters of export are consistent with the static image --- tools/export_model.py | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/tools/export_model.py b/tools/export_model.py index b6c03efba..51c061788 100755 --- a/tools/export_model.py +++ b/tools/export_model.py @@ -28,21 +28,15 @@ from ppocr.modeling.architectures import build_model from ppocr.postprocess import build_post_process from ppocr.utils.save_load import init_model from ppocr.utils.logging import get_logger -from tools.program import load_config - - -def parse_args(): - parser = argparse.ArgumentParser() - parser.add_argument("-c", "--config", help="configuration file to use") - parser.add_argument( - "-o", "--output_path", type=str, default='./output/infer/') - return parser.parse_args() +from tools.program import load_config, merge_config,ArgsParser def main(): - FLAGS = parse_args() + FLAGS = ArgsParser().parse_args() config = load_config(FLAGS.config) + merge_config(FLAGS.opt) logger = get_logger() + print(config) # build post process post_process_class = build_post_process(config['PostProcess'], @@ -57,7 +51,7 @@ def main(): init_model(config, model, logger) model.eval() - save_path = '{}/inference'.format(FLAGS.output_path) + save_path = '{}/inference'.format(config['Global']['save_inference_dir']) infer_shape = [3, 32, 100] if config['Architecture'][ 'model_type'] != "det" else [3, 640, 640] model = to_static( From 4561ec9798ca0df69da78e00f58c910851acb0f8 Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Thu, 10 Dec 2020 17:15:05 +0800 Subject: [PATCH 23/51] update doc --- doc/doc_ch/inference.md | 66 ++++++++++++++++++------------------ doc/doc_en/inference_en.md | 68 ++++++++++++++++++-------------------- 2 files changed, 66 insertions(+), 68 deletions(-) diff --git a/doc/doc_ch/inference.md b/doc/doc_ch/inference.md index bab54bf92..dfd84cccb 100644 --- a/doc/doc_ch/inference.md +++ b/doc/doc_ch/inference.md @@ -41,14 +41,17 @@ inference 模型(`paddle.jit.save`保存的模型) 下载超轻量级中文检测模型: ``` -wget -P ./ch_lite/ {link} && tar xf ./ch_lite/{file} -C ./ch_lite/ +wget -P ./ch_lite/ {link} && tar xf ./ch_lite/ch_ppocr_mobile_v2.0_det_train.tar -C ./ch_lite/ ``` 上述模型是以MobileNetV3为backbone训练的DB算法,将训练好的模型转换成inference模型只需要运行如下命令: ``` -# -c 后面设置训练算法的yml配置文件,需设置 `Global.load_static_weights=False`, 并将待转换的训练模型地址写入配置文件里的 `Global.pretrained_model` 字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 -# -o 后面设置转换的模型将保存的地址。 +# -c 后面设置训练算法的yml配置文件 +# -o 配置可选参数 +# Global.pretrained_model 参数设置待转换的训练模型地址,不用添加文件后缀 .pdmodel,.pdopt或.pdparams。 +# Global.load_static_weights 参数需要设置为 False。 +# Global.save_inference_dir参数设置转换的模型将保存的地址。 -python3 tools/export_model.py -c configs/det/det_mv3_db_v1.1.yml -o ./inference/det_db/ +python3 tools/export_model.py -c configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml -o Global.checkpoints=./ch_lite/ch_ppocr_mobile_v2.0_det_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_db/ ``` 转inference模型时,使用的配置文件和训练时使用的配置文件相同。另外,还需要设置配置文件中的`Global.checkpoints`参数,其指向训练中保存的模型参数文件。 转换成功后,在模型保存目录下有三个文件: @@ -64,14 +67,18 @@ inference/det_db/ 下载超轻量中文识别模型: ``` -wget -P ./ch_lite/ {link} && tar xf ./ch_lite/{file} -C ./ch_lite/ +wget -P ./ch_lite/ {link} && tar xf ./ch_lite/ch_ppocr_mobile_v2.0_rec_train.tar -C ./ch_lite/ ``` 识别模型转inference模型与检测的方式相同,如下: ``` -# -c 后面设置训练算法的yml配置文件,需设置 `Global.load_static_weights=False`, 并将待转换的训练模型地址写入配置文件里的 `Global.pretrained_model` 字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 -# -o 后面设置转换的模型将保存的地址。 -python3 tools/export_model.py -c configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yml -o ./inference/rec_crnn/ +# -c 后面设置训练算法的yml配置文件 +# -o 配置可选参数 +# Global.pretrained_model 参数设置待转换的训练模型地址,不用添加文件后缀 .pdmodel,.pdopt或.pdparams。 +# Global.load_static_weights 参数需要设置为 False。 +# Global.save_inference_dir参数设置转换的模型将保存的地址。 + +python3 tools/export_model.py -c configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml -o Global.checkpoints=./ch_lite/ch_ppocr_mobile_v2.0_rec_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/rec_crnn/ ``` **注意:**如果您是在自己的数据集上训练的模型,并且调整了中文字符的字典文件,请注意修改配置文件中的`character_dict_path`是否是所需要的字典文件。 @@ -89,15 +96,18 @@ python3 tools/export_model.py -c configs/rec/ch_ppocr_v1.1/rec_chinese_lite_trai 下载方向分类模型: ``` -wget -P ./ch_lite/ {link} && tar xf ./ch_lite/{file} -C ./ch_lite/ +wget -P ./ch_lite/ {link} && tar xf ./ch_lite/ch_ppocr_mobile_v2.0_cls_train.tar -C ./ch_lite/ ``` 方向分类模型转inference模型与检测的方式相同,如下: ``` -# -c 后面设置训练算法的yml配置文件,需设置 `Global.load_static_weights=False`, 并将待转换的训练模型地址写入配置文件里的 `Global.pretrained_model` 字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 -# -o 后面设置转换的模型将保存的地址。 +# -c 后面设置训练算法的yml配置文件 +# -o 配置可选参数 +# Global.pretrained_model 参数设置待转换的训练模型地址,不用添加文件后缀 .pdmodel,.pdopt或.pdparams。 +# Global.load_static_weights 参数需要设置为 False。 +# Global.save_inference_dir参数设置转换的模型将保存的地址。 -python3 tools/export_model.py -c configs/cls/cls_mv3.yml -o ./inference/cls/ +python3 tools/export_model.py -c configs/cls/cls_mv3.yml -o Global.checkpoints=./ch_lite/ch_ppocr_mobile_v2.0_cls_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/cls/ ``` 转换成功后,在目录下有三个文件: @@ -145,10 +155,7 @@ python3 tools/infer/predict_det.py --image_dir="./doc/imgs/2.jpg" --det_model_di 首先将DB文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例([模型下载地址](link)),可以使用如下命令进行转换: ``` -# -c 后面设置训练算法的yml配置文件,需设置 `Global.load_static_weights=False`, 并将待转换的训练模型地址写入配置文件里的 `Global.pretrained_model` 字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 -# -o 后面设置转换的模型将保存的地址。 - -python3 tools/export_model.py -c configs/det/det_r50_vd_db.yml -o "./inference/det_db" +python3 tools/export_model.py -c configs/det/det_r50_vd_db.yml -o Global.checkpoints=./det_r50_vd_db_v2.0.train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_db ``` DB文本检测模型推理,可以执行如下命令: @@ -169,10 +176,7 @@ python3 tools/infer/predict_det.py --image_dir="./doc/imgs_en/img_10.jpg" --det_ 首先将EAST文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例([模型下载地址](link)),可以使用如下命令进行转换: ``` -# -c 后面设置训练算法的yml配置文件,需设置 `Global.load_static_weights=False`, 并将待转换的训练模型地址写入配置文件里的 `Global.pretrained_model` 字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 -# -o 后面设置转换的模型将保存的地址。 - -python3 tools/export_model.py -c configs/det/det_r50_vd_east.yml -o Global.checkpoints="./models/det_r50_vd_east/best_accuracy" Global.save_inference_dir="./inference/det_east" +python3 tools/export_model.py -c configs/det/det_r50_vd_east.yml -o Global.checkpoints=./det_r50_vd_east_v2.0.train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_east ``` **EAST文本检测模型推理,需要设置参数`--det_algorithm="EAST"`**,可以执行如下命令: @@ -192,10 +196,8 @@ python3 tools/infer/predict_det.py --det_algorithm="EAST" --image_dir="./doc/img #### (1). 四边形文本检测模型(ICDAR2015) 首先将SAST文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例([模型下载地址](link)),可以使用如下命令进行转换: ``` -# -c 后面设置训练算法的yml配置文件,需设置 `Global.load_static_weights=False`, 并将待转换的训练模型地址写入配置文件里的 `Global.pretrained_model` 字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 -# -o 后面设置转换的模型将保存的地址。 +python3 tools/export_model.py -c configs/det/det_r50_vd_sast_icdar15.yml -o Global.checkpoints=./det_r50_vd_sast_icdar15_v2.0.train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_sast_ic15 -python3 tools/export_model.py -c configs/det/det_r50_vd_sast_icdar15.yml -o "./inference/det_sast_ic15" ``` **SAST文本检测模型推理,需要设置参数`--det_algorithm="SAST"`**,可以执行如下命令: ``` @@ -209,10 +211,8 @@ python3 tools/infer/predict_det.py --det_algorithm="SAST" --image_dir="./doc/img 首先将SAST文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在Total-Text英文数据集训练的模型为例([模型下载地址](link)),可以使用如下命令进行转换: ``` -# -c 后面设置训练算法的yml配置文件,需设置 `Global.load_static_weights=False`, 并将待转换的训练模型地址写入配置文件里的 `Global.pretrained_model` 字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 -# -o 后面设置转换的模型将保存的地址。 +python3 tools/export_model.py -c configs/det/det_r50_vd_sast_totaltext.yml -o Global.checkpoints=./det_r50_vd_sast_totaltext_v2.0.train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_sast_tt -python3 tools/export_model.py -c configs/det/det_r50_vd_sast_totaltext.yml -o "./inference/det_sast_tt" ``` **SAST文本检测模型推理,需要设置参数`--det_algorithm="SAST"`,同时,还需要增加参数`--det_sast_polygon=True`,**可以执行如下命令: @@ -251,30 +251,30 @@ Predicts of ./doc/imgs_words/ch/word_4.jpg:['实力活力', 0.89552695] ### 2. 基于CTC损失的识别模型推理 -我们以STAR-Net为例,介绍基于CTC损失的识别模型推理。 CRNN和Rosetta使用方式类似,不用设置识别算法参数rec_algorithm。 +我们以 CRNN 为例,介绍基于CTC损失的识别模型推理。 Rosetta 使用方式类似,不用设置识别算法参数rec_algorithm。 -首先将STAR-Net文本识别训练过程中保存的模型,转换成inference model。以基于Resnet34_vd骨干网络,使用MJSynth和SynthText两个英文文本识别合成数据集训练 +首先将 Rosetta 文本识别训练过程中保存的模型,转换成inference model。以基于Resnet34_vd骨干网络,使用MJSynth和SynthText两个英文文本识别合成数据集训练 的模型为例([模型下载地址](link)),可以使用如下命令进行转换: ``` -# -c 后面设置训练算法的yml配置文件,需设置 `Global.load_static_weights=False`, 并将待转换的训练模型地址写入配置文件里的 `Global.pretrained_model` 字段下,不用添加文件后缀.pdmodel,.pdopt或.pdparams。 -# -o 后面设置转换的模型将保存的地址。 +python3 tools/export_model.py -c configs/det/rec_r34_vd_none_bilstm_ctc.yml -o Global.checkpoints=./rec_r34_vd_none_bilstm_ctc_v2.0.train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/rec_crnn -python3 tools/export_model.py -c configs/rec/rec_r34_vd_tps_bilstm_ctc.yml -o "./inference/starnet" ``` STAR-Net文本识别模型推理,可以执行如下命令: ``` -python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png" --rec_model_dir="./inference/starnet/" --rec_image_shape="3, 32, 100" --rec_char_type="en" +python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png" --rec_model_dir="./inference/rec_crnn/" --rec_image_shape="3, 32, 100" --rec_char_type="en" ``` ### 3. 基于Attention损失的识别模型推理 +基于Attention损失的识别模型与ctc不同,需要额外设置识别算法参数 --rec_algorithm="RARE" RARE 文本识别模型推理,可以执行如下命令: ``` -python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png" --rec_model_dir="./inference/rare/" --rec_image_shape="3, 32, 100" --rec_char_type="en" +python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png" --rec_model_dir="./inference/rare/" --rec_image_shape="3, 32, 100" --rec_char_type="en" --rec_algorithm="RARE" + ``` ![](../imgs_words_en/word_336.png) diff --git a/doc/doc_en/inference_en.md b/doc/doc_en/inference_en.md index 40ac3d8c6..ac1b634de 100644 --- a/doc/doc_en/inference_en.md +++ b/doc/doc_en/inference_en.md @@ -43,15 +43,18 @@ Next, we first introduce how to convert a trained model into an inference model, Download the lightweight Chinese detection model: ``` -wget -P ./ch_lite/ {link} && tar xf ./ch_lite/{file} -C ./ch_lite/ +wget -P ./ch_lite/ {link} && tar xf ./ch_lite/ch_ppocr_mobile_v2.0_det_train.tar -C ./ch_lite/ ``` The above model is a DB algorithm trained with MobileNetV3 as the backbone. To convert the trained model into an inference model, just run the following command: ``` --c Set the yml configuration file of the algorithm, you need to set `Global.load_static_weights=False`, and write the path of the training model to be converted under the `Global.pretrained_model` parameter in the configuration file, without adding the file suffix .pdmodel, .pdopt or .pdparams. -# -o Set the address where the converted model will be saved. +# -c Set the training algorithm yml configuration file +# -o Set optional parameters +# Global.checkpoints parameter Set the training model address to be converted without adding the file suffix .pdmodel, .pdopt or .pdparams. +# Global.load_static_weights needs to be set to False +# Global.save_inference_dir Set the address where the converted model will be saved. -python3 tools/export_model.py -c configs/det/det_mv3_db_v1.1.yml -o ./inference/det_db/ +python3 tools/export_model.py -c configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml -o Global.checkpoints=./ch_lite/ch_ppocr_mobile_v2.0_det_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_db/ ``` When converting to an inference model, the configuration file used is the same as the configuration file used during training. In addition, you also need to set the `Global.checkpoints` parameter in the configuration file. @@ -68,15 +71,18 @@ inference/det_db/ Download the lightweight Chinese recognition model: ``` -wget -P ./ch_lite/ {link} && tar xf ./ch_lite/{file} -C ./ch_lite/ +wget -P ./ch_lite/ {link} && tar xf ./ch_lite/ch_ppocr_mobile_v2.0_rec_train.tar -C ./ch_lite/ ``` The recognition model is converted to the inference model in the same way as the detection, as follows: ``` --c Set the yml configuration file of the algorithm, you need to set `Global.load_static_weights=False`, and write the path of the training model to be converted under the `Global.pretrained_model` parameter in the configuration file, without adding the file suffix .pdmodel, .pdopt or .pdparams. -# -o Set the address where the converted model will be saved. +# -c Set the training algorithm yml configuration file +# -o Set optional parameters +# Global.checkpoints parameter Set the training model address to be converted without adding the file suffix .pdmodel, .pdopt or .pdparams. +# Global.load_static_weights needs to be set to False +# Global.save_inference_dir Set the address where the converted model will be saved. -python3 tools/export_model.py -c configs/cls/cls_mv3.yml -o ./inference/cls/ +python3 tools/export_model.py -c configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml -o Global.checkpoints=./ch_lite/ch_ppocr_mobile_v2.0_rec_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/rec_crnn/ ``` If you have a model trained on your own dataset with a different dictionary file, please make sure that you modify the `character_dict_path` in the configuration file to your dictionary file path. @@ -94,15 +100,18 @@ inference/det_db/ Download the angle classification model: ``` -wget -P ./ch_lite/ {link} && tar xf ./ch_lite/{file} -C ./ch_lite/ +wget -P ./ch_lite/ {link} && tar xf ./ch_lite/ch_ppocr_mobile_v2.0_cls_train.tar -C ./ch_lite/ ``` The angle classification model is converted to the inference model in the same way as the detection, as follows: ``` --c Set the yml configuration file of the algorithm, you need to set `Global.load_static_weights=False`, and write the path of the training model to be converted under the `Global.pretrained_model` parameter in the configuration file, without adding the file suffix .pdmodel, .pdopt or .pdparams. -# -o Set the address where the converted model will be saved. +# -c Set the training algorithm yml configuration file +# -o Set optional parameters +# Global.checkpoints parameter Set the training model address to be converted without adding the file suffix .pdmodel, .pdopt or .pdparams. +# Global.load_static_weights needs to be set to False +# Global.save_inference_dir Set the address where the converted model will be saved. -python3 tools/export_model.py -c configs/cls/cls_mv3.yml -o ./inference/cls/ +python3 tools/export_model.py -c configs/cls/cls_mv3.yml -o Global.checkpoints=./ch_lite/ch_ppocr_mobile_v2.0_cls_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/cls/ ``` After the conversion is successful, there are two files in the directory: @@ -152,10 +161,7 @@ python3 tools/infer/predict_det.py --image_dir="./doc/imgs/2.jpg" --det_model_di First, convert the model saved in the DB text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the ICDAR2015 English dataset as an example ([model download link](link)), you can use the following command to convert: ``` --c Set the yml configuration file of the algorithm, you need to set `Global.load_static_weights=False`, and write the path of the training model to be converted under the `Global.pretrained_model` parameter in the configuration file, without adding the file suffix .pdmodel, .pdopt or .pdparams. -# -o Set the address where the converted model will be saved. - -python3 tools/export_model.py -c configs/det/det_r50_vd_db.yml -o "./inference/det_db" +python3 tools/export_model.py -c configs/det/det_r50_vd_db.yml -o Global.checkpoints=./det_r50_vd_db_v2.0.train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_db ``` DB text detection model inference, you can execute the following command: @@ -176,10 +182,7 @@ The visualized text detection results are saved to the `./inference_results` fol First, convert the model saved in the EAST text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the ICDAR2015 English dataset as an example ([model download link](link)), you can use the following command to convert: ``` --c Set the yml configuration file of the algorithm, you need to set `Global.load_static_weights=False`, and write the path of the training model to be converted under the `Global.pretrained_model` parameter in the configuration file, without adding the file suffix .pdmodel, .pdopt or .pdparams. -# -o Set the address where the converted model will be saved. - -python3 tools/export_model.py -c configs/det/det_r50_vd_east.yml -o Global.checkpoints="./models/det_r50_vd_east/best_accuracy" Global.save_inference_dir="./inference/det_east" +python3 tools/export_model.py -c configs/det/det_r50_vd_east.yml -o Global.checkpoints=./det_r50_vd_east_v2.0.train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_east ``` **For EAST text detection model inference, you need to set the parameter ``--det_algorithm="EAST"``**, run the following command: @@ -200,10 +203,7 @@ The visualized text detection results are saved to the `./inference_results` fol First, convert the model saved in the SAST text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the ICDAR2015 English dataset as an example ([model download link](link)), you can use the following command to convert: ``` --c Set the yml configuration file of the algorithm, you need to set `Global.load_static_weights=False`, and write the path of the training model to be converted under the `Global.pretrained_model` parameter in the configuration file, without adding the file suffix .pdmodel, .pdopt or .pdparams. -# -o Set the address where the converted model will be saved. - -python3 tools/export_model.py -c configs/det/det_r50_vd_sast_icdar15.yml -o "./inference/det_sast_ic15" +python3 tools/export_model.py -c configs/det/det_r50_vd_sast_icdar15.yml -o Global.checkpoints=./det_r50_vd_sast_icdar15_v2.0.train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_sast_ic15 ``` **For SAST quadrangle text detection model inference, you need to set the parameter `--det_algorithm="SAST"`**, run the following command: @@ -220,10 +220,7 @@ The visualized text detection results are saved to the `./inference_results` fol First, convert the model saved in the SAST text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the Total-Text English dataset as an example ([model download link](https://paddleocr.bj.bcebos.com/SAST/sast_r50_vd_total_text.tar)), you can use the following command to convert: ``` --c Set the yml configuration file of the algorithm, you need to set `Global.load_static_weights=False`, and write the path of the training model to be converted under the `Global.pretrained_model` parameter in the configuration file, without adding the file suffix .pdmodel, .pdopt or .pdparams. -# -o Set the address where the converted model will be saved. - -python3 tools/export_model.py -c configs/det/det_r50_vd_sast_totaltext.yml -o Global.checkpoints="./models/sast_r50_vd_total_text/best_accuracy" Global.save_inference_dir="./inference/det_sast_tt" +python3 tools/export_model.py -c configs/det/det_r50_vd_sast_totaltext.yml -o Global.checkpoints=./det_r50_vd_sast_totaltext_v2.0.train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_sast_tt ``` **For SAST curved text detection model inference, you need to set the parameter `--det_algorithm="SAST"` and `--det_sast_polygon=True`**, run the following command: @@ -263,18 +260,15 @@ Predicts of ./doc/imgs_words/ch/word_4.jpg:['实力活力', 0.89552695] ### 2. CTC-BASED TEXT RECOGNITION MODEL INFERENCE -Taking STAR-Net as an example, we introduce the recognition model inference based on CTC loss. CRNN and Rosetta are used in a similar way, by setting the recognition algorithm parameter `rec_algorithm`. +Taking CRNN as an example, we introduce the recognition model inference based on CTC loss. Rosetta and Star-Net are used in a similar way, No need to set the recognition algorithm parameter rec_algorithm. -First, convert the model saved in the STAR-Net text recognition training process into an inference model. Taking the model based on Resnet34_vd backbone network, using MJSynth and SynthText (two English text recognition synthetic datasets) for training, as an example ([model download address](link)). It can be converted as follow: +First, convert the model saved in the CRNN text recognition training process into an inference model. Taking the model based on Resnet34_vd backbone network, using MJSynth and SynthText (two English text recognition synthetic datasets) for training, as an example ([model download address](link)). It can be converted as follow: ``` --c Set the yml configuration file of the algorithm, you need to set `Global.load_static_weights=False`, and write the path of the training model to be converted under the `Global.pretrained_model` parameter in the configuration file, without adding the file suffix .pdmodel, .pdopt or .pdparams. -# -o Set the address where the converted model will be saved. - -python3 tools/export_model.py -c configs/rec/rec_r34_vd_tps_bilstm_ctc.yml -o "./inference/starnet" +python3 tools/export_model.py -c configs/det/rec_r34_vd_none_bilstm_ctc.yml -o Global.checkpoints=./rec_r34_vd_none_bilstm_ctc_v2.0.train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/rec_crnn ``` -For STAR-Net text recognition model inference, execute the following commands: +For CRNN text recognition model inference, execute the following commands: ``` python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png" --rec_model_dir="./inference/starnet/" --rec_image_shape="3, 32, 100" --rec_char_type="en" @@ -284,7 +278,11 @@ python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png ### 3. ATTENTION-BASED TEXT RECOGNITION MODEL INFERENCE ![](../imgs_words_en/word_336.png) +The recognition model based on Attention loss is different from ctc, and additional recognition algorithm parameters need to be set --rec_algorithm="RARE" After executing the command, the recognition result of the above image is as follows: +```bash +python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png" --rec_model_dir="./inference/rare/" --rec_image_shape="3, 32, 100" --rec_char_type="en" --rec_algorithm="RARE" +``` Predicts of ./doc/imgs_words_en/word_336.png:['super', 0.9999555] From 2ed027a91cfc6adbff6887029fd1e74ed0cff185 Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Thu, 10 Dec 2020 17:20:10 +0800 Subject: [PATCH 24/51] change selected_gpus to gpus --- doc/doc_ch/angle_class.md | 4 ++-- doc/doc_en/angle_class_en.md | 4 ++-- train.sh | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/doc_ch/angle_class.md b/doc/doc_ch/angle_class.md index d6a36b86b..887add31c 100644 --- a/doc/doc_ch/angle_class.md +++ b/doc/doc_ch/angle_class.md @@ -62,9 +62,9 @@ PaddleOCR提供了训练脚本、评估脚本和预测脚本。 *如果您安装的是cpu版本,请将配置文件中的 `use_gpu` 字段修改为false* ``` -# GPU训练 支持单卡,多卡训练,通过selected_gpus指定卡号 +# GPU训练 支持单卡,多卡训练,通过gpus指定卡号 # 启动训练,下面的命令已经写入train.sh文件中,只需修改文件里的配置文件路径即可 -python3 -m paddle.distributed.launch --selected_gpus '0,1,2,3,4,5,6,7' tools/train.py -c configs/cls/cls_mv3.yml +python3 -m paddle.distributed.launch --gpus '0,1,2,3,4,5,6,7' tools/train.py -c configs/cls/cls_mv3.yml ``` - 数据增强 diff --git a/doc/doc_en/angle_class_en.md b/doc/doc_en/angle_class_en.md index defdff3cc..72a8760f8 100644 --- a/doc/doc_en/angle_class_en.md +++ b/doc/doc_en/angle_class_en.md @@ -65,9 +65,9 @@ Start training: ``` # Set PYTHONPATH path export PYTHONPATH=$PYTHONPATH:. -# GPU training Support single card and multi-card training, specify the card number through selected_gpus +# GPU training Support single card and multi-card training, specify the card number through gpus # Start training, the following command has been written into the train.sh file, just modify the configuration file path in the file -python3 -m paddle.distributed.launch --selected_gpus '0,1,2,3,4,5,6,7' tools/train.py -c configs/cls/cls_mv3.yml +python3 -m paddle.distributed.launch --gpus '0,1,2,3,4,5,6,7' tools/train.py -c configs/cls/cls_mv3.yml ``` - Data Augmentation diff --git a/train.sh b/train.sh index a0483e4dc..17ded409b 100644 --- a/train.sh +++ b/train.sh @@ -1 +1 @@ - python3 -m paddle.distributed.launch --selected_gpus '0,1,2,3,4,5,6,7' tools/train.py -c configs/rec/rec_mv3_none_bilstm_ctc.yml \ No newline at end of file + python3 -m paddle.distributed.launch --gpus '0,1,2,3,4,5,6,7' tools/train.py -c configs/rec/rec_mv3_none_bilstm_ctc.yml \ No newline at end of file From ef9490ed7594623584071d3cad48484094d7ea80 Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Thu, 10 Dec 2020 17:28:30 +0800 Subject: [PATCH 25/51] change gpus to selected_gpus --- doc/doc_ch/angle_class.md | 4 ++-- doc/doc_en/angle_class_en.md | 4 ++-- train.sh | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/doc_ch/angle_class.md b/doc/doc_ch/angle_class.md index 887add31c..d6a36b86b 100644 --- a/doc/doc_ch/angle_class.md +++ b/doc/doc_ch/angle_class.md @@ -62,9 +62,9 @@ PaddleOCR提供了训练脚本、评估脚本和预测脚本。 *如果您安装的是cpu版本,请将配置文件中的 `use_gpu` 字段修改为false* ``` -# GPU训练 支持单卡,多卡训练,通过gpus指定卡号 +# GPU训练 支持单卡,多卡训练,通过selected_gpus指定卡号 # 启动训练,下面的命令已经写入train.sh文件中,只需修改文件里的配置文件路径即可 -python3 -m paddle.distributed.launch --gpus '0,1,2,3,4,5,6,7' tools/train.py -c configs/cls/cls_mv3.yml +python3 -m paddle.distributed.launch --selected_gpus '0,1,2,3,4,5,6,7' tools/train.py -c configs/cls/cls_mv3.yml ``` - 数据增强 diff --git a/doc/doc_en/angle_class_en.md b/doc/doc_en/angle_class_en.md index 72a8760f8..defdff3cc 100644 --- a/doc/doc_en/angle_class_en.md +++ b/doc/doc_en/angle_class_en.md @@ -65,9 +65,9 @@ Start training: ``` # Set PYTHONPATH path export PYTHONPATH=$PYTHONPATH:. -# GPU training Support single card and multi-card training, specify the card number through gpus +# GPU training Support single card and multi-card training, specify the card number through selected_gpus # Start training, the following command has been written into the train.sh file, just modify the configuration file path in the file -python3 -m paddle.distributed.launch --gpus '0,1,2,3,4,5,6,7' tools/train.py -c configs/cls/cls_mv3.yml +python3 -m paddle.distributed.launch --selected_gpus '0,1,2,3,4,5,6,7' tools/train.py -c configs/cls/cls_mv3.yml ``` - Data Augmentation diff --git a/train.sh b/train.sh index 17ded409b..a0483e4dc 100644 --- a/train.sh +++ b/train.sh @@ -1 +1 @@ - python3 -m paddle.distributed.launch --gpus '0,1,2,3,4,5,6,7' tools/train.py -c configs/rec/rec_mv3_none_bilstm_ctc.yml \ No newline at end of file + python3 -m paddle.distributed.launch --selected_gpus '0,1,2,3,4,5,6,7' tools/train.py -c configs/rec/rec_mv3_none_bilstm_ctc.yml \ No newline at end of file From a2f95be7716be492c173f625efb70456350c08a5 Mon Sep 17 00:00:00 2001 From: xmy0916 <863299715@qq.com> Date: Thu, 10 Dec 2020 18:43:27 +0800 Subject: [PATCH 26/51] fix doc recognition ch&en --- doc/doc_ch/recognition.md | 18 +++++++++--------- doc/doc_en/recognition_en.md | 20 ++++++++++---------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/doc/doc_ch/recognition.md b/doc/doc_ch/recognition.md index 6c5efc067..769374aed 100644 --- a/doc/doc_ch/recognition.md +++ b/doc/doc_ch/recognition.md @@ -142,7 +142,7 @@ word_dict.txt 每行有一个单字,将字符与数字索引映射在一起, - 添加空格类别 -如果希望支持识别"空格"类别, 请将yml文件中的 `use_space_char` 字段设置为 `true`。 +如果希望支持识别"空格"类别, 请将yml文件中的 `use_space_char` 字段设置为 `True`。 @@ -193,8 +193,8 @@ PaddleOCR支持训练和评估交替进行, 可以在 `configs/rec/rec_icdar15_t | 配置文件 | 算法名称 | backbone | trans | seq | pred | | :--------: | :-------: | :-------: | :-------: | :-----: | :-----: | -| [rec_chinese_lite_train_v1.1.yml](../../configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yml) | CRNN | Mobilenet_v3 small 0.5 | None | BiLSTM | ctc | -| [rec_chinese_common_train_v1.1.yml](../../configs/rec/ch_ppocr_v1.1/rec_chinese_common_train_v1.1.yml) | CRNN | ResNet34_vd | None | BiLSTM | ctc | +| [rec_chinese_lite_train_v2.0.yml](../../configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml) | CRNN | Mobilenet_v3 small 0.5 | None | BiLSTM | ctc | +| [rec_chinese_common_train_v2.0.yml](../../configs/rec/ch_ppocr_v2.0/rec_chinese_common_train_v2.0.yml) | CRNN | ResNet34_vd | None | BiLSTM | ctc | | rec_chinese_lite_train.yml | CRNN | Mobilenet_v3 small 0.5 | None | BiLSTM | ctc | | rec_chinese_common_train.yml | CRNN | ResNet34_vd | None | BiLSTM | ctc | | rec_icdar15_train.yml | CRNN | Mobilenet_v3 large 0.5 | None | BiLSTM | ctc | @@ -208,9 +208,9 @@ PaddleOCR支持训练和评估交替进行, 可以在 `configs/rec/rec_icdar15_t | rec_r34_vd_tps_bilstm_ctc.yml | STARNet | Resnet34_vd | tps | BiLSTM | ctc | | rec_r50fpn_vd_none_srn.yml | SRN | Resnet50_fpn_vd | None | rnn | srn | -训练中文数据,推荐使用[rec_chinese_lite_train_v1.1.yml](../../configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yml),如您希望尝试其他算法在中文数据集上的效果,请参考下列说明修改配置文件: +训练中文数据,推荐使用[rec_chinese_lite_train_v2.0.yml](../../configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml),如您希望尝试其他算法在中文数据集上的效果,请参考下列说明修改配置文件: -以 `rec_chinese_lite_train_v1.1.yml` 为例: +以 `rec_chinese_lite_train_v2.0.yml` 为例: ``` Global: ... @@ -220,7 +220,7 @@ Global: character_type: ch ... # 识别空格 - use_space_char: False + use_space_char: True Optimizer: @@ -300,7 +300,7 @@ Global: character_dict_path: ./ppocr/utils/dict/french_dict.txt ... # 识别空格 - use_space_char: False + use_space_char: True ... @@ -362,12 +362,12 @@ infer_img: doc/imgs_words/en/word_1.png word : joint ``` -预测使用的配置文件必须与训练一致,如您通过 `python3 tools/train.py -c configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yml` 完成了中文模型的训练, +预测使用的配置文件必须与训练一致,如您通过 `python3 tools/train.py -c configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml` 完成了中文模型的训练, 您可以使用如下命令进行中文模型预测。 ``` # 预测中文结果 -python3 tools/infer_rec.py -c configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yml -o Global.checkpoints={path/to/weights}/best_accuracy Global.infer_img=doc/imgs_words/ch/word_1.jpg +python3 tools/infer_rec.py -c configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml -o Global.checkpoints={path/to/weights}/best_accuracy Global.infer_img=doc/imgs_words/ch/word_1.jpg ``` 预测图片: diff --git a/doc/doc_en/recognition_en.md b/doc/doc_en/recognition_en.md index daa12820f..da5a7c473 100644 --- a/doc/doc_en/recognition_en.md +++ b/doc/doc_en/recognition_en.md @@ -135,7 +135,7 @@ If you need to customize dic file, please add character_dict_path field in confi - Add space category -If you want to support the recognition of the `space` category, please set the `use_space_char` field in the yml file to `true`. +If you want to support the recognition of the `space` category, please set the `use_space_char` field in the yml file to `True`. **Note: use_space_char only takes effect when character_type=ch** @@ -183,8 +183,8 @@ If the evaluation set is large, the test will be time-consuming. It is recommend | Configuration file | Algorithm | backbone | trans | seq | pred | | :--------: | :-------: | :-------: | :-------: | :-----: | :-----: | -| [rec_chinese_lite_train_v1.1.yml](../../configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yml) | CRNN | Mobilenet_v3 small 0.5 | None | BiLSTM | ctc | -| [rec_chinese_common_train_v1.1.yml](../../configs/rec/ch_ppocr_v1.1/rec_chinese_common_train_v1.1.yml) | CRNN | ResNet34_vd | None | BiLSTM | ctc | +| [rec_chinese_lite_train_v2.0.yml](../../configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml) | CRNN | Mobilenet_v3 small 0.5 | None | BiLSTM | ctc | +| [rec_chinese_common_train_v2.0.yml](../../configs/rec/ch_ppocr_v2.0/rec_chinese_common_train_v2.0.yml) | CRNN | ResNet34_vd | None | BiLSTM | ctc | | rec_chinese_lite_train.yml | CRNN | Mobilenet_v3 small 0.5 | None | BiLSTM | ctc | | rec_chinese_common_train.yml | CRNN | ResNet34_vd | None | BiLSTM | ctc | | rec_icdar15_train.yml | CRNN | Mobilenet_v3 large 0.5 | None | BiLSTM | ctc | @@ -198,9 +198,9 @@ If the evaluation set is large, the test will be time-consuming. It is recommend | rec_r34_vd_tps_bilstm_ctc.yml | STARNet | Resnet34_vd | tps | BiLSTM | ctc | For training Chinese data, it is recommended to use -[rec_chinese_lite_train_v1.1.yml](../../configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yml). If you want to try the result of other algorithms on the Chinese data set, please refer to the following instructions to modify the configuration file: +[rec_chinese_lite_train_v2.0.yml](../../configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml). If you want to try the result of other algorithms on the Chinese data set, please refer to the following instructions to modify the configuration file: co -Take `rec_chinese_lite_train_v1.1.yml` as an example: +Take `rec_chinese_lite_train_v2.0.yml` as an example: ``` Global: ... @@ -210,7 +210,7 @@ Global: character_type: ch ... # Whether to recognize spaces - use_space_char: False + use_space_char: True Optimizer: @@ -290,7 +290,7 @@ Global: character_dict_path: ./ppocr/utils/dict/french_dict.txt ... # Whether to recognize spaces - use_space_char: False + use_space_char: True ... @@ -337,7 +337,7 @@ The default prediction picture is stored in `infer_img`, and the weight is speci ``` # Predict English results -python3 tools/infer_rec.py -c configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yml -o Global.checkpoints={path/to/weights}/best_accuracy TestReader.infer_img=doc/imgs_words/en/word_1.jpg +python3 tools/infer_rec.py -c configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml -o Global.checkpoints={path/to/weights}/best_accuracy TestReader.infer_img=doc/imgs_words/en/word_1.jpg ``` Input image: @@ -352,11 +352,11 @@ infer_img: doc/imgs_words/en/word_1.png word : joint ``` -The configuration file used for prediction must be consistent with the training. For example, you completed the training of the Chinese model with `python3 tools/train.py -c configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yml`, you can use the following command to predict the Chinese model: +The configuration file used for prediction must be consistent with the training. For example, you completed the training of the Chinese model with `python3 tools/train.py -c configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml`, you can use the following command to predict the Chinese model: ``` # Predict Chinese results -python3 tools/infer_rec.py -c configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yml -o Global.checkpoints={path/to/weights}/best_accuracy TestReader.infer_img=doc/imgs_words/ch/word_1.jpg +python3 tools/infer_rec.py -c configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml -o Global.checkpoints={path/to/weights}/best_accuracy TestReader.infer_img=doc/imgs_words/ch/word_1.jpg ``` Input image: From 77376859351d5cebff0bee188e5a33df0b989d33 Mon Sep 17 00:00:00 2001 From: xmy0916 <863299715@qq.com> Date: Thu, 10 Dec 2020 18:56:21 +0800 Subject: [PATCH 27/51] fix doc recognition ch&en --- doc/doc_ch/recognition.md | 2 +- doc/doc_en/recognition_en.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/doc_ch/recognition.md b/doc/doc_ch/recognition.md index 769374aed..91b1af788 100644 --- a/doc/doc_ch/recognition.md +++ b/doc/doc_ch/recognition.md @@ -332,7 +332,7 @@ Eval: *注意* 评估时必须确保配置文件中 infer_img 字段为空 ``` # GPU 评估, Global.checkpoints 为待测权重 -python3 --gpus '0' tools/eval.py -c configs/rec/rec_icdar15_train.yml -o Global.checkpoints={path/to/weights}/best_accuracy +python3 -m paddle.distributed.launch --gpus '0' tools/eval.py -c configs/rec/rec_icdar15_train.yml -o Global.checkpoints={path/to/weights}/best_accuracy ``` diff --git a/doc/doc_en/recognition_en.md b/doc/doc_en/recognition_en.md index da5a7c473..f9849321d 100644 --- a/doc/doc_en/recognition_en.md +++ b/doc/doc_en/recognition_en.md @@ -322,7 +322,7 @@ The evaluation data set can be modified via `configs/rec/rec_icdar15_reader.yml` ``` # GPU evaluation, Global.checkpoints is the weight to be tested -python3 --gpus '0' tools/eval.py -c configs/rec/rec_icdar15_reader.yml -o Global.checkpoints={path/to/weights}/best_accuracy +python3 -m paddle.distributed.launch --gpus '0' tools/eval.py -c configs/rec/rec_icdar15_reader.yml -o Global.checkpoints={path/to/weights}/best_accuracy ``` From 1de89825f617c81e33d9828a6fdd20253f9f2fad Mon Sep 17 00:00:00 2001 From: gaotingquan-dev Date: Fri, 11 Dec 2020 03:19:16 +0000 Subject: [PATCH 28/51] Fix the errors about description of dict --- doc/doc_ch/recognition.md | 6 +++--- doc/doc_en/recognition_en.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/doc_ch/recognition.md b/doc/doc_ch/recognition.md index 91b1af788..4097ec92c 100644 --- a/doc/doc_ch/recognition.md +++ b/doc/doc_ch/recognition.md @@ -122,11 +122,11 @@ word_dict.txt 每行有一个单字,将字符与数字索引映射在一起, `ppocr/utils/dict/french_dict.txt` 是一个包含118个字符的法文字典 -`ppocr/utils/dict/japan_dict.txt` 是一个包含4399个字符的法文字典 +`ppocr/utils/dict/japan_dict.txt` 是一个包含4399个字符的日文字典 -`ppocr/utils/dict/korean_dict.txt` 是一个包含3636个字符的法文字典 +`ppocr/utils/dict/korean_dict.txt` 是一个包含3636个字符的韩文字典 -`ppocr/utils/dict/german_dict.txt` 是一个包含131个字符的法文字典 +`ppocr/utils/dict/german_dict.txt` 是一个包含131个字符的德文字典 您可以按需使用。 diff --git a/doc/doc_en/recognition_en.md b/doc/doc_en/recognition_en.md index f9849321d..7f5e436e1 100644 --- a/doc/doc_en/recognition_en.md +++ b/doc/doc_en/recognition_en.md @@ -114,11 +114,11 @@ In `word_dict.txt`, there is a single word in each line, which maps characters a `ppocr/utils/dict/french_dict.txt` is a French dictionary with 118 characters -`ppocr/utils/dict/japan_dict.txt` is a French dictionary with 4399 characters +`ppocr/utils/dict/japan_dict.txt` is a Japanese dictionary with 4399 characters -`ppocr/utils/dict/korean_dict.txt` is a French dictionary with 3636 characters +`ppocr/utils/dict/korean_dict.txt` is a Korean dictionary with 3636 characters -`ppocr/utils/dict/german_dict.txt` is a French dictionary with 131 characters +`ppocr/utils/dict/german_dict.txt` is a German dictionary with 131 characters You can use it on demand. From 49895d097a242f3cb61e01ae7914f5711c09e9cb Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Fri, 11 Dec 2020 13:19:37 +0800 Subject: [PATCH 29/51] fix typo error --- ppocr/metrics/cls_metric.py | 5 ++--- ppocr/metrics/det_metric.py | 2 +- ppocr/metrics/rec_metric.py | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/ppocr/metrics/cls_metric.py b/ppocr/metrics/cls_metric.py index 03cbe9c80..098172002 100644 --- a/ppocr/metrics/cls_metric.py +++ b/ppocr/metrics/cls_metric.py @@ -32,9 +32,8 @@ class ClsMetric(object): def get_metric(self): """ - return metircs { - 'acc': 0, - 'norm_edit_dis': 0, + return metrics { + 'acc': 0 } """ acc = self.correct_num / self.all_num diff --git a/ppocr/metrics/det_metric.py b/ppocr/metrics/det_metric.py index 889a8e152..0f9e94df4 100644 --- a/ppocr/metrics/det_metric.py +++ b/ppocr/metrics/det_metric.py @@ -57,7 +57,7 @@ class DetMetric(object): def get_metric(self): """ - return metircs { + return metrics { 'precision': 0, 'recall': 0, 'hmean': 0 diff --git a/ppocr/metrics/rec_metric.py b/ppocr/metrics/rec_metric.py index 98817ad82..bd0f92e0d 100644 --- a/ppocr/metrics/rec_metric.py +++ b/ppocr/metrics/rec_metric.py @@ -43,7 +43,7 @@ class RecMetric(object): def get_metric(self): """ - return metircs { + return metrics { 'acc': 0, 'norm_edit_dis': 0, } From 058c0e53028d89d5d74891b5a99d9e89dde5b040 Mon Sep 17 00:00:00 2001 From: zhoujun Date: Fri, 11 Dec 2020 13:21:58 +0800 Subject: [PATCH 30/51] fix typo error (#1387) --- ppocr/metrics/cls_metric.py | 5 ++--- ppocr/metrics/det_metric.py | 2 +- ppocr/metrics/rec_metric.py | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/ppocr/metrics/cls_metric.py b/ppocr/metrics/cls_metric.py index 03cbe9c80..098172002 100644 --- a/ppocr/metrics/cls_metric.py +++ b/ppocr/metrics/cls_metric.py @@ -32,9 +32,8 @@ class ClsMetric(object): def get_metric(self): """ - return metircs { - 'acc': 0, - 'norm_edit_dis': 0, + return metrics { + 'acc': 0 } """ acc = self.correct_num / self.all_num diff --git a/ppocr/metrics/det_metric.py b/ppocr/metrics/det_metric.py index 889a8e152..0f9e94df4 100644 --- a/ppocr/metrics/det_metric.py +++ b/ppocr/metrics/det_metric.py @@ -57,7 +57,7 @@ class DetMetric(object): def get_metric(self): """ - return metircs { + return metrics { 'precision': 0, 'recall': 0, 'hmean': 0 diff --git a/ppocr/metrics/rec_metric.py b/ppocr/metrics/rec_metric.py index 98817ad82..bd0f92e0d 100644 --- a/ppocr/metrics/rec_metric.py +++ b/ppocr/metrics/rec_metric.py @@ -43,7 +43,7 @@ class RecMetric(object): def get_metric(self): """ - return metircs { + return metrics { 'acc': 0, 'norm_edit_dis': 0, } From 3ea94c94d25b72104fa9ee4a9d36e188eca3b3c8 Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Fri, 11 Dec 2020 13:27:27 +0800 Subject: [PATCH 31/51] change save_model_dir --- configs/det/det_r50_vd_db.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/det/det_r50_vd_db.yml b/configs/det/det_r50_vd_db.yml index 491983f57..b70ab7505 100644 --- a/configs/det/det_r50_vd_db.yml +++ b/configs/det/det_r50_vd_db.yml @@ -3,7 +3,7 @@ Global: epoch_num: 1200 log_smooth_window: 20 print_batch_step: 10 - save_model_dir: ./output/det_rc/det_r50_vd/ + save_model_dir: ./output/det_r50_vd/ save_epoch_step: 1200 # evaluation is run every 5000 iterations after the 4000th iteration eval_batch_step: [5000,4000] From 61b94e47cbcc7aeeefddde9f41ad695c3230ffd1 Mon Sep 17 00:00:00 2001 From: tink2123 Date: Fri, 11 Dec 2020 17:50:01 +0800 Subject: [PATCH 32/51] polish doc --- README_ch.md | 7 +-- README_en.md | 12 ++-- configs/rec/rec_icdar15_train.yml | 97 ++++++++++++++++++++++++++++++ doc/doc_ch/recognition.md | 16 +++-- doc/doc_en/recognition_en.md | 9 +-- doc/joinus.PNG | Bin 16090 -> 418144 bytes ppocr/utils/ic15_dict.txt | 2 +- 7 files changed, 117 insertions(+), 26 deletions(-) create mode 100644 configs/rec/rec_icdar15_train.yml diff --git a/README_ch.md b/README_ch.md index b1f07e293..701d0194e 100644 --- a/README_ch.md +++ b/README_ch.md @@ -54,11 +54,10 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力 | 模型简介 | 模型名称 |推荐场景 | 检测模型 | 方向分类器 | 识别模型 | | ------------ | --------------- | ----------------|---- | ---------- | -------- | -| 中英文超轻量OCR模型(8.1M) | ch_ppocr_mobile_v1.1_xx |移动端&服务器端|[推理模型](link) / [预训练模型](link)|[推理模型](link) / [预训练模型](link) |[推理模型](link) / [预训练模型](link) | -| 中英文通用OCR模型(155.1M) |ch_ppocr_server_v1.1_xx|服务器端 |[推理模型](link) / [预训练模型](link) |[推理模型](link) / [预训练模型](link) |[推理模型](link) / [预训练模型](link) | -| 中英文超轻量压缩OCR模型(3.5M) | ch_ppocr_mobile_slim_v1.1_xx| 移动端 |[推理模型](link) / [slim模型](link) |[推理模型](link) / [slim模型](link)| [推理模型](link) / [slim模型](link)| +| 中英文超轻量OCR模型(8.1M) | ch_ppocr_mobile_v2.0_xx |移动端&服务器端|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_train.tar)|[推理模型](link) / [预训练模型](link) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_pre.tar) | +| 中英文通用OCR模型(155.1M) |ch_ppocr_server_v2.0_xx|服务器端 |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_train.tar) |[推理模型](link) / [预训练模型](link) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_pre.tar) | -更多模型下载(包括多语言),可以参考[PP-OCR v1.1 系列模型下载](./doc/doc_ch/models_list.md) +更多模型下载(包括多语言),可以参考[PP-OCR v2.0 系列模型下载](./doc/doc_ch/models_list.md) ## 文档教程 - [快速安装](./doc/doc_ch/installation.md) diff --git a/README_en.md b/README_en.md index d74c97aee..052479506 100644 --- a/README_en.md +++ b/README_en.md @@ -62,15 +62,11 @@ Mobile DEMO experience (based on EasyEdge and Paddle-Lite, supports iOS and Andr | Model introduction | Model name | Recommended scene | Detection model | Direction classifier | Recognition model | | ------------------------------------------------------------ | ---------------------------- | ----------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | -| Chinese and English ultra-lightweight OCR model (8.1M) | ch_ppocr_mobile_v1.1_xx | Mobile & server | [inference model](link) / [pre-trained model](link) | [inference model](link) / [pre-trained model](link) | [inference model](link) / [pre-trained model](link) | -| Chinese and English general OCR model (155.1M) | ch_ppocr_server_v1.1_xx | Server | [inference model](link) / [pre-trained model](link) | [inference model](link) / [pre-trained model](link) | [inference model](link) / [pre-trained model](link) | -| Chinese and English ultra-lightweight compressed OCR model (3.5M) | ch_ppocr_mobile_slim_v1.1_xx | Mobile | [inference model](link) / [slim model](link) | [inference model](link) / [slim model](link) | [inference model](link) / [slim model](link) | -| French ultra-lightweight OCR model (4.6M) | french_ppocr_mobile_v1.1_xx | Mobile & server | [inference model](link) / [pre-trained model](link) | - | [inference model](link) / [pre-trained model](link) | -| German ultra-lightweight OCR model (4.6M) | german_ppocr_mobile_v1.1_xx | Mobile & server | [inference model](link) / [pre-trained model](link) | - |[inference model](link) / [pre-trained model](link) | -| Korean ultra-lightweight OCR model (5.9M) | korean_ppocr_mobile_v1.1_xx | Mobile & server | [inference model](link) / [pre-trained model](link) | - |[inference model](link) / [pre-trained model](link)| -| Japan ultra-lightweight OCR model (6.2M) | japan_ppocr_mobile_v1.1_xx | Mobile & server | [inference model](link) / [pre-trained model](link) | - |[inference model](link) / [pre-trained model](link) | +| Chinese and English ultra-lightweight OCR model (8.1M) | ch_ppocr_mobile_v2.0_xx | Mobile & server |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar) / [pre-trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_train.tar)|[inference model](link) / [pre-trained model](link) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar) / [pre-trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_pre.tar) | +| Chinese and English general OCR model (155.1M) | ch_ppocr_server_v2.0_xx | Server |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar) / [pre-trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_train.tar) |[inference model](link) / [pre-trained model](link) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar) / [pre-trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_pre.tar) | -For more model downloads (including multiple languages), please refer to [PP-OCR v1.1 series model downloads](./doc/doc_en/models_list_en.md). + +For more model downloads (including multiple languages), please refer to [PP-OCR v2.0 series model downloads](./doc/doc_en/models_list_en.md). For a new language request, please refer to [Guideline for new language_requests](#language_requests). diff --git a/configs/rec/rec_icdar15_train.yml b/configs/rec/rec_icdar15_train.yml new file mode 100644 index 000000000..7efbd5cf0 --- /dev/null +++ b/configs/rec/rec_icdar15_train.yml @@ -0,0 +1,97 @@ +Global: + use_gpu: true + epoch_num: 72 + log_smooth_window: 20 + print_batch_step: 10 + save_model_dir: ./output/rec/ic15/ + save_epoch_step: 3 + # evaluation is run every 2000 iterations + eval_batch_step: [0, 2000] + # if pretrained_model is saved in static mode, load_static_weights must set to True + cal_metric_during_train: True + pretrained_model: + checkpoints: + save_inference_dir: + use_visualdl: False + infer_img: doc/imgs_words_en/word_10.png + # for data or label process + character_dict_path: ppocr/utils/ic15_dict.txt + character_type: ch + max_text_length: 25 + infer_mode: False + use_space_char: False + +Optimizer: + name: Adam + beta1: 0.9 + beta2: 0.999 + lr: + learning_rate: 0.0005 + regularizer: + name: 'L2' + factor: 0 + +Architecture: + model_type: rec + algorithm: CRNN + Transform: + Backbone: + name: ResNet + layers: 34 + Neck: + name: SequenceEncoder + encoder_type: rnn + hidden_size: 256 + Head: + name: CTCHead + fc_decay: 0 + +Loss: + name: CTCLoss + +PostProcess: + name: CTCLabelDecode + +Metric: + name: RecMetric + main_indicator: acc + +Train: + dataset: + name: SimpleDataSet + data_dir: ./train_data/ + label_file_list: ["./train_data/train_list.txt"] + transforms: + - DecodeImage: # load image + img_mode: BGR + channel_first: False + - CTCLabelEncode: # Class handling label + - RecResizeImg: + image_shape: [3, 32, 100] + - KeepKeys: + keep_keys: ['image', 'label', 'length'] # dataloader will return list in this order + loader: + shuffle: True + batch_size_per_card: 256 + drop_last: True + num_workers: 8 + +Eval: + dataset: + name: SimpleDataSet + data_dir: ./train_data/ + label_file_list: ["./train_data/train_list.txt"] + transforms: + - DecodeImage: # load image + img_mode: BGR + channel_first: False + - CTCLabelEncode: # Class handling label + - RecResizeImg: + image_shape: [3, 32, 100] + - KeepKeys: + keep_keys: ['image', 'label', 'length'] # dataloader will return list in this order + loader: + shuffle: False + drop_last: False + batch_size_per_card: 256 + num_workers: 4 diff --git a/doc/doc_ch/recognition.md b/doc/doc_ch/recognition.md index 91b1af788..9dda9dedd 100644 --- a/doc/doc_ch/recognition.md +++ b/doc/doc_ch/recognition.md @@ -37,8 +37,6 @@ ln -sf /train_data/dataset 若您本地没有数据集,可以在官网下载 [icdar2015](http://rrc.cvc.uab.es/?ch=4&com=downloads) 数据,用于快速验证。也可以参考[DTRB](https://github.com/clovaai/deep-text-recognition-benchmark#download-lmdb-dataset-for-traininig-and-evaluation-from-here),下载 benchmark 所需的lmdb格式数据集。 -如果希望复现SRN的论文指标,需要下载离线[增广数据](https://pan.baidu.com/s/1-HSZ-ZVdqBF2HaBZ5pRAKA),提取码: y3ry。增广数据是由MJSynth和SynthText做旋转和扰动得到的。数据下载完成后请解压到 {your_path}/PaddleOCR/train_data/data_lmdb_release/training/ 路径下。 - * 使用自己数据集 @@ -65,7 +63,7 @@ wget -P ./train_data/ic15_data https://paddleocr.bj.bcebos.com/dataset/rec_gt_t wget -P ./train_data/ic15_data https://paddleocr.bj.bcebos.com/dataset/rec_gt_test.txt ``` -PaddleOCR 也提供了数据格式转换脚本,可以将官网 label 转换支持的数据格式。 数据转换工具在 `train_data/gen_label.py`, 这里以训练集为例: +PaddleOCR 也提供了数据格式转换脚本,可以将官网 label 转换支持的数据格式。 数据转换工具在 `ppocr/utils/gen_label.py`, 这里以训练集为例: ``` # 将官网下载的标签文件转换为 rec_gt_label.txt @@ -116,9 +114,9 @@ n word_dict.txt 每行有一个单字,将字符与数字索引映射在一起,“and” 将被映射成 [2 5 1] -`ppocr/utils/ppocr_keys_v1.txt` 是一个包含6623个字符的中文字典, +`ppocr/utils/ppocr_keys_v1.txt` 是一个包含6623个字符的中文字典 -`ppocr/utils/ic15_dict.txt` 是一个包含36个字符的英文字典, +`ppocr/utils/ic15_dict.txt` 是一个包含36个字符的英文字典 `ppocr/utils/dict/french_dict.txt` 是一个包含118个字符的法文字典 @@ -128,6 +126,8 @@ word_dict.txt 每行有一个单字,将字符与数字索引映射在一起, `ppocr/utils/dict/german_dict.txt` 是一个包含131个字符的法文字典 +`ppocr/utils/dict/en_dict.txt` 是一个包含63个字符的英文字典 + 您可以按需使用。 @@ -155,10 +155,10 @@ PaddleOCR提供了训练脚本、评估脚本和预测脚本,本节将以 CRNN ``` cd PaddleOCR/ # 下载MobileNetV3的预训练模型 -wget -P ./pretrain_models/ https://paddleocr.bj.bcebos.com/rec_mv3_none_bilstm_ctc.tar +wget -P ./pretrain_models/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_mv3_none_bilstm_ctc_v2.0_infer.tar # 解压模型参数 cd pretrain_models -tar -xf rec_mv3_none_bilstm_ctc.tar && rm -rf rec_mv3_none_bilstm_ctc.tar +tar -xf rec_mv3_none_bilstm_ctc_v2.0_infer.tar && rm -rf rec_mv3_none_bilstm_ctc_v2.0_infer.tar ``` 开始训练: @@ -204,9 +204,7 @@ PaddleOCR支持训练和评估交替进行, 可以在 `configs/rec/rec_icdar15_t | rec_mv3_tps_bilstm_attn.yml | RARE | Mobilenet_v3 large 0.5 | tps | BiLSTM | attention | | rec_r34_vd_none_bilstm_ctc.yml | CRNN | Resnet34_vd | None | BiLSTM | ctc | | rec_r34_vd_none_none_ctc.yml | Rosetta | Resnet34_vd | None | None | ctc | -| rec_r34_vd_tps_bilstm_attn.yml | RARE | Resnet34_vd | tps | BiLSTM | attention | | rec_r34_vd_tps_bilstm_ctc.yml | STARNet | Resnet34_vd | tps | BiLSTM | ctc | -| rec_r50fpn_vd_none_srn.yml | SRN | Resnet50_fpn_vd | None | rnn | srn | 训练中文数据,推荐使用[rec_chinese_lite_train_v2.0.yml](../../configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml),如您希望尝试其他算法在中文数据集上的效果,请参考下列说明修改配置文件: diff --git a/doc/doc_en/recognition_en.md b/doc/doc_en/recognition_en.md index f9849321d..14c3da739 100644 --- a/doc/doc_en/recognition_en.md +++ b/doc/doc_en/recognition_en.md @@ -114,11 +114,13 @@ In `word_dict.txt`, there is a single word in each line, which maps characters a `ppocr/utils/dict/french_dict.txt` is a French dictionary with 118 characters -`ppocr/utils/dict/japan_dict.txt` is a French dictionary with 4399 characters +`ppocr/utils/dict/japan_dict.txt` is a Japan dictionary with 4399 characters -`ppocr/utils/dict/korean_dict.txt` is a French dictionary with 3636 characters +`ppocr/utils/dict/korean_dict.txt` is a Korean dictionary with 3636 characters -`ppocr/utils/dict/german_dict.txt` is a French dictionary with 131 characters +`ppocr/utils/dict/german_dict.txt` is a German dictionary with 131 characters + +`ppocr/utils/dict/en_dict.txt` is a English dictionary with 63 characters You can use it on demand. @@ -194,7 +196,6 @@ If the evaluation set is large, the test will be time-consuming. It is recommend | rec_mv3_tps_bilstm_attn.yml | RARE | Mobilenet_v3 large 0.5 | tps | BiLSTM | attention | | rec_r34_vd_none_bilstm_ctc.yml | CRNN | Resnet34_vd | None | BiLSTM | ctc | | rec_r34_vd_none_none_ctc.yml | Rosetta | Resnet34_vd | None | None | ctc | -| rec_r34_vd_tps_bilstm_attn.yml | RARE | Resnet34_vd | tps | BiLSTM | attention | | rec_r34_vd_tps_bilstm_ctc.yml | STARNet | Resnet34_vd | tps | BiLSTM | ctc | For training Chinese data, it is recommended to use diff --git a/doc/joinus.PNG b/doc/joinus.PNG index fa11f286d7d2d56d18d94e9034c3be77c974d42f..a6e947489831d90a841c3bb6f21596d5dac7e1ac 100644 GIT binary patch literal 418144 zcmXtL`~L~)l7<1JRHSosBi$lhPCA59N}~b;X+*jm9U}w@DH)Q|F;T)15~CX= zzUTeC>kYlV{z=wM-D*7roI1R~U*H8lBGYL$~(hmoRk@~+E?(m~yB^;c) zQtc-y&jRgs@`;LUOq*}RbhP*LAAEfC#=n%mXpp@@UggQoqKgXk*YP-8T;rWjiu56+ zF*Lzc#Zi<`OSuI(Id?O5?k@A?JQ|(Ht;Ai%^V-_pULG79oLPqCcb;3iJO9zA|8uh`a?#EXVH|Pk{2cbLdSfuGC*Thw{a43fC*yHBr z1{2ACUBoMHQ6li-F!n~7R)!Fk7qsVX5ky0^yi zvmP7BcX3s2=`bnIk(h`TrVOcNs#JE=PP;w>M(Il}J|odbH9Cz{$r3KY?(H%qsgJ|D z{w?n39DyMZ$kk5CHAMXW>Y2pAZO&s`=&!r)&hM%)ot+Bl6MtnT6i{s#I168~+hb4Z zu+GkOd&!mFCVw2ZCA3u0XQ^pH?`J#|8$TVAA?ph6S{A_jw(&5p({oO5=@Q^h-TvEO zo>-;BSc$UAjc3W@Q7V8-J7jPq&_Z^CznbR2)edc7Ro++~b&Xm{c8+vzhZjP+M^;wfm2zXOo7~Za-5jbb*V)`KN z+tgu#DC>=x>$vFay#@C`amg!Bx*&0a46h1K=&!+$;JF#8rSqXZ2ZFJ5gqGqUY(jt!;5)%%4^9(6hPy32(2 z^-JIHaqH>ND4rqTGEuJMu1Y6XP?QT-QGE~8U``rq?P2kqm`M>Chdq_Uk<;eywp(u{ z77POu&ce))Hq?^yj%gwxtMiYxoYA93xk21VCpaq!g zZS!uiQ<9;`TXHM0oTg__UR|AR1zlTcAW?}@^U_p^NTZgkK+GS(mW2=Yn#pqt4*dym zr|x;@+-SM|j?Yy*UT?o2kh}b?$u0}$+`5l1=qT;@fjF@yr(oS~Rz5MHgloU@)!xQd z1~Ai{&U89ydL7*sf=X7u?!w!Xa>ylPEK=iY?XyJi$)=7Lam3YhVb$T7;=i3TH%7~! zRTzm#$+HqeQ_|rH%(rPlV7_#3%YUoNjrvfuDf+Gr{x{?XYhR5~m&H+MkW{ONBPM5H z6^u=)wQ4=Nu$=~cG;?LfyTALQ1FUH=h5jq=gP4jKvqjt*26G*^2x-bFVp{I8Eu3E; zkBy)%9BpnDB#G?xexXA;WO7WMP}yj&}=n zu^6qKWZ7*w2%N9cNLexU;h1pvVZ4rOEhco^q_9fc+!!1%V{FP+hWV&M!EbY36@2Ui zJRD1sQ+8yO8!BkK^7||dT+ox7%nh|`-K#w#9{{bb!pD6}Ha)SRoVkQd&1dpc2j=et`*M z3VyY8sXiN1#M$W6S|aR?Yqqz=Oqs5w8x!@-8Gih4`K}9;gwaxrpwc{krB9a$P#t3Ke?r4zMrc`X3CuH%w{{?vZ^}Anw!x=mN5X=G> zJzsonZyF=Cnd{vpLlxgW{z;96GWxOX#hOny+pC|P2~0Ad`06;JJ{N-NAxp1*znmpn zWu{C+tQA;$H9OgYiwB<;Gt9>ecS&b1dVSsPjZr))cE2z&R7f9rS6$a7OZ9a%Nlt8a zxh;o1HTo&i`en1}Y4|S~IP7Gy<3-(Sla6Qf#xrXxwl_lZ@#=q91Mjo_f=OIRVnawE z9Wb)WbO(LiFFOSe`Y)yPmC>*~7?~}~GO~SYg|n{@qNA#Gvt?+G+VA?eCr_SY!KSIz zku_uQ|0oqfd2-%;*ZD~>N_4etstYwQ6hw*%kp2;GX8YH{7iJ(Czy^-lpPX1Q0M5B(P* ztYt~0!;*Q}y6!HTUuBq0)npQpM^+4T0WYO-EcKs%M~&h+{vFLVr(i^J>Z>~X+r+mT zzS;Ruqt1o#f2A!e;lDt)*D*5I*0ny883Uxy&e;PxR4S76BrpLwJ=l`q*5p; zk~)6$E8bPB^|fu}ZGpztaf-xXC2HhP`#t^}b@FoJCWCl8wt+|+bmuW|&z~ondMaob zX|K-Rb7q6o20n_mE(0dYLL%((Y%FNSEVq{FCDHEYU(UX*2uwU7dCc6%*X5f%_tqAU zaXj7NW`p?h{8v`$za;Z6(jK5qC^WIuY(~pznfGce8a{!}K4f;3G+^$NtmhQo?6_1n z`s4JYA@Az~$O71SoF2OHxtW&sOsR0{$Y^om-3qeBfd#^hhBePwyDvw*k#LVduqKP7 zU()*)9SYy=08{W2$w&25z1>58OFKLqNi)QDN=Zbu)|<^$!)55IqvuSI0_brCl=}O0^Evh zJZ83i32V0Mslc^VO}%+82UGPF-Cf`>b{Wevs{e@5)_+nR(@Q4&BiA;n`?S`3H2STJ zbjV(ti%@QI9_al6dCWiRmhdJ_O|~`(g~3y^* zpn|^h+d+pzQm|J9Qxi^tCRVE*uA5gGJv%s#dK>uc7s?k0F-kU_72L*?SA&|0A4XV% z)>1DGD1N+2tItxp#!&e&XJiov;wW8BCLh5v(kv$6s8CGd^%_rGM*w?95lsK_^BSFA zySpp2`Kc&%K~QJk?8RYngbhOTadhI_xF3vN2hmlEqjkW_IvWV~UwT*|$@=%6?vlm# z%2Tph-y))1Uk$1A`W}};mw0&-{gicPw?)uL1+lA3$ga#B-R9&Wkb!;&F%f({>}Np_ zl37PfvU&$4IE&L|%jV$K`7Qvtszv@$`lyj3m$~=@X3BnC@6OXXcP3py989iPyIW$1 zk($3Um9IWaQu9-;vU2NQ5VHXy5S)F_X=_@}*UduqO&|X>tR{q{x%>fD)LV-fjhaXq zEiMlbWybdmR^3dYp?^<)Zl>nQb>`VPG^V_9VvYJf!=X5H!w*Urf#nB}v)^3|$lo5V zk5pyjkMNz_Rm%P-+60Tfc%tt6oHsVgB$a1r+OpFn_a$2IxoQFShuFt_qqlv>tv~^7 z7Em8OJZ&gkJ5on@9PPjs?2K@c=D9sC4BFsm7ZkE=bZ!KdtkW-R9_KD!J9i1hv905o`Ebdo1ehtX?PVU)cqG$o zZz>P`$>M(C&>f^SD;9g{(^=xxR6=cAVqc$R3=nrTxd+1$aySaE3Zq)O7Ae12TYi4P zgaVVVOKquu+Lr$zQ17pjcV*s!s<%WztmO=J4F^03>wIf62LkI?+)$H6w9`ji;1_LK z9TromgH;x9GbSf6D?(wc|xskPO)NG~WE z@Hf4&30LQ_(wxHJjl(45!$28(YE%kMeATukOk{%X8qu^Siq==h^y0c&NV!)-zWIjP z%HAop-@bU6hS3)p_P(&100OOli^ig{9XYUJ(i^aD(c@yJhIM-~+}Lg%%`sLJ%>_po zKhgLTfJ5r5YkoCcMAVjq0qSOB#|Tz^-9mISA|^^gz|xNIEtn0R?m$+#ZdJ>QO>o5} zLF=#5q23P!fp8JC-~qmR4d$7`H=kw-e=vPA3}K}TUe#1VG+Ej8iL>Hf1)CP8J^WpT z`7;!73E>~furgKW8_0R5LBOl`GKnm1bMEB%kn5_js!FOv(5O!`Xzuh`FmUs}!fC&K z*a8_S5Y58g1lWGg#^4AF2R>q=lnbyB%lZFD0p)UcTgG!Bd)Fh6Z<@~t7$$r_)f4nJ zbTz+gE#MFYdn+375&VL^`sG%x<0@DqF5`fjbe$8M;g|Bb7;=htRDWF2>5putJ zp-0y4YvcG|{@#qSb5tpaZuOP_o0C|T=lgxG*n9Skiy$d@;;5c4blbjg-2cb0^k)qh zZud%gNb?G`4ZAd~}_fz`cJ;5<2<T&+K=ICO98=6n8BgoHS2-d*pWtR*%#7GBg`&&sps5zua|;?2rX6-G9hO< zsE({v8v7Vug|avAR{qLTo=@@1ST;XCM+eSU+nLfDK7Jl98gxIYE7+OIXLqfpxxRly zU|er=D4i-M+R*kx#E0!k#tgv-F`M?ycPU}jd{E1F^YbWPGD%7YeN{u*c zN9>yz>}hF_20nBNg1ht}BQ-ma0aAnAJQ6vovcw=>hgOvpnV+3U8Jjx^mJx{e&L=-Ocf@u zp3ALqsfxL&18y2I_2)D5z%jXI+Iaq(08>O=mYv&k{+cp_6lOJhXOj6ss|ZvK-`AuD zj;ZBbVYcwit(ac7zKByk}(xL{;Te z2{mf(N9a?U2NM~Xz*;^E!9u)UMFMqlo}~{F*Xz^AUD?lS#yX7b$K&d!OTWSsh4Sfd zuMV`KL)+hrdBoe7W~+PEs=*|M9lM{QCl9kzZBm(2fS$cJ2T&Z`Ot)ar?IauUTClB> z0Rq%!=4s4gARomsam1?yVGRm-fnt93eJw{-=v~+BNU!MYTM19UNrU1DC-1XL6t1bF zIce1CNgZj+=>mPfjVvUg%hR1H=n~}Kx0R?}nEf0Owd&y3{8qdy`Ct-s0)=KlvRAr$ z5S4G|7;Gh`xELkqj+(?Q{eF)5Xkt)lho0t(V@i4h8-YDuNX^t63a2}l4(+sy*kVEL z@BIs7csa@&CTj@7$5gA0SIt6K9$J=OeA=2<5JwGF6i+V-t&ZoLVrJo};0O}oM)@-0 zBc=j8Hm^x>RtjO8KZ1k05LS}-*K5E2Ofh5Lu2VTC&xId|j)iUZ9_)Ti9{EVwQEW-i zvv7FA##v2^E{;Kdi!=T}xU_A|n2c@3&=tQX)~e2>>>G3lB=v9oPKP?QQcSoP|3jN6 z|6|PI{lMxqeHxKM&GwZ5=>qlM6`h6p`0}Xt8{VK`vOu<~VuWyZI+mN_pq@XOm|M7j z=~2F|2XQBVFbbZTNP@M^2qT>}->JM+hoXMCw${N*>O8HM2!Xp30ty0aMqI@ejlm=Y z>6m>dCawgwX^)=9us$(kaq74ixJHoH8%tIO_b9YWv9!1WdE;s{!e%Kj!%mri`U(qT z@V@wtK!pe;zY-bka>Lrna(coJXL3~chr*M;2CnXOjq;Z}sT@^jTgl7`ymRTmBuGa* zWeQu064`n89(ox!uqZ`_n!ia{>>Zv>bs1JP4T{CoH$JwEukA91U3V%C?fr)2foeS9 z;@2J8rj&Bto~?&N{QMtInH0QVZGPqxe;){&XS=*1B>P}L%K1{dvZ*MUZAz1Wd$>W9 zLY^>|!sTZht;a>g`R$`j{FSf=dwn(Fw5!^ddf5EC9Xkh)sb6|^cI!Q@W*zpNr*gH1 zCjRATgJhM4?wcM@C3kAMp|k0ERz}mR^Kg?A)AdQ!{DEvK6`vPoBtum_^BbFG-=$)x zkISOZ?a#YlzfJB)4eKmuD6J1L6JOo+4PRCVZZY2plPkG|>RYYj22Q|NM`h-&BnWCj zlr#0c&6qVcN(s*9BIoW&nyr$7%MttArzEv(z6TYY-uaSw$zeMV(4X_!<(06Ljv?q} zRXX%nrC;yWaak0FxWg10t>j`8xcHE0BiM?7%KOGoWBsb5$qMLNz|#y(iu$5DfW|p8 zMT(v_&1ySfT})#_1?x6p0z;PFVg=|n$#sB6+u*&jztKQylRN4yO97;Km|_f6XcF_C z)#q<(O=TxnHJQ}eeNo@7ojb*l(+yO8oDfBRneziB5z6!D%t?wPm}>hQcZiMmP#q__ z81950by?{%VX$ri2nPK3+3ePtykO4G0&y$_#{c%S#^wA}1NS-_iiMk#7P@5@?q*QX zAC(SO?GpYuR!-uZzJgP@j|VA=ec2dPgaS75U&H^CD219`CgFZtrI|TLy6F9k=I?{bcPi3x8c%eVH zOi-V?AX{$tNN>l=_eoKoTTvgu6taP{|D3SLMDe|f=O6LEF%rR`hgYVWZD3&Y&qzfF<9h100|ZbQm(8K=mD zJaLWajWIU1IXNf2K;QW^=v3ur_Z2s-b`v*>1{^^L3?>F#Ww(+2-h668*8jE2?b9c& z?$Q=K9*Iha?+u@!nlO2QYS5-U%A%F7i zkDnn+8ndohw=on{_-|pueYo^7bI9jml@SZ7oUqDuS*Lzt8K=`8e2*{rw4Fx7H174J zA4OIW@uO<<$?g5H6YH8~FQ7^1Vo~vT-KOLrlzi9`i`kUYL}G^<2#~H>IysuR4|!&BB~C=;|&(hPG}i z1^b&3o;*1*dpmHSO`Tj*t@lTI-YC~MncVRqYhm65LzQ9%s_be#L3U;{S{){RHgaghZ_~4ta0He8RJh5k3mVVv#>>=q$LjP$S}W}KzS{Gn-q6xz`OE1 z*_=#INnxKUUH`p)_S?G<`_fSwB#SH)pqPRq7}wUR%4o*IA$W@-saWu-_yp^WY?7(W zBigGXaSD=n6oC^<67puCnzbqP>qoXWV0kn!(G$gaDXpF{;5vBvEW=rv4v(>9exSP; z3_-)W(VXe_E853az3PQgWRFFV190xcD4PLTMT&NN)Td0Wl^wDil(ZRN=@b}3^4n*C z&98G|TAX#N_mm6%IdJmRcIQv`Cr6)`!~dB&38FZ=N_f-B7=?c9e`{npp?!2tN8|+x0H^RX)U5BZpH*g=2jk89TC2=^mPr8=>s<8=s;jcFhrM0$QH2 zPp@)oK}oj^?10x$mQY62X4eNh2{NUbi#5CK`&vxmMBx0DV^o=3v*pRE3!)em&3e6` znfK11BYlf0Sjhp~pR@Ct``}S^$T{77>-~G9D=Ju){mE)pkKl>ObkX^t;|VFSRcehb zUJWmm65Ix@ra`56pbWY8u>WWE&_5B^tq+cv=BpL|Y&xs0g(tslX3AX68mGKc+Q^1# zaD)H?H83Y61<(5Zl%FsG;8D!f#P{gj`zUpjUI!9krF^n(6x3F*{)pX~?|`XkzOito!|dk)&WX_z#!d(%Zj-*@R*sa?Y)IFgtJVH0uS96VU5- z_?`j>cqlbca=Vbj5E%ko;kn!nT z^)|^ozcHC|A@Fe;#NwBZ^uH4wdC8C`!pFYh7by0>=+rc<==tKgQ(Fgk{Ot@GG2_bK zW#2GhAJmNgRV>LK6IlB%_nS|%ne>$BMSM0F_4C%o_pv+%4?qiDsbm*>JJ0988pJ&M z{pYiD?!R?57@wE8QBe7h$awDO-qS3r7-bg9{FlBoLk$DqT&xpUn&PJe9;Hj|i`lwxQ$*%? ziM&8joewE#a775QSKE5V^{@W~(9qN3K84$h)nnL+A0OGF-FZ8Dc9Zrfn;{UcR;rk! zd3*0!+1A3E;zz_<{!#k%9w2egw#x0)t3hl`lnW_?Xo8qmEYq8NT8ZR$>QP4`f0&a> z@U6~qdGcVY;rZPlB*uuEUL@6~H)!IG>NJ(H8kU-aA4=EJH~Tfo-Ac|WaH9RRDNZ`< zuzQPO_WXq7P#(pLw{o9x|M6i-sj8*l-}X1{X|wkyV&!(8_X0g5HI zp4bNU7Oz@ni8zCjh8Ow^c5=it3P|yIwQ@@VP0S|>xy5X#$@A1eAm$;tDzE+gL#J`A zNG({cyRlz_YuYrgt-NAY95K4z0=G190#`= zyt%mbtrBc63_Theo`n=WXDXr#Yj=x#OOt%@i7Ht643Oc+&zCrN2OHZ|$(O=w4L2yf zRkQZ0kH}-RHx_6m#h)SL1#BPtdLId1#W7I|!~2>oq}VmT%Kju?5GeJnF@A*(Of7Io z(&DSCOC>ML%L%~gr$R6*pxgqu%!iM%W||}+taOri%f^E2(;-EH(nw1miFG+|mGb6n zj8V{nQ>Jaz5s0Zl895+^$4hk!m{|L@!$&DEJ~~OSeWsVMkz|{gAtTRD#nF*sjc?!h z8A)$wqU0KOkXhz999bYhxH8JXqOz=sB4e}(JDr`yc3*rK<|{7t`d(#(s@id9s9YuH z?bcYQ>cIZ?JbqUNR`CRuFB?EyEip?H%&?U)i0(=TY9`lm_JMX}_6zCyY)s(efHBeC z2xWpvni&BU%-?0otvug(xW=lv(MnpKbjWwhPCkrX#U^kr$VxyEV?~WBUa6+GPu5mS zR!&X|X&Qc1AnsHgi+N6j6K0nFY3o(9>LXvszd85IM$X{Qc5>zxu|cpBo|P$$P%K%^ zw~DrOOJE z5vW`YZ}Zkk?$Sw_P6bu%Z$71$(!qreWd1ag(?m@PB85{=+m=Kvq=a5bt2^UZ#kQ<@ z!=0}reAV#CkhS)l1F0-#RI~XnVn{)0W%6a}wNdA=XG_ zHce;jw;Oy{Fu)H_TSh&0U6Qq}^dcOGohVMwFoZmDvq>==;+OM%-=UahqQ(+Cs0yf9 zH53COU85(sg4{Kd1GVwHMkrFWHyoHV+SHBo@e^#jW?j;M8K>q_y4DEQzGqA&V}Vv+ zU|yR!0+|I)S0bE%5#Ij^s*4CoR)w`cz_ABOPE1J~GC2*NsJ7cHEPwIYXI$Xeq3sT6 ztr2#j$I0ZPoyvLWL-~;*;~}N&W>LM^KSzP!qoGhS257K^ITm4(!q##U#(5Qxuhl!x zfx9S>SnTu|%^b8L8_{W)UXr{hEP#T3%<>=ZjPhmEVQRecD|X6B9p?!8^Q~BO4|;0t z=8l5ywytFx`@PLT|H;;FCs-&HIr4mk^CiwKpy{)1t#U+f+)gqA$dva{#m@u$Y!I=E zf@!LNYv62|?m!ik@QRMuYIYKmw=z?Y^gx=TE-%L;3X<`x0fOjXcZUq`fq$(0u^9o~ zg&_cF$mg{+&=|6el>^54!CR_Oj*h#V{c-jWo78~))?KSL$3ltDHviGD)2EpX{syRt zOv~J5ODwU7djiaDNj{cn?aaYHSK91;A#voMVw%iso^eA9?!4^91>2(G*B9*}9%3$* z*uR!(l1R%U(?Q7Jcb|8LAgnhc^1f?{$}t`mm_uLdVo6qt{ScvpDNsvQ&831*-m7`f zt9yMF7yNR{2S&FCL?I3jIfHY9peKW;&H)_A_=FP8$F@YEc2mz9p)Bv4Wemp2@e%6}$M+dByg3G2F6RglLrw1INITbI%~AiGwL@b9!U!0%_Gj25DME`2B^jbsrp zq4(yHZAvKp%G^ZRL4w~wV~=G3tQIuM3zXYO@X^?*hS+7f@)jfB`|{P1(^nLlQ>Di| z(45P7!zhcl$}!fS&eHxrw_skN)wMK3q+MO*>SN1VH56I$H=b#Jkz!<^doXyz#j<+h zT@qFW$!Lks@ET4UV5wtK4X5oU2FbGeCIe<}$nLWwNJls;g<(t-rZcB_&>~%ZeD&jG zGJ<~q+}b_ID=-av;ckIuF-y|6@O+;mFW_D10O(d6@JPi@r6hRh+yN<`nM~}GGdyyj zSXJPtSL2cv(1-kzw$2{|j^QJbln%8UnHF+Q!!Ms21u=OkJU`v5YpXC|KxNgpHhq9( zCMcj}6Ds*bu*65C&vD*}Y*FI~YCw9RaIgDax0rDe?{af#&QtvT9SbQyKZ@}R2#Z>-d^{_Zxy6BfO zLtafB$?D76SU3(A6F(_DbLJSY?1KIe8N{@ENr##N(8eogpk2Te0i~>Wm*(!5TovaY zw*!&K@+O+42`^C8_l1@tw)%;#1c+pRzrg>K7J2S^uX=BC5GDa!Pjz_lYNzz6d6HYJ zg_x?Xt?NC0q~!o_WUVTTfeuj-<+;W{=P0+e3ZM!7hmj0$)vv6>)rvEryE(P*Mx&n) zSr_;9m{^`q!ci6VZ}R(yS9d>E%b!Wt;wkvAjwlHBdpA8akpy}h7hiXVw@xhNn({IF z_g2VuVaW>T6$@ffz#adzMNZBjJS6mgLUMxr6U#`NCoSY8=-&!G8FvMT>@-|sa7iLZdp?qGxu0*_gPX|v zd+l>R99a)adTO$V`9I8vp!?#5`@!YyoWon&XX^bgSPjb!>s=>%n70$HY-MfKMh3;T zqUVeqB+zytFV!DVs3&Obf9HYLGq3so(g0kv;Ol;=F5~y>EQv&^PB>zORN5_+3how| z7ZU1~nCNn4EG$u@TYGfkhijnUPn!mMLt5`#cYpw331PN1 zQ-EfmsVKnJ>fi{q)8#B%bHD{&u>Q9foCD&FY!`k}p8&s2ePs-v+`JAJV@={j-yLOk z&nTQ&#FV*kFk}t8ZB5ko#xo^`v@idX%=tK`Zsu#{Dk)Gz{hEffd9q&Va}?PMQRS+Y z^xgGwHG2Mw{mMvLMq)z0Y6o*!=yu_xhQmu8+k3muqH-|>A$yhE6B?_<^9sy(sn{PR zgz`4F)Xv>3_gVDCH{n*<$`)hB$f0P7>-3cie=(r*#ow zkWg*3E1^-JtA)oj@n-#fMx;8~TtzUsC`d7N`D(6(uUIi>F^$b~y?x0tGV<)<^?ROz zLDbVk=LQD}0jjEP*su|DLyW$LRs-Sot-8p)F^V3hWMH2LBU4X!DWWB_<$xsEEiq)# zPt8;tpqJ-PAhc-AX+JGNQwL4>pdXo78;)*La0gEK5U`2nBuf5z?AbnF20iQltnbw^ z)K9Oy?D`X@C(Z+xEn|nl+S7P8|AjPrrZJWxJ?@8fZ*nS;{M@pa_AcO3?eq6O;;xJDxC$W@wWw1G-h+fPa#yLGs~~syH&@?*=b9q_gZYGK0TpPq z%ClM{jkFfg@A@;mpz=elk-sYfL+pa|`MB~QuD}5Ay95B(%sZAp>BRqT&$|ov7rC?` zIRILRtkR5>xIY%~)Atia6k5i>{amIad#{+AM;GSk+7wmn-Tp(PFUd6019oWf06%R{1c(1Tws z+i_xSPJj6-o4wC^@;7zhjYLjuuQ-Szj2%jiI4nA~n4pJ_a@|M(mI~WzHl`{wNR8fWHD^Z^jxd3X#MES5M#(WG7)yGHyxQ zc-C^#&$9ZcZGUXd`ji-Iu~3v3!ITt57fi0yAL(To%?{XOZ++i^4;j?)KD97wZQmbGE`LDl@c|F zO`hAL^i?6Gk2G8ZF?ggZz}TM1CLn)}{(_en3abj>z0WjZNkn?OZNf&KpZ`8{ zKJ0*fYjpA;#03C#rgTZNtCt>6RtBJWPAk4slC%JG! zm{A%@uhr!njGqBfeON!cRp5c&?qFc@hgqMx$*O!3MGR6e3z0HzG&7 zAYgUceS)p@Ec^2xW&T@M;$((+bSA*iw==(znxVstS1uM3=_b*TzV)klkUCG}+HaOVKG@Kq4w2|+!?eOxWaty$m1-sw-ccK;lYLJOyB2MCg z9t%aZS6HDB!Z&QHM0*xSAy~(|Dh$qw^!P50DM{8|#?Ra}OdveXmJTlm*dg?c2I3ex zr1~vI1SBXtgCg$WrTGut$yLx&7_N2uhMk~A@RI6k@>r~4$eJfz|3m09ChMj1O@k#C zZ-Iv6Z(5i|$Cz<|C+;wW!Whgls%zhFC{%3?R!@M}ip7?jllGDcwH5_Wq!YZ9xMpBu zmDiBhr(|6Xgr-t=?FH0Tr$q<9Hr7Zb$yJI7*S`{28C?m1Rgu`u9r?2oGK`>f#nk>3 ztl2v9dh4D6U~d>?5#%eK`$$lbZ*1`Cqffbu-<}l6e6vv_MA4*VxaaUeWlr9d61DBk zx@mnJq!R^Ev>~?wUV9)WCww4+o0k$fEsL+L)qBw{q5(VtR2iO@HxgFmDf4gMp{SHP zKzovH{JECu1i3kuH}(ohpDgiNuf$@{GIZ4)F?g>9;}k^7lc zF1#R@_(vRn2@rhp-IUox{5{x%PCB(lj`K$jSBkz7oLfDK!(kF@U;)#~tE^oO8&Y-I zrA-(eTh7i7$0_NfCEET=!%xDGG#R*2T#{ri1wqaQRF00*+7-peHL z+9=rAPC9kdvHcN`j?GYX{T4@c`ZEnam#Lb)Hy>*SzF)S%`(1-}fXGTSadJZSIeT__ zrqF12F}Fs-pvN2&F^1oCfDV~bpVhwpjVJk{hUmqMrU%NAs!s@MA})_`w<%>N6Ft(K zo@#yw1eN59BseH9ALVGzrx@N7lk0?)>(t!u0>mA&Q_BP_-Uz?jJF^YW!Uwv^bAS=Q zwZgb4n&~{Q5fNM)($}XPJ0gxq(#n#wdnu6@AvA7lAvN|`1NB?*M&d9p%~_!ed?NBr zYPfcPn!M2=$cA&azIWBIvTx&=WZT{;FKp#qk zGcJCpgt~9ok;*zrh(c;$r1~*r0UHHUXKM}29SuDC6hN>zCO$&|+!hd!wLF=;8mshO zWz89KuXaJQ3!m(^<1`0T>9_BGdn*CEN{Xfh13(7{D5?#pfcE7tbe9>)DW~iUN&K%L zB;(2zaAP|`GeGnfP_|iop)L)oJ106x_zOsx)lqX?^V6HK_$5Ld02&MUZ#e@K{Brew z_%;8#Z%$%QCsDOu9Wj9&b_iQO8Axeu8GGL&K*fe=BBK@sS>G-CtUZx5snr>&lO1i| zu|glCbfiw3uc4BNqjD&=MaMI2q38L1%* zTMNfiJZtSGx>kl!q9@!F0U)$1Uxc69yzhvhA9R10@RLy*UPF+#C)dilpEUn2oNm#3`QawudiTg%|8 z@IHZuA8IsgXy{WJzAau)pPK=Ih6UyjzC+)V1O>NG3w#q?^iYc0>8TCVDC<(G;YH8f ze@tB1T|)$KTKx-)#))@8gdg+@uF0u9zAUTh8xi#Wy*uY=jwycR8(mNyG$6NRoQ|>i zt`V#Beoo%}rNo@IQBI}S3NlA{73U>uz67ojs(QN z^%T#&zBz92!+x2Q^(%FYX_ob~pX9$>f#8~(Opt$0);?t0|M<0>zE}K`|G3$fsfv!b zFFxB+f-Rz9J?g*5#_1&S9~)hL*Sgn^0ysemI+1OVeR*~@S^z{}XkKSMaSH?!$O%##ZVbMn>x~1#yLHbztL`$0Noj03{k7MlhY1onSZ7liN%6P_^e8zk;}~(w($U^Q z-}X-0Q05zC$~Gf3U=wRkpVYpeC34j72GwJ5S?T?8|6>8y$w7h$=&bo>aX&oM#5~j@ z<|d=1;~{%7Jvex?cou79PwV?BC*y4>A5#-8GnMQZKpy`Ebs8}&fB&;4nffg{j`B$2 z>{p_1(vbA+FE>m8n*BrA#6JMLdXQK}c{AVKwRC$>PIL!;WFyBtof=dg2k?#0weJfm zO(A%cdyWm2XAMx`7HzKRD$_|=$#Nh4wIn+Twz zcmL-G;P3%;Lvse|79&#C8(T_C_=;(6RId5LSSAnA(P+X``;FJ*M_min-@)GzCF$KUtiD>e z&S~JoC_85S{P6juC+vU2e?r;abHd4<`LEypa`p0>b>-MA6cht?GM?1`+xr@GbGsaV zNq3KPLu`BSDkr5gwmHFwg(769|8QkIXK?2(4zlrRG*_xl2t31alY^)$V5aQ4O-!$5 z4kYAPmA)DJjH2b=^@EtZh;1nOXj?S78#}w;Q^myiPaj#M4t7i+SKEIbuPSi%b!qcX zHpj~|0fe}CDBzJbb;RC6+vP7YTsuvGI1bBrw8fF|aw%|*rodCe+%~{eNI>oM=+#FR zAdQ@6b&y=o9@{fz#I6^?mja0sI@~pg`O$&=0xt^v&L|Mb0#N^Wq0Q=0&-QE>=H{4+ zr8RuLY3I1e9;pL^V`0&wzD+?3h1CZ1`#Lpm8V21E!ArXBjXY0@rJp9u zdJs_YD?~8R$WTjmAE~F?<6Gn_TqN7Re!>*AUL&$nm8k07#LNX=@B4R0BiZrFlPPSy z9|}p&A-($Sv7z7tW#}^Q|ACO;5GNB1tmOe3088=noQ9OiXGrunx}=}vOQ9eIe~iis zy(mbZ;`S!_d%5{71m{{qc)8;3oi?PLuoGYP(uL1Y9_n;A3_Jdmi%Qzk) z(qMu_1T$s(%v`%&?q~gq?EDL%tWTVc>cLSEn_aG* z24i)D6j>5owUuTMiF4t**X#D*-?mtG2AfK+cTJ-j~!#mwe6SNtp z!c=~Rc`RSrJd;Issz{(S^x2pvbQ10gZh%hY#9omqn^0tYV{XI32u*I7)Cz@@-WyGL zgfw*3>M%>xFnhD~<;7_5(Wg!OdG>xANuj*s6M~>LIVSvACj5Wb$n9N{f8$CV3GM$6 z57b$DoY|Q87ub9Jym{}-*BtJed2&FrDqN{H{ycgELED&+7>I*NH2?@y9T24+2ewfH z+hoN-IcInzk)nz>b;4%h5TeUX%Vr5r*w#!vSIFOMYdg5c=Dt0>msJx-O~fUDxP18G zD%Q9>($oC60Nx06UlSfRuA8uIYRf*?duu9)^|*Q$3H7o1nG~!Mus0QP_z3zvD-fe$ z=~sUlNklhRugeqV)cI7a`X~b(x8wKGsgcG^#gMo~u+yXHTo~U+IC%TR!tUtJ>Sdcye(NN190Eg7jSdqOaA_(@w?X*a;{rVs; zEs%hQ&=OK4y0gLyHLmCJ^LS1(un_3k8ZmD>D;3|hO3^qzLzrnW=IJ=f6IXUVw$UMx z(BbO)^Xz(&zc}mXw#aISJ}NeTASSbGr!;-SXu3_x0${fnIja-l?@!*DRs~~<`(6Lb zS1%>NP34Cb#i-mchB#06dm45kyyV@kIu=XI9$!A*s}A|sJ9u2?1aB-WP-h(d=_f_T zEtDty+?2j%?8o2pyIXyxg6O-ogN6DIZAKckX5lcUx)NpDkY<_s^EB0%o^| zqQxd>K_yd*8IE5~bHc>$P}yi}&jxjMHDdOEKL@HX07dQcP-05KRb%=Eb_mfDmXm>t z+R(3ny~qk%B5ULms4c#&M=dbIEqN4`t}nZ~V>HbaS zx7|P>E2)Kp8WI50mISL8YzW^ms$>p~gntj!lBf?#)9PLuxT;`ZY7-k@b*vk3S zm)?}ZGtd(lv$jS8q>al|dr$M*;pN`@>y`AFX9zbqP&>AM%U-QsI7q zT~acBL7(_t*$`V{B2~T3`_->b0MYPgbm91bwJROip4AO{s>ajvVRptZZtG;PUoHbWIYelqROi{fXUTGLLbf;KeT_YY%5Zp)|2o>oQW3r(4T>1=T4Dj3*9?E%XQ0%e4!OcbB&fittu2lQYGY47Kj()rP zSI&q@0h_$|5|Ww%Te2I}gY(sCZw|lV&U&qVR?D;20+G~8iiS=L2U!c}Hh{iq%-i<) zw-Nrdm!sRy$fzJr&;xSbv^#0x_cV=P6x-h(a6<@b6DTWBoer8-W5l9=P(S0Iw69 z+pf5A8kJIc9+d{7ckEtzZr%R)fJqr7Z(7_&?00nUZ@HPEf(IZOx%0X4xZS!>4{2XB zEd%n4w8si9_c^C?@i@(EFm59Y3xddh139QXr~vg4#{}P7FE8rtY6%usWrWZ|6LlrJ7QMx3z^eM>o+nhtwjaI)$Ur&xdjgR-t$bPlVvH!)%+v%QBXbn~6?nuy9vQs!c zTSTk<)@ZHjL0|gbHtCjAY=V~3P2s86tLVji!XxcU8N&CZyOls8=_oP$L$&R-w^}rMFG!6RAutcjbEGFmqV;^>A$tBJi)0! zKRT1>ynmo=VH+F@pXaA;qn4KGvky&1gpNpIJV$&M%$cQ%cV(rF?F4+X!=`NVB8tMK zj%&SfikZ`S^h{*leaQBx{+=A~Io3Qqj$|7NGD$IXFBy1ZmeGxT zmLo&XX~Fx0R-(olfQHxH(|!EBcUoO4x6g=xX|!nlWTR)vwLE<#?c^!`qz#+g#eZ}F z{jdfADdn5vP8xuoYERNrdxlL=n(s*;}O2){V#qBK^-bUST4Tl>h?%&=6@OA*`Q4s3lUs2K%q@KT? zyxfwLv>liprGbo&l02NX?w867dnU6x4%{w{GWaD$>rbe?BCOujZf1qNj9Ldrr2VN> z%8S^26nL52JwYySJt-&#AfkF)wLtSI#GYFp=llM(&ZuHzm=oKv*kBnLC7|Gj9-yF^jAQ^_?9B^u;u}0URs~hzCOkv@}IQMV@I&hwUw0uSHyUtGB z4+kXagSIRBp*()qScBvnNBA<*DW=Eff%lYZA9);wa^y1oo<|Vvl^K0``w!KipkILh zqdWc&4=R5(?g9s&;-lFlK(5d&uCNwmsJCSwxUriFBsdHh|Cl=#&ylc8dcPYS&+v2wGcytbXXBxF^XGs1?AXH$u_>T>MOQJ`;AKD{a zJOIGoFptVa9}={C3ow^-{(yOREmMQTv4kE^=iaoLKcL{R+Bu5Go$tQ|sIw83d(uKI zA^q?On%#E5dd@ccww+D2Ga`y8ocBSpb3a_-yW+rocJ0c3m1m3@oh(E)Im%2YY1Cjp z>I~&)eN29Vhkl1XlfDTQm85dJK5qrx#PIWVqu8+Sioe%DC*i*(T_Kgeo{k>(=!Sy*QA)*PuHhiT2H z3mJbv5>;9|+QP!g){Ii8-;Pe?8Ou8@V>In%w4X!v+jL>qUkth?{C#VPqNqbJo#g zg$9{`8V53xtILu(RZ;STEKohVkOZem3ct>&+%xUIV`>D5%#h^Fggh9}e(x@%Aee%m z8tA^KZts1%TQP(Jpn3t`?$-#zulI zl`qpO8lh-;Nx}serL9CV@u6hasJ3Ijxv7UFZMcOo!-KO75`bK57(+P`)7k#*3ku7 z$(%ojKdK-SA%K^!LlIqjRu1=5Q~P<@k>%J5uf z%=#0#3UUi{ffz;c1Qtq-kemb1(X6N)9X)nPyy`6Jn@YgBc%HMqN(E}|BxliWWx_;~;vzbNjF@)`{eaTV`)w)`4zsmQPykIE#sW((6^V zrD2kDpxyO>XlzL#Y7vF~RLTE$D&h@V*A;CCqx)$x0O*0o0uj26|4~ZgSI`#}gS|kL zTIFd;2mC_^Ba8E6{nXeMuF_EH_lY3tC&q)_wW=pSt@j4j2VHx==u80b&rH-hW3FgM`pt}ONSB9T1jjSPO z?@B1sg=5g4wbgO;5z~mVd%6 z&@!30A}_qJ%I3>)&lpir;FWNuljEm;ju5jpa6-Rob$6KClL7dM_1B4lLy|=J_DlR# z0cqSnYheAqebc#>kH+1Y{q9!FGE@4iy=U2Oz8BvYD|#m^$tHr1ps86m{B2=Wkg|G zMxz5&T#~U9ESH1g#pMdRw%yLuYGVUPw9U#mRJw8#E1@Fz7WeF@F@N6YEa+(65*4EH zdr_fOV-`oAu0F7{`T(2#G+UcUr=Uxw0ChtEl@&rF#$x#^j`@)IyY5%h%aOmt{0q7M+GJYKBrre zx=fhpPKI4HTO4k_bp2BGk_8zZ31< znqv5>^9yI)7tDOMTvU3C9{4ZW!IW`{0?t|S!FB-OzI|%(N(r#QGNtNB=D&pXuyD9+;wJ#G|;`&>GxSN5l|I+`H z_aq4~w~CJ}3k_Cdt`OByu1gZceg<`)0sJX%q^#c-#7})AmIH|QIBR38`&p<6mwJcaEH!Q& zMMHq4x$+nE!$HxmfMr}Hk2mY9Hnlt}g0;4gz-aCFdbv12O%XV?K3s%`S zj>{gLFNQ_ct%%vSQS0@teC0J~OOSXnX)}-mO8aOnJ|%+%U$}`8a<>`+ly%7?^Kw}& zon+}dsc$^yK_!|N$jmwqp@{enBmWk((Yj7G)1hDibd%D1&FW(BNv!87Y~~*y2_!3G z?z)T}E>dDGNu`D3{+`-4B@DJTMH{M+JN-Cig|57jf=Q_)=s3dmd8>7FSx?JV@Rxhy zgbh@>D;3hSZxV_9kAe#SB0o>aMuEAj%so!legPRBKrLv@yB_w$_e}`PJNmd2G$WOT&HYu|BoBA?xF#zn;o+c=fonz=)p>XW`u?Ss|DvxlYG>Ag7VOJRWH? zodZQ>=oWo1Mv|~-LAb@h99zu>X?)JAGO<+2!ylopU4%j(U*Y0SR93jX5~aB^bKdBz z^1mANy`hD2=kvt=DKoazJhLRPuv1M&nz90>t&w+&DVXB8kVkQ+ZzX_yyiihQ;ap}! z$(oTCSSPW!MY!3RDWURPj!0*5WI^A{&Ahm*CaukyL{z9O(~J^K6uaKNZ6%(AlU5Ao zdbijod3)?zTjbwMv99<Q70%(~+-zV$sEgL@%Jz7`yzkDZ?iTAtJ|2!EC`>3_>t6KICj6=Q|sW?$;3iL#N zAx2gwoh2}5-*Dt|%M{aYfNf{(Vixjv00(M5X%_i*QF3Zkgr+P5>qSUy2wkn#K;gFi z72mHLKM}-~+iX<*#XS!4_ud|JI+lH|xvrNB{Tr=bW7PJ@i&F8;?!!0Q8El)n@@bnR z*$lUTHzm`#Q?!xIfYQY7gitqt7(4jT;rrQC+TZ==&8({rAxx{fPPJ8lJ{AR8u@)C_ zwNBe7pZ#URsZR z^xn5K)@MoIfl*#JjKz2QjxW8T8%C5B9X^igns&@-FhXMZgAHA-rA@Km7*@qmq=(i5*-(&p9IUmwT|suYWYGmg88KL zL#}$DSY0TvpzoVl>t)o`d+3AmIOW?O~k6uUFG?fN!X zG^J_b@eb1ts0{Xm+u>*_nRkbiTnVD3hXV=!J98&X1JYK#xr|@U^WGbVLh{PfNWTj= zitgtYBN?+#i1chY6^QBJAj?2Soo(wiSm^y$ZrP$trSG1F(GbC)dQB?4VBO1I<9~WA z_=8_3HtFi~V&xpjSq0OTUt%!f7j%2U$;&W{XW9g_2eQ$!?U7j=%g6P=scdgJzPW4^ zDzz$z6^jpOgL5BcAcRV|aY|6kw?ZaFNmGn&nTXs6Zeti7)1TfF`{4AZ-oj;(^xewu zsQNF;FT5BFDSK6O*I}N{l>2Cx1cwIirS&mQ4f>>H^7cEHP`>>But(8 z%nQW~KjkPruR+7dFk)v(ZB>u)<;|D=(*TVqz(K5bdFq);XwAj$4~8_8@1Zic=9oDQ zrMxpJtF5pSLCsbUrimVWM#(k@LV7aet2&cX zzbw^mEB$7FltXMjp(wqRFM&@icJzsL*B(FZK7_Ac*%@>fF~$CDIDQ8PWX4KTxPU%2 zGba<_;?9N${rv-ok?UTnMFFerd{X0Ov>Ql_=USnhKtF>Ys%+?!9N_xXVh$C?${#My zC#@J=Mr9+U4>nWyo^sa-#V?|4vqfhm z3yTZQyJ;AB{xXn+F8=85B2bz*NUp8}2N46I z!A)mV`dxSFyr#mqTg+V$rZWtGm+&Ti1euVzjkDknr}$I(scAHS9`yf)%oua znWrMJGSaY4kc5ID5iu=24s{10@YQPufR%0C4r>RwmI237S$rFi`sWJGTQ{m6#&@Yz ze9>znO0%JN^z4N8wclOPfd3GIpdh<4OD5qk*`8*KHX8=UVWckAe6mM_vE@H$t!mpy zi|iH50hQT*_K~7E)>|^niH1wm6lo}n6l`R6yI20Wy>5N|(#4V_;Dy}d9++1a0*5y0 zwH?|ORPx50k(szF;ldU~F>tA_+SX9*Su>BZ9!4HlgKR-1VH0=HTDmDbB!BNyTx9Yz z#H%h2Sot5@JkN9k4M8}cR3UjovXJjnCpL3;VOecD&H)-ap8#y}oMLlTP=QG<>0eJ)g}P=EX^ z^9%rHJ&q-hFq7&7av5>PV#qm2KWA?BbGr>Se`)@+6VU&HI_Wq0Xo%6DkX zH;1z4JZ$O@Ts|F;jj83AdtQh%^Fy}F+Bq?~-5m=-mzeu@&4GP<8A`g8dqifA&4FQj z=Pw+duW=T@?~Ar%BgjD0krQT9Q=@FC(7MRaGU9bWi1zL?Q5-6>l&CJa*#R1PlgGi>W#?F{@bQW0PbrHEt{I`1i)q3%b|a}|P^RsO@xEt? zI$^@;It_;XqS6&=*a26w5YG%E#`&ktlzoR2Vygr&E{4I5WIK=|Zr(u8BIMl$AX*fH zk25*+uqw0%XQ*0l-vxBjiL@@UpNg9vtVyr6f>iPp#jl$sfiOiGhIAaf|ZGwm` zw~-qGrZO2i)PqP;nGYytoVtCE`KecxWO1zLm-TM?Sa7(g*Gnsws}dEz(uAOs7nU;V zb1g-(MxduD?8>?G^P6Ixn{Hlfc4a?){yk4-cj9n-qMkvB&ugyR?`5QQ)#EbZ?nJQv z5{|_Jq0RnTS;B~tt){zsG$oP`k~gIZP2{8g5(!++qMv@Pnv3+JUJf54k=tt&q^$CA z&|M@bJMV89Qz(-$E<~=5VBetMLhLDxVHtn8Y?W*?YI*CKO5#q@7D@6tOxRuK>0%=l z4iHO|UGn>z!>w+MnUmQoW2qCGlyqk9U%<1j6;Y3Sl5y4+$*(KS6$IU7?bC3ga~B+9Y?uyMEV;%Y z7idzjXt{KuT#wnn*Mrr?A-Q|7OM8*@%fUR>Ota)=@{mo~+9v@zW_@$egYDcz%?zbH zu}8Y4@v~K(evxaLt{oLVh3f62vTp>zyL#V~hLHkJ2MagqW6r-`r+gHsyq8zx=XVA* z690Q7Q%Dqh?8}Sotss@hc!9dq!!J{x*FQkaVIG;`cr!9THr>c=t&>`N9TUSYzmG(> z1k=I+0V2>iJapl(xjwefwA^ms!U>gCGUa?Jw@+fZOBWNXm`rT#&tooINYv`KP}G;&x#Kf_z`7XQejc)r2J#R!vLq$Fnso^QcJJjb>5(k3=L^gC>%+xvNSrgByz<&>O3tx|ens^D<*(Gu!GA{;0a%L|=! zs29qrL<4zT+NwR2ZJe3Jvec-#Yj*v)po>ZKL`Q{cw^I!0@&kq1j}e9RW##Ib!|X=K zkzhJ{jZ8xJKdS-_D=<$~ji1k9wd@F{x+~|kV_TOUoYAUPIk#kp#)Kgd#%axWYi(e}p2Qm2;VHnL+H z=)U)^R>awPX_(ya@BiFI0vj=pU9%yr>kx0DLzH?MjUrEi%^AL@1+ELrPoy_Un1*6k zuVot=wLA$KbOLE@^1Edc_Wm-iDs}jrhOjgcPQP5wCsmljkTKfH4Y<9MU7CbBaqz0A zKO4eWKfjYTmHakSgEILsxIJxnfHiv+m$=@E8}W=f`JmnUn-dN_d0uJpr3SOz|F)lSytrP1{C^RzvU(PSMgz#xdJ`(mle_GaZ#5JZ9Np3JEe0Jc)uvsYwyUxo&D*(V z7)UO9w)h()Wd+vSx(HNwaF@UK7jthU_>SKxqW9xPBxTdz7!k@apOLf5lv&AKc@Z6c zdO*~_N{-$q^ozO`zJc{Gl>0{Vxxd5~*gE}NM}@1EB6G8ceJJk#at&afKDJ5{EaCpL zFnXb?du9ln;Ew>-W%Lw(0XWsPKYmB=6Zj=M9x0|xXj2SQUMr_gOh0NyUTsSLOZ9PJ z=8`V7`f)v3g}U%ww+wcR>j3s@&erq#DndZp>ZnQYU360bra5T)cl&30>vpD3!peIT zIM36c&vRplMYMXxI*K0`nMKlG^j6OZz1yWA>OaUX(pYhdM&N|HvU0O_d7W;oPdYmu zu94m8U9PP5zx@G7hk@*oJq&W!!WraN%D2XKg7t9ZqhPrm!pzCRd&w>x6#3kznV1c6CJ zW>uh_ifadtAh!V)IPnVE23@zO2yN6E4*+lQupO;*TlZk(>zk-n9vrO=o_4RsZh|9s z&@WWn&h=2ZH{#+w;5IaWQYK-&)CSllZUbW3`&^iw&oYh-4n48kV?%m~h_N@T7ue?UovWd})^IO@Nop0T_Ofzq7`FAQD{p^&jjv^1f8Zh}O z!V<9^0GP+fAp0$H=-x5HP2lC#HQ*uDp8Vi?0_66(qP{KV`k+E@DKZ`8$9obugDAPY zMlb#VZ;TLFmmHrDL7cHI>O&>)R!#Px@++!MJcX6ltM%*GT8@?__#ACuMu|y-V!yoB#~m!i z=qP4F6FVpDrSZ~B9#HRgi_wh2L1!(~noxeShOas)nZvRESSAhs>gK5o!bz5E`}}=Y zi+7*ZNN4SMIV~-PY1|%U68%KeWwpwJkW*m2T)d45or}7Dmq@bt?Jyq6Yv1Y@P!)M?N@y-=grYuG|K@t|i(AO1i5Q;^B}a z>-F5sQ!qXE0Co-#S|=HZ(bCGou`%g-KB5ndnm#6(D@BZX{L$4q-s)dhU_2HpM}o0u z-Rsi2zL!Amk?^X+R}6Jkc14r(dKDu}`G7@TCGpFG*5EON2Lj^QXC$hj$Ymytx?fAj z0NpG9TDE?>apqC--{~K>@Y5__FXHkeh{eP-HCtl_LJ<)$j;G)OlKHX%d$l_JlP9-; zC8R<){ae!dlc_;USKp0yOIzu+0Z^3L7@Q_dO-O|x@wo$8!}sfu<#A$v=8U?nHK*Z( z-7Y%z1Hy|lv1bR{emrwcd*@E*l@Fb<&u;`;*9(I>vFw``V9*nDhm7Q13h>$qpc=3CqupBp6H=A6 z9e~N{41*3v9^IpCbV?q4KRxusyegfd*HB1AvDw}Ia&2BN6wl}2ahcC`XX&Kk#vXnd z>8AMk*@e2_qcWeAVEpHqH15s***rVF+opf((?fZuRfZ4JMIJJ7T8_y`=qgRR{6`0D z3pYc>xktzEYoskI(hzPOeal)iCc-r0+s}U2*jlWKS1unpvJY1iKofrpNw(%X#+j^e(#+1D=Qv;-yhn!*X0T|7ncLb>OTLwGi3sZ7TLbxphB{G~P=QM}y|e0FneOi?2gP;;P= z1*g+EmM4Y;t-y-4-hYW&{P_BP@#NacQ4hC2dSdu*{5O;Onu4ypb=VrCkk5=kkEeLo z7g;}N&Wt{)X}``D~2_r&q#{k;nfjL^idvU*^yzv0h1lWDm3@h{(Y z8cz@+iOyBXHfaqUi1Ohkp~>!eez?H>9TYIFE0W_c-$X za+i=V8x~9GHZ=7@V>)}%+Z$s^x`K8((jDXi+vzh!%*j85n#1@MLmO=ALu#VCF-l1&Tn5K24F79c-Y=311!C+UU zrr+|1Mt@G2`}S#9jP@QWm*?NW)~R@vXA z()}Lvoqxy!6264J@{;q3$fB_X^n+?Ya?Ma=HPeG@~AybI%Hk9i|i07VB~g zo~+R1Cqx%SL%g=ul>O+-xusY#hwmtDYCFby^zvy@FrL;zO51fN9Q5(y^;?y#eO(d< z?~{h=-(Efd@i)Fzkh1@LLjvxtGyCIJnfTe7p!^8ce*-vFGl`Q)4tnlz&w02bzIo+W zYKS5DwX2jy*U@0n8m(9AFr~|nBw!6J5u~vb7;ptGSOb7bs+gC{Ypva_HJ6ak#Op0T zXmL!}XmG6fxsE4*H_XTUy2LGkt-_y<$ahpI^Q+L(Ls^59Lpr?i zN+jcw-liRdszV@G{TjjoX1n|%qKBj^s#8$FPWM+Ua%IZ!G zTVo9Fg$`p`3@g77nT=pfoRWQawx6&H(zvtMxq1GtDk4G8V7hz-PX+vNYM83rOm zk~a-&wk_vcUWEMGbfAD3i19|ZzOs{G?WOCs1gGaJk6-}SWI)(3mxIh5)Xb|%@GIfW z8a`A2PM>#Q^lDvY)r8|=3Q$4z#uGC^ZNFgzJ@rvcV{mYMt9!q_U~yH>b4E+%A+7zUn0wXOA1PD z)YLir_Sh8LJl^F0m;d44HG@WTfAxbk4eamu= zL^l*jH+fXNp$7K5f3@E!EiR*OglEz(G_tQh`n%!Vt7_GH`vODe7>uyrp0AS@*DXL$ z8!`;nsuEZ4cdaH%1f@}~ptVgr$xG>li8!qOyN#{9*vjVTS7!4h=_EF~C#c1{?3ZSO z?Ihvu*be+IY5O(VwM)Y7xycsB^+7=jok+3#a*_9HgYn!%d3a2<)OfUB=$WH!AYi@i z%P*UKO31&Rg=$+_#~ExZXV>paZ)lSFQ-^s^kWmX z9o-&oqL8asTYR(w-R{gvX&*i7hFn3uKSv8rW5m&%Buwt0*4Q`{bdQ#1ydk2C?EzsX zqK_=8#-Jl;6QMu<%RFfpTqFEsJ&4k>k-vojF2 zdASyO?Q`LJ<*{$%Y5RhrMP0phrm}@#Y}$75DQ~CNn$Jqgx;z|ijV}BA0tOGhPh{*O zaZ_)Ho*QDuhfzi(ATc25-FYE@;0u%}Q~|F>&M`}g ztp#O8=K*3ujo5-nvVDF5CGK2XXCC_@O|f~kx+sbH$O4D&X^eSoD__gU#|HZSv!O!V zZG7bcx7}g^BLZ%jN)HNOxP!(j=bVe^P8asHuD)d&Cyh)@v@pg*6X_)D2{8Go!_wMs zh<Yi!$ed{rMR~!4mBbp3BiNWcn7MJyMSOcRa zq2c$XhkZJdt(PlNc-IMO|E0eEki7OAspD;S(0YpUI(5ALdnMTLv;Fss%ilTOX^ZXm zrV<@oWB4LU@Qy$n5xAakVZ`KWzUJ;ScC<+`%c!MpW8OrCBa682clnnzrJ^^)a*({p z)>pJb)VrVWl51tZQPc)RSUwtl6LSu{Lz%T*j1|hN%Zt>&!3h<7)L$xxbSb8MmK?nO2;tGRCFcEmPG|CMrFi%@uTZ2e_<%$ zNY>M-kxECWscxQ~=<)_9D=itZ0L7W3xnp2;N$lD>Eeu7U7KUwRNwUpVuZ>mPa)N1S zf3AwF1V4s~OA<)hxg}RUw(^p41P}vHxn?Jbk6K#^3IhHkSgfX3o0%_!-KSf30cNdg zy_)*z3YrZ0>WO}d^XuVH^1+nNA5j#on=oOwABIk)xdp!g1rh6ip0>(=kdT(vzs|NV zWFjhj#n&ZhSLlmy^Z;!|r6!@Ms2yLAn4Qa4w<*Z-9LvaKZVBhAqq(67f{{*;n2$GL zr<>WkNHXY+PIva)2!>>cb43fg>QQEjd<)=ix2zB-(h4OvMGq8p4F#ZnjeqZGeeZQm zB)s$~@*St}wt9-j6DsCjdaSZXnn7Zk4L@H?QshjQ7Z) z{&KlHLPI6tvmc-9p}PUoBKC!WaUJ68)3q#zTTU4y`2S9)>T+@_{8P=INNL&m{kHUu zCxPCBCbno8vy}?cT>WMf7XWYo@5qEsfD66Krp`P$Gxd6qxD!X>b-1jCyrC^N>;nKRMkzoew2Y0Ny`a15+G}$a@TV#r#oSmnM3mcrZ>RgT?Ap9-CR{i@?UL%pF~V_;&v|$c z7~NUrrQHAI71wl)&BnNnU=uI`_fJT+po^;82cy#q;?Ljuqy%2FQ0qOW-jkrA2>f-} z1b(y{82!EiUjdr;skJ7Lim%4V?vx`f;|DMc*mms&zhIjhsn-$pu)FM>$w8C!N^nM( zayHrR?jG9oG_m0k%i^EdR%GgHeBDl&jX?GiYNuZ6>&3qV3jBkP$zNp{ zD9)4JV`SoqJ?`3y1dUgAnnTu?w^gn-_HIv8Iy#JKCfTMW{pMacx0;=gWrKLj17eJn}tt>8cd)x@pdM@Oe z4$P&R-e@p~JRhDHpF5dAVDv{Bv_gxz;3`~0ZqRF$ku)dxwvI<8!sBJ(r1YNYo6K;V zTpK*+J=j`Ett~EnTd@CuYc~J-pb1h>fn)_dh+kfFXF*UN#d{skut(7 zzw3SuUtda}m7$|kngIF+NuR+qAM4&YzEe=i;VaHR#~H&Hv48yi#T)cNSnm5L+mpb= zhhfL5NvXBDL&{_%Bf}k04lI!ZpQXx;J8|aNF_=d{o8;l$Qyh{+)lF82v!SAM0_fkK zV;*3*b4Pj~*tLW=N}oTIOcdT*D+jsmd<7nA65Z)#AjL(WHKZPxt5zCKwDQpt58nU~ z9Fs=~%4bR|o{qTaP5Fb4At%%$U?}Nxy`qM%*1<{WH^d8Cl@ukpdQHGMPDQWw1d6X% z^1+kZ&rJqxnb(6RV$}5@-j4vPudnEdh2$j&jja4@K@}R^0=KRY@UdljFn44MKz#w~ zLkNgt^fTq4#P3Wc1^&`RPc1<2Habo54~VZ?+n(T-lE6~@inn48?{Pu!%%C<{H-GZS zit(T1{GOiTVVm<@Mc6^UzdEd09X+b-S*K8;GqENIw51FJABs?$~!b}&~XcOV?_#d&(C9> zTBOyLzHl<(*rz-NXHa={qs4DHD8I|q!m>IM)k}jo(Md+uxD_2y?ZRfF1aDhB#xVUc zCkWez)K#86>^p8!__B5&bz~j*VO#5+b@nBiYU{+Y2g9LzlEgab68llL>=__Bb3=k@mC}M(UL=AZhMy%}PI2i==oIw<$9hGj$M6oUw zwVxJ^hC`dd6y>vT>XfyQmWGkrud*lUy2Z9WLc7F*bto#!P@&=)W^vFD4Hz{pnJ>V9 zJlz=PhkF7_prOf{YGAHG>WR!errLn9R}T)l%k(%QbexHMa?tX-@@hkJZ@W`LmGS0Y z>!sEt+67eC%=;3wL_!CX3TgD4EHl<@%XZo{bVpU~`gBVEyBcXew$&Z;09@(X2Lk^^ zhuglyQPjg=72G`Qna(jfO-`o6H)aXU*qRQK6BusYVC4fEPifHOS~rbMtJ4>m4kyQe zZfv$StRN4Nj9STLv_tB$MAw>u`NIyHB5v)gbce^}$aEOnf0Vx2IN$I))eAU$ zj`?MJ7s&L*6$r|_F3om9ChtHjzJnxJsYT#uwE9JhShSJ?`7`l^Q?IwCTG z;rw36fn;sq{-5uP)fIduHdfxQeATu6^Z^j8K4|8? z5}jBUIeH~o-#%4H(+rq3Z(JPTC4BW(@4Iijsl|#ixLr8eL8>Y4G7kM8-4CkOKVHU8 zGXPTIJ>Udd=ntL7DlsZyIQRuEXTsARYrN=HHZ?L3$%!ZE^@$-&|1CsMMGe|@YKt8@ z5f4vWBQ-f)09tI_iQ+RShLa~zfx^z$9O25G)AID00NZ7sX$U;3m=WB8o47?cq>_?X z6t@p%&=>k(<|;Z*KQfN{emFnsC4Y<}i3k`ZG7wDq$1Lt%GBQ!5;`i(~QeCSnm%7L} zMlhzc`b}za;bC75Z+<*m!)r$on)Zwd0r~G+rXrskm&RN{wCHD>H^HRJ#oeViH#XP) zh%Gp?E8ixI#BoF#AFMl-A3C+2GwTb4Pfqk76MPLR-#juYPDaYo#8M1{QY%Dded)`rv65#Qd{K8g{BucO78)GdpDvMwgJHiYC#$uQLl zKl!1XvYGUl2wvQnL^oUA{@U~zE@b1YzkqVDs)ltSBJGK?dQejqa=9CI=^y71I1_(- zj2=Ac~oiSg{_W zqDKY2bQgk;J+0O>Hp#up2sAb^d-c;saPW-C=>0ykzS<*TtddK?hMHun118E+BMTXE zTG6#y4Pj{l0m&fn)k{l;^CtzZpOu_Kj&IiK&J@V*o-^{!aX`%72j1S>5ja z5zqYQ)2|!KR9k!zzlg%3o^uYQ-_xQN zArG{<)iO{z=rN#dcS-O7=RtuX9Xlb>Upc&MwS>0mMEzm@>UmspQCl1STak7&ck_^p zn4Y%5#^YjR-cXrFB9~Lq7vU0UrG<5=f0S6fn(>7-)>ec}k10ly zJ3c~JC*3pvg&&qe|Naz!qc7wO5N%BZ%Gy%ni~HR8)%3+-02O1xPM7``EPOTiuJl_I zAbH)vNe=(eG_$7D4nzM4Ysjp`jt4C%{IHn8?n)M&ur#Am%S z?fda^NoJdq)&UU8;#9eA|6aUxmo@uO7LbNP3TwE8)A{ZsB5^I*N}|?N(lC+qS{`q# z^=TG`I5aVkkEldn8-3D{^D%@s?qw^W`%|LZnv!a;8D^F#mn_7gvhA^B3JN0e0v-v$ z$5&7IhV>Vter%D8?3P*c-X;i^w$*7MNxV^zG$>fbEn^4!>qf+0W-U$4gw9WcDJ35I zf<1iIC09luW|fy*Hj|LWxD}|H1rBwSOlr{Y?65FEHzct9DPPw1RRY(~$Ba@L0VI0W zYopsD>8(@>-F#MgL;%KxE#lAy9sy<30Rppq>!_cAzDR^7`e(u!AWWs}rm)22U9Tj$ z!1ND7e&B?!S3C})XZ=Bz4@m!Wgs_Ia+fV4Ht}?IH0g~)&51cOOVhA0FgZ}>oz6DM{ z2VMsyWFYF0oZ-$r_RipNo3cLnZ9)}{*q|$j@_Psp1um-;pD!jA_J1!XpWgH)uKqyI z$V@&v3FqO z72Qlbg0qT)sg8tK&|r(IH=kC~%Ora=vR~&a9upKD_iIiYlgrD&n(y@MwE{5=%xKdCnXpbblxx9(+}M z2~vo21$htM6Ql~G)f>?KU8H{2Dvgz7k*$+U+`&snlF2HT0|3iLJhj6- zr~OOfSLw}VT6@#T!e}Xs=_jX?Uv7m8;Mf?|FxM9%k_ryJv1j(+@CEw^ z`0@{B_qDLJ>l&w7LW>c6mJ60TgPmE+@rGY2*+u4y$+ec(pvw!(--*meNIV4H{R|on zkZaS|gI2lTq6kgD!~vka-qM1)%2Fv(6;4=wD}Acu`;Jat3MI!aApZ?}@zed!w(^Dy zVk2mkUC~7#ph4Xr5AC=f56rY?3I?47hEHCT9aI-F^^(a=sSO?e9KPbdZfVsP>Vlg& zXmpfiN2*l`A7du!J4SD~uWcJ{7S{;4=%$qdf%)^@RpAs}yM}5e9F@0X{mMd~#4)?N zpi&)^hj~*Xn5aB5+AJ4Bp58)c9>9eQo*>HBev%rCc$cEs4$uzWBs83}&KoHwlJds2 zB0wl`;el}g-BV~=+Ree?9)*n|H_^hz9QK*eOuMts^K6`FWQjQQMV`54yJ#D8x$PHQ z9$>sNMV8RV-D_#{J8t%vo`*`RA9^1lKsr=F9C zL0f0NP3D8?Ht?!00%1FkUflyFNB6b8A({LAl(5`-`y%<4YjQfjfg|p}K*5InNR5W# zXd4Nxy;~hWiiD&Wqz`U%MR_Y-lPSb^*qP#`lVilf@5Ez{d#VO)YNO_K$#9vHKp2#fpF9|7LFG5gv7%{Rv5} zW)wIXHrEOjBlz#A@*3WcXk(|lsh!7t^njwhdrx;Ee%*TE;ttnT)~NCq>t7Vr`j$I9 z?uj}j69c;RZ?jE_f)YFs!5&*9j5fhZ#iP!jRhCmjQ3^DTkjJ~V$!Kr55@c=eL6mDd<*oN$?s+%;|(nlAY< zT``7P{(K)>)j>Y63d42N!!r z!5YRSQU|?XKbO}FrA!W)m&zJ1194k|n$``B4W2WrbVlZh?8+w@l(J)= z7p7kc(-tW*6U(N+6_}r3>Ho5+#PJ8S!?&y-D=8tcL7x3Vl$?I<lg@B+K!;SDAuk6elgpDynd&0xO_b~WxPjY=N~ZpX^yX9lbMq` zdcRrPB+>0L17xCRKSkTA7K%JFIXztI%7$%XaBOLm<;33*5x**aqPAX|4pOHP9F;)> z6G?#<*I=O3$|HRh03hlksTOTqUniLc{Vr)G{**^0AB>9OSyyH; zkQ|;O>T-`eS4-rGzed#cs?(58Z6ZSUgh5~Tv-;0hHSMEVJ$*32Z(@B9(>P1lhL^Db zp_ts%f29%fK9OaB3S0Urm?X2~Rh|w;n&>}q*&lxwF_BxzEj`xvgxWM;c*rHI7LJ^q zr1qzBt-N_W{@%TK)Oz7S*+pPdrl?iswJ-zHIAMEZtUu+}b<8z=B`y*>nDNV>i%0j# z&0E7RIUN!{S^c=KR{l=O63gyB?)<8i#Fss5=P1N+l{=4o^(=D)xDtsu@|AIWA0 zHwIGmf(qwr9qj$TnmJ#W1EetMHc#_UEc*oVFZx~&RexMESPaS@Mjp* z^sodix5-a~>iZzgn5##<2)NE&O)Wkd!7X-*)}1xJbQ)P{Z4(HelK zJM}GP+O7Z2QW8P-#HXf;r%DT~CG(iT5mo|4aG$lz;1=N3pqJxz8?$QtNwaiOkSVxE zDMf%QZz;~HTyBRH0Cx-fp&i=mz#=+yoCEoE5;U3`}3pq`FFdXZA6qt30nR~Q*94S5=eO(xIdeD-<2wqOMZc$w^RP8(B<@Eip))bj^>zNwKrd4J?LgJ^eBDN<^8+*=rz(`3-p7UdB}ScX1E?G zr%w_oFP%lwDKyEVt#Ky`%dZj8gp&+Z+DwM9j`OTjcK2J55@LkL&32FedjH|eC}y`( zCe5jLnR#O&q5!#{hv&fAQa|j0UbX zya%*iqa10!36^9wtI8P&@M=)!(dBzU(v)(*euVj3uy<~4tVX9K8WMcB!R!s|{PyTX zfxHi3&K49lQgUjk#!%^i0Id}f+}Pfow^brE+I`QmndV%19w_=g-S?>^2#C2B5#L`C z#6%58@~<2E-`J=^vVze3?4U>gli3x={1{4w8`$F~-Z^S3ODJH;NSa&JSve^2 z{ZS@H$QKpHgGPm?f>V)60AkW zJA{c4Bxq`KFIX5FAe-#=pfUuT`I*PqxeOglouyMF__oCnRusjKIl-C0gF%hPC)rC) z$g;%tmg0~0NtMYB5B>_VWOZ zo`8x~?q$XYJ`tbFp9F6b%_-0hGDgvg^BNGcI8q#%r-|Q4uQ`bbSEc>z62)WExm0)D z+t-vFpSS&SZmGAz2{h60i4_f|HImxF5l$=TB0Y~@&5nG%PR9N103nj-u z7)2}q&{>rwlfNQdWg*yyGDan`SG;iU@EVQ$Wt3WZXZWTdX|N*hYYVXAfEfDFKDY1v zt=8n~`6%nhCXv~b5|$_|xf}-Rv~@bA=h)4XYrDeiF>=kgE9mF;ut=82dMr!sme<_H zY*-s4x+cx_XMr-sMf_^?xfo2Hmbmg4A&qs$qdaC-N-pd#%U-U-kbpal^$sG2uSP<- zATO*h@s*w8880pIG(@XT{nJlp$0k~qAx!w<7)q<)*R#pzeZ&0(CbCfC{zse48u4m0 z6||8xE;keuYVC+N$->DFBo4f}R$~@WB0iU4x7?JND7g@o$C|p!4+%*t76i@0utra^ zx=@B>AQeGBK`O{a6`;)~%ZzfsB*8{ujNqk?=N{3~EJonhZ{hyMgQCH@z->)t8)C3`W<$F^FJBb$ph?^ef&)ys2c zHQLCW*2QrBBPKo{IxfVb3qc;Z8k(;%`YvZsFsf~S+s@C+Hapf#WOw~BFoE~QtB$^O zEDMK=S8&h|zFGanYP7OS*>oza^phb^ES7G;0;(Aq?p>krq0xYu&U>%f45O|yPF^=3+%T8TAkHvI`vzxF{v74SOpupsbwnDXL} z%QGepLsPb#!&*{)h>}C8&%S~tZR3Qgr-wv&aQ|fFn(ie@t zhidaW!3xU5c2pG109;p5)M6SJqGnh5h3p`(S`}_yhG_hd$e6vAmeLd7U?Cbhx-BI# zkGh$No$rbx(>k;*8hI*iNVru=v$;3fowhT{{-Z9h(-lhWVIEhdC6M4HqFY-;iq4JW z$CO~pM^NRPD9b4q7{C-E!Rc7`!gW)gcAOl-yt2Vo=bBQUkWKv_uiN9?WmLTci|taf;~5o~XUXMt`gYKPSQ@Atri6h|?JwiC-aw zpZWjo1xvm$p7_B2Gtv8QgBRZt=K8t5$Tdq?`F_v6FRdTP!=(w0IT7BjmmJrH4Q3$k zVjz(Nl7m`o(T5X@5|Cj=AK0WU-)Fvd+#Zi5`I3D8A=92EY`-!lszuyw?p>&McnOwg zvH(JSKe#`ay0{h)h+5B9GYpnV2fV3WznYkRNmQB-q|~Q!okAwnRsFzwVx1{2Gi95p zI#XCb6#>uWcnHqA0^>JsWR?!LY`~CJO1SzNxezbtcv{h+?<4)7Rt8XMb z{d|waE4(s&AIjfIdB?{pdsKhQ!cFphx7@4otKvddc$0P9dC%Jh-g?v0pSLn8OA!?un>Y;!HT{wCXAJDG7BwEVVl1op0nL9C!VxVUAcnK)2`zz9UAoDZIC zxjeEmY0;w0E1f6r$L7UTk&lCiCh1{0t(LK#q<^U1h56eK;$}b7)GkkxsWu971+#vBFya1gW zap^LQbN4Zjbs4E=TR>&giXoi9&96-GhmeXwJT$j$KdRJO@LK(n?#1D~9&*#1q5ThB zUSfNVPzayMExVGcd>gDR-*xt;1>2Zm=RMkf z;7#!JvW~z3EZm`c>rumXf$7+J9cvCDOs!qP!#Z?_A**PBcGhlYS3o#%=5776p10#U zED0cTb~eY~`a@eWJp78fZ4aZ&{#lU|I(`ltw(kC4f;tG*E?xh~hoW@8^sHN~IL0W` z|2yrBOP86zQEi!ygr1R+c`A;h$Zm;lX^U`H5Qe>VGFlb2B*XygjcE219jp zxA6VJn5EcOtiQL8^NN<};rI1FJvmw*DRle>HLEl2{8!s#(jCi!AMx0I;`4A=<0RgmK6^n-Zs#uxa!#@dv%dKM*&U=i8}0U|2B({qu$rdn0428K4KYt z8X7D-YHmaNvE>V7EPGG3*5^GqN*=&4Wvq@BjO0z_xYHbQki98E^U_>(G=d*!@yj;k z^P<&1R>b}i$?-Q=B>;i1Y*;(~(VX-&8m^ixQ>~E=OS6aQn{j3T*~(j6sU`0X5t(v+ zy2wGr{UyHCgL=>%@9Wi2=NhoXWP#Yhi`@9rbM+ZgHha^HlUCG~C8kClI;hQo?-c|6 zi(Xu|H7V}4F>{^RN?)@2x1V%jB9OD_uQ%8^?&Sz$l$mnieDS}FT{g0@>^BCptCi`L zg~6~pLa$lNu3mFtjH_VdqhI5$UjnvKB9SH7bq0_)(!E1eg5)tSCLEj>F#qO``Cz}t z+-0>g1CB5ca#fA_g{PTUTp@+ti9|*P-)D%wVqZl08nMtH2o9L*348zxc)hGeDhwNQ z)LtjV@?-b~p&b!76#RuQg&9T4U$W511j;*y2NuGZW{HB>Di%@5&q?c!HWJGK*;4f} zaB6}Hsr)-9VC;FS^Og3Gvf7eegg3kt#>Po8UQSuk^_t`XHqyX&h#e6iMoR1l=ryC+ zDOK77@A;+l{^6%RG7l2GA}a2XbASOthhGbjy1q3b%?@w)Sj;Q$0E@W0Z|$7yH2RG2 zmlNH^Lj-NiA@FS&Wao``?}{~l&=iv948!}OL@I@*i5VZUe*kMm6tb~8Q1$4F_qgT5 zGKz|2F*y{id^l;+v}t>NRRmN0qOk1qGRi&FMA%Zgf?g>CKVmiasuO$5lPXY<@08fi zJz%O}rW?|a7TrPhZ2G9TMI%}4t%ows`ph?IpMonrTpcWp!>W_ssEl4fO+p7f1u7&W zFJE*AxXj%3AlT0uQ5Jy=2!tF%S=RgTrTUHjPo{k?XESbsr|*m14eUts~gMB?dYJV z92y=Du<{op&cg>Sleo{*Rw6t!yuL>38HRL`Ec6*4q-L_mrjx~N^n0bM!7!s&BkX3> z=oLJhFb>8~y|7LU`+=n+l14&3QgR76*4)S6+<=pxvyPmA3!jx+-I@?!MQjoh1(9 zdk=zVGDlfbb1fJqnHzl9*}^+e;1)m$o~G0MbGmrcfYlBul|==n=F!s8zj zwlw{(>TCNC(oeKP{ogNbmGpH}G;+QU7|B<3|63?1aGV1yF_~B@_nGESnG;&#v5jrF zNeS!kzrLQ~IHX&OgCB}Qc&v9gEDR&>{xb^?p4{_r00tjBW%lze7-y%Ca+fW+B9H|q zgB@;9VW|il8d$1+d*U~3)AVj~;Y{~ahh7k<00fvB>-21E=YxtaH{8D8U`Gc%dE$}X z_fpV9?2Y7~HQ~6Cj`aYHr$Ujy$%_jhnf;>Q<@0sYIJ`cTs<-mq z>_L$$;OM!q_pujj3*%YQ~MLIW3tAw3Gy z-KtDy16Ht22q#e16hoBqqBl^G<_(2CtspEgUc#13c{befq7X-zT>CYBa+ZecMF>*e#qQg3;+VHw`ln}m+ie~&p`ThcHOL*Ho<9?rQjT_O5*gP0 z<_4vzi{P6INyKLE)f#d3s%G4x7})i4R3MwUk)@)K~A};c{hHHitQ% zlj3Y=Vm7-$Tz0$_HM*k^_uObOR>g=li9zcEr&@xvR!;Bh`MU{nVJij$3?3oRt?!Jd z{E!=$g9U42IXDcvKQ5B9r@f2Hj>=^Nd2Tu=Wg|dHWEJ%y$g{T*f?$*ry}_ECt*l-_ zts%{IMBBdI)^;|N{mtTil{h#UsgtW{*Kj;OUsO5pML8*$_wVHJyf8%IG;8{Q zq&OAC#JWw#ec#_Vj5^a?i*T(CMXn&2U0;e>U*euzxupSBgq~ zDBL!;?J%qB$g#_=3zBaM`AYYxW#FCyf~h0BT!1z*Td5XI5?&howNbg5jWt5nJ{!^O zvgZ%E@S~zFTT(v_dt0BCRZMa84<)+TmDs;xO|esZH~^UKYzDJ3iQEi>1{BvSUrJ9? z?>_M%3qXM%2!?AeZ6(|34jc2q^hQgU48GA!r=)+jP2J1UCW zVqw=%6v9p~ufP$}%NInR$M$0D$I;&^J-!Djn=1iiNzmngpw|8lFClUScU*CrE-Y^t z^B1)wd%i%~^vV2bkRWSo)+#FO15u9h>)mcIf=*DF(&G<25FT`#p-LAZW&q?1{YIDz{HvG~ylt$-N*gKI zywSxR)kogJ%|#joI)wFN+aFwukyV;hmjE%3tzj|I@__+^rUE@166eGz=VA5VI3+|% zV%%kWiY0%`+r|U(8a7r6J0#=P(30-<|m77 zp=qY!%(ZY|OHJ?Q^}X0C8P6Fm`|Q9(W`l_T$Zvhm`wIrA7JWB(I`v;@a9$+jSA>N3 zBF$WW&%RJ`i+mYG5utxjI z^U2SSMmg;ZAb)=yssYOH^(-zupW`tz4=-;4Axu^t1MI^pO5(UcMdLBSeUNm5@^hW2 zjvwO*9-R13SJ*JC)CE`KamZ_n*4Vj7%>#-YWZB1UKnM92m-)BLz{u~P)TbaJW-h@| z_Vw+XLmYhJCKWs$db0<##paoUWO01M?0%b5PI{3uc@JyR=-F9+8^*9`@{|3)MX+c> z4*KZDOs=X$)MFp~h|jC5byy4PiGP-+@!mC&U|pY;QAb7%FvF?$9u#u)9o69*-}E6=%9gD6?-Hfd0OvZcKr7VGgi(KZV7gmw?z zd5Z3M$s`*SZEx936CIFqNCzGJ`wB$T5>(4&c2Ne7nu+C^zee+nugl!u9O3lXdetj^ zzd(uA^0xz*s-~T~%-G4%6Yb%=5t5;P`?{QIte8q#Bm4pNLU*OID~$cOe}|_LJ6}L0 zW&iMYOmZ{DI6s0}F}W-$j118#MtP52Db*~9hPfR_3tVGd&d*Np;z@N0Fnn(TWvs0! z*7dUrUsj$R21v3w0yJ;3TgsUC)ZVau@P`omP3~@K>2Kkh=R~( zOyey`VvKU8onV}VAxOs6pge}1c=`i0{KwBb`U~@|fM@j<9J9ZG<8_;7<|>Lr@^VkF zX6-nH$bx{3Hv9Rh7nqIm>4dWtloiGij&o$jMeM7mLr+%8Zg$fw33?vwxn4aowOFvq zThv7oF4rNeL>gpoS26b3Q55Q&*ai=qH`{f~JhX(4yD*+t7e&WV-_wsIc%>)rbU9Dz zi4G!pL!fTiBg&!ciW{-8dg+=O;h)a9jdK6SfPRt~h}@!%z?LtWsD;dSf8=DSS^%51 zO^!r(DVh_0h_x}o~|cnqRZVDz5yKmnNHv)JvjlK z#sgl#w8R?Xu45BFaM5yqq(cjXp6_CL^p~_q1OO`YB^iShhFC3faQH>%#-&q`aHi2k zBPsH8rkU2Y$_)LdU$8%r`GIq{r~z$`FjrVy=UCyzp-EsdxRvavAYOEa3pLtoL`krJ zwmALgG67oY;Xo(}@TQq1a4I-NaUw|bUSDlbS?-{;tSTn-y)?Q%6aasc<9XnGd5_Y- z+d(;Ki@^uRsW)Su(O|Vi@BZ7j@_o@qFZ2pfxE12=;UPzF8}%YAC!&?;wT~ov+`U^t z-+JS7>YDWmo!YY`eNPMby5HlmGjkv#6BmE>_Ow&-GIPb3LVg7JH>YG|cV9acX+-R_ zevnbfkfqSj`F*36ExhYBowH%3VoQ(tU2VDw5KxlWDPs+4!4Kb|B^1eQ=IfPRS%baY zO=2~E-K@Jof~|>IWlnL5WFa|^_PU1Vgqp_V;#|6L&ZgfoES|C_y0Zrqe81uu1@diB zfC6&+t)7Ey;y(^cXLp}qw_hIS{eRnBoe(!3kS#O|-G{SETS5%ZdVXl8OLaPkCl50o z(MJAB&7$0s4RwiMM!la=s72wJ)PvtnV+8H=Wz|hSgH1z!`kU~nTJ`#r>vx-!Mk%%M zc`Mc-5zgzoA++JM6EPYciQeBItKh|K2VPq16WL#nk498dJUO#;U16NkRsOJa z{g*cpzot`X0><$d8mugep(+yl>g+BCh;hIVF5too{p6VJW_Z<{dUQo*{VHlwusxPL zpiiAW4B4BQEFxC%@MkD--M6#yZhBbc!z<+VvjvZsv);qw4w{cK z%wstFH@1}|x<5X0l=4kF!QwSI6{t6YxshAKKu69M@8HwG_0sJ773iz< zv3r)0itrUXcSh?7pRlB_y`OzNG>PllYdEHz18S9I<_roC5<40NvhzP{0MZeDs-C?z>EBEVl#&s%1 zcXUTeS(4-9XRVXS_qo`dIi|xWVfAH5CS=PjK5Tx$y^nX~3Me4`Bi40MkSt;}=mcX2 z3-RXvP2G(_z8(_$P=K`t^a~5)U}HG3gDz&X6_=E{w3g83`a2v@Jabjnn7Edkv<~F) z{j`x2Di2KZMKSTo%^-c^@DMs%itG0xAxD^OmrdZ2fM2xboZtw9r6SbZaB}8pt}v0; z)>P0=f6XR24t|W#;enleK-pUOm(0b0TDXikmFZV!qJ_u8nB*I1_?-IA^zCxJo_ozi znyN>>fHZpD$|ATk9um10wYwg3#lD#?lMAmrlZt$z>~`0G8D%=el4vuALy7Y&H#kwk zoytS7G3n+Y3L5sqX$f`E9U{#64;OPusc-DpVJr54O#)`U45OUQlC$1+8*@uI7MqXd zJm~xAtVub>ft;q`g|aKL_Hf@~XO&8Id?m~eIh)j)_{rGI8CJq51n00WLb3 zkF}OC4i-pgjH{OET0tJg>V5s;|E3mrj?KRscq-{9a?>*?ka89;C3qLd z7^JI&My1?87;FA?EY4`~fod)LYxeR`vq6vSPN&oS*^KjuQf{+@WGL(7Ewrd@=}ZAd zynmt+&QDlXtbMun*5MDUf{C$UxQbB%E@cJig(nhjH! zVpr8?n^p*u%2dX;hw=ugaEdoN6?6@d$W1Y|kSvgx>;GpLEKV|8K?hG=JDrowG>~%M z8{WJ){NbLdW(7;c8ZDRKa`yBrwr{+dRhf(h`DdN>4@G0k#6&T)W5XU!s80bI1ogCCKEfmEEmCBShF9&h3%6F4*2xN1y>=uiK z%I`nyDZh|&foU3CH$pNj_omd1v%A7R7e$u#xWX{S<3zA=cw{a##I}_BEdl$)k+K*`)e^RHh_Jy&I3n5e4tQ&BxXd`DC^+YjM^_vdScW0&2XZ6bEg$b3 zbAQYUZ~3zWFs#knk@1U~keJJRL&WX4HXE1mucQ2e6}hMx1T(?1FzB?tyeiI!WLVCA zWhQy!7ox?kJ4wn{_oQ`Sr%rr$CempA)@&?UkFf8ZJ1LTWzAP*M88^f?e9p&On9Ys5 z2q;zl2nL7nFY7&Ivm-1u{=tcYfbVVC6)H$>KbHzIY_Db?)C8v_6ep`IOoM~-+#$Hc&CE; z6HD(t#6f2gwTUNyC`oit@)Z^HNdA05fieV6~3CgJD*0} z{`18wAFjW$S)h2{jqQZeqpJ=}l^y71`Ry%om*%f&{bGFaS902l=X#TCPC5<`N5 zUhu*B9CFJx1b^4tScnp5Z`1NUGMPe5|hg<>-kY6zJ>8 zL&yIQ>!?Bffm+Wop4q}t4w2bvFXYi`!;$%~DJPe$rhWJwN#;p^4!q9Do>V$UiGao3 zumd{M6M(wb4_?&8Z82+;pq6f(@?P&f7Tsdxj>vR@E#mp3^<@}xEkC~u(H@4v8r@rC zGqs0N_3HeRYo7xgle3fp<0-TH%rq2-=?5{(zTHvAMlV7P?DKJibIFUC@Xg5>*|OvNy1KnsqWwaMY*_-**z5K6mcc_SGs zjzM^te#kJL9#ip!1Qpi{)SI1ql+R$S#bA2eoYmBiTWLkOp-fB0D=oQM(CN!#MyZl$ zYKQEAW+W@s+A8A!z^4=%*StpLI%wDxlZ)13X`Y||SPS1fE|nBASnABQYQcM{pH0c( zNk|e|Ka!-E?t`j%?>(Qi;p`|Qs}}FiV>FvM&m8EeFI$`fz*kR+-r@q7wx`n*`lDq? zJQ}ELsQ-^4Ej`J^S@3LELhxze4{BbuW;S?Hic?yZb#iuhrx=ruWY4pm(}bjt6_LGx zi%xQa3c@c5nNeHgfAI6wlqCXTZpF??^C&Yg%c(qA=D=$|iA%d6)1vDhsBI@7C?t)& z?}x_PN#!!)dzzxV>nFbf7x&#&=HW1cPI%N{Njz2`zGgf`tyt@u$FS>v^%;EWyrZmJ z+Dn<*d+0VL#<>2T_s7!iDRKV*lAIsM6<&}MryEWhJRDQYj_zP?Erk>dL8A6QHfYi+ zv7UjJI){qN>v*+$h}QsYsrVmT66y+#d_m>{RpJ6w&?f4q5g>!S{C_@{7@<|N@PTQT z@-|FE)U@VKI|MgO=T#kGl<%BlfKjZS)4`iIzJN@(89Wo)fK``bSuZckT|fwu+o{Xe ziqrGnZzs38p)~=G%wbMuTaddAr)7K4rJ8JQ9U(Z8WpI7Y~~btKPEWK4Ce2uwv`8?^|kN{yOW2sCE?>m?w)pUj<#q z@as{WYPGp#K+Z)rsY+1{xmvF5p#)G(Up6LQeWG|Qwk+&;`mZN}W8vYKFp)Bk`#0_7KCUH`g$SjA5gBQS8y=tay@~-4(6A^hGJ3r#75N~x zq~XucLO_RZb7IVXul*otSbuC)ClpP_Fc{sGBO1tC_?^0ek{Bc@V4PV!6OLAqrp!5e z6crRjl|C35nvqsB$@?r0{e&d4RdnD7CcvdL*HKE#E@?crxi@- z$!5|**Z=0;EaN|RJ(`rbJP}O%9WNy9feNK8?!MN*t9lSx`XO@j{}$>0J>Oji3^zRD zwjuvb2NWXa{#a^De$2k$famx_u@q>3;-H=1ofeU8l<7}?8`;U}={Pq?&XGk|)+^k# zYpW)@2NYAVWOR9bDeEw4%^X)3gi0in<(ZfN=R;r~0De6WsFGE7a(2H1-ShZb{6V(* ztmngfhe45>7TtHkyNIq|D~!ldktJZI;%aeSFb6H%WI$HY+wCFe_%fKw=8+qHx`hph zi?8xpN_QBM*Y`bV;PMdm`}Inu?|*3ZS=?(lEwMnJO-4g9r#qU!{L4s?;_S)W(6_;F z5TxpN83Hw1Xk1h+HTg{S0*ZRq*DV^YL^u5wB1@}mIU?ymPE{kSugLy(Sa>HWx%lvW ziriMu=+AU)z(i|Uy^GHScJ#}}`b%AX>9fMuL0F6S#K6hOh~bLG9|sY!W>KTc#%uj` z#vakeNfb2gNxT!FmDm4E$fwK%ZI+J%2*!sRdL_UzRoeI{{->*2|7ExdhhL|GB!?S? ziQOkC{FfNNwf%J4^OYc_$}(!B%a;C@Q!Dd8`3c)c9q&Y0BN}ZNpZ}>-l(-PxuM;+E zIi^8Yv_XehMSv|b*je$imUm@so|6O461-{{pbixLx@#hk8-p+e-+om`1sWf%9n(A6t*xE{klB zXrcXd)n~+GsV9p{;X8}n#ys!U8h%QWXiu&(U^Id0y4tckjP`c#g0h6MXi^?)n;AHl|u3~7NedZ zq*Zt?<=+-Vw60Os0Vcx9*cw`Xb}FPxWU0S3kWw#tHNibASShUj-PzQd)mAl4GHsmj zr}BwDA}lXq<$A*O$2qanl%b|D^oWKwl%;jUAKgA?;cNDrrCI*<;JmqkihKR){@%IO zZ0wljlfeB6`+v#g_U!rA^=qOX3m z(hoD>3en>>j5FLVf9Lo(HUSNFn<mCFS=PrR4UF0fCO^}uQM&t@ki+iCBSoYp|Yex$=<-Y1I`6(z?wXuIG zTNRN*baagLdHSW@EGayT=p-$2umsE>Fq?6(v3yZv5AOIVrvrd9~Lyc1;a zFc9Y`>{cYP`~LT@(ean9MwkWDXO+pP^`{?s;A0sYb|t!v&lQ`TH#wD-PsZ#=(LveB zvx8+bY7bXyo1yLI3POF}a}#Inu6xv?5cz;r)NO_Ggsd`J;$4Qnr4&N8?T&QNQk<$3 z8)@KUHFR6`-M$a5uogU{#<7~J#~$`s4igg^rTcLB8$7eq6EK#=Q#JQmC>x%0%XpAr zfba6_KQR%`FR@g99_+)9|R=<_x2)^7CtOr4PIMfWn#-oaG)@!}UnHv`GE zW{)I$3W?~!dPQC)a?RslNpTlPDyOld=f2HwBWF!gYM=fi%+c4LTD@iM->9X)aU_|f z4C6gh{vi`_-QPa$LVRKb`@;Vj?5JRtpr2cRR@~c6N51EqUj*^ZwL8L}_G`(0E9IbfiIMn=HO zk6uB(#Uc=&r{+uYN_!Cj8_|Ksr8~qvy`C*&9HqqOV$SedL92zLqGBn2*}mV@s$2O4X<(-*qw`I~dl9{Bx^Eu*a6<9+B1PX_$=btHPTTF? zxK+l=UUDOO_xyjE&v%B`wfoIpQB@kkSsJ!uDs<}I9hPnTUl=IrjZ?HgDWGoOqm3Me zxlnO)Txe3Z_Y2OwA@yUcz@j^*`D*jA{%S~Titz|`2M|2H2^A!soE+=~^W1ego%!a} zFD$|gr^xunJZAq(v-4Wp*$|bBhNgP0r6rY9dxZVmhF`FTVnk@$8EbX2XyOc}+noDi zY=l>t#H1vZ{Hs=(j8?g2poN_9)4ESHC!;;>MhBOXt+jm?5%riPU(HVfewAfa=C6G& z#b!5#rkkF6@BL9(IiamF)LF3>uuO?3FN_y&v)F&K)jp_oWiys222v6r@uFx4UE_q# z^`*`l>SU?SDY315ti1Rwqx>N!n4)jxQtxj7+P(Xxz@=shOC`dD#Uw9MiTc6ad#iVe z{uWl4DM~6O_sHJDm^#sm2@-vG)uUi_BD;Sgx(KQLb@+Y$D_-I+y$CqgQ$(httQ(iVLJt2FEljGNGc1+2xM3C>ljCTJg8{eLulby$=C8?K5V zv4McpXps^mN4JyCFDOVe>Fx$mfg#;pjz+p0q@@Q)cXxN6m)|+(4==|B+x2emXHVSE z{oJ=^g3DA2hs`|$+>O|@<2JNyr^H8kbL(Khg33FVO_!W>y0_UF-hktRWmqx^b^M&! z=GSK$Kv^=$cX}%F$@b?f@2>g6p7EImLE(qxcibCLA;(wTI~3AynG1?D$#mk@%?d4M z9!btDuVS{$q6j9xsn?50x4ZY1S!n{ewq13VCM74$KtbeGFyHzyGkohe!;Fc^vPhHn zQayc*zc<$g$416p8+^itm33P`D*R2WlT6$E;^ad%WJ?FXL5r5Fs84m@B zeQ?W>41iV2?EBhyLn`s<7OT-1ss1-%7vYANo?B zJiPMw#hQOoxIdJ|)TW?$FIc?WlO}l%5aLbso90X1#?*jVw2zIGR?Bs}Kfe%QJLh3_ zd0n-DZQFdW3!jWtt6-S%;}Eoz3hhnO;}0GF^n&Z~;B}Uvj+pkhb^l~PtoT8YAzLzKm!2@Uf`Dr@$K9>~{J74s&Cih!r@bVF zIL&cyl4JRJ3%+VRT7IgGoynG*WUoc)?!NvL8})2$MR8KzSS}RN*+Bd_V1x+dyH_lW zN?D9<0VL$S4lBxe#PPg63r#f;{B8lK$|9M6uU(;%Dmj_5x<6j}Dx9EL=ThyUn?HcW z46x<;Gt2%^)%_zl*ScKL49#e4iqsFDyb^EZcV&Xp>uYk$kY;kb7 z*ANEAA$|t}BxtGPOdr^%1>JsTs$u^X3;5|QS<9_fKUSn4Hb7ZFTK zpq#e%^r_;CKa(}P-wnf;vn$%9NNkBk9d9<;bqfyqlWd*d;`R5Ke?0$(TSk8`I{jdF z*@-3wu3%r_3~BOmApPpD-dE=(Hy9Z|bqWv(JOA8GBxROevn?ls0SbJxpvcJn*y4h* zK+>x^x)s;dxn@jda3;&5N&_JZke}bDI^d9>9JTUdwxRhWqP>hP`I(&=jW#IsLq9+eB%#7y!}mECE3F6m}cu+w$+p{(R8ji)s;&cKOmtJ$@4X$HwBHt4Ew)NHRE2I1`RKgv@BHz4$@fff0w?&@tJU@ z#@x~8AtTm$JB;w|DYjWlixBT_64~T(8?}teF|>Z?c49Y3Hm%Cun2|F zSTfw@UWhFrKWP&3M4OJJe{<+E7pc2GIt-H6iygD-0-A_r?%rV)^i>Xf@YZJAu!>^E zZwun0?W_&61WL=Ts%wQW(lFuuvyu2F*7zlv`PT^?@b{rqGM_=mLk#<~0r=FB*>?j9 zDmzP?ies|mMmJ!b)A3-@Kr|A5!t+0WgLC|rNEC512WOas%dYXg6xI2!va2QbR=Y25 z^(PlcIG4)lHH@3T3x=qs-5CY8y4u{?klMFqm9}<9w+)`0}ngrmJDCb9U4RiZGwQqF)w1d5}u@Cey z>bH*qdk)TECYGV$jsvoYB#Q>7U9-ttUvet<)p$!IZ8#8&D}Uw^9SXTX{~pE9?L9^R z_?%*~_)J_$we*iDT^Z|zaSLgxsKo4pZ=tKfEgqm83(@?k7HkP!l|SZX^*mZckSOD( z*WI5WTWpOh>OXKA4J56x#QT$xSdq;;jS02=zW;8F;h_I@bl3gMS_a2bMk2huuPb0F zF%z)GwFe}io8!CrhFb)6S~jOSw%eE!qx&gV{iEA9gQfiYs9H*!Z_7Q8$}UgZb4|Eb z+Dqjb*4(pooTvxHwbVDzu;HJDJI5r`{HRW=ht(+tcrb=8XntuFPji9QWxDyY>%v`#pXZSNK!}0bjEL8{fK|3awv#m~*$u zTMPD(Mb2)D=y(wZAF01c01(auZr>=MWpso<_8W znv2rM{ZJX+Bromn89x`#(}S_z^>0(B>8Jf%9(`Ms5Z|>dkD+So+lMWqNDlJLBU1j{_X$Y(4 zS`=y*)}DsDnLS`Hy^$N@F$scsMu*!l`ATPgq>6V|ql4tmv*n$eQ{+qZ%6 zl3;zJwxG09)*E&YTO2fLn3~BBw<~r->d6R7neboUuhQ#4aM`)o0~qexKMZQIb0YP* zms;9iyD(PD_&TB;#;T}XqDSB&=vZ^8A0H0hF|A5^H#p6}x|6T}bg*TzG?-!LKb)3C zfwIUck=^OV`Vb@(K4d6u3FT}EGuaeKTG}vXck9BxT408M90v&;k7vF&7@XSvF8X#q z@ma|BQ8PWf<4UcKIec(H$kKU2fhdu1bD&M*OpNN@;Uc|ln9oOSw(54DmEVyIY$NNC zw&^K+yIM>gaIkRKbZEDbsTtbAXCzfgwd=zX!teTJlEyI)a3-Ks>?qD;?j9BfjQ4W( z)hPyko-lqA;Ia$~5q0$9aH7mZuu3A#DJFaowY2oTaOz**->B@@ zj-;yr>ngVMmCLs4u?|xhX$)wuomdIukq&A;M2RZv+}-`j_`JL0fSf`XtndY}cz#x| z4M2%I{H!a7C%FOCv*#6u(7_xD>(=%IE@_^l*&g`tZ^m*c_w?tw(zri8I6^58%f*>J zz^)4J7m>$Z73Z39r=*YFoF_R(10jVbj`x#?M+Kr3#20M8&EAHs>?-Nd> zbeU}ZrxqjBWS7ffew+oF%SfNY)NIe%i>iE7NWMy;7;e>KBaZ1Zet+e&A+(U+3qKG# zC_niIrsJ68Nm5dwdTz>->5H^d( z1TI-5UP?gYXYmIN#@UAkj;lh=r5>W-ono+P`OU?dzxBpm+*-jsIzE>`IjFRhXMEtl zG7*s~>L)nMG5X~b^4m^sF^S7%(MF%^)Vk5!V|e_JxHsm4_R@5pzf<9!aQNh4uj>T0 zUte?GCh&XB?JG&b?Q1xd5py~K?8r_K`Fegfw^=pgP2oe*>bD%GB5j@VN-V;@rYM;V z;gxvt3y+-`oqs7+*0bH*>w9MY+W5yC_&woC`(Jm$c3t^{!Qv4&%?1PGu^2VJ!Q+oD zIv+$i03xX91u4PM<0M^c^{>{j1ej)gDYAX`iSE;96yv~LS65B%Sev1f*B*K#jrsXv z6*@?&uxUJ>99Phsi78BI0d1=)8)x>P*J8v2?)hPV;y=LCny`(&fY@lzf2s}56P$iP%?jH@m4j_;65ndpS{GyD!TD*l=A5*XLn~ zIg#)SM6s-V7qi@1(@{k5=m-DOP zuzoLHO{^{KLpwtR1N?7L5%@eBv zOgd5_O#a*5!s;l2fR5mefU%Wksq zza_;DN`h#x+9^Z1=C>Pp@7kefjk7uY50{kW-8GtTaG9;ub{2E zQ5g>uy!B-U2s<+=8)l8}j~pzfMyAW!a!ZLqw4BBR&Q)FJ+~%n#>TN;-kG#bB$XcK$ zQ~C~#<$>dk3kLi&HQ|ZE9@s&@)Zf6xAy4Dv3`rH@6fRqB{o|sxN2*I}`9U^Rs1bWc(o4@ zctP&cbnI_>wde)?IF~<+5_b*LSZ=+2|MFs3ra={e-L6HXPd==hRi>cO_C^}1b6+#M zhn=uJj0?I;04o+g$y;s!=^(jplUL{t4oJy2&G^uS8F2vb(2BG={if|Oz4=9(L-l;2 zm69H>`YAhZz@VooDJNgSf5wW<_>PvN63r8zr0Is@TD}l|a|r2+YJwMT3m z#PN((gW^|3*y_q9bO-3};s#)CCxeTg`*nDl-C)FxPu`u)| z0CnDWf>}Iyow-8cgp$a)1>D;$S7k`n;7<+LuS5CfKhr7Czw7X@=Sm4^k5~r;v-H}B zywP=OXk1*`I?4_=9Wkz3+vgB zUnBDGacF79v9bJ!fBR9bIchM8cLjA zwsq%Eph69ULP2c5q$b~lo++xbFSlkJ*pOLEh>`!*I^eSJ?7Z$tqSxVmc~`@ilnJ73FvaaJ-#EKVqj z{$#s#G7@c}v{@uviogTV{TVbx;8E+9?V}}lV!+zE2mRS(SWMfjXmviDd@kWNq8=E$ z0L$oQ*B7i%2}w0^Ux1s)1dwkE-?gr#ADi#G)EV3n1oK=a&fU0CYDe78HFD$|l;{`7 z)wMKenQS`Hi}kf5(`#nYLM_bx3SpI4%6_+`0{@=UJEk%Ic4N)=D=+(H?clsgK$EiQ z)nsBdjgcQ#=iuPi>Y1e3mt1i6;L35f+I?%ME~UwWZf4A}KUQ0S?c>(cNZ|Bmmq~{n zOGT2gwfXPcrGWu?HKvOH;j9nHYVF5q^h%zt#EgLcy8fktURU~E4Q%_mtBsjDivC;R zg!V*l`(9D!r@0y$#L3?R84Z^jqB$%h=m$xHmd4lYVRWE=ikUA`Eo|?3r2J4h>0e|e zM&uBu|!e%@mm2Rj+fqE2LIRSog#eYZ6M+x9o&V|T@^zjr9n{&Cfu zspvPbFq^hVO`N`nQw$*-qTk{!Y`DJmp8JPgQ<5R2=&kTBK}dh@a9uGF-|;4U#imiN zmqn5;^@jlj(#GU^&^q$%pM)%ZZPMf_8F`QFUlBb8rv79J2zQEU0f7ZaU@VO}&gE_+JUiIS40`sf2 z+0bf51E8a0T4nV`IIfP76B{dD?$wa$1;fRgTdfQ!6;b(}1r9E60<`ExT>ArWk$)P| zJNnACS7;0W;dx(1Xz~81z}DiVxA}@mTAKypd0r^1J&dUnN++!xU?maxL1*I*sB^WK zFhFzc0jDR-5QY-DCZeAWIX4dB=CiAOCbbQ-=MV^@eo*wr%DXWr0zK9WWVC?e9kdSU zHYg^NpDmJ^rXc4+IiY|)RDj@4VMXsOd@inlu2CIE7x;BhV59O{a(aoH(%x(O72kVo z(C-aEo>l&>Wl1OCLN}`BTt^ODZC0X6l7IQ8$doY%;RHS5Q;tfv(pr0qCklfl(%;7D z+e=fYMz7{}w7>X|$ch?{KwDl17H10PatGxSzpVDU#JA`oFzEhHT?lt`zFWpv3o%u2 zWy%EIFV@Tkv~&d9O~P*gy@oYD=}-OVJ|AVs~OsSblnwrmC;cRhEq&2$bG zCs*cpF-T=JBzHG;&eJ|jp)OWxF=Pvd#KITSpm_iD*SW&unre^u{s3ol2c(}#ngr%6)Y*m!{2fK0g`P-X-I zDat!%!iC@N>>kZSb7_oA(u?`3Te$J|xNp0YMBhr+^68eU!?RXFyhpDdPSff<0;DWmsjq+4f~#I!S_r$tnxS z^2_SiTln+8yb81Og1z3tbnaieG;6QclXvWrhf3A00arDbd3`(>%p-XVUw$MyAG^3W zE&v(X+k7%8B-Cyg@bp^Uw!-jxmLsudu%xcx7vyE;EzqKX4Br=SIv7kik0z5q#dWjV*LU`qQZK^A31{wim=C-myUe12=O4R%UZ&&J6T`6K({ZT+0n+gTWvH>zTi%>vhj5 zaL3wFQ0$ZG@Ejl>=$YC!$n-5e3-GAh59fiNeJemY{7eUr1nIum^Mn^6Flt<9toa^a zEv-aJi<1A=iPJ?4LOsI3h(Q>D4U5K|{jqnn{gE{3*b@#no4ubdj7R3H569sD|6jt* z-s`6>E}NKz0fSBe+|KmX&{YmSBD> z`_V`(RR?4ovHk5rdXOe1EbYlgr`gvZ0Xue8%Xx%(tLrKLT6Qm5o$d_+9qQn z(CchW-)4Sct376o<3wkQ+pS#x(Wjh_EThGd+w1&o4y@dXoN+UFAu!4%3&G3F^(3$a z^xLRG4UGV=G$%4h+X+C@oON#r=l%P_<+|d4&h`O-*5dcyN;i-~7FO9op*X-G=fCr0+%j6XgDEv=fzQR*94qJ%K`xw~Z=* zFAEb$k<_~zQZ>_WFi4&Qi+n-5ur9(2{OB(#@h{L8(h{|T`HX5dTD*bqt~^?*;a-xTIt==zROAcCJ zj_eHmmstdt)dK5pyrGj?_a?V3FPjFGiuy)A{mqeN<2&YpzG7?p2WbYC`)3tMcG)Gl z!8m9+p*8Cdv7L^m0c3L8HuUevOF^lQJpfL^ST(;nq%J7$-D0{i{c!&noqqG&zLi zRFgH1&is@NGSMU|yCL-ZyJ9qKX&YQZasdo5quAFjfn#^jxR7=rv33Nuy-CQ;2uzfQ z@$1-J5`VgWX=s-B_q?eLcslvzi!UQQy{JmGyv<^}bf5bxATZ-QeoGlbxoLV7KV!9X z6kUXifCh%Xo^x;91xF)~6emy0{sV=Upn!tRe#w#|&JA`lntuP!-3M;=_CKa14g>@u z0X#ey8be*io!*$)7SWUnB{G>6!}(M~0Xg!Qa=}oCRhe9J&Qs@*Y%+)jdXj*n$yOL~ z7VtP{DQ5`v4`7CBbIM#BN4i?alb;sgv)3sLKJ~WC9t9w%f|99y4qCRNXaWb_&3ZP% z^A26=Y%WfYWruFbL3!6skyA5*KaRpH4&8pUj0@KF->{vt`N+c>fJou+JmOOF(hOAr z0)MSp4|Zw&{u#C+SdzqiR_v+knfN1GNpLukgEmNt>#4k@m_Ar{$&L(iI|q2Dzuor_ zF-TaP|11eZ=c6Ucpn_#Lb9d<;HVKx+=ISz!EXrw2Ttk~DV8gpx0zT6LQYz3W+^C5^ zrV1mAYS1!77bxJ{nNG216RU{EQ`~18Oh1F!oB5+(RfmgS=bf&`8=xJv-0j>`W;K z8k0IZJY|u^>Ddgs3bCEIQBxAgjs>)4qNrpiZCmbU@y}k8UB$QDW{-)rb>F`$_5`XT z0Ns1%2;;X@cQfUn!za;mLw+TS+>piL^^59>dcybDZ8V+LVX~p%OyKYjTHgpqXtQG8 zXYDS0E{BC4#`MD6+DEgwSIZ8yATXT?lXKvNd%h_E=;vt9 zDbgL;)eX#YPW%Ls=i@86ryW*UTlBLq8z)CXxWUZb{Zm|E_P1EZt@aEK>FzD=C5r%8 zi;YD&qP{n;5C2S{ z@1j}$d(zT?I~vt%`~$6B2dB0?t6Fj9=Tf+>b?^{s(kwKcNcpR>c9V6t+Jki+t(jbi z8&h6sH8N0AD;;?kG}9Y|Cl;X0~Yr#)FC@a5E5H#t~No_mnl>2n;f%U}MpCR}IK<@{TLD z*_hRX7g4j`X+DY+<~YDJg^*gDfeHTmC0DB>*U!V9aJXE(C2Di%+Ruw`^Y#Pcc00b0&mEhKc!0@uM6n4cc5$FGmrO^V38U*UXi|H{Hcpc}+f17#H z%$f%=uwR~M_C#~azx2B87Q6q?<1P7_AOW8V){k&b1VZ9fJb9yB-Qr9*#tIygW1&)z z@jc%%RS*IslYlmq-(%LW>E_UY(c$+)#-ne(%#-UbUU`ruk#U>E=-d$iw=vh^9nEaB zGq*bgBG{<=wVreoFIs8__0tcJ@?AU49gqkA4P{C6#*jjUZvVQ^D9@gER;a^#eOycn z8lT||Xpl(VyA6WyY*0@veN9`=ifpUqO-C*SjeNPxF4kl&J93<-X0Fatq zqvg4cCm1aK?sR8DnVLCLavx{Qyc@=`l%HF9=2S=2*6e-r`zhLsP4q~RcL1u!V+OZ7 zh^08s^|#?G#k5pG=imFYjXPp_32(F1{m^jiOmT7a$gnEL3uBF{Xm(TI9|AWFjG>} zJhaBUvznv)(8wBcyO$gV#8)P@4vpD0A#<4rLY-KAIA6}CJ<%5cg*u4+QAjw8X;b|gr%2nc8D-HYgeOC%13AxBX{{jx~WFe`v zo43uu<>KSJwW~L+FQ_U0Mdd{9(dZaN7VX@V!rD*2k=7#qZq1^b%uXGTQ89RZ8eF*)AD;I$sJ<_^QCr43&Quz964Np^m#~*0Xx6^?rPt2`#4% zwM{pjkbyUCYX4XSdgs?Fq)B$K5IGe7$b4TU{8{R|#LI@HDy67jnt5ZWmq$veLa{nH zuy+WIRckZ;@*1s#t*~8O|5SZdT(1(P*@GmNt@r%}(S4|IbYc9n?mi%0I{ywdwAK0r zW3x?H`#DcQ2O@Ug?0ah3GqT$V4aSOPptnk+^Y7;mmuL=Ra1etG!mC?_ns%B>)M4#6 zZ-W=Upf-bYh+%5rpF@DmxtvdxxD=bt-BT+BF`D2rYd)_#kfjh_8p!J|oKauCN{{Oku?Pc_#{H{N}(+O?C<1(fP619Sca1}k~REjVTOHrk&KRF6L z9eI@cLj@07j|47+@zeEUUxgM(j#wu&@?b2V>d|TS?X7$!@H+279qQWFYfdwg=^0yj zKrsj;XW-_@0r{Kv0~tinXZ$B?rGgaK+%NIgH&@y=91$jFZz{?c>+#$fTV^Kk1pj(t z|Ck$=Oh_~^dcPh%3zR_DX%_nS+maf_K$i)d+)K>79a#MkF9hVdSd!ueaS@QBqvP6J zW9lzp#lM!O#MRUFdtmUEb#9%Iew%*sbC)T5iCe+_+LhkriKGRcN-&sYLf4e??$-yJ z&_82>%V9vCIGJeC`>p*do|@PD&*aZm&Yo5FiNlP7ivM1P3d_GA)wi1|s!^XMZ;zP2 ziSYc*33W+&$(Wu2C#rKV2`_$@=Tme0ov%LxySOd0|JTTs=dXf z#YhqboBY=>OPpj}oEC)9GH{sH+Q=UIjC<}%_df2%h(t8UTxOOjSEV~1XqkN9yI(E^ zjKT0kVtN2MmI6SFMMHTf2lZ#KWi*wkETsa&l9uKynOfT@5D+QlIM3MiLcG-<2Vb@qO~dckpC-c(Tg z2N$J&ntkNqa#-KwB?ugF6>VaYa+y3KJ8CUuHmQDce{;azFd;pXc%@eStcR1=f!aMN zd3EY>oBXoMI`G{+mGi&0ro7rNfiGAm#`rz|$eAIW&dkpLeYRw(pUpLzPSDjJcX4PAtfb18VTR1Ah)TN(Dk`HOS&Dv2fd)M`zCmM z*v^9|aA_doDv4-%66qHL>Z#DY1$GekSS!mAh#;?(P`Q{snD(Za6K9~VZ>R0HSbg_5d$|)4vJ&Xa>pp;z?zkxyo_(fj z9f$eIo7AuzpGU!sQ_T&N*&g<=0?q?@I-644$O4)!QV8$ows%54R^?S203M>Pp7T5_ zcr}%bF$@Ms25R@tE*;qV+{_p+MVX^p6&WMB#IWUB&S)A4qfxmcO&_f27fX zyPr>)%DYyIr@4Ome7jP=7tp7iMqPe;Omr_1KU4OT6Z$7soma=6kmCXSVh?KccitJ) zgXeN5G3EV!!cPQ*+|i@f4eF}-t@pKN#h9FL8GWj`(_aO)@*_(`NMqVYT*&q>Okec! zD;_WOgCF+g47X1KH7h$ua7u-OIlWbQ{w}S5ub<`U>SvhmGrOxk-sp92Q93luqaAq} zl3mXupJr29rl`?1#$0gH{voC7?!xox^k<%8rVL|OCKv$_h!6$C7jWnhCE?`@T^j=$ zoqM>Mj;AJfce`_oCDsqiGZ%;=tX)B;ZP&M>ffX;t6}b7#+;^#Z2emrg;KMiXz)Mjt-kGgc733 z(M!3^#7$B-M9$A$wKyceY&l@h%C$w zllPxZ{CoIpr~18ssysRyr#P|=sOnISvc9}f$LI@fg3mJkmCA4bazRIPl_!L%6Za33 zaX_}28KfBl8Mg79Gbov-M%F|{w)hbL&@Y4IU3?f`qRMc{`H&7V9=_bEu|uSdX{+iO=TPN0|1&^vUp}^s{`0qg}+7svfZc z=8?XT+yc&E^rNg+nt={$EE2kO0=($r!?8Y8go{fZHtm{D+6{K3gY))eaVnufl4{Cyr+zfj*kS4}s(q!4N!q;Tu90Nef$1Y7EKy@K_jWd7X-kWlX!-*X zC8H2k;V zsI(PkrBXZaY|wRek$Xs3ZQTWPPa_V9{WnfLC33VKC_iIAY|D} zAkx0|;+di@cJ+cg!}N)>~t3lV^-atH6 z39o?R=$5K=`#dBP)b$$`!GBEyMgahaE7N8Uj>f(B;Z!0i7s;=D9tG0l(ti7Oyu)c8_w%-sEwBKE>V6~J=ULMJ z*n^pXbLQq;o(qLbj4MgwEy&rjVof+QzlKyqu)PRDJ@{}F5F zhO#}{!VLc3o<2Pz&{$+q$cG6LDhg*;{%3gRQiu#pEY-k+tt6L{^a+E(B}!F!NuMvJ zT)m}%S~au){|r$0FF(~m2X1H2|GS+!8Q@Ts<=ZY*hYd8`V~eHa=bseYrX58SoGI>< z%p$X|*e>TU6oVG}8PH8qM)VTD==;9EX^ucOU$OcPD4i?-a3hiZ54Cx>OeblaRRQ4q zWPApBnc7aYqxus#Gf$1=uL<|Hz@e*UmS@!^Xku{+Ayu^IHtP+kK4U*(A6!WD3V;d1 zvVI7XOvJ-UbHcxbCG(80he^nxEZ}wqA&zY+!eNH`#Z^;48`Sklz}#IIYxT9~(G#I1 zUG(63DW^4mc~0P`-YYB7z!0(QuuGRdInVY6&{+AVl><#eQGW3ahea6(nh1}-D_FMD$2&+o<} z22%Pj#sArja|OICzalkPa_h7XV|setrP27GU(5??+4x7^g%Yg&Bi@PLaWKb~o@-rq zzw4~YX(BVjc~k#fB$reZ{DiHZq7rE@@&u;su{qt#oim1>o8k~Ox`!uri_#R|`98_< zOncaFJc?zukRH2}$LGQGqesJF-xsRTzR*!6p#d`GkN|Jn`NDt<&6L{Xw=6r*(vyI$ zR%ai*%2*lJHFuY3N8}jFj?Vw%Ul=F4J_wA3A&`oqG8y=v*_HZ5zg_9k%a=6;NNbAc z4g<{#Sy(r=f1YX%_c7xk6Yr@hgg|MxuPS9Xn_zD%R2Py6nJO>`Rm#aY6POX*p zXTo!ar&MxjE+3m3J}*|#z%mdWKa^7;y1bmZ9*aw2gvrt4+@ZMndRrCLiv(~4p;`Bh z)KAgF*b}7&tfUv+?|7rQ=4wbXIXAv7Ou8k#BZJAni-`cC*K;UDXTz$qR=PmrQl-W3O z04VwiE+o9A*>dRT?A|n0@L`T#m>HkzvFT=ys~xaw>a&*e&>8ZJ7*6)wZ`LjX26DzW za$=Z__IBX_0=U*Pgi?td*f9LL5W_6xr@)uZ9$={U{y5FkD_VSty_@yKDqAjX#~teN zynT4t|Hn9&kzqEgOo3%}GY&DdVT1Gy(E!nZ)Ba&36BGG=m;OwtCI0L0QERI^$ zp@@J~g}b=FtaON)APLc>z?Vw$J@wEX5OsV2J-bB6>27uM;`>eY1KxS1?YNFE!d*_~ z4d28bZRh-Fm=+}_^qz;`~YQ=Yx)V|}I|N64U*S@ldrMbdlm z1lWXNVB}a(PUiO?KkO^%Vx`vg63_)^<>gbJJb5^k{UGs?SU8y8wT=>IBGCOU|AEa_ zr$njjZ#xRp3+OeR_M~AR6&Z8RKK(5DIJJtFI}Qz0Tie{wM~n-oH3i(64i{Wi>2+V} z;9+Hoz}cg-Hw0hF{H%sTqb~iCSknEF^3G0_jDRKqNO6w%6EBy{&vOoF<4XN(*b+e5 zkS|6cAA1YFa^zG040{zZBGRk#CkHp@r&a`QywIY9A5>hSUd>|@gwye~GHTG`GYPhw zv*C|4fg1>N>&=upYYof_JHJ=2N*gz1W}z^{dd2kTjC%C|8uVx|eHW5QopR^~w2=Y_ z={%O|Tg4o;BfeoC@iRzoXsvkzi_Z)~>g{TZDzzdp)5*DPY#S*I)?`1H3j9aaaM-aD zE;M(jw7!D$0NHNzT+FkGO{VzSF+<)8HB{C8Va7baJM_(0lXvyPTBv@~oDFG?^kvhn zkC}@%1{s<`Ao;&aTJGzc*9UgR0sOE5vwq+BcVhuZ7irR@(^0I3K|m@#!$cEX7s9vw zLh%x$D6+*3E%uxW9g-?U%HG?}%Tws`FZmIsT)1Mw+O-%7MPX=~u5T_94y~2$0R%Z_ z|B@j6>vjH#9<_FucK!!#+YCior#W)@c;wNZ^^Xo$+Ah>TUs7k1FCazMy?kud_33t0 zt)3zO>uwBqh_|x?j}EXo;=W}ez@OgVtPvd?YGWqzgz(J=Ix?m{KyB3uGaP`vI3s01_h+f z)8$-a3}w}!kM`Cl_a3GHy;2O|gBE*>=^#wb3pI%@B(^fk2zM4?xGwWUy>_xXGSVs5 zW*r$PTXIh6NUW*LSrc{TWPboq6#%)wP!u zDH7d)*DTEvRLnNeIKZI=yZ@qaL$9|xI<)?<+SW-g7xzfUBbOMy=89L-@7amZpq_9g zla?a<}V0Y^g$rP#u42@}k<$b?nv>!&?OByuVT04A<_vk^u#gUg{)?!1Grw3&M{> zT48W#_@mT)&xON3!+25PgO>z4DiR1Vqw40xFUD@QWq5PsePVVDg`S4iE&}3*UB&Z* zqbR>Y-Pet038fR5K!GvOC-NErpap2thRHu4K?Qx%r0GY@;MF60fQS{OXbt?M2MRCJ zBGHRJs|^(D z`0jR`#0=-(&dWSa32Qo^FK~A1HY!9$ma4)~e0?zZP8L zFM*lLl<`q8Eu7XCa7dm*_zf4&tZINb%5!`sbR0un=q6Dz5&*N;QTu>)xooxWk*(KY zO!sm4B{8C=j$vO_JkO|Hd`X*}G6bkpvH4%o|Kcnr*}^Rrfhrny=>0LKN#JI+3t|I8`JCD86AI4|ypI zNrFcx_p+|h%X6Y+^Z?bJX_}xJhR!{UO@|@Lll#I$>{`5b8_}8RLwi_%!6>j|{K?)H zg!S#(?LK!31G*8S4> zdueTTU|zuVZv@cOcrKQ8`89DlsQpAnUbrj>401XRe148ZATY-)i=u-?VJp7Cq6djL zxqcl;5n>oe)6p#W4$DYeoiIw2(_6nRMze$Va8G)a>J=TuGrc<<8)ytN(B1j%BMNH) z&?MUGCdrZ#1`Xz&2RtKk|2pae)-*^Y-RKMKAaBIQg{u=eBtGUGKxuonVAzz296%f4 z;1?X`G11g=yT;Cf&F@1-B!E3 zk4siOqISXWs!^Ff>)y3O@HW4^=5K_`!vBde+JsPvXmyL3NHBZ52%`-guF8%F)h%M9 zN%aufP?HgHr!#uXkZ7be0hAewiUHnHZF!mbQuQE-c>9&Es(OiL)h@3-DSoBDtiBP$ zY{2k4OI@2LgUR}-@cwK%KS^YQ9Ia7-& z8wC~U`3{p$^Uq&B=N5Lyztnr7bK!G3EInw~ATtGj`unPJ^+jplAh}u&|J+q4``7>C z!vBf&UTRqutu^Ww_uWM}jsO$KH~le3`D(e_8wx((3xvHkgtUcfu&UByS9}GHOabQz zPN=BE6CIEaxqdcTQsbh~Zt(a&e;~g-yVEJY(RH#`nwL4W-rJ@ta%bW=XXA65b6$FM z&N}%DO898=-4>6QI^Q%W@@1`Fk=M=eB?_sZ`UNP8kL~^d?Ilp$1ScZ%O_DK%;JY6P zI!Gbt4TtDH}WiXP)PcLL@^vLt|(QRO5p zaLfT6;rYXoA>M|olZrYWeNs0h-BZyiH;i(XSk?K1s%3Qq2}qO14D>4AjuOp!Twt); zmd<^K`xD7&%pLlRJul{X;>cUm!?)m70W`H)2aI?y-{j(FI9quxtxCaKBRRwXd>}Ki zzV3iVXZBo@?(B;efwBgq;W(6@0Qu{y)8wFm3%BE3pIHz~nOAIt?qUCi>_1>!7*|{m zZ)iDT6N;~+O%X7Z0vHH~vjDexuQ8tI;|M+lj`0UMCX9DgsMNZPZUhc<$#8YO!Vmd8RZ-|3h9nVNXbU53uX`Ks?9vEd2cf#|~ z)Y1*#g7=5oAfS}p{nX{R1_M3zJAH6>yL9Ql=Xk-x=#kkv2RJmGw2& zz$Vu*?QAO0e}@N)CZZzQ)yORr{R0fDM`Rge_nEpa3X0Yn)60$HDV2)t=E(ajz~Hs~ zD&b?55TpQrKE2%sXS;1{H|Z8+&}Jrn>Twpb*J*jG(Kl10??D|3Ubv?M5JmR6;b(0C z5o6a9mW#9ms}aAkX{N_?=TaY@jBXtHhU83-J#LpJLISjl-ayL=u91jJkiWHAIjNzU zQCnIlPqfEY{X+IDM&-2KM!vXWyIN3aA4-ZG((`=X2=!gi0QH2&K%C+QE=3+*+yc<+ z$QQ?DQk5tz+@IH+aZnN^ZO}+>JK)CP6k|(R_H!S5K@t^v%E%SK@owcCpre!&CQ#i$ zX1M6b(H!qpk)uetGa&cG)lte}v8W1|$|TL z*+o%&5GORxvjXIZqCH7d*&xCG1Zz#T*jroWnc@4S0s2&~U3Y^BeO9X1h5Od1_$#%8Kh! zrxuIs!8ucbimscRd3jkML*uFr0pKqH1&UyIjg z6Paq30dO%^PQ*Ik^Vc(g`emkL2Ph}LsSZGzdz<1Jc#pI@!@eoB+M*Yfga3FK zWOv`g%^W^Lfr9M=+>F>3*50+w28@n@N(}(XoguaN;nSM6?q*U{C#^={|`-X9TnC0{SUuYK#7rVDQW2# zkd_8%kS=K%x*JrwyGt6RL%O>`7?eg*>5c)x=gjB#eg2rWa5-GZJNKNk_p5eRxY_O4 zn&Q1j4==BJ&pgf^a!PG_u475I2dv}gmiSYOLgM)mKgF$$Sw6H2KhE1X^9Dyt<~}M! zn5{Tx!gNQrFoHl5$@=5YyOiV}a3HCuRCE4jj4w&3c3xrCcu}z7yd=95o<5~5DU)Mh zU;l{Igm+U)wE1YowO)y3l+=7BV^^CMiD#A0ZHoeBjaM6ZG?Eaq2A4@Bl+L6XSJaP! z-BAo8&}RCKF~{RyKFWNJ(App6!!2dT7ZwXJvQYTILKgL??-%>=y6GD9fvW!mkHaCD>`ibc)=?@m~HxfJav@s$MYKSp@ zmgApe8h{3Ga+!o!QId8yWTRI#gnIDxjcPP`t;MLO{Gr`z=BK4Ee%{*|hU`l}&*SNd zf>}P?y3b?M@4A2~ttkeTl%PUV3ZR4$NN*NQO>YIOh~2|UV}$uTzXG0xi#IyP`DVdTukm zl9xQ=&A&oa@}`fwhe?LAhwqp7dB}p~k2Zy-l+(GTjmu^KDHu^_1*KEm(*Mo#Z6#0< z^4}V2_j0)uanJCO5(UaBL5{=ozA#4F-R2y0dJCKZBTSN@p7~6RIqARow(2q8@*c6K z*j{Lt%Ipy7+s7j!7||kdg9>5$u%k z)3?uvIDvF-hsvDGN4TTQ;;Fgpb$}UJQsVFbV5n&@66J%=C?7~TN}cL) zps12MVHxy^!KG!im}(m2;1weQZ`KXV_)NnpHIXnP0f)zfzl;tpWtNpCf=1a9=NG^C zsl$OPFo5^UvNPvfg1*G5Rf7c=+G&Vs$RwpC5Sf!f)GQS}mi;-Bf8kFqA=M=jG^ttw z&dXj-1huX0&FPO7J`1xCBa)r5>1N06*IvDtS-m;KfdXa*8F0BbDRlgT{V#0y3Dh7lE;94ygx? zopO%9iD&S7_s}jq0pMk03V-ePU*NhGvmbo`rCy(ssF2`Db9+#eVV;?Z#GMZTLkt7g zn6rA(x{O`aEN%oUxwY@)S_%JXo)JO|p$hBZ-+v7SB1c0a0}D(cmw)%y`zl&lHE(76 zBQfFisF-?HE`u+(6_(xR$k(NbjY`RBv~}!Wmg?pVx?l^Ry!qOuyQRCqVA9`F*|_@l zXF%;EJLyvuTM9$~Na)cFT3~ScVoTdQdq9`8pXA2Zzon~vJK|6{0iy2me&`2uU^E5c z*)JSf7bR=YSfqJNyj#L3BK{l!X|#kr`~(U=a5NTz+3 zjaX7DIw-RqI!l(Q*DdPZcG#H76JsJ--mEjpX}?xVV6v=~SwnWZxhieVpWI~v7%V<3eI9pz9r-<92ID#T4|eqY5OzhL zRqJs{_%I`>g?md0sTvA4+ILruXkG9Y9nu$QrCQX3p5)HK-_7NW;1bJI1tl_P4=Mq- zi7t#hd8A_62Inzd)Aj`53GEMVGMqt)lj%$#eDz|S^KC}xXMQ91a+lyahQ>26SCd0T zS7^NE<;#N>8@uFViPKoeAWGt1OVf*x=H=RvV==^t3ZBn4heoS#(oArN+aG49mSmYz zvDgbtCmt2GzVwretibuYRkd#R(4iMDQ9KZXiq?{l`Y$OcYMVj#lYDL0ohh1)%72v$D%%qgYrA(wC9onC-cqj8jpg8&??N#1A z1a>56?F?H(by{kPGEzz|^#KKv%$U9}VZOghq1@+L8X#&P7aGY@iV4DS8h9SqiSijx z-xW&08z?Z;X6MIkZpv_=Y+#AgkJqV&0SG?7I6)z+)PxCD9QW}n0(@=5Q;%Bkbg<5Y z(6@T>`quSR$&g%$R@w9leh_&xGkX{+AiqwZgU4<>z@Tg}<}&`mj76u}QQXn&NK)hF zyg4PjDAkCJx2HzWQi-W5g+dyxDmE@))y(K76C-vqM5@8RC9xo+<{epbCybU!`a z%Ba*th3?)o0I_fN*$!`l=Fx^f&F1l)Z^o8aSoNs3eGN3IW*_~qROO zz+AhB5(rQ>;JX{{Do&yHN=}yWNhhIKjX|{>Y7-`|5;^0IeTN=Q$pzri$x{7+;R$d} zV;zZbp~49e7E}!~JFu;c-jo>!g@zcB`S6U3I+w0Y=SjMCCQsB$yQ zj6XIQV#}#rDGv?`c4;)<5AyC}g}zmR?A|W{F~y3laG~${$k&FZHUBn(I#*srm1x6} zDUoY~`xm%%E2Ej}^2`+kpQrl^@kXT9adx==nui#6TE%0WRtMZG+yw@Rn$dLC8`P`h zt|~VzM&vp1cmWAdX*v%}>{KP=%uMz7kH5Y=PvpDg8$SWguYJyZw6GeJZK)3k33xjg zJ$>6!(at|mg;)vNMN_bE^Ef`bNIgk6F?V~R@W(0jH{t?;i-C^0A=mh|l;64=*MWv} z7AF*F5BrJ}h@7()8-1D~C6jOic=nXewlSA@{HlQ7ztX@^`?y^o)8 z)DoWxjY^qtC2c5=$MhaxUx1By@An=m`qO*{*Lpc`7;=pFpWj;uz1iU3H2K9DmG}~J zPbMj8H;iRJvBCC6WJvw zrq_L5g9A+l3v~&c)NZEG{9+MCj7%)(Xq@MsQqSXP46|Py-j~j;b7AJ9D7lKu^$of@EpF*s$fGEY-j}LF`yY5>(mC?66;u+$$1e})sVCveg{Am)lHmOPe zt3-j_^iA(^gGv%L9`^&C6}dDEqOQXeN57(EE%j7mC+S^zv3>_Wo4Y@KvG7nT|3BkG zqfgo#T(WP6rA$VN9*XA3dxs40ci?eraLux6(HfZQ-?QLgl}W_{W#_1177988_!ESA zKIar-naKa7=bcEIu4;K{eE67eiS0B)n#pCnCs_5~-cR}xLczqX$LRd0`9{iq|NN{3 zs~& zkmvX$W+8eKsWc^rxZi(tf524{f-DBssX)rLbe?P71o=57qPfTlln0ombYMD!Rm2vyhZ0u<-mZT4C zYv8j;^)nT$8i&h|q{Jw6Lv-^dm!}}hPR-@__{g{d4hwAS*E~+pjYB>TbQ?Tn7()4_ zxCv@`na6JLRCiN?Ca%d)9Xb)kNAylbpCY+LpkAL5g4QnG2Waa+al^WAT`s%Q1KH!e zBTe@&im%JQGBxGRu3kUl><5YA1lApO%D>G5(dlj4sXegUaNy0pLu)Rh<+gm zS3X*;?6I*CveLv*OY8-8CAdkmjo{Ch-O&>8Eo>fkP_dfRz+QnemOvGUOd4Ke{iS8! zL63gmwZvIBZ_>B_{*fdS6(fw<{%oYI$l1_?=^O)F0!b$AI6E}3w57sxx^T0C@hLA* zqNqzlcC9Au1poa#CzpUDXMm-bUyeH(duFBqFe);qgtGeS#??ga0PH;IVKZKWd zSw-aX9h?Z|0)Ap3^2rCjo+bcYTe|Yub17*0_E?6*DKq>;nE2)J0*#JTGZ(&0M@1=zd*Abna0FHYRx+Y}=OVWo`s>FmFwLDd)j541nUHQ?)< z_D`3E-$d;I<(D@V2_#a4_$0&KwWR_0V%M zw|9eKWOuC`9jIq@AH=k=|L?n5Pk0Fnvl?DdnfvI+bA|_PG`Uu*a`CR|AP$DK46@fA zGQ-9bofbY+iAX~>s9B54>_Bql=VYqFV+~FpJD$jP2@5$lQr3e;7l_iaMY)^ zb7B}^5@#y|s%m}EkS2-unCZehFv9=$Fsvug!AxW1!ye@`SZd1TUfz5a%-l z>gEp~q!f%D0Sl&E>ugHll5-%0Z~D$9=;P_fY^UY(9PW3UpC-&>?1hH-!y;j1DIeSZ8fFa#8IzsGga}JR zglO89t!?aU2X-p+8Ojg%z$dqkO88H5hZo6Qh&Jwell7a`WZJy@#te}=C{31sEX{~L;8CiER%LS1oTsd88JKv2&C8nWh@{-&!voi;*JvP|EO@kE$Lo5^a zj;^=$HW{c)CpP}WYg^4P{z%1iJ)jBaeQ6piA0{x(t-@M0LM5YZ04lGn=6$7dw|d&A%aqEHLVXq2XbEfNiY zwOLRQnE`6Sri(&yOEOIs*k1f(E$4k_;;{vW4M}ZMp6RazZ_Z%Y?@a1oz z#(lDt+iy5CfGRI^-q!38&?FGBDtu4+8LSwSIG*CLrl2u~(@nBpZG|diX9Q3K1qEZ8 z^)1$yx;?`&V@c%11I0(64BrD{fx%RaYdP((wT-Tz^tvZAGo1wyAe|ry|DjP{FwLT% zWuZ%r@){FtR0(1U#+Ew4ct*p1e~BVU)cOh?8GN7Ec2LB`D9^;sdB0FukLW`7?ytV? z-);<7rvxd=(O}|2XPVDbi0f4#LmOkCQcMpD6PA7nGVZr7J2`>&0&bOiLrq9rQ>g!Z z5tHV6QW>L&qk=*3YbgTE1ijFD#NK3JURI`P*^meEEsMf&*BY(_ma59B;$+D^#^0!q zX1G}<&IzCuqFjC1(kU%ZdRe`8By;k2K&~M~lr{?O90~S|q=yjw1Cf%rY)l6B=mU*- zp@1n;3MB+`w>;VivW-#eugSf1-ZcLmdf3incEMQr7zK@++QzrNujP#xu{c2y zWCDqHP7bm1krmHT6E(5L2rJCPO5@)SdHP0`(iGqjeC7@ORQt=^Fja{C2{JUS4nz-1_l?~4@{<}eJq-ORR?E!#T-yO`@J#5ua7eXJK z7eR+z@;Q40pU4^>%@?LhN-_(ypm{-9hOiF|OlQc+ zEcF6`bL2Ac{tLKb)@!iM(}x9s$5|>TpP@RucP@;~NLd0bjzs`B3WBC2nH8W2X3`T3 znYJ6QLzcARU?%yF!vB7yKVe2g1FVPwB51wU)J(V+0G)}#b)TePCxn*LsC1rZA19&5 z@&=0cxqw*4M$ug8P6j<}T!1nx_ z-%nD!0i=B7#ea61L#8LL(XdFSU%|$km%hBfr8<)tbtA%shAC5-KTj{jw-1fr+Iy5K z__-MI5I+3h^*=C??a%L-8GUfK{xUUAH-sZu$=kOY8VZswU@tAz)H0NYym+k&A?22W zPzpD{r%Gthm3FuV96}=Z(q(@9m#K8W7gbU@Z8pXybk3${82QkxxvahGb4o~!o%rKQ*cb--l!YSR=?jT`-nZDsr9RHNkPCXJS@AKJ6chVkUi_%vl zJm(^icJuybias4RjW6z?K7!DM07%X5iM+$=FVLs_1>;>Yj)-DSXfNSg;W9YTW^sy` z1+~{9USVW8p$B)h;4u)mcZ(NrrE%##`$*~mIOYuxaBZn*EWb!0(Hb|2s3k72w3Z6M zRiBj^1eaQq%Xx!d1Mh!F3s``EO$J*4?2lZFd_nK30JaCA>i|%GxCHzi_A)ra9ym7* z!ZIG`fgi~wUTK442`yn2xsqvMU!U3&)!aL+XaA7pHig2 z{TAQDz&}X6*Q+5^=s`?{AZ|UbIF2U)|_{ZlQuZ{1) z04gnxjth0>;8!#jQlb_`|2d`jIwEjK*Z$?vQ-v{l1%BryXC-%z*0kma(s^Zap$-GO zEURp{l&eT*VBhwnQ-+65qlqcOsTFZFeM_8x9m0pu#J?y*@U^MayG*-niu7mT_K9r2bsq0mW)~=EF>ah-w;v4+yW=YbWpt z)^EH!*~$DzXimknR+}F(XB?(%{4jF7wURDxq?{wHduPU>+1PWutdNr+*4gY7Ef^(6 zk1zB6+{!WYn7mdj7a6 zJa?=kMsDV#aD3~8hY?!74~(hM_D(U+$-=bKz^3vW651*vqJJpVG#_EbLY->CAn8J9 z{=*vW4|?JY7v1jI%~%J4q9wkQxdcbmQ=NO~`%9o``$1k9c|e~?XwUUnH_5SH8)Zz~ zFYa%`6jGi!7p>Y=$8&+Nb?gy4_eYQp7Bu?qpw#*$k*;yRjkS&tD_0&<`_bKONX%3PXt?#b? z38>w2<6?2QTC1s?h>0DEcm~*b14AX)%pg#3?AF!X@j(lW&a_?~rP-$^+322r-thy@ z52e$eSdm_aIyN^TTSG|X9W&=xJi34EVc7zRy=c!5`Fn|=-x&3vSa$nqSSf^YH}fT< zl{hm;5)E4o*hTHo-@Wzx1g~#!T(ID^34O2aIkD!e&s^~^F_-B5!&!%6{R~~NMJASD zD!5SPTYiWYLh(E>26WFKyz)jLm+Z_gZ8?_|%qkYtnc+!@qe_tsE0Z3)(+} zE1l6nJdK9vwnk#S6(8sCfC1_pBD+t$#D8}uOe0GS01g3o4WOs*Kt&RX{eJ`~sBRkA z^rfQ--f*)*oT;83`rR!(tTXQNHHb+LyRY^1(sFG9xOXg8PfAIS-|QKE6fdk|bodFc zJ#spBdI0;|EYqmB8Kv=cX3A;O0G5$^aKSdg7?Bml7CPWuDSGR>4?!t8td0yyc5z}* z$|&4CCMV;D2;=|reL92}pn+1=DY&v>cHz?8^W&@&eI&B2G(InMx^AnD;}8+U1ba4i zf4xS+~vE*QKUH3QvXdcCX(Zi~FCE$O_sTEp*1S!vO!-JbSNAx$zY5)|pnK1ima)g|u9sBZ13&j`0y_Z!gyEbl_E;H|(Qzf0|^s zz?(vfb(%HwL<*vrWZngDFxXR!1~tu>@sR0Bm1}8A^N9T7mXLKnV>z#Zm&)yF$WV)M z`=MHZfxX1)R~+W%doXGCT{EgY)eMFhVzTgxqccs{y|fe?+&o+#$&LV9IFn({!3AyX zjp12D9m8X>Ac}7#XddD9^RI*q7bB7kCmj==-!5&i)VBZU3%p0I_G(iGm*s3>U2teh zCH@hw8tthmbo+cttb~F7a-PtBx$h`}7;aM5Mf0AX9wDa}vC^;->dJ~mF8J;c$axnn zE9)l(mD`@w#*^FDd@|A;*yBz0iI$p4@|3jQ21B3rD>T?sAYxnvnN2hV?^E7l6^hR%hJ(tl%^@Qx1$M$JIDa{U)(de(va<5#mEN16n?rx^iN6K4JQqY@U5IH zEPnscTaN2uyY=_2gnL!!Y-kEo@+Ej^eu`F;5QmK{EViRAQt> zK3d?PeWKW+`(mY3JtkEvuFTKDb$V(VDstij)H~l0l&9^$D%~J0OZ~VpHUM*snDNxpOT(u(2gp0ID^7e(olEj>h7&PyP7}47gR#^t18X^bPkUyxl_`nMlAbB-~UqA;^p$j)B z#U#@SX_$}KjDmDi-*kJD^{MFg$>;H+5}{J}f7nK!`4sgQa2&Hx2DUJcJ{1xpo(a3K z?^e$>K;lT2{el#{@K8eo^N;1SQwc@(LnFPsPY5dt+wK-oh^u(LpOERoc8WZ6=z(8< z@uy2P6O&Y>rL}?R=$9}{`p3Z|d%z2`ynZKCIwgAFuqAQd(;nS$yGq0vs)W+Xxp3_j zznsbkaQ+3k*A;pGO`GbnQQ7A6_ z)ELurgPDd}ErX*tmi_g+*x{ekXe6QvCY7;-cl;Qr9fT)uVKvqlFkQFl8 z(s3j8X(-7yZ=f7mhG|s8uj8Ur-Np1B2Ih98{oOT3-O)F=q^!)M>KO~;e9YQ!b_UKrmKz9@^mCf=;ipz{;%z z*T&p?ZnhI7o=PZ7vY4Q5kEoEPAmWQEl^-p?fP0R?$~v8=D18oaT~Q=i3uA1SxILYOHZX3<-6XleIi8t;zp9>3kO8trCjfb$RUIQ zxWc1uV^%zp#Yd_5Aep1?c%pyW-_D4i;mmuP{-aPhQ(b;0eIx=keKEhAM47BQtzp)d zEc2J9V9y$hJl^^=k@wdfXkYMGa3X30Mc1*KSr(V))8AGY#w#4v?WlRmD9oFTQdvZ0eFm&cU@dYFy}KOtc&7(k&qL7^}F zg?#J)29;LoXe%%&{l3SPRAnyD62*qEu2e`Gy<<7ZxfC$o^agW$qN$YF*!`S6=lzF_ zXf)=o%hF@Z`yEdrJ~0>Zy`c2YA&To+?xqs6-}mFIU{#$XJ-*lutNl-KHTut6+B8^8P9WIN8c3}yE4`K5dtRqV{-lc0A-7krPB(Q^GwpgbwGB1zR0M-4mHyjxrUKU3 zDqq`)e=`b+bD*v*ZrW^=H%ZbYvUXrf5Ie~J)F%Afx%&N~@8LJ?x&7*{Dv&6@>SN(n zphm+&P)PHh*jUI&v@Z2KaL|xk{7~t5!TJ7Uj*jAr)$c;Id;j)g zHay~Bj``^Mr{}5LR3;0DfjKJM?vN8#gNyo_;@eC=fGK@N8glhT$JZ7F*AMEaejK$f z_fd`V<|a9Hd~Lq4HI!D;|Gd3X#ksf@9Y?=HPqP3Eo)GEiz(vidFheAl)9aD9d_wqBH=9+eGn!<;|PrnD=@cb;an)2OSsA@a< z`kT}u{8{&lV341<0)VW$zn;0jat3x#*_PabUQP)>Q;q$-993R(EEmX%Q6~9ENg$2u z${q$%B-9m)hUdMhHdDzj0xy z_EIDunjQ{O_O|>GIC~}eQB^vqZP_V4hb+Wn5x)>Ke+L;9$`f@-t)YlR75$N38BSm& zmQ1^IQ1Tf`OKtZn0lc%k-JMs?mrNc$T@L~W2ZW`Sa`1ympIZ~C^|fbTq3i;<9t%*n zf^tPHKq9Gd)yyO{kqXL;L-4{JZ{}B5Q9^?GZp2V^FLP8T+zuc%hED}NxVZJAGk$p3 zyD;7@N&(q_>ZHIEcSHAr_)jtsh>A#7^$I830H=I!|I+0t{Nz({sqWLRhW%Yf9X1- z^>{mr44of^6v{<}-1CclXjx{p98` zU?PkRIoT_(W=Cv2t?#t{B@^?aj4^BBs0G|PG)ZOBFX9P~TW(C*m^a~TtOXAb&xKz1 z>0mPBA6WNvvRd!5{wx$NT)~vOsIg6QQ9og+oO~xq);nz|Qs1l3=J=B@NH^pZw3k1( zzfoRtIp7U8J}cRk)e~6nY#21uu}iB}t1EDPX6g--=(QVM=@esA&dZk>wcH;IEvd-Z z@CD$kcY5>Knx35Re7(Gu77(87>C(Ws)97JaY${mIVHr5iN#2Wt!hC>*X*Wr?f2Y4- zclHA;vJ+#`g*zJ8V0E7eG9f?UU*r&hqb(M6D=d3uA^?%8 zp6KQ9!=+XP+RBQSq$w(P`-iq8Gy;6w5hD69-_x$Q>G=91P>JFp=@qGvK2T<7` zet!jHZ~paog}U{zZKC2?I2rS}A`$-IBabeZ*3FkLuvIpWhZBKdHaGX?Hi+rFE*-gclAVtz>(^EHd}NY5q=Siv~u={^ThHD@P-d zm?^N4#+6j29;-_=L&I#y#);00Q17RNuEVvWX@Sl*s&C@D5;Ei4En7o_4HpU`2bhDu zx)0;he$-g2XRy>(*x3s@(i#`0o~&?g*)&ts6$iJ0+e2Pd@|4i)BL%a-=WGOPmbJ-w z062(IAEjRmpRB_|Dcn_As@v-(IWx0ndl#?_O1i0Gj^x~k_yUZr1FXcG=)CA~DWiO} zn%kg|;2QbnLr%$FUw{HWRoStlQ{%Ckw7ryJb}(?_8S4u|$A<$|+t$U;0pKYAGl!pq zF1p>OG>UHZFN%b#mwXjQZ9fo3_Ui1>9o3gHbi{;Z^r~QdA*l$6(d)r>1!@KbCQj!1EpZi&GCaGUDX}s95x;5r__#-Pe^YCA)9GCbLM*zf^5o#IG)RMF8 zvF+Pk_fJ-|pS^_v2BL+}G4B9gmT0tat*n0Sw@n+;Oyd^UzG_{P;;l8+tlpSDKWRX8 z&`c4cHxhXS^xY+gU0Vf7)`*$;lCYZs>b14nVI zWVeJAEph&>mPNei7)MuoRSCPkoaeKBkk3X1S5RDZDjcs)cD<&%rQ zf+K>VRgOR2N~LmTMGkSJjOcPXV0DoUAQWa+<#Yxk_n2i(V4B@>t;T)+Y5M}PNJ*fl3QP4woDYh zS#y6iuel+APscd@d;7p$3iQ52OslZhRaTnx@ z{pcmXp)J=M#H|1y7LKcEcljja2ueVwTYbzC7o$DTma!+}mlLQ%9 zeKyDtH)tsRTk7`e{Ntl1dMnhT#hDDGJXR9f)P=u-UTVSLM?Fg{4BrYQH5x8d@NRjn z97zAGklEt9@^6xvz_S73de_zIZs%3V!@U0zU6gGrlbnK>yX=l!tX<=ROj~veM}}eB zhtr+6EKHX&WcCbL^{@IWVyjx2=??3(vWLe2;n~z)aYm-FT#!?1C_1c%3$(3ZkVBCV zhvAX9yf(9#CD~kJGczL1Qsvnb4pROV*TfjfO1E+Uob4vC@#>`KuGS?dG4~!s#6~tJ zGQgfi23hrdwlp*{u$Yi$2t``>l>^H2(ucw_WGTH0=S1O&C-CqI+GGQ~QR6YHKCs<{6m*99Z9 z^9rP!m<7|^xZHa#N{p-#fXPF>)*DP9%$_Y)VnM*K;&>w_a!vX|P_b3O15bW&J9tH~ zu+gryL-Sr~#!SF|xmi7GiTD|VHi@D6z=uDa92Sw!{{u3H!H5hP&W4d@e({AZe8)$( zLKEH}bqOvZ|Jpl$-c+R83q{|yMcRf&#{hRp1HT?Y>A>U_Jw$76Caq-jOLZ)be_z$~ zX7}{JOFq$Pl#tD{#S%+kN12sOrhrsf=7;_uWXuE`0;|}??T(rec{tWN02Yl{=O5_a zN$s>CjPybEM36uDXe10MrGb?8f3FbaY6ns@pi=-!glK6Y4M0R@C2%Z!@ez3EIjuzX z3if9PFf`(^fS(w#9(AXw`A!+!`*bGo#5_3sE+YZs6O(zMOh-#R?E|~>TmEEbl<~?i zir5kw?A?qQLTDaBYEe$G_|pYGvKpUMg4e7?QnM*090!TGde(H%oSHy&jPfnP+5D4b zdoQ@cS&f5}xH6|t#j-gSMXi2jl%))uVTwOPuh2rpX8kb?*Ms36JG0Y9rkS&QT!@h| z3m_o}MyRy`qLBGM60n;}-fuCAIfZ;5SeAm|C&;;`ySQ8(PqHHtM2u{&;e}8=bHVlJ zkA`|whHFbKLDI;0QAx;S^(l#$agXJKrxj<0P__D5SG0V1}3oZ!hFD^q5CS9+1zVG)PgWlni=E_-W0YYOLXVSDYm zI0o$E)(ch&Jlpts0WZ!fpF zfR$^rB7bC}6LQkFY{P=bF^Oq9g{Mu{jLiHB&|OP(rO!rG$o<>O*^CjXawDGe=C`dF zq@9>O0Pd{F9F`cHKQl$;F%DX~pboG3YzHX!S+_LqnCPme%1hi#TB$5ks__On1>(l5 zE+D_v*mu;AyB#P+>v)*gS?p5clV22&_2pl6HS0LYH4@YkZ&?oPf9in{zL=KGKK0;& z-7q7v=aPZ~dHcI~@9-sZhS; zuuddh$-?|Zb4j1S@A1!p?Q>|(f7H2`K^$3p{i>5n@6Kz7DEFhfBF*8z4_uXtdPBTd zf}J3SoQSeFTM|2K`~lqV0J8vWSY=Jxq&%Rz6v6s5VC`;F#PLki?Y`#Ot z!nn9EWud(+ah6=yBR_pRQB4rraN|7TyFWg9haS z-$(zdx#*;eNqm6Hv{c2a+xuQVY8_4W>R^+9`k!4=gGMK%wvjXGoQ^}s<%LTpH}$2| z27#WI>2G)qBqTfL8;%EE#m+UW)|^J5nv~}-^9qS*;$wue1gG+cw)IHiaBKVVzLLYI zT_&uBnWIhop`Dfl7#O1xp+4X60)G9SDV*nZr0O6>o;ExW4D_^K=cR3>^1YDPMQt7q z|1vr5Fy!(~1G14SH8HD_Pmv71$+IZe!+!l!+r?O$Cxbb2k@4;mvN?G_A%D12Zqm`N z>=!>IMsu@d2L%VN;XvKn6$9uT7K}rkT$U>JetZzj{kSK*gZL|#(^UGF3y3Nk3~ue0{kxU86gc0V67__c@+!c!LnYD zw?Up?)CUdv-%3ZC`DNgo;yfH`_+*T`-rH&6?b6XV$wYioN`DqqI62g4x9KnJ!bjq* zS^N%O^M5Wy=gPnfK(qsapoe!5LSHz`Wvc%*|Ix}UY!D{_&;=%6i3dvF z4{@s(F`kr;-H!-OaPU$fSDtQO7sw5#a96AN0 z9oCUT5kbUpz(0LVAOSkh^>!dhS0(NRO@tB!Fa^MXebynm+_3TH4xooKYd#l$@^Z(> znnD2xhB5?Vhd;&e@AhWVYPSx9Yuv55&4-sz@XIYDowOp?kyBs@OIvSc<4Z5k^9la_ zV`PW`(Nk+{J2D5YK2@tyAxmLH#7K^|B?aGr>YUst_qG=jWhpAA;2$pZ*ckQ@9UAPcH4^dk}|yavENTwkE3NiL%jBX5h8FWPz3deNGbn7C#p`Bo)kwp`)H zcQ?Rf=BoBlZlRi-$YdnY%A^P$ob>70VY*Ez6U()73J{;lq{p9aZbIbsYR-Ow@k~Iy z#oSj2)z?qk?j%a6R+m|5Es%^PbKEN{5nQphF%7D7r-gu-y=GWsgb5*#U&eakD8MyC zu;@*yo!PD_0&=ef6|GH*Yx%27R#;B0B%yp-E(r48xY3BxXI>g33h=mNFiED>KjpO* zbeOegOOZ8IUxKGvfV_%5+BfJa;G!rQq6p(V*5N3lbef=h{ox?Nd%l{PfcW2h$DeP5zl|ODAn~v zosp4s;`w3;8W4OsdVc7*3QP#5#R~|s14gReIHcUZjw+DgF;$^ze?$g}IjKhY}K_EMCHDqY~VW;tKp z`k(O)Fj_zt;`Q`02)Q7W-@yA1stm(2e1Z7Q6)eDnXxA$Z;FAg=0Ggpx2H2loUi|LW z5(eOQM>^gSczDCjP^Qc~1k$n$}j|L*;F*Y!`s z_&&qf+Jtvo2;Z+gJYC9Qu;o9YCp;t5t}M|u6}2IJ&9@8vm8?%znDRrEW>%+OW2tQ5 z0jHd1b>vIfhag2WYl+@ozNOl7ZWwxIY*+?J*V^L*t_(`W;f~|3f1O6+J7-OmUZcz< zg%MBoA|DicAAptW5AEwM-TLQ?{a;QPh%iv_@$->)PwGZh%}jYdYJ$VqD|u}pLWDz2 zlGH@Pp<_KV5yEHi54H)J)%+CEW~dW{>nI4)lfRzVlFFe=Pb~ zuHUWoNU-hupU-^sZsnF=OFYfYBG&VPbt2VWpX()sK%j0^)Gy+=0&$HJJv zm#&9w`LMqtp2P3mc0ksY3Ld|X?g`)-zJlSEQn|IJcRdb@d@lS10PCD$wI ziQdFAj&}s+>@H-_9TjoYbcJ5Qe5P@suRl(A(x`&nfqE~*CZOpoeb+|-nCbP*ghjFsFjln6iX;q1DMM~rn z?rGR*h&a_vFy0d3`@~Hz)F1MZCq{=}_BCC=d|&@_OoXHZZn@vb>ec@QcC-F63U@lc z!xSKK2D3(gW<0oi1{+w(w<```FEDS=Zo7f$12EugbZeE>9Z(Xbv6eP^+nJHe?%aBh zWbyXPrr1@xjow}JD7FdMEn0_-n*!FoHHQ1l`nk6pVN0a+UJIO-8C3|`9G z`u|uu?|7>J_y0FZHbqfnSF%@j_I7O9Sx1gd*0J7Mkz{5&Hpkww4rOMCbFzudWAAzR zJ$=5vKm6t9#_@VR$8}wg$NkZN{|7@K>9D(5o5Ezu{6j60JpcSWK4yQmG_P!u)FG%= z!K}}*39cus>pGXQz=+fJd1+0%NUNB?Gx3#NeaIr4gV@@pYt)CX0btQ@7}Ut9EB8CE z`(t9`lM(%a*yM;*NoM++jl;3DQa!SuUJm!u^l}Fvr?k+)f%kv9HUP`?+~arei=FHI z2MN7DrvR*I&7ulCiy)+)T=YWrcFfqa4^L)n*N2GeK$$ywsJ2(YadtWz+crLMZ1ICk z6Uos1V_4JcGP*D@S9jpmfjsUH>|h%jIQH^R;;{@pDxh1lY5a%`x2>@FRpnG| zgVal!AGFJ$ktJn!l=-*=PDq~A?WLQ$`<>LLzuSI3?2>17um*!~u*_NRYgV6dLo{Ws z$2f-1cGr-=^R$n8yZi#SH>vpu7`~LBgR|Cqw^JIO1d2!61^MeEza9w6Cf^?Xudd|a zo>>JyHH1jHrd}Ay5jWLff8{bWj#>LAH9S;hb`^$E1a%ew&u4|O+w$trtC~>uyWXE^ zUgAY_TZOPZsD=)V80|J)gq#d?7@Q75<-T~{f28oO`Mt`s5(`=4f2sYQ(G`0JcJ(Zz zlgjAm%d$C9k>tL%vi=rche6^9j^iV-Tjwm@%z_KRSZ%k~bB3veaRYKi?MSbA-!!cn zx}T(`kb!&u8DI`LVi@*W2}t{^o7G_4z~ zamGIL%|3dI3$|GDrjh5R0V?0$w3(EGJ*sASNxwjO(x3hz##u%`N#@0x!bOzu@*{`E zjSoS&PpuXxGgR+b1yWZJyR3{tBzE)7=&TkVU82C~5`ONh-{Pk8-(rI=FL`v2?O||y zIGLslokj3FLxb9$`{dpT2zgSZ>Vl$7-=eX8nrf^*tz&Z*{JiwLcI1=j^;a^U--xM! z1HUveJ5ExI>Um$8GxyK!YvP0daMl+d^Wi0^QM9hq!MhlQfkj=6?7;PGc0He6{kOWl zc17bm(>@inhG`|K>Suv=ETab{6!jo^eozMe><9U338Te?xVdXc;z7buAi;ErmTSWb z;}mZgie>0MDM&713#O27lYXk+=Xuk%KSlt37mGA;a?tv&M7vjmGP~6mn(kEX&*+Eex5Nv62h)3pnl@fu6lbi{Ltf8_<8*sb3Ug;4;=UJ zje;|fuC?T8$bj>TfM$J8>?~A-b59y{G`zv7z1eZCMCSq0^%pk4^ejk1Bn76a2`ZnF zFW|7=32I~8=LVc{ma?3k)628J9-Il$l5@5n_l)r(B%`K z?^~rCptVQhem$%-_{Y1PP}c$ebHsgrjwgM%YC&za_U~p`Q#z;Q_#wWC$+b6SH83ur z(lzqKYv2jQn0U@CskQ^gg4qnvG>G6pH>Iqs5&IIg(nspQa~tIw=e!d>=i!Cz?Vw+f zpWPQKemFuDQKA~n+u4h^m%+BI}#?&>Uzf$VegTR+4z#VSqA&F=vZZWY?z& zjjd8L)g-ZvHaMh$)$EZ8EO?gBq7Jgc8|jixHSrw*A)}FjDBOlFTmGW+tMl^MH95y) z&eGGQt3s-bH_XIhs3MwMTf$)C)0@1s+@*662UoaB=1qB46)}}+Ulo20;&HF{04~J@ z=T!5rnd3s(lS}Z110T&=%>jdxrVNet(6xueWGtzOyuqF7$l6p-XBnAy_q=l^%?A5v3(2M%3$tC`MB!m ziw0BTW7{nsxC6R>H~=(d={dT>6XL^YC;U8G`ORHM5-qBcJ@NPjytWkO#JUdckO4HtoI}4Kz8w0Q$$L_HYU&y_L}S0 z(NrfeN;Q61%O2w7osV$R9`!XDstW#u{`p%h{#<(d)3_v!?6cjkg`S-KLW0}O#2cD7 zDD%y{)gG{ldoid5jnn>0{*Oncabi@>zT|NRjKT3;`?y*6Qh`#Bliurqi`|+^a` z?1?kLia0l=AyQ(ac9EGj-xnup*x)C?YW|fW$Cgibi$`a@3@?7+x-JDb8^7I6lp1b0 zTEIfWVeMaLW66iT1Liep+^2gej^|5vW0z|~J71+%dM7GCBGFH$^Enr9!sTR0B?n~C ziint_E6@!+aEs@e-a+*{M}D_kBmUKU{K)0yap-ImjtK$(SFhzWU!1`ZU1R4btaK?j z#X##S`OEGkyyo?0&8TuqJ%dZWeE_$6ks+|9r#m(%a?!Ya5q={`SpR89(T=@Sy-x#N z_;Kid%43=T%xt~ytZuGE>x^E(EA7?Qp5Jr+!$VM8LGA!?(6+6V>NC>T33OFay66Y?=3p7rgFe$TD~x6-=?)wwiyn9Hy&FnA zF4GGdl@yx$K-`Aq&I=LZ`k(WU3?4tG!QaM1P#>gdLC+32Tq7iWes2&$l6IYzQR4ZK zlJ7o2>p!ol4rBtm6@&o{umsiXy-e{MpLNNN1LUp5AL-!x&zv;dPrwJdV{dM)pOE|u zToHuhSef~Hp072MY?i6z2nWBBuXGoT-drCIHR<1KHEayHIizyoBE-(o;S?%BF7POT z=q5Agp(1V4cjUZrVzjS~DXHjcW83ridKtb;l-b*?&C?5I^AF;*ZScn0Br@(X<_{;~ zT_=Bxu8K2qBzOdVl#B{q6BP1V8r(b;afQ_Ot=FoIc$5aF_$G_fYu1}53*FnXW*{9V z!EiIRSa`;D_Y2?Pum0^vijQoC?tSlrWHmI#Fz|i-7qjB$BJfk3;rP>MnnKdxzA;Bd zx(FjxEvMI-?L=@rp^g5}sUxbcP@PmO-T(SaZ0hR!(&5g)gNHW%yTKw}EJ{G=KQ+(r z3aI_$U<=(E)6rede=|SAt13<)NjqaCgaL7^?Y9%Tx&!%S!G`5)L!(%~7{@<n-AYbf=JGS?f({*0D( z2K|>vfvRHe@!XqbZml+qwDYxb9EyLTec(23)N3_)XF{G_fJ{_zCd=_%L6PKZHHW%_V1q6>NL1Uo#0XBWQEmD%f%qOZnnpKDsOmP}~R=NJz)mUFxpe4oEiimwzAjYsLaeQl82|13>q z_`B*qQPt0pKpLuC-;?wEbuhT-UONhF&L}CNb13NPVj7chUdz~i-`F>Cl|`TJm3Je^ zgmFGwWAp75JuOs*+KF+*_}@!TE{=l67PNwUKxGE@wCx?vr<@wEh>nZs_r|4k00wuu zc@xDx~&nIR_qLBd403H_`SJ%1y+qxMmcxva{-S$DEdFcw_<&B9NF0`gzU`H)^{-in%`HQdHuwPodqVtjxJa+Vv;ZT_Nj{+U>@u%g~G6p*&p9)5ylPW%eln{ z*svV4Slew$*K&JPBF6ZQ1{@Jt62=ED@SHW4!`}zy*bSjeq=(OubM2oFHQm;NwY)5R z8$}8P`1>e9Uj=YkCKHHXz*e)FG_>y7-+n5c6I znLn%@uAV~v%TFtDL|oDzVw-!yS5H(q>=DIO9GPW8-x|Bzcu&Hs2~!_?7$n`J%YzCI z=$H3<>(B6QO1UrCwd&DIG?iiz!9Ei`;<_11w{_;ii;HF<-7x_ zv%`;WSJqlY-1YS&=cZTqs%gtkt53-CWxVRu)T={QkB8O@4+XAMpX|~sH&jY%^gnkd z4=M3~hI*aYw`5bx-?yT~mW~!#s~*c;RBNG; z;FCS{6R|y^WEf>4$HO7$a`DuSO-s-EMX-MpqqN$g61ftoxa5@7u*o%8i(v&f&y9fy zood5Os#mb&AN9^R;~w)6i9B!kug18(!eDrNRFxF6x82N41m2kymTcHj^C@P1Ad`p)4&H8&0 zflWWfCV0Kyj%b3Bay=~jG+&n z?8kAAM(5lhhY}oLyBB8tt}Vn118hF-^=)m@Uyyn;UU#W#$N;dZ_r^*>1?0AQ2!%gz zJSjFX_}4S6#G?89Z+Va{zrDYpl9V^ysCXg!*G5-MB6$FU%TjNkc|+|Z$@kVhwI&;T zw(&RjBYiyoQE`z!B|dmvNOkPQYhy(AOC^!v)ft**{TYQmW>hQ|c`POrmZnuJzBT2x ziDb-Z`ip9fh?2WXZ*BMowEx*imJWJte}_f#tQXBv>Z{8RW-@OD#qz&p2tWRuf_kaw z6ec=D6Jii8uP^Z;;2J^r;qg4#gg@@A5P^axOjyP}@_%6`F(osRdtu(b*3(JX)a%Bv zXsypxsCE(OT;IlY__2Dif)KryOp^LaFlb#nzd38@Th+{7C7?Wn=2wdDM0Cs!RE)@m zaacLkxc{-8D1BW#kX5h_Gz6HnHCNIrX4I(e(iA6M%H3FT1S_t-{HD?NiA8LIkL?de4uIjmzt0n>lV7jMC%JDSK?$Mo2hz>QK| zQB6rWIU~OMZbos8*%vMRX4eWs>*?=0-A5SxDSXJu^(-3uwr zQ-|YT9sX(ljt&f|Mo-JB!5j;}%lsq>&@U5|wPORfprHZ@%T|`M13>S#O_USy#52mAoQyS*zJD#& zT;pbI)3c#po)baYh?*EZg95g$1lNaJcn*y;KepoVm?ID0aac8~(c~uhn+pp#F9>0j z%G2^q%}ze2e1DIZYQ`MHb@v^QjDZ9hq*q=mG`~MU4Tr^;As=QKsvTO*J>@uyJx~sg zWPeHKsWR$S7C?R?=Q1@EMOWM}B1Q z&$_cf<)i{k;ZXp;y#=rfrP=b+mV=+xB;uV@oN>#IiLGES$*X5~4w3s|{GUdMeG4r4Z9CRWAT5u92fx;?+2mW@8mvh|4qmcKuU6us|S zKiv1}L|;Y9?|>z{CODvan?5K zPkHsqMVHu8j#&I9=suN^&{7&~?sQ!T9l68j2N!$dFl9}bKOW0dCqGx6+yOB=qMVZT z@)yekb`!04>len)jP`nhMW&a33nZr2Mpr1_{pLVq{7j5Uauf7!N|$EJNNqO|{J+8; z#f2qXvmNT*W-BYY-1(D-9hJ){T)w;Hr0M7^Zu{k=muxUlmh2gfg7Ymp?OsraGx@j0 z47vSO^u^-wDPi3Dv@t}HoARn6>I>&;1FzB#sy1fv+UNgnh4P=0@5VlC3Q@YCW_7VJ zOIzEQ(4t29e>8NtFf8ihyRDN^04^7l`Z^{EQ%&~(=sQL{N^Fe-kyeZCj-Px+vp{*J z?#~znx|E`i$7rO`8t>N2b2P?wG!~wLW^dtB z5^CD0eWrs}e3bnBVsOeS@uH-LIClzNxV^sJ{AFtg_wvVyC%6C00=Y-Ne(ba0qdLjEncUw!z3 zzbviOfl}()nE{iOj`Xfw6*Sjq%aw9m+AA9Ekbsr43F!&7p3@5i46eWz?4t{xAqkQ# zN1NZ9jvNi?aSf)F40>Ps)^>(%Vty#->jue}B3n+!yRfS^{`pxqgr#2K2Oq`?0E(#61-{%ApKu`;!p z;pgN6{sFa3J>rDa!`cE64rwHd++r*Jbe5o(FD1rXS`uTua0BDM@C@^>@F7KPLau`) z=)j$dLZ6aIy*Jfx^6IJSa}ie@Dk+ z)IoI}>x*YdJ0FZ~2>6E?V%Ma4oMg~c|5|eBE*H!(@wrpdMk|rFJna!J0O|kD}->&p1r#J%C*bin!sZ z1)nk*3)UJU7jV@xpaSAX&L+lI^L2xkb1;#Q_uXTvCKBFhy~079Qq9lje(@K0<_@ds zkMNXJUy#gcSN}<|!zw9Dj7Q#Rhg>@(dGyeW6F{b){EHR%1}KgLF8n4-^FLs-2Deg+f)KC zx>{#b&J!lRr|F9JN5ca^Cc*`ojyQq_NqahLnW&HJVv%M$y&R07R{W!RwzaA30X#&pqBY22|KS8E!Lzb(cMp7DOz3>{&mUCEpdnAG*DBe z`Op3b37zdi!r7A?!~IHP-GYMi!dc5t$QDaI9dU|QQ8sD2$jbHNzS)b26yX&nIegM1 zjp?0_UL*LblEiMFRJ=rav3Nqe2LWz#8lq8GAF;fJkcBzd@Fc}MIaCjQdykJ8mWuvw zo)I|^N+G~Y`k%}&_cG8|)QfCXv>y~G`Tw)BYN_7t2l-e*4@ZV3-vdg4O(-`Xg2zJC z(LoM+zRoYP;9Pq&$uVX0iCYittcQmpKIzHT7k%Qb(c2%R@U)Ob_<+p41M>C#46jL- z`@pVADj;9AeBV5-InVv4CNz_K>9Sdi1!VK`zZiY9((>v_qLaPOl8x(3I*-(qrbr{x z!$(4I4*h*I8y9C^O59^XaTutASeTaUqS6TXQ3BR20)H z*`P+8!DEP$^ejr5LYFMF`d6NX{U+E&^^&btxV1cJ{8F8lLM2%Em{3A{XwYA8=BRTM zn=yKoM|bj}9*&C;qPP+s$x`yuq+q*~^ug6dYX6p6C~}!IEeFbxk|$xtukF{o>UOx> z2Eo{b({FR0y-B~qcEUQ@^!3xbNEJssoEd4(Syfx2Oe&YQU4kYMRh@TM0Ni=CSuH3ywM$LU!JS4(!(B~w;4`G8oVEYan5)iz2~-hmxoBQU z*i{mBkcL6@z2bb?ntlgFfkg6gOo|xJ!2Jrp9nDg1lCADLFIzj6JA*m16w>O8x(LPc zSyW(m-v?lSQmJZ5AA84#IO(@jNqIEQ&g3P;^|+ZsvDX!yV})TrR(oM!r3sySjGGHm*TGp3~j zN8Nf7!uN%>^QiJs7|ZO4f9^MvvSe$qO;a)^7}@&&bqu*{h$O$=ig}o%!T%Y_qXcyT zt^ZAS;Kz@M`8&}5P@Nj+(tTvwJiDKI*3cO7h)6KafL7(Bk<1FVP@>Mz#l9=t+*R%8 z6wYwu+Wz8wSOh^+(RZ8H30JK*y|mT}w`>{gAM+bV`>y0EarNrCQFCflFZ<+LFh2WZXf%f{nvQePK&wgWSXlEzof=?|0B_vds>S! zbniEW{at;iJI98{9GL&zqv?EH_V+U}G6Bo8;ycv%K*QpQw^1zh-8r9 z=w`NRow)6%+V*Fytz9+e8m~hpKtXjh>PwK&C4NF&1?al>fOhdG z#b-&}8U&P8$4|b{XL@)+A%~aEo`)60)p8>Ik8ZOcwv*AL2%hyd$8BeDq?OTKdIgJk zEcC!o!$yUJmWkSCK1Ib?oR{Qb>EgDG*=s42tF1^_n++uAlz`#!QErj{!nUP0oy5DUUV+`C`;Y%{1`S>=~F0`(^A;@bv-BH z=^V?cu{sBz|GPcEXsiTOI9-9YX)pXF{N25NI*izm|7UB2xImVTEP|Cw8>LEP{ zBqJBfp-Q9X5r>$I7pv0{;Ck2nQ&|Ls;e*#l{$lNM}1A>j3r%)~BF_K-bYqCU8?R;_m{0DZdVd zzW-BqmdO-OV@sr(vmO+zB0(#KPBIzEs%f$qod(Y_*kI&3CD|^$ewN9WUo>*PpyhBC z4?B@esjE#BIl3KaQI_uobGGOFL21pxSBB@Ebk| zp^-d(;eJ-!s@W&mkb;%SZw2?gR5}(94r1L9tqX_@=v`3>1v|EUiagu$G#a$Y9z0nd zR`P4ZgXR(bMF0pnlB4cmsPN-*XdoK^;v(u{la_PKNl$)O^suG^I3pG=P$Gv8&L#d; zHBdhatfXH{-=K*ek5mO{)ASIU-T+xQ{d5Iy90BG)BuLnMoOxffzD{#5-C+2d;JwzP z{E8$ylxXn=_ekKx*mW>temZBYVE>4Xg)U9526$&cSbNPR2()&eZCqeo`Uu(b0nvmi z5WP0ei^vgeKIh+W#1lgZQ2)B4AT0QCz2k0SAA!*f3b}1l>@4Z;?&n*97J+f3vl)pJ|zOWZ~cVmW6-!C`6_>&|`|0(}gchNQyqm#%6 zFLVU^e4m8yo5LppvWJg_HQar&&0-V7|J#jjbOYK&FMY|6@{|HvN5b8tO>0%ef(_-K z+p}lFcOtjdjHjU#r9)e9Hn7lChx|=0N4G~ddg%`&34|ykIyo+OC$>SZJEV!j@ucIe z001`j(=(KG&^E0T@*Q(0UtnUVY}-P4XTWnf{>u8!E-0Lm4QAB$Si6pRS?Fs=(hm9# zD&m7)6YL**wiQ?NPTOBUSeUcIR6#zCrVKUfP$<9SgBD<8FF&ZE)p|}Ng;s2-mR2It zq*1!Pbq)l`#ThC=!R08q$VJ*umm&4U&KW|t5&Ms=Q#>>TR* zNK}`@eH{0)qb<^C?owpP5mK|b`^BV;i9ys-_%xsHcJLH!|9XfSfs|y{J*q8jTnRG5 z9DwG8cf>N%yXXZ&ABwU)p`#KL`5;!^`yTyNhB9|>LKxTbtpOETb?uSo`~#Ttdr!|V zlwdzBi@}bO09g>$;5hGa#jacalKGzbF`hEi8akL};Mz(7eGU5mtQ|)LCdYrYpXKtf zrWuqJ7*%F3msAgqc(5_g{4opg+jfy-eQp%Vf5H6AHEO+?tSh^=0O~U5TTZ1(DcvZa zM|Scod0Y`}YT0lK(PTtN7_Ar0XH^$8{C#iv}Wkn3*cX|1%gj-;sV&w;UaJUkySw! zVmJjRp{to?F!I)NdVj`T?rge{9Ika&QddQCR{zk~*V}y~R~y}JrmE6=>?2!93iZoAyUE?Zid@O(PCzqj`WR)uF58%9VFQ3?yp*&YCal%6+3aVZp>e^ zglm39+&&F|_wM!8H*cw{#UVW;g;hw zScRSat&@;59gei>H#4WRPq9W!V|peOnxobq0=QnVg&+-huZ2?z@yHm*1_4UV{r|Ow zUg5`8_W#<)fje!PbFp5pm5RBZ6c9&qU&t~j_IWi>F~RN$xusi;8NQ3?GUNstCe+=A zKButpOk*+7xVhV*WNW<8ZVs)lVv7H~c3)k>dVtWZLfjR`*2-*U`ckLUGH2(jg$&Wo@xE=>P-A>HqMhsT zn*#6X(j-%EfIXunyUyRr6SFid1^cF;udjc#tt^mk61ehxgSlCQs}s7aD2bGs7Kqzk zTxgb4!y-JlH0;DHDh&n6<-u*$$X$ITci%F6+{afKV{IjQIHORfALVys)wlmM8&5LU zNBFeKHs>G{jUrJW2@pQS@ZfZ|@$m{X)K41DtbQtp zWViS};NC2J5o0yrwo+&Vl_)-X=w@B=gw#qC4DIe`i@c=H)T5Q*X6i`Qx59eK~tJHco-kE~r4r z!C^^cPw%r1T%%SdPUqdTSgw{LXAbq|)+!OO^kE}pw}iLxfGM~BfXq1mf93{B7u}~? z$e1g?-Nwny${7qVa4D@ab?Co!#-zPC__<@f@CN((BFV(>8P!c~qW@NSB z6Gc7W^Bi+DxemO{qBNP+c{|xTi_iR_cG24l_(SkeogJTP-n{mBB7@tbPqOi=aao`Vor$TtPfe?#+v0b0Y53a{ zi+O5}c7C{@o61>D-tG@B4)v7escf`@8hufQxZ4-(=?)pjXYoGvvk<5Dz<%7p@Ivu{ z25S;m{JpRF6WHmV0F5B}x4Q2BH5q4TtNyUH?lZPs`dqjq?{jhiarEC$dOBCWD|5&q z=2zxEDP&~oyUWQTYJ`~eeN#=*sA;3aN0rTIXK|=Qa>5w}){Lk_EwIm;xd-H?PGWoL zk%>^$Z;G)m2bijqd1Q!^@H@`Iw2+?aIE;FZr*67DiPFMvA(vJNc+h&%337dle&PXa zFTVR~bp?BzvcIKox!CI~RNzLpz15VNVA}3++MBcXsb{U@@1Sxf9kM2t46lee3awMH zr_N{*{NyuH#8|p%r=r6Gt9lND{JNRs&ET+Z6Nd>)fy>-~7QzcvS3^u&Cz_zyl-i%% z3jJX*`|KD%T%PKaX`Nz;cjI(zvr+>!D}}{49`Hd`^{-KqAe&D(Ku%UIQQ=(Ac|sEv zCyy$}%9eNT{KPKuNa{KbrDa2f*tl+%bQ%2EDf4eudqaZ__5aBz;B;y1{!jEucP5lX zFa6W8ZmaJ+(c#CGA|H*n6Avcis-8FSxM@izVt>Ximn9V1NG= zBb~$=K8n0=gP?PTDRtbm8Slk9GcUI+O21~l;7gIvO>EiIukHC&ir&jCHzoV^S*U z%XIjCj7vX5C?Gq9`jw6v;W8^;ZVjKKDwFYDMVU>7J=|e~Q=tj{tTqSE3sSqaI)Gk$ z%=IGS!@4OmTwc2R(Qe#yUo%b1;C$3Fv+2M9c0Xhv^Cg%tZaaeFdooA*Mcy`n`z+qj z0H!!21>JV{;L)JI8zq36OHl?!R`hGT8J)c=dZR+a&jr(CQx{?BY5G_cM}-VQuH6HQ zzD;mhxDJN6=GM5@l_G6z4^%y#4s)4O@+L3ecKEmx{Y{W>m(YDoyQzv}!rz|>}D$38d z)o>~65X}qXKSwnI25=Ib_agt_8oy+(tr>SOfy{$eLXqSAeLyW5Ia_qzejELr?yOGa zc&QrAKEPG%t)>R=*$;df3bpv1cHwy%-={nDNnh_a{o@kO)ICpuYFoI)FT*>L_cB-> zc4T~8aq5SgI_!2FW3-syY;E~0SNE?2oU}#3bxHvQB(O?W-u?${yFhtyY;v8vRzqv% zcc?2q{|B&M_^V7BKWO64kM#i+D%%j`i66k|5?<`555ay_-^M3F8#z>u{q)&xSs`K% z{O@2PZYk&!9sGUq6(@!K>7ps?JPJevSUXPmFG_W=`%Bd=&H{Xkb~^{NNm4(d^h;Zg z?EHNuTwwjiFNvbj9KYD@zCv|^L^_PVyMIX()^qNedq)xzhMmt;3tlk$WVi-tV6xYn zS9C5TL!nvS+<1nfMZZdL=CWFuiA5SnOF>BE8XkX46 z3=oI%;g17#4D~z^X7U91+l;69(J$ZBfCap3xR3;1BRzr*E7WCHSUEK<=~%R_ z#Xim9*>n$VUvsM1njTxaUpUHiDW2(T3{TF(T=$eca8+E#r%5b$ye11a>x?A2uxtlGraw!=H; z=v>0?j=HXT@rJTC!IrvkkTfHtgQ>3p;=$j~KtCpaDFoGYa?wNXK(S-sJY zDz-8^tW`KKs--tE6F*$zgL8gD1T5Te`Do}>f#26gHDb{#kSciK)N^(0|5}y!aZ4Z; z_v429v|B+@6f|HO`zMy9ZpS=(CoGCihn?8O$j{FUk`C!3*`9xeFR148X6V(q)af1* zBrHJdXkxL-ZDr6JM9pPUO+0Ky%y*T7*1Rz(`I32i>u#jeYWu^FVZ!u}y5^mY6Gf#7 zn2r=S%zU)k;u1WJ`L>O~r@;X3LGHg--pL6CV20#dOuO(^O(|jZ<>C+~iz!NH1?3wMgZ2JBKwQ`WqdjNf5hA~Y;sa)|RNt0jX;8ZHKf*2+066i_HB?i!*gr{WhXoPd2a ztkB@Xnli>HlGY-ft9FV$F&9#ZPiIWg|VNinJYWj&hMyd=oFN z3PaAb5THey8DW5j1~5kjQlD-N$Fabu@Vn^ZoB^osPHVj*@T|g-&+iZg(D@w<1E+az zDcH*KL3Sa`5|~-kNm(Mz$j(_e#(FtPNi>=uVsF&aQ=2!Lv#p1-g_VMOZI#1`Y?WtO zQqq+#vn+r9QT%(xxaQ3ioZ&JN`McTnw#(Yb^kC z#8gRL4rRlA=rZQj$EwgObtg>o@&tC4bW3aQQC-&AQp+ply5{i;@{so*M8D(Jup1&jU`3NUaZe*sYPG_f5L{`%hh2q|0k^3SE%ZTk%_*VAqzUwUBY^P;SQ zm92&^m2w72nZ4y`*qFC1u{Uf|W&l5`abqoSk3bshD$cO~oJ>C}J5*R;c}E-7_C<6< z6~x{cY|>t5hn4#0G3cPt7W@4+qtk_*q^WgAPvU+An?AFRO%Mct zD>C=~aZ7YlbwMFy*|*5EQv57D2P3p?qVN7#P=iAtJL(J@=GeoBq8N_3m;A|xWr2m9 zm6RoWHS03mCtSnjBxV5gq8X7PesS_X(PzECtkJ#gV;WZ%b84{p>ANtxc3q{Eyl+FD zx0GDoRkwIYK#T7JfwCvmH}eR-@vL^^cDR?StVJTTgNQhProiSePdH(rO4;6L@$AcV z|FiOgW3$UW>a%9C-Y~Qowm5!R45SJLpzDG#uh1d4NyMJjfB$w~Q7)$91$IxdavTA} z{D0sPm>sZjb+_=BB#hr5f%nD>efZOB%t$XS8(AaV{F{e`Q-lT%r`4EH|&Gvi^CH*cQUYobcR8?c$i z+8&I^Mye%z=qp)2x?wvrJ?*;n@Y@_fumFLM{}T{CbS4~}R<3o=bHbb2&p(FrL34t$ zn-{$sdr_Y#qS&UTKA`E4OL0S6upL|wn%=DGtsjr)SI)UK&cP=cb-mky3Kop16MkM_ zwJ0SKC3QYt)R+~-CAPTT2U*sBR>*lA$0lw#`n7pkWAgXIFXNx+ajOas+fN+iu>Zvm z!wg7;a?9ROz36zNO#78nkk1!R-RGArEUozIl%|hK<0gdqlW`{cNYq>hFM_-1ePx9iUoJiL zM(foj*#5sv_?G8LjfDGA(pc|{$604H#4cIng_ND|Esn*>rS(9T z=|n6Gy%HF8=OhIV)7AIXOyc|ao9>~+TUJI!jK=EjP5VF@aexmtDtXDz#z$|HyY+)4q^MtVVM z!8N>^4Sjq^>YMS=rE=p|Uz8sO&!`+nx^G(^9X7k=$eF&jx8e{zXL?!;cbdgNYtEA+ zOsT14;u`67Xb)sre-#43f}u>5u#zt#`LO0}c*jpS!{@9}y}glTV_h+WOUV?32nk*@ z6B<6JP@8R>WapC;t1Bh}H*!cOuxZjv98n2Gz7>>yHV^Pui)znd*g}_kabE{ai>7{? z!X~o((AZ-~~=(EVv4f2H5O!jG$)iRmG1RL7+i!2>0g+Lf!V$?q^>?rMAPf+gGrh3menxkhR27a`U0ns zU*IM$F)rgy-h6pp_~qZiNOvc=ngp1IshRXL_5zzdqS_kbtb;*_L#4N$FmZ<#-i?2cT3!m9POrmqt z&zBd2v)vCVMHTkCu8qX&9TpT?MsC-^!cALscI%Eo&)8jgC_|FNF9)3bN7p=!qE9NZ z;oGkQ`d`-Hqut7KCf|zo{fPsyi^4N*G2%SekuwEG(cI-A)?#u7_=%d`t)mG?9^H7^ z10v**eGeSTJQ4^N5;pNK|JAA9IndR3_H7&Cv!$8p*jVT>rb*yc3%^ftvX1U^y%CRUNo>ZC6C(=xYBV7;E@|}NXet(F?Tla%l~*W7MsbE@R7da_NDKywnPZ)+)0k? zF0QYYoR5IAX>_{zjhaJB_SYwFNoUyK>R5KtV~zAJTI8ox5z_Uz3eP*S?BlNCNrup5YmlD-HdHRE1B(5T z<-IY`MPBS2&>yt?C|X(YVU(mBAX%u9gv6CO&K%&@{f~F(X~;g6fcNHeW5R^Tf82I0 z84Y`r`7e$S)g-{JFAmSY&>V*b#5`S1YHXFF6WGN|1PLp<#_Uj2N9owlBrPPgq)>LYKw#eJrxl7wX_QKBrW<>+% z8sZY01n#Gc#Tau4U0%!8k0WdW8hqcu{UCNBwLtVoREqG-3Dz*DTWFSXbZJ^ z7t=Veyu+-u$mX)#a(ImVXVW?N^Lmt?4)~5J4dAK#eH+A!0*FLBh$p%0c5VIHcsLxE z4PDFCd^O&d7ka3n!g9-e!si^x>3KXRT`(msqtn`?uW2{i6mvG)E?Rh7o<7^3XIba4 zNol1h!mLHd^|!#<~8d{pA=Fy3mk&tfbX6O*# z!}C1f-VZEixdxb-n{)1SUDw|GS4R`Vw@aq7pq@jQdt+KnAQx@N@7{weYz_T0?75gI zf=4Y_34@vo3DpH6hM48j!yBjk+OSf>2j1N-)53P|yx|pW>s$MSj>F578eFa#D;qwJ z7r*7seJ$Qy1xLjF&Z!K$)pI$XxT<>!ttB4o>20fE>G0$7y0pEzfDSK8zThfBRj0f7 zo!d60bEI*va<31wzUqw*j__%`sFMp`{W!LO29G{kGRP7?eR;95ZT|ZlRbc8`gYEl8 zXjw&y@}gT`mtsH#bk(!w%V-8f)v;YsG$olglBl@GqiwVrAl|kR!#q4Sk~X`ITY9$N zL2Pb4YGYxC@k8G|EqledHvG0{f&7n17h}I=rT0frXa}25a$d3e#;GIWv`<05LIP zNK^vTsNsV!A zv<;8;OHx|QLB1A1@?yp5! zE6IPT{qluIUS~`PW_if@RNCQq^L|-Lp?c;ttmM3iiTW33%a=DPq@+kk5ewW`PC*)P z|2~`-N&hxQd`s8$|GrneW@ah`@@D9XVJ9ffvL=nmM*UzXKT2zVcj9ntuPZe)mLPG? znzV+|<_8aYddIf&kMM;0GFLRLFx;o1XxgURS|{!GJd)Ap$u0N*}7G+Loc3mU&30uW{a9sc`IVbf^kTGJ(gAGYv_}I`SQ3(rd}CMC_h76 zlT}c_Cu#@MciwWqUJ}-{$&eRIJUh*~-(dTBJ)?ry2Jq*JhmhB=<#5gVHd96w_KFD# zHpORFLG!cZ3e)++6m$LqF22pDs%h}pCCGtVC_T$FMm=Ji?FYCO*gq|F%!B-CO91{Z>PN}kZUoF=XHrPQniszGV}U=P6Zg^sgn@9^ z=P7i@1I1RAiLlmgaWR|Ci;ti%w~?+!P&?`URpBVxa2p0N2;7$%aU>p#cw80Hy`|=a zDRR8`wIY{OQ-S1AB7m85f9?n+a#iboH2V9%Ual)^sE?cw{SQnN$Aba(9JJRT=K%ed z;4wJ3KL*!-i41|8e#6pNeN5x@rn0X8x_!6anQH8|J24Y2@m?&ylZ$~Sa*HE9= z^>)J`o z*N;a;*mtZ3p1EfdB?!|%rz%|{&I^}|ek(HYP_lh-dZ}xklOhDVFWwMgOzg88Yh%OB zCQ|<0D-dhQZCf(Aez)@PLFbr8fx6P&qjf~Y9C@xKtk$_HM7p-b_lFSg@2_ie(Hse? zl=e(fGB~1cguniy{_rcn;^2*)V!jB2H(*ypyv>5g-BV zQj6}RgnG-N%NUA75f_p1gdDC(z92wz&NPN>iO*~rEv|D}FE%=}=8I$s#?Eo%FRj0z-PE1s5~cAoZ`P!4VRB{{3jdacS*Sv!`AqDOLf8 z=qPHJ(mP*+K+}BoA+M0-QQ)lk7@{T+Wv^V!p~Y6cr=SS5UH;1&cKDJX!Mo#QHUzB_ zy9!44&}Qq@Z9U8wfIF$K48{2Ct#v<%{n9O*5F`bwcd3}!jV==x^K$U-aep5RiFeHe~-m@IXN?y*I zKzoc7+>8N-CY_9|Ca|gvu*^flPr!U*l%ik35)iH zH{5S;LOo=Mp-g-QO@oP`H6hWV|AG%fzo2!$KvulkpSoI^vDrZ^u$qb@2AEXKYdgtE z5uX&y00nbm%+kFnbfYERNDYq+D(jn(0PJOX|LSF!hUH#lV~Y+rf^dc@GY!P|c!rlD z%5#JU#*GUg5L~pzs^Mqx>G%k`(8nl12qwnic&Zao;Rx3}8q}YfwK-JrsY*5oVz>w; zam49Ud6=(UpjM8(lpTJxk;KN@)3W}CLslMl?bl6?Z^Z=$2HjIgLe2(HPB|}#)lhO( z9g11Z_l)5QDQ1wvMS65q-}dqN=RVRk+#hbXStN`>;ExxCKzMb`|FULv^K0-X;6ems z=W1L}c6T4QE)DC->B>FhD<7rCNX=Bc?$wz1bZl2B3b<7ZuxO^LTaCFTbIxq{8pTFE%ZaD!V#W0mt)+z@X+eY#Ozv;#zp5#8|?5sL|9 z2mqxaP((P`-uz@Vl?flN(dF@O#W6wl+YPht#Y1HMkuQ9erT1A~s6U3LLOrQBw$k5X)p#SnN%Z7n~STCe}>ZAuK4-vD~An4caB6fZ>AcbMY}?hwogBH zenQ#<_SxU234)jL!W4-9^A$4EC?Qq6IdRl*q$@D^5$2TY9oGv7kXoDe zze8s>g2w_&Hg0AElS3uC8Zt(bkoES?5y#vJ;756ftt>88m*7<6n~mAod8tEhibVp^ z%1*vAWU-)`zr6!`@?W z0l6t99s$XwR_c>493yp4g+bm<&BI)hEe=!Yk!4I-5>1GqLk7zAxKoeD#j>vkqiP!K zt1slOYvk$j3Yfh#blJWLWr)-2iz0m?XbvC|qm#0MpwVjI8{oGbHywInN(K~-m(K~H zM1ieBEBadD3>pi8or2%#LEtVHCc5L`QnR}&7$@#tlr_K!z~zy4kc5a~bS>AboT4BGD34|q-ohf-HRv8}au9@oC3JIR&a>?O3MBdr( z9(w_FM!pAqjA=NWpry;t2262`QMzQ%>4-UD;N)Gn9hH9ct;#4*Vcl+C&PZug$kuuB z&JOgwCtI$cRCRFkp7&mW7JKR|&)|fsf;Xjx1F}<2ZI1w*$ErwD7jF(FDDI?h$8%p$sO?B;S5rE!6yNOoTGOl*ipmtQ6qLu!j@qk*qy~8mo3!gKe)EsLo#=Q^J0Xv7SnTEV+vfW9Lle zk@|%=hB8o6X!CSz>gL?tmrwEmLDpzCIn`OzZyZhw0}za*|M#rW=ViAw<=95bXvl8R~w#Ex}n@c!>D|v zUXdA1%6~UTJ^M)Bx}`8!PqVX@%xKqU;?VeaFQ42P5h@zD1teikP>GK;8Jv$~o+9FJ z<(W_n*J^b^5~XT6HL47CRmCjvdeEVAq@yBBr1tFdPqkNbj{Ze|^~|Fo=g$SIdbkr5 z4A_oE|HQ6M{NmTwfHGaYvE#j*C6k`#mSXqmb?x|@Kz5rT-9^88K2h57a7z+UjBXy5 z^X~gLKu=>15O!-e6q9ozfwFL&RNsNX*Fg;j1D%oIt?2_(JQMlT9Ku+^6CrW|+A&%N z-OTie91s-RR}IF!62dD?k}rj+|JaK?CRNmiz`N{+Ako#sS@o9T@Q8q2v@rawH%9xC zMV89Q7f~!%<+XK#!^kxM>BhAxK4oMzaA-=K`I7N2#lD^F^UJA5aN>C6SAmU#-3qj| z!B>hJs0I?Cc?$i{k@74-ezu309tVYG1OY9BK=bZPCL~PPs0F((8!lsgfV%V?{LR^5 z_=db_jzAjwHJUbq_R5R@^^{X|gk2Q}TeXKZiS)|He}Ao^va;k_yJ-U{?nwa@oGi`JERq4z;f%h8Tspvm%xhJi4SP#v)i5#&37s zJ?}%n^J9kWFd~T7FztD5k?N;w+ib!yHPqT?ujcJTKiz>@fGf`2S8nX}kEL)^yu@@? z8)r)pxf(s31+$($2KiKI?;ICa@eq9gl!T~ zA%m2(--9o`xcf?<2r6r+q}o9~uqW>X9Ni%6ZPu5ED|(+K=UoA2MB0fa=^2i+N7!I@ zc`b?7B|~0l-wWNi6A&Gq@++)A`I57+h_%0bca%=`0VOEP46(hH=~&)Ut5oWp(1YZq zucAtSM!5hzqb4%4Z`kkz`N2IdzW@YC&Xf>KxR)kXntbcn&ymXSgRY*8P#+FS*qOQY zh`kx_+@(Q#4VBH#DPC29$;~>;1|=@vDGrwbZ+%f{78Hc!E|)vKc)nZpgE~KTUX^Jp z@S1`HrbM*Pe(Dh--`&IS&&nB8TZu9IEu+<~Ne4Uiu+~n~G1|cDIs$XiW3B`}J#7?4 zY5^Q3Liqcn-hQ%T=c)I(@2@u7!(Nat_*P?(*cwX$0r*(92N`kBxaPrMY|;EcVF7JRC9aUa2?wn&Pq8;5tW&4W1D3ytaJj*BcWo_&R}(lld!NWKMadlGILWSFa_v zUXtMtvjET>!qa*8HCW!R^%!-!*1cfu{>I_TZk=ay!EMHE80E^uliW|K2KtgTHm#>s zD*WT`^Qou)?80ZIjWWv8Z=aMmCVaf|t7$h2!<2Te{Ui6Kiq0kam=oU-+Rs0o#E#Nc=TLKdd_U0eP5ZPQyPmp|ak} z^S%EGi~brzKNV1z(#!=50?m?wS4JdFJWgkh$O$Eg;}xqc)wMUT>VM|J1|3E5ZK4P< zP(=U=>&%q<%wO3%sG}y`%YBOe#S5P{P*2?ZotBriDm`AIwUPbLUa^ zlaG!RCK#X%QV2lPutHW3tUCwzERQ}OYu?2k5j+#4_LnZm*$4 z3)&z7x_@*1Ic!Au7-ZO1gFu~3?$H0!QsUyV^M=4}sKRrAslu0>1NO*U2bpM{p#Sd* zE;di=FOj^hy)W{($+0RwM)pDfcwbU%Pkzz7Ndz}nE#*6ULEK2TBpc=xbJ2>u%+G9Z z26oO^5Mk^O*b27DqoJQJm}}N7zP%3Tv%;hm!v9A>P{M@{!|;nN^VY7Fs}FgzMcyIQgDa8v5+AQ4?jCI2`w58A#2 zTo8nN|334drgP_pR7wUy;=PMw+mM*6`fOAJVsFUv71vfGLWu9?J>I*WRtDC5LZkZR zPM&r9JN%|FTk2Y2FT_U1@Odz%MzL})Th&ME=HcMk$Fa7Unyx9EhWFKO*<@y=^1}i% ze*51;$Nl|Y0YRQK5J@X+wOK`iwtM)TF5w|Kvq{V*?3sY0+=0ZZeCVC>LQytl#bJQ> zAsZYpsdimLjFUVkhH%2-eA%)HXdC~Y_eQ)D?&GnOtPjigI1oG`SdeYtGwzpy7kzq}D!ftP5RyG%aYN#QX*Hw?28d&v9`!u{f9w$m(#I?yy=>*XnT1 zB8R!`aA@#%)lp8+Yh;PlZD@;Gj%9qiQgLZYME5)0yaFwbe0NWKALpPKhdMLMov3Fw%=*PO~69@iUGbH@AqJvD&T^I0i*Z`!82SNsrZiy9YkuYhHU z7S1k`nE*E(bJ^w@=pZ`UV=OeA>Fm>uxxWU4zc-F{mCu=8Pn{_IFnSy49U9T_v-Q&M zvnXpoXm-As!BH(pBXv;=#1E$Ud29A|zk2`a7UW(|GE$V4p#UfSs*-}*L#P+8vc+R( z==lN1U0dU#&HHK?hoz$F(}b-+A`OYELbA_#>^H6NzWhx>9VAbBmRH#316xgChE1gO z2{DQ{18>$r4gnx{_4O%i1OU%FPP}J9P0lq{)ZJi|`0yuLA6N=8 zl*r{$yG~>+m?#kC{W7T8#6fs;^e{M_5pcjpvNOCNow?w@0o7MkBYN046S!b$!ZR)p ziV0v)rjRAhr`&PrPgs9gWQjt#oONQ92e61t0t=$ho9P{ZgOlN`q8XubeC^5gSP}xE z!h*nyPTBOtWZ{u>COXj|HvAotu3sKcF0-tCTKWF*LA&e`H&(GVTN8>=`=Z01`(^Abuc1;aRLI;>j zv&&+WUhkU?^I>saftP+xTX4Y$dQ*#`UupsECO(3ue7mbk2sGqAWcB9?F$Ndv+uT@b zMN+bJ;!B>#;gSF8Ritr$je7IfO8PEcY$HzgeD^o}jW^ZaAn1m?YKgqN9{gD@$m{Vg zM(TEF;#l!J$Uxw&`>M(S&I`(f2>SnYcUs)*D0Jw~d2>||55;B3j<6Lh3~@VwnE+P|^5Al69`=KS+-wBlp_->M#@ zVxM67J$k^+bs%MDI;T#{Q@bxCtriPf{x3zV<^G$4QP$MtN9KzQz{ODc@NM4VE=5*L zmi#&FKOXH^sayCZlb|7jzCHq3rfMm{%EKt(W0F<*+0`mT&?D3eBrcePA%Ia9{;awk z>zZo_#dz2AdO@gqIsreyZC)fdEIKH%S9`sAmo+mb;=5n~$#Ym`S&~gK#ERx-$dm~> z&o%L-3BWWXrZ-xYbw0d&W`QQWg%@+~gMrI&9Z(utLxp0}2c+t%y@iIBx zt@tLY@ZKmIp1b-aXW{pY=gyK#g5%kF3iQtV@I17He`Xl6!)B7!l*VtLR14~Aj%8DM z%bI(0je#m`igsLZD!){loCT`|Jj*2i>(}=#IAiR817jS6)w7A^YwMuQO(pe`8ZfgI5 z)?EKtfs%+O?YZ6WU@y z3vYU1DKYZljjS^=^z2cly`jx=;MNQ@bi=IsA$Z7BLG{MJZw+H39P3wdy$CsA2WU&E zO_!JYjuz9X-CUD5f*QkPk43_<+_38f`JVYYw-UCi zq^1VcJXKwY97pn7%W@nd>aRIB$&GpFXhEw)x);rm0wH81Qy>gL7Gk`NDV=0fcRTOQ z8P1l>_SBWK=vN3JKWJT}1XhAA{S_lAy})N%Z{f~mlKBTTJleY*=?EY;CE?7c;C-eV zxJ391@myo+mW60|!}hos!OSGrq2urp5DFW?0@RCEFU?hEa_H+XBmK8e;XzJ$38qgR zA|g!^mUow65_0v8?Mx;-{%*n~G!o_QY~%VLMh;Jr5;mUR)-S#EvDuXD`QaJ0sr~g& zh{lA0-u<)F?X$I_Bg@|_;7wF^skKID^WQ+?SpN41uF?ks|IWC-6dTdW0&mC> ziGp>5#{~j8oRgBEZP9k~YEiGeF4(c@Vff9pKFWT_-27}>P%`-^}Q?#zy=7XdYaXn3Vjbf<+enwJ169)9!(Vouwd%~*Dy{lC04qg~UJc1y>)y`R zSZNgL*YS^OH=i-<C5)QY+9ZJaMymcn!KfN7H;zY7bl*=yHM zCcF5a3SB0H4@Ecgc&wn-%#H846|~;L>vW5wZC{X~d~wa$Plsp9py^l&6AO;#;2Lqbd z;9DJPBj8<57e|x&?uXNF-1n!|EAny)5jF|7poGu%UJD^R@3Q4&dCyp>ZrSacHC9S7 zV-UnFl8BS;v<0NJ{0wEFL)k3D+>Y2aU(N&5{Fs6wp7Nz;&&lZhSpRdTHY-fDndIq% z4fdHvM=)x0x!q;t$l+CZD!o~wM@Xi0Kl_pS^%QUX0ifHM+Rmvm?T$FpC-Jam5jYyp zJB?Z8_!a*B&t_Be#pdxsMa86}5;-Qa#b;S_i)7R3?-)bE3!COBN=(_FO&X$o_(rs8 z^gk1nbrzXdip|M;R~{}K^wb&`OH+aq8xvRw!#Dv+`Vm_X;`_L=6v|Kft9@cqniaD( zA4ELaQG!$7(8Zmz#Xhqw_hpPd0?Z1@F0Fh19{K`_xMj1V3A-dO+yyWslwULk)*AgK zjWebcAVey=OjlD)!=SQQw)oiiDzj(fw`L_J&cbR9HbUI1|Elz?Q4N64pJ@c&lnRV# zsd62TX()5B|KpbSiz0wv47kte&n!rtQh5Y8@!I74d1j{R31y<_P7uR_I6UgiS&Xas zEQW~xlG?QFGYK>+tF7FAVBhiW=T418>QB*KE$5vFIX))A4$8W^7JmZJX@7+bY`!g9 z1k-bs_F75!fDP_DN)gvy5;`(v@wWs>HK(;u^>?-LUl&;milG0toYB{E33l+?1OXdi z40J_J@=2nZM{I1Y7&V}Y!V^D_5^62R@F~B7mr}$@Yg5or2l*%PNpsylRa`ST+^)|F zw7vJOUVi#-0R(LfFBX%@%HdkWGAhnQVtrX-;bG^T&D}eU7RmN1FQJZ5rd?iXUi?J1 z^A13h{Qk-{wS&7qJmX#3B@ar|<BniZrn`4*6;pO1kZgrJKT48@)Fo)n}GOo9I}t=x;k4--btFnBk7v zgG*0q>)?Dn`nc-C6DE}Q-f-O~4*g8gK1WSOM+8sP9v1v3eL9CjhiR;jb9<5cgMVxm zs;6ij*Dp9&jLk&aSGI(cRjvRKF~zjVYIilUSkWlV1n&HxwV(i^kOU-b)?!f6cMFqse6E9+ zK97n$%?S0N{vPnx7rugX^%&tQc0W~AD%JsR@_P}*x<|5L?g=2u;C#gJ&^iU_#$wrf z0Yr6+KyEft^Yh?W9%~s+J?crvo2f+rn9=L1$+~|fept{jMureZmmj=(EVR8Xt2tbN zH|?=#D*+;Ct;e8LSf+jbIMLWhC59+8wG#OJ|AAQ|X7ND6tZRbs*T$OWaxxK5X!l4UBcZ0=uv72UpK*)tH{OAv>l|hFX7OXuu&lR8V!1W()PdD`a$yzA zs;q!>$?s}uz9NhkrhK*56Q&a!BEe8vUE4bSnPKc~P~vI7!;dH${k4k7V3Pd0rOSog zlf-GY(%Q-NYDEeQsh<6cj`F`H=p&7j|5X*}BUB~^NgT=n{>T>ajs76k(CK!Vc*1jN zgd^x?!kJb??{W2G#u-Sm!yv$j2s-!c_)NP9v>)G z7}Z%ZN6S&XBK*xASNoI{U-Is#q2ec1=F%*OkhbwV*P`JZQ{&fEo%7FTG{tqyRpbAZ0+G4pV6e%PSA)BI21Q0QsYVTBa`(hkAGfGG27n?DmsDnwRb^(_XT~ z-QkMMF~X<_ixF85pU6U@9>U0H_DcH3>2$<_ye>>jJDb>-;!oDUsoxe(IjJy@vD{f! z-}=qs!+TPKMG37xSo|c=9$HFE6V{rjsf}o_XoLMl(9ho~-AFo`mNR0Ix8KGbyz`#- z9V3|%Fe)(sM#wUcP~}Z2kXC%&mT)8yZ+Rw(7h+dj1lx7%ML)3GnD69g?9Bb(_444W zT@6nd*Rr?ecwS*f*z7cl9Dkt!$PCi2WRT=@aF$_&P3t>KmSmYu zXTo!%tua496M5R;gJ?W3*l@R;`Uj<*`?E2gB^vr4XfxkVQ&xV>)qJg?mBZEMsskq_ z$|oa17?L0j^=9u$cR-o)l+wIB*rSR?LA3Qnn^@Er-)Hcm_>4vb)G<%tz*I7t405KF z4G><;V?8-s5p@37GF%<^h_`g_S@JA52I9Y^Ap)*PA}NE`(1Jfk!s8iPN!s*&IsfsU z=^j4TEqQ^o)AD+S{|@nWUk{lfpD;Y5)W0&Iwz_cZqyL3;b3Qhu{#QuUDUXUlxm7pp3|dKrk#bvrM%VX2%VD*W0m6XxwHK@WV6U5Xjo4 z?4F8N_DrBWz~#-DhS3xr_pCrSf0L|v$RdpCHw#nf4QnN-M~N)V_9FwD^TokQCild_oXJuDeQJRg-kj`}9Z8;5wAT&-_^x@W_zeG9aUNwxS`sGkcu zZp^OZ5#^*+ShGQ%$iG|ndQ4;$bSQ;zUj@F&(r?&UAI79Ho)2TdaD(x{0FK?^JWWtl0>bNs-mia*X)N%qiX># zSbU3ZdF=!&GLI`78Fx5ZxXXuSzF>S04T;FmtA+sM0yDJJ|Evuae@a#8SM6p{w0!o2 zVF8@o<*Y45;@bi-!bW(7BSAhqL+>ep4edUkbYOF*>6iNRun1m-RW=#l!lNTNcuJ6AH%bQj?9jYiOqvOV=43L zo_RS$Y5TPs<6r0)9mWOg?uOj*J$o{BOERXZz!>JoTvE-;d1 zg^6Cr`Fx{plXfZCo3FEd?^VVIH7^gztw}vg@9t!+@dGND>4-GbI%0gWozB;JtiC9+ z%eJiR*8T4H&OegpXl5RMl{0-Bsb5B87r&Rky4JxkHk`|lY)1L7$?aO+U@Y@6X@Fg~AppDy50 zm^IT@#iGJGc}x^Ycyk&pVq!|RO*Yp(q(WLW{(^1JL}sGs^T?!d<9sZ*swQMaeVzJ;Pl7lreD!L8S_i{saMZl z=m_2${kBWEbz%=cOBCGqc}D9{PQ9_}%jGo-R3=Du&Bre}P5nZQ66cM9f0QP|GahA1 z-^3HUO8fbTIf?WOtC}+SD^^Ik`tr*=9=x-{e|Bk$PZF3S#2BM7(cPSn68E+B^{Sx+ zR9IDQf>ub*mO}-~iO&b>KvJAFp6X97aRG`7aG#6TZA({C2q*&|FnhrvAI)e+_x)*|WU-D4o1VqB`>CIc~N zxhAw1O!Vp(8y;EwF^HLHxCK_U5;0GQ@7U1#MsUH8I6)4bH`7o7o3Y&|4CL&S#38zZ zqijIU6Fc@YtKY;g0I+6?^-nh+vg%(Yuf=;*W!`tv)!)LHnBcVpwIuVGF*F(Ln0;$1 zM=UGio_nRFx^D6BoZolUuU(oa^5zYhel$BmpZS+7|C7Q>hlkz z21Cdy8(&&>UwD?&w?4|@7J`ivzPL;dc9nQw| zJ(tBfz^_GEu4KQyVVqn2TPXgfE6!u zfDqba(=R%z?b;D`&Rbm~Q1d6bIvaBuc4j*GilG~$H*cmskSZ#`mI2*S zi#;6OV)qf53ZWjmkAMTKTtpxlgaB;I_27%zXzH~h4@_cmA~NIF;!U0cX_Sk3EUo0Z zSxyRLWDW=&{L2a@5|k2rfpb-d5}qk6^-gY(QO&xBqM8@Bo#pZNPx~ErBVY4cQZZS% zfO~h~C>V%tt8~BrETh4b?E4NojVA09`!~l9nvyTX;O%-e^zR}!TJ-AeV&l}GSQ;IFX%%#Wvs2?~bNlKeQ=gWGdUw%5MCxa(wu_lHM zXQu)Ur{ip|EsDQy*}N!qwr{dqJteiV#7}a$O7#d=PTAcDLO8i`!?Zb6+Ex8~%WQjp zY`Kf|JOXn0ncVx|dJZU(V&T(Dyqm$+%_Kl2gEBqzdCro=)TH!!PNb|QR+gC#HP8S1 z+wqUf_6~#TyHo*#=`Uk2EO!YXZCx9Q=L4_8W}D$6)%#V)cSTqNWv3ppkM*qWZ-(s< z(HJ2nv3Epf!@Z>im5V;dZQs%Y@qWG&*H*2R#@qIrwToh`Kid`C-W#Ho^w~j1jr=dt zpJ2WIgS{H??)aY<$?9SSg%JyUdBz-(;S{9JBkox<$xf4Hlc_lrJInpgg9Tl$IeQ}7 zL>dU2FZ`UNYi2v26%0Q)&Ffll{t``6FQ8VHsnh%i55J7$gQ0KRMZO|ek9~gxTQ=NM zEGit!n(fBr zU0x`=`tv5@pUhne=V(THgmfBq)X%rE1h{y)kBd+=(8~3bdqki_w1$6PNIazYs(r`4 zr)`XKD9rLV!~c>(2|=Bx!lU44)|%>sBjhPIGUnET2OSEk8FDxLh{VA3BiIfz?a}Y11Y_T!hYzbZS@x5G3yu5@ z6bMh(xiBZ>ypkKd^20~@ZwL6}Fp2uvZu2SWVcwT}x&$53T8{bUgDVMFZ)g%%p^^ok zH0MMN-|#bQX#F=qofyZ)%zd*VH{B|)0y&tgu>xISH0gi$iBhDUq!rQSwy@6%wnUIX zFbJ)7isY(yqAbq!)eeglS;w#y5#ra`DRWrK@^PlgO`vaQ5!Clm17$^FlIPT8f!UK#yU>50>ciJOy8_ zhyDs@3l7|;Y-%+pW}j@^4g7C5i{)_ZC*rX3?0$r~jDC|KWrsbb-D1db{$W9{IZ+yE zZaxU#WmE2$BRy-lITlfBZ&Zt~S#<&2-@18>o{N~897MK%Hy&c1lc>HnW5y8tv`Dc0 z{+@!n+s^I#U>z=a%SWKQ;8>3_(}M;@C&W76(7jTfaI|HBjojMamCX+DVIopY8(S?b z(&0BCQE@5=U$TG}OR4Db@clsy0a_J0JQDwWU72X#bTa1ygSuOiT|&RaH4-}YSB>K( zfYY36zdIApEi`XY`m>^)|C9bO~;m8uFy7DMi;i{quExTCL`+9r*|IZBQLdwlmZH`+NLR|4>P_`>{DuYiuVppJrJQiuVt& zWhOji*{Mv$3vm1&=B#d|Qcpk;A-M6eX}8d_PErEn=lz&GdE?sn6rzZu5BQs(y0Tw+@v{*AL>GLa&%OLcsv|c@%fl9 zUf*u`NP#QxK$?>%+{znZJXis5RqIg&VKeX# zi(8k{|6tj;wZf|$e|G!lEPyu&@l4~ybjV#S+2e3tw}+pdNr+!BiLJ-Ek=Ldmw3^{p z(OL!MSkRZiNl4#--L$Jff-hZR>csotGe??6?qgZ1N}Gd;2sFOP%ocdjfB&Na>PC;3vJ8C z5H^9g+)9LyHQ&`0!ql7e5X);QzP4#03B+!gK7R~hLTZ7%fbaB*(b@*u<3{J9tWRD~ zrZW5Y&QY(5URn*wvF+~~{+Y+6hS^+3hBt`5sG9)A%3x`2UTD;MC3isjuBm1t#dsyy z{3<;88CRbye|cfJ&^@T~yayO7G(WRbCR~C+wRR4+8Foo_y5%kV=$4PXKr~$DgA;EV z*B4%!P6}P(-eh}CAe5ijcq*+x^68rCCy$22shla>A(`?t^PrTCP@0VgMRBnrc-drz zZt*oH>j8>#>eMIZ<9VUTp*`LFpQ+INEGGW@^eG;`^7qJd+R5%bk5$ndniy>~mDCeS zDc%Y%4hEH>DkuYWb@CLVJlwr)*>KBk6+ok!!tC3pz6eUO59=h-iO_>IjHg`AA(8ux z5(WqxfTo$oRd}6NV+q0aaiuv;RN%$5*x~z0s{>_C%IwI=q#n2R2qQ)xAMKU*k^7pS}R-PNls!~A-go-ecy0b*bu#(xNKwu zXVaF#=INzcoG_|Q4FR5s*+AoWKK~VrhM)P_5<{*Jz}_*v8>vclfrQW`Yao4AzSuGq zk(c&%$^g`E&85uAWVf(jbbFLa8e-1QkMfa}LgH>*f5Nq0W&EkFk0+^h3TB#;kJO1F zmVIS~P`g7ll^W1_@fxELC=@uZRt?n@iyF!pQI3`o#hnhs+wG5voB3*egV=`^?wx{Y7l7blKTJ2PA&pB*_1^ zy})h4DQq}8de+*=^TK!@0vYCRDQ)K|mt}B}D;CvCL`jXOR8CB%^WDyvW)AIvRHP@_ zB0v$1SXkk{*Eehrm~v$&5~>vfkZ=ZjdMbtL1^d@N3Rdd#Ube#$3M?^%?f0Wr21}d? zHu9sWWCpA6Id=8z>wddaA?4kpH@>Zfi#}Zc8NPSOmxz0WH@w;wC#1_`9aV~6hBmr= z{JzV!+`m?akB9WfKJ6yHqT``?-sc#BCsAJcE!}_JKA%S+cG{=NX`_wH0dM9HWkp9c zxs-utu**lSZN#`@zT500>e%0hm0D_z@WBTe4gLt0weRS;gaO6&w4+$?Afp8q7A{ug zXWb@RJp6W$4P^0=NLseoZEGTp$)MYxsQELcm&@O^yJPoTH7W#syEKsZ*QuL%zHUF0 z?8c%?&~R)$^_KteGApNxZT-J^*cn8se`cc(_$^CfjaR=AYgftfP0BcQs!$+|>I5*dTse93Rq`r#|tq+cdD_r)q2rC1Q@CJWUk*`dH+~ zc&5_6~@wk>s3S?9-`GBo6|qZx(hkSQ_?DuRGS)d>td#y zvY#Gew{V@E)0X2;q3-?HF$el_=Q|`1e1F-bd|9j=dq3W1HqcPixe_GE^OwPI!1%^Z z>>2(PgOvT|#l?*ABtAa3_S{r4*q67bY*tbcJr1tg9YSWk7=FR>T87(Vo3v}8blqz* zyDQOnG@vH8;Mk1RT?-jkk{VwWFFT|Lm)QcjYT!FLFo-Z zh~UbgJ!zBvc8VD3UaJ;f%=Q6Fgv9>~9AUhn+RC6&iw$;;HF2JaaHdydQS@e_3V02 z#4)haJNL2X0d~GK&cg9Wh7v&vL7*X{FA#Vn(e+v?nb-Y(tG|1ghw7X~>iBkicHL2c znyTsN@y=6w8!Q3ksbCpzkZ_hDMUhrC^$amjOJbdB=rQidxthwnkoc^9)AeREb;hx? zk-iKbutBhn7JB$8YUG7N{wuLvX1|S)QT!zAo6LJ!2rTJwjekJ^6FSi{KKg>aO$kMi zhwOcnq;j{W0tUNcGiUNVO)dma(F}c)IEQUB`evH)YOcE^#h%n=(qL;u#J=~H-CD!c z8eDAfDz1U6ICTou^*ATx>vf!O?Pk^k_ki($Biy#NYhYQZAi}RvNkdCKN$$Q2tpLbz zltZFfzuBqG4d^XbYYxE{JnXX+M^77)NKS19WY=VGpZ-k9ZxhB}9mVSIIX(yo5~}Je z8@&jd=b0HxdI$d4)OTSV=_w>OLWa zh4-T+?b2w;%1?DnEXT67J-nSn>@X)s!V2(SzKezC2H;*Xm4nq0&FBk{7b!F zd}B|RJh9_XIAv5UfO}!A%u-_%4VsZRn zy@3>4uQ-DqCbssZm*DPsx^o|N2sXQ=7x#gHT6d@0Vb_i|ID zJc0{B-(!`*A!LhM$Rt%xU!;yXIS?a?{>Gwk4%!v<0fp1UM$ovr;zbpXx-0uZ$a#T1?52P3}CfA+VA~Tj8gifkspB zgUBEr-oT~z_&i0}^DfQPKzi7EVU8MLwOE;P_gAD6OOyy0#Edizb4R+5D?X{@ zwgEALB)tvPuhB$9l2NOky!z8u|IDc#8-0=C#qIfSzW2r6n=K-SnWp}Qr?c;W)+zFp z!PgdPj&xlHS!%iN?Q8my%>+Ql5SwWwaD1}|F8=@cdh4*J-}rCTKtPZ#rID77(SiyL zMhYlOgM?DjNQb1r=#tbiU?|N9>245VbV&=Mbl17(_xGIZIoCPQ`D1@@ZGJXCao_Lv ztKP?ntW;h{t8-aj9OfIT%m}gfDb}9*+kUL=D~8lk7R z({F`|&0Bp=Ib1oEA%ufI<2t5-f7S3Rr!pnbJUbNK6rP7z3wI;{!i3RY~! zCK-I+DG#CHIO(D#_WAhkl5`HZ?u$b_B#e8BSLBO#jzA!io^Hx7$DDSeKf~4YeqX2g zHo|?Ty4#wu6Ak-Vc0%m~6B%Sr27rPj$p$EYn!croistq(hBeMrDE<9y8H^EH&raKT zKTE7U?Rs%AE?#{m)^vMa+V6M)@6R3=nMHC-c9377JCTWQ=d|isisls5ryS&CfTj9Y zM%s}wk)Q}K(Q+2j8zcmc#zWs6&AuCFkPz!C@X!<5x&gatx;zkQSe&JPmnvFiZ9-GR z5o5Tps~~@FZI4YyDO|56%k}|@?N~UOkw#JU6Yr;0Zju^g%J|xn@%rEs9OUmvoFbyp z#5MHMwiT&^O`7b0{0u2>PCGy+csrJfQ$(5fjg%BVM}^m#8g9py%{cezwUxz%F^-dw z3@YfmjXpo{4UctvX?=GvA0VO+M|o!JN3G|Wlo<0o2qpirh!fVMK3q%s4Ef7tsEM$u zo^>CQZ@%WQJ5n0TVm1S`DIpPQW4N?W4&%#m=b>4y9_7v*l4}_{;V2fh!@oZqxtP$> zu8viu%>5^vmKcNXpyOB!Y!jx?ir72bYSLu4 zxtkO_DBJT^3}MlSXCR^1BMX`LpT}f>U~oFj04b=0tu}3+N-Pxex&Cd6rQvaD2rU5w zZm%+t@|RD=v5xg9ZahS&lpWZ)4%lp7<}fQi;DkvNyk0oxwXq2VqsAz!_y;YO7Hr}G z`{LS61qxIEVWwNZql98=qI*5H5-1u_1rNcCp&r$vAz)M95}Brg*41j8`ie$$#$Yh1 zKud~nr=(V(BIm|9h1b1MP-onm93}S$6?hi=*EG@>+=fD5MKe2I8P6@3cG$;9jMcqx zIKU3FJu@_&`XIMgDoxaXyu8ImSgNyeuaV@8MUDD;^t}XL8@5Zt7>1J1#*j|GJDs9D z=6O5=Y`pE~k@Xhr=6Go&I`GyfHM!iKZ|7ov8H?T4huNJ@VZ)vIlVcpYlVAr=^9&eR z>be4*&b|B$XB9ifv>A&8xK7cUDySIlKMH*C3K{w$g&Q43KLbL~yyB3s#w9^9;>CpD z^e@MUhC~<1sG(-0hd{QJbL*Z#NCiJWl|Ab%CxAkz_rGf=v(Vz4ep+GgCc(QX38Lus z*S4;rrj;njjffhukXA9oyCTWo$?V7nu*(+)XaoyVkaA9n()I3 zH5=D5yrUb(sTuR>D-I;D@_2u`8@kpbD zM-1jg697dmd8bWuCZOiGmwk2Kwf_9lX8SpFI~U#Zy`9Njoec~?8&-Xusp&i3xo(+M zt2FJhS=Ob0p;qTIv(r^jR6SWMnGHyVsNO6vjdsBL4h547Ty*ycE0gnpCB7r+I(5 z23sE$+|Is5ZmB8H>|scKPo>N2cp>aJRP=!i#d05*4zEX+3`eFs3=Rm++^6-;61>>Q zrjQf?)2Xg>g)r=sa%1|52@Y73;`vV$UiOtyFmwA9*PY`AYTOfDie|M;=bMkb<~DJ_ zbu${KJeAKOz;?0&B+TBgB!d%M&?~W3()F6^i4Q|~DfvHFYRKgth_^z|q!vEY3BtR@ z$oM_8+a0BIW2U$}mcZaNi>Gs}5N%~^(#R>Gbck1g!~9+dNE3{FW^*H7?DVk*naJP{^!J636y<<7=7nG(Gg^$U7#f5i{9P-mkfGH1~E z>psFz3gzCmt}_y!-(!VL_H@IBdEftpi_Z<6_0^~)n%!DJq>{>i#m^uMDFwq zK6f!ULXgjXGJZA%VY7Om3TDMRRzNj?W-B z)$jiNPgwXY+zpXFZWZ@|} zx7ZkwA)1Gd_)Bk=2F*e0@N2?pcW#ep7H)mG(b#K%0}T|vn=8vHWRLeU5!GT$1`){_ zQ%+jUcvz<;AY)>g^t{k)vU}A#4`rq=OAwy6l5C(m|01%MR%xutw4}b9ER0R7?Pzo( zxHT_3O&E>t7FJ&FpfRx{%GYg&#m3PRloFOU`#j#LLm@( z#}sic9)Q?Zb45-=%ho;x5kCWBJAn|>Fyuv@Lz8-CUg)jp_iR^Gw|2Kd42kZ=>4EC( zC(bz0T2b0_{;ireS2BnX=RC3fdT1iuIj4u{XzYIo^NozTWFcA2Q31Pjh7A^fpE51c^mSM zK-gXj?)W+<_nV9o7WZYv;fhXLTNECn$D=hGR?4bfmho;?-MWg(6N1Nj=#U;6G5GD} z%{0-rnPa+id^++_zUX@ERi2&l)aVM+@@KnT&KiS}0*xryi~SJ-Il>)CHij;5If7K8 z7=hb=Tj~j|5A{=#McOKw;XxltLtvjiI*22v7YZ`T?T03%h_cCKHR{oyOuo+6`xAhc z-hCH0-CCz1rxne7Cic;iFGFmD*bgya_6!kTUG>r@rkjE(E`O1S<=~=;>EeaSlG|J8 zl>K^n8KC^m#~XdUjj|9vT$Xp_-j?@pY=9|=*2St$Yz=BJZZFy?J&F}bl>5UOd1a%x zF$JcgyHG%$PRRgQ*)K%o{b}xX&SNC6&;yf+eH~l8k0ZmZkkQ!p&fxd{_An$!{fgpF zlYupYVv+r8{7#Jjd7E`Mt){fW?^SQuC$n4RgHBxxFT%NyMHZ(>##k$Lb$!sOH-2D6 zC)37CM8M~bMFkXCEu#|t>NKeay_q@&{Yk&+xO74d`-C^O$g zrhCSaEj(2mQnk(}%! ztS%qVhSOG3j#+U z=uypn>p9{_aHziKIMO|{F{3809&&$3a^D7u2lu3Gt>en}T>UuaxcezQ4LR6#tCAcd zT7~89qgi=MpT8vXNQZ4Wj_p2J(P)+Y8E`YrcPieLAWE^?%sXWGaWAKUXAOVi_e%7_OX@FL^H`5Gih6cstO>e6=`Im(BPQZbTPLt5IdGbHpr&)LpW-E z^lOUj&~V56M6YeLm4p+6;@V*5DENHN1;v_DPYRHb@|S19*i()@yx*6y8*X;RER>Eo zPNA&_76RD(RlAzE>=srYFA9EN@43M}LawWYz!mOQkdDI;$7h2GJfr1R?*-S2uHhCu zroy%q_heyn!u0ubug`hom3u1riE=0C4g;RFbus%W#PPLhnzt2>dkx1Qh_x^I+N+Nz zHci=Q&B(=?mf%vRJbkgJikZ3UKa0fY664E1~<6u9{4 z_}z?C7=)hgW3BlXHYy zibuL$Z*>82QEwW@b1!<*`N&?=w>{zcpg5^HyYdK1`rMria>MwCmFjJSmz8Xpa?)qx zH;1DzNT4v11l*R&UoazMfR)nI&6r#RT;oRijEKKCT3^?UP)EZzS=$D)ife#O^&kNd zz=HP*$h4LgLcORUur9Xn*=t$}d0C!g(cxe2fA@P35%tQ@se_9Bt3I`2L>g$7w+oT~ zDF?}oF_fT;l!*j?PipCCwUH+M3Crp+Y??pa0Mk$eF^Y zQpo`wPBK4+9^Kr7q4kHJb{k02_g4S)`n~aILtUDAx^6F&(Z3?;gxbLFv$6k$o39CZ zc+e6p$~D+Ll!{~CB|>aEI6YJQu3^GWV=MsgTh6}_+SV2p%)K*A)@u+d^(T;IX>kW- z=;AtQnX+CUF1OMhrH^)M&#wlPa`Skd5aMB`osV~urIa4F8Fy3D^4waPppJR{N7?vk z@=KZ&oQ(&TaX-ArsD*{i2rJ%bk6GW8lnujc@oN6r667`wHAt!CSD998l7G41*3`O# zg5ki`Pdqphl2$TqCg7}3c;hZmeTszj?c!?c2HL+hnZL0SCUBOZ)&kwXDj z*&MBgt~2=w2=iAFs^onmV=p#U(_h}l7V%Yo0Ze5qpGr-Na&&Surtjac2uOGFvNQ7> zY+CNP2E7?^?fxw%^T=`N;kzfu+JGfWU1Lj2TZyb5B-1L|QNYF-$WA9g3C0fEG5}R% z@q@Lp1>8W`n|2du-N*sDNLi_s{r~kAU`s|KX*FrQv?@%&$LYag05$?3%Zq2AEt4_& zr8w{&prOv#`|A`VinzXa#wiA{#nF>!0$Hp>~ri-{t($KsiMVn3AMZD3&jq4s|# z%5r2)h3Ks)jTGRXb3;0s4|8kXe(RDsP`hsqXfdEI0LC687qf5;K8{#k4scj_;s%;p~FmQ`}wMGcH5b@54+iH4&_Y!55RoKU-CEB zl$;SFcqGoG2)+w5Y9VcNF<#K&MtFfq&lqfr$HU`4ef}My@hX>0ye$F|i4uCe;s+GI zZZZos6|wv0V2-0MNTd2HYw1?^r%DH_tC3}5>$k6(gfi(vKUe2+^F-1Ye9p@BSp4wC z|LSrK?G!JvT=-!4yB^1cLJ(us2wPItE*j*p{XWa_NeK;RIi&a5ZYdzPb)$kz3`o8L z_)a!IUZSKo{l54C#g=#^2i*tNMb=HoxS>uptIYY+Pn7S*9JyoXKi^JR#0SsP$Ps&fbq`uQLd zS=1IJY^+C|j_VHapYhbmMOZ7U$JHEVd5>OQoL-@gu8#cGvz^-4V6COJt9&-yB0bd( zjVDl$=&nEJVNWTi>>2(b%!fn~KmC1;zRKO;$eLG_160;y7{|M_YuWzBx>feEzln%M zM)%j%!;qn7RWLwoCSFYEHb?=tSRq)0uyc(I@MA5!$=k(R%@krZW~g5mDbI~K2|rL( zT8g-m*;U@V@PQ`12;cSq7eMtLRNlvBL|q(mBqtWp9V?+onKr(%C381LEI~0ElK~O} zPa9EdAHuRv5JI4FCzc`_Ww@#f{-;S_Y28zsPmG~C7LR%)P$9rbr| z`x=~*CZA)JeKKM*E3e12%3t{@lR)y;WB1;oOy>}tc0-Mqr?!>ATW+uf;g-ceyU*R= z{7|4t`5Zq6n;MxIVNnx7yV=eZo+gpHB0#LI)V_8;&07MqJnCkRK~Gt02Xo|DtC77g zbZae~h6mpD21Xz^`o$|`T&;|CGQ(6Hn23b7&=bZ6oURJS_cH6Kpo2`^6+qe`Yoj87 zri<#@vqP36ZI2b z<{il2EEICw!gS-3g)MHUiQmKvq+lIzBE2K zY~7u^gg?;(KgN0jV7P^e@fJuj2!MF1Xu-(qLrud;XTEo*lF%jy{S>M_ln+g#+e9nLKauYsPt{tx`GkaL%z(&cEok{Xbwt@t0{lgO^&3 zLQN%=SHa*qZF>TI_xD)@R}dc&jDi)S78L4hY7T^n9&_K;29H=F&m#%`9a--^)A>fg9JgPvMr6OZPfuo%3HoNuya8C0x_2 zCY{4tC1I+9-!H}QL4s>yez$C;NMXi-17KSIS!CcLLgnI1}_1iUJ)e> zX+T*6@g$H>ab*45Khto)wrBueO<>msGIuOvr~)(%fIM8r|BsT~Nbx%@_}|}he-3DZQ&kJ+-4EPMY0yl2x7E|Ae&qC5hJFkUUA! zUpqZhrHA3Pw9bcIH#}2D1e(r;-9I~4@_Lc6Iml4~4x{QmkJb0LgzM*G~ERJ*AwQ_tl~Uj*E+kiyQ_VrxUjEHztv9m|DeF zjZ*3XU%GxZjOjb2FM!1bAcS~Gb&KDu$I(_eW36JRvU}a{xwb77yX-=#6lwoOOU|cs ziYo@-lF7Y#0g^IyRdQ9A42dR_FF*h(zuqW%(jfW%%+S!&Q`G_?^G;Odm@9yy_;w7) z{H*y{AI2KRxt3{F&b-9sp;LzDwGRLLfxUF^a z7V%aAEw z{1qAuS!}{m@@y^o0{>JRP*`mKhy+?9EVq9M`u2@kzc6;B)_V5^7W2F|uS<&6M z&pwVfa&y}4$bs}8?Wm+!wDMfV7S%yNwfK9+I%a;qL9f-acr`iR5|8PyX=VHo-RlO`kO?+c(&I4Gm)R#5#wTOkr}-*UotKH%V=BS&*O@I=afVc&TR%+B~E z?#Wub4q^e~-hUK%ts843b5C*tTRgt^d3E1=mcV(1 zT3R}Pu*ou5%2(XJdavbTBG_?}S;N2>zf5O}aja~@jyOS-nKV3RSDopRk`2#qpCdxf z-4q|nVpg&KkD2~PVS!}&pN4T)PnektX|&oNXV{(JdyZ@Sc!P1}!+{p|RLWns>^5c| zM2G0uYI_*b4SL-zC!o%)FL$3nKyzuydN~4uZ|aMkiI; z(rcMU(pZtTgJkUNX!*RTc&R;mqU(BIrJ?#xO?wK?w`_>3Vx}YDxN0VNnw+QvLc%keL+Kpq%Or_B z$1{_uA&ce!7-t%eWMlOLbRXg^)JE;68rVBB^!L8|UsmW?-YjxMTIFZD51(*{+u(Q0 zDG(9G@nv{%=nz1BnoaTPUBbO&X zy2$F#eohGmES*0$wK&MIjg3pYKQRpW7h+b3DsNdZBtxHE%LVv0Y|{+^B6kC;MG>%B z6~H8*tbaft!2X2YGr$%i4fYL@|Mjki)(DP(%_1PdL62C#0IY}~jWPXz2j8PP-`Al4 zEM(ZfeJIZzsOVk;PM)vwsYKs<5DytYi1JzVJ|vw2sRo4$nD_-WM{dKfkkLaXsG9(wD(jj`uSlD3M>H3W3duQ%OV$p#xi?VGKduRPtnL*|5E&CUNa>v0fn zuGh#K7A$&D{6=)NLA1n`)v;>MJ)J`+p_RH|P3uoNGYmu86nPD;HRnfeuzO(XV_?-v z?Vn*1L0=%bRlj$x41WyzWh+}!$O10=pAmApcOOSIoj#Q%#igNlC|lUBi)&(B`JZ88 zH3bWTP@IBOW)W#M=W6NWK-c!|@tG-M7xZxK1Vp3k`@-Bt*yYm1p4qknyfpt-DW5Uj zO446&_I#j|{YQx`!M9lvur(D}!jzJ3NU&L?`S~#u=4h!C5{XAsmjJweZ2iQgS9@QttOvW;cBP}G z$d;eKMiR*v#*dYf1TV|Ge8czYc)M{;8lQDg9N^EMP%rzH9^T)DYfn6CBBcLQb=|-M z*!kkr#*O>KsvBSg7KW8_qBFV{Nabv9ao4XVJf0ciZ2WmQa{T=nu*lfkdQ>v6FMbHk z;f;sdG86GfzFKcTJKD;o!zxvLLx%w`g7$B<{Fc=scACi3i`$-WCI_g)->0;e;T3Sh z{CmR@Y1kG|9LmvF^{7|0?sE9o((jsDn0MQj#Izk4?ohTme|j}b7ht+Jc)*RlUD^}8^qYSNvqVTbdQq$|=MW4Xy{ za(o0}sp6^`XH^DVGcqM$&3dpHa31X#pgO%Or7izZA=t=$(sC-VbXF{y7NXJ>$Pi8n zcpj(N!$@YP`&9ySwEU>cy$HKq^UQ-t!W5e=oF_u`S6}MSrOydi~zQUaWJgx zU{6yn=?M(isr@0&wE|6iGH9FKPH2y(xbtu$;jcUP3kq>JgKjMxibt_&$>+1aN+G7# zN~MO0)wK3UHi00*fgEMnva6Gn{LkUJd_A4EaQ(E}SU`YaOL3g4&XCqv&Y%+pWL%q) z{dx)eItusB-KXU?mpChcbP+)3&3B?%A&PUv!Tpk#thdo7V zmm>f{NKCz>h4Y`X`8H?~{J?nxysNr9Snp-PA`Za66|jI`|DP^{81OP+UGHd%O!ELw zIKbP;!H4bt5B~@VIqZmD8N*%lDX9dk)p%?S=jUK;2t{?(mGlptdKDm}^1j)(m1J8j zEmm21Ooq>HkFIpc1W&6K(ELA7;Dmgjz0E3c1yCWyXOy0iTdw8Dp0FMbPq`fCy7CUufeJ~j~QHve0V)T8&Dn~n{uPI&BeQ+wlW(qU4 zC4($POYqt#2iZz34$3$^mXM3Qp;>Mv|2Ai`bnn^9sc8CYL3KAU`pNK+YrFF|>}%Ve zf>^+R$|F)663<+3P%4(Of}@zkU=s7Pk@T+zZr%uSnv8n@RQn1X`Cf*%Mg=MiP~In&b*1^5Q_X2Lhty>M=tBB8w{eUx88F2Lh> zl+coSHf>(3KEdkWL04VSgb(#NGyQ=khPMmEGJKh2sl^Ak>%Z-0N&zk^cm+~O4t)7z zXM^`PWd>yI?Rc#SRz8O@IvY2qhFW*1{~gh+NYBgESLvR3#8|FV80o+j6osLLEN9_{ zmw|xDA2#{$O{s@PXd}P5M;`ki5?&1_Rn)gHElo6ii-ip#^@0v-Xc3RGVrLoHr$DR% zKAL}avK$3Mrp(5RXEEJmtOTAldjKal#;}!EM$lHFIV+e6SDA0gH;R<(;PfP)1RNWZ z=tRCJ&RG`8WBvZUGy$dvgvT={`snMzx}P~G5bP(^T!X>ZRQR0vz2KMq9AIoOo~1Tc!+!uuDiNC z`(1vwYP=H&9hZpSm|JT~H1)2&-u*dY9-{^7*e|Dm99DU^`ae488wN}J6d?igyB`&3 z5t;5YTE0NACzVy-axO*mjqfk7g;|N}+O?C1nz6#;nvzkhKk-8)K3kM`Lm8u9T zR<=X|4gKH6EG~exflbaBPPnT>Iv8Wa{F-@(Lt$!AkjSVFis?4Ex10~>xV$`Sss^fs zi|>zPunA(2xn$-`ja^Cj(=_5-d}_Vb;bHWxd5g*c-jv-VT?2>Q{HXwLeMGN>Wq)NB z&;e9h<&iR9FRa7`eO>b=#;a!WAT^)d5-456H7@8ds9&pbV&3;n&H zaIVg2VeCKz7H3qtVuNYi|Js=NxmY2~oXkZasUgn?WMYecvJO@PPvXdIJS)VC5u0n& z6lWe;t?POa^i--cnXaG6cAsxx5wP@HEMkC-cgxV zod;Ge9}-~RF;nQboMo}E)=OEL_x!KJNNB$G7_*5U(XiQ^C>x*>jEU$%;c=;8kbj~` z8SVV2Z++yaD6N^S6cGS|IQpNk*!6rce^+m*h}~#+Xw;K0Au`I+XoBt4YVnl#m+=10aFa0X{yWQ-h88E#TyC^~9J3n&{{>{m-2N=%|gM zDMj^%g#}=@{6|j#1CbSDJ*w<{2>PF*$$niCzILt#2&*5FX+YV~xhqfC@Q-1`W=>@7 zf$pjYd~~%XlD3b;9$b@&;u&gW>p=IE@rFelV9}`yEM@l=X7R^(pDXRWw#8X2sDz80+7b?bHmMh;%_tN zlu%0F8Fl3_??p*P-~O4d9$$x(7wkSfD|$rifRvqVz~3s8mua*-u(VD-)TKxi#EryXFrsnHEPsDRQ!QeyT zw7D^nWhW)nNFSY5E{b|ML3}R+#iPZFt9fD>q5DDY8#Cpc_twLUBLK)5aD6Zb3IZt& zDD-FbeDtW;w@)CODamRIQ!pi#KC7opE9vpnxCIwh!p#wQo+y(k>hvmMc57m(BsuW| zb^`m!ZDCjdx^ta#(@gUYl;2kCGDmqPd?P1DRzF`{1@q`zX!y#I!ucz}G?NR6HSPBD z*fd=nek~nAE{kOI6qdf{=bX{3JwZlKEGoCL$cO$qjV2Xex}(#$b|)7&?1uE$$_Ufj zp^Z6F_=bm{{$&E~&_&%4Zs@7HZUzS8;p+E0hEg(g0PdQ{j%@gF!GU;e=1mU#!7vqe zeuPSxsxODS&+4r1MEI66#pQ~_<{Z#^qyNMo5{b{0wsMkQcLk0nT>BZj*+KS`T4k)9 z9o?Tc`e~1H3OMlN#cu`)$E|J_){;RaD1aDk-Qq+&&h8DDTz=c;W z-EZxw>d8B5(ojC8J+>OK-BdE|yf#!KG)Mpo(@TrSI_)l|g#o3(t>HckY&k=dcCHH+(aAo4k@sr|&3{Kk=Ooa=t0JfI& z1oaTT_5L*I=^CYFdgjyJmr~_`y;HpaMRD%a-M~a1C_J9lpbSsT1!#bQdRgcz8$QnJ zycsh`|FK;n-Yqf+nC3}Nl8ygl>{m!z#C=ZdbmcwLkGF=Kx;aPeggFY_oL{~1O{-9=$WhXp(Xv3|{xGHlO)iaX zy%<&t=e7S}ki?ltt4;D5DD*{@Y<71m2-*0_K#rig_$&A)QnEpKp&R4$7ZS>?G-;)8kYiZ)rX-u~#3~fPgIkLWTFjS)f z%#3lZ{9Pmy%30xWGK9>%UMUKZ>NhU1n+2Eevt%h5`X2&1IOwV}ofh4V0Q|FxY zC)4$D#E`xskuSb=l09)dCr1b8Be9Y@LG#y7jI>xGdz;~Z&yI_x%D%s1N zuVdIV`z)shs7T<{dvJjrzGym#tmdN|m^pWuJo#)JU@0$)lV zOELS95ht9p@yoI_VwLrk53L?%&npmFpJ6HSktn$~zn1Yunko9jTM<+Jnv3NARFzLt zJxJH100u@=_0jpdHAQJQnZF3r5`ZzSK%F&y*+OhEX#-D`3fnR;-dOEJ2fNKV3CeYIhFih8Axngcb?q1$u83^nly~1iTXv);^tw)4iw_VbsY}(*kLmH4ysG z69b(2t}dF|nPkBG+*Xdy5*ra*_m=n zko-^I8vO(_NBkx#jckit?G4PHBRUT+&Q+u+UXZQHXj42R2qgeTjW_Mj$}|<`T`b#6`wo_ z6}oPUGfaVw>bn&A#V;YK1qD}PmC6uv?M>OW43}4Xg9=k|X(yS-PtSj~Vi27oX&?mT z0Ym;yp5$;g@jO)&W=Lqd^>)IK`x+)1??q{y5FBc&KKCZC!-(j)v@w(?hZITOm5T>| zXQiJ{wNU+w^a1q!m!ZKA#7Ou1jY0 z%@JFA7A!R13dP{ZFTQ~za09WDc+e}`J89h{g#a6EJpuN!QvWRO1IIyEx{#~)=7*|>tz#e^5YoX}9Mw*55lH;@5<{-P%iYzYRyiw1!vukYJnM>)@$<$8wnR;=6K!XX&M32#Rc@FnqUV3c$0BJgxD zr0#}6Eyi@Kmr_pm+n-}V11on~Q-NB5GviQKspLjioPqG>r}k6mvQYMR@luzyL9h7; ziBu=5Z%J)GF$v@;&-CR;PvY>`0b#n zUHRJgeWZvLYZ;rer6z4bTvWWKXYTYZ{M#;goi)*8ikMWQ2dn}xhHBE$D89T;A8gMh z>GI{nh{sA>Exf%vjbsR{3>Bj=-O)qK-tn5@bmjh}bQ_AF%h2CaUH@Vwwv8sOF_HOm zW0;!c1kfr&9EMYafo0zN^F(Wz6QKMe84BWL*klhaBtb@R(Za+pF!Ut21snW(!C+Z& z^03t$^gWh!ROzWg=1|giIzIb^)_K{)GTV=QnZgN}hB!*KkbOL}PZWrra1q3pY+4K` z1JvB!f~X5Bri4=;nvLUg{|v*HM3xH0lzzv6+4Zl8x+>zMV$=WJ@f`#fE-?orZpfRt zpX(Y~n8`^p3x*70=SHk3z`(@cZdRe%OVf1<@?U>{o`MYYrjm+!~9A>s4YN# zH_i;9zU$15$BTsaI?vYlxWH-(!fwH8S_TA!wX;!#F}AUTcZJNrqX_~!obo^VOaq_kT@!KeWC2-@D5#52&BNjW2NN%PSn z;j|y8;?Ht6+pI9grfZ`P+hm6=Ad)*5F^0=P79zpYRo@Ce8D zep}Hs*x>xx=zF#?FfB8S4d9>s)yG|5MZgl<*<+~=*F#O-NQXCKXIf?xpLheTige6D3{vv23!R)3Y^JLe}D?T*kZDb9Ry*6Th~WGAqe&gE}2e#42`9 zwyJdgY^0nTNLk&;6b)jV29Z6%19^e3T%O%q_TKdZn!Xo+kw>qxCi*NVm}|UrSk%WI zQIlh#PZgu6%jtIWXeU$pMRq-XfYke>-CfMZVn1Sks#O#=(FAZ+Ro#vtEncY2;heXF zkpQBVQw@Zq#Zhj`FjUb9`@($9Y{LCX7^I$Ql4v)wWuVT3>0bwyCVSBkGm+zsPm0Oa&g$Ui3RF4g$xTr( za09dd^TVC?lTc_hi_-(hQS@D*R$9E}DPU9DkM*Mmi_f*Dp&=FyF1)JRprYL#mIBwe zQ5wN}aGw?LvDDb_wj~u+jB%}b5<;xl0-r+Gx|1^-*RwZ&or2}^^ms`#?fbrvQh^

M^;+&~i5U!w}AJ*n`?@tZj_tN_u>AAgKF9Uoqe$m^N69cU;!)L1mcOdO= zjoT;QEW!70!UwE&ATw6!_84$Ke`$;LQ3yygBmCyq!=Ca>5Z@b2lP<((Qjy)0o_d=i zb$cY77MjN8J)C7~@@#g8m-9rKQ8PoL4BX;5VzIrOARdgc7C4XbEA}3MPKS1z5?h+; zFAem1>2n!Ug41M;WxFI|!t*SrfYYb>z0Zrl(K2(TgUyQX$v{{(mHw z@sj2>AtwnyNEuH+pF@jnnOZjMBMd>@`<)n&!*V+2QBj@+wTXE0@B?ig*}Yw{rNKxb z4sDO%n-lcxdpg!piPK;I1hefPIWQ=AuV~fP?u7?vnt)^Yzk@}lz4@=Bq9g%|^)J9d z1OcJ|Y@_r8Y^fj!h?@~We9vxTrRCrSswu1r~Duxuih^>NN3J``Ed`0aL zhVXz->;T9whZZz!^4O*=l?cI9z^$bJFEZf&^)B#969J$QFl|6&0atgo+V)K;rF{ z(BgG1f1xgdHhSf!#La)FiUr`1(eMAvUG3+~6@XYC-WSHeo>?oH)-~T{HjIQt+`I)u zt0~{3j8=$D+-XxkBywy*{A%{XOAPdJmb}; z=1gMQY$Wa`X|AV^8``R8j)6McAjJe^M`~x0KA?a9!D!Ki?px=iL^}n0vAR>~#A0MY zf`%+C<+_1~qRy~9?YPl*UnQ%-0T#J$F@lR5g7X!lwYF!mP|W!%AjV!BY8Bgg;#m`x z9xQ$`EGx~t$&_2nUKs|KM-!J?#BSzR2_R=Gftyq+hP>K#UZa{5bKM}7gBa-c6Y$uViy*>W&+G7yS)tU8vMu#Opoi zNHHwDQlIi*F0w&}21qDa8eu^s3GyB9rLp5yGE#dqSXlzCr+w);Lte~u| zbN_>WdVQfjXqo%Qqg~yNyRQ*}p`o}J4Mb`>e?YY-#n}6m&;E(X{L&zQ{CxL3|8g}x zN8kiw2)9li3P>_$XmwNhS4NTNbGZWxM}WLalXazGO4y1Q;COw@^IGG{sqI7Od(k2h z)(S+gBYK1$yvjy)bn@J23H{m8h}?}ZT`S$F+197)F;PxKP0PrfAC&kPX<$A@EIv@I zY!}QD3(VNG3wq{7ER`UCWk*Q|6V1l*)%@4^0l*YxJ(rzC9!(7qv0|fcw+TRzWykJV zotve3-c5m?%!2xi(z@dKxvVwv9?{Rn`g2YNOg)g2NHNl>(Q)%=8ykY8NRP@nuiw_` zOXr-jl9Hs1E^Dbkq3!@$p7yj1o$OQTinTR>bI zTx?3YYiaoLeH)Jr*MGcv+l%`)r6$9qqwD3$sd2PBPKkdEX{L(PMfdtGm-D$ea$(?7 z4qN3!VQM~2t>+7NkE5hIj-2_5@37h|4iCO7mZhw{97IN80+3Q&LCsiNb}O=1pyGT- z{LWP;a=_|@pZ{TDf|;3EV|2N}6y?UY&DSC;qOML+#40HEN{n}#eUZ}K4TTLK9!Q%B zUZ64Bs(NkK1EPDC542cK$#mk|zOoQ;MphXFpq%)eJ4l%KuJ!Fqj!VcZPaf%Ria z`x?~ifpnZYHr@L>0wbDO3qB;H&;rTv_LQ5j@oFKg{Rd@27n6UzOU{b0w)rlW37GvD z1tzyYE2`c2GUg~VdyJ*mmj^5WR|qg$t66~r1 zjmL;+PKR^gwEV|eRssg_Bn;T-o(kCSjHQ89=OzHWcK<|^fJOY*wR>raT!8}u zGV#Ao8%PSUT9*I1@l~e(0t&I8oDxbvwR{A53of4>$+>W5YuzeBEkUP0d6&}$XK@}e zjsb-Lwn~BudIH?|6atw9Y;qdde~O175T2sN%i0cnaT)Wat7LuXkBwwFL(w|%IS1vHd|XP*=rCX=W{tBP}8Sch0= zpl&xgwbMNYL*dl-8k|n}UCZ#~fN0YD4}?K;&Ji@8)e9OjJM9zVll{AgAX!AQ(VcIl zjkizT!Lon)4)3w%GJnzkMblZwHQ~NrUj+ndq@THDbxa#DDIMo+*`&^8FZU1Kfj!!oE-t(xr|p@`3!qdifFhlfCul9GM>c*w$1c~xWC zse6*-T!JE5ak_6lQ(Y;!uOV1*f{|Ho;SMLZ&_i7j!z`%t_g|(rC`xqsNjXs&D|s%n zj0dXE0bfv%7EwpDv@EBn0|u1hSo^Tr&=Qs%@@G-)63t^2Y}H1p2F!08uQz0S*5~5D zmi@1AL0n^_oN|ll+w=9~-Tghm^##qY84>NC9+Lg1_ITT@*U(Nfjg?IiBF^$!3#uIdXAMMF5lRykrh9(&4oLjE%_^UsRLPW_GR0C60lCY~T0 zyUz2Nza)_3;60etE*CsDgpjVR#|rxttUh!XDF~~7DPM*%oO^>^uG^p7A$bCtu6Wpr zvQ&?e)EkZzJoyL7Y%0oWiZu|y6^yU3w4%?%sb!zB1*xo#ZFpN|{7DLos+;fr_bzC8 z^e_SaR6N!&|LADON0&2dZ4={Tdg*`cqRp$tiEptmq0hrvgH7w`?=4X`{K zQ)rCUKKWwz=`&8!Bu-IZCqA{Fa8A((pXhXC>n-0>&J-=28Q^8jZ3gt5*){ z>HV>&?>z=qRhu8XX2h=LB@4KjvILuSs0R9zN39@luoLM0IX2fOLsOu6dMv)hN&X}9 zbBu7=tKSwwRIWm_^h>c9HKnnu2Y`gMb!p@;bIpzX`UATFmEcT>-ac91Rmg?gd2d-X zf5Q-~Bf>YD>#ks55g!t;r_R(95O65hH&3Z7&Et=d347gK5KglJseby(Ki~@)8Ce4V zHV(Xgq$WYxs7lTjE+2hf7+{Yw;2HIxDq4O}8~>T3Ad))!NI%U?PZ{unOmr;~gI_~_9{+9oiQeWi3>s1R7<2h=_xgmM=IYQNz;Ozy zB@n~8B&yvN(4oH~cuBeG#RNe_Pij4%;NpL;t=4+aocQLwNX4sh`Kfp5{&2xM!i8?U z+3{vEnh<+x71V6u++bcxBg$I);`PiV{}6!tf+rBpTH?6<>^j+Ken_U@*^PJQS#z9q zGc-a(oB9F_7IiI;v7LGnxO3J=pFChMa}n&^bePrT2MoLoheTW-YW{{kos!Z13QKob z&fkVyjLU*Owk5xtZT1F0i3T-F<3OWaI;*_OUUSzxEPn)fzLAJW)CHzweKM zu?lWyPPTPQL+qBBs2a0}X+2BDV?io%b7(Y${$G$Bj3UVtnw$h{G3D!&cbVJOkV1Tm zM0h4aJ%Lduue~ZP4mvdLu<$2gADXtTn@PDs^e6TR9C@Fmow-UAqu? zUWa__B9fjazv!EmvOJEx@k#?miai5PP0L@o>>&Tu_82QkbMoZuwqAZJF82dcRhIo+ zhtbx5cs%K$fEm*Z=zQfqDT#s4lqddRXy&@>1Qw&n?$mvjMUod@yn=L;ff zC*FU5ca0YK@gl$;j2@3|;yC%ZCk&9o6m4G_O$FuZfq8#}4A>gmq_sc+k9lEnkpjVa z4AOkLjE5FT&S(#PgT*UYk5Dxwg#L(Y0suaa!Jz{*<#4dOL{HH)ZU05p=<#s>moewL z^S>z?`oCm>1O*v5LBF*c=>Q~=8}Lc`YG{ap|Jbzg6>M@Qk~;PZOw6K!kr}`V=LyYnS5@j>3vsI6 z-Wd>ZjurjEUKWi;BVFn)r4YJ6V7`fLN&y7)l3$(JEXm|PPQyG+EFA%iR&hA#x`&~(o%R)y(P+!i_qvPcy?=c_+DTMI0M@<2h%FH*r;BBVbB zCizDVLz>OP$LP?#xHr}NbCa5b~0@;NRt z-R+9=269W7=uHBtm1E=oCru*s;#+ZiM*BY?_wTjY;<@AnQ%rbjw0ZBh>p#xFFY&k9 zZ#$bgJW{~2uINpIVoryGNAHWbhiKzovC>a4%w8!qudx%Tf#vF+%#dtW(%ltilT68m zkCphFU0%eH34YLaHS8q@+ffW=pm=h=;&+?NJFB1}trFU+n9=(F!NPOHOC7+Yc2(R_ zoFZ&@HePsbXnLoG(6y7qrQ;O^F*FNmU-oSgc_Vwl_bJqZ{uMR%^v9S_NqPBK$;$JE zQMG~BTjK?4U>%EPc50-S zdL48znR`<>c2heK<8m&Z0^LyaldWvllADN}!T=1w$@o0RB6n3Nhy@uHf$ z@PM6Gv0Gt|Ezc3g98DV1@&PMqn2ol}EJ5*k&fi+8?QjmHK3h?2iM^C4*ApI({5vrA zX1zrjmi-z-f|YMZaLzFPD4NQ6MMfUfTVli7fQIG0x{MgH!Ou6-k;u}SC51KdwKrsj zUbY%0VveQ5b0bs21=!%7MFQj?k0lj;XOver_QNew`&zeP;{aE~fx}#dpWrSra+s;3 zDcYBDBf;S+@{K}vRMGa4eVFa{o^RHYpz33x`|w?XpG$WEK!F4x)CWL4y#oG5CA$v*$HcRvFh%S53l_8h!RT$(5x>yn0_gCt27=Ma;=lUoYaTHNGW33tiNTEc>gSL`^_U* ziszGY`<4LNulFma@W;jrVOCoCQFPl_MA1X-jdg-7&;(i9XuqfzMA-*~F|{S7#T0#d z5>40%3<02xlCIwIC-$(kqUc{B%2F@sf85`0p1%3a{7_CehjqQ^4^E)SU(+O_BK+D| za);xG#XMT;m6Kl2k}A#9yfdt*?4!&78CfhwiKLyMfV}$GKR@jIgTWBL&TG5o{d5n6 z3%_T^IGKWybzD;;1t=-4zL}i{rTEBF4Gm}T#0bJ6Qdb_Fe*Zvt-WPDW9{%CXGVPzRwwIrt7Qm@no@orQSJ>0sNRmI z&&Qs*R#FdKYde(2qTEf$YL<%;x5UX(K6WONM}atn%}a9}lUicgii@x1a+o2-d@@s= zeGY5^QB%DS9}1dyCrd zPJ-SCw@U{v>N)qP$vNG57ZKe#YdNH!10Ci4*g^bj5aV%J4-skQQ`v6OMT{ zKB<*-ch5g*9eM5IktR4hC7*0~h_~6)ry-qwShK07HtV{Q8mgboN3yPcg}FsKq4_xT zy@63@e?y^I#ZjfDV7_7u^QUp{YTCLU1D}>i>iy=2peZQ>pwddYQ5Ekh5fd+0l>ew0 zsvH&0z1GX%cxt^cw0Zq+$rOd8d4gMu<-_-R<3qE?hD2Ft%lTuelJUg0QoHAG?`iYS zT|)@cd=pSKvtL*xqi~A;{AHmK)(-T8rxuQMo^NE97Uu$czvg>W-E0+%2Xcrf_oAKz zWV`(u%*YXGt^b-3TJ;0$LF*+M2SYt0sdrv9*gq0aUtAI5v}!;vzq65w;K+4bgXNTA zIjPaGFb6}^W{Dx}+3&Q2iSjvIvrsE2f2Mpk-p;~r{MSdTLDIP8qdu@63( z)IuATcU$qX)j~jCMSSWL9s`dBs_Vg8Vh`JINcNl$ze^66qLyz2lhaPBkEmjPWZ zmg)Vi%3qowf%g%|T8+m}FS&DRS9|8)Gu&UEpa|``6k)VKDd~bNOdqcLDI-E7gO0Ii z!+SV?&QUf}z2*vC(Y8@u1SPoQc2aZ7#s{D=i#PDt>FnvAv@%@@zV_IP*-RIZjb}jJgD0<)G zo`Zzee&L&7TIe9|Ulz~=s6ccVy+B(#e`79J&=Zh?4q}`>cIj*6m#m9dczZ^n{ndlH zq(Mfk7${56DjQB;U4##&C?*yPYs?p$=P&2Kb>vN{{Po;s`HaE$JDs6!dgFTsys>^T zKO(ndY>Hd%81~YO{gu92CMwe@(bUU*G5klebyrM_UDiA7mRM`Kep!6s2gAMFrxHt5 z#^QD+L4!z4rTQou;VPyP{_sG#$Hpaw5eu+10X2gK0Jl4-4<2=3B8CU{Qh-|8EQYV{=Y+EX{2^OY4o5VE^p)XAPF#+|=Hzj6fsvO)9^h_V|6E19 zZTA@k!30hpIrW!?lEFkj?aRH%cdAV`hkJl)XVSK?@MQ~6>sh1Fd|I)Qa4vn;bCbya zEYYLlN|b+4AG;03Q!gtuKYAYkaD6AC66tdHURda(RG82=Q7=H0Rdr`$_POVhB^~)n zhdJLG*qCcWELPEI)%Olr?e~DEn+35vH?T$S3+GhMcxl@Irestxt%&d08VJ|ui{*%H zVV&`JjV0%Ccv_~QHQcSjUJ$)%R5(D8wG7}`4nLb31a@^nJZkGPU7Y{d|>mUWRVkl@V z0N$4zz)rd_*^7R{@JtbN&EAC48Rf1Oz z_#$?SpKM^V8dyEj#rvpu2o!B!9>1x3$~7Mr`B*A|Y=@uYj!>g-VX<3b1>qz9k4YFO z1UunLbn@6PbB#h)tXiJAem9fWy{=WWGPqt*N2L{XwB^<>I`6(!pr zJ=V6w%}KKKk5(0VdYH|4fTMD~MH$xfhD*o&1Bbo8-{h1_X)Ju#vYZ?u656LRayyTx zkB`p~(j28p5OwH0NtwL2Y1=%hDZYJ0CQpuY<&QKch~WV>bMw?nws)8z+?Wl3AZ2hB ziOiE!v2Ek1yVA@VK*`7NcLTRarjmT*@BajJCwQU(bE0)&F(_xaxxO^)c|hv)HB-u8 zfcORB+6(*QQ-!IyAoG_~f7#4PK%cC32{EKC=IufXWoeIqcERo&d9U(H3;2QEG&7`P zK~o&a&K5`hWc*-3o#E?D4q0Q!w+4Rwx{%d$X%a}KRbfA7en^uX0zNbZDnF_{3yWEI zt>euKH^8Q)wpf~IsFjlP_OY#zX_Xm?GYlBP=z>Wg;3ggpZh%@M%a|bANDKkIrYx6l zqF_Fape{A=-fw6a+r`35Lc+JV+4*cK5RKL_ov93J5=fE`pKX~141C4hS3Szng@y}a zVlPeF8-vj%F*I%W{}-f!y5UmbKSMLyT9C^cw4ibV0DAk((BnSHg>ujRPoTC$M@G@W zZ8QvkBG4XuR?GvS;3lg}|9f}~ket!=YLOXF{`YW@s?OrnwP$9{+-Lc@1Oj~ibh?v! zt<=^(cGFInY-PhZQM=ZD;n=UHEs$*v6bGUS#1rele$L=Zs2-e&l4>JUf(<-p^r zA^@qNv;|ciN{~?eFp=HISo#(K`k&7Av%myDJN<%mZ+P5`5s*GCByCthgRxKS-a#|8 z?yKN7fu|yuZK{b^sTk;8fy@tov99LQ0?SL+?r`?4F~Ko0oyCWJAdK?L7`P@c?0I7P zOdYOIDz-m;0zU0%93_4u@ORk(v9!A4I*t|LtFKGFqbb`^n!1Nh=$<_1&Y`KaS)Hk$;7>9Gb^wIu)hM!n+3EU~w@7&)hJ^)LTEUsXtue_zi=H8Rve|$=f ziIbbHVO9U)Ny$bicJ_P2JMkqSC~p$a^<8)`Jkf@uT(|ce?``KkG#eW#US1R>Kc43N z(rAwGu}s!c)1IsO;;G>d2(;$7Z68}nGjmGAT-iZYGrO|APIq9Sk?>>^JJt#fO>YQQ z05Wf~o2c>KH0h^!F-E`4lTIAfGjnnEkc04ome>>k<2nA_5&YaVeTK`%=4Tx4}B3t-j@O@#O~|JYskszh;3IG+O`h>Gl*76$R}z6 zZPFK%GR<@sov6lL{S(yTmI`f{xED_;?*WQ$31@->n=vI`2Ha9PUz zY8x&|0qW9De7P_>{CqYI3&TRBxvb4n$NS8K=vq+%)+n%^E2Waf*pCo$(3~1pCOA6e z7D%f7z4NcltY5$IzfLHN+@$WXBMdu|45>`to>G*xk!MkWBX8T^XLL#rdsFg{v?l1W zi*rG&-V|MM@PrT46ofdfn^wKhQJPSfZkfV9qTW@x{dZd{O}zMq@Q(ca>VNN~;H~fh z38c}n+tRBTyhYgArhq06JJ6;ubhRy8vs98lv%RK)U8KgpeMfyMjyzFnhG1KE)em&Tiv7cQM?UYqFp!y^@xWZC}RFzVCY zvSO1BkTJ*P){8CgsqIV}mWw(zt<{PK9WiYy5yP&uFh-sPdN(XBFXhxW4?Md@HieiWaBeI~qH zd+Wvhn{tiDY@Uc+N8PMr4LLF|>L+0m17O6w-*WJuI%-7a1fUJtiNM}9cmu+t_L9$$ z250e=KVLaKw;q`;;*>9jM&OtClL^rX&wb2&1y*<`4jw}^B90&boY`CMY@p?}Y6X{> z0YF=D>`@LL=8kf4!3%iU{+fsZv`*munV z`p34`g0um|+~0VI&05EDwfIHyK=lE%vLhz7xx3Nw@pfDZl(OdE2(SlFeGCYk^1plV zs%Nc2h%lfiYY)_b%=na}+W}$kAKB7y<|A6#!#?D%tIO| z*=ygJAi)gt1WuZemgas3=>C#v`^8TA1&fL1<$5CF2*nNByw0YTW2CAn08ZMGB@3d{ zZg9@11M2OD_XO)EUdy{2aQ%Ap_8MFOrfdSP#SY})fj%Hd+6GdQ+K?LEd^BZ06-%ne z3JaQ?DCO0=3QQK<1}SvY5g7nyTaLysh>a%PLOVf|rp-kn0ZQ)`yl>;(!o=3IKf%Mi zT+7GPA5?Zmz@sXpIUURmjX3|s0xHa``3h@C4UfUVLH?-@R&cGq2hAqfvR!_$H#C!F3qAd*@Bt31#yoFZ|K$-SR zb>H!si{b9|{RT}u&25V;J2KjI=T&=H*q-;^s=kZDogxMV+GouXJJaR*b^FkX-0>C* zC9*f}BHs-Zspdp~Q8-Yn*bO}RoplvE3jKWewD+xV>Xh5?i78)woK#HEY3vzCsy5Vq ztxXY={f3#|`h9n!3}S5o;G%R;dP0_kkz$SC#O(Cz@#5+S+0CnKx^Z8%ZO3Qu4@B|b z?Xmqm#8n;jF3yK9`C(w%2VCYSgp3bVpMiIgXH*oJ=H9H_P%QC_tpZnC6)bGIM~r6uz19}At3%|T{jNbm*!Ns|2|iXPb}U)r)ls*5{i_XuuL7f8MNdRveRb3y z$5(AUvqQ- zzYEWp_By~b>&eRKGX%wFQ49N>B+jBVRPY}hwZrto#eprsf?}t*4nl^_7dG~0+x}oY zX0=y=ljYXsjFC%VwpPvN5#9nDAkR-K0?u4@E`{(6{>6HDK~H1M6w6&0Y0+7?=ISWB z2|L%l24V=WSqxfP?Sa2Os)Jw2 zqe0h78(@2sbOI5h>3p_o&EaFpT@BE_E-Me(L>1}-fw-6mz*dMO<+s0@w~I3?oEDU^ z)jD;E%#5?Z{=2YpZB$LahV9#nsqcENQBycCk2as!daTYwW@LeD0h-_qvOznk|Kk=d z=uFWyI)()Hx`t=l zCC<=DYTTxl8cxDmYEXe#AlAg4-*3c2kKJ;E_V4S)?O4k2}su~IUy1S&?>evRe z%nc|c{84}OF_5Sc=rEvzu%bVf!L+q*T_O5Ps&v(6mG^Wsk9#9oNxQ1tm}BoXcJjb9 z`)j!*o@K1Bz{L4#-fr9}a=$c_*HgpeD#o~Lv>CNVu5Yw_EGGPWpWS4*KA6-x;kH&l zqZxIoLvID4?FTZ9L-eE~r?*e*+yRqqvz|sPXfCvFf4%v3A(Y7xI9`(bXp|O03xm6- znf8tfCE~>PP_{nQ+A(114V+lohRV`kx)J)iK)tB`4uwM78_BW69KM{Z!}>$H^r&IX z>BzolxgsxMHETdVU5#YsYAr9VPyzEk;Ji2W!1qU-&^Kn%T>*;e_7C%?+C9H;z9_K#om$>WEaW-p0rh#9Dvix^xE_$iB@@Rk zEGwsV6?*y=%(Mqk?8KiViKqbxkzE&f8FDuPm}^^)LoxF4sAsXb%9L58=V*gbK)#YK z0Q$c>cm?KW6k{nO9FTt5*yB-pAa28KQH4~UdLAx6#UcvB74bF#Pehpno-U#(aO4)d z4@8w6FCPpddmYQ~Tu#+w7E|fd&IfqtZMXZ;WGGl~3pZ|;Aca5)>glT~9F%f(5DffS z;^$GdRJB?fIg?s08zZ~A^Z2~HZxfT)#THnUfBl_`XPNt0D81cO>_-A&B3ujTPRT_X zH_O!qVBhy;pVX@IRp}Y#&1}-rNN6_K<=zL|?m5H+tB>0w;avlYwC(`sKEmnV<&1Aa zH=s)p0KZkNIHLd>af#Z7LUqBTC^Pgc6XT>7?@3xH{k#ufrJs@cg%mI0Hq`oF?O473z(3l_fS*Z%L$Bw?;3|*S z2-dg3qN=H%hONVjQdd5DzGjZGJF!Om-PT7yOIGKY#gQ(39Tlp)6fNgfd$@L0;Lyxm42b-g?X%M=6 z1QjmIZUFb9V`hXPHsDXcpr2zo9j6DkM!yFO81(8Kbxu|< zb_jE;PS`4u<}SvHhJHtjOK)!b=H(1-7ME^{4_x5oWuRW&NuBf4T(ZVmS|@(u!FDqc zj6K>}os$B)mjGs1cMDuEj3~`ONg{nF53Ni;#J6X~Gzl7mn;1R*JoqZaPjKxm9v|K( zj9kWJ58JOPXpTxZMHN_+6~@O0A=Uecj1qUVu;u%hdvJ33mGwmkyOlhiZ+SAga|-ds zIf56tZ>S#&QO!Bp`&vVVlFY7HgX?yDPPpW(P9l|>FC3z9NLyP3Sg;~-F6tB!*8=*&U1~a3=R)|VXVJDBoOYv$AEcKMH6C^Bl zeO35e>BSKz*$0RJ%F0{m9^r!-Q`B}$?(X4t`p{vcv?N&yEm9@w`1K*+X_Vx+9ds*X zwa41WxGBP4IYN5jg9GnRZD_xQtg)G7#&H8JokjVEfqS&Fv5vmM|CuR1zlxM=w_g zbWT8Lf~q_FD%eyth9o9SNTPakunRxIcW@?%?&4X(-06vF0PwFf0PUac7{ek0(ZiLD zL|e3`ko?+7>Bq5I!^fvaHa}e}ptuF}6bS=a(0h?>ADo^s{dr|VEG}bmIKJ(|27uh2 z-`CYMm|&H;6SS!9+UGC7Ec^e@DJ-IA7*g;uNLe6#lk=y+7o0d+>z!xxg~nZ;4#%lr z76&QO2>EF{+vi~%=8Hs=0>JK6#yEOUG34HQ@0f@(R`K5r<7LKg@=wRAiEoR5U0f`n zF5h1bV~9yEWWwIuiWRTY7{NhJJ2qCj1hhTpbfBqFK#sUx>dVtL7D*Ecyq}=%(oN%$ zgtmrJxAc>q#fblTLtx{}#LRSZhk~&hIE?i`q*6oUp*+VVwo6SB@ENruAE5oiL@S{9 z7mZ{?fM5~f|FA;f#3coZ-6MuxKQOZc4HoR@(KTx5@g0rwlLza6>9AXHCg1<>vFKiN zv>D$W2CyTEse>4@rT{QU+Zg#;O)ojNTUZ1}Kg7*{u zS_*@O%{<7zQ|ReggSw&(Ie;_|;5$M1V&xYj`)>HPU^iO0?Qt32PKGd77`Lk9Mq5I~ zQ9M1vqn>AMQ&&%vzuQt*NXgj~;Xv~q#HmZPR1Z2trZqfal`q9(ZK}YB6aE0i4 z)^3R_4!8e&Lp^B3;*3vW$iE5JPoTb3nP6wKO*#f$UrsIV7S$n)`w;q@lg|Mr$DV6l zsJKUxIpX*A6Gd2rzSOFsZErPdP+0>gsk`;SaYP5A{^Z*cuPJ(izb^gHJZ?XtirFDL zO4BHph6VPv3Nn|^*SLOqMo`~vRFlgU#>)Cvbn+OP^jF+M)h-cH?rrw68w| z;ms!oKQRr{i21d3hPT->>8i+NF+fm+XS&_ny*%3-H0#NmuRLlVDl2~z+R7m^GnK|3 z+aHZf3_UoW9nPSJQarhrFzy+6E1P42!RO7b>?R6zFlOFzn<6=JLdbhKjGK^>M)$m3X z_#1SAiYAS(lMB!J>}-vcGjA(`=icYY%BrH-Jd?tf_C3q^p}@yzSO`%XH&Jr=N} z;O?r=KPa$(r^g9mAL$*oR+Pb_oL=7d%p5aGlsOUWHM$Yx)m{emLp<-(ol+vJAC3hC zT*?LQUH55_fS#m$3!;7AyCsgAQobOsJq;S0DnpYHK41}foHC6d8dI71;SgyNNFeHor=^o&lm|b>g z8|=3YjQ$`%7E!Qt|N8g@O&`jA{FrOEqqXY!M%KHiRFp=dGpWb2A-*gW{ILb zG!w8DU%p6dLX#O{za#WMEVrB}l5sna_j}IVgadQ*kJeqReck7qMH2Hv8hWgHNqZVN$fTeF3eHZHSzLAB9J&6%U!YlFfCp~T zECBO_wPBX2hmJpiMD2P04`lcy@F-t1o`;J3HF+kV|3IHEqO#nFqzI4#!9 z))sSg2D&Uf0VI5HclxxDJWRFM-KQ~nQi5;wwA~6^ zQB=4>{WG-8p_yyqF?=6ge$x_)%8V&q^-_~wS!V9Wsx@)dWV#rOS31ah{hYXszxbMZ<1uJB+!V{_rZN?R76NtyI?FvX^Z7$3RyDC4ay3`l4Y) z-zJbGD|i2(x_%F_u1-oFi4>{1tG!W*jU)L7uO!-wIkf)v4$A#KBKtXFb|I*K-FdBeOSNLATP=uA^E9^u> zOZ8IiM%zJoacexcWM}Nr`{MQ@pC(Z@?7K)DdM%WIWJ54LEb9CApS6%V1Ud0P~qoAP0Hii`m-zMf~Bb zra1Wl3G*M%&6*RV%05~%_c@^6RCI^g(WOK4gZO?I1`5b`zx80x7+N+2DcF!JNc2uq>MrN?|=g}^^J2=X5yi~!`W!t(qVdg z3@l{pBcarpS$VX9veZf>vaRuxGOP{_;JjSBX;b_>ap&pz$?Vcro3OoF8BwEM1KTj? zOTV%bC)JKbEntsAosxpnTej*mH^c8H5I$ml((ZNg_R+}#cPvUgMtr|s$FgJb3u*9!qwQ(TP8SWL&VshL3!U(RpNct;5KEuq zX0b=%f-8}A`yn)M!|XZax1P(UGp&^N-|xlhfUJH7+9g+aUA%}9m(<$7J#4J}32WSu zTi@gOSD@6q(tJ9DcRwu7ZL=gdLq57t@JTytNguB+hd-gll#vYqoyh>4Df&47A7fi8 zJZ4hdFcWZ0t4WeuEl|8rf^!uf6`IIPrcHg25UB}Z`x2^RmC%J{C<0@#=XJ&Q1H>h{ z5PVL8#nwQ(gR2n8b*r8vyu+<`lpL_yYy6s)#y5b(9`!*n68YhZm#84A6J08l}a zw9aJ*Ll2|P#P;yUMYqqmh8nM3Ajx*0`Y1q;_ngeD#H$hIQ3py*dZxZkG$K(8!k7gO z{~9&+0$?lUT2X&xe!z$gAC;P4VuHrO{Iw!A40gIlb`ROG=|tX8z)AKggx==@|LkvH zW$`{CiGoMw;&l^x9f>);fZ>3S$8^Mc^?dL)J97DjZ?Tv5$?G~BZkV-IU7XGFA!>@h zZhTIp+JTw9dpr3`bTvva<3OW~lJ`V0Od24@i&725UeHAsP{r(G;Hv}1UzAN?8AAWWZ3!vmgfjLrj=kn&Sg@t`QLgIl;g`iAtqtwlF_+>7Rg0e<4L` zFxh(zDzm|Dnodo30bzC=5Rp!y0+*ZWZST)0W(o>NK2_2o)`of){&=dry1;=F>iN(r z^8JCTkG`>Ma>rOvJkBlKHhm7te`=OrU3`wLqDUbcuLo`|+fuRX+?6F-$9x@6ai)3o zHLMTxqi9e1t>8Gu&4*e)p|V`U!Ac?(y* znADVZJ=kajCIjPP=d|?V+;8IlekeaB`E%@{Vc#&VR~JIcmK`r4`z@Ausiul)^d5(a z`!|}kTzU$=%2KDt&zPctlPN3%xY2*vTIdN}lR*?LF_H&dcS0c$cy|Z7Nq*UqH97^X z3jIUefLX6LR-5Z!7m)ZIFN()0coD720S1( zko=IwQ3^dCFbLp*grU#>wt@cv=D5L(0HnVl@F^kiA@={q3AFpSkBQs%)zLAj-E-sR zlH4It)3A(`Hy^wC?UifU0WI!+#!tq~(^2JEj?6NU%b>)i#G+o@Z;bT2e2_tx#Wfn- z&AT2MsBTQz2>OAHCWak84pZ#jVVLU4pjI)|rXJlzSnKiS7iYY;O_+E^05UFsyVwO# zSjC|Es5l!2Rm)_V^(^`fX5a-jpO--lksn31R}-Xp!9(g@wCud#!vc zNve#@LBbOiLRS5*M1#FLEf9HWq!4Yu=~47~fS|$1ht=Y3*TcOn+w zUK;kL?7=DkDA)rqFOpuX^q1uNXzMdWRG74fxW87`tXANSXy7Cc<>4Vswf_;5Oh-+{ z5iZCtHrS>E1gdxA;3IHnvYj>lNi@8sp(^{MI0jsw1uhGK@TG_MDl^)t;t~h7W|s7;p74TUq%-*5=YHBMM4JJ=%MM`TP7>T-gCki7U>LM*$(WQdiwK_#8yw$scYOdo;h*8JkR~UZ@rE7s$taI~X`5 zKIQ_(UwKF3nArw$9W(Nkd-^B0^Fry$(B*xu=!N~9+J&b=s@Aug1n<$dI&iv7mTU33 zf}q~c@has6{VCqkGEG$-4~B25Gr1;1HbY6K%gh956{^^+i5=UZ_fy&1%uV8IrI^iB$_m9-a|8J|8L2R z{b5KrQN&9f<_=&BK?y$5nuv2u8)U3NV~7~?Cd)vL@MVig-J9BT>QG7Cd_}>Dunb!+ zN;-kfpZ?7uqS44wEY7X0c#Jtd7TmefM1vobLIt|k3kS{Dr)5`E|B|B4RA{Wh1g+C* ztdzzP`cB5_G*hb*q>8dGu8zjk+-K>v9Yo&#E=<&XQYWazl!1EIOoz$)?8CQoLQz|W z@``uqzV~X?yeAIS8R^61hBR~Fzgg^E1gH6XmwX~dfiCR_%JUk|IHI2`Y9lkR=!9## zy>6{^~=P#QsotxGAzm z#fj{Rt)5Yyr<6&IQP@4tG5FaJ%GtDGNTUN9KcVX0MEgio1Q-^$_M({1A8MK!(f_0m zGbQG=nU?vpDagyGuG|Jv>`~Jl5^2_jY&;&?jeQ0@gW_*FB|!>tvmt#VhSY*BvF+a;>2itrXM>a5AGjE zg2Ofq`D~n(a1<6Ox_oIV;=DF6P-}A!So`5w*DHKGEMWd`NckXSl=a+aC7fMv&bBtg zhr)S9?DvC-zF4?SdK8|{1dfTvGM4e_$d!uWO#YUbHuEV<12bD1E+gS5$lF3e9#9T7 zH}Er$l?TNMRij~qhj&K{|3a=Jg<*+PH(Ncq789(D`xVpXh5bde!0_-96jeumyC-;S zUY_gwYzpwsSq)rAiLD>@3WMsIi8u)MS_xwrjOljA{$kJwFNxfmxnC@pJKNZVTYHMT z4l!x&Vcl9FlWr#U3#0*~rs@IQ-ycG*pedcMGtdx{?g0E_S>VqA5MX6@?P&hn9BII? zEhpR-S1R0xlr?AzuQvlqK>GUSh#?C&1OmdS38CtsZEhTV0W!(!wV@eq5EG~^0v-`J z^zSXsHd2rX?2QJ!0F%wm7VR1W02|OWCj=BL0NAkrPC;~d1Wm;T0@a!f(4+pZ$Q7++ z{ojY*Y~?kKHKki{iGZ3@voC1=`P~z6{Mb;#0>jey6g0k@Wk$P6R+gem5mogRmhv|cHg$lxr_)0X47|agon)nxxV{aMp7ga z_4tQ(b^9@nJz4MDN#AqzdqhOm*RjlQk(KqA%e&9!cQ@QSFO82f)8 zTt8JBEvgOpx@T8As#6-T$izMP@AAH96=ZX|oFXnxXF$wQp4#YA(F?ta`;`WvEsmb6 zT=K>3W-*$rC08_}zm1S4hDdDBN7WpH65h7FR%&#AkitfBn@+%~P3 z>&dwjbtO{W4~m|%L{G8wQ7S=~n5AX4&6TG1YKOl8!_1@EJL&3~A?P)_aHErFPO$}l zPhQ>7%48eR)H2Oj@4^&cf%~_qV6+-W0VjY|_}5I*hRilOn7+SBtK!L^}k3;AtgYK=Z=5}wYSE2_$L1^de0Q+Jsm zyp7s1lf~FD(uP%$4(Q_j8y?pItf*Qw2`ATzEhvlq8OR97G)h;El6@!oj6?KaReIGs z8vz`{8FcnWC3g?|1(|Q3-`rqw<#*9@570)Y4fHL0tR~=|d7s_sIphsUC)1#EA`f73 z1_h)}rgXfHkZ9w?4$xz!4XNs^PN9p4f`fIP?gxp4>BgMKutFq!v9WUD-K0jQ{c6Qy zLYUBgaA9!BJ-<7~c}%$Jy0xH&ri&j>#Ac3I+9~|DH<#@^=2{67u;VPDa;F|eCL`~-$LNof() z9&3xrLFl>!xi%jHI?TSkl34jYF^4`FpQrBb8c22&4w8lN5MBkCihLI+qkjg+J|j@F zXpXtLJF`SA%~FN*@wzB2aWz&Raxc|c6DJ}{Dy?ZZP@yV%T(ZyPmyhrTh}2`(Vvei1!hWCi@Nc_Mf|5jl+UCl{d3D{lg;qkr6NFu-3QeYSLTXgdXU$b*$+~$uHn*di zNXe=XR)A1D1)X1b!C{a6ek>RK9_O5yy5pfKOYzck^1i5Z0LV7n??1p{%X|+_fD#Tz z?GT;iw7s#-ZBlV1=4QSD1xPTL=AedxqR}<6H5^RhCc)}sQBazi{8lS}=Nn;>RIqb5 z`+ATwVG-T>mp5bVV0;2}u^mN{L;15_D?Gm+%}!p&GV-zs6W|RB(RSGH z1!IR=(42yfmlwm!s^Qr&EsM1wRr-A0^h1GsRhZh3=6q0}-PPI( z3op46LZ9t@npYRys9=)%?6zCh>V8lq?3#3W9(5$y`S|Aw=?&r6yDge$@3PjEbaP~e zAnW06YGsjZZ-^Usvc_erFRXj;8TP2z2Shi+V!}nt=Bx+)RopHomTot%>QK{cjuL-YoPb%7 z-mplQ8k&1QUQ&~E@$@&_$FT`gNbU+JWrs^onylI>${P!xtRhLpY*FzN%rVG|LCAa* zf9YG*oE1t$U2tfn#n+heoBmUD6uPy|?azcklM2lB5lY<9D?hCB@N?3+ZMa4d#;1UB zCKKH8{C@5Mm<~np>HrdXANu3Y5!ussThHl2Bah~Bf0Fk_WJK5RU^uyzh;}~fb^>io zCAtD+EfVAzp5)l)#!34di5e?^Jstp708CC{A)&5owU}((J@{pMKA{4*7zq zXo}hEi`6mf18prMKR(8TNTbj9C(k5e*2>p-n2j%z{%DJ72L#sVN8wV^Q#?>pT#p9y z=N^Bd#%T(C8WwzDCVyP5+Q`z2EtFG5$8C4d;~|Ep`!k_Ne8a_+6LmIMT?#6SyXhg0 z%K!pcBK~+s5%#)|T#4SZa2ot@4`imA>+zzd9BXSq^UE0^PHlUjP`N=p9Cs&48b#_7 z2)96s@5G@cD3cEFaCE!5t8jb1Q!@}8*m*nqP(PhaJ8j?uI9^sY!1e1P^oKaG5$Zo zZoeJcEDHwd#P$SA?g;xzun+4HAovSDdmoKJ2m*H`06IvF_ANy3?J^jb&*C#wDR^u_ zcj5_{$^+0{if3R5KMypSngjoslm+B1{^y_}hG;mDD|dw%x{k)={01@cNTYF$!0_LB zM}dg8uM&B0>s5n!%TR+6PMldP$@O4GK@X{2esmh9G5xHhGbu-S$*1ld@{C5|(aOdg@tY)L)J|Ucq5nFlVueD+~+Jq2e5iBs~M%^BcPbLRK zyA}z5S%{3m((C^b_Lfmme(xXdS3yEL1ZfZjMG1wWyOnb24kd?{ZfTGX>CTxUq(M>v zK}mrbQW_D4?uN7Z{m;v@)_E~&`9>X{=i%9V-}mRfE+U)04rPf166jyKpNz_zwn+*M z{r8Pc8m6q@1NI^#zb6*nPV>BRyW#S1ppt`Gf zc#37sdIb(TwDWdYT_hC=Gs~i)X(32gt7Cp+y9Cj==Vhw~)|c1G8mcx8O4CVj_a}%p z#Dh#ZqR15N^mMb}OJZnJGAXpQwWKFDcppjU+{AC(a32Op`dv6mx2rq=mT}wcfez!w z;FaCpeU+R2?Kb?{ym9jA)+Q=bdD!IPeUTplTr*xRdD^THy>6%&#iBdF#llSF9Tp|e zIR4U|rIrw9xw)Sys$?-u==*RUfz-^}#eSug&387tN-txzf-vtC_Qy;hP3bCmJA9;( zb3mu@Cxm4l^w2slz9mVLw>nju2K)7U{MrxZps7YUeLG0QHxgzKecIb z`B;=Wh_{z(ulel-X~FK4|DQv>G#1$&hM!RCxO>kM1?{R|#d1%X><2$;NCPj(zCoEEPXr zWA!sJZ&QwRI*TUwJpZOOx}n782F|PQXgHQB0D^vWywy^a<_c10Gmk}xrLWsD$g)GO z3gC(P!rbzvhLtVgfG#X`$~@9%3P06|v~X#`Cw(a~mX8<|b=@gf523FGT12PqRAoBz z1K*2Sxyuq>sQx6*S(0&|GcO9e@F%oeNUB;V zSuweNyMwz{Dk@LH2r5Ib09ZZvJgJ`gg~MNgtUrBsMTZoY{2Lk@e|+yioMzEHfOyc} zHuwkr0JIS*$7ehL7Vw}MMtd#oaL zqYF!{mkJLjEuz>R6LnSy0%|>@aro?beHQ|8`F=R8o=qi86_2Pzf#%DsiG6!RLTzXY zP(XgF!ekRh9cU`j{=_x#K8u}2kd@*^76G-b#(XS8nSzO+E1#iw=ZZj<1e-;gTBL{_ ziTj5%W{b>bDTXMR&!@-E>b-y8ic^mV!^x`KK;Rn=tly1a{pyPoyrbiUKFBpp#7U17 z$Zz(9pEAzapS1(%R!U!Y4hAqHHO8!DnXGTei=^%TS;qmfwb2Yi!&ijSoYIVnF%P*7 z0Oj*X)s6HzI&~b@FYb=1_jQBKctuaNO~z_W&?(vOD+0HaYXuCq+mv>kUTh~`3a3iF zc`aP(t8)X6t(OvGf!$}QNym1Z+WD*TlQy(t$PWUP1&9H1f}EV{f7Wu27yGt zbarKHL8n)@3t`38@~37{X2L7@-a(evdw>xuf-+Nx9({ON3Y5Q=KpFrRuky>%esn|X#lvM72aA$m=#D?k9yHL0um^`hJs3QX#f#?U7D=&P(cmf(= z@_+Hn-tw%Pd1(N3?zfGqnqc}Qwpv1i6KoLNksk;$ZdxELWxeAZ(}dr-J@F+MlI6Yn zs-LTH{*|kW6)iIi3|ZUQw({RCKOf)=W=BE2{ch!W%=TyZ;V0#?ocvFmR6b)#|rTS0r& zB;401S^u20&43z#qzHKoR;#bc-hoZ2stg$+Ki8|;|jPsp;=1uoYKqz=$=)2g&RgQM{>o4m4N)L9uV~INUI4yNZIa?9eIk z`FnP$ROJXh`V8%F-ay7eg#w&`qN1PG$Qf#*OZVNN+n*v6W@z{V1ZQjGo1xTJCq@pqK06b%}<-|kgntN|G77S4gIZ+%K}BVNy}!r z{Tygxp#avc$o|6}2GZ-2v3Jj1w;O-3{0+($HaH)km@HHv$sPjvbNLGzi7DT;H=Vb! zk&F!|a2_h(o7PQ+pUvM~nAHEN>Bq3@eBiv0(nUS@RTPD8CH;CN8$-YGJ>?*ov+tn= zJ?5C*T;MOAiBp5NU^!25H1PXgRo9EX?IW5HQV+(ha?*u%2b_`xj9Ti>3{XCvMSTYw zK>b-DNrCkoriicwwnwTF)0C(%`!&=hSk(>tY}c2zx345B2{)3s_5sqrg^Nl5RfDg` zlSNaKMS3?BR9M1(>+TkZ+Z7lQ8S7F+GHXMJSgdVUG+&Ma3D~zj*5cwn*LHkU?^%MPqqR{H%H%s2f+d|(R*Paes zEGyDQGp%QJc@cKmCvrwVO_VpSg%BjEp8XR5TM*V2#klXmxMe+hM8fS=6>Q%@h;a6g z_~V4-kThu=6*E2tegBDp(`ybViqg={oE5LcT!(DG<@a1+jm%p z&_Fx)GL>#Aj$+veIi4e&8{7@a71N$JfM<_y&(k@ptMnn)4e^bAO^)oXVW3DpjC+t1lBS>tL&Q7~;4nTgB8dsDc!pUE?p%u1|^op@4f zRqB(5*H!Lw$?zBVKp^jDXlIm%k>QC5bRk~1cC+R1v$XuK#r>&b!{R&qrBg>IAS=N+ zD>U2zRdk7Ex%!LGo@E-t`@Fv-w>$84?8+}n9wM`ic$I14e~-bFGUW*%?a#(6*{MH& z9XM*{i{SE)59__;WcQ{JxF;QAQDK@wWEZg?=*yiuR;uRcA5>TTjDQS6m@Y5Hp{MSp zD*gWbm_{NIIll(4jqv58^wfY*beK*uJby%5mMXNF6moNLgW{iYDBNh)J6ZbnyFK|k zpM7-9>Xpqw?vZeiUhNW-zadZWQyJ&N3ia`BHMv+6&krhg*njR3DyfDaB3&-PjLUPr zIMl~F)&Voq;7O?_zl-Dg9)iKv5+-?+=FEg_Bz^T?P>`9}qvTiT^>B#4Q>+}XXdl0^ zi!A%{iSK8zx~!iG*i?TtmyOX(hTrWui8gj3uj8c8Kkc{kE%1FhAC;R%kj-yD_vmYr zZy#OvlTZ;Z)U~ zNlc=aZifrE7R~Jo zuqJ}xW{-bTaTgiB^)K>$8@_D$v>^U*$QrdQYGtqnnA|1(s7B%^fXS{jSJH4R(>8TPpFlPM6%5A$8FAv@@ZR zW*f|HZV`B4J$Eqq&!63Ynb&3+`B<@-xxA1BiH`Sa;&huLL0qP_QVb!a=yi<|3-idh4omO}$wvnJX= z0UGb#Cx`kipCs=K(hUizd>k%@&Y0?>GNno0r!Pk<|{Pxu+`PjC%5d`@>R>xV226=jgpf zhM)!6HvnzqN(WPN)K6rh*Q01uBPzQ2OOfkLNq(KhTl(vZvmdd=14W61kh+2rl}!He zW|{VP&(8*SNFj%x-JZaBvRDLgT6A5V*|)&6gXPX8MfQ`hb5~C=YpxD>Z!`2)?NqNum5s=RNXu~JP4}euvJkeT9fn1lk_u}1!twNQ_P{v zag(Xpi?v<2wwgH>f zCb9|eN<=+C5IDO%a(rVL{bBDHOX8Q-{ZGd#o-0NAZ|KsnU7B+*0G8IyTMx2`A}m<{_sQWOsV>2f zgL2LF{b%mP81E#w2#Mje%pV+M2huvXalO*1IoO!(MQo4zZOEL_05|RPR!oOTETMRP zgw4B)6Eh~XO*c7`Rn`f6zW%Bz9CiS;s$YW-eV>miJ7&T@@%znsx>+*q_gkwTZKzyN zH)T}sBVoELHeY{Hm5G5bzwo2})3OHtaa2$I-6LE6m~hFO9NK-a`U`^@o%_%ZHXiw! zKGRvYD>2sz$QZt~DI<_mUwY3MiIA?R zI-Ut;#w(ISs||q_SOd}_(xJM)S)ZuL{;nH)RFbK0uBmgB8Aq*gbK-1uG!xg1IA%>H zoHQcHkL^m;%nswu7bYSI`B^oGblLStHB&;y%A{&DgmD&6--;R)cO2mG- zkVB?~82Wyat#JG_l0gV{cWx(n-Bt-!-Q4FLZ0M2VI)w!m;>(TO2 ze<2w=hVdCbwt|A}&x`2J-OM@I$ihj~{%ph(^t-^Pdhb>~!M-Mxm1#-ns#RP-1L{Y5 zXW*RTb9(kyzZhY?aUMD|0j*`zs~sXpPI>z>{%cd0`h9pkx`wGd-#bPZ$|-L5RTBG1 zD=K=k!e0zo3Og{1TWI;Ag)8=HOoj8@Y=U`Cau<8g?djB4<|-=CGS31)hZLZa^8Wya zduxA{WCET}9%zr-S%bQ=1~Vn|yApe5eda>mhz!*`)b9^1WJ&6Gd$+WDPg;mF;!hdu?^f?6=jMWQWl`}&O0?eA$BdQVDlhIm$*^J@DOa;)l!W+rr2D|OK? z_>_i4-?07yfL>QEzw23P5P(y<>i?b4MF~I!UW(g?_+NYJ#t`2DO zqUtR9v2V0o^ag~LAVb;tw5zHbwLxlEM*~yHYUh#+@eS&uY)!ndjLfEY=fZo1xKra8>4*a>EKOL)Uc=WJ23nTG?-K}$N47IiFs3XHp zOc2uR0qfgDz=&<3F{!Yhe}#NU4i(0%G{#eJM3|WZvqm~{`+wv`|FnR3#Ac9%+*}

JGTE1B>#!t}2CdmJ&N3>m4qH=OHFT^%vHUmj?;dSfEL6TXi%Z_Jh%qOh zX#+ajJO8g>T(1uP@`9Jz8YPHWXH?@IpUiJ`ch6({{~OTm>yR&rQ!&6TKI z$_nkTOM>?J34{HEUcjIGH)*%M+;W5XkL#i*1?2|q?eO~K#!7;`@aCQlWK$?+_e>#K zNL9zI2BFKA*X48BuMB7RkFo=eaFID(+L|3_RZ03Q!K%pq-^^k%sag!-oW-G%7bnyc z1gTx?4l&9EwQUfV`I#m#?7X)Bx!xcBsSZpgW}CA z#h)V1#%k1d3H?@>e<{J$;uWi@lgWwSLzK zjDmkB9{tP~;0=^)w{CETxC$&+3#+*|w6vED5$VUQR5}a_IFFc5H+fn!^}W~nU~weG z0Kl}E3+p~y#H9A%!?w%Qk!Ht+5YC@HLN0W7Ygh$(rLe;^k8{6%d?hnwo5m|f`j%Jd zq1O3+)N3()AIGzx#vZ~Y|!B$ zhmwbF(evF@6z`O)qx-r>JBbX2pROL-p4j*3NX=hE*1)mYUM&4zsdtSq<{`Q&W3$7K!AkM6 zjS??#aaL>MyO?HNz8@N=tMRQ)fKTwb=V~deCpsOr|Az*)`e%ycG=SNB6~2)0WDSqy zB9B@4uFQRM$VboBfoz&?VU5B2*At|d5Y~mmh52p?%V`hHvEy}R17l4+h77O1f%Tz{ z^Z@qy{n1H(T?%_~YfjhD=;WDr&G0FxPM@yk)r)2Z{zxLZI*JD3xt?(jnE2&x7ZOBP z9GCYeo&eJ^IytFTF6K-ubEn!v_wft2RUJ_xr^>Ede;TO6v$VDG%|OC`odCp2>Re6Q zqAGQ;=|$|;k^59Q{fCHEz*i}3tiG+)m$9AffQ_X0$)Bb^ib`zT@~>f#))(Exn~OZJ zcq_~Ku71+S-I4(>c0OVe{|;Z?+o|I8^%#Uqz;9Kr0`WE>FnVwVveSz-qIXS&471n( zD;I-@;pW+MyXfD!M zTVY4)4B=YTF^p(%@>|=~55*Iq({pnWILdT+B||y+cL(!UKR9SHo8H|b{TZRo z_{ixrGh~0b69luMxXz?*yE+uX0RuS<$%A>bHd(wHD(M$dwATlUZrkuEbVe}$+bwx_ ztt|zv%20#w)x(oly4$JVrO&Oyi*sTCkz@Akq(h*wEr8^@WD7F$ezD{Fh`Sz`nD+*3^4Kq^w%oJYvS0> z{z=>*KvDx>%dK@J&Q>Uno^z1Du?9Sy(SHo}j`PL=VZX-q3Zl4>UuqfLG@ra8`n&Tt z#YB}mwy5w5bp0Sg3o!v!EV%yFe_Q(lQ{IgM&}yR6A2v|IwQ39dTh*1Jy7+_JIsJ23 zVm1A!93vU^andnBTc1;@#Ixop)pO}Hx46lwNYe4__ zzE?2TbX8JQQMvqQ8viam)zQi6eWUi}q{|{_Fy%U<(H6rH9GfuYx0v9kIYTyk7g}3{ z5p0UXymEbscKb~Zn>abqAW`#Hj>#6%hVTs$c1ttUTOOd|GVsVXKR~Z@-VnTG%j3rh zxD{YH38S>+BVLs3gAhOgBpsfuQfofJ=H^R0Y|=ca!dHJeml zm9Kgw$j@lCIh4OIjcsn*`kgOh*YaXZ_LN0caVp8?LkV*7X$*h2c1hWj#aZ_m`)0p* z{ztGun&aQ8PO;=C&dl!wMKNFNXh0Q92hcKu#V3DL8K>Qfb8r-E>$Z}D>y&(`kBR)x zmYIgf*JJuTlA`}3ViFgv;pDwixy<@!4%#`bazyKk8OcxjK2>Zs?)=tdm(6q{9K4O+ z^Qm_U2k{}fW6flAKx3mb2bmtcvOW>b9h(I=lvPkH7TN2jr~niVN*g6<-xSLtoW*`U zXdYhf1i|(BM29eh!)!VSW4|d_*MfOf)QA!FOwV)KDWST~t2I_^`IBdXewLeC5;jDi zU!s~@Y$?FUc}(4allz{vVJL&wXwc?TZZP|mlAq|72G}|9qSa+|2xY%7AqRhc)E~Ha z{c!rZ>CT6+OD)H89M|K9S4p@u>qW~P1-^d*Zmz}!?Pc>?L0TQeZFuZgY_f6h8t9re zXhV~zZiz>bD{vXx!NF!UdoNEl$9>uc2m)SwP*I@;oU+blvEu?Z-2atxn7eE_@%Pd} z(*)>)>*%J(BBSAXu@l;@=SflT{cXHW2J`40Byypa&93?xx__3HSf-3 zWLqswwOL5yQFlxXreDtlQP$BSU%~4tQ-AucJ&>ds_inxc^Sj;GJEYJ3wAEZg)2%?$ zwuI>uIiyYl5XwP+=(f!Rf}lbG76P0`6lw;z*2|9q;d;sSk7c~e_+`%FD!7|PjMvu^ zu*aiE)(~L**xvtx@b|jzMY}~ zI^a|lgJ3dIAEOOGiCn1a)M_zX1Zl%xI=w3MH(+{7=i()1%XPt#5dBpuBdCMU5@BL_ z31>{(kHAQni`1Wj&Ft)MWnkR7b;klbmCB5-F8JZ~6mFdtHXsD@`F2+y8kyl#ssk#V zKP=@mE&ngxA!^TH+LE`t&13$$-uk!KhE7Is#|+7OnK1D>Vx0bKj`v=;fMyq=akRs9 zn3+Geg&ePSDy@}@hJ=8s=CG=-yuF|k7TVcKpnk22ZLx7O&)A!?%zoFgg?l5ol4s*5 zFnp|i1fx291fjPk@6qf7ZgBan%nIb6;&6jdBIXur9+@C53}#$4y0o6$+x)h+f1I=n z*amit1;bGxy>trfSx!NaAyFW|GEKtIoUP>Rl14q=dd$fu7sK3lQcIiB7yRu~gm5ee zKKrHi_k;bJj?2H?L*g&Nwf3@Tv1hgxCN`6@<35^6Fw)9Qm__Sj@k8UTPK(abCv+y^F*xY8-Z>o-aTMsKX^?48Z4__>c3rV3x zzyzO&{Pmtykon7j|HFtULw7zQCw(2K^}7!#Y|j6t<{r&Gv;5=rDhB>C6w50U{g0f{ zl)Dg+-qgg7lH0iv&MV%u22bp3oXv9WCa}vKsoPT~e0*bH4jG+h?)cuKTmiue z7)UQc4HI?111_CP^{u{@AeR@O)CUN^64UwTGx1jS=>&8=WoK~13`(I>*~C_76kZoN zN?b#YPp2$ze?;0awz-)I6!6xmHcYpkuB}YC_we!kAW%eo=6?Q5`F*Z<8#>dmU9Y(o zpX++UO}vx)2;0VI2>6Fq4;79A0Sw(^HEN`g^~yBpQV@`qj{GcdXnvf5V1FNTRz&cR zbi0cetPo3u{O3NO2{XhPz$lGBhVSZe!y}mMKO6j7{k#0!w;pYPSc(Fn_K#excZzGY zl^C?wDH6yhJTr<$yulpSksmoRk-VVqSIbApr72o^15Z7?2ot-A8oBn;YPX}vU+&%` zwohhAFlE9dx~law)lK^6Z4b~U?M+%SxkqgoT?GqYYwzNSS7o9I?P@%0KMYpqLhm6xx$@ROwLrBusV&o#HJC5XU}%zCZYa z&&znGG8yY#IQi@QD8I?%PqzF=qIPD9|18gMg?@hXciCZ2CCxG>o|#9Z2!ZL?jZZg2yl!U3jW%0QKd)V`YRCMJi`6nwy^=IQxy!xQ)DJ!9IyJ4{ikAEjvM|QXP-HRwM@Z`7Dfg+0lb9zx!Sy`=x44&&b4Gbt ztn=Tx%5l(S&`-L%B9pFhO_^a?reBGs8-?=&c~~j0Y8NDU{~_b(+TSV!_$Fe`w-b?r zRh7uDg>B^3g7LJKeYiWxWuRQ%~cF8qB`{nIqJ zc<&TTKE4>Z8OLkYa*sWdF|}w^h@WW*T|gDtD!J034V5zg&GfgUqIneEHK5R@obf5w z8omJ2o){4HdofER9q(YXvwO!@R!w-l2zc9h?Ct6caIhv>64j{eoZ-wG5@zlj<0>Za zu`NK4MQ5X;BZu~tdBi!Omw4+Ky3bpjCJn=03xa?s`d+GFQWopP)OAkXbZ2==NH1}= z9WO(y05=d5NA!X-q&5@m*>R}7>W|T@(@TJ=a;1Wl^MVcSO~pY*ExhN3bj9!4P1hw? z(@Xr4TTYhMf(xYjJ^yzqPP`SafMOysmP>yXVAZ>HyJ_q6bfc&AZ1!E1_;8Q-j+ z!q3?b5Npkz_Fdz`9GT$YJofR>Ajj=I6mXV(Dx{dF#JUi&($42MO+N@}~6%5Q(p~D}@+Y{t` zwvipolL|gemp%2V9poQtubJ9^y4WS~E&$KZE=MM{ zG>qqzv8F=c0RVtEAn^cYDD(iT`;kix&KCwHderbXUFc;N7XK{`-8Q?b8Zkx?m63xS zjHpEZ`}hEDwCq4|xmRnfv4nko0dA!1G`7GX(Ro1_O$U60C>NvQ&l{ zTMtGzg)yO$al*2KFCL9*Gh{?RQ6w(6!|PrQv3ZY*$PFti?d^c)Fx|ACn@%$yT@6SI z4iOS&F+Tjb;7kdr{fF%}`p{K6MxxB8JwTH4WEF;-jdy@8n$2Pzt49&97fzFGGyK1I zd?w4UcLcXGZ|vQ9$iA%4IZ$`&&KUI3Z>XIe;X8-H_RkEQTtv# z`RLJIS*b2tU~#3P`lmG}NVos3Ah-p0ldQ^$m)eZOLej%+C4vI2qai^o>_>&0>Yyl{ zM?f1yGSuae#cQNuot4LUcKot_J~JF?VXSB5=2sDixjKIZTlR3*Z1nf9rIol+g7|2U z=|LZHEMXgx*X^3-JZ;K`W-y_LF$N6yQncGljI=ARF#4Esk|B+q z!G{GUd^nx*Q5l|p+1@qSs6gZUBxig@{91*tyCmRTSl$SJ87h)Vm3kuINq^IwM8}Qb z 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χflU-GA@4 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 O6owvS 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�pI_yRjpS~gy)2T01oNaUX`eKKs|RijR@Zsjkp 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 literal 16090 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 Date: Fri, 11 Dec 2020 18:48:23 +0800 Subject: [PATCH 33/51] update link in doc --- configs/det/bak/det_r50_vd_db.yml | 130 ------------------ .../bak/rec_mv3_none_bilstm_ctc_simple.yml | 106 -------------- .../rec/bak/rec_r34_vd_none_bilstm_ctc.yml | 104 -------------- configs/rec/bak/rec_r34_vd_none_none_ctc.yml | 103 -------------- ...yaml => rec_chinese_common_train_v2.0.yml} | 0 ...0.yaml => rec_chinese_lite_train_v2.0.yml} | 0 doc/doc_ch/inference.md | 43 +++--- doc/doc_ch/quickstart.md | 43 +++--- doc/doc_en/inference_en.md | 45 +++--- doc/doc_en/quickstart_en.md | 49 +++---- tools/export_model.py | 3 +- tools/program.py | 1 - 12 files changed, 91 insertions(+), 536 deletions(-) delete mode 100644 configs/det/bak/det_r50_vd_db.yml delete mode 100644 configs/rec/bak/rec_mv3_none_bilstm_ctc_simple.yml delete mode 100644 configs/rec/bak/rec_r34_vd_none_bilstm_ctc.yml delete mode 100644 configs/rec/bak/rec_r34_vd_none_none_ctc.yml rename configs/rec/ch_ppocr_v2.0/{rec_chinese_common_train_v2.0.yaml => rec_chinese_common_train_v2.0.yml} (100%) rename configs/rec/ch_ppocr_v2.0/{rec_chinese_lite_train_v2.0.yaml => rec_chinese_lite_train_v2.0.yml} (100%) diff --git a/configs/det/bak/det_r50_vd_db.yml b/configs/det/bak/det_r50_vd_db.yml deleted file mode 100644 index a07273b4a..000000000 --- a/configs/det/bak/det_r50_vd_db.yml +++ /dev/null @@ -1,130 +0,0 @@ -Global: - use_gpu: true - epoch_num: 1200 - log_smooth_window: 20 - print_batch_step: 2 - save_model_dir: ./output/det_r50_vd/ - save_epoch_step: 1200 - # evaluation is run every 5000 iterations after the 4000th iteration - eval_batch_step: 8 - # if pretrained_model is saved in static mode, load_static_weights must set to True - load_static_weights: True - cal_metric_during_train: False - pretrained_model: ./pretrain_models/ResNet50_vd_ssld_pretrained/ - checkpoints: - save_inference_dir: - use_visualdl: True - infer_img: doc/imgs_en/img_10.jpg - save_res_path: ./output/det_db/predicts_db.txt - -Optimizer: - name: Adam - beta1: 0.9 - beta2: 0.999 - learning_rate: - lr: 0.001 - regularizer: - name: 'L2' - factor: 0 - -Architecture: - type: det - algorithm: DB - Transform: - Backbone: - name: ResNet - layers: 50 - Neck: - name: FPN - out_channels: 256 - Head: - name: DBHead - k: 50 - -Loss: - name: DBLoss - balance_loss: true - main_loss_type: DiceLoss - alpha: 5 - beta: 10 - ohem_ratio: 3 - -PostProcess: - name: DBPostProcess - thresh: 0.3 - box_thresh: 0.6 - max_candidates: 1000 - unclip_ratio: 1.5 - -Metric: - name: DetMetric - main_indicator: hmean - -TRAIN: - dataset: - name: SimpleDataSet - data_dir: ./detection/ - file_list: - - ./detection/train_icdar2015_label.txt # dataset1 - ratio_list: [1.0] - transforms: - - DecodeImage: # load image - img_mode: BGR - channel_first: False - - DetLabelEncode: # Class handling label - - IaaAugment: - augmenter_args: - - { 'type': Fliplr, 'args': { 'p': 0.5 } } - - { 'type': Affine, 'args': { 'rotate': [ -10,10 ] } } - - { 'type': Resize,'args': { 'size': [ 0.5,3 ] } } - - EastRandomCropData: - size: [ 640,640 ] - max_tries: 50 - keep_ratio: true - - MakeBorderMap: - shrink_ratio: 0.4 - thresh_min: 0.3 - thresh_max: 0.7 - - MakeShrinkMap: - shrink_ratio: 0.4 - min_text_size: 8 - - NormalizeImage: - scale: 1./255. - mean: [ 0.485, 0.456, 0.406 ] - std: [ 0.229, 0.224, 0.225 ] - order: 'hwc' - - ToCHWImage: - - keepKeys: - keep_keys: ['image','threshold_map','threshold_mask','shrink_map','shrink_mask'] # dataloader will return list in this order - loader: - shuffle: True - drop_last: False - batch_size: 16 - num_workers: 8 - -EVAL: - dataset: - name: SimpleDataSet - data_dir: ./detection/ - file_list: - - ./detection/test_icdar2015_label.txt - transforms: - - DecodeImage: # load image - img_mode: BGR - channel_first: False - - DetLabelEncode: # Class handling label - - DetResizeForTest: - image_shape: [736,1280] - - NormalizeImage: - scale: 1./255. - mean: [ 0.485, 0.456, 0.406 ] - std: [ 0.229, 0.224, 0.225 ] - order: 'hwc' - - ToCHWImage: - - keepKeys: - keep_keys: ['image','shape','polys','ignore_tags'] - loader: - shuffle: False - drop_last: False - batch_size: 1 # must be 1 - num_workers: 8 \ No newline at end of file diff --git a/configs/rec/bak/rec_mv3_none_bilstm_ctc_simple.yml b/configs/rec/bak/rec_mv3_none_bilstm_ctc_simple.yml deleted file mode 100644 index 1be7512c9..000000000 --- a/configs/rec/bak/rec_mv3_none_bilstm_ctc_simple.yml +++ /dev/null @@ -1,106 +0,0 @@ -Global: - use_gpu: false - epoch_num: 500 - log_smooth_window: 20 - print_batch_step: 10 - save_model_dir: ./output/rec/mv3_none_bilstm_ctc/ - save_epoch_step: 500 - # evaluation is run every 5000 iterations after the 4000th iteration - eval_batch_step: 127 - # if pretrained_model is saved in static mode, load_static_weights must set to True - load_static_weights: True - cal_metric_during_train: True - pretrained_model: - checkpoints: - save_inference_dir: - use_visualdl: False - infer_img: doc/imgs_words/ch/word_1.jpg - # for data or label process - max_text_length: 80 - character_dict_path: ppocr/utils/ppocr_keys_v1.txt - character_type: 'ch' - use_space_char: False - infer_mode: False - use_tps: False - - -Optimizer: - name: Adam - beta1: 0.9 - beta2: 0.999 - learning_rate: - lr: 0.001 - regularizer: - name: 'L2' - factor: 0.00001 - -Architecture: - type: rec - algorithm: CRNN - Transform: - Backbone: - name: MobileNetV3 - scale: 0.5 - model_name: small - small_stride: [ 1, 2, 2, 2 ] - Neck: - name: SequenceEncoder - encoder_type: fc - hidden_size: 96 - Head: - name: CTC - fc_decay: 0.00001 - -Loss: - name: CTCLoss - -PostProcess: - name: CTCLabelDecode - -Metric: - name: RecMetric - main_indicator: acc - -TRAIN: - dataset: - name: SimpleDataSet - data_dir: ./rec - file_list: - - ./rec/train.txt # dataset1 - ratio_list: [ 0.4,0.6 ] - transforms: - - DecodeImage: # load image - img_mode: BGR - channel_first: False - - CTCLabelEncode: # Class handling label - - RecAug: - - RecResizeImg: - image_shape: [ 3,32,320 ] - - keepKeys: - keep_keys: [ 'image','label','length' ] # dataloader will return list in this order - loader: - batch_size: 256 - shuffle: True - drop_last: True - num_workers: 8 - -EVAL: - dataset: - name: SimpleDataSet - data_dir: ./rec - file_list: - - ./rec/val.txt - transforms: - - DecodeImage: # load image - img_mode: BGR - channel_first: False - - CTCLabelEncode: # Class handling label - - RecResizeImg: - image_shape: [ 3,32,320 ] - - keepKeys: - keep_keys: [ 'image','label','length' ] # dataloader will return list in this order - loader: - shuffle: False - drop_last: False - batch_size: 256 - num_workers: 8 diff --git a/configs/rec/bak/rec_r34_vd_none_bilstm_ctc.yml b/configs/rec/bak/rec_r34_vd_none_bilstm_ctc.yml deleted file mode 100644 index 36e3d1c81..000000000 --- a/configs/rec/bak/rec_r34_vd_none_bilstm_ctc.yml +++ /dev/null @@ -1,104 +0,0 @@ -Global: - use_gpu: false - epoch_num: 500 - log_smooth_window: 20 - print_batch_step: 10 - save_model_dir: ./output/rec/res34_none_bilstm_ctc/ - save_epoch_step: 500 - # evaluation is run every 5000 iterations after the 4000th iteration - eval_batch_step: 127 - # if pretrained_model is saved in static mode, load_static_weights must set to True - load_static_weights: True - cal_metric_during_train: True - pretrained_model: - checkpoints: - save_inference_dir: - use_visualdl: False - infer_img: doc/imgs_words/ch/word_1.jpg - # for data or label process - max_text_length: 80 - character_dict_path: ppocr/utils/ppocr_keys_v1.txt - character_type: 'ch' - use_space_char: False - infer_mode: False - use_tps: False - - -Optimizer: - name: Adam - beta1: 0.9 - beta2: 0.999 - learning_rate: - lr: 0.001 - regularizer: - name: 'L2' - factor: 0.00001 - -Architecture: - type: rec - algorithm: CRNN - Transform: - Backbone: - name: ResNet - layers: 34 - Neck: - name: SequenceEncoder - encoder_type: fc - hidden_size: 96 - Head: - name: CTC - fc_decay: 0.00001 - -Loss: - name: CTCLoss - -PostProcess: - name: CTCLabelDecode - -Metric: - name: RecMetric - main_indicator: acc - -TRAIN: - dataset: - name: SimpleDataSet - data_dir: ./rec - file_list: - - ./rec/train.txt # dataset1 - ratio_list: [ 0.4,0.6 ] - transforms: - - DecodeImage: # load image - img_mode: BGR - channel_first: False - - CTCLabelEncode: # Class handling label - - RecAug: - - RecResizeImg: - image_shape: [ 3,32,320 ] - - keepKeys: - keep_keys: [ 'image','label','length' ] # dataloader will return list in this order - loader: - batch_size: 256 - shuffle: True - drop_last: True - num_workers: 8 - -EVAL: - dataset: - name: SimpleDataSet - data_dir: ./rec - file_list: - - ./rec/val.txt - transforms: - - DecodeImage: # load image - img_mode: BGR - channel_first: False - - CTCLabelEncode: # Class handling label - - RecResizeImg: - image_shape: [ 3,32,320 ] - - keepKeys: - keep_keys: [ 'image','label','length' ] # dataloader will return list in this order - loader: - shuffle: False - drop_last: False - batch_size: 256 - num_workers: 8 diff --git a/configs/rec/bak/rec_r34_vd_none_none_ctc.yml b/configs/rec/bak/rec_r34_vd_none_none_ctc.yml deleted file mode 100644 index 641e855b4..000000000 --- a/configs/rec/bak/rec_r34_vd_none_none_ctc.yml +++ /dev/null @@ -1,103 +0,0 @@ -Global: - use_gpu: false - epoch_num: 500 - log_smooth_window: 20 - print_batch_step: 10 - save_model_dir: ./output/rec/res34_none_none_ctc/ - save_epoch_step: 500 - # evaluation is run every 5000 iterations after the 4000th iteration - eval_batch_step: 127 - # if pretrained_model is saved in static mode, load_static_weights must set to True - load_static_weights: True - cal_metric_during_train: True - pretrained_model: - checkpoints: - save_inference_dir: - use_visualdl: False - infer_img: doc/imgs_words/ch/word_1.jpg - # for data or label process - max_text_length: 80 - character_dict_path: ppocr/utils/ppocr_keys_v1.txt - character_type: 'ch' - use_space_char: False - infer_mode: False - use_tps: False - - -Optimizer: - name: Adam - beta1: 0.9 - beta2: 0.999 - learning_rate: - lr: 0.001 - regularizer: - name: 'L2' - factor: 0.00001 - -Architecture: - type: rec - algorithm: CRNN - Transform: - Backbone: - name: ResNet - layers: 34 - Neck: - name: SequenceEncoder - encoder_type: reshape - Head: - name: CTC - fc_decay: 0.00001 - -Loss: - name: CTCLoss - -PostProcess: - name: CTCLabelDecode - -Metric: - name: RecMetric - main_indicator: acc - -TRAIN: - dataset: - name: SimpleDataSet - data_dir: ./rec - file_list: - - ./rec/train.txt # dataset1 - ratio_list: [ 0.4,0.6 ] - transforms: - - DecodeImage: # load image - img_mode: BGR - channel_first: False - - CTCLabelEncode: # Class handling label - - RecAug: - - RecResizeImg: - image_shape: [ 3,32,320 ] - - keepKeys: - keep_keys: [ 'image','label','length' ] # dataloader will return list in this order - loader: - batch_size: 256 - shuffle: True - drop_last: True - num_workers: 8 - -EVAL: - dataset: - name: SimpleDataSet - data_dir: ./rec - file_list: - - ./rec/val.txt - transforms: - - DecodeImage: # load image - img_mode: BGR - channel_first: False - - CTCLabelEncode: # Class handling label - - RecResizeImg: - image_shape: [ 3,32,320 ] - - keepKeys: - keep_keys: [ 'image','label','length' ] # dataloader will return list in this order - loader: - shuffle: False - drop_last: False - batch_size: 256 - num_workers: 8 diff --git a/configs/rec/ch_ppocr_v2.0/rec_chinese_common_train_v2.0.yaml b/configs/rec/ch_ppocr_v2.0/rec_chinese_common_train_v2.0.yml similarity index 100% rename from configs/rec/ch_ppocr_v2.0/rec_chinese_common_train_v2.0.yaml rename to configs/rec/ch_ppocr_v2.0/rec_chinese_common_train_v2.0.yml diff --git a/configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yaml b/configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml similarity index 100% rename from configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yaml rename to configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml diff --git a/doc/doc_ch/inference.md b/doc/doc_ch/inference.md index dfd84cccb..8f4bea07f 100644 --- a/doc/doc_ch/inference.md +++ b/doc/doc_ch/inference.md @@ -41,7 +41,7 @@ inference 模型(`paddle.jit.save`保存的模型) 下载超轻量级中文检测模型: ``` -wget -P ./ch_lite/ {link} && tar xf ./ch_lite/ch_ppocr_mobile_v2.0_det_train.tar -C ./ch_lite/ +wget -P ./ch_lite/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_train.tar && tar xf ./ch_lite/ch_ppocr_mobile_v2.0_det_train.tar -C ./ch_lite/ ``` 上述模型是以MobileNetV3为backbone训练的DB算法,将训练好的模型转换成inference模型只需要运行如下命令: ``` @@ -51,9 +51,9 @@ wget -P ./ch_lite/ {link} && tar xf ./ch_lite/ch_ppocr_mobile_v2.0_det_train.tar # Global.load_static_weights 参数需要设置为 False。 # Global.save_inference_dir参数设置转换的模型将保存的地址。 -python3 tools/export_model.py -c configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml -o Global.checkpoints=./ch_lite/ch_ppocr_mobile_v2.0_det_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_db/ +python3 tools/export_model.py -c configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml -o Global.pretrained_model=./ch_lite/ch_ppocr_mobile_v2.0_det_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_db/ ``` -转inference模型时,使用的配置文件和训练时使用的配置文件相同。另外,还需要设置配置文件中的`Global.checkpoints`参数,其指向训练中保存的模型参数文件。 +转inference模型时,使用的配置文件和训练时使用的配置文件相同。另外,还需要设置配置文件中的`Global.pretrained_model`参数,其指向训练中保存的模型参数文件。 转换成功后,在模型保存目录下有三个文件: ``` inference/det_db/ @@ -67,7 +67,7 @@ inference/det_db/ 下载超轻量中文识别模型: ``` -wget -P ./ch_lite/ {link} && tar xf ./ch_lite/ch_ppocr_mobile_v2.0_rec_train.tar -C ./ch_lite/ +wget -P ./ch_lite/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_train.tar && tar xf ./ch_lite/ch_ppocr_mobile_v2.0_rec_train.tar -C ./ch_lite/ ``` 识别模型转inference模型与检测的方式相同,如下: @@ -78,7 +78,7 @@ wget -P ./ch_lite/ {link} && tar xf ./ch_lite/ch_ppocr_mobile_v2.0_rec_train.tar # Global.load_static_weights 参数需要设置为 False。 # Global.save_inference_dir参数设置转换的模型将保存的地址。 -python3 tools/export_model.py -c configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml -o Global.checkpoints=./ch_lite/ch_ppocr_mobile_v2.0_rec_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/rec_crnn/ +python3 tools/export_model.py -c configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml -o Global.pretrained_model=./ch_lite/ch_ppocr_mobile_v2.0_rec_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/rec_crnn/ ``` **注意:**如果您是在自己的数据集上训练的模型,并且调整了中文字符的字典文件,请注意修改配置文件中的`character_dict_path`是否是所需要的字典文件。 @@ -96,7 +96,7 @@ python3 tools/export_model.py -c configs/rec/ch_ppocr_v2.0/rec_chinese_lite_trai 下载方向分类模型: ``` -wget -P ./ch_lite/ {link} && tar xf ./ch_lite/ch_ppocr_mobile_v2.0_cls_train.tar -C ./ch_lite/ +wget -P ./ch_lite/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar && tar xf ./ch_lite/ch_ppocr_mobile_v2.0_cls_train.tar -C ./ch_lite/ ``` 方向分类模型转inference模型与检测的方式相同,如下: @@ -107,7 +107,7 @@ wget -P ./ch_lite/ {link} && tar xf ./ch_lite/ch_ppocr_mobile_v2.0_cls_train.tar # Global.load_static_weights 参数需要设置为 False。 # Global.save_inference_dir参数设置转换的模型将保存的地址。 -python3 tools/export_model.py -c configs/cls/cls_mv3.yml -o Global.checkpoints=./ch_lite/ch_ppocr_mobile_v2.0_cls_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/cls/ +python3 tools/export_model.py -c configs/cls/cls_mv3.yml -o Global.pretrained_model=./ch_lite/ch_ppocr_mobile_v2.0_cls_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/cls/ ``` 转换成功后,在目录下有三个文件: @@ -152,10 +152,10 @@ python3 tools/infer/predict_det.py --image_dir="./doc/imgs/2.jpg" --det_model_di ### 2. DB文本检测模型推理 -首先将DB文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例([模型下载地址](link)),可以使用如下命令进行转换: +首先将DB文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例( [模型下载地址](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_r50_vd_db_v2.0_train.tar) ),可以使用如下命令进行转换: ``` -python3 tools/export_model.py -c configs/det/det_r50_vd_db.yml -o Global.checkpoints=./det_r50_vd_db_v2.0.train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_db +python3 tools/export_model.py -c configs/det/det_r50_vd_db.yml -o Global.pretrained_model=./det_r50_vd_db_v2.0_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_db ``` DB文本检测模型推理,可以执行如下命令: @@ -173,10 +173,10 @@ python3 tools/infer/predict_det.py --image_dir="./doc/imgs_en/img_10.jpg" --det_ ### 3. EAST文本检测模型推理 -首先将EAST文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例([模型下载地址](link)),可以使用如下命令进行转换: +首先将EAST文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例( [模型下载地址 (coming soon)](link) ),可以使用如下命令进行转换: ``` -python3 tools/export_model.py -c configs/det/det_r50_vd_east.yml -o Global.checkpoints=./det_r50_vd_east_v2.0.train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_east +python3 tools/export_model.py -c configs/det/det_r50_vd_east.yml -o Global.pretrained_model=./det_r50_vd_east_v2.0_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_east ``` **EAST文本检测模型推理,需要设置参数`--det_algorithm="EAST"`**,可以执行如下命令: @@ -194,9 +194,9 @@ python3 tools/infer/predict_det.py --det_algorithm="EAST" --image_dir="./doc/img ### 4. SAST文本检测模型推理 #### (1). 四边形文本检测模型(ICDAR2015) -首先将SAST文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例([模型下载地址](link)),可以使用如下命令进行转换: +首先将SAST文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例([模型下载地址(coming soon)](link)),可以使用如下命令进行转换: ``` -python3 tools/export_model.py -c configs/det/det_r50_vd_sast_icdar15.yml -o Global.checkpoints=./det_r50_vd_sast_icdar15_v2.0.train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_sast_ic15 +python3 tools/export_model.py -c configs/det/det_r50_vd_sast_icdar15.yml -o Global.pretrained_model=./det_r50_vd_sast_icdar15_v2.0_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_sast_ic15 ``` **SAST文本检测模型推理,需要设置参数`--det_algorithm="SAST"`**,可以执行如下命令: @@ -208,10 +208,10 @@ python3 tools/infer/predict_det.py --det_algorithm="SAST" --image_dir="./doc/img ![](../imgs_results/det_res_img_10_sast.jpg) #### (2). 弯曲文本检测模型(Total-Text) -首先将SAST文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在Total-Text英文数据集训练的模型为例([模型下载地址](link)),可以使用如下命令进行转换: +首先将SAST文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在Total-Text英文数据集训练的模型为例([模型下载地址(coming soon)](link)),可以使用如下命令进行转换: ``` -python3 tools/export_model.py -c configs/det/det_r50_vd_sast_totaltext.yml -o Global.checkpoints=./det_r50_vd_sast_totaltext_v2.0.train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_sast_tt +python3 tools/export_model.py -c configs/det/det_r50_vd_sast_totaltext.yml -o Global.pretrained_model=./det_r50_vd_sast_totaltext_v2.0_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_sast_tt ``` @@ -254,10 +254,10 @@ Predicts of ./doc/imgs_words/ch/word_4.jpg:['实力活力', 0.89552695] 我们以 CRNN 为例,介绍基于CTC损失的识别模型推理。 Rosetta 使用方式类似,不用设置识别算法参数rec_algorithm。 首先将 Rosetta 文本识别训练过程中保存的模型,转换成inference model。以基于Resnet34_vd骨干网络,使用MJSynth和SynthText两个英文文本识别合成数据集训练 -的模型为例([模型下载地址](link)),可以使用如下命令进行转换: +的模型为例( [模型下载地址](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_r34_vd_none_bilstm_ctc_v2.0_train.tar) ),可以使用如下命令进行转换: ``` -python3 tools/export_model.py -c configs/det/rec_r34_vd_none_bilstm_ctc.yml -o Global.checkpoints=./rec_r34_vd_none_bilstm_ctc_v2.0.train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/rec_crnn +python3 tools/export_model.py -c configs/rec/rec_r34_vd_none_bilstm_ctc.yml -o Global.pretrained_model=./rec_r34_vd_none_bilstm_ctc_v2.0_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/rec_crnn ``` @@ -313,9 +313,9 @@ python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words/korean/1.jpg" - 执行命令后,上图的预测结果为: ``` text -2020-09-19 16:15:05,076-INFO: index: [205 206 38 39] -2020-09-19 16:15:05,077-INFO: word : 바탕으로 -2020-09-19 16:15:05,077-INFO: score: 0.9171358942985535 +2020-09-19 16:15:05,076-INFO: index: [205 206 38 39] +2020-09-19 16:15:05,077-INFO: word : 바탕으로 +2020-09-19 16:15:05,077-INFO: score: 0.9171358942985535 ``` @@ -337,8 +337,7 @@ python3 tools/infer/predict_cls.py --image_dir="./doc/imgs_words/ch/word_4.jpg" 执行命令后,上面图像的预测结果(分类的方向和得分)会打印到屏幕上,示例如下: ``` -infer_img: doc/imgs_words/ch/word_1.jpg - result: ('0', 0.9998784) +Predicts of ./doc/imgs_words/ch/word_4.jpg:['0', 0.9999982] ``` diff --git a/doc/doc_ch/quickstart.md b/doc/doc_ch/quickstart.md index b10258857..a2ab23461 100644 --- a/doc/doc_ch/quickstart.md +++ b/doc/doc_ch/quickstart.md @@ -9,12 +9,12 @@ ## 2.inference模型下载 -* 移动端和服务器端的检测与识别模型如下,更多模型下载(包括多语言),可以参考[PP-OCR v1.1 系列模型下载](../doc_ch/models_list.md) +* 移动端和服务器端的检测与识别模型如下,更多模型下载(包括多语言),可以参考[PP-OCR v2.0 系列模型下载](../doc_ch/models_list.md) | 模型简介 | 模型名称 |推荐场景 | 检测模型 | 方向分类器 | 识别模型 | | ------------ | --------------- | ----------------|---- | ---------- | -------- | -| 中英文超轻量OCR模型(xM) | |移动端&服务器端|[推理模型](link) / [预训练模型](link)|[推理模型]({}) / [预训练模型]({}) |[推理模型]({}) / [预训练模型]({}) | -| 中英文通用OCR模型(xM) | |服务器端 |[推理模型]({}) / [预训练模型]({}) |[推理模型]({}) / [预训练模型]({}) |[推理模型]({}) / [预训练模型]({}}) | +| 中英文超轻量OCR模型(8.6M) | ch_ppocr_mobile_v2.0_xx |移动端&服务器端|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_train.tar)|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_train.tar) | +| 中英文通用OCR模型(146.4M) | ch_ppocr_server_v2.0_xx |服务器端 |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_train.tar) | * windows 环境下如果没有安装wget,下载模型时可将链接复制到浏览器中下载,并解压放置在相应目录下 @@ -37,28 +37,29 @@ cd .. ``` mkdir inference && cd inference # 下载超轻量级中文OCR模型的检测模型并解压 -wget {} && tar xf ch_ppocr_mobile_v1.1_det_infer.tar +wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar && tar xf ch_ppocr_mobile_v2.0_det_infer.tar # 下载超轻量级中文OCR模型的识别模型并解压 -wget {} && tar xf ch_ppocr_mobile_v1.1_rec_infer.tar +wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar && tar xf ch_ppocr_mobile_v2.0_rec_infer.tar # 下载超轻量级中文OCR模型的文本方向分类器模型并解压 -wget {} && tar xf ch_ppocr_mobile_v1.1_cls_infer.tar +wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar && tar xf ch_ppocr_mobile_v2.0_cls_infer.tar cd .. ``` 解压完毕后应有如下文件结构: ``` -|-inference - |-ch_ppocr_mobile_v1.1_det_infer - |- model - |- params - |-ch_ppocr_mobile_v1.1_rec_infer - |- model - |- params - |-ch_ppocr_mobile-v1.1_cls_infer - |- model - |- params - ... +├── ch_ppocr_mobile_v2.0_cls_infer +│ ├── inference.pdiparams +│ ├── inference.pdiparams.info +│ └── inference.pdmodel +├── ch_ppocr_mobile_v2.0_det_infer +│ ├── inference.pdiparams +│ ├── inference.pdiparams.info +│ └── inference.pdmodel +├── ch_ppocr_mobile_v2.0_rec_infer + ├── inference.pdiparams + ├── inference.pdiparams.info + └── inference.pdmodel ``` ## 3.单张图像或者图像集合预测 @@ -68,13 +69,13 @@ cd .. ```bash # 预测image_dir指定的单张图像 -python3 tools/infer/predict_system.py --image_dir="./doc/imgs/11.jpg" --det_model_dir="./inference/ch_ppocr_mobile_v1.1_det_infer/" --rec_model_dir="./inference/ch_ppocr_mobile_v1.1_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v1.1_cls_infer/" --use_angle_cls=True --use_space_char=True +python3 tools/infer/predict_system.py --image_dir="./doc/imgs/11.jpg" --det_model_dir="./inference/ch_ppocr_mobile_v2.0_det_infer/" --rec_model_dir="./inference/ch_ppocr_mobile_v2.0_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v2.0_cls_infer/" --use_angle_cls=True --use_space_char=True # 预测image_dir指定的图像集合 -python3 tools/infer/predict_system.py --image_dir="./doc/imgs/" --det_model_dir="./inference/ch_ppocr_mobile_v1.1_det_infer/" --rec_model_dir="./inference/ch_ppocr_mobile_v1.1_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v1.1_cls_infer/" --use_angle_cls=True --use_space_char=True +python3 tools/infer/predict_system.py --image_dir="./doc/imgs/" --det_model_dir="./inference/ch_ppocr_mobile_v2.0_det_infer/" --rec_model_dir="./inference/ch_ppocr_mobile_v2.0_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v2.0_cls_infer/" --use_angle_cls=True --use_space_char=True # 如果想使用CPU进行预测,需设置use_gpu参数为False -python3 tools/infer/predict_system.py --image_dir="./doc/imgs/11.jpg" --det_model_dir="./inference/ch_ppocr_mobile_v1.1_det_infer/" --rec_model_dir="./inference/ch_ppocr_mobile_v1.1_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v1.1_cls_infer/" --use_angle_cls=True --use_space_char=True --use_gpu=False +python3 tools/infer/predict_system.py --image_dir="./doc/imgs/11.jpg" --det_model_dir="./inference/ch_ppocr_mobile_v2.0_det_infer/" --rec_model_dir="./inference/ch_ppocr_mobile_v2.0_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v2.0_cls_infer/" --use_angle_cls=True --use_space_char=True --use_gpu=False ``` - 通用中文OCR模型 @@ -83,7 +84,7 @@ python3 tools/infer/predict_system.py --image_dir="./doc/imgs/11.jpg" --det_mode ```bash # 预测image_dir指定的单张图像 -python3 tools/infer/predict_system.py --image_dir="./doc/imgs/11.jpg" --det_model_dir="./inference/ch_ppocr_server_v1.1_det_infer/" --rec_model_dir="./inference/ch_ppocr_server_v1.1_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v1.1_cls_infer/" --use_angle_cls=True --use_space_char=True +python3 tools/infer/predict_system.py --image_dir="./doc/imgs/11.jpg" --det_model_dir="./inference/ch_ppocr_server_v2.0_det_infer/" --rec_model_dir="./inference/ch_ppocr_server_v2.0_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v2.0_cls_infer/" --use_angle_cls=True --use_space_char=True ``` * 注意: diff --git a/doc/doc_en/inference_en.md b/doc/doc_en/inference_en.md index ac1b634de..ee567451a 100644 --- a/doc/doc_en/inference_en.md +++ b/doc/doc_en/inference_en.md @@ -43,21 +43,21 @@ Next, we first introduce how to convert a trained model into an inference model, Download the lightweight Chinese detection model: ``` -wget -P ./ch_lite/ {link} && tar xf ./ch_lite/ch_ppocr_mobile_v2.0_det_train.tar -C ./ch_lite/ +wget -P ./ch_lite/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_train.tar && tar xf ./ch_lite/ch_ppocr_mobile_v2.0_det_train.tar -C ./ch_lite/ ``` The above model is a DB algorithm trained with MobileNetV3 as the backbone. To convert the trained model into an inference model, just run the following command: ``` # -c Set the training algorithm yml configuration file # -o Set optional parameters -# Global.checkpoints parameter Set the training model address to be converted without adding the file suffix .pdmodel, .pdopt or .pdparams. +# Global.pretrained_model parameter Set the training model address to be converted without adding the file suffix .pdmodel, .pdopt or .pdparams. # Global.load_static_weights needs to be set to False # Global.save_inference_dir Set the address where the converted model will be saved. -python3 tools/export_model.py -c configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml -o Global.checkpoints=./ch_lite/ch_ppocr_mobile_v2.0_det_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_db/ +python3 tools/export_model.py -c configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml -o Global.pretrained_model=./ch_lite/ch_ppocr_mobile_v2.0_det_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_db/ ``` -When converting to an inference model, the configuration file used is the same as the configuration file used during training. In addition, you also need to set the `Global.checkpoints` parameter in the configuration file. +When converting to an inference model, the configuration file used is the same as the configuration file used during training. In addition, you also need to set the `Global.pretrained_model` parameter in the configuration file. After the conversion is successful, there are three files in the model save directory: ``` inference/det_db/ @@ -71,18 +71,18 @@ inference/det_db/ Download the lightweight Chinese recognition model: ``` -wget -P ./ch_lite/ {link} && tar xf ./ch_lite/ch_ppocr_mobile_v2.0_rec_train.tar -C ./ch_lite/ +wget -P ./ch_lite/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_train.tar && tar xf ./ch_lite/ch_ppocr_mobile_v2.0_rec_train.tar -C ./ch_lite/ ``` The recognition model is converted to the inference model in the same way as the detection, as follows: ``` # -c Set the training algorithm yml configuration file # -o Set optional parameters -# Global.checkpoints parameter Set the training model address to be converted without adding the file suffix .pdmodel, .pdopt or .pdparams. +# Global.pretrained_model parameter Set the training model address to be converted without adding the file suffix .pdmodel, .pdopt or .pdparams. # Global.load_static_weights needs to be set to False # Global.save_inference_dir Set the address where the converted model will be saved. -python3 tools/export_model.py -c configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml -o Global.checkpoints=./ch_lite/ch_ppocr_mobile_v2.0_rec_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/rec_crnn/ +python3 tools/export_model.py -c configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml -o Global.pretrained_model=./ch_lite/ch_ppocr_mobile_v2.0_rec_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/rec_crnn/ ``` If you have a model trained on your own dataset with a different dictionary file, please make sure that you modify the `character_dict_path` in the configuration file to your dictionary file path. @@ -100,18 +100,18 @@ inference/det_db/ Download the angle classification model: ``` -wget -P ./ch_lite/ {link} && tar xf ./ch_lite/ch_ppocr_mobile_v2.0_cls_train.tar -C ./ch_lite/ +wget -P ./ch_lite/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar && tar xf ./ch_lite/ch_ppocr_mobile_v2.0_cls_train.tar -C ./ch_lite/ ``` The angle classification model is converted to the inference model in the same way as the detection, as follows: ``` # -c Set the training algorithm yml configuration file # -o Set optional parameters -# Global.checkpoints parameter Set the training model address to be converted without adding the file suffix .pdmodel, .pdopt or .pdparams. +# Global.pretrained_model parameter Set the training model address to be converted without adding the file suffix .pdmodel, .pdopt or .pdparams. # Global.load_static_weights needs to be set to False # Global.save_inference_dir Set the address where the converted model will be saved. -python3 tools/export_model.py -c configs/cls/cls_mv3.yml -o Global.checkpoints=./ch_lite/ch_ppocr_mobile_v2.0_cls_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/cls/ +python3 tools/export_model.py -c configs/cls/cls_mv3.yml -o Global.pretrained_model=./ch_lite/ch_ppocr_mobile_v2.0_cls_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/cls/ ``` After the conversion is successful, there are two files in the directory: @@ -158,10 +158,10 @@ python3 tools/infer/predict_det.py --image_dir="./doc/imgs/2.jpg" --det_model_di ### 2. DB TEXT DETECTION MODEL INFERENCE -First, convert the model saved in the DB text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the ICDAR2015 English dataset as an example ([model download link](link)), you can use the following command to convert: +First, convert the model saved in the DB text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the ICDAR2015 English dataset as an example ([model download link](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_r50_vd_db_v2.0_train.tar)), you can use the following command to convert: ``` -python3 tools/export_model.py -c configs/det/det_r50_vd_db.yml -o Global.checkpoints=./det_r50_vd_db_v2.0.train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_db +python3 tools/export_model.py -c configs/det/det_r50_vd_db.yml -o Global.pretrained_model=./det_r50_vd_db_v2.0_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_db ``` DB text detection model inference, you can execute the following command: @@ -179,10 +179,10 @@ The visualized text detection results are saved to the `./inference_results` fol ### 3. EAST TEXT DETECTION MODEL INFERENCE -First, convert the model saved in the EAST text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the ICDAR2015 English dataset as an example ([model download link](link)), you can use the following command to convert: +First, convert the model saved in the EAST text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the ICDAR2015 English dataset as an example ([model download link (coming soon)](link)), you can use the following command to convert: ``` -python3 tools/export_model.py -c configs/det/det_r50_vd_east.yml -o Global.checkpoints=./det_r50_vd_east_v2.0.train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_east +python3 tools/export_model.py -c configs/det/det_r50_vd_east.yml -o Global.pretrained_model=./det_r50_vd_east_v2.0_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_east ``` **For EAST text detection model inference, you need to set the parameter ``--det_algorithm="EAST"``**, run the following command: @@ -200,10 +200,10 @@ The visualized text detection results are saved to the `./inference_results` fol ### 4. SAST TEXT DETECTION MODEL INFERENCE #### (1). Quadrangle text detection model (ICDAR2015) -First, convert the model saved in the SAST text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the ICDAR2015 English dataset as an example ([model download link](link)), you can use the following command to convert: +First, convert the model saved in the SAST text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the ICDAR2015 English dataset as an example ([model download link (coming soon)](link)), you can use the following command to convert: ``` -python3 tools/export_model.py -c configs/det/det_r50_vd_sast_icdar15.yml -o Global.checkpoints=./det_r50_vd_sast_icdar15_v2.0.train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_sast_ic15 +python3 tools/export_model.py -c configs/det/det_r50_vd_sast_icdar15.yml -o Global.pretrained_model=./det_r50_vd_sast_icdar15_v2.0_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_sast_ic15 ``` **For SAST quadrangle text detection model inference, you need to set the parameter `--det_algorithm="SAST"`**, run the following command: @@ -217,10 +217,10 @@ The visualized text detection results are saved to the `./inference_results` fol ![](../imgs_results/det_res_img_10_sast.jpg) #### (2). Curved text detection model (Total-Text) -First, convert the model saved in the SAST text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the Total-Text English dataset as an example ([model download link](https://paddleocr.bj.bcebos.com/SAST/sast_r50_vd_total_text.tar)), you can use the following command to convert: +First, convert the model saved in the SAST text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the Total-Text English dataset as an example ([model download link (coming soon)](https://paddleocr.bj.bcebos.com/SAST/sast_r50_vd_total_text.tar)), you can use the following command to convert: ``` -python3 tools/export_model.py -c configs/det/det_r50_vd_sast_totaltext.yml -o Global.checkpoints=./det_r50_vd_sast_totaltext_v2.0.train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_sast_tt +python3 tools/export_model.py -c configs/det/det_r50_vd_sast_totaltext.yml -o Global.pretrained_model=./det_r50_vd_sast_totaltext_v2.0_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/det_sast_tt ``` **For SAST curved text detection model inference, you need to set the parameter `--det_algorithm="SAST"` and `--det_sast_polygon=True`**, run the following command: @@ -262,10 +262,10 @@ Predicts of ./doc/imgs_words/ch/word_4.jpg:['实力活力', 0.89552695] Taking CRNN as an example, we introduce the recognition model inference based on CTC loss. Rosetta and Star-Net are used in a similar way, No need to set the recognition algorithm parameter rec_algorithm. -First, convert the model saved in the CRNN text recognition training process into an inference model. Taking the model based on Resnet34_vd backbone network, using MJSynth and SynthText (two English text recognition synthetic datasets) for training, as an example ([model download address](link)). It can be converted as follow: +First, convert the model saved in the CRNN text recognition training process into an inference model. Taking the model based on Resnet34_vd backbone network, using MJSynth and SynthText (two English text recognition synthetic datasets) for training, as an example ([model download address](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_r34_vd_none_bilstm_ctc_v2.0_train.tar)). It can be converted as follow: ``` -python3 tools/export_model.py -c configs/det/rec_r34_vd_none_bilstm_ctc.yml -o Global.checkpoints=./rec_r34_vd_none_bilstm_ctc_v2.0.train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/rec_crnn +python3 tools/export_model.py -c configs/det/rec_r34_vd_none_bilstm_ctc.yml -o Global.pretrained_model=./rec_r34_vd_none_bilstm_ctc_v2.0_train/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./inference/rec_crnn ``` For CRNN text recognition model inference, execute the following commands: @@ -335,7 +335,7 @@ The following will introduce the angle classification model inference. For angle classification model inference, you can execute the following commands: ``` -python3 tools/infer/predict_cls.py --image_dir="./doc/imgs_words/ch/word_4.jpg" --cls_model_dir="./inference/cls/" +python3 tools/infer/predict_cls.py --image_dir="./doc/imgs_words_en/word_10.png" --cls_model_dir="./inference/cls/" ``` ![](../imgs_words_en/word_10.png) @@ -343,8 +343,7 @@ python3 tools/infer/predict_cls.py --image_dir="./doc/imgs_words/ch/word_4.jpg" After executing the command, the prediction results (classification angle and score) of the above image will be printed on the screen. ``` -infer_img: doc/imgs_words_en/word_10.png - result: ('0', 0.9999995) + Predicts of ./doc/imgs_words_en/word_10.png:['0', 0.9999995] ``` diff --git a/doc/doc_en/quickstart_en.md b/doc/doc_en/quickstart_en.md index 6d4ce95d3..055661388 100644 --- a/doc/doc_en/quickstart_en.md +++ b/doc/doc_en/quickstart_en.md @@ -9,13 +9,13 @@ Please refer to [quick installation](./installation_en.md) to configure the Padd ## 2.inference models -The detection and recognition models on the mobile and server sides are as follows. For more models (including multiple languages), please refer to [PP-OCR v1.1 series model list](../doc_ch/models_list.md) +The detection and recognition models on the mobile and server sides are as follows. For more models (including multiple languages), please refer to [PP-OCR v2.0 series model list](../doc_ch/models_list.md) - -| Model introduction | Model name | Recommended scene | Detection model | Direction Classifier | Recognition model | +| Model introduction | Model name | Recommended scene | Detection model | Direction Classifier | Recognition model | | ------------ | --------------- | ----------------|---- | ---------- | -------- | -| Ultra-lightweight Chinese OCR model(xM) | ch_ppocr_mobile_v1.1_xx |Mobile-side/Server-side|[inference model](link) / [pretrained model](link)|[inference model](link) / [pretrained model](link) |[inference model](link) / [pretrained model](link) | -| Universal Chinese OCR model(xM) |ch_ppocr_server_v1.1_xx|Server-side |[inference model](link) / [pretrained model](link) |[inference model](link) / [pretrained model](link) |[inference model](link) / [pretrained model](link) | +| Ultra-lightweight Chinese OCR model(8.6M) | ch_ppocr_mobile_v2.0_xx |Mobile-side/Server-side|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_train.tar)|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_train.tar) | +| Universal Chinese OCR model(146.4M) | ch_ppocr_server_v2.0_xx |Server-side |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_train.tar) | + * If `wget` is not installed in the windows environment, you can copy the link to the browser to download when downloading the model, then uncompress it and place it in the corresponding directory. @@ -37,28 +37,29 @@ Take the ultra-lightweight model as an example: ``` mkdir inference && cd inference # Download the detection model of the ultra-lightweight Chinese OCR model and uncompress it -wget link && tar xf ch_ppocr_mobile_v1.1_det_infer.tar +wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar && tar xf ch_ppocr_mobile_v2.0_det_infer.tar # Download the recognition model of the ultra-lightweight Chinese OCR model and uncompress it -wget link && tar xf ch_ppocr_mobile_v1.1_rec_infer.tar -# Download the direction classifier model of the ultra-lightweight Chinese OCR model and uncompress it -wget link && tar xf ch_ppocr_mobile_v1.1_cls_infer.tar +wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar && tar xf ch_ppocr_mobile_v2.0_rec_infer.tar +# Download the angle classifier model of the ultra-lightweight Chinese OCR model and uncompress it +wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar && tar xf ch_ppocr_mobile_v2.0_cls_infer.tar cd .. ``` After decompression, the file structure should be as follows: ``` -|-inference - |-ch_ppocr_mobile_v1.1_det_infer - |- model - |- params - |-ch_ppocr_mobile_v1.1_rec_infer - |- model - |- params - |-ch_ppocr_mobile_v1.1_cls_infer - |- model - |- params - ... +├── ch_ppocr_mobile_v2.0_cls_infer +│ ├── inference.pdiparams +│ ├── inference.pdiparams.info +│ └── inference.pdmodel +├── ch_ppocr_mobile_v2.0_det_infer +│ ├── inference.pdiparams +│ ├── inference.pdiparams.info +│ └── inference.pdmodel +├── ch_ppocr_mobile_v2.0_rec_infer + ├── inference.pdiparams + ├── inference.pdiparams.info + └── inference.pdmodel ``` ## 3. Single image or image set prediction @@ -70,13 +71,13 @@ After decompression, the file structure should be as follows: ```bash # Predict a single image specified by image_dir -python3 tools/infer/predict_system.py --image_dir="./doc/imgs/11.jpg" --det_model_dir="./inference/ch_ppocr_mobile_v1.1_det_infer/" --rec_model_dir="./inference/ch_ppocr_mobile_v1.1_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v1.1_cls_infer/" --use_angle_cls=True --use_space_char=True +python3 tools/infer/predict_system.py --image_dir="./doc/imgs/11.jpg" --det_model_dir="./inference/ch_ppocr_mobile_v2.0_det_infer/" --rec_model_dir="./inference/ch_ppocr_mobile_v2.0_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v2.0_cls_infer/" --use_angle_cls=True --use_space_char=True # Predict imageset specified by image_dir -python3 tools/infer/predict_system.py --image_dir="./doc/imgs/" --det_model_dir="./inference/ch_ppocr_mobile_v1.1_det_infer/" --rec_model_dir="./inference/ch_ppocr_mobile_v1.1_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v1.1_cls_infer/" --use_angle_cls=True --use_space_char=True +python3 tools/infer/predict_system.py --image_dir="./doc/imgs/" --det_model_dir="./inference/ch_ppocr_mobile_v2.0_det_infer/" --rec_model_dir="./inference/ch_ppocr_mobile_v2.0_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v2.0_cls_infer/" --use_angle_cls=True --use_space_char=True # If you want to use the CPU for prediction, you need to set the use_gpu parameter to False -python3 tools/infer/predict_system.py --image_dir="./doc/imgs/11.jpg" --det_model_dir="./inference/ch_ppocr_mobile_v1.1_det_infer/" --rec_model_dir="./inference/ch_ppocr_mobile_v1.1_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v1.1_cls_infer/" --use_angle_cls=True --use_space_char=True --use_gpu=False +python3 tools/infer/predict_system.py --image_dir="./doc/imgs/11.jpg" --det_model_dir="./inference/ch_ppocr_mobile_v2.0_det_infer/" --rec_model_dir="./inference/ch_ppocr_mobile_v2.0_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v2.0_cls_infer/" --use_angle_cls=True --use_space_char=True --use_gpu=False ``` - Universal Chinese OCR model @@ -85,7 +86,7 @@ Please follow the above steps to download the corresponding models and update th ``` # Predict a single image specified by image_dir -python3 tools/infer/predict_system.py --image_dir="./doc/imgs/11.jpg" --det_model_dir="./inference/ch_ppocr_server_v1.1_det_infer/" --rec_model_dir="./inference/ch_ppocr_server_v1.1_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v1.1_cls_infer/" --use_angle_cls=True --use_space_char=True +python3 tools/infer/predict_system.py --image_dir="./doc/imgs/11.jpg" --det_model_dir="./inference/ch_ppocr_server_v2.0_det_infer/" --rec_model_dir="./inference/ch_ppocr_server_v2.0_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v2.0_cls_infer/" --use_angle_cls=True --use_space_char=True ``` * Note diff --git a/tools/export_model.py b/tools/export_model.py index 51c061788..74357d58e 100755 --- a/tools/export_model.py +++ b/tools/export_model.py @@ -28,7 +28,7 @@ from ppocr.modeling.architectures import build_model from ppocr.postprocess import build_post_process from ppocr.utils.save_load import init_model from ppocr.utils.logging import get_logger -from tools.program import load_config, merge_config,ArgsParser +from tools.program import load_config, merge_config, ArgsParser def main(): @@ -36,7 +36,6 @@ def main(): config = load_config(FLAGS.config) merge_config(FLAGS.opt) logger = get_logger() - print(config) # build post process post_process_class = build_post_process(config['PostProcess'], diff --git a/tools/program.py b/tools/program.py index 8e84d30e6..787a59d49 100755 --- a/tools/program.py +++ b/tools/program.py @@ -113,7 +113,6 @@ def merge_config(config): global_config.keys(), sub_keys[0]) cur = global_config[sub_keys[0]] for idx, sub_key in enumerate(sub_keys[1:]): - assert (sub_key in cur) if idx == len(sub_keys) - 2: cur[sub_key] = value else: From 913e11cbb8b31c870816d64b68deedbcd5d8d7b9 Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Fri, 11 Dec 2020 18:54:30 +0800 Subject: [PATCH 34/51] update model size --- doc/doc_ch/quickstart.md | 4 ++-- doc/doc_en/quickstart_en.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/doc_ch/quickstart.md b/doc/doc_ch/quickstart.md index a2ab23461..e3d854eb8 100644 --- a/doc/doc_ch/quickstart.md +++ b/doc/doc_ch/quickstart.md @@ -13,8 +13,8 @@ | 模型简介 | 模型名称 |推荐场景 | 检测模型 | 方向分类器 | 识别模型 | | ------------ | --------------- | ----------------|---- | ---------- | -------- | -| 中英文超轻量OCR模型(8.6M) | ch_ppocr_mobile_v2.0_xx |移动端&服务器端|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_train.tar)|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_train.tar) | -| 中英文通用OCR模型(146.4M) | ch_ppocr_server_v2.0_xx |服务器端 |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_train.tar) | +| 中英文超轻量OCR模型(8.1M) | ch_ppocr_mobile_v2.0_xx |移动端&服务器端|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_train.tar)|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_train.tar) | +| 中英文通用OCR模型(155.1M) | ch_ppocr_server_v2.0_xx |服务器端 |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_train.tar) | * windows 环境下如果没有安装wget,下载模型时可将链接复制到浏览器中下载,并解压放置在相应目录下 diff --git a/doc/doc_en/quickstart_en.md b/doc/doc_en/quickstart_en.md index 055661388..6b3f2db09 100644 --- a/doc/doc_en/quickstart_en.md +++ b/doc/doc_en/quickstart_en.md @@ -13,8 +13,8 @@ The detection and recognition models on the mobile and server sides are as follo | Model introduction | Model name | Recommended scene | Detection model | Direction Classifier | Recognition model | | ------------ | --------------- | ----------------|---- | ---------- | -------- | -| Ultra-lightweight Chinese OCR model(8.6M) | ch_ppocr_mobile_v2.0_xx |Mobile-side/Server-side|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_train.tar)|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_train.tar) | -| Universal Chinese OCR model(146.4M) | ch_ppocr_server_v2.0_xx |Server-side |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_train.tar) | +| Ultra-lightweight Chinese OCR model(8.1M) | ch_ppocr_mobile_v2.0_xx |Mobile-side/Server-side|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_train.tar)|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_train.tar) | +| Universal Chinese OCR model(155.1M) | ch_ppocr_server_v2.0_xx |Server-side |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_train.tar) | * If `wget` is not installed in the windows environment, you can copy the link to the browser to download when downloading the model, then uncompress it and place it in the corresponding directory. From e55e2241318fdd1b8048b008c3a790cb20cbacda Mon Sep 17 00:00:00 2001 From: Double_V Date: Fri, 11 Dec 2020 21:07:43 +0800 Subject: [PATCH 35/51] set use_shared_momery as False when eval (#1394) --- ppocr/data/__init__.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ppocr/data/__init__.py b/ppocr/data/__init__.py index 2f95b3776..7b0faf126 100644 --- a/ppocr/data/__init__.py +++ b/ppocr/data/__init__.py @@ -67,6 +67,7 @@ def build_dataloader(config, mode, device, logger): drop_last = loader_config['drop_last'] num_workers = loader_config['num_workers'] + use_shared_memory = False if mode == "Train": #Distribute data to multiple cards batch_sampler = DistributedBatchSampler( @@ -74,6 +75,7 @@ def build_dataloader(config, mode, device, logger): batch_size=batch_size, shuffle=False, drop_last=drop_last) + use_shared_memory = True else: #Distribute data to single card batch_sampler = BatchSampler( @@ -87,6 +89,7 @@ def build_dataloader(config, mode, device, logger): batch_sampler=batch_sampler, places=device, num_workers=num_workers, - return_list=True) + return_list=True, + use_shared_memory=use_shared_memory) return data_loader From 8d113f7d9df8a939ced51b4e78745fdf699db3e8 Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Fri, 11 Dec 2020 22:06:42 +0800 Subject: [PATCH 36/51] update link --- doc/doc_ch/whl.md | 2 +- paddleocr.py | 123 ++++++++++++++++++++++++---------------------- 2 files changed, 66 insertions(+), 59 deletions(-) diff --git a/doc/doc_ch/whl.md b/doc/doc_ch/whl.md index c51f32778..587b443ba 100644 --- a/doc/doc_ch/whl.md +++ b/doc/doc_ch/whl.md @@ -348,7 +348,7 @@ im_show.save('result.jpg') | cls_batch_num | 进行分类时,同时前向的图片数 |30 | | enable_mkldnn | 是否启用mkldnn | FALSE | | use_zero_copy_run | 是否通过zero_copy_run的方式进行前向 | FALSE | -| lang | 模型语言类型,目前支持 中文(ch)和英文(en) | ch | +| lang | 模型语言类型,目前支持 目前支持中英文(ch)、英文(en)、法语(french)、德语(german)、韩语(korean)、日语(japan) | ch | | det | 前向时使用启动检测 | TRUE | | rec | 前向时是否启动识别 | TRUE | | cls | 前向时是否启动分类 (命令行模式下使用use_angle_cls控制前向是否启动分类) | FALSE | diff --git a/paddleocr.py b/paddleocr.py index 17306e79f..1d8cd2546 100644 --- a/paddleocr.py +++ b/paddleocr.py @@ -35,44 +35,45 @@ __all__ = ['PaddleOCR'] model_urls = { 'det': - 'https://paddleocr.bj.bcebos.com/20-09-22/mobile/det/ch_ppocr_mobile_v1.1_det_infer.tar', + 'https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar', 'rec': { 'ch': { 'url': - 'https://paddleocr.bj.bcebos.com/20-09-22/mobile/rec/ch_ppocr_mobile_v1.1_rec_infer.tar', + 'https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar', 'dict_path': './ppocr/utils/ppocr_keys_v1.txt' }, 'en': { 'url': - 'https://paddleocr.bj.bcebos.com/20-09-22/mobile/en/en_ppocr_mobile_v1.1_rec_infer.tar', - 'dict_path': './ppocr/utils/ic15_dict.txt' + 'https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/en_number_mobile_v2.0_rec_infer.tar', + 'dict_path': './ppocr/utils/dict/en_dict.txt' }, 'french': { 'url': - 'https://paddleocr.bj.bcebos.com/20-09-22/mobile/fr/french_ppocr_mobile_v1.1_rec_infer.tar', + 'https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/french_mobile_v2.0_rec_infer.tar', 'dict_path': './ppocr/utils/dict/french_dict.txt' }, 'german': { 'url': - 'https://paddleocr.bj.bcebos.com/20-09-22/mobile/ge/german_ppocr_mobile_v1.1_rec_infer.tar', + 'https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/german_mobile_v2.0_rec_infer.tar', 'dict_path': './ppocr/utils/dict/german_dict.txt' }, 'korean': { 'url': - 'https://paddleocr.bj.bcebos.com/20-09-22/mobile/kr/korean_ppocr_mobile_v1.1_rec_infer.tar', + 'https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/korean_mobile_v2.0_rec_infer.tar', 'dict_path': './ppocr/utils/dict/korean_dict.txt' }, 'japan': { 'url': - 'https://paddleocr.bj.bcebos.com/20-09-22/mobile/jp/japan_ppocr_mobile_v1.1_rec_infer.tar', + 'https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/japan_mobile_v2.0_rec_infer.tar', 'dict_path': './ppocr/utils/dict/japan_dict.txt' } }, 'cls': - 'https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_infer.tar' + 'https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar' } SUPPORT_DET_MODEL = ['DB'] +VERSION = 2.0 SUPPORT_REC_MODEL = ['CRNN'] BASE_DIR = os.path.expanduser("~/.paddleocr/") @@ -94,20 +95,24 @@ def download_with_progressbar(url, save_path): def maybe_download(model_storage_directory, url): # using custom model - if not os.path.exists(os.path.join( - model_storage_directory, 'model')) or not os.path.exists( - os.path.join(model_storage_directory, 'params')): + tar_file_name_list = [ + 'inference.pdiparams', 'inference.pdiparams.info', 'inference.pdmodel' + ] + if not os.path.exists( + os.path.join(model_storage_directory, 'inference.pdiparams') + ) or not os.path.exists( + os.path.join(model_storage_directory, 'inference.pdmodel')): tmp_path = os.path.join(model_storage_directory, url.split('/')[-1]) print('download {} to {}'.format(url, tmp_path)) os.makedirs(model_storage_directory, exist_ok=True) download_with_progressbar(url, tmp_path) with tarfile.open(tmp_path, 'r') as tarObj: for member in tarObj.getmembers(): - if "model" in member.name: - filename = 'model' - elif "params" in member.name: - filename = 'params' - else: + filename = None + for tar_file_name in tar_file_name_list: + if tar_file_name in member.name: + filename = tar_file_name + if filename is None: continue file = tarObj.extractfile(member) with open( @@ -176,43 +181,43 @@ def parse_args(mMain=True, add_help=True): parser.add_argument("--use_angle_cls", type=str2bool, default=False) return parser.parse_args() else: - return argparse.Namespace(use_gpu=True, - ir_optim=True, - use_tensorrt=False, - gpu_mem=8000, - image_dir='', - det_algorithm='DB', - det_model_dir=None, - det_limit_side_len=960, - det_limit_type='max', - det_db_thresh=0.3, - det_db_box_thresh=0.5, - det_db_unclip_ratio=2.0, - det_east_score_thresh=0.8, - det_east_cover_thresh=0.1, - det_east_nms_thresh=0.2, - rec_algorithm='CRNN', - rec_model_dir=None, - rec_image_shape="3, 32, 320", - rec_char_type='ch', - rec_batch_num=30, - max_text_length=25, - rec_char_dict_path=None, - use_space_char=True, - drop_score=0.5, - cls_model_dir=None, - cls_image_shape="3, 48, 192", - label_list=['0', '180'], - cls_batch_num=30, - cls_thresh=0.9, - enable_mkldnn=False, - use_zero_copy_run=False, - use_pdserving=False, - lang='ch', - det=True, - rec=True, - use_angle_cls=False - ) + return argparse.Namespace( + use_gpu=True, + ir_optim=True, + use_tensorrt=False, + gpu_mem=8000, + image_dir='', + det_algorithm='DB', + det_model_dir=None, + det_limit_side_len=960, + det_limit_type='max', + det_db_thresh=0.3, + det_db_box_thresh=0.5, + det_db_unclip_ratio=2.0, + det_east_score_thresh=0.8, + det_east_cover_thresh=0.1, + det_east_nms_thresh=0.2, + rec_algorithm='CRNN', + rec_model_dir=None, + rec_image_shape="3, 32, 320", + rec_char_type='ch', + rec_batch_num=30, + max_text_length=25, + rec_char_dict_path=None, + use_space_char=True, + drop_score=0.5, + cls_model_dir=None, + cls_image_shape="3, 48, 192", + label_list=['0', '180'], + cls_batch_num=30, + cls_thresh=0.9, + enable_mkldnn=False, + use_zero_copy_run=False, + use_pdserving=False, + lang='ch', + det=True, + rec=True, + use_angle_cls=False) class PaddleOCR(predict_system.TextSystem): @@ -228,19 +233,21 @@ class PaddleOCR(predict_system.TextSystem): lang = postprocess_params.lang assert lang in model_urls[ 'rec'], 'param lang must in {}, but got {}'.format( - model_urls['rec'].keys(), lang) + model_urls['rec'].keys(), lang) if postprocess_params.rec_char_dict_path is None: postprocess_params.rec_char_dict_path = model_urls['rec'][lang][ 'dict_path'] # init model dir if postprocess_params.det_model_dir is None: - postprocess_params.det_model_dir = os.path.join(BASE_DIR, 'det') + postprocess_params.det_model_dir = os.path.join( + BASE_DIR, '{}/det'.format(VERSION)) if postprocess_params.rec_model_dir is None: postprocess_params.rec_model_dir = os.path.join( - BASE_DIR, 'rec/{}'.format(lang)) + BASE_DIR, '{}/rec/{}'.format(VERSION, lang)) if postprocess_params.cls_model_dir is None: - postprocess_params.cls_model_dir = os.path.join(BASE_DIR, 'cls') + postprocess_params.cls_model_dir = os.path.join( + BASE_DIR, '{}/cls'.format(VERSION)) print(postprocess_params) # download model maybe_download(postprocess_params.det_model_dir, model_urls['det']) From 49c32f44f9bd5683be46cf82e66fe213c36412df Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Fri, 11 Dec 2020 22:20:26 +0800 Subject: [PATCH 37/51] change v1.1 to v2.0 --- doc/doc_ch/config.md | 6 +++--- doc/doc_en/config_en.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/doc_ch/config.md b/doc/doc_ch/config.md index 2cc502cad..b185929e8 100644 --- a/doc/doc_ch/config.md +++ b/doc/doc_ch/config.md @@ -10,8 +10,8 @@ ## 配置文件参数介绍 -以 `rec_chinese_lite_train_v1.1.yml ` 为例 -### Global +以 `rec_chinese_lite_train_v2.0.yml ` 为例 +### Global | 字段 | 用途 | 默认值 | 备注 | | :----------------------: | :---------------------: | :--------------: | :--------------------: | @@ -119,4 +119,4 @@ | shuffle | 每个epoch是否将数据集顺序打乱 | True | \ | | batch_size_per_card | 训练时单卡batch size | 256 | \ | | drop_last | 是否丢弃因数据集样本数不能被 batch_size 整除而产生的最后一个不完整的mini-batch | True | \ | -| num_workers | 用于加载数据的子进程个数,若为0即为不开启子进程,在主进程中进行数据加载 | 8 | \ | \ No newline at end of file +| num_workers | 用于加载数据的子进程个数,若为0即为不开启子进程,在主进程中进行数据加载 | 8 | \ | diff --git a/doc/doc_en/config_en.md b/doc/doc_en/config_en.md index 574bb41b6..6f54ce249 100644 --- a/doc/doc_en/config_en.md +++ b/doc/doc_en/config_en.md @@ -9,8 +9,8 @@ The following list can be viewed through `--help` ## INTRODUCTION TO GLOBAL PARAMETERS OF CONFIGURATION FILE -Take rec_chinese_lite_train_v1.1.yml as an example -### Global +Take rec_chinese_lite_train_v2.0.yml as an example +### Global | Parameter | Use | Defaults | Note | | :----------------------: | :---------------------: | :--------------: | :--------------------: | @@ -118,4 +118,4 @@ In ppocr, the network is divided into four stages: Transform, Backbone, Neck and | shuffle | Does each epoch disrupt the order of the data set | True | \ | | batch_size_per_card | Single card batch size during training | 256 | \ | | drop_last | Whether to discard the last incomplete mini-batch because the number of samples in the data set cannot be divisible by batch_size | True | \ | -| num_workers | The number of sub-processes used to load data, if it is 0, the sub-process is not started, and the data is loaded in the main process | 8 | \ | \ No newline at end of file +| num_workers | The number of sub-processes used to load data, if it is 0, the sub-process is not started, and the data is loaded in the main process | 8 | \ | From f4dd2ee65cfc081b819a9d71440594cc1cf17c39 Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Fri, 11 Dec 2020 23:06:31 +0800 Subject: [PATCH 38/51] update pre-train model of rec --- doc/doc_ch/quickstart.md | 4 ++-- doc/doc_en/quickstart_en.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/doc_ch/quickstart.md b/doc/doc_ch/quickstart.md index e3d854eb8..2fb97d823 100644 --- a/doc/doc_ch/quickstart.md +++ b/doc/doc_ch/quickstart.md @@ -13,8 +13,8 @@ | 模型简介 | 模型名称 |推荐场景 | 检测模型 | 方向分类器 | 识别模型 | | ------------ | --------------- | ----------------|---- | ---------- | -------- | -| 中英文超轻量OCR模型(8.1M) | ch_ppocr_mobile_v2.0_xx |移动端&服务器端|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_train.tar)|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_train.tar) | -| 中英文通用OCR模型(155.1M) | ch_ppocr_server_v2.0_xx |服务器端 |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_train.tar) | +| 中英文超轻量OCR模型(8.1M) | ch_ppocr_mobile_v2.0_xx |移动端&服务器端|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_train.tar)|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_pre.tar) | +| 中英文通用OCR模型(155.1M) | ch_ppocr_server_v2.0_xx |服务器端 |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_pre.tar) | * windows 环境下如果没有安装wget,下载模型时可将链接复制到浏览器中下载,并解压放置在相应目录下 diff --git a/doc/doc_en/quickstart_en.md b/doc/doc_en/quickstart_en.md index 6b3f2db09..6d7f6f8d1 100644 --- a/doc/doc_en/quickstart_en.md +++ b/doc/doc_en/quickstart_en.md @@ -13,8 +13,8 @@ The detection and recognition models on the mobile and server sides are as follo | Model introduction | Model name | Recommended scene | Detection model | Direction Classifier | Recognition model | | ------------ | --------------- | ----------------|---- | ---------- | -------- | -| Ultra-lightweight Chinese OCR model(8.1M) | ch_ppocr_mobile_v2.0_xx |Mobile-side/Server-side|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_train.tar)|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_train.tar) | -| Universal Chinese OCR model(155.1M) | ch_ppocr_server_v2.0_xx |Server-side |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_train.tar) | +| Ultra-lightweight Chinese OCR model(8.1M) | ch_ppocr_mobile_v2.0_xx |Mobile-side/Server-side|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_train.tar)|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_pre.tar) | +| Universal Chinese OCR model(155.1M) | ch_ppocr_server_v2.0_xx |Server-side |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_pre.tar) | * If `wget` is not installed in the windows environment, you can copy the link to the browser to download when downloading the model, then uncompress it and place it in the corresponding directory. From 03d585324004bc1bed80837513e5dd22967d29f9 Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Sat, 12 Dec 2020 10:53:49 +0800 Subject: [PATCH 39/51] update model_list doc --- doc/doc_ch/models_list.md | 63 +++++++++++++++++++---------------- doc/doc_en/models_list_en.md | 64 +++++++++++++++++++----------------- 2 files changed, 69 insertions(+), 58 deletions(-) diff --git a/doc/doc_ch/models_list.md b/doc/doc_ch/models_list.md index c85def4ef..f44e304f3 100644 --- a/doc/doc_ch/models_list.md +++ b/doc/doc_ch/models_list.md @@ -1,4 +1,4 @@ -## OCR模型列表(V1.1,9月22日更新) +## OCR模型列表(V2.0,2020年12月11日更新) - [一、文本检测模型](#文本检测模型) - [二、文本识别模型](#文本识别模型) @@ -10,19 +10,20 @@ PaddleOCR提供的可下载模型包括`推理模型`、`训练模型`、`预训练模型`、`slim模型`,模型区别说明如下: |模型类型|模型格式|简介| -|-|-|-| -|推理模型|model、params|用于python预测引擎推理,[详情](./inference.md)| -|训练模型、预训练模型|\*.pdmodel、\*.pdopt、\*.pdparams|训练过程中保存的checkpoints模型,保存的是模型的参数,多用于模型指标评估和恢复训练| +|--- | --- | --- | +|推理模型|inference.pdmodel、inference.pdiparams|用于python预测引擎推理,[详情](./inference.md)| +|训练模型、预训练模型|\*.pdparams、\*.pdopt、\*.states |训练过程中保存的模型的参数、优化器状态和训练中间信息,多用于模型指标评估和恢复训练| |slim模型|\*.nb|用于lite部署| ### 一、文本检测模型 + |模型名称|模型简介|配置文件|推理模型大小|下载地址| -|-|-|-|-|-| -|ch_ppocr_mobile_slim_v1.1_det|slim裁剪版超轻量模型,支持中英文、多语种文本检测|[det_mv3_db_v1.1.yml](../../configs/det/det_mv3_db_v1.1.yml)|1.4M|[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile-slim/det/ch_ppocr_mobile_v1.1_det_prune_infer.tar) / [slim模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/lite/ch_ppocr_mobile_v1.1_det_prune_opt.nb)| -|ch_ppocr_mobile_v1.1_det|原始超轻量模型,支持中英文、多语种文本检测|[det_mv3_db_v1.1.yml](../../configs/det/det_mv3_db_v1.1.yml)|2.6M|[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/det/ch_ppocr_mobile_v1.1_det_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/det/ch_ppocr_mobile_v1.1_det_train.tar)| -|ch_ppocr_server_v1.1_det|通用模型,支持中英文、多语种文本检测,比超轻量模型更大,但效果更好|[det_r18_vd_db_v1.1.yml](../../configs/det/det_r18_vd_db_v1.1.yml)|47.2M|[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/server/det/ch_ppocr_server_v1.1_det_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/20-09-22/server/det/ch_ppocr_server_v1.1_det_train.tar)| +| --- | --- | --- | --- | --- | +|ch_ppocr_mobile_slim_v2.0_det|slim裁剪版超轻量模型,支持中英文、多语种文本检测|[ch_det_mv3_db_v2.0.yml](../../configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml)| |[推理模型 (coming soon)](link) / [slim模型 (coming soon)](link)| +|ch_ppocr_mobile_v2.0_det|原始超轻量模型,支持中英文、多语种文本检测|[ch_det_mv3_db_v2.0.yml](../../configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml)|3M|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_train.tar)| +|ch_ppocr_server_v2.0_det|通用模型,支持中英文、多语种文本检测,比超轻量模型更大,但效果更好|[ch_det_res18_db_v2.0.yml](../../configs/det/ch_ppocr_v2.0/ch_det_res18_db_v2.0.yml)|47M|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_train.tar)| @@ -30,42 +31,48 @@ PaddleOCR提供的可下载模型包括`推理模型`、`训练模型`、`预训 #### 1. 中文识别模型 + |模型名称|模型简介|配置文件|推理模型大小|下载地址| -|-|-|-|-|-| -|ch_ppocr_mobile_slim_v1.1_rec|slim裁剪量化版超轻量模型,支持中英文、数字识别|[rec_chinese_lite_train_v1.1.yml](../../configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yml)|1.6M|[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile-slim/rec/ch_ppocr_mobile_v1.1_rec_quant_infer.tar) / [slim模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/lite/ch_ppocr_mobile_v1.1_rec_quant_opt.nb) | -|ch_ppocr_mobile_v1.1_rec|原始超轻量模型,支持中英文、数字识别|[rec_chinese_lite_train_v1.1.yml](../../configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yml)|4.6M|[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/rec/ch_ppocr_mobile_v1.1_rec_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/rec/ch_ppocr_mobile_v1.1_rec_train.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/rec/ch_ppocr_mobile_v1.1_rec_pre.tar) | -|ch_ppocr_server_v1.1_rec|通用模型,支持中英文、数字识别|[rec_chinese_common_train_v1.1.yml](../../configs/rec/ch_ppocr_v1.1/rec_chinese_common_train_v1.1.yml)|105M|[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/server/rec/ch_ppocr_server_v1.1_rec_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/20-09-22/server/rec/ch_ppocr_server_v1.1_rec_train.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/20-09-22/server/rec/ch_ppocr_server_v1.1_rec_pre.tar) | +| --- | --- | --- | --- | --- | +|ch_ppocr_mobile_slim_v2.0_rec|slim裁剪量化版超轻量模型,支持中英文、数字识别|[rec_chinese_lite_train_v2.0.yml](../../configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml)| |[推理模型 (coming soon)](link) / [slim模型 (coming soon)](link) | +|ch_ppocr_mobile_v2.0_rec|原始超轻量模型,支持中英文、数字识别|[rec_chinese_lite_train_v2.0.yml](../../configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml)|3.71M|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_train.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_pre.tar) | +|ch_ppocr_server_v2.0_rec|通用模型,支持中英文、数字识别|[rec_chinese_common_train_v2.0.yml](../../configs/rec/ch_ppocr_v2.0/rec_chinese_common_train_v2.0.yml)|94.8M|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_train.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_pre.tar) | **说明:** `训练模型`是基于预训练模型在真实数据与竖排合成文本数据上finetune得到的模型,在真实应用场景中有着更好的表现,`预训练模型`则是直接基于全量真实数据与合成数据训练得到,更适合用于在自己的数据集上finetune。 #### 2. 英文识别模型 + |模型名称|模型简介|配置文件|推理模型大小|下载地址| -|-|-|-|-|-| -|en_ppocr_mobile_slim_v1.1_rec|slim裁剪量化版超轻量模型,支持英文、数字识别|[rec_en_lite_train.yml](../../configs/rec/multi_languages/rec_en_lite_train.yml)|0.9M|[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile-slim/en/en_ppocr_mobile_v1.1_rec_quant_infer.tar) / [slim模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile-slim/en/en_ppocr_mobile_v1.1_rec_quant_opt.nb) | -|en_ppocr_mobile_v1.1_rec|原始超轻量模型,支持英文、数字识别|[rec_en_lite_train.yml](../../configs/rec/multi_languages/rec_en_lite_train.yml)|2.0M|[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/en/en_ppocr_mobile_v1.1_rec_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/en/en_ppocr_mobile_v1.1_rec_train.tar) | +| --- | --- | --- | --- | --- | +|en_number_mobile_slim_v2.0_rec|slim裁剪量化版超轻量模型,支持英文、数字识别|[rec_en_number_lite_train.yml](../../configs/rec/multi_language/rec_en_number_lite_train.yml)| |[推理模型 (coming soon )](link) / [slim模型 (coming soon)](link) | +|en_number_mobile_v2.0_rec|原始超轻量模型,支持英文、数字识别|[rec_en_number_lite_train.yml](../../configs/rec/multi_language/rec_en_number_lite_train.yml)|2.56M|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/en_number_mobile_v2.0_rec_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/en_number_mobile_v2.0_rec_train.tar) | #### 3. 多语言识别模型(更多语言持续更新中...) + |模型名称|模型简介|配置文件|推理模型大小|下载地址| -|-|-|-|-|-| -| french_ppocr_mobile_v1.1_rec |法文识别|[rec_french_lite_train.yml](../../configs/rec/multi_languages/rec_french_lite_train.yml)|2.1M|[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/fr/french_ppocr_mobile_v1.1_rec_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/fr/french_ppocr_mobile_v1.1_rec_train.tar) | -| german_ppocr_mobile_v1.1_rec |德文识别|[rec_ger_lite_train.yml](../../configs/rec/multi_languages/rec_ger_lite_train.yml)|2.1M|[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/ge/german_ppocr_mobile_v1.1_rec_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/ge/german_ppocr_mobile_v1.1_rec_train.tar) | -| korean_ppocr_mobile_v1.1_rec |韩文识别|[rec_korean_lite_train.yml](../../configs/rec/multi_languages/rec_korean_lite_train.yml)|3.4M|[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/kr/korean_ppocr_mobile_v1.1_rec_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/kr/korean_ppocr_mobile_v1.1_rec_train.tar) | -| japan_ppocr_mobile_v1.1_rec |日文识别|[rec_japan_lite_train.yml](../../configs/rec/multi_languages/rec_japan_lite_train.yml)|3.7M|[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/jp/japan_ppocr_mobile_v1.1_rec_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/jp/japan_ppocr_mobile_v1.1_rec_train.tar) | +| --- | --- | --- | --- | --- | +| french_mobile_v2.0_rec |法文识别|[rec_french_lite_train.yml](../../configs/rec/multi_language/rec_french_lite_train.yml)|2.65M|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/french_mobile_v2.0_rec_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/french_mobile_v2.0_rec_train.tar) | +| german_mobile_v2.0_rec |德文识别|[rec_german_lite_train.yml](../../configs/rec/multi_language/rec_german_lite_train.yml)|2.65M|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/german_mobile_v2.0_rec_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/german_mobile_v2.0_rec_train.tar) | +| korean_mobile_v2.0_rec |韩文识别|[rec_korean_lite_train.yml](../../configs/rec/multi_language/rec_korean_lite_train.yml)|3.9M|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/korean_mobile_v2.0_rec_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/korean_mobile_v2.0_rec_train.tar) | +| japan_mobile_v2.0_rec |日文识别|[rec_japan_lite_train.yml](../../configs/rec/multi_language/rec_japan_lite_train.yml)|4.23M|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/japan_mobile_v2.0_rec_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/japan_mobile_v2.0_rec_train.tar) | ### 三、文本方向分类模型 + |模型名称|模型简介|配置文件|推理模型大小|下载地址| -|-|-|-|-|-| -|ch_ppocr_mobile_v1.1_cls_quant|slim量化版模型|[cls_mv3.yml](../../configs/cls/cls_mv3.yml)|0.5M|[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_quant_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_quant_train.tar) / [slim模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/lite/ch_ppocr_mobile_v1.1_cls_quant_opt.nb) | -|ch_ppocr_mobile_v1.1_cls|原始模型|[cls_mv3.yml](../../configs/cls/cls_mv3.yml)|850kb|[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_train.tar) | +| --- | --- | --- | --- | --- | +|ch_ppocr_mobile_slim_v2.0_cls|slim量化版模型|[cls_mv3.yml](../../configs/cls/cls_mv3.yml)| |[推理模型 (coming soon)](link) / [训练模型](link) / [slim模型](link) | +|ch_ppocr_mobile_v2.0_cls|原始模型|[cls_mv3.yml](../../configs/cls/cls_mv3.yml)|1.38M|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) | -## OCR模型列表(V1.0,7月16日更新) +## OCR模型列表(V1.1,9月22日更新) + +[1.1系列模型地址](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/doc/doc_ch/models_list.md) + +使用2.0版本代码加载1.x系列模型训练模型需在配置文件进行如下设置: +1. `Global.load_static_weights=True` +2. `Global.pretrained_model={path/to/1.x_model}` -|模型名称|模型简介|检测模型地址|识别模型地址|支持空格的识别模型地址| -|-|-|-|-|-| -|chinese_db_crnn_mobile|8.6M超轻量级中文OCR模型|[推理模型](https://paddleocr.bj.bcebos.com/ch_models/ch_det_mv3_db_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/ch_models/ch_det_mv3_db.tar) |[推理模型](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_mv3_crnn_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_mv3_crnn.tar) |[推理模型](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_mv3_crnn_enhance_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_mv3_crnn_enhance.tar) -|chinese_db_crnn_server|通用中文OCR模型|[推理模型](https://paddleocr.bj.bcebos.com/ch_models/ch_det_r50_vd_db_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/ch_models/ch_det_r50_vd_db.tar) |[推理模型](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_r34_vd_crnn_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_r34_vd_crnn.tar) |[推理模型](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_r34_vd_crnn_enhance_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_r34_vd_crnn_enhance.tar) diff --git a/doc/doc_en/models_list_en.md b/doc/doc_en/models_list_en.md index 3d3cdc1d6..189cf76d4 100644 --- a/doc/doc_en/models_list_en.md +++ b/doc/doc_en/models_list_en.md @@ -10,61 +10,65 @@ The downloadable models provided by PaddleOCR include `inference model`, `trained model`, `pre-trained model` and `slim model`. The differences between the models are as follows: |model type|model format|description| -|-|-|-| -|inference model|model、params|Used for reasoning based on Python prediction engine. [detail](./inference_en.md)| -|trained model / pre-trained model|\*.pdmodel、\*.pdopt、\*.pdparams|The checkpoints model saved in the training process, which stores the parameters of the model, mostly used for model evaluation and continuous training.| +|--- | --- | --- | +|inference model|inference.pdmodel、inference.pdiparams|Used for reasoning based on Python prediction engine,[detail](./inference.md)| +|trained model, pre-trained model|\*.pdparams、\*.pdopt、\*.states |The checkpoints model saved in the training process, which stores the parameters of the model, mostly used for model evaluation and continuous training.| |slim model|\*.nb|Generally used for Lite deployment| - ### 1. Text Detection Model -|model name|description|config|model size|download| -|-|-|-|-|-| -|ch_ppocr_mobile_slim_v1.1_det|Slim pruned lightweight model, supporting Chinese, English, multilingual text detection|[det_mv3_db_v1.1.yml](../../configs/det/det_mv3_db_v1.1.yml)|1.4M|[inference model](https://paddleocr.bj.bcebos.com/20-09-22/mobile-slim/det/ch_ppocr_mobile_v1.1_det_prune_infer.tar) / [slim model](https://paddleocr.bj.bcebos.com/20-09-22/mobile/lite/ch_ppocr_mobile_v1.1_det_prune_opt.nb)| -|ch_ppocr_mobile_v1.1_det|Original lightweight model, supporting Chinese, English, multilingual text detection|[det_mv3_db_v1.1.yml](../../configs/det/det_mv3_db_v1.1.yml)|2.6M|[inference model](https://paddleocr.bj.bcebos.com/20-09-22/mobile/det/ch_ppocr_mobile_v1.1_det_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/20-09-22/mobile/det/ch_ppocr_mobile_v1.1_det_train.tar)| -|ch_ppocr_server_v1.1_det|General model, which is larger than the lightweight model, but achieved better performance|[det_r18_vd_db_v1.1.yml](../../configs/det/det_r18_vd_db_v1.1.yml)|47.2M|[inference model](https://paddleocr.bj.bcebos.com/20-09-22/server/det/ch_ppocr_server_v1.1_det_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/20-09-22/server/det/ch_ppocr_server_v1.1_det_train.tar)| +|model name|description|config|model size|download| +| --- | --- | --- | --- | --- | +|ch_ppocr_mobile_slim_v2.0_det|Slim pruned lightweight model, supporting Chinese, English, multilingual text detection|[ch_det_mv3_db_v2.0.yml](../../configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml)| |[inference model (coming soon)](link) / [slim model (coming soon)](link)| +|ch_ppocr_mobile_v2.0_det|Original lightweight model, supporting Chinese, English, multilingual text detection|[ch_det_mv3_db_v2.0.yml](../../configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml)|3M|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_train.tar)| +|ch_ppocr_server_v2.0_det|General model, which is larger than the lightweight model, but achieved better performance|[ch_det_res18_db_v2.0.yml](../../configs/det/ch_ppocr_v2.0/ch_det_res18_db_v2.0.yml)|47M|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_train.tar)| ### 2. Text Recognition Model #### Chinese Recognition Model + |model name|description|config|model size|download| -|-|-|-|-|-| -|ch_ppocr_mobile_slim_v1.1_rec|Slim pruned and quantized lightweight model, supporting Chinese, English and number recognition|[rec_chinese_lite_train_v1.1.yml](../../configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yml)|1.6M|[inference model](https://paddleocr.bj.bcebos.com/20-09-22/mobile-slim/rec/ch_ppocr_mobile_v1.1_rec_quant_infer.tar) / [slim model](https://paddleocr.bj.bcebos.com/20-09-22/mobile/lite/ch_ppocr_mobile_v1.1_rec_quant_opt.nb) | -|ch_ppocr_mobile_v1.1_rec|Original lightweight model, supporting Chinese, English and number recognition|[rec_chinese_lite_train_v1.1.yml](../../configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yml)|4.6M|[inference model](https://paddleocr.bj.bcebos.com/20-09-22/mobile/rec/ch_ppocr_mobile_v1.1_rec_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/20-09-22/mobile/rec/ch_ppocr_mobile_v1.1_rec_train.tar) / [pre-trained model](https://paddleocr.bj.bcebos.com/20-09-22/mobile/rec/ch_ppocr_mobile_v1.1_rec_pre.tar) | -|ch_ppocr_server_v1.1_rec|General model, supporting Chinese, English and number recognition|[rec_chinese_common_train_v1.1.yml](../../configs/rec/ch_ppocr_v1.1/rec_chinese_common_train_v1.1.yml)|105M|[inference model](https://paddleocr.bj.bcebos.com/20-09-22/server/rec/ch_ppocr_server_v1.1_rec_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/20-09-22/server/rec/ch_ppocr_server_v1.1_rec_train.tar) / [pre-trained model](https://paddleocr.bj.bcebos.com/20-09-22/server/rec/ch_ppocr_server_v1.1_rec_pre.tar) | +| --- | --- | --- | --- | --- | +|ch_ppocr_mobile_slim_v2.0_rec|Slim pruned and quantized lightweight model, supporting Chinese, English and number recognition|[rec_chinese_lite_train_v2.0.yml](../../configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml)| |[inference model (coming soon)](link) / [slim model (coming soon)](link) | +|ch_ppocr_mobile_v2.0_rec|Original lightweight model, supporting Chinese, English and number recognition|[rec_chinese_lite_train_v2.0.yml](../../configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml)|3.71M|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_train.tar) / [pre-trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_pre.tar) | +|ch_ppocr_server_v2.0_rec|General model, supporting Chinese, English and number recognition|[rec_chinese_common_train_v2.0.yml](../../configs/rec/ch_ppocr_v2.0/rec_chinese_common_train_v2.0.yml)|94.8M|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_train.tar) / [pre-trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_pre.tar) | + **Note:** The `trained model` is finetuned on the `pre-trained model` with real data and synthsized vertical text data, which achieved better performance in real scene. The `pre-trained model` is directly trained on the full amount of real data and synthsized data, which is more suitable for finetune on your own dataset. #### English Recognition Model + |model name|description|config|model size|download| -|-|-|-|-|-| -|en_ppocr_mobile_slim_v1.1_rec|Slim pruned and quantized lightweight model, supporting English and number recognition|[rec_en_lite_train.yml](../../configs/rec/multi_languages/rec_en_lite_train.yml)|0.9M|[inference model](https://paddleocr.bj.bcebos.com/20-09-22/mobile-slim/en/en_ppocr_mobile_v1.1_rec_quant_infer.tar) / [slim model](https://paddleocr.bj.bcebos.com/20-09-22/mobile-slim/en/en_ppocr_mobile_v1.1_rec_quant_opt.nb) | -|en_ppocr_mobile_v1.1_rec|Original lightweight model, supporting English and number recognition|[rec_en_lite_train.yml](../../configs/rec/multi_languages/rec_en_lite_train.yml)|2.0M|[inference model](https://paddleocr.bj.bcebos.com/20-09-22/mobile/en/en_ppocr_mobile_v1.1_rec_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/20-09-22/mobile/en/en_ppocr_mobile_v1.1_rec_train.tar) | +| --- | --- | --- | --- | --- | +|en_number_mobile_slim_v2.0_rec|Slim pruned and quantized lightweight model, supporting English and number recognition|[rec_en_number_lite_train.yml](../../configs/rec/multi_language/rec_en_number_lite_train.yml)| |[inference model (coming soon )](link) / [slim model (coming soon)](link) | +|en_number_mobile_v2.0_rec|Original lightweight model, supporting English and number recognition|[rec_en_number_lite_train.yml](../../configs/rec/multi_language/rec_en_number_lite_train.yml)|2.56M|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/en_number_mobile_v2.0_rec_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/en_number_mobile_v2.0_rec_train.tar) | #### Multilingual Recognition Model(Updating...) -|model name|description|config|model size|download| -|-|-|-|-|-| -| french_ppocr_mobile_v1.1_rec |Lightweight model for French recognition|[rec_french_lite_train.yml](../../configs/rec/multi_languages/rec_french_lite_train.yml)|2.1M|[inference model](https://paddleocr.bj.bcebos.com/20-09-22/mobile/fr/french_ppocr_mobile_v1.1_rec_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/20-09-22/mobile/fr/french_ppocr_mobile_v1.1_rec_train.tar) | -| german_ppocr_mobile_v1.1_rec |German model for French recognition|[rec_ger_lite_train.yml](../../configs/rec/multi_languages/rec_ger_lite_train.yml)|2.1M|[inference model](https://paddleocr.bj.bcebos.com/20-09-22/mobile/ge/german_ppocr_mobile_v1.1_rec_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/20-09-22/mobile/ge/german_ppocr_mobile_v1.1_rec_train.tar) | -| korean_ppocr_mobile_v1.1_rec |Lightweight model for Korean recognition|[rec_korean_lite_train.yml](../../configs/rec/multi_languages/rec_korean_lite_train.yml)|3.4M|[inference model](https://paddleocr.bj.bcebos.com/20-09-22/mobile/kr/korean_ppocr_mobile_v1.1_rec_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/20-09-22/mobile/kr/korean_ppocr_mobile_v1.1_rec_train.tar) | -| japan_ppocr_mobile_v1.1_rec |Lightweight model for Japanese recognition|[rec_japan_lite_train.yml](../../configs/rec/multi_languages/rec_japan_lite_train.yml)|3.7M|[inference model](https://paddleocr.bj.bcebos.com/20-09-22/mobile/jp/japan_ppocr_mobile_v1.1_rec_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/20-09-22/mobile/jp/japan_ppocr_mobile_v1.1_rec_train.tar) | +|model name|description|config|model size|download| +| --- | --- | --- | --- | --- | +| french_mobile_v2.0_rec |Lightweight model for French recognition|[rec_french_lite_train.yml](../../configs/rec/multi_language/rec_french_lite_train.yml)|2.65M|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/french_mobile_v2.0_rec_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/french_mobile_v2.0_rec_train.tar) | +| german_mobile_v2.0_rec |Lightweight model for French recognition|[rec_german_lite_train.yml](../../configs/rec/multi_language/rec_german_lite_train.yml)|2.65M|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/german_mobile_v2.0_rec_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/german_mobile_v2.0_rec_train.tar) | +| korean_mobile_v2.0_rec |Lightweight model for Korean recognition|[rec_korean_lite_train.yml](../../configs/rec/multi_language/rec_korean_lite_train.yml)|3.9M|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/korean_mobile_v2.0_rec_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/korean_mobile_v2.0_rec_train.tar) | +| japan_mobile_v2.0_rec |Lightweight model for Japanese recognition|[rec_japan_lite_train.yml](../../configs/rec/multi_language/rec_japan_lite_train.yml)|4.23M|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/japan_mobile_v2.0_rec_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/japan_mobile_v2.0_rec_train.tar) | ### 3. Text Angle Classification Model + |model name|description|config|model size|download| -|-|-|-|-|-| -|ch_ppocr_mobile_v1.1_cls_quant|Slim quantized model|[cls_mv3.yml](../../configs/cls/cls_mv3.yml)|0.5M|[inference model](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_quant_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_quant_train.tar) / [slim model](https://paddleocr.bj.bcebos.com/20-09-22/mobile/lite/ch_ppocr_mobile_v1.1_cls_quant_opt.nb) | -|ch_ppocr_mobile_v1.1_cls|Original model|[cls_mv3.yml](../../configs/cls/cls_mv3.yml)|850kb|[inference model](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_train.tar) | +| --- | --- | --- | --- | --- | +|ch_ppocr_mobile_slim_v2.0_cls|Slim quantized model|[cls_mv3.yml](../../configs/cls/cls_mv3.yml)| |[inference model (coming soon)](link) / [trained model](link) / [slim model](link) | +|ch_ppocr_mobile_v2.0_cls|Original model|[cls_mv3.yml](../../configs/cls/cls_mv3.yml)|1.38M|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) | -## OCR model list(V1.0, updated on 7.16) -|model name|description|detection model|recognition model|recognition model supporting space recognition| -|-|-|-|-|-| -|chinese_db_crnn_mobile|8.6M lightweight OCR model|[inference model](https://paddleocr.bj.bcebos.com/ch_models/ch_det_mv3_db_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/ch_models/ch_det_mv3_db.tar) | [inference model](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_mv3_crnn_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_mv3_crnn.tar) |[inference model](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_mv3_crnn_enhance_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_mv3_crnn_enhance.tar) -|chinese_db_crnn_server|General OCR model|[inference model](https://paddleocr.bj.bcebos.com/ch_models/ch_det_r50_vd_db_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/ch_models/ch_det_r50_vd_db.tar) | [inference model](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_r34_vd_crnn_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_r34_vd_crnn.tar) |[inference model](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_r34_vd_crnn_enhance_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/ch_models/ch_rec_r34_vd_crnn_enhance.tar) +## OCR模型列表(V1.1,9月22日更新) +[1.1 series model address](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/doc/doc_ch/models_list.md) + +Use the 2.0 version code to load the 1.x series model training model needs to be set in the configuration file as follows: +1. `Global.load_static_weights=True` +2. `Global.pretrained_model={path/to/1.x_model}` From cee24caf515e09c9c37ac71932ed061eb0742897 Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Sat, 12 Dec 2020 10:54:40 +0800 Subject: [PATCH 40/51] update model size --- doc/doc_ch/quickstart.md | 2 +- doc/doc_en/quickstart_en.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/doc_ch/quickstart.md b/doc/doc_ch/quickstart.md index 2fb97d823..eabf1d91c 100644 --- a/doc/doc_ch/quickstart.md +++ b/doc/doc_ch/quickstart.md @@ -14,7 +14,7 @@ | 模型简介 | 模型名称 |推荐场景 | 检测模型 | 方向分类器 | 识别模型 | | ------------ | --------------- | ----------------|---- | ---------- | -------- | | 中英文超轻量OCR模型(8.1M) | ch_ppocr_mobile_v2.0_xx |移动端&服务器端|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_train.tar)|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_pre.tar) | -| 中英文通用OCR模型(155.1M) | ch_ppocr_server_v2.0_xx |服务器端 |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_pre.tar) | +| 中英文通用OCR模型(143M) | ch_ppocr_server_v2.0_xx |服务器端 |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_pre.tar) | * windows 环境下如果没有安装wget,下载模型时可将链接复制到浏览器中下载,并解压放置在相应目录下 diff --git a/doc/doc_en/quickstart_en.md b/doc/doc_en/quickstart_en.md index 6d7f6f8d1..e351ecc65 100644 --- a/doc/doc_en/quickstart_en.md +++ b/doc/doc_en/quickstart_en.md @@ -13,8 +13,8 @@ The detection and recognition models on the mobile and server sides are as follo | Model introduction | Model name | Recommended scene | Detection model | Direction Classifier | Recognition model | | ------------ | --------------- | ----------------|---- | ---------- | -------- | -| Ultra-lightweight Chinese OCR model(8.1M) | ch_ppocr_mobile_v2.0_xx |Mobile-side/Server-side|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_train.tar)|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_pre.tar) | -| Universal Chinese OCR model(155.1M) | ch_ppocr_server_v2.0_xx |Server-side |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_pre.tar) | +| Ultra-lightweight Chinese OCR model (8.1M) | ch_ppocr_mobile_v2.0_xx |Mobile-side/Server-side|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_train.tar)|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_pre.tar) | +| Universal Chinese OCR model (143M) | ch_ppocr_server_v2.0_xx |Server-side |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar) / [pretrained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_pre.tar) | * If `wget` is not installed in the windows environment, you can copy the link to the browser to download when downloading the model, then uncompress it and place it in the corresponding directory. From 0e80bade3cb1c77e06818414c0088583d505253d Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Sat, 12 Dec 2020 10:55:42 +0800 Subject: [PATCH 41/51] update inference.md to inference_en.md --- doc/doc_en/models_list_en.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/doc_en/models_list_en.md b/doc/doc_en/models_list_en.md index 189cf76d4..8c9329c86 100644 --- a/doc/doc_en/models_list_en.md +++ b/doc/doc_en/models_list_en.md @@ -11,7 +11,7 @@ The downloadable models provided by PaddleOCR include `inference model`, `traine |model type|model format|description| |--- | --- | --- | -|inference model|inference.pdmodel、inference.pdiparams|Used for reasoning based on Python prediction engine,[detail](./inference.md)| +|inference model|inference.pdmodel、inference.pdiparams|Used for reasoning based on Python prediction engine,[detail](./inference_en.md)| |trained model, pre-trained model|\*.pdparams、\*.pdopt、\*.states |The checkpoints model saved in the training process, which stores the parameters of the model, mostly used for model evaluation and continuous training.| |slim model|\*.nb|Generally used for Lite deployment| From c3231f1b0e9d7c944e129a5ef59439959df76d1a Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Sat, 12 Dec 2020 11:03:11 +0800 Subject: [PATCH 42/51] remove 2.0 load 1.1 model --- doc/doc_ch/models_list.md | 6 +----- doc/doc_en/models_list_en.md | 7 ++----- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/doc/doc_ch/models_list.md b/doc/doc_ch/models_list.md index f44e304f3..965ed79c9 100644 --- a/doc/doc_ch/models_list.md +++ b/doc/doc_ch/models_list.md @@ -68,11 +68,7 @@ PaddleOCR提供的可下载模型包括`推理模型`、`训练模型`、`预训 |ch_ppocr_mobile_v2.0_cls|原始模型|[cls_mv3.yml](../../configs/cls/cls_mv3.yml)|1.38M|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) | -## OCR模型列表(V1.1,9月22日更新) +## OCR模型列表(V1.1,2020年9月22日更新) [1.1系列模型地址](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/doc/doc_ch/models_list.md) -使用2.0版本代码加载1.x系列模型训练模型需在配置文件进行如下设置: -1. `Global.load_static_weights=True` -2. `Global.pretrained_model={path/to/1.x_model}` - diff --git a/doc/doc_en/models_list_en.md b/doc/doc_en/models_list_en.md index 8c9329c86..68a59caa0 100644 --- a/doc/doc_en/models_list_en.md +++ b/doc/doc_en/models_list_en.md @@ -66,9 +66,6 @@ The downloadable models provided by PaddleOCR include `inference model`, `traine |ch_ppocr_mobile_v2.0_cls|Original model|[cls_mv3.yml](../../configs/cls/cls_mv3.yml)|1.38M|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) | -## OCR模型列表(V1.1,9月22日更新) -[1.1 series model address](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/doc/doc_ch/models_list.md) +## OCR model list (V1.1,update in 2020.9.22) -Use the 2.0 version code to load the 1.x series model training model needs to be set in the configuration file as follows: -1. `Global.load_static_weights=True` -2. `Global.pretrained_model={path/to/1.x_model}` +[1.1 series model address](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/doc/doc_ch/models_list.md) From 1759c1a8120ce015e68fd8a1543bbd21a39da402 Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Sat, 12 Dec 2020 11:03:50 +0800 Subject: [PATCH 43/51] remove 2.0 load 1.1 model --- doc/doc_ch/models_list.md | 2 +- doc/doc_en/models_list_en.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/doc_ch/models_list.md b/doc/doc_ch/models_list.md index 965ed79c9..b281e1e73 100644 --- a/doc/doc_ch/models_list.md +++ b/doc/doc_ch/models_list.md @@ -1,4 +1,4 @@ -## OCR模型列表(V2.0,2020年12月11日更新) +## OCR模型列表(V2.0,2020年12月12日更新) - [一、文本检测模型](#文本检测模型) - [二、文本识别模型](#文本识别模型) diff --git a/doc/doc_en/models_list_en.md b/doc/doc_en/models_list_en.md index 68a59caa0..63d8c598b 100644 --- a/doc/doc_en/models_list_en.md +++ b/doc/doc_en/models_list_en.md @@ -1,4 +1,4 @@ -## OCR model list(V1.1, updated on 9.22) +## OCR model list(V1.1, updated on 2020.12.12) - [1. Text Detection Model](#Detection) - [2. Text Recognition Model](#Recognition) @@ -66,6 +66,6 @@ The downloadable models provided by PaddleOCR include `inference model`, `traine |ch_ppocr_mobile_v2.0_cls|Original model|[cls_mv3.yml](../../configs/cls/cls_mv3.yml)|1.38M|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) | -## OCR model list (V1.1,update in 2020.9.22) +## OCR model list (V1.1,updated on 2020.9.22) [1.1 series model address](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/doc/doc_ch/models_list.md) From dd649a1c6cff7351fcd646ad82a4d265cd3ccca2 Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Sat, 12 Dec 2020 11:25:05 +0800 Subject: [PATCH 44/51] delete path in config --- configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml | 2 +- configs/det/ch_ppocr_v2.0/ch_det_res18_db_v2.0.yml | 2 +- configs/det/det_mv3_db.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml b/configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml index 275c71b97..fd8849592 100644 --- a/configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml +++ b/configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml @@ -11,7 +11,7 @@ Global: load_static_weights: True cal_metric_during_train: False pretrained_model: ./pretrain_models/MobileNetV3_large_x0_5_pretrained - checkpoints: #./output/det_db_0.001_DiceLoss_256_pp_config_2.0b_4gpu/best_accuracy + checkpoints: save_inference_dir: use_visualdl: False infer_img: doc/imgs_en/img_10.jpg diff --git a/configs/det/ch_ppocr_v2.0/ch_det_res18_db_v2.0.yml b/configs/det/ch_ppocr_v2.0/ch_det_res18_db_v2.0.yml index e34d94490..269460125 100644 --- a/configs/det/ch_ppocr_v2.0/ch_det_res18_db_v2.0.yml +++ b/configs/det/ch_ppocr_v2.0/ch_det_res18_db_v2.0.yml @@ -11,7 +11,7 @@ Global: load_static_weights: True cal_metric_during_train: False pretrained_model: ./pretrain_models/ResNet18_vd_pretrained - checkpoints: #./output/det_db_0.001_DiceLoss_256_pp_config_2.0b_4gpu/best_accuracy + checkpoints: save_inference_dir: use_visualdl: False infer_img: doc/imgs_en/img_10.jpg diff --git a/configs/det/det_mv3_db.yml b/configs/det/det_mv3_db.yml index 640f3a205..36a6f7553 100644 --- a/configs/det/det_mv3_db.yml +++ b/configs/det/det_mv3_db.yml @@ -11,7 +11,7 @@ Global: load_static_weights: True cal_metric_during_train: False pretrained_model: ./pretrain_models/MobileNetV3_large_x0_5_pretrained - checkpoints: #./output/det_db_0.001_DiceLoss_256_pp_config_2.0b_4gpu/best_accuracy + checkpoints: save_inference_dir: use_visualdl: False infer_img: doc/imgs_en/img_10.jpg From 25ec8cacedfd564d93a56cac46ad320be8ee2e79 Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Sat, 12 Dec 2020 11:30:49 +0800 Subject: [PATCH 45/51] update inference --- doc/doc_ch/inference.md | 4 ++-- doc/doc_en/inference_en.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/doc_ch/inference.md b/doc/doc_ch/inference.md index 8f4bea07f..7fc5e1bf6 100644 --- a/doc/doc_ch/inference.md +++ b/doc/doc_ch/inference.md @@ -295,10 +295,10 @@ dict_character = list(self.character_str) ``` ### 4. 自定义文本识别字典的推理 -如果训练时修改了文本的字典,在使用inference模型预测时,需要通过`--rec_char_dict_path`指定使用的字典路径 +如果训练时修改了文本的字典,在使用inference模型预测时,需要通过`--rec_char_dict_path`指定使用的字典路径,并且设置 `rec_char_type=ch` ``` -python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png" --rec_model_dir="./your inference model" --rec_image_shape="3, 32, 100" --rec_char_type="en" --rec_char_dict_path="your text dict path" +python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png" --rec_model_dir="./your inference model" --rec_image_shape="3, 32, 100" --rec_char_type="ch" --rec_char_dict_path="your text dict path" ``` diff --git a/doc/doc_en/inference_en.md b/doc/doc_en/inference_en.md index ee567451a..12553c4cf 100644 --- a/doc/doc_en/inference_en.md +++ b/doc/doc_en/inference_en.md @@ -299,10 +299,10 @@ dict_character = list(self.character_str) ### 4. TEXT RECOGNITION MODEL INFERENCE USING CUSTOM CHARACTERS DICTIONARY -If the chars dictionary is modified during training, you need to specify the new dictionary path by setting the parameter `rec_char_dict_path` when using your inference model to predict. +If the text dictionary is modified during training, when using the inference model to predict, you need to specify the dictionary path used by `--rec_char_dict_path`, and set `rec_char_type=ch` ``` -python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png" --rec_model_dir="./your inference model" --rec_image_shape="3, 32, 100" --rec_char_type="en" --rec_char_dict_path="your text dict path" +python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png" --rec_model_dir="./your inference model" --rec_image_shape="3, 32, 100" --rec_char_type="ch" --rec_char_dict_path="your text dict path" ``` From 8ddeec84285df51f928314e5a27fa9b03c25e337 Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Sat, 12 Dec 2020 12:57:05 +0800 Subject: [PATCH 46/51] update inference doc --- doc/doc_ch/inference.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/doc_ch/inference.md b/doc/doc_ch/inference.md index 7fc5e1bf6..4869eb2ce 100644 --- a/doc/doc_ch/inference.md +++ b/doc/doc_ch/inference.md @@ -253,7 +253,7 @@ Predicts of ./doc/imgs_words/ch/word_4.jpg:['实力活力', 0.89552695] 我们以 CRNN 为例,介绍基于CTC损失的识别模型推理。 Rosetta 使用方式类似,不用设置识别算法参数rec_algorithm。 -首先将 Rosetta 文本识别训练过程中保存的模型,转换成inference model。以基于Resnet34_vd骨干网络,使用MJSynth和SynthText两个英文文本识别合成数据集训练 +首先将 CRNN 文本识别训练过程中保存的模型,转换成inference model。以基于Resnet34_vd骨干网络,使用MJSynth和SynthText两个英文文本识别合成数据集训练 的模型为例( [模型下载地址](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_r34_vd_none_bilstm_ctc_v2.0_train.tar) ),可以使用如下命令进行转换: ``` @@ -261,7 +261,7 @@ python3 tools/export_model.py -c configs/rec/rec_r34_vd_none_bilstm_ctc.yml -o G ``` -STAR-Net文本识别模型推理,可以执行如下命令: +CRNN 文本识别模型推理,可以执行如下命令: ``` python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png" --rec_model_dir="./inference/rec_crnn/" --rec_image_shape="3, 32, 100" --rec_char_type="en" From d3ca2e426ebf3913605141af1ac9479dc7d27568 Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Sat, 12 Dec 2020 13:28:33 +0800 Subject: [PATCH 47/51] update inference result --- doc/doc_ch/inference.md | 21 +++++++++++---------- doc/doc_en/inference_en.md | 25 ++++++++++++++----------- doc/imgs_results/2.jpg | Bin 151992 -> 94428 bytes doc/imgs_results/det_res_2.jpg | Bin 81368 -> 79195 bytes doc/imgs_results/det_res_img_10_db.jpg | Bin 338444 -> 339276 bytes 5 files changed, 25 insertions(+), 21 deletions(-) diff --git a/doc/doc_ch/inference.md b/doc/doc_ch/inference.md index 4869eb2ce..663533c49 100644 --- a/doc/doc_ch/inference.md +++ b/doc/doc_ch/inference.md @@ -186,7 +186,7 @@ python3 tools/infer/predict_det.py --det_algorithm="EAST" --image_dir="./doc/img ``` 可视化文本检测结果默认保存到`./inference_results`文件夹里面,结果文件的名称前缀为'det_res'。结果示例如下: -![](../imgs_results/det_res_img_10_east.jpg) +(coming soon) **注意**:本代码库中,EAST后处理Locality-Aware NMS有python和c++两种版本,c++版速度明显快于python版。由于c++版本nms编译版本问题,只有python3.5环境下会调用c++版nms,其他情况将调用python版nms。 @@ -205,7 +205,7 @@ python3 tools/infer/predict_det.py --det_algorithm="SAST" --image_dir="./doc/img ``` 可视化文本检测结果默认保存到`./inference_results`文件夹里面,结果文件的名称前缀为'det_res'。结果示例如下: -![](../imgs_results/det_res_img_10_sast.jpg) +(coming soon) #### (2). 弯曲文本检测模型(Total-Text) 首先将SAST文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在Total-Text英文数据集训练的模型为例([模型下载地址(coming soon)](link)),可以使用如下命令进行转换: @@ -221,7 +221,7 @@ python3 tools/infer/predict_det.py --det_algorithm="SAST" --image_dir="./doc/img ``` 可视化文本检测结果默认保存到`./inference_results`文件夹里面,结果文件的名称前缀为'det_res'。结果示例如下: -![](../imgs_results/det_res_img623_sast.jpg) +(coming soon) **注意**:本代码库中,SAST后处理Locality-Aware NMS有python和c++两种版本,c++版速度明显快于python版。由于c++版本nms编译版本问题,只有python3.5环境下会调用c++版nms,其他情况将调用python版nms。 @@ -245,8 +245,9 @@ python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words/ch/word_4.jpg" 执行命令后,上面图像的预测结果(识别的文本和得分)会打印到屏幕上,示例如下: -Predicts of ./doc/imgs_words/ch/word_4.jpg:['实力活力', 0.89552695] - +```bash +Predicts of ./doc/imgs_words/ch/word_4.jpg:('实力活力', 0.98458153) +``` ### 2. 基于CTC损失的识别模型推理 @@ -281,7 +282,9 @@ python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png 执行命令后,上面图像的识别结果如下: -Predicts of ./doc/imgs_words_en/word_336.png:['super', 0.9999555] +```bash +Predicts of ./doc/imgs_words_en/word_336.png:('super', 0.9999073) +``` **注意**:由于上述模型是参考[DTRB](https://arxiv.org/abs/1904.01906)文本识别训练和评估流程,与超轻量级中文识别模型训练有两方面不同: @@ -313,9 +316,7 @@ python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words/korean/1.jpg" - 执行命令后,上图的预测结果为: ``` text -2020-09-19 16:15:05,076-INFO: index: [205 206 38 39] -2020-09-19 16:15:05,077-INFO: word : 바탕으로 -2020-09-19 16:15:05,077-INFO: score: 0.9171358942985535 +Predicts of ./doc/imgs_words/korean/1.jpg:('바탕으로', 0.9948904) ``` @@ -378,4 +379,4 @@ python3 tools/infer/predict_system.py --image_dir="./doc/imgs_en/img_10.jpg" --d 执行命令后,识别结果图像如下: -![](../imgs_results/img_10.jpg) +(coming soon) diff --git a/doc/doc_en/inference_en.md b/doc/doc_en/inference_en.md index 12553c4cf..411a733dd 100644 --- a/doc/doc_en/inference_en.md +++ b/doc/doc_en/inference_en.md @@ -192,7 +192,7 @@ python3 tools/infer/predict_det.py --image_dir="./doc/imgs_en/img_10.jpg" --det_ The visualized text detection results are saved to the `./inference_results` folder by default, and the name of the result file is prefixed with 'det_res'. Examples of results are as follows: -![](../imgs_results/det_res_img_10_east.jpg) +(coming soon) **Note**: EAST post-processing locality aware NMS has two versions: Python and C++. The speed of C++ version is obviously faster than that of Python version. Due to the compilation version problem of NMS of C++ version, C++ version NMS will be called only in Python 3.5 environment, and python version NMS will be called in other cases. @@ -214,7 +214,7 @@ python3 tools/infer/predict_det.py --det_algorithm="SAST" --image_dir="./doc/img The visualized text detection results are saved to the `./inference_results` folder by default, and the name of the result file is prefixed with 'det_res'. Examples of results are as follows: -![](../imgs_results/det_res_img_10_sast.jpg) +(coming soon) #### (2). Curved text detection model (Total-Text) First, convert the model saved in the SAST text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the Total-Text English dataset as an example ([model download link (coming soon)](https://paddleocr.bj.bcebos.com/SAST/sast_r50_vd_total_text.tar)), you can use the following command to convert: @@ -231,7 +231,7 @@ python3 tools/infer/predict_det.py --det_algorithm="SAST" --image_dir="./doc/img The visualized text detection results are saved to the `./inference_results` folder by default, and the name of the result file is prefixed with 'det_res'. Examples of results are as follows: -![](../imgs_results/det_res_img623_sast.jpg) +(coming soon) **Note**: SAST post-processing locality aware NMS has two versions: Python and C++. The speed of C++ version is obviously faster than that of Python version. Due to the compilation version problem of NMS of C++ version, C++ version NMS will be called only in Python 3.5 environment, and python version NMS will be called in other cases. @@ -254,8 +254,9 @@ python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words/ch/word_4.jpg" After executing the command, the prediction results (recognized text and score) of the above image will be printed on the screen. -Predicts of ./doc/imgs_words/ch/word_4.jpg:['实力活力', 0.89552695] - +```bash +Predicts of ./doc/imgs_words/ch/word_4.jpg:('实力活力', 0.98458153) +``` ### 2. CTC-BASED TEXT RECOGNITION MODEL INFERENCE @@ -276,7 +277,6 @@ python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png ### 3. ATTENTION-BASED TEXT RECOGNITION MODEL INFERENCE -![](../imgs_words_en/word_336.png) The recognition model based on Attention loss is different from ctc, and additional recognition algorithm parameters need to be set --rec_algorithm="RARE" After executing the command, the recognition result of the above image is as follows: @@ -284,8 +284,13 @@ After executing the command, the recognition result of the above image is as fol python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png" --rec_model_dir="./inference/rare/" --rec_image_shape="3, 32, 100" --rec_char_type="en" --rec_algorithm="RARE" ``` -Predicts of ./doc/imgs_words_en/word_336.png:['super', 0.9999555] +![](../imgs_words_en/word_336.png) +After executing the command, the recognition result of the above image is as follows: + +```bash +Predicts of ./doc/imgs_words_en/word_336.png:('super', 0.9999073) +``` **Note**:Since the above model refers to [DTRB](https://arxiv.org/abs/1904.01906) text recognition training and evaluation process, it is different from the training of lightweight Chinese recognition model in two aspects: - The image resolution used in training is different: the image resolution used in training the above model is [3,32,100], while during our Chinese model training, in order to ensure the recognition effect of long text, the image resolution used in training is [3, 32, 320]. The default shape parameter of the inference stage is the image resolution used in training phase, that is [3, 32, 320]. Therefore, when running inference of the above English model here, you need to set the shape of the recognition image through the parameter `rec_image_shape`. @@ -318,9 +323,7 @@ python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words/korean/1.jpg" - After executing the command, the prediction result of the above figure is: ``` text -2020-09-19 16:15:05,076-INFO: index: [205 206 38 39] -2020-09-19 16:15:05,077-INFO: word : 바탕으로 -2020-09-19 16:15:05,077-INFO: score: 0.9171358942985535 +Predicts of ./doc/imgs_words/korean/1.jpg:('바탕으로', 0.9948904) ``` @@ -381,4 +384,4 @@ python3 tools/infer/predict_system.py --image_dir="./doc/imgs_en/img_10.jpg" --d After executing the command, the recognition result image is as follows: -![](../imgs_results/img_10.jpg) +(coming soon) diff --git a/doc/imgs_results/2.jpg b/doc/imgs_results/2.jpg index 201ef9ee492702118cd1638ed8a0b832c1c6d9ed..99f7e63b02556506dadf8d838eee22534d21d82c 100644 GIT binary patch literal 94428 zcmc$_2{>D8yEmRrTGdvoMNzWb8rqsV7+OWz-KwgsikeGyt0-xtY6>FRrD~=qcG+Z? zqN=2ZP=wS>Rn=SxA~6q<#1M;2-`ejv@A-f4d(L~l^Z#G}>-v`KS(hZwTI;^==YH<- zw?scg6OeWc#+ij=#>^|2lT=`0KoD=gu8F#de8_{cY?P z-y^nLe7Bg`9*I5Td;dDX|Mp4j-S^jrzi#qxmu}y+W5=$&yTx|@ZOZ?vljt+#(4K8; zJLYz5I|12#XxolM+e9r8C`jk7zmW$L`)|j#?K^hv659=uApuSx9t6qXu>&M}7f3NU zI}H3Cvh&a`spIFaiXFDPzx#ymk@L@z-|RX0b6KObbuU}_!h@&b;(KLekIKobsH&Yh zeMU!DPyga2gKO7KZkXOQyJd6N*3RC+(aG(hyNBl^FK<8pfWRPha7e`S$QM!3F|jGB zuhP;pet(^roA)-qpzvMM`|^rPVpa90n%bu3me#iRj?OQA{R4wT!#_qSbjIY=^vvws z`~qiXb#0xy0c>vl#n(2-j(=kdJpY$`9Rm5<{?{7p{)?||+k?Qd?A#C}4Of3#f$(Kiu6o>~fL z7dN(k+j}ba|Js24X7GP{y7~ajT?82kos?ug<5)u@;5+?~1}KIgF2{XB`k+o!C4GrT zrEa9Wyb!w~8I5OO7eRniNlmnE3wS9*b9Tr#V$_!hTat zedQ)YH8)@A>u(@zRTwVaK&8>oNk}?Xy6GcS`+Rt)Q9u~Gb(m`_f`sGvSiw7Eop}*t z*Aid%9pDt^B=Lech_TEazlNAGIrQ?zJyq$ck!Lwm_IQK{QlZTh|8t>QUh56pw6!4A zIVwCrNvXztA71sUc*h5&3u1p3GVgolZ)R*}`?lOkS9J)`#-7&uzzs5EdIrf>%mq(N z5969)m=F;pSA`*h@KsC6z?hlr(mH3x@e-iMn1C%g*NPyM0eJ3<9YUO`2(leMgYxjL zwC@u^6mS!NkmVZ=3w!Vq4Hp~py(t6aLm#v~Gn%=^3ZG;R&V|D@G#mGtX%0L*px#QR z;~R`{y;2;U@UT6c?^9V6-)Nno@xDC|$Z)Z@!Ar#C#pg3m)fIO>9xC(E_OC5?s$*Y) z(G^6(9;4zmQYidOg4YVTGjAH|KPfXI^HvOgBeL+4BFIDpv^pvFP0~H!HJv7j z(eIPMy@jK@TJGHFm9#pt>vy4TzWjhX|8U%9aTxQh@8s%-LXFy%;dnTr7`#}0oG%&m zh=2j8yght3z>Sk-1DLT_o43dhlL;u6+%<6KeFpPfg!C8%v8NTYs( zF+k(Ga;lli6lrESpl)AQp4u$yq(Y%Bh)ouM&T$>GUB2NPi~m43$_p=6C>G@RhoRhp zk{a9h?_IWw-?Z)>U-dF^8n#b0zf0aRLs1`GgZ)_LzUSPN45PC~3K_fjR-MzNs+~v_ ze6CwhO)#P#JRu(TEs{xTm_x^7B_*uS7VG?x|0R8Eq#hZnu2x*WYHXR?P!53WyR$&> z9(#(f0K{?Z9f4p5?tm*GYfh}|$6P7`^wwN}XKypQ&N(II`NlteA}KvpTe#%Ma{vNI zh_FM#udqWJCFw3n0Ra=#xiqL?_Qk8Ri;u3}3OJD}Tv^+Dlz%|Aa^CvgAAj~Cy5BC< z%?&pP^lj7{=EQDYpsVqv`nh~ynC{LYH^WClTQXm~=4SkM@7w*#0D&(}jy#b?tKPjNg1EcA=Q{{8NoEDq1u3)rZ^Fkf_n$1J z?R35@tu#w0%GWU2qyEKATQ58jna1!wXRq5d>6+2bL7- z1UY8733mwRiIbh*VEJT-AL=d0+9QIrIH{a89_c>ZLN97t$u#fI-%7i7u8U)9lr7); zs=7P{wQP}d%_K~leL*PR$tj*x`#APvVIodZrC zxH2_yY;O_o3a(KfhQN<}nKZ5Acs6x)qkiFtrS0b?m!h5I0wm-xKQ?|R&D~i_JFqR` zm0cPm&nSsr=E01-&irR7eRhg3E5b}fy?(% zkS~IG5fWrX5OMys2?37Iw+{*H{%ZUaCn$oD()~73`|QsS&CNO4-bIX$#D{r%laV4w zFz)q5QsChoQQ0A@x6ay!R;8@iSpQ3}6o(GglwBrx({n-8YP!jx~*>)v=F5C<^{W!F?iS%^n=uo|M#W2yt039ox zbteTG7^ENRWNR$0HaAQt>b5eGF1v4X&p3~L5IlAE6rJChqcqy!b zd4f8lgP5ARl9l0mk2!iFKK8o^68VNs*b+m>fh(}zTm(s8j1t`MfX!)T2=_&8CZ)S1 z#>P(a%{f#$Il|B=jKMnUx{!H0t-z_%ugE(j;{{=&y7JkPiY|>Lh(qsPDaUBYzEpcM z{Sg`=e3o-U1ZlcvErLviz=n=R2*c-b6CJqUpLUh?THRyuH6{1szF%m812?_l{3Hh_ z81owYa*MHa184l%pF{rEM*8$r@4)R-B8bCN$t?*`Pa}>C z?{{gn|7mq^4#=aYoY$cp!qJZx;Z}@Hf;mBrlz`(~g-gKae_UZm6S-oIN{ZhU6C z)%+6o-9?)(C%JmSG0-4Hy;Fxpt>fMpM-%yG0OL8{x+(=$b63+G5xKMo8>`K}fF% zA`wd07f4GU0NvWMq)_X>kn-jKJPB~7iIeBvp@T$_-A`~Ff82*ly9K+zSg!G<2y%8h z!!0+rhW4K(HH`xnB8bVgW-@RYbXjr#tjN;R-@uLY&y$2Q8%?OKGfIl!-AAE(7wF=F zt0Kr%e=_?a?CT}>zxI95KhJUO!=B_D4iopRWlOYYYBC3ER!T~AZ$3rUp5@ zCRUmgnqv2^sK3?bsZZzW)~fMN^@Shc7OgNjV*mc;e`Bz=@wfHklfeMI#MKi0B;BDJa(S)C%JfI#Woy-kJTk1iimXqb z_zk~;1GArpycXEj&A}~2cHn+^E3}-}f)fXFzIpUlnj^wIuV?8>KZktFU#eOnJ zxz1xvlUyDsf_$C=R}!in^W6RSA-|!$cQ2)PkIy@9niU2ASjLER)am=98cXcCF@0nY z0 ze)Ge%$ofBOeG;TA3O0kP)rCxK;LP-%*30JU%%=nwfrg2}*+Qp$``gwLMIHG}k4*b` zq)*W;Rv7iiW~ok`)qu2|jBci@G%P~XWrL~B&bSV!a~@c3146CpYKi6&=Bc{NG@Z(i z#UD3eFw(V?7bb#qwz=SbNP^necehk}PpwqO-Qk5WUGMe#nZ0lE zwRFAV(2LH?bq4ronmAUOe^>Cku@s@1wv)C9eb65uNzB?46dby2>_Xe<4wj4~dnP4d zcYUAXz~Zq-7q)!xJ5FUTFH^lwdr-(FAsMY?1)!@DUm@Eh!_J6ZSJb%Yl^I15%SN*| z@$=BukFlH*1f!>=N6L$phfZQB5yL!~HB7DbOYRBe35~X@7Ty6QDpYG|7!prj!9a}Blo=MAs@-RW;i&Al{-21iSX##{VB zrjm{zhd?srokjb7-om$A?yVfcs?^qog|Hmm5dMy^K@Gyj2;#HxHjH>VFc@5FS_Ci@ z#fE?GJCGL|>ie+&RE&fAlM<@#V(oAg&J&54(28PPLn&FNi7sj`cq?JAu;mj~Ewe6g z6H6>r)PBHH9Lh)|yr1`r(EB6Z*!Wv9$s=p}?ev!#*OL5FUhwAbrB*f?b3%|`X^s~D zGzVIC>YAnni7B?)V;)vD%d%IQklZ{kg2a-!7v^bOiUG8WjmA!6F)Srr2oXV^CmK0u zzbGx0;$FsSx+qtAK(%H{P3bKD>!4Oko?InMaG+E@-LQ&Sv$lCsK9&0^5sM8KIIcPk z*PA)tj><;wo}{(GA}RMMP|)H=J0+%h>Gou6$fO|cP%Qfzz9k@n@Js^nc~Xz?~}C@$Ga zAXA)vxss|&c86`FV(xP6^6A;Qc7vgW0xyc<(7P3{!x#~ycBF1v1o0Q9Es`tzX%#_y zt)2sfaARFG>+YZhYfBYh?7XWgy9(BMeC>nfkIVGx7E4K>&W;0K)Jz@fCt##Q1zEa- zS;4ZURK4pZd}r1a3FRvhJv2mBgJQb)<9;{H7uE)hcZMo) z`+Ee!nVXS;l!RSw4gKYY>cMQro4z}@n76icMzc4}`~4yZDhVUF7T7@_3=DLCJce>e z+6++x>KQw{;icYH?ZaALCL9;!8tMj2NX8j}2`ESFO%Y`-gSnryv9T+=!FIO4e}$0y zVI3DoW>>mJf?1ZL)MYT{15Gp-$~Wn1OtM*W zezelO1R+qcO&=k}=$~Lx2GdVKKRq=kn5b-KzcyAKiTAo4a`Dk0bWPNek}ql5RnD8o zB%^WxYTo=pj#N^sUSJTc9=;o5!I*@jIsxN9PZE=^e?)L=|4q24W8XjI7Y0uJH@oCWT((WrEW1uvA&e5#fi%u6gViQsj?`zs5=w~< zkEgvf)9H7EeMUW}on}jxaz}%+5L?S3pTynXw@JI4@r_RjvKUh(RG;AYfuJKEkcoEb0kT z&BtCtU5&1tU3~MCVXfX^>Fa*N)3)Zxw@OC`RV2I^E?SFbSwSDl6v+U)G=q_!Mp!Ci ztD?dm%$&x!Ov>5KwxA@Id5W?6%YTjuhizPv(@x(X7AXYGN}&-It;DBd0sdQ{Xz%3)C(SR1P{y9NH0P;8%%$U=c!9bbo>+0fIM>=GFPy|Urj|hc> z1S_B#HyLKm5Rji69_L*LoPVw%Ra7MQH&fDIrn&@|NZ}L;IkUr3C^aE#Izc5U#Lvs6A?8?81j)CEf6E{}jlIDg;grn0DfBu_6XdX(=l7Pk zkjK6GV4xZPJLV3k8m(~3U&Rns3tW19VI!TJE;FM0cYk7z1go88}FZ%w)c1g`Nq=|U-B&TZk~Uy#i5 zyWGRvb>oBd%Hs`D+@r=$JhG(rvE>lfEwE_td7fHqM2gi>3~5-Xo%Rhh8yV+fzhxni z8DH74r*g^e#;^WW!T$f3g8HTnw+Zmg=idb)=wvaP<9x-a3&w09)jY`|=XynG^F(K4 z?YEOZbsoZZj>&aA-d6d?-mTIGAHf@p3f)oxW8do!jm|liVa5JBu0LqgBEfZZRe8og z;YR5``sK3hHoceAWfe2qNthnN#x5|$feT-MxEqKYw)w0BmvhEkWRpKbBO8u#HkvGV z^I?^2OoKY`6qIOfz>drQnW1=V&8*z06uJDPINT&Gi>HlFb>OfX z$4)ZRXl*8(wk!r!A`H}V<_Z?O0zfL5ba%d?d4vtM#RJkQ&-gL54-(kL% zLIqG08BL#bSdwUOq07l8iiRE6z%K5=hCS3HT=#n7sXH=h;itCUmAUwNC&#r>Em8Ob zDot&{SD=_GYynCAJUOC45&k$wAu^SBRZAyWZQEVu4|;V$->qa~HKx_RA1jBk3dlw|eg7q}xbo$=OF^Dt%Kp#Ww@-N*P9E7d0b^V7B#)viuGIGa z3hZa>w-e)JJooSLS%<~^+;febxO%UjNvhES)Ka@+Z@ixH^YzBX|F)24pmdRA*=D3P zv`ROPA?=?ahyjoJhd5J1Ir0FGp*OJfP|qUos>B7eLdUG2=&^CNH2Jhm;e(so{Ba2K z2+Ij5;n|`ux5~oHza?|@n_r@L->n+Z;F}k>A`7m*Q_U~1eAs{TZLa;DYK_-1-0apT ze)m|>4F~6-Wz|b3!NQMhB3AsG5`j*L8rSY$mjvtr`^HBe9bD9hQe+<}I51wAAuU>D zMjkP{S`I3PYwHf|m{X7x2fA8mI}FwH(F%-&jpsfYH_L)`H7{FK)+Xo5OdM?*GgU^U zTpg>NL_N7li1)XAZa{8@?x2pKBe?Yd{ykb@653w!^G?!>_U6E<%$zKDPe07?H;z~D zrK(RZQa4+QeoDOg)=WmvOdnb?3*5n;#K^HXn(;CV_UR$!kA^-1Nw=!MT6-V*aH_;h z`Ss|_vW{f?eTyqTdtIETHMJ*38!iZb$9b?0VXl8)H?pC7zF;v?0k~~wL}O6UdE(nz zu|l7OVC3VJd!tQSKAH@@k1b`JHaE4T9J=;=HpUB5@bswY1}R5yznf0>$O1{%Io@%L zn$E4lpBm~@7-t=2ZraU%X+9h|-e8@3^F!(Rqw)Y%xHp3?xy#F`ux(7C87^jg%o)sJ z_nuuGcB;UBvv*Y<)MBw@U1Ec?tjp3>`m@~QRXl3P^=0m7#}_U^pTjE;0__}J%lNME z4N#!}HoGm2j?@ZOgtx#Y*Tcjvu~c&eT1ZAH4=sNq@zfG^-fc^HEWUMh&S3mqy`qiD18d)wHKT(ul zrR~MqD$n-9yj*O48Sv+6M;UA^F(>hgBMZ+*k?e%ldeRe;#wW+ZbnbB1H+rNdv2Eh% zj=db{Z?N*&rC|n(YRW)G>%vC%_6M7MHrK zT2rG=f7f$!jbEWk!p?HO3YaC5JYmmp6Y0GOCDkg9Nn3RR4M-erKBt8*$l`UM?`RIu z@=-pX-%Ef_jdh+s{V+uz_30sJIKdwu`4XVDK=%;Mh`orzE`VwC#?Ww(#O1Sgv8VG> z_B@3A!SaYl?tEFV-bT9Y#~$Xw1aDCM3x0I+!TAO$c*OXj?<6(9LI7?(@F#AG+U;-V z<53lUN9E>ni9^gD52+Ul4G+MwQUpy}sDgO{sQXUh_MyE|k_**JszZ+}2RY;ysHJ^@ zXT3A@xYY@s=bH`VR6abp9s7&xudfv6b0Eh4g4cY%uw4EFHUrGu=s{6@#bOt}HD@L& zzcq{zGsD^c)t-{ST+Z!t@ZuP~Z%OX-I-O(wI`>8ZwXDz%bwvpEz!qp1EqgYU?5A?gs_dOg~ZpydoX{25{q+a3mXh zcJnU|V~q0nx_~L2AUWUp-uWhSrqa2@45>t!N_T#BmYUG+n|u`cQau2&3I$H7wXou_ zikz27=i38oEo^)w#)9C5pj*l=$auC;9$uKUdY;O=7*;MTMT>jj!yhlBw28p?yV<3wPLj)8&3y=U}XEeWh4(NA)USQM#^Fw1l z3fl+WVJz)sybGA-FcwW4YI|i(E%)mYO74w$+f!a=*v29qVwAm9Q+nkzHR#Wtl<7WS zh#|frlK1eB19H6M7&Lp9dFW4UkG+x@TRXZ`Tc&NX87@JWAFLOA^(jUa6aSE+;XJ<9 zmHw2_logs#HX3{%`6hY?v-XU-dWWvWDHOAM)32r6bmn>o)#0JLgP2Xk_uou?t-t@L z?!!G+0(r`v9VLjj7D48#xV2|yF<@?WQu{e<=|P4FVo^<;oW(ES5kUx*u(kE`c{ROY zCu2$Kh?NQCUkx0@|G)Y5udBkkzy{9V8e)Z@&Z3n$aHk#GOgp5LbOG`{_q&vt(b;XV zXM|ep9!yZR;4S}Tz=XDxa7cK#pTCW+e$kz?uNm6^77U6Nb8t=I85L zE7G*^rGtM+-dbudZEsBtfn*{1C<1+-stEiDdXv$HA$n@4bZOF-=ni56^#4stFXOFX9NjYUCiyQb_$$-1UAwA%F+$-SaaF%zR$OP zci!V9KoA4`nG%j@Y6ac5($V)M;4N#aR-W+$o%y3RI?_`n)yzq&lfo;^uBEahzpqx`|w=~7)@=-S$RO=n*m)d;>H9ax9kXVBTXw%juY z{c)LrZ-mQIFqVA`fKE3Ly~-A%n2J{x(^pL0b{On1taFaMmw0=(Zsh)`CBt&%2;p8g z_Nz278U6je2*L>f3dP=pKK!ORn*uuz(}HW=&Mn>)4rIJ|?O74;?sR*2t}eq+=`>@( zzR;!BGQ;HPnwd{OnZ61GOAU{qv95atVUHEG#lRAnS`^-8V68-}=a<<2mZ4sYC#%kp z*KKB|(QNha?aH2CV{ay%8!C*(crj>4ba3o603_M^oCxw>e>mmVZUMhU_C<}$tiDrF zP<69AF8RyKlK&(6M|QFFZM>T9#OB+HemieFGpa{^q0QPxGYs0WtDAB8=o_G)t{O;+ zK0}CRnyH0MxP2w~2*^Ssz5yG?v|@ybu_kXsy}j3Y|3OBT4LWg;@BVtMZ+z}x^^C6_$%fdcgmPEQnepYSWZf*j)`)Wui>7z(!r=Y^vC%Elt!rWhq+<_|6(os8ulUlqJt z6%^-U<)^Jl^&d7fY34{|$ySd0G4lD`Jo80~ksD?!@0{$cXDTvaVS+LH>$ofMkE|rV zAC6&pXinet+`v@%NA`hym4v*pI+Gpm3)*dkio_`xy8)|<>viJD3J<7&-JoJlf3xrm z2Nqe7g4@41ocTCIhPAJ6#KjDnCATOyG7zeyuF%6J7`Pto8fjCPUnBnjF$KN{7SLx7 zw%HO+nG~&zIC>#yh0b^~tU{Q~gY$0<_$M8El=BluHUCeOl9r5B5d?*KCf(m{XOCO9 zH{!YRuW?*!IMmi0S>yAd&v-CIU8;hkJgQvYlLN4P}$VvBf2O0Lgo;7}$g6q0w3)>g`?o^oX_|~|Ri_xmVMXg_28EQuz zRdZiGUiTWS9=;s|CBeZ>?*ZTI)o`Q|=;B>NQ@Tvqtu3x$Ie5>&a=3RG_PQ-h)1*}R zeTXcDdz7>n(ce_77RiUbr(DgQ{|%F__ik}j&!GC}LBLk8=$#AYnwRccx#?qAz_Cl8y&G(s@q5%E{MCfbr=}o zLHXA~xJyurt1+7#Pdcue^MhT6Kx1 zi5p6Sb+U#mp5;h);W%I*g4{+VDLBGikqC)*B|`LT>_+zrlM4T4k7qhnxvCE9@FWt> zG&|LXgU=TlGk>j3KAC~ve6)M(i!ZzH+&zNya)~uJEG&3^^=wI+ZC1d2N1mgatQx<3 zE~Q%Y!ym|sL7EMBm|pl<1c@ih=L!daptn6mk3w!25g&wENF%XGTA=+V)`=>pI+@f0 zC;Ai>&dWzuCTagbruct?pLUm-EA+!1kSFgqG@4A310I|0e!+Ks=hf*eti7zzc|uAk z?r7s`VVGj6GyX7TU01ScE>y`jZm^QJ%nRJ$fBSKVAb7JL)9G}&?X(&$xV2h!oG><* zKFg|RD%GN1=p^kFb_jP4FiT5yyq;4A`)(B@G;=~4ClLysRuCH%F1fv}v+ls)UbMZhq9Fxkdu(Tgg$4eoG71jk0WH;GMdhwX(SwWWbj zhVJ{T?|Kv?+pv_>&Df!rrGk#zm#oi*sn5b-6ar$4Tf<1WvLHM$Sc+P9y*Mc=8zkna zcjCE8r;)Vn-2`@^hi@p0Aj?=Xu9&@BxX(=l$;uT$YScs! zzjdDA%B~|;|9bdlqGCSqPcz7e8$Wm%3~#v-k8t~(&><@`mrn9_<@!kO`=xNk^ys&% zHZIxHGcy+rZ=CMS7Jql^kD3gfd#M{L5<2;^m4whWc`qNZV_s>fD}r3<`8#+4`p;kZ z-?cMt2CMz}H8T4b5o8n1Qfdd26p3ri@U?xQX_b-(W6G1g|LL1y6BDI>xX#rm5$s4u zy&%uYF|_&0y4ph1ynp&!8XIf$0z?AAKxhbv$y#BPLXUyS5beEc-F^p%$fGmnaXtHJ z&HK#9a?Fm4%RlS%IDTbk3Ix2(KQ_bt?^-Qg0BIFL%)zL%M+C`;oc!^h0SA8({f~YA z+B2uPav)Mu1jz?$oSq^`R}*LHe*i0RkvSk3J}|-rpFB-Rb1(g$TmAonU)FQl z+Fe6X$Pu4lKrQT_aT5PRvi~Ro=s!Ur7ISlx?&C#}o-H__isO^C|7{ijk^Q890w)CY zTA6+X#WyR^<{yR$U1gKpvi}pL!j!N1j|9)X%liR}ZdI5e6bGNEEzw@4m_1$a#!Ffd zIpEi5h)_PV(3@B0;Tcvw8EB?If%o9PP4EC+|oHR3B^*UJ5vGmk2 z=3a`Ka_UeX_}ptClp_WQLOINKiy((gt9piV+EQ1!751B@k24~d&qVS() z^3Om)k(%>Ck%r%d0kK96ppqG%#!Y}w;FaGhL$m)4WAWxMAjWkv2*gm10NbH?LTO15 zW1%8c1Q%5q$~RG>!N7fRgv|B_b?b_g(YM$dngXt)i!RAK3hGNgk_lzM!-4=5Z4iJW z4#IL6XTGJfC+Ra0?@Wsyx$fwFT$|t zg3y@KF=AYT{_PiwZBME9T+18AI88&Xubo-y4_TI9k^p`E)&^O26#vM1i5@vuw1>oL zlFB>kXjSza7gw73;h(QvD~NNoroWW-k`$Bq{lHDaNHI(at%Zu-s?0gUK}JOyI^WN| z2VbbBL^UnOs0cg5X-_GQ(k(^Yo5npvy)${_4Waiho5w_uOKsCXI{I@5|F9W^I}^8{ zF6I`O;<=;CW+O4>a@3>?(HL^RA$;_8`sjULK;WM^A(zT zXy6;ti>M%>sO*JR{50?4d6c?F0defd>E6we)#AM1=`E*V{>$C038{WJn0yZd)XeTjrS~ zd}UtO2}3sF7jR*RQnH%`kGew%pZGEWn2GH?C&(v-vA1}PW3LRU$oqVIPXD6>vJgs85S)k@Ts3W<<%UA|@v#b8KxuZ&GfwM#Qw}CEm z!}2Ot)&miQrrV9}SJD`6IE@A|%Q#8Wwh7h}VJC2*B_op@hb&?B_Y8OX?i z{;`$dM|#@dnQ0w{O^j<(;Xku2pJPv$FeJsh-vFr~FuP$;bEf`Lsc|I3HoM_Vol<5SsqUh3u@EkT|BN&9R*nnMd0 zDr0{f8h?b_L#{Toyg%t&tofj=Rqg|^%OQVcCl5)($5q%s#&V|<8101I@%{kD| zAP%@Ha+18$Fb7)SU&82@;;wZCX-rx6vZAM+OadWZTCOCB@N+9n=MR zm#M0Zmxu9M4nK+sGwKUTKe}4+G9+o(L1hTsr30E;qpfeu6RKoE`Mh24i-68!KW%%9*M>Y_QW+y-xTY?3`YuSC+8j~e zSZ&KlZ&3O;tW|=MeY({iWq9sGH8-20pQd5mI@2YK=Z7}H@u;3M#4LVfwM7KkZ+M@5 zrt7nTcB?LXIwvAGte9c@C%ar@qgU^3)@xm8z3g}#fD6z5fh&(Pvj~h_0riYheHWaJ;XQ}zNz%x+(Owc+VFx(N$ zIqbrrH8pz{wxU!7C53SXDKp9$9-n*jt9f926*kOlXC5yGoZIjft^|MDAx2$)Mq~AG z**!1erSuu|OY5b z>Zi`us{K9`Y4FA7(sZh!f2jaBF(OG7Uq7w61bZYIpJA2sesU~qI^GXJaYWI*Qhgo0n=S2`K+0FQZBlMu~ zdncWF0|_6&G%#Hk*QheQEof4ZC3N3zV zy(enVWIzr-iOHPx%GHaqou z*{Cd6qq~Cr%gj%{^{I+4oC>$6MQo_UKySys0;5z|bCMzqrD#X^5=b0~29Y#>U(M3~ z^5cq~*Mo86FZvhWULE!sMY-04Pvg z{WR;$XW~MaNBfuW-rXF-jhF1#pDbAw_61_0{SC*xom}7edKQc||4G4A>8C%P+s7=| z#Mh$p9kN&$5DmO!^9yV!ez=yG)C`Y=v#)7W@Qk2vLl*{9zpX(g9+XgMbfVUC9GH&+h>?r!_H{Z!zz z0WG~2#MjUi`H~FiNQDI_9(T<6^k+&>^m+x7>vtq{_7UjaOw+6HnK3M1w6$Bj5D&PhY3QiDO4Z;Q7No00JVlMB@pRehtxmGd ztRLiieL^+(oD;SzWQ2TY3@& zMt}NE<|HoPsI6dF2BncDbLnTNeepq8jMKU>cfsAi8#{=X#A;G8(%*&Zd_9gaF`#T; zh!VkHN&%18Tk3u+{cv;l<|1#AcM(CE$)~?2kQ6!PeY4j-enhD`Gz^X85BTI(qt*hw zkPjS6Y*@lczk;6Z#aUXs3|TG!B@0N>VXZhBAgEooRy$e>k+gUILYE?!sLsk@O7-|k zU0WyXO;^(aEw&j5=rl0PN^tzBPNe85W)T$n~hPGU?{84S%@aN^U0=f3yA7rBN{> z{uv8i4U<|j9-P$P)l-Pk>tCyPYac?mGfGVO&byYl@^GpvV|6;tV|^v}$FOsiGQ5^x z*o##K;u>+p@eJN&a^%we-r<&Hr$-rqsW5&-;ec?wynXd?K$<*Q4fXZ# z$JP?q+xs8SosA(+j9UVy+9R1LqKkP`i2OWPLL)<#=3RGa^E4m6a1p-Rjo^b}OGGHy zixo}Vza&(JgI!!i9>qK3Fm=9n%<}y&D`9_}0F%(Xk*aSF0y=e^3|3Sg-6VTD!=4#$ zC$Tr8`QF-EhUY?b0<$cuZAsM7Q(y_>VTNFOQy)WIfLA;g9$^!fNQSzT+KNB2>US7q zy3C)4cO%`UCsnDZDSZr;PYr2ROV5JNA9CP9RB|)+AvAJ5=XdOa4bpLu6 zGRQ^PQJF$nwTkGf`;kzV!su`}#*xiAJB0hk1jGip=0aD1z<@TjR}L7O97y!hAxPhI zQ9!&7@;q1aQQ=962!gR+f-yC87NPsR;NC#;uR~ZdAgw@;@F+824qaMk5@eUdV8GX{ z)V{@SIMw#Vjzigcgb8zh&I~aW;YR1BGI$<+kB1xs%pLMS;U7C!X^+*!1%eT<)!(H~ zFC~K^>H$F+Ntffpqhkvv!5pAdjNt3;MOds&W4^#&Fd@%6=2zTR;7;GLoE)lkmIU-R zxczl~S{O4=4sF7)O6IVMB6AHVg$wZM6AXCrv^$o4%gMK~mo3>FldTOI91k8hij#w< zOCAKMR*73(t#;r`XfB$0kzftuMz}1Jwus5+5%b(QWV%NdPh-(;TpZ9W7z5Nm>{PZ# z=Iz=nmaa+q&}2_-jz2H8q4h_Xuy{FN_P(&vqkec4dk1h6?iUE&>7o?9jrR?L?_w!d zRrTpWnMhNYDvm|#SQ<$oMLY9miGpT*>QpyMpReG;^SQSu{wF%LyP%9o`TJg1arDfGG}+Q7hQ0JWiyDPf9idcxbd|zb}(F4bLv=z--#oX zb5n`8(SiWBWo%_q?3QZXqRy##!%+4^$<&kBQ0P~Nr=asd@^HNMX}xJcz@Q|-NzCP*knPJ zIh96D1z#x&zt35&o)ke|q&gHNORrBvz-#RyN4SrvT)!D;KzkqgAZbMSM^hJx5?j=)H~n7B$YsEx8rC~?4yMj_*%V{(HO1TEg(JY0oVL; zoY=!?L!YXW`mY3HKkQ^NBefOJMinxp-vVwH9PMW~FW7S>HE=s$lZjpZu^9By1QDR2 zeP%Ps*IU}&J8T(tOJE}SLkR7jkd*QwgKs^_5s~_Bu>FMP^|3=f)8X&~UfwjMSrBfA zIX55-ue~)b6u1fd?8l|p8;yzz^o=IybNfu6g!d!!SnVOA_Iq ziy+Ue{v#09`+%FE5~zKQzL}LC2COlLS>k3_|0#;0@%W{>-oU63-dPXA?Kik!e<9ol z^HlKc1baXPkt4ZHAT11U51ZW=LH6Kc`mG+3k~FF_w}(e;L=>3bn~WEBVmpPZY}Rw( zevI?5q2olB}LK~Of1S`P1dWe7_#*Do@Ingcr zKym3V%|BN*#IQ1YHMf2s z(qE7hX_iSh9oEVUbf+38681w!Qu8xSEoeBN0JO zw|tNAuT_eoYbW)h+v#ahtzr6fSe*SY1K~z*u_k}?leG2IQ=f-VZ(RR!{mnq~^jW_| zUuZblD+z+RHW<(iZJa|*v)33#Hz|uw58v2##Jc@75@?w&<8IvoIeM0PuPqJ)3^g1F zwjn2AN71Gx2BVpO7$nxHMc)r+1}Jxi3?(I6PoRKIs_VDqmq+lb*-ykx|+cK#`ppyl& zjyWZLrCs%GyGqYE6gOdE)QdsAt%>yW&kaJn`S?3h1p~QNbOTv@B9-APA&4>l36NTB zl7D{{sXTskQ0M4)k40?^{Zshm$k48W^Kack(i{&zxZa^$dwq51SHfJ55wIiJmva`q z+|#(aKrt$)L%thB`;0G);D~Q|ic8uTf?F{oQs%FYtE8PgQ_?IQ4>2xw1uIqfF-hT- zCB7qPquE%T%ob)bG^JL=F;-z*3t8-&!grruwz)iUn%jPKDdFa~hnXtJKE3zD_KnL` z1NU?JE?J+))lzQ^_qELT6wY(tx4HxGT*=pTe;NLDA**4|15$mW0%OI_YZpOeP#En= zB(lFbWI3*&*-yh`k{Q^x@$?qbN%{!^l6moM;J)$;&Yur`w$uC#U(te97W`4kilkIG zA&lfLWbMit2G=;?n<^2D`g*E*Jd-@bqP?A$8ov-d6G%U$oa}+{Lk&vR81H;E9^ly_%uAF>dTQP8M~JaL6pG|2W^`?eZ$kOM z3D|?2yh(7u{3oUe9oeXgI{>@qxz|Lw%%|veJElmxQ;b3}mCLJb>pC@WBjy(V?rntb z!}lp{lEAHC^5TaKrNNeZqo&@L`!kYVbRnnXHctm+dd1RvBr)kZV!peql+LMS>`>DQ zF?hQKJ&Jy3*h^1i;F;}XlOqF}78?ED0$vQdQ4fs(P0?RLY=x1`U6m zy4QJh=yCYB4+GM`f~WQT<0Rxvhzu{<7Uom=#2Vs*It%xg9pOs&>_Yd@4<#KGL4oq> z=Z2SOQUcU!57_;xWrE#??#mWptw=x4*bz-|)y;GjUKtP{wo~dQcX%Lzl4Fhfr?w9H zOHZcUqov6SE`xj>6!c(*L)bPk>_C>~1amaM&}$kdrN730ZRL~n;p?r+d+#qRP-36? zu3OiAIeDc019pfz-u?h3PG?B9HXQ1h&9Lr#5(j)O!JnNKuWwNz)OA*U9X_6yt9w-B z>%_&02Q4K(2RkrG)Q*Li-vkahGXdyGoF@OcE-(*e$Xt71h*alS_)iRJj~+PDo;B!g zpJD3sw#4&u3pTCu@eAQejbJ=`n&V2V_nvO9@rbN5DW%$5YU{B#RJ|72_IIisZJ(H? zGDL4(`E;;nXm}P9>+uPF01eOz92oZ;2Qe-cT_+EB$qNqJ;96C7cPMrC*H;eOMrk|^ zs=KCWvGq%oo6N`ByGxOje17w|$b6t)909l2l7`#TjC3jN(ivGzEi9^>c}wZM=Zl{g zNPqqdLdkAic4tZI{;9|7k3T;Er-fwy^RN!au(q&^n8aqRl*&ULQcSig&N}T%JXwi9`1d2_i1pNypahPPgXf!&dlX&)iUo^NTd*Bzb4#wtLg1) zy|2k{vba09>*3cWv#zvdS3_GFRt4MB>IvVVjD?NksowV~KEj-%cn<36HtBg1WMXRV znkOgV{r)+mb$@j~ykifNJ=QEgYTiL@ZrN1YOfX(||KNyOXe z-aoS*b7Rd|KtS{DAdxk>W(>Ma4M;n9urk(2RRM;E-vUEQlAXwu`p-I&NBZ6UI& z==CWrxwqCynLEZz=f{hAdi{oevS{({fDz4BACjy1c^9<-R!LU<`{+yR#jou5J)clC zT-v>LEcL!OXt9jfCdH&y>7$eBi53@o)C^6-Fv<@R6JLl?fv+&$4Ar9j{dI39lEl64 zCVjn`x>c$lIDTF0|FAYf)P2C0g*?LS;2~X@YpokP8_v*MhL&ofQ}Jcw5Kp)Cf@Pg; z!7Y9fjFeAXb{&YlQO^=*7c)JYg|AaDvGgK%=DoK(r82s8ZSGxp_nmS)T_q*e=ORh} zf#VjHrvl3Faq-ZKMWCa_d7kAQ!Wc;!a3&-=sy%`I2jdD?D(2#<*6l)ZU`u1<#(o zOOt+e8b3#F5a5t-%^G>$!$EnnN26GjdL9e&esil_B zFn<)fYL`QXCf|R&5s-`3kb-DfZHbSbX1`<(q%pBqI25{wKyY^Z`My`gjAOzC!k0qX ziJe(b$@J^i#ABZq1WqVE5R}C-Jh-~SgY2wICMjms6Hcq_E5%+JMT|a%0CT@e}m>`O@mml^z@BNmc~Q8gVD1klT%LZUI^LpSGCuZI?gs- zYz}x{qCjQFfyc!hnhD@Yu~zSNK?ZPul8 z&b>;I@ComAHltIAMA|}eEs3yJX^&_`NlBo^O2a^2Z=J2;by(1KD%A{`zfbIC+~_FG zWi9o{ZFwW7j|;pI<|)vsbO5a|W2C{l5`_STb1(hFgW8!m(P6djPFP@|zv6ZopT>K7 zX1f-U3Np+y>kq?iNC3g|566-k!!F{4`;AF(um~6Jn)}|8K~jwEguF`u+@k0QJ3ZX$ zjy_57lc`xyJUpy*67=`;2O%PSJuq(x-;CYGNnPa`1Tejm8nR?BKhAx!<+GkR;T;LZ zfT(-ep>_|f;$tB00Ox7RE>Xd1GcG!YTU>qe<2hWBPU`Sx;t*d`+-cTUx4@|%rBfiM>D16mOHo@)_m!R!Ieu(SUol$bM3Kp~z)QW4 zyB_{Y(7RWx$oJb@oE6HM{4^$}?VVfQ1bKmeg`H~M6h{+UPvMz_#b?>3cJ>!9%AkApoImm&vX$QzN@@aq z_8ZVPbpx7ZLrIDERWpyG*~obq5^;dvL6p+d(vF+@`iV|2vb?{>!9#s2I?K%kbck$y$Z^@iZ&@J zZ|#O!-DRKFG>g5i>#3*}IGK7^v20awBAcN8^F|&9;GG~f;L$^Fn7@Dc8t|`_D*(C$ z%ntlbfHZ*NB{{5I)qD&7cp3Lk&7{B=v-IG{@$mqn2Hw1W1j{kg!ELB)kT&_?lN0fS zuOEPyZ0y91SOF8S1^JuW1*ytM$-sGkjVS`v_&EswQc37hk^g_a;kcY}8-RYm2c^C-rIePUO(t{ZOYA;J{sJ9x37)XfMD%*u_c{^Q5)yyKXsxH{WDc62a) zOffBWM z9RHHEpy4LkcK_U#YD3#^B$kLCZ=WmwAx0R&Wd4BilFUA<23>f2Bc`Rt$agaZ1KboW zv<%mhZgdp2ja9s1lXEtC$k{~V%g40T`8-tNZndZfA6=GrYZWr$H`1C&Oh3>naHA>I z!7KC%eysJ${tOY_wdULWLT zC462Jp3%Fhe3lhryZyZI2j7HA$;P?(3BCjXN$HZ{A_?;1I`UCu#0Q+HS4MtPzBdwS z>eQn`013r&(Pr*(9`58Gz0}5Y5bZ}l4WtS;4~57tnJ$7fRVX?VtY~(#*6`$8SVs0kKbooqPJE=@zhv0nbM2%>(8tM? zEui{ve1X4h{kR=utR7OuJE*|&cnm!U!11Jnm#K0$uBJ67o83F|4DS9gdk%GJmTP1+ zRw_=D;)$-Y8JzAsj;b>g+xUr5To?8hI+J1f6_4=uRl}?2EE{Hi_!jBwZXBEbAl|sm z|JHOoNL!{us=6Z3`-1&J*)_rFCr*M@70akTB-d-h@@wM#KnYk-tl{F$$P>RfK-JxS ze1mgaWxp-_K@w6IRB#=jWODn50jfwz-Py5^l@!Z>ImzzQl%R5@>1Sn#5jK9|?H~+% zKj*Y9f7iD0dJTjKr z{|gfM%dz54R{Jbo<`-=y-mkfttVltBOUu5}rNDO(tiWoLyitE9B=jT5NIxKry~Hrf zJvbHH>uI%4-m^LpWqjURxK2JGJMsbW`MVBorW3e}JC$0W zm4DjSmig-J=%RZ7IH18XX>8-o`?^-rF2{0Le1b%PvJp;0#5u@h+8kt*sb?(;d$ zU>uI4NMv;EV8G<(1JEMQ?R108M#N_6kz}syG3?i{$go75#|2Z&DV1k!f~RvbTKgl;?NI1wP{A~6kl^^}P)tIg zy5ktS;O%#gLMwyT>AT$gEwkU^WxA<#)a9p+pVq`^=M%ojXbJv>7E7ua&<@TRZ_RzM zwbA3O9np1i{%^c(pAI`;*$5n+aSu`hj=MZ`wDUZG0BwV9=Bd}=HJe6-Tf{?>6o#A_ z7XdDsVf}HI#IzD2FJI)y=b(_dv4U8r#h{@{SWa{P`PZXz=4VRo#EqK4TMk5vrR|jH z+HG^5A~A~*A&otPFt3whou$6(XLpxzONN;IJ$O$U|y|7$N86Ek_@l6PU@>H@~u+K zjASv5p%A!8)Tkt4XRuHcZjbi&sXDU-1UAaqB0cGrma!rp(j~c=>B_@>F64y)U9pQ# zB~{>>RTmSSb-PiA!wQD%TZ5~NgFZ+~Up^6{J0t|{lra|xb7w^VniaNHN(7j*8SZKfpww*fE= zMz^~Gen1gsx$|;>;tM>8jl&Id3UVo>v8*2a=?=xNX)C6 zLY%KqInRxPs3Uy^mlV>ZO+GzP6sj7Lgh0HH7Yq;0EJF2XN$&<3uI}Sf%txe(wa0lX z0OeEFXZmP$DUdPVjsF>Mq-0XPzos(wD+dcns8fY-p?Ks$m$KKrz6z>}9qea*9zL$OK z+qzjLRoypNOB`Z?D~?Fn3X;FimZyp1c;G-@z#VvM_L~nklYvPeS!3g}*oeyTocV@}ixuKfjB{3 z3n@*4jE&(bZKGdda7`2G zsry4vepmMCc)MIOtAl1h04sd39%#!yKxD@O_iV>Fl&4e*xMJilsy^I{CBhdP;(GC} ze=Ds!GcLb}2T9S)CDioYtzr&;`xNH)v*9&>@A*yO6eA@;kF}C>2~e_$rZ`B&me#pQ z#TXszEQWged6^Yj(W>*Z2X?;Z>aXuv=FilRijY4pwvu><{ZecZb)U0u57oTKMo^i?pxxN2 zofK^Y3W0T7#)JiCq>g7J+4y({{BF4iWy!>%i=0V?%Jr1(N+ zTw71{u0fuND-F9HOG?GMSX~($QOU!dvZ2NU*8xN9dK^$1Er#ki<|%NvA^YSVlEa zfun15X8i12=}f4)oSR5Mem}~DfHLDft>5rCmIp2y;B_sAK=+{-Jdj>(8uv$=e zo5e71iBN3qm=bACop%vJPCqgNdpcZPkp;t-)$M~f`|yF)Qkzk5!mCtuW+!`U-C{h^t!D0a&;ZBMsJ?fnZ~?AKq4ct?R*(wS-iK=lY4 z{;&}MLldw=NH8IfV33G39@LoE33qz^R9KQaUw-N7aMdfVSev0BH}m#iFP_T4(hxkc zLH0an2&C_1z+`69Jd5shaqt7l!|9^-w^G!|`GV)a#NB-@JMtb(9SxcmK{gp>&RR@K^78VVF<|<>%(sn(3A>+;$%1 zJxdawtDCu}+z{d?ZrAql2r}wUwTV~=^bkB}k?&guzB7)cU-UJU|w+!e)oP#Aq-`n%YZj+M?#<4k6_~KD(F@`aa;B`4txx{9c9vw z-V*$J*@~5&pquBdO%j22X=J|}HuL>9@+Rhld9Bt@@&OU2?ButRTyW%saYQRgn0Jsl z*ofV0?+u15Fji_+M-V2}gz^ZlNzo!p1Jg&bfoj3~s$UI5%9kJ$SYTSVZa`ZgOg|6a zKGRnHt)tQd)DKdUVnZDWw(Hop%sYsN1THn1|C1eB60ik>Ps!d>{!I-9L5zJYsXJ-7 z{6iA^>I;i(rGdQVv%Iu~8uuw#R$nTvz0N z{8{6R-=G)pq|!j4=hG{@U!bB+bT80JFUBFuc|i%OQlTir#1-%{;>R0Pl$zXDxIl0tvu%WY;7tcGG*rS}l& z2C)%P?+rsR(5!;^)Dq`i{XWjk?zZgHiQfdw)i7g8Bw|$#bFoccGyp%;-l}IgMwM{z zlycaHkJhAItIG&TNu>+9iacj-O$bSQxqN381dxAr)0~*Sd?9zP1Mif@dqW)>G^P{r zro(q_z?QtPqBS6OY5kRwZSDFXl8KQE%oya!nsPD0nQb+;PjqUnem*-DBTH}l#<}BO zg*mG`EO^_D-7$s#NFhZx1TmpJaU6Sv^JD{z(Py9Lq!%`%K#~ee3L^0KB~x7^$@hgz zR`3@%48Yz1SrLKd?EoMXjaOXt;Mx}5Yo1K+M0~Jq^Ppa;>ed1Jy(e_dq?{SG>jJKx zAJ2L%|H;20&taJNb}*JpM`vxn&5j=EdEK|DP+e2iUF_-R!gPP3U!Afl*cPYibjmzaQPrSpDu0DPhtXdmJ)-{Je@IcF zuSFn?4s(!W4MiUL-#N+V-`tXI-(`@^5SkOJBF`RY=9#popBfi6jj;3wQiO3qkSoRp zTkxV_LMY?|ReZ#mgRpzwvq%tDIbT~{o@%Fb(%`&S+l6jfw-d8F72?nQS=QIAwqP2O z5Fctx#+9TT&W+~Lozd#zSL;b-BRRJ!)Yf$Q7qGuaF3TTpieeh?VSG+ENILV5KzDQY zdFe;Z+opXbpKZSNwHx#HVj4rKN=2PWu4`w54wZ;IXaMf6Y^$unG=p4|L;Z^#HwnG& zeJEp}0m*N}Rsj1RlIW*_zYOfISsx%1$8dLimCbuNfSg_!d@0& zOKfjsUb*z;$sFQ|%$?JsxaY}_4?g>|+X)5v#E3;cr6x6sE-Z7yO7J7au(H#q8mYt%RE(Wg;r-DnNF8E0YUXck>3r4pto!x$kWFP5v`oxlIo~f=1$#$j^-ONCGVW95yGGB0+Ywv*CN#KAc$0jES zOX=k{+k*#Vtm2z!tJ|udkk5?XKvdi#9{sU(MCfPz-x+HlTIguAwe_)!$1O_uPF=#U z8@_>BeZ&q-qiyLte*ofsYQLlBf?_=4fG6vdn31kQ0l7k+dMjqSBshlQ$lZ(X1u4XX z6*(M#_6v^NsBF!kk6Uf`xRdk1s>Y!wRvM;e>h385)Wy+^XU<<%Ty36>HA8Wd)e_6{rLLa>W|=KYEU#4%yA~0$z$^)qDXT%ez+K zHDNj>8WtvNcR8tcO5t&27eVD{t5dnk^{k`ImbrB++OQ*tUBej9ky&X>{HhG3>T-GK zZb9Eqbr+K+LXu9(AJ+`+0)pPw6=|ey5of5%@^6;TAX`n0=;H8{FNc#o;n=dT1C2X& zyx1GoU%`UV-jJlPabjL2KgzlO zx_iVS$ZM#i*Xr&k3{3`91YdfCir^GTEF}E^x&`rjYWiUjNKI!#_@-~cP`feuh~*us zBuYz#SRFq~7sop;#(SNdY->haXWklhp; z{}?Sn4C}~&dnR+DhjuT=8Rm%n4C22yBg>quVOPT&>}Onj9lAsP%4k28-|+h)w82Dx z|F-vU2qJM*;ebrRRVQ2e!5BCUE^guP?^pCoQmgdiiVDf5Hv&(s1a>`z#-arxlrs>r zKYqmKWl?U#Zrf6*g4|bMqB#W(uGS*0gCZC6ce+mg_wz2^+%k@6#7QW2(J%?w`}tGc@!plAhU=;OQ49x( zWkp0yLh2;;_8ILkbLf`_R+wQKrehko>mFc|_tXEIHCTY$79)X!HGsPD&qwvziP-LrE#|qMc$o_3B|1MF+Z+O=^?zs*G zehEwJ7s5j$-k@~d(S%jC54#+HXElQ3{=l=EbjcWhxS!Z3gx~fOq1-pkhf^Y59?C|X z*8Vp`)j}x{o(zP4IqmOqgXLUY#cdpwCT*?*(Vhr}a;)kE0sgZTB-kR4k~nXR@_BX~ z`{HJ~uUM95^O|2LT<(jOBkaT_{O$+OC$`<1l-U8>vuBU~wSUR2>YwBm$nf9y^gp@h zCIfwfr&#|!qo;$O7NeXxguG=UN%Za9OH~ZHEw8%VthLO$c6zozFpQN(+n#mbXH_J= zK_0Ze3aE|tXKg^o5-CeZ{|W1y+sZ+5;2)1^hhQeKGb%m^IyD_?g-Fm|062@ z!9V{=t94f^Ch8?+3rqFf_NAccFLHN9s2|@he8lN}X><)bbpPj*KZMnAKs_3VA57P5 zfp7D@8*k=9ggc8Wv^|brkP0#{e0t*2nAFwK__P1e75CjS%j>|U|6TpM0iE$*IJzH* zNdi@H<<-4Ft2n+~m1JuE?2lpCJ(XmEukI+)XPhdk9s6v#)&4yvk;(4aQB%VjP26|w zaEM~^%{c3QyPul*3dsFnSAuP(eM$idy?@K-lmEWY>0m%QZE~^>8I*0k~AyDZ`IQ&!3&NdizMN~lX{*4)F7 zZ*&&PDr_{fWTqE&jn&&ohJO&q3W|qhefhma!=hf1JpxOh7jJpDLoYBL(w6d;`w>zi2?szw2@Nzr7^P z0ay&?#;+4Vm? zx;#J+_XBQ4e@338l>nd|Ie%4ISeOOy7G?hzmaPXU=D!}z|NG(ZxmCo+{L^w+{Y}bZ zt}@-(g)Tk42dnh{fFb5D&afA?!JF67OB&_M3t zyRXIHERSn#v-ZuNBX;? z`UV&GeVP7Ho_%;$p6C6*Fg1Ra%DF91!SNrD)3N`06#F0l^T6mCh-n1%cu-8jo(AVt zj`-USsZ5X!tHu=Yt+{@z8%;)v-8_+TRmUvN7Ttji=tHGGIL|UH_eX+ji0XOq5c4?L zROzBl8pzu!p||rtIqv{pn96Sh)7wNIH|*!P@Xx-lW64LA8lFXGkeW*_+O-y!H!DO5 zNoTD;*b=cvU(|Vown(n!@0xKR&qN#uZs!Y57IWUbY3#Zbll>MFOq$~BV0`4>mXA%M4liX@(bTdwLIcTyMGit+K?O4@s z$8JVG4}ykl#Bk4ehk^ukd0Il9JuBISS-epY=R7#Chm_tyUhpN3_{7hyU*iYD^1qV; z8!Y>cTjjU%Y~fs;;Dt6PQPcq+?eJp&x^8Gf=O{;i4ld104Xj!p>N#Vyl!KzI<)N)P zFg8dfMl^AtADoq$!dRa8vI7hurWEg7Nflb{RzqKC@E${~qcH{J7Bnh(kiUyd>kuIhOBYKSe8X*-1g6`+?S zCcwb%Bf|!Wq<7XlKTb}I&|A(!b^e|?mqjOCiK=Jo4@b9B-nXym4J3lnt1DmVG+(Wo zXGQDcs2u8viP47DiipgFA{$4-KKG&+bjRo2`N(CxiiT;qZSpsY<-ebaabLsLWM4_y zSAGdSvenPfR?~B%iTErYD`tRR3mP0*<4>Zd!+;jM%^zwwLEya7jY8yVM%<|+V5Ggx zw)IsBliW)x9IK|6p_6yvOY6W9Btg@~0XN@-jMY@-H!U||-a*(BBhfhc9nAoIL`M0S zZ|B$UcsZCNp^NR5dUv4iwkZPcqLH5H$j6ec=9T>NVGi|gB5(8sbVWK8U$-I<1&MVf zWtk~Rr$)A8G=%~m2KjR>!TQEwyV_r1j$Vod}4^T z4kIxBt~I0}5dz0@R2Snb&ssFr=<&q!xy_?;eSw5NoN;%9#9ZOex73`?Cx?d8_b#r> zRV?$h!>_!<+@6w48%2|XVeNd)vTrDfB2We$V0N}9aWaDgRjW(yE@?8P=0UGoHWl$% zFPu@xT_o8U?fn7$X+h*6zIbH_VSB!NakWIHCHYq6-th7{+tdM|!fMf6jrI|q5cKgH zl|bZ4Okd}ihZqXGfT{C;tg|*Zr8%M&WO;O8^r^R3ZWJxV165yLQ<;?(np(7O> zgX^`V9*J*4tXUou&^YRgQFYdsaZ7ORXqUJ*aie%`P5%)Xae2`x@0pu$ zq2J_v(h*da=O1DsvY9{8!?WVTQHI|LRt!(YKJ755@?vwRM9PFi?%JMA-kRwM(FZz8 z;pyPt@_U@cdeJ{yhC{IElc0^AXC8iRLA))9{ zPL%<7F8y9n2pO4iAjK?PCWlXDF>9egd$85UalVcV5Q%QE;oEG$BTHRA1K0VD?5C8o zRPyKuXwxt1QeS{fmkx(7viZLW5dP3gH+cRW13Fa>-B+{L42cfaiw$IWOChQ>N(xPo zA%5C^3)xT|-5mAcFW)}x&OeZpl=SX%^TJ>%2g=`d0K5*EM;T-NoxLdyVh_eWJ8+*kS{x;lHVp0ksLmDg9tEle-w$S(eqQWGOFOf=I zhHP%;%mzkscbu4SSY9MO(%1Yz6$-w|bLN!cjY~!xhqZoCMdlL(5gxbTuxiL;3Z7f- z!6nQAVoKIN;NwX91A$M;yAZ9pGdP}VUQyd!cg;=d>DMuxM_QZlQ@e@J>gMC^8m2!N z6V@TXM&kIpr~q6p3M?+I94wc^2%zr!O~8ARqlRc*JkU9g72|(!XeUos5u^AW%nC=r zs-xGHW>nU!A^LyF;2nrZW}LRjP-Zi^nRm@e!K~LMe%x^oW$F^>nW2|iqnvPgNUT+D zK5>oGxjy%TGd?CF$Wz};Ukw*&h3h3yoRQ>MGY*SMXsuEeD$!PZ<`$*|vNU)%){Kq!zqAwJIh8Esr|4`C1dD!pt;b zSx-M+knAiStA$yYarI|dx~qt~+H2P7nUma2)#W1k8Uwg?+kWMA;u}jj$!x)X`0aOP z@m&@@+SErI!;%?r;I0?N@2u-4>@;{d9!8QVDMgQxnD(1i;}<|V--mQt_#)+cEvTB% zyBoyk{2eV2>pM$^dyO+m?i>|XC7d<@JS_(Enj)+TGFBzBT97FP?GTWSw6IeIU?fU%mz=Bx>=5B^m(^-dB z*R1wV-H(oH^C57`TEB=Ge-xy197@m~EkOy~?N0Vs@lnTHbI1(aMuts~BlggpqpaOA zZeicPe8h!E^IvqY>Noz=FXkH43s=tSfw{ka^bt&B;wGNu-^pBLZ&nhQYSc@LFQ>xA zwJ4v23$>{?RH^zVS_?1qHS9r5v`jD4 zhH{P~d6J74ab~2l%}BfnJE8{5hR;)X>cqKMrt+aW3;PUlikW<%H~!?BfoM^luc(=* zW^~LmRK67(o4OJ6pzf3h{LMOAIj*vZ8+Fp*bE0JD&|NP*9yQ#du6N8N@3Hg2O`OIU z@u9CWrvzPL9$TB~Q{{-%AMY^F9_q3O;6x&ESHKcSgaIWb4qJ%rV+iXkKNHOdOHVz_% zr?Brcr(5h+ge80C+R$PZJuCI%SC|=UNjfFX;pH>wDMRo(k>0J#;nP%}#5#r!pjvA@ z$??{2xzdX~@qwOkJ(kl6tD%J@ZwDTM=CZa`1nhwA6+1{>Qm+hb8@{9G_B<5tnQ zKwB>cp5Y#*G$h%7Hv~F4MC1(AB`y zu|wq}wV8Kd?&=JNc^!n2(3rYyuQ;kr^6yp`QVorsROzQ+8#^5tBtyLFoypt~GbCb+ z@<%u|;}NG(r%A&nU@Et5PL&n4=3rdB;Nl#ub?Jqzup&&7%!0}C!YHYE*(RpdDpuE7 zm(%FMM7Ot-@zK63&9qL_b4XIEprP?Jg{;Pc>W6bnYIR8?>-G=|z5^6O$8vx~-hykk z)DYu&B3!{+9M@|DD;%G|gf3y8>;PPP&Sw;n`7HU4dFNV|If8MMrwW*QJD`7rbDZ5$K5=8nZ^81TTlIwrM_oC<-?rXff0T_jQTcc9C=_VNr8Xiti`JLg1PC2MsFr|?a1xLbAI`*ZpB zvY(cDIR8P6L>q|1LC_gN1ofXt7>?sZAn^_U*zZ~7d?RbRc>@|{sLC9_!s!hkld2fJ zR=Tn&{|k&b2*T;j`Q=4RoW}PQ%tN$y8heP-pd)vq4ZW*u^UW&5lNhfOjoC3Ae6JBM zrqnzs84hj|j!T>5vsK3+01ogAX{?<8^S6Kz)k|Ov?mxOV)1)`Em)6**zUi7}i8Tdn ztnwP1hbTk=M`IgseImMfChz*yQRji@^R+u04p-LGk0Q-;3tI!`sc83S9rZGsHUHx( z7=7P-)NmM3cnb8bhs{fBkSG~Jc>lmR!SMr)*Hxis?QI!*UJdcTk=9zn^d9rh&~Q=m zJ1Ju^u`R+cvAc2yvo*?CUsK5w*R1%@2Hu^c&iSl?p~^}K++xw-q*Sve1~?5A#0^@$%kB`O#+d6nNtw()V3LbU&?A+vgRVV&r@6#sd0JEE+=NZ)Z4UngsB|}pt>8&OD zYFE`MN1EnKYC{PDko}sP3oF>zjmiG3ytkY*T54gjXGg;P12^Z$T^)l~cD2eGw?fJX(nVtGT)av= zH@co2@s!g}uv3Y{R4^uC_NX_>ZeaZ3mPq%6Z()?E+AScq0TL_X*IbR&)8-e+r5L4vhV)ZdcW(OoG3 z=C{N@o3g$QOi@s2z-p8*w?p?3qcgq)i&!sZHZnigAb3$gH{MJ}t_O|}jGd!524wZ;f8^n^O7-j)Ha7V-|clr6{p1NfAj~eiFDt|OvfjNo? zQp!=8j;qrv;6N^g8~pOEPKMcR6EU!JBHL`jbvmT{k{i;mAaJd6y;2G>ocvu*P_uQ`lT;ZPw?Au;&(zEZ^Q6gsLk@5Yl?RG zGoT1)B_Dk1X0kEMDk2cB&sHdRwAj?Odm;ZyVl@0DxBfqe#WaE&+(nwuD$Gd|;}o)# z6UzT8R58|7)`|2|Gt;FqMkqpWMiM(-c*w+*pjWT{l+JleX-?ts&^ ztY`csy+czMXX4`u0($CkKfd~0_6WXmlB8Onf@c!?^9HNO4(?~JJzj-8$Ue!;nCU7E z&KPXvA0!T{skuF!mhv0=fk5tGUNF|ayU!@adG#<{$X2Oqc9!pK?PSILEGL{ShpneOmq@Pu7pl^m+p|1q>gLz?V887;ufCCuIIj@wn%b zmxkx}M*ix0De^c|fQJSx+n1Lhr zT;1w*sOx#=DO?Ds9sG5#K$$$FeN%+|@2d5gNgf{T*NKf*==!o|gFG*ZwZ;=qqcKVo zSg@-sk3=6sU2>_Fl&2kNX)@3~*oiHoivi z9d3IXQ8!e*WJN1DxkYN@5gYFwpea0|XS*lqm$%iwn(j^Azm<6EORwovZn4qi|A*z# zA%y8>Y`l>^6Z3c#D>$o3+ti|5NMlrBe4UQNf@bol3w{#CAJ5x+5YMN^(gc~=`J?bA*~tlvzO$kT5q5i>J*()%eVn$iI)Ydmzq#?hw##~ffvNuw|YKa0;3XD z+b5#sf59}JDaL%;EczEj2%u*=UHLJLf8%y!m-x0E%=7R&c;0#%RfKCEE_5|YN^fuZP2nfk4Ldg%bVxLl3!?&?)PbJ;!q{Z*YE=^!`_U1-=3?(gt<^c#3 z(=sAOH+^)d53K-e>z*IjkQe!c(Ux2rc;`9iuDx^&={0a5I%~hW;)}1fNe2x@N+C4a z0mu(@|DO>if8)g`AsAI2wSVCrI2e+OGVP?)+ z2SQ_oQVD)InK@2#&T9QS2{BGas|O99 zkCfy_Dc6~;Q!*fX{ftjTNK_etisJuzpJ)&QvMCcx_~0KJ;5q0BpM+P+$Ao@z zy3)}sxftTR)F_|i?dxmU4d7oZ>AG$4t_PjZElc1Abr3QtO+!3`vCVtI*cMy;5w1h) z+mgiUlVyR8nV;;gZWHs^8CCZ__x`SSg+%<{wAkM_@n2e3q}Un&SG2e^063CF8SjW) z2uMH7%r0_wN13nd=|9O{yLNO~@2+<0k)c};WA-Z^^ov|xoWJU8c!mbulV44*_vMGX zHdPT*Hxdh?gS={TPg0KXmnLb*INF(;Ht$6Z;WEGMs!&9O8ukBL&yHD%qoi0Rec6gE zXq=(E`<^7!1~#^25p}8aETi;!Ijq|hu5iooa(U&`*%SKjGSNE&Z@;<~rrC}Y&?sR+ z+nhC$uMxY884K*WniY{ym53$-b!j@ZQmLq=*FoP{y&Btj-C-KN^HF&?h*)-x{=*EE z{M!rw$k6{;SuAJbBtiHth!*0gnz4*tz0r*KRqDBd_i`1UD%36>l>AMAd{}}!bvN-s z`6}{g?LF#Iopfe)^EDvw?(fkDN1?p)bq$DJb`B#$qntZ(`U~IB)?8q}lj%5p`?l_T zS7r9qD|TWjbCCaPLQM@xDSY`Uc{`x!jNI3nL9e3`Vlx{;Q!QsfqqKh$I0#EnCP~E# z=M!^_k;m0_Jheye&^IfN%->_Yp}fyNkpM}rSGYOkY>#9v-$-UB^`ezg#xdr0IpN}V zgM=+56`K*;2NqvN(1T9=Kg7LvR8wo)CyYlucCk>b#(^9Va+uJpe<mb&AiWglRXK5qDt#iOWdzPeCAfvol^{D^P;|i-YL%)Ke7wXf2oh($aKl=V5 zr^B7zW=?u&`{)UaXog`d*|jJt&aUGfxmU&9!syznjpna+N#6Q54rvwNbg(mlwR#Bs zypX(=zfga{fvs27A>THq;_g+N;;MS@!?v3WZ#9#{8?&VDXZ$7o75Ns|&warLw0Yaw z5mnpiPBr{yZN0Fx7dhVB6+m~r=|lZ8@g6lwXQ#&1Yj$L(><(Jy;r{neDeA~=UgZ{C zcyF?%oJJc$cOHH+ykEfq+jMjST^ccerod2-;`cau$XOGs?x5Kqm2Y_P&tB<5_-+6e z^c1YOZYAuWUViCG`!J;)HoE6lq;x~Htp`r`ndi8X`fa=QYMWn9OD>mut8ZicTl>yb z{81zg`sw=b=9{7d{Z(@q-G;9E8Cd}_U(N5xDoVt)4(sML6_WS9o1j_k&~M#X+`0}P zMEyQ}aLBa|wfW~v!F1UGIoo(>ayT5XPnRO6*!3Cgsd}>S&o!arC(?eNtxYgDdqn;p z459x?mD1J5;9x=Uf3_(%h!b>IW%-{JCwc41I(D_<)p9gwp?fdP=H|5gY3Jpwy2n(f zwnQcCt%d&M;@MP2lCr}8AOcYT=*yl}oqI`ZETboL<)|Hcl@ zF}w-1+W($`)A=zU{&!9**4*yj5<~w0TmIkX^#2bO~j%tXGGk!lBMwJuB+lo{u5Q&dnQ-e0;3S5IS4|Br6?EbaVY{L`Llg*B z-kEDHlfFhgRyj8Td@Vf0Tr%EVAXi{)HORC+^4moK@`ZL-61*6kUi1&po`{qBOCqtA z;CN5@29%QHP~g?KiS8KeN5X zP^$GaXnJ;GHMGcB{1~E`cI{wr7d;{yW;Bx5`Q=?Y16^BEzbls-9r9`?c-I(_L@JUn zvas|9ef2V5t+f%)*=8>OwHk4N$yw6-_D|Q!XCIpXkI4)Ak9QLB>oStS1qv_!2CkN; zL0si~u*T*9uSRZLE6zjWmxKd8%}|9DD_v?RVb$tYp>@8%5ib&MHx2B!yeK^efH**COPK6w2)(3$_1-TqE3g_dL zb;6h81Za=_UsL?nw*Pp7^ocnO%bjqB=*VwM5nGr3`)&anB^*qs@ybRz_%S(s^0y7t zc0}q;0r*43BfnkH=?Do=e*YT)jIBoOJD$T`1P#o8f1|!dXUEE}vy1*0=Z%q})a5l^ z=7yGMj(iL;v;8dz^y$@`j`$S+$zUKkeUNEkxb3$$Pjn(c)8T^~jlk2jKWLPA{~Mv* z(#z^Wtz%wKSDH+Iq%MPkMxu4}~G>{-(uUx_I`LOL47@B2apD%|ZSA zk%;5t%!LsbJBe{9p`iRFpy{f=WPUH|E!c_{|5IaSFs}a_pREH*fd;no(v5=Ov}biu z8Td|07s_64PkUuOT&q4izwSdCx-L2?2&1jr9(C=1H51olCl?HNv zh}gGBeOP7Q{^s%;@BRO*uH?aiqzol(iKnyp#Tzl#!p%vb`Z z+2=_vGwXnbNVAVvIm4?j)e;3R=u4z9O%(X1et`;D+ps~sNWES_}zGXh#gQ@ z;`aWh@z6}D@BA0>_mca_Je2bQwL@1&t;SIq-Mpl?)f5}3wQTi051-d}zYp<47L6Qb zh-;ep4+rX&-Jp>lYT9aoG4lbZDyt}U7SoYpd z1>ufsuaT+TAD{gHbWIDp^h?4zr1x;y=WwadaggBl3##i_DHWu*jca=zgGqe+uL=6U z{c~YiNn82Y#y{g{Jqg1hiW>KH=v(h#+zZ2RU~hb;t{EWkzU4M)6Er^hth)U%HVJY4t*8T3BFkp{MC?+s?)STOcHU+<7woz zY@$dylB>-s8japEg6%iCKbt%_V?(SBZ6vKgI zkr+Q~5jr(}L2qUx9-vlGv-NAt=`KTaeiKcr8y2k91XzUJG{Lh1ey?OXf3=p#SES8e zOJ8Ozoiw~kSEr3s{Pif0H4-kL`{|@9J&JHw=!w`_MzO3xTyE`mzVSL4XtTF6>1VBi zh+yr{U|pqdMWcGv$$>jfbYD6PO?jjx8ZCR^evIk_A6n2+?85EKdQh$1r z*YbZLynGB7q}vbCyCjRijp_Hz#rYcy2?jGLmW^6(*}N@#ho z?bXsXJEu!DTMd!&21>M|3y6akz55)lr%0tDs~G3L+`a@+>dOUJ+Sn10-!1+a>#0I* zeU11x$T`Q*oW|x1)*KVev9Fw20L_mS_Y*dlu@71W*(o3$LUcS*{$n8-q(H4uBKbWz z%-B)FJX(i$qRCZ-aF@#Ij2zyblR>UXIL=ZyYSLDJ2{AY2ycSku5IUfOx_DVq06X}v z4PvHFTw|rUlk5ApZrX{WpSU=0;- zq>r<$v$(bsPal!`2@9wqfd%;3&Yvt?vZFo6>bS7%x51F=aYNrlnQ}dl73DG=l?#CM^M&|C>?LLTj z^T#A#C~%yS>Np3S7Vlo~Is6#j9HyxWu^?(Tbf_dwtb-?V`rmi7WB*dgkaxvLn9w4Y5}o3wu_lJog0Iwo zyaUD2C9CJyFA0pR)?4MIpgW>H;#devdQL4U2}@!JSCggsjK&3(4->TJ=W;)WB7R-7 z)Y($uU;LAxBHG-At?>20k;Kc+9Uw$|Y`2QX{qN^11CM^6a&8N6b<{0SVh!lAn0u=t zt)@(ShmvPgI@JWO?rJ?#kMz`TicNs!OTHi)jR+xYbU(jF9I(Ql*@15(o|IY@{{T@a z={lu#|?AUel~G7*9V1k?XI}=C#}G8Kl6{-*|6dz zEU$Q#PRW54MivGGg(oGU-W7{b#FSrY4~}dEbG25Xjp__evSA+gY&dt3kRPY2gFl=04CO^hskd$qTcqBejBzg` zt#G!E3SOZD)M91hg;VfYHfE_)i752*g`2NGH9o|lP#I=O7RY|47O^3bmQ6kJ=qZ(K ze@Irujk9$T&jE)!=sRCL27kNq7m=rr5e2%4JG=lf)kq>&NKcG;c~vGYc^q&iG+?gG zzn~a%>5L}bL`>v3fyW~)c49zcou)+AOwoI1UX@w3uhQ~3Ohak$fNahbGm*38XXD~x z=yt<=G6~s{qb2r<70zjit&Ak+yoG10Wr1Gb@RERG!sB~oMMbIk`)=||25yR6hZI1V z0AfimH=umsy9Rh~1rmJtJE?2|?xg*axJrFw#9idVQ=M8ZrV65kIGi%i9H!gB9WbMp zFNf0!H5%31I#-YMNEY1Lj z`-;!R%f5zc`b}vI{!|5?la(uona%QR)k|b|iX7PMV%0>&Askwc%sI!o!{8ZShoSfK z@5@KaWl{My$WKBD>}Fdn44u^Ng9Xl#qNPy84j#2H-I@Y1RjyT*f?p93cvf4&%)s85 zSdRY%ei%sGq6VN&aQZ*L$+PtI?W>nfbR~_5J z7+MR4kS$g(U?196dswv10j8sMkXTb;I<>>n6Dy;C7xw75do%J!NH0no*H4%cbG+S1DjRipqNq#fZJAy%vI^eO)nK5dse5DosI@7wyn+r%SSgGV7wY|K4)Slb9a_ zpT1XO-T3-A%PtFp-%Fjx1Ou*7niXT9>A=cn!3bO|nY!19t_Z=VYSM&$(uCdQ0~{9) z{0L}UVDI7>aD6=!p2?9jql#GJWU-^EAL#*rPTUmvx(PpTT5iXPUM$;b)uMwnt*KLt zonFtA7YIOMTslA$-^DC;CIyeUR`vUJqWPu0YhKfY<@CjGx&G-{oJ+RuVEr*d`tr<{ z+iqo>_q?${3#t8tdDPFgt9phwb1`k{^x=_Q4YP%7Nx0L+AU76I*eu@GPIbdQWq>@) zko#nGt0`VKL6#e{Octjg#h;d--mbyF7*h;ZfmbL=lk**DY94i(`UpcpE^ecZnp=K; zw6!GuSjI^1efgiqUfIm|i6xsiQ143iG%kEKp5Vv3dnzo`<<*crJ1$)8`X%h5xJ**| zjzxpiz)i-@wiVOOiUlt-mzI9|Zl;59C z{H*VIh4f<9;SPw!;nYKi)uTOve=KGvoH(Bx zKOPrCp52GCMmR6{ZMD6t^4OH#Vucl+VeU7i_+JKX{M zh$C59h^+u#*b&+olE0+Z=RB+q3=zJkv%5m16v4|LOs+B#YZKODwJ(0vIs&E^7+DPt zwc)3LUvYc`wso8Mik=0kZ|`tFX&La1;}Bh>Ns^f&?f^vrTb{5jcEk6F=#m0>S~T?` zTJZ*1;bS2}qYbp2M!k6F0fYcB0XL&2Wc>bS6l>M52X)bPl9ILiDs7mR^=k3bSK_(p ze73rc%!CyHKJ)+qk`72^;4U>y%6te`nbsvLH_{cI8!?F=ab3t4MNwBb|0zz>*Qv%H zeu*5*k7hJ1{F3knQ%*aQsRQ*oj9k=W)1l{cxo{^kA=Eq~>hUM{!PIyNBk~q~K>aO`jlq5P!UFDj_QipH{INl_)MWn8K5?+qr_d&$Y>X5<<9To7M#|gXLe{eod=;?}q_%xeSD)85R~_boxuq@_sFnsw8x>E`eS@ zb)&qcgpk$S%`{w_@Mg-Z4s}J5)EN~3)#z%{vREGGbG1V?+e?TUF!S-zijuP8P-}?2 zxH^5kIP_N0A>pML$#7=;)ffZ`_vPIp^an0t)=i`ZU!Kh z)>Gg`0Kte6j5#R`lY5m%h(yV5|I=f92XqW#=f6N*g`GVlxLir6^L{hZ1Tli?Oe`EB<0rsjR4{Q>K^N&S`4LE!j{J664q&fOKS3f ztRuVZKzu`4=A|!wFCh@<3vl&)$fUQ8G~Mo42~bH`dU7+AP75!u_4_9hY`^=Nl=&Hy zI$U*CWTX&89ejt9UOMFpYa!dIf4XoZY=f7`6EoF5ukK)6IfIekL&bZMSUiT)1x%6= zEAblOJ=ia1XyEt?>uUS;*TcR8+oS5m`4K0@%7O(}cC(WqZWN#Bx=aLhr=_=D2DR5hbQ*gwE(-woC%WXcRMNac(m-P4&iTb+w>amqS%Bd^O-q z*^O6wy91TkrnW?#!A|%sJ@`BNH_dr^lmC@BV|AayJwjv_?}du`HY$w=4pF!BBc@GJ zTW|Ylzj;kqxSjJSNBIHjDZDEcWH?w8)`0L_n;CV%u%}=!V~8znHS)W7Ctz@i`B;7d zcBO`$U=j8?0hE~%DBL+J@@daa$_pG4(}5|F$N8ASU4&x;CVO1Ex#Zat4^eJCsm19N zbc5b2+XP}P&+gs;k&Lo8R)2_t5D2D+zd(r}b}DKw%Jv%UE8lly2Yu*Rk%*% zMv3_*eE0%zfhD?oz}2M$RbVay)1dhvu=t!V7Ah?|WlSnwJN}CQzJ=2-y?7I1U83%T zY4tVz2a)a`ng#GX*04L^G2w7Zi8!zAwr|J=r}0pgI%*!D%+bevtb7%ZY!H4}xhg{j zOkT0}UEug1mwYlSAPpyjqtN%x+#0vr&|5Pt;+D65{V?_1gtqczpzwg`M3CYdZ zQDH7a=#IDJQ8ywx&LJN+z;oFhP_L~|K760NoD-}1(}s?$8eX*dd>dM|nB#}zr|E9- z^jwiDpIUxNIG>UarL*_Rbb|NvBk4$UV6RGW_1hH62(M%rrPhTXqAu$FKCl}2)7VK< zs3&c(I8cf}2$ud%TI}N$l}J7%?3=2@0CC_v2Gq|buSA#gN1OH`EM`A!SJbD}j<3>rZq)^1M+P zFhrGy(aW-GRAvW?70f3i&-%!X6*sUA)0EyfV%?CYaSbQ-`K+LO%7~LG&~^vE11o0} z8zYt&6-|PKv05#>xDnj5V@ftAb{tm9qT|=aTW~h^?^wCZ!X)!FL=vrTT2ftS)iTUs z4lYo7>ABVQF|W+tgROCA8oG(;CXEEo#g8ZgBsFa=mfBPaKY;F@qIMmspN$mAg7|u z;hbp9vJ0k=%DPDB%U`vZC%LjEho6BGgI?STJO9`FY)*i+KUH_$NUR~PCfW(g8$DT} zgX4kn&j#n@N2l^Y{9@<`+v+DY)hl|x5|~Uq4!0f2TC{F#tT*~ZG-=KLSX@#ROba>! zkG-)<&KK$Fn&zmw@|BM!x)vd&6H@$JiN*#CSFVbH2$_hCil35xWQXhMGw^?_lH;70 z7uXoC)?Y0JEi`5|Y3ww!9FHrLjM&sr-lf2XhSQ!Aq$i=iM5Q?N2~59RnRl8f00S(n zi&XyHb$?g!2VIEO=%#!6g8^WWgcNx8{?POsJeBjEDm0-Spc}DKVH6{U5Q=jqEg;ho z&Ml7zZbKUgQ%2#|ml`>4+u;k~wh(_Lw?5PNo8aMnvtJTB09i5U9asc3XN{D-mmbs|I(z` zf6{N31fvRLLkpYL=`6VvA^Fn}sKdt22{%+u&zs(_+^jOr`S>O4w_2dg*8VGlVPv@S z?q7+G5ui%Kwt+fo6hGxd;+Fa+-V%p^Xag@31V`CPRMMr(F2AJ$38aTzzAa8wH`YZ9 zwfW3y_IWw8b5+YJg=d!I?aqj?0usyY9rpoVma#w+@8KY&FbyMg5oQV~VmpuvaFm=R zuDPRl?f$*+>HDxBJc@@zQVPKG{~Pm_Ga*I^O)&B}p$mwPWsUnS7l7souFjy*ZkrJa zNoq0P3`iqE@Et^xvc|M$8d91bn-;j%`j(sau-}k;4Uo-T$!?Mb@`Im+Uj^cTIdZmu z-bgjT4Jb~PiQg-=#F1)$1dk+;0J=f-?tBtCPh}kG4%gWQb=qj&V7?$cA0NVVT#QSS zZ_XpbI(qAbe$yBJ2;@bzyOrsM2V%K{P47&NWeQnT6R9ct1RM(2q zv>#hi3yCXad~QZ|V;6v};PBZ$J#*}cIZ<@F>1_DHZGw`3KI4G76n?^?Hqc^xNij#1 z2;;9Nrj1}iJ>hhgt~I!I8*acxE8DkgSc4>j4LpGc=-S8jYAqu5JNHzNoeIDCGil1} zM}dVtpxB6+d4vQjdV#n|zy4>E2cJW;XIozpPLjQfR=RtAtBS-lZG6s(+ zMa^JI6pEP1oZ#Hdfjvzx%uGM1i&mCaW0=tL)zx&Z*1o~Gw!RNJG85kk3^)1`r{e`R z;HZ+0s+`aQh<53}CzQflr~TBYhFFbL4&Un+T;mIiK8T6jQ%Q;7W>>Li-LkzNF?DmEpKF32pXwWrL~XCb52$vYB6td+lfRr9Zc+_l0`d4tqyIAe6{F`AcHb z`#WFuD`+*YBh>f5ORQhs(jP)nYBSTiHz%~5W|rW1GcJEur;9etpU3UAq7iz1$_o%m z!z}EAd+L@k39T1lMs#LiIexs6sqobBr?6~Q-ckMy5B(*78r!-`gvvr~oj!IrVJu42 z$=i1R@!Hs%XD33I+iH;QY;rA`h+0q36rFCnSxap2hfE%oIbwtM{xpl zO>HgGMJ?)jK~NIm3KP+5YI7a$_#FjpSV2>>BT+j~q6Q0f0#VGldcU#n_qOE(zHzHn zNbC3d-l@@imE&XVG!XE5nDGga(`eN*ieq|2@W=}$MT<3{NDauvLsRy2@rgX3FR9a6 zT!?!`{93f%ImHbWFjem0YxY$Wwl?1oFKT-MuVs!bDk=pqg--g@O1S}knq`}4^`Ka( zx9-#jp~gGwSAvI~GI=ol2o;zlOYl=rQZ3SArBI(ybR-srL2gwO>I7$A5Bn|c(yl#D zKN9oj{c}%BtGM`>XFYU$o%DWk8THHy3vcy(P^W{{vGxCaJ>*4d`jXzIdb3ZFRzObY z?pk0+V2{*UJiIWb=L~xAG%xNy zYUWwvms1q>4zs}X(VEZtf*eHJoer@>8ip8wtgBPesObszn!H=%nB_5)C_fiv8(asn z7aGhtI%>v8JE~rk7ld0fhr5nsePS^l4+hi3^-N{ow!cvo>H8Rgh@1eTCQ2?*DRFKq z+U4~SbzRkZB2PLaiSM!gMy;33y}oMc9qFU~jw+xCUIH`PQGC>Dofum~XA`qtVMFTf7ii{#lpExq)Nxz!*;V z!u+!)OS$C+tofJ^_RsJB3B0oi8uAIzNV6-8u|9KR*NrE-pMwCc@W+tHD_M~Lqb~uP z+sN-=#}6@T9UtH}h)me}@$YYILr;<-O;|tU)Ky%&bPdv{9`x(R1;zNa;%_M5+Me-p z8?nCtV{P*d*etkpqKh4b0}Vsyzp0xwpgmYQeK09Oxbrb74BKAg>$oADtnC2(&qp)Q zZ^SeO+efbU%h!l|e27yZdwzdkT!WVT(a4@uUfazk#d1sqmHdUl|E#ag*BL=QgIwuB zq#|?;W*fhxc8?4>cfE$Ozgn8Tom&~cD8w!$R#)p@U)(s-c*p>Cz!(FSDfL01e~sj0 zR3W&`W`A#1@N@m6_O|>OlkizvjQ@T1g~UcDYpmPDX&3)*DK;;PBec%nyHJ${%j< zYn>BkQ`QMFzRIA?a#$G)1uZk5=^77VH}xG^+T@J)Ol9=`2pS$fwd+vyPKR%6(&E$K zxg31Bi@F-VMcU@SMI41}6#W6pYTd8Y_VR*7j_#S*d|#WI@jAv|?H-59%S$U>#|{4+ z=rPdv{#vl+g3Fe@_$?)4`bCcZM+c%YQMq!R0sAY|MIlsKeU$H}D#k96B9Lb4`TWpf zlng)VY{yd7?-@cP-||a^`E6bttW<&N3CF9NK9`Uk{G{&s0bAMM=6dk3bDriRRq3K{|)xnuLT1?hVR9Z=CC zi?ICr?1Mn$7O#5>V<8Ft?|}X<+TN$SAO5QUXR~^Ixh;9;oR7WxQp!&ZHf~p}jG4ae zexIPGc63-?shk;0lKU6GPk3M&wYE~xV6fERC7u6h2=_u)gT2mx)i2Jc$$ZGVV{QK} zv4ed0>FGbhrw7Kn$D*Ep4l?^-&L!E`!t{oKS-l+0IE2>YDEv%&hmbfhJ|i-9n7CiX~zapa?F z(K`Sim^B}lb_a|j;K2mCUBzEAty-^;J;k9ss6TLa_kP>oH?RNWvB5X8fjCHiEkB;? zE{+uKW<9FoSr=e?2_#ke^DQr*4Vs;uA9kQ6zj(fO#4hc%^z*e*27kD&Zt?dVByScO zvo7VaX6njZ`@Gy?lh1A5Sm^W!XD%)5W3(PSzij^e_0kL1-#wMoNZIFcAmMi7m8eLx z58`sR=t7fbPln+=Onw^R+hQwl0T(=5wyuoS=bZq5(biANa>6U3NS=CcPSE7Pb(s6; z9PfR9xF&T0NjGt!jh*NvL$tG3#p)`s9O61-1l|&5P$cC z0CcyspOMMOGp0ejdnNEPsx3Uo{Zf#~8I;N3PKo+LZEpZ%Fi1a!*z*U-hvC^=y?9;f z9>oXu^%Q+lsT+*<2Y=a1&lBBjULlwq;{f;fo7M6vR=q*u{-b&imL-pxk_EuIxtPVF z4>pbN!PSzt&~@c*!hPFqrcy}rcXb6d4_j)HGCO!I%Kb%ZWqzvAmY> zcz)tBatO_0SP6}~ZR?PHT($8A`x+5jXch-LNrB#1# z`CRH$$;ZC&NAiKJf%-3g+zg02R-A*xj!l*QjadLdgBklo;JCiLk7PnC*};WuXooMS zI&p6(k2i3W#HnlJ<#+jo>FTMIohPQ-Yi{j|QGXXdS+QkPLuI}6gJm93T~8BpAix?r ziTDDj5m}j^AT+&Gz-Vwz@qI9UYFIqMgngV8MkGU>4tAvow}kPSz(0yHMfVf9l&RsQ z(^^~1nb#i}nJ9VplRVNs`(|-NT0c;UCe5=)J#I$hj^0iY_uB;5$BpNWbyqnHzfs!- zZTL#}2k`HN&7df1U}fez4hM@*%;N+un2WxWphJbeT(1Bz>MN2I%&9}uS&7@oAqkzY z=jj#|cd18G-^6HKdhL+g#61NXf^X^4cmbE_Iz!#gF}y^ZNMR4QMZF(&j+H}x{h_;7 zRty4B(M1myI6Ia&SbaB&09!2Ob{QSz$kV@5tSlWK=j}zjkn^0Wp}1_lf0VH}kn0pX z9+J<5I*B=k#&^Ak+}GW_LMj68;1u@ke$7W!$j8DzTWS=@|4Q>9M@_4`bf}ipra$``}DO)uD#R1Be*)@GA+S{ zS)P>KrLX8aV$aqq3CHQ4z0r{!>5|j&_OJWM_>Uq}@LaoeJ=sb}uCb#jynB7`RLjo3 zt|5yj{+eXWEoReKO->BUzRVFRbD4P#;_zvnMY~IIlMry>0N9qm${CTZiy9;WDfBg& zwKk?3P=(6d5ER;Ol*ZVBWupSfUZOeN29OvwM-Kp`PeA>}6C&+9nqBjMIh|rNUM{_z zqYi0w;8Ky=ri8*6;_2|sLbYK*-m202t#T)?3=lXKt>!nDI}s&~30fs0YHrH(}f#DX|@ z4@fd!o5E~d+zW?6g|2~xeGDl_yp6X0i}Z8ju(KgBtKpgH%pjL{!_y02A3A#36V_=e zRocW1>7`u2=7+Vqi@1(GUyvFQ;DJN-OgwEHURMW6Ir)0@SqK&x>*nxlz>4b~jeKwy zTBJu}9Q^l--{tD>_AOdcRwX!E3@G!%{%X6I#u~>2}}4pZlE-? zK6Q#qohjNxUBUq1pdZZ%H%xxfOMY=6@+{wT?T^NgSSXhO^h%}~_aIa!7}$A@hBdO~%+y#oW~TUV$003dGkhl}EyB9T(VtE88Zd%yJp zl;^L^GJffdoGoJj_I2_u7Nfe`pP_3ozA^@2fjf=|4xaimSIuQjUwpaib~>QfAc-ug zNCz;7bP`O^0%tdXxTDTRdBsUS9{jsr7&5I6ZxkFTGgXyaf5-8B@oJO-D|;J|p&O@F z7Q62be?%SFRc86BNpCc-%6Z+26uPpaROIK^BzkRI%1{?W_FYG}Bt*T7Sk)fsU@!Z1 z&eJ0LbP=uE#Y4MxJpieR?v(eRJm04N=um#^>`2Iw<;`B%KfBJH2I)tCt=2`DF-@A% z+D`|?4ngiFbtpbRv0zCLu*tk#OjlSKjoy=%+Us_?-&nVo96tuYYJRn^P6_5r1)NPRE>-l+LIbk+4Q--!Zx*jAi*-~6$pD? z{6C7tq7X-P;q4+d;W=OB;jTbr(+qN=&5QZFZ|H^g_pCW2b~CrFzkjme%y*4VG?$yo z&i6K)zp?)6%Y9wB=JpopQ|P#^e(ZQoYk%X*Qb)Qf@Bp6h3jiye78|&WzavsW|Bj(p zpQzXX93oGU703FkrgfVlAKU7vI}_wvy5?ee$+DDjnNP&psCDM4e<*$^el!*iIEBk}W`Lp$6Esic-;4+4=KqSPFklcd8V{;43DM6x%&JrLQ{b0VYxI&PWBL(SRhHHeS)@pOnkdQF6Bmh7Kpuhg ztWdmHXf!*3?yaP`?~}vDloosRlzWWV-H&|Pb;VHn<(OhaqeK4Q2R_#gr7WNSuaNi) zWk-^DR=V%y;3Db$#uls01#(M=rQdI_8pw6)dirBo=ZWPsv~(Q5824H3L+Sv&#VaeS zi7(Hbi!N%tBJoc-jn^tCLOY!KkcbP6CEiOim*r9Q< zy$9Ii846&2FH#slfwpF^lwTlt04LSnEVmcT&Rfytz&XaPaK{_U-S8AS9xID(*IVEO8@2KjJ1A{}n1f9IqVoF-abQn!3O$o22+;(HOWB3z}Z zFE>!-%3fE^YXby#p|(Ylza$QHF-UTRW4@l%elQo+d$9B~2u_UQ_1y{H)mo7%o&fv^ zL{k99#FryfxVSKpxD2?x-cqJAIsS$wmtS5h(N}o#N$TY0i~Y9%V!iz5s0cqopNkhL zkiJI)*`o0ipo%aT31It3dg!89(R!X%PtkK*{BXrhD%6EWpi-p$$w`wZ`F(ZEm|$q) zmxM(~ZzaDVXp_$R!B2r=xlYtk)UwN%&F?m5rKLrg`sA0#3oZxA?NMk}Q~M*R^PC%Hx!XFBvk0(5I`m-TVm5Nd!dCUCo5O0(zaC63LdM21p?T zxWwg00NZ3$thOt`a91J$9oZ|_TIRQSYvQH8(hRBZge@J4cb$Ogx2X$iqNUuVLCNZV zn~|93^T5h^b~n3_Pf4Gh7m=1QON|u3jYY2#dydq>mbQ1iRzM&I8*m?`ME_28Gehnl_iOIGz_xYohW`wQX4 zdhuO=;!5;3Rv&P;Ar<*;Nw1Gqpw%tOPiQ?fQtxnD*g4+u;)A%uNL?R}wM%g8rpNON z&!y6}?nH1b^4e|;5*D(m@wwPGyv#9UDet&~hk0qtnjiEbf z(4DUy6B#Dkg2r@c4QVUzuwEJ^ju7<$0yoc=G}kOX*z9jL46WgZ)9ak}RSIQ3T-SFky4<=Bw)qj;dIorO;TP}WRPM_Yy@t^`RHQLcm<=65#4Ay zB5(hb!JbJ1CWvkhNDz7tvWkvtsJEyxUXR`qJlk9u_afL*W0|+cDdc7$;T)6y5$*RlT6h>K@4WbgF2NH@aG6!&ewB@Ij?br+i!tc(%zrU zSk^-D)?n)schbji!<(r-AcHX8B_GTKqfi=LL~WsK#Rfp}DiL7K;xGd=)c_~dmW|s+ zL-IxRANOrD`Hi_LHa-Hp+JU+h{4nXceX<|6?OQq6#q;(WO60m-VjjwsnFQkM2YCHT(x7b^6Dh5gdvGx|#^Rq@=YoT5x zRkdMUo!YMH<)1P3Te4q?$xYG97)>=TfH%zyp-}2ihW{St=2%hgPcIz|-;`B%D)V)i z)q0Du2Q8(Kx=f?&`*J+GOs|UHiWB?;fa2oDwBjgsETMgAyjh#~>RU%s3%74Lw10%y z_8KYB!}c$Rtu}5w@JqrVZ-KGv1WYsGcOmPEKJIF>V5d*9_8rncIB z*1aUBak$)wSc^B?M|_@lYNO3q+M%fa{_I3@Ryj~!)^pv05fWSB_0|ekKNbH5CF8=q zyHg@bOF%$oW4Gg%n<&3!qc?A(O|+-n>$q#QHU4^P?Y?aWHrIib!?(h(0JZtBxBdC! z_s`gZ;yN>8h4zYNbLPM5C1(T560NTp85$eCW?J{JRLflhIog#XLW6TXYWU|<{!4;4QU zXud+2jbN);bbaBGO3NZi0(Z>&ofiSg0Hu|DjicKQ2aJN&wV8ZWP4o@A9VJkVS-x3R z`&vgSw1Qa3t|S#zU(2lIVEitoLhTJsJsH@p-snKrm0r!AJ+)2>P9IXIp}VX~(mi;B z7-N&D_8^`EzZURbr8SOWoC?v_#y6tl$>W{#*c5 zC?-g<#)z?a7(WJ(Mi+r-y4s!!GQ0(AR! zZ0#i_C@;XtC(!xh%K6G`uLe>cSFYnOT|l9@(pRUZ>k44%(QSN zkQm;D#;d$C(CSG7q>V-N8960npiC@Uzma$Vn^CO3P*@@hW`(~w}!T0X9BSHU{w&6P^{uB_nd zOcSQ(`2EjQ!wNSS=bFi*bS>rtsWCh$4toS1VeqJnomm5BkO^6xQI;D$`@qn+Jih{j z3)18qaz0>TG@mWZRT8b(}?F2CLo|(a|G4fe#;)rap z2-*k2k4%fuCSa^!X0RjFa184~%xol!>kuY62v?J2_`f7Bhw|?A3!t82h{s*2wis0s zC3R86CUzQ*)@~ji&{$!YCq9Da1hY38J>8qW1P(RTI~53-!X|METsIsH0?6f+TQD*Ok``SQqhYhN z=0Fv0^`pptDM_a+<})UVKGY!aaYa?zfL;BL))Gwx@9>Jnx;C8jZkM_p>H z+ywjsj2D4c_GVAa7kER}+C}RD52A3&YtEFH2P!`WE=X1rz&%IZpJ))SH!Z-j^hs44 z(#Jo4E5Wvf3W0-katUZlmkdl3tE;ZqhNkkMI-?i=i3Yj?@Gy&wl|Y65!14b)pLbn@ z95$4|lcd3j0)gjB6!cwylDghdZ(HI`KG^2&_T>n0fC|kWCnm=A^B|Fx z%suO8uG0sb*e;dO*c*)ula0Kk-%e8juL0nb_!x5I(&#In45d>#?QaG~Ko0P~OjF9) z7)tGW97;dd&?dHWR;=5&@X+w=j*P>*vWleu?pp`31E#foUYgyc4{2&oHczu<+0;hY zdH90LqU6D^U;6+^7oC7)QnJtc#55;QE2epbdS)iB-f5AaM#C;W+U<2t*gHfWN>=e= zEW&&F4=&6DlO?+N6Egjo_!5xRceCK?EuO<#)oL3X9^srNm#T zv!F~os?A6k6Ik&MX+>*A=h2;o-7`PGjC?A6Cg-<>D(@@EH4kgZ5~^4fNG=ui`YJ8p zbNp;jNM^C_&J4VE@+-6>TerF#k^CA9-T8xQy24bFzOjwF!YDxR1;uDrUpxm17=`;q z541(@K-Wil9fk_wuj2c6K{}EZ_S18vE+)o@q`XA#Q4+<1zj&+qNAMNCK~DUQ<1!ht z2{T9*&uU^kldtGcJ;@ZQrf0Bo<;0d<$OXnE;a;^ce#2%?y^!3G2%8o@0(o!6qSl(8 zo)zIU4ImL>it+OGxV^>#4M2UubpKLH4|Oa?d?LE?Ab-r23%&45-U&kZLKk1Vy~XlQ z!83^(SHhf7AFRCMx;j-xXIgc4jym}|paYS&UEny-?3d_|mvP*>u-)KJS8Ougo#)$< z)d?D3ijqt<;sUOLxDRPEVEdrnUI5m9X0vmmF#_T6I)IC`tw@o1Kq!S;pdk)6`B<4- zC~!Jm@TkRBN+qWX>f4jnm&S1pR~x`XoKDK-i+H@VbhA)YmhX{b9FPGuSMyC-1CnyS zjr7@*$h;!8O@0A8yZ+Xvf^eO^yL7XBKP(K975EA=QCo7xvr>Tb3hB%?cYQpEUl)Z` zmOogUo$AN63%(;c7cU*YVt<5OpOL|(!RG`Wk7(a?(7z;LtiC(CQi;+QkdI?@JxU)d z9sC-6kWzfGonnj|Gaf}d`3zS)vTDzzj?`fay6{?QulHY}6bNr(TodaQ59ZppE7@3= z&Rt`xA1f$-Q9H>2n*APutF$D!rP}#@FY-%5?Be;*Pj}DV%78E;Q|UBWZ72pU^VA@7!GVz;K~9@rl+8U8VpxX8Hf{_NGBirCrys-F7#Pict}9f;b_{U|MBRK+;MB zB4QMTFsBt6BSu7qK*;G91w;`Afd-T`A|PXA2nYlsARtDJ%##r2DGV7%NJw&gFYf#M z`BlB&Q}xtWrT)+ul5@_r_u6Z(y*4y(862rFfEdMAn$hwIEAO#4=;_)JxepI21 zIUxQ^o=YnAbI)B^J@H|U_hC_Jc3t#q9^UY)@y~^4teZPQdQ?YO7yFJKX$%f`)TvRi zAF>R*&My@je?(6+I!c!GwK?~PY~|oO3}l@xt9~B7pwGBOHzQU14ykl3C{Sqlchz0 zVZs*zGfkD=s3dvMmrWP1Vl#2J^3S$din!NNdV_r}5+1aV^JsF%qXX#1b)aY=DB@CMkc(PUkdzR`(AiYn9()UFGZi z$sgzA%Z@#FI7oiXefK3pn6<=7@@u3(4y$+d~l3NN~RHFpC(W zUN!bI`1C>GGqE`lwMx}`3;#y)>NVXnV*sDxPHeRvt@7eerNa@P)Yh`S?#9TSpW=ue z&k1)6CDgJ?3|;QBF=3R;OVaA{(9q24zEjsb7qLG#bnruq4wq*15C&bv>Rh!y6rpgwd-@%S3=a zZo|Lz04aM5fI;`~v@}xurNDgSdi2Vj-W=aFFpgq!4LY1RT7URiZj+Q*Q-%KwzVub` zkAT41%8Jdf2m8xJQS_NVJ$A~y9?!P=w}l_BDaISCC%d_9#j4C}*`-^%IMtY@1XNc| zu29MV2#mpP*O~q*JE|EajL8(}2!DmTv0v2{xth(Czbi@rJcG9S)8wW&v8+6Og=`-x ztbAy4d`ya27{ZJz#4NjGN0`{Crr^vPQ=8Qj zCtvz#R+HN`1+o6+K-axKrpZD(;gVKsv6cSx64M+qn{hL=?VxcSm&)^GA1CFLu4PfH zUqH;`0~s}tNhy-iXL&}8g8JdTb?}ESU2tPT&H*$}j?7S;H;RktAs_Fcxe;su3!Kcx z16uQJGUME*cj+5bEiNgYK09D@VRj+EOSYmvn%3`s$;miS`}K;uTisN|wg1xR$|CB^ zCFmAKL2L%-&j(QcOiFL{2OOua6|q=Q$z?ADa?L&@y7U3384!kB*yuh!V>RBzpV#rJF%V=u+*z2_SjBnlzA>R((1+_>e&UChOzMo4KOv#F*&? zTq=@#hZTLyOMI5w*t~U1YY00IxX9i{x&J5a{=I4Xl@{_@w=Vb;FHDn;Yphb@cPoMiaY>k9j*x{B*&Jv#iR3LcH#7{5=V!v!e#~Hoeau)bg95tax zCUN?JgR7%Wu!iV=Mxzxi-104XHtHen?b2iYZ1>p^2 z_obX|=;j`s39`7}ad|aiIbP!Lyrpg0I&I1m&sH49c#i3sE`Avs#vBgNc>JcwaK$j< zGg+mKP~6`#nmE3$)XGzd-GAfg&5&Ke1a{)zaW8^cv~a!KyY45%mnKt&ygyyf@0^;l zA+)Dli*74;+TRmgkpC_8ZVU~DnEQ2G&#uWT>j<98jbVzx(94K?5jDKX7xX+{WNfLs z8vk*)l;~t!x3pC@9ucNj`k3_cr2&zKx46Uu<-SLy5S?Uckgg!(=2xb{mAPU+gvz(j zTQ@2*rhJ+gI1@=TOH)T%^Cqghlcxs0O#R?f8N4w-l;`hN{m0OXs$zUbbyk9xjSLwJ ziXY0r8{tW+-cB!Y!c^k(LLG*E7y;7!IpGkpsmIWH`wk4jB&=)Lt*EUz@l1Y$w1PC4 zR^Tdz9DOE;Buwr`{f@Sg>e9CvPMa)nN4vL|L`WsscG1T>{aPcYmU;ANJr_s4+LsEy zuj|5GY0Ja;GWd;c#TiVD5jz%pzJpd|G4OeiWz6<7GSV)27$SQVTcyzGmAaU1xH?rt zxOwxX|MD4q^QML`HSOQtO8mSV{+abZMFj!+V0A{|ZfHBS{x3RjBno#Bc6M+b{;dv# z2;7;FG-RXAHbIM_5$1^rqR{u5&7Uhfe)BWRYCLN0A1_#ti$I-lr`*q>gO#*pH+x-x=<`cVY@_ZKHu>bB+9+5R)f(OunXKos9@w|KEMV=mfk-xNn zGEOT|nQW20y;m-~GODZ4psta4u0ucZ&AF04zOVC1)3dxjIJj;5gk09q-(Qd071Ln7 zG4|yy^aI+8G14Wvxt(gEzrPHt-EiyhgiH6wyMwcg$p?N;jX&vUZtA|>c(}NqWfFd= z-4dBLpz$61!3u*j%Klz4$FI2V+s;^n*B=$5)cP2EXR4A zEdf_ASsf=2C`LB9@2M+G#vF#qTO3;u4(V0hI_^6Pb(weyT3m1uZs~muM789gFz>&n zq@Gl;I4$lr!2gA9FJ)ws`qhLs=^V#&=dfcNerLuiY6vPWPF33#cy%bX$INpYQC9B? zHQ5-2YZsiJj+EcjpLxm|a7dTNX*Hu(7j$n!JM~cuM{iDNKoX7$;jfi|0LcrI?~$(2 zfjr$8IQZg|V}w;u@#)lR&tdwoj`xsJX&;o?=4!Rnhk(~$SEsDt043={%|TytJKs3M z-sZ^42QAymXO`eUF@V>_il{~qD)@7$pZZw>{aPSB_FL?&PgkcX-xyT4FytE?*P`t@ z+ftriJ{YK9ZI$mh)Uy3Yls16O6+u!Zg)rGAfbN|9R+QmB^-USWH(T%pO#c{qKRRd< zyYN_zWAdyrvTPBgx!p&bDcjl;Tsquww+O=jVmKrpIAqF0#?8YOCV-!2E}UO%19&C$ z24?Zzi{EY(x~ecidl-2Waz8Y-$-Db2i&8bd30uE6# z_`c4$gL*FV&g;}|R=)u|mFwp~OZfjTAkd=3kj(xKwfwz~hl>?5&!DV3btY@NXu1}Y z`zp&T<2JVHm7dLqFIY9(t;Jgt`xSs@#X)GnPqc1<-PuoW;qWS;`C% z_3^9Q>VAX9&WOP^O0sVk>UhhfDc=A)LMojPldDW1x!=&gpl2?K>w&lU$~X$P2mLlB zG|y;7ezFmI8{e#CeJOqVZ5Ijrt)o0&`IEH>zu>j8Ac7giFWw(@<4ga+xW;{^xesyM ziBQub9K6}#zi->Y21V+uI(sLY8#Ka(eE{|HAYJOm0UWp?H+nvGL~eKq5Sa7yaGw8s zkPnYvN%? zDUK=t6R2&-K1OA43}XzuY$Iv}6!EepNeY?T=>E|M7ht#D_jX*)yRTSjawgHohz z8F-3AfOvX)t=;!^9k;;$`Z*r=iXI7Xp$>B3CobSE;GJ^p_jPH0=ur!}bNJ}@bq}NC zA^!yrOFCw##h=S~pJtJsTWPldQ>DNp=80kl;LeCi8dQp6g4Au6487F*ap!H3incPxwq`m zabJoL8zk*`im?}KND@9d9KL&NH|VJzH59*QY~SI=`p+lc89ve?-^|#F=Iu8DMGDgy zJsSCaotK*BiuxI@SIKz6ae?J)(q b*$EOS2#v3rz|A!r@+6Q{`hpy-0INp^*3&} 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

fb|i-{Y)b<1e6tCD)WY6j1oCfa3WK=g`4x9 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

HNNx@MW1#9 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 diff --git a/doc/imgs_results/det_res_2.jpg b/doc/imgs_results/det_res_2.jpg index aebcd8ccaca02db7ed4a09cd63ade422abc4735f..c0ae501a7aff7807f53b743745005653775b0d03 100644 GIT binary patch literal 79195 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

!KXVc%p4J_VAff`flm_k)m>$uU<7CAo0^z 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 LC#Oj3pP~N;_By(G diff --git a/doc/imgs_results/det_res_img_10_db.jpg b/doc/imgs_results/det_res_img_10_db.jpg index bde1585cb50137ae1fd33ce7edfa59e7224ddc96..6af89f6bb32191c361c439c9d26e0239b5392fd9 100644 GIT binary patch delta 45178 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

x4KpigbWT%{L@=Bns(s!M>#kV)zVzJS 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 aqsh@dBe6Xr{{x?&z-Mz+&&Zb37ylm;xN-8<0|F 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 From 4b87314a4690425cec020bcb304f4c63143deafb Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Sat, 12 Dec 2020 14:12:18 +0800 Subject: [PATCH 48/51] update config --- doc/doc_ch/config.md | 2 +- doc/doc_en/config_en.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/doc_ch/config.md b/doc/doc_ch/config.md index b185929e8..92cb4ed69 100644 --- a/doc/doc_ch/config.md +++ b/doc/doc_ch/config.md @@ -17,7 +17,7 @@ | :----------------------: | :---------------------: | :--------------: | :--------------------: | | use_gpu | 设置代码是否在gpu运行 | true | \ | | epoch_num | 最大训练epoch数 | 500 | \ | -| log_smooth_window | 滑动窗口大小 | 20 | \ | +| log_smooth_window | log队列长度,每次打印输出队列里的中间值 | 20 | \ | | print_batch_step | 设置打印log间隔 | 10 | \ | | save_model_dir | 设置模型保存路径 | output/{算法名称} | \ | | save_epoch_step | 设置模型保存间隔 | 3 | \ | diff --git a/doc/doc_en/config_en.md b/doc/doc_en/config_en.md index 6f54ce249..ada1678e4 100644 --- a/doc/doc_en/config_en.md +++ b/doc/doc_en/config_en.md @@ -16,7 +16,7 @@ Take rec_chinese_lite_train_v2.0.yml as an example | :----------------------: | :---------------------: | :--------------: | :--------------------: | | use_gpu | Set using GPU or not | true | \ | | epoch_num | Maximum training epoch number | 500 | \ | -| log_smooth_window | Sliding window size | 20 | \ | +| log_smooth_window | Log queue length, the median value in the queue each time will be printed | 20 | \ | | print_batch_step | Set print log interval | 10 | \ | | save_model_dir | Set model save path | output/{算法名称} | \ | | save_epoch_step | Set model save interval | 3 | \ | From 3ebb4a166053845ac0e868fca644094844955d88 Mon Sep 17 00:00:00 2001 From: tink2123 Date: Sat, 12 Dec 2020 14:13:27 +0800 Subject: [PATCH 49/51] update doc --- README_ch.md | 4 ++-- README_en.md | 4 ++-- doc/doc_ch/recognition.md | 4 ++-- doc/doc_en/recognition_en.md | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/README_ch.md b/README_ch.md index 701d0194e..588af59c8 100644 --- a/README_ch.md +++ b/README_ch.md @@ -54,8 +54,8 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力 | 模型简介 | 模型名称 |推荐场景 | 检测模型 | 方向分类器 | 识别模型 | | ------------ | --------------- | ----------------|---- | ---------- | -------- | -| 中英文超轻量OCR模型(8.1M) | ch_ppocr_mobile_v2.0_xx |移动端&服务器端|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_train.tar)|[推理模型](link) / [预训练模型](link) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_pre.tar) | -| 中英文通用OCR模型(155.1M) |ch_ppocr_server_v2.0_xx|服务器端 |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_train.tar) |[推理模型](link) / [预训练模型](link) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_pre.tar) | +| 中英文超轻量OCR模型(8.1M) | ch_ppocr_mobile_v2.0_xx |移动端&服务器端|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_train.tar)|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_pre.tar) | +| 中英文通用OCR模型(143M) |ch_ppocr_server_v2.0_xx|服务器端 |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_pre.tar) | 更多模型下载(包括多语言),可以参考[PP-OCR v2.0 系列模型下载](./doc/doc_ch/models_list.md) diff --git a/README_en.md b/README_en.md index 052479506..9e839c448 100644 --- a/README_en.md +++ b/README_en.md @@ -62,8 +62,8 @@ Mobile DEMO experience (based on EasyEdge and Paddle-Lite, supports iOS and Andr | Model introduction | Model name | Recommended scene | Detection model | Direction classifier | Recognition model | | ------------------------------------------------------------ | ---------------------------- | ----------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | -| Chinese and English ultra-lightweight OCR model (8.1M) | ch_ppocr_mobile_v2.0_xx | Mobile & server |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar) / [pre-trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_train.tar)|[inference model](link) / [pre-trained model](link) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar) / [pre-trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_pre.tar) | -| Chinese and English general OCR model (155.1M) | ch_ppocr_server_v2.0_xx | Server |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar) / [pre-trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_train.tar) |[inference model](link) / [pre-trained model](link) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar) / [pre-trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_pre.tar) | +| Chinese and English ultra-lightweight OCR model (8.1M) | ch_ppocr_mobile_v2.0_xx | Mobile & server |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar) / [pre-trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_train.tar)|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [pre-trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar) / [pre-trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_pre.tar) | +| Chinese and English general OCR model (143M) | ch_ppocr_server_v2.0_xx | Server |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar) / [pre-trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_train.tar) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar) / [pre-trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_traingit.tar) |[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar) / [pre-trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_pre.tar) | For more model downloads (including multiple languages), please refer to [PP-OCR v2.0 series model downloads](./doc/doc_en/models_list_en.md). diff --git a/doc/doc_ch/recognition.md b/doc/doc_ch/recognition.md index 9dda9dedd..25da8fce7 100644 --- a/doc/doc_ch/recognition.md +++ b/doc/doc_ch/recognition.md @@ -155,10 +155,10 @@ PaddleOCR提供了训练脚本、评估脚本和预测脚本,本节将以 CRNN ``` cd PaddleOCR/ # 下载MobileNetV3的预训练模型 -wget -P ./pretrain_models/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_mv3_none_bilstm_ctc_v2.0_infer.tar +wget -P ./pretrain_models/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_mv3_none_bilstm_ctc_v2.0_train.tar # 解压模型参数 cd pretrain_models -tar -xf rec_mv3_none_bilstm_ctc_v2.0_infer.tar && rm -rf rec_mv3_none_bilstm_ctc_v2.0_infer.tar +tar -xf rec_mv3_none_bilstm_ctc_v2.0_train.tar && rm -rf rec_mv3_none_bilstm_ctc_v2.0_train.tar ``` 开始训练: diff --git a/doc/doc_en/recognition_en.md b/doc/doc_en/recognition_en.md index 14c3da739..bc06738c2 100644 --- a/doc/doc_en/recognition_en.md +++ b/doc/doc_en/recognition_en.md @@ -151,10 +151,10 @@ First download the pretrain model, you can download the trained model to finetun ``` cd PaddleOCR/ # Download the pre-trained model of MobileNetV3 -wget -P ./pretrain_models/ https://paddleocr.bj.bcebos.com/rec_mv3_none_bilstm_ctc.tar +wget -P ./pretrain_models/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_mv3_none_bilstm_ctc_v2.0_train.tar # Decompress model parameters cd pretrain_models -tar -xf rec_mv3_none_bilstm_ctc.tar && rm -rf rec_mv3_none_bilstm_ctc.tar +tar -xf rec_mv3_none_bilstm_ctc_v2.0_train.tar && rm -rf rec_mv3_none_bilstm_ctc_v2.0_train.tar ``` Start training: From c12259091e9b2d4045e1984f35b158617cdb8135 Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Sat, 12 Dec 2020 20:10:19 +0800 Subject: [PATCH 50/51] Fix printing problem when multi-image prediction --- tools/infer/predict_det.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/infer/predict_det.py b/tools/infer/predict_det.py index 5be27339d..43db20d21 100755 --- a/tools/infer/predict_det.py +++ b/tools/infer/predict_det.py @@ -186,4 +186,4 @@ if __name__ == "__main__": cv2.imwrite(img_path, src_im) logger.info("The visualized image saved in {}".format(img_path)) if count > 1: - logger.info("Avg Time:", total_time / (count - 1)) + logger.info("Avg Time: {}".format(total_time / (count - 1))) From edc0fd0ccd93027add6e119467dd3c8ec6b86500 Mon Sep 17 00:00:00 2001 From: MissPenguin Date: Sun, 13 Dec 2020 06:18:26 +0000 Subject: [PATCH 51/51] fix predict_det --- ppocr/postprocess/db_postprocess.py | 2 +- tools/infer/predict_det.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) mode change 100644 => 100755 ppocr/postprocess/db_postprocess.py diff --git a/ppocr/postprocess/db_postprocess.py b/ppocr/postprocess/db_postprocess.py old mode 100644 new mode 100755 index 0be2c12ad..16c789dcd --- a/ppocr/postprocess/db_postprocess.py +++ b/ppocr/postprocess/db_postprocess.py @@ -40,7 +40,7 @@ class DBPostProcess(object): self.max_candidates = max_candidates self.unclip_ratio = unclip_ratio self.min_size = 3 - self.dilation_kernel = None if not use_dilation else [[1, 1], [1, 1]] + self.dilation_kernel = None if not use_dilation else np.array([[1, 1], [1, 1]]) def boxes_from_bitmap(self, pred, _bitmap, dest_width, dest_height): ''' diff --git a/tools/infer/predict_det.py b/tools/infer/predict_det.py index 43db20d21..6f98ded82 100755 --- a/tools/infer/predict_det.py +++ b/tools/infer/predict_det.py @@ -63,6 +63,7 @@ class TextDetector(object): postprocess_params["box_thresh"] = args.det_db_box_thresh postprocess_params["max_candidates"] = 1000 postprocess_params["unclip_ratio"] = args.det_db_unclip_ratio + postprocess_params["use_dilation"] = True else: logger.info("unknown det_algorithm:{}".format(self.det_algorithm)) sys.exit(0) @@ -111,7 +112,7 @@ class TextDetector(object): box = self.clip_det_res(box, img_height, img_width) rect_width = int(np.linalg.norm(box[0] - box[1])) rect_height = int(np.linalg.norm(box[0] - box[3])) - if rect_width <= 10 or rect_height <= 10: + if rect_width <= 3 or rect_height <= 3: continue dt_boxes_new.append(box) dt_boxes = np.array(dt_boxes_new)