当前位置: 首页 > news >正文

【PaddleOCR】数据合成工具 Style-Text安装与使用案例介绍

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个性化解决方案等服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:xf982831907

💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。

在这里插入图片描述

【PaddleOCR】数据合成工具 Style-Text安装与使用案例介绍

      • 一、工具简介
      • 二、环境配置
      • 三、快速上手
        • 3.1 合成单张图
        • 3.2 批量合成
      • 四、应用案例
      • 五、代码结构

一、工具简介

在这里插入图片描述

在这里插入图片描述

  Style-Text数据合成工具是基于百度和华科合作研发的文本编辑算法《Editing Text in the Wild》https://arxiv.org/abs/1908.03047

  不同于常用的基于GAN的数据合成工具,Style-Text主要框架包括:1.文本前景风格迁移模块 2.背景抽取模块 3.融合模块。经过这样三步,就可以迅速实现图像文本风格迁移。下图是一些该数据合成工具效果图。

在这里插入图片描述

二、环境配置

  1. 参考快速安装,安装PaddleOCR。
  2. 进入StyleText目录,下载模型,并解压:
cd StyleText
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

三、快速上手

3.1 合成单张图

  输入一张风格图和一段文字语料,运行tools/synth_image,合成单张图片,结果图像保存在当前目录下:

python3 tools/synth_image.py -c configs/config.yml --style_image examples/style_images/2.jpg --text_corpus PaddleOCR --language en
  • 注1:语言选项和语料相对应,目前支持英文(en)、简体中文(ch)和韩语(ko)。
  • 注2:Style-Text生成的数据主要应用于OCR识别场景。基于当前PaddleOCR识别模型的设计,我们主要支持高度在32左右的风格图像。
    如果输入图像尺寸相差过多,效果可能不佳。
  • 注3:可以通过修改配置文件configs/config.yml中的use_gpu(true或者false)参数来决定是否使用GPU进行预测。

  例如,输入如下图片和语料"PaddleOCR":

在这里插入图片描述

  生成合成数据fake_fusion.jpg
在这里插入图片描述

  除此之外,程序还会生成并保存中间结果fake_bg.jpg:为风格参考图去掉文字后的背景;

在这里插入图片描述

  fake_text.jpg:是用提供的字符串,仿照风格参考图中文字的风格,生成在灰色背景上的文字图片。

在这里插入图片描述

3.2 批量合成

  在实际应用场景中,经常需要批量合成图片,补充到训练集中。Style-Text可以使用一批风格图片和语料,批量合成数据。合成过程如下:

  1. configs/dataset_config.yml中配置目标场景风格图像和语料的路径,具体如下:

    • Global
      • output_dir::保存合成数据的目录。
    • StyleSampler
      • image_home:风格图片目录;
      • label_file:风格图片路径列表文件,如果所用数据集有label,则label_file为label文件路径;
      • with_label:标志label_file是否为label文件。
    • CorpusGenerator
      • method:语料生成方法,目前有FileCorpusEnNumCorpus可选。如果使用EnNumCorpus,则不需要填写其他配置,否则需要修改corpus_filelanguage
      • language:语料的语种,目前支持英文(en)、简体中文(ch)和韩语(ko);
      • corpus_file: 语料文件路径。语料文件应使用文本文件。语料生成器首先会将语料按行切分,之后每次随机选取一行。

    语料文件格式示例:

    PaddleOCR
    飞桨文字识别
    StyleText
    风格文本图像数据合成
    ...
    

   Style-Text也提供了一批中英韩5万张通用场景数据用作文本风格图像,便于合成场景丰富的文本图像,下图给出了一些示例。

   中英韩5万张通用场景数据: 下载地址

在这里插入图片描述

  1. 运行tools/synth_dataset合成数据:

    python3 tools/synth_dataset.py -c configs/dataset_config.yml
    

   我们在examples目录下提供了样例图片和语料。
在这里插入图片描述
在这里插入图片描述

   直接运行上述命令,可以在output_data中产生样例输出,包括图片和用于训练识别模型的标注文件:
在这里插入图片描述

   其中label目录下的标注文件为程序运行过程中产生的缓存,如果程序在中途异常终止,可以使用缓存的标注文件。
如果程序正常运行完毕,则会在output_data下生成label.txt,为最终的标注结果。

四、应用案例

  下面以金属表面英文数字识别和通用韩语识别两个场景为例,说明使用Style-Text合成数据,来提升文本识别效果的实际案例。下图给出了一些真实场景图像和合成图像的示例:

在这里插入图片描述

  在添加上述合成数据进行训练后,识别模型的效果提升,如下表所示:

场景字符原始数据测试数据只使用原始数据识别准确率新增合成数据同时使用合成数据识别准确率指标提升
金属表面英文和数字220365059.38%2000075.46%16.08%
随机背景韩语5631123030.12%10000050.57%20.45%

五、代码结构

StyleText
|-- 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
http://www.dtcms.com/a/268547.html

相关文章:

  • 【机器学习笔记 Ⅲ】3 异常检测算法
  • 4D-VLA:具有跨场景标定的时空视觉-语言-动作预训练
  • Linux运维安全新范式:基于TCPIP与SSH密钥的无密码认证实战
  • 【保姆级图文详解】探秘 Prompt 工程:AI 交互的关键密码
  • C++多线程网络编程:助力高并发服务器性能提升
  • 无人机精准降落辅助系统核心技术解析
  • 一文讲清楚React Fiber
  • RAG 相关概念学习
  • VMware 17.0.2-21581411 安装教程(附详细步骤+序列号激活指南)
  • 【牛客算法】 小红的奇偶抽取
  • kotlin+MongoTemplate的时间类型为is_date类型 pymongo如何处理
  • 【vue】用conda配置nodejs,一键开通模版使用权
  • 设计模式分析
  • 1.1_5_1 计算机网络的性能指标(上)
  • 大模型在肾囊肿诊疗全流程预测及应用研究报告
  • kafka总结
  • 【Java编程动手学】Java常用工具类
  • Apache Cloudberry 亮相 2025 IvorySQL 生态大会暨 PostgreSQL 高峰论坛
  • c# Process.Start异常解决办法
  • 【一起来学AI大模型】支持向量机(SVM):核心算法深度解析
  • 支持向量机(SVM)在心脏MRI分类(心肌病检测)中的应用与实现
  • 最简单的实验室资产管理系统,使用Flask,mysql,html(四、知识补充)
  • C++学习笔记01(自学草稿)
  • 【用 Scapy 实现一个简单的局域网 MAC 地址扫描工具】
  • 20250707-2-第二章:Kubernetes 核心概念-K8s集群架构,生产部署K8s两_笔记
  • 环路滤波:精密ADC时钟系统的相位噪声净化器
  • 源码推送到gitee码云仓库
  • stm32--SPI原理应用W25Q64(二)
  • 国产时序数据库 TDengine:Docker 部署、协议端口及 DBeaver 连接全攻略
  • JVM系列五:字节码与执行引擎深度解析