向飛宇,張秀偉
(西北工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,陜西 西安 710129)
人群計(jì)數(shù)通過(guò)對(duì)圖像中人像特征的檢測(cè)來(lái)獲取人群數(shù)量與密度信息,對(duì)于道路監(jiān)控圖像的人群計(jì)數(shù)可以快速地獲取實(shí)時(shí)的人群狀態(tài)信息,在分析商圈人流密度、預(yù)防疫情期間人群聚集以及踩踏事故等方面有重要意義。
傳統(tǒng)的人群計(jì)數(shù)方法主要有兩大類:基于目標(biāo)檢測(cè)的Haar小波檢測(cè)法[1]、梯度方向直方圖檢測(cè)法[2]等嘗試在對(duì)圖像進(jìn)行處理之后檢測(cè)到圖像中每一個(gè)獨(dú)立的人形或者移動(dòng)的興趣點(diǎn),從而同時(shí)獲得人群計(jì)數(shù)與每個(gè)人的位置信息,但是在面對(duì)高遮擋和高密度的場(chǎng)景下效果不佳;另一類方法基于對(duì)目標(biāo)軌跡信息的跟蹤[3],通過(guò)對(duì)連續(xù)圖像或者監(jiān)控視頻圖像的對(duì)比分析判斷出正在移動(dòng)的人像,此類方法包括貝葉斯聚類方法[4]和KLT跟蹤器方法[5]等,在高遮擋場(chǎng)景效果很好,但是計(jì)算耗時(shí)較長(zhǎng),算法的實(shí)時(shí)性能不好,同時(shí)對(duì)于圖像的連續(xù)性有一定的要求,不適用于單張靜態(tài)圖像的人群計(jì)數(shù)。
近年的研究主要圍繞卷積神經(jīng)網(wǎng)絡(luò)(convolution neural network,CNN)來(lái)展開,自2012年AlexNet[6]在ImageNet挑戰(zhàn)賽上獲得冠軍后,CNN被廣泛應(yīng)用于圖像識(shí)別領(lǐng)域當(dāng)中,陸續(xù)出現(xiàn)了ZFNet[7]、VGGNet[8]、GoogLeNet[9]、ResNet[10]等更加深層次也更加有效的卷積神經(jīng)網(wǎng)絡(luò)。CNN的主要算法原理是將輸入圖像與不同大小的卷積核進(jìn)行卷積,從而提取出不同大小的圖像特征信息,相比于普通的神經(jīng)網(wǎng)絡(luò)模型將輸入數(shù)據(jù)轉(zhuǎn)化為一位向量的處理方式,CNN使用卷積進(jìn)行特征提取能夠有效地獲得像素之間的空間關(guān)系,因此在圖像識(shí)別領(lǐng)域當(dāng)中取得了極佳的效果。
具體到人群計(jì)數(shù)領(lǐng)域,由于CNN的經(jīng)典網(wǎng)絡(luò)架構(gòu)會(huì)使用全連接層將像素一維化為用于分類的固定長(zhǎng)度的特征向量,無(wú)法在獲得人群計(jì)數(shù)的同時(shí)獲得人群密度圖像,因此全卷積神經(jīng)網(wǎng)絡(luò)(fully convolutional network,F(xiàn)CN)[11]被提出用于人群計(jì)數(shù)。FCN將傳統(tǒng)CNN網(wǎng)絡(luò)結(jié)構(gòu)中的全連接層改為反卷積結(jié)構(gòu),使得輸出由特定長(zhǎng)度的特征向量變成與原始輸入圖像相同的特征圖像,同時(shí)解除了輸入圖像的尺寸限制。FCN對(duì)于人群計(jì)數(shù)的適用性使其成為最新網(wǎng)絡(luò)架構(gòu)的基礎(chǔ)。為了解決人群計(jì)數(shù)算法中特征提取的空間信息相對(duì)粗略以及缺乏對(duì)不同通道間信息的處理能力問(wèn)題,文中提出了一種具有注意力模型的全卷積神經(jīng)網(wǎng)絡(luò),通過(guò)對(duì)通道數(shù)據(jù)與空間數(shù)據(jù)的注意力模型來(lái)獲取更加細(xì)化的特征圖像。實(shí)驗(yàn)證明融合了注意力模型與全卷積神經(jīng)網(wǎng)絡(luò)的人群計(jì)數(shù)方法在多個(gè)數(shù)據(jù)集上的表現(xiàn)優(yōu)于之前的方法。
圖1為文中人群計(jì)數(shù)網(wǎng)絡(luò)架構(gòu)示意圖,主要包括全卷積神經(jīng)網(wǎng)絡(luò)以及注意力模型兩大部分,其中VGG-16卷積神經(jīng)網(wǎng)絡(luò)骨干,擴(kuò)展卷積層與后續(xù)的上采樣層構(gòu)成一個(gè)全卷積神經(jīng)網(wǎng)絡(luò)。為獲取更高的精確度與更多的特征信息,在擴(kuò)張卷積層之后增加了空間注意力模型(spatial-wise attention model,SAM)[12]與通道注意力模型(channel-wise attention model,SAM)[13],最終輸入的人群圖像通過(guò)上采樣層被轉(zhuǎn)化為分辨率大小相同的人群密度特征圖像。
圖1 人群計(jì)數(shù)網(wǎng)絡(luò)架構(gòu)
全卷積神經(jīng)網(wǎng)絡(luò)FCN是在傳統(tǒng)卷積網(wǎng)絡(luò)CNN的基礎(chǔ)上,將最后的全連接層替換為反卷積層,從而將接受的輸入圖像尺寸從固定的尺寸擴(kuò)展到任意尺寸,同時(shí)不再輸出不具有空間上下文關(guān)系的特征向量,而是輸出與原始圖像相同尺寸的包含空間特征信息的特征圖?;谶@些特點(diǎn),全卷積神經(jīng)網(wǎng)絡(luò)被廣泛應(yīng)用于圖像處理領(lǐng)域,尤其是適用于需要在獲得人群密度計(jì)數(shù)的同時(shí)獲得人群密度圖像的人群計(jì)數(shù)領(lǐng)域。標(biāo)準(zhǔn)的全卷積神經(jīng)網(wǎng)絡(luò)一般包括三個(gè)部分:卷積層、池化層和上采樣層。
卷積層是用于提取圖像特征的經(jīng)典結(jié)構(gòu),每一層包含多個(gè)具有權(quán)重和偏置的卷積單元,可以在前向傳播的過(guò)程中提取輸入圖像的特征信息轉(zhuǎn)化為特征映射,在反向傳播中學(xué)習(xí)每個(gè)卷積單元的相關(guān)參數(shù)。圖2為文中網(wǎng)絡(luò)使用的卷積層示意圖,由VGG-16卷積神經(jīng)網(wǎng)絡(luò)的前10個(gè)卷積層以及使用擴(kuò)張卷積[14]的6個(gè)卷積層組成,圖中[k3,3-s1-c64-d2-R]表示卷積核為3×3,步長(zhǎng)為1,輸出為64通道,擴(kuò)張間隔為2,使用RELU為激活函數(shù)的卷積層。使用VGG-16預(yù)訓(xùn)練網(wǎng)絡(luò)可以有效地減少訓(xùn)練用時(shí),同時(shí)保留很高的精確度。在整個(gè)網(wǎng)絡(luò)架構(gòu)當(dāng)中沒有使用全連接層,因此輸入圖像可以是任意尺寸的人群密度圖像,從而使得整個(gè)網(wǎng)絡(luò)適用于更多的應(yīng)用場(chǎng)景。由于VGG-16卷積層會(huì)導(dǎo)致特征圖像變小,使得最終經(jīng)過(guò)上采樣的密度圖分辨率降低,為了在不降低分辨率的情況下獲得高精度的特征密度圖,使用了擴(kuò)張卷積層在VGG-16骨架之后對(duì)512通道的輸出進(jìn)行擴(kuò)張,最終生成64通道的特征圖像。
圖2 卷積層示意圖
池化層又稱下采樣層,指的是將同一通道的每個(gè)2×2非重疊區(qū)域經(jīng)過(guò)處理輸出為一個(gè)數(shù)據(jù)作為下一層的輸入,用于降低網(wǎng)絡(luò)中參數(shù)的數(shù)量并且降低對(duì)訓(xùn)練數(shù)據(jù)過(guò)擬合的風(fēng)險(xiǎn)。常用的池化層包括最大池化和平均池化,最大池化使用2×2區(qū)域的最大值作為輸出,能夠降低卷積層的參數(shù)誤差從而保留更多的紋理信息,平均池化使用2×2區(qū)域的平均值作為輸出,減少鄰域大小受限導(dǎo)致的估計(jì)值方差增大,更多地保留圖像的背景信息。在VGG-16卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)中,前10個(gè)卷積層內(nèi)增加了三個(gè)最大池化層。
上采樣層也稱為反卷積層或者轉(zhuǎn)置卷積層,是將輸入數(shù)據(jù)插入到更大的填充圖像當(dāng)中,再進(jìn)行卷積,以獲得與輸入圖像相同尺寸或者更大尺寸的輸出圖像的操作。在文中網(wǎng)絡(luò)中,輸入圖像經(jīng)過(guò)卷積層和注意力模型的特征提取后得到的較小分辨率的圖像,由1×1的卷積核將通道數(shù)降至1后,經(jīng)過(guò)8個(gè)上采樣層恢復(fù)到與輸入圖像分辨率大小相同的特征密度圖像[15],相當(dāng)于直接輸出了與輸入圖像分辨率大小相同的人群密度特征圖。
自卷積神經(jīng)網(wǎng)絡(luò)被應(yīng)用于圖像識(shí)別領(lǐng)域以來(lái),針對(duì)這一深度學(xué)習(xí)網(wǎng)絡(luò)架構(gòu)有著多次的改進(jìn)與創(chuàng)新。人群計(jì)數(shù)在圖像識(shí)別領(lǐng)域之中屬于目標(biāo)檢測(cè)的范疇,即對(duì)于有著多個(gè)目標(biāo)的輸入圖片,要檢測(cè)出所有目標(biāo)的位置及其對(duì)應(yīng)的類別。傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)在面對(duì)目標(biāo)檢測(cè)問(wèn)題的時(shí)候主要是使用窮舉法或者滑窗法[16]來(lái)窮舉目標(biāo)可能出現(xiàn)的所有區(qū)域,然后針對(duì)這些區(qū)域進(jìn)行檢測(cè)、訓(xùn)練和預(yù)測(cè),這一過(guò)程有以下幾個(gè)缺點(diǎn):
(1)使用窮舉法與設(shè)計(jì)大量不同尺寸的滑窗都需要占用大量的內(nèi)存;
(2)大量非目標(biāo)的區(qū)域被用于訓(xùn)練和預(yù)測(cè),訓(xùn)練和計(jì)算的效率都比較低;
(3)對(duì)于選定的目標(biāo)區(qū)域的訓(xùn)練放棄了區(qū)域周圍的空間信息,弱化了區(qū)域與整體圖像之間的空間聯(lián)系。
為了解決上述的缺點(diǎn),選擇性搜索算法[17]被提出用于產(chǎn)生潛在物體候選框(region of interest,ROI),基于這一思想產(chǎn)生了著名的目標(biāo)檢測(cè)網(wǎng)絡(luò)架構(gòu)R-CNN[18]。該算法通過(guò)對(duì)顏色相似度、紋理相似度、尺寸相似度、填充相似度等特征的加權(quán)來(lái)計(jì)算兩個(gè)區(qū)域之間的相似度,依次將相鄰區(qū)域中相似度最高的區(qū)域進(jìn)行合并,從而獲得潛在物體候選框。然而,選擇性搜索算法雖然解決了內(nèi)存占用以及非目標(biāo)區(qū)域的問(wèn)題,最終被輸入進(jìn)CNN的輸入數(shù)據(jù)還是目標(biāo)附近的一部分像素,不包括目標(biāo)區(qū)域與整個(gè)圖像之間的上下文信息,在訓(xùn)練和分析過(guò)程中放棄了區(qū)域與整體圖像之間的空間聯(lián)系。在人群計(jì)數(shù)領(lǐng)域,原始圖像當(dāng)中人群的密度分布往往是有一定規(guī)律的,例如在一張道路監(jiān)控圖像當(dāng)中高密度的人群會(huì)集中在圖像兩側(cè)的人行道區(qū)域,而一張地鐵車廂人群圖像當(dāng)中高密度人群會(huì)聚集在圖像中部,這樣的特征使得在人群計(jì)數(shù)領(lǐng)域,目標(biāo)區(qū)域與原始圖像之間的空間關(guān)系是非常有價(jià)值的學(xué)習(xí)特征,而使用選擇性搜索算法就會(huì)損失對(duì)這一重要特征的研究與訓(xùn)練,從而影響最終的預(yù)測(cè)效果。為獲取人群特征與原始圖像之間的空間關(guān)系,文中使用了注意力模型。
注意力模型起源于人對(duì)物體的辨識(shí)過(guò)程:人觀察一幅圖片的時(shí)候并非直接觀察整個(gè)圖片的所有信息,而是對(duì)圖片的某一部分進(jìn)行聚焦,例如看到一張風(fēng)景圖的時(shí)候人的視線會(huì)分別聚焦到遠(yuǎn)方的山,近處的水等不同的目標(biāo)區(qū)域。從計(jì)算機(jī)視覺的角度,就是在識(shí)別一張圖片的時(shí)候?qū)τ诿總€(gè)不同的像素區(qū)域有著不同的權(quán)重。對(duì)于重要的區(qū)域例如目標(biāo)區(qū)域的周圍,較大的權(quán)重使得關(guān)鍵區(qū)域?qū)τ谧詈蟮奶卣鲌D像影響力較大;對(duì)于非重要的區(qū)域例如背景區(qū)域,較小的權(quán)重使得這些區(qū)域?qū)ψ詈蟮奶卣鲌D像影響較小甚至沒有影響。而這些權(quán)重可以通過(guò)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練學(xué)習(xí),從而使得神經(jīng)網(wǎng)絡(luò)獲得類似于人的注意力效果。針對(duì)人群計(jì)數(shù)對(duì)于圖像空間特征與通道特征的需求,主要使用兩種不同的注意力模型:空間注意力模型(spatial-wise attention model,SAM)和通道注意力模型(channel-wise attention model,CAM)。
圖3為空間注意力模型的架構(gòu)示意圖,對(duì)于前置的CNN骨干輸出的大小為C×H×W的輸出圖像,在與三個(gè)1×1的卷積核進(jìn)行卷積以減少參數(shù)和跨通道整合后,分別重整為三個(gè)不同大小的輸出:S1與S3大小為C×HW,S2大小為HW×C,在對(duì)S1和S2進(jìn)行矩陣乘法和softmax歸一化運(yùn)算后,獲得一張大小為HW×HW的空間注意力圖像。為了使得最后輸出的特征圖像同時(shí)包含原有的圖像特征信息和由注意力模型提取的大范圍上下文空間信息,同時(shí)為了使最終輸出與輸入的大小尺寸相同,將上一步獲得的HW×HW的圖像與重整后的S3進(jìn)行矩陣乘法,獲得大小尺寸為C×H×W的空間注意力圖像,再與最初的骨干輸出進(jìn)行帶參數(shù)的加權(quán)和,并通過(guò)1×1的卷積核來(lái)學(xué)習(xí)這一參數(shù)。整個(gè)過(guò)程用公式表達(dá)為:
圖3 空間注意力模型示意圖
空間注意力模型提取的是單通道上大范圍的上下文信息,關(guān)注于人群在原始圖像上的空間分布特征。除了空間分布特征以外,對(duì)于高密度的人群計(jì)數(shù)原始圖像,目標(biāo)區(qū)域和背景區(qū)域往往擁有較為相似的紋理特征,這使得背景區(qū)域的空間特征容易對(duì)目標(biāo)特征產(chǎn)生額外的影響,使用通道注意力模型可以有效增加目標(biāo)特征的權(quán)重,使得最終結(jié)果受到背景區(qū)域的影響減少。
通道注意力模型與空間注意模型整體上架構(gòu)類似,如圖4所示。最初的特征圖僅與一個(gè)1×1的卷積核進(jìn)行卷積降維后,同樣重整為三個(gè)不同大小的輸出:C1與C3大小為C×HW,C2大小為HW×C,在對(duì)C1和C2進(jìn)行矩陣乘法和softmax歸一化運(yùn)算后,獲得一張大小為C×C的通道注意力圖像。將上一步獲得的C×C的圖像與重整后的C3進(jìn)行矩陣乘法,獲得大小尺寸為C×H×W的通道注意力圖像,最后與空間注意力模型一樣與初始圖像進(jìn)行加權(quán)和。用公式表達(dá)為:
圖4 通道注意力模型示意圖
實(shí)驗(yàn)采用的處理器為英特爾i5-9600KF,運(yùn)行內(nèi)存為8 GB,使用GPU加速,GPU為RTX2070super,顯存為8 G,開發(fā)環(huán)境為pycharm;訓(xùn)練數(shù)據(jù)被預(yù)處理為576×768的大小,整個(gè)網(wǎng)絡(luò)的初始學(xué)習(xí)率為10-5,并在每個(gè)批次學(xué)習(xí)完成后下降為之前的0.995倍;每個(gè)批次包括4張圖像,使用Adam算法進(jìn)行優(yōu)化,在進(jìn)行250次迭代之后進(jìn)行測(cè)試。
在人群計(jì)數(shù)中,常用的損失函數(shù)包括平均絕對(duì)值誤差(mean absolute error,MAE)和均方誤差(mean squared error,MSE),分別定義為:
為了測(cè)試網(wǎng)絡(luò)的性能,在ShanghaiTech數(shù)據(jù)集[19]和NWPU-Crowd數(shù)據(jù)集上進(jìn)行了模型的訓(xùn)練與測(cè)試。ShanghaiTech數(shù)據(jù)集是上海科技大學(xué)在2016年國(guó)際計(jì)算機(jī)視覺與模式識(shí)別會(huì)議(IEEE conference on computer vision and pattern recognition,CVPR)的會(huì)議論文中發(fā)表的人群計(jì)數(shù)數(shù)據(jù)集,包括兩個(gè)部分─Part A和Part B,共包含1 198張圖像。Part A的平均分辨率為589×868,平均人群計(jì)數(shù)數(shù)量為501,Part B的平均分辨率為768×1 024,平均人群計(jì)數(shù)數(shù)量為123。NWPU-Crowd數(shù)據(jù)集是西北工業(yè)大學(xué)于2020年發(fā)表的大型人群計(jì)數(shù)圖像數(shù)據(jù)庫(kù),包括5 109張圖像,平均分辨率為2 191×3 209,平均人群計(jì)數(shù)數(shù)量為418。表1給出了相關(guān)算法在ShanghaiTech數(shù)據(jù)集上的表現(xiàn),除在Part A的MSE上表現(xiàn)不如CP-CNN,其余項(xiàng)均有一定提升。表2給出了相關(guān)算法在NWPU-Crowd數(shù)據(jù)集上的表現(xiàn),文中方法在MAE與MSE上均表現(xiàn)最佳,較之前算法有可觀的提升。
表1 ShanghaiTech數(shù)據(jù)集上的表現(xiàn)
續(xù)表1
表2 NWPU-Crowd數(shù)據(jù)集上的表現(xiàn)
基于卷積神經(jīng)網(wǎng)絡(luò)的人群計(jì)數(shù)系統(tǒng)在傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上融入注意力模型與全卷積神經(jīng)網(wǎng)絡(luò)架構(gòu),在保留卷積神經(jīng)網(wǎng)絡(luò)對(duì)圖像特征提取的基礎(chǔ)上,增加了對(duì)于圖像整體空間信息和通道信息的編碼與學(xué)習(xí),實(shí)現(xiàn)了對(duì)人群圖像的準(zhǔn)確計(jì)數(shù)與人群密度圖生成,相較于之前的算法在準(zhǔn)確度上有可觀的提升。在未來(lái)的研究中,可以嘗試對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行輕量化,在盡可能保證準(zhǔn)確率的基礎(chǔ)上將人群計(jì)數(shù)擴(kuò)展到移動(dòng)端和小型設(shè)備上,實(shí)現(xiàn)從圖像獲取到計(jì)數(shù)識(shí)別的一體化。