邢 靜 彭天亮
(1.西安培華學院 西安 710125)(2.江西省水信息協(xié)同感知與智能處理重點實驗室 南昌 330099)(3.南昌工程學院 南昌 330099)
在城市交通中,使用計算機視覺技術通過圖像或監(jiān)控視頻流,對場景中車輛的數(shù)量進行準確而穩(wěn)健的估計,以更好地指導交通信號燈的設置,對于智慧城市的建設具有重大意義。
現(xiàn)有的車輛統(tǒng)計方法一般可以分為兩類:基于檢測的方法和基于回歸的方法?;跈z測的方法通常假定可以通過使用給定的對象檢測器[1~3]來檢測和定位圖像上的目標,然后通過累積檢測結果進行計算,然而,這些方法[4~6]需要巨大的計算資源而且往往受人為遮擋和復雜的限制背景在實際情況下,產(chǎn)生的相對較低魯棒性和準確性?;诨貧w的方法直接從圖像中計算車輛的數(shù)量。Chan等[7]使用手工特征來統(tǒng)計任務轉化為回歸問題[8~9];提出了更多目標相關的特征,包括基于結構的特征和局部紋理的特征;Lempitsky等[10]提出了一種基于密度的算法,其通過整合估計的密度圖來進行計數(shù)。
隨著深度卷積神經(jīng)網(wǎng)絡結構的發(fā)展[11~12],深層卷積神經(jīng)網(wǎng)絡在密度統(tǒng)計場景中也顯示了出較好的效果。Wan等[13]直接使用基于CNN的模型來建模圖像到數(shù)量的映射關系;Zhang等[14]提出了多列CNN來提取多尺度特征;Boominathan等[15]提出了一個多網(wǎng)絡的CNN來提高對目標的分辨率;這些算法在解決尺度變換造成的分辨率問題的同時,使得網(wǎng)絡結構較為復雜,這些網(wǎng)絡在訓練時,需要預先訓練單一網(wǎng)絡進行全局優(yōu)化,且引入了更多參數(shù),需要消耗更多的計算資源,使得難以實際應用。本文基于中心點檢測的卷積神經(jīng)網(wǎng)絡來進行車流的監(jiān)測,一方面通過中心池化策略來檢測車輛的中心點,以獲取可辨識的視覺特征信息,另一方面通過Focal Loss來對中心點周圍的點進行懲罰,進而提高檢測的精度,所提方法在TRANCOS數(shù)據(jù)集[16]上達到了較好的效果,且相較單階段檢測方法有更高的檢測速度和精度。
由于透視、遮擋及尺度變化,圖像中通常包含不同尺度、不同程度遮擋的車輛組成,且標注數(shù)據(jù)在目標位置只有一個標識點,因此很難用一般的基于檢測的方法實現(xiàn)基于檢測的車輛統(tǒng)計。因此本文提出基于中心點檢測網(wǎng)絡,來獲取車輛的特征信息,同時結合中心池化策略和Focal Loss來提高檢測精度。
基于中心點檢測的卷積神經(jīng)網(wǎng)絡結構如圖1所示,包括基本網(wǎng)絡結構、中心池化和密度估計。其中基本網(wǎng)絡結構采用52層的hourglass[17]網(wǎng)絡,中心池化來獲取車輛相關的更加豐富和可辨識的視覺模式,如圖2所示。
圖1 基于中心點檢測的卷積神經(jīng)網(wǎng)絡結構
其獲取物體在水平方向和垂直方向的特征,并將檢測的中心點作為物體所在的位置,具體網(wǎng)絡結構如3所示。
其中池化操作均采用最大池化,不同在于池化操作的方向上,Left Pooling在操作上采用從左到右的方式,Right Pooling采用從右到左的方式,Top Pooling采用從上到下的方式,Bottom Pooling采用從下到上的方式,在進行密度估計時,激活函數(shù)均采用ReLU函數(shù)[18]實現(xiàn)。
圖2 中心池化
圖3 中心池化結構
對于密度估計部分,為了高質(zhì)量地生成具有尺度相關性的密度圖,我們參考Zhang等[14]的由于尺度自適應的核密度估計方法。對于圖像中車輛的標注區(qū)域,我們采用一個高斯核Gσ來描述標注點周圍區(qū)域的密度分布,具體如式(1)所示:
其中,px,py分別為車輛所在的位置,σp為尺度自適應的標準差。
在預測密度圖時,各像素點的預測值采用Sigmoid 函數(shù)實現(xiàn),進而結合 Focal Loss[19]定義最終的損失函數(shù):
其中,Y^xy為預測為中心點的概率,α,β為損失函數(shù)的超參數(shù),N為圖像中車輛的個數(shù),在實現(xiàn)中我們設置α=2,β=4。
對于周圍區(qū)域大小的確定,我們結合構建密度圖時的自適應方法,對區(qū)域大小進行預測,具體采用L2損失實現(xiàn),如式(3)所示:
同時為了去除池化操作所帶來的誤差,我們對每個目標所在位置的偏移量進行預測,具體采用L1損失實現(xiàn),如式(4)所示:
其中Op~為預測的局部偏移量,R為輸出層步長,p為中心點位置,p~為預測的中心點位置。
因此,整個網(wǎng)絡的損失函數(shù)由三部分組成,即:
訓練過程采用Adam優(yōu)化算法,動量設置為0.952。
圖4 Focal Loss(對中心點周圍的點添加損失函數(shù))
對所提的基于中心點檢測的神經(jīng)網(wǎng)絡的評估,我們在標準的TRANCOS數(shù)據(jù)集[16]上進行了測試,實驗結果表明,我們的方法在精度和魯棒性方面均有較好的表現(xiàn),網(wǎng)絡的訓練采用Pytorch[20]框架進行實現(xiàn)。
采用平均絕對誤差(MAE)和網(wǎng)格平均絕對誤差(GAME)[13]來評估所提方法的性能,MAE 和GAME的計算見式(6)和式(7):
其中N代表測試圖像總數(shù),zi和分別為第i個圖像所對應的真實值和估計值,一般來說,GAME較MAE更能評估算法的準確度。
TRANCOS數(shù)據(jù)集[16]是一個大規(guī)模的車流統(tǒng)計數(shù)據(jù)集,其包含1244幅注釋圖像,每幅圖像都采用點標注的方法進行標注,包含車輛數(shù)及位置,及街道的位置,共標注46796輛車。在實驗時,用860幅圖像作為訓練集,其余為測試集。
挑選數(shù)據(jù)中的三個樣例,采用所提方法進行估計,效果如圖5所示。
圖5 實驗效果圖
在實驗時,我們將所提方法和其他三種方法進行了比較,LBP+RP的方法采用LBP特征來回歸車流的數(shù)量,MCNN-CCR[14]采用多列CNN來進行密度估計,及將所提方法中的基本網(wǎng)絡變換為Resnet101來進行密度估計,對四種方法進行驗證,結果如表1所示,可看出所提方法的有效性,且具有較好的魯棒性。
表1 四種方法比較結果
在本文中,我們提出了一種基于中心池化策略的中心點檢測方法,并基于中心點檢測方法實現(xiàn)對車流量的統(tǒng)計。和其他基于CNN的方法相比,所提方法所采用的hourglass多級特征提取網(wǎng)絡架構,結合中心池化和Focal Loss,直接采用端到端的訓練方法,來處理尺度、遮擋等因素對密度估計所造成的影響,實驗表明了所提算法可以達到更高的精度和較好的魯棒性。