百度飛槳(PaddlePaddle) - PP-OCRv3 文字檢測(cè)識(shí)別系統(tǒng) 預(yù)測(cè)部署簡(jiǎn)介與總覽
百度飛槳(PaddlePaddle) - PP-OCRv3 文字檢測(cè)識(shí)別系統(tǒng) Paddle Inference 模型推理(離線部署)
百度飛槳(PaddlePaddle) - PP-OCRv3 文字檢測(cè)識(shí)別系統(tǒng) 基于 Paddle Serving快速使用(服務(wù)化部署 - CentOS)
百度飛槳(PaddlePaddle) - PP-OCRv3 文字檢測(cè)識(shí)別系統(tǒng) 基于 Paddle Serving快速使用(服務(wù)化部署 - Docker)
1. 預(yù)測(cè)部署簡(jiǎn)介與總覽
本章主要介紹PP-OCRv2系統(tǒng)的高性能推理方法、服務(wù)化部署方法以及端側(cè)部署方法。通過(guò)本章的學(xué)習(xí),您可以學(xué)習(xí)到:
- 根據(jù)不同的場(chǎng)景挑選合適的預(yù)測(cè)部署方法
- PP-OCRv2系列模型在不同場(chǎng)景下的推理方法
- Paddle Inference、Paddle Serving、Paddle Lite的推理部署開(kāi)發(fā)方法
1.1 簡(jiǎn)介
在前面幾個(gè)章節(jié)中,我們通過(guò)模型訓(xùn)練的方法,得到了訓(xùn)練好的模型,在使用它去預(yù)測(cè)的時(shí)候,我們首先需要定義好模型,然后加載訓(xùn)練好的模型,再將預(yù)處理之后的數(shù)據(jù)送進(jìn)網(wǎng)絡(luò)中進(jìn)行預(yù)測(cè)、后處理,得到最終的結(jié)果。使用這種方法去進(jìn)行預(yù)測(cè),調(diào)試方便,但是預(yù)測(cè)效率比較低下。
針對(duì)上面的問(wèn)題,對(duì)于訓(xùn)練得到的模型,一般有下面2種離線預(yù)測(cè)的方式。
- 基于訓(xùn)練引擎推理,也就是和訓(xùn)練使用同一套引擎,它調(diào)試方便,便于我們迅速定位問(wèn)題,驗(yàn)證正確性。多為Python語(yǔ)言。
- 基于預(yù)測(cè)引擎推理,將訓(xùn)練得到的模型進(jìn)行轉(zhuǎn)換,去掉與推理無(wú)關(guān)的部分,使用這種方法可以加速預(yù)測(cè)。多為Python語(yǔ)言或C++。
二者具體的區(qū)別如下所示。
基于訓(xùn)練引擎推理 | 基于預(yù)測(cè)引擎推理 | |
---|---|---|
特點(diǎn) | 1. 和訓(xùn)練使用同一套引擎 2. 預(yù)測(cè)時(shí)需要定義網(wǎng)絡(luò)模型 3. 不適合系統(tǒng)集成 |
1. 需要轉(zhuǎn)換模型,去掉與推理無(wú)關(guān)的部分 2. 預(yù)測(cè)時(shí)無(wú)需定義網(wǎng)絡(luò)模型 3. 適合系統(tǒng)集成 |
編程語(yǔ)言 | 多為Python | Python或者C++ |
預(yù)測(cè)步驟 | 1. Python端定義網(wǎng)絡(luò)結(jié)構(gòu) 2. 準(zhǔn)備輸入數(shù)據(jù) 3. 加載訓(xùn)練模型 4. 執(zhí)行預(yù)測(cè) |
1. 準(zhǔn)備輸入數(shù)據(jù) 2. 加載模型結(jié)構(gòu)和模型參數(shù) 3.執(zhí)行預(yù)測(cè) |
在實(shí)際離線預(yù)測(cè)部署中,更推薦基于預(yù)測(cè)引擎進(jìn)行推理。
從應(yīng)用場(chǎng)景來(lái)看,飛槳針對(duì)不同應(yīng)用場(chǎng)景,提供了下面一些推理部署方案。
具體地,PaddleOCR 針對(duì)不同應(yīng)用場(chǎng)景,提供了三種預(yù)測(cè)部署方案。
- Inference的離線預(yù)測(cè),這種方式主要應(yīng)用在對(duì)預(yù)測(cè)響應(yīng)的及時(shí)性要求不高,特別是需要大量圖片預(yù)測(cè)的場(chǎng)景。像文檔電子化、廣告信息提取等。雖然不能及時(shí)響應(yīng)預(yù)測(cè)請(qǐng)求,但是沒(méi)有網(wǎng)絡(luò)延時(shí),計(jì)算效率比較高,數(shù)據(jù)安全性很高。
- Serving服務(wù)化部署,這種方式主要應(yīng)用在對(duì)預(yù)測(cè)響應(yīng)的及時(shí)性要求很高的場(chǎng)景,像商業(yè)化OCR的API接口、實(shí)時(shí)拍照翻譯、拍題等場(chǎng)景。雖然這種方式能及時(shí)對(duì)預(yù)測(cè)需求及時(shí)響應(yīng),但是網(wǎng)絡(luò)耗時(shí)開(kāi)銷(xiāo)比較大,GPU利用率往往不高,而且存在數(shù)據(jù)安全風(fēng)險(xiǎn)。
- Lite端側(cè)部署,這種方式主要希望模型部署到手機(jī)、機(jī)器人等端側(cè)設(shè)備上,主要考慮部署方便和數(shù)據(jù)安全性,像手機(jī)APP里面身份證識(shí)別、銀行卡識(shí)別,工業(yè)應(yīng)用場(chǎng)景的儀表監(jiān)控識(shí)別等。這種方法,對(duì)OCR模型的大小比較敏感。雖然沒(méi)有網(wǎng)絡(luò)延時(shí),數(shù)據(jù)安全性很高,但是由于算力限制,預(yù)測(cè)效率不高。
本章基于PP-OCRv2,介紹文本檢測(cè)、識(shí)別以及系統(tǒng)串聯(lián)預(yù)測(cè)推理與部署過(guò)程。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-464231.html
1.2 環(huán)境準(zhǔn)備
體驗(yàn)本章節(jié)內(nèi)容需要首先下載PaddleOCR代碼,安裝相關(guān)依賴(lài),具體命令如下。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-464231.html
import os
os.chdir("/home/aistudio")
# 下載代碼
!git clone https://gitee.com/paddlepaddle/PaddleOCR.git
os.chdir("/home/aistudio/PaddleOCR")
# 安裝運(yùn)行所需要的whl包
!pip install -U pip
!pip install -r requirements.txt
# VQA任務(wù)中需要用到該庫(kù)
!pip install paddlenlp==2.2.1
# 導(dǎo)入一些庫(kù)
import cv2
import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np
import os
到了這里,關(guān)于百度飛槳(PaddlePaddle) - PP-OCRv3 文字檢測(cè)識(shí)別系統(tǒng) 預(yù)測(cè)部署簡(jiǎn)介與總覽的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!