一、目標
本次工作的目標是在旭日X3派上部署PaddlePaddle的開源模型,至于PaddlePaddle模型轉換,已有大佬寫過很贊的教程,自我感覺不能超越,于是本文不再提及。
飛槳(PaddlePaddle)是集深度學習核心框架、工具組件和服務平臺為一體的技術先進、功能完備的開源深度學習平臺,已被中國企業廣泛使用,深度契合企業應用需求,擁有活躍的開發者社區生態。提供豐富的官方支持模型集合,并推出全類型的高性能部署和集成方案供開發者使用。
二、環境準備
1、python環境
旭日X3派的官方img支持的是python3.8,這個跟PaddlePaddle要求的3.6版本不同,因為PaddlePaddle SDK使用的tensor模塊等依賴python3.6,所以要在X3派系統中使用python3.6。網上很多種方法,譬如通過pyenv、anaconda等python版本管理工具進行python版本切換,因為在實際使用中可以指定使用的python版本,為什么不能再裝個python3.6呢?需要python3.8的時候敲python3,需要python3.6的時候敲python3.6,感覺不錯。
sudo apt-get install software-properties-common -y sudo add-apt-repository ppa:deadsnakes/ppa sudo apt-get update sudo apt-get install python3.6 -y sudo apt-get install libpython3.6 -y sudo apt-get install python3.6-dev -y sudo apt-get install python3.6-distutils -y
一系列命令敲下來,python3.6環境已經按照完成,直接使用即可。
2、SDK下載
直接在官網(EasyEdge端計算模型生成平臺)下載PaddlePaddle SDK,選擇需要的SDK即可,因為是要部署在X3派上,所以選擇了 操作系統為Linux,且部署芯片為通用ARM芯片的模型,這次我選擇的是PPLCNetV2。
PPLCNet是百度團隊設計的輕量高性能網絡PP-LCNet,所提方案在圖像分類任務上取得了比ShuffleNetV2、MobileNetV2、MobileNetV3以及GhostNet更優的延遲-精度均衡。
PPLCNetV2當然比PPLCNetV1牛逼了,一會試試圖像分類功能。
三、模型部署
1、PaddlePaddle安裝
直接使用如下命令安裝PaddlePaddle:
python3.6 -m pip install http://aipe-easyedge-public.bj.bcebos.com/easydeploy/paddlelite-2.11-cp36-cp36m-linux_aarch64.whl
記得一定要用python3.6…
2、安裝WHL包
將2.2節下載的SDK包解壓縮,傳輸至X3派,首先安裝python目錄下(當然也可以選擇C++,python直接運行了,方便)的BaiduAI_EasyEdge_SDK-1.3.1-cp36-cp36m-linux_aarch64.whl包,記得用python3.6,中間可能會根據系統的情況,下載安裝numpy,opencv-python等,耐心等待即可,直到安裝成功。
四、預測圖像
直接在系統上運行的命令格式如下,記得使用python3.6:
python3.6 demo_x86_cpu.py {模型RES文件夾}{測試圖片路徑}
1、鴨子
結果如下:
root@ubuntu:~/EasyEdge-Linux-arm/python/infer_demo# python3.6 demo_armv8_cpu.py ../../RES /root/ducks.jpg 2022-09-17 00:36:30 INFO [EasyEdge] [demo_armv8_cpu.py:38] 548210040848: Init paddlelite engine... Loading topology data from ../../RES/model Loading params data from ../../RES/params 1. Model is successfully loaded! 2022-09-17 00:36:31 INFO [EasyEdge] [demo_armv8_cpu.py:38] 548210040848: Paddlelite engine version: v2.11 infer done! {'confidence': 0.36856314539909363, 'index': 97, 'label': 'n01847000 drake'}
2、螞蟻
測試結果,ant, emmet, pismire都是螞蟻:
root@ubuntu:~/EasyEdge-Linux-arm/python/infer_demo# python3.6 demo_armv8_cpu.py ../../RES /root/ants.jpg 2022-09-17 00:37:40 INFO [EasyEdge] [demo_armv8_cpu.py:38] 548581892112: Init paddlelite engine... Loading topology data from ../../RES/model Loading params data from ../../RES/params 1. Model is successfully loaded! 2022-09-17 00:37:41 INFO [EasyEdge] [demo_armv8_cpu.py:38] 548581892112: Paddlelite engine version: v2.11 infer done! {'confidence': 0.9655985832214355, 'index': 310, 'label': 'n02219486 ant, emmet, pismire'}
本文轉自地平線開發者社區
原作者:大菠蘿Alpha
-
嵌入式
+關注
關注
5085文章
19138瀏覽量
305705 -
Linux
+關注
關注
87文章
11312瀏覽量
209702 -
模型
+關注
關注
1文章
3254瀏覽量
48878 -
python
+關注
關注
56文章
4797瀏覽量
84750
發布評論請先 登錄
相關推薦
評論