王美鈺
(西南交通大學(xué)信息科學(xué)與技術(shù)學(xué)院,成都611756)
到2019 年6 月為止,全國汽車數(shù)量達到2.5 億輛,私家車達1.98 億輛。我國高速公路車流量巨大、同時車速快,是我國交通運輸?shù)闹鲃用}。但是高速公路的飛快發(fā)展,給人們生活出行帶來便利的同時,也增大了交通事故的發(fā)生幾率,為道路交通的安全帶來了隱患。
由于高速公路在我國已經(jīng)大規(guī)模建設(shè),高速公路長期運營產(chǎn)生大量的歷史視頻數(shù)據(jù),通過深度學(xué)習(xí)強大的建模能力對歷史數(shù)據(jù)進行建模,應(yīng)用于高速公路車輛檢測與車輛行為識別,及時準確地發(fā)現(xiàn)高速公路的異常事件,在高速公路事故救援工作中有著極其重要的作用,具體的研究包括車輛檢測、車牌識別、車輛細分類、路面積水檢測等。
車輛檢測可以通過利用基于深度學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò),來學(xué)習(xí)這些特征,以達到車輛目標檢測的目的。在白天的交通監(jiān)控場景中,可以通過車輛特征,如車輛形狀、顏色、陰影等[1-2]準確檢測到車輛。然而,夜間高速公路的光照條件十分的復(fù)雜,不僅車輛車燈的種類繁多,而且路面上也會有車燈的反射光及路燈的反射光等各種環(huán)境因素,這些因素也會加大夜間高速公路的車輛檢測的難度。因此,在夜間交通監(jiān)控場景下,無法使用和白天相同的車輛檢測特征,車輛的前車燈和尾燈成為了車輛檢測的主要目標特征,所以車輛的車燈及反光的研究具有重要的意義。
在高速公路車輛檢測研究的基礎(chǔ)上,發(fā)現(xiàn)夜間高速公路車輛車燈的反光誤檢率高,主要誤檢成行人或油罐車。針對這個問題,如要提高高速公路夜間車輛檢測的正確率,降低誤檢率,對車輛車燈的反光檢測的研究十分重要,且更能滿足實際的應(yīng)用需求。
對于夜間道路監(jiān)控的車輛檢測,最大的干擾項是車燈照射到路面形成的反射光,尤其是在雨天道路上形成的反射光,嚴重影響車輛檢測的準確率。Wei Zhang[3]提出了一種解決道路反射光干擾的方法,通過大氣散射和拉普拉斯高斯濾波(LOG),提取出車燈和反射光的明顯特征,再用馬爾科夫隨機場(MRF)方法將反射光剔除。浦世亮等人[4]在上述工作基礎(chǔ)上,提出了基于決策樹的反射光和車燈的分類算法,該算法是通過在視頻圖像中的車燈和反射光之間的亮度方差特征差異進行分類,實現(xiàn)反射光消除和夜間車輛的檢測。
目前,圖像分類的最佳方案就是利用卷積神經(jīng)網(wǎng)絡(luò)。在分類中,圖像有許多重疊的目標和不同的背景,不僅要對這些不同的目標進行分類,還要確定它們之間的邊界,差異和關(guān)系。圖像理解的關(guān)鍵在于將一個整體場景分解成幾個獨立的目標,有助于預(yù)測目標的不同行為。目標檢測方法可以預(yù)測目標在圖像中的位置信息,但人類對場景的理解能以像素級的精細程度對每一個目標進行檢測并確定其邊界。因此目標檢測及分類的相關(guān)工作漸漸的轉(zhuǎn)向到語義分割的領(lǐng)域,而分割網(wǎng)絡(luò)的預(yù)測與分類網(wǎng)絡(luò)預(yù)測不同的是,分割網(wǎng)絡(luò)的預(yù)測是基于圖像像素點的預(yù)測。
FCN 網(wǎng)絡(luò)[5]是基于端到端的卷積網(wǎng)絡(luò),它提出可以把網(wǎng)絡(luò)中的全連接層替換成卷積層,獲得一張二維的特征圖,后接Softmax 獲得每個像素點的分類信息,從而解決了分割問題,網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。深度卷積神經(jīng)網(wǎng)絡(luò)(DCNN)需要大量的訓(xùn)練數(shù)據(jù)才能讓模型達到更好的性能,U-Net 網(wǎng)絡(luò)[6]利用數(shù)據(jù)增強方法增加訓(xùn)練數(shù)據(jù),使卷積神經(jīng)網(wǎng)絡(luò)(CNN)可以從較少的訓(xùn)練圖像中進行學(xué)習(xí),使編碼器-解碼器的結(jié)構(gòu)變得更加魯棒以抵抗形變,但該網(wǎng)絡(luò)的設(shè)計針對于特殊的醫(yī)學(xué)場景。Segnet 網(wǎng)絡(luò)[7]基于FCN 網(wǎng)絡(luò)[5],采用VGGNet[8]網(wǎng)絡(luò)作為其主干網(wǎng)絡(luò),整體是一個編碼器-解碼器的網(wǎng)絡(luò)結(jié)構(gòu),解碼器使用從相應(yīng)的編碼器接受的最大池化索引進行輸入特征圖的非線性上采樣。Pspnet 網(wǎng)絡(luò)[9]是利用ResNet 網(wǎng)絡(luò)[10]提取圖像特征;將得到的特征圖輸出到一個全局池化層,再通過一個金字塔池化模塊獲得多個子區(qū)域的局部特征表示,最后通過上采樣恢復(fù)圖像尺寸,并串聯(lián)所有特征,得到最后的特征表示向量,從而獲得圖像的局部和全局特征。
圖1 FCN網(wǎng)絡(luò)結(jié)構(gòu)圖
Focal loss[11]是為了解決one-stage 的目標檢測場景而設(shè)計的。在這個場景下,訓(xùn)練過程中前景類和背景類之間存在極端的不平衡。該損失函數(shù)被稱為是一種困難樣本的挖掘,它降低了大量簡單負樣本在訓(xùn)練中所占的權(quán)重。通過平衡因子α 來解決樣本不平衡問題,通過調(diào)制因子γ 減少了占比小的類別的損失貢獻,并擴展了獲得低損失樣本的范圍。Focal loss 對于那些預(yù)測得分不好的樣本,即預(yù)測標簽與真實標簽的接近程度小的樣本,保留交叉熵損失中的大部分損失,對于那些預(yù)測得分很好的樣本,大幅減小其交叉熵損失。由實驗得出,α=0.25,γ=2 時,模型效果最好,其公式(1)如下所示:
對于二分類來說,pt表示預(yù)測樣本為1 的概率。
Class weight loss 損失函數(shù),簡稱CW loss,用于平衡各像素類別占用的比例,增大比例小的類別的權(quán)重,減小比例大的類別的權(quán)重,使訓(xùn)練模型重點關(guān)注比例小的分類。在Focal loss 算法的基礎(chǔ)上,自適應(yīng)的計算出每個類別占用的比例權(quán)重矩陣W。比例矩陣R 表示每個類別在圖像中的比例,平衡因子α 用來權(quán)衡各個類別的比例。對多分類來說,pt表示預(yù)測樣本類別為i 的概率。其公式(2)、(3)、(4)如下所示:
圖像共包含k+1 個像素類別,ri表示類別為i 的像素在整張圖像中所占的比例,其計算公式(5)如下所示:
其中,圖像寬為w,高為h,共有w×h 個像素點,clsi表示圖像中屬于類別為i 的像素個數(shù)。
隨著卷積神經(jīng)網(wǎng)絡(luò)以及相關(guān)硬件設(shè)備的逐步發(fā)展,基于深度學(xué)習(xí)的車輛檢測算法的實驗條件正在日趨完備。但是,基于深度學(xué)習(xí)的高速公路車輛車燈的反光檢測研究較少,本文使用的數(shù)據(jù)集來自高速公路車輛檢測的數(shù)據(jù)集。數(shù)據(jù)集共包含1002 張圖片,其中測試集包含230 張圖片,驗證集包含150 張圖片,訓(xùn)練集包含622 張圖片。圖像像素分為3 個類別,類別含義如表1 所示。
表1 類別含義
為了衡量分割系統(tǒng)的作用及貢獻,其性能需要經(jīng)過嚴格評估,需測試系統(tǒng)的執(zhí)行時間、內(nèi)存占用、和精確度[12]等來評估其有效性。由于不同的系統(tǒng),所處的背景以及測試目的不同,某些標準可能要比其他標準更加重要,例如,對于實時系統(tǒng),為了提高運算速度可以損失其精確度。語義分割中為了衡量算法的精度,通常需要使用許多衡量標準,下面將介紹幾種常用的逐像素標記的精度標準。假設(shè)如下:共有k+1 個類,pij表示本屬于類i 但被預(yù)測為類j 的像素數(shù)量,即pii表示真正的數(shù)量。
(1)MPA 稱為均像素精度[12],計算每個類內(nèi)被正確分類像素數(shù)的比例,求所有類的平均。計算公式(6)如下所示:
(2)MIoU 稱為均交并比[12],計算兩個集合的交集和并集之比。在語義分割的問題中,這兩個集合為真實值和預(yù)測值。MIoU 越高,表示預(yù)測值與真實值越接近。計算公式(7)如下所示:
本文中的實驗采用PyTorch 深度學(xué)習(xí)框架來構(gòu)建和訓(xùn)練網(wǎng)絡(luò)模型,所有實驗均在Ubuntu 16.04 操作系統(tǒng)中進行。輸入圖像尺寸為480×360,實驗參數(shù)設(shè)置如表2 所示。由于網(wǎng)絡(luò)參數(shù)量不同,所以這些網(wǎng)絡(luò)的收斂速度不同,迭代次數(shù)設(shè)置也不盡相同,根據(jù)訓(xùn)練曲線決定訓(xùn)練進度。
表2 實驗參數(shù)設(shè)置
(1)Baseline 實驗
為了驗證網(wǎng)絡(luò)的有效性,本文利用高速公路車輛檢測數(shù)據(jù)集在3 個主流的語義分割網(wǎng)絡(luò)中進行了對比實驗,在測試集上的實驗結(jié)果如表3 所示。通過實驗結(jié)果表明,F(xiàn)CN8s 網(wǎng)絡(luò)使用反卷積層進行上采樣,并跳躍連接將多層特征融合,在該數(shù)據(jù)集上提高了分割的準確性。
表3 各網(wǎng)絡(luò)在該數(shù)據(jù)集上的實驗結(jié)果對比
(2)CW loss 實驗
由于FCN8s 在MIoU 和MPA 兩個評價指標上均高于其他分割網(wǎng)絡(luò),本實驗選用FCN8s 作為基準,將FCN8s 使用的交叉熵損失函數(shù)(CE loss)替換成CW loss 損失函數(shù)進行實驗。隨著平衡因子α 的不同,實驗結(jié)果有所不同,如表4 所示。當α=0.2 時,在測試集上的實驗結(jié)果達到最好,其MIoU 為70.090%,MPA 為80.837%。
表4 不同平衡因子的實驗結(jié)果對比
(3)FCN8s 與FCN8s+CW loss 對比實驗
對比實驗訓(xùn)練曲線如圖2 所示,在測試集上的實驗結(jié)果如表5 所示。為了使其更好的收斂,F(xiàn)CN8s 的迭代次數(shù)為88k,F(xiàn)CN8s+CW loss 實驗的迭代次數(shù)為150k,但兩個實驗在迭代60k 次后均趨于穩(wěn)定,因此兩個實驗的迭代次數(shù)并不會影響模型的準確性。
圖2 訓(xùn)練曲線對比
在圖像標注過程中,反光的邊界界定模糊,標注難度較大;可視化實驗結(jié)果如圖3 所示,其中黃色像素點為尾燈反光,藍色像素點為前燈反光。通過可視化結(jié)果可以看出,F(xiàn)CN8s 網(wǎng)絡(luò)在該數(shù)據(jù)集上進行訓(xùn)練后得到的模型能檢測到更多的反光信息。
通過實驗表明,在FCN8s 網(wǎng)絡(luò)的基礎(chǔ)上,CW loss與交叉熵損失函數(shù)(CE loss)相比,評價指標MPA 提升了1.964%,評價指標MIoU 下降了0.09%。由此可以看出,使用CW loss 訓(xùn)練網(wǎng)絡(luò),在保證模型預(yù)測值與真實值的交并比的基礎(chǔ)上,能夠有效地提升像素精度。
表5 實驗結(jié)果對比
圖3 實驗結(jié)果圖
本文經(jīng)過對夜間高速公路車輛反光檢測進行研究,提出基于Focal loss 的夜間高速公路車輛反光檢測的CW loss 損失函數(shù),解決反光檢測中多個類別比例失衡的問題。使用CW loss 訓(xùn)練網(wǎng)絡(luò),在保證模型預(yù)測值與真實值的交并比的基礎(chǔ)上,能夠有效地提升反光檢測的像素精度。