当前位置: 首页 > 科技观察

为什么人脸检测和识别越来越流行?它背后的技术是什么?

时间:2023-03-13 18:56:33 科技观察

在过去的几年里,人脸识别受到了广泛的关注,被认为是图像分析领域最有前途的应用之一。人脸检测可以占人脸识别操作的很大一部分。根据其强度将计算资源集中在图像中包含面部的部分。图像中的人脸检测方法因人脸的可变性而变得复杂,例如姿势、表情、位置和方向、肤色、眼镜或面部毛发的存在、相机增益的差异、照明条件和图像分辨率。对象检测是与图像处理和计算机视觉相关的计算机技术之一,它与检测到的对象实例(如人脸、建筑物、树木、汽车等)进行交互。人脸检测算法的主要目的是确定是否存在是图像中的任何面孔。近年来,在人脸识别和人脸检测领域提出了大量研究工作,使其更加先进和准确,但当Viola-Jones推出实时人脸检测器时,开启了该领域的一场革命,即它可以实时、高精度地检测人脸。人脸检测是人脸识别的第一步,也是必不可少的一步,用于检测图像中的人脸。它是物体检测的一部分,可用于安防、生物识别、执法、娱乐、人身安全等诸多领域,用于实时检测人脸,用于对人或物体的监视和跟踪。它广泛用于相机,以识别Ex-Mobile相机和DSLR框架中的多种外观。Facebook还使用人脸检测算法来检测和识别图像中的人脸。本文适用于计算机视觉或AI领域的初学者,他们希望了解人脸检测是什么、它的类型以及它的工作原理。人脸检测方法Yan、Kriegman和Ahuja提出了人脸检测方法的分类法。这些方法分为四类,人脸检测算法可以分为两组或更多组。这些类别如下:1.Knowledge-based基于知识的方法依赖于规则集,它基于人类知识来检测人脸。一张脸必须有鼻子、眼睛和嘴巴,彼此之间必须有一定的距离和位置。这些方法的一个大问题是很难建立一套合适的规则。如果规则太笼统或太详细,可能会出现很多误报。仅此方法不足以在多张图像中找到多张人脸。2.Feature-based基于特征的方法通过提取人脸的结构特征来定位人脸。它首先被训练为分类器,然后用于区分面部和非面部区域。这个想法是为了克服我们对面孔的本能知识的局限性。该方法分为几个步骤,即使有很多面孔的照片,他们报告的成功率为94%。3.模板匹配模板匹配方法使用预定义或参数化的人脸模板,通过模板与输入图像之间的相关性来定位或检测人脸。例如,人脸可以分为眼睛、面部轮廓、鼻子和嘴巴。此外,可以通过使用边缘检测方法仅通过边缘构建人脸模型。这种方法实现起来很简单,但对于人脸检测来说是不够的。然而,已经提出可变形模板来处理这些问题。4.Appearance-based基于外观的方法依靠一组委托训练的人脸图像来寻找人脸模型。基于外观的方法优于其他性能方法。一般来说,基于外观的方法依赖于统计分析和机器学习技术来寻找面部图像的相关特征。这种方法也用于人脸识别的特征提取。基于外观的模型进一步分为人脸检测的子方法如下:基于特征脸的人脸识别算法,这是一种使用主成分分析有效表示人脸的方法。基于分布的PCA和Fisher判别式等算法可用于定义表示面部模式的子空间。有一个分类器经过训练可以从背景图像模式中正确识别目标模式类的实例。神经网络神经网络已经成功地解决了物体检测、人脸检测、情绪检测、人脸识别等诸多检测问题。支持向量机支持向量机是线性分类器,可最大化决策超平面与训练集中示例之间的间隔。首先将此分类器应用于人脸检测。WinnowsSparseNetworks他们定义了一个由两个线性单元或目标节点组成的稀疏网络;一个代表面部图案,另一个代表非面部图案。它花费的时间更少,效率更高。朴素贝叶斯分类器通过计算训练图像上一系列模式的频率来计算图像中出现人脸的概率。分类器捕获面部局部外观和位置的联合统计数据。隐马尔可夫模型(HMM)模型的状态是面部特征,通常描述为像素带。HMM通常与其他方法一起使用来构建检测算法。信息论方法马尔可夫随机场(MRF)可用于面部模式和相关特征。马尔可夫过程使用Kullback-Leibler散度最大化类之间的区别。所以这个方法可以用于人脸检测。InductiveLearning这种方法已经被用来检测人脸。为此目的使用诸如Quinlan的C4.5或Mitchell的FIND-S等算法。人脸检测的工作原理人脸检测技术有很多,借助这些技术,我们可以更准确地识别人脸。这些技术都有几乎相同的人脸检测程序,例如OpenCV、NeuralNetworks、Matlab等。人脸检测的工作原理是检测一幅图像中的多张人脸。这里我们使用OpenCV进行人脸检测,人脸检测操作的步骤如下:1)首先,通过提供图像的位置来导入图像。然后将图片从RGB转成灰度,因为灰度很容易检测人脸。2)然后,根据需要对图像进行调整大小、裁剪、模糊和锐化等图像处理。3)下一步是图像分割,用于轮廓检测或分割单幅图像中的多个物体,以便分类器快速检测出图片中的物体和人脸。4)下一步是使用Haar-Like特征算法,由Voila和Jones提出用于人脸检测。该算法用于查找帧或图像中人脸的位置。所有面孔都具有人脸的一些一般属性,例如眼睛区域比其相邻像素暗,鼻子区域比眼睛区域亮。haar-like算法也用于图像中物体的特征选择或特征提取,使用边缘检测、线检测和中心检测来检测图片中的眼睛、鼻子、嘴巴等。它用于选择图像中的基本特征并提取这些特征以进行人脸检测。5)接下来就是给出x,y,w,h的坐标,在图片中组成一个矩形框来表示人脸的位置,也可以说是表示图像中感兴趣的区域。之后,它可以在检测到人脸的感兴趣区域制作一个矩形框。还有许多其他检测技术一起用于检测,例如微笑检测、眼睛检测、眨眼检测等。如何实时运行人脸检测器(基于网络摄像头)运行代码的要求-Python、OpenCV、Webcam、Numpy。#importlibrariesimportcv2importnumpyasnp#importclassifierforfaceandeyedetectionface_classifier=cv2.CascadeClassifier('Haarcascades/haarcascade_frontalface_default.xml')#ImportClassifierforFaceandEyeDetectionface_classifier=cv2.CascadeClassifier('Haarcascades/haarcascade_frontalface_default.xml')eye_classifier=cv2.CascadeClassifier('Haarcascades/haarcascade_eye.xml')defface_detector(img,大小=0.5):#ConvertImagetoGrayscalegray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)faces=face_classifier.detectMultiScale(gray,1.3,5)Iffacesis():returnimg#GivencoordinatestodetectfaceandeyeslocationfromROIfor(x,y,w,h)infacesx=x—100w=w+100y=y—100h=h+100cv2.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)ineyes:cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,0,255),2)roi_color=cv2.flip(roi_color,1)returnroi_color#网络摄像头etupforFaceDetectioncap=cv2.VideoCapture(0)whileTrue:ret,frame=cap.read()cv2.imshow('OurFaceExtractor',face_detector(frame))ifcv2.waitKey(1)==13:#13istheEnterKeybreak#Wheneverythingdone,releasethecapturecap.release()cv2.destroyAllWindows()人脸检测可用于生物识别,通常作为人脸识别系统的一部分。人脸检测还可以用于视频监控、人机交互和图像数据库管理。一些最新的数码相机使用面部检测来自动对焦。人脸识别技术是人工智能领域的一项关键技术,在智能视频监控场景中有着非常广阔的应用前景。在安防监控中,人脸识别也具有重要意义,如公共场所(地铁站、车站、街道、酒店等)的安保部署,公安部对嫌疑人的追捕等。基于公共场所安防监控摄像头,通过人脸抓拍,将抓拍结果上传至公安部网络,与嫌疑人人脸进行比对,协助公安执法人员开展执法工作。清视清溪视频也将以AI智能检测识别技术为核心,持续开发多场景智能业务系统和平台,深耕AI领域,如EasyCVR,拥有AI人脸检测、人脸识别、车牌识别、语音对讲、云台控制、声光报警、监控视频分析和数据汇聚等能力已经在很多项目实现,如景区行人检测、客流分析等场景。