羅天 柴真琦 李漢秋
關(guān)鍵詞:神經(jīng)網(wǎng)絡(luò);目標(biāo)跟蹤;智慧樓宇
實(shí)時(shí)人流量統(tǒng)計(jì)信息在智慧樓宇場景中具有重要意義,一方面可以與樓宇空調(diào)、照明等系統(tǒng)進(jìn)行聯(lián)動(dòng),根據(jù)特定區(qū)域的當(dāng)前人數(shù)、人流量等信息,對空調(diào)的溫度、風(fēng)量等參數(shù)進(jìn)行實(shí)時(shí)調(diào)整,在保證舒適環(huán)境溫度的同時(shí)降低能耗成本,實(shí)現(xiàn)節(jié)能降耗,提升能源利用率的目的;另一方面可以減少物業(yè)管理人員工作量,實(shí)現(xiàn)減員增效。
口罩佩戴檢測系統(tǒng)具備重要意義,在避免檢測人員和他人接觸感染的風(fēng)險(xiǎn)的同時(shí),還能夠提高檢測的效率??捎糜跈C(jī)場、地鐵、車站等人員流動(dòng)密集場所的監(jiān)控系統(tǒng),檢測人們佩戴口罩的情況,也可用于小區(qū)人臉門禁、企業(yè)人臉打卡此類場景,識(shí)別進(jìn)出人員是否按規(guī)范佩戴口罩。傳統(tǒng)的口罩佩戴檢測系統(tǒng)在出入口位置,可以識(shí)別到訪客口罩佩戴情況。一旦進(jìn)入園區(qū)或室內(nèi),就無法進(jìn)行檢測。本文擬開發(fā)一種便捷的口罩佩戴識(shí)別算法,可方便部署到園區(qū)內(nèi)或室內(nèi)的攝像頭,進(jìn)行全方位無死角的保護(hù)。
1背景
隨著計(jì)算機(jī)視覺技術(shù)的發(fā)展,低成本視覺采集機(jī)器逐漸發(fā)展成熟,可以便捷地獲取得到大量的視頻數(shù)據(jù),為深度學(xué)習(xí)在機(jī)器視覺中的應(yīng)用提供了數(shù)據(jù)支撐。深度學(xué)習(xí)在計(jì)算機(jī)視覺的各個(gè)領(lǐng)域一直都有很廣泛的應(yīng)用,例如圖像分類、目標(biāo)檢測、語義分割等。隨著大數(shù)據(jù)的不斷發(fā)展以及計(jì)算機(jī)能力的不斷提高,近年來深度學(xué)習(xí)也逐漸開始被應(yīng)用于目標(biāo)跟蹤領(lǐng)域。傳統(tǒng)的目標(biāo)跟蹤方法普遍采用概率密度方法、人工設(shè)計(jì)特征等方法對圖像進(jìn)行檢測,從而在視頻的每一幀中定位出感興趣的運(yùn)動(dòng)目標(biāo)。例如使用手工設(shè)計(jì)的方向梯度直方圖特征進(jìn)行跟蹤的方法,這種方法不依賴先驗(yàn)知識(shí),因此很難適應(yīng)復(fù)雜的環(huán)境變化,魯棒性和精度都有待提高。相反,基于深度學(xué)習(xí)的方法可以自動(dòng)從大數(shù)據(jù)中學(xué)習(xí)得到有效的特征表示,因此跟蹤效果較好。
本文提出了基于Yolo算法的人流統(tǒng)計(jì)算法,通過采用Yolo框架檢測視頻流中的人流信息,再通過目標(biāo)追蹤算法實(shí)時(shí)檢測人物目標(biāo)的流動(dòng)方向,實(shí)時(shí)統(tǒng)計(jì)特定場景的門、過道等處的人流量信息。鑒于當(dāng)前社會(huì)要求人們出行、工作時(shí)務(wù)必佩戴好口罩,本文還提出了利用計(jì)算機(jī)視覺來進(jìn)行口罩佩戴檢測的一種思路,在避免檢測人員和他人接觸感染的同時(shí)還能提高檢測效率。人流統(tǒng)計(jì)算法與口罩佩戴檢測算法均考慮部署到邊緣側(cè)設(shè)備,故在保證準(zhǔn)確度的同時(shí)亦將計(jì)算速度納入了考慮范圍。
2人流量實(shí)時(shí)統(tǒng)計(jì)模型
本文采用基于Yolov4算法進(jìn)行人流量實(shí)時(shí)統(tǒng)計(jì),主要由目標(biāo)檢測與目標(biāo)追蹤兩部分組成。目標(biāo)檢測部分確定對象在圖像中的位置,包括Haar cascades、HOG與SVM的組合,以及基于深度學(xué)習(xí)的目標(biāo)檢測器,例如FasterR-CNN,Yolo和SSD等;目標(biāo)跟蹤部分獲取目標(biāo)檢測得到的對象在圖像中的坐標(biāo)位置,并賦予每個(gè)對象一個(gè)唯一的id,根據(jù)圖像梯度或光流等屬性追蹤目標(biāo)在視頻流中的運(yùn)動(dòng)并預(yù)測其在下一幀中的運(yùn)動(dòng)方向。目標(biāo)跟蹤算法包括MedianFlow、MOSSE、GO-TURN、核化相關(guān)過濾器和判別相關(guān)過濾器等。
本文在目標(biāo)檢測部分采用Yolov4,該算法在平均精度和速度上,較Yolov3版本有很大提升。從本質(zhì)上,Yolov4篩選了一些從Yolov3發(fā)布至今,被用在各式各樣檢測器上能夠提高檢測精度的tricks,并以Yolov4為基礎(chǔ)進(jìn)行改進(jìn)的目標(biāo)檢測模型。Yolov4有五個(gè)基本組件:CBM是Yolov4網(wǎng)絡(luò)結(jié)構(gòu)中的最小組件,由Conv、Bn、Mish激活函數(shù)三者組成;CBL由Cony、Bn、Leaky Relu激活函數(shù)三者組成;Res unit借鑒了Resnet網(wǎng)絡(luò)中的殘差結(jié)構(gòu),讓網(wǎng)絡(luò)可以構(gòu)建的更深;CSPX借鑒了CSPNet網(wǎng)絡(luò)結(jié)構(gòu),由三個(gè)卷積層和x個(gè)Res unint模塊Concate組成;SPP采用了1×1,5×5,9x9,13×13的最大池化的方式,進(jìn)行多尺度融合。作為one-stage系列算法,Yolov4在具備出色檢測速度的同時(shí)兼顧了準(zhǔn)確的檢測精度。因部署環(huán)境為邊緣側(cè)設(shè)備,對計(jì)算復(fù)雜度要求不可過高,故在此處亦考慮過使用Yolov4-tiny版本。該版本雖然在速度上有極大的提升,但準(zhǔn)確度有明顯下降,會(huì)對后續(xù)追蹤階段造成較大影響,最終選擇Yolov4作為檢測算法。
本文在跟蹤階段采用了中心跟蹤算法,相較于MOSSE,GOTURN,deepso~等算法,該算法對算力要求較低,可在邊緣側(cè)高效運(yùn)行。該算法具體流程如下,主要分為兩個(gè)階段:
第一部分為檢測階段,檢測當(dāng)前幀中是否有新的對象進(jìn)入并且查看在追蹤過程中是否有對象丟失。若該對象為新進(jìn)入的對象,則根據(jù)該對象的對象框創(chuàng)建一個(gè)新的對象追蹤器并賦予一個(gè)唯一id,若該對象在上一幀中已經(jīng)存在,則更新該對象的對象跟蹤器。考慮到目標(biāo)檢測在計(jì)算上消耗的資源較多,因此在需要提升實(shí)時(shí)速率的時(shí)候可以每N幀運(yùn)行一次。
第二部分為跟蹤階段,當(dāng)不處于檢測階段時(shí),即處于跟蹤階段。對于檢測到個(gè)每個(gè)對象,創(chuàng)建一個(gè)對象跟蹤器來跟蹤該對象在每一幀中移動(dòng)時(shí)的情況。因?yàn)閷ο蟾櫰鞑豢商鴰\(yùn)行,故需要比對象檢測器更快,更高效。持續(xù)跟蹤階段,直到到達(dá)第N幀后,再次運(yùn)行第一階段的對象跟蹤器。重復(fù)該過程直至視頻流結(jié)束。
這種方式的優(yōu)勢是可以應(yīng)用高度精確的對象檢測方法,且不會(huì)產(chǎn)生過大的計(jì)算量。
跟蹤階段的中心跟蹤算法步驟如下:
(1)獲取目標(biāo)對象的邊界框坐標(biāo)并計(jì)算邊界框的中心。邊界框由Yolov4對象檢測器生成。獲取邊界框之后計(jì)算各個(gè)邊界框的中心坐標(biāo)并賦予首次出現(xiàn)的邊界框一個(gè)唯一的id。
(2)計(jì)算當(dāng)前幀新獲取的各個(gè)邊界框中心點(diǎn)與上一幀獲取的各個(gè)邊界框中心點(diǎn)的歐氏距離。對于視頻流中的每個(gè)后續(xù)幀,計(jì)算各個(gè)新的對象的邊界框中心點(diǎn)并確定是否可以將新的對象中心點(diǎn)與上一幀的對象中心點(diǎn)相關(guān)聯(lián)。
(3)更新已經(jīng)存在的對象的中心坐標(biāo),該算法的前提假設(shè)是給定對象會(huì)在后續(xù)幀之間移動(dòng),并且對象自身的移動(dòng)距離小于該對象與其他任意對象之間的距離。因此,若將對象中心與后續(xù)幀之間的最小距離相關(guān)聯(lián),就可以更新對象跟蹤器。