本發(fā)明屬于計(jì)算機(jī)視覺、人工智能技術(shù)領(lǐng)域,具體涉及大規(guī)模人臉識別方法。
背景技術(shù):
在當(dāng)前機(jī)器學(xué)習(xí)技術(shù)及計(jì)算機(jī)硬件性能高速提升的情況下,近年來計(jì)算機(jī)視覺、自然語言處理和語音識別等應(yīng)用領(lǐng)域取得了突破性進(jìn)展。人臉識別作為計(jì)算機(jī)視覺領(lǐng)域一項(xiàng)基礎(chǔ)的任務(wù),其精度也得到了大幅提升。
在過去的幾年當(dāng)中,許多大型科技公司以及著名的研究機(jī)構(gòu)提出了許多高效的人臉識別的方法,在行業(yè)內(nèi)最著名的人臉評測集LFW上的準(zhǔn)確率超過了99%。這樣顯著的成績主要?dú)w功與兩個(gè)方面:深度學(xué)習(xí)和海量數(shù)據(jù)。深度學(xué)習(xí)解決了人臉識別當(dāng)中的特征表達(dá)的問題,相比傳統(tǒng)的方法,能夠更加全面地學(xué)習(xí)人臉的特征。海量的訓(xùn)練數(shù)據(jù)直接提升了人臉識別的精度。
在實(shí)際運(yùn)用場景中,當(dāng)需要識別的對象在百萬量級的數(shù)據(jù)庫當(dāng)中,LFW評測集上表現(xiàn)接近完美的模型性能也大打折扣。MegaFace評測集是第一個(gè)百萬級別的人臉評測數(shù)據(jù)集,更加接近現(xiàn)實(shí)生活。
目前提升人臉識別性能的方法主要有三種:
(1)增加訓(xùn)練數(shù)據(jù);
(2)通過多任務(wù)學(xué)習(xí)的方式訓(xùn)練模型;
(3)利用度量學(xué)習(xí)找到更加合適的學(xué)習(xí)方法。
通過海量的數(shù)據(jù)訓(xùn)練能夠提升人臉識別模型的性能,然而收集大量的人臉數(shù)據(jù)是一件極其困難的工作;訓(xùn)練多個(gè)模型,然后進(jìn)行模型混合的方法會讓人臉識別的過程變得過于復(fù)雜,不利于實(shí)際場景中的運(yùn)用;度量學(xué)習(xí)對訓(xùn)練模型的技巧要求太高,而且模型的泛化能力不強(qiáng)。因此通過一種高效的深度卷積神經(jīng)網(wǎng)絡(luò)模型來提升人臉識別精度成為了一種新的有效的途徑。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種基于深度卷積神經(jīng)網(wǎng)絡(luò)模型的大規(guī)模人臉識別方法,來提升人臉識別精度,以解決當(dāng)前實(shí)際運(yùn)用場景下大規(guī)模人臉識別困難的問題。
本發(fā)明首先提出一個(gè)全新的基于殘差學(xué)習(xí)的深度卷積神經(jīng)網(wǎng)絡(luò)模型,此模型能夠?qū)W習(xí)到更多的特征,更好地進(jìn)行特征表達(dá),更加適合大規(guī)模的人臉識別任務(wù)。
本發(fā)明提出的大規(guī)模人臉識別方法,采用上述基于殘差學(xué)習(xí)的深度卷積神經(jīng)網(wǎng)絡(luò)模型,實(shí)現(xiàn)的硬件平臺需要一張NVIDIA TITANX顯卡。本發(fā)明首先對數(shù)據(jù)集圖片進(jìn)行預(yù)處理,然后訓(xùn)練深度卷積神經(jīng)網(wǎng)絡(luò)模型,最后通過深度卷積神經(jīng)網(wǎng)絡(luò)模型提取特征,利用特征向量計(jì)算相似度,實(shí)現(xiàn)人臉識別。具體包括3個(gè)過程:預(yù)處理圖片、訓(xùn)練深度卷積神經(jīng)網(wǎng)絡(luò)模型、面向大規(guī)模人臉識別:
步驟1、預(yù)處理圖片
(1)檢測圖片中的人臉;
(2)檢測人臉中的5個(gè)關(guān)鍵點(diǎn)(兩眼、鼻尖、兩邊嘴角);
(3)進(jìn)行人臉對齊操作;
(4)將人臉圖片大小歸一化,例如把人臉圖片大小歸一化至112×96。
步驟2、訓(xùn)練深度卷積神經(jīng)網(wǎng)絡(luò)模型
(1)搭建基于殘差學(xué)習(xí)的深度卷積神經(jīng)網(wǎng)絡(luò)模型;
(2)前向傳播計(jì)算損失誤差(SoftMax Loss);
(3)反向傳播損失誤差(SoftMax Loss)更新模型參數(shù);
(4)獲得訓(xùn)練好的深度卷積神經(jīng)網(wǎng)絡(luò)模型。
步驟3、大規(guī)模人臉識別
(1)測試圖片通過深度卷積神經(jīng)網(wǎng)絡(luò)模型;
(2)提取特征向量;
(3)利用特征向量進(jìn)行相似度計(jì)算;
(4)輸出識別結(jié)果。
步驟2訓(xùn)練深度卷積神經(jīng)網(wǎng)絡(luò)模型,具體介紹如下:
(1)搭建本發(fā)明提出的基于殘差學(xué)習(xí)的深度卷積神經(jīng)網(wǎng)絡(luò)模型:
本發(fā)明提出的模型由卷積層、下采樣層、殘差層以及全連接層組成,其中殘差層由兩路數(shù)據(jù)(一路是若干個(gè)卷積層級聯(lián)的數(shù)據(jù)和一路原始數(shù)據(jù))相加求和構(gòu)成,并且網(wǎng)絡(luò)結(jié)構(gòu)中每一個(gè)卷積層之后都做批量歸一化(Batch Normalization)操作;
具體的網(wǎng)絡(luò)模型從輸入層I開始,依次經(jīng)過卷積層C1,卷積層C2,下采樣層P1,殘差層R1_1,殘差層R1_2,殘差層R1_3,卷積層C3,下采樣層P2,殘差層R2_1,殘差層R2_2,殘差層R2_3,殘差層R2_4,卷積層C4,下采樣層P3,殘差層R3_1,殘差層R3_2,殘差層R3_3,殘差層R3_4,殘差層R3_5,殘差層R3_6,卷積層C5,下采樣層P4,殘差層R4_1,殘差層R4_2,殘差層R4_3,最后到全連接層F1;
(2)用10575個(gè)人的49萬張圖片作為訓(xùn)練數(shù)據(jù),分批次輸入搭建好的網(wǎng)絡(luò)模型;
(3)訓(xùn)練集圖片通過模型,前向傳播用全連接層參數(shù)計(jì)算損失誤差(SoftMax Loss);
(4)將損失誤差(SoftMax Loss)反向傳播更新模型參數(shù);
(5)獲得訓(xùn)練好的深度卷積神經(jīng)網(wǎng)絡(luò)模型。
步驟3面向大規(guī)模人臉識別,具體介紹如下:
(1)將一百萬張人臉圖片作為測試數(shù)據(jù),依次輸入訓(xùn)練好的網(wǎng)絡(luò)模型;
(2)取網(wǎng)絡(luò)模型中全連接層的1024個(gè)參數(shù)作為人臉圖片的特征向量;
(3)利用特征向量進(jìn)行相似度計(jì)算;
(4)輸出識別結(jié)果。
本發(fā)明方法的主要特點(diǎn)有:
(1)利用此模型在百萬級別的人臉識別任務(wù)中取得了極好的效果;
(2)模型訓(xùn)練數(shù)據(jù)量少,僅使用不到50萬張人臉圖片作為訓(xùn)練數(shù)據(jù);
(3)模型結(jié)構(gòu)簡單,不需要使用模型混合、多任務(wù)訓(xùn)練以及度量學(xué)習(xí)等方法。
本發(fā)明方法利用了深度卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)能力強(qiáng)和殘差學(xué)習(xí)收斂好的特性,在百萬級人臉數(shù)據(jù)庫中檢索人臉這項(xiàng)高難度的任務(wù)中取得很高的準(zhǔn)確率。相比于傳統(tǒng)的計(jì)算機(jī)視覺方法,本發(fā)明方法利用深度卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),充分學(xué)習(xí)輸入圖片特征,更加完整地進(jìn)行圖片特征表達(dá),大幅提升了人臉識別的精度,尤其是在百萬級人臉識別任務(wù)中取得了優(yōu)秀的成績。并且不同于目前廣泛運(yùn)用的度量學(xué)習(xí)、模型混合和多任務(wù)學(xué)習(xí)的方法,本發(fā)明方法提出的深度卷積神經(jīng)網(wǎng)絡(luò)模型簡單高效,有效解決了百萬級人臉識別任務(wù)中準(zhǔn)確率不高以及模型搭建復(fù)雜的問題。
在面向大規(guī)模人臉識別領(lǐng)域,本發(fā)明較之基線模型在準(zhǔn)確率方面得到了極大提升,在百萬級人臉數(shù)據(jù)庫中人臉檢索的準(zhǔn)確率達(dá)到了74.25%。
附圖說明
圖1一種面向大規(guī)模人臉識別的殘差學(xué)習(xí)深度網(wǎng)絡(luò)模型流程圖。
圖2本發(fā)明提出的基于殘差學(xué)習(xí)的深度卷積神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)圖。
圖3殘差層網(wǎng)絡(luò)結(jié)構(gòu)圖。
具體實(shí)施方式
以下結(jié)合附圖解釋運(yùn)用了本發(fā)明,基于殘差學(xué)習(xí)的深度卷積神經(jīng)網(wǎng)絡(luò)模型在百萬級別的人臉識別任務(wù)中的具體實(shí)施,實(shí)現(xiàn)的具體運(yùn)算步驟如附圖1所示。
1、預(yù)處理圖片
首先利用圖片處理工具M(jìn)TCNN[19]檢測圖片中的人臉,然后利用MTCNN檢測人臉中的5個(gè)關(guān)鍵點(diǎn)(兩眼、鼻尖、兩邊嘴角),然后人臉對齊方法[20]進(jìn)行人臉對齊操作,最后將處理過的圖片大小歸一化至112×96。
2、搭建本發(fā)明提出的基于殘差學(xué)習(xí)的深度卷積神經(jīng)網(wǎng)絡(luò)模型
利用深度學(xué)習(xí)框架Caffe,搭建本發(fā)明提出的基于殘差學(xué)習(xí)的深度卷積神經(jīng)網(wǎng)絡(luò)模型,如附圖2所示。此模型由卷積層,下采樣層,殘差層以及全連接層組成,其中殘差層由兩路數(shù)據(jù)(一路是若干個(gè)卷積層級聯(lián)的數(shù)據(jù)和一路原始數(shù)據(jù))相加求和構(gòu)成,如附圖3所示,并且網(wǎng)絡(luò)結(jié)構(gòu)中每一個(gè)卷積層之后都做批量歸一化(Batch Normalization)操作;
其中,輸入層I大小為112×96×3,卷積層C1(卷積核大小為3×3,滑動(dòng)步長為1,填充為0,輸出為32),卷積層C2(卷積核大小為3×3,滑動(dòng)步長為1,填充為0,輸出為64),下采樣層P1(最大池化,大小為2×2,滑動(dòng)步長為2,輸出為64),殘差層R1_1(一路由3個(gè)卷積層(卷積核大小為3×3,滑動(dòng)步長為1,填充為0,輸出為64)級聯(lián)的數(shù)據(jù)和一路原始數(shù)據(jù)相加),殘差層R1_2(一路由3個(gè)卷積層(卷積核大小為3×3,滑動(dòng)步長為1,填充為0,輸出為64)級聯(lián)的數(shù)據(jù)和一路原始數(shù)據(jù)相加),殘差層R1_3(一路由3個(gè)卷積層(卷積核大小為3×3,滑動(dòng)步長為1,填充為0,輸出為64)級聯(lián)的數(shù)據(jù)和一路原始數(shù)據(jù)相加),卷積層C3(卷積核大小為3×3,滑動(dòng)步長為1,填充為0,輸出為128),下采樣層P2(最大池化,大小為2×2,滑動(dòng)步長為2,輸出為128),殘差層R2_1(一路由3個(gè)卷積層(卷積核大小為3×3,滑動(dòng)步長為1,填充為0,輸出為128)級聯(lián)的數(shù)據(jù)和一路原始數(shù)據(jù)相加),殘差層R2_2(一路由3個(gè)卷積層(卷積核大小為3×3,滑動(dòng)步長為1,填充為0,輸出為128)級聯(lián)的數(shù)據(jù)和一路原始數(shù)據(jù)相加),殘差層R2_3(一路由3個(gè)卷積層(卷積核大小為3×3,滑動(dòng)步長為1,填充為0,輸出為128)級聯(lián)的數(shù)據(jù)和一路原始數(shù)據(jù)相加),殘差層R2_4(一路由3個(gè)卷積層(卷積核大小為3×3,滑動(dòng)步長為1,填充為0,輸出為128)級聯(lián)的數(shù)據(jù)和一路原始數(shù)據(jù)相加),卷積層C4(卷積核大小為3×3,滑動(dòng)步長為1,填充為0,輸出為256),下采樣層P3(最大池化,大小為2×2,滑動(dòng)步長為2,輸出為256),殘差層R3_1(一路由3個(gè)卷積層(卷積核大小為3×3,滑動(dòng)步長為1,填充為0,輸出為256)級聯(lián)的數(shù)據(jù)和一路原始數(shù)據(jù)相加),殘差層R3_2(一路由3個(gè)卷積層(卷積核大小為3×3,滑動(dòng)步長為1,填充為0,輸出為256)級聯(lián)的數(shù)據(jù)和一路原始數(shù)據(jù)相加),殘差層R3_3(一路由3個(gè)卷積層(卷積核大小為3×3,滑動(dòng)步長為1,填充為0,輸出為256)級聯(lián)的數(shù)據(jù)和一路原始數(shù)據(jù)相加),殘差層R3_4(一路由3個(gè)卷積層(卷積核大小為3×3,滑動(dòng)步長為1,填充為0,輸出為256)級聯(lián)的數(shù)據(jù)和一路原始數(shù)據(jù)相加),殘差層R3_5(一路由3個(gè)卷積層(卷積核大小為3×3,滑動(dòng)步長為1,填充為0,輸出為256)級聯(lián)的數(shù)據(jù)和一路原始數(shù)據(jù)相加),殘差層R3_6(一路由3個(gè)卷積層(卷積核大小為3×3,滑動(dòng)步長為1,填充為0,輸出為256)級聯(lián)的數(shù)據(jù)和一路原始數(shù)據(jù)相加),卷積層C5(卷積核大小為3×3,滑動(dòng)步長為1,填充為0,輸出為512),下采樣層P4(最大池化,大小為2×2,滑動(dòng)步長為2,輸出為512),殘差層R4_1(一路由3個(gè)卷積層(卷積核大小為3×3,滑動(dòng)步長為1,填充為0,輸出為512)級聯(lián)的數(shù)據(jù)和一路原始數(shù)據(jù)相加),殘差層R4_2(一路由3個(gè)卷積層(卷積核大小為3×3,滑動(dòng)步長為1,填充為0,輸出為512)級聯(lián)的數(shù)據(jù)和一路原始數(shù)據(jù)相加),殘差層R4_3(一路由3個(gè)卷積層(卷積核大小為3×3,滑動(dòng)步長為1,填充為0,輸出為512)級聯(lián)的數(shù)據(jù)和一路原始數(shù)據(jù)相加),最后,全連接層F1(維度為1024)。
3、把訓(xùn)練數(shù)據(jù)輸入搭建好的網(wǎng)絡(luò)模型
用人臉數(shù)據(jù)集CASIA-WebFace作為訓(xùn)練數(shù)據(jù),該數(shù)據(jù)集來自10575位名人的49萬張圖片。將訓(xùn)練集圖片做水平翻轉(zhuǎn)操作,以實(shí)現(xiàn)數(shù)據(jù)增強(qiáng)。訓(xùn)練數(shù)據(jù)分批次進(jìn)入網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,每次進(jìn)入網(wǎng)絡(luò)模型的訓(xùn)練圖片批次大小為64,一共迭代訓(xùn)練7萬次。
4、訓(xùn)練集圖片通過模型,用全連接層參數(shù)計(jì)算損失誤差(SoftMax Loss)。
5、將計(jì)算得到的損失誤差(SoftMax Loss)反向傳播更新模型參數(shù)。
6、獲得面向大規(guī)模人臉識別的殘差學(xué)習(xí)深度網(wǎng)絡(luò)模型。
7、在百萬級人臉識別評測集MegaFace上進(jìn)行測試。
利用MegaFace團(tuán)隊(duì)提供的測試代碼,將一百萬張人臉圖片作為測試數(shù)據(jù),依次輸入訓(xùn)練好的基于殘差學(xué)習(xí)的深度神經(jīng)卷積網(wǎng)絡(luò)模型,取模型中全連接層的1024個(gè)參數(shù)作為特征向量。對輸入圖片的特征向量計(jì)算余弦距離,把余弦距離按照大小排序,通過余弦距離的大小輸出人臉識別結(jié)果。人臉識別首位準(zhǔn)確率(Rank 1 Face Identification accuracy)為74.25%,處于當(dāng)前國際領(lǐng)先水平,如下表1所示。
表1、本發(fā)明方法在MegaFace評測集上,人臉識別首位準(zhǔn)確率與業(yè)內(nèi)先進(jìn)方法對比
。
參考文獻(xiàn)
[1] Florian Schroff, Dmitry Kalenichenko, and JamesPhilbin, “Facenet: A unified embedding for face recognition and clustering,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2015, pp. 815–823.
[2] Omkar M Parkhi, Andrea Vedaldi, and Andrew Zisserman, “Deep face recognition,” in British Machine Vision Conference, 2015, vol. 1, p. 6.
[3] Yi Sun, Xiaogang Wang, and Xiaoou Tang, “Deeplearning face representation by joint identificationverification,” arXiv preprint arXiv:1406.4773, 2014.
[4] Gary B Huang, Manu Ramesh, Tamara Berg, and ErikLearned-Miller, “Labeled faces in the wild: A database for studying face recognition in unconstrained environments,” Tech. Rep., Technical Report 07-49, Universityof Massachusetts, Amherst, 2007.
[5] Ira Kemelmacher-Shlizerman, Steven M Seitz, DanielMiller, and Evan Brossard, “The megaface benchmark:1 million faces for recognition at scale,” in Proceedingsof the IEEE Conference on Computer Vision and PatternRecognition, 2016.
[6] Yi Sun, Xiaogang Wang, and Xiaoou Tang, “Deep learning face representation from predicting 10,000 classes,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2014, pp. 1891–1898.
[7] Iacopo Masi, Anh Tuan Tran, Jatuporn Toy Leksut, TalHassner, and Gerard Medioni, “Do we really need tocollect millions of faces for effective face recognition,”arXiv preprint arXiv:1603.07057, 2016.
[8] Yandong Wen, Kaipeng Zhang, Zhifeng Li, andYu Qiao, “A discriminative feature learning approachfor deep face recognition,” in European Conference onComputer Vision. Springer, 2016, pp. 499–515.
[9] Dong Yi, Zhen Lei, Shengcai Liao, and Stan Z Li,“Learning face representation from scratch,” arXivpreprintarXiv:1411.7923, 2014.
[10] Dong Chen, Xudong Cao, Liwei Wang, Fang Wen, andJian Sun, “Bayesian face revisited: A joint formulation,”in European Conference on Computer Vision. Springer,2012, pp. 566–579.
[11] Brendan F Klare, Ben Klein, Emma Taborsky, AustinBlanton, Jordan Cheney, Kristen Allen, Patrick Grother,Alan Mah, Mark Burge, and Anil K Jain, “Pushing thefrontiers of unconstrained face detection and recognition: Iarpa janusbenchmark a,” in 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2015, pp. 1931–1939.
[12] Yandong Guo, Lei Zhang, Yuxiao Hu, Xiaodong He,and Jianfeng Gao, “Ms-celeb-1m: A dataset and benchmark forlarge-scale face recognition,” in EuropeanConference on Computer Vision. Springer, 2016, pp.87–102.
[13] Vinod Nair and Geoffrey E Hinton, “Rectified linearunits improve restricted boltzmann machines,” in Proceedings of the 27th International Conference on Machine Learning (ICML-10), 2010, pp. 807–814.
[14] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and JianSun, “Delving deep into rectifiers: Surpassing humanlevel performance on imagenet classification,” in Proceedings of the IEEE International Conference on Computer Vision, 2015, pp. 1026–1034.
[15] Sergey Ioffe and Christian Szegedy, “Batch normalization: Accelerating deep network training by reducing internal covariate shift,” arXiv preprint arXiv:1502.03167, 2015.
[16] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and JianSun, “Deep residual learning for image recognition,”arXiv preprint arXiv:1512.03385, 2015.
[17] Bart Thomee, David A Shamma, Gerald Friedland, Benjamin Elizalde, Karl Ni, Douglas Poland, Damian Borth, and Li-Jia Li, “The new data and new challenges in multimedia research,” arXiv preprint arXiv:1503.01817, vol. 1, no. 8, 2015.
[18] Hao Ye, Weiyuan Shao, Hong Wang, Jianqi Ma,Li Wang, Yingbin Zheng, and Xiangyang Xue, “Facerecognition via active annotation and learning,” in Proceedings of the 2016 ACM on Multimedia Conference.ACM, 2016, pp. 1058–1062.
[19] Kaipeng Zhang, Zhanpeng Zhang, Zhifeng Li, andYu Qiao, “Joint face detection and alignment usingmultitask cascaded convolutional networks,” IEEE Signal Processing Letters, vol. 23, no. 10, pp. 1499–1503,2016.
[20] Xiang Wu, Ran He, and Zhenan Sun, “A lightened cnnfor deep face representation,” in 2015 IEEE Conference on IEEE Computer Vision and Pattern Recognition(CVPR), 2015.
[21] Yangqing Jia, Evan Shelhamer, Jeff Donahue, SergeyKarayev, Jonathan Long, Ross Girshick, Sergio Guadarrama, and Trevor Darrell, “Caffe: Convolutional architecture for fast feature embedding,” in Proceedings ofthe 22nd ACM international conference on Multimedia.ACM, 2014, pp. 675–678.。