本文将介绍图像处理中的一些重要概念,除了具体解释每个步骤之外,还将提供一个在python中使用cv2和dlib库轻松进行人脸识别的项目。
感兴趣区域
在使用图像进行面部分析时,最重要的概念之一是定义感兴趣区域(roi),我们必须在图像中定义一个特定的部分,在那里筛选或执行一些操作。
例如,如果我们需要筛选汽车的车牌,我们的感兴趣领域只停留在车牌上,那么街道、车身和图片中出现的任何东西都只是辅助部分。在本例中,我们将使用opencv库,该库支持对图像进行分区并帮助我们确定感兴趣领域。
haar库
本项目中将使用现成的分类器:级联的haar分类器,这种特定的分类器将始终适用于灰度图像。
该算法生成了一个几何图形,该几何图形将识别与我们所分析的相似点。因此在本例中,它将尝试寻找人脸图案,即眼睛、鼻子和嘴巴。这种分析方法最大的问题是产生幻想性视错觉。
你看到的是人眼还是几扇窗户?在希腊词源学中,幻想性视错觉是一种人类的特征。从童年起,我们的大脑就被编程来识别物体、图像中的人脸。利用我们先前获得的经验,我们自己的大脑会根据我们所认识到的“人类”特征来寻找一种模式,增加新的人脸面孔。
使用haar人脸特征分类器
用以下图像为例:
来看看识别这张图片中的人脸代码:
该算法将图像转换为灰度图像,如前所述,这是分类器操作的一个基本步骤,然后我们使用dectedmultiscale函数搜索图像中的人脸,并通过绘制矩形来显示图像的位置,当定位人脸时结果如下:
我们能够准确地分析两张出现的脸(采用矩形的方式将人脸框起来),有两个人完全正面地露出他们的脸,人脸完全显现,所以我们可以清楚地看到他的脸;另一个人只露出了面部的一部分,所以我们没有得到准确的信息来确认这是一张完整的人脸。
面部特征检测
dlib是一个拥有一些分类器的库,可以帮助我们检测人脸的某些部分,例如:眼睛、眉毛、鼻子和洋娃娃的区域。以下图为例:
现在,使用算法来识别图像中的面部特征点:
我们使用的是人脸68个特征分类器,它试图更精确地理解点面,这给了我们更多的选择去分析结果,其缺点是速度有点慢。所以必须划定一个矩形来确定我们的脸可能在哪里,特征是我们可以识别的人脸特征,包括脸、嘴、眼睛、眉毛。
一旦用矩形的方式框出了脸,就可以使用功能部件将这些特征返回,最后将得到一些可视化的东西去生成一个带有面部点的图像。结果是:
这些点对于帮助识别表情很重要,例如我们可以识别出这个男孩睁着眼睛,闭着嘴巴。把这看作是一种情绪的表现,可以说这个男孩很焦虑。当一个人微笑时,它可以帮助理解这种情绪可能表达的是幸福。
上述例子向我们展示了,python可以识别出我们感兴趣的区域,在本文中就是人脸识别。这个项目还可以扩展到使用机器学习来检测,探究图像中的人是否感到快乐、悲伤或者忧虑。
包含所有内容的项目可从以下网址获得:https://github.com/limaguilherme/facial-recognize
责编ajx
探索 Q10821G5 迷你电脑的潜力:软件路由和防火墙应用的紧凑型动力源
巨头的大手笔:Google太阳能屋顶
Littelfuse推出电源控制设备,拓展LED等负载的照明频谱使用范围
解读国内外激光雷达技术差异
如何提高CAN总线接口防护设计的可靠性?
如何利用Python和函数库进行简单的人脸识别?(附源码)
物联卡GPS定位的应用简述
灵活的过压/欠压检测器可监控负电压和正电压
阻抗继电器引入第三相电压的目的
三星S8真机曝光:这才是你们想要的三星S8!
华为海思计划在本月发布7nm的麒麟新处理器麒麟810
数字音频放大器
为解决通讯信号问题,苹果2020年或将换用高通基带
STM32单片机看门狗的配置方法
四种数据中心网络虚拟化技术对比
如何使用TOF 3D超感应技术来实现人脸识别支付的详细资料概述
基于OpenCV的网络实时视频流传输教程
瑞萨电子推出具备蓝牙功能的RX23W模块,适用于物联网设备的系统控制与无线通信
迈步助行机器人入选工信部《2023年老年用品产品推广目录》
Altera Stratix V FPGA实现业界第一款单芯片双路100G转发器