1. 磐创AI首页
  2. Medium

基于LBPH算法的人脸识别系统


人类每天都会不费吹灰之力地自动进行人脸识别。

虽然这听起来对我们来说是一项非常简单的任务,但事实证明这对计算机来说是一项复杂的任务,因为它有许多变量可以影响方法的准确性,例如:光照变化、低分辨率、遮挡等。

  • 人脸检测:它的目标是在图像中找到人脸(位置和大小),并可能提取它们以供人脸识别算法使用。
  • 人脸识别:由于人脸图像已经提取、裁剪、调整大小并通常转换为灰度,人脸识别算法负责找到最能描述图像的特征。

局部二值模式直方图

利用LBP和直方图相结合的方法,我们可以用一个简单的数据向量来表示人脸图像。

  • 半径:半径用于构建圆形局部二进制模式,表示中心像素周围的半径。它通常设置为1。
  • 邻居:构建循环本地二进制模式的采样点数量。请记住:包含的采样点越多,计算成本就越高。它通常设置为8。
  • 网格X:水平方向上的单元格数量。单元越多,网格越细,得到的特征向量的维数就越高。它通常设置为8。
  • 网格Y:垂直方向上的单元格数量。单元越多,网格越细,得到的特征向量的维数就越高。它通常设置为8。

2.算法训练:首先,需要对算法进行训练。要做到这一点,我们需要使用包含我们想要识别的人的面部图像的数据集。我们还需要为每个图像设置ID(可能是数字或人名),因此算法将使用此信息来识别输入图像并给出输出。同一个人的图像必须具有相同的ID。既然已经构建了训练集,让我们来看看LBPH的计算步骤。

3.应用LBP操作:LBPH的第一个计算步骤是通过突出面部特征来创建更好地描述原始图像的中间图像。为此,该算法使用了滑动窗口的概念,基于参数半径和邻域。

4.直方图提取:现在,使用上一步生成的图片,我们可以使用Grid X和Grid Y参数将图片划分为多个网格,如下图所示:

5.进行人脸识别:在这一步中,算法已经训练完毕。创建的每个直方图用于表示来自训练数据集中的每个图像。因此,给定一个输入图像,我们对这个新图像再次执行这些步骤,并创建一个表示该图像的直方图。

  • 面部图像的验证或认证:它基本上将输入的面部图像与需要认证的用户相关的面部图像进行比较。这基本上是一个1×1的比较。
  • 识别或面部识别:它基本上将输入的面部图像与数据集中的所有面部图像进行比较,目的是找到与该面部匹配的用户。这基本上是1xN的比较。

哈尔·卡斯卡特是什么?

它是一种对象检测算法,用于识别图像或实时视频中的人脸。该算法使用Viola和Jones在2001年发表的研究论文“使用简单特征的Boost Cascade进行快速目标检测”中提出的边缘或直线检测特征。该算法给出了大量由人脸组成的正图,也给出了大量不包含任何人脸的负图进行训练。

  • 我们使用Haar Cascade进行人脸检测,并借助人脸提取功能对图像进行裁剪。

  • 在计算机视觉的帮助下,我们采集图像,并根据我们的要求对其进行处理

  • 在LBPH算法的帮助下,通过提供采集的图像对模型进行训练。

pywahtkit:

pyWhatkit是一个Python库,用于在特定时间发送WhatsApp消息,它还具有其他几个功能。以下是pyWhatkit模块的一些功能,发送WhatsApp消息,播放YouTube视频,执行谷歌搜索,获取特定主题的信息。

smtplib:

Python提供了smtplib模块,该模块定义了一个SMTP客户端会话对象,可用于将邮件发送到任何具有SMTP或ESMTP侦听器守护进程的Internet机器。

如果置信度分数大于80,如果不启动AWS EC2实例,则WhatsApp消息和邮件将发送给提供的联系人。

EC2实例是Amazon的弹性计算云(EC2)中的虚拟服务器,用于在Amazon Web Services(AWS)基础设施上运行应用程序。Amazon提供多种类型的实例,具有不同的CPU、内存、存储和网络资源配置,以满足用户需求。我们可以使用AWS命令行界面(AWS CLI)启动、列出和终止Amazon Elastic Compute Cloud(Amazon EC2)实例。

谢谢你!!

原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/06/25/%e5%9f%ba%e4%ba%8elbph%e7%ae%97%e6%b3%95%e7%9a%84%e4%ba%ba%e8%84%b8%e8%af%86%e5%88%ab%e7%b3%bb%e7%bb%9f/

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息