張 崟,楊 波
(中國電子科技集團公司第二十八研究所,江蘇 南京 210007)
隨著社會快速發展,車輛已成為各個家庭的重要代步手段,每年因霧霾、夜間等視線不佳環境下難以識別行人、車輛、涵洞和隧道等各類障礙物,而造成各類交通事故,造成了重大財產、生命損失。通過在各類車輛加裝輔助駕駛設備,能夠實時準確識別各類障礙物,為駕乘人員提供清晰、增強的駕駛圖像,提升行車安全[1]。
針對車載目標檢測關鍵技術,主要包括海量數據管理技術、模型訓練與驗證技術、嵌入式模型量化與壓縮技術、硬件在環在線仿真技術;通過突破目標檢測技術實現了數據集的構建、模型訓練與驗證、產品部署等完整的工程化應用開發體系。一般來說,神經網絡模型性能優劣,與其模型體積和運算量呈現正向關系;但對于嵌入式應用來說,由于計算能力和存儲空間受限,內存存貯壓力和計算壓力非常大,在檢測時應采用神經網絡量化模型,壓縮模型容量和計算量。
車輛輔助駕駛系統障礙物識別技術的具體識別對象主要包括行人、車輛、涵洞和隧道等。針對因霧霾、夜間等視線不佳環境下難以識別行人、車輛、涵洞和隧道等各類障礙物的難題,本文設計了基于神經網絡的車輔系統障礙物識別技術,主要包括深度神經網絡設計、數據集制備、網絡訓練和推理、模型遷移,以及針對嵌入式的平臺進行神經網絡模型輕量化設計。通過采集國內、國外大量典型道路環境的跑車數據,構建了不同地域、天氣、時間、季節的紅外/可見光數據多維圖譜,實現數據的多維分布式管理,積累了TB量級的特征圖像數據庫,為深度學習算法提供了全面、可靠的數據支撐。
為實現熱源體和涵洞、隧道檢測算法,首先需要準備行人、車輛和涵洞、隧道訓練數據,然后在遷移學習的基礎上訓練網絡模型,最后在嵌入式設備上使用量化后的網絡模型檢測目標。
深度學習目標檢測方法主要分為兩步法目標檢測和單步法目標檢測。兩步法目標檢測需要經過樣本候選框生成算法生成一個可能包含待檢物體的預選框,然后進行候選框分類和位置修正,實現物體的細粒度檢測,優點是檢測更為精準,定位精度也更高,但由于過程中包含多次的運行檢測和分類流程,其相對速度較低。單步法目標檢測算法的特點是直接一步到位,在網絡中提取特征來預測物體分類和位置,僅需要送入網絡一次就可以劃分出所有的圖像區域邊界,將目標邊框定位的問題轉化為回歸問題處理,所以單步法目標檢測算法在效率和速度上有著極大優勢[2]。
根據系統需求及工程應用要求,采用單步法框架,實現隧道、涵洞、熱源體(行人、車輛)的目標檢測算法,直接使用一個卷積神經網絡同時預測目標的位置和類別,該方法具有檢測速度快、模型部署簡單的特點,利用網絡端到端的特點,同時配合一定預處理、后處理,可實現目標的實時監測。
網絡結構很大程度上決定了算法的性能,本方案設計的網絡結構如圖1所示。
上述網絡結構的主要優點如下。
1)單步目標檢測算法框架。
為簡化網絡結構,降低計算能力需求,提高檢測效率,單步目標檢測在無分支卷積網絡中同時進行特征提取、候選框回歸和分類操作,而跳過了候選框提取分支這一步驟[3]。深度學習單步目標檢測如圖2所示,經過單步目標檢測算法框架優化的卷積神經網絡的計算能力需求可以被現有嵌入式平臺所滿足,因此在現有嵌入式平臺的計算能力下運行實時檢測任務成為可能。單步目標檢測算法的框架有效地提升了車輔系統的障礙物識別中的卷積網絡的算法速度和運行效率。
2)多尺度預測。
由于在實際檢測識別情況下存在多種不同尺寸的熱源體目標,其數值有著顯著差異,在網絡模型中引入多尺度預測以解決該問題(見圖3)。
依據算法在實際檢測識別情況下的需求,可將預測分為三級,每級預測包含一個尺度,分別對應一個特征層,并為其分配3種不同尺寸的檢測框,三級尺度預測分別如下。
一級:在基礎網絡之后添加一些卷積層再輸出的檢測框信息。
二級:從一級的次終層的卷積層上采樣,再與最后一個16×16大小的特征圖相加,再次通過多個卷積后輸出檢測框信息。相比一級尺度預測,其尺寸增大2倍。
三級:與二級類似,使用了32×32大小的特征圖。
3)目標位置回歸估計。
為了能夠從網絡特征圖中估算目標檢測框位置,設計了一個logit回歸函數對網絡預測結果進行約束,使結果介于0~1之間。利用回歸函數,網絡在每一個網格單元中預測出 5個檢測框,每個檢測框有5個坐標值,它們的關系如圖4所示。
假設一個網格單元對于圖片左上角的偏移量是cx,cy,寬度和高度是pw,ph,那么預測的結果計算式為:
bx=σ(tx)+cx
by=σ(ty)+cy
bw=pwetw
bh=pheth
Pr(object)*IOU(b,object)=σ(t0)
(1)
通過使用回歸函數對結果計算式進行約束,讓數值變得參數化,同時也使卷積網絡的訓練過程更加順利。
卷積網絡的有效訓練離不開充分的訓練數據,訓練所基于的數據集合應當涵蓋目標的全部特征[4]。由于涵洞、隧道的樣式繁多,不同角度的行人和車輛差異較大。對于涵洞、隧道等目標檢測的訓練,其訓練數據集合應該包括各種不同樣式、角度的涵洞、隧道圖像。用于訓練熱源體檢測的數據應該包括各種角度、衣著、姿態的行人,以及各種角度、種類的汽車。
訓練圖片需要人工收集和標記,需要的時間成本和人工成本巨大,所以為了最大化地利用現有數據,應引入基于圖像預處理的數據增強技術(見圖5)。根據應用場景,可以使用的數據增強方式有水平翻轉、縮放、平移,而僅經過水平翻轉后的圖像,其翻轉后的場景圖像仍然是符合真實的。縮放類似于改變了成像器距離,平移類似于成像器改變了位置,變換后的圖像仍然是符合真實的,從而使得網絡訓練更加充分。
卷積神經網絡在本質上是一種輸入到輸出的映射[5]。在沒有得到任何具體而精確的數學模型的前提下,通過大量輸入與輸出之間的映射關系對卷積神經網絡進行訓練,從而使其獲得輸入輸出對之間的映射能力。卷積神經網絡所進行的訓練是有監督的導師訓練,訓練所基于的樣本集合是通過采集卷積網絡運行的輸入與其理想輸出的向量所組成的向量對構成,樣本集合的所有數據均應來自于卷積神經網絡實際運行所產生的輸出,為保證卷積神經網絡的學習能力與訓練效果,在對卷積網絡進行初始化的過程中,網絡的各項權值應分別由異值的小隨機數進行生成,從而避免相同權值導致的學習進程停滯以及過大權值所導致的卷積網絡飽和。
卷積神經網絡的訓練過程使用了適用于多層神經元網絡的反向傳播算法,其原理如圖6所示。
第1階段(向前傳播階段):從圖像數據的樣本集合中選取一幅圖像,為圖像標記后作為輸入圖像。將圖像輸入網絡;計算相應的輸出。在此階段,信息在每一級均經過與該層的權值矩陣的點乘運算,從而實現神經網絡的逐級卷積運算,最終在輸出層得到最后的結果。
第2階段(向后傳播階段):根據實際的輸出結果,比較其與相應的理想輸出的差;根據極小化誤差的方法反向傳播調整權矩陣。目標檢測的步驟就是只執行訓練中的向前傳播階段。將待檢測圖像送入訓練好的模型,經過多層的卷積,再經過非極大值抑制,最后得到檢測結果。
卷積神經網絡的深度學習是有監督類型的深度學習,模型訓練所需要的基礎數據應在事先予以標注,而且從理想角度看,標注的數據數量越多,訓練得到的模型效果也會越好[6]。而這一工作無疑是一項成本巨大且往往只能通過人工完成的工作。比如標注幾萬張隧道圖片,是一項耗時很久、花費巨大的工程。本項目通過遷移學習,在通用數據集上訓練好的模型基礎上,使用幾千張隧道圖片,將模型遷移到可以檢測隧道的能力。
遷移學習過程如圖7所示,在通用數據集上訓練好的模型,首先鎖定除了最后幾層的權重,使用新標注的數據訓練最后幾層,在保留底層的特征表達的情況下訓練頂層的目標提取,然后等損失函數基本不變后,再解鎖全部層的權重,繼續優化訓練,進一步提高網絡的檢測性能。
一般來說,模型的性能與其體積和運算量呈現正向關系,性能越好,則其體積和運算量也越大[7-8]。模型體積經常達到幾百兆,加上計算中間變量,內存占用更是幾倍于模型體積,運算量也達到GFLOPS[9]。
對于嵌入式應用來說,由于計算能力和存儲空間受限,內存存儲壓力和計算壓力非常大[10]。相比于訓練時使用的FP32(32位浮點,單精度),INT8(8位的定點整數)內存消耗減少到1/4。對于運算器INT8的計算速度也是FP32的幾倍[11-12]。
面向嵌入式應用,在檢測時采用神經網絡量化模型,將神經網絡參數量化為8 bit,壓縮模型容量和計算量。其原理如圖8所示。
過量化后的網絡模型,由于量化誤差和計算精度的降低,檢測性能會有所降低。這時需要使用訓練數據,對INT8的網絡模型再次訓練,從而盡量減少量化帶來的性能損失[13]。
針對因霧霾、夜間等視線不佳環境下難以識別行人、車輛、涵洞和隧道等各類障礙物的難題,本文設計了基于神經網絡的車輔系統障礙物識別技術,首先進行深度神經網絡設計,然后進行覆蓋目標的全部特征訓練數據集制備,接著進行網絡訓練和推理、模型遷移,最后針對嵌入式的平臺進行神經網絡模型輕量化設計,解決量化誤差和實現計算精度,實現駕駛人員在霧霾、夜間等環境下對路況障礙物準確識別并清晰顯示告警,提升行車安全。