1 万 Star !这个 OCR 神器能轻松识别 80 多种语言!

Wesley13
• 阅读 1116

【导语】:EasyOCR 是一个用 Python 编写的 OCR 库,用于识别图像中的文字并输出为文本,支持 80 多种语言。

简介

EasyOCR 是 python 中一个不错的 OCR 库,在GitHub已有 10.3K star。目前支持80多种语言,包括中文、日文、韩文和泰文等。

1 万 Star !这个 OCR 神器能轻松识别 80 多种语言!

下载安装

EasyOCR安装方法很简单,直接使用pip安装,有以下两种安装命令:

  • 安装稳定版本

    pip install easyocr

  • 安装最新版本

    pip install git+git://github.com/jaidedai/easyocr.git

需要注意的是,如果在Windows下安装,需要先安装 torch 和 torchvision(安装方法详见官方网址 https://pytorch.org)。在 pytorch 网站上,一定要选择正确的CUDA版本。如果只想在CPU模式下运行,请选择 CUDA = None。

1 万 Star !这个 OCR 神器能轻松识别 80 多种语言!

另外,开发者还提供了docker文件,详见:https://github.com/JaidedAI/EasyOCR/blob/master/Dockerfile

简单使用

安装好环境后,使用以下命令进行体验图片识别:

import easyocr  
# 创建reader对象,指定语言为简写中文  
# 该命令只需要运行一次就可以将model加载到内存中  
reader = easyocr.Reader(['ch_sim','en'])  
# 读取图像  
result = reader.readtext('chinese.jpg')  

其中 chinese.jpg 为

1 万 Star !这个 OCR 神器能轻松识别 80 多种语言!

输出为列表格式,每个项目分别代表边界框、文本和自信级别:

[([[189, 75], [469, 75], [469, 165], [189, 165]], '愚园路', 0.3754989504814148),  
 ([[86, 80], [134, 80], [134, 128], [86, 128]], '西', 0.40452659130096436),  
 ([[517, 81], [565, 81], [565, 123], [517, 123]], '东', 0.9989598989486694),  
 ([[78, 126], [136, 126], [136, 156], [78, 156]], '315', 0.8125889301300049),  
 ([[514, 126], [574, 126], [574, 156], [514, 156]], '309', 0.4971577227115631),  
 ([[226, 170], [414, 170], [414, 220], [226, 220]], 'Yuyuan Rd.', 0.8261902332305908),  
 ([[79, 173], [125, 173], [125, 213], [79, 213]], 'W', 0.9848111271858215),  
 ([[529, 173], [569, 173], [569, 213], [529, 213]], 'E', 0.8405593633651733)]  

可以通过使用detail = 0简化输出:

reader.readtext('chinese.jpg', detail = 0)  

输出结果如下:

['愚园路', '西', '东', '315', '309', 'Yuyuan Rd.', 'W', 'E']  

如果没有GPU或者GPU内存不足,可以通过添加GPU = False在CPU模式下运行:

reader = easyocr.Reader(['ch_sim','en'], gpu = False)  

另外,也可以通过命令行使用如下:

$ easyocr -l ch_sim en -f chinese.jpg --detail=1 --gpu=True  

快速体验

不想在本地安装环境的朋友可以在开发者提供的colab地址上体验:https://colab.fan/easyocr
小秋在colab上尝试了几张图,效果如下:

  • 识别泰文图片

1 万 Star !这个 OCR 神器能轻松识别 80 多种语言!

识别结果:

[([[142, 232], [500, 232], [500, 361], [142, 361]],  
  'เส้นทางลัด',  
  0.10795291513204575),  
 ([[177, 483], [385, 483], [385, 573], [177, 573]],  
  'เพชรบุรี',  
  0.5405621528625488)]  
  • 识别日文图片

1 万 Star !这个 OCR 神器能轻松识别 80 多种语言!

识别结果:

[([[71, 49], [489, 49], [489, 159], [71, 159]], 'ポ<捨て禁止!', 0.6339455246925354),  
 ([[95, 149], [461, 149], [461, 235], [95, 235]],  
  'NOLITTER',  
  0.32494133710861206),  
 ([[80, 232], [475, 232], [475, 288], [80, 288]],  
  '清潔できれいな港区を',  
  0.9784266948699951),  
 ([[109, 289], [437, 289], [437, 333], [109, 333]],  
  '港 区 MINATO CITY',  
  0.18789240717887878)]  
  • 识别韩文图片

1 万 Star !这个 OCR 神器能轻松识别 80 多种语言!

识别结果

[([[129, 79], [292, 79], [292, 183], [129, 183]], '서울', 0.9718754291534424),  
 ([[368, 101], [531, 101], [531, 201], [368, 201]], '평양', 0.9701955914497375),  
 ([[159, 176], [258, 176], [258, 232], [159, 232]],  
  'Seoul',  
  0.8239477872848511),  
 ([[342, 189], [539, 189], [539, 262], [342, 262]],  
  'Pyeongyang',  
  0.3527982532978058),  
 ([[186, 276], [289, 276], [289, 333], [186, 333]],  
  '56Km',  
  0.6299729943275452),  
 ([[344, 288], [461, 288], [461, 344], [344, 344]],  
  '205Km',  
  0.38107678294181824)]  

结语

EasyOCR 就简单介绍到这里了,感兴趣的朋友可以到项目主页了解更多详情。

开源前哨 日常分享热门、有趣和实用的开源项目。参与维护 10万+ Star 的开源技术资源库,包括:Python、Java、C/C++、Go、JS、CSS、Node.js、PHP、.NET 等。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
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
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
DOIS 2019 DevOps国际峰会北京站来袭~
DevOps国际峰会是国内唯一的国际性DevOps技术峰会,由OSCAR 联盟指导、DevOps时代社区与高效运维社区联合主办,共邀全球80余名顶级专家畅谈DevOps体系与方法、过程与实践、工具与技术。会议召开时间:2019070508:00至2019070618:00结束会议召开地点:北京主办单位:DevOps
Stella981 Stella981
3年前
Android蓝牙连接汽车OBD设备
//设备连接public class BluetoothConnect implements Runnable {    private static final UUID CONNECT_UUID  UUID.fromString("0000110100001000800000805F9B34FB");
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
不是海碗 不是海碗
1年前
看懂二维码识别OCR:从算法到API 接入代码
引言二维码识别OCR(OpticalCharacterRecognition)是结合了图像处理和OCR技术,以识别和提取二维码中的信息的技术,二维码识别OCR可以实现对图像中的二维码进行自动检测和解码,并将其内容提取为可编辑的文本,这种技术在许多领域中被广
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这