王 海,蔡柏湘,蔡英鳳,劉 澤,孫 愷,陳 龍
(1. 江蘇大學汽車與交通工程學院,鎮江 212013;2. 江蘇大學汽車工程研究院,鎮江 212013;3. 上海禾賽科技股份有限公司,上海 201702)
準確地估計路面附著系數一直是一個非常具有挑戰性且很有實際意義的研究課題。雨后低附著系數路面不僅影響車輛的動力性和制動性能,且會使汽車的操縱穩定性變差[1]。及時準確地辨識出路面附著系數,為駕駛員或智能車輛的決策預留時間,可避免不必要的交通事故。
目前,路面附著系數的估計方法主要有3 類:第一類是傳統的基于車輛動力學參數建模的間接估計,如文獻[2]中基于所設計慣性試驗臺提出通過改變車輪與雙轉鼓間安置角等效不同路面峰值附著系數的算法;第二類是通過光學傳感器獲取路面數據,根據傳感器數據與路面附著系數的關系進行估計;第三類則是基于視覺傳感器借助深度學習手段的間接估計。
采用動力建模的方法雖然準確可靠,但模型復雜,不能保證實時性;且該方法只能估計當前與輪胎接觸的路面附著系數,而不能估計車輛前方路面的附著系數?;诠鈱W傳感器的方法,容易受到光照變化、環境噪聲和路面陰影等因素的影響,魯棒性不佳。借助深度學習分類網絡的方法雖說能彌補上述兩種方法的缺陷,但只能估計路面整體的附著系數,不能對積水和濕滑路面局部進行附著系數估計,更得不到路面積水和濕滑區域的分布。
據此,本文中提出了基于圖像語義分割的積水和潮濕的路面狀態識別和路面附著系數估計的方法。該方法不僅可以預測未來路面局部附著系數,且能得到路面積水和濕滑區域的分布,為無人駕駛車輛和機器人等智能系統的決策與路徑規劃提供很好的前提條件。
近年來,隨著圖像處理技術和模式識別技術的發展及其越來越廣泛的應用,伴隨著以攝像頭為主的道路監控設備的普及,催生了許多基于圖像技術的非接觸式路面狀態檢測和識別方法。在重要路段,如事故多發路段、十字路口路段、視野盲區路段安裝監控攝像頭,實時采集道路圖像,并將其傳輸到控制中心,即可進行路面狀態識別。
機器學習的做法通常是從車載攝像頭或道路監控錄像機獲取道路圖像;然后,經過一系列圖像預處理操作,如降噪、增強、膨脹、腐蝕、二值化等之后,提取圖像的顏色、紋理、亮度等基本特征;最后,采用支持向量機、k 近鄰、貝葉斯分類器和傳統神經網絡等機器學習技術進行圖像的分類。
日本學者Kuno 等[3]研究了一種基于車載CCD攝像機的瀝青路面干濕狀況實時檢測方法,該方法參照亮度信號的低亮度水平,利用平均絕對偏差來檢測路面光澤度,再根據檢測到的路表面光澤度,確定路面積水狀況。經驗證,該方法在車輛高速行駛的情況下也能檢測出路面的積水狀況,但由于夜間幾乎沒有均勻的照明,在夜間的檢測正確率很低。
Yang等[4]研究了一種基于小波函數和支持向量機(SVM)分類器的路面狀態檢測方法。路面狀況分為干燥、潮濕、積雪、結冰等狀態。通過車載數碼相機獲取圖像,利用小波變換提取圖像特征,然后采用支持向量機(SVM)訓練分類器進行分類。最終對干燥、潮濕、積雪和結冰路面的分類精度分別達91.4%、85.1%、86.7%和88.3%。
Jonsson 等[5]使用裝有一套光學波長濾光片的紅外攝像機獲取每個像素的亮度作為特征,這些圖像主要用于開發多變量數據模型,也用于對每個像素中的路況進行分類,由此產生的成像系統能可靠地區分路面上干燥、潮濕、結冰或積雪覆蓋的路段。該系統是對現有單點路況分類系統的巨大改進。
2012 年,Hinton 課題組提出的AlexNet 網絡[6]一舉奪得ImageNet 圖像識別比賽冠軍,深度學習開始被應用在圖像領域并快速發展。隨后,深度學習技術在圖像分類、識別和檢測等領域都取得了很大的成就;一些研究者將深度學習應用于路面狀態的識別。
德國不倫瑞克理工大學的研究人員從文獻[7]中的Kitti 和RobotCar 數據集中截取了6 種路面圖像,分別是干燥、潮濕、積雪等。他們訓練并比較兩種不同的模型—InceptionV3和ResNet50。然后增加了長時和短時記憶單元,進一步提高分類精度[8]。
Pan 等[9]也利用了類似的方法,使用預先訓練好的深度分類模型—VGG16 對不同積雪程度的路面進行分類。該方法充分利用了預訓練模型的權重,只對預訓練模型進行微調,在自制的數據集上分類準確率可達90.7%。
綜上所述,目前對于路面水、雪、冰等狀態的識別主要分為傳統機器學習和深度學習兩大類。大多數傳統方法都是手動選擇和提取特征,如紋理、顏色、亮度或其他特征。然后,將它們組合起來,形成一個特征庫。最后,利用機器學習算法建立分類模型。隨著深度學習的發展,一些研究人員利用預先訓練好的深度神經網絡直接對路面圖像進行分類,取得了與傳統機器學習算法相當的效果。然而,往往不是整個路面都是積水、結冰或積雪狀態,想要獲取它們在路面上的分布情況,簡單的分類已經不能滿足實際應用的要求。因此,對路面狀況的識別應細化為對圖像中每個像素的密集預測,并給出類別信息,這就是語義分割技術。圖1 為語義分割示意圖,輸入圖像經過連續的卷積操作和池化操作,降低分辨率的同時增加特征圖像通道數以獲取低層次和高層次的圖像特征,在上采樣階段將下采樣獲取的特征地圖的分辨率恢復至輸入圖像分辨率大小,最后對特征地圖的每一個像素進行分類得到輸出的分割圖像。

圖1 語義分割示意圖
圖像的語義分割是深度學習在圖像領域的一大應用,其目的是在像素級對圖像進行分析,將圖像中的每個像素分配給一個對象類。
在深度學習取代機器視覺之前,人們使用像素級的決策樹分類,如紋理基元森林(texton forest)和基于隨機森林(random forest)的分類器等方法進行語義分割。早期的算法通常基于閾值、邊緣或區域的先驗知識,這些先驗知識本質上依賴于圖像本身的低級視覺信息。由于這些方法沒有訓練階段且計算復雜度通常較低,在沒有輔助信息的情況下,精度很難滿足要求且魯棒性較低。
深度學習的興起,使采用深度神經網絡解決語義切分問題成為一種趨勢。其根本原因在于深層網絡具有很強的非線性模擬能力,而傳統算法依靠先驗提取的特征可以被網絡取代,甚至可以得到更豐富的特征。近年來,卷積神經網絡(CNNs)大力推動和發展了多種分割模型,如全卷積神經網絡(FCNs)[10]、UNet[11]、UNet++[12]、PSPNet[13]以 及 一 系 列DeepLab版本[14-16]。語義分割網絡的開山之作,全卷積神經網絡是在分類網絡的基礎上提出的,用全卷積層代替分類網絡最后的全連接層,這允許其為任何大小的圖像生成分割圖。幾乎所有后續的語義分割技術都采用了這個范例。典型的識別網絡及其更深層的后繼者表面上接受固定大小的輸入并產生非空間輸出。這些網絡的完全相連層有固定的尺寸,并丟棄了空間坐標。因此,在語義分割任務中,完全連接的層被卷積層替換。除了完全連接的層之外,使用CNN 進行分割的主要問題之一是池化層。池化層增加了接受域,并且能夠聚合上下文,同時丟棄要保留的位置信息。分割任務須將分類標簽與原始圖像對齊,因此需要重新引入位置信息,前人的研究中主要有兩種不同類別的體系結構來解決這個問題。第一類是編碼器和解碼器(encoder?decoder)體系結構。編碼器通過卷積層逐步降低圖像分辨率,解碼器通過反卷積逐漸恢復圖像細節和空間維度。在第二類的體系結構中使用的是文獻[17]中所稱的膨脹卷積,也叫擴張卷積。擴張卷積允許在不降低空間維度的情況下指數地增加感受野。
本文中采用了一種新的殘差網絡結構—Res?UNet++,其結構示意圖如圖2(e)所示,大體結構由不同深度的編碼器-解碼器組成,在提取圖像特征的編碼器也就是網絡的Backbone 部分加入殘差結構[18],可以更容易地提取圖像的抽象特征和局部細節。圖2(a)~圖2(d)為不同深度的編碼器-解碼器結構。嵌套了不同深度的編碼器-解碼器結構的R?UNet++,其優點在于,淺層結構可以提取圖像的一些簡單的特征,比如邊界和顏色,而深層結構因為感受野大了,而且經過多次卷積操作后,能提取到更抽象的圖像特征,使分割更精確。

圖2 Res-UNet++網絡結構圖
編碼器的作用是獲取圖像上下文信息,提取圖像特征,其結構類似于經典的分類網絡VGG[19]。兩個3×3 的小卷積被重復堆疊。在每次卷積后,使用Relu激活函數來增加非線性模擬能力。在兩次卷積操作后,將2×2的最大池化層作為完整的下采樣操作來執行,擴大感受野的同時將圖像分辨率減半。在每一次下采樣中,為了提取更多樣化的特征,特征通道的數量增加了一倍。連續的幾次3×3 卷積可以加深網絡,獲取圖像更深層次、更抽象的特征,增強表達能力,同時,減少了模型參數的數目,加快了訓練速度。在編碼器中,經過4次下采樣操作后將圖像特征分辨率降低到輸入圖像的1/16,以充分提取局部細節。
解碼器的作用是將經過編碼后的特征圖像通過上采樣將其分辨率恢復到和輸入圖像一樣的大小,然后對每一個像素點分類。解碼過程的上采樣操作次數等于編碼器中的下采樣操作的次數。每一次上采樣后,特征地圖的通道數量減半,分辨率加倍。在解碼過程中,轉置卷積用于上采樣,同時每一層上采樣的輸出包含編碼器相同分辨率的下采樣輸出,這是一種快捷連接。它將編碼器提取的低層特征與從解碼器提取的高層特征進行融合,形成更豐富、更全面的特征表達。
殘差單元的主要設計思想有兩個:快捷連接和恒等映射。殘差結構如圖3所示。圖中,X代表特征輸入,通過右邊的快捷連接恒等映射到輸出,weight layer代表卷積權重層,relu表示激活函數,F(X)為用X經過卷積權重層所學習到的特征表示的殘差。假設H(X)表示輸入X最終學習到的特征,現在希望其可以學習到殘差,這樣原始需要學習的特征就變成了F(X)=H(X)-X。之所以這樣是因為殘差學習相比原始特征直接學習更容易。當殘差F(X)為0 時,此時卷積權重層僅僅做了恒等映射,這樣至少網絡的性能不會下降,而實際上殘差F(X)不會為0,這也就使得卷積權重層可以在輸入特征的基礎上學習到新的特征。

圖3 殘差結構示意圖
基于視頻或圖像的非接觸式路面狀態識別算法以雨天積水和濕滑路面特征為識別對象。各國科研人員使用的數據集通常是通過交通部門的道路監控視頻和非特種車輛的車載攝像頭獲取的,然后根據研究需要自行標注。目前,還沒有公開統一的路面狀態識別專用的數據集。
考慮到在真實場景下采集數據的時間成本和受限于實驗室硬件資源等原因,利用仿真軟件CARLA0.9.9 版本采集本文中使用的數據集。CARLA0.9.9 版本的軟件中有5 個不同的城鎮地圖,包含了城市街道和高速公路場景,能很好地模擬現實中不同場景下的路面情況。為了保證數據的多樣性,采集了不同場景、不同光照的路面積水和濕滑照片共1 350張,分成訓練集、驗證集和測試集,其照片數量的比例為6∶2∶2。不同場景、不同光照下的路面圖像示例如圖4 所示,其中(a)為黃昏時分高速公路的路面圖像,(b)為白天高速公路的路面圖像,(c)為夜間城鎮街道的路面圖像,(d)為白天城鎮街道的路面圖像。

圖4 不同場景和光照下的路面圖像示例
利用labelme 標注軟件為采集的路面圖像按照cityscapes[20]數據集格式進行標注。把路面積水和濕滑路面標注為背景、干燥路面、積水區域和濕潤區域4 個類別,其中背景為除了路面區域以外的所有物體,包括建筑、樹木、天空等,干燥路面則為車輛通行整個區域的干燥部分,積水區域為雨水覆蓋路面瀝青表面能形成水膜的區域,而濕潤區域則是路面濕度介于干燥和積水的區域。標簽和對應的顏色如表1 所示,其中淺藍色為背景標簽,紅色為濕潤區域標簽,紫色為干燥路面標簽,墨綠色為積水區域標簽。與路面圖像示例圖4對應的標簽如圖5所示。

表1 路面狀態和對應顏色表

圖5 路面圖像示例圖4對應的標簽圖
語義分割模型在訓練過程中涉及到大量復雜的矩陣運算和浮點運算,需要通過不斷嘗試,逐步迭代在數千個樣本中尋找最優解。因此,對實驗環境提出了很高的要求。本文中訓練語義分割模型使用的實驗平臺的硬件配置為64 GB 內存的GeForce GTX 1080Ti 的GPU 和i7?9700k 的CPU。軟件配置基于64 位操作系統的Ubuntu18.04。采用當前主流深度學習框架pytorch 和python 語言構建網絡模型,使用并行計算架構CUDA 和GPU 加速庫CUDNN 進行高性能并行計算。
對訓練集中所有樣本中不同類別標簽所占的面積進行計算和累計,各類標簽面積所占比例如圖6所示。由圖可以看出,背景標簽和干燥路面標簽占比相對較高,而更加關注的積水區域和濕滑區域占比相對較低。

圖6 訓練集樣本中各標簽面積占比
考慮到訓練數據存在標簽樣本不均衡的情況,選擇Focal Loss[21]作為訓練的損失函數。Focal Loss最初是在目標檢測領域提出來的,其計算公式為

式中:N為標簽類別數目,本文中為4;α和γ都為常數,可根據實際情況自己設定,本文中分別設定為0.2 和2;yi為標簽所代表的值,正樣本其值為1,負樣本其值為0;pi為神經網絡預測值。
通過修改標準的交叉熵損失函數,降低易分類樣本的權重,增加難分類樣本的權重,讓模型在訓練過程中快速關注困難樣本,也就是相對較少的樣本,來解決類別樣本不均衡的問題。
模型訓練的過程就是梯度下降尋求最優解的過程,為使梯度下降法取得較好的性能,須把訓練時的學習率設定在合適范圍。太高的學習率會導致學習不穩定,太低的值又可能導致訓練時間的無謂延長自適應學習率根據訓練時迭代的次數自己改變學習率的值,在保證穩定訓練的前提下,達到了合理的訓練速度,縮短了訓練時間?;趫D像的語義分割模型訓練的過程就是不斷學習圖像特征的過程,隨著訓練的深入,學習的特征也越來越抽象,學習的難度越來越大,所以學習率應隨著訓練的深入而調低,從而保證模型穩定而快速地學習到圖像的低層次和高層次語義信息。為此,選用按指數衰減的學習率,其計算公式為

式中:lrd為衰減的學習率;lri為初始設定的學習率;Rd為衰減系數,即衰減率;Ni為迭代輪數;Sd為衰減速度。
設定訓練時每次迭代訓練輸入的圖像數為8,同時對輸入的圖像進行隨機尺度變換、隨機角度旋轉和圖像翻轉等手段進行數據增強。初始學習率lri設定為0.001,衰減系數Rd設定為0.95,迭代輪數Ni為5 400,衰減速度設為50。采取語義分割最常用的平均交并比(MIoU)和類別的交并比(IoU)作為評價指標,其中交并比(IoU)示意圖如圖7 所示,IoU 的分子代表圖像的交集,分母代表圖形的并集,MIoU 代表多個類別交并比的平均值。圖像的交集,即圖像重合的部分。它越大表示語義分割輸出圖片和標簽圖片的重合程度越高,說明語義分割的精度越高。
最終,訓練好的模型在測試集上4 個類別的平均交并比為90.07%,背景、路面、積水區域和濕滑區域的IoU 如表2 所示,與其他方法的對比如表3所示。

圖7 交并比(IoU)示意圖

表2 各類別的分割結果

表3 本文方法與其他方法精度對比
由表可見:本文提出的方法和分類神經網絡相比,在保證分割精度相差無幾的情況,能夠得到路面積水和濕滑區域的分布情況;與傳統分類方法如支持向量機(SVM)、K?means 算法相比,在提高精度的同時還能改善魯棒性。
圖8 為不同場景和光照下的測試結果圖??梢钥闯觯滋旄咚俟贰ⅫS昏高速公路、夜間城鎮街道和白天城鎮街道的路面圖像,除了少量的邊緣部分和遠處的小塊區域不能分割出來,其余的幾乎都能按照對應的標簽類別完全正確地分割出來,為道路局部附著系數的估計提供了重要前提條件。

圖8 分割結果圖
本文中采用的基于深層語義分割網絡的路面積水與濕滑區域識別算法,在自制的數據集上取得了良好的效果。語義分割常用的分割指標類別平均交并比(MIoU)能達到90.07%,幾乎可以完全正確地分割出不同場景、不同光照下的路面積水區域、濕滑區域和干燥區域。為解決雨天路面狀況識別問題提供了一種新的思路。