You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
PaddleOCR/doc/doc_ch/style_text_rec.md

4.9 KiB

快速上手

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

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

环境配置

  1. 参考快速安装安装PaddlePaddle并准备环境。
  2. 进入style_text_rec目录,下载模型,并解压:
cd tools/style_text_rec
wget /path/to/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生成示例图片
python -m tools.synth_image -c configs/config.yml
  1. 运行后,会生成fake_busion.jpg,即为最终结果。除此之外,程序还会生成并保存中间结果:

    • fake_bg.jpg:为风格参考图去掉文字后的背景;
    • fake_text.jpg:是用提供的字符串,仿照风格参考图中文字的风格,生成在灰色背景上的文字图片。
  2. 如果您想尝试其他风格图像和文字的效果,可以在tools/synth_image.py中修改:

    • img = cv2.imread("examples/style_images/1.jpg"):请在此处修改风格图像的目录;
    • corpus = "PaddleOCR":请在此处修改要使用的语料文本
    • 注意:请修改语言选项(language = "en")和语料相对应,目前我们支持英文、简体中文和韩语。
  3. tools/synth_image.py中,我们还提供了一个batch_synth_images方法,可以两两组合语料和图片,批量生成一批数据。

高级使用

组件介绍

Style Text Rec主要包含以下组件:

  • style_samplers:风格图片采样器,负责返回风格图片。目前我们提供了DatasetSampler,可以从一个有标注的数据集中采样。

  • corpus_generators:语料生成器,负责生成语料。目前提供了两种语料成生成器:

    • EnNumCorpus:根据给定的长度生成随机字符串,字符可能是大小写英文字母、数字和空格。
    • FileCorpus:读取指定的文本文件,并随机返回其中的单词.
  • text_drawers:标准字体图片生成器,负责根据输入的语料,生成标准字体的图片。注意,使用该组件时,一定要根据语料修改对应的语言信息,否则可能会书写失败。

  • predictors:预测器,根据给定的风格图片和标准字体图片,调用深度学习模型,生成新的数据。predictor是整个算法的核心模块。

  • writers:文件输出器,负责将合成的图片与标签文件写入硬盘。

  • synthesisers:合成器,负责调用各个模块,完成数据合成。

合成数据集

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

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

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

    • StyleSamplerl

      • 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),如下所示:

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

使用合成数据集进行OCR识别训练

在完成上述操作后即可得到用于OCR识别的合成数据集接下来请参考OCR识别文档,完成训练。