RKNN-Toolkit2是為用戶(hù)提供在 PC、 Rockchip NPU 平臺上進(jìn)行模型轉換、推理和性能評估的開(kāi)發(fā)套件,用戶(hù)通過(guò)該工具提供的 Python 接口可以便捷地完成模型轉換、量化功能、模型推理、性能和內存評估以及量化精度分析等多種操作。 RKNN(Rockchip Neural Network)是一種用于嵌入式設備的深度學(xué)習推理框架,它提供了一個(gè)端到端的解決方案,用于將訓練好的深度學(xué)習模型轉換為在嵌入式設備上運行的可執行文件。使用RKNN框架可以在嵌入式設備上高效地運行深度學(xué)習模型,這對于需要在資源受限的設備上進(jìn)行實(shí)時(shí)推理的應用場(chǎng)景非常有用。例如,可以將RKNN用于智能攝像頭、機器人、四軸飛行器等嵌入式設備中,實(shí)現物體檢測、人臉識別、圖像分類(lèi)等人工智能功能。
下面,我們就使用RKNN-Toolkit2工具將rknpu2工程中的yolov5s.onnx模型轉換為yolov5s.rknn模型為例進(jìn)行講解。
開(kāi)發(fā)工具:飛凌嵌入式OK3588-C開(kāi)發(fā)板 開(kāi)發(fā)環(huán)境:Ubuntu20.04
01 下載RKNN-Toolkit2
02 安裝依賴(lài) requirements_cp36-1.3.0.txt文件,在rknn-toolkit2/doc目錄下:
03 開(kāi)發(fā)環(huán)境與OK3588-C開(kāi)發(fā)板連接
如果連接成功會(huì )返回板子的設備ID,如下:
04 下載NPU工程
05 將rknn_server和rknn庫發(fā)送到開(kāi)發(fā)板
在OK3588-C開(kāi)發(fā)板上運行rknn_server服務(wù)
在開(kāi)發(fā)環(huán)境中檢測rknn_server是否運行成功
有返回進(jìn)程id說(shuō)明運行成功。
06 模型轉換
在rknn.config中添加target_platform='rk3588' 在rknn.init_runtime中添加target='rk3588'
運行成功結果如下:
同時(shí)在目錄下會(huì )生成yolov5s.rknn模型。
07 編譯測試源碼 進(jìn)入到rknpu2/examples/rknn_yolov5_demo目錄下,設置環(huán)境變量:
執行編譯腳本,進(jìn)行編譯:
然后在rknpu2/examples/rknn_yolov5_demo/install/rknn_yolov5_demo_Linux目錄下會(huì )生成rknn_yolov5_demo
08 將上邊生成的yolov5s.rknn模型和install目錄下的rknn_yolov5_demo_Linux拷貝到開(kāi)發(fā)板中
進(jìn)入到rknn_yolov5_demo_Linux目錄下,添加鏈接庫的環(huán)境變量(rknn_yolov5_demo_Linux目錄下的lib目錄)
使用rknn模型進(jìn)行物體識別命令如下:
執行結果如下:
將生成的out.jpg拷貝到本地電腦中查看,識別結果如下。
以上就是基于飛凌嵌入式OK3588-C開(kāi)發(fā)板進(jìn)行的RK3588推理模型轉換及測試過(guò)程,希望能夠對您有所幫助。
|