陳德實
(廣東省高速公路有限公司京珠北分公司,廣東 韶關(guān) 512735)
雨天、霧天、雪天及路面積雪、結(jié)冰等自然天氣現(xiàn)象導致的能見度低、路面濕滑等造成車輛行駛困難,易造成嚴重的交通事故;同時天氣變化多端,同一時間高速公路不同路段天氣狀況不同,尤其是一些極端天氣會對高速公路運行造成影響,因此需要實時監(jiān)測不同路段的天氣狀況,對惡劣天氣做出及時響應[1-4],實時管控高速公路運行狀態(tài),確保高速公路運行安全。
目前,傳統(tǒng)的天氣識別主要依靠傳感器或人類自己的視覺來完成。傳感器的前期安裝和后期維護需要耗費大量的人力、物力和財力,而且天氣狀況的識別精度和實時性會受到周圍環(huán)境的影響,導致天氣識別出現(xiàn)誤差。相對而言,天氣圖像的獲得比較容易,因此,基于天氣圖像的天氣識別方法逐漸盛行起來。Lu[5]等通過提取圖像的天空、陰影、映射和薄霧特征,實現(xiàn)了晴天和多云的天氣分類;Roser[6]等和Yan[7]等通過計算天氣圖像不同區(qū)域的亮度、飽和度和色彩等,利用支持向量機實現(xiàn)了車載視覺系統(tǒng)的晴天和雨天的識別;馬嘯[8]等和孟凡軍[9]等在傳統(tǒng)K均值聚類的基礎上,通過提取圖像飽和度分量作為識別霧霾天氣的特征,從而實現(xiàn)了霧霾天氣的識別;于浩[10]等通過提取圖像的色相、飽和度和亮度等特征,采用貝葉斯分類,實現(xiàn)對雨天和霧天的識別。
上述方法手動進行特征的提取,只能進行兩種或三種天氣類型的識別,泛化性不高,準確率也較低。高速公路監(jiān)控圖像只關(guān)注道路特征,天空特征不明顯。針對這些問題,本文采用集成學習策略,通過高速公路監(jiān)控圖像對霧天、雪天、雨天、陰天和晴天等五類天氣進行識別,及時對惡劣條件下的路面情況進行預警。
集成學習[14]可以使用多個模型進行組合,從而得到一個更好的模型,還可以根據(jù)遇到的具體問題研究者自己設計不同的組合方案來獲得更優(yōu)的模型,這是集成學習作為一種組合優(yōu)化方法的優(yōu)勢。
集成學習算法之間的主要區(qū)別在于以下5個方面[15]:不同的集成學習算法選擇不同的基礎分類器作為構(gòu)建塊;集成學習算法可以采用不同的訓練方式;集成學習算法使用不同的集成方法將多個分類器的預測結(jié)果進行綜合;集成學習算法通過增加分類器之間的差異性來獲得更好的集成效果;不同的集成學習算法可以采用不同的預測策略來生成最終的預測結(jié)果。在選擇合適的集成學習算法時,需要考慮具體問題的特點、數(shù)據(jù)集的特征以及算法的性能和適用性,以及對于所需性能的需求。
收集涵蓋不同天氣條件下的高速公路氣象數(shù)據(jù)集,包括各種天氣條件下的攝像頭圖像、氣象傳感器數(shù)據(jù)等。預處理步驟包括數(shù)據(jù)清洗、數(shù)據(jù)標注和圖像增強等。從華南、華東和東北各一個省的路面攝像頭截取視頻幀,共截取 104 621張圖片,其中訓練集:陰天20 565張、霧天16 145張、雨天20 829張、雪天18 836張、晴天19 006張;測試集:陰天1 918張、霧天1 743張、雨天1 118張、雪天1 639張、晴天2 552張。部分高速公路氣象圖片如圖1所示。
圖1 部分高速公路天氣圖像
圖像識別的精確度不僅與算法本身相關(guān),還依賴于訓練樣本。數(shù)據(jù)增強被用于模型訓練過程中,常用的數(shù)據(jù)增強方法包括隨即縮放裁剪、圖像拉伸、旋轉(zhuǎn)、水平翻轉(zhuǎn)等。針對天氣圖像的特點,本文采用圖像隨即縮放裁剪進行圖像增強,如圖2所示。
圖2 圖像增強
本文采用經(jīng)典識別網(wǎng)絡DenseNet121進行五類天氣的識別。使用DenseNet121作為基礎分類器,在訓練集上進行訓練,基于訓練集的隨機子樣本進行多次訓練,每次使用不同的參數(shù)初始化或數(shù)據(jù)采樣,得到多個不同的DenseNet121模型。針對容易混淆的陰、晴兩類天氣進行識別,在ResNet-18基礎上加上度量學習MS-Loss,提高識別的準確率。通過多次實驗確認三種模型權(quán)重,達到提高識別準確率的目的。
1.3.1 DenseNet121網(wǎng)絡
DenseNet121網(wǎng)絡在前向反饋模式中,每一層都連接它之后的層,所以DenseNet121每一層的輸入包括當前層之前的其他所有層的輸入,加強了特征在層之間的傳播和特征復用。DenseNet121的主體結(jié)構(gòu)是dense block,其結(jié)構(gòu)如圖3所示。
圖3 DenseNet121網(wǎng)絡結(jié)構(gòu)示例
使用DenseNet121訓練后的測試結(jié)果混淆矩陣見表1,整體識別準確率為85.8%,其中晴天和陰天兩種類別容易識別錯誤。
表1 DenseNet121測試結(jié)果混淆矩陣
1.3.2 ResNet-18
針對晴天、陰天容易識別錯誤的問題,本文采用ResNet識別網(wǎng)絡模型進行晴天和陰天二分類識別。ResNet主要包含5種深度的網(wǎng)絡結(jié)構(gòu),大致可以分為兩類:第一種是BasicBlock,主要用于ResNet-18、ResNet-34這些淺層網(wǎng)絡上;第二種是Bottleneck,主要用在ResNet-50、101和152甚至更深層的網(wǎng)絡結(jié)構(gòu)。本文采用ResNet-18結(jié)構(gòu)網(wǎng)絡,主要包含4層,其結(jié)構(gòu)如圖4所示。
圖4 ResNet-18結(jié)構(gòu)
采用ResNet-18進行晴、陰二分類訓練后的測試結(jié)果混淆矩陣見表2,整體識別準確率為88.0%,晴天和陰天兩種類別的識別準確率得到提高。
表2 模型2測試結(jié)果混淆矩陣
1.3.3 度量學習MS-Loss
度量學習是對模型卷積層學到的特征向量,在其特征空間內(nèi)拉大類間間距,縮小類內(nèi)間距。計算方式如式(1)所示:
(1)
式中:Sik為樣本對的余弦相似性;λ為相似度;α、β為超參數(shù)。
如圖5所示,對于一個batch里ResNet-18輸出的特征向量,計算樣本對的自身間的相似度、自身與正樣本對的相似差異性、自身與負樣本對的相似差異性等三種相似度。流程為:
圖5 MS-Loss計算過程
(1)樣本篩選,選擇樣本對的自身間的相似度較大的樣本。
(2)樣本加權(quán),將自身與正樣本對的相似差異性和自身與負樣本對的相似差異性對樣本加權(quán)。
從表3可見,ResNet-18加入采用度量學習計算后,整體的天氣識別準確率提高至88.2%。由此可見,采用度量學習可提高天氣識別的準確率。
表3 ResNet18+MS-Loss測試結(jié)果混淆矩陣
1.3.4 集成學習
集成學習常見的結(jié)合策略包括平均法、投票法及學習法等,其中較常用的為加權(quán)投票法。
加權(quán)投票法[16]首先估計出個體學習器的誤差,然后使權(quán)重大小和誤差大小成反比,最終T個個體學習器加權(quán)投票的結(jié)果如式(2)所示。
(2)
從以上三種模型的測試結(jié)果可以看出,單一模型只關(guān)注于一種特征,使用單一模型對高速公路天氣進行識別達不到要求,所以采用集成學習對天氣進行識別。本文采用的集成學習策略為:
模型1:對完整的五分類訓練集采用densenet121模型[11]進行訓練,得到85.8%五分類準確率。
模型2:對訓練集取晴、陰二分類,并對訓練集進行抽幀篩選處理,用ResNet-18[12]進行訓練,得到88.0%二分類準確率。
模型3:對五分類訓練集進行抽幀篩選處理,用ResNet-18+MS-Loss[13]進行訓練,得到88.2%五分類準確率。
模型1輸出概率向量a,模型2(晴、陰二分類模型)輸出概率向量b,模型3輸出概率向量c。模型1發(fā)揮模型2的晴、陰二分類的優(yōu)勢,并與模型3進行決策融合,較好地改善了晴、陰二分類的準確率。概率加權(quán)平均計算公式如式(3)所示。
p=γ·a+(1-γ)·c
(3)
集成學習策略測試結(jié)果見表4,識別準確率達到91.0%。從表1~表4的測試混淆矩陣可以看出,集成學習方法較好地改善了晴、陰二分類的識別準確率。
表4 集成學習測試結(jié)果混淆矩陣
考慮到天氣寒冷時會出現(xiàn)雖然天氣是晴朗的,但是路面會存在積雪、積水或結(jié)冰的現(xiàn)象,需要對路面情況進行判斷。
語義分割網(wǎng)絡通常包括編碼器和解碼器兩部分。編碼器常用一個預先訓練的分類網(wǎng)絡,如mobilenet、resnet等,然后使用解碼器對編碼器學習到的低分辨率的圖像特征語義投影到高分辨率的像素空間上,得到像素級的分類。
文獻[17]提出了第一種語義分割結(jié)構(gòu)—全卷積神經(jīng)網(wǎng)絡(FCN),也是第一次將深度學習應用到語義分割上,但存在精度較低、對細節(jié)不敏感及忽略空間的一致性等缺點。文獻[18]提出了SegNet網(wǎng)絡,在解碼器中加入了最大池化指數(shù),以提高分割分辨率。文獻[19]提出了DeepLab網(wǎng)絡,將空洞卷積加入了分割網(wǎng)絡中,提出了在空間維度上實現(xiàn)金字塔型的空洞池化及全連接條件隨機場。文獻[12]提出了DeepLabv3+網(wǎng)絡,為了擴展DeepLabv3,結(jié)合空間金字塔池化結(jié)構(gòu)和編碼解碼器結(jié)構(gòu)設計一個簡單而有效的解碼器模塊,以細化分割結(jié)果,且詳細研究了Xception模型,并將深度可分離卷積添加進解碼器模塊,提升了編碼解碼的性能,在不影響推理速度的基礎上較大地提高了分割的準確度。本文采用DeepLabv3+網(wǎng)絡對路面進行分割,從而識別出路面積水、積雪等區(qū)域。
由于從高速公路監(jiān)控視頻中很難判斷是否結(jié)冰,本文采用語義分割算法對路面進行積水和積雪的分割識別。首先識別出路面,再對路面進行積雪和積水的檢測,結(jié)合天氣預報或溫度傳感器判斷路面是否結(jié)冰。識別流程如圖6所示。
圖6 天氣識別整體流程
天氣識別的步驟:
(1)使用五分類天氣識別模型對輸入圖像進行特征提取,識別出圖片中的天氣類別,輸出陰天、晴天、霧天、雨天及雪天的概率。
(2)若陰天、晴天的概率在前2位,則使用陰、晴二分類模型進行分類,提高陰、晴識別的準確率。
(3)根據(jù)步驟2得到的天氣識別結(jié)果,若為雨天或雪天則對圖片進行路面分割,得到路面區(qū)域,并通過特征提取判斷路面是否積雪或積水。
(4)當路面區(qū)域檢測出白色雪狀時判斷路面積雪,當路面區(qū)域出現(xiàn)反光且車輛行駛濺起水花時判斷路面積水。通過溫度傳感器或天氣預報得到當前溫度,若溫度低于閾值,則判斷為路面結(jié)冰,否則為路面積水。
(5)輸出圖片天氣識別結(jié)果及路面狀態(tài)檢測結(jié)果。
將基于集成學習策略的天氣識別模型接入高速公路視頻事件識別系統(tǒng)中,系統(tǒng)每隔5min進行天氣識別,圖7為視頻事件識別系統(tǒng)。系統(tǒng)接入韶關(guān)路段的監(jiān)控視頻,統(tǒng)計了12月至1月的天氣識別準確率達到了90%,實現(xiàn)了大雨、大霧等惡劣天氣的及時告警。
圖7 視頻事件識別系統(tǒng)
本文采用集成學習策略,通過集成多個分類器的預測結(jié)果,可以降低由單個分類器引起的誤差,提高氣象識別的準確性。不同的分類器可能會捕捉到不同的特征和模式,從而提供更準確的預測結(jié)果。在氣象識別工作中,不同天氣條件的樣本可能存在類別不平衡。集成學習可以通過綜合多個分類器的結(jié)果,達到更好的類別平衡,防止模型對少數(shù)類別的過擬合。
針對高速公路較難分辨的晴天和陰天,將DenseNet121、ResNet-18、ResNet-18+MS-Losss三個模型進行融合,有效地提高了晴天、陰天的識別準確率。同時,通過語義分割方法在天氣晴朗或陰天時也能準確識別天氣,并檢測出路面積水、積雪或結(jié)冰,為高速公路安全運營提供良好的保障。