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

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

然后賦予該腳本權(quán)限并運(yùn)行該腳本,下載deeplabv3模型,
下載完成之后,可以看到當(dāng)前目錄多出來(lái)了deeplab-v3-plus-mobilenet-v2.pb模型,其他例
程的模型也是通過(guò)上述方法進(jìn)行下載。然后來(lái)到python目錄下,在python目錄下有著模型轉(zhuǎn)
換的python程序convert.py,

convert.py程序?qū)嶋H上就是由rknn-toolkit2編寫的程序,所以在運(yùn)行之前必須要確保根據(jù)
2.1小節(jié)搭建了rknn-toolkit2環(huán)境,convert.py的使用方法如下所示:

可以使用以下命令進(jìn)行模型轉(zhuǎn)換,表示將deeplab模型轉(zhuǎn)換為在RK3576上運(yùn)行的量化
RKNN模型,如下圖所示:
python3 convert.py ../model/deeplab-v3-plus-mobilenet-v2.pb rk3576 i8
在運(yùn)行的過(guò)程中會(huì)有一些警告,不影響轉(zhuǎn)換結(jié)果,默認(rèn)忽略即可,轉(zhuǎn)換完成會(huì)在model
目錄下生成名為deeplab-v3-plus-mobilenet-v2.rknn的RKNN模型,
至此,關(guān)于deeplabv3例程的模型下載和模型轉(zhuǎn)換就演示完成了,rknn-model-zoo其他例
程的模型下載和模型轉(zhuǎn)換步驟相同,模型轉(zhuǎn)換完成之后,就可以進(jìn)行推理測(cè)試了,rknn-model
-zoo提供了rknn-toolkit2 Python API連板推理和rknpu2 C API推理這兩種方式,會(huì)在接下來(lái)
的小節(jié)中對(duì)兩種方法進(jìn)行演示。
5.2 Python API 推理
在每個(gè)rknn-model-zoo例程文件夾的python目錄中除了模型轉(zhuǎn)換程序還有推理程序,所
使用的也是由rknn-toolkit2 API編寫的程序,
而由于rknn-toolkit2只能運(yùn)行在X86的Linux系統(tǒng)中,所以這里采用的是連板推理的方式,
關(guān)于連板推理的演示可以看2.2.2小節(jié),在本章節(jié)不再進(jìn)行詳細(xì)的介紹,直接進(jìn)行演示。
首先啟動(dòng)開發(fā)板,這里開發(fā)板燒寫的是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拷貝到開發(fā)板上,其中rknn_server需要拷貝到/usr/bin
目錄下,而librknnrt.so要拷貝到/usr/lib目錄,拷貝完成之后,運(yùn)行rknn_server如下圖所示:

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

運(yùn)行完成之后,會(huì)在當(dāng)前路徑輸出語(yǔ)義分割之后的圖形output.png,原圖形和分割之后的
對(duì)比圖如下所示:

可以看到小朋友、自行車已經(jīng)使用了不同的顏色進(jìn)行了分割,至此對(duì)于Python API推理就
演示完成了。
-
開發(fā)板
+關(guān)注
關(guān)注
25文章
5679瀏覽量
104602 -
rk3576
+關(guān)注
關(guān)注
1文章
173瀏覽量
717 -
迅為電子
+關(guān)注
關(guān)注
0文章
64瀏覽量
175
發(fā)布評(píng)論請(qǐng)先 登錄
迅為RK3568手冊(cè)上新 | RK3568開發(fā)板NPU例程測(cè)試
手冊(cè)上新 |迅為RK3568開發(fā)板NPU例程測(cè)試
手冊(cè)上新 |迅為RK3568開發(fā)板NPU例程測(cè)試
【米爾RK3576開發(fā)板評(píng)測(cè)】+項(xiàng)目名稱【米爾RK3576開發(fā)板評(píng)測(cè)】一個(gè)視頻和你共同認(rèn)識(shí)一下米爾RK3576開發(fā)板
RK3576開發(fā)板NPU激發(fā)無(wú)限創(chuàng)新!體驗(yàn)6TOPS強(qiáng)勁性能的奇妙之旅

迅為電子推出iTOP-RK3576開發(fā)板
迅為RK3576開發(fā)板NPU環(huán)境搭建和使用rknn-toolkit2功能演示模型轉(zhuǎn)換

迅為八核高算力RK3576開發(fā)板攝像頭實(shí)時(shí)推理測(cè)試?ppyoloe目標(biāo)檢測(cè)

評(píng)論