tesseract-ocr是一个跨平台开源的OCR软件(Optical Character Recognition,光学字符识别),它历史悠久,早期是HP实验室的项目,现托管于google code。
大部分常用的linux发行版,应该都在源里包含了此软件,所以ubuntu下只需要 sudo apt-get install tesseract-ocr tesseract-ocr-eng 就可以安装了,注意必须安装 tesseract-ocr-eng 这个是识别英文字符所必须的数据文件。而在gentoo下,也只需要 emerge app-text/tesseract 就可以了,但是也必须给这个包添加 linguas_en 这个use,才会安装所需要的数据文件。
关于数据文件,还得交代一下,其实tesseract在2.0版以后,已经有了学习能力了,如果你想提高某个字体的识别率,或者识别不在默认语言包里的UTF-8字符(比如中文)的话,可以安装这个方法来训练出自己的数据文件。
这个OCR软件能干嘛呢?典型地应用就是识别验证码,哈哈。所以以这个为例,来介绍一下使用方法,先来看看这几个验证码(可“图片另存为”,然后自行测试):
这几个都是用默认的数据文件能正确识别的例子,由于tesseract只识别tiff格式的图片文件,所以识别之前,需要将图片先转成tif格式,具体如下:
$ convert cnblogs.com.jpe ppm:- | ppm2tiff yzm.tif $ tesseract yzm.tif out Tesseract Open Source OCR Engine $ cat out.txt 1750 |
同时,也有些比较难的验证码,是程序不能正确识别的,如下几个就是例子:
虽然识别的正确性不是非常高,但是已经很不错了,哈哈。
PS: 有没有人训练个识别google验证码专用的数据文件?
shellex
很好。。。方便了这下
ggarlic
而在ubuntu下,也只需要 emerge app-text/tesseract 就可以了。。。。。。。。。。
bones7456
呃。。写错了,哈哈~~
xiooli
额,我前不久还写了个生成验证码图片的脚本呢,不过是生成数学算式的,要算出答案才算验证过关。
bones7456
能把算式识别出来的话,要答案有啥难的?
xiooli
额,我要用汉字写呢?
bones7456
要自己训练一个数据文件啊,呵呵,用你那生成验证码的程序,搞出所有汉字的图片给它认,估计马上就能学会了。
xiooli
额,这个玩意能学习就太无敌了,估计我用篆字写都能给认出来~~
shuge.lee
骨头坏,净教小孩做坏事去
OCR不是这么用的,人家是拿来做文献数字化的……
bones7456
呃。。确实,不过文献数字化不太好讨论嘛~这个方便,所以以此为例喽,哈哈~~
volans
OCR还是挺好玩儿的,破解验证码也很好玩儿,但现在的验证码难度越来越大了……
去年还玩儿过这个游戏……
_http://journeyboy.blog.sohu.com/104513800.html
推荐一个外国人收集的验证码网站:
http://caca.zoy.org/wiki/PWNtcha
abettor
邪恶啊!
我的口水都流下来了~~~
这事不能说太细!
marklemon
请问 好像没有现成的中文语言库下载哦
bones7456
没找过哦,不知道中文的识别率会怎么样。
sam
你好,我在debian 5.0下试了很奇怪,无法识别出来。
$ wget http://li2z.cn/data/yzm/cnblogs.com.jpe
$ convert cnblogs.com.jpe ppm:- | ppm2tiff yzm.tif
$ tesseract yzm.tif out
Tesseract Open Source OCR Engine
$ cat out.txt
;;:g;;gg:搂;;;gg:搂:g;;;g:搂:i;;g
我看了一下软件包的版本是:
$ ls -l /var/cache/apt/archives/tesseract-ocr*
-rw-r–r– 1 root root 837710 2008-06-13 05:32 /var/cache/apt/archives/tesseract-ocr_2.03-2_i386.deb
-rw-r–r– 1 root root 1374982 2007-11-12 13:26 /var/cache/apt/archives/tesseract-ocr-deu_2.00-1_all.deb
-rw-r–r– 1 root root 1014242 2007-11-12 13:26 /var/cache/apt/archives/tesseract-ocr-eng_2.00-1_all.deb
请问是哪儿设置有问题?
bones7456
其他的几个图片也都不能识别吗?多试几个好了。
另外,deu的是什么语言的数据包?删了好了。。。
黑传说
这个识别大文件如何?我想把大批的扫描版pdf转化为文字版。
bones7456
这就很难说了,估计一般吧~