K210-----人脸检测

文章目录

  • 前言
  • 一、使用步骤
    • 1.将模型文件导入K210的flash当中
    • 2.代码


前言

记录一下K210的学习,学习主要按照官网的手册,以及官网内容进行。

一、使用步骤

1.将模型文件导入K210的flash当中

1.找到官方给的例程,进入人脸检测的目录当中。

 K210-----人脸检测_第1张图片

 2.将facedetect.kmodel、flash-list.json压缩,并将压缩文件后缀修改为.kfpkg

3点击打开文件,并找到压缩后的.kfpkg文件,再点击下载。

2.代码

# Untitled - By: Think - 周日 1月 8 2023

import sensor, image, time
import KPU as kpu
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time = 2000)
lcd.init()
task  = kpu.load(0x300000)#将模型放入flash的0x300000位置
anchor = (1.889, 2.5245, 2.9465, 3.94056, 3.99987, 5.3658, 5.155437,
6.92275, 6.718375, 9.01025)#模型描参数
a = kpu.init yolo2(task,0.5,0.3,5,anchor)#初始化yolov2网络

clock = time.clock()

while(True):
    clock.tick()
    img = sensor.snapshot()
    code = kpu.run yolov2(task,img)#运行yolov2网络
    if code:
        for i in code:
            print(i)
            b = img.draw_rectangle(i.rect())
    lcd.display(img)
    print(clock.fps())

(代码使用的是官方例程的。)

函数说明:

 KPU.load(offset, file_path)

  2.1.1. 参数#

offset 和 file_path 参数只能二选一,不需要关键词,直接传参即可

  • offset: 模型在 flash 中的偏移大小,如 0xd00000 表示模型烧录在13M起始的地方, 0x300000表示在 Flash 3M的地方
  • file_path: 模型在文件系统中为文件名, 如 “/sd/xxx.kmodel”

返回#

如果正确加载,会返回返回值, 否则会抛出错误, 请看抛出的错误提示, 另外错误代码参考这里

如果发现错误代码是小于 2000 的值, 则是固件版本太低,需要更新固件版本

  • kpu_net: kpu 网络对象

KPU.init_yolo2(kpu_net, threshold, nms_value, anchor_num, anchor)
yolo2网络模型传入初始化参数, 只有使用yolo2时使用

  • kpu_net: kpu 网络对象, 即加载的模型对象, KPU.load()的返回值
  • threshold: 概率阈值, 只有是这个物体的概率大于这个值才会输出结果, 取值范围:[0, 1]
  • nms_value: box_iou 门限, 为了防止同一个物体被框出多个框,当在同一个物体上框出了两个框,这两个框的交叉区域占两个框总占用面积的比例 如果小于这个值时, 就取其中概率最大的一个框
  • anchor_num: anchor 的锚点数, 这里固定为 len(anchors)//2
  • anchor: 锚点参数与模型参数一致,同一个模型这个参数是固定的,和模型绑定的(训练模型时即确定了), 不能改成其它值。

KPU.run_yolo2(kpu_net,image_t)

  • kpu_net: kpu_load 返回的 kpu_net 对象
  • image_t:从 sensor 采集到的图像

返回

        kpu_yolo2_find 的列表

 

你可能感兴趣的:(K210,单片机,python)