使用设备
ZTFR开发板
人脸识别
首先简单介绍一下 K210 的 KPU。KPU 是 K210 内部一个神经网络处理器,简单来说就是 KPU 能加载和运行各种现成的 AI 算法模型,实现各种机器视 觉等功能。 MaixPy 中人脸识别本质是目标检测,主要通过在 K210 的 KPU 上跑 YOLO(You Only Look Once)目标检测算法来实现。我们来看一下 KPU 在 MaixPy 下的 用法。
构造函数
构造函数
import KPU as kpu
#常用的 KPU 模块导入方法。
使用方法
函数 | 参数 |
---|---|
kpu.load(offset or file_path) | 加载模型。【offset】模型存放在 flash 的偏移量,如 0x300000;【file_path】模型在文件系统为文件名,如“xxx.kmodel” |
kpu.init_yolo2(kpu_net,threshold,nms_value,anchor_num,anchor) | 初始化 yolo2 网络;【kpu_net】kpu 网络对象【threshold】概率阈值;【nms_value】box_iou 门限;【anchor_num】描点数;【anchor】描点参数与模型参数一致。 |
kpu.run_yolo2(kpu_net,image) | 运行 yolo2 网络;【kpu_net】从 kpu_load()中返回的网络对象;【image】从 sensor 中采集到的图像 |
kpu.deinit(kpu_net) | 反初始化。【kpu_net】kpu 网络对象 |
导入模型
请按照以下步骤解锁物体识别(滑稽)
1.下载模型模型地址
下载
2.使用kflash把模型文件添加到开发板中,参数如下
3.下载成功就可以继续浪了
示例代码
基础测试
https://blog.sipeed.com/p/677.html (代码地址)
import sensor,image,lcd,time
import KPU as kpu
lcd.init(freq=15000000)
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_vflip(1) #摄像头后置方式
sensor.run(1)
clock = time.clock()
#模型分类,按照 20class 顺序
#“飞机”、“自行车”、“鸟”、“船”、“瓶子”、“公交车”、“汽车”、“猫”、“椅子”、“牛”、“餐桌”、
#“狗”、“马”、“摩托车”、“人”、“土豆植物”、“羊”、“沙发”、“火车”、“电视监视器”
classes = ['aeroplane', 'bicycle', 'bird', 'boat', 'bottle', 'bus', 'car', 'cat', 'chair', 'cow', 'diningtable', 'dog', 'horse', 'motorbike', 'person', 'pottedplant', 'sheep', 'sofa', 'train', 'tvmonitor']
#需要将模型(20class.kfpkg)烧写到 flash 的 0x500000 位置
task = kpu.load(0x500000)
anchor = (1.08, 1.19, 3.42, 4.41, 6.63, 11.38, 9.42, 5.11, 16.62, 10.52)
#初始化 yolo2 网络,识别可信概率为 0.5(50%)
a = kpu.init_yolo2(task, 0.5, 0.3, 5, anchor)
while(True):
clock.tick()
img = sensor.snapshot()
code = kpu.run_yolo2(task, img)
print(clock.fps())
if code:
for i in code:
a=img.draw_rectangle(i.rect())
a = lcd.display(img)
for i in code:
lcd.draw_string(i.x(), i.y(), classes[i.classid()], lcd.RED, lcd.WHITE)
lcd.draw_string(i.x(), i.y()+12, '%f1.3'%i.value(), lcd.RED, lcd.WHITE)
else:
a = lcd.display(img)
a = kpu.deinit(task)
实现效果
将代码保存到开发板的boot.py;保存成功我们就可以不用连数据线了。放个电池就能运行了
实现效果
运行程序,准备 20class 里面相关的物体图片,可以看到 pyAI-K210 可以轻易地将相关物体识别出来。