精华内容
下载资源
问答
  • 一种基于小波变换的印刷体汉字字体识别研究
  • 汉字识别采用小波分析的方法,发挥了小波分析的长处,达到了很好的处理效果。
  • 注:目前仅说明windows下的情况 前言 网上已经有大量的tesseract的识别...接下来尽可能详细的介绍自己tesseract训练中文识别的经验。 本文中使用的tesseract版本为3.05; 为什么用3.05呢? 从官方文档...

    注:目前仅说明windows下的情况

    前言

    网上已经有大量的tesseract的识别教程,但是主要有两个缺点:

    • 大多数比较老,有部分内容已经不适用。
    • 大部分只是就英文的训练进行探索,很少针对中文的训练。
      接下来尽可能详细的介绍自己tesseract训练中文识别的经验。

    本文中使用的tesseract版本为3.05;
    为什么用3.05呢?
    从官方文档上看4.0版本(windows版本于2017年1月30号发布)显著的提高了识别率,同时也加大了性能的消耗。理论上我是应该用4.0。但这不是重点。重点是有windows的版本有诡异的bug! 花了好久没有解决。
    不过还好,4.0支持3.05版本的所有语法。换而言之,下面的所有内容在4.0都是可以用的。

    工具准备

    安装过程

     
    点击下一步
     
    勾选上同意,然后点击下一步
     
    点击下一步
     
    既然是要训练中文,记得勾选 additional language data
     
    找到中文简体和中文繁体,按需勾选,然后点下一步

    可以先不勾选,因为这样直接下载语言的包实在太慢。可以从网页上直接下载语言包,然后等程序安装好后,放入安装目录下tessdata目录下面

     
    目录。。毕竟是你的电脑,随便选,你开心就好,然后点下一步
     
    点击install

    安装完毕。

    字体训练

    我准备了一份含汉语7000字和大小写英文字母和数字的文档.如果你需要训练所有中文的话,请将所有docx文件内所有字改成你要训练的字体。然后转化成tif格式的图片。

    步骤(转自tesseract的github)

    1. Prepare training text.
      准备你的训练文本
    2. Render text to image + box file. (Or create hand-made box files for existing image data.)
      将文本转为image+box文件.(如果你已经有image文件的话,只需要手动生成box文件)
    3. Make unicharset file.
      生成unicharset文件
    4. Optionally make dictionary data.
      有选择性的生成字典数据
    5. Run tesseract to process image + box file to make training data set.
      运行tesseract来处理之前的image+box文件生成一个训练数据集合
    6. Run training on training data set.
      在训练数据集合的基础上进行训练
    7. 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
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    转载于:https://www.cnblogs.com/mafeng/p/8124159.html

    展开全文
  • 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都是可以用的。

    工具准备

    安装过程

    点击下一步

    勾选上同意,然后点击下一步

    点击下一步

    既然是要训练中文,记得勾选 additional language data

    找到中文简体和中文繁体,按需勾选,然后点下一步

    可以先不勾选,因为这样直接下载语言的包实在太慢。可以从网页上直接下载语言包,然后等程序安装好后,放入安装目录下tessdata目录下面

    目录。。毕竟是你的电脑,随便选,你开心就好,然后点下一步

    点击install

    安装完毕。

    字体训练

    我准备了一份含汉语7000字和大小写英文字母和数字的文档.如果你需要训练所有中文的话,请将所有docx文件内所有字改成你要训练的字体。然后转化成tif格式的图片。

    步骤(转自tesseract的github)

    1. Prepare training text.
      准备你的训练文本
    2. Render text to image + box file. (Or create hand-made box files for existing image data.)
      将文本转为image+box文件.(如果你已经有image文件的话,只需要手动生成box文件)
    3. Make unicharset file.
      生成unicharset文件
    4. Optionally make dictionary data.
      有选择性的生成字典数据
    5. Run tesseract to process image + box file to make training data set.
      运行tesseract来处理之前的image+box文件生成一个训练数据集合
    6. Run training on training data set.
      在训练数据集合的基础上进行训练
    7. 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
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

     

    展开全文
  • 如果你需要训练所有中文的话,请将所有docx文件内所有字改成你要训练的字体。然后转化成tif格式的图片。步骤(转自tesseract的github)1、Prepare training text. 准备你的训练文本2、Render text to image + box ...

    字体训练

    我准备了一份含汉语7000字和大小写英文字母和数字的文档.如果你需要训练所有中文的话,请将所有docx文件内所有字改成你要训练的字体。然后转化成tif格式的图片。先转PDF,再用工具转tif各式。

    步骤(转自tesseract的github)

    1、Prepare training text.
    准备你的训练文本

    2、Render text to image + box file. (Or create hand-made box files for existing image data.)

    将文本转为image+box文件.(如果你已经有image文件的话,只需要手动生成box文件)

    3、Make unicharset file.
    生成unicharset文件

    4、Optionally make dictionary data.
    有选择性的生成字典数据

    5、Run tesseract to process image + box file to make training data set.
    运行tesseract来处理之前的image+box文件生成一个训练数据集合

    6、Run training on training data set.
    在训练数据集合的基础上进行训练

    7、Combine data files.
    合并数据文件

    如果是其他图片格式,将其转为tif格式。附上一个在线地址
    http://cn.office-converter.com/Convert-to-TIF

    使用之前安装jTessBoxEditor工具将多张图片合并为一张(菜单栏 Tools → Merge TIFF)。并按照格式 [lang].[fontname].exp[num] 重命名合并后的文件,这里我命名为 chi.fangzheng.exp0.tif。

    PDF转jpg地址:
    http://www.pdfdo.com/pdf-to-image.aspx

    http://app.xunjiepdf.com/pdf2jpg

    jpg再转tif

    参考链接:http://www.jianshu.com/p/31afd7fc5813

    http://www.cnblogs.com/samlin/p/Tesseract-OCR.html

    批处理程序rem.bat:

    echo Run Tesseract for Training..  
    tesseract.exe num.font.exp0.tif num.font.exp0 nobatch box.train  
    
    echo Compute the Character Set..  
    unicharset_extractor.exe num.font.exp0.box  
    mftraining -F font_properties -U unicharset -O num.unicharset num.font.exp0.tr  
    
    echo Clustering..  
    cntraining.exe num.font.exp0.tr  
    
    echo Rename Files..  
    rename normproto num.normproto  
    rename inttemp num.inttemp  
    rename pffmtable num.pffmtable  
    rename shapetable num.shapetable   
    
    echo Create Tessdata..  
    combine_tessdata.exe num.  
    展开全文
  • 二、案例:中文字体识别——隶书和行楷 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)
    

    在这里插入图片描述

    展开全文
  • MiniOcr中文绿色版汉字显示字体识别软件;MiniOcr中文绿色版汉字显示字体识别软件
  • 这里可以学习DIV字体设置方法,同时如果设置常见中文汉字字体,就需要将汉字进行转化或使用英文对应汉字字体来兼容各大浏览器,这样CSS设置的字体才能兼容各地浏览器。一、全网页DIV默认字体设置div设置字体的CSS...
  • Mini Ocr 汉字显示字体识别软件
  • Mini Ocr 汉字显示字体识别软件 V1.0Mini Ocr 汉字显示字体识别软件 V1.0
  • MiniOcr中文绿色版汉字显示字体识别软件.rar PDF 扫描件 转换为WORD 识别软件 花了好大功夫才找到的这款绿色纯净版 转化软件对扫描件上的文字格式识别能力很强。可支持 .bmp .gif .jpg 等格式转换.
  • 现代办公要将纸质文档转换为电子文档的需求越来越多,目前针对这种应用场景的系统为OCR系统,也就是光学字符识别...对于汉字字体识别问题,目前主要有几种方法,但是都是基于人工特征提取的方法。以往的方法主要分...
  • 汉字识别软件的难点所在: 英文识别有一些开放源码的软件,我看过的软件,主要采取两种识别方法:基于规则 的方法,和采用神经网络方法。而这两种方法,在识别汉字时,都不宜采用。因为汉字数 目众多,最常用的...
  • 学习caffe深度学习框架时,最基本的一个应用实例是手写字体识别例程,这是caffe自带的例程,通过这个例程可以了解caffe框架使用的一个基本流程。在这个例程中,知识点比较多,在这篇文章中,我们只关系操作相关的...
  • Mini OCR是飞涛软件工作室开发的一款小型免费OCR软件,本软件小巧而功能强大,主要用于识别图像文件之中出现的汉字。不只体积小,而且在识别图片中的小型文字有特别优势,快来下载体验吧。 软件功能 1、采用复合特征...
  • 为解决因手写书法作品种类繁多而识别困难的问题, 降低人们观赏书法的门槛, 本文提出了基于深度学习的手写书法字体识别算法. 识别过程中首先使用投影法等图像处理方法对书法作品图像中的汉字进行定位和分割, 然后分别...
  • 步骤流程1、环境配置获取百度SDK2、具体实现步骤①获取access_token②手写字体识别③成果展示 1、环境配置 程序整体是由python实现的,环境所包含的第三方库有requests、json、base64、pyinstaller。没有这些库的...
  • 本人用CNN卷积神经网络编写的手写字体识别,大家可以下载下来参考下,研究生课程的作业
  • 基于卷积神经网络的手写字体识别,可较为准确识别手写汉字、数字,英文字符 具备手写板功能(Matlab 2018 开发,其余版本兼容性未知)
  • 机器学习,运用神经网络对手写字体进行识别
  • 介绍了利用神经卷积计算方法,来识别汉字字体的一种方法。 需要经过训练后再识别字体
  • 用Python写的手写字体识别系统,基于TensorFlow的框架,很适合初学者的学习使用
  • mnist手写字体识别之随机森林,包含了python代码,本科实验的作业,实现了随即森科算法的手写字体识别,含mnist数据集,报告基本要求都有
  • mnist手写字体识别之KNN,用的python代码,本科课程作业,内含MNIST手写字体数据集,含代码等等

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,923
精华内容 12,369
关键字:

中文字体识别