0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

三步骤快速实现PaddleOCR实时推理

英特尔物联网 来源:英特尔物联网 作者:武卓 2022-06-09 17:18 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者

英特尔AI软件布道师

武卓博士

曾主持国家级及省部级科研项目十余项,已授权国际国内专利十余项。

前言:该技术能让PaddleOCR的开发者在笔记本电脑上即可获得超越40FPS的速度,极大降低了PaddleOCR的部署成本。

简介

在上篇文章中我们介绍过,光学字符识别(OCR)技术可以将文件、图片或自然场景中的文字信息进行识别并提取,与一系列的自然语言处理技术联合使用,能够完成诸如文档票据的文字信息自动化处理、实时图片文字翻译等任务。通过机器的自动化处理,可以帮助财务人员在处理票据时省却大量手工输入的工作量,也能够方便我们在出国旅游时随时对异域中的外国文字信息进行实时翻译、减少语言不通带来的不便。

既然OCR技术如此实用,有没有什么方法能让我们利用自己手边的设备,随时使用到这项技术呢?答案当然是肯定的。接下来,我们将以百度开源的PaddleOCR1-2 技术为例,具体介绍如何利用英特尔开源的OpenVINO 工具套件,仅使用我们手边都有的CPU就能轻松实现对PaddleOCR的实时推理。

本篇是用OpenVINO 工具套件实现基于OCR及NLP轻松实现信息自动化提取的系列博客中的第二篇。我们将简要介绍PaddleOCR的原理,以及利用OpenVINO 工具套件实现PaddleOCR推理加速的工作流程。同样只需利用一页Jupyter notebook,依照简单的三个步骤,即可利用CPU实现基于PaddleOCR的实时文字信息提取。

PaddleOCR原理简介

PaddleOCR是基于深度学习框架PaddlePaddle的一项OCR技术,具有超轻、模型小、便于移动端及服务器端部署等特点。整个PaddleOCR技术的工作流程如下图所示,主要包括文本检测、方向分类、以及文本识别三部分。

28d278c6-db51-11ec-ba43-dac502259ad0.png

文本检测任务是找出图像或视频中的文字位置。不同于目标检测任务,目标检测不仅要解决定位问题,还要解决目标分类问题。但是,文本检测也面临一些难点,比如:自然场景中的文本具有多样性,文字大小、方向、长度、形状、语言都会有不同。有的时候,文字重叠或者密度较高,这些都会影响最终文本检测的效果。目前常用的文本检测方法有基于回归以及基于分割的方法。而在PaddleOCR中,我们选取的是基于分割的DBNet3方法。

DBNet的工作原理如下图所示。针对基于分割的方法需要使用阈值进行二值化处理而导致后处理耗时的问题,DBNet提出了一种可学习阈值的方法,并巧妙地设计了一个近似于阶跃函数的二值化函数,使得分割网络在训练的时候能端对端的学习文本分割的阈值。自动调节阈值不仅带来精度的提升,同时简化了后处理,提高了文本检测的性能。

2914895a-db51-11ec-ba43-dac502259ad0.png

方向分类指的是针对图片中某些经文本检测得到的bounding box中的文字方向为非水平排列的情况,对bounding box的方向进行检测。如果发现bounding box中的文字方向为非水平排列,则对该bounding box的方向进行纠正,使其旋转为文字水平排列的方向,方便下一步的文本识别。

文本识别的任务是将文本检测得到的bounding box中的具体的文字内容识别出来。文本识别的算法有针对规则文本以及不规则文本识别的算法。对于规则文本,主流的算法CTC(Conectionist Temporal Classification)和基于Sequence2Sequence 的方法。

在本文demo中,我们采用的是基于CTC的方法。由于文本识别任务的特殊性,输入数据中存在大量的上下文信息,卷积神经网络的卷积核特性使其更关注于局部信息,缺乏长依赖的建模能力,因此仅使用CNN很难挖掘到文本之间的上下文联系。

为了解决这一问题,首先通过使用CRNN (Convolutional Recurrent Neural Network)4 ,利用卷积网络提取图像特征,并同时引入了双向 LSTM(Long Short-Term Memory) 用来增强上下文建模。最终将输出的特征序列输入到CTC模块, 通过ctc归纳字符间的连接特性,直接解码序列结果。该结构被验证有效,并广泛应用在文本识别任务中, 如下图所示。

2952c0b2-db51-11ec-ba43-dac502259ad0.png

5分钟 3步骤

快速实现PaddleOCR实时推理

在最新版本的OpenVINO 2022.1中,已经实现了对基于PaddlePaddle深度学习框架的深度学习模型的支持。而PaddleOCR作为一项深受广大开发者喜爱的开源技术,其中开源的预训练模型已经可以在OpenVINO 2022.1版本中直接进行模型读取以及加速推理。

接下来,我们将通过代码示例,介绍如何按照简单的三个步骤,实现OpenVINO 工具套件对PaddleOCR的加速推理。整个工作流程如下图所示:

299100de-db51-11ec-ba43-dac502259ad0.png

其中OpenVINO 工具套件会对PaddleOCR中的文本检测以及文本识别模型进行读取以及推理加速。本次demo中我们展示的是利用自己的网络摄像头,将实时获取的视频流中的文字信息利用PaddleOCR进行提取。当然,开发者也可以上传图片,利用OpenVINO 工具套件对PaddleOCR的推理实现对图片中的文字信息进行提取。

步骤一:下载需要使用的PaddleOCR预训练模型,并完成模型的读取与加载

在导入需要使用到的相应Python包后,首先需要对将要使用的PaddleOCR开源预训练模型进行下载。本次demo中使用到的是轻量化的"Chinese and English ultra-lightweight PP-OCR model (9.4M)"模型。由于PaddleOCR中包含了文本检测及文本识别两个深度学习模型,因此,我们首先定义一个模型下载函数,如下图所示。

2a182064-db51-11ec-ba43-dac502259ad0.png

接下来,完成文本检测模型的下载,

2a52e316-db51-11ec-ba43-dac502259ad0.png

以及推理引擎的初始化、文本检测模型的读取以及在 CPU上面的加载。

2a91e19c-db51-11ec-ba43-dac502259ad0.png

再然后,完成文本识别模型的下载,

2adfa008-db51-11ec-ba43-dac502259ad0.png

以及文本识别模型的读取以及在CPU上面的加载。其中,有一步需要特别说明的是,动态输入的处理

由于文本识别模型的输入是文本检测得到的一系列bounding box图像,而图像中的字体由于大小和文字长短程度不一,就造成了文本识别模型的输入是动态输入的。与以往版本需要对图像尺寸进行重调整(resize)而将模型输入尺寸固定、从而可能引起性能损失的处理方法不同的是,OpenVINO 2022. 1版本已经可以很好的支持模型的动态输入。

在CPU上进行文本识别模型加载之前,只需要对于输入的若干维度中具有动态输入的维度赋值-1或申明动态输入尺寸的上限值,比如Dimension(1,512),即可完成对模型动态输入的处理。接下来,即可按常规步骤完成在CPU上加载文本识别模型。

2b000ff0-db51-11ec-ba43-dac502259ad0.png

步骤二:为文本检测及文本识别定义必要的前处理及后处理函数。

为文本检测模型定义必要的前处理函数,如下图所示

2b3b59fc-db51-11ec-ba43-dac502259ad0.png

为文本识别模型定义必要的前处理函数,如下图所示

2b7b294c-db51-11ec-ba43-dac502259ad0.png

2bbd3b98-db51-11ec-ba43-dac502259ad0.png

2bdc2742-db51-11ec-ba43-dac502259ad0.png

为文本检测模型定义后处理函数,将文本检测模型的推理结果转为bounding box形式,作为文本识别模型的输入,如下图所示。

2c14223c-db51-11ec-ba43-dac502259ad0.png

步骤三:利用OpenVINO 工具套件推理引擎(Runtime)针对摄像头采集视频进行实时推理

2c9cb12e-db51-11ec-ba43-dac502259ad0.png

定义运行PaddleOCR模型推理的主函数,主要包括以下四个部分:

01运行网络摄像头,将捕捉到的视频流作为paddleOCR的输入

2cc9adbe-db51-11ec-ba43-dac502259ad0.png

02准备进行文本检测和文本识别的视频帧

2d28f3aa-db51-11ec-ba43-dac502259ad0.png

03针对文本检测进行推理

2d81d36c-db51-11ec-ba43-dac502259ad0.png

根据文本检测得到的bounding box,进行文本识别推理

2e02ab54-db51-11ec-ba43-dac502259ad0.png

04将文本提取的结果可视化

2e2581d8-db51-11ec-ba43-dac502259ad0.png

结果讨论

下面我们来看看运行结果吧:

我们可以看到,对于网络摄像头采集的视频流中的文字提取效果还是很不错的。仅仅利用CPU进行推理,也可以得到30FPS以上的性能,可以说能够达到实时的推理效果!当然,除了视频流作为输入,开发者还可以上传图片,进行文本信息提取。以下是针对上传图片中印刷体文字和手写体文字信息提取的一些测试效果。

你还在等什么,快来根据我们提供的源代码,在自己的个人电脑上尝试一下吧!

小结

OCR具有将图片、扫描文档或自然场景中的文字信息识别转化为数字化、机器编码方式存储的优势。将OCR进行文字识别的结果与自然语言处理中的NLP技术相结合,能够实现自动化的信息提取,为我们免去手动输入信息填写的麻烦,并有助于信息的结构化存储与查找。在本次系列博客的第二篇中,我们简要介绍了PaddleOCR的工作原理,并提供了一个基于OpenVINO 工具套件实现PaddleOCR的Jupyter notebook demo。可以方便读者在阅读的同时,下载源码并在自己的电脑端利用CPU来轻松实现PaddleOCR的加速推理。

原文标题:用OpenVINO™ 轻松实现PaddleOCR实时推理 | 开发者实战

文章出处:【微信公众号:英特尔物联网】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 英特尔
    +关注

    关注

    61

    文章

    10320

    浏览量

    181065
  • OCR
    OCR
    +关注

    关注

    0

    文章

    176

    浏览量

    17277
  • 深度学习
    +关注

    关注

    73

    文章

    5604

    浏览量

    124615

原文标题:用OpenVINO™ 轻松实现PaddleOCR实时推理 | 开发者实战

文章出处:【微信号:英特尔物联网,微信公众号:英特尔物联网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    菱FX3U串口PLC远程编程实现方法(下)

    下面介绍如何利用华辰智通Hinet网关完成对菱FX3U串口PLC的远程编程操作。 远程编程整体分为五个步骤: 第一:开启华辰智通Hinet工业智能网关,配置串口相关参数; 第二
    的头像 发表于 04-21 11:22 185次阅读
    <b class='flag-5'>三</b>菱FX3U串口PLC远程编程<b class='flag-5'>实现</b>方法(下)

    三步教你鉴别星贴片电容CL21B104KBCNNNC 的真伪

    要鉴别星贴片电容CL21B104KBCNNNC的真伪,可通过以下三步进行详细观察与比对: ​ 第一:观察外观与包装细节 字迹与表面处理 真品字迹清晰、字体标准,无模糊或重影;表面光滑匀称,无气泡
    的头像 发表于 04-03 15:50 105次阅读
    <b class='flag-5'>三步</b>教你鉴别<b class='flag-5'>三</b>星贴片电容CL21B104KBCNNNC 的真伪

    如何在边缘AI应用场景中实现高性能、低功耗推理(上)

    送回EndPoint设备。这种方法需要巨大的带宽才能将海量数据传输到云端。边缘设备越来越多地使用AI推理技术,以实现快速实时响应并提高数据隐私和安全性,同时避免与云连接产生的延迟
    的头像 发表于 03-03 14:18 6589次阅读
    如何在边缘AI应用场景中<b class='flag-5'>实现</b>高性能、低功耗<b class='flag-5'>推理</b>(上)

    如何在边缘AI应用场景中实现高性能、低功耗推理(上)

    。这种方法需要巨大的带宽才能将海量数据传输到云端。 边缘设备越来越多地使用AI推理技术,以实现快速实时响应并提高数据隐私和安全性,同时避免与云连接产生的延迟和成本。这也降低了功耗,使其
    的头像 发表于 02-27 07:48 1w次阅读
    如何在边缘AI应用场景中<b class='flag-5'>实现</b>高性能、低功耗<b class='flag-5'>推理</b>(上)

    CANDTU设备上云实战:两完成接入,三步玩转数据

    CANDTU云平台既能本地看数,又能远程上云分析,但设备怎么接入?本期手把手教你两完成配置,三步掌握数据查看技巧。CANDTU系列设备:满足多样化传输需求ZLG致远电子CANDTU系列包含
    的头像 发表于 02-14 11:39 242次阅读
    CANDTU设备上云实战:两<b class='flag-5'>步</b>完成接入,<b class='flag-5'>三步</b>玩转数据

    沐曦曦云C500/C550 GPU产品适配PaddleOCR-VL-1.5模型

    PaddleOCR-VL 系列的全新迭代版本PaddleOCR-VL-1.5今天正式上线,沐曦曦云C500/C550 Day 0 适配PaddleOCR-VL-1.5模型,助力PaddleOC
    的头像 发表于 01-30 10:19 1300次阅读
    沐曦曦云C500/C550 GPU产品适配<b class='flag-5'>PaddleOCR</b>-VL-1.5模型

    200V/346V相电适配秘诀!优比施UPS三步解决跨区域供电难题

    相电压时,是选择冒着风险强行运行,还是投入巨资改造整个电力基础设施?这道难题,如今有了更优雅、更高效的破解之道。优比施凭借深厚的电力电子技术积淀,提炼出三步核心秘诀,帮助
    的头像 发表于 12-19 08:35 534次阅读
    200V/346V<b class='flag-5'>三</b>相电适配秘诀!优比施UPS<b class='flag-5'>三步</b>解决跨区域供电难题

    使用 Docker 一键部署 PaddleOCR-VL: 新手保姆级教程

    作者:飞桨开发者技术专家 刘力 | 适合人群:刚接触 PaddleOCR-VL + Docker部署的同学 | 学习目标:从一台刚装好的 Ubuntu 24.04 开始,完成 Docker 环境准备
    的头像 发表于 12-18 18:26 6771次阅读
    使用 Docker 一键部署 <b class='flag-5'>PaddleOCR</b>-VL: 新手保姆级教程

    变频器调试三步骤

    变频器作为现代工业自动化控制的核心设备,其调试过程直接关系到设备运行效率与稳定性。本文将系统介绍变频器调试的大关键步骤——参数设置、空载测试与负载测试,并结合实际案例解析常见问题及解决方案,帮助
    的头像 发表于 12-03 07:35 1345次阅读
    变频器调试<b class='flag-5'>三步骤</b>

    迅为RK3588开发环境搭建“三步曲”,从零到一轻松上手!

    迅为RK3588开发环境搭建“三步曲”,从零到一轻松上手!
    的头像 发表于 12-01 11:51 1326次阅读
    迅为RK3588开发环境搭建“<b class='flag-5'>三步</b>曲”,从零到一轻松上手!

    利用Verdi调试协处理器的实现步骤

    本次给大家介绍的是利用Verdi调试协处理器的实现步骤。 有时为了观察协处理器运行情况,需要查看协处理器接口的信号波形,此时可以用Verdi来查看主处理器发给协处理器的自定义指令以进一追踪协处理器
    发表于 10-30 08:26

    工程师整理:UPS电源选购“三步法”,从看懂参数到下单不出错

    将分享一套简单实用的"三步选型法",帮助技术主管和企业轻松选出最适合的UPS电源。第一:读懂关键参数,不再被专业术语迷惑核心参数解析:容量(VA/W):这是最重
    的头像 发表于 09-05 09:26 1396次阅读
    工程师整理:UPS电源选购“<b class='flag-5'>三步</b>法”,从看懂参数到下单不出错

    杭州灵汐类脑智算集群实现大模型快速推理

    据悉,“杭州灵汐类脑智算集群”已于7月底实现了大模型快速推理API的企业服务试运行。该集群由杭州灵汐类脑科技有限公司牵头搭建运营,中国电信、中国电子科技南湖研究院以及脑启社区作为合作方参与,由杭州
    的头像 发表于 08-18 16:06 1106次阅读

    信而泰×DeepSeek:AI推理引擎驱动网络智能诊断迈向 “自愈”时代

    诊断方案,为网络运维带来显著的实用价值:1.快速提升故障处理效率l 实时监控与智能预警: AI引擎持续分析海量流量、设备状态及日志数据,实时识别异常模式(如流量突增、延迟抖动、微小丢包),实现
    发表于 07-16 15:29

    Modbus转以太网终极方案:三步实现老旧设备智能升级

    7.8万元/年(人工处理报警) 四、三步快速实施指南 步骤1:物理连接 步骤2:参数配置 步骤3:系统联调 ✅ 御控云平台:
    发表于 04-24 10:37