dlib库快速构建人脸识别

概念:引入

自2002年以来,Davis King一直是dlib的主要作者。dlib为每个类和函数提供了完整的文档说明。同时还提供了debug模式,打开debug模式后,开发者能够调试代码,查看变量和对象的值,快速定位错误点。不依赖第三方库,就是这么高傲。因此我们无需安装和配置,并且在windows,Mac OS , Linux系统上轻松驾驭。截止2022年5月12日,github上已有个11.1Kstart, 用户量14K,贡献者161人,可见受欢迎程度还是挺不错的。

它是一个高性能的计算框架。它是一个C++编写的工具包,所以在应用层面的推理速度是非常快的。而且配备了python客户端,很方便开发者在各大平台使用,大大提高了框架的灵活性。

广泛应用于工业界和学术界。包含了大多数常用的机器学习算法,许多图像处理算法和深度学习算法,被工业界和学术界广泛应用于机器人,嵌入式设备,移动电话和大型高性能计算环境领域。常见的深度学习,基于SVM的分类和递归算法,针对大规模分类和递归的降维方法,相关向量机,聚类,多层感知机等都有相关API,且配置详细文档。最重要的一点是开源,开源,开源!这就意味着,我们可以在任何APP上免费试用。

步骤:思路

dlib之人脸识别。dlib库的是一个完整的机器学习库,人脸识别只是它其中的一个子集。

dlib库采用68点位置标志人脸重要部位,比如18-22点标志右眉毛,51-68标志嘴巴。Dlib实现思路从人脸检测,人脸对齐,人脸表示和人脸匹配5个部分来进行实现。

人脸检测(Face Detection)。从输入的图像中检测到人脸区域,并返回人脸包围框的坐标。

人脸对齐(Face Alignment)。从人脸区域中检测到人脸特征点,并以特征点为依据对人脸进行归一化操作,使人脸区域的尺度和角度一致,方便特征提取与人脸匹配。人脸对齐的最终目的是在已知的人脸方框中定位人脸的精准形状,主要分为两大类:基于优化的方法和基于回归的方法。基于优化的方法主要来自深度网络模型,比如卷积神经网络(CNN)、深度自编码(DAE)和受限玻尔兹曼机(RBM)等来建模人脸形状和表观的变化,进而获得人脸表观到形状的非线性映射。基于优化的方法可以看做是学习一个回归函数,以图像输入,输出特征点的位置(人脸形状),构造一个级联回归模型。

人脸表示(Face Representation)。从归一化的人脸区域中进行特征提取,得到特征向量,比如有深度神经网络方法使用128个特征向量表示人脸,最理想的情况是不同的人的照片提取出的特征向量不一样,而同一个人的不同照片中可以提取出相似的特征向量。深度学习识别人脸的主要思路是不同的人脸由不同的特征组成。简单而言,特征可以有眼皮,鼻子,眼睛,肤色,发色等等。

在dlib库中,作者采用了比较重要的68个特征点(landmark),可以从下面这张图片看到,对其进行特征向量化。

图片

人脸匹配(Face Mataching)。将两幅图片计算的特征向量进行对比,获得两幅照片相似得分。根据相似得分,得分高的可判断为同一人,得分低的判断为不同人。计算一组向量的距离,通常欧式距离,或者余弦相似度等都是不错的选择。

运用:场景

刷脸支付。“刷脸支付”是我们很常见的一种典型应用,周末去永辉超市,或者西单,都有自助结算机器,扫完了商品条形码,计算除了商品价格总额,或有几个选项,其中有一个就是"熟练支付".还有我们每天都接触的微信,支付宝都有相应的刷脸支付,但是疫情当下,显然阻碍了我们使用,不过Phone13的面容ID与密码,又让技术再一次赋能。

刑侦破案。而相比于刷脸支付的轻松,人脸识别系统在刑侦破案方面算是比较硬核,并且能够通过这项技术,找到犯罪嫌疑人,这样加快了警方破案的时间和效率,也让犯罪分子无处遁形。这个我们应该比较熟悉,很早就有张学友演唱会成抓逃神地多名逃犯落网人脸识别多次立功这样的陈宫案例。

门禁考勤。这应该是最接地气的应用,在小区或者是校园等等的地方,可以用于门禁方面。这样既能提高检测的效率,还能够防止非小区人员的随意进入,管理起来非常的方便,同时安全系数也都提高了不少。以前的记录考勤的方法有很多种,比如人工打卡、指纹打卡、钉钉打卡等等,如今再添一员猛将,人脸识别打卡,就更加的精准和方便了。每天只要刷脸就能记录考勤和时间,这样还能防止作弊,可谓是一举两得了。

小结:

一项好的技术,确实可以给生活中的方方面面都带来一些便利和安全,而人脸识别应用就是如此。

dlib库人脸识别包含人脸检测,人脸对齐,人脸表示和人脸匹配5个部分。

人脸识别在我们的生活中处处可见,算法赋能,提高全人类的效率,社会的进化有序进行。

dlib C++ Library:dlib C++ Library

Github:  https://github.com/davisking/dlib

最后的话

大家好,好久没有写文章了。这一次,我将以全新的面貌来面对大家。虽然当下,短视频很流行,但是依然像5年开始公众号一样,用文字的形式记录。这次不仅限于我的本职行业,,是一个更高层面的认知社会,算法是我的立命之本,但不我的终极目标,活成一个有宽度的人,智商不够,勤奋来凑,未来可期。当然你也可以私信,你想看的,比如经济学,金融学,商业,战略,管理,产品,艺术,算法都可以。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目介绍】 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到94.5分,放心下载使用! 该资源适合计算机相关专业(如人工智能、通信工程、自动化、软件工程等)的在校学生、老师或者企业员工下载,适合小白学习或者实际项目借鉴参考! 当然也可作为毕业设计、课程设计、课程作业、项目初期立项演示等。如果基础还行,可以在此代码基础之上做改动以实现更多功能。 人脸识别考勤系统 本项目是一个基于 Python人脸识别考勤系统,主要使用了 `dlib`、`opencv`、`tkinter`、`PIL`、`pymysql` 等,并使用了 KNN 算法进行人脸识别。 环境安装 在运行本项目之前,请确保已经安装了以下环境和: - Python - PyCharm - dlib(需要 Cmake、Visual Basic、C++ 依赖环境) - opencv - tkinter - pymysql - PIL - threading - time 功能介绍 本项目具有以下功能: - 打开系统按钮:打开摄像头捕获人脸。 - 注册按钮:将人脸、学号、姓名信息存储到数据中。 - 查看缺勤名单:将没有识别签到的学生学号和姓名导出到打开的名单界面。 - 是否开始训练:点击“是”按钮进行人脸模型的训练。 - 帮助按钮:查看使用软件的注意事项。 注意事项 在使用本项目之前,请注意以下事项: 1. 请先打开系统。 2. 注册时请对准人脸,光线充足。 3. 训练时禁止进行其他操作。 文件说明 本项目包含以下文件: - `recognition.py`:主文件。 - `db.py`:数据文件。 - `help_tip.py`:帮助窗口文件。 - `precamera.py`:预处理文件。 - `late_name.py`:缺勤名单文件。 - `trained_knn_model.clf`:KNN 算法模型文件。 - `knn_examples` 文件夹:包含了训练集和测试集,仅供学习交流探讨使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值