韓 晶,王希暢,呂學強+,張 凱
(1.北京信息科技大學 網(wǎng)絡(luò)文化與數(shù)字傳播北京市重點實驗室,北京 100101;2.首都師范大學 中國語言智能研究中心,北京 100089)
隨著社會的不斷發(fā)展,人們對精神生活的重視程度逐漸加深,商場、音樂節(jié)等公開場所的聚集人數(shù)顯著增加[1]。人數(shù)不可控的增長會造成危險事件的發(fā)生[2]。因此對聚集人群進行人數(shù)的實時檢測是必不可少的。
針對密集人數(shù)檢測領(lǐng)域,上??萍即髮W的Zhang等[3]提出了多列卷積神經(jīng)網(wǎng)絡(luò),通過使用不同尺寸的感受野,使每列卷積核提取不同尺寸人頭的特征;Li等[4]提出CSRNet網(wǎng)絡(luò),將空洞卷積應用至該領(lǐng)域。
然而,基于多尺度的檢測方法仍存在發(fā)展的空間[5]。由于在多列卷積神經(jīng)網(wǎng)絡(luò)中各個不同尺度相對獨立,不存在兼容性,因此在多尺度特征提取的基礎(chǔ)上進行特征融合可以在一定程度上解決多尺度存在的問題。同時采用有針對性優(yōu)化的損失函數(shù)進行訓練可以進一步提升密集人群計數(shù)效果。
綜上所述,本文擬在多列卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上設(shè)計多尺度網(wǎng)絡(luò)SGNet(same receptive field+GWTA loss),該網(wǎng)絡(luò)的主要工作可以分為以下幾個方面:
(1)提出一種圍繞相同感受野展開的多尺度特征融合方式SRF(same receptive field)以解決多列卷積神經(jīng)網(wǎng)絡(luò)目前存在的問題;
(2)設(shè)計一種融入網(wǎng)格贏家通吃(grid winner-take-all,GWTA)思想的損失函數(shù),解決目前損失函數(shù)存在的缺陷,利用該思想的優(yōu)勢彌補原損失函數(shù)的不足;
(3)對UCF-QNRF等多個密集人群數(shù)據(jù)集進行訓練,通過對比分析驗證該方法的有效性,觀察不同方法對同一數(shù)據(jù)集的測試結(jié)果并進行分析理解,以此驗證該方法的魯棒性及可移植性。
密集人群圖像中的人頭尺度差距較大,距離攝像頭越近人頭尺度越大,反之越小。采用單一尺度的深度神經(jīng)網(wǎng)絡(luò)很難獲得較為準確的計數(shù)結(jié)果,因此為了更好地學習到不同尺度的語義特征,本文將多列卷積神經(jīng)網(wǎng)絡(luò)(multi-column CNN,MCNN)作為所提算法SGNet的主體框架,其核心思想為利用多列不同大小的卷積核對人群圖像進行特征提取,實現(xiàn)了從多尺度的角度針對不同大小的人頭進行全面人群計數(shù)分析。
但隨著卷積層的逐漸加深、特征圖的逐漸變化,上層的圖像特征可能會出現(xiàn)部分丟失的情況,在一定程度上影響網(wǎng)絡(luò)的訓練及人群計數(shù)的精度,且3列不同尺度的特征提取層之間缺少關(guān)聯(lián)性。原網(wǎng)絡(luò)將圖像輸入至不同列進行特征提取后,僅在最后一層將其進行組合,卷積核運算過程中缺少互融性,因此各個尺度獨立地對圖像進行特征提取仍存在可提升的空間。
同時原多列卷積神經(jīng)網(wǎng)絡(luò)的損失函數(shù)著重針對整體預測圖與標簽圖進行損失計算,計算范圍為圖像全部區(qū)域。但由于是對整體圖像進行計算及優(yōu)化,優(yōu)化過程較粗略,無法精準地對訓練過程中損失值較大的特征點進行優(yōu)化。因此,對于原始網(wǎng)絡(luò)的損失函數(shù)仍存在待解決的問題及可提升的空間。
針對上述問題本文提出一種多尺度特征融合的密集人群計數(shù)網(wǎng)絡(luò)SGNet,利用相同感受野的特征融合方法來加強不同列特征之間的關(guān)聯(lián),同時引入GWTA思想重構(gòu)損失函數(shù),使其對圖像進行針對性優(yōu)化,以提升網(wǎng)絡(luò)對局部特征的認知能力。以下將針對上述兩部分及訓練相關(guān)細節(jié)進行詳細闡述。
為更好地凸顯多尺度特征提取的優(yōu)勢,打破多列卷積神經(jīng)網(wǎng)絡(luò)的桎梏,放大相同感受野的特征;同時為盡可能減少卷積核操作過程中特征的丟失,采取圍繞相同感受野SRF展開的特征融合方法對不同尺度提取的特征進行互融。SRF是一種在多尺度網(wǎng)絡(luò)中圍繞相同感受野實現(xiàn)特征融合的方法,其將不同列中相同感受野的卷積核進行連接,在多尺度網(wǎng)絡(luò)特征互融的過程中增加同一性。
圖1為融合SRF的多尺度結(jié)構(gòu)圖,首先將原始人群圖像輸入至3列不同大小的卷積核中進行特征運算,感受野大小分別為9*9、7*7和5*5,通道數(shù)設(shè)為16、20和24,見表1。利用不同尺度的卷積核對圖像進行卷積操作可以使特征適應圖像中不同大小的人頭,有效地分析圖像并對人群進行計數(shù);其次,每列均包含卷積、池化及SRF特征融合過程,利用相似的結(jié)構(gòu)使圖像特征具有關(guān)聯(lián)性及全面性。
圖1 融合SRF的多尺度結(jié)構(gòu)
(1)卷積過程:該網(wǎng)絡(luò)涉及3列不同尺度的卷積操作,每列分別包含兩種不同尺度的卷積核,以此適應人頭尺度的變化。從第二列開始每列感受野較大的卷積核大小與前一列較小的卷積核大小相同。通過設(shè)置不同的卷積核參數(shù)使之具有不同的特性,同時依據(jù)卷積核的變化對通道數(shù)進行設(shè)計。兩列特征互融后的卷積核通道數(shù)需要依據(jù)輸入特征信息進行設(shè)計,達到特征融合的目的;
(2)池化過程:網(wǎng)絡(luò)中每列涉及兩次池化操作,以2*2為池化單位進行最大池化操作。通過池化對圖像特征進行降維,使訓練過程中可以抽取的特征范圍更加全面,增大感受野;同時減少訓練參數(shù)量,在一定程度上提升網(wǎng)絡(luò)計算效率。經(jīng)過兩次池化操作,圖像在不同列分辨率均降低為原圖像的1/4。3列設(shè)計相同的池化次數(shù)方便后續(xù)的特征圖拼接,使每列輸出的特征圖具有相似性;
(3)相同感受野SRF特征融合過程:不同感受野的卷積核映射不同內(nèi)容的特征,以此突出特征多樣性;感受野較大的卷積核可以針對尺度較大的人頭進行有效特征提取,感受野較小的卷積核可以針對細節(jié)特征進行分析。SRF特征融合的主要思想為將不同列的相同感受野的特征進行融合并將其作為下一層卷積核的輸入,以此達到密集人群圖像中相同感受野的特征互融的目的。將相同大小的特征圖以合并通道的方式相連,使其包含兩類經(jīng)過不同卷積運算的特征圖,即將卷積后的高層分辨率特征與低層分辨率特征相結(jié)合,使之同時具有特征細節(jié)以及較強的特征信息。
表1 網(wǎng)絡(luò)參數(shù)結(jié)構(gòu)
如圖1所示,在第二列中首先原圖像會經(jīng)過卷積核conv2_1進行該列較大感受野的特征提取,卷積核大小為7*7;之后對輸出特征圖進行池化操作,使特征圖分辨率降低為原圖像的1/2,增大感受野;再將池化后的特征圖與第一列經(jīng)過卷積核大小同樣為7*7生成的特征圖進行融合。由于兩部分特征圖均經(jīng)過一次池化過程且分辨率相同,故利用合并通道的方式進行特征融合,將生成的特征圖輸入至第一列的卷積核conv1_3,針對融合后的特征圖進行卷積操作,以此完成第一列與第二列SRF特征融合的過程。同理,對第三列經(jīng)過卷積核conv3_1輸出的特征圖進行池化操作,將其與第二列分辨率相同的特征圖進行融合,并將融合后的特征圖輸入至卷積核conv2_3,以此完成第二列與第三列SRF特征融合的過程。
利用相同感受野方法實現(xiàn)特征融合可以增強網(wǎng)絡(luò)的連貫性與互通性,使其同時具有該列卷積核提取的特征與其它列生成的特征;再將融合后的特征圖一同輸入至下一卷積核進行操作,3列相同的特征融合模塊使列與列之間具有相似性。綜上所述,該網(wǎng)絡(luò)可以打破原網(wǎng)絡(luò)獨立提取特征的限制,增強列與列的關(guān)聯(lián)性。
為提升基于多尺度特征融合網(wǎng)絡(luò)訓練的效果,解決全局損失計算的紕漏,在損失函數(shù)部分引入網(wǎng)格贏家通吃GWTA的思想,圍繞該思想進行損失函數(shù)的設(shè)計可以在一定程度上對網(wǎng)絡(luò)訓練進行優(yōu)化。GWTA思想是指有選擇性地關(guān)注設(shè)定指標較高值的區(qū)域,有針對性地優(yōu)化學習過程。打破原有平均計算方法的限制,在計算損失函數(shù)時著重關(guān)注不同區(qū)域的損失值,不同區(qū)域的損失值不同,代表著不同特征的性能。同時其學習訓練的效果也不同,通過計算指標值定位較重要的特征區(qū)域,類似于增加注意力機制的思想。觀察不同區(qū)域的損失值變化可以得到重要的區(qū)域特征,以此進行有針對性地優(yōu)化。
綜上所述,在學習過程中設(shè)置“贏家”神經(jīng)元且僅允許該神經(jīng)元通過激活單元,可以獲取輸入數(shù)據(jù)中較重要的特征,利于優(yōu)化訓練。打破不同特征相同權(quán)重的桎梏,通過計算使得每個特征的重要性得以顯現(xiàn),以此針對較重要特征進行學習。
(1)
GWTA_Loss(n)=Max{Loss1,Loss2,Loss3…Lossn}
(2)
在損失函數(shù)中應用GWTA思想可以達到將梯度更新優(yōu)化限制在計算損失值最大的空間區(qū)域的目的;使其在每次迭代訓練中,著重關(guān)注損失值高的區(qū)域,針對較難訓練及差異較大的區(qū)域進行優(yōu)化,學習更好的特征[7]。
1.3.1 人群密度圖
為清晰地顯示人群信息,模型采用密度圖生成的方式進行訓練。人群密度圖保留了更多的人群信息。與單一人群數(shù)值相比更具有空間性,可以通過觀察密度圖分布了解目前人群聚集情況。同時基于多列卷積神經(jīng)網(wǎng)絡(luò)進行特征提取時,不同尺寸的卷積核適應不同大小的人頭,利用與原圖像相對應的真實人群密度圖作為標簽圖可以使卷積核提取特征的過程具有更強的語義意義,從而提升人數(shù)檢測的準確性[3]。
由于需要將人群密度圖作為標簽原圖輸入至網(wǎng)絡(luò)進行訓練,故針對人臉標記生成質(zhì)量較高的人群密度圖是提升網(wǎng)絡(luò)性能的基礎(chǔ)。首先需要將人臉標記圖像進行轉(zhuǎn)換,例如在像素點 (xi,yi) 處存在一人像,可以將其表示為映射δ(x-xi,y-yi)。 因此N個頭部標記圖像可表示為函數(shù)H(x)[3,6],如式(3)所示
(3)
為了獲得人頭標記的連續(xù)函數(shù),需要將上述函數(shù)H(x)與高斯核進行卷積,如式(4)所示
D(x,y)=H(x)*Gσ(x,y)
(4)
D(x,y) 為圖像中每個人頭的連續(xù)表示,網(wǎng)絡(luò)訓練時需要輸入整體圖像的人群信息,因此需通過計算D(x,y) 總和對原始圖像全部人頭數(shù)量進行統(tǒng)計,如式(5)所示
(5)
圖2為密集人群數(shù)據(jù)集中某一幅圖像原圖及其對應的真實密度圖,可以清晰地看出人群分布等相關(guān)信息并將其作為標簽圖輸入至網(wǎng)絡(luò)進行訓練。
圖2 人群原圖及其對應密度
1.3.2 訓練細節(jié)
實驗訓練環(huán)境為Linux 16.04,顯卡版本信息為Tesla V100,程序環(huán)境配置為Python 3.8,使用Pytorch框架作為訓練學習的基礎(chǔ)框架。
學習率等參數(shù)會在一定程度上影響訓練的效果,學習率過大會導致訓練無法達到最優(yōu)值,過小會導致訓練時間過長,因此選用合適的學習率可以在一定程度上優(yōu)化訓練效果。經(jīng)過不同學習率的測試,在訓練過程中將學習率設(shè)置為0.000 01可以有效地對比分析實驗。同時在訓練過程中設(shè)置適當?shù)哪P捅4娌襟E,以便在現(xiàn)有模型的基礎(chǔ)上做適當?shù)恼{(diào)整并觀察訓練效果。
為客觀評價分析不同方法的效果,需選用合適的評價指標。針對不同對比實驗采用人群計數(shù)領(lǐng)域的通用指標MAE(平均絕對誤差)與MSE(均方誤差)進行測試[8]。二者分別體現(xiàn)人群計數(shù)實驗的不同性能,其中MAE呈現(xiàn)人群計數(shù)實驗的準確性,MSE呈現(xiàn)預測實驗的穩(wěn)健性[6]
(6)
(7)
式中:N表示圖像數(shù)量,zi表示第i張圖像的實際人數(shù),z′i表示第i張圖像的預測人數(shù)。通過計算不同圖像的平均絕對誤差與均方誤差對比分析不同方法的性能。
為驗證SGNet的有效性,分別采用人群計數(shù)領(lǐng)域常用的密集人群數(shù)據(jù)集UCF_CC_50、UCF-QNRF進行測試,同時為了驗證該模型的魯棒性及可移植性,在人群密度較稀疏的ShanghaiTech_PartB數(shù)據(jù)集上進行測試。3個數(shù)據(jù)集圖像張數(shù)不同,人群數(shù)量跨度差異較大,可以全面地分析SGNet的性能。各數(shù)據(jù)集的詳細信息見表2。
表2 各數(shù)據(jù)集信息
利用SGNet圍繞3個數(shù)據(jù)集進行展開測試,對比分析效果;同時分別驗證SRF特征融合與GWTA Loss的作用,對二者進行消融實驗,驗證不同模塊的有效性。
2.3.1 UCF-QNRF實驗分析
UCF-QNRF是包含千余張圖像的人數(shù)檢測數(shù)據(jù)集,在多個密集人數(shù)檢測研究中均有應用,具有較強的通用性;同時由于其人數(shù)跨度較大,增加了人數(shù)估計的難度。因此利用該數(shù)據(jù)集進行性能的檢測具有較強的研究意義。
為驗證SGNet的有效性,將其與現(xiàn)有的密集人數(shù)統(tǒng)計模型進行對比。MCNN網(wǎng)絡(luò)[3]是基于任意角度變換提出的多列卷積神經(jīng)網(wǎng)絡(luò),其利用不同感受野的卷積核提取不同大小的人頭特征,屬于密集人群計數(shù)領(lǐng)域內(nèi)的經(jīng)典算法;CMTL網(wǎng)絡(luò)[9]是基于視角畸變和尺度變化提出的高級先驗網(wǎng)絡(luò),將全局特征與局部特征結(jié)合進行人群密度估計研究,其大致分為兩部分:高級先驗和密度圖估計,從不同的角度進行人頭特征的提??;Switch-CNN網(wǎng)絡(luò)[10]根據(jù)圖像不同部分的特征信息選擇合適的卷積神經(jīng)網(wǎng)絡(luò)分支,利用不同特征具有差異性的特點進行網(wǎng)絡(luò)的設(shè)計。表3為SGNet與多列卷積神經(jīng)網(wǎng)絡(luò)及其衍生網(wǎng)絡(luò)的對比。
從對比表中可以觀察到SGNet與多列卷積神經(jīng)網(wǎng)絡(luò)MCNN相比,評價指標MAE降低了近70個指標值,MSE降低了近55個指標值,測試效果有明顯的優(yōu)化。在一定程度上解決了原有網(wǎng)絡(luò)的缺陷,通過增加不同列SRF特征融合模塊及對損失函數(shù)的優(yōu)化達到提升效果的目的。
表3 不同模型在UCF-QNRF數(shù)據(jù)集上的對比
Switch-CNN是針對不同回歸器進行設(shè)計的衍生網(wǎng)絡(luò),同樣以多列卷積神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)進行優(yōu)化。經(jīng)過實驗測試可知,SGNet與Switch-CNN相比,MAE降低了近16個指標值,MSE降低了近74個指標值,提升了檢測效果。實驗結(jié)果表明,當人數(shù)檢測對象為密集人群時,對多列卷積核進行SRF特征融合等改進比Switch-CNN提升不同回歸器的效果更佳,可以明顯地觀察到測試效果的優(yōu)化,驗證了SGNet的有效性。
2.3.2 UCF_CC_50實驗分析
UCF_CC_50是人數(shù)檢測領(lǐng)域內(nèi)常用的數(shù)據(jù)集,其包含了50張不同分辨率的圖像。由于數(shù)據(jù)量較小,增加了人群計數(shù)的難度。因此,利用交叉驗證的方法[3]對該數(shù)據(jù)集進行訓練測試。利用相同的基線方法進行對比,嘗試驗證該模型的有效性。表4為UCF_CC_50數(shù)據(jù)集的方法對比結(jié)果。
表4 不同模型在UCF_CC_50數(shù)據(jù)集上的對比
經(jīng)過實驗對比可知,SGNet的設(shè)計可以將MCNN的MAE降低近115個指標值,MSE降低近176個指標值,優(yōu)化效果較顯著,證實了該設(shè)計對于密集人群檢測的有效性;交叉驗證解決了UCF_CC_50數(shù)據(jù)量較小的問題,成功地對該數(shù)據(jù)集進行訓練及測試,有效驗證了SGNet對于數(shù)量較小的數(shù)據(jù)集同樣有著良好的效果。
2.3.3 ShanghaiTech_PartB實驗分析
UCF-QNRF、UCF_CC_50均為人群較密集的數(shù)據(jù)集且人數(shù)跨度較大,均具有人群密度較高的特性。針對二者進行不同方法的對比分析實驗,可以有效地驗證SGNet對密集人群檢測的有效性。
為了驗證SGNet的魯棒性及可移植性,檢驗該方法面向較稀疏人群的檢測效果,通過利用SGNet對ShanghaiTech_PartB數(shù)據(jù)集進行訓練測試,觀察該方法是否應用至較稀疏人群數(shù)據(jù)集同樣具有良好的檢測效果。為更好地檢測該模型對于較稀疏人群的有效性,在原有對比實驗的基礎(chǔ)上增加文獻[6]與文獻[11]對于該數(shù)據(jù)集的效果對比。文獻[6]提出了基于多尺度多列卷積神經(jīng)網(wǎng)絡(luò)的人數(shù)估計算法,針對人群計數(shù)領(lǐng)域出現(xiàn)的問題進行解決;文獻[11]提出了利用混合卷積神經(jīng)網(wǎng)絡(luò)進行人群計數(shù)的思想,其基于多列卷積神經(jīng)網(wǎng)絡(luò)進行優(yōu)化。對比結(jié)果見表5。
表5 不同模型在ShanghaiTech_PartB數(shù)據(jù)集上的對比
實驗結(jié)果表明,SGNet與多列卷積神經(jīng)網(wǎng)絡(luò)MCNN相比,MAE降低了近8個指標值,MSE降低了近11個指標值,上述實驗數(shù)據(jù)充分地體現(xiàn)了該模型對于ShanghaiTech_PartB數(shù)據(jù)集的有效性。證實了其不僅適用于密集人群人數(shù)估計研究,面向稀疏人群同樣體現(xiàn)了良好的檢測效果,具有較強的魯棒性及可移植性。
從表中可知,SRF特征融合+GWTA Loss具有較好的提升網(wǎng)絡(luò)能力的效果,其打破原有方法的限制,解決了人數(shù)檢測領(lǐng)域內(nèi)的問題。
2.3.4 消融實驗分析
經(jīng)過對3個不同數(shù)據(jù)集的訓練測試后可以看出,SGNet的設(shè)計能夠有效地提升人數(shù)檢測效果,在一定程度上進行優(yōu)化。不僅對密集人群有較好的效果提升,將其應用至稀疏人群時同樣證實了該網(wǎng)絡(luò)的魯棒性。
由于SGNet是由SRF特征融合與GWTA Loss兩個模塊組成,二者協(xié)同優(yōu)化網(wǎng)絡(luò),能夠使其達到較好的效果。為更清晰地了解不同模塊的作用及在優(yōu)化過程中區(qū)分二者的優(yōu)化程度、分析每個模塊的重要性,通過對不同模塊進行消融實驗,可以達到對比分析實驗結(jié)果、觀察每個模塊的重要性及優(yōu)化程度的目的。圖3為SGNet基于數(shù)據(jù)集ShanghaiTech_PartB進行的消融實驗效果對比。
圖3 基于ShanghaiTech_PartB的消融實驗
圖3為SGNet對ShanghaiTech_PartB數(shù)據(jù)集實現(xiàn)的消融實驗效果對比。通過對SGNet的不同模塊進行控制變量,觀察SRF特征融合與GWTA Loss模塊的重要性。
從圖表中可知,SGNet較MCNN相比,MAE降低了近8個指標值。當缺少GWTA Loss模塊時,MAE較原網(wǎng)絡(luò)相比降低了近6個指標值,雖然有較小幅度的效果提升,但相較于SGNet效果略差,可以體現(xiàn)出GWTA Loss模塊的重要性,說明GWTA Loss的設(shè)計在優(yōu)化過程中起了不可缺少的作用;當缺少SRF特征融合模塊時,網(wǎng)絡(luò)為無特征融合網(wǎng)絡(luò)+GWTA Loss的組合,MAE較MCNN相比降低了7個指標值。雖然證實了GWTA Loss模塊在訓練過程中優(yōu)化程度大于SRF特征融合模塊,但當二者相互作用時效果會強于模塊單獨訓練的效果。因此,任一模塊均對訓練過程起到了優(yōu)化的作用。
通過上述消融實驗驗證了SGNet不同模塊的重要性,顯示了其在訓練過程中不同的優(yōu)化程度。
多列卷積神經(jīng)網(wǎng)絡(luò)MCNN基于不同尺度對密集人群圖像進行人數(shù)估計研究,但其仍存在兩個缺陷:①忽略了不同列特征之間的關(guān)系,在訓練時缺少相互聯(lián)結(jié)的過程;②原網(wǎng)絡(luò)的損失函數(shù)未對區(qū)域進行有針對性的優(yōu)化,無法在計算損失函數(shù)時突出重點優(yōu)化區(qū)域[12]。
針對上述兩種問題提出了基于多列卷積神經(jīng)網(wǎng)絡(luò)的SGNet。首先利用相同感受野SRF特征融合模塊將不同列的特征進行融合,使第二列與第一列、第三列與第二列的特征相互聯(lián)結(jié)后一并輸入至卷積核進行特征提取。以此解決特征互不相融的問題,避免出現(xiàn)特征消失等現(xiàn)象。同時通過增加GWTA Loss模塊達到優(yōu)先優(yōu)化損失值較大、訓練較重點的區(qū)域,打破全局無重點優(yōu)化的桎梏,著重針對損失值較大的區(qū)域進行有效訓練,達到提升效果的目的。
經(jīng)實驗驗證,SGNet可以有效地提升面向密集人群的人數(shù)估計效果,同時其具有較強的魯棒性及可移植性,當面向稀疏人群時會在一定程度上優(yōu)化網(wǎng)絡(luò)。通過利用不同模塊進行消融實驗證實了模塊的重要性。
在提升網(wǎng)絡(luò)效果的過程中發(fā)現(xiàn)改變卷積核感受野會對網(wǎng)絡(luò)訓練產(chǎn)生影響。因此,在未來的實驗中可以嘗試增加空洞卷積等操作[13,14]研究改變感受野對訓練的影響。