欢迎访问我的网站,希望内容对您有用,感兴趣的可以加入我们的社群。

Rockchip1808教程(二)RKNN工作流及yolov3示例

边缘AI 迷途小书童 3年前 (2021-12-30) 2625次浏览 0个评论

环境

  • ubuntu 18.04 64位
  • python 3.6
  • rockchip 1808开发板

前言

当我们在服务上训练好了需要的模型,直接拿到 RK1808 上是无法使用的,不过不用担心,RKNN 为我们准备一系列的方法,可以实现模型的转换(支持 pytorchdarknettensorflowonnxcaffe等),在得到了新的模型后,就可以在 Rk1808 上进行推理了。

RKNN的工作流

模型转换流程图

rockchip

模型推理流程图

rockchip

示例

为了方便调试,rknn 允许使用 python 代码在本地运行,通过 usb 连接开发板,在开发板上进行推理,这一点非常的赞。

首先确保开发板的 USB OTG 连接到电脑,并且使用 adb 命令能够正确识别到设备

adb devices

rockchip

device左侧的那一串字符,就代表了一个具体的设备,这串字符,后面需要用到。如果系统中没有 adb 的话,可以通过下面命令安装

sudo apt-get install android-tools-adb

最后,我们来跑一个 yolov3 目标检测示例看看

cd external/rknn-toolkit/examples/darknet/yolov3

然后修改 test.py,将其中的

ret = rknn.init_runtime()

改为

# 这个 device_id 就是命令 adb devices 中的输出
ret = rknn.init_runtime(target='rk1808', device_id='ab762efff1fc0a6d')

完成后,执行程序

python test.py

代码的输出如下

--> Export RKNN model
done
--> init runtime
I NPUTransfer: Starting NPU Transfer Client, Transfer version 2.1.0 (b5861e7@2020-11-23T11:50:36)
D RKNNAPI: ==============================================
D RKNNAPI: RKNN VERSION:
D RKNNAPI:   API: 1.6.0 (79320de build: 2020-12-29 10:56:36)
D RKNNAPI:   DRV: 1.6.0 (159d2d3 build: 2021-01-12 15:23:09)
D RKNNAPI: ==============================================
done
--> inference
done
class: dog , score: 0.9984240531921387
box coordinate left,top,right,down: [0.15907743573188782, 0.3982541859149933, 0.41815564781427383, 0.9366545379161835]
class: bicycle, score: 0.994162380695343
box coordinate left,top,right,down: [0.17587044835090637, 0.2151646614074707, 0.7186601907014847, 0.7535650134086609]
class: truck , score: 0.9291886687278748
box coordinate left,top,right,down: [0.6193466782569885, 0.14440925419330597, 0.8981928321031424, 0.2938774534716056]

测试图片中的几个目标都被检测出来了

rockchip1808

关联阅读

喜欢 (2)

您必须 登录 才能发表评论!