當前位置:
首頁 > 科技 > 將深度學習應用於駕駛員評估模塊

將深度學習應用於駕駛員評估模塊

在自動駕駛汽車技術中,卷積神經網路(CNN)已證明是一種非常強大的道路特徵識別工具。卷積神經網路經過工程師們的訓練可以檢測道路類型和路邊的特徵。在用於這種訓練的各種數據集的幫助下,這種模型會以類似小孩學步那樣教汽車學習駕駛技巧。

本文描述了在現有駕駛員評估系統中如何訓練和整合CNN模型,同時介紹了這種模型及其改進版本VGGNet的本質,以便更好地理解這一相對未知的課題。VGGNet的使用可以極大地提升預測的精度,特別是考慮到車內駕駛員面前的攝像機時。作為嵌入式系統,駕駛員評估系統的運算能力是非常有限的。工程師團隊受命在該模型和現有駕駛員評估系統基礎上使用實際世界數據開發CNN,結果發布在本文的總結部分。本文還討論了CNN的模型集成和訓練處理優化,同時強調了神經網路的可重用性。

介紹

定期的駕駛員評估是車輛行駛管理和服務行業的一個重要步驟。具有正確反饋措施的定期評估可以提升駕駛員的表現。藉助近來機器學習領域中的進步及儀器使用的價值,我們可以很容易地將機密的和精確的數據連接到登錄上的中央計算系統。這樣的計算機和其它模塊一起可以用作一套組合工具來評估駕駛員的表現。

將深度學習應用於駕駛員評估模塊

圖1:傳統的駕駛員評估系統(來源:Einfochips)。

數據塊(時間、視頻、感測器數據);收集數據塊的離線處理;管理員評估

圖1對傳統駕駛員評估系統進行了簡單的描述。類似這樣的系統可以用來接受來自不同感測器的數據,然後提供給板載計算機(低等級)進行存儲,並完整地傳送給離線數據處理單元。當駕駛員過來進行評估時,離線數據處理單元再將數據發布給管理者。

在傳統環境中,視頻提供的數據,以及來自感測器的數據必須進行人工管理。但眾所周知,人工管理容易出錯。

鑒於這種情況,能夠智能抽象、分類並提取信息的機制將特別管用,特別是在OBD-II的幫助下。下面我們將討論如何融合/組合這兩組信息向駕駛員和管理者產生合理的輸出。

這裡的區別是什麼?

在伺服器端只有感測器數據是不足以完成駕駛員評估的。比如,讓我們看個實時場景:

下坡:一般意味著連續的加速,比方說8到10秒,遠遠超出發布的極限。這肯定會影響駕駛員駕駛汽車的性能數據。事實上這是一種真陰性(假陽性)情形。我們建議的系統有助於判斷上坡和下坡,而檢測到真陰性後可以提升駕駛員的評估性能。

將深度學習應用於駕駛員評估模塊

圖2:基於訓練過的神經網路的駕駛員評估系統(來源:Einfochips)。

數據塊的智能離線處理;自動生成的成績單;訓練過的神經網路

如上圖所示,數據塊的離線處理被數據塊的智能處理所替代。這種數據處理是在訓練過的神經網路幫助下完成的。卷積神經網路可以將連續視頻觀察任務從人卸載給智能機器。這裡的想法是分類特徵(在這個例子中的上坡和下坡)並使用這些信息和時間軸上的OBD-II數據判斷駕駛員的性能。

實現細節

NeuralTalk2用於分類圖像。它使用卷積神經網路機制分類圖像。針對每種檢測到的特徵,它提供置信值。

將深度學習應用於駕駛員評估模塊

圖3:一般的深度學習流程圖(來源:Einfochips)。

卷積+非線性;合併;完全連接;鳥;日出;海洋;上坡路

神經卷積網路的工作方式:

步驟1:濾波器、參數和權重被分配一定的隨機值。權重是指完整連接的網路值,濾波器是卷積濾波器的數量。

步驟2:網路接收輸入的圖像,開始正向傳播(卷積,非線性激活,空間合併,最後進入完全連接(FC)的層),它還尋找每種特徵的可能性——參考卷積和非線性部分以及圖3中的合併部分。

卷積:f(x)=fD(…f2(f1(x;w1);w2)…),wD)

這裡的fd作用是輸入一個值xd和一個參數值wd,產生輸出結果xd+1。雖然函數的類型和結果是人工的,但參數w=(w1,…,wD)是從訓練中學到的。

非線性激活ReLU(調整過的線性單元):

f(x)=max(0, x)

空間合併:

f(x) = max(Stride)

步驟3:計算總誤差

總誤差 = ∑ ?(目標誤差–輸出誤差)2

步驟4:使用後向傳播最大限度地減小誤差。為了做到這點,先獲得相對權重的梯度誤差,然後使用梯度下降更新濾波器的值和參數,以盡量減小輸出誤差。這裡發生改變的是濾波器值,連接權重也得到了更新。這是在完全連接層完成的。

w=wi–?×dL/dw

w=權重

wi=初始權重

?=學習速率

由於這個應用與駕駛員評估有關,因此他/她駕駛時所處的場景或場景是最重要的,而不是單單儀器讀數。為了理解這種場景(讓我們想像一條路),我們需要一個非常好的分類器。為了克服這個問題,我們可以使用內部使用VGGNet的NeuralTalk2。VGGNet是一種卷積網路,最擅於識別物體的位置。它還擅長於分類物體本身。輸入是一個圖像,輸出是概率(圖4)。

圖4:一般的VGGNet模塊(來源:Einfochips)。

VGGNet有這種能力依賴於一種因素。它相信這個因素可以識別/分類圖像,這對理解圖像的深度是很有用的。深度分析做的越多,圖像可以被分類的越精確。換句話說,卷積的越多,物體分類的越好。在VGGNet中有16個卷積層,用於提升預測的精度。CONV層執行3×3卷積,步幅為1,填充為1。POOL層執行2×2最大化合併,步幅為2,填充為0。

在訓練階段一套訓練用輸入會提供給NeuralTalk2。我們限制訓練集為直路、上坡、下坡、彎路、左轉和右轉。這在以更加有效的方式訓練模型中特別有用,因為輸入數量是有限的。我們這樣做的目的是我們想在進行評估時取得更高的精度。

產生的經過訓練的網路/模型專門關注訓練集中提到的特徵,如上坡、左轉和右轉。這個模型可以被移植到大多數X86 Linux計算機。

輸入感測器:OBD-II是汽車內的一種標準介面。該硬體用於從終端感測器收集OBD-II的發動機轉速、熱量、速度數據,並將這些數據提供給運算模塊作為其輸入。

評估儀錶板:儀錶板將對這些數據進行第一層的分析,它會顯示理想的和原始的數據圖。當點擊原始數據圖上的任何點時,它會顯示數據集中可用的該點的完整細節。

操作

前置攝像機記錄汽車前方的視頻。當駕駛員駕駛汽車上坡時,很明顯他會踩下更大的油門以維持汽車的推力。隨後這些數據連同前置攝像頭的視頻一起被記錄到與硬體相連的存儲設備中。

當駕駛員的旅程結束並且在停車場停下來後,這些記錄的數據將得到分析。視頻和圖像通過計算機進行分析,這個計算機中已經內置有訓練過的分類模型。除了視頻外,轉速、速度、熱量等其它汽車參數也會被分析。由於計算機已經學會了檢測上坡,因此它會自動丟棄不斷增加的汽車轉速數據,這在傳統裝置中是不可能的。這種機制在避免錯誤地駕駛員評估中是很有用的。

現場圖像的檢測

將深度學習應用於駕駛員評估模塊

圖5:直線道路的檢測(來源:Einfochips)。

將深度學習應用於駕駛員評估模塊

圖6:下坡路的檢測(來源:Einfochips)。

將深度學習應用於駕駛員評估模塊

圖7:上坡路的檢測(來源:Einfochips)。

這種訓練過的模型能夠以很高的精度識別直路和坡路。

訓練演算法的偽碼

以下是完整的訓練演算法偽碼:

將深度學習應用於駕駛員評估模塊

測試演算法的偽碼

將深度學習應用於駕駛員評估模塊

注意:偽碼中提到的概率值是假設的。

本文小結

在有效地針對各種道路類型和特徵進行訓練後,神經卷積網路本身可以成為未來自動駕駛技術的強有力武器。這種模型也可以集成進軟體平台,用於增強現有駕駛員評估系統的精度。還可以用各種數據集對這種神經網路進行再次訓練,比如物體識別、物體分類、快照識別等。因此模型很有效率,並且可重複使用。

我們還可以進一步推論,卷積神經網路模型和其它軟體整合後將提供更大的靈活性。未來工作可以通過優化模型的總體訓練過程得以開展。優化底層庫函數和頻繁使用的函數可以極大地改善總體訓練過程。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 EET電子工程專輯 的精彩文章:

希荻微電子發布智能高功率多模無線充電晶元
智能駕駛:一場未來人類出行方式的豪賭
什麼是「智能電網」,它如何「智能」?
一場大火令Keysight總部被迫暫時關閉
使用毫米波技術重新定義連接器

TAG:EET電子工程專輯 |