吳松偉
摘 ?要: 基于人臉識(shí)別技術(shù)的智能視頻監(jiān)控系統(tǒng)是安防領(lǐng)域的研究熱點(diǎn)。針對(duì)現(xiàn)有安防產(chǎn)品使用場景受限,部署和使用不夠靈活,性能受限等問題,設(shè)計(jì)并實(shí)現(xiàn)了一套基于人臉識(shí)別技術(shù)的智能視頻監(jiān)控系統(tǒng)。文章介紹了智能視頻監(jiān)控系統(tǒng)總體框架和算法流程的設(shè)計(jì);分析了系統(tǒng)核心算法——人臉檢測和人臉識(shí)別,做出了有針對(duì)性的優(yōu)化設(shè)計(jì);闡述了系統(tǒng)的實(shí)現(xiàn)方案。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)在人臉檢測、人臉識(shí)別等的各類指標(biāo)上均具有很強(qiáng)的競爭力,能滿足具有前后門的會(huì)堂、劇院、倉庫等大型場所的安防需求。
關(guān)鍵詞: 視頻監(jiān)控; 人臉檢測; 人臉識(shí)別; 人臉屬性
中圖分類號(hào):TP391.4 ? ? ? ? ?文獻(xiàn)標(biāo)志碼:A ? ? 文章編號(hào):1006-8228(2019)11-62-05
Abstract: The intelligent video surveillance system based on face recognition is a hot research issue in the security field. Aiming at the problems of existing security products, which have limited use scenarios, inflexible deployment and use, and limited performance, an intelligent video surveillance system using face recognition technology is designed and implemented. This paper introduces the design of overall framework and algorithm flow of intelligent video surveillance system, analyses the core algorithm of the system, the face detection and face recognition, makes targeted optimization design, and expounds the implementation scheme of the system. The experimental results show that the proposed system has strong competitiveness in various aspects, such as face detection and face recognition, and meets the security requirements of large venues such as warehouses, theaters, and halls with front and rear doors.
Key words: video monitoring; face detection; face recognition; face attribute
0 引言
智能視頻監(jiān)控系統(tǒng)無需監(jiān)控人員持續(xù)地盯著屏幕,減輕了工作人員的負(fù)擔(dān),并具有主動(dòng)性和實(shí)時(shí)性的優(yōu)勢。智能視頻監(jiān)控系統(tǒng)的主要職責(zé)是利用計(jì)算機(jī)視覺技術(shù)從視頻圖像中檢測、跟蹤、識(shí)別人臉,并對(duì)該主體的行為進(jìn)行理解與描述[1]。
目前,國內(nèi)外智能人臉視頻監(jiān)控技術(shù)在公共安防領(lǐng)域已經(jīng)得到了廣泛的應(yīng)用。在國際上,比較有代表性的有美國Identix公司研制的ARGUS人臉監(jiān)控系統(tǒng),以及為英國警方開發(fā)的Premier Electronics人臉識(shí)別系統(tǒng)等。在國內(nèi),實(shí)力較強(qiáng)的相關(guān)企業(yè)有上海的銀晨,香港的鈦極,以及??怠h邦等安防公司。
現(xiàn)有的基于人臉的智能視頻監(jiān)控系統(tǒng)已經(jīng)有了比較成熟的產(chǎn)品,但是還存在以下的問題。一方面,現(xiàn)有的產(chǎn)品使用場景在設(shè)計(jì)時(shí)已經(jīng)做了提前預(yù)設(shè),部署和使用不夠靈活,無法有效地貼近安全需求和靈活地應(yīng)用于具體的實(shí)際場景。另一方面,人臉的細(xì)節(jié)結(jié)構(gòu)十分復(fù)雜多變,人臉監(jiān)控的應(yīng)用環(huán)境也有光照、姿態(tài)、背景等的不同,這對(duì)人臉檢測、識(shí)別算法提出了嚴(yán)苛的要求。
為了解決以上問題,針對(duì)具有前后門的倉庫、劇院、會(huì)堂等大型場所的安防需求,本文設(shè)計(jì)并實(shí)現(xiàn)了一整套基于人臉識(shí)別技術(shù)的智能視頻監(jiān)控系統(tǒng),對(duì)從系統(tǒng)架構(gòu)的設(shè)計(jì)到具體算法的實(shí)現(xiàn)都做了比較詳盡的闡述,同時(shí)針對(duì)具體實(shí)現(xiàn)過程中遇到的問題進(jìn)行了分析,并提出了相應(yīng)的解決方案。
1 人臉識(shí)別監(jiān)控系統(tǒng)總體設(shè)計(jì)
1.1 系統(tǒng)總體架構(gòu)設(shè)計(jì)
本系統(tǒng)由二路人臉卡口IPC網(wǎng)絡(luò)攝像機(jī)、智能算法服務(wù)器、Web前端服務(wù)器、大數(shù)據(jù)服務(wù)器等硬件以及運(yùn)行在這些服務(wù)器平臺(tái)上的算法及軟件組成??傮w的系統(tǒng)架構(gòu)如圖1所示。
該系統(tǒng)總體采用模塊化設(shè)計(jì),不同的服務(wù)器上部署有不同功能的軟件模塊。算法服務(wù)器提供可供調(diào)用的智能算法庫,算法調(diào)度模塊調(diào)用算法并保證算法運(yùn)行的實(shí)時(shí)穩(wěn)定,拉推流模塊負(fù)責(zé)拉取前端IPC的視頻流,以及將處理完成的視頻流推送至總體調(diào)度模塊??傮w調(diào)度模塊負(fù)責(zé)數(shù)據(jù)的傳輸與調(diào)度工作,Web頁面模塊負(fù)責(zé)產(chǎn)品前端展示部分,此兩者均可運(yùn)行在Web服務(wù)器上。同時(shí),在大數(shù)據(jù)服務(wù)器上加入分布式計(jì)算與分布式存儲(chǔ)的內(nèi)容,分布式計(jì)算模塊負(fù)責(zé)人臉檢索過程中的快速比對(duì)計(jì)算,分布式存儲(chǔ)模塊負(fù)責(zé)注冊(cè)數(shù)據(jù)庫與歷史信息數(shù)據(jù)庫的維護(hù)。
智能人臉監(jiān)控系統(tǒng)設(shè)計(jì)的原則是盡量保證各模塊的低耦合,并為各模塊預(yù)留較多的擴(kuò)展接口,以使整個(gè)系統(tǒng)具備良好的可擴(kuò)展性,在提出針對(duì)性需求設(shè)計(jì)開發(fā)時(shí),能夠快速的利用現(xiàn)有的框架進(jìn)行算法改良以及功能的擴(kuò)充,保障可持續(xù)發(fā)展。
在以上的系統(tǒng)框架下,數(shù)據(jù)在各模塊之間流動(dòng),實(shí)現(xiàn)了整個(gè)智能人臉監(jiān)控系統(tǒng)的功能??傮w的數(shù)據(jù)流向如下:2路人臉卡口IPC采集前端視頻流,智能算法服務(wù)器拉取視頻流并進(jìn)行人臉?biāo)惴ㄌ幚?,算法處理后原始視頻流加處理結(jié)果流至Web及調(diào)度服務(wù)器中的總體調(diào)度模塊進(jìn)行調(diào)度;最后,總體調(diào)度模塊對(duì)Web展示和大數(shù)據(jù)計(jì)算及存儲(chǔ)進(jìn)行調(diào)度,完成算法處理結(jié)果的存儲(chǔ)、計(jì)算、展示。
1.2 算法總體流程設(shè)計(jì)
人臉識(shí)別與其他生物特征識(shí)別技術(shù)相似,應(yīng)用過程的基本流程分為離線注冊(cè)和在線識(shí)別。人臉識(shí)別系統(tǒng)通過離線注冊(cè)存儲(chǔ)大量不同人臉及其身份信息,在系統(tǒng)運(yùn)行時(shí)將待識(shí)別人臉與庫中人臉做比對(duì),找到匹配人臉,識(shí)別人員身份。
本項(xiàng)目系統(tǒng)算法流程圖如圖2所示,人臉注冊(cè)的具體實(shí)現(xiàn)步驟為:先利用成像設(shè)備采集注冊(cè)用的人臉圖像;再利用人臉檢測技術(shù)從圖像中定位并分割出人臉圖像;最后利用特征提取技術(shù)抽取能夠表征人臉圖像的特征向量,形成特征模板并存儲(chǔ)至數(shù)據(jù)庫中。人臉識(shí)別的基本流程(特征抽取過程)與人臉注冊(cè)相似,包括人臉檢測、人臉跟蹤、人臉質(zhì)量評(píng)測、人臉優(yōu)選、人臉特征提取,不同的是,在識(shí)別過程中,提取到的人臉特征向量不再存儲(chǔ),而是與注冊(cè)時(shí)提取的人臉特征向量進(jìn)行比對(duì),最終返回比對(duì)結(jié)果。人臉識(shí)別過程經(jīng)歷了從人體物理空間到人臉局部圖像空間,再到人臉特征數(shù)據(jù)空間,最后到類別空間的轉(zhuǎn)換。在這個(gè)轉(zhuǎn)換過程中,人臉檢測、人臉優(yōu)選、特征提取分別起到了關(guān)鍵作用,這也是人臉識(shí)別中三項(xiàng)最為關(guān)鍵的技術(shù),這三部分的實(shí)現(xiàn)優(yōu)劣直接關(guān)系到人臉識(shí)別精度。
算法總體的業(yè)務(wù)邏輯如下:當(dāng)程序啟動(dòng)后,先根據(jù)相機(jī)ID創(chuàng)建進(jìn)程,然后初始化四個(gè)主要功能模塊:視頻拉推流功能模塊,以臉?biāo)涯樄δ苣K,人臉注冊(cè)功能模塊,人臉檢測及識(shí)別模塊。算法框架中除視頻拉推流模塊外,其余三個(gè)模塊互斥。因此,模塊初始化完成后,根據(jù)條件啟用相應(yīng)的功能,程序運(yùn)行邏輯如下:判斷是否啟動(dòng)以臉?biāo)涯樄δ?。若是,則暫停人臉注冊(cè)和人臉檢測功能模塊,啟動(dòng)以臉?biāo)涯樄δ苣K,待任務(wù)完成后返回。人臉注冊(cè)和人臉檢測及識(shí)別功能以此類推。
2 人臉識(shí)別算法原理與設(shè)計(jì)
智能人臉視頻監(jiān)控系統(tǒng)的算法庫包括若干算法,以支撐整個(gè)系統(tǒng)功能的實(shí)現(xiàn),這些算法分別是人臉檢測、人臉跟蹤、人臉質(zhì)量評(píng)測、人臉優(yōu)選、人臉特征提取、人臉識(shí)別等,本節(jié)針對(duì)其中最重要的兩個(gè)算法——人臉檢測與人臉識(shí)別,分別進(jìn)行分析與闡述,并針對(duì)本文系統(tǒng)進(jìn)行了針對(duì)性的設(shè)計(jì)。
2.1 人臉檢測算法
所謂人臉檢測,就是給定一張圖像,找到其中是否存在一個(gè)或多個(gè)人臉,并返回人臉置信度和人臉框位置。它是從待識(shí)別圖像上獲取有用信息的第一步,是實(shí)現(xiàn)實(shí)時(shí)、高精度人臉識(shí)別系統(tǒng)的前提和基礎(chǔ)。在智能人臉視頻監(jiān)控應(yīng)用場景下,人臉檢測的難點(diǎn)在于應(yīng)用場景中人臉的多尺度、多角度、部分遮擋、光照不均等的不可約束狀態(tài)和環(huán)境,這為人臉檢測的實(shí)時(shí)性、魯棒性、準(zhǔn)確性帶來不小的挑戰(zhàn)。本系統(tǒng)采用一種由快速消化卷積層和多尺度卷積層構(gòu)成的即輕量又強(qiáng)大的網(wǎng)絡(luò)結(jié)構(gòu),結(jié)合類SSD的特征分層預(yù)測技術(shù)和多尺度多角度訓(xùn)練方法,采用錨點(diǎn)密度均衡策略,實(shí)現(xiàn)端到端、多尺度、多角度、部分遮擋等非約束條件下的實(shí)時(shí)人臉檢測。
圖3為項(xiàng)目中采用的人臉檢測算法架構(gòu),它主要由快速消化卷積層和多尺度卷積層構(gòu)成。在網(wǎng)絡(luò)前期,使用快速消化卷積層快速縮小特征圖大小。如圖4所示,conv1,pooling1,conv2和pooling2的步長分別為4,2,2和2,使特征圖大小迅速縮小為原來尺寸的1/32;卷積核太大速度就慢,太小覆蓋信息又不足,權(quán)衡之后將conv1,pooling1,conv2和pooling2卷積核大小分別設(shè)為7*7,3*3,5*5,3*3;同時(shí),激活函數(shù)使用CRelu來保證輸出維度不變的情況下,減少卷積核數(shù)量,如圖4(a)。在網(wǎng)絡(luò)后期,使用多尺度卷積層更好地檢測不同尺度人臉,主要設(shè)計(jì)原則是,類似于SSD在網(wǎng)絡(luò)不同特征層進(jìn)行檢測,采用Inception模塊進(jìn)一步豐富感受野,如圖4(b)。SSD和Faster R-CNN等方法對(duì)小目標(biāo)檢測效果欠佳[3-4],主要是因?yàn)樾∧繕?biāo)對(duì)應(yīng)的錨點(diǎn)少,訓(xùn)練不足,為了解決這個(gè)問題,采用錨點(diǎn)密度均衡策略,對(duì)密度不足的錨點(diǎn)框以其中心進(jìn)行偏移加倍,增加小人臉的錨點(diǎn)數(shù)量,提高小人臉的召回率。
快速消化卷積層可以讓算法實(shí)現(xiàn)實(shí)時(shí),多尺度卷積層則在不同層上豐富感受野,以便處理不同尺度的人臉;此外,錨點(diǎn)密度均衡策略可以讓不同類型的錨點(diǎn)具有相同的密度,可以顯著提升小臉的召回率。由此,本項(xiàng)目采用的人臉檢測算法可以在CPU上處理速度達(dá)到25FPS,在NVIDIATitanX上的處理速度達(dá)到125FPS,而且處理時(shí)間不會(huì)因人臉的數(shù)量發(fā)生改變。
2.2 人臉識(shí)別算法
人臉識(shí)別往往是1:N比對(duì)(N>=1),即判斷待識(shí)別人臉為注冊(cè)庫中的哪個(gè)人,為此需要事先存儲(chǔ)不同人臉特征及其身份信息,系統(tǒng)運(yùn)行時(shí)將待識(shí)別人臉與庫中人臉進(jìn)行特征比對(duì),找出匹配人臉[5]。其理論基礎(chǔ)是不同人臉由不同的特征組成,同一個(gè)人在不同照片里的臉,在特征空間中非常接近,不同的人臉在特征空間中相距較遠(yuǎn),因此進(jìn)行人臉識(shí)別的關(guān)鍵是提取出泛化能力強(qiáng)的特征。但是,在人員監(jiān)控應(yīng)用場景下,受到光照較差、遮擋、形變、側(cè)臉等諸多非約束條件的影響,神經(jīng)網(wǎng)絡(luò)很難提取出與“標(biāo)準(zhǔn)臉”相似的特征,異常臉在特征空間中落到錯(cuò)誤的位置,導(dǎo)致識(shí)別錯(cuò)誤。影響人臉識(shí)別性能的因素包括網(wǎng)絡(luò)模型的設(shè)計(jì)、訓(xùn)練數(shù)據(jù)的規(guī)模和損失函數(shù)的設(shè)計(jì),本項(xiàng)目采用清洗后的大規(guī)模人臉數(shù)據(jù)集VggFace2[6],結(jié)合基于角度的損失函數(shù),訓(xùn)練Resnet50[7],實(shí)現(xiàn)準(zhǔn)確率高、魯棒性好的實(shí)時(shí)人臉識(shí)別。
在監(jiān)督學(xué)習(xí)中,損失函數(shù)是用來監(jiān)督模型的預(yù)測值與真實(shí)值的不一致程度,損失函數(shù)越小,模型的魯棒性越好,模型與訓(xùn)練數(shù)據(jù)分布的擬合程度越好。在人臉識(shí)別中,損失函數(shù)設(shè)計(jì)的最終目的是要使人臉分布實(shí)現(xiàn)類內(nèi)距離足夠小,類間距離足夠大。本項(xiàng)目中通過將特征和權(quán)值進(jìn)行歸一化,在Cosine內(nèi)部加入常量,實(shí)現(xiàn)一種基于角度的損失函數(shù),并通過該損失函數(shù)訓(xùn)練網(wǎng)絡(luò)。
3 系統(tǒng)實(shí)現(xiàn)與問題分析
在系統(tǒng)具體實(shí)現(xiàn)時(shí),分模塊進(jìn)行針對(duì)性的開發(fā)。在人臉檢測和識(shí)別時(shí),首先創(chuàng)建視頻拉流線程,通過RTSP協(xié)議從IPC拉取H.264編碼的視頻流并對(duì)得到的視頻流進(jìn)行解碼,將視頻圖像緩存到隊(duì)列中,然后創(chuàng)建4個(gè)線程,分別用于獲取圖像,提取人臉特征并傳輸,人臉檢測,傳輸疊加結(jié)果圖像。其中,傳輸線程通過RabbitMQ消息隊(duì)列將Base64編碼的結(jié)果和圖片發(fā)送給大數(shù)據(jù)和Web模塊;在人臉注冊(cè)時(shí),從后端接收Base64編碼的圖片,對(duì)圖片進(jìn)行Base64解碼,并調(diào)用人臉特征提取算法提取人臉特征向量,以作為后續(xù)人臉識(shí)別比對(duì)的依據(jù),將人臉特征向量發(fā)送至后端存入注冊(cè)數(shù)據(jù)庫;在以臉?biāo)涯槙r(shí),待搜索圖片經(jīng)過人臉檢測和人臉特征提取操作后,得到表征人臉的特征向量,通過與存儲(chǔ)于大數(shù)據(jù)服務(wù)器中人臉的特征比對(duì),得到比對(duì)的結(jié)果,最終將以臉?biāo)涯樀慕Y(jié)果在前端展示。
系統(tǒng)具體實(shí)現(xiàn)時(shí),遇到了一些技術(shù)問題,本文針對(duì)這些問題進(jìn)行了分析,找出合理的解決方案。
⑴ 人臉檢測框與人臉圖像不同步問題
目前人臉檢測算法模塊耗時(shí)較長,會(huì)出現(xiàn)視頻卡頓的現(xiàn)象。實(shí)際測試中發(fā)現(xiàn)這是由于將人臉檢測與檢測結(jié)果視頻疊加兩個(gè)功能放在同一個(gè)線程中順序執(zhí)行造成的,為此,在算法框架設(shè)計(jì)中將它們放在兩個(gè)不同的線程中并發(fā)執(zhí)行,解決了該問題。
此外,人臉檢測結(jié)果的更新速率無法與視頻幀更新速率相匹配,造成了人臉檢測結(jié)果滯后的問題。具體表現(xiàn)為,當(dāng)人體運(yùn)動(dòng)時(shí),Web界面展示的結(jié)果會(huì)出現(xiàn)“框追人”的現(xiàn)象,如圖5所示。預(yù)期的人臉框位置應(yīng)該為實(shí)線框的位置,而實(shí)際的人臉框位置為虛線框位置。針對(duì)上述問題,在檢測結(jié)果視頻疊加線程中加入視頻幀緩存,分別取不同的視頻幀用于人臉檢測和檢測結(jié)果視頻疊加,以錯(cuò)開處理時(shí)間,達(dá)到緩解人臉與檢測框不匹配的效果。
⑵ 算法指標(biāo)難提升問題
本系統(tǒng)中,算法指標(biāo)提升上主要面臨兩個(gè)難點(diǎn):①人員監(jiān)控場景下,人臉遮擋、光照不均、人臉尺度大小不一,導(dǎo)致人臉召回率低;②人臉姿態(tài)、人臉遮擋、光照條件不佳、形變、側(cè)臉,造成人臉識(shí)別率低。
針對(duì)第一個(gè)問題,對(duì)訓(xùn)練樣本進(jìn)行剪切、縮放、旋轉(zhuǎn)等樣本增廣操作,通過在不同特征層進(jìn)行預(yù)測,以錨點(diǎn)均衡策略來提高小目標(biāo)的召回率;針對(duì)第二個(gè)問題,在Resnet50結(jié)合基于角度的損失函數(shù)的網(wǎng)絡(luò)結(jié)構(gòu)上訓(xùn)練大規(guī)模人臉識(shí)別數(shù)據(jù)集VggFace2。通過上述方法有效提高了召回率和識(shí)別精度。
4 實(shí)驗(yàn)與分析
人臉檢測模型在NVIDIATitan X的前向時(shí)間僅為8ms,加上圖像預(yù)處理和檢測結(jié)果解析,人臉檢測需耗時(shí)30ms左右,滿足實(shí)時(shí)性要求。標(biāo)注實(shí)際場景圖像約300張,測試得AP為90.57%,滿足預(yù)設(shè)指標(biāo)。圖6為實(shí)測檢測結(jié)果。由圖6可見,人臉檢測效果良好,并且即便在人臉大面積遮擋的情況下,仍然能夠有效地檢測到人臉。
人臉識(shí)別模型輸入圖像大小為112*112,識(shí)別模型NVIDIATitan X上的前向時(shí)間為18ms,滿足實(shí)時(shí)性要求。實(shí)際采集人臉圖像并標(biāo)注35人的70張圖像,在有2400多張干擾圖像的情況下,人臉識(shí)別準(zhǔn)確率大于95%,滿足預(yù)設(shè)指標(biāo)。
其他一些測試結(jié)果包括:人臉屬性準(zhǔn)確率>90%,滿足項(xiàng)目指標(biāo),滿足實(shí)時(shí)性;實(shí)際測試框架穩(wěn)定運(yùn)行72小時(shí)以上。以上的結(jié)果都表明本系統(tǒng)具有一定的先進(jìn)性。
5 結(jié)束語
本文設(shè)計(jì)并實(shí)現(xiàn)了一整套基于人臉識(shí)別技術(shù)的智能視頻監(jiān)控系統(tǒng)。首先,設(shè)計(jì)了智能人臉視頻監(jiān)控系統(tǒng)的總體框架和算法流程,主要由運(yùn)行在三個(gè)服務(wù)器上的六個(gè)功能模塊實(shí)現(xiàn);然后,分析了系統(tǒng)核心算法——人臉檢測和人臉識(shí)別,設(shè)計(jì)了由快速消化卷積層和多尺度卷積層構(gòu)成的人臉檢測神經(jīng)網(wǎng)絡(luò),并基于Softmax為人臉識(shí)別改進(jìn)得到了新的損失函數(shù),通過Resnet50來訓(xùn)練大規(guī)模人臉數(shù)據(jù)集VggFace2,實(shí)時(shí)準(zhǔn)確地識(shí)別人臉;最后,闡述了系統(tǒng)的實(shí)現(xiàn)方案,并對(duì)實(shí)現(xiàn)過程中遇到的召回率和準(zhǔn)確率低的問題進(jìn)行了分析,給出了合理的解決方案。
參考文獻(xiàn)(References):
[1] 嚴(yán)杰.支持人臉檢測的智能視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 重慶大學(xué).
[2] 李苗在,谷海紅.人臉識(shí)別研究綜述[J].電腦知識(shí)與技術(shù):學(xué)術(shù)交流,2011,07(8X):5992-5994
[3] 汪濟(jì)民.基于卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測和性別識(shí)別研究[D]. 2015.
[4] Liu W,Anguelov D,Erhan D,et al.SSD: Single Shot MultiBox Detector[C].European Conference on Computer Vision. 2016.
[5] Ren S,He K,Girshick R,et al.Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks.[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2017, 39(6):1137-1149.
[6] Cao Q,Li S,Xie W,et al.VGGFace2:A Dataset for Recognising Faces across Pose and Age[C].2018.
[7] Akiba T,Suzuki S,F(xiàn)ukuda K.Extremely Large Minibatch SGD:Training ResNet-50 on ImageNet in 15 Minutes[J]. 2017.