,,Python 图片文字识别的实现之PaddleOCR

,,Python 图片文字识别的实现之PaddleOCR

OCR方向的工程师之前一定听说过PaddleOCR,其主要推荐的PP-OCR算法被国内外企业开发者广泛使用。短短半年时间,Star累计数量已超过15k,并频频位居Github Trending和Paperswithcode的日榜和月榜榜首。

目录

项目使用项目结构环境部署1。安装Anaconda并构建一个虚拟环境2。包下载测试代码参数补充汇总

前言

什么是OCR?

光学字符识别(OCR)是指对文字材料的图像文件进行分析和识别,以获取文字和版面信息的过程。简而言之,检测图像中的文本信息,并且识别文本的内容。

那么有哪些应用场景呢?

其实在我们的日常生活中到处都有ocr的影子,比如疫情期间的身份证识别和输入信息、车辆车牌号识别、自动驾驶等等。在我们的生活中,机器学习已经越来越扮演着重要的角色,不再是一件神秘的事情。

OCR的技术路线是什么?

ocr的运行模式如下:输入-图像预处理-文本检测-文本识别-输出。

本文主要介绍一个博主用过的很好的OCR开源项目,在这里分享给大家——PaddleOCR。

项目Github地址:PaddleOCR地址

我会根据新的联系状态来梳理核实项目使用的流程。

项目使用

先从github克隆项目,慢慢分析。

项目结构

我们先来看看项目的结构。

发现项目有中文介绍,很方便。点开,按照官方指示开始操作。

环境部署

点击README.md,从文档教程可以看到,第一步是教你如何安装环境。

由于内容太多,我就做个总结,方便大家直接上手。

1、安装Anaconda,构造虚拟环境

这里你可以参考我的另一篇文章,这篇文章非常详细:Python机器学习第1章演示了环境配置的流程

官方的虚拟环境是python3.8,我们也构建了一个,打开Anaconda提示符。

输入命令:

conda create-n paddle _ env python=3.8

激活环境:

conda激活踏板_环境

2、依赖包下载

桨式安装

pip安装paddle paddle-I https://mirror.baidu.com/pypi/simple

Layoutparser安装

pip 3 install-U https://paddle ocr . bj . BCE Bos . com/whl/layout parser-0 . 0 . 0-py3-none-any . whl

Shapely安装,这个需要下载,下载地址:Shapely下载地址

我选了这个。

安装命令:

pip安装Shapely-1 . 8 . 0-cp38-cp38-win _ amd64 . whl

Paddleocr安装

pip安装paddle ocr-I https://mirror.baidu.com/pypi/simple

好了,有很多环境,都装好了就开始用。

测试代码

官方有两种模式,一种是命令行执行,一种是代码执行。为了直观地看到配置,我在这里使用代码模式。

准备一张有文字的图片。

测试代码如下

#!/user/bin/env python

#编码=utf-8

'''

@project : ocr_paddle

@作者:胡艺

@file : test.py

@ide : PyCharm

@时间:2021-11-15 14:56:20

'''

从paddleocr导入PaddleOCR,draw_ocr

# Paddleocr目前支持的多语言可以通过修改lang参数进行切换。

#例如,` ch `、` en `、` fr `、` German `、` Korean `、` Japan`。

ocr=paddle ocr(use _ angle _ cls=True,use_gpu=False,

lang='ch') #只需要运行一次就可以将模型下载并加载到内存中

img_path='。/data/2.jpg '

result=ocr.ocr(img_path,cls=True)

对于结果中的行:

# print(第[-1][0]行,第[-1][1]行)

打印(行)

#显示结果

从PIL进口图片

image=Image.open(img_path)。转换(“RGB”)

box=[结果中第行的第[0]行]

txts=[line[1][0]for line in result]

分数=[结果中第行的第[1][1]行]

im_show=draw_ocr(image,box,txts,scores,font_path='。/fonts/simfang.ttf ')

im _ show=image . from array(im _ show)

im_show.save('result.jpg ')

代码描述

1.因为我的电脑没有显卡,所以设置了use_gpu=False。

2.在显示结果部分,已识别的字符将标有方框,并且将显示识别结果。

核实一下

我们可以看到打印出来的内容有每个识别句子的图片位置,还有识别结果和可信度。在上面的结果图中,每个句子对应的单词都被框了起来。效果很好!

参数补充

官方也给出了一些调整输出内容的参数。请参见quickstart.md文件。参数补充:

-单独使用检测:将`- rec设置为` false。

-仅使用标识:将`- det设置为` false。

官方还提供了标准的json结构输出数据。

PP-Structure的返回结果是一个由dict组成的列表,如下例所示

``贝壳

[{ 'type': 'Text ',

bbox': [34,432,345,462],

' res': ([[36.0,437.0,341.0,437.0,341.0,446.0,36.0,447.0],[41.0,454.0,125.0,453.0,125.0,459.0,41.0,460.0]],

[('Tigure-6。美国有线电视新闻网和IPT模型的性能使用迪福伦',0.90060663),('帐篷',0.465441)])

}

]

```

总结

总的来说这个项目很有意思,关于培训部分就不赘述了。毕竟准备资料还是挺麻烦的。我稍后会考虑这个项目是否可以变成一个有用的工具。

分享:

我们根本不需要一个最终的目的地,只要一直往前走,路只要不停止就会一直延伸下去。—— 《进击的巨人》

如果这篇文章对你有帮助,请不要吝啬你的赞美。谢谢大家!

这就是关于Python图像字符识别的PaddleOCR的这篇文章。有关Python字符识别的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: