林少丹, 李伙欽, 洪朝群
(1.福建船政交通職業(yè)學院 信息工程系, 福建 福州 350007; 2.廈門理工學院 計算機與信息工程學院, 福建 廈門 361024)
車輛與行人的辨識,主要用于道路監(jiān)控,自動駕駛等方面。在辨識的算法上多采用傳統(tǒng)模型,在正常的開放環(huán)境中辨識率較高,但如遇霧霾天氣、沙塵天氣等惡劣環(huán)境條件,交通視頻監(jiān)控的對比度與能見度均會產生較大幅度的下降,導致視頻成像無法識別,這將使路況觀測、目標跟蹤、智能導航、自動駕駛等基于視覺的檢測系統(tǒng)無法正常運行,對道路交通安全帶來了諸多隱患。圖像去模糊技術將有效降低惡劣天氣對于視頻成像的影響。傳統(tǒng)的單目視覺是正常的開放環(huán)境中檢測車輛和行人的主要方法[1],主要特點在于其硬件的性能和價格合理,獲取信息量大等特征,但其處理模糊圖像的算法相對簡單且效果不佳。采用雙路式卷積神經網絡架構結合高斯背景差分法進行車輛與行人的辨識,將提高在夜間或惡劣環(huán)境條件下車輛與行人的辨識準確率,有利于加強道路監(jiān)控、自動駕駛等方面的應用,在智能交通等相關領域具有重要的應用價值和前景。
雙路式卷積神經網絡分為A網絡和B網絡,分別定義為A-NET和B-NET。A-NET針對正常環(huán)境下車輛行人檢測網絡,而B-NET則針對低能見度環(huán)境中車輛行人的檢測網絡。圖1為雙路式卷積神經網絡模型。
圖1 雙路式卷積神經網絡模型
雙路式卷積神經網絡模型可以定義為f=(fA,fB),這里fA和fB分別代表A-NET與B-NET的特征函數(shù),那么雙路特征函數(shù)可以定義為
f=ω×Xi, j+b,
(1)
式中:Xi,j代表A-NET和B-NET輸入的第i,j個圖片[2],ω代表一個濾波器,是一個偏置量,f是一個非線性激活函數(shù)。雙路式網絡模型的特點在用A-NET和B-NET分別采用不同尺寸的濾波器,調整濾波器的大小可以得到不同環(huán)境下圖片的特征值[3]。雙路式網絡模型包含了一個圖像描述符,即池化函數(shù)P。如果要在圖像中的所有位置聚合雙路式特征,一種方法是通過池化簡單地總結所有雙路式特征,可定義為
(2)
式中:Pi, j為池化函數(shù);X為輸入圖片,根據(jù)X的下標i×W+ω,j×H+h,定位得到雙路式特征;H,W為池化窗口的高和寬。另一種方法是最大池方法,可定義為
Pi, j=max(Xi×W+ω, j×H+h),
(3)
式中,X的下標參數(shù)h和ω的取值范圍分別是0≤h≤H-1、0≤ω≤W-1。最大池方法忽略了圖像特征的位置,如輸入數(shù)據(jù)大小不一時可以采用最大池采樣的方式進行處理,雙路式網絡模型允許使用最大池方法進行采樣[4]。
雙路式卷積神經網絡的訓練數(shù)據(jù)集整合了清晰和模糊兩種圖片源,其中包含車輛和行人的高清圖片,也包含了低能見度下車輛和行人的圖片,這些圖片均是在開放環(huán)境中車輛與行人的圖片,模糊圖片的取得,也可以通過把高清圖片進行模糊化處理生成模糊圖片,建議通過Photoshop的高斯模糊功能實現(xiàn)數(shù)據(jù)集圖片的模糊處理。本文所采用的數(shù)據(jù)集分別為12 000張車輛圖片和12 000張行人圖片組成,A和B各12 000張圖片。
圖片加載程序直接從圖片目錄中讀取圖片文件,然后對圖片進行JPEG格式解碼操作,將圖片調整成208×208。由于是二分類問題,因此,把車分類標記為1,人分類標記為0。此外,為提高后續(xù)訓練的準確率,應隨機打亂圖片與標簽的對應順序,并生成Batch導入A-NET和B-NET進行處理。
雙路式網絡主要通過待識別圖像2路信息同時輸入網絡,卷積層提取特征后,在全連接(FC)層融合形成判別特征,最終在輸出層進行邏輯回歸實現(xiàn)分類[5]。雙路式網絡包含了2套獨立的卷積網絡,輸入圖片源將分為2類,清晰圖片作為A-NET的輸入,模糊圖片作為B-NET的輸入,2路輸入在經過卷積層后被映射為高層特征,然后在全連接(FC)層中進行融合,從而構成雙路式卷積神經網絡模型。
由于A-NET對應的數(shù)據(jù)集屬于正常的高清近景圖片,識別復雜度較低,故A-NET采用2個卷積層,2個池化層,2個全連接層組成;并通過softmax分類函數(shù)進行分類。B-NET采用4個卷積層,3個池化層,2個全連接層組成。B-NET增加卷積層的目的主要是解決了模糊圖片的識別。A-NET和B-NET各自用softmax作為分類函數(shù),針對小規(guī)模數(shù)據(jù)集可以通過取A-NET和B-NET的softmax函數(shù)的平均值完成識別模型的訓練[6]。
根據(jù)雙路式架構的特點采用反向傳播算法計算梯度。假定兩個網絡的輸出是大小分別為L*A和L*B的矩陣,則梯度函數(shù)為f(A,B),可表示為
x=f(A,B),
(4)
設特征大小為A*B,使f(x)=f(A,B),dL/dx定義為損失函數(shù)的梯度,其中f(x)為特征大小函數(shù),L為特征圖像位置[7]。通過分類損失的反向擴展梯度進行訓練,可計算f(x)的梯度。其中A和B分別代表兩個輸入集,使用梯度鏈法則,可得
(5)
假設y=g(x)并且z=f(g(x))=f(y),可得
(6)
由(5)和(6)可得
(7)
(8)
(9)
將模糊圖像作為訓練網絡的輸入,并設定對應的清晰圖像作為標簽,這一思路通過實驗證明訓練模型對模糊圖像的識別率較低。對模糊圖像識別率較低的主要原因是直接運用卷積神經網絡去模糊,只能間接利用輸入圖像的先驗特征,容易受到噪聲影響。因此本文提出將高斯差分法用于去模糊方法是利用對模糊圖像進行灰度轉換后,進行高斯濾波預處理,將圖像的先驗特征直接用于去模糊, 得到一個較魯棒的初值,并以此作為差分模型的輸入, 最終得到較為清晰的圖像[8]。
基于高斯差分法基本原理是將模糊圖像中的模糊像素點看作一個隨機過程,假設這個隨機過程中的模糊像素點出現(xiàn)的概率遵循高斯分布,像素點的像素觀察值為(X1,……,Xt),可得:
(10)
(11)
本文取模糊圖像灰度化作為背景輸入高斯濾波進行運算,所得值作為下一次高斯濾波運算的輸入。經過前后兩次高斯濾波運算所得值再進行差分運算,便得出去除模糊的圖像。高斯差分法去模糊效果如圖2。
根據(jù)輸入圖片大小為208×208,配置3×3的卷積核,3通道代表圖片RGB格式,16個卷積核。采用最大池化(max-pooling)窗口,滑動距離(stride)為1,可以根據(jù)圖片的大小調整窗口滑動距離;采用relu作為激活函數(shù)[9]。本文通過上述高斯差分法所得圖像作為B-NET的輸入數(shù)據(jù)集進行訓練,A-NET則作為常規(guī)環(huán)境下清晰圖像的訓練網絡。B-NET較A-NET增加了2個卷積層和1個池化層,主要為了防止過擬合,提高模型泛化能力。
圖2 高斯差分去模糊效果
本文提供24 000張圖片作為訓練數(shù)據(jù)集,導入雙路式卷積神經網絡進行處理,訓練步數(shù)設為6 000至10 000步,訓練步數(shù)通常根據(jù)數(shù)據(jù)集規(guī)模大小而定[10]。采用傳統(tǒng)的單路式卷積神經網絡(即A-NET或B-NET單個網絡),進行大規(guī)模的數(shù)據(jù)集訓練,需要耗費大量的內存資源和時間,對硬件要求較高,且識別率較低。本文用于訓練的硬件環(huán)境參數(shù)為Intel(R) Core(TM) i7-6820HQ 8核,32G,NVIDIA Quadro M2000M;軟件環(huán)境以tensorflow1.4結合cuda-8.0構建。上述軟硬件環(huán)境結合雙路式架構進行訓練,較之前的單路式架構在訓練所用時間、損失率、準確率上均有明顯提高,將對單路式模型和雙路式模型進行比較,具體比較見表1及圖3、圖4。
表1 單雙路架構訓練參數(shù)比較
圖3 損失率走勢對比圖
圖4 準確率走勢對比圖
從圖3和圖4中可以看出,單路式架構損失梯度并不穩(wěn)定,雙路式架構較為穩(wěn)定,但兩種架構都不存在過擬合現(xiàn)象,且雙路式架構擬合度較高??梢缘贸?,雙路式架構的訓練效果優(yōu)于傳統(tǒng)的單路式架構。
通過上述訓練后生成雙路式和單路式檢測模型,然后開展測試驗證。準備了2 000張的車輛圖片和2 000張行人圖片,包含了在大霧天氣下的模糊圖片與正常天氣下的清晰圖片,構成了測試數(shù)據(jù)集,并嘗試了2種試驗方法:(1)對測試圖片未進行特殊處理,導入2個檢測模型;(2)使用高斯差分法將霧天圖片進行處理后導入檢測模型中。實驗所得辨識準確率如表2所示。
從表2可以得出,單路式架構與雙路式架構對比,雖然在對清晰圖片的識別準確率上與雙路式架構不相上下,但在識別低能見度環(huán)境中的車與人的識別率就大大降低,實驗證實,如導入一張大霧天氣下的車輛與人物圖片給單路式架構識別,圖中分別標注出,單路式架構對車的判別率為56%,對人的判別率為53%;而雙路式架構對車的判別率為83%,對人的判別率為87%??梢?,雙路式架構在識別模糊圖像上有一定的優(yōu)勢。將測試數(shù)據(jù)集中隨機抽取的模糊車輛與模糊行人圖片,導入單雙路架構中進行測試,結果如圖5,6所示。(圖5,6為使用單雙路式架構進行模糊環(huán)境下車輛與行人判別效果圖)。
表2 單雙路架構實驗參數(shù)比較
圖5 單雙路霧天環(huán)境車輛判別對比圖
圖6 單雙路霧天環(huán)境人物判別對比圖
課題研發(fā)了基于雙路式卷積神經網絡辨識模型的道路監(jiān)控系統(tǒng),該系統(tǒng)硬件由采集攝像頭、識別系統(tǒng)、監(jiān)控中心三個部分組成。系統(tǒng)搭建在樹莓派開發(fā)板上,在安裝Tensorflow后載入雙路式卷積神經網絡辨識模型對采集來的車輛與行人圖像進行檢測。系統(tǒng)架構如圖7所示。
圖7 道路監(jiān)控系統(tǒng)架構
傳統(tǒng)的視頻監(jiān)控系統(tǒng)主要是對道路黑點、繁忙路段交匯點、隧道口等位置進行監(jiān)視,往往在惡劣天氣環(huán)境下只能看到某段道路小部分的實況,這種監(jiān)控方式通常對突發(fā)性較強的交通異常事件無法做到提前預警,很容易造成二次嚴重性的交通事故,如連環(huán)車相撞等[11]。將傳統(tǒng)的道路監(jiān)控系統(tǒng)與基于雙路式卷積神經網絡的道路監(jiān)控系統(tǒng)的檢測參數(shù)進行對比(如表3所示),說明使用了雙路式卷積神經網絡的道路監(jiān)控系統(tǒng)比傳統(tǒng)的監(jiān)控系統(tǒng)在檢測低能見度環(huán)境中的車輛與行人的準確率上有了明顯的提高。
表3 監(jiān)控系統(tǒng)檢測參數(shù)對比
本文提出了一種雙路式卷積神經網絡,采用雙路數(shù)據(jù)集對應雙路網絡架構進行圖像特征提取,并通過反向擴展梯度算法結合2正則化,得出雙路式卷積神經網絡模型的梯度模型[12]。與單路式卷積神經網絡對比,特別在能見度低的環(huán)境中,對車輛的辨識率提高至83.49%,對行人的辨識率提高至87.36%。然而,本研究仍有不足之處,比如在有效消除圖像背景干擾,以及設定模型參數(shù)方面有待進一步的研究。