ocr基础入门到毕业

ocr基础入门到毕业

1.背景

最近为了实现读取图片文字,在网上也是各种查询资料,下载软件,遇到各种坑,总结一下

相关资源下载:
https://download.csdn.net/download/u011376439/11460005

2.安装

tesseract下载地址:https://digi.bib.uni-mannheim.de/tesseract/

注意: 安装版本推荐3.05。
路过的坑1:tesseract-ocr-setup-3.02.02:在文字库合并的时候,会导致合并后字库识别出来都是空的。

1.双击运行“tesseract-ocr-setup-3.02.02.exe”tesseract ocr 中文版开始安装软件,点击“是”。

ocr基础入门到毕业_第1张图片

2.根据下面图片上的教程,连续点击“next”。

ocr基础入门到毕业_第2张图片
ocr基础入门到毕业_第3张图片
ocr基础入门到毕业_第4张图片
ocr基础入门到毕业_第5张图片
ocr基础入门到毕业_第6张图片
ocr基础入门到毕业_第7张图片

3.目录结构:

ocr基础入门到毕业_第8张图片

4.配置环境变量:

第一步:在环境变量界面的系统变量中找到Path,点击编辑,新建一个D:\Tesseract\tesseract-ocr–4.00.00dev\Tesseract-OCR(你的安装目录),然后确定。
第二步:在系统变量下面新建一个变量,然后确定。
变量名:TESSDATA_PREFIX
变量值:D:\Tesseract\tesseract-ocr–4.00.00dev\Tesseract-OCR\tessdata(安装目录下的tessdata文件夹)

ocr基础入门到毕业_第9张图片
ocr基础入门到毕业_第10张图片

5.检验环境变量是否配置成功:打开cmd命令行,在任意路径,输入“tesseract”,出现下面信息则表示配置成功。

ocr基础入门到毕业_第11张图片

3.tesseract-OCR初认识

-l lang
使用的语言。如果没有指定,则采用英文。可以指定多种语言,由加号字符分隔。Tesseract使用3个字符的ISO 639-2语言代码。(请参阅语言)

–psm N将Tesseract设置为只运行布局分析的一个子集并假定某种形式的图像。N的选项是:

0 =只有方向和脚本检测(OSD)。
1 =使用OSD自动分页。
2 =自动分页,但没有OSD或OCR。
3 =全自动页面分割,但没有OSD。(默认)
4 =假设一列可变大小的文本。
5 =假设一个统一的垂直排列文本块。
6 =假设一个统一的文本块。
7 =将图像作为单个文本行处理。
8 =将图像视为一个单词。
9 =将图像视为一个圆圈中的单个单词。
10 =将图像视为单个字符。

3.1 开始操作

识别图片:fw.png
在这里插入图片描述

tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile…]

tesseract 图片名 输出文件名 -l 字库文件 -psm pagesegmode 配置文件

tesseract .\fw.png result -l chi_sim

运行成功:
ocr基础入门到毕业_第12张图片
打开result.txt 结果为:寮叉果命中 +10%
显然只是识别一部分而已。。。。
顺便把-psm 0-10都试了一遍,也是没有一个正确的结果。。。

3.2 开始训练自己的字库

直接看这文章就可以实现

Tesseract-OCR-04-使用 jTessBoxEditor 提高文字识别准确率

4.tesseract-OCR字库合并

训练完一个box,后续又发现新的需要训练,要是在把原来的图片在弄一遍,那就要崩溃了,幸好tesseract-OCR提供字库合并(别安装3.02的版本,会合并不了)
1.准备
先准备以下的文件,要合并的.box和.tif文件,命名规则
chi.font.exp[x].box 和 chi.font.exp[x].tif
[x]可以按序号来,方便以后合并字库
.box和.tif文件的由来,请看上一个步骤
ocr基础入门到毕业_第13张图片
这里的font文件内容为

fout 0 0 0 0 0

这里的box.bat内容为

tesseract chi.font.exp0.tif chi.font.exp0 nobatch box.train  
tesseract chi.font.exp1.tif chi.font.exp1 nobatch box.train

unicharset_extractor chi.font.exp0.box chi.font.exp1.box

mftraining -F font -U unicharset -O unicharset chi.font.exp0.tr chi.font.exp1.tr 
cntraining chi.font.exp0.tr chi.font.exp1.tr 


echo Rename Files..
rename normproto mlzh.normproto
rename inttemp mlzh.inttemp
rename pffmtable mlzh.pffmtable
rename shapetable mlzh.shapetable
rename unicharset mlzh.unicharset

combine_tessdata mlzh.    

pause

上面都准备好了,就可以运行box.bat文件了,结果如下
ocr基础入门到毕业_第14张图片
ocr基础入门到毕业_第15张图片
生成mlzh.traineddata 字库,就是合并后的字库了,复制到Tesseract-OCR\tessdata ,就可以试试看,新字库是否好用。。。

tesseract .\fw.png result -l chi_sim+mlzh

结果如下,合并成功
ocr基础入门到毕业_第16张图片

你可能感兴趣的:(ocr)