今天,大家對自動駕駛都充滿了期待,任何一場科技大秀上,總少不了自動駕駛的身影。不過與之伴生的,還有與自動駕駛相關(guān)的事故數(shù)量的增加,特斯拉、Uber前后腳都發(fā)生了在(準)自動駕駛狀態(tài)下的致死事故。
可能你會覺得自動駕駛商用進程有些慢,現(xiàn)在的方案還不靠譜兒,但考慮到其應(yīng)用場景的特殊性,以及開發(fā)上的難度,你就不會有太多抱怨了。比如就車載視覺處理,這個自動駕駛的核心要素來說,其對開發(fā)者提出的挑戰(zhàn)就不一般。
姑且不提自動駕駛,今天想做好一款像樣的ADAS就不簡單。一方面,ADAS視覺處理需要應(yīng)對越來越復(fù)雜的應(yīng)用環(huán)境,暗光、惡劣天氣下也要確保可靠的表現(xiàn);另一方面,為了提升視覺系統(tǒng)識別判斷的準確性,甚至讓其具有自我學(xué)習(xí)提升的能力,引入機器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)等AI算法也勢在必行。
這些需求必然會增加視覺處理工作的復(fù)雜性和負荷,耗費更多的計算資源和時間,而這又恰恰和車載應(yīng)用這個資源受限的嵌入式環(huán)境,以及“硬”實時性的要求構(gòu)成矛盾……這就是車載視覺應(yīng)用開發(fā)者每天面對的困局。
圖1,車載視頻處理典型流程
要想“破局”,我們首先來看看車載視覺處理典型的流程。這個流程包括四個步驟:
1
第一步
預(yù)處理:包括成幀、顏色調(diào)整、白平衡、對比度均衡、圖像扭正等工作,這種像素級的處理特點是數(shù)據(jù)量非常大,而且每像素之間相互獨立,彼此沒有很強的依賴關(guān)系,要求高帶寬的并行數(shù)據(jù)處理能力。
2
第二步
特征提取:是在預(yù)處理的基礎(chǔ)上,提取出圖像中的特征點,特別是關(guān)鍵的邊緣角點。
3
第三步
目標識別:基于特征數(shù)據(jù)的輸出,對圖像中的物體進行識別分類——人、車、交通標志等,這其中就會運用到一些機器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)的算法。
4
第四步
目標跟蹤:對上述單幀圖像進行記錄,并累計多幀后做出判定,實現(xiàn)穩(wěn)定的識別和判斷。
通常前三步被認為是底層和中層的處理,運算的并行度較高,第四步由于有前后的邏輯判斷關(guān)系,所以屬于順序執(zhí)行,需要串行處理。可見,車載視覺處理流程中的這些任務(wù),需求各不相同,單一架構(gòu)的硬件平臺很難滿足所有要求,所以就需要有更加復(fù)雜、綜合的異構(gòu)硬件平臺,以不同的硬件資源去應(yīng)對不同的計算處理任務(wù),這樣才能勝任。
以恩智浦半導(dǎo)體的S32V車載視覺處理器為例,它對應(yīng)車載視覺處理的不同步驟配置了不同的針對性的計算單元。
圖2,恩智浦半導(dǎo)體S32V車載視覺處理器框圖(圖片來源:NXP)
對于預(yù)處理到特征提取這種像素級的工作,S32V提供了一個可編程的ISP(圖像信號處理器),對于流處理進行加速;而其可編程性也為底層處理提供了靈活性,以應(yīng)對不同應(yīng)用中的預(yù)處理需求。
對于特征提取到目標識別這個層次的處理任務(wù),由于要運行AI算法,特別需要視覺加速,為此S32V引入了兩個專用的APEX-2協(xié)處理器,實現(xiàn)高速并行的單指令多數(shù)據(jù)架構(gòu)的加速計算。
在目標識別到目標跟蹤高層處理,涉及到串行計算,S32V通過運行頻率高達1GHz的多核Arm Cortex-A53處理器(最高配置可達四核)來完成,同時S32V在處理器系統(tǒng)中還集成了一個頻率高達133 MHz的Cortex-M4內(nèi)核,去實現(xiàn)一些控制功能,以及實時性的工作。
在加上其他諸如3D GPU、硬件安全加密、存儲和外設(shè)接口等功能,S32V構(gòu)成了一個完整的汽車級的安全嵌入式視覺處理平臺。
但是想做一個完整的方案或產(chǎn)品,有了合適的硬件只是第一步,接下來還需要軟件的配合。在功能受限、功耗敏感的嵌入式視覺應(yīng)用中,如何實現(xiàn)硬件和軟件之間最優(yōu)的配合尤為關(guān)鍵,也就是說,要將軟件任務(wù)放在最合適的硬件單元中運行,充分利用和釋放出硬件的能力。
為了達到這一目的,一個基礎(chǔ)性的工作就是:要對應(yīng)用中典型的計算模式做出分析和分類,找出有并行加速需求或者潛力工作,將其安排給最適合的硬件去加速。實際的工作中,可以嘗試幾種不同的并行計算加速方式:
數(shù)據(jù)并行:將需要并行處理的數(shù)據(jù),交給有并行計算能力的單元去做,如APEX-2這種專用的協(xié)處理器——專用的肯定比通用的處理器速度快。
流水線并行:綜合調(diào)度各種計算單元,在同一時間上讓所有單元都處于滿負荷運行狀態(tài),誰也不閑著。
任務(wù)并行:在同一時間安排進行不同的視覺處理任務(wù)。
經(jīng)過上述全面的優(yōu)化,軟硬件的緊密配合,車載視覺處理速度和綜合性能才能得到大幅的提升。
圖3,車載視頻處理流程和對應(yīng)S32V硬件資源(圖片來源:NXP)
車載視覺可以說是嵌入式視覺處理領(lǐng)域難度較高的一個領(lǐng)域,需要各方面資源更緊密的協(xié)作、全方位的配合——硬件開發(fā)者需要充分理解目標應(yīng)用的需求,提供最高效的硬件加速架構(gòu);軟件開發(fā)者也要吃透硬件的特性,合理調(diào)配資源,將硬件性能發(fā)揮到極致。雖然不容易,但這就是我們通往自動駕駛的必由之路。
-
硬件
+關(guān)注
關(guān)注
11文章
3374瀏覽量
66374 -
車載視覺
+關(guān)注
關(guān)注
0文章
15瀏覽量
8749 -
自動駕駛
+關(guān)注
關(guān)注
784文章
13918瀏覽量
166779
原文標題:嫌自動駕駛不靠譜?那你先來看看車載視覺處理有多難
文章出處:【微信號:AvnetAsia,微信公眾號:安富利】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論