验证码识别 Tesseract的简单使用和总结
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的简单使用和总结的更多相关文章
- python-i春秋验证码识别
i春秋作家:hlpureboy python+机器学习+验证码识别+源码 简单介绍 最近在写某网站的自动注册,在注册的过程中遇到一些问题,如js的执行.验证码的识别等等,今天给大家如何用python通 ...
- Python 验证码识别(别干坏事哦...)
关于python验证码识别库,网上主要介绍的为pytesser及pytesseract,其实pytesser的安装有一点点麻烦,所以这里我不考虑,直接使用后一种库. python验证码识别库安装 要安 ...
- C#识别验证码技术-Tesseract
相信大家在开发一些程序会有识别图片上文字(即所谓的OCR)的需求,比如识别车牌.识别图片格式的商品价格.识别图片格式的邮箱地址等等,当然需求最多的还是识别验证码.如果要完成这些OCR的工作,需要你掌握 ...
- windows下简单验证码识别——完美验证码识别系统
此文已由作者徐迪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 讲到验证码识别,大家第一个可能想到tesseract.诚然,对于OCR而言,tesseract确实很强大,自带 ...
- 简单验证码识别(matlab)
简单验证码识别(matlab) 验证码识别, matlab 昨天晚上一个朋友给我发了一些验证码的图片,希望能有一个自动识别的程序. 1474529971027.jpg 我看了看这些样本,发现都是很规则 ...
- 开发工具类API调用的代码示例合集:六位图片验证码生成、四位图片验证码生成、简单验证码识别等
以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 六位图片验证码生成:包括纯数字.小写字母.大写字母.大小写混合.数 ...
- 基于TensorFlow的简单验证码识别
TensorFlow 可以用来实现验证码识别的过程,这里识别的验证码是图形验证码,首先用标注好的数据来训练一个模型,然后再用模型来实现这个验证码的识别. 生成验证码 首先生成验证码,这里使用 Pyth ...
- 基于SVM的python简单实现验证码识别
验证码识别是一个适合入门机器学习的项目,之前用knn 做过一个很简单的,这次用svm来实现.svm直接用了开源的库libsvm.验证码选的比较简单,代码也写得略乱,大家看看就好. 1. 爬取验证码图片 ...
- Mac python Tesseract 验证码识别
Tesseract 简介 Tesseract(/'tesərækt/) 这个词的意思是"超立方体",指的是几何学里的四维标准方体,又称"正八胞体".不过这里要讲 ...
随机推荐
- CSS学习笔记之框模型
1.概述 为了更好的处理 元素内容.内边距.边框 和 外边距 之间的关系,CSS 定义了框模型如下: 内边距.边框 和 外边距 的默认值都是零,可以通过设置元素的 padding.border 和 m ...
- 1.sts的下载安装
sts的官方下载如下: http://spring.io/tools3/sts/all/ 将下载后的压缩文件解压,在解压后的sts-bundle下的sts-3.9.1RELEASE目录中STS.exe ...
- Elasticsearch 分页坑之---评分一致导致数错乱
面试:你懂什么是分布式系统吗?Redis分布式锁都不会?>>> 1.背景介绍 最近搞es搜索,match查询默认按照评分排序,发现有一部分数据评分一致,一开始也没注意,客户端调用 ...
- [bzoj1861][Zjoi2006]Book 书架_非旋转Treap
Book 书架 bzoj-1861 Zjoi-2006 题目大意:给你一个序列,支持:将指定编号的元素抽出,放到序列顶(底):将指定编号元素左右篡位:查询指定编号元素位置:查询指定数量位置元素编号. ...
- How to run Java main class and pass application arguments in Maven?
原文: http://www.logicbig.com/how-to/maven/mvn-java-exec-args/ --------------------------------------- ...
- Java中的事务
Java中的事务 学习了:https://www.cnblogs.com/chengpeng15/p/5802930.html 膜拜一下 org 分为三类:jdbc事务.jta事务.容器事务:
- 关联查询之map的延伸使用方法
<select id="front.sort.selectListall" parameterType="myshop.services.front.sort.be ...
- Linux - 配置php-fpm 以及 配置nginx支持php
配置php-fpm [root@localhost php7]# which php-fpm /usr/local/php7/sbin/php-fpm [root@localhost php7]# p ...
- [.Net] 导出Excel中身份证等数字串的解决方式
public static void DataTableToExcel(System.Data.DataTable dtData, String FileName) { GridView dgExpo ...
- rehat7.X下postgresql 11编译安装
文档目录结构: 一.准备 操作系统版本:rehat7.6 Postgresql:11.2 软件安装目录:/pgsql11/basedir 数据文件存放目录:/pgsql11data/ 11.2的下载地 ...