一文了解文字识别OCR开源框架的对比
前言:
OCR文字识别在目前有着比较好的应用,也出现了很多的文字识别软件,但软件是面向用户的。对于我们技术人员来说,有时难免需要在计算机视觉任务中加入文字识别,如车牌号识别,票据识别等,因此软件对我们是没用的,我们需要自己实现文字识别。
在文字识别方面,主要有两款主流的开源框架Tesseract和EasyOCR。本文讨论了 Tesseract 和 EasyOCR 使用 Python API 之间的主要区别,包括安装、使用示例、准确率和推理速度方面的对比。
更多内容请关注公众号CV技术指南,专注于计算机视觉的技术总结,最新技术跟踪。
使用示例
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。
在公众号中回复关键字 “技术总结” 可获取以下文章的汇总pdf。
更多内容请关注公众号CV技术指南,专注于计算机视觉的技术总结,最新技术跟踪。
-
施耐德电气与Neoen签署750兆瓦太阳能框架协议
2021-06-27 -
一文了解DDR3系列之时钟信号的差分电容
2021-06-25 -
正泰签署框架协议在巴西建设太阳能工厂
2021-06-24 -
一文教你如何利用鸿蒙OS实现智慧家居·LOT上云项目
2021-06-24 -
100%国产的全球首款AI操作系统开源了!
2021-06-24 -
ARENA支持deX项目,以提供结合分布式太阳能加存储和电网服务的开源数字市场
2021-06-24 -
走近EasyDL:一文教你制作自己的AI应用
2021-06-23 -
一文了解计算机视觉未来的走向
2021-06-23 -
一文详解HiveSQL执行计划
2021-06-23 -
一文读懂物联网系统中的开发工作
2021-06-23 -
一文详解损失函数技术
2021-06-21 -
一文看懂锐科激光的焊接战略:上半年增长150% 推动激光走向高端制造
2021-06-18 -
超过20个国家签署了国际太阳能联盟框架
2021-06-18 -
一文了解什么是深度学习
2021-06-17 -
边缘计算的开源生态正在形成!
2021-06-14