OCR开源项目对比总结
光学字符识别(Optical Character Recognition, OCR)是指对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。亦即将图像中的文字进行识别,并以文本的形式返回。
ocr的发展已经有了非常多的积累,一般人或者企业使用, 都是直接使用第三方的服务,目前提供第三方服务的大企业也非常多,百度,阿里云,腾讯等等,都提供了非常方便的api接口,可以进行调用,识别的速度、精确度和效果也都是非常不错的。唯一的缺点就是api的调用是需要收费的,对于调用频次不高的个人和企业,这个费用还是非常低的。
目前因为公司的现状,使用开源的有几个目的
目前针对ocr的相关开源项目也还是有不少的,作者正好是公司也需要类似的功能,所以做了一些简单的调研,在这里进行记录。
对于调研不准确的希望大家指出
Tesseract 是谷歌开发并开源的图像文字识别引擎,使用python开发。
所以针对目前公司的现状,放弃了这个项目的学习和调研
PaddleOCR 是百度开源的中文识别的ocr开源软件
EasyOCR 是一个用 Python 编写的 OCR 库,用于识别图像中的文字并输出为文本,支持 80 多种语言。
chineseocr
chineseocr_lite
TrWebOCR
cnocr
针对上面的比较讨论,同时根据现在的公司的情况和之前既定的一些目标,暂时选择最简单的cnocr进行学习和内部学习和使用。同时也针对目前cnocr仅仅是一个python包,而且无法通过接口进行调用的情况,做了一个补充项目 hn_ocr 。
目前放到github上面,欢迎大家一起学习和完善。
你好,如果是英文的话。你可以用下面的库。
pytesser,OCR in Python using the Tesseract engine from Google。是谷歌OCR开源项目的一个模块,可将中的文字转换成文本(主要是英文)
如果要识别中文还需要下载对应的训练集:https://githubcom/tesseract-ocr/tessdata
,下载”chi_simtraineddata”,然后copy到训练数据集的存放路径。下面是一个例子的代码。
#!/usr/bin/env python3
# -- coding: utf-8 --
import pytesseract
from PIL import Image
# open image
image = Imageopen('testpng')
code = pytesseractimage_to_string(image, lang='chi_sim')
print(code)
在自己的配置文件里面加上下面的语句,启用Vundle:
set nocompatible " be iMproved
filetype off " required!
set rtp+=~/vim/bundle/vundle/
call vundle#rc()
EasyOCR实际上是一个python包,它将pytorch作为后端处理程序。EasyOCR像任何其他OCR(谷歌的tesseract或任何其他OCR)一样从图像中检测文本,但在我使用它的参考资料中,我发现它是从图像中检测文本的最直接的方法,而且高端深度学习库(pytorch)在后端支持它,这使它的准确性更可靠。EasyOCR支持42多种语言用于检测目的。
可以在 easyocr · PyPI 上查看easyocr模块说明信息以及用法。
easyocrReader设置语言列表,可以同时通过多种语言,但并非所有语言都可以一起使用,英语与每种语言兼容。将模型加载到内存中需要一些时间,但它只需要运行一次。
比如下面的设置语言,可根据中的文字类别来选择。
reader_ch_tra = easyocrReader(['ch_tra', 'en']),指定繁体中文和英语
reader_ch_sim = easyocrReader(['ch_sim', 'en']),指定简体中文和英语
reader_ch_en = easyocrReader(['en']),指定英语
1、标牌文字识别
可以指定detail = 0来简单的输出。
可以在命令行中调用easyocr工具来实现命令行解析。
2 、车牌识别
3 、验证码识别
4、长篇文字
文字点选验证码(Click Captcha)是一种常见的验证码形式,通常由若干个字符或单词组成,要求用户点击其中指定的字符或单词,以验证用户身份。
在Python开发中实现文字点选验证码,一种常用的方法是使用图像处理库和机器学习库,以下是一些常用的库和方法:
PIL库:Python Imaging Library(PIL)是一个Python图像处理库,提供了丰富的图像处理功能,包括图像读写、缩放、旋转、裁剪、滤波等。可以使用PIL库生成包含随机字符的验证码,并将其保存为本地文件。
OpenCV库:OpenCV是一个计算机视觉库,提供了大量的图像处理和计算机视觉算法,包括图像读写、滤波、边缘检测、特征提取等。可以使用OpenCV库对验证码进行预处理,提取出验证码中的字符或单词,以便后续的识别。
PyTesseract库:PyTesseract是一个Python的OCR库,基于Google的Tesseract-OCR引擎,可以对图像中的文字进行识别。可以使用PyTesseract库对验证码中的字符或单词进行识别和分类。
KNN算法:KNN是一种常用的机器学习算法,可以用于对验证码中的字符或单词进行分类。可以使用KNN算法对预处理后的验证码进行特征提取和分类,以识别出验证码中的正确字符或单词。
综合使用以上方法,可以实现一个较为稳定和准确的文字点选验证码。具体实现细节需要根据具体情况进行调整和优化。
本文2023-08-20 01:38:48发表“古籍资讯”栏目。
本文链接:https://www.yizhai.net/article/58215.html