飞凌嵌入式
直播中

yuzhiwen1986

11年用户 91经验值
擅长:电源/新能源,嵌入式技术
私信 关注
[技术]

【飞凌RK3568开发板试用体验】AI 物品识别体验

说明

一直以来很想学习下NPU的使用,总是没有时间和精力。趁着这次机会好好学习学习。特别感谢码农爱学习大牛,AI物品识别体验虽然还没完整写好。但是主要功能的实现基本是从这个帖子里抄过来。本文就权当记录个过程
https://bbs.elecfans.com/jishu_2324054_1_1.html

NPU OpenCV命令行测试

OK3568 平台默认编译了 OpenCV3.4.3 的库,可以使用如下的命令进行 OpenCV 的测试。

[root@ok3568:/test]# fltest_opencv_rknn_ssd /userdata/model/ssd_inception_v2.rkn
n  /userdata/model/road.bmp
Loading model ...
rknn_init ...
[45306.535739] RKNPU fde40000.npu: RKNPU: try to fallback to allocate non-contiguous 25075712 buffer.
model input num: 1, output num: 2
input tensors:
index=0 name=Preprocessor/sub:0 n_dims=4 dims=[1 300 300 3] n_elems=270000 size=270000 fmt=0 type=3 qnt_type=2 fl=0 zp=0 scale=0.007812
output tensors:
index=0 name=concat:0 n_dims=4 dims=[1 1917 1 4] n_elems=7668 size=30672 fmt=0 type=0 qnt_type=2 fl=0 zp=53 scale=0.089455
index=1 name=concat_1:0 n_dims=4 dims=[1 1917 91 1] n_elems=174447 size=697788 fmt=0 type=0 qnt_type=2 fl=0 zp=53 scale=0.143593
rknn_run
loadLabelName
ssd - loadLabelName /userdata/model/coco_labels_list.txt
loadBoxPriors
person @ (13 125 59 212) 0.984696
person @ (110 119 152 197) 0.969119
bicycle @ (171 165 278 234) 0.969119
person @ (206 113 256 216) 0.964519
car @ (146 133 216 170) 0.959264
person @ (49 133 58 156) 0.606060
person @ (83 134 92 158) 0.606060
person @ (96 135 106 162) 0.464163

RKNN模型:

RKNN是Rockchip NPU平台使用的模型类型,以.rknn后缀结尾的模型文件。用户可以通过RKNN SDK提供的工具将自主研发的算法模型转换成RKNN模型。如果已有以.rknn后缀结尾的模型文件,也就是属于Rockchip NPU平台适用的模型类型RKNN,就直接在Linux平台上通过交叉编译得到可执行文件, 然后将可执行文件及对应的库文件,.rknn后缀结尾的模型文件以及图片文件等输入资源拷贝至RK3588进行模型的运行。OK3568-C开发板中自带了已训练好的AI模型,位于/userdata/model目录下的ssd_inception_v2.rknn,我们直接用就可以了。

源码文件

整个代码的项目结构基本复用码农爱学习大牛的,然后再来分别各个功能模块如下:

  • myvideosourceface.cpp/h:用于USB摄像头图像显示
  • qtcamera.cpp/h:qt界面和图像类型转换相关函数
  • fltest_opencv_rknn_ssd.cpp/h:用于SSD模型进行AI物品识别的接口函数
  • rknn_ssd.cpp/h:SSD模型相关函数
    • main.cpp

image.png

功能总结

基本实现了检测功能,但是还不能正常显示。现在截止时间去交个作业。后面再研究吧

image.png

实时识别到人和杯子

webwxgetvideo2

更多回帖

发帖
×
20
完善资料,
赚取积分