首页 > 其他分享 >百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 预测部署简介与总览

百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 预测部署简介与总览

时间:2023-05-30 09:45:51浏览次数:52  
标签:PP 预测 部署 模型 PaddlePaddle 飞桨 总览 推理

百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 预测部署简介与总览
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理(离线部署)
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署)

1. 预测部署简介与总览

本章主要介绍PP-OCRv2系统的高性能推理方法、服务化部署方法以及端侧部署方法。通过本章的学习,您可以学习到:

  • 根据不同的场景挑选合适的预测部署方法
  • PP-OCRv2系列模型在不同场景下的推理方法
  • Paddle Inference、Paddle Serving、Paddle Lite的推理部署开发方法

1.1 简介

在前面几个章节中,我们通过模型训练的方法,得到了训练好的模型,在使用它去预测的时候,我们首先需要定义好模型,然后加载训练好的模型,再将预处理之后的数据送进网络中进行预测、后处理,得到最终的结果。使用这种方法去进行预测,调试方便,但是预测效率比较低下。

针对上面的问题,对于训练得到的模型,一般有下面2种离线预测的方式。

  1. 基于训练引擎推理,也就是和训练使用同一套引擎,它调试方便,便于我们迅速定位问题,验证正确性。多为Python语言。
  2. 基于预测引擎推理,将训练得到的模型进行转换,去掉与推理无关的部分,使用这种方法可以加速预测。多为Python语言或C++。

二者具体的区别如下所示。

基于训练引擎推理 基于预测引擎推理
特点 1. 和训练使用同一套引擎
2. 预测时需要定义网络模型
3. 不适合系统集成
1. 需要转换模型,去掉与推理无关的部分
2. 预测时无需定义网络模型
3. 适合系统集成
编程语言 多为Python Python或者C++
预测步骤 1. Python端定义网络结构
2. 准备输入数据
3. 加载训练模型
4. 执行预测
1. 准备输入数据
2. 加载模型结构和模型参数
3.执行预测

在实际离线预测部署中,更推荐基于预测引擎进行推理。

从应用场景来看,飞桨针对不同应用场景,提供了下面一些推理部署方案。

飞桨的不同部署方案

具体地,PaddleOCR 针对不同应用场景,提供了三种预测部署方案。

  • Inference的离线预测,这种方式主要应用在对预测响应的及时性要求不高,特别是需要大量图片预测的场景。像文档电子化、广告信息提取等。虽然不能及时响应预测请求,但是没有网络延时,计算效率比较高,数据安全性很高。
  • Serving服务化部署,这种方式主要应用在对预测响应的及时性要求很高的场景,像商业化OCR的API接口、实时拍照翻译、拍题等场景。虽然这种方式能及时对预测需求及时响应,但是网络耗时开销比较大,GPU利用率往往不高,而且存在数据安全风险。
  • Lite端侧部署,这种方式主要希望模型部署到手机、机器人等端侧设备上,主要考虑部署方便和数据安全性,像手机APP里面身份证识别、银行卡识别,工业应用场景的仪表监控识别等。这种方法,对OCR模型的大小比较敏感。虽然没有网络延时,数据安全性很高,但是由于算力限制,预测效率不高。

本章基于PP-OCRv2,介绍文本检测、识别以及系统串联预测推理与部署过程。

1.2 环境准备

体验本章节内容需要首先下载PaddleOCR代码,安装相关依赖,具体命令如下。

import os

os.chdir("/home/aistudio")
# 下载代码
!git clone https://gitee.com/paddlepaddle/PaddleOCR.git
os.chdir("/home/aistudio/PaddleOCR")
# 安装运行所需要的whl包
!pip install -U pip
!pip install -r requirements.txt
# VQA任务中需要用到该库
!pip install paddlenlp==2.2.1

# 导入一些库
import cv2
import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np
import os

标签:PP,预测,部署,模型,PaddlePaddle,飞桨,总览,推理
From: https://www.cnblogs.com/vipsoft/p/17439619.html

相关文章

  • cpp: State Pattern
     /*****************************************************************//***\fileGold.h*\briefStatePattern状态模式C++14*2023年5月29日涂聚文GeovinDuVisualStudio2022edit.*\authorgeovindu*\dateMay2023************************......
  • 开发手记:MyBatis的mapper文件的中SQL符号转义
    字符转义问题在MaBatis的XML文件中编写SQL语句时,<符号会出现转义问题,例如:<!--查询指定月份内的订单--><selectid="queryInRange"resultType="OrderEntity"> SELECT*FROMorder WHEREcreate_time>DATE_SUB(NOW(),INTERVAL#{month}MONTH) ANDuser_i......
  • 如何用ChatGPT做的PPT
    第一步:提供需求生成PPT 步骤1:输入内容 请将您的大致需求告诉它,以便它能够帮助您进行梳理。   步骤2:输入内容框架 只需按照特定的格式输入内容并设置标题即可。   只需要等待20秒,ChatGPT就能够自动编写完整的代码格式。   步骤3:打开生成工具 ......
  • 基于JAVA的springboot+vue医院信息管理系统、医院挂号管理系统,附源码+数据库+论文+PPT
    1、项目介绍任何系统都要遵循系统设计的基本流程,本系统也不例外,同样需要经过市场调研,需求分析,概要设计,详细设计,编码,测试这些步骤,基于java语言设计并实现了医院信管系统。该系统基于B/S即所谓浏览器/服务器模式,应用java技术,选择MySQL作为后台数据库。系统主要包括首页,个人中心,用户......
  • linux opp怎么使用
    简介OperatingPerformancePoints(OPP)SoC是高度集成的,不是SoC中的所有模块需要一直以最高的频率运作。来为了便于实现这一点,SoC中的子模块被分组到不同的域中,允许一些域运行在较低的电压和频率,而其他域运行在更高的电压/频率对。由频率和电压对组成的离散元组的集合称为工作......
  • uniapp专题学习(一)
    为什么要学习uniapp一套代码可以打包到不同的应用平台,一套代码,多端运行;方便入手,就是使用vue语法写小程序,如果有vue和小程序经验的话,甚至直接可以看文档;丰富的生态环境,官方及第三方插件较为丰富,论坛活跃度高。什么是uniappuni-app是一个使用Vue.js开发所有前端应用的框......
  • java.lang.UnsupportedOperationException
    错误的查询返回格式//dao层Listquery_T_JS_DHGL_XMLGJ(Map<String,String>queryParams);正确的的查询返回格式ArrayList<Map>query_T_JS_DHGL_XMLGJ(Map<String,String>queryParams);知识点:使用asList方法继承的父类的add和remove,只会抛出UnsupportedOper......
  • 要开发代驾App需要以下解决方案
    要开发代驾App,您需要以下解决方案: 1.功能: 确定您的App需要提供哪些功能,例如:需求分析、预约管理、司机找客、实时位置跟踪、支付和评价等。 2.平台: 确定您的App要适配哪些移动平台,例如iOS、Android、或者是WebApp等。 3.设计: 制定您的App设计方案,主要包括用户界......
  • linux系统/dev/mapper/centos-root目录被占满的解决方式
    1、查看虚拟机磁盘使用情况df-h 可以看到/dev/mapper/centos-root已经快满了,这时候就算启动hdfs,也会是强制性的进入安全模式,不让写数据2、查看哪个目录占用过高使用du-h-x--max-depth=1查看哪个目录占用过高,对于过高目录中的内容适当删减腾出一些空间cd/&&du-h......
  • RollingFileAppender[FILE] - openFile(null,true) call failed. java.io.FileNotFoun
          2023-05-2916:25:31[main]ERRORo.s.boot.SpringApplication-Applicationrunfailedjava.lang.IllegalStateException:Logbackconfigurationerrordetected:ERRORinch.qos.logback.core.rolling.RollingFileAppender[FILE]-openFile(null,true)......