1、人脸识别/AI 2018.09.07face detection/AI/week report汇报人:芥末酱前 言 人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部识别。它集成了人工智能、机器学习、模型理论、视频图像处理等多样专业技术。随着智能手机的快速普及,可以通过手机镜头在手机上做基于人脸识别的身份注册、认证、登录等,使身份认证进程更安全、方便。由于人脸比指纹等视觉辨识度更高,所以刷脸的应用前景更广阔。目录/Contents01人脸识别.应用02人脸图像.预处理03人脸图像.
2、特征检测04人脸图像.匹配与识别01人脸识别.初识 人脸识别分为两大类:一是回答我是谁的问题,即辨认(Identification),二是回答这个人是我吗?即(Verification)。正常人眼的识别准确率是97%,而目前专业的人脸识别研究企业机构可让其精确度高达99%以上,若结合眼纹等多因子验证,准确率能达到99.99%。且以人脸识别技术为核心的系统,能解决人脸识别在现实应用场景中面临的众多问题。1应用场景/Application scenario 要支持未来在无需身份证信息的情况下,依然可以直接通过人脸识别身份信息,减少身份证查验、复印存档等环节,提高客户办理业务的便捷性,提高窗口办理业
3、务的效率。应用场景:支持未来刷脸办理业务 比如人脸实时报警系统。应用人脸检测和识别技术,在人员进出重点区域设置人脸卡口摄像机,针对经过卡口人员进行人脸抓拍、识别和自动报警,并可将报警信息推送到警务终端APP,实现实战预案联动。人脸卡口系统可独立部署,也可作为子系统对接到第三方管理平台,可广泛应用于公安、交通、金融、司法、教育、医院等领域。应用场景:智慧城市中的应用 当前主要是通过扫描或者复印身份证信息,人工比对身份证照片。扫描或复印身份证只是作为备案,并不能有效核实身份证真伪。要确保是采用真实身份证办理业务,必须有某种技术手段对办事人提供的身份证进行查验。应用场景:身份证查验,证据留存02人脸
4、图像.预处理 预处理是人脸识别过程中的一个重要环节。输入图像由于图像采集环境的不同,如光照明暗程度、以及设备性能的优劣等,往往存有噪声,对比度不够等缺点。因此我们需要对其进行图像预处理。2图像预处理/Image preprocessing 通过平移、转置、镜像、旋转、缩放等几何变换对采集的图像进行处理,用于改正图像采集系统的系统误差。几何变换 将彩色图像转换为灰度图,其中有三种方法:最大值法、平均值法、以及加权平均法。灰度化 图像增强是为了改善人脸图像的质量,在视觉上更加清晰图像,使图像更利于识别。图像增强 归一化工作的目标是取得尺寸一致,灰度取值范围相同的标准化人脸图像。归一化2灰度化/Gr
5、ayscale最大值法平均值法 加权平均将图像中的三分量亮度的最大值作为灰度值。将图像中的三分量亮度求平均得到一个灰度值。将三个分量以不同的权值进行加权平均。由于人眼对绿色的敏感最高,对RGB三分量进行加权平均。在RGB模型中,当R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫灰度值(又称强度值、亮度值),灰度范围为0-255。简要介绍2灰度变换方法/Gray scale transformation methodrgbImage=imread(Lena.jpg);grayImage=rgb2gray(rgbImage);J1=imadjust(grayImage,0 1,0 1,2
6、.5);J2=imadjust(grayImage,0 1,0 1,1.5);J3=imadjust(grayImage,0 1,0 1,0.67);J4=imadjust(grayImage,0 1,0 1,0.4);subplot(1,5,1);imshow(J1);title(gamma=2.5);subplot(1,5,2);imshow(J2);title(gamma=1.5);subplot(1,5,3);imshow(grayImage);title(原灰度图像);subplot(1,5,4);imshow(J3);title(gamma=0.67);subplot(1,5,5)
7、;imshow(J4);title(gamma=0.4);左图是一张进行灰度变换的灰度图。先从左上角看,该像素的灰度值为254。然后下一个灰度值143,对其进行映射,得到的值是一个比143少的数。matlab当中常用的灰度变换函数是:imadjust(I,low_in;high_in,low_out;high_out,gamma)2几何变换/Geometric transformation方法%平移 se=translate(strel(1),20 20);img2=imdilate(img1,se);figure,imshow(img2);imwrite(img2,a2.jpg);I=imr
8、ead(baby.bmp);height,width,dim=size(I);tform1=maketform(affine,0,1,0;1,0,0;0,0,1);I1=imtransform(I,tform1,nearest);%旋转img3=imrotate(img1,90);figure,imshow(img3);imwrite(img3,a3.jpg);%缩放img4=imresize(img1,2);figure,imshow(img4);imwrite(img4,a4.jpg);平移转置旋转缩放2图像增强/Image enhancement原理:对数变换可以将图像的低灰度值部分扩展
9、,显示出低灰度部分更多的细节,将其高灰度值部分压缩,减少高灰度值部分。Log变换原理:主要用于图像的校正,将灰度过高或者灰度过低的图片进行修正,增强对比度。伽马变换原理:将原始图像的灰度图从比较集中的某个灰度区间均匀分布在整个灰度空间中,实现对图像的非线性拉伸,重新分配像素值。直方图均衡化原理:利用图像的二次微分对图像进行蜕化,在图像领域中微分是锐化,积分是模糊,即利用邻域像素提高对比度。拉普拉斯算子2归一化/Normalized所谓图像归一化,就是通过一系列变换,将待处理的原始图像转换成相应的唯一标准形式(该标准形式图像对平移、旋转、缩放等仿射变换具有不变特性)。1、什么是归一化?图像归一化
10、使得图像可以抵抗几何变换的攻击,也就是转换成唯一的标准形式以抵抗仿射变换。2、为什么归一化?线性函数归一化(Min-Max scaling)0均值标准化(Z-score standardization)3、数据归一化的方法有哪些?03人脸图像.特征检测 所谓人脸检测,就是给定任意一张图片,找到其中是否存在一个或多个人脸,并返回图片中每个人脸的位置和范围。即找出特征点。在模式识别领域,一句重要的话是:“Features matter”。获得好的特征是识别成功的关键。3深度学习.特征点 /DeepLearning 特征点检测.算法 在人脸检测的基础上,根据输入的人脸图像,自动定位出面部关键特征点,
11、如眼睛、鼻尖、嘴角点、眉毛以及人脸各部件轮廓点等,输入:人脸外观,输出:人脸特征点集合。人脸对齐.算法以看作在一张人脸图像搜索人脸预先定义的点(也叫人脸形状),通常从一个粗估计的形状开始,然后通过迭代来细化形状的估计。方法包括:AAM(Active Appearnce Model)ASM(Active Shape Model)特征点定位.算法利用CNN,由粗到细,实现人脸关键点的精确定位。一般网络结构分为3层:level 1、level 2、level 3。每层都包含多个独立的CNN模型。特征点提取.算法需要一个特征提取器(predictor),构建特征提取器可以训练模型。要下载dlib提供的
12、已经训练好的关键点提取模型。3特征点检测算法 /Base on CNN3人脸对齐算法/Face alignment仿射变换以求人脸对齐import cv2import numpy as npfrom matplotlib import pyplot as plt img=cv2.imread(lena.jpg,1)rows,cols,channel=img.shape/仿射函数,将3个原图点坐标,和得到结果图的3个点坐标,生成参数带入函数得到结果pts1=np.float32(50,50,200,50,50,200)pts2=np.float32(10,100,200,50,100,250)M
13、=cv2.getAffineTransform(pts1,pts2)dst=cv2.warpAffine(img,M,(cols,rows)plt.subplot(121),plt.imshow(img),plt.title(Input)plt.subplot(122),plt.imshow(dst),plt.title(Output)plt.show()3特征点定位算法/Feature locationF1定位所有的5个关键点,EN1用于定位:左眼+右眼+鼻子 三个特征点,NM1用于定位:左嘴角+右嘴角+鼻子 三个特征点。level1粗定位,包含3个CNN每两个CNN负责预测同一个关键点,然
14、后取平均得到这一点的精确预测。输入为在level1输出的关键点周围的局部裁剪图像。level2精确定位,包含10个CNNlevel3更精确定位结构和作用与level2一致,10个CNN,两两平均,只是输入的图像是在leve2关键点基础上做了更小的裁剪。4特征提取算法/Feature extraction 首先,需要一个特征提取器(predictor),构建特征提取器可以训练模型。要下载dlib提供的已经训练好的关键点提取模型。因为我的人脸图片是不同角度的,所以不一定能够检测到人脸,所以当检测不到人脸时,依次旋转图片60度,再次检测,直到能够检测到人脸为止,如果旋转了360度还是检测不到人脸的话
15、,那么认为该图片中不存在人脸。关键点提取提取-保存保存68个关键点 对照着左图,比如说想获取鼻尖的坐标,那么横坐标就是shapes0.part30.x(),其余的类似。4特征提取算法/Feature extraction#include#include#include#include#include#include using namespace dlib;using namespace std;int main()trycv:VideoCapture cap(0);/.先初始化,打开视频if(!cap.isOpened()cerr Unable to connect to camera po
16、se_model;while(cv:waitKey(30)!=27)/Grab a framecv:Mat temp;cap temp;cv_image cimg(temp);/Detect faces std:vector faces=detector(cimg);/Find the pose of each face.std:vector shapes;for(unsigned long i=0;i faces.size();+i)shapes.push_back(pose_model(cimg,facesi);if(!shapes.empty()for(int i=0;i 68;i+)c
17、ircle(temp,cvPoint(shapes0.part(i).x(),shapes0.part(i).y(),3,cv:Scalar(0,0,255),-1);/shapes0.part(i).x();/68个 /Display it all on the screenimshow(Dlib特征点,temp);04人脸图像.匹配与识别提取的人脸图像的特征数据与数据库中存储的特征模板进行搜索匹配,通过设定一个阈值,当相似度超过这一阈值,则把匹配得到的结果输出。根据相似程度对人脸的身份信息进行判断。这一过程又分为两类:一类是确认(1:1)另一类是辨认(1:N)。4人脸识别/Face rec
18、ognition通过计算特征向量之间的欧氏距离来得到人脸相似程度。在LFW上面取得了当时最好的成绩,识别率为99.63%。原理1.先导入模型参数 2.然后导入两张图片,分别获取其经过模型后得到的128维特征向量 3.最后计算两个向量的欧氏距离步骤欧几里得度量(euclidean metric)(也称欧氏距离)是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。在二维和三维空间中的欧氏距离就是两点之间的实际距离。计算欧氏距离4欧氏距离/Euclidean Distance二维平面上点a(x1,y1)与b(x2,y2)间的欧氏距离:三维空间上点a
19、(x1,y1,z1)与b(x2,y2,z2)间的欧氏距离:4精确度比较/Accuracy Comparison75.0%97.3%99.5%99.6%SeetaFace由中科院计算所山世光带领研究组研发。代码基于C+实现,不依赖第三方库。但存在缺陷:1)人脸检测速度很慢 无法达到实时 2)人脸对齐模块其实不是很前沿 因为只有五个点3)实验过demo,相似度基本没有达到0.8DeepFace在使用前需要进行3D对齐处理。在训练的时没有进行对齐,采用了通过对图片进行翻转,切片等处理计算出对应的特征向量,生成的特征向量拼接成高维向量并采用PCA再次进行降维。Face+人脸特征点检测最好的实现之一就是Face+.他们在300 Faces in-the-Wild Landmark Detection Challenge,2013取得了冠军。他们提供了一个易用的API。FaceNet直接进行端对端学习一个从图像到欧式空间的编码方法。处理时不要求对数据进行对齐,直接输入需要识别的图片,并将图片放入网络进行计算。在训练的过程中需要对模型进行分批处理,即加入semi-hard约束条件。THANK YOU
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。