add_multilingual_text_image_orientation

pull/1986/head
lvjian0706 2022-06-09 14:27:53 +08:00
parent 3375336ed1
commit 1540eb34e8
3 changed files with 20 additions and 13 deletions

View File

@ -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。
<a name="3.3"></a>

View File

@ -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

View File

@ -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'