PaddleOCR/StyleTextRec/README_ch.md

5.1 KiB
Raw Blame History

Style Text Rec

目录

工具简介 环境配置 快速上手 高级使用 应用示例

工具简介

Style-Text是对百度自研文本编辑算法《Editing Text in the Wild》中提出的SRNet网络的改进不同于常用的GAN的方法只选择一个分支该工具将文本合成任务分解为三个子模块文本风格迁移模块、背景抽取模块和前背景融合模块来提升合成数据的效果。下图显示了一些示例结果。

此外,在实际铭牌文本识别场景和韩语文本识别场景,验证了该合成工具的有效性。

环境配置

  1. 参考快速安装安装PaddleOCR。强烈建议您使用python3环境。
  2. 进入style_text_rec目录,下载模型,并解压:
cd style_text_rec
wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/style_text/style_text_models.zip
unzip style_text_models.zip

如果您将模型保存再其他位置,请在configs/config.yml中修改模型文件的地址,修改时需要同时修改这三个配置:

bg_generator:
  pretrain: style_text_models/bg_generator
...
text_generator:
  pretrain: style_text_models/text_generator
...
fusion_generator:
  pretrain: style_text_models/fusion_generator

快速上手

  1. 运行tools/synth_image生成示例图片
python3 -m tools.synth_image -c configs/config.yml
  1. 运行后,会生成fake_busion.jpg,即为最终结果。
除此之外,程序还会生成并保存中间结果: * `fake_bg.jpg`:为风格参考图去掉文字后的背景; * `fake_text.jpg`:是用提供的字符串,仿照风格参考图中文字的风格,生成在灰色背景上的文字图片。
  1. 如果您想尝试其他风格图像和文字的效果可以添加style_image,text_corpus和language参数
python3 -m tools.synth_image -c configs/config.yml --style_image examples/style_images/2.jpg --text_corpus PaddleOCR --language en
  • 注意:语言选项和语料相对应,目前我们支持英文、简体中文和韩语。
  1. tools/synth_image.py中,我们还提供了一个batch_synth_images方法,可以两两组合语料和图片,批量生成一批数据。

高级使用

在开始合成数据集前,需要准备一些素材。

首先需要风格图片作为合成图片的参考依据这些数据可以是用作训练OCR识别模型的数据集。本例中使用带有标注文件的数据集作为风格图片.

  1. configs/dataset_config.yml中配置输入数据路径。

    • StyleSampler
      • method:使用的风格图片采样方法;
      • image_home:风格图片目录;
      • label_file风格图片路径列表文件如果所用数据集有label则label_file为label文件路径
      • with_label:标志label_file是否为label文件。 我们提供了一批样例图供您试用。
    • CorpusGenerator
      • method:语料生成方法,目前有FileCorpusEnNumCorpus可选。如果使用EnNumCorpus,则不需要填写其他配置,否则需要修改corpus_filelanguage
      • language:语料的语种;
      • corpus_file: 语料文件路径。
  2. 运行tools/synth_dataset合成数据:

    python -m tools.synth_dataset -c configs/dataset_config.yml
    
  3. 如果您想使用并行方式来快速合成数据,可以通过启动多个进程,在启动时需要指定不同的tag-t),如下所示:

    python3 -m tools.synth_dataset -t 0 -c configs/dataset_config.yml
    python3 -m tools.synth_dataset -t 1 -c configs/dataset_config.yml
    

应用示例

在完成上述操作后即可得到用于OCR识别的合成数据集下面给出了一些数据集生成的示例

接下来请参考OCR识别文档,完成训练。

项目结构

style_text_rec
|-- arch
|   |-- base_module.py
|   |-- decoder.py
|   |-- encoder.py
|   |-- spectral_norm.py
|   `-- style_text_rec.py
|-- configs
|   |-- config.yml
|   `-- dataset_config.yml
|-- engine
|   |-- corpus_generators.py
|   |-- predictors.py
|   |-- style_samplers.py
|   |-- synthesisers.py
|   |-- text_drawers.py
|   `-- writers.py
|-- examples
|   |-- corpus
|   |   `-- example.txt
|   |-- image_list.txt
|   `-- style_images
|       |-- 1.jpg
|       `-- 2.jpg
|-- fonts
|   |-- ch_standard.ttf
|   |-- en_standard.ttf
|   `-- ko_standard.ttf
|-- tools
|   |-- __init__.py
|   |-- synth_dataset.py
|   `-- synth_image.py
`-- utils
    |-- config.py
    |-- load_params.py
    |-- logging.py
    |-- math_functions.py
    `-- sys_funcs.py