easyOCR_功能测试包括

easyOCR_功能测试包括EasyOCR是一个用python编写的OCR三方库。git地址为:https://github.com/JaidedAI/EasyOCR。由于笔者从事的是java开发,对python并不熟悉,所以实际上是从python开发环境安装开始的。类似于jdk,python开发也依赖于python环境,而因为python各版本之间差异很大,很多时候不同组件依赖的是不同的python版本,甚至小版本之间也存在兼容性问题,所以网上推荐使用的是Anaconda环境管理软件。Anaconda可以隔离出多个pytho

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

EasyOCR是一个用python编写的OCR三方库。git地址为:https://github.com/JaidedAI/EasyOCR

由于笔者从事的是java开发,对python并不熟悉,所以实际上是从python开发环境安装开始的,如果读者对python比较熟悉,可以直接右上角。

类似于JDK,python开发也依赖于python环境,而因为python各版本之间差异很大,很多时候不同组件依赖的是不同的python版本,甚至小版本之间也存在兼容性问题,所以网上推荐使用的是Anaconda环境管理软件。Anaconda可以隔离出多个python环境,比如可以创建一个python3.6的环境同时再创建一个python3.7的环境,而在使用时进行选择。

安装地址:https://www.anaconda.com/products/individual

由于我们是在64位window 7下进行安装,我们选用64-Bit Graphical Installer (466 MB)。安装完成后,打开Anaconda Navigater。

easyOCR_功能测试包括

默认的root环境里有1000多个类库,我们大多用不到,如果项目使用的是这个环境,那么用PyCharm打开的时候会加载很久。所以我们还是新建一个环境,命名为easyocr,使用pyhton3.7。

Note 1: for Windows, please install torch and torchvision first by following the official instruction here https://pytorch.org. On pytorch website, be sure to select the right CUDA version you have. If you intend to run on CPU mode only, select CUDA = None.

在EasyOCR官网的git上我们可以看到上述说明,因为我们是windows环境,我们需要首先安装torch

easyOCR_功能测试包括

笔者一开始是用pip安装的,但是总是安装失败,后来发现可以用这个搜索找到,勾选后安装,由于资源较大,又受到墙的限制,下载时间很长(大概一个多小时),需要耐心等待

easyOCR_功能测试包括

安装完以后,点击绿色三角,选择Open Terminal打开命令行,该命令行即使用的是easyocr这个python环境

pip install easyocr

Jetbrains全家桶1年46,售后保障稳定

然后我们根据git的说明安装easyocr

虽然用记事本也能写python,但是习惯java后,python的语法实在是难以接受,所以一个好的IDE可以避免诸如少一个空格导致程序无法运行的麻烦,这边还是推荐使用JetBrain的PyCharm,就是IDEA的Python版。

easyOCR_功能测试包括

就像配置JDK一样,python需要配置解释程序(Interperter)。

easyOCR_功能测试包括

像上图一样配置好路径,点击ok。

easyOCR_功能测试包括

这样我们就能在已有的解释程序中选择了。

import easyocr
reader = easyocr.Reader(['ch_sim', 'en'])
result = reader.readtext('d:/test2.png')
print(result)

代码非常简单,我们一般识别中文与英文,所以是ch_sim和en。值得注意的是,等于号(=)两边要留空格,逗号(,)后面也要留空格,这对于java程序员来说有点匪夷所思,好在PyCharm有丰富的提示。

接下去我们测试一下这个类库的效果

笔者的硬件配置 CPU:i3 双核 ;内存 8G;独立显卡 无

测试用图片是pdf转换为png的图片,像素为1654×2339

结果直接死机了,可见这个类库非常吃硬件资源,相比java的Tesseract-OCR可以说是天差地别,当然python这种解释性语言性能低下可能占了很大一部分原因,据说有人测试同样的代码java性能比python高两个数量级

我只能尝试裁切图片,减小图片的大小,这次是1255×247

easyOCR_功能测试包括

在CPU风扇呼啸2分钟以后,运行出如下结果

[([[384.8713347040338, 53.16253799371492], [437.70896734843177, 62.502147801594866], [431.1286652959662, 94.83746200628508], [378.29103265156823, 86.49785219840513]], ‘buy’, 0.9799087047576904), ([[432, 54], [927, 54], [927, 94], [432, 94]], ‘true love, true friendship and good health.’, 0.11305739730596542), ([[52, 58], [382, 58], [382, 90], [52, 90]], ’17. It is true that Ioney can’, 0.03037017211318016), ([[946.9820268028815, 100.13170185094941], [1029.8601529368057, 110.95156339987997], [1023.0179731971185, 145.8682981490506], [941.1398470631945, 135.04843660012003]], ‘happy.’, 0.4561459720134735), ([[396.9011154884105, 100.1539042094367], [459.74278914557516, 108.58878442052084], [454.0988845115895, 142.84609579056328], [391.25721085442484, 134.41121557947915]], ‘long’, 0.9857617020606995), ([[615, 101], [714, 101], [714, 146], [615, 146]], ‘enough’, 0.9845817685127258), ([[52, 104], [398, 104], [398, 134], [52, 134]], ’18. A lot ofmillionaires have’, 0.23501794040203094), ([[456, 104], [616, 104], [616, 132], [456, 132]], ‘lives because’, 0.4965916574001312), ([[710, 104], [946, 104], [946, 137], [710, 137]], ‘Ioney Iakes them’, 0.24719364941120148), ([[49, 147], [1037, 147], [1037, 188], [49, 188]], ‘I9. Money may bring trouble to people when they believe money means everything.’, 0.011776169762015343), ([[49, 196], [1003, 196], [1003, 235], [49, 235]], ’20. People need to have friends to talk with and to ask for help from time to time.’, 0.008673712611198425)]

我们根据坐标整理一下顺序

17. It is true that Ioney can buy true love, true friendship and good health.

18. A lot ofmillionaires have long lives because enough Ioney Iakes them happy.

I9. Money may bring trouble to people when they believe money means everything.

20. People need to have friends to talk with and to ask for help from time to time.

错误的地方已经用红色标出了,整体正确率还是比较高的,只不过不知道为什么前两句拆的这么散

然后是中文的测试

easyOCR_功能测试包括

运行结果为

[([[44, 0], [641, 0], [641, 28], [44, 28]], ‘0你是不是也有过这样的经历:白天学习的数学公式和推导过程,’, 0.2881079316139221), ([[654, 2], [814, 2], [814, 28], [654, 28]], ‘晚上出现在梦中;’, 0.9775317907333374), ([[6, 32], [200, 32], [200, 58], [6, 58]], ‘白夭练习过英语对话,’, 0.5491944551467896), ([[210, 32], [826, 32], [826, 60], [210, 60]], “梦中你就可以非常流利地和外国人交谈’通常我们会称这种现象”, 0.35171982645988464), ([[778, 62], [826, 62], [826, 90], [778, 90]], ‘做梦’, 0.9951374530792236), ([[4, 64], [250, 64], [250, 90], [4, 90]], ‘为^日有所思,夜有所梦”‘, 0.7436116337776184), ([[274, 64], [768, 64], [768, 90], [274, 90]], ‘最近,科学家对这种现象做了进一步研究6结果发现,’, 0.6338546276092529), ([[4, 94], [390, 94], [390, 122], [4, 122]], ‘真的可以帮助我们学习和记忆新学的知识,’, 0.9657901525497437), ([[402, 94], [648, 94], [648, 122], [402, 122]], ‘梦中的你的确是在学习的6’, 0.47411224246025085)]

整理后为

0你是不是也有过这样的经历:白天学习的数学公式和推导过程,晚上出现在梦中;白夭练习过英语对话,梦中你就可以非常流利地和外国人交谈’通常我们会称这种现象为^日有所思,夜有所梦最近,科学家对这种现象做了进一步研究6结果发现,做梦真的可以帮助我们学习和记忆新学的知识,梦中的你的确是在学习的6

文字的识别还是非常准确的,但是标点符号大部分都不对,因为官网示例的都是告示板,一般是不会有标点符号的,这方面的缺陷也可以理解

最后我们尝试一下古文的识别

easyOCR_功能测试包括

运行结果为

[([[67, 4], [263, 4], [263, 29], [67, 29]], ‘不修德礼而专权骄恣’, 0.7633501887321472), ([[277, 4], [369, 4], [369, 29], [277, 29]], ‘危亡之祸’, 0.9936830997467041), ([[384, 4], [668, 4], [668, 32], [384, 32]], ‘可翘足而待;愿明府一心王室,’, 0.8909436464309692), ([[678, 4], [838, 4], [838, 30], [678, 30]], ‘勿与交通6″太守’, 0.35901787877082825), ([[6, 6], [54, 6], [54, 30], [6, 30]], ‘之亲’, 0.9937400221824646), ([[6, 32], [76, 32], [76, 58], [6, 58]], ‘固遣之,’, 0.5406157970428467), ([[88, 32], [180, 32], [180, 58], [88, 58]], ‘邰不能止’, 0.9094278812408447), ([[192, 32], [578, 32], [578, 58], [192, 58]], ‘请求自行,许之6邰遂所在迟留以观其变’, 0.35050278902053833), ([[592, 32], [700, 32], [700, 58], [592, 58]], ‘行至扶风0,’, 0.6177576780319214), ([[712, 32], [810, 32], [810, 58], [712, 58]], ‘而宪就国6’, 0.7293225526809692), ([[5, 56], [182, 56], [182, 86], [5, 86]], ‘凡交通者皆坐免官,’, 0.9450605511665344), ([[194, 60], [370, 60], [370, 84], [194, 84]], ‘汉中太守独不与焉’, 0.974287748336792)]

整理后为

之亲不修德礼而专权骄恣危亡之祸可翘足而待;愿明府一心王室,勿与交通6″太守固遣之邰不能止请求自行,许之6邰遂所在迟留以观其变行至扶风0而宪就国6凡交通者皆坐免官,汉中太守独不与焉

同样,文字的识别还是非常准确的,但是标点符号与特殊符号基本无法识别

总结:

EasyOCR对于文字(无论英文还是中文)的识别准确率很高,但是对于标点符号与特殊符号的识别准确率很低。此外,该三方库对硬件设备的要求很高,官方推荐支持CUDA的独立显卡可以提高运行效率。随着图片的增大,运行时间呈指数增长。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234959.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pytest-allure_什么是思想报告

    pytest-allure_什么是思想报告前言allure是一个report框架,支持java的Junit/testng等框架,当然也可以支持python的pytest框架,也可以集成到Jenkins上展示高大上的报告界面。mac环境:

    2022年7月29日
    3
  • 正確使用 SetCapture ReleaseCapture [譯]「建议收藏」

    正確使用 SetCapture ReleaseCapture [譯]「建议收藏」本文描述瞭如何正確處理自定義窗口和控件中的鼠標捕獲操作。原文鏈接: http://www.codeproject.com/Tips/127813/Using-SetCapture…correctly.aspx原作者: pasztorpisti轉載請註明出處:http://www.imoldman.com/2010/11/30/using-setcaptu…ture-corre

    2022年5月24日
    31
  • java 构造器 构造方法_Java构造器(构造方法/constructor)

    java 构造器 构造方法_Java构造器(构造方法/constructor)我们先来看一下什么是构造器:1、构造器也叫构造方法或构造函数,分为有参构造器和无参构造器;2、构造器也是一种方法,只不过是一种特殊的方法,它会在对象创建的时候被调用;3、构造器最大的作用就是在创建对象的时候进行对象的初始化,有参构造器可以实现对象传参(后面会比较着来看有参构造器方便在哪儿了);4、一个类可以有零个(如果没有自己定义编译器会帮你提供无参构造器)或多个构造器(【重载】不知道重载定义的小…

    2025年6月11日
    0
  • linux创建oracle数据库实例_oracle创建多个数据库

    linux创建oracle数据库实例_oracle创建多个数据库一、切换到Oracle用户su–oracle二、登录到sys用户sqlplus/assysdba三、创建临时表空间//查询临时表空间有哪些selectnamefromv$tempfile;//创建(注意替换LRMS_TMP为自己的表名)createtemporarytablespaceLRMS_TMPtempfile’/oracle/app/oracle/oradata/orcl/LRMS_TMP.dbf’size100mautoextendon

    2022年9月16日
    0
  • apk伪造签名_如何反编译app

    apk伪造签名_如何反编译app反编译apk过程反编译目的需要的环境和工具工具环境反编译流程apktool解包导出apk的源代码修改Smali代码无法选中文本框添加开机自启Smali源码Java源码apktool打包apk签名模拟器安装apk验证apk反编译目的反编译apk:1  对apk应用进行激活成功教程并重新打包,反编译就是逆向的过程。  Androidapk是用高级语言源代码,通常是Java,对apk的逆向智能转换成汇编语言,即Smali。  这次反编译的目的是为了学习apk的软件安全,了解apk的编译过程。现有一个apk的

    2022年9月2日
    3
  • 常用的微信编辑器

    常用的微信编辑器

    2021年10月12日
    149

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号