一、开发背景

随着近几年来计算机算力的不断提升,机器学习也迎来了爆发式的发展,图像识别作为机器学习最典型也是最主要的应用之一,目前应用前景火热。

机器学习最重要的一步就是获取数据集,没有一个坚实的数据集做支撑是无法训练出好用的模型的。因此,本文实现了一个脚本,能够生成任意数量,任意字体,以及带有各种模糊及噪声预处理的图像,用这些图像作为训练集是再合适不过了。

二、脚本效果

1、IDE中的运行界面

2、生成的图像

每个文件夹存放一个汉字,即一个类别:

打开其中一个文件夹,里面存放的是当前类别汉字的各个字体以及各种预处理后的图像文件。

三、具体开发

1、功能需求

1. 根据用户指定的汉字字符生成图像文件

2. 用户可自行更改图像数量及图像尺寸

3. 用户可自行更改预处理效果

2、实际项目

(1)项目结构

项目文件夹ImgGenerator下的fonts文件夹用于存放ttf字体文件。

outputs文件夹用于存放输出图像。

config.py中设置相关路径信息。

draw_chara.py是实际的脚本。

(2)实现思路:

设定需要输出的字符:if __name__ == '__main__':

# 加载所有指定字体

fonts = load_fonts(size)

# 字符集,将其中的字符保存成图像

charset = 'u你想输出的汉字'

# 生成n个字

n = 10

draw_txt(n, charset, fonts, size)

2. 加载字体:# 自动加载字体文件

def load_fonts(size):

fnts = []

# 字体路径

font_path = os.path.join(config.FONT_PATH, "*.*")

# 获取全部字体路径,存成list

fonts = list(glob.glob(font_path))

# 遍历字体文件

for each in fonts:

# 调整字体大小

fnt = ImageFont.truetype(each, int(size[0]*1.75/2), 0)

fnts.append(fnt)

return fnts

这里需要根据输出尺寸调整字体大小,避免超出画布或留白太多。

3. 预处理图像:

作为数据增强的一种方式,对训练图像进行不同程度的预处理,包括模糊,干扰,噪声等可以增强模型的泛化能力。

这里可以根据自己需要选择在0-7个预处理模式中自行选择,只需要更改循环范围即可。# 数据增强

for mode in range(0, 8):

aug = augmentation(img, mode, size)def augmentation(img, mode, size):

# 不能直接在原始image上改动

image = img.copy()

'''添加随机模糊和噪声'''

# 高斯模糊

if mode == 0:

# 模糊后二值化,虚化边缘

if mode == 1:

# 横线干扰

if mode == 2:

# 竖线

if mode == 3:

# 十字线

if mode == 4:

# 左右运动模糊

if mode == 5:

# 上下运动模糊

if mode == 6:

# 高斯噪声

if mode == 7:

(3)使用说明

现在config文件中设置字体文件路径和输出路径:# coding=utf-8

# 图像保存路径

IMAGE_PATH = './outputs'

# 字体文件路径

FONT_PATH = './fonts'

字体文件路径中存放ttf字体文件,如下:

最后运行draw_chara.py即可在outputs文件夹中得到输出图像。

python 汉字识别训练数据生成_中文识别数据集生成脚本相关推荐

  1. python怎么利用数据成像_第一张黑洞照片全靠VLBI,这个Github项目教你用Python实现...

    [新智元导读]哈佛学生写的Python模块,用于模拟和操作VLBI数据并使用正则化最大似然法生成图像,模拟黑洞成像的算法.进入Github飙升榜TOP 3,超过1000星. 为了拍到本次的黑洞照片,科 ...

  2. 数据推荐 | 人体行为识别数据集

    人体行为识别任务旨在通过对人体姿态进行分析,识别出人体的具体动作,为人体行为预测.突发事件处理.智能健身.智能看护等领域提供技术支持. 人体行为识别数据标注方式 人体行为数据通用的标注方式包括人体关键 ...

  3. python神经网络训练数据_用Python从头开始实现一个神经网络

    注:本篇文章非原创,翻译自Implementing a Neural Network from Scratch in Python – An Introduction​www.wildml.com ...

  4. python构造自定义数据包_构建自定义人脸识别数据集的三种训练方法

    在接下来的几篇文章中,我们将训练计算机视觉+深度学习模型来进行面部识别.在此之前,我们首先需要收集脸部数据集. 如果你已经在使用预先准备好的数据集,比如Labeled Faces in the Wil ...

  5. python获取网络数据失败_0.人脸识别网络不行下载失败

    爬虫 Python基础.数据分析扩展包Numpy.pandas.matplotlib,Python读取MySQL数据,Python爬虫及Scrapy框架,无监督机器学习算法聚类分析等,以及案例:互联网 ...

  6. python文本可视化数据分析软件_数据探索很麻烦?推荐一款史上最强大的特征分析可视化工具:yellowbrick...

    作者:xiaoyu 微信公众号:Python数据科学 前言 玩过建模的朋友都知道,在建立模型之前有很长的一段特征工程工作要做,而在特征工程的过程中,探索性数据分析又是必不可少的一部分,因为如果我们要对 ...

  7. python神经网络训练效果差_为什么我的神经网络验证精度比我的训练精度高,并且两者都变得恒定? - python...

    我已经建立了一个模型,当我训练它时,我的验证损失小于训练中的一个,验证准确性也比训练中的高.模型是否过拟合?难道我做错了什么?有人可以看看我的模型,看看有什么问题吗?谢谢. input_text = ...

  8. python预测未来数据步骤_大神教你用Python预测未来:一文看懂时间序列(值得收藏)...

    所有代码都是用 Python 编写的,并且在 GitHub 上可以看到所有的信息. https://nbviewer.jupyter.org/github/leandrovrabelo/tsmodel ...

  9. 张莉python 玩转数据答案_中国大学MOOC(慕课)用Python玩转数据答案大全

    中国大学MOOC(慕课)用Python玩转数据答案大全 更多相关问题 All the neighbors admire the family _______ the parents are treat ...

最新文章

  1. Android aar 代码查看
  2. pandas为dataframe所有的列名称名添加前缀(add_prefix)
  3. 8.继续分析一破解加密码获取-最最最简单的注册机
  4. 安装部署VMware vSphere 5.5文档 (6-1) 配置IBM DS4700 共享存储
  5. hex editor怎么搜索代码_代码审计从入门到放弃(三) phplimit
  6. restful json_Dropwizard:轻松的RESTful JSON HTTP Web服务
  7. mysql cluster安装配置_mysqlcluster安装与配置_MySQL
  8. 【早报】这届程序员要做好会Python的准备了!
  9. http 标准超时时间_Go 中 http 超时问题的排查
  10. 计算机逻辑学包含分析,逻辑学在职研究生教育的基本内容分析
  11. MongoDB几个完整的库表设计实例
  12. hwd分别是长宽高_W H D在尺寸上代表什么??
  13. 利用STL中的vector实现“有向有权图”的邻接表表示
  14. 三元运算 微信小程序_微信小程序使用三元运算符代替wx:if
  15. RHCE 22个考点
  16. Cocos Creator转盘抽奖
  17. 华为路由交换RS 部分题库分享
  18. cmake详细教程(经验版)
  19. Mybase使用教程-不古出品
  20. 计算机知识在物理学中的应用,浅谈物理学在多种领域中的应用

热门文章

  1. java图像增强_图像增强之空间域滤波
  2. C++读入txt,写入txt,循环读入txt,循环写入txt
  3. 压电悬臂梁 matlab,悬臂梁式压电发电结构理论模型及其仿真研究
  4. Java 处理SFTP使用代理进行上传下载
  5. 这6个免费去水印工具,一定要码住!
  6. 卡通化图片python实现代码_媳妇儿喜欢玩某音中的动漫特效,那我就用python做一个图片转化软件。...
  7. 游戏联运SDK是什么意思?
  8. 港科百创|宇链科技喜获杭州准独角兽企业荣誉称号
  9. 餐饮业数字化转型升级的必要性
  10. PyTorch-GPU 安装之 conda install pip install