背景
跟着讯为在b站的视频(【RKNPU2项目实战1】:YOLOV5实时目标分类_哔哩哔哩_bilibili)完成了前11分钟的内容,分别是:
在pc端用ubuntu虚拟机推理yolo模型;
在pc端连板推理yolo模型;
把yolo模型部署到板端推理。
这个过程中遇到三个问题:
- 同样是运行pc端虚拟机上的python脚本来使用板上的npu进行推理,连板推理和部署到板端的区别是什么?
- 为什么adb连接不上?
- 为什么adb连接不稳定?
第一个问题
从文章(RK3588模型推理总结 - 知乎 (zhihu.com))中得到一些启发。这个问题要结合之前的讯为官方教程中对RKNN-Toolkit2和RKNN-Toolkit2-Lite的介绍来理解:
- RKNN-Toolkit2:只能运行在x86平台,支持模型转换、性能评估、推理;
- RKNN-Toolkit2-Lite:只能运行在npu平台,只保留了推理功能。
其实无论是 ”在pc端用ubuntu虚拟机推理yolo模型”、“在pc端连板推理yolo模型”、“把yolo模型部署到板端推理“中的哪一种,都需先用RKNN-Toolkit2在pc上将yolo模型转换为以.rknn后缀结尾的模型文件,也就是属于Rockchip NPU平台适用的模型类型。”,接下来:
- 如果是连扳推理。“直接在Linux平台上通过交叉编译得到arm架构的可执行文件, 然后将可执行文件及对应的库文件,.rknn后缀结尾的模型文件以及图片文件等输入资源拷贝至RK3588进行模型的运行。”
- 如果是在虚拟机上直接推理,更简单,直接在Linux平台上编译得到x86架构下的的可执行文件,并执行。
- 如果是部署到板端推理,就是把.rknn模型文件和python脚本都先传输到板上(教程中使用adb push,可以用u盘啥的拷贝。)
第二个问题
被这个问题折腾了很久,解决方法:
首先根据前面的教程05_RKNN 模型评估-推理测试_哔哩哔哩_bilibili
中23分40秒的内容下载adb工具.
其次,在虚拟机上设置usb兼容性为3.1(缺省值是1.1,我就是在这里卡了好久)
最后选择把Fuzhou Rockchip这个usb设备连接到虚拟机就连上adb啦。
如果不小心误操作选择连接到主机了,还可以在菜单栏中的”虚拟机(M)“-”可移动设备(D)“里找到Fuzhou Rockchip设备,并点击”连接(断开与主机的连接)“。
第三个问题
为什么adb连接不稳定?
这个问题左排除右排出,实在没找到原因,先在官方qq群里提问了,等工作人员或大神解答:
我刚开机的时候还能看到fuzhou rockchip rkxxx这个设备。
过了一会儿发现虚拟机边上的手机图标没了,再去菜单栏中的”虚拟机(M)“-”可移动设备(D)“里找到Fuzhou Rockchip设备时,点击会报错如下图
点确定后再回到”可移动设备(D)“里,发现Fuzhou Rockchip这个设备没了,然后ADB就再连接不上了。
暂时的解决方法是给板子断电重新上电,ADB这个设备又出现了。可见不是线路连接的问题。
另外板子还存在未连接网线时,网口指示灯常亮的问题,之前在qq群反馈过,当时就有另两名群友提出他们的板子有同样问题,工作人员也马上回复说测试看看。不知道现在解决的怎么样了,下次更新的时候顺便提下解决后续。
祝我本周末能在板端用上nlp模型。