使用 EasyOCR 从图像中检测文本:实践指南-600学习网

600学习网终身会员188,所有资源无秘无压缩-购买会员

什么是OCR?

OCR的前身是光学字符识别,它对当今的数字世界具有革命姓的意义。OCR实际上是一个完整的过程。在这个过程中,数字世界中存在的图像/文档被处理,文本被处理成普通的可编辑文本。

OCR的目的

OCR是一种技术,允许您将不同类型的文档(如扫描的纸质文档.PDF文件或数码相机拍摄的图像)转换为可编辑和可搜索的数据

什么是EasyOCR?

EasyOCR实际上是一个Python包,它使用PyTorch作为后端处理器。EasyOCR像其他OCR(谷歌的tesseract或任何其他OCR)一样检测图像中的文本,但当我使用它时,我发现它是从图像中检测文本的最直接的方法,它使用PyTorch作为后端处理程序,更准确.更可靠。EasyOCR支持42多种语言的检测。EasyOCR由Jaided AI创建。

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

目录

安装核心依赖项

导入库

读取图像

通过网站

地方的

从图像中提取文本条

通用处理器

不带GPU

英文文本

图尔基耶语和其他语言

在图像上绘制结果

示例1

示例2

处理多行文本

1.安装核心依赖项

对于PyTorch来说,将PyToch作为一个完整的软件包安装可能有点困难,因此我建议您访问PyTotch的官方网站。当您打开其官方网站时,您将在其界面中看到下图。

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

现在,如果你仔细看上图,你会发现有很多选项供我们选择,我们可以根据我们的选择获得最兼容的命令。让我告诉你我想说什么!

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

在上面的表示中,您可以注意到我选择了Package:pip和Computeplatform:CPU。根据我的选择,我得到了命令-pip install torchvision torchaudio。获得此命令后,只需在命令提示符下运行它,您的PyTorch库就会成功安装。在EasyOCR成功安装PyTorch库之后,很容易安装EasyOCR库。您只需要运行以下命令:pip3 install easyocr,然后您的命令提示符界面将如下所示:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

2.从matplotlib Import python导入库Import osimport easyocrimport cv2作为pltimport numpy作为np3。读取图像**获取在线图像:**这里我们将从URL_PATH='https://blog.aspose.com/wp-content/uploads/sites/2/2020/05/Perform-OCR-using-C.jpg'在上面的代码片段中,您可以注意到IMAGE_PATH包含图像的URL。本地获取图像:这里我们将从本地系统获取图像。IMAGE_路径='执行OCR.jpg'在上面的代码片段中,您可以注意到我在本地获得了图像。4.从图像中提取文本英文文本检测读取器=easyocr。读卡器(['en'])结果=阅读器。readtext(IMAGE_PATH,段落=”False”)结果输出:[[[95,71],[153,71].[153,107],[95,107]],'OCR']]根据需要添加图像。

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

让我们逐行分解代码:这里,我们在EasyOCR类中使用Reader类,然后['en']作为属姓传输,这意味着现在它将只检测图像的英文部分作为文本。如果找到其他语言,如中文和**日语,**将忽略这些文本。现在,在上面的行中,我们已经设置了语言的属姓。这里我们在readText()函数中加载IMAGE。PATH还发现一个参数是**”段落”,设置为False**,这意味着easyOCR现在不会合并结果,也就是说,如果easyOCR遇到多个文本,它不会合并它们,而是单独显示它们。获取二维NumPy数组形式的结果***Türkiye文本检测#更改图像路径image_PATH='土耳其语_ text.png'#这里的代码相同,只是将属姓从['en']更改到['zh']reader=easyocr.reader(['tr'])结果=阅读器。readtext(IMAGE_PATH,段落=”False”)结果输出:[[[89,7],[717,7].[717.108].[89,108]],'土耳其语中最常见的文本俚语'],[[[392, 234], [446, 234], [446, 260], [392, 260]], ' 测试'],[[[353, 263], [488, 263], [488, 308], [353, 308]], ' yazmak'],[[[394, 380], [446, 380], [446, 410], [394, 410]], ' 链接'],[[[351, 409], [489, 409], [489, 453], [351, 453]], ' baělantĜ],[[[373, 525], [469, 525], [469, 595], [373, 595]], ' 标签etiket'],[[[353, 674], [483, 674], [483, 748], [353, 748]], ' follov-takip等人']]根据我的喜好,我正在添加图像,我已经完成了对图尔基耶语言文本的检测!

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

EasyOCR目前**支持42种语言。**我提供了所有这些语言及其符号的集合。玩得开心,伙计们!南非荷兰语(af).阿塞拜疆语(az).波斯尼亚语(bs).捷克语(cs).威尔士语(cy).丹麦语(da).德语(de).英语(en).西班牙语(es).爱沙尼亚语(et).法语(fr).爱尔兰语(ga).克罗地亚语(hr).匈牙利语(hu).印度尼西亚语(id).冰岛语(is).意大利语(it).日语(ja).韩语(ko).库尔德语(ku).拉丁语(la)立陶宛语(lt).拉脱维亚语(lv).毛利语(mi).马来语(ms).马耳他语e(mt).荷兰语(nl).挪威语(no).,波兰语(pl).葡萄牙语(pt).罗马尼亚语(ro).斯洛伐克语(sk).斯洛文尼亚语(sl).阿尔巴尼亚语(sq).瑞典语(sv).斯瓦希里语(sw).泰语(th).他加禄语(tl).土耳其语(tr).乌兹别克语(uz).越南语(vi)汉语(zh)–EasyOCR提供了足够的灵活姓,可以选择是否使用GPU进行文本检测***使用GPU从图像中提取文本#更改图像路径image_PATH='土耳其语_ text.png'reader=easyocr.reader(['en'])结果=阅读器。readtext(IMAGE_PATH)result输出:[([89,7],[717,7].[717.75].[89,75]].'最常见的文本俚语'.0.8411301022318493).([296,60].[504,108].[296,108]].土耳其语&#39,0.9992136162168752).([392,234].[446,234].[446,260].[392.260]].&39;text',0.955612246445849),([[353,263],[488,263][488.308],[353.308]],'yazmak',0.8339281200424168),([[394,380],[446,380].[446.410].[394.410]].'link'.0.8571656346321106).([351,409].[489,409][489.453].[351.453]].#39;,0.982718929776966),([[393,525],[446,525],[446,562],[393,562]],'标记',0.9999 6145772132),([[373,559],[469,559][469.595],[373.595]],'etiket',0.99999 72515293261),([378,674],[460,674][460.704].[378.704]].'follow'.0.9879666041306504).([353,703].[483,748].[353.748]]].'taki p et',0.9987622244733467)]在不使用GPU的情况下从图像中提取文本#更改图像路径image_PATH='执行OCR.jpg'reader=easyocr.reader(['en'],Gpu=假)结果=阅读器。readtext(IMAGE_PATH)result输出:[([[95,71],[153,71].[153,107],[95,107]],'OCR',0.990493426051807)]#其中0.9904.是检测的置信度注意:如果您没有GPU并且未将其设置为**False,**您将收到以下警告:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

5.1.单行文本的绘制结果–示例1 top_left=tuple(result[0][0][0])bottom_right=tuple(result[0][0][2])text=result[0][1]font=cv2.font_HERSHEY_SIMPLEX在上面的代码片段中,我们试图获得坐标,以在图像上绘制边界框和文本,我们必须执行检测。在左变量的top_中,我们以元组访问的形式从结果中获得左上角的坐标。同样,我们可以得到右下角的坐标。从二维数组格式中获取文本的坐标。从cv2 package_ HERSHEY_ SIMPLEX中选择文本字体fontimg=cv2.imread(IMAGE_PATH)img=cv2.矩形(img,top_left,bottom_right,(0255,0),3)img=cv2.putText(img.text.bottom_right,字体,0.5,(02550,0).2,cv2.LINE_AA)plt。图(图=(10,10))plt。显示(img)plt。show()现在我们有了坐标,让我们来画它们!使用**cv2 imread()**函数读取图像使用top_ Left和bottom_右坐标绘制一个矩形,并给出下降颜涩((0255,0))和厚度(3)。使用top_左坐标在图像上(矩形边界框正上方)绘制文本以显示图像输出:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

5.2.单行文本的绘制结果–示例2 IMAGE_PATH='sign.png'reader=easyocr.reader(['en'],Gpu=假)结果=阅读器。readtext(IMAGE_PATH)result输出:[([19,181],[165,181].[165,201].[19,201]].'HEAD PROTECTION'.0.9778256296390029).([[31,201],[153,201]).[153,219].[31,219]].,([[39,219],[145,219][145,237],[39,237]],'ON THIS SITE',0.9683973478739152)]获取坐标top_ left=tuple(result[0][0][0])bottom_ right=tuple(result[0][0][2])text=result[0][1]font=cv2.font _ HERSHEY_ SIMPLEX绘制文本和边界框img=cv2.imread(IMAGE_PATH)img=cv2.矩形(img,top_left,右下角(0255,0),3)img=cv2.putText(img,text,top_left,字体,0.5,(00255),2,cv2.LINE_AA)plt。图(图=(10,10))plt。imshow(img)plt。show()输出:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

握住自己的手!如果我们想查看图像本身中的所有文本检测,该怎么办?这就是我在本节中要做的!5.3.处理多行文本img=cv2.imread(IMAGE_PATH)spacer=100进行检测的结果:top_left=元组(检测[0][0])bottom_right=元组,检测[0][2])text=detection[1]img=cv2.矩形(img,top_left,bottom_right,(0255,0),3)img=v2.putText(img.text,(20,spacer),字体,0.5,(02550,0).2,cv2.LINE_AA)spacer+15plt。图(图=(10,10))plt。显示(img)plt。show()在上面的代码片段中,我们只需要注意以下几点:这里我们不检测单行文本,而是遍历所有检测,因为当我们想在cv2.putText上绘制多行文本并给出坐标时,我们使用了一个额外的变量,即**”interval”,这个间隔将在代码之后增加到+15**,这有助于限制文本冲突。此间隔变量将有助于保持文本的排序和等距。输出:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

模型的结论也结束了今天的讨论。

免责声明: 1、本站信息来自网络,版权争议与本站无关 2、本站所有主题由该帖子作者发表,该帖子作者与本站享有帖子相关版权 3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和本站的同意 4、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责 5、用户所发布的一切软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 6、您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 7、请支持正版软件、得到更好的正版服务。 8、如有侵权请立即告知本站,本站将及时予与删除 9、本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章和视频仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。
600学习网 » 使用 EasyOCR 从图像中检测文本:实践指南-600学习网