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