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    具体含义见下图

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.

Tesseract训练

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

转载于:https://www.cnblogs.com/crazymanpj/p/9427957.html

验证码识别 Tesseract的简单使用和总结相关推荐

  1. c 语言 验证码识别算法,一个简单的文件传输验证码识别c/s实现

    一个简单的文件传输验证码识别c/s实现 大体思路 client通过tcp向server传输一个待识别的验证图片,server端识别后通过tcp回传给client. server端识别验证码采用pyte ...

  2. 验证码识别技术_简单的降噪处理

    1. 首先安装 tesserocr 包, 具体的安装网上是有教程的, 在这里不详细讲 链接地址: https://blog.csdn.net/chang995196962/article/detail ...

  3. 一个简单的验证码识别教程

    一.起因 前几天准备做一个自动计算gpa的网站,学校的教务登录时候需要输入验证码.本来想把验证码图片显示出来让用户手动输入,但是搞了半天没搞定...所以决定自己写一个识别的程序. 直接说结果吧,最终写 ...

  4. 用爬虫实现验证码识别并模拟登陆和cookie操作、代理操作、线程池

    一.模拟登陆 1.为什么要进行模拟登陆 有时,我们需要爬取一些基于个人用户的用户信息(需要登陆后才可以查看) 2.为什么要需要识别验证码 因为验证码往往是作为登陆请求中的请求参数被使用 3.验证码识别 ...

  5. 爬虫代理和验证码识别

    代理操作 - 目的:为解决ip被封的情况 概念汇总:- 什么是代理?- 代理服务器- 代理和爬虫之间的关联是什么?- 网络爬虫是需要短时间内发送高频的请求,为了保障ip不被封掉,使用代理更换请求对应的 ...

  6. python验证码识别爆破_python-i春秋验证码识别

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

  7. 使用Tesseract (OCR)实现简单的验证码识别(C#)+窗体淡入淡出效果

    来园子也有一段时间了,一直没时间写点东西,说实话刚开始也不知道写什么,一直以来对验证码识别比较感兴趣,曾经想着自己处理图形实现识别验证码, 不过感觉对我来说太难了,偶然中再网上发现了Tesseract ...

  8. python图像验证码识别_python 简单图像识别--验证码

    python  简单图像识别--验证码 记录下,准备工作安装过程很是麻烦. 首先库:pytesseract,image,tesseract,PIL windows安装PIL,直接exe进行安装更方便( ...

  9. Python验证码识别:利用pytesser识别简单图形

    一.探讨 识别图形验证码可以说是做爬虫的必修课,涉及到计算机图形学,机器学习,机器视觉,人工智能等等高深领域-- 简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形.以及利用计算机进行 ...

最新文章

  1. linux 雷电接口,Intel完全开放雷电技术:底层融合USB 4
  2. 【Groovy】map 集合 ( map 集合操作符重载 | + 操作符重载 | 代码示例 )
  3. 黑马Java学习笔记之-----单例模式
  4. java安全编码指南之:序列化Serialization
  5. day1作业二:多级菜单操作
  6. Centos 网络配置
  7. JBoss Tomcat 对 JSP 的泛型支持
  8. 关于《PHP任务学习》的说明
  9. 《超实用的HTML代码段》阅读笔记1——HTML5自动聚焦
  10. Linux字符设备驱动内幕
  11. band math函数_Envi中波段运算(bandmath)常用的函数
  12. 腾讯云Linux云服务器如何搭建FTP服务?
  13. SAP财务凭证的冲销
  14. Centos6.5更新e1000网卡驱动
  15. python三级考什么_什么是计算机三级考试?计算机三级考什么?
  16. 前端HTML5视频_谷粒音乐实战-张晓飞-专题视频课程
  17. 湍流系数计算器_FLUENT湍流强度计算
  18. Winsock 完成端口模型简介
  19. java eden 1 eden 2_java.lang.OutOfMemoryError: PermGen space
  20. JavaScript第二章——变量及数据类型 2021-09-26

热门文章

  1. 说说事业单位教师入编体检详细流程怎样预防体检不合格
  2. 程序员放大招教你网站怎么做短信验证码防刷验证码机制-速码云
  3. innodb OSC
  4. 用python,selenium抓取博客积分
  5. RNA-seq中的基因表达量计算和表达差异分析
  6. Vbox虚拟机安装GHOSTXP蓝屏提示processr.sys,错误代码0x000000CE
  7. shutil python_python之shutil模块
  8. 从MySQL到MongoDB
  9. Java小白入门系列 第一篇 写在前面
  10. 安卓常用开源项目总结