RKNN(Rockchip Neural Network)是一種用于嵌入式設(shè)備的深度學(xué)習(xí)推理框架,它提供了一個(gè)端到端的解決方案,用于將訓(xùn)練好的深度學(xué)習(xí)模型轉(zhuǎn)換為在嵌入式設(shè)備上運(yùn)行的可執(zhí)行文件。使用RKNN框架可以在嵌入式設(shè)備上高效地運(yùn)行深度學(xué)習(xí)模型,這對(duì)于需要在資源受限的設(shè)備上進(jìn)行實(shí)時(shí)推理的應(yīng)用場(chǎng)景非常有用。例如,可以將RKNN用于智能攝像頭、機(jī)器人、無(wú)人機(jī)等嵌入式設(shè)備中,實(shí)現(xiàn)物體檢測(cè)、人臉識(shí)別、圖像分類(lèi)等人工智能功能。
RKNN-Toolkit2是為用戶提供在 PC、 Rockchip NPU 平臺(tái)上進(jìn)行模型轉(zhuǎn)換、推理和性能評(píng)估的開(kāi)發(fā)套件,用戶通過(guò)該工具提供的 Python 接口可以便捷地完成模型轉(zhuǎn)換、量化功能、模型推理、性能和內(nèi)存評(píng)估以及量化精度分析等多種操作。
下面,我們就使用RKNN-Toolkit2工具將rknpu2工程中的yolov5s.onnx模型轉(zhuǎn)換為yolov5s.rknn模型為例進(jìn)行講解。
開(kāi)發(fā)工具:飛凌嵌入式OK3588-C開(kāi)發(fā)板
開(kāi)發(fā)環(huán)境:Ubuntu20.04
01:下載RKNN-Toolkit2
![wKgZomR5WKWAUYLKAABOxwun9AE061.png](https://file1.elecfans.com/web2/M00/89/1D/wKgZomR5WKWAUYLKAABOxwun9AE061.png)
02:安裝依賴
requirements_cp36-1.3.0.txt文件,在rknn-toolkit2/doc目錄下:
![wKgaomR5WKaAb90hAAELnGCHlZs940.png](https://file1.elecfans.com/web2/M00/89/1C/wKgaomR5WKaAb90hAAELnGCHlZs940.png)
03:開(kāi)發(fā)環(huán)境與OK3588-C開(kāi)發(fā)板連接
開(kāi)發(fā)環(huán)境中安裝adb
![wKgaomR5WKWAbTkDAAAiCgoixbE394.png](https://file1.elecfans.com/web2/M00/89/1C/wKgaomR5WKWAbTkDAAAiCgoixbE394.png)
使用USB-typeC線連接到板子的TypeC0接口,PC端識(shí)別到虛擬機(jī)中。
在開(kāi)發(fā)環(huán)境中檢查是否連接成功
![wKgZomR5WKWAepNSAAAPD_fy3tE956.png](https://file1.elecfans.com/web2/M00/89/1D/wKgZomR5WKWAepNSAAAPD_fy3tE956.png)
如果連接成功會(huì)返回板子的設(shè)備ID,如下:
![wKgaomR5WKaAaP6LAABlrHWeXwQ115.png](https://file1.elecfans.com/web2/M00/89/1C/wKgaomR5WKaAaP6LAABlrHWeXwQ115.png)
04:下載NPU工程
![wKgZomR5WKaAEggFAABDMC-aAJM623.png](https://file1.elecfans.com/web2/M00/89/1D/wKgZomR5WKaAEggFAABDMC-aAJM623.png)
05:將rknn_server和rknn庫(kù)發(fā)送到開(kāi)發(fā)板
![wKgaomR5WKaADW56AAFMVR-FkjE539.png](https://file1.elecfans.com/web2/M00/89/1C/wKgaomR5WKaADW56AAFMVR-FkjE539.png)
在OK3588-C開(kāi)發(fā)板上運(yùn)行rknn_server服務(wù)
![wKgZomR5WKaAWbdUAAFkduqewXc876.png](https://file1.elecfans.com/web2/M00/89/1D/wKgZomR5WKaAWbdUAAFkduqewXc876.png)
在開(kāi)發(fā)環(huán)境中檢測(cè)rknn_server是否運(yùn)行成功
![wKgZomR5WKeAdOYZAABkFbMkYHU596.png](https://file1.elecfans.com/web2/M00/89/1D/wKgZomR5WKeAdOYZAABkFbMkYHU596.png)
有返回進(jìn)程id說(shuō)明運(yùn)行成功。
06:模型轉(zhuǎn)換
在開(kāi)發(fā)環(huán)境中進(jìn)入到rknn_toolkit2工具中的examples目錄中選擇一個(gè)模型。本例選擇的是將onnx模型轉(zhuǎn)換為RKNN模型。
修改test.py
![wKgaomR5WKeAJVqDAABYcvClJ3I575.png](https://file1.elecfans.com/web2/M00/89/1C/wKgaomR5WKeAJVqDAABYcvClJ3I575.png)
在rknn.config中添加target_platform='rk3588'
在rknn.init_runtime中添加target='rk3588'
修改完成后,運(yùn)行test.py
![wKgaomR5WKeALRIZAAAQ6wOctGQ412.png](https://file1.elecfans.com/web2/M00/89/1C/wKgaomR5WKeALRIZAAAQ6wOctGQ412.png)
運(yùn)行成功結(jié)果如下:
![wKgaomR5WKeAMyFaAAG-X8rqolA325.png](https://file1.elecfans.com/web2/M00/89/1C/wKgaomR5WKeAMyFaAAG-X8rqolA325.png)
![wKgaomR5WKiATrUmAAHj_AJP3Ho351.png](https://file1.elecfans.com/web2/M00/89/1C/wKgaomR5WKiATrUmAAHj_AJP3Ho351.png)
同時(shí)在目錄下會(huì)生成yolov5s.rknn模型。
![wKgZomR5WKeASw4IAABmwLWsfIY710.png](https://file1.elecfans.com/web2/M00/89/1D/wKgZomR5WKeASw4IAABmwLWsfIY710.png)
07:編譯測(cè)試源碼
進(jìn)入到rknpu2/examples/rknn_yolov5_demo目錄下,設(shè)置環(huán)境變量:
![wKgZomR5WKiAbP0IAABkmGzKD10014.png](https://file1.elecfans.com/web2/M00/89/1D/wKgZomR5WKiAbP0IAABkmGzKD10014.png)
執(zhí)行編譯腳本,進(jìn)行編譯:
![wKgaomR5WKiAOHgiAAAg6QE5644106.png](https://file1.elecfans.com/web2/M00/89/1C/wKgaomR5WKiAOHgiAAAg6QE5644106.png)
然后在rknpu2/examples/rknn_yolov5_demo/install/rknn_yolov5_demo_Linux目錄下會(huì)生成rknn_yolov5_demo
![wKgaomR5WKiAWlH_AABOul83k3Y557.png](https://file1.elecfans.com/web2/M00/89/1C/wKgaomR5WKiAWlH_AABOul83k3Y557.png)
08:測(cè)試
將上邊生成的yolov5s.rknn模型和install目錄下的rknn_yolov5_demo_Linux拷貝到開(kāi)發(fā)板中
![wKgZomR5WKiANnNCAAAJ5fY4tGM516.png](https://file1.elecfans.com/web2/M00/89/1D/wKgZomR5WKiANnNCAAAJ5fY4tGM516.png)
進(jìn)入到rknn_yolov5_demo_Linux目錄下,添加鏈接庫(kù)的環(huán)境變量(rknn_yolov5_demo_Linux目錄下的lib目錄)
![wKgaomR5WKmAGbqFAABn0Oe-hz0466.png](https://file1.elecfans.com/web2/M00/89/1C/wKgaomR5WKmAGbqFAABn0Oe-hz0466.png)
使用rknn模型進(jìn)行物體識(shí)別命令如下:
![wKgZomR5WKmAFO3_AACFVsCYjrY115.png](https://file1.elecfans.com/web2/M00/89/1D/wKgZomR5WKmAFO3_AACFVsCYjrY115.png)
執(zhí)行結(jié)果如下:
![wKgaomR5WKmATK4GAALAbJxnUOc892.png](https://file1.elecfans.com/web2/M00/89/1C/wKgaomR5WKmATK4GAALAbJxnUOc892.png)
將生成的out.jpg拷貝到本地電腦中查看,識(shí)別結(jié)果如下。
![wKgZomR5WKmAdva3AAg1jbwqbXM614.png](https://file1.elecfans.com/web2/M00/89/1D/wKgZomR5WKmAdva3AAg1jbwqbXM614.png)
以上就是基于飛凌嵌入式OK3588-C開(kāi)發(fā)板進(jìn)行的RK3588推理模型轉(zhuǎn)換及測(cè)試過(guò)程,希望能夠?qū)δ兴鶐椭?/p>
-
測(cè)試
+關(guān)注
關(guān)注
8文章
5382瀏覽量
127076 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
5121瀏覽量
98218 -
RK3588
+關(guān)注
關(guān)注
7文章
343瀏覽量
4566
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
【飛凌嵌入式OK3588J-C開(kāi)發(fā)板體驗(yàn)】OK3588J-C開(kāi)發(fā)板開(kāi)箱評(píng)測(cè)
玩轉(zhuǎn)RK3588開(kāi)發(fā)板基于connector-split 功能實(shí)現(xiàn)多屏聯(lián)動(dòng)
![玩轉(zhuǎn)<b class='flag-5'>RK3588</b><b class='flag-5'>開(kāi)發(fā)板</b>基于connector-split 功能實(shí)現(xiàn)多屏聯(lián)動(dòng)](https://file1.elecfans.com/web3/M00/00/C0/wKgZO2dNakGAHyqQAABxhNnhe3Q171.png)
三分鐘快速上手RK3588開(kāi)發(fā)板
![三分鐘快速上手<b class='flag-5'>RK3588</b><b class='flag-5'>開(kāi)發(fā)板</b>](https://file.elecfans.com/web2/M00/5D/1D/poYBAGLzEqqAd54TAAAbaJrrfwc915.png)
迅為RK3588開(kāi)發(fā)板Android12動(dòng)態(tài)替換開(kāi)機(jī)logo
![迅為<b class='flag-5'>RK3588</b><b class='flag-5'>開(kāi)發(fā)板</b>Android12動(dòng)態(tài)替換開(kāi)機(jī)logo](https://file1.elecfans.com/web2/M00/0C/94/wKgaomc28l6AJAoRAADGxyOPILw711.png)
迅為瑞芯微RK3588開(kāi)發(fā)板深度剖析丨首選的性能
探索巔峰性能 |迅為瑞芯微RK3588開(kāi)發(fā)板/核心板深度剖析
瑞芯微RK3588開(kāi)發(fā)板Linux系統(tǒng)添加自啟動(dòng)命令的方法,深圳觸覺(jué)智能Arm嵌入式鴻蒙硬件方案商
![瑞芯微<b class='flag-5'>RK3588</b><b class='flag-5'>開(kāi)發(fā)板</b>Linux系統(tǒng)添加自啟動(dòng)命令的方法,深圳觸覺(jué)智能Arm<b class='flag-5'>嵌入式</b>鴻蒙硬件方案商](https://file1.elecfans.com/web2/M00/07/C0/wKgaombrfu2AU1EjAACOqej_r-w726.png)
迅為RK3588開(kāi)發(fā)板深度剖析丨首選的性能
迅為電子RK3588S開(kāi)發(fā)板第三章Buildroot系統(tǒng)功能測(cè)試
![迅為電子<b class='flag-5'>RK3588</b>S<b class='flag-5'>開(kāi)發(fā)板</b>第三章Buildroot系統(tǒng)功能<b class='flag-5'>測(cè)試</b>](https://file1.elecfans.com/web2/M00/05/D5/wKgaombVXwiAKH8XAADBg9uYE6w534.png)
探索巔峰性能 |迅為 RK3588開(kāi)發(fā)板深度剖析
基于RK3588的NPU案例分享!6T是真的強(qiáng)!
迅為iTOP-RK3588開(kāi)發(fā)板Buildroot系統(tǒng)功能測(cè)試
![迅為iTOP-<b class='flag-5'>RK3588</b><b class='flag-5'>開(kāi)發(fā)板</b>Buildroot系統(tǒng)功能<b class='flag-5'>測(cè)試</b>](https://file1.elecfans.com/web2/M00/C4/55/wKgZomXyqnGAV4JVAADx86_-WmU893.png)
評(píng)論