今天星主给大家介绍一个好玩的工具,它可以用于生成文本识别的合成数据,生成的文本图像样本可以用来训练OCR软件,它的github地址为https://github.com/Belval/TextRecognitionDataGeneratorhttps://github.com/Belval/TextRecognitionDataGenerator
1.安装
TRDG可以通过pip进行安装。安装后,trdg二进制文件应该位于您的PATH中。
pip install trdg
如果您想添加新语言,使用该工具的最简单方法是克隆官方存储库。
git clone https://github.com/Belval/TextRecognitionDataGenerator
然后你需要安装相应的python第三方库,建议使用虚拟环境。
pip3 install -r requirements.txt
如果您想使用手写文本生成功能,则需要安装-hw
依赖项。
pip3 install -r requirements-hw.txt
2.参数含义
虽然TRDG可以通过第三方库的方法进行使用(具体的可以去参见官方的实例),此处仅展示终端的使用及需要传进去的参数。
1.-c,--count
这个参数表示你要生成的文字图片的数量,默认值为1000。
2.-l,--language
这个参数也十分重要,它可以用于更改生成文字图片的语言。官方给的github中有许多不同语言的.txt文件,如下图所示。en表示英文,cn表示中文,默认生成英文。
3.终端使用
在第一次调用时可能会有如下错误。这里星主是Pillow的版本太高,里面没有getsize这个函数导致的。可以试试安装pip install Pillow==9.5。
接着咋们步入正题,开始生成文字图片。在克隆github后,打开终端,进入到这个文件夹里面
运行下面示例,会在\trdg目录下生成一个out/文件夹,这个文件夹里面存放生成的结果。当然,存放结果的位置可以更改,指定--output_dir的参数即可。
python run.py -c 10
这是我生成的一些结果。
我们再尝试生成一些中文文字图片,图片中的文字来源\trdg\dicts\cn.txt这个中文词典,自己也可以更改词典里面的内容。
使用命令
python run.py -c 10 -l cn
生成的结果如下。由于词典里面都是单个汉字,因而造成如下的效果,并且结果中还有繁体中文,所以大家可以去更改一下自己的词典。
单个汉字图片可能不是我们想要的,所以我们再指定一个参数。
python run.py -c 10 -l cn -w 5
得到的结果如下,此时我们发现结果不再是一个一个的汉字了。
为了避免用此数据集造成过拟合问题,我们还可以向该数据集中添加一些失真。
如下表。
o | 无 |
1 | 正弦波 |
2 | 余弦波 |
3 | 随机 |
使用命令:
python run.py -c 10 -l cn -w 5 -d 1
结果如下,看着还是有点效果。
除了上面介绍的一些参数,官方文档(TextRecognitionDataGenerator’s documentation — TextRecognitionDataGenerator latest documentationhttps://textrecognitiondatagenerator.readthedocs.io/en/latest/index.html)中还有许多其他参数可以设置,如更改图片的背景颜色,高斯模糊,控制边距等等。大家可能不会魔法,所以星主把github里面的内容放在了百度网盘,这里面还有一份官方的英文版教程。
链接:https://pan.baidu.com/s/1YtIFccH1lgVORH0zZctInA
提取码:qlcf