2017年学习笔记模块

OCR识别训练

2017-12-03  本文已影响0人  waterge

============================身份证识别===============================

OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程

机器学习训练样本,-》 。tranindata

2006年google 开源Android 中 : Tess-twoOCR 文字识别

OCR jTessBoxEditor////////////////////////////////训练分类器//////////////////////////

/step1: 搭建环境 jTessBoxEditorjTessBoxEditor,google OCRhttps://sourceforge.net/projects/vietocr/files/jTessBoxEditor/下载好的里面的E:\NDK\OCR\jTessBoxEditorFX-2.0-Beta\jTessBoxEditorFX\tesseract-ocr\tessdata\eng.traineddata 就是官方提供先训练好的分类器1.2 测试 tesseract 0.tif y -| eng.traineddata 0.tif ,源图片 y , 结果保存的txt 的文件名 -| eng.traineddata ,训练的分类器,这个是google提供出来的不能直接使用于身份证识别,不然还是有很多问题备注执行的时候还是要到tesseract 的文件夹下,不然会有一些问题如:E:\NDK\OCR\jTessBoxEditorFX-2.0-Beta\jTessBoxEditorFX\tesseract-ocr>tesseract F:\NDK2017-2\Lsn36_IDcard识别_2017-10-20\Lsn36_IDcard识别_2017-10-20\训练例子\sample\sample\sample1.tif y -| E:\NDK\OCR\jTessBoxEditorFX-2.0-Beta\jTessBoxEditorFX\tesseract-ocr\tessdata\eng.traineddataTesseract Open Source OCR Engine v4.0.0-alpha.20170804 with LeptonicaPage 1

  step2: 准备样本

  2.1 身份证号码那一截就可以,直接用画板截图然后更改文件的后缀名字为tif,得到 .tif格式图片。

   2.2 合并tif要执行一个工具文件E:\NDK\OCR\jTessBoxEditorFX-2.0-Beta\jTessBoxEditorFX java -jar jTessBoxEditorFX .jar jTessBoxEditorFX ->tools->merge tiff, 选择需要训练的tif 文件 , 然后出现save 界面,在这个 界面的命名的地方按照下面的规则命名 这个文件名必须是如下格式: [lang].[fontname].exp[num] lang:语言名(训练生成的示为语言) fontname:字体名 num:序号(无所谓) 于是可以得到一个命名为zh.song.exp0.tif 的文件

step3: 生成box 命令: tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox [lang].[fontname].exp[num] 2.2 给我们的结果, [lang].[fontname].exp[num] 名字与上面的相同,这个是保存box文件的名字(这个名字一定要和上面的相同) batch.nochop makebox

step4: 校正box 文件 ox文件记录的内容可能存在错误,比如 12345,在box中保存为1、2、34、5或者2、3、4、5或者1、a、5、4、5. 所以需要手动进行校正.jTessBoxEditor[Box Editor]点击open打开box记录的tif文件.对错误地方进行校正,注意多个tif合并而成的tif会有多个页面,完成之后Save. step5:训练 5.1 在训练的当前目录创建 font_properties 文件 文件内容为:内容:song 0 0 0 0 0

fontname:字体名

italic:斜体            0/1

bold:黑体              0/1

fixed:默认字体          0/1

serif:衬线字体          0/1

fraktur:德文黑字体      0/1

注意:5.2~ 5.6 都在step4.bat中,大家只需要修改bat 中的参数就可以了

5.2 产生字符特征文件

命令: tesseract number.song.exp0.tif number.song.exp0 box.train

number.song.exp0.tif  2.2 结果

number.song.exp0 对应的box

box.train

5.3 计算字符集

unicharset_extractor [lang].[fontname].exp[num].box

生成 unicharset 文件

命令:unicharset_extractor number.song.exp0.box

5.4 聚集字符特征

shapeclustering -F font_properties -U unicharset [lang].[fontname].exp[num].tr

[可以不运行] 生成 shapetable 文件

mftraining -F font_properties -U unicharset -O [lang].unicharset [lang].[fontname].exp[num].tr

生成 [lang].unicharset、inttemp(图形原型文件)、pffmtable(每个字符所对应的字符特征数文件)、shapetable(如果没有运行shapeclustering) 文件

命令:mftraining -F font_properties -U unicharset -O number.unicharset number.song.exp0.tr

5.5 生成字符形状正常化特征文件

cntraining [lang].[fontname].exp[num].tr

生成 normproto 文件

命令:cntraining number.song.exp0.tr

重命名shapetable, normproto, inttemp, pffmtable

[lang].shapetable

[lang].normproto

[lang].inttemp

[lang].pffmtable

名称:

number.shapetable

number.normproto

number.inttemp

number.pffmtable

5.6 生成tessdata文件

运行 combine_tessdata [lang].

得到 *.traineddata 结果

上一篇下一篇

猜你喜欢

热点阅读