桑軍, 劉新悅, 吳志偉, 王富森
重慶大學 大數據與軟件學院, 重慶 401331
由于城市進程化加快, 各類聚集活動猛增. 大型聚會、 演唱會、 體育盛會、 政治活動等都伴隨著人群過載、 難以管控的問題. 若是調控不當, 人群散亂沖撞, 極易發生嚴重的踩踏事故. 人群聚集是一種趨勢, 在計算機時代, 我們可以利用計算機視覺技術對人群進行分析, 提前做好應急措施, 避免此類事件的發生. 人群分析是計算視覺的一個高熱度研究領域, 包含人群計數、 行人檢測、 行人追蹤等方向. 而人群計數是人群分析中的重要課題, 通過對單張圖片中的行人進行計數, 其模型可以應用到實時監控中, 對人群管控起到很大作用.
當前人群計數研究[1-2]大多采用卷積神經網絡(CNN)生成單張圖像對應的密度圖, 通過對密度圖積分得到具體人數. 生成的密度圖質量決定了計數效果的好壞. 但是在人群個體尺度變化、 復雜背景干擾、 人群之間嚴重遮擋等問題的影響下, 人群計數仍然是一項具有挑戰性的研究課題. 其中復雜背景干擾會使得卷積神經網絡將形狀類似人群頭部的樹葉、 路燈等當作人群進行計數, 造成計數誤差, 使模型效果變差. 為了減少復雜背景的影響, 不少學者采用了注意力機制方法, 將網絡注意力集中到人群區域, 弱化背景, 提高計數效果. 文獻[3]提出采用注意力機制, 提高人群區域注意力, 降低背景噪聲影響. 但是采用注意力機制的網絡大都使用了VGG[4]或者CSRNet[5]為基準網絡, 雖然計數結果不錯, 但網絡的參數量過大, 推理速度慢. 其他學者還研究了通過多任務學習的方式降低背景影響. 文獻[6]將復雜背景作為網絡的輔助任務, 還采用了尺度變化, 生成深度圖等共3個輔助任務, 但其基準網絡參數量大. 文獻[7]采用了人群密度分級、 背景分割輔助任務增強語義信息, 網絡結構簡單, 參數量小, 但計數結果一般.
由于多任務學習方法能解決復雜背景干擾問題, 且選擇恰當的前端網絡可以使得網絡參數量減少, 因此, 本文提出了一個基于背景輔助的高效人群計數多任務學習網絡(an efficient background assistance based multi-task network for crowd counting, BAMTLNet). 與人群計數網絡中大量采用VGG[4]前10層作為前端網絡不同, 我們僅采用VGG[4]網絡的前7層, 以減少網絡的參數量. 在后端網絡中, 我們提出了2個分支, 分別是生成估計密度圖主任務分支和復雜背景分割輔助任務分支. 生成估計密度圖的主任務分支采用3個卷積層生成估計密度圖, 用于積分得到人數. 復雜背景分割輔助任務分支采用三層空洞卷積層生成背景分割圖, 利用多任務學習機制, 為主任務分支提供背景的語義信息, 優化網絡參數, 以降低復雜背景對計數的影響. 此外, 我們為該多任務學習網絡設計了背景輔助融合多任務損失函數. 經訓練, 該網絡能在人群計數基準數據集上達到不錯的效果, 網絡參數少, 推理速度快.
本文主要貢獻如下:
1) 提出了一個基于背景輔助的高效人群計數多任務學習網絡, 包含生成估計密度圖主任務分支和復雜背景分割輔助任務分支, 減少復雜背景對計數的影響, 網絡參數量小.
2) 針對上述網絡提出了背景輔助多任務損失函數.
3) 在人群計數基準數據集上與多種算法進行了對比實驗[8-17], 并得到了不錯的實驗結果.
如圖1所示, 本文給出了網絡的具體結構. 該多任務學習網絡由前端網絡和后端網絡組成. 為了減少網絡參數量, 我們并沒有采取常見的VGG[4]前10層作為前端網絡的做法. 因為后3層的通道數為512, 為了減少網絡體積且不損失太多精度, 我們采用前7層來提取初級特征. 為了加快訓練速度, 使網絡快速收斂, 我們在每個卷積層后加入了BN(batch normalization)層. 在后端網絡中, 我們采用了多任務學習、 硬參數共享的機制, 分割出兩個任務分支共享同一個前端網絡參數. 為了獲取單張圖片計數, 我們基于估計密度圖計數方法, 設計了生成估計密度圖主任務分支. 該分支由帶BN層的Conv4和Conv5卷積層組成, 并通過Conv1×1的卷積層生成最終的估計密度圖用于積分得到人數. 為了獲取關于背景的高級語義信息, 我們設計了復雜背景分割輔助任務分支. 該分支由Conv6和Conv7兩個空洞卷積層組成, 空洞率為2, 與主任務分支相似, 其通過Conv1×1的卷積層生成最終的背景分割圖. 在多任務聯合學習基礎下, 兩個任務通過共享前端網絡參數, 輔助任務通過反向傳播過程傳遞背景語義信息, 優化整個網絡參數, 降低復雜背景造成的計數影響. 與其他復雜網絡相比雖沒有更準確的精度, 但我們的網絡僅有10層卷積層, 網絡復雜度小, 參數量小.
為了更好地訓練上述多任務學習網絡, 我們設計了背景輔助多任務損失函數. 針對生成估計密度圖的主任務, 我們采用歐幾里得損失計算真實密度圖標簽與估計密度圖之間的差值. 針對復雜背景分割輔助任務, 我們同樣采用歐幾里得損失計算真實背景分割圖標簽與估計分割圖之間的差值, 兩個損失如下:
(1)
(2)
其中:N表示在一個訓練批次中輸入圖片的數目,F(g)是歐幾里得距離,Dgt表示真實密度圖,Dest表示網絡生成的估計密度圖,Sgt表示真實背景分割圖標簽,Sest表示估計背景分割圖,Xi為輸入圖片,Θ為網絡參數.
對于該網絡, 我們采用了多任務聯合學習的方式訓練, 最終的損失函數為:
L=LD+LS
(3)
在網絡訓練之前, 我們需要制作真實密度圖與背景分割圖標簽. 我們采用了人群計數中常見的真實密度圖標簽生成方法[8], 利用幾何自適應高斯核與人群頭部標注點圖生成真實密度圖:
(4)

在真實密度圖的基礎上, 我們對圖中的非零像素值取1, 否則取值0, 可以得到背景分割圖標簽:
(5)
其中p為真實密度圖Di(p)中的第i個像素.
我們在實驗中使用了3個人群計數基準數據集, 分別為ShanghaiTech[8], UCF_CC_50[9]和UCF_QNRF[17].
ShanghaiTech數據集[8]分為Part A和Part B兩部分. 每部分都有訓練集和驗證集. 每張圖片有對應的點標簽, 包含1198張圖片, 330 165個注釋頭部. 它是目前使用最為廣泛的人群計數基準數據集.
UCF_CC_50數據集[9]包含50張圖像, 人群數量變化大, 十分具有挑戰性. 由于其數據集太小, 我們在訓練時采用了五折交叉驗證的方法.
UCF_QNRF數據集[17]是一個從網絡收集的大規模數據集, 包含透視場景和復雜背景的1 535張高分辨率圖像, 其人數從50到12 000不等.
本次訓練采用Tesla K80顯卡. 針對不同的數據集我們設置了不同的高斯核標準差, 對于比較稀疏的ShanghaiTech PartB, 我們設置了σ為15.0, 對其他較為密集的數據集我們設置了σ為4.0. 為了提高網絡的泛化性能, 我們采用了數據增強的方法. 我們首先對圖片進行隨機裁剪, 之后進行左右翻轉、 灰度化以及增強圖像對比度. 實驗中, 我們設置了4 000個epoch, batch size的大小為64, 學習率為5×10-6, 采用的優化器為Adam.
在所有實驗中, 我們采用了常見的平均絕對誤差(MAE)和均方根誤差(RMSE)對計數精度進行評價. 兩個評價指標定義如下:
(6)
(7)

本文提出了基于背景輔助的高效人群計數多任務學習網絡(BAMTLNet). 為了減少網絡參數量, 我們使用了VGG的前7層作為前端網絡提取初級特征. 為了降低復雜背景對計數的影響, 后端使用多任務網絡硬參數共享機制, 即生成估計密度圖的主任務分支與復雜背景分割輔助任務分支共享前端網絡參數. 為了更好地訓練網絡, 我們提出了背景輔助多任務損失函數. 為了證明復雜背景分割輔助任務分支的作用, 我們針對網絡分支做了消融實驗. 我們在3個人群計數基準數據集上與其他研究進行了對比實驗. 實驗證明, 我們的網絡在精度與網絡輕量化上都達到了不錯的效果.
為檢驗BAMTLNet中, 背景分割輔助任務能降低復雜背景對計數精度的影響, 我們對復雜背景分割輔助任務分支進行了消融. 如表1所示, 我們在ShanghaiTech Part A上分別做了包含輔助任務分支與不包含輔助任務分支的實驗. 可以看出, 加上輔助任務后, 計數精度提高了1.3, 表明加入背景分割輔助任務后, 網絡學習到了背景的語義信息, 提高了計數性能.

表1 BAMTLNet在ShanghaiTech Part A上的消融實驗結果
為檢驗BAMTLNet在不同數據集上的性能, 我們在ShanghaiTech Part A, ShanghaiTech Part B, UCF_CC_50和UCF_QNRF上進行了實驗, 并與其他人群計數網絡進行了對比.
表2展示了BAMTLNet在ShanghaiTech數據集上的性能. 在對比結果表格中, 我們的網絡在ShanghaiTech數據集上取得了不錯的結果. Part A的結果是67.1, 雖然沒有比上ADCrowdNet[3]的結果, 但是我們的網絡參數量更小. 在Part B上, 我們得到了更好的MAE值, 為7.8. 相比于ADCrowdNet[3]提高了4.9%.

表2 ShanghaiTech數據集上的對比實驗結果
表3展示了UCF_CC_50數據集上的對比實驗. 其中, 我們的實驗結果MAE為241.7, 比PCC Net[7]低1.7. 可能是由于該數據集圖片數量太少, 做五折交叉驗證時劃分5個圖片集的劃分方式導致我們的實驗結果略低.

表3 UCF_CC_50數據集上的對比實驗結果
表4展示了UCF_QNRF數據集上的對比實驗結果. 我們的網絡在該數據集上表現不錯. 其中MAE為101.5,RMSE為167.8. 在數據集足夠的情況下, 我們的網絡也可以在密集數據集上達到很好的性能.

表4 UCF_QNRF數據集上的對比實驗結果
為了證明BAMTLNet網絡參數量小, 我們對網絡參數量進行了計算比較, 見表5. 可以看出BAMTLNet網絡參數量為2.47×106, 低于3×106但未低至1×106以下. 我們認為在一定程度上, 參數量的增加可以帶來一定的精度提升. 而參數量太小, 網絡學習到的特征越少, 精度也會下降. 我們在精度與輕量化中取舍, 保證一定的精度又適當地降低網絡的參數量, 使網絡達到不錯的性能. 一方面, 模型參數量一定程度上反映了模型的計算量和所需時間. 另一方面, 在具體比較計算時間時, 因實驗環境要求非常嚴格, 需要保證完全相同的環境參數. 因此, 本文未對比各模型在不同數據集上的計算時間. 然而, 在網絡模型參數量方面, 我們的模型達到了2.47 M的參數輕量化, 能在網絡訓練階段減少訓練時間. 同時, 在人群計數精度方面, 我們在ShanghaiTech Part A上獲得了較為令人滿意的結果.

表5 網絡參數量對比
圖2展示了BAMTLNet的可視化結果. 第一列表示原圖像; 第二列表示真實標簽密度圖; 第三列表示網絡所生成的估計密度圖. 我們在3個數據集上對真實密度圖與估計密度圖做出了評估, 并將其可視化. 可以看出, BAMTLNet生成的估計密度圖與真實密度圖標簽相差不大, 但在個別密集的區域會有些許的偏差. 因為我們的網絡更關注圖片的背景而非極度密集場景. 總體來說, BAMTLNet能完整生成圖片的密度圖并估計人數, 性能表現優秀.

圖2 BAMTLNet的可視化結果
本文提出了基于背景輔助的高效人群計數多任務學習網絡(BAMTLNet). 為了減少網絡參數量, 我們使用了VGG的前7層作為前端網絡提取初級特征. 為了降低復雜背景對計數的影響, 后端使用多任務網絡硬參數共享機制, 采用生成估計密度圖的主任務分支與復雜背景分割輔助任務分支共享前端網絡參數. 為了更好訓練網絡, 我們提出了背景輔助多任務損失函數. 為了證明復雜背景分割輔助任務分支的作用, 我們針對網絡分支做了消融實驗. 我們在3個人群計數基準數據集上與其他研究進行了對比實驗. 實驗證明, 我們的網絡在精度與網絡輕量化上都達到了不錯的效果.