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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • goland2021激活码(注册激活)

    (goland2021激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~3Y…

    2022年3月30日
    1.3K
  • springboot集成dubbo的配置(dubbo项目如何部署)

    1.Dubbo框架Dubbo框架是一个高性能、重量轻、基于java的RPC框架。Dubbo提供了三个关键功能,包括基于接口的远程调用、容错和负载平衡,以及自动服务注册和发现。Dubbo可以和Spring框架无缝集成。官方的Dubbo框架如下图所示:其核心部分包含:1.远程通讯:提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。2.集群容错:提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡…

    2022年4月16日
    47
  • 哈佛结构与普林斯顿结构_普林斯顿大学和哈佛大学哪个更厉害

    哈佛结构与普林斯顿结构_普林斯顿大学和哈佛大学哪个更厉害1. 冯·诺依曼结构   冯·诺依曼结构,又称为普林斯顿体系结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。取指令和取操作数都在同一总线上,通过分时复用的方式进行;缺点是在高速运行时,不能达到同时取指令和取操作数,从而形成了传输过程的瓶颈。由于程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指

    2022年10月5日
    1
  • golang 2021激活 3月最新注册码

    golang 2021激活 3月最新注册码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    100
  • html的网页代码_html字体代码大全

    html的网页代码_html字体代码大全常用HTML代码解释 一、文字1.标题文字<h#>……….</h#>#=1~6;h1为最大字,h6为最小字 2.字体变化<font>……….</font>【1】字体大小<fontsize=#>……….</font>#=1~7;数字愈大字也愈大【2】指定字型<fontface=…

    2022年9月23日
    2
  • 软件性能测试知识汇总[通俗易懂]

    软件性能测试知识汇总[通俗易懂]一软件性能概述1.软件性能的概念:软件性能是与软件功能相对应的一种非常重要的非功能特性,表明了软件系统对时间及时性及资源经济性的要求。2.不同角色对软件性能的理解(1)从系统用户角度看软件性

    2022年8月2日
    9

发表回复

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

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