近年來行泊一體大行其道,德州儀器的TDA4占了行泊一體大約70%的市場。其背后關鍵的就是OpenVX。
圖片來源:德州儀器
TDA4是一個龐大的家族,可以對應六大場景,如上圖。TDA4系列產品眾多,TDA4VM是最早推出的,性能最低,2023年2季度量產的TDA4VH和TDA4AH是TDA4系列的旗艦產品,具備32TOPS的AI算力(4個MMA),100K DMIPS的CPU算力(8個2.0GHz的Cortex-A72內核),16K DMIPS的MCU算力(8個Cortex-R5F內核),320 GFLOPS的DSP算力(4個C7X),4個4K60顯示,內置4口以太網交換,2口PCIe交換。
圖片來源:德州儀器
這是典型的行泊一體框架圖,10個攝像頭,對TDA4VMP來說太吃力,還是需要TDA4VH。行車方面,可實現盲區檢測(BSD)、開門預警(DOW)、車道偏離預警(LDW)、前向碰撞預警(FCW)、智能遠光燈控制(IHC)、前方穿行預警(FCTA)、后方穿行預警(RCTA)、后方碰撞預警(RCW)、自適應巡航(ACC)、車道保持輔助 (LKA)、手動變道(PLC)、交通擁堵輔助(TJA)、高速輔助駕駛(HWA)、自動緊急制動(AEB)、交互式高速公路自動駕駛(HWP)、交互式高速公路擁堵自動駕駛(TJP)、自動輔助導航駕駛(NOA)等功能;泊車方面,可實現全景功能(AVM)、自動泊車輔助(APA)、遙控泊車輔助(RPA)、家庭區域記憶泊車(HAVP)等功能。
圖片來源:福瑞泰克
這是福瑞泰克最頂級的ADC30域控制器架構,12V5R3L方案,基于3顆地平線征程5芯片、2顆TDA4VH以及2顆英飛凌TC397的架構。3顆征程5芯片主要做BEV鳥瞰圖。高精度地圖處理、傳感器融合、軌跡預測、行為決策、路徑規劃和自動泊車由TDA4VH負責。據說一汽紅旗將使用這個域控制器。一汽紅旗是福瑞泰克的大客戶。
TDA4VM內部框架圖
圖片來源:德州儀器
TDA4VMID的應用框架圖
圖片來源:德州儀器
TDA4VMID自動泊車的數據流分析
圖片來源:德州儀器
TDA4VMID的軟件棧與負載分析
圖片來源:德州儀器
關鍵的算法部分是OpenVX。
OpenVX中間件
圖片來源:OpenVX
圖片來源:OpenVX
我們來研究一下今天的主角:OpenVX,這實際是TDA4的核心。
圖片來源:OpenVX
OpenVX是芯片內部的硬件加速器與視覺應用間的橋梁,也就是個API。
圖片來源:OpenVX
一個Graph,可以說是對象也可以說是圖形,一個Graph代表一個圖像處理流程,每個進程內可以有多個context(上下文),每個context內可以有多個graph(圖,或連接關系),每個graph內可以有多個node(節點)。一個node就是一個最小的調度單元,可以是圖像預處理算法,可以是邊緣檢測算法;一個graph就是一個功能,是由多個步驟連接在一起的完整功能;當graph構造完成后,即可調用vxVerifyGraph函數,交由OpenVX后端去檢查參數是否合法。如果合法,即可調用vxProcessGraph函數,交由OpenVX后端將任務分發給特定的加速器和異構核心,等待全部計算完成后即函數返回。
也支持CNN,不過還是不如專用的AI芯片
圖片來源:OpenVX
OpenVX是非盈利開源組織Khronos定義的一套API框架,包括:
宏的定義與含義
結構體的定義與含義
函數的定義與行為
而框架的代碼完全由各個公司自行實現(實現的API行為符合Khronos定義即可),例如TIOVX是TI公司對OpenVX 的實現,Khronos組織本身也提供了一個OpenVX實現作為參考。OpenVX提出的初衷之一是統一各個平臺的圖像處理接口,提高業務代碼在不同平臺下的移植性。
很明顯,框架使用了面向對象的設計思路,即結構體(對象)中的數據對使用者隱藏,使用者只能調用相應的函數讀取及修改結構體中的數據。OpenVX偏向于硬件硬解碼,由芯片廠家決定,OpenCV偏向于通用軟件實現功能,由社區決定。
OpenVX規范了標準化的數據結構,基本滿足了嵌入式系統的主要需求,尤其是這種數據結構的描述方法對嵌入式系統非常友好:支持虛擬地址、物理地址等異構內存;提供了數據在多種地址之間映射的接口;提供了統一化的自定義結構體的描述方法。
圖片來源:OpenVX
OpenCL與OpenVX對比,OpenVX受限于硬件,國內接觸的很少,熟悉OpenCL的人很多。
圖片來源:OpenVX
目前支持OpenVX主要是以上幾家,包括樹莓派、日本索喜、德州儀器、英特爾、AMD、高通,還有IP公司芯原、Imagination、CADENCE、Synopsys和 ETRI (韓國電信研究院)。2016年推出第一版OpenVX標準,目前是2019年的1.3版本,AMD和德州儀器是最早使用OpenVX的公司。
圖片來源:KHRONOS
TIOVXFramework包含了官方OpenVX的標準API和TI擴展的API,其中包括public: Context, Parameter, Kernel, Node, Graph Array, Image,Scalar, Pyramid, ObjectArray ;TI: Target, Target Kernel, Obj Desc。TIOVX Platform提供了特定硬件(如TDAx, AM65x)的操作系統(如TI-RTOS, Linux)調用API。API就像飯店服務員,廚師就是底層的硬件系統,食客就像軟件應用調度,食客是看不見廚師的,封裝好的內核就像菜單,廚師一般只能按菜單做,新菜也能做,但會比較麻煩。
TIOVXKernel Wrapper提供了由硬件模塊VPAC(Vision Pre-processing Accelerator)和DMPAC(Depthand Motion Perception Accelerator)封裝成的Kernel,用戶也可用Wrapper將自定義的算法(如OpenCV算法,DSP算法)封裝成Kernel。Kernel是指OpenVX中的一種功能,比如對一個圖片進行高通濾波,這在OpenVX 里面叫做一個user kernel。
在OpenVX中,把參數定義初始化好后的kernel叫做node,因此,node就是 kernel的一個實例化--即擁有指定參數的 kernel。 視覺預處理加速器(VPAC)是一組常見的視覺基元函數,執行內存到內存 (M2M)像素數據處理任務,例如:顏色處理和增強、噪聲過濾、寬動態范圍 (WDR)處理,鏡頭失真校正,用于去扭曲的像素重新映射,即時比例生成,即時金字塔生成。
VPAC從主SoC處理器(ARM、DSP等)卸載這些常見任務,因此可以將這些CPU用于差異化的高級算法。VPAC旨在通過在時分復用模式下工作來支持多個攝像頭。VPAC用作視覺處理的前端,并為SoC中的其他視覺加速器或處理器內核的進一步處理。
VPAC邏輯圖
圖片來源:TIOVX
DMPAC包含兩個模塊,即 Sterei Disparity Engine(SDE, 用于加速立體深度預測)和Dense Optical Flow Engine (DOF Engine,用于加速密集光流)。DMPAC計算來自相機輸入的密集立體深度圖(深度)和密集光流矢量(運動)。基于圖像/視頻傳感器的環境感知(也稱為場景理解)是汽車、工業和消費電子領域許多新興應用的核心。通常這涉及通過分析一個或多個相關的輸入視頻流來檢測場景中的所有對象,以及它們相對于觀察者或汽車的3D位置和運動。
圖片來源:TIOVX
上圖為TIOVX的典型應用,L2級智能駕駛最核心功能AEB。每一步就是一個node。EVE是一個比較復雜的應用,需要調用ARM CPU和DSP。HWA是硬件加速,可以理解為FPGA那種查找表類型的硬連線輸出。
光流功能的實現可以用來追蹤目標及預測目標軌跡位置
圖片來源:OpenVX
用TDA4來做ADAS,算法工作量可以大幅度縮減,并且執行效率遠高于手工OpenCV代碼,研發成本可以大幅度降低,這也是TDA4橫掃行泊一體市場的原因。
審核編輯:劉清
-
以太網交換機
+關注
關注
0文章
124瀏覽量
14344 -
MMA
+關注
關注
0文章
7瀏覽量
18452 -
TDA
+關注
關注
3文章
269瀏覽量
77855 -
TOPSIS
+關注
關注
0文章
6瀏覽量
6589 -
openvx
+關注
關注
0文章
2瀏覽量
4606
原文標題:TDA4橫掃行泊一體市場與其背后的OpenVX
文章出處:【微信號:zuosiqiche,微信公眾號:佐思汽車研究】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
使用TDA4仿真器遇到的幾個疑問求解
德州儀器獲16億美元美國芯片補貼
德州儀器2024年電源設計研討會線上系列順利舉行
德州儀器股票分析:增長已經放緩的德州儀器,該買入還是賣出?

基于Pytorch訓練并部署ONNX模型在TDA4應用筆記

評論