0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何利用Python和函数库进行简单的人脸识别?(附源码)

如意 来源:读芯术微信公众号 作者:读芯术微信公众号 2020-09-04 14:06 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文将介绍图像处理中的一些重要概念,除了具体解释每个步骤之外,还将提供一个在Python中使用Cv2和DLib库轻松进行人脸识别的项目。

感兴趣区域

在使用图像进行面部分析时,最重要的概念之一是定义感兴趣区域(ROI),我们必须在图像中定义一个特定的部分,在那里筛选或执行一些操作。

例如,如果我们需要筛选汽车的车牌,我们的感兴趣领域只停留在车牌上,那么街道、车身和图片中出现的任何东西都只是辅助部分。在本例中,我们将使用opencv库,该库支持对图像进行分区并帮助我们确定感兴趣领域。

Haar库

本项目中将使用现成的分类器:级联的Haar分类器,这种特定的分类器将始终适用于灰度图像。

算法生成了一个几何图形,该几何图形将识别与我们所分析的相似点。因此在本例中,它将尝试寻找人脸图案,即眼睛、鼻子和嘴巴。这种分析方法最大的问题是产生幻想性视错觉。

你看到的是人眼还是几扇窗户?在希腊词源学中,幻想性视错觉是一种人类的特征。从童年起,我们的大脑就被编程来识别物体、图像中的人脸。利用我们先前获得的经验,我们自己的大脑会根据我们所认识到的“人类”特征来寻找一种模式,增加新的人脸面孔。

使用Haar人脸特征分类器

用以下图像为例:

来看看识别这张图片中的人脸代码:

如何利用Python和函数库进行简单的人脸识别?(附源码)

该算法将图像转换为灰度图像,如前所述,这是分类器操作的一个基本步骤,然后我们使用dectedMultiScale函数搜索图像中的人脸,并通过绘制矩形来显示图像的位置,当定位人脸时结果如下:

我们能够准确地分析两张出现的脸(采用矩形的方式将人脸框起来),有两个人完全正面地露出他们的脸,人脸完全显现,所以我们可以清楚地看到他的脸;另一个人只露出了面部的一部分,所以我们没有得到准确的信息来确认这是一张完整的人脸。

面部特征检测

Dlib是一个拥有一些分类器的库,可以帮助我们检测人脸的某些部分,例如:眼睛、眉毛、鼻子和洋娃娃的区域。以下图为例:

现在,使用算法来识别图像中的面部特征点:

如何利用Python和函数库进行简单的人脸识别?(附源码)

我们使用的是人脸68个特征分类器,它试图更精确地理解点面,这给了我们更多的选择去分析结果,其缺点是速度有点慢。所以必须划定一个矩形来确定我们的脸可能在哪里,特征是我们可以识别的人脸特征,包括脸、嘴、眼睛、眉毛。

一旦用矩形的方式框出了脸,就可以使用功能部件将这些特征返回,最后将得到一些可视化的东西去生成一个带有面部点的图像。结果是:

这些点对于帮助识别表情很重要,例如我们可以识别出这个男孩睁着眼睛,闭着嘴巴。把这看作是一种情绪的表现,可以说这个男孩很焦虑。当一个人微笑时,它可以帮助理解这种情绪可能表达的是幸福。

上述例子向我们展示了,Python可以识别出我们感兴趣的区域,在本文中就是人脸识别。这个项目还可以扩展到使用机器学习来检测,探究图像中的人是否感到快乐、悲伤或者忧虑。

包含所有内容的项目可从以下网址获得:https://github.com/LimaGuilherme/facial-recognize
责编AJX

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4406

    浏览量

    66812
  • 人脸识别
    +关注

    关注

    77

    文章

    4117

    浏览量

    87733
  • python
    +关注

    关注

    57

    文章

    4856

    浏览量

    89548
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于openCV的人脸检测系统的设计

    通过对基于Adaboost人脸检测算法的研究,利用该算法与计算机视觉类openCV进行人脸检测系统的设计,实现了对出现在视频或图像中的人脸
    发表于 12-23 14:19

    【LeMaker Guitar试用体验】之基于Python的人脸识别系统【结贴】

    Python编程语言下实现基于LeMaker Guitar的人脸识别系统,具体方案操作如下。一.实验说明系统设备:1.LeMakerGuitar开发板2.蓝色妖姬免驱USB摄像头辅助软件
    发表于 02-25 14:03

    【Raspberry Pi 3试用体验】+Opencv+python的人脸识别

    ;)看一下效果:光线不好还是能认出来,说明opencv自带的分类器算开源里面不错的了~参考:Tigerboard开发板试用体验 python+opencv的人脸识别 NanoPi2试用体验
    发表于 05-13 21:38

    Dragonboard 410c USB摄像头进行人脸识别

    的方法来实现对测试人脸的预测。准备好数据后,就可以利用这些数据进行简单的人脸识别了,根据上述数据
    发表于 09-21 10:53

    LabVIEW人脸识别设计

    ,但由于其易于上手,编程简单,广泛应用于生产生活中的各个领域。LabVIEW自带算法无法实现人脸检测以及识别,但是其支持调用第三方函数库,因此,本课程
    发表于 04-28 10:00

    ZLGCAN接口函数库

    ZLGCAN接口函数库 数据结构VCI 函数库中定义了一些数据结构用于数据交换,在使用VCI 函数前应该先创建这些数据结构。在LabVIEW 中创建这些结构时应该使用
    发表于 03-29 14:01 56次下载

    PIC单片机的C语言应用下的函数库

    PICC编译器下的函数库,调用函数库开发,更快更方便,更少的bug
    发表于 12-09 15:29 10次下载

    STM8函数库中文参考

    STM8函数库中文参考,感兴趣可以看看。
    发表于 07-25 18:52 171次下载

    STM32固件函数库-中文

    STM32固件函数库-中文,感兴趣的小伙伴们可以看看。
    发表于 07-26 10:29 67次下载

    PID模块相关函数库

    PID模块相关函数库
    发表于 11-17 18:35 7次下载

    Python编程实例——利用Dragonboard 410c开发板实现人脸识别(二)

    如何使用createFisherFaceRecognizer在dragonbaord 410c开发板上来进行人脸识别,今天将重点介绍该方法的原理和调用方法,处理中只是以识别前面人脸检测
    发表于 02-08 11:43 1618次阅读
    <b class='flag-5'>Python</b>编程实例——<b class='flag-5'>利用</b>Dragonboard 410c开发板实现<b class='flag-5'>人脸</b><b class='flag-5'>识别</b>(二)

    linux_C函数库中文手册

    linux_C函数库中文手册linux_C函数库中文手册
    发表于 03-20 10:42 15次下载

    RD8x3x单片机函数库源码

    RD8x3x单片机函数库源码分享
    发表于 10-21 15:47 1次下载

    基于python代码的人脸识别实例

    基于python代码的一个人脸识别的实例,完整的实例,本人在pycharm中实测通过,是一个很基础的入门级的人脸检测和识别
    发表于 07-18 11:11 51次下载

    利用vMeasure eMobilityAnalyzer函数库分析电机性能

    本文利用vMeasure eMobilityAnalyzer函数库中的克拉克变换功能,将三相电机定子电流或电压转换为两相电流或电压,帮助工程师更有效地、可视化地分析电机的行为并对控制算法进行针对性的优化,从而提高电机的性能和效率
    的头像 发表于 09-13 11:37 1028次阅读
    <b class='flag-5'>利用</b>vMeasure eMobilityAnalyzer<b class='flag-5'>函数库</b>分析电机性能