-
2021-10-09 12:09:52
前言
创作开始时间:2021年10月9日12:07:48
本文旨在记录好用的字体识别的工具(网站)。
1、WhatTheFont网站
网址:https://www.myfonts.com/WhatTheFont/
2、求字体网站
小结
这两个网站基本就够用了。后续有情况再补充。
创作结束时间:2021年10月9日12:12:43
参考文献
- 图片上是何种英文字体,另求识别字体的好方法? https://www.zhihu.com/question/21096278
更多相关内容 -
pytesseract和中文字体识别包.zip
2021-11-27 11:38:26主要是为了方便大家快速利用pytesseract识别图片文字,减少大家找资源,安装调试环境的时间 -
基于迁移学习的卷积神经网络印刷汉字字体识别模型研究.pdf
2021-09-25 16:03:05基于迁移学习的卷积神经网络印刷汉字字体识别模型研究.pdf -
六、AlexNet实现中文字体识别——隶书和行楷
2021-11-28 12:30:51文章目录前文中文字体识别——隶书和行楷数据生成器图像显示AlexNet模型构建AlexNet模型编译与拟合注意:GitHub下载地址: 前文 一、Windows系统下安装Tensorflow2.x(2.6) 二、深度学习-读取数据 三、Tensorflow...前文
中文字体识别——隶书和行楷
数据生成器
from keras.preprocessing.image import ImageDataGenerator IMSIZE = 227 validation_generator = ImageDataGenerator(rescale=1. / 255).flow_from_directory('../../data/ChineseStyle/test', target_size=(IMSIZE, IMSIZE), batch_size=200, class_mode='categorical' ) train_generator = ImageDataGenerator(rescale=1. / 255).flow_from_directory('../../data/ChineseStyle/train', target_size=(IMSIZE, IMSIZE), batch_size=200, class_mode='categorical' )
图像显示
from matplotlib import pyplot as plt plt.figure() fig, ax = plt.subplots(3, 5) fig.set_figheight(7) fig.set_figwidth(15) ax = ax.flatten() X, Y = next(validation_generator) for i in range(15): ax[i].imshow(X[i, :, :, :, ])
AlexNet模型构建
from keras.layers import Activation, Conv2D, Dense from keras.layers import Dropout, Flatten, Input, MaxPooling2D from keras import Model input_layer = Input([IMSIZE, IMSIZE, 3]) x = input_layer x = Conv2D(96, [11, 11], strides=[4, 4], activation='relu')(x) x = MaxPooling2D([3, 3], strides=[2, 2])(x) x = Conv2D(256, [5, 5], padding="same", activation='relu')(x) x = MaxPooling2D([3, 3], strides=[2, 2])(x) x = Conv2D(384, [3, 3], padding="same", activation='relu')(x) x = Conv2D(384, [3, 3], padding="same", activation='relu')(x) x = Conv2D(256, [3, 3], padding="same", activation='relu')(x) x = MaxPooling2D([3, 3], strides=[2, 2])(x) x = Flatten()(x) x = Dense(4096, activation='relu')(x) x = Dropout(0.5)(x) x = Dense(4096, activation='relu')(x) x = Dropout(0.5)(x) x = Dense(2, activation='softmax')(x) output_layer = x model = Model(input_layer, output_layer) model.summary()
AlexNet模型编译与拟合
from keras.optimizers import Adam model.compile(loss='categorical_crossentropy', optimizer=Adam(lr=0.001), metrics=['accuracy']) model.fit_generator(train_generator, epochs=20, validation_data=validation_generator)
注意:
因为自己是使用tensorflow-GPU版本,自己电脑是1050Ti,4G显存。实际运行时候batch_size设置为了不到15大小,太大了就显存资源不足。但是batch_size太小,总的数据集较大较多最后消耗时间就较长。
所以为了效率和烧显卡,请酌情考虑
GitHub下载地址:
-
卷积神经网络案例:中文字体识别——隶书和行楷
2021-03-21 14:33:52二、案例:中文字体识别——隶书和行楷 2.1 数据准备 2.2 构造数据生成器 (1) 数据生成器 from keras.preprocessing.image import ImageDataGenerator IMSIZE=227 validation_generator = ImageDataGenerator...一、AlexNet网络结构
1.1 AlexNet介绍:
ImageNet竞赛冠军获得者Hinton和他的学生Krizhevsky Alex于2012年设计。
ImageNet竞赛中第一个使用卷积神经网络的参赛者。
1.2 AlexNet网络结构:8层
卷积层
池化层
卷积层
池化层
卷积层
卷积层
卷积层
池化层
输出层:三个全连接层
1.3 AlexNet创新点:
成功使用ReLU作为CNN的激活函数;
使用Dropout随机忽略一部分神经元,避免模型过拟合;
在CNN中使用重叠的最大值池化(步长小于卷积核);
提出局部响应归一化层(Local Response Normalization,LRN),后逐渐被BN(Batch Normalization)代替;
使用CUDA加速神经网络的训练,利用了GPU强大的计算能力;
采用了数据增强(Data Augmentation)技术,达到增加样本量的目的。
二、案例:中文字体识别——隶书和行楷
2.1 数据准备
2.2 构造数据生成器
(1) 数据生成器from keras.preprocessing.image import ImageDataGenerator IMSIZE=227 validation_generator = ImageDataGenerator(rescale=1./255).flow_from_directory( './data/ChineseStyle/test/', target_size=(IMSIZE, IMSIZE), batch_size=200, class_mode='categorical') train_generator = ImageDataGenerator(rescale=1./255).flow_from_directory( './data/ChineseStyle/train', target_size=(IMSIZE, IMSIZE), batch_size=200, class_mode='categorical')
(2)输出图像
from matplotlib import pyplot as plt plt.figure() fig,ax = plt.subplots(2,5) fig.set_figheight(7) fig.set_figwidth(15) ax=ax.flatten() X,Y=next(validation_generator) for i in range(10): ax[i].imshow(X[i,:,:,:])
2.3 AlexNet代码实现
from keras.layers import Activation,Conv2D, BatchNormalization, Dense from keras.layers import Dropout, Flatten, Input, MaxPooling2D, ZeroPadding2D from keras import Model IMSIZE = 227 input_layer = Input([IMSIZE,IMSIZE,3]) x = input_layer x = Conv2D(96,[11,11],strides = [4,4], activation = 'relu')(x) x = MaxPooling2D([3,3], strides = [2,2])(x) x = Conv2D(256,[5,5],padding = "same", activation = 'relu')(x) x = MaxPooling2D([3,3], strides = [2,2])(x) x = Conv2D(384,[3,3],padding = "same", activation = 'relu')(x) x = Conv2D(384,[3,3],padding = "same", activation = 'relu')(x) x = Conv2D(256,[3,3],padding = "same", activation = 'relu')(x) x = MaxPooling2D([3,3], strides = [2,2])(x) x = Flatten()(x) x = Dense(4096,activation = 'relu')(x) x = Dropout(0.5)(x) x = Dense(4096,activation = 'relu')(x) x = Dropout(0.5)(x) x = Dense(2,activation = 'softmax')(x) output_layer=x model=Model(input_layer,output_layer) model.summary()
2.4 AlexNet编译运行
from keras.optimizers import Adam model.compile(loss='categorical_crossentropy',optimizer=Adam(lr=0.001),metrics=['accuracy']) model.fit_generator(train_generator,epochs=20,validation_data=validation_generator)
-
基于卷积神经网络的手写字体识别及界面
2021-05-10 15:45:40基于卷积神经网络的手写字体识别,可较为准确识别手写汉字、数字,英文字符 具备手写板功能(Matlab 2018 开发,其余版本兼容性未知) -
chinese中文字体.zip
2020-07-27 15:06:33中文字体,主要解决教育行业题库等算法公式,仅供大家参考。希望对大家有用。 https://blog.csdn.net/qq_39291929/article/details/107610601 本文就讲述了中文字体的具体内容。可参考 -
手写字体识别.xlsx
2021-03-07 18:16:07Excel数字识别训练集 -
TensorFlow手写字体识别(Python)_python_手写识别_tensorflow_
2021-09-29 08:31:27用tensorflow实现手写字体识别。 -
基于bp神经网络的手写字体识别.zip
2020-06-30 15:37:43基于bp神经网络的手写字体识别 有图像 有文献说明 适合新手使用练手. -
tensorflow手写字体识别
2019-05-03 19:35:49基于python,tensorflow实现的关于手写数字的识别。适于初学者 -
MATLAB之BP汉字识别(GUI,字体可随意换).zip
2021-10-29 12:37:09MATLAB汉字识别,有界面GUI,换题可以更换 -
基于多尺度小波分析的汉字字体识别
2011-03-20 10:18:10汉字识别采用小波分析的方法,发挥了小波分析的长处,达到了很好的处理效果。 -
基于深度学习的手写书法字体识别算法
2021-03-09 16:44:41为解决因手写书法作品种类繁多而识别困难的问题, 降低人们观赏书法的门槛, 本文提出了基于深度学习的手写书法字体识别算法. 识别过程中首先使用投影法等图像处理方法对书法作品图像中的汉字进行定位和分割,然后... -
MATLAB神经网络汉字识别(bp神经网络,字体可更换).zip
2021-10-29 12:27:27MATLAB神经网络的手写汉字识别,可以更换字体,带GUI框架 -
基于小波变换的印刷体汉字字体识别研究
2008-05-04 10:24:21一种基于小波变换的印刷体汉字字体识别研究 -
Tesseract训练中文字体识别(转)
2018-07-23 11:50:51前言 网上已经有大量的tesseract的识别教程,但是主要有两个缺点: 大多数比较老,有部分... 接下来尽可能详细的介绍自己tesseract训练中文识别的经验。 本文中使用的tesseract版本为3.05; 为什么用3.05呢...原文地址:http://www.jianshu.com/p/31afd7fc5813
前言
网上已经有大量的tesseract的识别教程,但是主要有两个缺点:
- 大多数比较老,有部分内容已经不适用。
- 大部分只是就英文的训练进行探索,很少针对中文的训练。
接下来尽可能详细的介绍自己tesseract训练中文识别的经验。
本文中使用的tesseract版本为3.05;
为什么用3.05呢?
从官方文档上看4.0版本(windows版本于2017年1月30号发布)显著的提高了识别率,同时也加大了性能的消耗。理论上我是应该用4.0。但这不是重点。重点是有windows的版本有诡异的bug! 花了好久没有解决。
不过还好,4.0支持3.05版本的所有语法。换而言之,下面的所有内容在4.0都是可以用的。工具准备
- 下载 java(java大法好啊);
- 下载jTessBoxEditor(依赖于java)
- 下载tesseract, windows64点这里
安装过程
点击下一步
勾选上同意,然后点击下一步
点击下一步
既然是要训练中文,记得勾选 additional language data
找到中文简体和中文繁体,按需勾选,然后点下一步
可以先不勾选,因为这样直接下载语言的包实在太慢。可以从网页上直接下载语言包,然后等程序安装好后,放入安装目录下tessdata目录下面
目录。。毕竟是你的电脑,随便选,你开心就好,然后点下一步
点击install
安装完毕。
字体训练
我准备了一份含汉语7000字和大小写英文字母和数字的文档.如果你需要训练所有中文的话,请将所有docx文件内所有字改成你要训练的字体。然后转化成tif格式的图片。
步骤(转自tesseract的github)
- Prepare training text.
准备你的训练文本 - Render text to image + box file. (Or create hand-made box files for existing image data.)
将文本转为image+box文件.(如果你已经有image文件的话,只需要手动生成box文件) - Make unicharset file.
生成unicharset文件 - Optionally make dictionary data.
有选择性的生成字典数据 - Run tesseract to process image + box file to make training data set.
运行tesseract来处理之前的image+box文件生成一个训练数据集合 - Run training on training data set.
在训练数据集合的基础上进行训练 - Combine data files.
合并数据文件
下面所列的步骤其实稍有不同。
如果有多张图片[可选]
如果是其他图片格式,将其转为tif格式。附上一个在线地址
使用之前安装jTessBoxEditor工具将多张图片合并为一张(菜单栏 Tools → Merge TIFF)。并按照格式 [lang].[fontname].exp[num] 重命名合并后的文件,这里我命名为 chi.fangzheng.exp0.tif。
为了方便下文中输入路径,在本文中将改好的tif图拷贝至tesseract安装之后的目录下。
步骤二:生成box文件
贴一张官网命令:
官方命令
输入路径和输出路径文件名(除了后缀)应该保持一致。
因为我们是要训练中文所以还需要加上-l chi_sim(l代表language chi_sim是放在tessdata目录下中文简体字体名的前缀),实际命令如下所示tesseract.exe chi.fangzheng.exp0.tif chi.fangzheng.exp0 -l chi_sim batch.nochop makebox
步骤二:校正box文件
打开之前安装的jTessBoxEditor,
点击open,然后找到tif图片文件
通过这部分区域的按钮对识别结果进行校正
校正完之后点击保存
步骤三:生成unicharset文件
生成tr文件
使用刚才修改正确后的 box 文件,对 Tesseract 进行训练,生成 .tr 文件:
//tesseract.exe [tif图片文件名] [生成的tr文件名] nobatch box.train tesseract.exe chi.fangzheng.exp0.tif chi.fangzheng.exp0 nobatch box.train
生成Character集合
//unicharset_extractor.exe [box文件名] unicharset_extractor.exe chi.fangzheng.exp0.box
如果有多个图片的话,则需要合并生成1个Character集合,命令如下
//unicharset_extractor.exe [1个box文件名] [1个box文件名] ..... unicharset_extractor.exe chi.fangzheng.exp0.box chi.fangzheng.exp1.box
创建字体特征文件
定义字体特征文件,Tesseract-OCR 3.01 以上的版本在训练之前需要创建一个名称为 font_properties 的字体特征文件。font_properties 不含有 BOM 头,文件内容格式如下:
<fontname> <italic> <bold> <fixed> <serif> <fraktur> //其中 fontname 为字体名称,必须与 [lang].[fontname].exp[num].box 中的名称保持一致。<italic> 、<bold> 、<fixed> 、<serif>、<fraktur> 的取值为 1 或 0,表示字体是否具有这些属性。
//本次示例 fangzheng 0 0 0 0 0
步骤五:生成字典数据
如果是单个依次输入下面两条命令,多个文件则输入多个tr
mftraining.exe -F font_properties -U unicharset -O chi.unicharset chi.fangzheng.exp0.tr //mftraining.exe -F font_properties -U unicharset -O chi.unicharset [第一个tr] [第二个]... cntraining.exe chi.fangzheng.exp0.tr //cntraining.exe [第一个tr] [第二个]...
接下来手工修改 Clustering 过程生成的 4 个文件(inttemp、pffmtable、normproto、shapetable)的名称为 [lang].xxx。例如我这里改为 chi.inttemp、chi.pffmtable、chi.normproto、chi.shapetable。
步骤七:合并数据文件
生成语言文件:
combine_tessdata chi.
需确认打印结果中的 Offset 1、3、4、5、13 这些项不是 -1。这样,一个新的语言文件就生成了。
chi.traineddata 便是最终生成的语言文件,将生成的 chi.traineddata 文件拷贝到 tessdata 目录下,就可以用它来进行字符识别了。
我们可以用刚刚的tif文件来测试一下识别能力:
//tesseract [图片文件名] [需要输出的文本文档的文件名] -l [识别的语言] tesseract chi.fangzheng.exp0.tif out -l chi
作者:aliyu
链接:https://www.jianshu.com/p/31afd7fc5813
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。 -
MATLAB写字板手写汉字识别系统[鼠标手写,GUI].zip
2020-03-23 10:50:44基于MATLAB bp神经网络的手写汉字识别系统。可以利用鼠标手写中文汉字进行训练,测试,可以识别任何字体,只需要到GUI界面面板更换即可。在GUI界面就可以随写随训练中文,不需要到后台手动更换文字训练,方便快捷. -
CSS教程:网页英文字体和中文字体应用
2020-12-04 12:42:20在西方國家的字母體系,分成兩大字族:serif 及 sans serif。其中 typewriter 打字機字體,雖然也是 sans serif,但由於他是等距字,所以另獨立出一個 Typewriter 字族出來。 serif 的意思是,在字的筆畫開始及結束... -
Mini Ocr 汉字显示字体识别软件 V1.0
2010-09-03 11:33:17Mini Ocr 汉字显示字体识别软件 V1.0Mini Ocr 汉字显示字体识别软件 V1.0 -
Mini Ocr 汉字显示字体识别软件
2014-12-11 15:21:55的最小号的汉字字体了(高度是12个像素点),如果再小,字体就很难看了。然后,按拷 屏键PrtSc,把屏幕的图像拷贝、粘贴到画图软件中,修剪尺寸后,保存为bmp的格式。 然后,我找了两个国内最著名的Ocr软件进行测试... -
python的文字识别库easyocr所需中文识别的模型.zip
2021-12-08 12:28:38python的文字识别库easyocr所需中文识别的模型 -
KNN实现手写字体的识别
2021-11-23 11:46:26KNN实现手写字体的识别KNN算法介绍:数据的导入:导入包导入数据集数据集介绍:数据集的分割:定义KNN函数:评估准确率:完整代码: KNN算法介绍: 点击这里查看KNN算法代码及其介绍 数据的导入: 导入包 from ... -
Tesseract训练中文字体识别
2017-12-27 09:18:00注:目前仅说明windows下的情况 前言 网上已经有大量的tesseract...接下来尽可能详细的介绍自己tesseract训练中文识别的经验。 本文中使用的tesseract版本为3.05; 为什么用3.05呢? 从官方文档上看4.0... -
MATLAB BP神经网络汉字识别(写字板功能).zip
2021-08-25 15:33:57该课题为基于bp神经网络的中文汉字识别系统,可以用手写板写,现场识别。有界面GUI操作。另外可识别汉字,字母,数字等均可。 -
OCR字符识别,支持手写字体识别,中英文识别
2022-02-08 21:41:21OCR字符识别,支持手写字体识别,中英文识别,基于深度学习,轻量级网络,检测进度高,支持python开发 编号:4199652712767280盐市口会玩的川乌 -
基于卷积神经网络的多字体字符识别 (2011年)
2021-05-07 22:51:16采用随机对角Levenberg-Marquardt算法有效改进了Simard卷积网络的收敛速度,分析了样本类别数、全局学习率对网络收敛速度的影响,并成功地把Simard网络推广到对百度验证码等多字体小字符集的识别,达到98.4%的单字符... -
tensorflow实现手写字体的识别
2017-12-14 21:33:25tensorflow实现手写字体的识别tensorflow实现手写字体的识别 -
MATLAB BP神经网络的汉字识别(GUI,字体可更换).zip
2021-09-29 21:55:13基于matlab神经网络的汉字,字符,数字,字母识别,bp神经网络。界面,字体可以自己随意更换。