猪百岁 发表于 2021-3-24 20:19:47

【新手基础教程】图像处理

#图像处理


## 人脸检测

在一张图片中找出人脸, 并且框出人脸,即知道脸的位置和大小

使用了`YOLO V2`模型对人脸进行检测

## 1. 使用方法:

-   下载模型: 到[这里](https://dl.sipeed.com/MAIX/MaixPy/model)下载`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`: 概率阈值, 只有是这个物体的概率大于这个值才会输出结果, 取值范围:
-   `nms_value`: box_iou 门限, 为了防止同一个物体被框出多个框,当在同一个物体上框出了两个框,这两个框的交叉区域占两个框总占用面积的比例 如果小于这个值时, 就取其中概率最大的一个框
-   `anchor_num`: anchor 的锚点数, 这里固定为`len(anchors)//2`
-   `anchor`: 锚点参数与模型参数一致,同一个模型这个参数是固定的,和模型绑定的(训练模型时即确定了), 不能改成其它值。

然后输入图片数据,运行模型

```
code = kpu.run_yolo2(task, img)
```

得到结果, 完整例程看[这里](https://github.com/sipeed/MaixPy_scripts/blob/master/machine_vision/face_find/demo_find_face.py)

API 文档看(https://cn.maixpy.sipeed.com/zh/api_reference/Maix/kpu.html)
页: [1]
查看完整版本: 【新手基础教程】图像处理