使用Maixduino采集视频,并在一张图片中YOLO V2模型找出人脸,框出人脸,即知道脸的位置和大小。
1、概述
K210具有KPU,KPU是通用的神经网络处理器,它可以在低功耗的情况下实现卷积神经网络计算,时时获取被检测目标的大小、坐标和种类,对人脸或者物体进行检测和分类。
KPU 具备以下几个特点:
- 支持主流训练框架按照特定限制规则训练出来的定点化模型
- 对网络层数无直接限制,支持每层卷积神经网络参数单独配置,包括输入输出通道数目、输入输 出行宽列高
- 支持两种卷积内核 1x1 和 3x3
- 支持任意形式的激活函数
- 实时工作时最大支持神经网络参数大小为 5.5MiB 到 5.9MiB
- 非实时工作时最大支持网络参数大小为(Flash 容量-软件体积)
2、下载模型:
下载 face_model_at_0x300000.kfpkg 这个模型文件:
https://dl.sipeed.com/MAIX/MaixPy/model
3、烧录模型
用 kflash_gui 下载模型到 Flash, 或者放到 SD 卡中
4、调试源码
获取github的代码
MaixPy_scripts/demo_find_face.py at master · sipeed/MaixPy_scripts · GitHub
其中,核心代码:
task = kpu.load(0x300000) #导入模型
# task = kpu.load("/sd/face.kmodel")
anchor = (1.889, 2.5245, 2.9465, 3.94056, 3.99987, 5.3658, 5.155437, 6.92275, 6.718375, 9.01025)
kpu.init_yolo2(task, 0.5, 0.3, 5, anchor)
code = kpu.run_yolo2(task, img)
代码使用了YOLO V2这个模型,它有专用的函数接口,使用init_yolo2来初始化模型
5、运行
右下角链接后运行脚本,可以看到效果如下图所示:
参考资料: