从文本到图像——文本识别数据集生成器

代码地址如下:
http://www.demodashi.com/demo/14792.html

一、开发背景

图像中的文本识别近几年来备受瞩目。通常来说,图片中的文本能够比图片中其他内容提供更加丰富的信息。因此,图像文本识别能够将图像中的文本区域转化成计算机可以读取和编辑的符号,打通了从图像到文本再到信息的通路。

随着计算机算力的提升,基于深度学习方法的本文识别技术逐渐成为主流,而深度学习中数据集的获取是重中之重。本脚本实现读取语料集中的文本内容,以保存为图像形式的数据集,用于模型训练。

二、脚本效果

1、IDE中的运行界面

(1)选择字体文件

(2)生成数据集

2、生成的图像

不使用数据增强


使用数据增强



3、映射表

存储图像文件名和类别序列标注的对应关系

三、具体开发

1、功能需求

  1. 根据用户指定的语料数据生成图像文件及映射表
  2. 用户可自行更改文本长度,图像数量及图像尺寸
  3. 用户可自行选择是否进行增强处理

2、实际项目

1. 项目结构

(1)根目录下的fonts文件夹用于存放ttf字体文件, imageset文件夹用于存放输出图像和映射表
(2)config中设置相关参数并存放语料文件, dict5990.txt是字典, sentences.txt是语料集

2. 实现思路

3. 代码实现
1. 设置参数
# 语料集
corpus = 'config/sentences.txt'
dict = 'config/dict5990.txt'

# 字体文件路径
FONT_PATH = 'fonts/'

# 输出路径
OUTPUT_DIR = 'imageset/'

# 样本总数
n_samples = 50
# 每行最大长度
sentence_lim = 10
# 画布能容纳的最大序列长度,对应img_w
canvas_lim = 50
2. 构建生成器

1. 加载字体文件

# 选择字体
root = tk.Tk()
root.withdraw()
self.font_path = filedialog.askopenfilename()
		
def load_fonts(self, factor, font_path):
	""" 加载字体文件并设定字体大小
        """
	self.fonts = []
	# 加载字体文件
	font = ImageFont.truetype(font_path, int(self.img_h*factor), 0)
	self.fonts.append(font)

2. 构建字典

def build_dict(self):
	""" 打开字典,加载全部字符到list
            每行是一个字
        """
	with codecs.open(self.dictfile, mode='r', encoding='utf-8') as f:
		# 按行读取语料
		for line in f:
			# 当前行单词去除结尾,为了正常读取空格,第一行两个空格
			word = line.strip('\r\n')
			# 只要没超出上限就继续添加单词
			self.dict.append(word)
			# 最后一位作为空白符
			self.blank_label = len(self.dict)

3. 加载语料

def build_train_list(self, num_rows, max_row_len=None):
	# 过滤语料,留下适合的内容组成训练list
	assert max_row_len <= self.img_lim
	self.num_rows = num_rows
	self.max_row_len = max_row_len
	sentence_list = []
	self.train_list = []
	
	with<
  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
软件说明: 小米人APK改之理是一款可视化的用于修改安卓Apk程序文件的工具,集成了ApkTool、Dex2jar、JD-GUI等Apk修改工具,集Apk反编译、Apk打包、Apk签名,支持语法高亮的代码编辑器,基于文件内容的关键字(支持单行代码或多行代码段)搜索、替换引擎,打造成可视的、一体化的APK修改工具,从而大大简化Apk修改过程中的繁琐操作,修改更轻松。 APK改之理特色: 1、可视化操作,全自动的反编译、编译、签名Apk。 2、以树目录管理全部反编译得到的Apk资源文件,方便操作。 3、内置代码编辑器,支持语法高亮显示,根据文件格式自动匹配相应语法;支持多文档同时编辑;也支持使用系统编辑器来编辑代码文件。 4、内置基于文件内容的关键字或多行代码段的搜索、替换引擎,一键搜索替换,搜索结果以标签的形式分门别类;允许在指定搜索范围(整个工程或选中的文件或文件夹内搜索),支持正则表达式搜索和替换。搜索功能是Apk修改的一个重要工具,从此你不必借助其它第三方搜索工具。 5、内置Google在线翻译引擎,支持实时翻译,支持所有Google支持的几十国语言对译,汉化更轻松。 6、自动识别图像资源,并提供该类资源的快捷替换功能,方便修改这类图片资源。 7、内嵌Unicode、AscII互转工具,以方便硬编码的文字(如汉字)的搜索和汉化类修改。 8、内置类似于系统cmd.exe的命令窗口,高手也可以手动直接输入各种命令来手动操作。 9、所有操作步骤、操作结果都以良好的阅读格式输出在日志窗口,方便查看修改的历史记录。 10、内置adb功能,包括使用adb向设备(或模拟器)安装、卸载修改后的apk进行测试,并嵌入adb log、ddms等功能监测修改apk的运行状况,以便于分析和查找错误。 11、支持多国语言界面,支持界面换肤。 注意事项: 1、双击 ApkIDE.exe启动程序(如果是Vista/Win7建议用用管理员权限运行,右键单击或在属性中设置) 2、如果启动不了,请先安装.net framework 2.0(或更高版本): 3、JDK建议使用1.6,不要用1.7。 4、本版集成:apktool 1.5.2;dex2jar 0.0.9.13; JD-GUI 0.3.5 5、APK签名用test.keystore信息: 路径:[Apk改之理安装目录]/test.keystore keystore password:apkide-test key alias:apkide key password:apkide-test validity(years):100 organization:apkide 更新日志: APK改之理3.1.0.0版本更新内容: 1、增加对apktool2.x版本的支持(目前apktool2.x仍然是测试版本,此版要求JDK1.7或以上),同时保留对1.5.2版的支持,二者可以一键切换(菜单「工具」-「配置与选项」-「选项」-「ApkTool版本切换」)。 2、增加apk拖放操作功能,可以将apk文件拖到Apk改之理窗体上,即可自动捕捉并反编译。 3、代码编码器增加将选中的文字从“Unicode转换为AscII”或“从AscII 转换为Unicode”二个转换命令,转换结果将直接替换编辑器选中的文本。 4、修复部份系统环境下签名出现“java’ 不是内部或外部命令”的错误。 5、配置keystore文件时不再强制要求.keystore的文件。 6、修正一处文件监视上的问题,一些小功能的改善。 版本:2.4.2 alpha测试版 发布时间:2013.05.02 解决部份apk(如无Icon、无Features等特性的apk)反编译后出现错误的问题。 针对上网本小屏幕(屏幕分辨率高度600的)调整搜索面板中控件尺寸来显示全部。 同时为搜索、替换文本框增加一个扩展编辑器。 搜索结果面板中添加“全部关闭”功能,以便一键关闭所有搜索标签。 版本:2.4.1 alpha测试版 发布时间:2013.05.02 修复文件监控的问题,包括:(1)可能存在部份已被外部修改的文件不能即时通知用户重新加载的问题(2)多次使用搜索替换面板中“替换全部”功能时,会出现未处理的错误的问题 改了dex2jar实现方式(效果一样,不过更安全些)) 版本:2.4 alpha测试版 发布时间:2013.04.14 增加keystore的签名方式,你可以使用自己的keystore来签名apk(keystore可以使用eclipse来生成,软件已默认提供了一个test.keystore);注:如果使用自己的keystore,请在设置窗口点“验证”按钮确保能显示为“验证成功”的方能使用,否则如果配置不正确编译成的apk是没有签名的(即apk中没有META-INF文件夹),且这个过程中不会有错误提示造成无法排查原因。PS:如果使用jdk1.7,请使用这种签名方式,否则可能签名不成功;同时因为keystore可以自己生成唯一数据,解决使用共享签名证书可能被如360拉黑报马的问题。 修复文件修改的监控问题,确保在必要时(已打开的文件在外部被修改时)通知用户重新加载它们。 修复查找对话框关闭后无法再打开(打开显示错误)的问题。 完善jdk路径的自动查找和配置(如果不会设置JDK,只要安装jdk的安装版后,通常都能自动查找到)。 版本:2.3 alpha测试版 发布时间:2013.04.09 增加对.samli、.xml的文件修改的监视功能,以便在使用了外部编辑器修改此类文件后能通知用户重新加载修改过的文件。 手动清理旧项目时改为线程方式,避免假死问题。 解决下拉列表的界面语言翻译问题。 小东和小西被改善、修复。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值