【K230嵌入式AI开发板测评】+人脸识别与门禁管理篇
[复制链接]
本帖最后由 jinglixixi 于 2024-11-8 21:15 编辑
CanMV K230具备人脸识别功能,其主要包含两个部分,即人脸检测和人脸识别。
所谓“人脸检测”,就是将一幅图片中哪些是人脸部分,以矩形框标识出来。
人脸检测的基本例程为:
在人脸检测时,先启动检测程序,然后以摄像头拣取人脸图像即可。
以识别图1内容为例,其识别结果如图2所示,即人脸部分为粉色矩形所标识。
图1 识别图像
图2 识别结果
array([[613.689, 358.5634, 325.1971, 441.2481]], dtype=float32)
22.20573
除了单人的识别检测,还可对多人进行人脸检测,图3是其检测的内容,检测的结果如图4所示,可见其检测率还是很高的。
图3 检测内容
图4 识别结果
array([[684.7645, 116.5228, 69.30847, 90.08243],
[127.5743, 82.16051, 76.31399, 102.1915],
[407.7242, 35.50314, 72.77661, 87.96561],
[394.8119, 165.3428, 69.98865, 94.06279]], dtype=float32)
17.03384
识别成功后IDE串口终端打印人脸相关信息:
所谓“人脸识别”,就是对检测出的人脸加以识别。它先是对人脸特征进行学习,然后经比对,以区分出具体的目标。
这里所说的人脸特征学习,就是对特定图片进行特征采集以完成注册,为后续的人脸识别提供支持。
所谓“注册”,就是将待识别的多张图片存放到指定的文件目录下,即“CanMV U盘/sdcard/app/tests/utils/db_img/”目录下,见图5所示。
图5 注册图片
然后,在启动人脸注册程序加以处理,具体处理流程如下:
经注册处理,在指定的“/sdcard/app/tests/utils/db/”目录下就会出现相应的注册人脸数据库,见图7所示。
图6 注册处理
图7 注册结果
在完成人脸注册,就可以进行人脸识别了,具体的人脸识别流程如下:
在为注册前,进行人脸识别的结果如图8所示。
图8 未被识别
而在注册后,将摄像头正对准待识别的人脸图像,即可看到人脸和ID被快速地识别出来,其测试结果如图9至图11所示。
图9 识别结果1
图10 识别结果2
array([[669.7213, 389.385, 226.0325, 285.5925]], dtype=float32) ['name: ID_2, score:0.9383354']
9.397278
图11 识别结果3
在打开程序终端窗口的情况下,图10的输出结果为:
array([[535.2967, 453.8895, 212.6285, 257.6084]], dtype=float32) ['name: ID_3, score:0.9281103']
10.72706
由此可知,“name: ID_3”就是识别出的注册图片名称。当然为了便于后续的处理,可以为其建立一个供查询变换的字典,将注册的图片名变换为具体的人员姓名,以便进行人性化的管理,如门禁管理、考勤机等。
对于门禁管理,就是在识别出该出入人员已注册的情况下,控制闸机的开启与关闭;而考勤机则是在此基础上,再增添出入时的时间信息,以便实现出勤管理。
实现注册图片名与人员姓名转换的程序如图12所示,经测试它可以完成设计目标。
图12 转换程序及结果
|