#Tesseract OCR使用介绍

##目录
[TOC]

##下载地址及介绍

##安装 Tesseract

1
2
3
4
5
6
7
8
9
10
11
1、安装 tesseract和语言包
sudo port install tesseract
sudo port install tesseract-<langcode> 2、homebrew 安装
brew install tesseract
brew install --with-training-tools tesseract 3、重新安装
brew uninstall tesseract
brew install --with-training-tools tesseract
  • Homebrew 是一个包管理器,如果没装的话,在终端执行
1
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

##使用 Tesseract

  • 使用命令行进行图像识别
  • imagename 就是要识别的图片文件的名称,outputbase 就是识别结果输出文件的名称。
  • lang 就是要识别的语言代码,例如英语为 eng、简体中文为 chi_sim 等等。可以同时识别多种语言,使用 “+” 相连,例如 eng+chi_sim。缺省时识别英语。

1、格式信息如下

1
tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]

2、示例: 识别image图片并将结果保存在out.txt文件中

1
2
tesseract image.png out -l chi_sim
tesseract image.png out -l chi_sim -psm 10

3、pagesegmode 为识别的具体模式,具体包含以下模式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
•	0 = Orientation and script detection (OSD) only.
• 1 = Automatic page segmentation with OSD.
• 2 = Automatic page segmentation, but no OSD, or OCR
• 3 = Fully automatic page segmentation, but no OSD. (Default)
• 4 = Assume a single column of text of variable sizes.
• 5 = Assume a single uniform block of vertically aligned text.
• 6 = Assume a single uniform block of text.
• 7 = Treat the image as a single text line.
• 8 = Treat the image as a single word.
• 9 = Treat the image as a single word in a circle.
• 10 = Treat the image as a single character.
• 11 = Sparse text. Find as much text as possible in no particular order.
• 12 = Sparse text with OSD.
• 13 = Raw line. Treat the image as a single text line, bypassing hacks that are Tesseract-specific.

##训练样本

1
2
3
4
5
6
> 1、收集文本信息的图片
> 2、制作的图片转为tiff格式
> 3、jTessBoxEditor进行tiff格式图片合成 <Tool->Merge TIFF> 合成后的图片取名规范 [lang].[fontn 大专栏  Tesseract OCR使用介绍ame].exp[num].tif
[lang]是语言,[fontname]是字体,[num]是标号

###1、Make Box Files

  • 使用 Tesseract 识别,生成 box 文件:
  • 确保 tif 和 box 文件同名且位于同一目录下,用 jTessBoxEditor 打开 tif 文件),或者直接用文本编辑器编辑。
1
tesseract hz.font.exp0.tif hz.font.exp0 -l chi_sim -psm 10 batch.nochop makebox

###2、Run Tesseract for Training

  • 使用修改正确后的 box 文件,对 Tesseract 进行训练,生成 .tr 文件:
1
tesseract hz.font.exp0.tif hz.font.exp0 -psm 10 nobatch box.train

###3、Compute the Character Set

  • 生成字符集的文本
1
2
3
4
unicharset_extractor hz.font.exp0.box hz.font.exp1.box

After 3.03
training/set_unicharset_properties -U input_unicharset -O output_unicharset --script_dir=training/langdata

正确的格式应该如下:

1
2
3
4
5
6
7
8
110
NULL 0 NULL 0
N 5 59,68,216,255,87,236,0,27,104,227 Latin 11 0 1 N
Y 5 59,68,216,255,91,205,0,47,91,223 Latin 33 0 2 Y
1 8 59,69,203,255,45,128,0,66,74,173 Common 3 2 3 1
9 8 18,66,203,255,89,156,0,39,104,173 Common 4 2 4 9
a 3 58,65,186,198,85,164,0,26,97,185 Latin 56 0 5 a
...

###4、font_properties (new in 3.01)

  • 定义字体特征文件,Tesseract-OCR 3.01 以上的版本在训练之前需要创建一个名称为 font_properties 的字体特征文件。font_properties 不含有 BOM 头,文件内容格式如下:
1
<fontname> <italic> <bold> <fixed> <serif> <fraktur>
  • 其中 fontname 为字体名称,必须与 [lang].[fontname].exp[num].box 中的名称保持一致。 、 、 、、 的取值为 1 或 0,表示字体是否具有这些属性。
  • 这里就是普通字体,不倾斜不加粗,所以新建一个名为 font_properties 的文件,内容为: font 0 0 0 0 0

###5、Clustering

  • 修改 Clustering 过程生成的 4 个文件(inttemp、pffmtable、normproto、shapetable)
1
2
3
4
5
6
7
8
9
10
11
12
shapeclustering -F font_properties -U unicharset hz.font.exp0.tr hz.font.exp1.tr ...

mftraining -F font_properties -U unicharset -O hz.unicharset hz.font.exp0.tr hz.font.exp1.tr ...

cntraining hz.font.exp0.tr hz.font.exp1.tr ...
``` * 生成后的文件需要添加前缀, 如这里改为 hz.inttemp、hz.pffmtable、hz.normproto、hz.shapetable。 ###6、Putting it all together * 生成最后的训练文件

combine_tessdata hz.

1
2
3
4
###7、use example

* 使用训练的文件进行识别

tesseract test.png out -l hz

1
2
##脚本运行

#!/bin/sh
read -p “输入你语言:” lang
echo ${lang}
read -p “输入你的字体:” font
echo ${font}
echo “完整文件名为:”
echo ${lang}.${font}.exp0.tif
echo “开始。。。”
echo ${font} 0 0 0 0 0 >font_properties

#tesseract ${lang}.${font}.exp0.tif $(lang).$(font).exp0 -l chi_sim -psm 10 batch.nochop makebox

#read -p “继续生产tr文件?”
tesseract ${lang}.${font}.exp0.tif ${lang}.${font}.exp0 -psm 10 nobatch box.train
unicharset_extractor ${lang}.${font}.exp0.box
shapeclustering -F font_properties -U unicharset ${lang}.${font}.exp0.tr
mftraining -F font_properties -U unicharset -O unicharset ${lang}.${font}.exp0.tr
cntraining ${lang}.${font}.exp0.tr
echo “开始重命名文件”
mv inttemp ${font}.inttemp
mv normproto ${font}.normproto
mv pffmtable ${font}.pffmtable
mv shapetable ${font}.shapetable
mv unicharset ${font}.unicharset
echo “生成最终文件”
combine_tessdata ${font}.
echo “完成”
`

Tesseract OCR使用介绍的更多相关文章

  1. Python下Tesseract Ocr引擎及安装介绍

    1.Tesseract介绍 tesseract 是一个google支持的开源ocr项目,其项目地址:https://github.com/tesseract-ocr/tesseract,目前最新的源码 ...

  2. Tesseract——OCR图像识别 入门篇

    Tesseract——OCR图像识别 入门篇 最近给了我一个任务,让我研究图像识别,从我们项目的screenshot中识别文字信息,so我开始了学习,与大家分享下. 我看到目前OCR技术有很多,最主要 ...

  3. Tesseract Ocr引擎

    Tesseract Ocr引擎 1.Tesseract介绍 tesseract 是一个google支持的开源ocr项目,其项目地址:https://github.com/tesseract-ocr/t ...

  4. tesseract ocr文字识别Android实例程序和训练工具全部源代码

    tesseract ocr是一个开源的文字识别引擎,Android系统中也可以使用.可以识别50多种语言,通过自己训练识别库的方式,可以大大提高识别的准确率. 为了节省大家的学习时间,现将自己近期的学 ...

  5. 开源图片文字识别引擎——Tesseract OCR

    Tessseract为一款开源.免费的OCR引擎,能够支持中文十分难得.虽然其识别效果不是很理想,但是对于要求不高的中小型项目来说,已经足够用了. 文字识别可应用于许多领域,如阅读.翻译.文献资料的检 ...

  6. Tesseract OCR简单实用介绍

    做字符识别,不能不了解google的Tesseract-OCR,但是如何在自己的工程中使用其API倒是语焉不详,官网上倒是很详尽地也很啰嗦地介绍如何重新编译生成适合自己平台的lib和dll,经过近些天 ...

  7. selenium使用笔记(二)——Tesseract OCR

    在自动化测试过程中我们经常会遇到需要输入验证码的情况,而现在一般以图片验证码居多.通常我们处理这种情况应该用最简单的方式,让开发给个万能验证码或者直接将验证码这个环节跳过.之前在技术交流群里也跟朋友讨 ...

  8. Tesseract–OCR 库原理探索

    一,简介: Tesseract is probably the most accurate open source OCR engine available. Combined with the Le ...

  9. alfresco install in linux, and integrated with tesseract ocr

    本文描述在Linux系统上安装Alfresco的步骤: 1. 下载安装文件:alfresco-community-5.0.d-installer-linux-x64.bin 2. 增加执行权限并执行: ...

随机推荐

  1. 微信小程序java8 java7 java6 encryptedData 解密 异常处理

    使用java8 java7  java6 解密微信小程序encryptedData可以回遇到一些错误 1.java.security.NoSuchAlgorithmException: Cannot ...

  2. mysql数据库5.6.45安装后的配置(离线安装包版)

    二.windows10下的配置 (1) 环境变量配置 打开控制面板=>系统和安全=>系统=>高级系统设置,选择环境变量,在系统变量中找到path,编辑该选项. 第一行是oracle数 ...

  3. 唐顿庄园S01E01观看感悟

    刚刚看了唐顿庄园的第一季第一集.看第一遍的时候,主要是看剧情,看看有没有什么吸引人的.我是一带而过的.等到看第二遍的时候,仔细观察画面,欣赏画面的美感,琢磨人物的台词对话.不断的倒退回放,越看越有滋味 ...

  4. MySQL主从及读写分离配置

    <<MySQL主从又叫做Replication.AB复制.简单讲就是A和B两台机器做主从后,在A上写数据,B也会跟着写数据,两者数据实时同步>> MySQL主从是基于binlo ...

  5. Exchang Online 保护策略

    一.恶意软件筛选器 1.配置反恶意软件策略 1.1Exchange管理中心->保护->恶意软件筛选器->双击Default->编辑默认的策略 1.2单击“设置”选项,根据需要进 ...

  6. RHEL安装rails后启动报错

    [root@redhat7 demo]# rails server/usr/local/rvm/gems/ruby-2.4.1/gems/bundler-1.16.0.pre.2/lib/bundle ...

  7. 68.26-95.44-99.74 rule|empirical rule

    6.3 Working with Normally Distributed Variables As illustrated in the previous example, the 68.26-95 ...

  8. nginx做正向代理搭建bugfree

    下载地址: Nginx下载地址:http://download.csdn.net/detail/terrly88/9099117 bugfree下载地址:http://download.csdn.ne ...

  9. CSS-----样式表案例(沃顿商学院)之高级山寨版

    HTML-CSS设计----------沃顿商学院(高级山寨版) 1.html代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Trans ...

  10. HTML颜色表

    1.配色原则 2.HTML颜色表 颜色名列表 单击一个颜色名或者16进制值,就可以查看与不同文字颜色搭配的背景颜色 3.总参考表: