飛槳技術(shù)生態(tài)伙伴 算力魔方
| 引言:還在為OCR模型在不同硬件上的部署而頭疼嗎?百度飛槳的PP-OCRv5重磅升級,準(zhǔn)確率提升13%,且一個模型同時支持中、英、日等五種文字!本文將手把手教你如何將PP-OCRv5模型轉(zhuǎn)換為通用ONNX格式,讓你能在Intel、AMD、高通、蘋果等各類設(shè)備上輕松部署,真正實(shí)現(xiàn)“一次轉(zhuǎn)換,隨處運(yùn)行”。
在當(dāng)前多語言混合文檔處理需求日益增長的背景下,百度飛槳推出的PP-OCRv5
https://github.com/PaddlePaddle/PaddleOCR
成為了業(yè)界矚目的焦點(diǎn)。這款輕量級光學(xué)字符識別(OCR)系統(tǒng)不僅將準(zhǔn)確率提升了13%,更強(qiáng)大的是,它實(shí)現(xiàn)了單一模型同時識別簡體中文、繁體中文、英文、日文和拼音五大文本類型,堪稱文檔處理領(lǐng)域的“瑞士軍刀”。
一,為何需要轉(zhuǎn)換為ONNX格式?
盡管PP-OCRv5本身非常強(qiáng)大,但若想將其部署在Intel、AMD、高通、蘋果、瑞芯微等各式各樣的AI推理設(shè)備上,直接使用原模型可能會面臨兼容性挑戰(zhàn)。而ONNX(Open Neural Network Exchange) 作為一個開放的模型格式標(biāo)準(zhǔn),就像是AI世界的“通用翻譯官”,能夠幫助你的模型在不同的硬件和框架之間自由穿梭。
只需完成一次轉(zhuǎn)換,即可利用ONNX Runtime, TensorRT, OpenVINO, ROCm等眾多推理引擎進(jìn)行高速推理,極大地擴(kuò)展了應(yīng)用邊界。
二,四步上手:PP-OCRv5模型轉(zhuǎn)換ONNX全流程
1,準(zhǔn)備工作:安裝所需環(huán)境與工具
首先,我們需要一個干凈的Python環(huán)境來避免庫版本沖突。推薦使用Anaconda創(chuàng)建虛擬環(huán)境。
# 創(chuàng)建并激活名為 ppocrv5_ov 的虛擬環(huán)境
conda create -n ppocrv5_ov python=3.11
conda activate ppocrv5_ov
接下來,安裝必不可少的PaddlePaddle深度學(xué)習(xí)框架和PaddleOCR庫。
# 安裝PaddlePaddle和PaddleOCR
pip install paddlepaddle
pip install paddleocr
# 安裝高性能推理依賴(CPU版)
paddleocr install_hpi_deps cpu
最后,安裝本次轉(zhuǎn)換的“主角”——模型轉(zhuǎn)換工具 paddle2onnx 。
# 安裝paddle2onnx轉(zhuǎn)換工具
paddlex --install paddle2onnx
2,下載預(yù)訓(xùn)練模型
我們將官方提供的服務(wù)器版高性能模型下載到本地。它們分別是檢測(detection)、識別(recognition)和分類(classification) 模型。
# 1. 下載并解壓文本檢測模型
wget https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/PP-OCRv5_server_det_infer.tar
tar -xvf PP-OCRv5_server_det_infer.tar
# 2. 下載并解壓文本識別模型
wget https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/PP-OCRv5_server_rec_infer.tar
tar -xvf PP-OCRv5_server_rec_infer.tar
# 3. 下載并解壓文本方向分類模型
wget https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/PP-LCNet_x1_0_doc_ori_infer.tar
tar -xvf PP-LCNet_x1_0_doc_ori_infer.tar
3,核心步驟:模型轉(zhuǎn)換
現(xiàn)在,我們使用安裝好的 paddle2onnx 工具,將三個模型依次轉(zhuǎn)換為ONNX格式。
# 轉(zhuǎn)換檢測模型
paddlex --paddle2onnx --paddle_model_dir ./PP-OCRv5_server_det_infer --onnx_model_dir ./PP-OCRv5_server_det_onnx
# 轉(zhuǎn)換識別模型
paddlex --paddle2onnx --paddle_model_dir ./PP-OCRv5_server_rec_infer --onnx_model_dir ./PP-OCRv5_server_rec_onnx
# 轉(zhuǎn)換分類模型
paddlex --paddle2onnx --paddle_model_dir ./PP-LCNet_x1_0_doc_ori_infer --onnx_model_dir ./PP-OCRv5_server_cls_onnx
轉(zhuǎn)換成功后,你將在當(dāng)前目錄看到三個對應(yīng)的新文件夾(PP-OCRv5_server_det_onnx, PP-OCRv5_server_rec_onnx, PP-OCRv5_server_cls_onnx),里面便是生成的ONNX模型文件。
4,驗(yàn)證轉(zhuǎn)換結(jié)果
理論轉(zhuǎn)完了,實(shí)際能用嗎?讓我們寫個腳本測試一下。
首先,下載一張示例圖片:
wget https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_002.png
然后,使用PaddleOCR命令,指定我們剛剛轉(zhuǎn)換好的ONNX模型進(jìn)行推理:
paddleocr ocr -i ./general_ocr_002.png
--text_detection_model_name PP-OCRv5_server_det
--text_detection_model_dir PP-OCRv5_server_det_onnx
--text_recognition_model_name PP-OCRv5_server_rec
--text_recognition_model_dir PP-OCRv5_server_rec_onnx/
--enable_hpi True
--device cpu
如果終端成功打印出了圖片中的文字識別結(jié)果,那么恭喜你!這意味著從模型轉(zhuǎn)換到推理的整個流程已全部跑通,ONNX模型工作正常。
三,結(jié)語與展望
通過以上五個步驟,我們成功地將PP-OCRv5模型轉(zhuǎn)換為了ONNX格式,為其在廣闊硬件平臺上的部署打開了大門。無論是云端服務(wù)器還是邊緣設(shè)備,ONNX都能提供強(qiáng)大的跨平臺能力。
審核編輯 黃宇
-
OCR
+關(guān)注
關(guān)注
0文章
169瀏覽量
16973 -
飛槳
+關(guān)注
關(guān)注
0文章
37瀏覽量
2587
發(fā)布評論請先 登錄
使用OpenVINO將PP-OCRv5模型部署在Intel顯卡上

【EASY EAI Orin Nano開發(fā)板試用體驗(yàn)】PP-OCRV5文字識別實(shí)例搭建與移植
基于算力魔方與PP-OCRv5的OpenVINO智能文檔識別方案

UC3854 功率因數(shù)校正設(shè)計全攻略:從理論到實(shí)戰(zhàn)

使用OpenVINO優(yōu)化并部署飛槳PP-OCRv4模型

無感無刷直流電機(jī)驅(qū)動全攻略
yolov5轉(zhuǎn)onnx在cubeAI進(jìn)行部署,部署失敗的原因?
將ONNX模型轉(zhuǎn)換為中間表示 (IR) 格式,收到了錯誤的輸出是怎么回事?
使用模型優(yōu)化器命令將ONNX模型轉(zhuǎn)換為OpenVINO? IR格式時出現(xiàn)“ReplacementID”錯誤怎么解決?
如何在C#中部署飛槳PP-OCRv4模型

添越智創(chuàng)基于 RK3588 開發(fā)板部署測試 DeepSeek 模型全攻略
使用OpenVINO C# API輕松部署飛槳PP-OCRv4模型

評論