吳梓棟,吳巖,董壽洋,陳澤森
(杭州電子科技大學(xué) 電子信息學(xué)院,浙江杭州,310018)
當(dāng)今時(shí)代,傳統(tǒng)的安全防治措施以及監(jiān)控系統(tǒng)已經(jīng)越來越難滿足現(xiàn)實(shí)生活的需求。加強(qiáng)甚至創(chuàng)新監(jiān)控系統(tǒng)逐漸成為一種強(qiáng)有力的趨勢(shì)。為了追蹤嫌疑犯或是在學(xué)校、商場(chǎng)、游樂園等地追尋走丟的行人,可借助人工智能技術(shù),將行人重識(shí)別與智能分析系統(tǒng)相結(jié)合,從而為信息化建設(shè)智能監(jiān)控系統(tǒng)提供切實(shí)可行的整體解決方案[1]。
行人重識(shí)別分析技術(shù)結(jié)合并運(yùn)用了視頻流處理技術(shù)、圖像處理技術(shù)來處理原始的監(jiān)控視頻,用戶可以首先在系統(tǒng)中預(yù)設(shè)好目標(biāo)人物的圖像照片,重識(shí)別系統(tǒng)會(huì)對(duì)原始監(jiān)控視頻中的人物進(jìn)行截取、比對(duì)分析和抉擇,最后將檢測(cè)出來的相似度較高的嫌疑人的照片和位置信息發(fā)送到系統(tǒng)中給監(jiān)控人員再確認(rèn)、處理,代替監(jiān)控人員完成對(duì)大量監(jiān)控視頻的進(jìn)行實(shí)時(shí)監(jiān)控和對(duì)可疑人物的定位與逮捕工作。通過行人重識(shí)別系統(tǒng)的視頻分析手段,不僅監(jiān)控人員可以從大量重復(fù)的、持續(xù)的監(jiān)控視頻的監(jiān)督和查看工作中解脫開來,只需要專注于各類事件人員的抓捕和預(yù)警即可,而且也真正做到了監(jiān)控系統(tǒng)的實(shí)時(shí)性、可靠性,極大提高了安全保障。
本系統(tǒng)主要包含行人查找模塊,服務(wù)器端視頻流輸入和截取模塊,跨分辨率重識(shí)別模塊三大部分。行人查找模塊主要實(shí)現(xiàn)對(duì)視頻流中的行人和其他物體進(jìn)行框定和定位,用于輸送到后續(xù)模塊中;服務(wù)器端視頻流輸入和截取模塊主要用人工在服務(wù)器端負(fù)責(zé)對(duì)監(jiān)控視頻進(jìn)行目標(biāo)人物圖片的抓取,保存以及展示等功能;跨分辨率重識(shí)別模塊屬于智能模塊,主要完成對(duì)數(shù)據(jù)庫行人的搜索與比對(duì)功能,并對(duì)匹配成功的目標(biāo)人物進(jìn)行細(xì)節(jié)展示和追蹤。該智能監(jiān)控系統(tǒng)主要功能是對(duì)特定行人實(shí)現(xiàn)跨攝像頭重識(shí)別匹配。出于監(jiān)控視頻的方便性考慮,該系統(tǒng)設(shè)置了網(wǎng)頁端可以進(jìn)入系統(tǒng)。用戶通過該系統(tǒng)能夠?qū)崿F(xiàn)對(duì)多個(gè)不同區(qū)域進(jìn)行監(jiān)控視頻傳輸;用戶從監(jiān)控視頻中截取需要進(jìn)行搜索的特定行人,系統(tǒng)自動(dòng)保存后,用戶對(duì)需要搜索的目標(biāo)行人進(jìn)行確認(rèn)并展示,因此需要實(shí)現(xiàn)視頻截取模塊;截取人目標(biāo)行人之后,將從監(jiān)控視頻中截取的目標(biāo)行人與數(shù)據(jù)庫中的行人進(jìn)行搜索匹配,因此需要實(shí)現(xiàn)跨分辨率行人重識(shí)別模塊;最后將搜索到匹配的目標(biāo)人物進(jìn)行細(xì)節(jié)展示,發(fā)送回服務(wù)器端給安保人員處理。
圖1 行人追蹤系統(tǒng)運(yùn)行過程
圖2 為YOLOv3 的網(wǎng)絡(luò)框架圖。YOLOv3 僅使用卷積層,使其成為一個(gè)全卷積網(wǎng)絡(luò)。包含53 個(gè)卷積層,每個(gè)后面跟隨著Batch Normalization 層和LeakyReLU 層。沒有池化層,使用步幅為2 的卷積層替代池化層進(jìn)行特征圖的降采樣過程,這樣可以有效阻止由于池化層導(dǎo)致的低層級(jí)特征的損失[2]。為了識(shí)別更多的物體,尤其小物體,YOLOv3 使用三個(gè)不同尺度進(jìn)行預(yù)測(cè)(不僅僅只使用13X13)。三個(gè)不同尺度步幅分別是32、16 和8。這意味著,輸入416X416圖像,檢測(cè)尺度分別為13X13、26X26 和52X52。由于本項(xiàng)目的目標(biāo)是部署在日常生活的場(chǎng)景中,所以推薦采用COCO 數(shù)據(jù)集,這個(gè)數(shù)據(jù)集以Sceneunderstanding 為目標(biāo),主要從復(fù)雜的日常場(chǎng)景中截取,圖像中的目標(biāo)通過精確的Segmentation 進(jìn)行位置的標(biāo)定[3]。圖像包括91 類目標(biāo),328,000 影像和2,500,000 個(gè)Label。目前為止有語義分割的最大數(shù)據(jù)集,提供的類別有80 類,有超過33 萬張圖片,其中20 萬張有標(biāo)注,整個(gè)數(shù)據(jù)集中個(gè)體的數(shù)目超過150 萬個(gè)[4]??梢詽M足部署在不同場(chǎng)景的需求,提高項(xiàng)目的適用性和準(zhǔn)確性。通過先對(duì)視頻處理,按照幀率對(duì)視頻截取為圖片,然后將圖片集合為向量送入到Y(jié)OLOv3 網(wǎng)絡(luò)中進(jìn)行處理,YOLOv3 會(huì)輸出標(biāo)定人物的坐標(biāo),圖片和索引,將其送入到后續(xù)的重識(shí)別網(wǎng)絡(luò)中。重識(shí)別網(wǎng)絡(luò)識(shí)別結(jié)束后返回索引,YOLOv3 再根據(jù)每張圖片返回的索引進(jìn)行特定人物標(biāo)定,最后將標(biāo)定好的圖片按照幀率合成視頻[5]。
圖2 YOLOv3 網(wǎng)絡(luò)結(jié)構(gòu)圖
圖3 改進(jìn)的Resnet50 網(wǎng)絡(luò)結(jié)構(gòu)圖
對(duì)圖片中人物進(jìn)行特征提取,Resnet50 殘差網(wǎng)絡(luò)可以有效地對(duì)復(fù)雜圖片進(jìn)行特征提取同時(shí)相對(duì)于其它網(wǎng)絡(luò)抑制了梯度爆炸和梯度消失[6]。在訓(xùn)練時(shí),針對(duì)不同訓(xùn)練集,圖片分類數(shù)量也各不相同,Resnet50 網(wǎng)絡(luò)做對(duì)應(yīng)的修改[7],將Resnet50 網(wǎng)絡(luò)最后一層刪除,加入具有512 個(gè)神經(jīng)元的全連接層,緊接著加入與分類圖片個(gè)數(shù)相同的神經(jīng)元數(shù)目的全連接層,用來進(jìn)行網(wǎng)絡(luò)訓(xùn)練,本文采用DukeMTMC-ReID數(shù)據(jù)集,所以在具有512 個(gè)神經(jīng)元的全連接層后加入有702 個(gè)神經(jīng)元的全連接層進(jìn)行網(wǎng)絡(luò)訓(xùn)練。利用Momentum為0.9 的梯度下降法進(jìn)行參數(shù)更新[8],為了提高訓(xùn)練網(wǎng)絡(luò)效果,學(xué)習(xí)率以每40 輪進(jìn)行一次衰減,損失函數(shù)使用交叉熵函數(shù),對(duì)數(shù)據(jù)集重復(fù)訓(xùn)練60 次可以使網(wǎng)絡(luò)得到較好的分類效果[9]。訓(xùn)練完成以后,將網(wǎng)絡(luò)最后具有702 個(gè)神經(jīng)元的全連接層刪除,當(dāng)圖片經(jīng)過該網(wǎng)絡(luò)以后可以得到一個(gè)大小為512 的特征向量,通過對(duì)比不同圖片之間特征向量的距離,以此判斷是否屬于同一目標(biāo)人物[10]。
圖4 為服務(wù)器端設(shè)計(jì),主程序部分首先是服務(wù)端的啟動(dòng),這里用到了后端服務(wù)器框架Django,用該框架構(gòu)建出前端界面以及后端模塊。其中,前端模塊主要是網(wǎng)頁界面的設(shè)置,根據(jù)項(xiàng)目需要在網(wǎng)頁上設(shè)置用戶提交圖片和視頻的窗口以及相應(yīng)的按鍵。后端部分則是將用戶提交上來的圖片和視頻進(jìn)行相應(yīng)的存儲(chǔ)并遞交到行人重識(shí)別的項(xiàng)目程序入口,調(diào)度之前訓(xùn)練好的模型文件,進(jìn)行視頻流中目標(biāo)行人的查找與框定,最后將運(yùn)行結(jié)果返回,用戶可在網(wǎng)頁上點(diǎn)擊相應(yīng)的鏈接下載最終的運(yùn)行結(jié)果文件。在服務(wù)器啟動(dòng)之前需進(jìn)行一系列的環(huán)境配置,構(gòu)建Python 虛擬環(huán)境并安裝所需的軟件包后,在該虛擬環(huán)境中啟動(dòng)Django 服務(wù)器,即可實(shí)現(xiàn)在本地運(yùn)行。將該服務(wù)器設(shè)置為運(yùn)行于本機(jī)IP:127.0.0.1 的8000 端口下,若服務(wù)器端開啟失敗,則執(zhí)行自重啟過程。服務(wù)器順利開啟之后,運(yùn)用Cpolar 內(nèi)網(wǎng)穿透工具將本機(jī)IP:127.0.0.1 的8000 端口通過Http 協(xié)議映射至外網(wǎng),生成可動(dòng)態(tài)訪問的域名。服務(wù)器端需要做到與用戶進(jìn)行交互,我們針對(duì)用戶需要進(jìn)行相應(yīng)的設(shè)計(jì)。服務(wù)器端做到的功能有,用戶提交圖片和視頻及相應(yīng)的網(wǎng)頁端預(yù)覽,用戶能夠通過下載掛載在網(wǎng)頁端的處理結(jié)果文件來查看相應(yīng)的處理結(jié)果視頻。
圖4 服務(wù)器設(shè)計(jì)結(jié)構(gòu)圖
服務(wù)器端先開啟Django 服務(wù)器,即可將事先編寫好的網(wǎng)頁內(nèi)容在本地展現(xiàn)。由于需要做到能夠外網(wǎng)訪問處于內(nèi)網(wǎng)中的服務(wù)器,我們借助Cpolar 這個(gè)內(nèi)網(wǎng)穿透工具將本地地址映射至外網(wǎng),生成可動(dòng)態(tài)訪問的域名,用戶在得知該域名之后,通過瀏覽器訪問該網(wǎng)址,就進(jìn)入REID 在線識(shí)別驗(yàn)證平臺(tái)。在線網(wǎng)頁端操作如圖5 所示,在首頁點(diǎn)擊START 按鈕進(jìn)入正式識(shí)別平臺(tái),點(diǎn)擊選擇視頻和選擇圖片按鈕,分別將待查找視頻和目標(biāo)人物圖片上傳。點(diǎn)擊開始識(shí)別,服務(wù)器端就調(diào)用識(shí)別程序,逐步進(jìn)行視頻分幀存儲(chǔ),YOLOv3 網(wǎng)絡(luò)分割出圖像中的所有人物,ResNet50 網(wǎng)絡(luò)將分割出的人物圖片逐一與目標(biāo)人物圖片進(jìn)行對(duì)比,找出其中最為相似人物并在圖片中用綠框框出并標(biāo)注。服務(wù)器端處理時(shí)間根據(jù)視頻大小來確定的,由于我們服務(wù)器采用了多進(jìn)程以及多線程處理,處理時(shí)間較短。對(duì)于比較短小的視頻,一般處理用時(shí)能夠控制在1 分鐘以內(nèi)。處理結(jié)束后會(huì)產(chǎn)生一張張的處理結(jié)果圖片,最后將這些圖片合成一個(gè)完整的視頻并掛載在網(wǎng)頁上,用戶點(diǎn)擊下載按鈕就能將處理好的結(jié)果視頻下載到本地。
圖5 在線網(wǎng)頁端操作圖
經(jīng)過多次實(shí)驗(yàn),我們發(fā)現(xiàn)我們的網(wǎng)絡(luò)模型識(shí)別準(zhǔn)確率較高,行人在不被遮擋的情況下基本上都能夠準(zhǔn)確識(shí)別出來,即使在有遮擋的情況下,50%以內(nèi)被遮擋也都是能夠被準(zhǔn)確識(shí)別出來的,處理結(jié)果如圖6 所示。
圖6 處理結(jié)果圖
在對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練的過程中,我們采用了DukeMTMCreID 數(shù)據(jù)集進(jìn)行訓(xùn)練,最后計(jì)算得到網(wǎng)絡(luò)模型的Rank 和準(zhǔn)確度,其中Rank1 為79.4%,Rank5 為89.3%,Rank10為92%,mAP 為62.6%,結(jié)果如圖7 所示。模型的損失函數(shù)隨著模型的迭代進(jìn)行而逐漸降低,如圖8 所示。這些數(shù)據(jù)表明模型在數(shù)據(jù)集中有較好的表現(xiàn),能進(jìn)一步在實(shí)際場(chǎng)景中應(yīng)用和訓(xùn)練。
圖7 模型準(zhǔn)確度得分結(jié)果圖
本系統(tǒng)已實(shí)現(xiàn)用戶可以隨時(shí)通過登錄該系統(tǒng)網(wǎng)頁實(shí)現(xiàn)對(duì)多個(gè)不同區(qū)域進(jìn)行監(jiān)控視頻傳輸和特定人物搜索;用戶從監(jiān)控視頻中截取需要進(jìn)行搜索的特定行人上傳到系統(tǒng),系統(tǒng)自動(dòng)保存后,用戶再對(duì)需要搜索的目標(biāo)行人進(jìn)行確認(rèn)并展示,因此需要實(shí)現(xiàn)視頻截取模塊;截取了目標(biāo)行人之后,系統(tǒng)將從監(jiān)控視頻中依次截取的目標(biāo)行人與用戶上傳圖片中的行人進(jìn)行搜索匹配相似度,最后將搜索到匹配相似度最高的目標(biāo)人物進(jìn)行細(xì)節(jié)展示在網(wǎng)頁上。系統(tǒng)將所有幀中找到的目標(biāo)人物框定后合成視頻再輸出給用戶,供用戶下載。本系統(tǒng)已經(jīng)能實(shí)現(xiàn)在人流多場(chǎng)景中高效準(zhǔn)確找到目標(biāo)人物。
圖8 損失函數(shù)結(jié)果圖