3行python代码翻译70种语言,这个OCR神奇太赞了
写在前面的一些P话:
今天给大家介绍一个超级简单且强大的OCR文本识别工具:easyocr.
这个模块支持70多种语言的即用型OCR,包括中文,日文,韩文和泰文等。
完全满足了大家对于语言的要求,不管你说的是中文、外文,还是鸟语,统统都给你拿下。(不是)
废话不多说,下面是这个模块的实战教程。
1.准备
请选择以下任一种方式输入命令安装依赖:
Windows 环境 打开 Cmd (开始-运行-CMD)。
MacOS 环境 打开 Terminal (command+空格输入Terminal)。
如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install easyocr
它会安装除了模型文件之外的所有依赖,模型文件则会在运行代码的时候下载。
对于Windows,如果在安装 Torch 或 Torchvision 时报错了,请按照https://pytorch.org 的官方说明安装 Torch 和Torchvision。
如果你想使用显卡进行计算,你需要搜索下载CUDA,并在Pytorch网站上,确保选择正确的CUDA版本。如果仅打算在CPU模式下运行,请选择CUDA = None。
2.实战教程
这个模块用起来真的非常简单,三行代码完事了:
Python学习交流Q群:660193417####
import easyocr
reader = easyocr.Reader(['ch_sim','en'])
result = reader.readtext('test.png')
运行的过程中会安装所需要的模型文件,像下面这样:
不过它的下载速度非常慢,而且经常会失败,因此这里给出第二个解决方案:先下载好模型文件,再将其放置到所需要的位置
文字检测模型(CRAFT)(必须)
https://pythondict.com/go/?
url=https://github.com/JaidedAI/EasyOCR/releases/download/pre-
v1.1.6/craft_mlt_25k.zip
中文(简体)模型(识别中文必须)
https://pythondict.com/go/
url=https://github.com/JaidedAI/EasyOCR/releases/download/pre-
v1.1.6/chinese_sim.zip
中国(传统)模型
https://pythondict.com/go/?
url=https://github.com/JaidedAI/EasyOCR/releases/download/pre-
v1.1.6/chinese.zip
拉丁模型
https://pythondict.com/go/?
url=https://github.com/JaidedAI/EasyOCR/releases/download/pre-
v1.1.6/latin.zip
日本模型
https://pythondict.com/go/?
url=https://github.com/JaidedAI/EasyOCR/releases/download/pre-
v1.1.6/japanese.zip
韩文模型
https://pythondict.com/go/?
url=https://github.com/JaidedAI/EasyOCR/releases/download/pre-
v1.1.6/korean.zip
泰文模型
https://pythondict.com/go/?
url=https://github.com/JaidedAI/EasyOCR/releases/download/pre-
v1.1.6/thai.zip
阿拉伯文模型
https://pythondict.com/go/?
url=https://github.com/JaidedAI/EasyOCR/releases/download/pre-
v1.1.6/arabic.zip
下载完模型后,将文件放到下面这个位置。
Windows:C:\Users\用户名.EasyOCR\model
Linux:~/ .EasyOCR / model
如下图所示:
重新执行脚本不会再提醒下载模型了:
import easyocr
reader = easyocr.Reader(['ch_sim'])
result = reader.readtext('test.png')
print(result)
我随便截了一个直播弹幕的图片保存在脚本所在的文件夹下,命名为test.png:
结果如下:
基本上所有应该识别的文字都识别出来了,效果非常不错。
另外也可以看到,输出采用列表格式,每个item分别表示对应文字的边界框,识别文本结果和置信度。
这个模块还能识别多语种的情况:
我将这张图片命名为test2.jpg,修改代码中对应的图片名称:
import easyocr
reader = easyocr.Reader(['ch_sim','en'])
result = reader.readtext('test2.jpg')
print(result)
效果如下:
这张图片很复杂,而且是中英文混杂在一起的情况,但是可以看到模型除了左上角的水印,图片中的文字基本都是识别出来了,尽管有部分文字识别错误,但还在可以接受的范围之内。
不过需要注意的是,虽然可以一次性识别许多种语言,但并非所有语言都可以一起用,通常是公共语言和一个特殊语种可以一起识别,相互兼容,比如英语和日语。
如果你的电脑没有GPU或者显存不足,可以加一个gpu=false的参数仅使用CPU运行:
reader = easyocr.Reader(['ch_sim','en'], gpu = False)
另外,这个模块还支持直接使用命令行运行,相当方便,大家可以试试:
easyocr -l ch_sim en -f test.png --detail=1 --gpu=True
最后
我们的文章到此就结束啦,如果你喜欢今天的Python 实战教程,请持续关注我们!记得给个三连哦!
3行python代码翻译70种语言,这个OCR神奇太赞了的更多相关文章
- 100行Python代码实现一款高精度免费OCR工具
近期Github开源了一款基于Python开发.名为 Textshot 的截图工具,刚开源不到半个月已经500+Star. 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语 ...
- 一个 11 行 Python 代码实现的神经网络
一个 11 行 Python 代码实现的神经网络 2015/12/02 · 实践项目 · 15 评论· 神经网络 分享到:18 本文由 伯乐在线 - 耶鲁怕冷 翻译,Namco 校稿.未经许可,禁止转 ...
- 200行Python代码实现2048
200行Python代码实现2048 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌面 ...
- 30行Python代码实现人脸检测
参考OpenCV自带的例子,30行Python代码实现人脸检测,不得不说,Python这个语言的优势太明显了,几乎把所有复杂的细节都屏蔽了,虽然效率较差,不过在调用OpenCV的模块时,因为模块都是C ...
- 21行python代码实现拼写检查器
引入 大家在使用谷歌或者百度搜索时,输入搜索内容时,谷歌总是能提供很好的拼写检查,比方你输入 speling,谷歌会立即返回 spelling. 前几天,看到http://norvig.com/spe ...
- vim中凝视多行python代码
在vim中凝视多行python代码比較麻烦,主要由下面几种方法: (1)将须要凝视的代码以文档字符串的形式呈现 (2)将须要凝视的代码以函数的形式呈现 (3)使用vim自身快捷键 我们主要使用第三种方 ...
- 几行python代码解决相关词联想
日常生活中经常会遇到相关词联想的问题,也就是说输入一个词汇,把相关的词汇查询出来,听起来这个做法也不是太难,但如何去积累那么多的词汇,再用好的算法将相关内容联系起来,本身还是不简单的.笔者认为最简单的 ...
- 转-Pycharm中运行Python代码的几种方式
转自:Pycharm中运行Python代码的几种方式 在pycharm中的Python代码运行会出现各种奇葩的问题,比如,密码输入时不显示或没有提示,给我们带来一些麻烦,下面介绍几种代码运行的几种方式 ...
- 将python代码转化为c语言代码,提高运行效率
将python代码转化为c语言代码,提高运行效率 首先,需要安装cpython库: pip install cython 安装完成之后,写一段简单的代码,例如下面这个利用递归求斐波那契数列的函数,然后 ...
随机推荐
- Promise了解
Promise是一个构造函数,excutor是他的执行函数,同时也是构造函数的参数. new Promise(excutor) excutor有两个参数(resolve,reject) Promise ...
- v74.01 鸿蒙内核源码分析(编码方式篇) | 机器指令是如何编码的 | 百篇博客分析OpenHarmony源码
本篇关键词:指令格式.条件域.类型域.操作域.数据指令.访存指令.跳转指令.SVC(软件中断) 内核汇编相关篇为: v74.01 鸿蒙内核源码分析(编码方式) | 机器指令是如何编码的 v75.03 ...
- 1.1 Qt Creater使用Python开发桌面软件的操作流程
Qt Creater及Python的下载与安装过程不再赘述,读者可自行在网上搜索相应的下载与安装方法. 首先我们打开Qt Creater,单击"Create Project"按钮或 ...
- RxJava + Retrofit源码解析
RxJava + Retrofit怎么请求网络,具体的用法这里就不讲了,本文只讲一些重点源码. 版本如下: okhttp : "com.squareup.okhttp3:okhttp:3.1 ...
- 漏洞复现:MS14-064 OLE远程代码执行漏洞
MS14-064OLE远程代码执行漏洞 攻击机:Kali Linux 2019 靶机:Windows 7 x64.x32 攻击步骤: 1.打开攻击机Kali Linux 2019系统和靶机Window ...
- 开发一款让我们慢慢变好的微信小程序
1. 前言 朋友,你还记得你想学编程最初的目的是什么吗? 先说说我的吧,我最初想学编程的目的只有一点,感觉编程很酷,会写代码的人很厉害!.随着后面参加工作,我马上产生了让我能够在编程这条路上继续走下去 ...
- HCNP Routing&Switching之RSTP
前文我们了解了vlan优化,vlan聚合技术super vlan相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16208997.html:今天我们来聊 ...
- MySQL8新增降序索引
MySQL8新增降序索引 桃花坞里桃花庵,桃花庵里桃花仙.桃花仙人种桃树,又摘桃花卖酒钱. 一.MySQL5.7 降序索引 MySQL在语法上很早就已经支持降序索引,但实际上创建的却仍然是升序索引,如 ...
- windbg的时间旅行实现对 C# 程序的终极调试
一:什么是时间旅行 简而言之就是把程序的执行流拍成vlog,这样就可以对 vlog 快进或者倒退,还可以分享给别人做进一步的分析,是不是想都不敢想. 很开心的是 windbg preview 版本中已 ...
- Linux下使用ssh测试端口是否开启
当服务器上不允许使用telnet时,可以使用ssh测试远程服务器端口是否开启 具体命令如下 -v 显示连接debug信息 -p port 指定端口 ssh -v -p 80 root@192.168. ...