Github每日精选(第56期):支持多语言的文字识别EasyOCR

EasyOCR

EasyOCR一款好用的OCR,支持80多种语言和所有流行的书写脚本,包括拉丁语、汉语、阿拉伯语、德瓦纳加里语、西里尔语等。

OCROptical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。

一般OCR的过程如下:

  • 识别出文字区域
  • 对文字区域矩形分割,拆分成不同的字符
  • 字符分类
  • 识别出文字

一般来说,如果在用上概率公式的话,那准确率会更高点。

EasyOCR 使用的是机器学习的方式,使用的机器学习库为torch

在这里插入图片描述
来看看怎么使用,EasyOCR 使用起来确实比较简单。

安装

通过包安装,最新稳定版本:

pip install easyocr

安装最新的开发版本:

pip install git+https://github.com/JaidedAI/EasyOCR.git

注意,这里是在ubuntu下安装,windows的版本,安装起来会比较费劲,这里就不做介绍。

在这里插入图片描述

安装完成以后,还需要下载,相关的模型 数据:

在这里插入图片描述
关于使用,我们可以到网站上来试用一下,

假设我们要识别的文字如下:

在这里插入图片描述
识别结果如下:

在这里插入图片描述
我们也可以自己编写程序,来识别文字,也就是几句话的事情:

import easyocr
reader = easyocr.Reader(['ch_sim','en']) # this needs to run only once to load the model into memory
result = reader.readtext('chinese.jpg')
print(result )

得出如下的结果:

[([[5, 5], [229, 5], [229, 25], [5, 25]], '[总投7.9亿元!东部垃圾焚浇发电[', 0.08669103035451338), ([[237, 5], [386, 5], [386, 25], [237, 25]], '(三期)  项目敢得新迸展', 0.08111882257673593), ([[395, 5], [536, 5], [536, 25], [395, 25]], '土建己基本完成]  - ', 0.08647737115445017), ([[0, 29], [71, 29], [71, 49], [0, 49]], '门9报消意', 0.10136334145616752), ([[81, 29], [115, 29], [115, 49], [81, 49]], '近3', 0.9139336481750041), ([[123, 29], [339, 29], [339, 49], [123, 49]], '作为市政集匦重要民生保障设施之-', 0.12565472718039977), ([[347, 29], [519, 29], [519, 49], [347, 49]], '的东部生活垃圾焚烧发宅厂', 0.099161272827686), ([[0, 53], [149, 53], [149, 73], [0, 73]], '期)项目土建己基本完成', 0.0729209855661902), ([[157, 53], [345, 53], [345, 73], [157, 73]], '施工己全面转入设备安装阶段_', 0.13883050145003392), ([[0, 101], [377, 101], [377, 121], [0, 121]], '东部垃圾焚烧发宅厂(三期)项目位于厦门东部巨云飞生态园内', 0.011565073474962767), ([[385, 101], [489, 101], [489, 121], [385, 121]], '是省市重点工程', 0.3230764058066195)]

通过结果的分析可以发现,EasyOCR 还给了我们格外的信息,就是位置信息了。

通过下面的程序,把文字的区域画出来。

在这里插入图片描述
代码如下:

#!/usr/bin/env python
# encoding: utf-8

import easyocr
import cv2
reader = easyocr.Reader(['ch_sim','en'])
img = cv2.imread('4f70c06988d732947b62c18501a876a8.jpeg' )
result = reader.readtext(img)

color=(0,0,0)
for res in result:
    print(res[1])
    for p in [(0,1),(1,2),(2,3),(3,0)]:
        #print(res[0][p[0]])
        #print(res[0][p[1]])
        cv2.line(img,res[0][p[0]],res[0][p[1]],(0,0,255),1)

cv2.imwrite('4f70c06988d732947b62c18501a876a8-1.jpeg',img)

结果如下:

我们如此
热爱杭州
A new look of Hangzhou

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

go2coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值