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

前言:

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

 

欢迎关注公众号 CV技术指南 ,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读。

在公众号中回复关键字 “入门指南“可获取计算机视觉入门所有必备资料。

其它文章

ML2021 | PatrickStar:通过基于块的内存管理实现预训练模型的并行训练

ICCV2021 | PnP-DETR:用Transformer进行高效的视觉分析

ICCV2021 | 医学影像等小数据集的非自然图像领域能否用transformer?

ICCV2021 | Vision Transformer中相对位置编码的反思与改进

ICCV2021 | TransFER:使用Transformer学习关系感知的面部表情表征

2021-视频监控中的多目标跟踪综述

统一视角理解目标检测算法:最新进展分析与总结

全面理解目标检测中的anchor      |    姿态估计综述

目标检测中回归损失函数总结     |     小目标检测常用方法总结

视觉Transformer综述    |    2021年小目标检测最新研究综述

Siamese network综述    |  小目标检测的一些问题,思路和方案

视频理解综述:动作识别、时序动作定位、视频Embedding

从CVPR 2021的论文看计算机视觉的现状

ICCV2021 | MicroNet:以极低的 FLOPs 改进图像识别

ICCV2021 | 重新思考视觉transformers的空间维度

CVPR2021 | TransCenter: transformer用于多目标跟踪算法

CVPR2021 | 开放世界的目标检测

CVPR2021 | TimeSformer-视频理解的时空注意模型

CVPR2021 | 一个高效的金字塔切分注意力模块PSA

CVPR2021 | 特征金字塔的新方式YOLOF

经典论文系列 | 重新思考在ImageNet上的预训练

经典论文系列 | Group Normalization & BN的缺陷

经典论文系列 | 目标检测--CornerNet  & anchor boxes的缺陷

经典论文系列 | 缩小Anchor-based和Anchor-free检测之间差距的方法:自适应训练样本选择

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

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

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

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

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

池化技术总结    |  NMS总结    |  注意力机制总结

特征金字塔总结      |  数据增强方法总结

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

欠拟合与过拟合技术总结    |  损失函数技术总结

CNN可视化技术总结

CNN结构演变总结—经典模型

CNN结构演变总结—轻量化模型

CNN结构演变总结—设计原则

论文创新的常见思路总结

在公众号《CV技术指南》中回复“技术总结”可获取以上所有总结系列文章的汇总pdf

 

posted @ 2021-06-27 10:52  CV技术指南(公众号)  阅读(3072)  评论(1编辑  收藏  举报