俗話說(shuō)“單絲不成線,獨(dú)木不成林”。面對(duì)如此復(fù)雜的自動(dòng)駕駛系統(tǒng),最好的辦法自然是博采眾長(zhǎng),多傳感器融合咯。
1.False Positive & False Negative
這是做多傳感器融合之前必須了解的一個(gè)概念。
統(tǒng)計(jì)學(xué)上的名字叫第一類錯(cuò)誤和第二類錯(cuò)誤。當(dāng)然,這么專業(yè)的名字經(jīng)常搞得人云里霧里。實(shí)際上,除了FP和FN之外,還有TP和TN,組成了如下圖所示的四角關(guān)系。
醫(yī)學(xué)上經(jīng)常會(huì)用這個(gè)術(shù)語(yǔ)來(lái)表述檢測(cè)結(jié)果和實(shí)際結(jié)果的差別,經(jīng)典的例子就是你有沒(méi)有得腫瘤導(dǎo)致你心情大起大落的故事。
在自動(dòng)駕駛感知任務(wù)中,F(xiàn)P和FN常被描述成如下場(chǎng)景:
FP:傳感器探測(cè)到了目標(biāo),但實(shí)際上沒(méi)有這個(gè)目標(biāo)。這樣的目標(biāo)又被稱作ghost。
FN:傳感器沒(méi)有探測(cè)到目標(biāo),但實(shí)際上有這個(gè)目標(biāo)。這樣的情況被稱為漏檢。
對(duì)于雙目攝像頭而言,它能感知深度,這原本是個(gè)很不錯(cuò)的能力。但是當(dāng)雙目攝像頭遇上有強(qiáng)光反射的光滑地面時(shí),強(qiáng)光導(dǎo)致的圖像局部飽和會(huì)讓攝像頭的深度測(cè)量出現(xiàn)偏差,而誤以為地上有一個(gè)洞。
但我們都知道實(shí)際上地面上并沒(méi)有洞,那這就是一個(gè)false positive。
明亮的地面反射導(dǎo)致攝像頭探測(cè)到了洞
而這樣的偏差會(huì)導(dǎo)致汽車在行駛過(guò)程中誤以為前方不能通行,需要繞行避讓或直接剎停,從而產(chǎn)生讓人覺(jué)得莫名其妙的“幽靈剎車”。
但是面對(duì)同樣的場(chǎng)景,毫米波雷達(dá)就不會(huì)探測(cè)出一個(gè)洞來(lái),因?yàn)樗ㄟ^(guò)自身發(fā)出的電磁波來(lái)感知周圍環(huán)境而不受光線強(qiáng)弱的影響。
這時(shí)候采用傳感器融合,就能夠避免這樣的問(wèn)題。
2.目標(biāo)檢測(cè)
了解了多傳感器融合的必要性之后,我們來(lái)看看多傳感器融合的細(xì)分任務(wù)。首要的任務(wù)便是目標(biāo)檢測(cè)。
對(duì)于自動(dòng)駕駛汽車來(lái)說(shuō),周圍環(huán)境中最多的、出現(xiàn)頻率最高的自然是其他汽車。而目標(biāo)檢測(cè)就是要用一個(gè)個(gè)小框把他們框起來(lái),從而與周圍環(huán)境區(qū)別開(kāi)來(lái)。這樣的框我們就稱為bounding box。
Bounding box可以分成二維和三維的,分別對(duì)應(yīng)目標(biāo)檢測(cè)里的二維目標(biāo)檢測(cè)及三維目標(biāo)檢測(cè)方法。
2D bounding box,顧名思義每一個(gè)框子都是平面的。好處在于簡(jiǎn)單快捷的把一幀圖像或是點(diǎn)云里的目標(biāo)標(biāo)識(shí)出來(lái)。
https://www.analyticsvidhya.com/blog/2018/12/practical-guide-object-detection-yolo-framewor-python/
但是同時(shí)缺點(diǎn)也是顯而易見(jiàn)的。第一,由于框子也是二維的是一個(gè)平面,我沒(méi)法知道這里車的長(zhǎng)或者寬;第二,目標(biāo)的行駛方向也無(wú)法體現(xiàn)出來(lái)。
這兩點(diǎn)在車輛進(jìn)行ACC、AEB縱向功能時(shí)可能還不明顯,但一旦涉及到車輛橫向控制,需要變道時(shí),缺少這些信息則是致命的。
于是,三維的目標(biāo)檢測(cè)應(yīng)運(yùn)而生,并逐漸成為目標(biāo)檢測(cè)的主流。同時(shí),我們也會(huì)把目標(biāo)分類合并在一起做掉,這可以通過(guò)神經(jīng)網(wǎng)絡(luò)的多頭設(shè)計(jì)來(lái)完成。因此你會(huì)看到目標(biāo)的框上有一個(gè)分類以及分類的置信度。
不同類別的目標(biāo)有不同的幾何外形,這樣也能方便設(shè)計(jì)不同大小的框子對(duì)應(yīng)不同類別的目標(biāo)。
https://paperswithcode.com/task/3d-object-detection
不過(guò)3維框也有其局限,我們都知道車輛的外表并非一個(gè)完美的長(zhǎng)方體,而都用長(zhǎng)方體框出就忽略掉了很多外觀上的細(xì)節(jié)。而這些細(xì)節(jié)在近距離跟車、加塞變道時(shí)會(huì)變得特別有用。
3.目標(biāo)追蹤
目標(biāo)檢測(cè)還只是針對(duì)單幀的畫(huà)面和數(shù)據(jù),但是實(shí)際上我們的運(yùn)動(dòng)場(chǎng)景是連續(xù)的,我們不能只簡(jiǎn)簡(jiǎn)單單在一張或幾張圖片上成功檢測(cè)到物體就足夠,還需要跨幀地確保這些目標(biāo)聯(lián)系起來(lái),即知道這些目標(biāo)是同一個(gè)目標(biāo)在不同時(shí)間戳的表示。這就是目標(biāo)追蹤。
目標(biāo)追蹤的常用結(jié)構(gòu)就是依據(jù)我們之前講過(guò)的卡爾曼濾波結(jié)合目標(biāo)關(guān)聯(lián)算法。
先預(yù)測(cè),再關(guān)聯(lián),后更新。九字箴言。
對(duì)于不同的目標(biāo)我們會(huì)建立不同的數(shù)學(xué)模型,例如針對(duì)靜止目標(biāo),由于速度始終為0不會(huì)變化,我們就會(huì)用恒定速度(constant velocity)模型來(lái)建立運(yùn)動(dòng)學(xué)模型;而針對(duì)運(yùn)動(dòng)的目標(biāo),尤其是車輛這種還帶有旋轉(zhuǎn)、拐彎的一般會(huì)用勻速圓周運(yùn)動(dòng)模型(constant turn rate and velocity)。不同的模型意味著不同的預(yù)測(cè)結(jié)果。
而有了預(yù)測(cè)值之后,你就能大約猜測(cè)出下一個(gè)周期目標(biāo)應(yīng)該會(huì)出現(xiàn)在圖上的什么位置,從而去那個(gè)范圍搜尋對(duì)應(yīng)的像素點(diǎn)或者點(diǎn)云,把合適的點(diǎn)與預(yù)測(cè)的目標(biāo)位置關(guān)聯(lián)上。
關(guān)聯(lián)上后你就獲得了這個(gè)時(shí)刻的測(cè)量值,你就可以用測(cè)量去校正之前的預(yù)測(cè),從而獲得精確的目標(biāo)位置。這樣,循環(huán)往復(fù),周而復(fù)始,你就成功地tracking上了這個(gè)目標(biāo)。
在實(shí)際自動(dòng)駕駛項(xiàng)目中,丟目標(biāo)和目標(biāo)跳變是一個(gè)很嚴(yán)重的問(wèn)題。這里的“丟目標(biāo)”指的就是目標(biāo)追蹤失敗,傳感器沒(méi)能跟上目標(biāo)實(shí)際的運(yùn)動(dòng)軌跡;“目標(biāo)跳變”指的就是目標(biāo)追蹤丟失后又重新跟上。由于這兩者都會(huì)導(dǎo)致目標(biāo)ID變化而導(dǎo)致功能退出,因此都是需要在目標(biāo)融合時(shí)極力避免的。
4.總結(jié)
這里主要介紹了傳感器融合(SF)對(duì)目標(biāo)方面的幾類任務(wù),除目標(biāo)之外,傳感器融合還能做很多其他對(duì)環(huán)境建模的任務(wù),例如道路特征的描述、占用柵格地圖以及可通行區(qū)域表示等等。
編輯:黃飛
?
評(píng)論