前言:

OCR文字识别在目前有着比较好的应用,也出现了很多的文字识别软件,但软件是面向用户的。对于我们技术人员来说,有时难免需要在计算机视觉任务中加入文字识别,如车牌号识别,票据识别等,因此软件对我们是没用的,我们需要自己实现文字识别。

在文字识别方面,主要有两款主流的开源框架Tesseract和EasyOCR。本文讨论了 Tesseract 和 EasyOCR 使用 Python API 之间的主要区别,包括安装、使用示例、准确率和推理速度方面的对比。

使用示例

Tesseract

安装: pip install pytesseract pillow

使用示例:

from PIL import Image

import pytesseract

text=pytesseract.image_to_string(Image.open(filename))

print(text)

这只是一个简单的使用示例,在实际应用中,图像并非理想情况,还需要对图像进行一定的预处理以更好地识别。如去除椒盐噪声,去除干扰物,如在车牌识别中还会利用矩形框检测框出车牌所在位置,并放大,以更好地进行车牌号识别。

EasyOCR

安装:pip install easyocr

使用示例

import easyocr

reader = easyocr.Reader(['ch_sim', 'en'])

text = reader.readtext('filename')

print(text)

注:easyocr还会输出文字在图片中的坐标。

准确率

在参考链接[2]中进行了一项实验,使用1000张含字母的图片和1000张含数字的图片分别使用Tesseract和EasyOCR进行测试。

含字母的输入图像如下图所示:

含数字的输入图像如下图所示:

经过测试得出下面两个开源框架的准确率对比

​ 如上图所示,Tesseract 在字母识别方面做得更好,而 EasyOCR 在数字识别方面做得更好。

此外,它们在识别某些字符时存在完全不同的问题。例如,Tesseract 倾向于将诸如 29977.23 之类的东西识别为 2997.23,或者将carrier 识别为 cartier。另一方面,EasyOCR 更有可能将 94268.1 识别为 94268,或者advances 识别为 atvances。这两个单词识别的举例表明这两个框架对单个字母的识别倾向。

推理速度

在速度方面,Tesseract 在 CPU 上的表现优于 EasyOCR,而 EasyOCR 在 GPU 上的表现更好。

结论

Tesseract 在字母识别方面表现更好,而 EasyOCR 在数字方面表现更好。如果图片包含大量字母,可以考虑 Tesseract。此外,EasyOCR 的输出是小写的。如果大写对处理很重要,还应该使用 Tesseract。另一方面,如果图片中包含大量数字,建议 EasyOCR。

参考链接

https://blog.csdn.net/fatesunlove/article/details/107691665

https://medium.com/swlh/ocr-engine-comparison-tesseract-vs-easyocr-729be893d3ae

在公众号中回复关键字 “技术总结” 可获取以下文章的汇总pdf。

其它文章

计算机视觉专业术语总结(一)构建计算机视觉的知识体系

欠拟合与过拟合技术总结

归一化方法总结

论文创新的常见思路总结

CV方向的高效阅读英文文献方法总结

计算机视觉中的小样本学习综述

知识蒸馏的简要概述

优化OpenCV视频的读取速度

NMS总结

损失函数技术总结

注意力机制技术总结

特征金字塔技术总结

池化技术总结

数据增强方法总结

CNN结构演变总结(一)经典模型

CNN结构演变总结(二)轻量化模型

CNN结构演变总结(三)设计原则

如何看待计算机视觉未来的走向

CNN可视化技术总结(一)-特征图可视化

CNN可视化技术总结(二)-卷积核可视化

CNN可视化技术总结(三)-类可视化

CNN可视化技术总结(四)-可视化工具与项目

文字识别OCR开源框架的对比--Tesseract vs EasyOCR的更多相关文章

  1. 【图片识别】java 图片文字识别 ocr (转)

    http://www.cnblogs.com/inkflower/p/6642264.html 最近在开发的时候需要识别图片中的一些文字,网上找了相关资料之后,发现google有一个离线的工具,以下为 ...

  2. java 图片文字识别 ocr

    最近在开发的时候需要识别图片中的一些文字,网上找了相关资料之后,发现google有一个离线的工具,以下为java使用的demo 在此之前,使用这个工具需要在本地安装OCR工具: 下面一个是一定要安装的 ...

  3. 图像文字识别(OCR)用什么算法小结

    说明:主要考虑深度学习的方法,传统的方法不在考虑范围之内. 1.文字识别步骤 1.1detection:找到有文字的区域(proposal). 1.2classification:识别区域中的文字. ...

  4. 如何大批量的识别图片上的文字,批量图片文字识别OCR软件系统

    软件不需要安装,直接双击打开就可以用,废话不多说直接上图好了,方便说明问题 批量图片OCR(批量名片识别.批量照片识别等)识别,然后就下来研究了一下,下面是成果 使用步骤:打开单个图片识别,导入文件夹 ...

  5. python实现中文图片文字识别--OCR about chinese text--tesseract

    0.我的环境: win7 32bits python 3.5 pycharm 5.0 1.相关库 安装pillow: pip install pillow 安装tesseract: tesseract ...

  6. 有道自然语言翻译和文字识别OCR(图片文字识别)接口调用

    官网 http://ai.youdao.com 文档地址 http://ai.youdao.com/docs/doc-ocr-api.s#p01 在Python中调用api. #/usr/bin/en ...

  7. 如何精准实现OCR文字识别?

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由云计算基础发表于云+社区专栏 前言 2018年3月27日腾讯云云+社区联合腾讯云智能图像团队共同在客户群举办了腾讯云OCR文字识别-- ...

  8. PHP:基于百度大脑api实现OCR文字识别

    有个项目要用到文字识别,网上找了很多资料,效果不是很好,偶然的机会,接触到百度大脑.百度大脑提供了很多解决方案,其中一个就是文字识别,百度提供了三种文字识别,分别是银行卡识别.身份证识别和通用文字识别 ...

  9. JAVA的图片文字识别技术

    从2013年的记录看,JAVA中图片文字识别技术大部分采用ORC的tesseract的软件功能,后来渐渐开放了java-api调用接口. 图片文字识别技术,还是采用训练的方法.并未从根本上解决图片与文 ...

  10. 开源图片文字识别引擎——Tesseract OCR

    Tessseract为一款开源.免费的OCR引擎,能够支持中文十分难得.虽然其识别效果不是很理想,但是对于要求不高的中小型项目来说,已经足够用了. 文字识别可应用于许多领域,如阅读.翻译.文献资料的检 ...

随机推荐

  1. zju(8)串口通信实验

    1.实验目的 1.学习和掌握linux下串口的操作方法以及应用程序的编写: 二.实验内容 1.编写EduKit-IV实验箱Linux操作系统下串口的应用程序,运行时只需要将串口线的一端连接到开发板的c ...

  2. Linux定时任务系统 Cron

    运行计划任务时:service crond restart提示:crond: unrecognized service安装计划任务:yum -y install vixie-cron 另外附计划任务的 ...

  3. Android 手机卫士12--进程管理

    1.本进程不能被选中,所以先将checkbox隐藏掉--手机卫士 不能自杀 if(getItem(position).packageName.equals(getPackageName())){ ho ...

  4. jquery用on代替bind(),live(),delegate()的方法

    Js的功能确实非常强大,奈何我一个php程序员一直在js上没有投入足够的精力去研究,每次遇到不会的都是去百度,以后有时间真的应该买本书系统的学习一下 // Bind $( "#members ...

  5. sublime text3-代码片段配置

    1.Tools->New Snippet-> <snippet>     <content><![CDATA[${1:public }function ${2 ...

  6. English - according to 的用法说明

    1. 用于according to,意为“根据”,为复合介词,后接名词或代词.注意以下用法: (1) 主要用来表示“根据”某学说.某书刊.某文件.某人所说等或表示“按照”某法律.某规定.某惯例.某情况 ...

  7. 使用C#在VS中开发:未处理AccessViolationException “System.AccessViolationException”类型的未经处理的异常

    未处理AccessViolationException: “System.AccessViolationException”类型的未经处理的异常在System.Data.dll中发生 其他信息:尝试读 ...

  8. OM模块功能&amp;API详解

    (一)销售订单概述 1.1   与车间模块关系 当使用ATO类型订单时,订单管理模块会直接在车间模块中产生任务 1.2   与库存模块关系 在销售订单中使用的物料,单位等信息均来自库存模块,在订单执行 ...

  9. mySQL 教程 第5章 插入 更新与删除数据

    使用SQL Manager管理工具连接到schoolDB.由于三张表都设置了主键,因此,以下练习中插入的记录,主键不能重. 插入数据 1. 练习:为表的所有字段插入数据 为表中所有字段插入数据,可以不 ...

  10. IDEA主题设置

    主题下载: Color Themes(个人倾向该网站,而不是http://www.riaway.com/) 主题设置: 打开IDEA,按下Ctrl+Alt+S,选择Editor-->Color ...