人脸门禁
3.1项目介绍
3.1.1背景导入
在日常生活中,你是不是遇到过忘记带钥匙回不了家、或是已经走出家门还要返回确认有没有锁好门的情景?现在无论是人脸扫描进出车站、刷脸支付、校园安全管理、人脸打卡等场景,都离不开人脸识别技术的应用。如果家里的门锁也能通过识别人脸打开,就可以避免丢钥匙或忘记带钥匙时,不能进家门的烦恼了。不仅方便快捷,遇到陌生人还能够发出警报,提高安全性。
项目背景导入
那我们就用Huskylens的人脸识别功能来制作一个能认出主人的人脸门禁。
3.1.2任务拆解
Huskylens的人脸识别功能,可以侦测任何脸部轮廓,识别、追踪学习过的人脸。我们在人脸门禁项目中,模拟陌生人和主人刷脸开锁的场景。
首先使用Huskylens学习主人的人脸。当检测到门口有人时,根据识别的结果,区分出已学习和未学习的人脸分别对应主人和陌生人。当识别结果为已学习的人脸时打开门锁,识别到未学习过的人脸判定为陌生人,并给出不同程度的安全提醒。
STEP1:使用Huskylens的人脸识别功能,学习主人人脸。
STEP2:添加角色,调整角色的位置和大小,布置场景。
STEP3:实现角色运动的动画效果。
STEP4:鼠标点击切换主人和陌生人脸。
STEP5:根据Huskylens的识别结果,开门或发出警报。
(目标功能实现效果示意)
3.2项目准备
3.2.1软件设置
打开Mind+软件,确认软件为“实时模式”。点击“扩展”,在“功能模块”里加载“Huskylens教育版”。点击“返回”到主界面可以看到功能模块添加成功。
Mind+图形化编程软件加载HuskyLens教育版
3.2.2硬件连接
用USB线把Huskylens连接到电脑,接着点击扩展功能旁的橙色感叹号,进行连接。连接成功后感叹号会变成绿色对勾(如下图),“返回编辑器”就完成连接啦。
HuskyLens与硬件相连
3.3程序思路
在程序中设置身体、人脸和Huskylens三个角色。身体控制人物的运动。人脸跟随身体移动,点击切换主人和陌生人造型。Huskylens负责人脸的检测和对应反馈。
人脸识别程序思路
3.4功能实现
3.4.1Huskylens人脸识别
(1)功能设置
向左或向右拨动“功能按键”,直至屏幕顶部显示“人脸识别”。
人脸识别功能设置
Tip:默认设置为学习并识别单个人脸,“识别多个人脸”将在下节课中学习。
(2)侦测人脸
把HuskyLens对准有人脸的区域,屏幕上会用白色框自动框选出检测到的所有人脸,并分别显示“人脸”字样。若屏幕中央的“+”字没有对准任何人脸框,RGB灯不亮;若屏幕中央的“+”字对准人脸框,RGB灯亮蓝色。
侦测人脸
Tip:如需让HuskyLens学习或识别自己的脸,此时看不到屏幕,那么可以根据RGB指示灯的颜色来确定状态。
(3)学习人脸
将HuskyLens屏幕中央的“+”字对准需要学习的人脸,短按“学习按键”完成学习。如果识别到相同的脸,则屏幕上会出现一个蓝色的框并显示”人脸:ID1“。这说明已经可以进行人脸识别了。
但短按“学习按键”仅完成了一个角度的学习,人脸是立体的,有多个角度。HuskyLens内置有持续学习的功能,可以录入人脸的各个角度,让HuskyLens越学越准确。将HuskyLens屏幕中央的“+”字对准需要学习的人脸,长按“学习按键”不松开,此时屏幕中会在人脸上显示黄色框并标识“人脸:ID1”,说明HuskyLens正在学习人脸。
HuskyLens学习人脸过程
将HuskyLens屏幕中央的黄色框依次对准同一个人的脸的不同角度,如正脸、侧脸(也可以是同一个人的多张照片),录入此人脸的各个角度。学习过程中,RGB灯为黄色。然后,松开“学习按键”,结束学习。如果HuskyLens识别到学习过的人脸,这个人脸会被蓝色的框选中,屏幕显示”人脸:ID1“。
HuskyLens学习识别人脸
(4)识别人脸
当HuskyLens检测到学习过的人脸时,会将该人脸用蓝色方框框选出来并标识“人脸:ID1”,边框大小会随着人脸大小而变化,并自动追踪人脸。
HuskyLens识别人脸
(5)忘记学过的人脸
如果屏幕中央没有“+”字,说明HuskyLens在该功能下已经学习过了(已学习状态)。如要让HuskyLens学习新的人脸,则需要删除之前学习过的人脸信息,也就是让HuskyLens忘记已学的人脸。
HuskyLens忘记学习过的人脸
在当前功能下,短按“学习按键”,屏幕提示“再按一次遗忘!”。在倒计时结束前,再次短按“学习按键”,即可删除上次学习的东西。如果不小心短按了“学习按键”,屏幕已经提示“再按一次遗忘!”,但又不想删除已学习的东西,那么在倒计时结束前,不要有任何操作即可。
Tip:HuskyLens忘记所学东西的操作方法,在其他功能下,方法相同,后续不再复述。
“人脸门禁”的课程中,请学习”主人“人脸。
3.4.2Mind+舞台场景布置
(1)添加背景
打开”背景库“,上传背景文件。
Mind+上传背景文件
上传好后,打开mind+左上角“背景”模块,编辑在舞台区的大小及位置。
Mind+软件确定背景大小和位置
(2)添加角色
删除默认的mind+角色。打开Mind+右下角“角色库”,从角色库中选择人物角色:艾弗里-行走。
Mind+角色选择
然后点击“上传角色”,打开本地文件夹,上传所需要的主人人脸、Huskylens角色。
Mind+角色设置
在人脸角色里,打开“造型”模块,上传剩余陌生人人脸作为角色造型。转化为矢量图,调整大小和位置。
将角色名修改为“身体”,“人脸”。舞台角色、背景设置效果如下图所示:
(3)设置角色初始位置
身体-实现效果:绿旗被点击时,切换舞台背景到大门背景,让人物角色移动到初始位置,设置好运动方向。
人脸-实现效果:绿旗被点击时,换成“主人”造型,人脸跟随身体移动。
点击“移到身体”会发现,人脸和身体是以锚点中心对齐的。
需要在人脸角色内,点击“造型”模块,将人脸往上移动到合适的位置。
这时人脸就可以在正确的位置跟随身体一起移动了。
3.4.3控制人物运动
实现效果:让角色在舞台上移动,通过切换角色造型让运动更加逼真。设置循环执行次数,控制角色运动到门口的位置。
3.4.4鼠标点击切换人脸
实现效果:鼠标点击人脸,切换主人和陌生人脸,为人脸识别做准备。
3.4.5Huskylens人脸识别
实现效果:当人物走到门前,Huskylens开始识别人脸是否学习过。如果是主人,则打开房门。如果是陌生人,则发出提示。若陌生人停留过久,Huskylens拍照保存并警告离开。
这行指令用于判断识别到的画面中是否有方框或箭头(包含已学习和未学习的),有一个及以上则返回1。
先判断镜头前是否有人脸出现,若有人出现,屏幕上出现人脸方框。
从识别到的“结果”中获取当前屏幕中靠近中心的方框信息,没有学习过的框ID为0,没有方框则返回-1。
如果镜头前是未学习过的人脸(ID=0),也就是识别到陌生人时,Huskylens给出提醒,重复提醒多次后,再次进行人脸识别,如果陌生人还在,那么就认为这个陌生人可疑,拍照保存至本地并发出警报。
当Huskylens识别的人脸是已经学习过的人脸,屏幕中人脸ID=1,也就是识别到主人时打开门,此时舞台换成开门背景,说“欢迎回家”。
分别把识别到陌生人和识别到主人的程序放入“是否有人出现”条件下,程序如下图:
点击人脸切换主人或陌生人,看看人脸门禁是否会开门吧!(完整程序见附录)
3.5知识小结
硬件知识:Huskylens的人脸识别功能;拍照保存到本地
编程知识:移动指令控制角色跟随移动;角色切换造型
3.6拓展阅读
3.6.1人脸识别门禁
人脸识技术中广泛采用区域特征分析算法,它融合了计算机图像处理技术与生物统计学原理于一体,利用计算机图像处理技术从视频中提取人像特征点,利用生物统计学的原理进行分析建立数学模型,即人脸特征模板。利用已建成的人脸特征模板与被测者的人的面相进行特征分析,根据分析的结果来给出一个相似值,通过这个值即可确定是否为同一人。
3.6.2人脸识别门禁安全吗?
人脸门禁有活体检测功能,也就是系统可以识别出摄像头前的人是一个真正的人还是一幅照片,以此杜绝使用者用照片、视频、面具等作假。常用的活体检测有双目摄像头、3D结构光等。图像质量的好坏直接影响到识别的效果,图像质量的检测功能能对即将进行比对的照片进行图像质量评估,并给出相应的建议值来辅助识别。
(部分来源于网络,只为课程内容配图,不做商用。如果您发现文章内有侵犯您知识产权的作品,请直接私信我们,我们会及时修改或删除。)
附录1:程序指令
附录2:程序示例