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

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

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

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

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

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

評論