譚論正,丁銳
(1.中山職業(yè)技術(shù)學(xué)院信息工程學(xué)院,中山528402;2.中山火炬職業(yè)技術(shù)學(xué)院信息工程系,中山528436)
行人檢測是輔助駕駛系統(tǒng)的一個重要的研究課題,通常使用激光測距或基于視覺的方法來進(jìn)行。激光測距需要在普通車輛中安裝激光設(shè)備,成本高;而基于視覺的行人檢測方法可以降低成本并確保高精度,最符合普通車輛的要求?;谝曈X的行人檢測方法使用車載相機(jī)記錄的單幀或多幀圖像進(jìn)行分析檢測。單幀方法能夠?qū)崿F(xiàn)實(shí)時檢測,但是檢測精度有待提高,因此單幀方法多與其他方法結(jié)合使用。多幀方法通過使用運(yùn)動和上下文信息實(shí)現(xiàn)高檢測精度,提取豐富的信息,但計(jì)算量大,實(shí)時性差。
行人檢測需要匹配幀之間的對應(yīng)特征點(diǎn)。文獻(xiàn)[1]提出了基于級聯(lián)分類器的快速行人檢測,采用類似Haar 的特征進(jìn)行幀之間的特征點(diǎn)跟蹤,速度快,但特征過于簡單準(zhǔn)確率不高。文獻(xiàn)[2-3]提出基于小區(qū)域的梯度信息或LBP 特征來訓(xùn)練SVM 分類器進(jìn)行行人檢測。HOG[4]特征側(cè)重于局部區(qū)域的變化,并且對于姿勢的微小變化具有魯棒性。然而HOG+SVM 的方案計(jì)算量大,且對于遮擋問題不魯棒,因此文獻(xiàn)[5-6]提出了可形變組件模型(DPM)處理大的姿態(tài)變化,可以檢測整個行人模型和部分區(qū)域的行人。DPM 在行人檢測基準(zhǔn)測試中獲得了較好的性能,DPM 特征計(jì)算復(fù)雜高,計(jì)算速度慢。
傳統(tǒng)的人體檢測方法采用手工設(shè)計(jì)的特征提取和基于統(tǒng)計(jì)學(xué)習(xí)的訓(xùn)練分類。存在以下缺點(diǎn):①特征設(shè)計(jì)需要人類知識來確保穩(wěn)健性,耗費(fèi)大量時間且摻雜人為因素,而實(shí)際應(yīng)用場景背景復(fù)雜、行人服飾多樣,還存在行人姿態(tài)及遮擋等問題,使得傳統(tǒng)方法提取的特征難以滿足實(shí)際應(yīng)用的要求。②分類器的性能受訓(xùn)練樣本的影響較大,需要大量的標(biāo)注特征樣本來訓(xùn)練概率模型,但在離線訓(xùn)練時的負(fù)樣本無法涵蓋所有真實(shí)應(yīng)用場景。
近年來,深度學(xué)習(xí)的方法[7-8]引起了人們的注意,通過卷積神經(jīng)網(wǎng)絡(luò)(CNN)自動學(xué)習(xí)圖像特征,把低層特征組合起來形成具有良好表示的高層特征,具有出色的特征表示和分類能力,在圖像識別相關(guān)的任務(wù)中取得了很大成功?;谏疃染矸e神經(jīng)網(wǎng)絡(luò)(CNN)的行人檢測實(shí)現(xiàn)了高精度的檢測[9-10]。激活函數(shù)用來增加神經(jīng)網(wǎng)絡(luò)模型的非線性,主要有sigmoid 函數(shù)、tanh 函數(shù)和ReLU 函數(shù),sigmoid 函數(shù)與tanh 函數(shù)輸出有界,可能帶來梯度消失問題,而ReLU 函數(shù)能解決梯度消失問題并加快收斂速度。泛化能力是神經(jīng)網(wǎng)絡(luò)的重要性能,ReLU 函數(shù)使用Dropout 機(jī)制來獲得泛化,Dropout 隨機(jī)丟失固定比例的單位,該比率通常設(shè)定為50%,所選單位的響應(yīng)值為零。在訓(xùn)練過程的每次迭代中選擇不同的單位,雖然使用Dropout 訓(xùn)練的網(wǎng)絡(luò)表現(xiàn)出改進(jìn)的泛化性能,但這種隨機(jī)選擇僅適用于訓(xùn)練過程。
為了實(shí)現(xiàn)更好的泛化,本文提出用于訓(xùn)練過程的隨機(jī)丟失策略和用于分類過程的集成推理網(wǎng)絡(luò)(EIN)。本文的隨機(jī)丟失以靈活的概率隨機(jī)選擇丟失單位,而不是傳統(tǒng)Dropout 中使用的固定概率。構(gòu)建在完全連接層中的集成推理網(wǎng)絡(luò)(EIN)是具有不同結(jié)構(gòu)的多個網(wǎng)絡(luò)。最后本文在一系列對比實(shí)驗(yàn)中驗(yàn)證了EIN 的架構(gòu),并將所提出的方法的性能與現(xiàn)有的方法進(jìn)行了比較。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)包括輸入層、卷積層、池化層和分類層。除原始數(shù)據(jù)外,每個輸入層采用邊界填充對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化。卷積層具有M 個大小為k*k 的內(nèi)核,將輸入數(shù)據(jù)進(jìn)行卷積過濾,輸出到池化層中進(jìn)行二次采樣,加快收斂和泛化。一系列交替出現(xiàn)的卷積層和池化層后,所有加權(quán)節(jié)點(diǎn)連接到分類層,通過Softmax 輸出每個類的概率。CNN 利用監(jiān)督學(xué)習(xí),通過反向傳播隨機(jī)初始化和更新濾波器,通過如下公式(1)和公式(2)梯度下降最小化反向傳播的估計(jì)權(quán)重E:
其中,n=1,…,N 是訓(xùn)練樣本,η是訓(xùn)練比率,W(l)是在l 層連接到(l+1)層的權(quán)重,每個訓(xùn)練樣本的誤差En是輸出值和標(biāo)簽之間差異的總和?!鱓(l)可由式(3)得到:
其中,y(l-1)是第(l-1)層的輸出,e 是輸出節(jié)點(diǎn)的誤差。A(l-1)是從第(l-1)層中的所有節(jié)點(diǎn)連接到l層節(jié)點(diǎn)的累積值。式(4)計(jì)算得到局部梯度下降值,激活函數(shù)φ可以是sigmoid 函數(shù),雙曲正切函數(shù)或者ReLU函數(shù)[11]。整個網(wǎng)絡(luò)中的連接權(quán)重按照預(yù)定的迭代次數(shù)同時更新,或者直到滿足收斂條件。
Dropout 是減少過度擬合和改進(jìn)泛化的有效方法[8]。Dropout 通過忽略下面層級中的某些信息來產(chǎn)生穩(wěn)健性,傳統(tǒng)的Dropout 在每次迭代中隨機(jī)選擇設(shè)置為零的隱藏單位,以50%的概率將隱藏單元的輸出設(shè)置為零。本文通過隨機(jī)概率來擴(kuò)展此Dropout 技術(shù),即以隨機(jī)概率將隱藏單元的輸出進(jìn)行丟失。圖1 說明了本文使用靈活的隨機(jī)丟失率獲得泛化。Dropout 策略如式(6)所示:
其中,隨機(jī)丟失概率介于30%和70%之間。例如,我們在第一次迭代中為每個圖層設(shè)置比率為60%和30%,然后在第二次迭代中將此值更改為40%和70%。
集成推理網(wǎng)絡(luò)(EIN)旨在從分類過程中刪除與前一層的連接,EIN 在不同時間將輸入值反饋到訓(xùn)練網(wǎng)絡(luò)的完全連接層,完全連接層的一些單元被隨機(jī)設(shè)置為零。本文通過隨機(jī)選擇不同的單元與原始訓(xùn)練的網(wǎng)絡(luò)形成不同的網(wǎng)絡(luò)。EIN 構(gòu)建過程的步驟如下:
(1)特征映射:輸入圖像I 與濾波器V 進(jìn)行卷積,采用激活函數(shù)φ生成特征映射,如式(7)所示。
其中,b 是偏差項(xiàng)。使用Maxout 激活函數(shù)[12],從每個單位的K 個特征映射中選擇最大值,如公式(8)所示。
然后,采用最大池來選擇每個特定區(qū)域中的最大值,通過公式(9)調(diào)整特征圖的大小來獲得對微小形變的魯棒。盡管完全連接層中的單元將根據(jù)隨機(jī)選擇而改變,但是卷積層和池化層保持相同。因此,我們可以共享最終池化層的輸出值。
(2)通過公式(10)進(jìn)行網(wǎng)絡(luò)構(gòu)建:在完全連接層和分類層中,將隨機(jī)選擇的單元的響應(yīng)值設(shè)置為零。
其中,x 為步驟(1)中定義的特征映射。Wl和bl是連接權(quán)重和第l 層的偏差。m 控制響應(yīng)值,其值設(shè)置為0 或1,當(dāng)m 設(shè)置為0 時,響應(yīng)值為0,當(dāng)m 設(shè)置為1 時,響應(yīng)值為1。我們用隨機(jī)選擇的零響應(yīng)單元構(gòu)造N 網(wǎng)絡(luò)。網(wǎng)絡(luò)n 中每個類的概率由方程式(11)中的Softmax 函數(shù)給出。
(3)最終輸出分類器值:從每個網(wǎng)絡(luò)的每個類的概率Onc獲得最終輸出類的值。所有Onc存儲到概率集Sc 中,并從中選出均值
在以上基礎(chǔ)上,采用滑動窗口方法來檢測不同規(guī)模的多個行人。在檢測過程中,需要在大量窗口中判斷是否存在行人。我們應(yīng)用HOG+SVM 分類器來減少尋找行人候選區(qū)域的處理時間,然后才CNN 對候選區(qū)域進(jìn)行行人判斷。
本文使用Caltech Pedestrian 數(shù)據(jù)庫和Daimler Mono Pedestrian Benchmark 數(shù)據(jù)庫評估隨機(jī)丟失策略和和幾種具有不同網(wǎng)絡(luò)數(shù)量和不同最終輸出決策(最大值或平均值)的EIN 架構(gòu)的效率。使用Caltech Pedestrian Dataset 將本文方法與其他方法進(jìn)行比較。
實(shí)驗(yàn)采用Python 語言引入TensorFlow 構(gòu)建CNN,并調(diào)用了OpenCV 庫實(shí)現(xiàn)了文中的數(shù)據(jù)擴(kuò)展,測試的硬件環(huán)境為HP-EliteDesk-800-G4 內(nèi)配2 塊1080 NVIDIA 獨(dú)立顯卡的圖形工作站一臺,使用的測試平臺是Ubuntu 16.04 操作系統(tǒng)。本文采用的CNN 結(jié)構(gòu)如表1 所示。Caltech Pedestrian 數(shù)據(jù)集有4,000 個正樣本和200,000 個負(fù)樣本用于訓(xùn)練,8,273 個測試圖像。本文通過移位、旋轉(zhuǎn)、鏡像和縮放從原件中增加了101,808 個正樣本。對于Daimler Mono Pedestrian Benchmark 數(shù)據(jù)集,我們從31,320 個樣本中增加了250,560個正樣本;負(fù)樣本數(shù)量為254,356 個。參數(shù)更新的總迭代次數(shù)為500,000,分5 個mini-batch,訓(xùn)練比率η設(shè)定為0.01。
表1 采用的CNN 結(jié)構(gòu)
首先,我們通過改變網(wǎng)絡(luò)數(shù)量和最終輸出的決定方式來衡量EIN 的最佳架構(gòu)。我們評估包含從1 到23 層網(wǎng)絡(luò)的EIN 體系結(jié)構(gòu)。每個網(wǎng)絡(luò)在卷積層和池化層中保持相同的結(jié)構(gòu),但是完全連接層根據(jù)單元的隨機(jī)選擇而變化。當(dāng)網(wǎng)絡(luò)數(shù)量為1 時,我們有一個傳統(tǒng)的網(wǎng)絡(luò)。我們從所有網(wǎng)絡(luò)中選擇平均概率。圖1(a)和(b)分別顯示了使用Caltech Pedestrian Dataset 和Daimler Mono Pedestrian Benchmark Dataset 的評估結(jié)果。首先,實(shí)線和虛線之間的差異表示Dropout 和Random Dropout 的性能。在Caltech Pedestrian 數(shù)據(jù)庫中,我們可以看到Random Dropout 將準(zhǔn)確度提高了約6%。具有23 個平均選擇網(wǎng)絡(luò)的架構(gòu)達(dá)到了最佳精度,在Caltech Pedestrian 數(shù)據(jù)庫的失敗率為37.77%。從該評估中,在完全連接的層中具有多個網(wǎng)絡(luò)和不同結(jié)構(gòu)的EIN 獲得了更好的檢測精度。在Daimler Mono Pedestrian Benchmark 數(shù)據(jù)集中,CNN 的未命中率為35.78%,而本文方法在23 個集合網(wǎng)絡(luò)中的平均失敗率為31.34%,顯著提高了命中率。
圖1 不同網(wǎng)絡(luò)性能比較
本文在Caltech Pedestrian Dataset 上將所提出的方法與以下其他方法進(jìn)行了比較:HOG[9]、傳統(tǒng)CNN[11]、可切換深度神經(jīng)網(wǎng)絡(luò)[13]、Fast R-CNN[15]進(jìn)行對比實(shí)驗(yàn)。如表2 所示,當(dāng)每幅圖像假陽性(False Positive per Image)FPPI 為0.1 時,本文方法的識別精度相對于傳統(tǒng)CNN提高了15%。此外,本文所提出的方法實(shí)現(xiàn)了與可切換深度網(wǎng)絡(luò)[13]類似的性能,然而可切換深度網(wǎng)絡(luò)需構(gòu)建復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu),本文簡單的網(wǎng)絡(luò)架構(gòu)足以在深度學(xué)習(xí)方法中實(shí)現(xiàn)最先進(jìn)的性能。與目前圖像檢測性能最高的Faster R-CNN 相比,它將檢測精度提高了約10.5%。Faster R-CNN 使用超像素方法確定圖像中的感興趣區(qū)域,并使用CNN 提取特征。將提取的特征傳遞給為每個對象訓(xùn)練的SVM,最后檢測特定的對象位置。雖然Faster R-CNN 在目標(biāo)檢測上準(zhǔn)確,但在尺寸較小的圖像中,提出的行人特征沒有什么區(qū)分能力,且在背景復(fù)雜干擾較大的環(huán)境中行人檢測上效果一般。
表2 在不同數(shù)據(jù)庫中不同方法的識別結(jié)果
圖2 顯示了Caltech Pedestrian Dataset 和Daimler Mono Pedestrian Benchmark 中的行人檢測結(jié)果檢測。第一列和第四列中的結(jié)果是通過HOG+SVM 檢測的示例,第二和第五列是DPM 檢測的示例。第三列和第六列中的行人檢測結(jié)果是本文所提出的方法的結(jié)果。如圖2 所示,傳統(tǒng)方法不能檢測到小面積行人,本文所提出的方法在同一場景中可以檢測,此外本文方法能夠檢測諸如遮擋,各種姿勢的困難情況,誤報率更低。
我們提出了兩種通過基于Dropout 隨機(jī)選擇單元來改進(jìn)行人檢測的技術(shù)。本文的隨機(jī)丟失策略以靈活的速率將單位的相應(yīng)值隨機(jī)設(shè)置為零。EIN 構(gòu)造多個網(wǎng)絡(luò),在完全連接層中具有不同的結(jié)構(gòu),產(chǎn)生最終輸出的決策方式。我們實(shí)現(xiàn)了與深度學(xué)習(xí)方法中先進(jìn)方法相當(dāng)?shù)男阅?,而且提出的方法結(jié)構(gòu)很簡單。在未來的工作中,我們將嘗試降低實(shí)時處理的計(jì)算成本。
圖2 不同行人檢測方法結(jié)果對比