您當前的位置:首頁 > 遊戲

ADAS多感測器後融合(上)

作者:由 Minne 發表于 遊戲時間:2022-03-06

一、前言

ADAS系統是一種高自動化的軟體應用,對系統的魯棒性與可靠性要求很高,單一感測器往往存在一定限制,此時便需要多感測器融合。多感測器融合會帶來如下收益:

可以在部分場景提升整體感知精度。

某一感測器出現錯誤/失效時可以使用另一感測器進行補償。

多感測器可以擴大FOV範圍。

在論文《A Review of Data Fusion Techniques》中對融合技術分類中對融合分成以下三類,可見與上面預期收益是對應的:

協作型:多個輸入可以組成遠比原始資訊更復雜的資訊。

冗餘型:兩個或多個輸入提供同一個目標資訊用於增強可信度。

互補型:輸入為同一場景的不同部分用於形成完整的全域性資訊。

文章將分上下兩部分對ADAS中後融合相關演算法策略進行介紹。

二、融合架構

如下圖為不同論文介紹的融合架構,雖命名方式有所不同,但基本可以分為以下兩類:

ADAS多感測器後融合(上)

前融合:集中式架構/low-level融合架構。

後融合:分散式架構/high-level融合架構。

前融合的中心思想是將所有感測器的原始資訊(點雲/影象)全都傳給中心融合模組,集中在融合模組做跟蹤、關聯與估計。前融合可以使用深度學習訓練網路來實現,也可以對raw data進行關聯與融合來跟蹤。後者對時間的同步性有較高的要求,否則會影響關聯的準確性。

後融合的中心思想是每個感測器使用其內部的濾波與跟蹤演算法,融合模組做的就是對多個感測器的濾波結果有效的結合起來。由於每個感測器輸出已經為目標/track,因此此種融合也可以稱為目標級別/track級別融合。

ADAS多感測器後融合(上)

當然我們也可以選擇一種折中的方法,稱為feature-level。中心思想為從raw data中提取特徵資訊後送入融合模組進行跟蹤融合。比如我們可以提取目標的輪廓資訊進行擴充套件目標跟蹤。主要缺點就是:介面不容易定義,不同感測器可能提取的特徵有差異,在有新增感測器的情況下可能造成融合框架失效。

下圖為low-level、feature-level與high-level三種融合架構的優缺點對比:

ADAS多感測器後融合(上)

可見後融合相比前融合有如下

優點

解耦性好,介面可封裝,方便模組化開發。

節省頻寬,可以降低成本。

對感測器不敏感,可保證系統穩定。

犧牲一定精度情況下,降低了演算法複雜度。

方便問題定位回推,易於落地。

當前業界主要採用的融合框架仍為後融合框架。Tier1一般不會放棄後融合架構,因為在商業上來說後融合可以即插即用,單個產品可以賣給主機廠讓他們採購別的感測器做拼接,主要還是得益於這個架構的方便落地以及良好的可擴充套件性。主機廠則一般會在基於後融合框架的系統穩定後,逐步向前融合探索,拿到更多的資訊以提升精度。

RC後融合架構一般可達成的效果(應實現功能):

目標的位置、速度等資訊精度不低於最好的感測器。

大大增強系統魯棒性,如降低單camera感測器的漏檢率/單Radar感測器的虛警率;對感測器模組失效可容錯等。

三、介面

如上可知,後融合架構的輸入為radar與camera跟蹤濾波後的目標級別track資訊,輸出為融合模組維護的全域性track。那全域性track中一般包含哪些資訊,不同公司有不同的介面設計。

如下為Apollo的目標介面表:

介面

描述

id

sensor name

polygon

目標點雲

track資訊

track_id

track id

tracking_time

跟蹤時間

latest_tracked_time

最近一個更新的時間戳

motion 資訊

motion_state

“UNKNOWN = 0,

MOVING = 1,STATIONARY = 2”

center

車中心點座標

center_uncertainty

位置不確定度

anchor_point

錨點

velocity

速度

velocity_uncertainty

速度不確定度

velocity_converged

是否收斂的flag

velocity_confidence

收斂可信度

acceleration

三方向加速度

acceleration_uncertainty

加速度不確定度

direction

方向向量

theta

朝向角

theta_variance

朝向角方差

drops

最多100幀的歷史軌跡

feature 資訊

size

長寬高

size_variance

長寬高不確定度

type

“UNKNOWN = 0,

UNKNOWN_MOVABLE = 1,UNKNOWN_UNMOVABLE = 2,PEDESTRIAN = 3,BICYCLE = 4,VEHICLE = 5,MAX_OBJECT_TYPE = 6”

type_probs

每個類別的機率

sub_type

“UNKNOWN = 0,

UNKNOWN_MOVABLE = 1,UNKNOWN_UNMOVABLE = 2,CAR = 3,VAN = 4,TRUCK = 5,BUS = 6,CYCLIST = 7,MOTORCYCLIST = 8,TRICYCLIST = 9,PEDESTRIAN = 10,TRAFFICCONE = 11,MAX_OBJECT_TYPE = 12,”

sub_type_probs

每個細分類別的機率

confidence

存在機率

其他flag

b_cipv

obj是否為CIPV

car_light

“brake_visible = 0。0f

brake_switch_on = 0。0fleft_turn_visible = 0。0fleft_turn_switch_on = 0。0fright_turn_visible = 0。0fright_turn_switch_on = 0。0f”

四、後融合策略

4。1 無記憶策略與有記憶策略

既然融合端要輸出全域性track,那如何建立與維護它呢,一般有兩種融合策略:

無記憶融合策略

有記憶融合策略

如下圖為無記憶的融合策略,此框架中,不保留全域性track的資訊,感測器級別的資料在預設定的融合週期時進行融合。

ADAS多感測器後融合(上)

融合端在kG-3時刻sensor i在ki-1時刻上報資料時,先不進行融合,而將這部分資料儲存下來,在KG-2時刻收到sensor j上報的資料時,再進行融合生成全域性track。自然kG-3時刻收到的sensor i的資料需要預測到kG-2時刻。如果有多個感測器,那就依次融合。因為在每個融合週期,全域性track都是新生成的,和上一融合週期的全域性track沒有關係,所以此策略叫無記憶的融合策略。

如下圖為有記憶的融合策略,此框架保留全域性track的資訊,在感測器資料來時,對全域性track進行預測後馬上融合感測器資料。

ADAS多感測器後融合(上)

融合端在kG-3時刻sensor i在ki-1時刻上報資料時,立刻就進行融合了。而後將全域性track資料進行預測,在kG-2時刻sensor j的資料來了,再次進行融合,以此類推。與無記憶策略相比,在於全域性track在建立後進行保留維護。此策略靈活性較強,具有“即插即用”的優勢,因為不同感測器資料之前被隔離開了,感測器資料沒有直接接觸,都是間接透過全域性track進行接觸,所以新增與移除某一幀感測器的資料不會對融合端造成較大影響。

當前使用這兩種策略的廠商都有,Valeo一篇論文明確說明了他們使用的是無記憶融合策略,Apollo、BMW、huawei等公司使用的是有記憶的融合策略。

接下來主要介紹有記憶的融合策略,雖然這種策略使用起來不錯,但是會出現兩個問題,如下:

相關性問題

失序問題

相關性問題主要有兩種:1。過程噪聲相關性。2。歷史資訊相關性。

過程噪聲相關性:一般融合都採用卡爾曼濾波框架進行預測和更新,而一次卡爾曼濾波流程,新增過程噪聲次數應為一次,而實際過程中,如果兩個sensor觀測到同一個物體,則這個物體在不同sensor中均加過一次過程噪聲,也就是兩次Qi與Qj,這是不對的。為了解決這種情況,一般需要將兩個sensor之間的交叉方差計算出來然後減去。

ADAS多感測器後融合(上)

歷史資訊相關性:如下圖所示在Ki-1時間時,sensori的測量資訊第一次被更新在全域性航跡中,此時全域性航跡包含sensori從0時刻到Ki-1時刻所有的資訊了。到了Ki時刻,sensori的測量又來了,此時測量含有0時刻到Ki時刻的所有資訊,如果全域性航跡直接使用這部分測量進行更新,相當於又一次融了一次0到Ki-1時刻的資訊,實際需要的僅僅是Ki-1到Ki時刻的資訊。

ADAS多感測器後融合(上)

失序問題產生的原因在於測量資料可能存在延遲處理時間和通訊延遲。舊資料進入新目標了,就捲起來了,引入了錯誤資訊。如下圖所示,全域性track應該融合kj然後融合ki,但由於通訊延遲,變成了先融合ki再融合kj,這就出現了錯誤。

ADAS多感測器後融合(上)

解決失序問題可用方法:

軟體架構層面:及時消除快取資料

框架層面:可以採用迴圈週期策略 + 預測感測器資料到同一節點。(下面介紹)

演算法層面:採用自適應卡爾曼濾波/資訊矩陣融合方法

4。2 迴圈週期策略與觸發式策略

在感測器端將資訊上報給融合端後,那融合端如何將融合後的結果上報給後續模組呢,一般有兩種策略:

迴圈週期策略

觸發式策略

迴圈週期策略是根據感測器的上報週期以及融合處理資料時間合理制定融合應該的上報週期,比如上報週期就是60ms,那融合就每60ms發一次融合資料,風雨無阻。

迴圈週期策略有兩種實現方式,在感測器上報到融合端後,就馬上進行融合,只不過不上報,最後在對應時間週期到了時候再進行上報。如下圖,在KG-3時刻上報後,Ki時刻sensor i上報資訊,全域性track進行預測到KG-2時刻進行融合更新,在Kj時刻sensor j上報資訊,全域性track預測到KG-1時刻進行融合更新,最後預測到KG時刻進行上報。

ADAS多感測器後融合(上)

相比與上一種方式對全域性track進行操作的方式,第二種方式則對融合週期內的感測器端結果預測到上報節點,全域性track在對應時刻進行分別融合更新。如下圖,KG-1時刻進行融合結果上報後,對Ki時刻的sensor i資料預測到KG時刻,Kj時刻的sensor j資料預測到KG時刻,全域性track 預測到KG時刻,使用預測後的感測器資料進行兩次關聯與更新。此方法不會出現失序問題。

ADAS多感測器後融合(上)

觸發式策略是每次感測器來,就做一次融合,而後將融合後的結果上報。所謂觸發就是融合上報是被感測器上報資料所觸發,故得到此名字。

Apollo使用的是一種觸發式策略,在Apollo 7。0中其選擇了一個主感測器Lidar,只有在Lidar資訊輸入後,融合端在融合後才會上報。這樣在感測器均正常工作的情況下,融合的上報週期和Lidar週期相同。

ADAS多感測器後融合(上)

相比與迴圈週期策略,觸發式策略更加靈活,容易處理,但是在某一感測器掛掉時候,融合對應的也掛掉了,這並不符合量產的系統穩定性需求。而迴圈週期測量的兩種方法,精度會有差別(不同的預測手段導致),後者則會在問題迴歸定位時方便,可直接採用幀號對齊。

一般情況下,有記憶策略與迴圈週期策略/觸發式策略均可配套使用,但是無記憶策略通常與迴圈週期策略配套使用。原因可以理解,觸發式策略在任意感測器來時候進行融合而後上報,無記憶策略由於不維護全域性track,需要等待兩個感測器資料到齊後進行融合,二者結合不是很合適。

五、小結

此部分主要介紹了融合的主要架構、介面以及主要策略,這些都是正向設計時候最先應該考慮的問題。下一篇文章講主要對後融合各功能模組進行介紹。如下。

喜歡的點一個贊吧!!!

標簽: 融合  感測器  track  策略  全域性