在过去的几年里,人脸识别受到了广泛的关注,被认为是图像分析领域最有前途的应用之一。人脸检测可以考虑人脸识别操作的很大一部分。根据其强度将计算资源集中在持有人脸的图像部分。图片中的人脸检测方法很复杂,因为人脸存在可变性,例如姿势、表情、位置和方向、肤色、眼镜或面部毛发的存在、相机增益的差异、照明条件和图像分辨率。

物体检测是计算机技术中的一种,它与图像处理和计算机视觉相联系,它与人脸、建筑物、树木、汽车等物体的检测实例相互作用。人脸检测算法的主要目的是确定图像中是否有任何人脸。

近年来,在人脸识别和人脸检测领域提出了很多研究工作,以使其更加先进和准确,但是当 Viola-Jones 推出实时人脸检测器时,它在该领域掀起了一场革命,即能够实时、高精度地检测人脸。

人脸检测是人脸识别的第一步,也是必不可少的一步,用于检测图像中的人脸。它是物体检测的一部分,可用于许多领域,如安防、生物识别、执法、娱乐、人身安全等。

它用于实时检测人脸,以对人或物体进行监视和跟踪。它广泛用于相机中,以识别 Ex-Mobile 相机和 DSLR 框架中的多个外观。 Facebook 也在使用人脸检测算法来检测图像中的人脸并进行识别。

本文适用于在计算机视觉或 AI 领域的初学者,希望了解什么是人脸检测、其类型及其工作原理来。

人脸检测方法

Yan、Kriegman 和 Ahuja 提出了人脸检测方法的分类。 这些方法分为四类,人脸检测算法可以属于两组或更多组。 这些类别如下:

1.基于知识

基于知识的方法依赖于规则集,它基于人类知识来检测人脸。一张脸必须有一个鼻子、眼睛和嘴巴,它们彼此之间一定的距离和位置。这些方法的一个大问题是难以建立一套合适的规则。如果规则太笼统或太详细,可能会有很多误报。仅此方法是不够的,无法在多张图像中找到许多人脸。

2.基于特征

基于特征的方法是通过提取人脸的结构特征来定位人脸。它首先作为分类器进行训练,然后用于区分面部和非面部区域。这个想法是为了克服我们对面孔的本能知识的限制。这种方法分为几个步骤,甚至有很多人脸的照片,他们报告的成功率为 94%。

3.模板匹配

模板匹配方法使用预定义或参数化的人脸模板,通过模板和输入图像之间的相关性来定位或检测人脸。例如,人脸可以分为眼睛、面部轮廓、鼻子和嘴巴。此外,可以仅通过使用边缘检测方法通过边缘构建人脸模型。这种方法实现起来很简单,但是对于人脸检测来说是不够的。然而,已经提出了可变形模板来处理这些问题。

4.基于外观

基于外观的方法依赖于一组委托训练人脸图像来找出人脸模型。 基于外观的方法优于其他性能方法。 一般来说,基于外观的方法依赖于统计分析和机器学习的技术来寻找人脸图像的相关特征。 这种方法也用于人脸识别的特征提取。

基于外观的模型进一步分为用于人脸检测的子方法,如下所示:

  • 基于特征脸

用于人脸识别的基于特征脸的算法,它是一种使用主成分分析有效地表示人脸的方法。

  • 基于分布

PCA 和 Fisher 判别式等算法可用于定义表示面部模式的子空间。有一个经过训练的分类器,它可以从背景图像模式中正确识别目标模式类的实例。

  • 神经网络

神经网络已经成功解决了许多检测问题,如物体检测、人脸检测、情感检测和人脸识别等。

  • 支持向量机

支持向量机是线性分类器,可最大化决策超平面和训练集中示例之间的余量。首先将此分类器应用于人脸检测。

  • Winnows 的稀疏网络

他们定义了一个由两个线性单元或目标节点组成的稀疏网络;一个代表面部图案,另一个代表非面部图案。它耗时少,效率高。

  • 朴素贝叶斯分类器(Naive Bayes Classifiers)

通过计算训练图像上一系列模式的出现频率来计算一张脸出现在图片中的概率。分类器捕获面部局部外观和位置的联合统计数据。

  • 隐马尔可夫模型(Hidden Markov Model,HMM)

模型的状态是面部特征,通常被描述为像素条。 HMM 通常与其他方法一起使用来构建检测算法。

  • 信息理论方法(Information Theoretical Approach)

马尔可夫随机场 (MRF) 可用于面部图案和相关特征。 马尔可夫过程使用 Kullback-Leibler 散度最大化类之间的区分。 因此该方法可用于人脸检测。

  • 归纳学习(Inductive Learning)

这种方法已被用于检测人脸。 Quinlan 的 C4.5 或 Mitchell 的 FIND-S 等算法用于此目的。

人脸检测的工作原理

检测人脸的技术有很多,借助这些技术,我们可以更准确地识别人脸。 这些技术具有几乎相同的人脸检测程序,例如 OpenCV、神经网络、Matlab 等。人脸检测的工作原理是检测图像中的多个人脸。 这里我们使用 OpenCV 进行人脸检测,并且有一些人脸检测操作的步骤,如下所示:

1)首先,通过提供图像的位置来导入图像。 然后将图片从RGB转换为灰度,因为在灰度中很容易检测人脸。

2)之后,使用图像处理,其中根据需要对图像进行调整大小、裁剪、模糊和锐化。

3)下一步是图像分割,用于轮廓检测或分割单个图像中的多个对象,以便分类器可以快速检测到图片中的对象和人脸。

4)下一步是使用 Haar-Like 特征算法,该算法由 Voila 和 Jones 提出用于人脸检测。该算法用于查找帧或图像中人脸的位置。所有的人脸都具有人脸的一些普遍特性,例如眼睛区域比其相邻像素更暗,鼻子区域比眼睛区域更亮。

haar-like算法也用于对图像中的物体进行特征选择或特征提取,借助边缘检测、线检测、中心检测来检测图片中的眼睛、鼻子、嘴巴等。 它用于选择图像中的基本特征并提取这些特征进行人脸检测。

5)下一步是给出x、y、w、h的坐标,这在图片中形成一个矩形框来显示人脸的位置,或者我们可以说是显示图像中的感兴趣区域。之后,它可以在检测到人脸的感兴趣区域中制作一个矩形框。 还有许多其他检测技术一起用于检测,例如微笑检测、眼睛检测、眨眼检测等。

如何实时运行人脸检测器(基于网络摄像头)

运行代码的要求 - Python、OpenCV、网络摄像头、Numpy。

#import libraries
import cv2
import numpy as np
#import classifier for face and eye detection
face_classifier = cv2.CascadeClassifier(‘Haarcascades/haarcascade_frontalface_default.xml’)
# Import Classifier for Face and Eye Detection
face_classifier = cv2.CascadeClassifier(‘Haarcascades/haarcascade_frontalface_default.xml’)
eye_classifier = cv2.CascadeClassifier (‘Haarcascades/haarcascade_eye.xml’)
def face_detector (img, size=0.5):
# Convert Image to Grayscale
gray = cv2.cvtColor (img, cv2.COLOR_BGR2GRAY)
faces = face_classifier.detectMultiScale (gray, 1.3, 5)
If faces is ():
return img
# Given coordinates to detect face and eyes location from ROI
for (x, y, w, h) in faces
x = x — 100
w = w + 100
y = y — 100
h = h + 100
cv2.rectangle (img, (x, y), (x+w, y+h), (255, 0, 0), 2)
roi_gray = gray[y: y+h, x: x+w]
roi_color = img[y: y+h, x: x+w]
eyes = eye_classifier.detectMultiScale (roi_gray)
for (ex, ey, ew, eh) in eyes:
cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,0,255),2)
roi_color = cv2.flip (roi_color, 1)
return roi_color
# Webcam setup for Face Detection
cap = cv2.VideoCapture (0)
while True:
ret, frame = cap.read ()
cv2.imshow (‘Our Face Extractor’, face_detector (frame))
if cv2.waitKey (1) == 13: #13 is the Enter Key
break
# When everything done, release the capture
cap.release ()
cv2.destroyAllWindows ()

人脸检测可用于生物特征识别,通常做为人脸识别系统的一部分。人脸检测也可以用于视频监控、人机交互和图像数据库管理。一些最新的数码相机使用人脸检测来自动对焦。

人脸识别技术是人工智能领域的关键技术,在智能视频监控场景具有十分广泛的应用前景。

在安防监控中,人脸识别也意义重大,比如公众场所(地铁站、车站、街道、酒店等)的安防布控、公安部追捕嫌疑犯等。基于公众场所的安防监控摄像头,通过抓拍人脸并将结果上传公安部网络,与嫌疑犯人脸进行比对,协助公安人员的执法工作。TSINGSEE青犀视频也将以AI智能检测与识别技术为核心,持续研发多场景下的智能业务系统及平台,向AI领域深耕,比如EasyCVR,具有AI人脸检测、人脸识别、车牌识别、语音对讲、云台控制、声光告警、监控视频分析与数据汇总的能力,已经落地多个项目,如景区的行人检测、客流分析等场景中。

一文带你了解人脸检测算法的类型及其工作原理相关推荐

  1. 一文综述人脸检测算法(附资源)

    文章来源:SIGAI 本文共9400字,建议阅读10+分钟. 本文将和大家一起回顾人脸检测算法的整个发展历史. [导读] 人脸检测是目前所有目标检测子方向中被研究的最充分的问题之一,它在安防监控,人证 ...

  2. 移植OpenCV的AdaBoost人脸检测算法到DM6467

    1        人脸检测算法在DM6467上移植的步骤 要将人脸检测算法移植到DM6467,我们使用OpenCV现有的源码作为基础.首先,需要在PC上用C语言实现人脸检测的程序编写,然后移植Open ...

  3. RetinaFace,最强开源人脸检测算法

    作者 | CV君 来源 | 我爱计算机视觉(ID:aicvmlaicvmlaicvml) 人脸检测为目标检测的特例,是商业化最早的目标检测算法,也是目前几乎各大 CV 方向 AI 公司的必争之地. W ...

  4. 大盘点|轻量级人脸检测算法实现,快到没朋友的都在这里了~

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 整理:公众号@OpenCV中文网 本文仅做学术分享,如有侵权,请联系删除. 人脸检测是计算机视觉中的老 ...

  5. 人脸检测算法_目前最强!开源人脸检测算法:RetinaFace

    加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动! 同时提供每月大咖直播分享.真实项目需求对接.干货资讯汇总 ...

  6. 人脸检测算法_腾讯已开源高精度人脸检测算法DSFD

    腾讯提出一种高精度双分支人脸检测器DSFD并开源.该算法曾在全球两大权威人脸检测数据集WIDERFACE和FDDB上均取得了第一. 任务介绍 人脸检测算法是在图像上检测出人脸的位置(通常以矩形框形式输 ...

  7. 惊呆了!速度高达15000fps的人脸检测算法!

    点击我爱计算机视觉标星,更快获取CVML新技术 昨天52CV君发现一篇奇文,<Face Detection at 15,000 FPS:Real-Time Inference on GPU an ...

  8. 使用FDDB人脸样本检测库,测试自己的人脸检测算法性能并生成ROC曲线。

    一,说明及环境 网上有关FDDB人脸检测库的使用以及ROC文件生成的文章太少,并且都无法检测opencv中自带的人脸检测算法.最近 工作的原因,需要用到FDDB库检测我们自己的人脸检测算法性能.所以认 ...

  9. 腾讯已开源高精度人脸检测算法DSFD

    腾讯提出一种高精度双分支人脸检测器DSFD并开源.该算法曾在全球两大权威人脸检测数据集WIDERFACE和FDDB上均取得了第一. 任务介绍 人脸检测算法是在图像上检测出人脸的位置(通常以矩形框形式输 ...

最新文章

  1. freebsd 域名服务器
  2. 成功解决 .Quit() File COMObject InternetExplorer.Application, line 2, in Quit pywintypes.com_error
  3. (二)性能优化的指标和工具 (告别前端小白,成为大神的必经之路)
  4. mysql no listenter_为什么mysql中用\G表示按列方式显示
  5. OpenCV Stitching_detailed 详解
  6. git命令:将多个commit提交记录修改为1条
  7. maya导出fbx没动画_Maya学习方法总结
  8. 原版英文书籍《Linux命令行》阅读记录3 | 解析文件的描述含义和阅读文件
  9. 基于JAVA+SpringMVC+Mybatis+MYSQL的实体店会员服务系统
  10. 工作难找,朋友却一口气拿了5份大厂offer,他是怎么做到的?
  11. windows上安装Metasploit Framework 4.0
  12. VC静态库开发与使用
  13. OpenCV中Rect的一些神奇用法
  14. webstorm直接运行js
  15. Midjourney用户手册中文版详解模型、命令、参数与高级用法
  16. 双十一来了,给自己的应用做个icon换脸小功能
  17. 路径MTU(PMTU)发现控制与DF位
  18. 主动扫描和被动扫描的区别
  19. Android Drawable 与 LayerList综合汇总
  20. usgs dem 导入matlab 程序,用GDAL打开从USGS下载的img影像文件

热门文章

  1. A*算法 puzzle8数码
  2. Postman:请求方法、认证
  3. python复制100个我爱你_99+个我爱你复制粘贴
  4. 黑眼圈消除的按摩诀窍
  5. 线性表的顺序存储结构和操作实现
  6. MP3转换器下载 - 通用全能mp3转换器
  7. 13、基于51单片机防火防盗烟雾温度人体红外感应检测设计(程序+原理图+PCB图+Proteus仿真+参考论文+开题报告+元器件清单等)
  8. *IT axios:足迹第八十步:vue与路由
  9. Linux系列-nexus安装
  10. 交友盲盒源码PHP附搭建部署教程