作者 |?山丘 ? ? ?
在目前的L2-L4的自動(dòng)泊車方案中,攝像頭和超聲波作為核心傳感器通常部署在車輛周圍一圈,常規(guī)的情況下,各個(gè)攝像頭都是“各司其職”,前視+周視相機(jī)往往專注于行車感知,而魚眼相機(jī)則專注于360環(huán)視和泊車感知。主流的做法都是行泊分開行動(dòng),且各個(gè)攝像頭的感知場(chǎng)景通常還是隨車輛的不同運(yùn)行狀態(tài)有所不同的。典型的比如,中高速階段(如30kph以上),通常只激活行車攝像頭的感知結(jié)果進(jìn)行模型訓(xùn)練,盡管這時(shí)候泊車攝像頭和超聲波雷達(dá)也能在一定程度上起到一定的作用,但是對(duì)于行車控制而言,效果卻并不理想。反之,如果是低速情況下時(shí),通常又只激活泊車攝像頭的感知結(jié)果,因?yàn)椴窜嚨奶匦跃褪且蠼嚯x,F(xiàn)OV對(duì)場(chǎng)景全覆蓋,這些特性就使得只有類似360環(huán)視才能對(duì)其產(chǎn)生最佳的識(shí)別效果。
那么問題來了:當(dāng)前也有一些場(chǎng)景期待用類似前視+周視一樣的FOV范圍覆蓋替代掉環(huán)視,后續(xù)的11V可以直接切換到7V,這樣省成本的方案看起來還是非常誘人的,實(shí)際上之前的特斯拉已經(jīng)有這段想法并付諸實(shí)踐研究了,國內(nèi)的很多視覺感知廠商也在從研究泊車搜車位開始引入利用周視進(jìn)行車位識(shí)別了。
本文將分別講述泊車感知的基礎(chǔ)原理,并分析為什么如上的方案對(duì)于泊車來說具有較大的局限性,且不易推廣。
行泊車感知是否能夠復(fù)用視覺感知攝像頭
首先,從硬件角度上講,周視攝像頭如果想要替代環(huán)視魚眼就需要解決如下幾個(gè)比較重要的問題。
1)周視攝像頭數(shù)量和對(duì)應(yīng)的安裝位置;
2)周視攝像頭本身的視場(chǎng)角和分辨率需求;
3)泊車環(huán)境識(shí)別中對(duì)ISP的高要求能否實(shí)現(xiàn);
從當(dāng)前主流的周視布局上看,通常是布局在車身四周的4個(gè)攝像頭,這樣的側(cè)前側(cè)后周視攝像頭一般有兩種規(guī)格,一種是四個(gè)攝像頭均采用100°攝像頭;另一種是兩個(gè)側(cè)前視采用60°側(cè)后視采用100°攝像頭。實(shí)際上從整體俯視圖的覆蓋面上看,這樣的方式足以支撐整車周圍的目標(biāo)環(huán)境探測(cè)。然而,我們?nèi)菀缀雎砸稽c(diǎn),那就是泊車環(huán)境對(duì)于近距離且高程信息的探測(cè)相對(duì)于行車環(huán)境仍然有更高的要求。比如泊車過程中,車輪與車位線的距離有時(shí)候是無法被周視攝像頭探測(cè)到的。在者,對(duì)于周邊兩側(cè)泊車環(huán)境的探測(cè),360全景攝像頭采用的是單目識(shí)別,只是經(jīng)過對(duì)同一輸入源的感知ISP處理來實(shí)現(xiàn)圖像預(yù)處理,隨后利用常規(guī)的神經(jīng)網(wǎng)絡(luò)進(jìn)行目標(biāo)識(shí)別。而對(duì)于周視攝像頭來說則是利用側(cè)方的兩個(gè)攝像頭識(shí)別的圖像拼接來實(shí)現(xiàn)目標(biāo)識(shí)別。由于圖像拼接可能由于算法誤差累積、色彩差異等原因,導(dǎo)致圖像出現(xiàn)拼接縫隙,以及整幅圖像的顏色亮度差異、明暗不一致、目標(biāo)丟失或拼接圖斷裂的情況。這對(duì)于泊車感知能力都是比較大的犧牲。
另一方面,從分辨率角度上講,同樣分辨率的周視攝像頭和360環(huán)視攝像頭在關(guān)注點(diǎn)上也有所不同。對(duì)于攝像頭來說,焦距和視場(chǎng)角是相互制約的,換句話說,諸如環(huán)視這類超大FOV的魚眼攝像頭就不可能具備周視一樣相對(duì)較高的遠(yuǎn)距離識(shí)別能力。因此,如果想做到兩者優(yōu)勢(shì)兼得,那么就勢(shì)必需要增加對(duì)攝像頭的設(shè)計(jì)投入。比如有些攝像頭廠家也在研究是否可以通過從物理結(jié)構(gòu)上將魚眼相機(jī)和周視相機(jī)進(jìn)行總成嵌入,然后再從感知處理架構(gòu)上進(jìn)行圖像鏈路區(qū)分。采用多模型多任務(wù)的處理機(jī)制,有針對(duì)性的對(duì)環(huán)境目標(biāo)進(jìn)行處理。比如將周視相機(jī)的物體檢測(cè)功能輸入到周視目標(biāo)識(shí)別神經(jīng)網(wǎng)絡(luò)進(jìn)行處理;同時(shí),將環(huán)視拼接后的圖像輸入到環(huán)視車位線檢測(cè)的神經(jīng)網(wǎng)絡(luò)模型中。
最后,考慮泊車ISP而言,我們就需要結(jié)合行泊車對(duì)于場(chǎng)景處理的不同要求來說明了。就ISP處理本身而言,無非也就那幾類比較重要和關(guān)鍵的要素場(chǎng)景。比如畸變校正、色彩還原和渲染、圖像去躁、高動(dòng)態(tài)范圍融合的畫面瑕疵處理、多幀處理、低延遲處理等。那么從單純泊車場(chǎng)景上看到底有哪些需要區(qū)別于行車場(chǎng)景ISP呢?
不難看出,泊車攝像頭的感知輸入由于其范圍更大,且識(shí)別更廣,其輸入圖像通常是一些較為扭曲的圖像。因此,畸變校正便是整個(gè)泊車感知處理的核心了。
泊車BEV鳥瞰圖能解決哪些問題
眾所周知,泊車鳥瞰圖的輸入形式很好的保留了地面線條的幾何特征,有利于車位線的檢測(cè),但是這種檢測(cè)方式卻存在兩個(gè)問題:
首先基于BEV的感泊車知范圍一般局限在車身周圍1.5米以內(nèi)(如果是周邊5米內(nèi)的車輛就已經(jīng)變形嚴(yán)重,如果是識(shí)別更遠(yuǎn)距離的立體目標(biāo)將會(huì)變得更加嚴(yán)重)。這是因?yàn)轼B瞰圖本身是靠不同方位的攝像頭對(duì)于相同范圍的目標(biāo)識(shí)別所形成的逆投影變換IPM所拼接形成的。因此,這就使得其識(shí)別距離相對(duì)于單攝像頭更短了。
其次,是有高度的物體投影到鳥瞰圖后形狀也會(huì)變得更加扭曲。其實(shí)這個(gè)問題無論是在行車BEV還是泊車BEV上都會(huì)存在,只是行車場(chǎng)景不會(huì)去過分關(guān)注這些目標(biāo)具體有多高,ADAS系統(tǒng)只是將他們當(dāng)成障礙物而已。而自動(dòng)泊車情況下卻不太一樣,因?yàn)椴窜噷?duì)于地面凸起物是由比較嚴(yán)苛的要求的,也就是一般的凸起物并能成為抑制泊車系統(tǒng)釋放車位的前提條件。從這點(diǎn)上看,如果泊車鳥瞰圖過分扭曲,則會(huì)造成對(duì)凸起物較大可能的誤識(shí)別,很多情況下會(huì)導(dǎo)致漏釋放車位,或者誤制動(dòng)。
解決這類問題就需要考慮原始泊車圖像感知結(jié)合超聲波雷達(dá)的方式了。對(duì)于泊車視覺而言,單目攝像頭識(shí)別的原始圖像可以在很大程度上保留原始圖像中較為真實(shí)地場(chǎng)景(當(dāng)然前提是原始圖像需要經(jīng)過畸變校正才行);但是單目視覺對(duì)于車道線的檢測(cè)(諸如行車攝像頭)則能力一般,無法做到很好的維持直線的幾何形態(tài),這就給線車位的檢測(cè)帶來了極大的難度。當(dāng)然也有一些主流算法考慮不通過單目泊車直接檢測(cè)道線,而是用車位相交線的方法直接定位到線車位四個(gè)角點(diǎn)。
那么這樣的方式真正可行嗎?
答案是否定的。實(shí)際上,我們?cè)诠こ虒?shí)踐中發(fā)現(xiàn),通過各個(gè)單目攝像頭檢測(cè)角點(diǎn)來劃線擬合車位的作為并不可取,主要原因如下:
每個(gè)攝像頭處理車位線并輸入給域控處理形成的角點(diǎn)的時(shí)間可能并不完全一致。即便完全參照域控的時(shí)間戳進(jìn)行數(shù)據(jù)截取也無法完全保證在同一時(shí)刻各個(gè)攝像頭的輸入線不會(huì)因?yàn)楦鞣N原因發(fā)生跳變,實(shí)際上這種擔(dān)心一點(diǎn)都不夸張,我們?cè)诠こ虒?shí)踐中也確實(shí)經(jīng)常遇到車位角點(diǎn)跳變的情況。
因此,為了解決以上問題,我們可以充分結(jié)合鳥瞰圖和單目圖像的優(yōu)勢(shì)分別輸入不同的處理網(wǎng)絡(luò)架構(gòu),進(jìn)行任務(wù)處理。且兩種架構(gòu)必須保持松耦合的關(guān)系,進(jìn)行獨(dú)立運(yùn)算,最后輸出結(jié)果進(jìn)行融合,將確保泊車感知的效能提升一個(gè)臺(tái)階。仍舊以如上的車位檢測(cè)舉例,鳥瞰圖將同一個(gè)車位的車位線進(jìn)行檢測(cè)并輸出后,由后端網(wǎng)絡(luò)在平面上進(jìn)行車位線的相交處理,生成對(duì)應(yīng)的相交點(diǎn),這就是車位角點(diǎn),這種形式輸出的角點(diǎn)將十分穩(wěn)定。
下面,本文將詳細(xì)講解這類泊車融合網(wǎng)絡(luò)將如何實(shí)現(xiàn)。??
泊車系統(tǒng)環(huán)視相機(jī)深度信息估計(jì)
簡(jiǎn)單來講,對(duì)于泊車車位檢測(cè)的手段可以分為如下幾個(gè)步驟:(1)角點(diǎn)檢測(cè);(2)線段檢測(cè);(3)后處理過濾、平滑、配對(duì);(4)幀與幀直接的預(yù)測(cè),即通過推算當(dāng)前幀得出下一幀的車位位置;(5) 在AVM成像的鳥瞰圖上進(jìn)行處理,降低難度;(6)車位類型的分類;(7)車位角點(diǎn)和線段的分類。
對(duì)于泊車而言,如果想實(shí)現(xiàn)深度估計(jì)通常還是傳統(tǒng)的單目視覺測(cè)距的方式,這種方式是參照行車感知的方式,利用攝像頭對(duì)前方目標(biāo)采集的視頻信息,利用幀間圖像匹配來實(shí)現(xiàn)目標(biāo)識(shí)別,然后通過目標(biāo)在圖像中的大小來估計(jì)目標(biāo)距離。單目測(cè)距需要從單幅圖中理解幾何配置,不僅需要考慮局部線索,還需要同步考慮全局上下文。因此,單獨(dú)視覺測(cè)距需要龐大的訓(xùn)練真值數(shù)據(jù),才能保證較高的識(shí)別率,整體測(cè)距精度較低。
實(shí)際上單目視覺感知包括如下兩種處理模塊:
1)魚眼相機(jī)去畸變
與智能行車這類視覺感知(針孔模型投影)相比,魚眼模型投影需要考慮魚眼畸變的影響。主要表現(xiàn)為魚眼相機(jī)具有強(qiáng)烈的徑向畸變,并表現(xiàn)出更復(fù)雜的投影幾何形狀,導(dǎo)致外觀畸變?;贑NN的監(jiān)督方法由于其優(yōu)越的性能,在單目深度估計(jì)任務(wù)中很受歡迎。因此,利用魚眼畸變模塊(FDM)在3D空間和2D 圖像平面之間正確建立魚眼投影,可以排除畸變的干擾。
相比針孔相機(jī)模型可以將三維點(diǎn)直接投影到歸一化平面,魚眼相機(jī)則多了一個(gè)中間過程:先將三維點(diǎn)投影到單位球面,再將單位球面上的點(diǎn)投影到歸一化平面上。
通過給定相機(jī)坐標(biāo)系中的3D 點(diǎn)(x, y,z)和相機(jī)參數(shù),可求出圖像坐標(biāo)系中的位置2D坐標(biāo)(u, v),參照常規(guī)的針孔模型投影坐標(biāo)(a, b)表示a=x/z, b=y/z和,需要計(jì)算投影射線的場(chǎng)角;
然后對(duì)魚眼畸變投影,利用魚眼畸變參數(shù)計(jì)算修正角r=a2+b2.然后對(duì)魚眼畸變投影,利用魚眼畸變參數(shù)計(jì)算修正角0 d:
對(duì)于魚眼識(shí)別中的畸變點(diǎn)坐標(biāo)(x',y')可以計(jì)算出結(jié)果如下:
2)通過投影3D真值來生成2D標(biāo)簽
基于如上分析的魚眼畸變矯正模型,最終可以計(jì)算像素坐標(biāo)矢量(u, v)表示如下:
其中,fu、fv、cu、cv是相機(jī)的固有參數(shù),Cu、Cv表示畸變系數(shù)。X’,y’表示通過魚眼拍攝的畸變圖像點(diǎn)。根據(jù)如上公式,可以成功地基于扭曲的真值3D坐標(biāo)P=(X,Y,Z)來構(gòu)建投影在圖像上的2D真值坐標(biāo)(u, v)。
3)從2D圖像點(diǎn)恢復(fù)3D位置:
對(duì)于三維世界中的一點(diǎn)P,其坐標(biāo)向量為(X,Y,Z),P在相機(jī)坐標(biāo)系中的坐標(biāo)可以表示為Xc=RX+T. 其中R、T分別為世界坐標(biāo)系到相機(jī)坐標(biāo)系的旋轉(zhuǎn)與平移矩陣。如果要通過圖形坐標(biāo)恢復(fù)世界坐標(biāo)系下的三維坐標(biāo)P=(X,Y,Z)。對(duì)于針孔投影到相平面上的坐標(biāo)表示形式,主要需要根據(jù)求解針孔模型投影坐標(biāo)(a, b):其中,
最后,a,b在與世界坐標(biāo)系下對(duì)應(yīng)關(guān)系為a=X/Z,b=Y/Z,通過在魚眼球面投影坐標(biāo)的對(duì)應(yīng)關(guān)系可以求得世界坐標(biāo)系下的P=(X,Y,Z)值。
泊車系統(tǒng)的敏感不失真網(wǎng)絡(luò)架構(gòu)
如前分析,泊車系統(tǒng)的感知探測(cè)過程和結(jié)果都是極其不穩(wěn)定的。不管是對(duì)車道線相對(duì)車輛的實(shí)時(shí)距離精度還是車位角點(diǎn)可能出現(xiàn)的跳變。因此,構(gòu)建穩(wěn)定的融合感知網(wǎng)絡(luò)就顯得尤為必要。實(shí)際上,行泊車感知的終極處理方式都是采用混合網(wǎng)絡(luò)架構(gòu)進(jìn)行,顧名思義,混合網(wǎng)絡(luò)就是對(duì)局部+整體分別進(jìn)行特征提取、CNN及融合結(jié)果輸出。
為了對(duì)泊車過程中可能出現(xiàn)的失真敏感網(wǎng)絡(luò)進(jìn)行檢測(cè)和優(yōu)化,這里我們將介紹一種環(huán)視魚眼單目失真不敏感多任務(wù)框架FPNet(如下圖所示)。
FPNet的整個(gè)網(wǎng)絡(luò)架構(gòu)實(shí)現(xiàn)了三個(gè)維度的感知檢測(cè)融合:包括一個(gè)2D目標(biāo)標(biāo)檢測(cè)頭、一個(gè)3D 目標(biāo)檢測(cè)頭和一個(gè)深度估計(jì)頭。
其中,2D目標(biāo)檢測(cè)主要集中在尋找圖像中目標(biāo)的邊界框,其檢測(cè)效率較高,速度較快能很快檢出特征目標(biāo)物。而單目3D 目標(biāo)檢測(cè)則嘗試定位目標(biāo)的3D位置,并回歸目標(biāo)的尺寸和方向,顯然這種方式對(duì)于還原場(chǎng)景中的目標(biāo)物將更加精確。為了在性能和速度之間的權(quán)衡,可以設(shè)計(jì)一個(gè)共享特征提取器,該提取器是基于中心的框架來平衡滿足對(duì)2D和3D 目標(biāo)檢測(cè)能力的,這樣的特征提取結(jié)果可以很好的應(yīng)用到如上提到的三條預(yù)測(cè)網(wǎng)絡(luò)中。對(duì)于2D目標(biāo)檢測(cè),為了減少計(jì)算量,利用預(yù)測(cè)從2D中心到投影3D中心的偏移量,然后可以通過添加上述投影3D中心預(yù)測(cè)和這個(gè)偏移量來獲得2D中心預(yù)測(cè)。
由此,整個(gè)失真不敏感多任務(wù)框架是通過給定一個(gè)魚眼單目圖像,直接采用共享特征提取器來獲得特征
,從而為以下2D目標(biāo)檢測(cè)、3D單目目標(biāo)檢測(cè)(BEV感知)和密集深度估計(jì)做準(zhǔn)備。隨后通過多任務(wù)感知頭,完成三個(gè)任務(wù)的預(yù)測(cè)。在訓(xùn)練過程中,將3D真值投影到單目影像平面上,產(chǎn)生預(yù)測(cè)監(jiān)督。隨后,利用后處理模塊對(duì)網(wǎng)絡(luò)預(yù)測(cè)進(jìn)行解碼,并結(jié)合魚眼畸變模塊進(jìn)行畸變矯正。
編輯:黃飛
評(píng)論