版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录TOC\o"1-3"\h\u13291 127677第1章人脸识别概述 4196891.1广义人脸识别的1:1、1:N和N:N 444251.1.1人脸验证——1:1 5181881.1.2人脸检索——1:N 5142161.1.3N:N 685681.1.4人脸检测、人脸识别、人脸检索与1:1、1:N、N:N 680481.2 7267201.2.1 788231.2.2 9238561.3 9151001.3.1 9237771.3.2 11219581.3.3 12240741.3.4 1281第2章人脸检测技术的最新进展 16277632.1CascadeCNN 16252431.CascadeCNN 17302512.CascadeCNN 18103252.2MTCNN 1977992.3FaceR-CNN 22237152.4SSH 22115402.5DSFD 2553292.6 299373第3章人脸识别技术的最新进展 31270393.1DeepID 3184733.2FaceNet 32317713.3ArcFace 3726617第4章人脸关键点定位技术的最新进展 41271684.1Coarse-to-FineCNN 4274444.2TCDCN 43307064.3SIR-LAN 44277384.4SAN 4580784.5WingLoss 4613914第5章人脸检索技术的最新进展 48316575.1 48322155.2 48295515.3 4917745.4 5030088第6章经典的人脸检测算法 53237226.1DPM 53173826.1.1DPM 53225176.1.2DPM 6080476.2LAEO 61233626.2.1LAEO 61229066.2.2LAEO 64205866.3Viola&Jones 66170846.3.1Viola&Jones 6688516.3.2Viola&Jones 6927161第7章基于深度学习的人脸检测算法实践 72317637.1CNNFacialPointDetection 7242737.1.1CNNFacialPointDetection 72198057.1.2CNNFacialPointDetection 72160527.2DDFD 7316767.2.1DDFD 74260137.2.2DDFD 74179347.3 751922第8章章基于FastR-CNN 7918369第9章基于HOG 97128949.1H-GBDT 9712559.2 98227469.2.1GBDT 98128739.2.2HOG 99159569.3H-GBDT 100185899.4 101307719.5 10912560第10章人脸识别实践 1122221810.1DeepID 1121615710.1.1DeepID 1122312210.1.2DeepID 1131077610.1.3DeepID 1321556210.2VGGFaceDescriptor 133309310.2.1VGGFaceDescriptor 133812510.2.2VGGFaceDescriptor 1332281110.2.3VGGFaceDescriptor 137952510.33 138632710.3.1EigenFaces 1391368110.3.2FisherFaces 1541573010.3.3LBP 1673253110.4 176428210.5 17728119第11章人脸检索实践 180798911.11 23729735第12章人脸检测商业软件及其应用示例 24712449第13章GAN 268971713.1 2682858013.2 281第1章人脸识别概述1:1、1:N和N:N需要说明的是,尽管现有算法在W等公开数据集上取得了95脸识别与人脸检索尚未很好解决。事实上,现有的公开数据集远不能代表真实应用场景。由于在无约束场景下的侧脸、不同姿态、光线变化、表情变化等因素,现有的人脸识别技术还达不到满意的程度。正如中科院自动化所刘成林研究员所言:在室外自然光照条件下,人脸识别正确率还达不到50。事实上,多数人脸识别产品都要求正面照。由此可见,目前解决较好的仅是正脸识别的问题,而室外无约束环境下的人脸识别技术尚未成熟。广义人脸识别的1:1、1:N和N:N从人脸识别的流程和人脸比对计算的量级上,“广义”的人脸识别问题又可细分为1:1、1:N和N:N比对计算模式。简而言之,1:1人脸比对就是人脸验证;1:N人脸识别算法主要用于人脸检索;N:N人脸识别算法主要用于同时进行多个1:N检索计算[1]。图1-1人脸识别系统的组成人脸验证——1:1人脸检索——1:N1:N人脸检索的计算效率有较高的要求,而上述公共场所监测嫌犯人员的应用(天网),对实时性、计算效如果不考虑实时性和计算效率的要求,1N的人脸检索,从技术上可看作由N次11本质上仍是人脸验证。但是,人脸检索的难点在于:摄像头捕捉到的人脸图像,往往不是正脸图像,而是侧脸图像甚至是由于运动或距离较远导致的模糊、难辨认的人脸图像,同时由于人脸数据的采集方式不同、光线条件各异,在进行人脸验证时难度较大,容易发生误判、漏判的情况(因为最终是正脸与侧脸或模糊人脸之间的人脸比对验证)。相比之下,在上文所述的11的人脸验证应用中,人在受限(受约束)况下主动配合摄像头的图像采集,得到的是正脸图像,人脸验证的难度相对较低(正脸与正脸之间的人脸验证)。在考生身份确认的应用中,如果考生无须同时在设备上核检身份证件(此时属于11的人脸验证),而仅需要刷脸入场,则属于1:N有效解决。在使用人脸搜索(1:N人脸相似性计算)时,将公安部身份证件库的每张人脸图像与其余所有图像逐一进行碰撞(1:N人脸相似性计算),寻找与之高度相似的人脸图像,作为一人多证的候选对象(后期再由人工辅助确认)。需要说明的是,这一过程需要巨大的计算量,需要高性能的CPU/GPU并行计算平总之,人脸检索是1:N的人脸相似度计算,需要基于1:1人脸验证,但通常对人脸检索算法的健壮性,N:N多个1:N同时作业就是N:N了,N:N人脸识别算法主要用于实时多个1:N检索计算:N:N算法实际上基于1:N算法,输入多个求解结果[1]。因此N:N人脸识别的应用和1:N人脸搜索的应用比较接近,但N:N人脸人脸检测、人脸识别、人脸检索与1:1、1:N、N:N上述从比对对象之间的数量级角度上细分的11、1N和N对计算量级的视角进行划分的。在实际科学研究中,学术界更多是从人脸识别的相关任务和业务流程的角度进行划分,具体分为人脸检测、人脸校准、人脸特征提取、人脸关键点定位、狭义的人脸识别(两张人脸特征的相似性计算比对)和人脸检索等步骤和任务,如图11所示。而在基于深度学习的广义人脸识别系统中,人脸检测、人脸关键点定位、狭义的人脸识别(两张人脸特征的相似性计算比对)和人脸检索是4最为重要的部分。下面章节将分别阐述相关技术的最新研究进展和成果。从算法精确度来看,国内外的人脸识别技术大多数在开源pn基于深度学习的人脸识别算法,公司之间的识别正确率差异仅在小数点上[1。衡量人脸识别算法能力的指标有拒识率(漏识率)、误识率、准确率及算法的处理速度等。人脸识别又是困难的,因为高精度的人脸识别技术是极其困难的。正如前文提到的,在室外自然光照条件下,无约束场景下的人脸识别准确率还不到50,其难度由此可见一斑。这是因为,千人千面,全世界75亿人口,就有约75亿张不同的人脸图像,在如此巨量的人脸图像数据中区分、识别一个人在不同姿态、不同场景下的人脸图像,不是那么容易的事情。除此之外,很多人都很好奇双胞胎、多胞胎情况下的人脸识别算法的准确性问题。据了解,我国双胞胎出生的概率约为0.5,考虑我国的人口基数约为14亿,那么我国双胞胎的数量约为700万人。可见,双胞胎的人口数量也是不小的,人脸识别算法如何准确区分双胞胎,这是目前尚未很好解决的问题。即便暂不考虑双胞胎的问题,在室外非受限的自然场景下,目前的人脸识别准确率也尚不足50,要达到90学家和业界数十年的不懈努力。而人脸识别准确率从90提高到99,再从99提高到99.99999,每一步都有很长的路要走。而很多真实的人脸识别应用,就是苛求这么高的人脸识别准确率。因此,高准确率的人脸识别又是非常困难的。微软公司在2015年推出了一个有趣的网站hood.n龄和性别。该项目是微软工程师为了测试面部分析技术而发布的,并不是正式的项目,但发布后的短短几个小时内,用户就达到了3.5万人。其检测结果和实际的年龄、性别有一些差距,但整体比较接近。在国内,3名85后学生创建了,它能够提供准确的面部分析技术,不仅可以根据人脸分析出年龄、性别,还可以分析出种族信息和表情信息,其中性别分析准确率达96%。Face++为许多应用提供服务,如将域,达到自动美颜的效果。现在一些手机自带的摄像功能可以在拍摄时自动识别年龄和性别,如小米4是犯罪嫌疑人,则系统能够自动发出警报,并追踪他们,从而加快公安人员破案。2015年62016年1月,厦门的邮轮中心开始使用刷脸验票机,乘客将二代身份证放在指定区域后,识别机上会显示二代身份证上的照片,并通过摄像头捕捉游客的人脸图像,比对当前游客的人脸图像与二代身份证中的人脸图像,等到机器识别后,播报验证成功,请通过,否则播报人员与证件不符要5秒即可,并且准确率高达99,杜绝了冒用他人身份证件的事件发生。另据了解,杭州的部分公园已经支持刷脸进园,无须携带证件,更加便民。阿里巴巴旗下的支付宝已经可以刷脸登录。在支付宝中,单击安全设置刷脸,开启刷脸登录然后进行脸部拍摄,根据提示按要求对脸部进行拍摄,录入成功后,退出账号便可使用刷脸登录。其流程如图12所示。现代网络很发达,几乎每个人都在许多网站、pp上有自己的账号和密码,如微博、支付图1-2虽然已经出现了一些刷脸登录、刷脸验票的机器,但是这些机器还没有广泛普及。随着人脸检测和识别准确率的提高和人脸数据集的增大,从人脸中可以获取更多的信息(不再局限于性别、年龄和表情,也能获得姓名、职业等基本信息),未来刷脸登录会出现在各个pp中,如微信、微博、验票也会在更多的火车站、机场、汽车站、旅游景区等场所出现。刷脸支付也会出现在更多的银行、电商、等金融渠道中。人脸检测还可以应用在广告中,在露天的广告牌前安置嵌入人脸检测技术的软告。当前最常用的人脸检测数据集是FDDB和WIDERFace(eonatndBnh)数据集[3是由d等人[4收集整理的,现由美国马萨诸塞大学阿姆特分校维护。构建该数据集的目的是为人脸检测算法提供一个数据集,并且在该平台上公平地评估不同人脸检测算法的效果。该数据集中共有28736张人脸图像,其中包含5171个人脸的2845张图像来自数据集FacesintheWild[5],此外该数据集还对图像中的人脸区域提供了准确的椭圆形的注解框。FDDB中1-3所示为一些FDDB数据集中的图像。FDDB是世界上最权威的人脸检测评估平台之一,它公布了大量算法评估结果的ROC曲线,如图1-4所示。FDDB数据集主要用于人脸图像检测。图1-3FDDB图1-4不同人脸检测算法在FDDB数据集上检测准确度的ROC曲线[3](示意图WIDERFACE数据集[6]由香港中文大学汤晓鸥教授团队构建,包括32203张图像和393703个标注的人 和VGGFace2LFW(LabeledFacesintheWild)数据集[7]是由美国马萨诸塞大学阿姆特分校收集整理并维护的,是为了在不受限制的环境下研究人脸识别问题而设计的[8]。该数据集中有13233而来,得到这些原始图像后,经过处理,最后数据集中每张图像的尺寸都是250像素250像素,并且每张图像以图像中人物的名字命名,不同人的图像放在不同的文件夹中。该数据集一共有5749个文件夹,即5749个人。其中,4069个人只有一张图像,另外1680个人有多张图像。如on_ol中有4张图像,命名形式如图15所示。数据集可用于人脸识别和人脸检索。MegaFace数据集[9]由华盛顿大学从Flickr上收集,包含100万张图像,共计69万个不同的人。它是世界图1-5LFW中Aaron_PeirsolWIDERFace数据集[11]发布于2015年,包括32203张图像和393703个人脸,比 数据集大10CASIA-WebFace数据集[12]发布于2014年,包含10575个人,共计494414MS-Celeb-1M数据集[13]由微软发布于2016年,包含10万个人的1000万张图像,可用于人脸检测和人脸 BioID数据集[15]包含23个人,共计1521张灰度图像(尺寸为384像素×286像素),每张图像使用20个人AFLW(AnnotatedFacialLandmarksintheWild)数据集[16]包含25993张图像,每张图像用21个人脸关LFPW(LabeledFacePartsintheWild)数据集[17]包括1400张人脸图像,这些图像通过搜索引擎检索的AFW(AnnotatedFacesintheWild)数据集[18]来自Flicker,包括205张图像(473个人脸),这些图像图1-6数据集wanwan1图1-7数据集wanwan2[1]人脸识别[EB/OL]2020-03-01.\h[2]咪付步态识别技术:识人不看脸[EB/OL]2020-03-01.\h[3]FDDB:FaceDetectionDataSetandBenchmark[EB/OL].2020-03-01.\hhttp://vis-www.cs.umass.[4]JainV,Learned-MillerE.FDDB:Abenchmarkforfacedetectioninunconstrainedsettings[R].UMassAmhersttechnicalreport,2010,2(4).[5]FacesintheWild[EB/OL].2020-03-01.\h[6]YangS,LuoP,ChenCL,etal.WIDERFACE:AFaceDetectionBenchmark[C].CVPR2016:[7]GuoG,ZhangN.Asurveyondeeplearningbasedfacerecognition[J].ComputerVisionandImageUnderstanding,2019,189:102805.[8]HuangGB,RameshM,BergT,etal.LabeledFacesintheWild:ADatabaseforStudyingFaceRecognitioninUnconstrainedEnvironments[R].UniversityofMassachusetts,Amherst,TechnicalReport,2007,10:7-49.[9]Kemelmacher-ShlizermanI,SeitzSM,MillerD,etal.Themegafacebenchmark:1millionfacesforrecognitionatscale[C].InProceedingsofCVPR,2016:4873-4882.[10]一文道尽“人脸数据集”[EB/OL]2020-03-01.\h[11]YangS,LuoP,LoyCC,etal.Widerface:Afacedetectionbenchmark[C].InProceedingsofCVPR,2016:5525-5533.[12]YiD,LeiZ,LiaoS,etal.Learningfacerepresentationfromscratch[J].arXivpreprint,2014:[13]GuoYD,ZhangL,HuYX,etal.MS-Celeb-1M:ADatasetandBenchmarkforLarge-ScaleFaceRecognition[C].ECCV2016:87-102.[14]CaoQ,ShenL,XieW,etal.Vggface2:Adatasetforrecognisingfacesacrossposeandage[C].InIEEE13thIEEEInternationalConferenceonAutomaticFace&GestureRecognition(FG2018),2018:67-74..\h[16]KöstingerM,WohlhartP,RothPM,etal.AnnotatedFacialLandmarksintheWild:Alarge-scale,real-worlddatabaseforfaciallandmarklocalization[C].ICCVWorkshops,2011:2144-2151.[17]LFPW数据集[EB/OL]2020-03-01.[18]ZhuXX,RamananD.Facedetection,poseestimation,andlandmarklocalizationintheCVPR2012:2879-[19]王弯弯,张重生耳朵信息对侧脸检测的影响研究[J]电子学报,2018,46(3):646-第2章人脸检测技术的最新进展CascadeFaceR-化是:通用的基于深度学习的目标检测和识别技术,几乎完全可以适用于人脸处理(广义的人脸识别[3]区别了[3]根据山世光研究员的结论,在人脸检测方面,目前主流的方法是基于深度学习的以rN为代表的通用目标检测方法[4。人脸检测曾被认为是一个已经解决的问题,事实上并非如此,在人脸分辨率极低、姿态多变,以及背光、偏光、极低照度等恶劣光照条件下,现有技术还会有很多漏检[4。2019年,中 CNN人脸检测算法[6]。由此可见,CascadeCNN人脸检测算法具有重要的实用价值。CascadeCNN[6]在一定程度上有别于基于通用的FasterR-CNN目标检测框架为代表的人脸检测方法。CascadeCNN将传统的滑动窗口方法与深度学习相结合,取得了不亚于基于R-CNN系列的人脸检测方法的 CascadeCNNdeN人脸检测算法[6是经典的oa&ons人脸检测算法的深度卷积网络翻版,使用了多尺度特征组合。deN人脸检测算法利用传统的滑窗方法,并利用卷积神经网络N进行特征提取,对每个窗口中的切片图像进行分类并判定是否为人脸。以下将该算法分为训练阶段和测试阶段分别进行介绍。图21所示为deN的级联神经网络结构。图2-1CascadeCNN的级联神经网络CascadeCNN利用CNN,使用图2-1中的12-Net神经网络结构,训练针对12像素×12像素切片图像的人脸检测算例如,AFLW数据集的标注文件已经给出了图像中每个人脸区域的外接矩形框。根据标注文件找到图 2-1所示的12-Net神经网络结构,利用CNN对每个正样本和负样本提取卷积特征,以一定的利用CNN,使用24-Net神经网络结构,训练针对24像素×24像素切片图像的人脸检测算法,旨在2-1所示的24-Net神经网络结构,利用CNN对每个正样本和负样本提取卷积特征,以一定的其中,在对每个24像素24像素的切片图像提取卷积特征时,首先利用N对该切片图像提取特征然后将该切片缩放至12像素12像素,提取卷积特征2;最后,将图像提取特征1和图像提取特征2在全连接层上拼接(onn)起来,有助于检测较小的人脸。利用CNN,使用48-Net神经网络结构,训练针对48像素×48像素切片图像的人脸检测算法,旨在具体处理方法与上述的24像素24像素的切片图像的处理方法类似。其中,在对每个48像素48像素的切片图像提取卷积特征时,同时将该图像缩放至24像素24像素,输入到(2)中训练得到的24,提取对应的卷积特征,最后3种卷积特征在全连接层上进行拼接(因此,48t最终提取得到的特征本质上是像素12像素、24像素24像素、48像素48像素3种尺度下的卷积特征的拼接)。校正网络(CalibrationNetwork)的训练,包括12-Net校正网络(12-Calibration-Net)、24-Net校正网络和48-Net校正网络。以12-Net校正网络为例,它紧跟在12-Net神经网络之后,用于调整12-Net预测CascadeCNNCascadeCNN人脸检测算法的训练阶段步骤如下,其处理流程如图2-2图2-2CascadeCNN的处理流程利用训练得到的12-Net神经网络模型,提取卷积特征,利用Softmax分类对(1)中的每个窗口中窗口中的切片图像输入到12-Net校正网络中调整大小和位置,以接近真实目标。接着输入到NMS中,消除高度重叠窗口[7]将上一阶段剩余的窗口中的切片图像调整大小为24像素×24像素,然后送入训练好的24-Net校正网络,得到两种尺度的全连接层特征的拼接(12像素×12像素、24像素×24像素),进行Softmax分类预测,部分窗口将被排除。将剩余的窗口中的切片图像输入24-Net校正网络中调整大小和位置,以接近真实目标;接着输入到NMS中,消除高度重叠窗口。将步骤(3)中剩余窗口中的切片图像送入训练好的48-Net神经网络模型中,进行Softmax分类预测;然后将剩余窗口中的切片图像输入48-Net校正网络中调整大小和位置,以接近真实目标。接着输入到NMS中,消除高度重叠窗口,其输出即为最终的人脸检测结果。由此可见,在预测时,CascadeCNN利用滑窗的方法在每张测试图像上滑动,对每个窗口中的图像利用CNN卷积网络进行分类预测。本质上,CascadeCNN与Voila&Jones人脸检测器的级联流程相同,它具体包含6个级联的分类器(12-Net、12-Net校正网络、24-Net、24-Net校正网络、48-Net、48-Net校正网络),这些分类器通过串联的方式顺序执行。两者的主要不同之处在于CascadeCNN级的分类器[7]在GitHub上,有若干开源实现的CascadeCNN源代码,有兴趣的读者可以通过文献[8]中的源代码深MTCNN在基于深度学习的人脸检测算法中,MTCNN人脸检测算法[9]很可能是目前应用最广泛的一个。与CascadeCNN人脸检测算法类似,MTCNN人脸检测算法也采用了级联CNN分类(初始的人脸检测候选框逐级求精)的方法。图2-3所示为MTCNN的整体流程,MTCNN人脸检测算法首先将每张原始图像缩放成多种不同的尺度,得到不同尺度的图像形成的金字塔。然后,它分别使用:①一个全卷积网络P-Net生成初始的候选人脸区域并进行校正和非极大值抑制(Non-MaximumSuppression,NMS);②一个R-Net卷积神经网络进一步过滤候选框并进行校正和NMS;③一个O-Net卷积神经网络对候选的人脸检测框进行最后的图2-3MTCNN的整体流程P-Net卷积神经网络主要生成初始人脸区域的候选窗口和边界框的回归向量,并用该边界框做回归,对候选窗口进行校准(校正),然后通过NMS合并高度重叠的候选框。R-Net卷积神经网络将经过P-Net卷积神经网络的候选框在R-Net卷积神经网络中过滤,然后利用边界框的回归值微调候选窗体,再利用NMS去除重叠窗体。O-Net卷积神经网络功能与R-Net显示5个人脸关键点定位[10]某种程度上来说,MTCNN是CascadeCNN的改进:MTCNN的P-Net是对CascadeCNN的12-Net的改进,MTCNN的R-Net是对CascadeCNN的24-Net的改进,MTCNN的O-Net是对CascadeCNN的48-Net的素、48像素×48像素3种尺寸);训练模型阶段的细节方面,MTCNN与CascadeCNN也较为相似。两个算法主要在神经网络结构的设计上有所不同,图2-4所示为MTCNN人脸检测算法的网络结构,包括P-Net、R-Net和O-Net。对比图2-4和图2-1就能发现两种算法的对应网络结构的相似之处和不同之处。MTCNN的一个 Net图2-4MTCNN的网络结构另一个不同之处是,CascadeCNN的48-Net最终提取得到的特征本质上是12像素×12像素、24像素×24像素、48像素×48像素3种尺度下的卷积特征的拼接(24-Net提取得到的特征本质上是12像素×12像素、24像素×24像素两种尺度下的卷积特征的拼接)。MTCNN的处理则更为简单和直接,该算法在初始时直接将图像缩放为不同的尺寸,将原始图像和缩放后的图像一起输入到P-Net中使用(注:与CascadeCNN的训练阶段类似,P-Net需要在这些金字塔图像上随机选取不同的12像素×12像素的图像切片作为负样本输入,正样本也使用标注的人脸区域)。因此,MTCNN在原始图像级别进行图像的多尺度处理,而CascadeCNN在神MTCNN还具有多任务学习的显著特点,即人脸检测和5个人脸关键点定位这两个任务通过同一个神经另外,MTCNN在R-Net中还增加了难样本挖掘(OnlineHardExample/SampleMining,OHEM)模块,在模型训练中针对难例(难样本,hardexample)进行适应训练。具体而言,在每个批(Mini-Batch)在反向传播(BP)中只计算这些难样本,忽略那些简单的样本[11]整体而言,MTCNN人脸检测算法具有简单、易理解、易实现、多任务学习的显著优点。在GitHub上,有若干开源实现的MTCNN源代码,有兴趣的读者可以通过文献[12]中的源代码深入了解。更多的参FaceR-CNN腾讯的FaceR-CNN人脸检测算法[16]基于FasterR-CNN通用目标检测框架做人脸检测,针对人脸检测的特殊性做了优化。①对于最后的二分类,在Softmax的基础上增加了centerloss,通过加入centerloss使得 SSHSSH(SingleStageHeadlessFaceDetector)[18]人脸检测算法最大的特色是尺度不相关性(Scale-Invariant)。上述MTCNN人脸检测算法在预测的时候,需要对不同尺度的图像分别进行预测,而SSH仅需要处理一个尺度的图像,其实现方式是使用VGG网络对不同层级的卷积层输出做3个分支(M1、M2SSH使用的基础网络为VGG16[20],SSH的headless指的是将原始分类网络中的全连接层去掉,只保留基础网络,只使用了卷积层。这样做可以去掉大量参数,同时加速运算。相比MTCNN算法在检测不同尺度的人脸时所采用的图像金字塔,SSH中采用的是特征金字塔,对卷积层使用3同的卷积步长来同时检测大、中、小3种人脸[19] 尺度的卷积特征,有点类似于SSD(SingleShotmulti-boxDetector)神经网络。SSH的主要特色是多尺度人 图2-5SSH人脸检测算法的网络结构SSH人脸检测算法网络的第一部分直接使用16层的VGG16神经网络[20]的前4层。如图2-6所示,图2-6VGG16的网络结构[21-16的第1层(第1段卷积)onv1包括两个连续的卷积操作onv1_1和onv1_2,均使用64个33的卷积核。16的第1段卷积层之后,紧接一个22的最大池化层(oo_1),将特征压缩一半。接着是16的第2段卷积层onv2,该层使用128个33的卷积核,该层也包含了两个连续的卷积操作onv2_1和onv2_2。16的第2段卷积层之后,又接上一个22的最大池化层(oo_2),将特征压缩一半。下面是第3段卷积层onv3,该层使用256个33的卷积核,该层包含3个连续的卷积操作onv3_1、onv3_2和onv3_3。第3段卷积层后面又接上了一个22的池化层(oo_3)。之后是16的第4段卷积层onv4,该层使用512个33的卷积核,包含3个连续的卷积操作onv4_1、onv4_2和onv4_3。第4段卷积层后紧跟着一个22的池化层(oo_4)。16的第5段卷积层使用512个33的卷积核onv5,包含3个连续的卷积操作onv5_1、onv5_2和onv5_3。第5段卷积层后面紧跟着一个22的池化层(oo_5)。由图25和图26可知,H 网络的第1部分包括了16的前4层,即上述的16网络的前4段卷积层和池化层:onv1(onv1_1和 onv1_2),oo_1;onv2(onv2_1和onv2_2),oo_2;onv3(onv3_1、onv3_2和onv3_3),oo_3;onv4(onv4_1、onv4_2和onv4_3),oo_4。SSH网络的第2部分,包括3个分支M1、M2和M31则有所不同,它包含了两部分特征的融合(上面已经提到),第1部分是直接使用16网络在oo_4后得到的特征,第2部分是2分支(16在onv5之后得到的特征,没有接池化层)然后,第1部分通过11卷积操作,将oo_4后得到的特征的通道数从512降到128;第2部分也将特征的通道数从512降到128,然后进行上采样(双线性插值)。之后,将两部分的特征合并融合,再跟上一个33的卷积操作,得到的特征作为1分支最终所使用的特征。因此,1的特征融合了两种尺度的卷积特征。通过上述网络设计,1适用于检测较小的人脸,2适用于检测中等大小的人脸,而3适用于检测较大的人脸。H的目标(输出)是同时进行分类(判定是否为人脸)预测和外接框(boundngbox)的回归,因此损失函数是分类损失和回归损失的和。以上是SSH算法的网络结构的介绍。另外,SSH也使用了难例挖掘的技术,并在每批中预留25%的数量给正样本。在GitHub上,有开源实现的SSH人脸检测算法的源代码,有兴趣的读者可以通过文献[23]中DSFD最近,腾讯的人脸检测算法——DSFD(DualShotFaceDetector,CVPR2019)[24]继承了SSD(而SSD是在VGG16基础上改进的,用于目标检测),设计了特征增强模块,增强前和增强后的特征图将分别用于人脸检测,从而将基于SSD的单检测器扩展到双检测器。如图2-7所示为DSFD人脸检测算法的神图2-7DSFD人脸检测算法的神经网络结构图2-8DSFD人脸检测算法的特征增强模块(FEM)的神经网络结构为了更好地理解DSFD人脸检测算法的神经网络结构,我们从算法实现层面进行分析。DSFD继承SSD的人脸检测框架,在DSFD的官方代码中[25],SSD网络结构(classSSD(nn.Module))的Conv3_3、Conv4_3、Conv5_3、Convfc7、Conv6_2和Conv7_2层特征图(SSH人脸检测算法中的讲解)分别调用了特征增强模块(FEM)函数进行特征增强。而FEM即s (nn.odu),给出了特征增强的具体技术,.p2和.p函数将感受野增大(扩张)。再结合图28可知,M的本质思想是通过空洞卷积(ononvouonly)扩大感受野,并将不同感受野中的特征进行融合,有利于在宽度和深度上学习到更多的上下文信息和语义信息。简而言之,D 的神经网络结构使用扩展的16网络结构,使用其中的6个隐含层(onv3_、onv4_3、onv5_3、onv 7、onv6_2和onv7_2)的特征图的融合,得到6个特征图,作为1部分(原始)特图。然后,使用特征增强模块M将上述6个隐含层的特征图分别进行增强,作为2部分特征图(增强后的特征图)。另外,DSFD人脸检测算法还提出了“分层锚点渐进”式的损失函数(ProgressiveAnchorLoss,PAL)。原始特征图和增强后的特征图使用的损失函数不同 求两者的和,适配了不同尺寸的外接边(anchorboxes)。在训练过程中,PAL对整个模型形成了更有效的监督[26-27]D人脸检测算法的本质是对D检测框架进行的改进,增加了很多有效的技术细节(增强技术和新的损失函数的设计),提升了其人脸检测效果。有关本算法的更多技术细节,读者可以参阅文献[25]中的源代码。CNN系列、FasterR-CNN系列和SSD/RPN系列3种类别。如表2-1所示,本章阐述的CascadeCNN算法和MTCNN算法属于级联CNN系列;FaceR-CNN属于FasterCNN系列;SSH、DSFD人脸检测算法属于SSD/RPN表2-1级联CNN系列在深度学习方法中速度最快,CPU都在10FPS以上,级联CNN系列优化后可以在CPU上轻松实现。FasterR-CNN系列,性能可以做到极高,但速度很慢,甚至不能在GPU上实现。SSD/RPN系列在人脸检测方面有着极佳的性能,与FasterR-CNN系列不相上下;同时也可以保持GPU实时速度[28]。[1]人脸识别[EB/OL]2020-03-01.\h[2]步态识别技术[EB/OL]2020-03-01.\h \h \h[5]中科视拓开源SeetaFace2人脸识别算法(2019)[EB/OL]2020-03-01.\h/s?[6]LiHX,LinZ,ShenXH,etal.AconvolutionalneuralnetworkcascadeforfaceCVPR2015,2015:5325-[7]人脸检测之CascadeCNN[EB/OL]2020-03-01.[8]CascadeCNN人脸检测算法的开源实现[EB/OL]2020-03-01.[9]ZhangKP,ZhangZP,LiZF,etal.JointFaceDetectionandAlignmentUsingMultitaskCascadedConvolutionalNetworks[J].IEEESignalProcessingLetters,2016,23(10):1499-1503. [11]JointFaceDetectionandAlignmentusingMulti-taskCascadedConvolutional2020-03-01. [13]MTCNN理论笔记[EB/OL]2020-03-01.\h[14]SPL2016_MTCNN[EB/OL].2020-03-01. [16]WangH,LiZF,JiX,etal.FaceR-CNN[J].arXivpreprint,arXiv,2017: [18]NajibiM,SamangoueiP,ChellappaR,etal.SSH:SingleStageHeadlessFaceDetector[C].IEEEInternationalConferenceonComputerVision(ICCV2017),2017:4885-4894. [21]迁移学习及实操[EB/OL]2020-03-01.\h/view/1934.[22]网络学习系列-VGG16[EB/OL]2020-03-01.https://\h/p/e630db [24]LiJ,etal.DSFD:DualShotFaceDetector[C].CVPR2019,2019:5060- /fendouaini/article/details/89507328.[27]FaceDetectionDSFD论文理解[EB/OL].2020-03-01./wwwhp/article/details/[28]人脸检测背景介绍和发展现状[EB/OL]2020-03-01.第3章人脸识别技术的最新进展人脸识别技术的发展,大致可以分为EigenFace方法时期(Eigenfaces和Fishierfaces)、Gabor-LBP方法到图像的特征后,就可以由分类算法(分类器)CosFace和ArcFace(InsightFace)等方法[1-6]。本章重点讲解3个人脸识别算法:DeepID算法、FaceNet算DeepID算法和DeepFace算法在基于深度学习的人脸识别领域具有开创性意义。需要说明的是,DeepID论文报道的97.45%的人脸识别准确率指的是人脸验证的结果,并不是真正的人脸识别的结果。人脸确认两张人脸图像是否为同一个人;人脸识别将输入图像与数据集中注册的N张人脸图像进行比对,确定DeepIDDeepID系列人脸识别算法包括DeepID[7]、DeepID2、DeepID2+[8]和DeepID3。DeepID系列人脸识别如图3-1所示是DeepID系列人脸识别算法的神经网络结构[7],它包含4个卷积层、3个池化层、1个全连接层和1个Softmax分类层。全连接层(最后一个隐含层)和第4个卷积层、第3个卷积层(池化后)进行全pD 系列人脸识别算法的关键之一是对人脸图像的预处理。首先,对人脸区域的5行定位,包括2个眼睛中心、1个鼻尖和2个嘴角。然后,以每个人脸关键点为中心,提取如图32所示的10张脸部切片(ph)。对每张人脸切片,选取3种不同分辨率、2种不同色彩(彩色图和灰度图)的图像,进行翻转处理(p),因此一张人脸图像最终将提取120个切片图像[9。使用如图31所示的神经网络,对每张切片图像提取160维的全连接层特征,因此,一张人脸图像最终将得到160维120个19200个特征,直接用于后续的基于联合贝叶斯分类算法的人脸验证步骤。在W数据集上,pD系列人脸识别算法的人脸验证准确率达到97.45。本书的后续章节将详解pD 系列人脸识别算法的原理和应用实践(基)。图3-1DeepID系列人脸识别算法的神经网络结构图3-2DeepID系列人脸识别算法对人脸的不同区域提取卷积特征DeepID2、DeepID2+和DeepID3改进了DeepID系列人脸识别算法的损失函数或使用更深的神经网络结构(在VGG和GooLeNet的基础上构建合适的结构)[10]。GitHub上有DeepID系列人脸识别算法的开源实现(基于Python/TensorFlow),有兴趣的读者可以通过文献[11]和文献[12]中的源代码进行DeepIDFaceNet谷歌的FaceNet人脸识别算法[13]的核心技术是设计了新的损失函数TripletLoss(三元组损失函数),如图3-3所示。该损失函数还用于训练模型的三元组的选择。TripletLoss本质上通过难例挖掘和深度度量学图3-3TripletLoss的目标是最小化正样本之间的距离,最大化正样本和负样本之间的距离图3-4正例图像对和负例图像对示例图3-4正例图像对和负例图像对示例[14](续在FaceNet训练模型时,其中一个极为关键的步骤是三元组构造,需要构造如图3-3所示的三元组,其中包括当前用户的人脸图像、属于同一个用户的其他图像、其他人的图像。基于TripletLoss(三元组损失函数)的TripletSelection算法的关键步骤如下。该算法来自FaceNet官方源代码[15]中的train_tripletloss.py码中的select_triplets函数,读者可以具体阅读这部分的官方源代码,深入理解FaceNetTripletSelectiont在每批(nh)中,对每个身份的人选择40张正样本人脸图像,然后使用上述算法中的半难(d)难例挖掘的方法选取负样本。其原则是:选择比正样本之间距离更远的负样本;同时要求这些负样本与正样本的距离在一定范围内(通过边界阈值控制),即不能太远,选取那些与正样本的距离比正样本之间更远、但在所有负样本中与正样本最近的负样本。负样本与正样本的距离,要比正样本之间的距离远,但同时负样本与正样本的距离也不能太远,在范围内。换言之,首先,寻找所有满足与正样本的距离比正样本之间的距离更小的负样本集合;然后,从这些满足条件的负样本中再次挑选与正样本最近的那些负样本(距离在范围内),故称为d难例挖掘。这一步是训练高准确度人脸识别模型的关键之一。通过上述算法中的伪代码,读者将对这一过程有较为透彻的理解。训练过程有若干Epoch(读取数据的遍数),每个Epoch又有若干批,每批使用TripletSelection算法选可使用深度度量学习,如孪生网络(e ok)的方法进行训练,度量两张图像之间的相性。如图35和图36(右)所示,一对图像可以分别提取特征,然后将两个特征合并或对其特征求差[17;也可以先将图像合并再对合并后的图像提取特征,如图36(左)所示。此种方法称为2通道孪生网络。孪生网络最后要学习的目标是判断两张图像是否是同一个人(物体)的图像,1表示同类,0本质上属于基于深度学习的二分类问题。孪生网络的输入是两张图像,类标签是1或0,输出是两张图像之间的相似度,该相似度是介于[01跟踪、人脸识别等,具有非常高的预测准确度,被誉为一个简单神奇的神经网络结构[18。有关FaceNet人脸识别算法和孪生网络的更多技术细节和应用实践,读者可以参阅相关的源代码,参见文献[1519]。图3-5孪生网络中的图像对示例图3-6ArcFace点,ArcFace损失函数的核心算法通过如下算法中的几行程序就能完成。ArcFace原始的Softmax损失函数是在欧几里得空间中分开的,它映射到欧几里得空间是不同的区域空间,决策面是一个在欧几里得空间的平面,可以分隔不同的类别(EuclideanMarginLoss)。ArcFace(AdditiveAngularMargin)、SphereFace和CosFace(AdditiveCosineMargin)本质上都是对Softmax损失函数的改进[22](GeodesicDistance),通过角度空间度量两个向量之间的距离。ArcFace的思想和SphereFace及CosFace有很多的共同点和相似之处,主要区别在于:ArcFace直接在角度空间(AngularSpace)最大化分类界限,而CosFace在余弦空间最大化分类界限[23],如图3-7所示。CosFace中的坐标轴是cosθ1和cosθ2,Class1相当于将过原点的斜率为1的线向上平移m。ArcFace中的坐标轴是θ1和θ2,Class1这条线相当于将过原点的斜率为1的线向上平移m(注意,虽然都是平移m,但是ArcFace的坐标轴和CosFace不同,因此平移的量不一样)[23]。CosFace的分类界限s(cosθ2-m-cosθ1)=0,而ArcFace的分类界限s(cos(θ2+m)-=0[23],由此可见两者之间的差别主要是ArcFace角度边缘m置于cos(θ)函数内部,直接最大化角(弧)空间中的决策边界。尽管ArcFace与SphereFace、CosFace相似,但由于角度与测地距离具有精确的对应关系,ArcFace提出的加性角度间隔具有较好的几何属性(具有更好的几何解释)[24]。图3-7不同损失函数的决策边界如图3-8所示为基于ArcFace损失函数的人脸识别过程。为了更好地理解ArcFace损失函数,建议读者先通过文献[25-26]了解SphereFace和CosFace损失函数。GitHub上的ArcFace人脸识别算法的开源实现[27],图3-8基于ArcFace损失函数的人脸识别过程[1]Asurveyontechniquestohandlefacerecognitionchallenges:occlusion,singlesamplepersubjectandexpression[J].ArtificialIntelligenceReview,2019,(52):949-979.[2]WangM,DengWH.DeepFaceRecognition:ASurvey[J].arXiv,[3]GuoG,ZhangN.Asurveyondeeplearningbasedfacerecognition[J].ComputerVisionandImageUnderstanding,2019,(189).[4]走近深度学习人脸识别[EB/OL]2020-03-01.\h \h[7]SunY,WangXG,TangXO.DeepLearningFaceRepresentationfromPredictingCVPR2014,2014:1891-[8]SunY,WangXG,TangXO.DeeplyLearnedFaceRepresentationsareSparse,Selective,andRobust[C].CVPR2015,2015:2892-2900.[9]DeepID1,DeepID2[EB/OL].2020-03-01.\h[10]DeepID1,DeepID2,DeepID2+,DeepID3[EB/OL].2020-03-01.https://blog.csdn.net/yuanchheneducn/article/details/51034463.[11]ImplementationofDeepID1usingtensorflow[EB/OL].2020-03-01.https://github.com/jinze1994/DeepID1.[12]PractiseofDeepIDforFaceClassification[EB/OL].2020-03-01./stdcoutzyx/DeepID_FaceClassify.[13]SchroffF,KalenichenkoD,PhilbinJ.FaceNet:Aunifiedembeddingforfacerecognitionandclustering[C].CVPR2015,2015:815-823. [15]FaceNet官方源代码[EB/OL]2020-03-01. [17]ZagoruykoS,KomodakisN.LearningtoCompareImagePatchesViaConvolutionalNeuralNnetworks[C].CVPR2015,2015:4353-4361.[18]Siamesenetwork孪生神经网络——一个简单神奇的结构[EB/OL]2020-03-01.https://\hwww.jianshu.[19]Siameseandtripletnetworkswithonlinepair/tripletmininginPyTorch[EB/OL].2020-03-[20]DengJK,GuoJ,XueNN,etal.ArcFace:AdditiveAngularMarginLossforDeepFaceRecognition[C].CVPR2019,2019:4690-4699. \h[22]度量学习中损失函数的学习与深入理解[EB/OL].2020-03-01.https://\h/content-4-[23]ArcFace算法笔记[EB/OL]2020-03-01.[24]ArcFace解析[EB/OL]2020-03-01. [28]SphereFace,CosFace,ArcFace[EB/OL].2020-03-01.https://louishsu.xyz/2019/07/13/SphereFace- [30]深度人脸识别综述[EB/OL]2020-03-01.\h第4章人脸关键点定位技术的最新进展Coarse-to-FineWingLoss损失函数人脸关键点定位,旨在从人脸图像中定位眼、口、鼻、脸部轮廓等脸部的关键点,如图41所示。目前,支持83个、106个人脸关键点的定位。商汤科技则支持21个、106个、240个3关键点的定位,可适应大角度侧脸、大表情变化、遮挡等实际环境。5图4-118个人脸关键点和68(两张图像均来自互联网,版权归对应原作者所有Coarse-to-FineCNNoone[4(从粗粒度到细粒度、逐步求精的卷积神经网络)是早期有代表性的基于深度学习的人脸关键点定位技术。作者将68个人脸关键点分为51个人脸五官区域的特征点和17个人脸轮廓的特征点(onour on),并分开进行预测,这是因为人脸轮廓特征点的预测难度大于人脸五官特征点的测。如图42所示为该算法的处理流程,作者设计多层级联网络,以达到oon(特征逐步求精)的效果[3。vl1区分为五官区域的人脸检测和包括脸部轮廓的人脸检测,vl2、vl3和vl4为人脸关键点定位部分。图42上部为五官区域特征点的定位,此部分设计了3层卷积神经网络;下部为人脸轮廓关键点的定位。Level2给出了五官区域特征点定位的初步估计结果,Level3对人脸五官区域的6个部分(对眉毛、一双眼睛、鼻、嘴)图4-2Coarse-to-FineCNN人脸关键点检测的处理流程TCDCN(konndponvouonlok)[5算法,旨在通过多任务学习(除人脸关键点定位之外,还有头部姿势估计和面部属性推断,具体包括是否戴眼镜、是否微笑、性别判断和脸部方向估计等学习任务),进一步优化人脸关键点定位的效果。具体而言,作者设计了如图43所示的N 经网络结构和处理流程,从图中可以看到,不同的学习任务共享相同的神经网络特征。为了多任务学习的需要,作者设计了新的损失函数,包括ox函数和线性函数等部分。N人脸关键点定位算法的本质是通过神经网络提取特征,并通过回归学习得到人脸关键点的位置。N人脸关键点定位算法通过任务学习的方法,借助多任务约束的损失函数和误差后向传播,最终提取到的特征能够提高人脸定位模型的泛化能力。不过,由于是多任务学习,N要求对训练数据进行更加全面的标注,除人脸关键点的置外,还需要标注其他任务学习所需的数据,如脸部方向、性别及是否戴眼镜等。为此,作者手动标注了一个(uklndk)数据集。图4-3TCDCN神经网络结构和处理流程SIR-LAN基于深度学习的级联回归器在人脸定位方面超越了传统方法,但存在执行效率不高的问题,为了提高其计算效率,文献[6提出了人脸关键点定位算法,它包括自迭代回归(vegon,)和人脸关键点注意力神经网络(ndknonok,)两部分,如图44所示为该算法的处理框架和流程。N 使用了3个卷积层,之所以称为注意力网络,是因为它只关注每个人脸关键点周围的脸部特征,对每个人脸关键点区域分别进行特征提取,然后将这些特征拼接,如图44(b)所示。图4-4SIR-LAN人脸关键点定位算法的主要处理框架和流程SIR-LAN人脸关键点定位算法旨在迭代训练一个回归器(而非多个级联回归器),用于预测人脸关键点的位置。该回归器的输入数据是通过随机高斯采样方法构造的数据,该采样方法是SIR-LAN人脸关键点定位算法成功的关键。LAN神经网络以回归器预测的人脸关键点结果为基础,对人脸的不同区域分别进行全连接层fc2。LAN的预测结果与真实结果的差异(误差),作为SIR通过不断迭代训练人脸关键点回归器的依据。更新后的人脸回归器的预测数据又作为LAN的输入,对脸部不同区域进行特征提取、预测,并计N通过精密的采样方法,保证了输入数据的多样性和回归器的准确率。该方法的人脸关键点定位效果与级联回归器方法相当,但是计算效率得到了显著提升。SAN鉴于已有方法没有考虑图像风格多样性(ImageStyleVariation)对人脸关键点定位的影响,如彩色图和黑白图、采光亮或暗等,文献[7]提出了StyleAggregatedNetwork(SAN)方法,用于人脸关键点定位。SAN方法包括两部分,第1部分基于GAN的技术对每张原图生成多种风格的图像,其效果如图4-5所示;第2部分利用3层卷积神经网络,对每张原图和生成的对应风格多样性图像分别提取卷积特征Fo和Fs别基于Fo和Fs生成二维特征谱(2DBeliefMap)Ho和Hs,然后将Fo、Fs、Ho和Hs合并后生成二维特征谱。SAN损失函数为每张人脸图像的最终特征谱Hi和目标特征谱之间的误差。作者提供了SAN的源代码[8],读图4-5StyleAggregatedNetwork(SAN)方法的主要效果WingLoss目前的人脸关键点定位算法使用欧几里得距离(2o)作为损失函数。然而,2os受到噪声的影响较大。文献[9分析了不同损失函数对人脸关键点定位的影响,揭示出使用1损失函数(直接求差)和平滑1损失函数的人脸关键点定位算法的性能优于2o。作者进一步设计了ngos损失函数[9,该损在上述公式中,gt和pred分别表示每张人脸图像的所有真实的人脸关键点的集合和预测的人脸关键点位置的集合,gti和predi值的差值的绝对值小于阈值w时,使用对数函数放大(强调)该误差;否则,使用L1Loss直接返回二者的L1Loss。作者通过实验表明,使用WingLoss损失函数后,人脸关键点定位算法的性能得到了一定提升。[1]WuY,JiQ.FacialLandmarkDetection:ALiteratureSurvey[J].InternationalJournalofComputerVision,2019,127(2):115-142.[2]WangNN,GaoXB,TaoDC,etal.Facialfeaturepointdetection:AcomprehensiveNeurocomputing,2018,275:50- [4]ZhouEJ,FanHQ,CaoZM,etal.ExtensiveFacialLandmarkLocalizationwithCoarse-to-FineConvolutionalNetworkCascade[C].ICCVWorkshops,2013:386-391.[5]ZhangZP,LuoP,ChenCL,etal.FacialLandmarkDetectionbyDeepMulti-taskECCV,2014(6):94-[6]HuT,QiHG,XuJZ,etal.FacialLandmarksDetectionbySelf-IterativeRegressionBasedLandmarks-AttentionNetwork[C].AAAI2018,2018:6926-6933.[7]DongXY,YanY,OuyangWL,etal.StyleAggregatedNetworkforFacialLandmarkDetection[C].CVPR2018,2018:379-388.[8]SourceCodeoftheStyleAggregatedNetworkforFacialLandmarkDetectionPaper[EB/OL].2020-[9]FengZH,KittlerJ,AwaisM,etal.WingLossforRobustFacialLandmarkLocalisationwithConvolutionalNeuralNetworks[C].CVPR2018,2018:2235-2245.第5章人脸检索技术的最新进展DDH算法同时考虑哈希码损失和分类损失的图像检索技术人脸检索是1N人脸识别技术可以用于部分人脸检索的应用中(如刷脸入园应用),但人脸检索与人脸识别仍有显著的不同之处。需要说明的是,目前的图像检索技术尚不能很好地满足人们检索图像的需要。这从商用搜索引擎中图像检索模块的使用效果和用户体验就能发现。其中一个原因是,用户查询意图的歧义性,场景图像的复杂背景和颜色,蕴含的主题、信息的歧义性。例如,输入一个带校名的某大学大门,搜索引擎返回的可能是形状和这个大门比较类似的其他大门,而用户可能想查询该大学的其他大门,此时则需要用R图像检索。脸检索只关注图像中的人脸区域,忽略了图像的其他部分。事实上,人脸是具有显著特点的目标(多见。基于DeepID的人脸检索方面的技术,文献[1-2]是少有的有代表性的资料。度哈希人脸检索(DiscriminativeDeepHashing,DDH)算法,图5-1为DDH算法的神经网络结构。DDH算个融合层(MergedLayer)。为了得到多尺度人脸图像特征,融合层将卷积层_4的特征和最大池化层_3得到顺序等分为K组,每组后面分别映射(连接)第3层的单一神经单元(实数值)。第3层形成的K个神经单元合并为哈希层,哈希层的输出是离散化的哈希码(哈希值),每张人脸图像 用 个位表示即Pi={-1,1}K,然后使用Softmax函数(或其他回归函数)预测这些哈希码的类别。因此,在这一过程中,DDH算法要求这些哈希码具有高度的可区分性,以辨识所检索的人脸图像是哪个。在人脸检索阶段(测试阶段),我们利用训练好的神经网络模型得到测试图像的二进制哈希码,然后利用汉明距离(ngn)计算该哈希码与哪个类别的哈希码最近,以该类别的标签作为测试图像的预测结果。图5-1DDH算法的神经网络结构综上可知,DDH算法是基于整体人脸特征的人脸检索技术。DDH算法采用端到端的方式,同时学习人脸特征和紧凑的二进制哈希码(CompactBinaryHashCodes)。有关基于深度哈希的图像检索技术,读者可以参阅文献[3]了解相关的技术和进展。GitHubDDH算法的开源实现[4],对读者理解DDH有关第1部分哈希码自身的损失,在该问题上,主要将图像的卷积特征编码为由0和1果是属于同一类型的物体目标的两张图像,那么希望它们的深度卷积特征经过哈希编码后,两张图像对应的编码之间的汉明距离要尽可能小;反之,如果两张图像属于不同的类型,则希望它们对应的深度卷积特征哈希码之间的汉明距离尽可能地大。文献作者举了一个简单有趣的例子,如果批大小是200,其中包含个类,每个类有20张图像,那么将不同的图像组合起来,成对图像之间属于同一类型的图像对的张数为1900张,而属于不同类型的图像对的张数为18000张,两者之比为19.47。因此,属于同一类型的图像对与不属于同一类型的图像对之间的样本量,是严重不均衡的,前者的样本量较为匮乏。因此,文献作者在已有的基于汉明距离损失的基础上,又乘以了对应的权重,而权重与样本的数量成反比。在本例中,对于同一类型的图像对,增加其权重,其权重为9.4710.47,而不属于同一类型的图像对的权重为110.47。图5-2兼顾哈希码损失和分类损失的图像检索算法[1]LinJ,LiZC,TangJH.DiscriminativeDeepHashingforScalableFaceImageRetrieval[C].IJCAI2017,2017:2266-2272.[2]TangJH,LiZC,ZhuX.Superviseddeephashingforscalablefaceimageretrieval[J].PatternRecognition,2018,75:25-32. [4]Facehashingusingneuralnetworks,mappingimagestoHammingcodes[EB/OL].2020-03-01.[5]ZhouQ,QiSH,etal.BalancetheLoss:ImprovingDeepHashviaLossWeightingandSemanticPreserving[C].2018IEEEInternationalConferenceonMultimediaandExpo(ICME2018),2018:1-6.[6]RodriguesJ,CristoM,ColonnaJG.Deephashingformulti-labelimageretrieval:aArtificialIntelligenceReview,[7]ShenYH,JiRR,HongXP,etal.APartPowerSetModelforScale-FreePersonIJCAI2019,2019:3397-[8]LinMB,JiRR,LiuH,etal.TowardsOptimalDiscreteOnlineHashingwithBalancedSimilarity[C].AAAI2019,2019:8722-8729.[9]LaiHJ,PanY,LiuY,etal.Simultaneousfeaturelearningandhashcodingwithdeepneuralnetworks[C].CVPR2015,2015:3270-3278.[10]LiuHM,WangRP,ShanSG,etal.Deepsupervisedhashingforfastimageretrieval[C].CVPR2016,2016:2064-2072.第6章经典的人脸检测算法DPMLAEOViola&Jones的)人脸检测算法,分别是DPM人脸检测算法、LAEO人脸检测算法、Viola&Jones人脸检测算法。下面DPMDPM(DeformablePartModel)人脸检测算法使用的检测模型为DPM-Baseline[1],它可以检测多角度人脸图像,是M.Mathias等人在2014年提出的[2]。DPM人脸检测算法的检测效果与一些比较成熟算法的检测(NMS)的重要性。M.Mathias等人公开了训练好的人脸检测模型——DPM-BaselineDPMDPM人脸检测算法使用可变形部件模型目标检测框架[5],包含一个训练好的、可以检测多角度人脸的框经过NMS的训练数据和发现了非极大值抑制
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2027届贵州省贵阳市化学九上期中经典模拟试题含解析
- 2027届上海市青浦区九年级化学第一学期期末统考模拟试题含解析
- 云南省云南师范大附属中学2027届九上物理期末经典模拟试题含解析
- 浙江省宁波市国际学校2027届物理九年级第一学期期末经典模拟试题含解析
- 2027届湖北省宜昌市高新区化学九上期中质量检测模拟试题含解析
- 油画写生理论测试题目与答案
- 西藏拉萨达孜县2027届化学九上期末学业质量监测试题含解析
- 重庆畜牧职称评定考试试题及答案集
- 黑龙江省尚志市2027届化学九年级第一学期期中考试试题含解析
- 2026年农产品质量抽检合规流程考试题库
- 2026江苏南京市栖霞区人民政府迈皋桥街道办事处公开招聘编外聘用人员19人考前冲刺试卷附完整答案详解【必刷】
- 2026全国第二届班组长大赛(电力赛道)初赛理论参考题库(含答案)
- T/CCOA 59-2023粉末油脂
- 第四届福建省水产技术推广职业技能竞赛-水生物病害防治员备赛题库(含答案)
- 五人合伙协议样本
- 合伙人协议合同
- 2024年银行外汇业务知识理论考试题库及答案(含各题型)
- 集成电路封装材料-芯片黏接材料
- 历代公文选第一章-公文概说资料课件
- 美国专利法及实务培训-上传课件
- 技术的本质(经典版)
评论
0/150
提交评论