王良聰,吳曉紅,陳洪剛,何小海,潘 建,趙 威
(1四川大學 電子信息學院,成都610065;2中國民航局第二研究所,成都610041)
利用現代信息技術及創新成果,打造宜居、安全、便利、智能的生活環境,是社會良性發展的普遍追求。近年來,大量人口選擇匯集在城市工作、安家,城市單位面積內的人口密度越來越大,因此帶來了一系列的問題,這些問題是高效、有序的社會管理面臨的巨大挑戰。如2020年1月7日,伊朗高級將領蘇來曼尼遭遇美方突襲不幸身亡,伊朗民眾紛紛為其送葬,但送葬的過程中發生了意外,百萬民眾送別時發生踩踏事件,至少造成了56人死亡、213人受傷。因此,提前對人群信息進行快速統計,避免嚴重的公共安全責任事故發生是必要的。人群密度估計,需要重點關注人群的分布信息,然而實際場景中往往面臨著相似物體(如樹葉,車輛)的干擾,很難從局部小區域得出判定;在此情況下,人類的做法是觀察更久,同時結合其它的周圍信息進行判斷。受此啟發,本文設計了雙注意力模塊來解決這樣的問題。由于攝像機拍攝視角的多樣性和人群位置的復雜分布,圖像中的人頭尺度是變化多樣的,為了應對視角劇烈變換問題,設計了一個多尺度特征融合模塊,來增強網絡的多尺度特征提取能力,并融合多尺度信息。本文提出的基于多尺度及雙注意力機制(Multi-Scale and Dual Attention,MSDA)的小尺寸人群計數網絡,實現端到端的人群計數。即輸入單幅圖像,就可以通過對生成的密度圖進行積分,得到圖像中的人群數量。本文在Shanghaitech數據集和Mall數據集上進行了實驗,并取得了較好的效果。本文的貢獻主要有以下3點:
(1)受KNN自適應[1]標注方法的啟示,根據相機的成像原理以及畫面的透視畸變,提出了基于透視關系的密度圖生成方法。
(2)設計了一個多尺度特征融合模塊,以達到多尺度特征融合及豐富特征信息的目的。
(3)設計了空間—通道雙注意力模塊,來實現對無關特征的弱化,強調重要特征。
早期的研究中,采用基于檢測的方法[2],即使用整體或部分身體特征的檢測,訓練一個分類器,利用從行人中提取到的整體或局部結構來檢測行人,從而進行計數。由于基于檢測的方法,在背景雜亂且密度高的圖像上,表現性能會大大降低,因此有人提出了基于回歸的計數方法[3],該方法是學習一種從特征到人數的映射。但此方法會忽略空間信息,還會受到尺度和視角劇烈變化的影響,導致計數能力變差。
近年來,深度卷積神經網絡得到了廣泛應用,在人群計數方向也取得了顯著的成果。例如,使用深度卷積網絡直接端對端生成密度圖的方法[4]。文獻[1]中提出,利用3個具有大中小的卷積核的神經網絡MCNN,來分別提取人群中的特征,然后通過卷積層來生成密度圖從而進行計數。文獻[4]中,使用3個不同的CNN回歸器和一個分類器來生成密度圖。Wu等[5]使用反向卷積層,自適應的分配權重給兩個分支,將計數問題看做分類,從而來進行人群計數;Chen[6]等人使用像素級的注意力機制對圖像進行分級,使之生成高質量的密度圖。
由此可見,近年來有許多學者針對人群計數這一課題做出了努力。但是大部分的網絡[7-8],雖然性能不錯,但還存在一些未能很好解決的問題。如,存在特征信息提取不充足,無法從多個感受野中提取多尺度信息,也沒有融合多個尺度中的特征,達到豐富細節特征的目的;并且無法排除背景中的干擾,弱化無關特征,強調重要特征,從而來提升人群計數的準確度。基于此,本文提出了一種基于多尺度及雙注意力機制的小尺寸人群計數網絡來解決上述問題。
由于本文的任務對象主要為小尺寸密集人群,過深的網絡將存在過度的冗余,并且不利于性能特征的遷移。而VGG-16模型深度較小,能夠在保證足夠源域特征的同時兼顧小尺寸目標,因此本文模型將VGG-16作為主干網絡。將VGG-16與提出的多尺度特征融合模塊與空間-通道雙注意力模塊相結合,來對圖像中的小尺寸目標進行檢測。
針對人數估計,數據集[2-3]將畫面中的行人標記分別以頭部某點的位置坐標(頭部輪廓幾何中心最佳)的形式保存,即點標注形式。采用點標注的主要原因:一是大大提高效率,不用過分地去考慮每個目標精確的尺寸問題;二是因為人體頭部包含的信息較多,并且在高密度人群中,僅僅頭部可見。因此使用點標注來標注頭部,是人群估計中較為普遍的標注方式。
假設目標的標記坐標為pi,則對圖像中n個目標的總體標注函數為:

對于點標注,文獻[2]中將每個目標的標注坐標都與二維高斯低通濾波函數Gσ(P)進行卷積操作后,則將形成整體的目標密度圖D(p),即:

經過此操作,就可將孤立的點標注擴散至貼合目標頭部輪廓的置信密度分布。若假設目標頭部是圓形,通過限定二維離散高斯低通濾波函數的作用區間和標準差,就可以使得單個目標在此區間內的密度積分求和為1,從而擬合圖像中的具體人數。
文獻[1]中提出使用KNN算法自適應地估計圖像中目標的尺寸,但場景的密集程度并不存在嚴格劃分標準,難以形成一個統一、可移植的泛化方案。鑒于此,本文根據相機成像原理及圖像的透視畸變問題,提出了基于透視關系的密度圖生成方法。由于各成像設備的陳設一般都為水平放置,會導致在同一水平線上的人的尺度大致相同,符合遠小近大的成像原理,據此關系可得出人群分布的位置與圖像上的縱坐標呈正相關。
設目標頭部的尺寸為Px,可得出整體圖像的透視關系為:

其中,Py表示圖像中的縱坐標;k表示透射畸變因子;b為偏移因子。k、b為待定系數,可根據圖像中兩個縱坐標位置不同的目標人頭,確定整幅圖像的透視關系,選擇兩個縱坐標不同的目標Px1、Px2,可得:

由公式(4)、式(5)可得出:

依據此方法即可對圖像中的人群進行標注,從而生成密度圖。如圖2所示。其中圖2(a)為Zhang等[3]所提出方法的示意圖,圖2(b)為本文方法的示意圖。由圖中可看見,本方法自適應的匹配了人頭尺寸。

圖2 不同密度圖高斯核尺寸的效果對比Fig.2 Comparison of the effect of Gaussian kernel size in different density maps
如圖1所示,本文MSDA模型分為以下4個模塊:VGG-16特征提取模塊,多尺度特征融合模塊(MFF),空間-通道雙注意力模塊(SCA)及密度圖生成模塊。Fi和Fd為MSDA模型的輸入與輸出,以VGG-16中的部分卷積層及池化層作為基礎結構,

圖1 MSDA模型Fig.1 Multi-scale and dual attention mechanism model
在其第4、7、10層分別提取特征進行解碼設計,而后將提取的3個層的特征分別送入3個MFF模塊中,1×1卷積之后將輸入的特征進行轉換并使得通道數統一,再對其使用膨脹卷積來擴大感受野,最后進行特征融合,并將深層融合的特征作為輸入,傳遞給淺層,可得:

式中,H(·)表示卷積操作;?表示逐像素相乘操作;表示經過MFF層進行過多尺度特征融合的深層輸出特征;Fin是淺層特征和深層特征融合后的多尺度特征。將低層網絡的融合特征與高層網絡所提取的特征Fout進行逐像素相乘操作,可以使得低高層特征進行融合,得到豐富的上下文信息。
經過SCA模塊,使用平均池化、最大池化以及卷積操作達到對無關特征的弱化及重要特征的強調,最后將特征Fo輸入密度圖生成模塊。首先經過一個3×3卷積和一個1×1卷積,再與上一層的特征結合,重新送入卷積層中;然后通過2個3×3卷積,最后使用concat操作對特征信息進行結構化的相加融合,加強特征之間的聯系,相較于直接特征疊加,大幅減少了特征的通道數。由此可得:

其中,H(·)表示卷積操作;K(·)表示concat操作;⊕表示逐像素相加操作;分別為第4、7、10層經過SCA模塊的特征。為3層concat之后的最終特征信息層級,將送入1×1卷積層中,得到密度圖Fd。
2.2.1 多尺度特征融合模塊
由于攝像機拍攝的視角和人群位置的復雜性,圖像中的人頭尺度是復雜多樣的,因此想要更準確的進行計數,就需要進行多尺度特征提取。本模塊分別在3個不同層中的單層特征圖中提取多尺度信息,然后融合提取后的信息。如圖1所示,在MFF網絡中,首先使用一個1×1的卷積層對特征映射的通道進行壓縮整合。由于低層網絡的感受野較小,其語義表征能力弱,因此將整合的低層特征分別送入三個膨脹率為1、2、3的膨脹卷積網絡中,可得:

其中,H(·)表示卷積操作;K(·)表示concat操作;D(·)表示膨脹卷積操作及其中的d為膨脹率。Fin經過三列膨脹卷積操作,使用concat操作以及特征級聯進行多尺度的特征融合,再經過3個3×3卷積擴大感受空間,從更廣的視野非線性判斷各位置的特征取舍;再經過一個1×1卷積層將特征進行轉換并使得通道數統一,得到MFF模塊以此來擴大低層特征中的感受野,將語義表征能力增強。
2.2.2 空間-通道雙注意力模塊(SCA)
一般的注意力模塊只能將原始圖片中的空間信息變換到另一個空間中,并保留關鍵信息或解決信息超載問題,而無法在空間和通道上關注特征和加強聯系。鑒于此,本文設計了一個空間-通道雙注意力模塊,使用通道注意力網絡,學習各通道的依賴程度,并根據依賴程度對不同的特征圖進行調整,再結合使用空間注意力。此舉不僅彌補了通道注意力的某些不足之處,還可以強調重要特征信息并忽略了無關特征信息。本模塊構成如圖1中SCA模塊所示。首先將輸入的特征Ff,分別送進2個不同的通道,然后進行1×1的卷積操作來整合特征,再分別在2個通道中使用最大池化層和平均池化層。可得:

其中,H(·)表示卷積操作;K(·)表示concat操作;M(·)表示最大池化操作;A(·)表示平均池化操作;公式(10)中的2表示pool=2。 使用最大池化層M(·)可以收集目標中更細節的線索,而平均池化層A(·)可以將特征進行壓縮,此時就實現了在通道上關注人群特征。將經過處理的特征快速進行不同于上一次的平均池化以及最大池化,加上空間注意力。
最后將特征Ff進行上采樣,將其與原始特征Fi進行逐像素相乘操作,得到輸出特征Fo。則有:

其中,Upsample(·)表示上采樣操作,?表示逐像素相乘操作。
在訓練階段,人群密度研究工作中一般都將歐幾里得損失當做訓練損失,損失函數定義如下:

其中,g ti表示輸入的第i張地面真實密度圖;gt(Xi;θ)表示預測估計的密度圖;Xi表示輸入的第i張圖像;θ是計數網絡中可學習的參數。
因Adam[8]具備計算效率高、內存要求低等優點,本文將其作為優化器;設置初始學習率(Learning rate)為0.000 01;同時為了使梯度下降方向更穩定、準確、防止震蕩,令每次訓練輸入所選取的樣本數(batch size)等于4,并隨機打亂每次樣本的輸入順序。
本文采用的評價指標:平均絕對誤差(Mean Absolute Error,MAE)、均 方 誤 差(Mean Squared Error,MSE)。其定義如下:

其中,n代表測試集的樣本總數;gti表示第i張測試圖的實際人數值;而eti表示對第i張測試圖的估計值。MAE主要是考量真實值與估計值之間的誤差平均,反映的是估計的準確性,而MSE作為方差指標,反映的是算法魯棒性。由于這2項指標為誤差度量,因此算法的MAE、MSE值越小越好。
3.3.1 Shanghaitech數據集
該數據集分為兩部分:Shanghaitech Part_A(簡稱SHA)和Shanghaitech Part_B(簡稱SHB),并分別將圖像中人體頭部的中心區域某點的位置坐標保存在文件中。SHA源于互聯網照片,由訓練集中的300張圖像和測試集中的182張圖像構成,存在少量的灰度樣本,共計241 677個標注點,照片質量不一,且絕大多數圖像都擁有高密度人群;該數據集樣本風格各異,且存在很多相似目標的干擾,某些極其擁擠的場景甚至人眼也難以準確計數,適合檢驗算法對遠景高密度人群的估計能力。SHB拍攝于上海繁華的街道,由400張訓練圖像和316張測試圖像構成,場景不固定,共計88 488個標注點;該數據集更貼近具體街道應用場景,訓練集、測試集中存在很多相似場景,畫面中人員特征信息較多,能夠檢驗算法在城市監控場景中的表現能力。
3.3.2 Mall數據集
該數據集獲取于國外某購物中心,由拍攝視頻中抽取的2 000幀圖片構成,且場景固定,并盡量以頭部中心點的坐標作為標注,共計62 325個標注點。數據集的難點是遠處目標模糊以及植物的干擾,其代表的是稀疏、固定場景。參照文獻[2],選擇前800幀圖像訓練,其余1 200幀圖像進行測試。
3.4.1 在Mall數據集的實驗結果比較
在Mall數據集上,將本文的網絡與其它網絡進行了比較,比較結果見表1。結果表明,提出方法的性能有所改進;與2020年提出的CWAN[9]網絡相比,MAE和MSE分別提高了0.56和0.87。在Mall數據集上的人群密度效果如圖3所示。

表1 Mall數據集的實驗結果對比Tab.1 Comparison of experimental results in the mall dataset
3.4.2 在Shanghaitech數據集上的實驗結果比較
在ShanghaiTech partA&partB兩個數據集上,將本文網絡和其它網絡進行了比較,結果見表2。結果表明,本文提出的方法性能有顯著改進。在SHA中,本 文 方 法 與 網 絡CSRNet[12]相 比,MAE/MSE分別提高了4.5/12.7,與2020年所提網絡HANG[13]相比也提高了1.6/4.1;在SHB部分,MAE/MSE比CSRNet提高了2.18/2.71,與HANG相比提高了1.58/4.31。其效果如圖3所示。

圖3 數據集中估計的密度圖(左為SHA,中為SHB,右為Mall)Fig.3 The estimated density map in the dataset(SHA on the left,SHB in the middle,Mall on the right)

表2 Shanghaitech數據集實驗結果對比Tab.2 Comparison of experimental results in the Shanghaitech dataset
為了驗證本文所提出的MFF模塊及SCA模塊的有效性,在ShanghaiTech數據集上進行了驗證,驗證結果如表3所示。SHA部分的MAE/MSE提高了7.24/10.25;SHB部 分 的MAE/MSE也 同 樣 提 高 了0.55/1.74,MFF模塊中使用1×1卷積核進行特征信息整合,可在不影響感受野的情況下增強決策函數的非線性,并且結合膨脹卷積之后可在不損失圖像分辨率與尺寸情況下有效擴大感受野,減小參數量。MFF模塊增加了多尺度特征融合,提取不同人頭的細節信息并且使得高低層特征融合,聯合上下文信息。

表3 網絡結構分析結果Tab.3 Network structure analysis results
由表3數據可以看出,添加了SCA模型之后,在SHA和SHB兩個數據集上都有明顯的提高。如SHA上的MAE/MSE分別提高了6.0/3.54;在SHB上也提高了0.48/0.53,SCA模塊中對輸入的特征分別施加3層的平均池化、最大池化后進行特征疊加,為之后的操作提供更多的選擇及降低參數量;并且SCA模塊使用取舍權重因子與原輸入特征相乘得到輸出特征,以實現對輸入特征的弱化;因此,SCA模塊可以有效地弱化無關特征,強調目標信息。
本文提出的基于多尺度和雙注意力機制的人群計數網絡模型,使用膨脹卷積、最大池化和平均池化設計了MFF模塊和SCA模塊。MFF模塊擴大了小目標的尺度空間,使淺層特征和深層特征進行了多尺度特征融合,改善了小目標中的特征信息缺乏問題和尺度劇烈變化問題。SCA模塊使用池化層將注意力放在小目標上,可排除無關干擾信息,提取有效特征、減小參數量。在數據集上的測試結果表明,此方法比現有許多方法都有效,可應用于景區游客統計,反映游客的實時分布,安排相應的旅游服務;也可對擁擠的現象進行預警,實時的檢測人群密度,以發現異常聚集或逃離事件的發生,從而及時協調醫療、警員力量。