張昭輝 張吉光 徐士彪 孟維亮 程章林 張曉鵬
1(中國(guó)科學(xué)院自動(dòng)化研究所 北京 100190)
2(中國(guó)科學(xué)院大學(xué) 北京 100049)
3(北京郵電大學(xué) 北京 100876)
4(中國(guó)科學(xué)院深圳先進(jìn)技術(shù)研究院 深圳 518055)
在大數(shù)據(jù)環(huán)境下,信息技術(shù)得到了快速發(fā)展。目前,人們正處在一個(gè)信息過(guò)載的時(shí)代,如何在海量數(shù)據(jù)中獲取所需內(nèi)容,已成為迫在眉睫的問(wèn)題。在此背景下,基于關(guān)鍵字檢索技術(shù)的搜索引擎應(yīng)運(yùn)而生。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)傳輸帶寬變得越來(lái)越大,可傳輸媒體種類隨之增加。搜索引擎不僅可以搜索文本,還可以搜索圖片等媒體,但由于部分圖像比較難以使用自然語(yǔ)言去量化的描述[1],基于內(nèi)容的圖片搜索技術(shù)(Content-Based Image Retrieval,CBIR)自此走上了歷史舞臺(tái)。而人臉圖像搜索技術(shù)作為圖片搜索的一個(gè)分支,因其需求廣泛,開(kāi)啟了飛速發(fā)展的時(shí)代。目前,視頻、直播等媒體形式已經(jīng)成為了生活中的主流,然而,對(duì)于視頻、直播中人或物的搜索,仍停留在截取圖像后需自行搜索的階段,而主流搜索引擎的圖片搜索功能,使用起來(lái)又非常繁瑣。同時(shí),視頻實(shí)時(shí)搜索技術(shù)正處于發(fā)展階段,現(xiàn)有技術(shù)面臨諸多問(wèn)題,如程序魯棒性普遍較低,難以同時(shí)保證準(zhǔn)確性與實(shí)時(shí)性都達(dá)到高度可用。為了解決這些問(wèn)題,本文從實(shí)際應(yīng)用角度出發(fā),提出了一種基于特征混合聚類和關(guān)鍵點(diǎn)檢測(cè)的智能人臉?biāo)阉骺蚣埽簩?shí)時(shí)人臉檢測(cè)與人臉識(shí)別搜索分割開(kāi)來(lái),先將人臉粗過(guò)濾后再進(jìn)行人臉精細(xì)搜索。此方案同時(shí)保證了人臉檢測(cè)的實(shí)時(shí)性與人臉?biāo)阉鞯臏?zhǔn)確性,此外,由系統(tǒng)能效實(shí)驗(yàn)可知,本框架在多種狀況下都高度可用。
本文的具體貢獻(xiàn)如下:
第一,提出了一種新的“由粗到細(xì)”的基于特征混合聚類和關(guān)鍵點(diǎn)檢測(cè)的智能人臉?biāo)阉骺蚣?,該框架采用了逐?jí)篩選的策略。在人臉實(shí)時(shí)檢測(cè)端,使用了基于多尺度深度特征混合聚類的人臉檢測(cè)算法,將人臉圖像進(jìn)行快速劃分。而在人臉數(shù)據(jù)搜索端,基于人臉檢測(cè)端的篩選結(jié)果,使用基于臉部關(guān)鍵點(diǎn)檢測(cè)算法[2]提取人臉特征,由于人臉關(guān)鍵點(diǎn)檢測(cè)的方法具有高精度的特性,所以人臉識(shí)別的準(zhǔn)確率達(dá)到了 99.8%,實(shí)現(xiàn)了對(duì)互聯(lián)網(wǎng)視頻數(shù)據(jù)的實(shí)時(shí)檢測(cè)與高魯棒的視頻人臉數(shù)據(jù)智能搜索。
第二,提出了一種基于多尺度深度特征混合聚類的人臉檢測(cè)算法,通過(guò)Softmax[3]與center loss[4]兩種聚類算法進(jìn)行聯(lián)合訓(xùn)練,其中,Softmax函數(shù)進(jìn)行數(shù)據(jù)分類,center loss函數(shù)生成聚類中心。同時(shí),又加入了中心損失函數(shù)的校正回歸,提升了網(wǎng)絡(luò)對(duì)人臉的泛化能力,增加了算法效率。
第三,構(gòu)造了兩個(gè)公開(kāi)的影視類人臉數(shù)據(jù)集,一個(gè)是影視劇劇集截圖所構(gòu)造的人臉數(shù)據(jù)集,適用于各種深度人臉特征網(wǎng)絡(luò)模型的訓(xùn)練;另一個(gè)是高清明星人臉數(shù)據(jù)集(含合照),適用于人臉面部特征精確劃分算法的訓(xùn)練。
隨著人工智能技術(shù)的發(fā)展,人臉識(shí)別技術(shù)取得了巨大突破,其憑借著非接觸和幾乎無(wú)感的優(yōu)良特性,在人類社會(huì)中發(fā)揮了重要的作用,全方位地滲透到了生活中。人臉識(shí)別技術(shù)經(jīng)過(guò)幾十年研究與發(fā)展,形成了多種人臉識(shí)別的解決方案,用來(lái)滿足不同場(chǎng)景的應(yīng)用需求。面對(duì)更加復(fù)雜的應(yīng)用要求,人臉識(shí)別的研究也從最單一簡(jiǎn)單的背景轉(zhuǎn)變到各種復(fù)雜場(chǎng)景之下,對(duì)于姿態(tài)、光照、表情、年齡、妝容、遮擋、噪聲、種族、性別差異等影響因素都需要有良好的解決辦法[5]。
目前,大部分人臉數(shù)據(jù)集都是在較為理想的環(huán)境下采集的,由于幾乎沒(méi)有其他因素的干擾,大多數(shù)的人臉識(shí)別算法對(duì)處于該環(huán)境下的人臉具有良好的識(shí)別率。但是,在現(xiàn)實(shí)生活中,除了在較為理想環(huán)境下的人臉識(shí)別外,還有對(duì)于實(shí)時(shí)記錄的公共或私人監(jiān)控系統(tǒng)進(jìn)行人臉識(shí)別的需要。然而,由于拍攝條件參差不齊,如有些監(jiān)控本身分辨率就較低,再加上環(huán)境復(fù)雜、距離較遠(yuǎn)、角度較偏等因素,就會(huì)導(dǎo)致圖像的分辨率極低,普通的人臉識(shí)別技術(shù)難以對(duì)其進(jìn)行有效的識(shí)別。所以,對(duì)于復(fù)雜場(chǎng)景下的低分辨率人臉圖像的識(shí)別研究具有很大的潛在價(jià)值與行業(yè)需求,此時(shí),低分辨率人臉識(shí)別應(yīng)運(yùn)而生[6]。
隨著人臉識(shí)別技術(shù)作為公安、刑偵等領(lǐng)域的技術(shù)手段,被大量運(yùn)用在保衛(wèi)國(guó)家安全,保護(hù)人民群眾及其財(cái)產(chǎn)安全,其相關(guān)領(lǐng)域的研究、專利數(shù)量開(kāi)始井噴式增長(zhǎng)。2014 年前后,人們開(kāi)始將深度學(xué)習(xí)與人臉識(shí)別相結(jié)合,deep face[7]橫空出世,此后,類似于 deep face、DeepIDs[8]等基于深度學(xué)習(xí)的人臉識(shí)別技術(shù)如雨后春筍般涌出。2015 年起,我國(guó)提出了一系列政策與發(fā)展目標(biāo),其中,《中華人民共和國(guó)國(guó)民經(jīng)濟(jì)和社會(huì)發(fā)展第十三個(gè)五年規(guī)劃綱要》中的第六篇“強(qiáng)化信息安全保障”,極大地促進(jìn)了我國(guó)人臉識(shí)別領(lǐng)域的發(fā)展,到“十三五”規(guī)劃結(jié)束之時(shí),我國(guó)眾多知名企業(yè),都擁有了自己的一套人臉識(shí)別體系,其算法的完成程度,幾乎都處于國(guó)際領(lǐng)先地位[9]。但是,美國(guó)、日本等國(guó)家由于人工智能行業(yè)起步較早,仍有大量技術(shù)領(lǐng)先。人臉識(shí)別技術(shù)在發(fā)展的同時(shí),其應(yīng)用領(lǐng)域也得到了拓寬,對(duì)此,研究人員提出了根據(jù)任務(wù)而定的高效的網(wǎng)絡(luò)集成方法[10]。而在一些場(chǎng)景下,人們除了需要人臉識(shí)別技術(shù)準(zhǔn)確地識(shí)別人臉外,對(duì)其識(shí)別速度也有了嚴(yán)格要求,為了解決這個(gè)問(wèn)題,DFSD[11]、S3FD[12]、MTCNN[13]、CenterFace[14]等優(yōu)秀算法相繼被提出[15]。本文提出的基于特征混合聚類和關(guān)鍵點(diǎn)檢測(cè)的智能人臉?biāo)阉骺蚣埽蛥⒖剂薈enterFace 中關(guān)于中心損失函數(shù)的相關(guān)思想。
以往的人臉檢測(cè)方法繼承了基于錨點(diǎn)的通用目標(biāo)檢測(cè)框架,可以細(xì)分為兩類:兩步法(Faster R-CNN[16])和一步法(SSD[17])。與兩步法相比,一步法的效率較高,召回率也較高,但是會(huì)導(dǎo)致很高的假陽(yáng)性率,且降低了人臉的定位精度。之后,區(qū)域生成網(wǎng)絡(luò)(Region Proposal Network,RPN[18])的兩段法直接開(kāi)始應(yīng)用于人臉檢測(cè),SSH[19]與 S3FD 在一個(gè)單一網(wǎng)絡(luò)中開(kāi)發(fā)了一個(gè)不變尺度的網(wǎng)絡(luò),用來(lái)檢測(cè)來(lái)自不同層的多尺度人臉。但是,基于錨點(diǎn)的方法不能很好地兼顧召回率與魯棒性。
目前,較先進(jìn)的人臉檢測(cè)網(wǎng)絡(luò)通過(guò)使用網(wǎng)絡(luò)預(yù)訓(xùn)練模型 VGGNet[20]和 ResNet[21],在 WIDER FACE[22]上取得了較高的準(zhǔn)確率。但是,這些人臉檢測(cè)技術(shù)因?yàn)槠潺嫶蠖鴱?fù)雜的神經(jīng)網(wǎng)絡(luò)耗時(shí)較長(zhǎng),且模型的規(guī)模也非常大,很難應(yīng)用于實(shí)際。其次,基于卷積神經(jīng)網(wǎng)絡(luò)的 VGGNet 等網(wǎng)絡(luò)預(yù)訓(xùn)練模型,沒(méi)有對(duì)人臉特征進(jìn)行標(biāo)記,不利于人臉特征對(duì)齊匹配的應(yīng)用。因此,將人臉的檢測(cè)與對(duì)齊算法進(jìn)行一體化設(shè)計(jì),并達(dá)到較好的實(shí)時(shí)性與準(zhǔn)確率,成為了實(shí)際應(yīng)用中至關(guān)重要的環(huán)節(jié)。
受到無(wú)錨點(diǎn)通用目標(biāo)檢測(cè)框架的啟發(fā),Xu等[14]提出了一種輕量化、高效率的人臉檢測(cè)和對(duì)齊方法 CenterFace,其網(wǎng)絡(luò)可以進(jìn)行端到端訓(xùn)練。該算法使用臉邊界框的中心點(diǎn)來(lái)表示臉部位置,面部框的大小和坐標(biāo)直接被回歸到中心位置的圖像特征,從而使人臉檢測(cè)和對(duì)齊問(wèn)題轉(zhuǎn)化為人臉的關(guān)鍵點(diǎn)估計(jì)問(wèn)題。熱圖中的峰值對(duì)應(yīng)面部的中心,每個(gè)峰值的圖像特征可以預(yù)測(cè)臉的大小和人臉關(guān)鍵點(diǎn)的大小。經(jīng)相關(guān)數(shù)據(jù)集評(píng)估,結(jié)果表明,該網(wǎng)絡(luò)對(duì)于人臉圖像實(shí)現(xiàn)了較好的分辨。
但Softmax損失函數(shù)只保證了特征的可分性,并不要求類內(nèi)緊湊和類間分離,因此并不適用于人臉識(shí)別。CenterFace 盡管基于中心損失函數(shù),使人臉特征辨識(shí)度顯著增高,但是在WIDER FACE 高難測(cè)試場(chǎng)景下僅達(dá)到 78.2% 的精度,在 Wildest Faces[23]數(shù)據(jù)集中的測(cè)試結(jié)果也并不理想,模型的訓(xùn)練方法還有待改進(jìn)。
實(shí)時(shí)應(yīng)用場(chǎng)景下的人臉識(shí)別算法要求輕量化、高效率。而在應(yīng)用更加廣泛的人物身份識(shí)別場(chǎng)景中,人臉識(shí)別算法則需要更高的準(zhǔn)確性,各大互聯(lián)網(wǎng)公司在此方面幾乎做到了極致。2021年,美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究所發(fā)布的人臉識(shí)別供應(yīng)商測(cè)試結(jié)果中,商湯科技與依圖、百度等公司均在前列,對(duì)于人臉圖像的查準(zhǔn)率均已超過(guò) 99.99%(數(shù)據(jù)來(lái)自 Face Recognition Vendor Test(FRVT) | NIST)。但由于這些公司的網(wǎng)絡(luò)模型都過(guò)于龐大,而且大多并未公開(kāi),所以進(jìn)行實(shí)驗(yàn)時(shí)一般選擇開(kāi)源、輕量化的人臉識(shí)別模塊。
Face_recognition 是一個(gè)極為簡(jiǎn)潔的人臉特征識(shí)別庫(kù),可以使用 Python 和命令行工具進(jìn)行提取、識(shí)別、操作人臉。該項(xiàng)目基于行業(yè)內(nèi)領(lǐng)先的C++開(kāi)源庫(kù) Dlib 中的深度學(xué)習(xí)模型,并在由美國(guó)麻省大學(xué)阿莫斯特分校提供的 Labeled Faces in the Wild[24]人臉數(shù)據(jù)集上進(jìn)行測(cè)試,測(cè)試結(jié)果準(zhǔn)確率高達(dá) 99.38%,已經(jīng)超過(guò)了人類肉眼識(shí)別的平均水平。Dlib 提供了兩個(gè)人臉檢測(cè)方法,使用方向梯度直方圖(Histogram of Oriented Gradient,HOG)特征[25]進(jìn)行回歸或者基于卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行識(shí)別,其中,卷積神經(jīng)網(wǎng)絡(luò)方法需要使用 GPU加速。
與其他人臉識(shí)別算法的步驟一致,F(xiàn)ace_recognition 首先進(jìn)行人臉檢測(cè):輸入圖像經(jīng)過(guò)降維處理后,生成方向梯度直方圖,系統(tǒng)通過(guò)匹配,找到 HOG 圖案中最像人臉梯度特征的那一部分,從而完成人臉?lè)蛛x。得到人臉圖像,然后進(jìn)行人臉對(duì)齊,使用面部特征點(diǎn)估計(jì)算法找到圖像中對(duì)應(yīng)的特征點(diǎn),Dlib 中的模型擁有 68 個(gè)人臉特征定位點(diǎn)。人臉特征經(jīng)仿射變換后映射到標(biāo)準(zhǔn)人臉模型上,最終經(jīng)過(guò)具有 29 個(gè)轉(zhuǎn)換層的深度殘差網(wǎng)絡(luò) ResNet[21]生成 128 位特征碼,隨后只需進(jìn)行簡(jiǎn)單的向量間距計(jì)算(主要采用歐氏距離),就可以得到輸入人臉圖像與其余人臉圖像的人臉間距絕對(duì)值,值越小越可能是同一張人臉。這種特性使得 Dlib 在人臉編碼搜索方面有著得天獨(dú)厚的優(yōu)勢(shì),兼顧了人臉識(shí)別的準(zhǔn)確性與人臉編碼搜索的實(shí)時(shí)性。
首先,算法實(shí)時(shí)截取視頻、直播等流媒體圖像。然后,將圖像通過(guò)輕量化、高效率的人臉檢測(cè)算法(基于多尺度深度特征混合聚類的人臉檢測(cè)算法)進(jìn)行人臉圖像的初步篩選,過(guò)濾掉背景干擾。最后,經(jīng)過(guò)粗篩選后的人臉圖像再經(jīng)使用者挑選,進(jìn)入基于臉部關(guān)鍵點(diǎn)檢測(cè)算法(Dlib 人臉識(shí)別),由于面部特征規(guī)范化的特性,使得識(shí)別準(zhǔn)確率得到極大提升。通過(guò)以上粗篩選、細(xì)搜索的應(yīng)用策略,前者為后者搜索掃除障礙,爭(zhēng)取時(shí)間,后者將前者的成果進(jìn)行更加精細(xì)的呈現(xiàn),這種逐級(jí)篩選所帶來(lái)的合力,使得該框架的實(shí)時(shí)性與精準(zhǔn)度都能得到極大的保障。
算法按照處理階段可分為預(yù)處理與在線處理兩部分,框架如圖 1 所示。其中,在線處理部分又被細(xì)分為實(shí)時(shí)人臉檢測(cè)部分(粗篩選)與人臉在線搜索部分(細(xì)搜索)。
圖1 實(shí)時(shí)人臉數(shù)據(jù)搜索算法框架Fig. 1 Real time face data search algorithm framework
3.1.1 預(yù)處理部分
預(yù)處理部分分為兩個(gè)步驟。首先,通過(guò)網(wǎng)絡(luò)爬蟲爬取海量目標(biāo)數(shù)據(jù)圖像,此步驟為預(yù)處理階段,故無(wú)需對(duì)效率作太多要求,此時(shí)可以引入針對(duì)性的基于深度學(xué)習(xí)的人臉特征識(shí)別算法,將人們更有可能搜索的結(jié)果圖片提取到數(shù)據(jù)庫(kù)中(如:明星、公眾人物等),達(dá)到計(jì)算機(jī)系統(tǒng)快表(Cache)的效果,大幅度提升系統(tǒng)的搜索效率。也可制定人臉圖像排序的規(guī)則,將所需要的人臉圖像入庫(kù),提升庫(kù)中圖像被檢索的概率。此時(shí),入庫(kù)的不僅有圖片,還包括相應(yīng)頁(yè)面的統(tǒng)一資源定位符等信息。
在獲取完海量目標(biāo)圖片后,將目標(biāo)圖片導(dǎo)入庫(kù)處理程序,再通過(guò)基于臉部關(guān)鍵點(diǎn)檢測(cè)算法,對(duì)目標(biāo)圖片進(jìn)行人臉存在性判斷,若存在人臉圖像,則建立人臉空間,并遍歷圖片找到全部人臉,存入對(duì)應(yīng)圖像的空間。之后,通過(guò)臉部關(guān)鍵點(diǎn)檢測(cè)算法中深度殘差神經(jīng)網(wǎng)絡(luò)提取人臉特征并完成編碼,當(dāng)全部圖像中的所有人臉進(jìn)行編碼后,將人臉特征碼與對(duì)應(yīng)圖片的統(tǒng)一資源定位符一同存入數(shù)據(jù)庫(kù)中,等待搜索。
3.1.2 實(shí)時(shí)在線處理與搜索部分
在進(jìn)行視頻實(shí)時(shí)人臉數(shù)據(jù)搜索時(shí),首先需要導(dǎo)入當(dāng)前播放的視頻流,若無(wú)接口,可直接使用系統(tǒng)屏幕錄制功能,程序通過(guò)一定算法截取視頻幀;若存在可導(dǎo)入視頻源,系統(tǒng)就對(duì)視頻進(jìn)行提前處理,加入關(guān)鍵幀算法,提升系統(tǒng)的可用性,減少用于處理無(wú)效幀所消耗的計(jì)算資源。在獲取到視頻幀后,為了減少人臉提取所消耗的計(jì)算資源,提升系統(tǒng)實(shí)時(shí)性,此時(shí)應(yīng)采用輕量化、高效率的基于多尺度深度特征混合聚類的人臉識(shí)別算法,算法在輕量化結(jié)構(gòu)的輔助下,能夠迅速將視頻幀中人臉全部找出。該步驟只進(jìn)行人臉檢測(cè)而不進(jìn)入搜索,所以系統(tǒng)能輕松處理每秒幾十幀的數(shù)據(jù),這樣做極大程度地節(jié)省了計(jì)算資源,提升了系統(tǒng)的可用性。
在實(shí)時(shí)人臉檢測(cè)部分結(jié)束后,經(jīng)過(guò)粗篩選的去除背景干擾的人臉圖像出現(xiàn)在使用者眼前,再進(jìn)行人臉在線搜索,系統(tǒng)將通過(guò)基于臉部關(guān)鍵點(diǎn)檢測(cè)算法對(duì)人臉特征進(jìn)行提取,生成特征碼。由于人臉關(guān)鍵點(diǎn)特征具有自身高命中率的特性,可將人臉?biāo)阉骶忍嵘?99.8%,同時(shí),基于臉部關(guān)鍵點(diǎn)檢測(cè)算法采用規(guī)范的特征編碼,所以系統(tǒng)能在可接受時(shí)間內(nèi)找到若干匹配的人臉,并基于人臉特征間距進(jìn)行排序。然后生成人臉?biāo)趫D片的統(tǒng)一資源定位符序列進(jìn)行網(wǎng)絡(luò)爬蟲,此時(shí),采用的爬蟲算法應(yīng)是簡(jiǎn)單高效的深度網(wǎng)絡(luò)爬蟲,從而保證使用者所需數(shù)據(jù)能夠即時(shí)地下載返回并呈現(xiàn)在使用者眼前。該系統(tǒng)框架借助準(zhǔn)確且高效的基于臉部關(guān)鍵點(diǎn)檢測(cè)算法,能夠做到輕松處理數(shù)萬(wàn)級(jí)的數(shù)據(jù)。
在線處理部分,粗篩選階段為細(xì)搜索階段掃除障礙、排除背景等因素干擾的同時(shí),也因其算法輕量化的特點(diǎn),能夠?qū)崿F(xiàn)高幀率人臉圖像的實(shí)時(shí)處理;細(xì)搜索部分在繼承粗篩選階段的結(jié)果后,以極高的命中率,出色地解決了粗篩選階段所做不到的高準(zhǔn)確率問(wèn)題。兩個(gè)階段相輔相成,共同行使職能,最終使該系統(tǒng)框架既兼顧了實(shí)時(shí)性,也達(dá)到了高魯棒性。
3.1.3 系統(tǒng)目標(biāo)
為了進(jìn)一步提升系統(tǒng)魯棒性,使框架高度可用,本文提出并解決了以下幾個(gè)問(wèn)題。
第一,在許多視頻或直播的場(chǎng)景中,人物并不是正襟危坐在鏡頭前,尤其是在電視劇與電影中。影視作品為了體現(xiàn)鏡頭感,往往會(huì)出現(xiàn)人臉只有側(cè)面或存在遮擋的情況,在某些大場(chǎng)面中,單個(gè)人臉會(huì)變得很小,且演員本身又帶妝,在多種因素的影響下,人臉識(shí)別的錯(cuò)誤率會(huì)極大增加,特別是圖像中有多張人臉時(shí)更加容易發(fā)生錯(cuò)誤。此外,直播時(shí)的突發(fā)場(chǎng)景,尤其是在戶外直播時(shí),過(guò)高或過(guò)低的場(chǎng)景亮度以及手持?jǐn)z影設(shè)備直播時(shí)的抖動(dòng),都極大程度地增加了圖像的噪聲。因此需要構(gòu)建一個(gè)能在復(fù)雜場(chǎng)景下識(shí)別人臉的算法——不僅要滿足框架中提到的輕量化、高效率等優(yōu)點(diǎn),還需要對(duì)低分辨率下的人臉具有足夠的識(shí)別率。
第二,人臉圖像的在線搜索模塊,與實(shí)時(shí)人臉檢測(cè)模塊不同,該模塊對(duì)于人臉處理與搜索的時(shí)間需求相對(duì)來(lái)說(shuō)比較寬松,但對(duì)人臉識(shí)別精度有較高的要求。因此,需要一個(gè)以提高人臉識(shí)別準(zhǔn)確性為主,同時(shí)又具有一定即時(shí)性的算法,并且為了之后搜索時(shí)方便編碼,該算法提取出來(lái)的特征,需要有極高的規(guī)范性。
第三,由于項(xiàng)目基于單個(gè)系統(tǒng)架構(gòu),并非分布式架構(gòu),因此,在海量數(shù)據(jù)中及時(shí)地搜索和返回目標(biāo),成為了搜索模塊的首要任務(wù)。而通過(guò)分析傳統(tǒng)的圖像搜索引擎結(jié)構(gòu)可知,建立搜索的第一步是完成所搜圖片的編碼,在這里需要非常規(guī)范化的人臉編碼,其既能最大限度地保留人臉信息,又能盡可能地保持相同的碼位以便搜索,在編碼完成后,建立高效的索引進(jìn)一步提升搜索速度。
第四,對(duì)于返回的搜索結(jié)果,應(yīng)當(dāng)是最符合搜索者期待的結(jié)果,但是,在海量圖片下人臉識(shí)別的結(jié)果有可能非常多,本文借助人臉識(shí)別等技術(shù),將人們最可能期望得到的搜索結(jié)果篩選出來(lái),優(yōu)化了搜索者的搜索體驗(yàn)。同時(shí),減輕了系統(tǒng)下行的壓力。
對(duì)于人臉識(shí)別的實(shí)際應(yīng)用來(lái)說(shuō),通過(guò)深度神經(jīng)網(wǎng)絡(luò)所獲得的特征,除了需要實(shí)現(xiàn)人臉可分,還需要有良好的辨別率。Softmax損失函數(shù)確保了提取的特征可分,但過(guò)于模糊的分類方法,會(huì)使其人臉識(shí)別的能力減弱,在加入center loss中心損失函數(shù)后,人臉識(shí)別的準(zhǔn)確性得到提高,每個(gè)類別的中心和特征向量都擁有相同的維度。通過(guò)訓(xùn)練的不斷深入,分類中心不斷迭代,最小化人臉特征與中心距離,深度特征高度分離。通過(guò)Softmax和center loss的聯(lián)合訓(xùn)練,最終使類間間距增大,類內(nèi)間距減小。達(dá)到了較高的識(shí)別率,同時(shí)因?yàn)榫垲惖脑?,使得原本存在的圖像噪點(diǎn)被舍去,降低了系統(tǒng)資源占用,提升了系統(tǒng)性能。
3.2.1 訓(xùn)練數(shù)據(jù)集
為了使模型有效且具有一定健壯性,本文選擇自制數(shù)據(jù)集,數(shù)據(jù)來(lái)自視頻、直播中各種場(chǎng)景下的人臉畫面,數(shù)據(jù)集采用程序?qū)﹄娪?、電視劇、直播等視頻數(shù)據(jù)隨機(jī)截取,篩選掉無(wú)人臉的圖像,確保數(shù)據(jù)集中的圖像接近真實(shí)使用場(chǎng)景。具體圖像示例如圖 2 所示。
圖2 影視人臉數(shù)據(jù)庫(kù)例圖Fig. 2 Example of video face database
本數(shù)據(jù)集中包含 218 位人物以不同姿勢(shì)、表情、妝容呈現(xiàn)的 15 844 張人臉圖像,并且含有不同的銳度、亮度等背景信息。另外,由于視頻中鏡頭的移動(dòng),會(huì)出現(xiàn)運(yùn)動(dòng)模糊等復(fù)雜情況,同時(shí)還伴有著其他的干擾因素。其中,人臉圖像多于 1 張的人物有 157 位(占比 72.02%)。選用數(shù)據(jù)集中 11 091 張(占比 70%)圖像用作訓(xùn)練數(shù)據(jù),其余圖像用作測(cè)試數(shù)據(jù)(測(cè)試數(shù)據(jù)只包含擁有兩張圖片以上的人物),具體劃分如表 1 所示。
表1 數(shù)據(jù)集劃分Table 1 Data set partition
3.2.2 基于多尺度深度特征的混合聚類
本文采用的 CenterFace 神經(jīng)網(wǎng)絡(luò)框架的工作原理如圖 3 所示,中心臉的框架與常用的圖像識(shí)別神經(jīng)網(wǎng)絡(luò)近似,主要區(qū)分點(diǎn)為損失函數(shù)的差異。
圖3 CenterFace 工作原理Fig. 3 How CenterFace works
對(duì)于低分辨率人臉的識(shí)別,CenterFace 還存在缺陷,當(dāng)使用Softmax與中心損失函數(shù)聯(lián)合進(jìn)行特征訓(xùn)練時(shí),雖然達(dá)到了類內(nèi)間距不斷減小的目的,但類中心與原點(diǎn)之間的距離也變小了,這不僅縮小了類內(nèi)間距,還縮小了類間間距,始終無(wú)法達(dá)到良好的分類效果。為了解決此問(wèn)題,本文提出了一種新的解決方案,基于向量間歐氏距離,將中心損失函數(shù)聚類所導(dǎo)致的類間間距縮小的問(wèn)題作修正回補(bǔ),基于模損失函數(shù),得到回歸函數(shù):
其中,LR為回歸函數(shù);N為每個(gè)分批的大??;表示第n個(gè)特征向量;yn為 的標(biāo)簽;M為訓(xùn)練集的分類數(shù);Wm為 CenterFace 網(wǎng)絡(luò)全連接層中權(quán)重第m列;為 CenterFace 網(wǎng)絡(luò)全連接層中權(quán)重第yn列;d為誤差值;cy為聚類中心,T為訓(xùn)練迭代次數(shù)。
經(jīng)回歸函數(shù)矯正后,所得結(jié)果在縮小類內(nèi)間距的同時(shí),增大了類間間距,這種做法較大程度上增加了特征的泛化能力。
基于特征向量空間歐氏距離進(jìn)行分類后,很容易發(fā)現(xiàn),在Softmax與中心損失函數(shù)進(jìn)行聯(lián)合訓(xùn)練的同時(shí),進(jìn)行回歸矯正,該結(jié)果比之前單一的損失函數(shù)的結(jié)果有更強(qiáng)的區(qū)分能力和更準(zhǔn)確的識(shí)別能力,如圖 4 所示。這種高區(qū)分度將會(huì)帶來(lái)搜索效率的提升:此前被誤識(shí)別的‘假人臉’此時(shí)都不參與識(shí)別,系統(tǒng)能空出更多的額外資源用來(lái)處理真的人臉,處理速度加快的同時(shí),系統(tǒng)占用也在降低。此外,CenterFace 中的訓(xùn)練步驟也存在缺陷,通過(guò)顛倒卷積層中參數(shù)和類中心參數(shù)的更新順序,可以進(jìn)一步提升函數(shù)的收斂能力。
圖4 單一損失函數(shù)與聯(lián)合損失函數(shù)的比較Fig. 4 Comparison between single loss function and joint loss function
本文在進(jìn)行基礎(chǔ)人臉數(shù)據(jù)庫(kù)的構(gòu)建時(shí),用爬蟲技術(shù)對(duì)網(wǎng)絡(luò)人物的圖像進(jìn)行爬取,可能會(huì)使庫(kù)中存在許多幾乎不可能被訪問(wèn)到的圖像,這不僅增加了存儲(chǔ)成本,而且降低了系統(tǒng)搜索效率。如果在爬取圖像數(shù)據(jù)時(shí),就對(duì)圖像進(jìn)行篩選,將高顏值、高清晰度、高訪問(wèn)量的人臉圖像排在搜索隊(duì)列頭部,并增加搜索與訪問(wèn)次數(shù)等屬性,建立反饋機(jī)制,提升更有可能被人們搜索的圖像的搜索優(yōu)先級(jí),建立一套由人臉識(shí)別與前饋神經(jīng)網(wǎng)絡(luò)相結(jié)合的網(wǎng)絡(luò)爬蟲結(jié)果處理機(jī)制,在搜索時(shí)不斷優(yōu)化搜索體驗(yàn),最終框架見(jiàn)圖 5。
圖5 基于臉部特征關(guān)鍵點(diǎn)檢測(cè)算法的網(wǎng)絡(luò)爬蟲篩選器框架Fig. 5 Crawler filter framework based on facial feature key point detection algorithm
在線搜索時(shí),圖像特征碼的生成,采用的是基于臉部關(guān)鍵點(diǎn)檢測(cè)算法提取特征,而離線數(shù)據(jù)庫(kù)的建立也需要以同樣的方法生成特征碼,所以,本文在爬蟲的反饋端也使用基于臉部關(guān)鍵點(diǎn)檢測(cè)算法,便于數(shù)據(jù)統(tǒng)一。當(dāng)圖像被搜索或訪問(wèn)后,將該圖像傳入基于臉部關(guān)鍵點(diǎn)檢測(cè)算法的網(wǎng)絡(luò)進(jìn)行分析,然后輸出人臉特征標(biāo)簽信息,如性別、年齡、顏值(基于臉部關(guān)鍵點(diǎn)檢測(cè)算法內(nèi)置屬性)等信息,將這些信息反饋至爬蟲模塊,通過(guò)自學(xué)習(xí)網(wǎng)絡(luò)修改參數(shù),提升經(jīng)常被搜索圖片的優(yōu)先級(jí),從而提升搜索者的搜索體驗(yàn)。
人臉識(shí)別技術(shù)的本質(zhì),就是對(duì)一張人臉圖像進(jìn)行量化分析后,與其他經(jīng)過(guò)量化分析后的人臉圖像作比較。但在實(shí)際應(yīng)用過(guò)程中,數(shù)據(jù)庫(kù)中很少存儲(chǔ)只含有單個(gè)面部的照片,即使是單人照、證件照等照片,在進(jìn)行人臉識(shí)別時(shí)仍需要進(jìn)行人臉切割、人臉對(duì)齊等必要步驟。在互聯(lián)網(wǎng)中存在海量的人臉圖片,大部分圖片含有多張人臉,而且同一人的單人臉圖片中的面部圖像,并不一定比含有多張人臉的圖片中的面部圖像更具有代表性。傳統(tǒng)的人臉識(shí)別技術(shù)采用的是逐一對(duì)比的方法,將該技術(shù)應(yīng)用到含有多張人臉圖像的圖片中,能夠擴(kuò)大人臉識(shí)別技術(shù)的使用范圍。
對(duì)于搜索端,當(dāng)截取到的圖片含有多張人臉圖像時(shí),先用算法對(duì)該圖片進(jìn)行判斷,將所有人臉圖像進(jìn)行定位后,基于人臉中心位置與人臉特征位置進(jìn)行切割,再通過(guò)人工選擇其中一張人臉圖像,并將其傳入搜索網(wǎng)絡(luò)。而對(duì)于人臉數(shù)據(jù)庫(kù)端,在獲得一張網(wǎng)絡(luò)圖片后,建立與圖片相對(duì)應(yīng)的人臉圖像空間,對(duì)圖片中每個(gè)人臉都進(jìn)行檢測(cè)提取,并存儲(chǔ)到對(duì)應(yīng)圖片空間中的每張人臉圖像都對(duì)應(yīng)著人臉空間的一個(gè)元素。將傳入搜索網(wǎng)絡(luò)的人臉圖像與數(shù)據(jù)庫(kù)中人臉圖像逐一比對(duì),比對(duì)完成后,通過(guò)人臉圖像所在的人臉空間找到對(duì)應(yīng)圖片,爬取圖片的統(tǒng)一資源定位符進(jìn)行結(jié)果返回。通過(guò)這種方法,無(wú)論匹配圖片或者搜索圖片有一張還是多張人臉圖像,系統(tǒng)都能夠給出有效的結(jié)果返回。
為了驗(yàn)證優(yōu)化過(guò)后系統(tǒng)框架的運(yùn)行效率,本節(jié)將利用一些數(shù)據(jù)集對(duì)框架中的算法進(jìn)行評(píng)估。
現(xiàn)有的人臉檢測(cè)器大多數(shù)基于卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN),在進(jìn)行大量的人臉識(shí)別時(shí),往往需要 GPU 進(jìn)行加速,基于 CPU 運(yùn)行時(shí)很難保證實(shí)時(shí)采樣識(shí)別。本文訓(xùn)練所得到的人臉檢測(cè)模型的大小僅有 6.8 MB,比如今動(dòng)輒數(shù)百兆的 CNN 模型小了數(shù)十倍,系統(tǒng)效率得到很大提升。本測(cè)試基于英特爾 Z170 芯片組,CPU 為 Intel Core i7-7700,GPU 為 NVIDIA GTX1060,測(cè)試對(duì)象為一張 314 人的合照,測(cè)試方法包含兩個(gè)開(kāi)源人臉識(shí)別算法:基于 OpenCV的 haar cascades[26]與精細(xì)搜索中使用到的基于臉部關(guān)鍵點(diǎn)檢測(cè)算法,4 個(gè)低分辨率下的快速人臉檢測(cè)算法:DSFD、S3FD、基于 PyramidBox[27]方法的 PyramidBox++[28]、LFFD[29],基于 GPU的運(yùn)行效率測(cè)試結(jié)果如表 2 所示。由表 2 可知,本文所使用的方法,除了對(duì)基于臉部關(guān)鍵點(diǎn)檢測(cè)算法有巨大的效率優(yōu)勢(shì)外,在相同數(shù)據(jù)集下,與騰訊旗下優(yōu)圖團(tuán)隊(duì)的 DFSD 方法和在 WIDER FACE 下取得了較好成績(jī)的 S3FD、LFFD 方法,以及 PyramidBox++方法相比,本文算法的單張圖片人臉識(shí)別效率是最高的,即便是高分辨率的多人臉圖像,平均一秒鐘也能處理 30 張左右。此外,本實(shí)驗(yàn)還對(duì)一些含有較少人臉的圖像進(jìn)行了測(cè)試,本文算法的效率均排在首位,由于篇幅限制,本文只選取了最能驗(yàn)證算法效率的含有314 張人臉圖像的圖片測(cè)試結(jié)果進(jìn)行展示。
表2 基于 GTX 1060 的運(yùn)行效率Table 2 Running efficiency based on GTX 1060
對(duì)于 CPU,采集網(wǎng)絡(luò)攝像頭視頻流進(jìn)行測(cè)試,針對(duì)上述人臉識(shí)別算法過(guò)于緩慢以至于難以使用,本文采用 MNN(Mobile Neural Network)[30]、NCNN(Tencent/ncnn: ncnn is a highperformance neural network inference framework optimized for the mobile platform(github.com))、ONNX(Open Neural Network Exchange)[31]等方法生成模型,和原生模型進(jìn)行比對(duì),對(duì)比結(jié)果如表 3所示。由表 3 可知,本文算法具有最高的效率,較原本算法提升了 31.2%。CPU 下運(yùn)行幀數(shù)可達(dá)30 幀,具有較好的實(shí)時(shí)性。對(duì)于多人臉任務(wù)的處理(測(cè)試環(huán)境為 10~30 人的各種復(fù)雜場(chǎng)景),CPU 下的 6 幀顯然已經(jīng)無(wú)法滿足要求。在實(shí)際應(yīng)用中,采用 GPU 并行處理數(shù)據(jù),在大多數(shù)場(chǎng)景下能夠穩(wěn)定處理 30 幀的畫面,具體數(shù)據(jù)及內(nèi)容見(jiàn)第 4.3 節(jié)。
表3 CPU 下的算法表現(xiàn)Table 3 Algorithm performance under CPU
通用影視人臉數(shù)據(jù)集中,共包含 15 844 張圖像,218 位人物。本實(shí)驗(yàn)選取其中 30 位人物的1 000 張人臉圖像作為測(cè)試,仍然使用 GPU 測(cè)試中的 7 種算法,并引入 MTCNN 作為比較。此外,還在測(cè)試中加入 200 張假人臉,測(cè)試結(jié)果如表 4 所示。由表 4 可知,本文算法對(duì)于人臉數(shù)據(jù)有著較好的辨別效果。結(jié)合第 4.1 節(jié)表 2 的實(shí)驗(yàn)結(jié)果可知,本文算法在對(duì)比 DSFD、S3FD 算法幾十分之一的處理時(shí)間中,達(dá)到了 97.8% 的識(shí)別率,兼具了實(shí)時(shí)性與準(zhǔn)確性。對(duì)于假陽(yáng)性樣本的抗干擾性,與 MTCNN 等基于深度神經(jīng)網(wǎng)絡(luò)方法相比,本文算法仍具有較好的抗干擾能力,但是仍然難以超越基于臉部關(guān)鍵點(diǎn)檢測(cè)方法。此外,通過(guò)對(duì)表 4 分析可得,與未被改進(jìn)的算法相比,基于深度特征混合聚類的人臉識(shí)別算法有更高的人臉識(shí)別率以及更低的假陽(yáng)性率。
表4 各算法在自制數(shù)據(jù)集下識(shí)別率與假陽(yáng)性率Table 4 Recognition rate and false positive rate of each algorithm under self-made data set
人臉關(guān)鍵點(diǎn)檢測(cè)算法與爬蟲算法,非本文研究核心重點(diǎn),本文僅將其技術(shù)運(yùn)用于系統(tǒng)之中,故不進(jìn)行單獨(dú)的算法性能測(cè)試,兩算法的具體原理見(jiàn)第 3 節(jié)。
本文選取 10 個(gè)影視、直播的視頻流,將每個(gè)視頻播放 5 min,并對(duì)系統(tǒng)的綜合效能進(jìn)行了測(cè)試。為了保持系統(tǒng)穩(wěn)定性,將其處理幀數(shù)限制在 30 幀/s,每 15 s 進(jìn)行一次幀率采樣,采樣結(jié)果如圖 6 所示。由圖 6 可知,除視頻 5、視頻 6 幀率嚴(yán)重波動(dòng),視頻 3 開(kāi)始時(shí)出現(xiàn)幀率波動(dòng)外,其余視頻僅有小幅波動(dòng),且視頻 7~10 沒(méi)有出現(xiàn)任何波動(dòng)。通過(guò)對(duì)視頻內(nèi)容分析可知,視頻 5 與視頻 6 都是大型戰(zhàn)爭(zhēng)題材影視劇,含有近千人沖鋒陷陣的場(chǎng)面,視頻 3 則是在視頻開(kāi)始時(shí)有數(shù)百人上朝的多人場(chǎng)景,這表明系統(tǒng)在大多數(shù)情況下能夠每秒穩(wěn)定處理 30 張畫面,即使出現(xiàn)人數(shù)較多的場(chǎng)景,系統(tǒng)最低幀率仍然不小于 10 幀。但此時(shí) CPU 負(fù)載達(dá)到了 80%,為了降低系統(tǒng)資源的占用,在實(shí)際使用過(guò)程中將幀數(shù)調(diào)至 5(此處的幀數(shù)代表著系統(tǒng)每秒中處理圖像的數(shù)量,并不影響視頻的播放幀數(shù),直播、電視劇播放幀數(shù)仍維持在 60 幀/s,電影一般為 24 幀/s,運(yùn)行系統(tǒng)時(shí)并不會(huì)產(chǎn)生播放卡頓的現(xiàn)象),此幀率在滿足人們對(duì)于實(shí)時(shí)搜索需求的同時(shí),對(duì)系統(tǒng)資源的消耗較低。
圖6 系統(tǒng)綜合性能測(cè)試表Fig. 6 System comprehensive performance test table
在此基礎(chǔ)上,本文還對(duì)大數(shù)據(jù)下人臉數(shù)據(jù)搜索能效進(jìn)行了測(cè)試,在依靠基于臉部關(guān)鍵點(diǎn)檢測(cè)算法的網(wǎng)絡(luò)爬蟲篩選器所生成的 54 000 張名人圖片的數(shù)據(jù)集中(數(shù)據(jù)集采用 MySQL 進(jìn)行存儲(chǔ)),搜索結(jié)果的平均用時(shí)為 283 ms(此處并沒(méi)有統(tǒng)計(jì)爬蟲下載時(shí)間,由于網(wǎng)絡(luò)延時(shí)等因素,在 50 M下載帶寬下,總使用時(shí)間在 0.5~1.5 s 范圍內(nèi)不等)。該實(shí)驗(yàn)結(jié)果充分表明了本框架的可用性,且具有一定的研究?jī)r(jià)值。
本文基于現(xiàn)有視頻、直播中人物信息獲取難的問(wèn)題,針對(duì)現(xiàn)有技術(shù)使用范圍受限、信息有限、難以兼顧實(shí)時(shí)性與準(zhǔn)確性等問(wèn)題,提出了一種全新的基于特征混合聚類和關(guān)鍵點(diǎn)檢測(cè)的智能人臉?biāo)阉骺蚣?。該框架的關(guān)鍵在于將人臉實(shí)時(shí)檢測(cè)與大數(shù)據(jù)下人臉的精準(zhǔn)搜索分割開(kāi)來(lái),使用更輕量化、高效率的基于多尺度深度特征混合聚類的人臉檢測(cè)算法進(jìn)行實(shí)時(shí)人臉檢測(cè),極大程度上減少了系統(tǒng)負(fù)擔(dān)。在人臉?biāo)阉麟A段,使用實(shí)時(shí)性與準(zhǔn)確性并重的基于臉部關(guān)鍵點(diǎn)檢測(cè)算法,使系統(tǒng)總體具有良好的實(shí)時(shí)性與精準(zhǔn)性,且對(duì)系統(tǒng)資源的占用較低。同時(shí),本文還提出了基于多尺度深度特征混合聚類的人臉檢測(cè)算法,方法運(yùn)用Softmax與center loss函數(shù)聯(lián)合進(jìn)行訓(xùn)練,并加入回歸修正函數(shù),使得最終結(jié)果既減少了類內(nèi)間距,又增加了類間間距。本文算法不僅提高了人臉識(shí)別的準(zhǔn)確率,還將許多非人臉的噪聲干擾剝離了聚類中心,一定程度上減輕了系統(tǒng)的負(fù)擔(dān)。通過(guò)基于多尺度深度特征混合聚類的人臉檢測(cè)算法的實(shí)驗(yàn)結(jié)果可以發(fā)現(xiàn),與同類型前沿的方法相比,本文算法具有更高的效率,同時(shí)也達(dá)到了同類型算法中較高的識(shí)別率及對(duì)假陽(yáng)性樣本較高的抵抗性。本文還將人臉識(shí)別技術(shù)應(yīng)用在了網(wǎng)絡(luò)爬蟲中,使得搜索結(jié)果高度相關(guān)。
此外,本文提供了兩個(gè)可供研究的數(shù)據(jù)集,一個(gè)主要包含視頻、直播等場(chǎng)景下的視頻截圖中的人臉,可以通用于各種基于深度學(xué)習(xí)的人臉?biāo)惴ǖ哪P瓦M(jìn)行訓(xùn)練;另一個(gè)為較高清晰度的明星、網(wǎng)絡(luò)名人人臉數(shù)據(jù)集,其包含合照、獨(dú)照、劇照等,可用于人臉精細(xì)化特征提取。
本文基于深度神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)了視頻、直播等媒體數(shù)據(jù)下的實(shí)時(shí)人臉?biāo)阉骺蚣埽⒔?jīng)過(guò)充分的數(shù)據(jù)測(cè)試,結(jié)果表明,本系統(tǒng)在兼顧實(shí)時(shí)性與準(zhǔn)確性的同時(shí),還具有良好的環(huán)境兼容性與穩(wěn)定性,為大數(shù)據(jù)下實(shí)時(shí)人臉?biāo)阉飨到y(tǒng)的應(yīng)用打下了堅(jiān)實(shí)的基礎(chǔ)。