轻松识别文字,这款Python OCR库支持超过80种语言

Karen110
• 阅读 4701

轻松识别文字,这款Python OCR库支持超过80种语言

OCR是什么?

有一款软件叫扫描全能王,想必一些小伙伴听过,这是一个OCR集成软件,可以将图像内容扫描成文字。

所以说,OCR作用是对文本资料的图像文件进行分析识别处理,获取文字及版面信息。

OCR的全称叫作“Optical Character Recognition”,即光学字符识别。

这算是生活里最常见、最有用的AI应用技术之一。

轻松识别文字,这款Python OCR库支持超过80种语言

细心观察便可发现,身边到处都是OCR的身影,文档扫描、车牌识别、证件识别、银行卡识别、票据识别等等。

OCR本质是图像识别,其包含两大关键技术:文本检测和文字识别。

先将图像中的特征的提取并检测目标区域,之后对目标区域的的字符进行分割和分类。

轻松识别文字,这款Python OCR库支持超过80种语言

关于EasyOCR

Python中有一个不错的OCR库-EasyOCR,在GitHub已有9700star。它可以在python中调用,用来识别图像中的文字,并输出为文本。

https://github.com/JaidedAI/EasyOCR

轻松识别文字,这款Python OCR库支持超过80种语言

EasyOCR支持超过80种语言的识别,包括英语、中文(简繁)、阿拉伯文、日文等,并且该库在不断更新中,未来会支持更多的语言。轻松识别文字,这款Python OCR库支持超过80种语言

安装EasyOCR

安装过程比较简单,使用pip或者conda安装。

pip install easyocr  

如果用的PyPl源,安装起来可能会耽误些时间,建议大家用清华源安装,几十秒就能安装好。

使用方法

EasyOCR的用法非常简单,分为三步:

  • 1.创建识别对象;

  • 2.读取并识别图像;

  • 3.导出文本。

我们先来举个简单的例子。

找一张路标图片,保存到电脑:轻松识别文字,这款Python OCR库支持超过80种语言

接着撸代码:

# 导入easyocr  
import easyocr  
# 创建reader对象  
reader = easyocr.Reader(['ch_sim','en'])   
# 读取图像  
result = reader.readtext('test.jpg')  
# 结果  
result  

输出结果:轻松识别文字,这款Python OCR库支持超过80种语言

可以看到路标上的三个路名以及拼音都识别出来了!

识别的结果包含在元组里,元组由三部分组成:边框坐标、文本、识别概率。

「关于语言:」

这段代码有一段参数['ch_sim','en'],这是要识别的语言列表,因为路牌里有中文和英文,所以列表里添加了ch_sim(简体中文)、en(英文)。

可以一次传递多种语言,但并非所有语言都可以一起使用。英语与每种语言兼容,共享公共字符的语言通常相互兼容。

前文我们给出了EasyOCR支持的语言列表,并附有参数代号。

「关于图像文件:」

上面传入了相对路径'test.jpg',还可以传递OpenCV图像对象(numpy数组)、图像字节文件、图像URL。

再读取一张文字较多的新闻稿图片:轻松识别文字,这款Python OCR库支持超过80种语言

# 导入easyocr  
import easyocr  
# 创建reader对象  
reader = easyocr.Reader(['ch_sim','en'])   
# 读取图像  
result = reader.readtext('test1.jpg')  
# 结果  
result  

轻松识别文字,这款Python OCR库支持超过80种语言

识别文字的准确率还是很高的,接下来对文字部分进行抽取。

for i in result:  
    word = i[1]  
    print(word)  

输出:轻松识别文字,这款Python OCR库支持超过80种语言

小结

该开源库是作者研究了几篇论文,复现出来的成果,真是一位实干家。

检测部分使用了CRAFT算法,识别模型为CRNN,它由3个主要组件组成:特征提取,序列标记(LSTM)和解码(CTC)。整个深度学习过程基于Pytorch实现。

作者一直在完善EasyOCR,后续计划一方面扩展支持更多的语言,争取覆盖全球80%~90%的人口;另一方面支持手写识别,并提高处理速度。

**-----**------**-----**---**** End **-----**--------**-----**-****

往期精彩文章推荐:

轻松识别文字,这款Python OCR库支持超过80种语言

欢迎各位大佬点击链接加入群聊【helloworld开发者社区】:https://jq.qq.com/?_wv=1027&k=mBlk6nzX进群交流IT技术热点。

本文转自 https://mp.weixin.qq.com/s/15HYCoxmM7STqzAxd5XigQ,如有侵权,请联系删除。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
不是海碗 不是海碗
1年前
从图片提取文字的终极解决方法 ——【通用文字识别 API】
通用文字识别技术,也称为OCR(OpticalCharacterRecognition,光学字符识别),就是一种将图像或扫描件中的文字识别出来并转化为可编辑、可搜索的数字化文本的技术。
Stella981 Stella981
2年前
OCR识别的Android端实现
1.OCR简介OCR(OpticalCharacterRecognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;2.Tesseract简介Tesseract是RaySmith于1985到1995年
Stella981 Stella981
2年前
GitHub Trending第一之后,PaddleOCR再发大招:百度自研顶会SOTA算法正式开源!
要说生活里最常见、最便民的AI应用技术,OCR(OpticalCharacterRecognition,光学字符识别)当属其中之一。寻常到日常办理各种业务时的身份证识别,前沿到自动驾驶车辆的路牌识别,都少不了它的加持。作为一名开发者,各种OCR相关的需求自然也少不了:卡证识别、票据识别、汽车场景、教育场景文字识别……!(https://imgco
Wesley13 Wesley13
2年前
4cast
4castpackageloadcsv.KumarAwanish发布:2020122117:43:04.501348作者:KumarAwanish作者邮箱:awanish00@gmail.com首页:
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这