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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。