吳奇元,王曉東,章聯軍,高海玲,趙伸豪
(寧波大學信息科學與工程學院,浙江寧波 315211)
人群計數的主要任務是統計指定區域內的人數,其廣泛應用在公共安全管理、商業信息采集、服務資源調度等領域。目前,人群計數主流方法是通過運用計算機視覺相關知識來統計一張圖片中的人數。與傳統的人力計數方法相比,該方法在節省人力物力資源方面成效顯著。人群計數作為計算機視覺領域的研究熱點,仍然面臨著目標遮擋、尺度變化、分布不均、背景復雜、視角透視等難題。
基于計算機視覺的人群計數方法可以分為基于檢測、基于回歸、基于密度圖的人群計數方法?;跈z測的人群計數方法通過累加檢測出的單個個體,以得到圖片的最終人數。該方法[1-3]適用于低密度場景,但是難以解決中高密度或者目標遮擋場景下的人群計數問題?;诨貧w的人群計數方法[4-6]將圖像模塊內的人群作為一個整體,通過特征回歸算法直接得到圖像模塊的對應人數,然后將包含人數信息的所有圖像模塊結果累計加和得到圖片整體人數。此類方法能夠解決背景部分遮擋的問題,提高適用場景的人群密度上限,但是受視角、背景等因素的制約,在高密度場景下的準確性較低。基于密度圖[7]的人群計數方法是通過生成相應的人群密度圖,進而將密度圖中的像素密度值累加,累加值即為最終圖片人數。此類方法能夠充分利用像素級別的信息,普適性較強,廣泛應用于各種密度場景,是當前人群計數領域的主流方法。
隨著圖像處理器(Graphics Processing Unit,GPU)計算能力的不斷提高,基于深度學習的密度圖人群計數方法應運而生。該方法充分利用計算機儲存和算力,極大地提高了人群計數的準確性,同時提升了人群計數的實時性,在一定程度上解決了傳統人群計數方法需要人工手動選取特征的難題,從而擴大適用場景的范圍。文獻[8]通過3 列包含不同尺寸卷積核的神經網絡來提取多尺度特征,以融合提取到的多尺寸特征,從而獲得最終的人群密度圖。在此方法提出之后,一系列基于多列卷積神經網絡的人群計數方法層出不窮?;谖墨I[9]在網絡前端增加一個圖片人群密度等級分類器,將分類成不同密度等級的圖片輸入到不同的列,以得到相應人群密度圖。文獻[10]在文獻[8]方法的基礎上,利用跳接操作將各列網絡的特征圖相融合,得到最終人群密度圖。文獻[11]在微調文獻[8]方法的基礎上,通過加入兩列網絡分別獲取全局和局部上下文信息,從而有策略地融合多列網絡特征,得到最終的人群密度圖。以上所述的基于多列卷積神經網絡的方法在一定程度上提高了人群計數的準確率,文獻[12]提出密集場景識別網絡(Congested Scene Recognition Network,CSRNet),并指出多列卷積神經網絡存在一定的不足。雖然多列網絡使用不同尺寸的卷積核來提取多尺寸特征,但是得到的特征圖存在信息冗余,并且網絡結構復雜,訓練耗時久。同時包含膨脹卷積的CSRNet因使用相同的膨脹率,導致不能充分利用前端網絡得到的特征圖。
本文提出一種基于注意力機制與上下文密度圖融合的人群計數網絡CADMFNet。采用前端網絡實現逐級特征融合[13],即使用上采樣融合模塊(Up-sampling Fusion Module,UFM)實現高層特征和低層特征的融合,得到不同層級的多尺寸特征,將互質膨脹率[14]交替使用的膨脹卷積作為后端網絡,利用上下文注意力模塊(Contextual Attention Module,CAM)融合不同層級的中間人群密度圖,以充分利用上下文信息,從而提升最終生成人群密度圖的質量。
本文提出一種基于注意力機制與上下文密度圖融合的人群計數網絡CADMFNet。該網絡結構如圖1所示。

圖1 本文網絡結構Fig.1 Structure of the proposed network
前端網絡包含VGG16的前13層卷積層,將其按照2、2、3、3、3 的層數分成5 個階段,池化層連接于下一個階段的開頭。將5 個階段的特征圖依次輸入到上采樣融合模塊(UFM)中進行上下文特征融合。其中,Ui(i=2,3,4,5)代表使用雙線性插值的上采樣操作模塊,每次上采樣操作后輸出特征圖的邊長是原來輸入特征圖邊長的2 倍。Fi(i=1,2,3,4,5)代表特征融合后的特征圖。網絡在經過上采樣融合模塊以后,將Fi(i=2,3,4,5)輸入到后端網絡中得到中間密度圖Di(i=2,3,4,5),然后將中間密度圖在通道維度堆疊得到最終的中間密度圖M。網絡將含有最充足上下文信息的特征圖F1輸入到系數網絡中,以得到系數特征圖C,并將其經過通道維度的Sigmoid 以及Softmax 操作得到最終的系數特征圖X。最后采用逐個像素相乘并在通道維度相加的方法處理注意力系數X及中間密度圖M,從而獲得人群密度圖。該網絡模型除生成人群密度圖的卷積層以外,其他卷積層后都跟有ReLU 激活函數。
低層特征信息的感受野比較小,其包含小尺寸圖像信息,即離攝像頭位置較遠的人群信息。高層特征信息的感受野較大,其包含大尺寸圖像信息,即離攝像頭位置較近的人群信息。上下文融合模塊利用高層語義信息和低層輪廓信息,得到較精細的人群密度圖,從而獲得較準確的人群計數結果。為得到包含高層語義信息和低層輪廓信息的上下文多尺寸特征,本文通過UFM 得到融合后的上下文特征,并將這些不同的多尺寸上下文特征輸入到后端網絡,以減少特征圖之間的冗余,從而更充分地利用網絡提取的特征,提高計數的準確性。
在經過上采樣融合模塊處理之后,網絡可以獲得含有上下文信息的特征圖Fi(i=1,2,3,4,5)。這些特征圖的生成除了需要圖1 中的上采樣操作以外,還需要通道堆疊以及卷積操作,其配置的詳細情況如表1 所示。卷積層參數表示為“(卷積核大?。?(輸出通道數)-(膨脹率)”,concat為通道堆疊操作。通道堆疊和卷積操作Ci(i=1,2,3,4,5)作用在生成相應特征圖Fi(i=1,2,3,4,5)之前,例如,通過C3生成F3主要分為2 個步驟:1)在通道維度將F4上采樣后的特征圖(256通道)和VGG16 得到相應的特征圖(256 通道)進行堆疊,得到512 通道的中間特征圖;2)使用2 個卷積操作將通道數從512 先降為256,再降為128,從而得到最終的上下文特征圖F3。

表1 上采樣融合模塊配置信息Table 1 Configurations information of up-sampling fusion module
膨脹卷積能夠增大感受野,且提升計數準確率。膨脹卷積通過修改卷積核結構來擴大感受野,無需進行下采樣操作,不會丟失空間信息,因此其效果要優于卷積+池化+反卷積的方法。二維膨脹卷積的計算如式(1)所示:

其中:d為膨脹率,當d=1 時,即為常見的普通卷積;w(i,j) 為卷積 核;x(m+d×i,n+d×j) 為二維輸入;y(m,n)為二維輸出。
不同膨脹率的膨脹卷積感受野效果圖如圖2 所示。圖2 中由內而外依次包含3×3 卷積核1 次卷積、2 次卷積、3 次卷積所涉及的新像素位置。從圖2 可以看出,膨脹率為2 的膨脹卷積經過3 次膨脹卷積以后,其感受野大于膨脹率采用1、2 交替的膨脹卷積,更要大于膨脹率等于1 的膨脹卷積。因此,膨脹卷積的膨脹率越大,經過相應膨脹卷積操作后的感受野也就越廣。但是這并不意味著可以隨意取膨脹卷積的膨脹率。如果膨脹率取值相同且不為1,則經過膨脹卷積之后,會出現“棋盤效應”,從圖2(b)可以看出,如果連續使用膨脹率為2 的膨脹卷積,就不能充分利用特征圖的每個像素信息,中間會濾掉很多像素信息。此外,如果膨脹率過大,則經過膨脹卷積作用后的特征信息之間相關性較差。從圖2(c)可以看出,互質的膨脹率交替使用(1、2 交替)的膨脹卷積能夠充分使用特征圖的像素信息,以獲得更準確的計數結果。因此,本文采用卷積率1、2 交替的膨脹卷積作為后端網絡,生成中間密度圖,既可以在擴大感受野的同時,避免產生“棋盤效應”,也可以降低特征信息相關性產生的負面影響。

圖2 不同膨脹率的膨脹卷積感受野效果圖Fig.2 Effect images of dilated convolution receptive field with different dilation rates
上下文注意力模塊(CAM)主要包括系數分支以及密度圖分支2 個部分,如圖1 所示。其中,密度圖分支利用不同的上下文特征信息Fi(i=2,3,4,5)生成相應的中間人群密度圖M,系數分支將具有最全上下文信息的特征F1作為輸入,以生成系數特征圖X,最終使用系數特征圖給中間人群密度圖打分,并將其對應的像素相加得到最終的人群密度圖。
在密度圖分支中,通過將不同的上下文信息輸入到相應層級的多列后端網絡,得到中間人群密度圖。后端網絡和系數網絡的配置信息如表2 所示。

表2 后端網絡和系數網絡配置信息Table 2 Configurations information of back-end networks and coefficient-end network
在表2 中,卷積層參數表示為“(卷積核大?。?(輸出通道數)-(膨脹率)”,up_2 表示通過上采樣操作將邊長變為原來2 倍,up_4 表示通過上采樣操作將邊長變為原來4 倍。后端網絡包含逐級上采樣操作和互質膨脹率的膨脹卷積操作,能夠充分利用特征圖像素級別的信息,在一定程度上提高網絡的準確率。網絡將每列后端網絡得到的中間人群密度圖在通道維度進行堆疊,從而得到最終的中間人群密度圖M。
系數分支通過將具有不同層級上下文信息的特征圖F1輸入到系數網絡,以得到中間系數特征圖C,因此中間系數特征圖具有全局上下文信息,進而將中間系數特征圖輸入到Sigmoid 函數和Softmax 函數中,經過相應通道間像素操作,獲得最終系數特征圖X。
2.1.1 人群密度圖的生成
人群密度圖代表人在圖像中出現的概率,既包含空間分布特征信息,又包含人數特征信息,通過對人群密度圖中的像素密度值積分進行累加,獲得對應圖像或圖像模塊的人數。與基于回歸的人群計數方法相比,基于密度圖的人群計數方法優勢在于能夠更好地使用圖像特征,進而提升計數準確度。此外,學習人頭區域信息比學習人頭中心點信息更容易,高斯核函數能夠近似擬合不同尺寸的人頭,在一定程度上模擬人群遮擋等現實場景可能出現的情況,從而解決目標遮擋等難題。因此,人群計數主流方法采用高斯核函數與沖激函數卷積生成真實人群密度圖,并將其作為預處理準備工作。
假設人群標注的人頭標簽坐標為xi,則整幅圖像所包含的人頭位置如式(2)所示:

其中:N為整幅圖像的總人數;x為整幅圖像的像素點坐標;xi為圖像中第i個人頭的坐標;δ(x-xi)為沖激函數。將高斯核函數與式(2)進行卷積可得密度圖函數,如式(3)所示:

高斯核函數Gσi(x)可表示為:

其中:σi為二維高斯分布的標準差;Gσi(x)為D(x)在x位置關于xi的高斯核函數值;D(x)在x處的取值由所有人位置xi的高斯核函數取值加和得到。
由高斯核函數性質可得:對應的標準差σi越大,第i個人在真實密度圖中對應的圖像區域越大,因此標準差與人頭區域大小呈正相關。文獻[8]提出一種適用于密集場景生成真實人群密度圖的方法,使用與單個人距離最近的k個人之間的平均距離來代表σi,σi如式(5)所示:

2.1.2 損失函數
網絡模型訓練使用均方誤差來衡量估計密度圖與真實密度圖之間的差異,因此,將均方誤差作為損失函數來調整估計密度圖的生成,如式(6)所示:

其中:θ為本文模型的網絡參數;Ii為輸入的第i幅圖像;Dp(Ii,θ)為第i幅圖像得到的估計密度圖;Dgi為第i幅圖像得到的真實密度圖;N為數據集包含的圖像總數。
2.1.3 訓練設置
由于目前公開的公共數據集中圖片數量不是特別多,為防止產生過擬合現象,因此本文使用數據增強技術來擴充數據集中的圖片數量。在網絡訓練階段,本文對數據集圖片用0.5 的概率進行左右翻轉,并從每張數據集圖片中隨機裁減出一個128×128 像素的圖片補丁作為網絡輸入;相應真實人群密度圖采取相同的操作。本文使用Adam 優化器,學習率被設置為固定的0.000 05,批量大?。╞atch size)設置為64。由于128×128 像素的圖片補丁可能包含的人數為0,在一定程度上可以緩解數據集圖片無人負樣本不足的情況,因此能夠幫助模型排除復雜背景噪聲的干擾。
本文實驗環境為Windows 10 操作系統,配備16 GB NVIDIA Quadro RTX 5000 GPU 顯卡。采用CUDA 11.0 版本的Pytorch 深度學習框架,分別在UCF_CC_50、ShanghaiTech 及Mall 數據集 上進行 實驗,初步驗證了本文網絡在高、中、低各類密度場景下的計數效果。
2.2.1 評價指標
本文網絡模型采用平均絕對誤差(MAE)和均方根誤差(RMSE)作為實驗結果的性能指標,反映網絡計數的準確性及穩定性。
1)平均絕對誤差(MAE)。計算對象為測試集圖片的估計人數和標簽真實人數,如式(7)所示:

其中:N為測試圖像數為第i幅圖像的估計 人數;Ci為第i幅圖像的真實人數。
2)均方根誤差(RMSE)。計算對象為測試集圖片的估計人數和標簽真實人數,如式(8)所示:

其中:N為測試圖片數為第i幅圖片的估計 人數;Ci為第i幅圖片的真實人數。
2.2.2 UCF_CC_50 數據集
UCF_CC_50數據集[15]的圖片來源于互聯網,總共有50張圖片,每張圖片中的人數為94~4 543個人,共計63 974個人。該數據集包含的場景人群密集程度高且圖片數量稀少,是目前最具挑戰性的人群數據集之一。本文采用五折交叉驗證[15]方法進行實驗:將數據集包含的50張圖片隨機等分為5個圖片集,依次采用一個圖片集作為測試集,剩余圖片集打通合并后作為訓練集,最終實驗結果為5次實驗結果的平均值。該數據集的平均人數為1 279.5個人,屬于高密度場景,因此使用MCNN方法[8]生成人群密度圖。在UCF_CC_50數據集上,本文對MCNN、MSCNN[16]、ResNeXtFP[17]、PACNN[18]、CSRNet[12]等網絡的評價指標進行對比,結果如表3所示。

表3 在UCF_CC_50 數據集上不同網絡的評價指標對比Table 3 Evaluation indexs comparison among different networks on UCF_CC_50 dataset
從表3 可以看出,在UCF_CC_50 數據集上,雖然本文網絡CADMFNet 未取得最優的指標,但是相比CSRNet 方法,其MAE 下降了10.4%,RMSE 下降了8.7%,說明本文網絡在一定程度上可以提高人群計數的準確度。此外,由于UCF_CC_50 數據集的劃分方法具有一定的隨機性,因此該數據集得到的計數結果雖然具備一定的參考意義,但是不具有絕對性的判斷作用。
2.2.3 ShanghaiTech 數據集
ShanghaiTech數據集[8]分為2個部分,共有1 198張圖片,包含330 165個人。Part A中包含的圖片主要來源于互聯網,該部分共有482張人數范圍為33~3 193個人的圖片,其中,300張為訓練集,182張為測試集。Part B人群密度比Part A稀疏,是上海市區繁華街道的圖片,該部分包含716張人數范圍為9~578個人的圖片,其中,400張為訓練集,316 張為測試集。Part A 部分平均人數為501.4個人,Part B部分平均人數為123.6個人,均屬中密度場景。因此,采用文獻[8]網絡生成人群密度圖,在ShanghaiTech數據集上不同網絡的評價指標如表4所示。

表4 在ShanghaiTech 數據集上不同網絡的評價指標對比Table 4 Evaluation indexs comparison among different networks on ShanghaiTech dataset
從表4可以看出,在ShanghaiTech數據集上,相比CSRNet網絡的結果,本文網絡在ShanghaiTech Part A的MAE 下降了8.8%,RMSE 下降了12.5%;在ShanghaiTech Part B上的MAE 下降了25.5%,RMSE 下降了24.4%。
2.2.4 Mall 數據集
Mall 數據集[5]來源于安裝在購物中心的監控攝像頭拍攝得到的圖片,總共包含2 000 張圖片,共有62 325個人。在這2 000張圖片中,前800張劃分到訓練集,后1 200張劃分到測試集。該數據集包含人數為13~53 個人的圖片,平均人數為31.2個人,屬于低密度場景。此外,該數據集包含遮擋、光照、鏡子成像等干擾。本文根據透視圖生成真實密度圖,透視圖包含人群遠近信息權重,主要采用式(9)的方法來生成二維高斯分布的標準差(σi,j),要求滿足7 ≤σi,j≤25且向上取整:

其中:xi,j為透視圖中第i行、j列的像素值;σi,j為圖片中第i行、j列的人頭對應的二維高斯標準差。在Mall 數據集上,本文對文獻[5]、IFDM[24]、CNN-Boosting[25]、DRSAN[26]、E3D[27]、DecideNet[28]等網絡的評價指標進行對比,結果如表5 所示。

表5 在Mall 數據集上不同網絡的評價指標對比Table 5 Evaluation indexs comparison among different networks on Mall dataset
從表5 可以看出,在Mall 數據集上本文網絡的評價指標基本取得了最優的結果。測試集平均每張圖片對應的人數絕對誤差為1.31,對應的人數均方根誤差為1.59。
由以上結果分析可知,本文網絡適用于高密度場景、中密度場景和低密度場景的人群計數。
在不同數據集上本文網絡的可視化結果如圖3所示。圖3 中第1 列為每個數據集中的原圖,第2 列為真實人群密度圖,包含真實人數,第3 列為本文網絡的估計人群密度圖,包含估計人數。在UCF_CC_50 數據集上本文網絡的真實人數為1 037 個,估計人數為1 372.6 個。在ShanghaiTech Part A 數據集上本文網絡的真實人數為502 個,估計人數為432.6 個。在ShanghaiTech Part B 數據集上本文網絡的真實人數為181 個,估計人數為166.2 個。在Mall 數據集上本文網絡的真實人數為33 個,估計人數為32.5 個。

圖3 本文網絡的可視化結果Fig.3 Visualization results of the proposed network
不同列密度圖的可視化結果如圖4 所示,網絡輸入為ShanghaiTech Part A 數據集中的圖片,經過CADMFNet 后,不同列對應的密度圖輸出為密度圖_i(i=2,3,4,5)。其中,密度圖_i對應后端網絡Back-end-i輸出的密度圖與相應系數特征圖相乘,得到的特征圖作為網絡的輸出。密度圖_2 對應小尺寸的特征信息,重點關注離攝像頭較遠處的信息;密度圖_3 對應尺寸稍大的特征信息,重點關注較小尺寸的信息;密度圖_4 對應比較全局的信息,重點關注較大尺寸的信息;密度圖_5 對應全局信息,重點關注大尺寸信息。將上述密度圖疊加后得到最終密度圖。本文網絡估計的密度圖人數為218.2 個,而真實密度圖人數為223 個。因此。本文網絡利用上采樣融合模塊(UFM)和上下文注意力模塊(CAM)一定程度上可以解決多列網絡中不同列提取的特征圖之間冗余信息的問題,從而提高網絡的準確率。

圖4 不同列密度圖的可視化結果Fig.4 Visualization results of different column density maps
CADMFNet網絡取得較優的準確性與魯棒性的同時,也存在一定的不足,比如參數量過大、運行速度較慢。CSRNet方法的參數量為62 MB,CADMFNet方法的參數量達到了145 MB。因此,CADMFNet網絡適用于對準確率要求比較高但對實時性相對較低的場景,如學校、商場和景區的人流統計等。
本文在ShanghaiTech Part A 數據集上進行消融實驗,驗證互質膨脹率交替使用(Alternating Dilation Rate,ADR)、上采樣融合模塊(UFM)、注意力模塊(Attention Module,AM)和后端網絡中逐級上采樣(Step by step Up-sampling,SU)的有效性。其中,AM 和SU 包含上下文注意力模塊(CAM),驗證其有效性相當于驗證了上下文注意力模塊的有效性。注意力模塊主要表現為圖1 中Coefficient-end 所在的那一列。Baseline 為CADMFNet 去掉ADR、UFM、AM、SU 之后的網絡(dilation rate=2)。在ShanghaiTech Part A 數據集上的消融實驗結果如表6 所示。

表6 在ShanghaiTech Part A數據集上的消融實驗結果Table 6 Ablation experimental results on ShanghaiTech Part A dataset
從表6 可以看出,本文提出的ADR、UFM、AM 和SU 使得人群計數的MAE 下降,具有提升計數準確性的效果。在Baseline 基礎上增加相關模塊后,雖然人群計數的RMSE 產生一定的波動,但是其相差不大且都比Baseline 的RMSE 小。因此,上述模塊能夠有效增強人群計數的穩定性。CADMFNet同時使用以上4 個模塊,能夠提高網絡的準確性和穩定性,使整體效果達到最優。相比Baseline 網絡,CADMFNet 的MAE 降低了10.8%,RMSE 降低了13.3%。
本文提出一種基于注意力機制與上下文密度圖融合的人群計數網絡CADMFNet。采用上采樣融合模塊、上下文注意力模塊來減少多列網絡中不同列之間的冗余信息,通過不同膨脹率的膨脹卷積生成高質量的中間密度圖,以提高人群計數的準確度。在此基礎上,將上述互補密度圖相加得到最終的人群密度圖。實驗結果表明,相比CSRNet 網絡,本文網絡能夠提高人群計數的準確性與穩定性,其在Mall 數據集上的平均絕對誤差和均方根誤差分別為1.31 和1.59。后續將從同比例減少網絡通道數角度優化人群計數方法,以提高網絡的運行效率。