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