文字识别OCR开源框架的对比--Tesseract vs EasyOCR

摘要:
在字符识别方面,主要有两种主流的开源框架,Teseract和EasyOCR。本文讨论了Teseract和EasyOCR在使用Python API方面的主要区别,包括安装、使用示例、准确性和推理速度的比较。在参考链接[2]中测试了准确率,分别使用Teseract和EasyOCR,使用1000张带字母的图片和1000张带数字的图片。例如,Teseract倾向于将29977.23之类的东西识别为2997.23,或将载体识别为cartier。此外,EasyOCR的输出是小写的。如果大写对处理很重要,则还应使用Tesseract。

前言:

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进行测试。

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

图片文字识别OCR开源框架的对比--Tesseract vs EasyOCR第2张

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

图片文字识别OCR开源框架的对比--Tesseract vs EasyOCR第2张

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

图片文字识别OCR开源框架的对比--Tesseract vs EasyOCR第2张​ 如上图所示,Tesseract 在字母识别方面做得更好,而 EasyOCR 在数字识别方面做得更好。

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

推理速度

图片文字识别OCR开源框架的对比--Tesseract vs EasyOCR第2张

在速度方面,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。

文字识别OCR开源框架的对比--Tesseract vs EasyOCR第9张文字识别OCR开源框架的对比--Tesseract vs EasyOCR第2张

其它文章

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

欠拟合与过拟合技术总结

归一化方法总结

论文创新的常见思路总结

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

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

知识蒸馏的简要概述   

优化OpenCV视频的读取速度

NMS总结   

损失函数技术总结

注意力机制技术总结   

特征金字塔技术总结   

池化技术总结

数据增强方法总结   

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

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

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

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

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

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

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

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

免责声明:文章转载自《文字识别OCR开源框架的对比--Tesseract vs EasyOCR》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Jmeter JDBC连接ios画曲线下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Yii和ThinkPHP对比心得

本人小菜鸟一只,为了自我学习和交流PHP(jquery,linux,lamp,shell,javascript,服务器)等一系列的知识,小菜鸟创建了一个群。希望光临本博客的人可以进来交流。寻求共同发展。搭建平台。 本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加)。 QQ群: 281442983 (点击链接加入群:http://jq.q...

Django 框架入门篇(安装与创建项目)

什么是Django框架? 官方定义:Django是一个高级Python Web框架,鼓励快速开发和简洁实用的设计。它由经验丰富的开发人员构建,可以解决大部分Web开发的麻烦,因此您可以专注于编写应用程序而无需重复造轮子。 Django is a high-level Python Web framework that encourages rapid de...

亿级用户的新浪微博平台架构

  微博平台第一代架构为LAMP架构,数据库使用的是MyIsam,后台用的是php,缓存为Memcache。  随着应用规模的增长,衍生出的第二代架构对业务功能进行了模块化、服务化和组件化,后台系统从php替换为Java,逐渐形成SOA架构,在很长一段时间支撑了微博平台的业务发展。  在此基础上又经过长时间的重构、线上运行、思索与沉淀,平台形成了第三代架构...

Windows2003 + IIS6 安装.Net FrameWork 4.0 兼容早期版本的测试

Windows2003 + IIS6 安装.Net FrameWork 4.0 兼容早期版本的测试 看到文档说.net4的框架可以向下兼容2.0、3.0、3.5这几个版本,觉得是一件好事,以后服务器上就不用费时费力的安装 2.0、3.5之类的框架了。但是又觉得奇怪,2.0和3.5的框架都是很大的,为什么现在这个小得多的4.0能同时运行 前几个版本的程序呢...

Yii框架常见问题汇总

虽然用过Yii做了一个小项目了,但是过程中间解决的问题没有随手记下来,导致新项目开始后,以前碰到的问题还得在查一遍,干脆就记下来,以便不时之需。 有新的会随时更新。 1.如何显示ActiveRecord执行的sql语句: array( 'class'=>'CFileLogRoute', 'levels'=>'trace,error, warni...

.NET框架体系结构

刚开始接触.NET很疑惑,看完视频也不是太懂,通过总结和反复,从概括和概念入手,慢慢变得清晰了。这篇博客主要是我对.NET基础知识的了解,算作积累吧。   .NET框架体系结构 由四个主要部分组成     公共语言运行时(CLR)是.NET框架应用程序的执行引擎..NET框架的关键作用在于,它提供了一个跨编程语言的统一编程环境,这也是它能独树一帜的根本原...