丽台教学 | 利用 NVIDIA Jetson Nano 制作人脸识别“门禁系统” 第一部分
来源:丽台科技 编辑:lsy631994092 2021-01-14 08:34:53 加入收藏
深度学习目前应用最广泛的即属影像辨识相关应用,例如自动驾驶系统、保安监控系统、工业瑕疵检测应用、工厂安全监测系统及医疗影像检测应用等。其中人脸辨识技术算是发展最久且应用范围最广。人脸辨识技术可结合多种不同产业的应用,如配合公司人员数据库可开发门禁系统,整合犯罪数据库可开发保安监控系统,配合商场可做为后续市场分析应用。人脸辨识整合进数据库,辨识出特定人员后,再整合控制即可衍生出很多应用。
人脸辨识主要流程分为三个步骤:
· 人脸检测(Face Detection)
· 人脸对齐(Face Alignment)
· 人脸特征表征(Feature Representation)
传统机器学习的人脸辨识中,一般可分为高维度人工特征提取(例如 : LBP, Gabor)和降维(例如 : PCA, LDA)两个步骤。不过透过深度学习,可以从原始图像直接学习人脸表征。主要三步骤如下:
找到所有脸孔
Step 1
现行常用的脸孔搜寻方法为2005年由Navneet Dalal及Bill Triggs所开发的,称为定向梯度直方图(Histogram of Oriented Gradient,简称HOG)。
HOG脸孔特征搜寻
脸孔特征点定位
Step 2
找到脸孔位置后,接下来则是进一步找到脸孔上各部位的特征点,此处使用的是2014年Vahid Kazemi和Josephine Sullivan开发的方法。即便每个人的脸孔轮廓会有不同,但在人脸上基本都可以找到这68个定位点。若能训练模型准确定位,不论脸孔位置如何改变,都可以准确的找到脸孔各部位的相对位置。
脸孔特征点定位
脸孔编码
Step 3
此部分如同我们在训练一组卷积神经网络(CNN),不过并非训练整张脸孔,而是训练一个模型让每个脸部可以生成128个测量值。主要程序分别为载入已知人物的脸孔影像、载入同一位已知人物的另一张脸孔影像、载入完全不同的人物的脸孔影像。透过脸孔比对128个测量值,由于同一个人的任10张测量值都应该大致相同,所以系统透过此方法可以快速比对及识别身份。此方法是由Google研究人员Florian Schroff、Dmitry Kalenichenko及James Philbin在2015年研发出来的。
脸孔编码对比
上述简单介绍人脸辨识的概念及理论。接下来就透过简易的实操让大家了解人脸辨识技术的导入其实并不难。
以下是所有的材料,当然需要另行自备屏幕。NVIDIA Jetson Nano的显示界面为HDMI。
除了房子模型外,其他装置都可以很容易取得,请发挥创意制作好模型。
组装完成后的成品如下图,这里小丽还另外加装一组按钮,方便开关机。
马达则安装在下方门轴处。
大家可以发挥巧思,例如马达轴心如果安装在嘴巴处,就可以让骷髅模型做嘴巴开合的动作。
组装完成后,接下来就是Jetson Nano要载入人脸辨识的模型,小丽这里不仅导入人脸辨识模型,也导入包含情绪、年龄及性别共四个模型。
模型的参考资料如下:
人脸识别:
https://github.com/ageitgey/face_recognition
情绪识别:
https://github.com/amineHorseman/facial-expression-recognition-using-cnn
年龄以及性别识别:
https://github.com/dpressel/rude-carnie
大家可以参考一下上述的网址,这里小丽就先卖个关子,下篇中会继续介绍如何组装及导入四个模型进行辨识。
评论comment