From 1540eb34e821bee441bb060e43306aeb98fb94ab Mon Sep 17 00:00:00 2001 From: lvjian0706 <657300142@qq.com> Date: Thu, 9 Jun 2022 14:27:53 +0800 Subject: [PATCH] add_multilingual_text_image_orientation --- .../PULC/PULC_language_classification.md | 21 ++++++++++++------- .../zh_CN/PULC/PULC_text_image_orientation.md | 10 ++++----- .../MobileNetV3_small_x0_35.yaml | 2 +- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/docs/zh_CN/PULC/PULC_language_classification.md b/docs/zh_CN/PULC/PULC_language_classification.md index 45d84f90..68780aa3 100644 --- a/docs/zh_CN/PULC/PULC_language_classification.md +++ b/docs/zh_CN/PULC/PULC_language_classification.md @@ -132,7 +132,11 @@ print(next(result)) `0` 表示阿拉伯语(arabic);`1` 表示中文繁体(chinese_cht);`2` 表示斯拉夫语(cyrillic);`3` 表示梵文(devanagari);`4` 表示日语(japan);`5` 表示卡纳达文(ka);`6` 表示韩语(korean);`7` 表示泰米尔文(ta);`8` 表示泰卢固文(te);`9` 表示拉丁语(latin)。 -在 Multi-lingual scene text detection and recognition 数据集中,仅包含了阿拉伯语、日语、韩语和拉丁语数据,这里分别将4个语种的数据各抽取100张作为本案例的demo数据,并赋予对应的标签。 +在 Multi-lingual scene text detection and recognition 数据集中,仅包含了阿拉伯语、日语、韩语和拉丁语数据,这里分别将4个语种的数据各抽取120张作为本案例的训练数据,50张作为测试数据,以及30张作为补充数据和训练数据混合用于本案例的`SKL-UGI知识蒸馏策略`实验。 + +因此,对于本案例中的demo数据集,类别为: + +`0` 表示阿拉伯语(arabic);`1` 表示日语(japan);`2` 表示韩语(korean);`3` 表示拉丁语(latin)。 如果想要制作自己的多语种数据集,可以按照需求收集并整理自己任务中需要语种的数据,此处提供了经过上述方法处理好的demo数据,可以直接下载得到。 @@ -148,28 +152,31 @@ cd path_to_PaddleClas ```shell cd dataset -wget https://paddleclas.bj.bcebos.com/data/cls_demo/language_classification_demo.tar -tar -xf language_classification_demo.tar +wget https://paddleclas.bj.bcebos.com/data/cls_demo/language_classification.tar +tar -xf language_classification.tar cd ../ ``` -执行上述命令后,`dataset/`下存在`language_classification_demo`目录,该目录中具有以下数据: +执行上述命令后,`dataset/`下存在`language_classification`目录,该目录中具有以下数据: ``` ├── img │ ├── word_1.png │ ├── word_2.png ... -├── label.txt +├── train_list.txt +├── train_list_for_distill.txt +├── test_list.txt └── label_list.txt ``` -其中`img/`存放了4种语种的400张测试数据。`label.txt`为图片对应的的标签文件,`label_list.txt`是10类语种分类模型对应的类别列表,用这些图片可以快速体验本案例中模型的预测过程。 +其中`img/`存放了4种语言总计800张数据。`train_list.txt`和`test_list.txt`分别为训练集和验证集的标签文件,`label_list.txt`是4类语言分类模型对应的类别列表,`SKL-UGI知识蒸馏策略`对应的训练标签文件为`train_list_for_distill.txt`。用这些图片可以快速体验本案例中模型的训练预测过程。 ***备注:*** -- 这里的`label_list.txt`是10类语种分类模型对应的类别列表,如果自己构造的数据集语种类别发生变化,需要自行调整。 +- 这里的`label_list.txt`是4类语种分类模型对应的类别列表,如果自己构造的数据集语种类别发生变化,需要自行调整。 - 如果想要自己构造训练集和验证集,可以参考[PaddleClas分类数据集格式说明](../data_preparation/classification_dataset.md#1-数据集格式说明) 。 +- 当使用本文档中的demo数据集时,需要添加`-o Arch.class_num=4`来将模型的类别书指定为4。 diff --git a/docs/zh_CN/PULC/PULC_text_image_orientation.md b/docs/zh_CN/PULC/PULC_text_image_orientation.md index 99f4dd68..83cfeca0 100644 --- a/docs/zh_CN/PULC/PULC_text_image_orientation.md +++ b/docs/zh_CN/PULC/PULC_text_image_orientation.md @@ -43,12 +43,12 @@ | 模型 | 精度(%) | 延时(ms) | 存储(M) | 策略 | | ----------------------- | --------- | ---------- | --------- | ------------------------------------- | | SwinTranformer_tiny | 99.12 | 89.65 | 107 | 使用ImageNet预训练模型 | -| MobileNetV3_small_x0_35 | 83.72 | 2.95 | 17 | 使用ImageNet预训练模型 | +| MobileNetV3_small_x0_35 | 83.61 | 2.95 | 17 | 使用ImageNet预训练模型 | | PPLCNet_x1_0 | 97.85 | 2.16 | 6.5 | 使用ImageNet预训练模型 | | PPLCNet_x1_0 | 98.02 | 2.16 | 6.5 | 使用SSLD预训练模型 | | **PPLCNet_x1_0** | **99.06** | **2.16** | **6.5** | 使用SSLD预训练模型+SHAS超参数搜索策略 | -从表中可以看出,backbone 为 SwinTranformer_tiny 时精度比较高,但是推理速度较慢。将 backboone 替换为轻量级模型 MobileNetV3_large_x1_0 后,精度和速度都有了提升,但速度还有一定的提升空间。将 backbone 替换为 PPLCNet_x1_0 时,精度较 MobileNetV3_large_x1_0 低1.5个百分点,但是速度提升 2 倍左右。在此基础上,使用 SSLD 预训练模型后,在不改变推理速度的前提下,精度可以提升 0.17 个百分点,进一步地,当使用SHAS超参数搜索策略搜索最优超参数后,精度可以再提升 1.04 个百分点。此时,PPLCNet_x1_0 与 MobileNetV3_large_x1_0 和 SwinTranformer_tiny 的精度差别不大,但是速度明显变快。关于 PULC 的训练方法和推理部署方法将在下面详细介绍。 +从表中可以看出,backbone 为 SwinTranformer_tiny 时精度比较高,但是推理速度较慢。将 backboone 替换为轻量级模型 MobileNetV3_small_x0_35 后,速度提升明显,但精度有了大幅下降。将 backbone 替换为 PPLCNet_x1_0 时,速度略为提升,同时精度较 MobileNetV3_small_x0_35 高了 14.24 个百分点。在此基础上,使用 SSLD 预训练模型后,在不改变推理速度的前提下,精度可以提升 0.17 个百分点,进一步地,当使用SHAS超参数搜索策略搜索最优超参数后,精度可以再提升 1.04 个百分点。此时,PPLCNet_x1_0 与 SwinTranformer_tiny 的精度差别不大,但是速度明显变快。关于 PULC 的训练方法和推理部署方法将在下面详细介绍。 **备注:**关于PPLCNet的介绍可以参考[PPLCNet介绍](../models/PP-LCNet.md),相关论文可以查阅[PPLCNet paper](https://arxiv.org/abs/2109.15099)。 @@ -148,12 +148,12 @@ cd path_to_PaddleClas ```shell cd dataset -wget https://paddleclas.bj.bcebos.com/data/cls_demo/text_image_orientation_demo.tar -tar -xf text_image_orientation_demo.tar +wget https://paddleclas.bj.bcebos.com/data/cls_demo/text_image_orientation.tar +tar -xf text_image_orientation.tar cd ../ ``` -执行上述命令后,`dataset/`下存在`text_image_orientation_demo`目录,该目录中具有以下数据: +执行上述命令后,`dataset/`下存在`text_image_orientation`目录,该目录中具有以下数据: ``` ├── img_0 diff --git a/ppcls/configs/PULC/text_image_orientation/MobileNetV3_small_x0_35.yaml b/ppcls/configs/PULC/text_image_orientation/MobileNetV3_small_x0_35.yaml index 5ada2a6a..097e81f7 100644 --- a/ppcls/configs/PULC/text_image_orientation/MobileNetV3_small_x0_35.yaml +++ b/ppcls/configs/PULC/text_image_orientation/MobileNetV3_small_x0_35.yaml @@ -37,7 +37,7 @@ Optimizer: momentum: 0.9 lr: name: Cosine - learning_rate: 1.5 + learning_rate: 1.3 warmup_epoch: 5 regularizer: name: 'L2' -- GitLab