摘" 要:人群計數(shù)作為計算機視覺和模式識別任務(wù)中重要的子課題,在智能監(jiān)控中發(fā)揮著極其重要的作用。對于被嚴重遮擋的月牙形人頭,傳統(tǒng)高斯核生成方法找到的月牙形視覺中心嚴重偏離人類標注的完整圓形中心,導致算法在訓練中不易收斂。針對嚴重遮擋情況下的人群計數(shù)誤差問題,提出一種基于可變形高斯核的訓練數(shù)據(jù)生成的人群計數(shù)方法,對基于人類標定結(jié)果生成的高斯核的形狀、角度和位置進行高效調(diào)整,從而提升算法的收斂性和精度。實驗結(jié)果表明,該方法可以顯著提升人群計數(shù)的性能。
關(guān)鍵詞:人群計數(shù);高斯核;卷積神經(jīng)網(wǎng)絡(luò)
中圖分類號:TP391.4;TP183 文獻標識碼:A 文章編號:2096-4706(2024)10-0037-05
A Crowd Counting Method Generated Based on Training Data of Deformable Gaussian Kernels
CHEN Shujun
(CRSC Communication amp; Information Co., Ltd., Beijing" 100070, China)
Abstract: Crowd counting, as an important sub topic in computer vision and pattern recognition tasks, plays an extremely important role in intelligent monitoring. For crescent-shaped human heads that are severely occluded, the crescent-shaped visual center found by traditional Gaussian kernel generation methods deviates significantly from the complete circular center annotated by humans, making it difficult for the algorithm to converge during training. A crowd counting method generated based on training data of deformable Gaussian kernel is proposed to address the issue of crowd counting errors in severe occlusion situations. The method adjusts efficiently the shape, angle, and position of the Gaussian kernel generated based on human calibration results, thereby improving the convergence and accuracy of the algorithm. The experimental results show that this method can significantly improve the performance of crowd counting.
Keywords: crowd counting; Gaussian kernel; Convolutional Neural Networks
0" 引" 言
如今,人工智能技術(shù)迅速發(fā)展,并且在全球范圍內(nèi)普及,以往需要大量人力的工作,現(xiàn)在完全可以由計算機完成[1]。人群計數(shù)是計算機視覺領(lǐng)域中的一個熱門研究課題,其目的是通過計算機對輸入圖像進行處理來估計圖像中的人數(shù)。隨著人口數(shù)量的激增,在火車站、旅游景點、商場等諸多場景中,都會出現(xiàn)大量人群快速聚集的情況。而人群計數(shù)能夠針對這些特定場景下的人群目標數(shù)量進行估計,做到對重大事件的事先警告以及在事后復(fù)盤中發(fā)揮重要作用[2,3]。此外,人群計數(shù)方法也能夠輔助實現(xiàn)實時估計場景人數(shù),進而對各個場景中人數(shù)進行有效的管控,減少人群的聚集。
近年來人群行為分析常用的基礎(chǔ)方法是基于卷積神經(jīng)網(wǎng)絡(luò)[4-7]深度學習的人群計數(shù)系統(tǒng),其主要原理是:通過大量的訓練,讓卷積神經(jīng)網(wǎng)絡(luò)自動學習人類頭部的主要特征(例如近似圓形,相對于背景來說顏色較深的頭發(fā)等),最終將網(wǎng)絡(luò)輸出的卷積圖與事先做好的、使用類似于人頭形狀的二維高斯核密度函數(shù)(以下簡稱高斯核)來表示每個人頭所在的位置的人群密度圖的對比差異。因為單個高斯核在人群密度圖中的各個像素點處數(shù)值的積分之和為1,所以只需要統(tǒng)計輸出的人群密度圖中屬于各個高斯核的像素點處數(shù)值的積分總和,系統(tǒng)就可以得到對原始畫面中總?cè)藬?shù)的估計數(shù)值。系統(tǒng)將其對總?cè)藬?shù)的估計數(shù)值與訓練數(shù)據(jù)中的實際數(shù)值,以及網(wǎng)絡(luò)輸出的卷積圖與訓練數(shù)據(jù)中的人群密度圖之間的差異,作為網(wǎng)絡(luò)反向誤差傳播的依據(jù),最終通過迭代,修改網(wǎng)絡(luò)中的相關(guān)參數(shù),訓練網(wǎng)絡(luò)對于人頭形狀目標的識別能力。
然而在現(xiàn)實中人群圖片中大量存在一個現(xiàn)象,即人頭因為互相遮擋而出現(xiàn)重疊,并且按照透視關(guān)系原理,兩個相互遮擋的人頭在攝像機視角方向的中心點位置越接近,其相互重疊的面積比例越高。按照現(xiàn)有方法,相互重疊的兩個人頭都用各向均等的圓形高斯核來代表,而在原始人群圖片中位置靠前的人頭擁有比較完整、清晰的圓形邊緣,與訓練數(shù)據(jù)中的圓形高斯核的形狀非常近似,卷積神經(jīng)網(wǎng)絡(luò)可以比較容易地通過學習訓練數(shù)據(jù),將其識別出來;而位置靠后被遮擋的人頭依照重疊程度的大小呈現(xiàn)不同程度的月牙形,其視覺重心向未重疊部分移動。此時,如果繼續(xù)使用圓形高斯核,由于高斯核自身的性質(zhì),其越接近圓心處灰度數(shù)值越大,兩個相互重疊的圓形高斯核的視覺重心位于其中心點連線附近。此時就會使得被遮擋的人頭在原圖中的視覺中心,不僅與對應(yīng)的被遮擋的高斯核在訓練數(shù)據(jù)人群密度圖中得視覺重心不一致,還容易與遮擋其的人頭對應(yīng)的高斯核融合成一個整體,人群計數(shù)系統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)不容易通過對圓形的高斯核的訓練,學習到被遮擋的人頭的特征規(guī)律并將其與前方遮擋其的人頭分開,最終導致算法訓練不易收斂,訓練結(jié)果不確定性大,系統(tǒng)輸出的人群密度圖不準確,人群計數(shù)的誤差較大。
針對上述問題,本文提出了一種人群計數(shù)系統(tǒng)中基于可變形高斯核的訓練數(shù)據(jù)生成方法,其有效地增加了訓練數(shù)據(jù)的人群密度圖與真實圖像的特征相似性,使卷積神經(jīng)網(wǎng)絡(luò)更容易學習到訓練數(shù)據(jù)與真實圖像之間的規(guī)律,提高了人群計數(shù)系統(tǒng)的精確性。我們分別在具有挑戰(zhàn)性的Shanghai Tech_A [8]、Shanghai Tech_B [8]、UCF_QNRF [9]和UCF_CC_50 [10]數(shù)據(jù)集上進行了大量的實驗來驗證本文所提出模型的結(jié)果。實驗結(jié)果表明,我們的方法大大優(yōu)于當前主流的人群計數(shù)方法。
1" 相關(guān)方法
鑒于現(xiàn)有的絕大部分人群計數(shù)數(shù)據(jù)庫中只給出圖片中的人頭二維坐標作為訓練數(shù)據(jù)(即訓練算法去完成的目標),為了便于系統(tǒng)將輸出的人群密度圖與訓練數(shù)據(jù)進行誤差比對,優(yōu)化卷積神經(jīng)網(wǎng)絡(luò)的訓練效果,系統(tǒng)需要將訓練數(shù)據(jù)中每個人頭的二維坐標,轉(zhuǎn)化為畫面中類似人頭的形狀。因此,人群計數(shù)系統(tǒng)的訓練數(shù)據(jù)生成方法,均采用二維高斯核密度函數(shù),以每個人頭位置坐標為中心點,在畫面中生成用于訓練的模擬人頭形狀,以達到對更好訓練效果。
如上所述,人群計數(shù)系統(tǒng)的訓練數(shù)據(jù)生成中,最關(guān)鍵的一個步驟就是以人頭的二維坐標為中心點,生成與之對應(yīng)的高斯核,為了解釋高斯核的具體生成方法,首先將連續(xù)型二維高斯函數(shù)的表達式展示如下:
(1)
其中,(x0,y0)為該函數(shù)的中心點位置,即人頭坐標。σx與σy分別為該函數(shù)在x軸方向與y軸方向的方差。考慮到人頭基本可以視作圓形,為了便于計算,上述文獻中默認取σx = σy。
于是在離散域內(nèi),一個尺度為(2k+1)×(2k+1)離散的高斯核可以被表示為:
(2)
其中,A為為了使高斯核截止區(qū)域內(nèi)各個像素點的高斯核灰度數(shù)值積分后等于1而設(shè)置的常數(shù),其數(shù)值并不一定等于式(1)中的1/2πσxσy項的數(shù)值,需要根據(jù)實際情況加以調(diào)整,調(diào)整的目的是使得屬于同一個人頭head對應(yīng)的那個高斯核的各個離散像素點的灰度數(shù)值相加總和為1,因此,其計算方法如下:
(3)
將式(3)稱為:傳統(tǒng)人群計數(shù)系統(tǒng)的離散高斯核表達式。系統(tǒng)對訓練數(shù)據(jù)中的每一個人頭的坐標,重復(fù)上述過程,然后將生成的所有高斯核離散像素點的灰度數(shù)值以疊加的方式繪制在同一張畫面中,就完成了訓練數(shù)據(jù)的生成。
2" 本文方法
本文提供一種人群計數(shù)系統(tǒng)中基于可變形高斯核的訓練數(shù)據(jù)生成方法,該方法有效地增加了訓練數(shù)據(jù)的人群密度圖與真實圖像的特征相似性,使卷積神經(jīng)網(wǎng)絡(luò)更容易學習到訓練數(shù)據(jù)與真實圖像之間的規(guī)律,提高了人群計數(shù)的精確性。
為實現(xiàn)上述目的,采取以下技術(shù)方案:一種人群計數(shù)系統(tǒng)中基于可變形高斯核的訓練數(shù)據(jù)生成方法,其包括以下步驟:
1)從訓練數(shù)據(jù)中找出一組相互重疊的高斯核,依次讀取使用傳統(tǒng)人群計數(shù)系統(tǒng)的高斯核生成的訓練數(shù)據(jù)中每個高斯核的中心點坐標(即人頭中心點坐標),將該高斯核記錄為被選取過的高斯核,并找出與之距離最近的另一個高斯核的中心點坐標。
對于上述兩個高斯核a與b中心點坐標分別為(x0_a,y0_a)與(x0_b,y0_b),其各自高斯核密度函數(shù)方差分別為σa與σb(因為原始訓練數(shù)據(jù)中的高斯核在二維坐標系下為圓形,故此處對每個高斯核用單一的方差數(shù)值),若其中心點坐標之間的幾何距離小于其方差相加之和,則認為這兩個訓練數(shù)據(jù)的高斯核在原始圖片中所對應(yīng)的人頭之間發(fā)生重疊,即這兩個高斯核之間發(fā)生重疊:
(4)
每個高斯核只與和自身中心點坐標之間的幾何距離最近的另一個進行是否相互重疊的判斷,若判斷結(jié)果為它們相互重疊,則將它們都作為被選取過的高斯核,然后轉(zhuǎn)至步驟2);否則,轉(zhuǎn)至步驟5)。
2)對被遮擋的高斯核,根據(jù)兩個高斯核的方差及其中心點距離,沿單坐標軸方向進行伸縮。對于被判斷為相互重疊的高斯核a與b,如果其中一個高斯核a的方差大于另一個高斯核b的方差,即σa>σb,則認為是a對應(yīng)的人頭離拍攝人群畫面攝像頭的直線距離更近,在畫面中a遮擋了b。
此時,需要對高斯核b沿坐標軸方向進行伸縮。將高斯核b的方差分解為分別沿x軸與y軸的兩個相互獨立的方差分量σb_x與σb_y,并默認將x軸方向作為高斯核a與b中心點坐標連線的方向。按照以下公式將被遮擋的高斯核b沿著x軸方向的方差分量減小,并保持高斯核b沿著y軸方向的方差分量不變,得到對高斯核b的經(jīng)過伸縮后的沿x軸與y軸的兩個相互獨立的方差" 與 ,如式(5)、式(6)所示:
(5)
(6)
將伸縮后的高斯核b的方差代入傳統(tǒng)人群計數(shù)系統(tǒng)的離散高斯核表達式,即式(3),就可以得到經(jīng)過伸縮后的離散高斯核表達式。
3)對被遮擋的高斯核,根據(jù)畫面坐標軸與兩個高斯核中心點連線的夾角,沿反時針方向進行旋轉(zhuǎn):
在實際中,高斯核a與b的中心點連線方向可能為人群密度圖畫面的二維坐標系中的任意方向,其不一定為b自身的x軸方向。假設(shè)人群密度圖畫面的x軸正向與高斯核a與b的中心點連線指向b的一端沿著反時針方向相差角度θ,則高斯核b需要以其中心點為原點,沿著反時針方向旋轉(zhuǎn)角度θ,如圖1所示。
將屬于人群密度圖畫面中的點的坐標(x,y)按照平面直角坐標系反時針方向旋轉(zhuǎn)角度θ的坐標變換規(guī)則進行變換,就得到該點在被遮擋的高斯核b旋轉(zhuǎn)后的坐標系中的坐標(x*,y*)。將該點在被遮擋的高斯核b旋轉(zhuǎn)后的坐標系中的坐標代入經(jīng)過伸縮后的離散高斯核表達式,得到經(jīng)過伸縮、旋轉(zhuǎn)后的離散高斯核表達式,如式(7)、式(8)所示:
(7)
(8)
圖1" 平面坐標系旋轉(zhuǎn)原理示意圖
4)對被遮擋的高斯核,根據(jù)兩個高斯核的方差及其中心點距離,沿兩個高斯核中心點連線方向進行中心點坐標調(diào)整。
由于高斯核b被a遮擋,其對應(yīng)的人頭在原始圖片中的視覺效果是,其未被遮擋部分(即可視部分)的幾何重心點實際上也發(fā)生了變化,即沿著人頭在其中心點連線向高斯核b對應(yīng)人頭的方向移動。為了保證人群密度圖的視覺特征與原始圖片接近,將高斯核b的中心點坐標沿著高斯核a與b的中心點連線方向,向著高斯核b的方向移動,移動的距離等于步驟2)中高斯核b的方差沿著x軸減少的數(shù)值 。通過上述操作完成對于對被遮擋的高斯核b的中心點坐標的調(diào)整。高斯核b調(diào)整后的中心點坐標(,)如下:
將被遮擋的高斯核b的調(diào)整后中心點坐標代入經(jīng)過伸縮、旋轉(zhuǎn)后的離散高斯核表達式,得到經(jīng)過伸縮、旋轉(zhuǎn)、中心點坐標調(diào)整后的離散高斯核表達式??勺冃蔚母咚购说男Ч鐖D2所示。
圖2" 可變形的高斯核的效果圖
5)判斷訓練數(shù)據(jù)中是否還有未被選取過的高斯核。如果訓練數(shù)據(jù)中還有未被步驟1)選取過的高斯核,則轉(zhuǎn)至步驟1);反之,則對人群密度圖中每個像素點,將其所屬的高斯核的灰度數(shù)值相加,并將得到的帶灰度數(shù)值的人群密度圖作為訓練數(shù)據(jù)輸出,結(jié)束。
綜上,本文使用可變形的高斯核代替?zhèn)鹘y(tǒng)方法中固定的圓形高斯核。當判斷出傳統(tǒng)的圓形存在相互遮擋的現(xiàn)象時,其認為高斯和對應(yīng)的人頭發(fā)生了相互遮擋。對于被遮擋的高斯核,本文通過依次使用伸縮、旋轉(zhuǎn)、中心點坐標調(diào)整等變形方法,將變形后的高斯核在人群密度圖中的視覺重心調(diào)整到與原始圖片中被遮擋的人頭露出來的部分的視覺重心基本一致,同時還增加了相互遮擋的高斯核的視覺重心之間的分離度,有利于卷積神經(jīng)網(wǎng)絡(luò)對于被遮擋的人頭的特征學習。因為被遮擋的高斯核的完整性沒有被破壞,所以本文保證了訓練數(shù)據(jù)中每個高斯核積分后的數(shù)值仍然為1,仍然滿足人群計數(shù)的要求。通過本文的改進,保證了訓練數(shù)據(jù)中作為目標的人群密度圖與實際圖片中的特征規(guī)律的一致性,增強了卷積神經(jīng)網(wǎng)絡(luò)的訓練效果,最終提高了人群計數(shù)的精確性。
3" 實驗結(jié)果與分析
本文在4個公開可用的數(shù)據(jù)集上進行實驗驗證,分別是Shanghai Tech_A(SHA)、Shanghai Tech_B(SHB)、UCF_QNRF(QNRF)和UCF _CC_50(UCF50)數(shù)據(jù)集。
實驗基于PyTorch [11]、CUDA 10.1下進行,并且在Ubuntu 18.04操作系統(tǒng)和NVIDIA GeForce RTX 3080的GPU條件下設(shè)置實驗。我們使用在ImageNet數(shù)據(jù)集上預(yù)訓練的VGG-16 [10]作為我們的骨干網(wǎng)絡(luò),并通過Adam優(yōu)化器以固定學習率2×10-4優(yōu)化網(wǎng)絡(luò),批量大小為8。為使模型充分訓練,在圖像的不同位置執(zhí)行隨機翻轉(zhuǎn)、剪切操作,以提升模型魯棒性。
3.1" 評估標準
我們遵循人群計數(shù)中常用的指標,使用平均絕對誤差(Mean Absolute Error, MAE)和均方誤差(Mean Squared Error, MSE)進行評估,其定義公示為:
其中,Ntest為測試圖像數(shù)量; 和yi分別為第i張測試圖像的實際人數(shù)和預(yù)測人數(shù)。
3.2" 實驗結(jié)果分析
我們在SHA、SHB、UCF50、QNRF四個數(shù)據(jù)集上將所提出方法與當前主流的人群計數(shù)方法進行比較,實驗結(jié)果如表1所示。所提出的方法在SHA、SHB數(shù)據(jù)集上的MAE和MSE分別能達到51.1、83.9和6.3、10.2,在UCF50數(shù)據(jù)集上的MAE和MSE分別能達到169.3和241.7,在QNRF數(shù)據(jù)集上的MAE和MSE分別能達到80.2和142.1。在四個數(shù)據(jù)集上均取得了出色的結(jié)果,足以證明本文所提出方法保證了訓練數(shù)據(jù)中作為目標的人群密度圖與實際圖片中的特征規(guī)律的一致性,增強了卷積神經(jīng)網(wǎng)絡(luò)的訓練效果,最終提高了人群計數(shù)的精確性。
同時,為了能夠直觀的展示本文方法的預(yù)測效果,列出了生成的預(yù)測密度圖的可視化結(jié)果,如圖3所示。本文方法能夠生成高質(zhì)量的人群密度圖,有效降低計數(shù)誤差,可以看出預(yù)測密度圖與原始真實圖十分接近。
4" 結(jié)" 論
人群計數(shù)存在煩瑣的數(shù)據(jù)標注問題,限制了其在實際場景中的應(yīng)用。本文提出一種人群計數(shù)系統(tǒng)中基于可變形高斯核的訓練數(shù)據(jù)生成方法,使用可變形的高斯核代替?zhèn)鹘y(tǒng)方法中固定的圓形高斯核。并分別在四個具有挑戰(zhàn)的數(shù)據(jù)集上進行實驗驗證,結(jié)果表明本文所提出方法可以取得更好的MAE和MSE,有效提升了算法的收斂性和最終的結(jié)果精度。
參考文獻:
[1] 蓋榮麗,蔡建榮,王詩宇,等.卷積神經(jīng)網(wǎng)絡(luò)在圖像識別中的應(yīng)用研究綜述 [J].小型微型計算機系統(tǒng),2021,42(9):1980-1984.
[2] SHAO J,KANG K,LOY C C,et al. Deeply Learned Attributes for Crowded Scene Understanding [C]//2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).Boston:IEEE,2015:4657-4666.
[3] CAO X K,WANG ZH P,ZHAO Y Y,et al. Scale Aggregation Network for Accurate and Efficient Crowd Counting [G]//Computer Vision – ECCV 2018.Munich:Springer,2018:757–773.
[4] LECUN Y,BOSER B,DENKER J S,et al. Backpropagation Applied to Handwritten Zip Code Recognition [J].Neural computation,1989,1(4):541-551.
[5] SAM D B,SAJJAN N N,BABU R V,et al. Divide and Grow: Capturing Huge Diversity in Crowd Images with Incrementally Growing CNN [C]//2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City:IEEE,2018:3618-3626.
[6] LIU J,GAO C Q,MENG D Y,et al. DecideNet: Counting Varying Density Crowds Through Attention Guided Detection and Density Estimation [C]//2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition.Salt Lake City:IEEE,2018:5197-5206.
[7] DING X H,LIN Z R,HE F J,et al. A Deeply-Recursive Convolutional Network For Crowd Counting [C]//2018 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP).Calgary:IEEE,2018:1942-1946.
[8] ZHANG Y Y,ZHOU D S,CHEN S Q,et al. Single-Image Crowd Counting via Multi-Column Convolutional Neural Network [C]//2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).Las Vegas:IEEE,2016:589-597.
[9] IDREES H,TAYYAB M,ATHREY K,et al. Composition Loss for Counting, Density Map Estimation and Localization in Dense Crowds [J/OL]. arXiv:1808.01050 [cs.CV].[2023-09-22].https://doi.org/10.48550/arXiv.1808.01050.
[10] IDREES H,SALEEMI I,SEIBERT C,et al. Multi-source Multi-Scale Counting in Extremely Dense Crowd Images [C]//2013 IEEE Conference on Computer Vision and Pattern Recognition.Portland:IEEE,2013:2547-2554.
[11] CHEN K M,COFER E M,ZHOU J,et al. Selene: A PyTorch-Based Deep Learning Library for Sequence Data [J].Nature methods,2019,16(4):315-318.
作者簡介:陳樹駿(1981—),男,漢族,江蘇南通人,高級工程師,本科,研究方向:視頻分析、周界入侵。