近日,黑芝麻智能A1000芯片基礎(chǔ)軟件開發(fā)在線研討會在順利完結(jié)直播。研討會由黑芝麻智能李坤、中興通訊李玉鵬兩位技術(shù)專家主講,主題分別為《視覺感知數(shù)據(jù)流在A1000平臺上的基礎(chǔ)軟件開發(fā)》,以及《中興車用操作系統(tǒng)SafetyLinux在A1000平臺上的適配》。
本文是黑芝麻智能李坤的主講實錄整理
李坤:非常感謝智猩猩平臺提供了這次和大家共享黑芝麻智能華山二號A1000芯片基礎(chǔ)軟件技術(shù)的機(jī)會。接下來我會來向大家介紹視覺感知數(shù)據(jù)流在A1000平臺上的基礎(chǔ)軟件開發(fā)方面的內(nèi)容。


A1000芯片SoC硬件加速器及其功能

這是一個A1000芯片的大體框架。從這里來看,整個A1000芯片的架構(gòu)是非常清晰的,有中央處理器、視覺DSP及CV硬件加速引擎、 NN的加速引擎等,還有一些高速接口、視頻的接入接口、ISP等。從整個框圖來看,和ADAS視頻處理流有關(guān)的是從前端MIPI輸入,接著ISP處理;再往后走是視覺DSP加速,還有一些其他與視覺相關(guān)的硬件加速器;最后再送到深度學(xué)習(xí)NN引擎中。從NN引擎出來的是感知結(jié)果,可以通過以太網(wǎng)或者CAN信號,把感知結(jié)果傳出去。
從整個SoC角度來看,哪些硬件和視頻處理有關(guān)呢?ISP處理引擎,計算機(jī)視覺加速器(CV的硬件加速),DSP(用戶可編程的視覺處理DSP,有很多可調(diào)用的視覺函數(shù)庫),神經(jīng)網(wǎng)絡(luò)NPU,ARM中央處理器(整個鏈路的調(diào)度),GPU(做泊車類的拼接、渲染),視頻編解碼加速器(做 DVR或EDR的視頻編解碼)。關(guān)于接口類,有MIPI(攝像頭接入),千兆以太網(wǎng)(輸出感知結(jié)果),PCIe(高速數(shù)據(jù)傳輸),USB。USB2.0接口經(jīng)常用來做調(diào)試,USB3.0可以在數(shù)據(jù)采集的時候接USB的移動硬盤。其他的接口,CANFD、SPI、UART是一些業(yè)界常用的SoC低速接口。再重點提一下每個加速器在基礎(chǔ)軟件開發(fā)當(dāng)中有什么功能?

首先是ISP。其中一個最基本的功能就是,攝像頭模組的原始圖像數(shù)據(jù)進(jìn)來以后,把它處理成后端最常用的NV12格式。除此之外,ISP還可以對原始圖像進(jìn)行縮放,比如輸入的是1080p,如果后端需要720p的輸出,我們也可以通過ISP本身做縮放。還有裁剪功能,假如原始輸入是2.5M的圖像(分辨率是1920×1280),我們可以把原始圖像做些裁剪,裁成1920×1080輸出,這是ISP本身可以做的事情。
第二個硬件加速器模塊是視覺加速。它是一個計算機(jī)視覺(Computer Vision)的硬件加速模塊。我們最常用的幾個功能:顏色空間轉(zhuǎn)換(比如RGB到NV12)、去畸變、縮放、裁剪,以及圖像金字塔等,這些都是可以通過這個模塊實現(xiàn)的。A1000 SoC內(nèi)部有4個視覺處理DSP。它主要是用來做視覺加速的,提供了很多視覺圖像處理的函數(shù)供用戶二次開發(fā)使用。現(xiàn)在項目中比較常用的功能,包括顏色格式轉(zhuǎn)換、DMA搬運,以及客戶基于DSP開發(fā)的算法后處理算子、激光雷達(dá)感知算法的算子等。NPU是黑芝麻智能自研的一個神經(jīng)網(wǎng)絡(luò)處理加速器,包括卷積、矩陣乘、非線性計算等。低功耗ARM處理器說的是A1000芯片內(nèi)的8核應(yīng)用處理器(Application CPU)。每個核運行在1.5G的頻率上,主要是做系統(tǒng)調(diào)度,算法的前處理、后處理等。GPU目前在項目中最常用的幾個用途,有BEV圖像的拼接、普通2D圖像的拼接、AVM 3D的渲染等。視頻編解碼加速器,支持H264/H265、MJPEG等格式的編碼和解碼,一般用來做數(shù)據(jù)采集、行車記錄儀、汽車的黑匣子(EDR)等。這些都是剛才說的A1000 SoC相關(guān)的硬件架構(gòu)。

從軟件平臺來說,黑芝麻智能提供了比較靈活的軟件配置。黑芝麻智能A1000平臺提供QNX SDK、Linux SDK、 ATF 、Open-TEE等組件。其中Linux、 ATF、Open-TEE都是源碼開放的,源碼都在A1000的SDK包里。A1000平臺的QNX7.1的BSP包,需要在黑莓的官方下載。A1000 SoC內(nèi)有一個鎖步的MCU核,做A1000芯片級別的監(jiān)控和故障上報,和視覺、視頻流處理沒有直接聯(lián)系。黑芝麻智能提供的A1000 SDK包里,包含了用于這個MCU核的FreeRTOS SDK。A1000 SoC內(nèi)的4個視覺DSP,客戶可以通過開發(fā)使用DSP算子,優(yōu)化系統(tǒng)實現(xiàn)。黑芝麻智能提供了一套調(diào)用框架(RCall SDK),由應(yīng)用處理器調(diào)用DSP的算子功能。

以上是嵌入式板端的,接下來介紹一下PC端最常用的開發(fā)工具鏈。
比如我們拿到一個板子以后,要把系統(tǒng)最小鏡像燒錄到板子,然后開始調(diào)試板子的基礎(chǔ)軟件;調(diào)試板子的應(yīng)用時,統(tǒng)計系統(tǒng)的性能數(shù)據(jù),通過USB或以太網(wǎng)傳到PC上分析;在線調(diào)試一些Linux應(yīng)用程序,這些都是這套PC開發(fā)工具提供的功能。深度學(xué)習(xí)山海工具鏈?zhǔn)且粋€很大的topic,這里面我就不細(xì)講,大概提一下。它其實是一個很大的范圍,包括神經(jīng)網(wǎng)絡(luò)模型的量化,深度學(xué)習(xí)算法的適配,算子運行效率的優(yōu)化,諸如此類。首先,A1000平臺除了支持Linux、QNX操作系統(tǒng),也可以支持我們合作伙伴的第三方操作系統(tǒng),比如接下來中興專家給大家分享的 SafetyLinux。
其次,A1000平臺已經(jīng)通過了量產(chǎn)項目的考驗,在吉利領(lǐng)克08這個車型上成功量產(chǎn)。A1000 SDK提供的服務(wù)已經(jīng)具備量產(chǎn)品質(zhì),大大減少客戶二次開發(fā)過程中,可能碰到的各種問題。
第三,A1000的Linux SDK包中,集成了一套docker編譯環(huán)境,可以作為本地編譯環(huán)境使用。SDK中的指導(dǎo)文檔也是齊全的,從SDK的整體介紹,到每個硬件模塊的編程指南,還提供相應(yīng)的范例代碼。前面說到的PC開發(fā)工具鏈,提供燒錄鏡像包,鏡像包的客制化,在線調(diào)試,系統(tǒng)性能分析等功能。這些都極大降低了開發(fā)者上手的難度,幫助客戶快速的建立A1000平臺開發(fā)能力。
第四,在A1000 SoC內(nèi),集成的硬件加速器,可以簡化嵌入式板端的系統(tǒng)設(shè)計,優(yōu)化處理流程。在各個硬件加速器之間,通過共享內(nèi)存機(jī)制,提升數(shù)據(jù)處理效率。
第五,A1000平臺適配性好。黑芝麻智能推薦客戶參考A1000 FAD參考設(shè)計,來設(shè)計自己的最小系統(tǒng)。用戶可以根據(jù)自己的需求,從最核心的最小系統(tǒng),到其他的加串器、解串器、攝像頭、以太網(wǎng)的PHY、板級其他設(shè)備,都可以自行選擇,黑芝麻智能支持客戶做量產(chǎn)適配。
最后一點,黑芝麻智能自研的ISP。在A1000平臺上,黑芝麻智能提供量產(chǎn)級別的ISP tuning服務(wù)。如果客戶需要自行基于A1000平臺,細(xì)調(diào)攝像頭的圖像效果,黑芝麻智能可以提供ISP tuning工具使用方面的培訓(xùn)。

接下來,我給大家介紹一個A1000上典型的泊車應(yīng)用的部署。這是一個流程框圖。

從圖上看,泊車一般是4個攝像頭模組,所以先以4個攝像頭模組為例。
4個攝像頭的原始圖像數(shù)據(jù)進(jìn)入A1000后,首先由ISP做處理。A1000集成的ISP,可以調(diào)節(jié)4個攝像頭的數(shù)據(jù),達(dá)到同步曝光,亮度、色彩的均衡等處理,再給到下一個處理單元。從ISP送出的圖像數(shù)據(jù),共有4個使用者。第一個使用者,是Codec編碼。如框圖上的第一條通路,做EDR、DVR。計算機(jī)視覺的硬件加速器可以把這4幅圖簡單做四宮格拼接,用CPU把時間戳、敏感信息去掉,再送給Codec編碼,最后通過以太網(wǎng)或者其他方式往外輸出。第二個使用者,是泊車感知的障礙物檢測。計算機(jī)視覺加速器可以做縮放和裁剪,包括去畸變,然后由感知算法做障礙物檢測,再到算法后處理。第三個使用者,是泊車感知的停車位檢測。GPU把4幅圖像數(shù)據(jù)做BEV拼接,拼接后輸出的是RGBA格式的數(shù)據(jù),我們需要把它轉(zhuǎn)成NPU需要的格式。比如NPU需要RGB-planar、NV12格式的圖像數(shù)據(jù),我們可以通過DSP,把RGBA的數(shù)據(jù)轉(zhuǎn)成RGB-planar格式,再給到算法后處理。第四個使用者,是360全景環(huán)視。GPU把4幅圖做AVM拼接,再加上其他3D渲染,送到車機(jī)ECU做顯示。通過這些硬件加速器能夠有效地減輕CPU的負(fù)擔(dān),使整個系統(tǒng)運行更加穩(wěn)定可靠。每個硬件模塊之間,我們盡可能通過Shared Memory來傳輸數(shù)據(jù),減少內(nèi)存的拷貝,優(yōu)化DDR帶寬的使用。

行車感知,一般使用6個攝像頭,或者7個攝像頭(雙前視)。包括一到兩個前視攝像頭、四個側(cè)視攝像頭,一個后視攝像頭。這些攝像頭模組需要做同步曝光處理。當(dāng)和其他傳感器需要同步時,比如激光雷達(dá),就需要激光雷達(dá)輸出一個觸發(fā)信號,再由這個觸發(fā)信號,控制多個攝像頭模組的同步曝光。
計算機(jī)視覺加速器把輸入的視頻數(shù)據(jù),進(jìn)行縮放、裁剪,再零拷貝送到下一個處理節(jié)點,比如Codec、NPU做處理。在行車應(yīng)用中,計算機(jī)視覺DSP可以支持客戶自研的算法處理模塊,比如激光雷達(dá)的算子、測距算法、泊車建圖、行車標(biāo)定等。

A1000平臺典型開發(fā)場景我們接下來討論一下,是平常工作中花時間最多的幾個典型場景:

1、多傳感器的同步觸發(fā)主要是說攝像頭、激光雷達(dá)等傳感器,如何做到同步觸發(fā)。這個和模組之間的差異,激光雷達(dá)外發(fā)觸發(fā)信號的精度等因素有關(guān)。我們需要了解senor的觸發(fā)機(jī)制、同步曝光的原理,才能夠做到游刃有余。2、高效的數(shù)據(jù)處理流程,需要我們充分了解整個SoC的各個硬件模塊,以及數(shù)據(jù)處理的流程。在數(shù)據(jù)處理過程中,充分利用SoC的硬件加速器。3、黑芝麻智能提供ISP的tuning服務(wù),這也是我們工作的一部分。為了給用戶呈現(xiàn)最好的圖像效果,一組攝像頭一般來說需要半個月左右的時間去優(yōu)化效果。4、在基于神經(jīng)網(wǎng)絡(luò)的視覺感知算法上的的適配上,黑芝麻智能提供了山海深度學(xué)習(xí)工具鏈,支持第三方深度學(xué)習(xí)的算法跑在A1000芯片上。5、四個計算機(jī)視覺DSP,很多客戶會開發(fā)此DSP的算子,把四個DSP都用起來,減輕CPU負(fù)擔(dān),加快整個視頻數(shù)據(jù)流的運轉(zhuǎn)。6、每個平臺都會需要系統(tǒng)性能分析與優(yōu)化。根據(jù)并發(fā)的場景,分析每個環(huán)節(jié)的資源消耗,具體分析出系統(tǒng)的瓶頸在哪里,做相應(yīng)地優(yōu)化。黑芝麻智能在面向客戶的項目空間中,積累了大量的問題分析和經(jīng)驗總結(jié)。大家可以通過我們的項目空間去看一下,學(xué)習(xí)和借鑒以往經(jīng)驗積累。黑芝麻智能自研的ISP是A1000突出的亮點之一。A1000集成了3個ISP Core。每個ISP Core都能支持4個攝像頭同步輸入,因此最多可以支持12個原始圖像的攝像頭模組接入,滿足行泊一體項目的多攝像頭接入的需求。
黑芝麻智能提供量產(chǎn)級別的tuning服務(wù)。ISP tuning需要很高的專業(yè)知識深度,黑芝麻智能可以給客戶提供免費的A1000 ISP tuning培訓(xùn),增強(qiáng)客戶自己的圖像處理能力。
黑芝麻智能自研的NPU是個A1000第二個非常大的亮點。

黑芝麻智能的深度學(xué)習(xí)山海工具鏈?zhǔn)窍喈?dāng)完備和成熟的,可以支持客戶把算法快速移植到A1000的DynamAI NN深度學(xué)習(xí)引擎上來。
我想要向大家推薦的是黑芝麻智能為客戶提供的開發(fā)者平臺。這個平臺有我們專業(yè)的團(tuán)隊在維護(hù)。在這個平臺上,有技術(shù)積累的資料,有向客戶開放的A1000芯片資料。黑芝麻智能的工程師和客戶的工程師,在這個平臺上,共同討論并解決問題。這個解決問題的過程,就變成了一篇“開發(fā)者指南”。一方面供我們黑芝麻智能的同事學(xué)習(xí)和成長,同時也給客戶的工程師分享知識積累。
我們的目標(biāo)是,在這個開發(fā)者平臺,只要用關(guān)鍵字就能搜到我們關(guān)心的問題,指導(dǎo)我們快速的定位/解決問題。


黑芝麻智能核心競爭力
再次向大家介紹一下黑芝麻智能的核心競爭力。
1、卓越的華山二號A1000的芯片;
2、黑芝麻智能自研的核心IP(ISP,NPU);
3、完備的參考設(shè)計和工具鏈;
4、國內(nèi)頭部車企的量產(chǎn)品質(zhì);
5、A1000的各個生態(tài)合作伙伴的加持,快速量產(chǎn)落地。