作者 | 朱维军
来源 | Python大数据分析
有一款软件叫全能扫描仪,想必有些朋友都听说过。 这是一款OCR集成软件,可以将图像内容扫描成文本。
因此,OCR的作用就是对文本素材的图像文件进行分析识别,获取文本和版面信息。
OCR的全称是“Optical Character Recognition”,即光学字符识别。
这是生活中最常见、最有用的人工智能应用技术之一。
如果你仔细观察,你会发现OCR在你身边无处不在,包括文档扫描、车牌识别、证件识别、银行卡识别、票据识别等。
OCR的本质是图像识别,包括文本检测和字符识别两项关键技术。
首先提取图像中的特征并检测目标区域,然后对目标区域中的字符进行分割和分类。
关于 EasyOCR
Python中有一个不错的OCR库——EasyOCR提取图片中文字软件,它在GitHub上有9700个star。 可以在python中调用它来识别图像中的文本并将其输出为文本。
❝
❞
EasyOCR支持80多种语言的识别,包括英语、中文(简体和繁体)、阿拉伯语、日语等提取图片中文字软件,并且该库正在不断更新,未来将支持更多语言。
安装 EasyOCR
安装过程比较简单,使用pip或者conda安装。
pip install easyocr
如果您使用 PyPl 源,安装可能需要一些时间。 建议使用清华源安装。 它可以在几十秒内安装完毕。
指示
EasyOCR的使用非常简单,分为三步:
我们先举一个简单的例子。
查找路标图片并将其保存到您的计算机:
然后是代码:
# 导入easyocr
import easyocr
# 创建reader对象
reader = easyocr.Reader(['ch_sim','en'])
# 读取图像
result = reader.readtext('test.jpg')
# 结果
result
输出结果:
可以看到路牌上的三个路名和拼音已经被识别了!
识别结果包含在一个元组中,元组由三部分组成:边界坐标、文本和识别概率。
“关于语言:”
这段代码有一个参数['ch_sim', 'en'],它是要识别的语言列表。 由于路标中有中文和英文,所以列表中添加了ch_sim(简体中文)和en(英文)。
可以一次性交付多种语言,但并非所有语言都可以一起使用。 英语与所有语言兼容,具有共同字符的语言通常也相互兼容。
之前我们给出了EasyOCR支持的语言列表,以及参数代码。
“关于图像文件:”
上面传入的是相对路径“test.jpg”,也可以传入OpenCV图像对象(numpy数组)、图像字节文件、图像URL。
阅读另一张包含更多文字的新闻稿图片:
# 导入easyocr
import easyocr
# 创建reader对象
reader = easyocr.Reader(['ch_sim','en'])
# 读取图像
result = reader.readtext('test1.jpg')
# 结果
result
识别文本的准确率还是很高的,然后提取文本部分。
for i in result:
word = i[1]
print(word)
输出:
概括
这个开源库是作者研究几篇论文并复制的结果。 他确实是一个实干家。
检测部分采用CRAFT算法,识别模型为CRNN,由3个主要部分组成:特征提取、序列标记(LSTM)和解码(CTC)。 整个深度学习流程基于Pytorch实现。
作者一直在改进 EasyOCR。 一方面,后续计划是扩大对更多语言的支持,力争覆盖全球80%到90%的人口; 另一方面,它将支持手写识别并提高处理速度。