999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Storm的大容量實時人臉檢索系統①

2019-03-11 06:02:20王晨曦范春曉吳岳辛
計算機系統應用 2019年3期

王晨曦,范春曉,吳岳辛

(北京郵電大學 電子工程學院,北京 100876)

圖像檢索是指根據目標圖像的內容,通過一種自動分類算法來判斷目標圖像的相應類別.在圖像檢索的發展中,主要經歷了三個階段:基于元數據的圖像檢索、基于文本標注的圖像檢索和基于內容的圖像檢索[1],人臉檢索則可以歸類于基于內容的圖像檢索.與人臉識別不同的是,人臉檢索需要實現目標照片的人臉檢測、特征提取,并在大規模人像庫中進行匹配.在大數據環境下,這種相似人臉檢索技術,在安防、軍事以及娛樂領域有著廣泛的應用價值,已成為人臉圖像研究中的一個熱點[2].

現有的視頻監控系統雖然已經遍布社會生活的各個角落,但是只實現了單純的視頻存儲功能,監控視頻信息的分析仍然依靠人力因而不具備實時性.因此,在視頻監控的同時抓拍和記錄高清晰度的人臉圖像并提供識別、比對、報警、查詢等功能,是新一代視頻監控追求的目標,也是實際應用中迫切需要的功能[3].而隨著國家天網工程的部署,公共安全領域能夠獲取的人臉圖像急速增長,使得現有人臉圖像檢索技術在處理海量圖像數據的過程中,在實時性、擴展性、并發性和準確性等方面面臨嚴峻的考驗[4].

人臉檢索系統在海關對入關人員的身份排查、大人流量下的安檢工作等應用場景下對檢索的實時性有極高的要求,而傳統的基于單節點架構的人臉圖像檢索系統已經不能滿足人們對于檢索性能的要求,因此本文采用分布式技術并設計了一種大容量實時人臉檢索系統,將人臉識別技術與視頻監控融合,通過Storm分布式平臺實現基于實時人臉抓拍照片的識別、存儲、檢索、報警、查詢等功能,解決了現有人臉圖像檢索技術在處理海量圖像數據的過程中,在實時性、擴展性上的需求.

1 相關研究

隨著圖像數據的快速增長,許多研究人員都對大規模圖像數據的分布式處理進行了研究,這類研究主要分為三類:對分布式圖像檢索系統的研究、對分布式圖像特征提取算法及檢索算法的研究以及對各類分布式平臺圖像處理性能的研究.

文獻[5]通過Hadoop平臺進行大規模圖像數據的特征提取與檢索,將提取到的特征值存入HBase中,但通過MapReduce進行圖像檢索時,每開啟一次任務都需要重新從HBase讀取一次圖像特征值,增加了不必要的I/O開銷.文獻[6]則是將提取的圖像特征以文件形式存儲于Hadoop的分布式文件系統HDFS中,通過MapReduce進行圖像檢索,考慮到大量的小文件會造成在計算時會產生過多的Map和Reduce任務,極大延遲計算完成時間,提出了將多幅圖像的特征小文件合并為后存儲于HDFS中,以實現大規模圖像的快速存儲和讀取,但每次的檢索仍然存在大量的I/O開銷.文獻[7-10]也都基于Hadoop平臺針對圖像特征提取效率、圖像檢索效率進行了研究,但都沒有對圖像檢索的實時性進行考慮.文獻[11]則對比了Hadoop、Spark以及Storm三者在大規模圖像檢索中的性能,其實驗結果表明,Storm在圖像檢索性能上,比Hadoop與Spark有更低的延遲.

基于上述研究,本文設計了一種大容量實時人臉檢索系統.在HBase中建立注冊庫用于存儲大容量人物信息,包括人臉照片、人臉特征值以及人物基本信息.通過Storm分布式平臺實現基于實時抓拍照片的實時存儲與檢索.

2 系統設計

本文設計的人臉檢索系統主要適用于海關對入關人員的身份排查、大人流量下的安檢工作等應用場景下,系統需要實現對攝像機人臉抓拍照片的實時存儲與檢索,并提供報警、查詢等功能,同時當攝像機數量增加時,單位時間內各個攝像機所產生的人臉抓拍照片的總量也會線性增長,系統需要有良好的擴展性以應對負載的增加.傳統的基于單節點架構的人臉圖像檢索系統在性能上已經無法滿足設計需求,因此本文采用分布式技術設計了基于Storm的大容量實時人臉檢索系統.Storm的流式處理方式使得人臉抓拍照片能夠源源不斷的進行實時存儲與檢索,而通過集群中計算節點的增加以及Storm中實時抓拍照片存儲與檢索任務的并行運行則可以滿足攝像機數量增加時對系統處理能力的需求.

圖1 基于Storm的大容量實時人臉檢索系統總體框架

本文設計的基于Storm的大容量實時人臉檢索系統整體設計框圖如圖1所示,主要包含:監控終端、HDFS抓拍照片緩存、Storm集群、持久化、Web服務器.

(1)監控終端:系統采用的監控終端為海康深眸系列的智能人臉筒型網絡攝像機DS-2CD7627FWD/FLZ,該攝像機支持人臉抓拍功能,支持對運動人臉進行檢測、跟蹤、抓拍、評分,并自動篩選輸出最優人臉圖.通過配置攝像機的參數,將攝像機的實時人臉抓拍照片存儲到HDFS中對應的文件夾下做緩存.

(2)HDFS 抓拍照片緩存:HDFS 中的文件夾與攝像機一一對應,攝像機的人臉抓拍照片會自動保存到其對應的文件夾下,同時這些文件夾也是Storm集群中運行的實時抓拍照片存儲與檢索任務的數據源.

(3)Storm集群:Storm集群中每臺攝像機均有唯一的實時抓拍照片存儲與檢索任務與之對應.這些任務在集群中并行運行,一方面從HDFS中讀取攝像機的抓拍照片,進行特征提取后以抓拍時間為行健存儲到HBase中對應攝像機的抓拍庫中;另一方面將抓拍照片的特征值與用戶導入的注冊庫中的大容量人臉特征值進行相似度計算,篩選出相似度超過閾值的檢索結果,并將檢索結果反饋給Web服務器.用戶在向集群提交任務時需指定該任務所對應攝像機在HDFS中的緩存文件夾的路徑作為數據源,并指定需要進行檢索的注冊庫.

(4)持久化:大容量、非結構化的人臉數據采用HBase進行存儲,而實時人臉檢索結果以及其它結構化數據則采用MySQL進行存儲.實時抓拍照片存儲與檢索任務從數據源獲取的抓拍照片經處理后會存儲到HBase中攝像機所對應的抓拍庫中,檢索結果則會反饋給Web服務器并經過格式處理后存入MySQL以供用戶查詢.

(5)Web服務器:為用戶提供實時抓拍照片存儲與檢索任務的開啟、實時人臉檢索結果的持久化、報警、報警記錄查詢、攝像機抓拍記錄查詢等功能,并為各項功能提供可視化界面.

3 大容量實時人臉檢索系統的實現

3.1 人臉數據存儲

系統中的人臉數據包括兩個部分,第一部分數據需要在系統部署時導入,這部分數據包含了人物的人臉照片、人臉特征值以及基本信息,其中人物照片數量不做限制,即用戶可以針對同一人物導入其不同年齡、不同表情、不同角度的人臉照片,該部分數據為非結構化數據.第二部分是系統開始運行后各個攝像機的實時人臉抓拍數據,這部分數據為結構化數據,在存儲時只包含了抓拍時間、抓拍照片以及人臉特征值三個字段,但單臺相機每年抓拍的數據量能達到1.5 TB.為區分兩部分數據,第一部分的數據稱為注冊庫,第二部分的數據稱為抓拍庫.

為解決大容量、非結構化人臉數據的存儲,系統采用開源的、面向列的分布式存儲系統HBase[12]作為存儲人臉數據的數據庫.圖2中給出了存儲非結構化人臉數據的注冊庫在HBase中的存儲結構.

圖2 注冊庫在 HBase 中的存儲結構

3.2 人臉識別算法

SeetaFace是一個開源的C++人臉識別引擎,可以不依賴第三方庫函數并在CPU上進行運行,它包含搭建一套全自動人臉識別系統所需的三個核心模塊:SeetaFace Detection(人臉檢測模塊),SeetaFace Alignment(面部特征點定位模塊)和SeetaFace Identification(人臉特征提取與比對模塊)[13].SeetaFace所采用的人臉特征值為VIPLFaceNet FC2 層的 2048 個結點的輸出,即長度為2048的float型數組,特征值對比采用了cosine計算相似度.假設V(I)為人臉I的特征向量,V(J)為人臉J的特征向量,則人臉I與人臉J的相似度計算如下:

JNI (Java Native Interface)是 Java 平臺的一部分,它提供了若干的API以實現Java和其他語言的通信.本文中Storm集群上運行的任務由Java語言編寫并在Java虛擬機上運行,而SeetaFace由C++編寫,為實現在Storm任務中調用SeetaFace中的算法,本文在SeetaFace的基礎上進行了二次開發.test_face_verification.cpp是SeetaFace當中的一個測試文件,它演示了一次完整的人臉相似度計算流程:照片加載、人臉檢測、人臉特征值提取以及人臉相似度計算.本文基于該測試文件,將人臉檢測、人臉特征值提取、人臉相似度計算三個模塊的代碼分離出來,各自編寫為可以單獨調用的新函數,并新增了一對多人臉相似度計算函數,在Linux平臺上編譯生成動態鏈接庫,最終Storm任務通過JNI實現對以上二次開發算法的調用.此外,經二次開發后,照片加載不再是由OpenCV中的Mat類從指定的路徑下加載,而是修改為Mat類直接加載JNI調用時由Java語言傳參過來的照片數據.

通過JNI調用SeetaFace中的各類算法,降低了Storm任務與SeetaFace的耦合性.本文設計的大容量實時人臉檢索系統,其實時性由分布式計算來實現,但人臉檢索的準確性由系統中所采用的人臉識別算法決定.降低Storm任務與人臉識別算法的耦合性,便于后續在系統更新時,選擇更優的人臉識別算法進行替換,即對于識別性能更好的人臉識別算法,其只需實現相應的JNI接口后編譯生成動態連接口,Storm任務即可通過JNI來調用新的算法來進行識別、檢索.

3.3 實時抓拍照片存儲與檢索任務

Storm是一個開源、分布式、高容錯的實時大數據處理系統.Storm實現了流式計算,彌補了Hadoop批處理所不能滿足的實時性要求.Storm經常用于在實時分析、在線機器學習、持續計算、分布式遠程調用和ETL等領域[14].

系統中的實時抓拍照片存儲與檢索任務在Storm分布式平臺上運行,圖3給出了實時抓拍照片存儲與檢索任務的拓撲結構.任務主要包括6個部分:1)照片抓取,2)人臉檢測,3)特征提取,4)人臉檢索,5)結果統計,6)存抓拍庫.任務在提交到 Storm 上運行時,會預先讀取注冊庫中的特征值到內存中,在任務運行過程中,抓拍照片的特征值會與預先讀取到內存中的特征值進行相似度計算,從而減少頻繁的從HBase中讀取所產生的I/O開銷.

圖3 實時抓拍照片存儲與檢索任務

4 實驗與結果分析

4.1 實驗環境

本文提出的實時人臉檢索系統的計算集群部署在三臺服務器上,單臺服務器的硬件配置為:兩個Intel(R)Xeon(R)X5650 @ 2.67 GHz CPU、16 GB 內存,操作系統為CentOS 7,集群的軟件版本在表1中給出.

表1 集群軟件版本

本文使用的人臉數據集為 LFW ( Labeled Face in Wild)數據集[15].LFW 數據集包含了 5749 名人物,共計13233張照片.為避免無效人臉影響實驗結果,本文通過SeetaFace的人臉檢測算法與特征提取算法對LFW數據集進行篩選,最終篩選得到13220張有效人臉.

4.2 SeetaFace性能

本文在SeetaFace的基礎上進行了二次開發,主要針對SeetaFace Identification部分樣例代碼進行修改,將人臉檢測算法、特征提取算法從樣例代碼中提取并編寫為新的接口,同時增加了一對多人臉相似度計算算法.經實驗環境下測試,本文修改后的算法通過JNI調用時單張照片人臉檢測速度為19.3 ms、特征提取速度為286.6 ms.圖4給出了一對多人臉相似度計算算法性能測試結果.

圖4 一對多人臉相似度計算算法性能測試結果

從圖中可以看出,在實驗環境下,通過Java計算相似度比通過JNI調用C++算法有更高的效率.

4.3 加速比

加速比定義為同一個任務在單機系統和分布式系統中運行消耗的時間的比率,用來衡量分布式系統的性能和效果[16].Storm任務的運行分為本地模式和遠程模式,其中本地模式是指Storm任務運行在本地機器的單一JVM上,而遠程模式是指Storm任務被提交到集群當中,經任務調度后運行在不同節點的多個JVM上,此時Storm任務中的各個線程是并行運行的,且Storm任務中各模塊并行度的改變會影響任務的計算效率.本文以實時抓拍照片存儲與檢索任務在Storm本地模式下且任務中各模塊并行度為1時運行的耗時為單機系統下的耗時,而實時抓拍照片存儲與檢索任務在Storm遠程模式下運行的耗時即為分布式系統下的耗時.

在實驗中,本文保持HBase中注冊庫的大小為50 000張人臉照片不變.在本地模式下且任務中各模塊并行度為1時運行實時抓拍照片存儲與檢索任務測得平均耗時為9866.9 ms.此后在遠程模式下逐漸增大實時抓拍照片存儲與檢索任務中人臉檢索模塊的并行度并測得不同并行度下實時抓拍照片存儲與檢索任務的耗時,最終獲得了圖5所示的不同并行度下實時抓拍照片存儲與檢索任務用時與加速比.

圖5 實時抓拍照片存儲與檢索任務用時與加速比

從圖5中可以看出,Storm任務運行在遠程模式會有更好的實時性,同時隨著人臉檢索模塊的并行度的提升加速比會有顯著的增長,但由于在整個實時抓拍照片存儲與檢索任務中,人臉檢測與特征值提取也會占據大量的耗時,因此加速比與人臉檢索模塊的并行度并不成正比.當人臉檢索模塊耗時隨著該模塊并行度的提高而接近甚至低于人臉檢測與特征值提取的耗時時,加速比的增長逐漸趨于平緩.此外,隨著人臉檢索模塊并行度的逐漸增大,Storm任務中線程間通信的耗時也會增加,這也是加速比的增長逐漸趨于平緩的原因之一,而當線程間通信耗時在整個任務耗時中的占比足夠大時最終加速比會出現回落.實驗中當并行度為9時,加速比達到最大值21.05.

5 結論與展望

本文所設計并實現的大容量實時人臉系統將人臉識別技術與視頻監控融合,實現了視頻監控數據的實時處理與反饋,減輕了后期人力調取歷史圖像數據的工作量.通過多組實驗表明,該系統可以有效利用Storm平臺的并行計算能力,具有良好的實時性和擴展性.

本文的人臉檢索仍采用了窮舉搜索方式,即對給定的一張人臉圖像,需要將其其特征描述向量和注冊庫中每張人臉圖像的特征依次進行相似度匹配計算.窮舉搜索的時間復雜度為O(n),會隨著注冊庫數據規模的增大而線性增加,所以下一步的研究方向包括:1)注冊庫基于特征值的索引建立;2)基于索引的人臉檢索.

主站蜘蛛池模板: 日日拍夜夜操| 亚洲视频免| 色噜噜综合网| a亚洲天堂| 操操操综合网| 天堂成人在线视频| 一本色道久久88亚洲综合| www亚洲天堂| 国产在线八区| 一级毛片免费观看不卡视频| 国产精品伦视频观看免费| 秋霞午夜国产精品成人片| 亚洲国产精品成人久久综合影院 | 久久国产精品波多野结衣| 国产精品永久久久久| 美女高潮全身流白浆福利区| 天天综合天天综合| 黄色不卡视频| 亚洲国产中文在线二区三区免| 国内精品免费| 色综合综合网| 成人字幕网视频在线观看| 青青操视频免费观看| 色噜噜狠狠狠综合曰曰曰| 一级片一区| 国产又黄又硬又粗| 秋霞一区二区三区| 91亚洲视频下载| 亚洲一本大道在线| 激情爆乳一区二区| 国产在线精品99一区不卡| 国产导航在线| 国产无码制服丝袜| 国产在线视频导航| 国产伦片中文免费观看| 国产网站黄| 亚洲国产精品成人久久综合影院| 亚洲AV无码乱码在线观看代蜜桃| 欧美日本在线| 日本福利视频网站| 国产精品美女自慰喷水| 色135综合网| 无码视频国产精品一区二区| 自拍欧美亚洲| 视频二区国产精品职场同事| 国产成人综合在线观看| 国产99欧美精品久久精品久久| 欧美一级专区免费大片| 亚洲第一极品精品无码| 亚洲精品卡2卡3卡4卡5卡区| 欧美日韩v| 中文纯内无码H| 亚洲黄网在线| 国产1区2区在线观看| 婷婷成人综合| 亚洲国产清纯| 一级爆乳无码av| 国产在线观看一区精品| 欧美一级99在线观看国产| 久久精品国产在热久久2019| 影音先锋亚洲无码| 91综合色区亚洲熟妇p| 性激烈欧美三级在线播放| 色综合中文字幕| 午夜福利免费视频| 青青青国产免费线在| 亚洲一级毛片| 5555国产在线观看| www.youjizz.com久久| 五月激情婷婷综合| 久久综合色播五月男人的天堂| …亚洲 欧洲 另类 春色| 99成人在线观看| 91精品国产自产在线观看| 99视频在线精品免费观看6| 欧美日韩另类国产| 国产人妖视频一区在线观看| 激情综合婷婷丁香五月尤物| 99ri精品视频在线观看播放| 欧美笫一页| 福利一区在线| 欧美日韩在线观看一区二区三区|