左健豪,姜文剛
江蘇科技大學 電子信息學院,江蘇 鎮(zhèn)江212003
人群計數(shù)的目的是對給定的視頻幀或圖片中的人群數(shù)量進行預測。隨著人口的快速增長,人群計數(shù)因其在安防領域的潛在價值得到了廣泛的關注和快速的發(fā)展[1-3]。但是在復雜的密集人群場景中,由于人群分布不均、遮擋和尺度變化等因素,使得人群計數(shù)成為一項具有挑戰(zhàn)性的任務。
目前主流的人群計數(shù)方法分為兩類:基于檢測的方法和基于回歸的方法?;跈z測的方法[4-7]先對給定圖像或視頻中的每個個體(人)進行檢測定位,然后再進行數(shù)量統(tǒng)計。但這類算法僅僅適用于人群較為稀疏的簡單場景,無法適用于復雜背景且高密度的人群場景。
基于回歸的方法的思想是學習圖片中的人群的特征到人群數(shù)量之間的映射關系。Lempitsly等人[8]首先提出利用線性模型來學習圖片中的局部特征和其對應密度圖的關系。Pham等人[9]提出利用隨機森林算法學習局部區(qū)域的特征與目標密度圖之間的非線性映射關系,并且利用決策樹置換算法進行降維,提高了算法的計算速度?;诨貧w的方法相比于基于檢測的方法能夠較為充分地利用人群的空間分布信息和語義信息,對后續(xù)進行基于深度學習的方法奠定了基礎。
但是以上基于傳統(tǒng)機器學習的方法對于高密度人群場景下的遮擋、模糊和尺度變化等干擾因素依然缺乏魯棒性,在實際應用中具有較大的局限性。
近年來,隨著深度學習[10]的發(fā)展,基于卷積神經網絡[11]的密度圖回歸方法在人群計數(shù)領域獲得了較好的結果。Zhang等人[12]提出了多陣列結構的MCNN在不同陣列上用不同大小的卷積層提取多尺度的信息,盡管多陣列結構取得了一定精度的提升,但是其訓練的時間較長且結構設計冗余。Li等人[13]提出的CSRNet首次將空洞卷積應用于人群計數(shù),并在當年獲得了最佳的性能結果,但其算法性能受限于缺乏底層的空間細節(jié)信息的補充,在復雜背景的場景下容易發(fā)生誤判。最近的一些研究[14-16]開始嘗試構建復雜的編碼器-解碼器結構來聚合網絡中不同層的特征信息,但是這些算法結構復雜,不利于實際應用和對現(xiàn)有算法進行改進。
針對上述問題,本文所提出的自適應特征融合網絡通過自適應特征融合模塊自適應地高效聚合編碼器分支提取出的高層語義信息和底層的邊緣信息,進一步提高網絡對于人頭區(qū)域的特征提取和辨別能力,緩解由于分布不均和遮擋帶來的影響;通過自適應上下文信息提取器,提取不同感受野下的上下文信息,并根據(jù)輸入的圖片自適應地對上下文信息進行加權融合,提高網絡對于尺度變化的魯棒性。在多個數(shù)據(jù)集上的實驗表明,本次研究所提出的算法達到了較高的精準度和魯棒性。
在本文的方法中,輸入為任意大小的圖片,輸出為其對應的同尺寸的密度圖,因此,自適應特征融合網絡采用全卷積網絡架構。
如圖1所示,本文選取VGG16[17]的前10層卷積層構成基礎的編碼器分支。該網絡并沒有直接將編碼器與對應的解碼器通過跳接結構進行連接,而是將前三個由編碼器輸出的特征圖輸入進對應的自適應特征融合模塊,由自適應特征與解碼器進行互聯(lián),最后一個編碼器特征圖則輸入自適應上下文信息提取器中提取多感受野下的上下文信息并自適應加權融合,最終由解碼器分支進行信息聚合與上采樣,最終生成人群密度圖。
圖1 自適應特征融合網絡架構圖Fig.1 Illustration of adaptive feature fusion network
自適應特征融合模塊的目的是根據(jù)各解碼器輸入的需求,自適應地通過加權的方式從編碼器分支中的各層選取最需要的空間信息和語義信息再輸入進對應的解碼器,完成進一步的信息融合和上采樣。在卷積神經網絡中,來自底層的特征圖編碼了大量的低級特征和空間細節(jié)信息,適用于對物體進行定位;而來自高層的特征圖編碼了豐富的高級特征和語義信息,適用于對物體進行分類。以U-Net[18]為代表的編碼器-解碼器網絡通過跳接結構嘗試將深、淺特征進行直接融合。但是這些方法未能考慮到底層的特征圖中摻雜大量的噪聲,不能為深層的特征圖提供高分辨率的語義指導;而高層的特征圖中僅包含有限的空間細節(jié),不能高效地利用低級的特征[19]。所以提出了自適應特征融合模塊來更好地結合、利用網絡中不同層級的特征信息。
自適應特征融合模塊的結構如圖2所示。首先將編碼器分支輸出的多級基礎特征圖設為f l,其中,l∈{1,2,3,4}分別對應編碼器分支的4個層級。本文共設置了3個自適應特征融合模塊主要用于連接前3個編碼器子模塊和其對應的解碼器模塊。在基礎特征圖輸入進自適應特征模塊前,由于在不同層上的特征圖f n(n≠l),具有不同大小的分辨率和通道數(shù),所以需要通過上采樣或下采樣策略將其統(tǒng)一到和f l相同的大小,將調整過后的特征圖設為f n→l。對于兩倍的降采樣,使用步長為2的3×3卷積將特征圖的通道數(shù)和分辨率同時進行調節(jié);對于四倍的降采樣,首先采用步長為2的池化層和步長為2的3×3級聯(lián)進行分辨率和通道數(shù)的調節(jié);對于上采樣,本文先采用1×1卷積將特征圖通道數(shù)進行壓縮,再采用雙線性插值進行上采樣,最后再用1×1卷積對結果進行平滑。
圖2 自適應特征融合模塊Fig.2 Adaptive feature fusion module
在輸入的特征圖統(tǒng)一到相同的分辨率和通道數(shù)后,由各解碼器的原始輸入dink(k∈{1,2,3}),通過信息選擇層為來自于不同層級的特征圖學習權重參數(shù)al,bl,cl,并通過如式(1)所示方式進行融合。
盡管自適應特征融合模塊通過融合編碼器不同層級特征,在一定程度上解決了多尺度問題,但是僅依靠卷積網絡中連續(xù)的卷積和池化操作只能在有限的尺度范圍內提取多尺度特征,因此,受文獻[20-21]啟發(fā),本文提出了自適應上下文信息提取器。
如圖3所示,自適應上下文信息提取器可以分為兩部分:金字塔池化單元和尺度感知融合單元。金字塔池化單元將輸入特征圖池化到2×2、6×6、9×9三個不同的尺度來編碼不同感受野下的上下文信息,為了將不同感受野下的上下文信息進行融合,在每個池化后的特征圖后先利用1×1的卷積在不改變通道數(shù)的前提下整合通道維度上的特征信息,再通過雙線性插值將各個上下文信息特征圖上采樣到和輸入特征圖同樣的尺寸。
圖3 自適應上下文信息提取器Fig.3 Adaptive context extractor
考慮到輸入圖片中快速尺度變化,例如一張圖中,可能上千人是小尺寸的人頭,只有少部分人頭尺寸較大,所以不能將這些上下文信息簡單地直接進行合并。因此,本文在金字塔池化層后加上了尺度感知融合單元,使網絡能夠自適應地根據(jù)圖片中的尺度分布,對最有代表性的上下文信息施加大的權重,對尺寸占比較少的上下文信息施加較小的權重。尺度感知融合單元的具體操作如下式:其中,yACE是自適應上下文信息提取器輸出的特征圖,f4為編碼器分支提供的最后一個基礎特征圖,代表經過上采樣后的金字塔池化單元不同層級提取的上下文信息特征圖,參數(shù)a、b、c、d代表尺度重要性權重,網絡可以自動學習得到這些參數(shù),計算方式為:設置a+b+c+d=1,并且a,b,c,d∈(0,1),尺度重要性權重a的權重如下式計算:其中,att是由一個全局平均池化層和Sigmoid激活函數(shù)組成,通過同樣的方式,可以計算得到b、c、d。
總結,本文所提出的自適應上下文信息提取器不僅能夠提取多尺度的上下文特征,還能根據(jù)給定圖片中潛在的尺度分布自適應的將上下文信息進行加權融合,有效地提高了網絡對于尺度變化的魯棒性。
解碼器分支的作用是進一步聚合網絡提取的特征并進行上采樣,最終生成人群密度圖。本文中的解碼器單元與傳統(tǒng)的編碼器-解碼器網絡中的解碼器單元結構近似,如圖4所示,其中dink(k∈{1,2,3})代表該編碼器上一層模塊的輸出同時也是當前層級解碼器的原始輸入,yk(k∈{1,2,3})代表由dink從對應的自適應特征融合模塊獲得的增強特征圖。在經過兩層卷積層后得到該解碼器的輸出doutk(k∈{1,2,3})。
圖4 解碼器模塊Fig.4 Decoder branch
如圖3所示,本文的解碼器分支共由三個解碼器模塊構成,在得到最后一個解碼器分支的輸出dout1后,通過1×1卷積和ReLu激活函數(shù)生成最終的人群密度圖。
目前主流的人群計數(shù)數(shù)據(jù)集都只提供了圖中人頭中心位置的標注信息,本文采用歸一化高斯核濾波器[22]對每個人頭中心位置進行濾波操作,來生成網絡訓練所用的密度圖。δ(x-xi)表示位于圖片中坐標為xi的人頭中心點,那么,一張有N個人頭的圖片可以表示為:
再通過高斯核濾波器對人頭中心點進行濾波生成對應的人群密度圖,具體計算如下:
其中,Gσ代表高斯核濾波器,σ代表高斯核濾波器的標準差,由于不同數(shù)據(jù)集之間的樣本差異,本文根據(jù)不同的數(shù)據(jù)集訓練設置不同的超參數(shù)σ來制作對應的密度圖用于訓練。
對最終生成的人群密度圖進行積分操作即可得到圖像中人群的總數(shù)。
本文采用歐氏距離計算預測的密度圖與真實的密度圖之間的差值來對網絡中的參數(shù)進行優(yōu)化。損失函數(shù)的表達式如下:
其中,N為訓練集中圖片數(shù)量,yi代表網絡預測的密度圖,ti代表真實的人群密度圖。
在訓練中,將整幅圖像輸入到網絡中,每張圖像有一半的幾率會進行水平翻轉。使用Pytorch框架來進行模型的搭建,網絡中的參數(shù)在訓練前采用均值為0,標準差為0.01的高斯分布進行初始化。本文采用隨機梯度下降(Stochastic Gradient Descent,SGD)優(yōu)化器,動量因子設置為0.95,學習率初始為1×10-5,每個循環(huán)結束后學習率乘以參數(shù)0.95。
人群計數(shù)研究中普遍采用平均絕對誤差(Mean Absolute Error,MAE)和平均平方誤差(Mean Square Error,MSE)作為評價算法性能的指標,兩個指標定義如下:
其中,N是指測試集中圖片的數(shù)量,zi表示第i張圖片中預測的人群的數(shù)量表示第i張圖實際的人群數(shù)量。
上海ShanghaiTech數(shù)據(jù)集分為Part_A和Part_B兩部分:Part_A共有482張圖像,標注的行人累計有241 667個,其中訓練集有300張,測試集有182張;Part_B共有716張圖像,全部采集自上海街頭的監(jiān)控視頻,其中訓練集400張,測試集316張。ShanghaiTech是人群計數(shù)領域中相當有挑戰(zhàn)的數(shù)據(jù)集,也是目前被用來驗證算法性能最廣泛的數(shù)據(jù)集。表1為本文提出的算法與其他先進算法在ShanghaiTech數(shù)據(jù)集上的對比結果,從表1可以看到,本文提出的算法與ANF相比在Part_A上MAE減少了2.7,MSE減少了3.9;在Part_B上,本文提出的方法相比ANF算法MAE減少了0.6,MSE減少了0.9。
表1 ShanghaiTech數(shù)據(jù)集上的對比結果Table 1 Performance comparison with state-of-the-art methods on ShanghaiTech
UCF-CC-50是一個極度密集的數(shù)據(jù)集,該數(shù)據(jù)由50張不同分辨率大小的圖片組成,每張圖標注的人頭數(shù)量從94到4 543個,平均一張圖有1 280人。本文按照五折交叉實驗的方式對算法進行驗證。如表2所示,本文所提出的自適應特征融合網絡相比之前的算法,提升較為明顯,與ANF算法相比,本文提出的算法MAE減少了40.8,MSE則較減少了37.3。
表2 UCF-CC-50數(shù)據(jù)集上的對比結果Table 2 Performance comparison with state-of-the-art methods on UCF-CC-50
UCF-QNRF是近年提出的一個具有挑戰(zhàn)性的高密度場景數(shù)據(jù)集,包含1 535張人群圖片,其中訓練集1 201張,測試集334張,平均每張圖片的人數(shù)為815個。如表3所示,本文提出的算法之前的算法相比,無論是MAE還是MSE均取得了最佳結果。
表3 UCF-QNRF數(shù)據(jù)集上的對比結果Table 3 Performance comparison with state-of-the-art methods on UCF-QNRF
為了驗證算法各模塊的有效性,本文在ShangHaitech Part_A數(shù)據(jù)集上采用第2章所提到訓練方法和性能指標進行了如表4所示的消融實驗。
表4 ShanghaiTech Part_A數(shù)據(jù)集上消融實驗Table 4 Ablation study on ShanghaiTech Part_A dataset
其中,U-Net為基于VGG16[17]網絡搭建的基礎網絡,后續(xù)的改進是基于U-Net網絡進行,其在ShangHaitech Part_A數(shù)據(jù)集的MAE為84.6,MSE為139.4。如表4所示,自適應特征融合模塊對于基礎網絡性能的提升非常顯著,MAE減少了17.1,而MSE減少了31,因為自適應特征融合模塊增強了網絡對于深、淺特征的提取和融合能力,使網絡能夠充分利用淺層的邊緣細節(jié)和深層的語義信息。在基礎網絡上增加自適應上下文信息提取后,相比基礎網絡MAE減少了10.9,MSE則減少了29.1,這說明在獲得自適應加權的多感受野下的上下文信息后,網絡能夠更好地對不同大小的人頭進行更好的判別,進而提高了網絡對于尺度變化的魯棒性。將自適應特征融合模塊和自適應上下文信息提取器同時結合到基礎網絡,即為本文所提出的自適應特征融合網絡,該算法融合了兩種模塊的優(yōu)點,因而在ShangHaitech Part_A數(shù)據(jù)集達到了先進的水平。
算法的可視化結果如圖5所示,從左至右為輸入的圖片、真實的人群密度圖和網絡預測的人群密度圖。從結果來看,對于不同密度的人群,本文所提出的自適應特征融合網絡都能保持較好的泛化能力,對于背景和前景幾乎都能正確地進行辨別,對于圖像中人頭的尺度變化具有較強的魯棒性。這說明網絡充分地利用了深、淺特征和不同感受野下的上下文信息,進一步提升了網絡對于圖像中人頭區(qū)域的特征采集和辨別能力,從而在多個數(shù)據(jù)集上達到了先進水平。
圖5 算法可視化結果Fig.5 Visualized result
針對于人群計數(shù)中尺度變化和多層級特征融合不佳的問題,本文研究并提出了自適應特征融合網絡。提出設計自適應特征融合模塊,來有效地利用解碼器中不同層次的特征信息來提高網絡整體的信息融合能力;提出自適應上下文信息提取器,提高了網絡對于尺度變化的魯棒性。最后,通過實驗證明,本文提出的算法是有效的,適用于多種場景,并在多個數(shù)據(jù)上取得了較好的結果。然而,目前人群計數(shù)研究的重點大多是放在靜態(tài)圖的密度預測上,而實際應用中多是視頻流的在線預測,因此,下一步將研究連續(xù)視頻流的人群計數(shù),在保證算法準確度的前提下,提高網絡的實時性能,并合理利用從視頻前幀中提取的信息。