PaddleOCR缅甸语OCR文本渲染数据

文本渲染器

AI OCR文本生成器专栏简介

欢迎来到AI OCR文本生成器专栏,这是一个专注于深度学习OCR(光学字符识别)模型训练的文本生成工具的专业平台。在这里,您将了解如何使用该工具生成训练CRNN等OCR模型所需的文本行图像。

我们的工具采用模块化设计,允许您轻松添加各种组件,如不同类型的语料库(Corpus)、图像效果(Effect)和布局(Layout)。该工具还与图像增强库imgaug完美集成,支持在图像生成的各个阶段应用不同的效果。无论是生成垂直文本,还是为PaddleOCR生成兼容的lmdb数据集,这款工具都能满足您的需求。

本专栏涵盖了从环境搭建、资源准备到配置文件编写的详细指导,帮助您快速上手。此外,我们还提供了丰富的示例和实践案例,包括如何使用背景图片、字体文件以及文本语料库来生成符合实际业务场景的训练数据。

如果您正在从事OCR相关的研究,或是希望通过训练自己的模型提高文本识别的精度,这个专栏将为您提供全面的技术支持和资源共享。

完整项目代码请访问:Burmese-text-rendering

生成文本行图像,用于训练深度学习 OCR 模型(例如 CRNN)。

  • 模块化设计。您可以轻松添加不同的组件:CorpusEffectLayout
  • imgaug 集成,使用方法请参见 imgaug_example
  • 支持在图像上渲染多个语料库并实现不同的效果。 Layout负责多个语料库之间的布局
  • 支持在渲染过程的不同阶段应用效果corpus_effectslayout_effectsrender_effects
  • 生成垂直文本。
  • 支持生成与 PaddleOCR 兼容的 lmdb 数据集,请参阅 Dataset
  • 网页字体查看器。
  • 语料库采样器:有助于执行角色平衡

文档

运行示例

运行以下命令使用示例数据生成图像:

git clone https://github.com/lingskr/Burmese-text-rendering.git
cd Burmese-text-rendering
python3 setup.py evolve
pip3 install -r docker/requirements.txt
pip install --upgrade pip setuptools
pip install "fonttools>=4.22.0" "pillow>=8.3.2" "sphinx>=5" "pygments>=2.13.0"

python3 main.py \
--config example_data/example.py \
--dataset img \
--num_processes 2 \
--log_period 10

数据是在 example_data/output 目录中生成。labels.json 文件包含以下格式的所有注释:

{
"labels": {
"000000000": "test",
"000000001": "text2"
},
"sizes": {
"000000000": [
120,
32
],
"000000001": [
128,
32
]
},
"num-samples": 2
}

您还可以使用 --dataset lmdb 将图像存储在 lmdb 文件中,lmdb 文件包含以下键:

  • num-samples
  • image-000000000
  • label-000000000
  • size-000000000

您可以检查配置文件example_data/example.py 了解如何使用 text_renderer,
或按照 快速入门 了解如何设置配置

快速入门

准备文件资源

  • 字体文件:.ttf.otf.ttc
  • 任意大小的背景图片,可以来自您的业务场景,也可以来自公开可用的数据集 (COCOVOC)
  • 语料库:text_renderer 提供多种 文本采样方法
    使用这些方法,你需要从两个角度考虑语料库的准备:
  1. 语料库必须是你想要进行OCR识别的目标语言
  2. 语料库应该符合你的实际业务需求,例如教育领域、医疗领域等。
  • 字符集文件[可选但推荐]:现实场景中的OCR模型(例如CRNN)通常仅支持有限的字符集,
    因此最好在数据生成时过滤掉字符集之外的字符。
    您可以通过设置 chars_file 参数来实现此目的

您可以从此处下载此“快速入门”的预先准备的文件资源:

将这些资源文件保存在同一目录中:

workspace
── bg
│ └── background.png
── corpus
│ └── burmse.txt
└── font
└── NotoSansMyanmar-Regular.ttf

创建配置文件

workspace 目录中创建一个 config.py 文件。一个配置文件必须有一个 configs 变量,它是 GeneratorCfg 的列表。

完整的配置文件如下:

import os
from pathlib import Path

from text_renderer.effect import *
from text_renderer.corpus import *
from text_renderer.config import (
RenderCfg,
NormPerspectiveTransformCfg,
GeneratorCfg,
SimpleTextColorCfg,
)

CURRENT_DIR =Path(os.path.abspath(os.path.dirname(__file__)))

def story_data():
return GeneratorCfg(
num_image=10,
save_dir=CURRENT_DIR / "output",
render_cfg=RenderCfg(
bg_dir=CURRENT_DIR / "bg",
height=32,
perspective_transform=NormPerspectiveTransformCfg(20, 20, 1.5),
corpus=WordCorpus(
WordCorpusCfg(
text_paths=[CURRENT_DIR / "corpus" / "eng_text.txt"],
font_dir=CURRENT_DIR / "font",
font_size=(20, 30),
num_word=(2, 3),
),
),
corpus_effects=Effects(Line(0.9, thick=(2, 5))),
gray=False,
text_color_cfg=SimpleTextColorCfg(),
),
)

configs = [story_data()]

在上面的配置中我们做了以下几件事:

1.指定资源文件的位置
2.指定文本采样方式:从语料库中随机选取2个或3个单词
3.配置一些生成的效果

  1. 指定字体相关参数:font_size, font_dir

运行

运行main.py,它只有4个参数:

  • config:Python配置文件路径
  • dataset:数据集格式imglmdb
  • num_processes:使用的进程数
  • log_period:日志打印周期。 (0, 100)

所有效果/布局示例

链接 处找到所有效果/布局配置示例

  • bg_and_text_mask: 三张相同宽度的图像水平合并在一起,
    可用于训练 GAN 模型,如 EraseNet
名称示例
0bg_and_text_maskbg_and_text_mask.jpg
1char_spacing_compact请添加图片描述
2char_spacing_large请添加图片描述
3color_imagecolor_image.jpg
4曲线请添加图片描述
5dropout_horizo​​ntal请添加图片描述
6dropout_randdropout_rand.jpg
7dropout_verticaldropout_vertical.jpg
8浮雕emboss.jpg
9extra_text_line_layout请添加图片描述
10line_bottom请添加图片描述
11line_bottom_left请添加图片描述
12line_bottom_right请添加图片描述
13line_horizo​​ntal_middle请添加图片描述
14line_left请添加图片描述
15线条右请添加图片描述
16线条上请添加图片描述
17线条上左线条上左.jpg
18线条上右请添加图片描述
19垂直线中间请添加图片描述
20填充请添加图片描述
21透视变换请添加图片描述
22same_line_layout_different_font_sizesame_line_layout_different_font_size.jpg
23vertical_textvertical_text.jpg

贡献

设置 Commitizen 以获取提交消息

  • 语料库:欢迎为项目贡献更多语料库生成器,
    它不一定需要是通用语料库生成器,也可以是特定于业务的生成器,
    例如生成 ID 号

引用 text_renderer

如果您在研究中使用 text_renderer,请考虑使用以下 BibTeX 条目。

@misc{text_renderer,
author = {lingskr},
title = {Burmese-text-rendering},
howpublished = {\url{https://github.com/lingskr/Burmese-text-rendering.git}},
year = {2024}
}

完整项目代码请访问:Burmese-text-rendering

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hsling松子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值