一直以来很想学习下NPU的使用,总是没有时间和精力。趁着这次机会好好学习学习。特别感谢码农爱学习大牛,AI物品识别体验虽然还没完整写好。但是主要功能的实现基本是从这个帖子里抄过来。本文就权当记录个过程
https://bbs.elecfans.com/jishu_2324054_1_1.html
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是Rockchip NPU平台使用的模型类型,以.rknn后缀结尾的模型文件。用户可以通过RKNN SDK提供的工具将自主研发的算法模型转换成RKNN模型。如果已有以.rknn后缀结尾的模型文件,也就是属于Rockchip NPU平台适用的模型类型RKNN,就直接在Linux平台上通过交叉编译得到可执行文件, 然后将可执行文件及对应的库文件,.rknn后缀结尾的模型文件以及图片文件等输入资源拷贝至RK3588进行模型的运行。OK3568-C开发板中自带了已训练好的AI模型,位于/userdata/model目录下的ssd_inception_v2.rknn,我们直接用就可以了。
整个代码的项目结构基本复用码农爱学习大牛的,然后再来分别各个功能模块如下:
基本实现了检测功能,但是还不能正常显示。现在截止时间去交个作业。后面再研究吧
实时识别到人和杯子
更多回帖