最近用OCR识别身份证,用的tesseract引擎。但是google自带的中文库是在太慢了,尤其是对于性别、民族这样结果可以穷举的特征信息而言,完全可以自己训练字库。自己训练字库不仅可以提高识别速度,而且可以提高识别精度!

在训练过程中,常见的error有以下几种:

1)index >= 0 && index<size_used_:Error:Assert failed in genericvector.h, line 512

原因:
检查一下训练后type 13的数值。如果为0,说明shapetable没有配置进去。
 
2)empty page
原因:版面分析没有做好,没有找到字符。最好手动设置以下版面格式。如:

-psm 7 单行模式
-psm 10 单字符模式
 
3)用的时候找不到语言包

原因:自己训练完的语言数据要放在../tessdata中,因为tesseract源码里把这个文件路径写进环境变量里了!
 
4)fail to load font_properties
原因:有些教程没有加.txt。需要写成font_properties.txt这样的格式。
 
------------------------------训练-------------------------------------------------------------------
1、图片命名规则:lang.fond.exp0.jpg
 
2、生成box文件:
tesseract chi.test.exp0.jpg chi.test.exp0 batch.nochop makebox
 
3、用jTessBoxEditor校正文字
 
4、生成tr文件:
tesseract chi.test.exp0.jpg chi.test.exp0 box.train
 
5、生成unicharset文件:
unicharset_extractor chi.test.exp0.box
 
6、新建字体特征文件
font_properties不含有BOM头,文件内容格式如<fontname> <italic> <bold> <fixed> <serif> <fraktur>  
font_properties 文件内容为test 0 0 0 0 0
 
7、生成shapetable文件
shapeclustering -F font_properties -U unicharset chi.test.exp0.tr
 
8、生成chi.unicharset inttemp文件
mftraining -F font_properties -U unicharset -O chi.unicharset chi.test.exp0.tr
 
9、生成normproto文件
cntraining chi.test.exp0.tr
 
10、合并文件
在inttemp normproto pffmtable shapetable加上前缀chi.
运行combine_tessdata chi.

tesserat训练中文备忘录的更多相关文章

  1. 使用 DL4J 训练中文词向量

    目录 使用 DL4J 训练中文词向量 1 预处理 2 训练 3 调用 附录 - maven 依赖 使用 DL4J 训练中文词向量 1 预处理 对中文语料的预处理,主要包括:分词.去停用词以及一些根据实 ...

  2. Tesseract训练中文字体识别

    注:目前仅说明windows下的情况 前言 网上已经有大量的tesseract的识别教程,但是主要有两个缺点: 大多数比较老,有部分内容已经不适用. 大部分只是就英文的训练进行探索,很少针对中文的训练 ...

  3. 使用word2vec训练中文词向量

    https://www.jianshu.com/p/87798bccee48 一.文本处理流程 通常我们文本处理流程如下: 1 对文本数据进行预处理:数据预处理,包括简繁体转换,去除xml符号,将单词 ...

  4. word2vec训练中文模型

    --  这篇文章是一个学习.分析的博客 --- 1.准备数据与预处理 首先需要一份比较大的中文语料数据,可以考虑中文的维基百科(也可以试试搜狗的新闻语料库).中文维基百科的打包文件地址为 https: ...

  5. Windows下基于python3使用word2vec训练中文维基百科语料(二)

    在上一篇对中文维基百科语料处理将其转换成.txt的文本文档的基础上,我们要将为文本转换成向量,首先都要对文本进行预处理 步骤四:由于得到的中文维基百科中有许多繁体字,所以我们现在就是将繁体字转换成简体 ...

  6. Windows下基于python3使用word2vec训练中文维基百科语料(一)

    在进行自然语言处理之前,首先需要一个语料,这里选择维基百科中文语料,由于维基百科是 .xml.bz2文件,所以要将其转换成.txt文件,下面就是相关步骤: 步骤一:下载维基百科中文语料 https:/ ...

  7. 使用Keras训练神经网络备忘录

    小书匠深度学习 文章太长,放个目录: 1.优化函数的选择 2.损失函数的选择 2.2常用的损失函数 2.2自定义函数 2.1实践 2.2将损失函数自定义为网络层 3.模型的保存 3.1同时保持结构和权 ...

  8. Windows下基于python3使用word2vec训练中文维基百科语料(三)

    对前两篇获取到的词向量模型进行使用: 代码如下: import gensim model = gensim.models.Word2Vec.load('wiki.zh.text.model') fla ...

  9. 文本分布式表示(二):用tensorflow和word2vec训练词向量

    看了几天word2vec的理论,终于是懂了一些.理论部分我推荐以下几篇教程,有博客也有视频: 1.<word2vec中的数学原理>:http://www.cnblogs.com/pegho ...

随机推荐

  1. IT连创业系列:App产品上线后,运营怎么搞?(上)

    又是一阵一阵的时光过去了,今夜,码的不是代码,是文字,继续和大伙分享创业的这一路历程. 话说,在突破技术的领域,IT连和IT恋上线后,慢慢走上运营这条路时,发现自己经常容易迷失. 毕竟,做为一名技术型 ...

  2. 微信公众号 Cookie

    微信公众号开发中,使用cookie和session来存储用户状态. 但总会出现一些空的连接,cookie为[],访问路径为"\" 拦截请求输出为header为: ;Connecti ...

  3. Java数据结构和算法(四)——栈

    前面我们讲解了数组,数组更多的是用来进行数据的存储,纯粹用来存储数据的数据结构,我们期望的是插入.删除和查找性能都比较好.对于无序数组,插入快,但是删除和查找都很慢,为了解决这些问题,后面我们会讲解比 ...

  4. Mysql--数据的操作

    1.插入数据 1.1 插入完整数据记录 语法1: 例子: 语法2: 例子: 1.2 插入数据记录一部分 语法: 例子: 1.3 插入多条数据记录 1.插入多条完整的数据 语法: 例子:   插入多条部 ...

  5. Servlet交互【重定向 与 请求分派】详解

    Servlet交互 在serlvet中,需要调用另外一个资源来对浏览器的请求进行响应,两种方式实现: 调用HttpServletResponse.sendRedirect 方法实现 重定向 调用Req ...

  6. 一些公司对quantitative的要求

    来自日月光华BBS: Company: UBS AG Job Title: Quantitative Developers / Analysts (Entry Level, Multiple Posi ...

  7. 转:JAVA里面的int类型 和Integer类型,有什么不一样

    JAVA里面的int类型 和Integer类型,有什么不一样 原文链接:http://blog.csdn.net/wuxinliulei/article/details/11099565 java.l ...

  8. TCP/IP协议栈 --- IP路由

    IP路由:当一个IP包在主机发送出去或者在网络当中时,是怎么选择路径到达目的主机的呢? 一般情况下, 如果说源主机和目的主机在同一个网络中的话,那个数据报可以直接到达目的主机而不经过路由器,下面可以试 ...

  9. C# 在RichTextBox中滚动鼠标时滚动的是父窗口的滚动条

    1. RichTextBox u2 = new RichTextBox(); 2. 先记住日RichTextBox没有显示滚动条时的总宽度和显示宽度 u2.Width - u2.ClientSize. ...

  10. springBoot数据库连接池常用配置

    在配置文件中添加配置如下(我使用的是多数据源): spring.datasource.primary.url=jdbc\:mysql\://localhost\:3306/test?useUnicod ...