人脸检测
在一张图片中找出人脸, 并且框出人脸,即知道脸的位置和大小
使用了YOLO V2
模型对人脸进行检测
使用方法:
- 下载模型: 到这里 下载
face_model_at_0x300000.kfpkg
这个模型文件 - 用 kflash_gui 下载模型到 Flash, 或者放到 SD 卡中
- 加载模型
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)
因为使用了YOLO V2
这个模型, 它有专用的函数接口, 使用init_yolo2
来初始化模型
参数分别为:
kpu_net
: kpu 网络对象, 即加载的模型对象,KPU.load()
的返回值threshold
: 概率阈值, 只有是这个物体的概率大于这个值才会输出结果, 取值范围:[0, 1]nms_value
: box_iou 门限, 为了防止同一个物体被框出多个框,当在同一个物体上框出了两个框,这两个框的交叉区域占两个框总占用面积的比例 如果小于这个值时, 就取其中概率最大的一个框anchor_num
: anchor 的锚点数, 这里固定为len(anchors)//2
anchor
: 锚点参数与模型参数一致,同一个模型这个参数是固定的,和模型绑定的(训练模型时即确定了), 不能改成其它值。
然后输入图片数据,运行模型
code = kpu.run_yolo2(task, img)
得到结果, 完整例程看这里
API 文档看 Maix.KPU