胡艷,曹鉆
(西安培華學院,西安 710125)
近年來,隨著人工智能技術的快速發展,傳統汽車工業和信息技術的結合在研究自主駕駛技術方面取得了較大進展。該行業的許多大公司在該領域的研發過程中都投入了大量的資金[1]。谷歌、豐田、百度和BYD等國內外公司都發布了令人滿意的自動駕駛實驗產品。隨著自主駕駛技術的發展和改進,預計其將進入實際應用階段,并將在全球范圍內普及。依托自動駕駛,人們可實現自由旅行,而不用擔心酒駕、超速、無證駕駛和疲勞駕駛等交通違法行為[2,3]。鑒于此,基于機器視覺和深度學習的自動駕駛技術具有廣泛的科研和商業應用前景。
自動駕駛是未來汽車駕駛的必然發展方向,汽車企業和互聯網公司都渴望在這個全新的領域占得先機。然而,汽車行業是一個特殊的行業,由于乘客的安全保障最為重要,不允許發生事故,因此對行車安全的要求極為嚴格[4,5]。因此,在研究自動駕駛時,對傳感器和算法的準確性和可靠性要求非常高。另一方面,自動駕駛汽車的受眾是一般消費者,因此需要控制成本。傳感器、算法的精度與傳感器的成本是正相關的,這就導致傳感器的價格居高不下,也難以開發出大眾能夠承擔的產品。這種矛盾在過去很難解決。現代學習技術的高度精準使得在許多關鍵領域,如任務、決策和傳感器的應用使得開發自動駕駛系統成為了可能[6]。
作為自動駕駛技術的主要業務和關鍵技術之一,目標識別包括道路交通和規避行人的識別。目標識別系統使用計算機視覺監測交通情況,通過實時視頻自動識別目標,提供實時自動駕駛的基礎,如啟動、停車、轉向、加速和減速。由于道路條件極其復雜,基于傳統目標探測的自動駕駛技術的效率難以顯著提高。現有的自主駕駛技術通常依賴于改進的雷達系統來補償,從而大大提高了系統的運行成本。隨著科學技術水平的不斷發展,神經網絡可以直接感知和分析道路上的車輛[7]。經過一段時間的正確駕駛,你可以在實際道路條件下學習和感知相應的駕駛技能,而不需要考慮具體的道路條件和不同的目標,從而可以提高自動駕駛算法的性能。
目前,主要的自動駕駛技術是基于視頻進行分析的。在移動場景中拍攝的視頻序列包含了不同的目標,如行人、汽車、道路、障礙物、背景中的不同目標,必須確定測試圖像中的興趣類目標,提供車輛控制作為決策的基礎。標識的識別和表示是一個重要的步驟,包括對目標圖像的編碼方法。理想的識別方法必須能夠適應各種干擾因素,如大小、外觀、閉塞、復雜背景等。傳統的駕駛方法對道路和車道識別、車輛檢測和行人檢測系統識別效果一般[8]。
基于視頻分析的探測和目標識別技術已經從傳統功能轉變為深度學習。這些傳統和直觀的功能在這個階段取得了很好的結果。然而,由于目標的多樣性和角度變化等因素,傳統的基于特征的目標檢測遇到了難以克服的瓶頸。近年來,深度學習技術大大提高了在多個狀態探測和識別目標的效率,甚至超過了人類在這一方面的能力。深度學習函數是一個可以自動從大量學習數據中提取相關數據的函數,比傳統函數具有更高的識別效率[9,10]。深度訓練有多種模式,基于旋轉神經網絡的深度學習模型是研究中最常用的模型和熱點之一。通過掃描窗口觀察和發現目標大大提高了識別多個目標的效率。然而,基于掃描窗口的一個主要缺點是掃描窗口的大小和位置的組合極為復雜,有時甚至無法計算。
近年來,卷積神經網絡算法一直在不斷的改進,其計算的精確性和效率也得到了顯著提高。卷積神經網絡和多通道處理對圖像識別也有很好的影響:它在N個深層神經網絡中輸入圖像并訓練它們。以N個結果的算數平均值作為最終結果,其識別率可達99 %以上,完全超出了人工識別的范圍。
在自動駕駛中需要確定和評估許多目標,包括行進路線上的車輛、非機動車輛、行人、路標、道路、車道等,使得目標識別環境復雜而難以實現。從對行人和車輛的識別角度分析,基于深度學習的方法顯著優越于傳統方法。由于其可以通過學習提取圖像數據中的特征,具有更好的穩定性和準確性。
卷積神經網絡(CNN)屬于人工神經網絡,因為其網絡模型通常由幾個層次組成,也被稱為深度卷積神經網絡(DCNN)。CNN可以被看作是多層感知網絡的進一步發展,它通過空間關系減少了待調整參數的數量,提高了反向傳播算法的學習效率。與傳統的人工神經網絡相比,CNN最顯著的優點是權值共享和局部鏈接,從而降低了網絡模型的復雜性。因此,CNN適合圖像識別這樣具有大量輸入數據和豐富信息的任務。
在CNN的底部,輸入信息是一小部分圖像,一個局部感受野。輸入信息不斷地傳輸到不同的層級,每個層的數字濾波器被用來獲取最重要的數據特征。由于局部感受神經元捕捉圖像的基本元素,如圖像方向的邊緣和角度,CNN的數據傳輸方法可以獲取縮放、偏差和旋轉等特征。
卷積神經網絡的典型模型是由卷積層、池化層和全連接層構成,如圖1所示。
圖1 典型卷積神經網絡模型
2.1.1 卷積層
CNN使用不同的卷積核來處理本地輸入。完成后,數據窗口將進行移動,直到所有數據均參與了運算。則開始針對下一個卷積核進行處理。其數學表達式如下:
卷積運算所得到的特征圖寬度W、卷積核尺寸F、訓練步長S和ZeroPadding數量P滿足如下關系:
2.1.2 池化層
卷積層與池化層保持周期性的間隔。池化層的主要作用是降采樣,逐步減少網絡數據塊的大小,從而減少網絡參數的數量,提高學習速度,抑制模型的過擬合現象。該層的輸入與輸出數據尺寸由如下關系確定:
2.1.3 全連接層
全連接層的作用是將CNN中另外兩層所學習的特征分布映射到樣本標記空間,也就是將進行訓練的圖像和學習到的特征數據的三維空間映射到樣本標簽的一維空間。
2.2.1 SceneNet網絡模型
與其他分類任務相比,場景識別是獨一無二的,其不僅是類別之間的巨大差異,而且有場景類別中的視覺差異。這導致存在許多錯誤的分類,也是識別場景的困難之一。
對于CNN分類能力的改進已經有較多的研究。有兩種方法可以增加網絡的深度和寬度。例如,VGG-NET網絡的結構根據AleNet網絡的結構加深了網絡層次結構。另一種方法是開發一個新的網絡結構,比如谷歌的原始結構,ResNet也有殘差模塊化結構。
雖然上述方案通常只會增加場景深度或模型寬度,但同時也將導致網絡模型參數的過度擴容,導致過擬合和計算的困難。此外,梯度會因網絡深度過大而消失,進而引起學習難度的增加。使用隨機梯度算法(CNN)基于學習水平(微包子集)的下降,訓練效果沒有充分反映網絡的深度。由于培訓數據的海量性,不可能為每次訓練迭代提供所有的培訓數據。因此,開發有效且可識別的損失函數是進一步提高CNN效率的關鍵。以此為出發點,本文引入了新的損失函數,并建立了基于自動感知場景相似度的網絡模型,如圖2所示。
圖2 SceneNet模型
SceneNet學習到特征按照相似性可分為兩個等級:粗糙相似性和精確相似性。如果兩物體提取自不同場景和交通設施,雖然他們屬于同一屬性則具有粗略相似性;如果兩個物體,不僅來自同一場景且屬性一樣,則他們具有精確相似性。
SceneNet網絡中的損失函數針對粗略或精確相似性特征,但在圖像中相距較遠者執行動態懲罰,增強網絡學習特征的差異性,和對相似場景的感知能力。損失函數的實現如下:
式(6)描述了圖像iI的特征,標簽中心與標簽種類間的關系。
2.2.2 損失函數實現
由于場景類型的多樣性和硬件容量和性能的限制,需要對SceneNet損失函數執行的算法進行如下調整:
1)減少標簽中心更新的數量;
2)為了防止一些未標記的樣本帶來擾動,通過設置一個參數來限制訓練的速度,限制中心點的更新。損失函數計算特征梯度和更新中心點的表達如式(7)和(8)所示。
SceneNet中的損失函數由粗略/精確相似性函數和softmax損失函數組成,如式(9)所示:
SceneNet可以解決場景目標的識別問題,但是實際應用場景中的車輛和行人都是運動的,僅僅識別到目標是遠遠不夠的。如果安全策略過于保守,則導致一旦識別到目標,自動駕駛汽車就會停止,在復雜的或密集度較高的場景中,容易造成多個車輛在安全機制上的互鎖。如果能夠同時識別到目標的運動軌跡,則可釋放運動軌跡與行車軌跡無交集的部分區域的通行權限,這樣可在保障安全性的同時最大限度的提升自動駕駛汽車行駛的靈活性。
由于強場景和幾何模型約束易于提示集成和強時間跟蹤檢測模型,滑動窗口檢測器已經展現出顯著的識別性能。場景內容可非常簡潔地表示為一組單獨的檢測對象。然而,對部分場景內容被遮擋情況是難以識別的。
區域中心模型在幾何要素和涉及對象類方面通用性較好。然而,其分組基于像素級強度、深度或運動不連續性、較少的幾何或場景約束會導致重建的場景模型中存在噪聲。此外,對場景分割處理方法通常在計算上開銷較大,并且對于許多現實世界的應用來說,最終可能導致過度冗余。為調和這種情況,視覺語義場景的理想模型應當是一種以場景為中心的表示形式,其建立在對象中心模型和區域中心的優勢之上。
我們可以采用一種基于密集視差圖的緊湊環境表示法。與以物體為中心的方法相比,分離成柱狀像素(Stixels)保留了足夠的靈活性來處理復雜的幾何形狀和部分遮擋。更準確地說,Stixel模擬場景中直立物體的一部分,并由其3D腳點、高度、寬度和到相機的距離來定義。
使用空間正則化的語義對象類別和運動信息來增強Stixel表示,以便在重建的場景模型輕松獲取場景中對象的所有相關信息。為此,本文通過基于Stixel的提案區域作為輸入的語義特征包分類模型來聚合強度和深度信息。通過稀疏點軌跡估計自我運動校正的速度同時以遞歸方式來保障語義標簽的時間一致性。最后,使用單個Stixels作為節點加強隨機場空間一致性。
選擇恰當的初始區域對于語義分割性能尤為重要。為了快速獲取適當區域,本文利用Stixel World的中等深度信息來理解語義場景。通過半全局匹配可獲得密集視差圖和其Stixel表示。
為了有效地獲得更大的提議區域kR,根據其3D空間的接近度對Stixels進行了分組。這種方法適用于戶外交通場景,并且有助于場景表示的規范化。
選擇隱藏馬爾可夫模型(HMM)方法整合來制得語義區域分類輸出本文將標簽轉換建模為每個軌跡的馬爾可夫鏈,并執行標簽過濾,如圖3所示。
遞歸標簽過濾方案,適用于每個點軌跡。圖3展示了帶有三個標簽的展開的定向馬爾可夫模型,其中箭頭表示可能的因果轉換。
圖3 帶有三個標簽的定向展開馬爾可夫模型
對于長度為100(時間步長)的軌跡進行模擬,其結果如圖4所示。
圖4中,點表示噪聲,實線表示在給定所有先前觀察到的數據的情況下在每個時間步驟中標記的后續濾波后驗。
圖4 模擬結果
對于時間步長為t的軌跡,估計標簽點亮后的后驗概率P(li,t|χt),給定所有前期和當前觀測的集合χt= {X0,X1,… ,Xt}。 使用前向推斷執行預測和更新:
式(10)中的P(li,t|lj,t?1)對應于兩個后續時間步長之間的標簽的轉移模型用于時間正則化。理想情況下,對象不會隨著時間的推移而更改其標簽。標簽改變的唯一兩個原因是觀察模型P(Xt|lj,t)中的誤差或軌跡中的測量誤差,即跟蹤點被意外地分配給另一個對象。因此,本文為轉移矩陣的對角線元素分配了一個相對較大的權重α∈ (0,1),為剩余的條目分配了一個較小的值,這樣我們就可以得到一個合適的行動軌跡概率分布:
本文實驗選用戴姆勒城市數據集,其包含上萬張現代化都市的人車混行環境圖像,算法實現平臺采用I7 7700CPU和NVDIA GTX1060高性能顯卡,采用C++作為編程語言。實驗主要為驗證所設計方法對城市中車、人以及建筑物等目標的識別。
如圖5所示,分別為目標中心所在區域的識別。通過一個方形窗口現實目標所在的位置,其中汽車采用綠色標識,行人采用紅色標識;其中區域識別部分識別了目標的輪廓和所占的碰撞體積。圖6為神經網絡學習到的柱狀直方圖。
圖5 目標識別結果
圖6 目標柱狀直方圖
軌跡實驗主要針對如下三種情況開展。分別為:①行人軌跡;②汽車軌跡;③人車混行情況下的行人和汽車軌跡,選擇行動軌跡的概率分布權重為0.95。圖7為對行人目標的軌跡預測結果,該圖顯示軌跡預測與其行走方向基本保持一致。
圖7 行人軌跡
圖8為汽車行進軌跡的預測結果,基本與實際車頭的行進方向保持一致。
圖8 汽車目標軌跡
在人車混行環境中,自動駕駛汽車對于行人行進方向需要敏銳感知,才能保障行人以及行車安全,圖9為行人和行車軌跡的預測結果,識別結果準確。
圖9 人車混行目標軌跡
本文主要針對基于計算機視覺和深度學習的自動駕駛方法進行了研究。
1)通過引入SceneNet深度網絡模型進行場景的目標識別,分析了其卷積層、池化層、全連接層的概要結構,闡明了SceneNet場景識別網絡的要素并提出了損失函數的改進實現方法;
2)結合SceneNet深度網絡模型,并通過基于視覺的場景語義分割手段,對圖像進行處理,分析預測行人和車輛的軌跡,為自動駕駛中避讓行人和車輛提供依據。實驗結果表明,通過提出的方法可準確識別環境中的目標和其運動軌跡。