迅為iTOP-3576開發板采用瑞芯微RK3576高性能、低功耗的應用處理芯片,集成了4個Cortex-A72和4個Cortex-A53核心,以及獨立的NEON協處理器。它適用于ARM PC、邊緣計算、個人移動互聯網設備及其他多媒體產品。
支持INT4/INT8/INT16/FP16/BF16/TF32混合運算,并憑借其強大的兼容性,可以輕松轉換基于TensorFlow、MXNet、PyTorch、Caffe等一系列框架的網絡模型。滿足多種應用場景。

rknn-model-zoo中提供了當前主流算法部署到RK SOC的例程,包含了模型的轉換、模型
的Python api推理、模型的C api推理,rknn-model-zoo倉庫在1.5小節已經講解了獲取方法,
而由于每個例程的使用都非常相似,所以在本章節只以deeplabv3例程為例進行例程演示。
DeepLabv3是一種用于語義分割的深度學習模型,由Google研究團隊在2017年提出。它
是DeepLab系列模型的第三代產品,相比前兩代模型在準確性和運行效率上都有顯著提升。
5.1 模型下載和模型轉換
不論是模型的Python api推理還是模型的C api推理都需要將常規模型轉換為RKNN模型,
首先進入到deeplabv3目錄
在model目錄下有著常規模型的下載腳本,如下圖所示:

然后賦予該腳本權限并運行該腳本,下載deeplabv3模型,
下載完成之后,可以看到當前目錄多出來了deeplab-v3-plus-mobilenet-v2.pb模型,其他例
程的模型也是通過上述方法進行下載。然后來到python目錄下,在python目錄下有著模型轉
換的python程序convert.py,

convert.py程序實際上就是由rknn-toolkit2編寫的程序,所以在運行之前必須要確保根據
2.1小節搭建了rknn-toolkit2環境,convert.py的使用方法如下所示:

可以使用以下命令進行模型轉換,表示將deeplab模型轉換為在RK3576上運行的量化
RKNN模型,如下圖所示:
python3 convert.py ../model/deeplab-v3-plus-mobilenet-v2.pb rk3576 i8
在運行的過程中會有一些警告,不影響轉換結果,默認忽略即可,轉換完成會在model
目錄下生成名為deeplab-v3-plus-mobilenet-v2.rknn的RKNN模型,
至此,關于deeplabv3例程的模型下載和模型轉換就演示完成了,rknn-model-zoo其他例
程的模型下載和模型轉換步驟相同,模型轉換完成之后,就可以進行推理測試了,rknn-model
-zoo提供了rknn-toolkit2 Python API連板推理和rknpu2 C API推理這兩種方式,會在接下來
的小節中對兩種方法進行演示。
5.2 Python API 推理
在每個rknn-model-zoo例程文件夾的python目錄中除了模型轉換程序還有推理程序,所
使用的也是由rknn-toolkit2 API編寫的程序,
而由于rknn-toolkit2只能運行在X86的Linux系統中,所以這里采用的是連板推理的方式,
關于連板推理的演示可以看2.2.2小節,在本章節不再進行詳細的介紹,直接進行演示。
首先啟動開發板,這里開發板燒寫的是ubuntu22鏡像,使用其他鏡像都可以,燒寫完成
之后,需要先更新rknn_server和librknnrt.so文件,rknn_server和librknnrt.so分別為rknn-too
lkit2/rknpu2/runtime/Linux/rknn_server/aarch64/usr/bin和rknn-toolkit2/rknpu2/runtime/Linux/li
brknn_api/aarch64目錄下如下圖所示:

然后將rknn_server和librknnrt.so拷貝到開發板上,其中rknn_server需要拷貝到/usr/bin
目錄下,而librknnrt.so要拷貝到/usr/lib目錄,拷貝完成之后,運行rknn_server如下圖所示:

然后確保開發板的adb設備連接到了虛擬機ubuntu,連接成功之后在左側菜單欄中會有一
個手機的圖標,
然后在終端使用“adb devices”命令查看當前連接的adb設備,存在adb設備表示連接成
功,
而deeplabv3.py程序的運行需要matplotlib依賴,所以要運行以下命令安裝matplotlib,如
下圖所示:
pip3 install matplotlib -i https://repo.huaweicloud.com/repository/pypi/simple/
安裝完成之后就可以運行deeplabv3.py程序了,deeplabv3.py程序有三個參數,分別為
--model_path、--target和--device_id,--model_path表示RKNN模型路徑,--target表示連接的
開發板SOC類型,--device_id為上面通過“adb devices”獲取到的設備id,但由于只有一個設
備,所以--device_id參數可以忽略不寫,所以推理命令如下所示:

運行完成之后,會在當前路徑輸出語義分割之后的圖形output.png,原圖形和分割之后的
對比圖如下所示:

可以看到小朋友、自行車已經使用了不同的顏色進行了分割,至此對于Python API推理就
演示完成了。
-
開發板
+關注
關注
25文章
5634瀏覽量
103787 -
rk3576
+關注
關注
1文章
165瀏覽量
663 -
迅為電子
+關注
關注
0文章
63瀏覽量
154
發布評論請先 登錄
迅為RK3568手冊上新 | RK3568開發板NPU例程測試
手冊上新 |迅為RK3568開發板NPU例程測試
手冊上新 |迅為RK3568開發板NPU例程測試
【米爾RK3576開發板評測】+項目名稱【米爾RK3576開發板評測】一個視頻和你共同認識一下米爾RK3576開發板
【米爾RK3576開發板評測】+項目名稱3、使用rknn 進行圖像檢測
RK3576開發板NPU激發無限創新!體驗6TOPS強勁性能的奇妙之旅

評論