Tesseract是什么

OCR即光学字符识别,是指通过电子设备扫描纸上的打印的字符,然后翻译成计算机文字的过程。也就是说通过输入图片,经过识别引擎,去识别图片上的文字。Tesseract是一种适用于各种操作系统的光学字符识别引擎,最早是hp公司的软件,2005年开源,2006年后由google一直赞助Tesseract开发和维护。2006年,Tesseract被认为是当时最准确的开源OCR引擎之一 。

验证码识别类型

这里讨论一般的验证码识别,即英文、数字、或者英文和数字的混合的验证码,不包括滑动和文字点击这些类型。

Tesseract的安装

Tesseract的github地址:https://github.com/tesseract-ocr/tesseract
Tesseract的安装github上有说明,Tesseract现在有3.05的版本,也有4.0beta版,我自己使用之后感觉2者差异不大,替换之后识别率也没有明显提升,所以只要使用其中一个就好。Tesseract支持windows和linux,windows下装完之后有个Tesseract-ocr的目录,目录下有个tesseract.exe的程序,可以通过调用这个exe的命令行去进行ocr的识别。

Tesseract的使用

简单的命令行使用如下:

tesseract imagename outputbase [-l lang] [--oem ocrenginemode] [--psm pagesegmode] [configfiles...]
  • 参数说明:

imagename  图片文件
outputbase   输出文件,也可以选择命令行输出stdout

  • 可选参数

-l lang                      识别库,默认是eng,也可以是自己训练出来的识别库
-psm pagesegmode     识别模式

pagesegmode    具体含义见下图

 = Orientation and script detection (OSD) only.
= Automatic page segmentation with OSD.
= Automatic page segmentation, but no OSD, or OCR
= Fully automatic page segmentation, but no OSD. (Default)
= Assume a single column of text of variable sizes.
= Assume a single uniform block of vertically aligned text.
= Assume a single uniform block of text.
= Treat the image as a single text line.
= Treat the image as a single word.
= Treat the image as a single word in a circle.
= Treat the image as a single character.

Tesseract训练

可以通过jTessBoxEditor去训练Tesseract,而且训练样本越多,识别准确度越好,实际使用中我训练了500张图片,对识别率的提升还是有的,但是还是没能达到自己想要的预期识别率,估计是样本还不够多吧。另外对样本一个个修正也是个繁琐的事情,尤其是验证码,一般都各种变形以防止程序轻易识别,不过总体来说只要样本够多,想要达到预期的识别率还是可以的。关于jTessBoxEditor训练的详细步骤,有兴趣的可以自己去搜索Tesseract相关资料了解。

验证码识别 Tesseract的简单使用和总结的更多相关文章

  1. python-i春秋验证码识别

    i春秋作家:hlpureboy python+机器学习+验证码识别+源码 简单介绍 最近在写某网站的自动注册,在注册的过程中遇到一些问题,如js的执行.验证码的识别等等,今天给大家如何用python通 ...

  2. Python 验证码识别(别干坏事哦...)

    关于python验证码识别库,网上主要介绍的为pytesser及pytesseract,其实pytesser的安装有一点点麻烦,所以这里我不考虑,直接使用后一种库. python验证码识别库安装 要安 ...

  3. C#识别验证码技术-Tesseract

    相信大家在开发一些程序会有识别图片上文字(即所谓的OCR)的需求,比如识别车牌.识别图片格式的商品价格.识别图片格式的邮箱地址等等,当然需求最多的还是识别验证码.如果要完成这些OCR的工作,需要你掌握 ...

  4. windows下简单验证码识别——完美验证码识别系统

    此文已由作者徐迪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 讲到验证码识别,大家第一个可能想到tesseract.诚然,对于OCR而言,tesseract确实很强大,自带 ...

  5. 简单验证码识别(matlab)

    简单验证码识别(matlab) 验证码识别, matlab 昨天晚上一个朋友给我发了一些验证码的图片,希望能有一个自动识别的程序. 1474529971027.jpg 我看了看这些样本,发现都是很规则 ...

  6. 开发工具类API调用的代码示例合集:六位图片验证码生成、四位图片验证码生成、简单验证码识别等

    以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 六位图片验证码生成:包括纯数字.小写字母.大写字母.大小写混合.数 ...

  7. 基于TensorFlow的简单验证码识别

    TensorFlow 可以用来实现验证码识别的过程,这里识别的验证码是图形验证码,首先用标注好的数据来训练一个模型,然后再用模型来实现这个验证码的识别. 生成验证码 首先生成验证码,这里使用 Pyth ...

  8. 基于SVM的python简单实现验证码识别

    验证码识别是一个适合入门机器学习的项目,之前用knn 做过一个很简单的,这次用svm来实现.svm直接用了开源的库libsvm.验证码选的比较简单,代码也写得略乱,大家看看就好. 1. 爬取验证码图片 ...

  9. Mac python Tesseract 验证码识别

    Tesseract 简介 Tesseract(/'tesərækt/) 这个词的意思是"超立方体",指的是几何学里的四维标准方体,又称"正八胞体".不过这里要讲 ...

随机推荐

  1. 编写 Shell 脚本的最佳实践

    转自:http://kb.cnblogs.com/page/574767/ 前言 由于工作需要,最近重新开始拾掇shell脚本.虽然绝大部分命令自己平时也经常使用,但是在写成脚本的时候总觉得写的很难看 ...

  2. js中writeln()方法

    writeln( ) 方法与 write( ) 方法几乎一样,差别仅在于是前者将在所提供的任何字符串后添加一个换行符.在 HTML 中,这通常只会在后面产生一个空格:不过如果使用了 <PRE&g ...

  3. Git 基础教程 之 --no-ff模式合并

    ①  创建并切换dev分支 ②  修改readme.txt,并add,commit ③  切回master ④  合并 git merge --no-ff -m “merge with no-ff”d ...

  4. Unity中使用摇杆控制

    Unity中使用摇杆控制 本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/50 ...

  5. 2018ICPC南京

    可能上一次秦皇岛拿了银,有了偶像包袱? 打的时候感觉状态不是很好. 第一题,让你每次将连续一段区间的石头都拿掉.. 然后让你做个博弈. 橘子一顿分析,认为k+1的倍数都是输. 这时,我们以及默认i+1 ...

  6. Web Service 附件技术的发展及演变

    Web Service 通常将业务数据封装在 SOAP 主体或者 SOAP 消息附件中进行传输,这些附件往往采用 Base64 编码二进制方式进行封装,这将大大增加待传输的数据量,消耗比较长的编码时间 ...

  7. MySQL 索引分析

    MySQL复合唯一索引分析 关于复合唯一索引(unique key 或 unique index),网上搜索不少人说:"这种索引起到的关键作用是约束,查询时性能上没有得到提高或者查询时根本没 ...

  8. 0804SHOW ENGINE INNODB STATUS

    转自http://blog.csdn.net/github_26672553/article/details/52931263 innodb存储引擎在show engine innodb status ...

  9. SSL延迟

    原文链接 据说,Netscape公司当年设计SSL协议的时候,有人提过,将互联网所有链接都变成HTTPs开头的加密链接. 这个建议没有得到采纳,原因之一是HTTPs链接比不加密的HTTP链接慢很多.( ...

  10. mongodb--win10安装

    安装完成后再将安装后的bin目录加入PATH路径