有用过tesseract OCRocr光学字符识别别的吗?怎么识别率那么低

Perl使用Tesseract-OCR实现验证码识别教程
投稿:junjie
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了Perl使用Tesseract-OCR实现验证码识别教程,Tesseract-OCR是一个开源图形识别引擎,需要的朋友可以参考下
一、Tesseract-OCR 是什么
An OCR Engine that was developed at HP Labs between 1985 and 1995… and now at Google
基于Leptonica(/)图形处理库开的开源图形识别引擎。
支持Linux、Windows、Mac平台,
支持.NET、C++、Python、Java等开发语言:/p/tesseract-ocr/wiki/AddOns
项目地址:/p/tesseract-ocr/
二、使用方法
下载安装:https://tesseract-/files/tesseract-ocr-setup-3.02.02.exe
注意安装时的Path目录、数学符号、语言选项,按需选择。
执行:”tesseract yourpic.png res”
图片 yourpic.png 里面的内容会被识别后保存在 res.txt
为了更精确的识别可以去到项目地址上下载相应的各种语言的 language tessdata
简体中文 https://tesseract-/files/tesseract-ocr-3.02.chi_sim.tar.gz
下载解压后 chi_sim.traineddata 复制到 Tesseract-OCR\tessdata 即可
“tesseract yourpic.png eng” 使用 默认eng语言包
“tesseract yourpic.png sim -l chi_sim” 使用 chi_sim语言包
“tesseract yourpic.png tra -l chi_tra” 使用 chi_sim语言包
选择最接近真实数据的,方便以后修正
三、进阶使用 Training
为数不多的training tesseract-ocr中文文档
http://yy-programer.blogspot.tw/2012/08/training-tesseract-ocr-301.html
对于高精度需求的需要研究一下了,日常民用级别,默认识别加后期修正即可。
四、应用实例之吸附代理
针对 http://www.proxyfire.net/ 几个代理列表页的代理吸附
话不多说直接上代码,
pf.pl http://www.proxyfire.net/index.php?pageid=eliteproxylist&&&&&& elite.txt
pf.pl http://www.proxyfire.net/index.php?pageid=anonymousproxylist&& anony.txt
pf.pl http://www.proxyfire.net/index.php?pageid=transparentproxylist trans.txt
pf.pl http://www.proxyfire.net/index.php?pageid=socks4proxylist&&&&& s4.txt
pf.pl http://www.proxyfire.net/index.php?pageid=socks5proxylist&&&&& s5.txt
type *.txt & all.tmp
del *.txt /s/q
ren all.tmp all.txt
our $url&&& = $ARGV[0];
our $file&& = $ARGV[1];
&&& `wget $url -q -O ___html`;
&&& open FH, "&___html";
&&& @tmp = ;
&&& close FH;
&&& $res = join('',@tmp);
&&& undef(@tmp);
&&& `del ___html /s /q`;
@tmp = ( $res =~ /&img alt="" src="([^" border="0"&]+)&&\/td&(\d+)'http://www.proxyfire.net'.$tmp[$i], 'port'=&$tmp[$i+1]};
&&& $i = $i + 1;
for (my $i=0; $i & @ $i++) {&&&& if( length(${$pxy[$i]}{ip})&0 )
&&&&&&& `echo off & wget ${$pxy[$i]}{ip} -q -O ___png`;
&&&&&&& `tesseract ___png ___ -l chi_tra`;
&&&&&&& my $txt =&&
&&&&&&& open FH,"&___.txt";
&&&&&&& $txt = ;
&&&&&&& close FH;
&&&&&&& if ( length($txt)&11 )
&&&&&&&&&&& $txt =~ s/\s+//g;
&&&&&&&&&&& $txt =~ s/日/8/g;
&&&&&&&&&&& $txt =~ s/昍/88/g;
&&&&&&&&&&& $txt =~ s/s0/60/g;
&&&&&&&&&&& $txt =~ s/s1/61/g;
&&&&&&&&&&& $txt =~ s/s2/62/g;
&&&&&&&&&&& $txt =~ s/s3/69/g;
&&&&&&&&&&& $txt =~ s/s4/64/g;
&&&&&&&&&&& $txt =~ s/s5/65/g;
&&&&&&&&&&& $txt =~ s/s7/67/g;
&&&&&&&&&&& $txt =~ s/s8/68/g;
&&&&&&&&&&& $txt =~ s/s9/69/g;
&&&&&&&&&&& $txt =~ s/0s/06/g;
&&&&&&&&&&& $txt =~ s/1s/16/g;
&&&&&&&&&&& $txt =~ s/2s/26/g;
&&&&&&&&&&& $txt =~ s/3s/96/g;
&&&&&&&&&&& $txt =~ s/4s/46/g;
&&&&&&&&&&& $txt =~ s/5s/56/g;
&&&&&&&&&&& $txt =~ s/6s/66/g;
&&&&&&&&&&& $txt =~ s/7s/76/g;
&&&&&&&&&&& $txt =~ s/8s/86/g;
&&&&&&&&&&& $txt =~ s/9s/96/g;
&&&&&&&&&&& $txt =~ s/ss/66/g;
&&&&&&&&&&& $txt =~ s/\.s/\.6/g;
&&&&&&&&&&& ${$pxy[$i]}{ip} = $
&&&&&&&&&&& my $bak1 = $
&&&&&&&&&&& my $bak2 = $
&&&&&&&&&&& $bak1 =~ s/13/19/g;
&&&&&&&&&&& $bak1 =~ s/\.32\./\.92\./g;
&&&&&&&&&&& $bak1 =~ s/\.33\./\.99\./g;
&&&&&&&&&&& $bak2 =~ s/19/13/g;
&&&&&&&&&&& $bak2 =~ s/\.243/\.249/g;
&&&&&&&&&&& $bak2 =~ s/203\./209\./g;
&&&&&&&&&&& open FHX,"&&$file";
&&&&&&&&&&& print FHX ${$pxy[$i]}{ip}.":".${$pxy[$i]}{port}."\n";
&&&&&&&&&&& print FHX $bak1.":".${$pxy[$i]}{port}."\n";
&&&&&&&&&&& print FHX $bak2.":".${$pxy[$i]}{port}."\n";
&&&&&&&&&&& close FHX;
&&&&&&& my $txt =
`del ___* /s /q`;
undef($url);
undef($file);
undef($res);
undef(@tmp);
undef(@pxy);
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具查看: 20826|回复: 37
开源图文识别引擎 tesseract-ocr
主题帖子积分
(已包含训练语言包、测试图片,可直接测试识别效果)
关于 tesseract-ocr 研究的人比较多、网上的资料也比较多,请自行搜索了解。
Apache许可证可自由商用,aardio支持库1.5MB已包含所有组件, 用法也非常简单,下面是一个简单的例子:
&&源代码 [ aardio ]
var ocr = tesseract.ocr();
if( 0 != ocr.init(&eng&,&/&) ){ //初始化样本语言包
error(&没有找到样本 \tessdata\eng.traineddata&);
//预设字符集可提升识别率,注意要一定在加载样本以后调用此函数
ocr.setVariable(&tessedit_char_whitelist&,&&)
//识别图像
var text = ocr.processPages(&\test.jpg& )
console.log(text)
console.pause()
示例二:&&源代码 [ aardio ]
var ocr = tesseract.ocr();
if( 0 != ocr.init(&eng&,&/& ) ){ //初始化样本语言包
var prefix = win.getenv(&TESSDATA_PREFIX&);
if(!#prefix) prefix = &~\lib\tesseract\.res\&
error(&没有找到样本 & + prefix + &eng.traineddata&,2)
//预设字符集可提升识别率,注意要一定在加载样本以后调用此函数
ocr.setVariable(&tessedit_char_whitelist&,&&)
//获取图像像素数据
var pix = liblept.pixRead( ..io.fullpath(&\test.jpg&) );
ocr.setImage2( pix )
//识别图像
if( 0 != ocr.recognize() ){
console.pause(true,&识别图像出错&);
var text = ocr.getText()
console.log(&识别结果&,text )
liblept.pixDestroy({addr pix = pix})
console.pause();
主题帖子积分
一级会员, 积分 193, 距离下一级还需 7 积分
一级会员, 积分 193, 距离下一级还需 7 积分
刚好要用到,谢谢
刚好要用到,谢谢
主题帖子积分
一级会员, 积分 88, 距离下一级还需 112 积分
一级会员, 积分 88, 距离下一级还需 112 积分
老大,看到更新很兴奋啊,准备用java搞的,现在aau有了,那就不考虑java了,老大V5
老大,看到更新很兴奋啊,准备用java搞的,现在aau有了,那就不考虑java了,老大V5
主题帖子积分
二级会员, 积分 305, 距离下一级还需 195 积分
二级会员, 积分 305, 距离下一级还需 195 积分
老大又出精品了{:victory:}
老大又出精品了
主题帖子积分
四级会员, 积分 1777, 距离下一级还需 223 积分
四级会员, 积分 1777, 距离下一级还需 223 积分
真是极好的
真是极好的
主题帖子积分
一级会员, 积分 61, 距离下一级还需 139 积分
一级会员, 积分 61, 距离下一级还需 139 积分
这个非常好,必须支持一下,以前也有想过要搞,现在有现成的,收下了。
这个非常好,必须支持一下,以前也有想过要搞,现在有现成的,收下了。
主题帖子积分
二级会员, 积分 222, 距离下一级还需 278 积分
二级会员, 积分 222, 距离下一级还需 278 积分
学无止境,学习了
学无止境,学习了
主题帖子积分
叫我何细尔
三级会员, 积分 635, 距离下一级还需 365 积分
三级会员, 积分 635, 距离下一级还需 365 积分
太好了。看时间是凌晨4点更新??老大真强,不过身体要紧。
太好了。看时间是凌晨4点更新??老大真强,不过身体要紧。
主题帖子积分
四级会员, 积分 1904, 距离下一级还需 96 积分
四级会员, 积分 1904, 距离下一级还需 96 积分
赶紧下载学习!感谢分享!
赶紧下载学习!感谢分享!
每天进步一点点......
主题帖子积分
二级会员, 积分 296, 距离下一级还需 204 积分
二级会员, 积分 296, 距离下一级还需 204 积分
这个很强大,可以自己制作训练包
这个很强大,可以自己制作训练包
主题帖子积分
二级会员, 积分 222, 距离下一级还需 278 积分
二级会员, 积分 222, 距离下一级还需 278 积分
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=68165&ptid=12601][c
这个很强大,可以自己制作训练包
最重要的就是语言库的训练,如果你有研究,发上来分享一下啊。
主题帖子积分
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=68167&ptid=12601][c
最重要的就是语言库的训练,如果你有研究,发上来分享一下啊。
都这么有分享精神啊,要不你研究下发出来分享一下?!
主题帖子积分
二级会员, 积分 222, 距离下一级还需 278 积分
二级会员, 积分 222, 距离下一级还需 278 积分
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=68172&ptid=12601][c
都这么有分享精神啊,要不你研究下发出来分享一下?!
正在研究还是不会训练。
主题帖子积分
一级会员, 积分 55, 距离下一级还需 145 积分
一级会员, 积分 55, 距离下一级还需 145 积分
学习啦 {:3_48:}
主题帖子积分
二级会员, 积分 367, 距离下一级还需 133 积分
二级会员, 积分 367, 距离下一级还需 133 积分
谢谢老大 {:3_46:}{:3_46:}{:3_46:}
主题帖子积分
感谢分享!
感谢分享!
主题帖子积分
一级会员, 积分 122, 距离下一级还需 78 积分
一级会员, 积分 122, 距离下一级还需 78 积分
{:D}这个强大 可以识别汉字
这个强大 可以识别汉字
主题帖子积分
一级会员, 积分 65, 距离下一级还需 135 积分
一级会员, 积分 65, 距离下一级还需 135 积分
谢谢楼主。
谢谢楼主。
主题帖子积分
二级会员, 积分 301, 距离下一级还需 199 积分
二级会员, 积分 301, 距离下一级还需 199 积分
衷心感谢分享!
先把这个源码收藏下来,再慢慢研究消化.
衷心感谢分享!
先把这个源码收藏下来,再慢慢研究消化.
Powered by查看: 962|回复: 2
请教Tesseract-OCR技术是字符识别技术中的哪一类
请教Tesseract-OCR技术属于下面的那一种技术
统计字符识别、机构字符识别、神经网络字符识别
好像是神经网络吧 里面有神经网络训练的模块
好像是神经网络吧 里面有神经网络训练的模块
Powered by下次自动登录
现在的位置:
& 综合 & 正文
tesseract-ocr 提高验证码识别率手段之—识别码库训练方法
常用的两种ORC 验证码 识别方法及实践感言
关于ORC验证码识别可以看本博客的另一篇
本文是对tesseract-ocr 使用的进一步技术升级说明,使用默认的识别库识别率比较低怎么办?
不用着急,tesseract-ocr本身的工具中提供了使用你提供的素材进行人工修正以提高识别率的方法。下面我们就来看一下。
下载并安装版本的
如果你的训练素材是很多张非格式的图片,首先要做的事情就是将这么图片合并(个人觉得素材越多,基本每个字母和数字都覆盖了训练出来的识别率比较好)
下载这个工具:
首先进行到的转换,这个用自带的画图就可以。然后使用进行多张的。
。在所在的目录下打开一个命令行,输入
使用打开文件,需要记住的是第步生成的要和这个文件同在一个目录下。逐个校正文字,后保存。
下载工具进行每个自的纠正(注意有逐页进行纠正)
。输入命令:
补充关于命名格式解释:
Make Box Files
For the next step below, Tesseract needs a 'box' file to go with each training image. The box file is a text file that lists the characters in the training image, in order, one per line, with the coordinates of the bounding box around the image.
Tesseract 3.0 has a mode in which it will output a text file of the required format, but if the character set is different to its current training, it will naturally have the text incorrect. So the key process here is to manually edit the file to put the correct
characters in it.
Run Tesseract on each of your training images using this command line:
tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox
。输入命令:
新建文件。如果是版本,那么需要在目录下新建一个名字为的文件,并且输入文本(这里的就是的中间字段)
。输入命令:
此时,在目录下应该生成若干个文件了,把这几个文件加上前缀。然后输入命令:
必须确定的是1、3、4、5、13行的数据不是-1,那么一个新的字典就算生成了。
此时目录下“selfverify.traineddata”的文件拷贝到tesseract目录下的“tessdata”目录。
以后就可以使用该该字典来识别了,例如:
通过训练出来的新语言,识别率提高了不少。
&&&&推荐文章:
【上篇】【下篇】NET 2.0 OCR文字识别技术(Tesseract 引擎)[转] - sunjie - 博客园
posts - 126, comments - 51, trackbacks - 0, articles - 7
一.OCR简介& 参见& 大家参照,我第一次也是这么了解的,呵呵。高手见笑
&& 现在市面上好多OCR 引擎,不过大多是收费的,价格不菲呀。。不适合我们学习研究。
 而今天我们谈到的Tesseract 是开源的产品,比较适合大家的口味吧。并且Tesseract 也是目前识别率较高的OCR,并不比其他引擎
 差劲。网上介绍Tessnet2也是当时时间排名第三的识别引擎,只是后来慢慢不维护了,目前是Google在维护,大家都知道Google
&& 在搞电子图书馆,每天都有不同类目的书被扫描成电子版,而下一步工作是什么。。。大家可以联想。
Tessnet2 是用vc ++ 开发的,最中是生成Tessnet2.dll ,我们可以通过.net 来调用内部具体类库实现识别。
Tessnet2的使用:
1.将Tessnet2.dll 添加到vs bin目录,和添加.net程序集一样。&点击链接下载Tessnet2.dll
2.用Tessnet2进行识别
Bitmap image = newBitmap("eurotext.tif");//识别图像tessnet2.Tesseractocr = new tessnet2.Tesseract();//声明一个OCR类ocr.SetVariable("tessedit_char_whitelist", ""); //设置识别变量,当前只能识别数字。ocr.Init(@"c:\temp", "fra", false); //应用当前语言包。注,Tessnet2是支持多国语的。语言包下载链接:List&tessnet2.Word& result = ocr.DoOCR(image, Rectangle.Empty);//执行识别操作foreach (tessnet2.Word word in result)&//遍历识别结果。&Console.WriteLine("{0} : {1}", word.Confidence, word.Text);
&看看 使用很简单吧。给大家个实例用来测试。

我要回帖

更多关于 ocr字符识别 的文章

 

随机推荐