環(huán)視感知網(wǎng)絡的多任務和單任務之爭

來源 | CV研習社


文章導讀

本文討論的核心思想來源于如何將車輛等障礙物的目標檢測和車位識別統(tǒng)一在一個神經(jīng)網(wǎng)絡中處理,這一過程存在幾個問題:1、多任務網(wǎng)絡的必要性;2、數(shù)據(jù)輸入形式的統(tǒng)一性;3、三維信息的表達形式。通過兩篇魚眼感知的文章和小編個人想法帶著粉絲們進行算法分析。

1 引言

感知模塊中往往不僅僅只有一個目標檢測或者語義分割任務,如何通過魚眼圖像感知車輛周圍的環(huán)境,研究人員需要做目標檢測識別障礙物的類型和位置;需要做深度估計計算障礙物的橫縱向距離;需要做語義分割劃分車輛可行駛區(qū)域;需要做污漬檢測監(jiān)控圖像質(zhì)量等等工作,所以多任務的視覺感知網(wǎng)絡成為一種不錯的選擇,網(wǎng)絡可以共享編碼階段減少計算量,并在解碼階段多任務相互信息流通。從多任務的角度往往需要思考以下幾個問題?

2 環(huán)視多任務感知需要做哪些事?

根據(jù)《OmniDet: Surround View Cameras based Multi-task Visual Perception Network for Autonomous Driving》這篇文章提供的思路,環(huán)視感知系統(tǒng)包含深度估計、語義分割、運動分割、目標檢測、污漬檢測、視覺里程計六大任務。
環(huán)視感知網(wǎng)絡的多任務和單任務之爭的圖1
如何適應不同相機的徑向失真?

考慮到多顆魚眼攝像頭具有不同的內(nèi)參和視角,讀者們可以考慮基于相機幾何的自適應機制在訓練和推理過程中編碼魚眼畸變模型,從而提升卷積神經(jīng)網(wǎng)絡對不同相機模型的適應能力。通俗點說就是假設一個虛擬相機,其他各個相機模型都轉(zhuǎn)換到該虛擬相機后再輸出結(jié)果。

如何權(quán)衡不同任務之間的權(quán)重?

由于不同任務的復雜程度存在差別,簡單的損失相加必然會造成最終結(jié)果在某些任務上達到較好的效果,但是在其他任務上誤差較大。早在目標檢測的外接框回歸中就存在中心點和長寬偏移的損失權(quán)衡,該問題與多任務之間的損失權(quán)衡具有同一個思想,需要煉丹師們在實際訓練中根據(jù)不同任務損失下降的程度嘗試性的給與權(quán)重進行測試。

如何表征魚眼圖像中的目標?

如下圖所示,(a)中的標準矩形框會增加目標的冗余區(qū)域,當我們對目標位置進行2D轉(zhuǎn)3D后,會增加測距誤差,因此不適合魚眼鏡頭圖像的目標表示。(b)中的旋轉(zhuǎn)矩形框較好的彌補了標準框的缺陷,但是在魚眼圖像中做外接框的檢測存在畸變因素,所以真實的直線在圖像中是彎曲的,因此旋轉(zhuǎn)矩形框未能表征這一特性。(c)中的外接框形式在旋轉(zhuǎn)矩形框的基礎上引入了圖像畸變特性,能夠較好的表征魚眼圖像中的物體。(d)(e)(f)三種形式均以一定數(shù)據(jù)的點來約束物體輪廓,極端情況就是語義分割。
環(huán)視感知網(wǎng)絡的多任務和單任務之爭的圖2
3 多任務感知系統(tǒng)真的香嗎?

隨著AI技術(shù)的發(fā)展,深度學習越來越多的被應用在各種感知任務中,比如通過雙目或激光雷達得到的真值采用深度學習訓練像素深度:
環(huán)視感知網(wǎng)絡的多任務和單任務之爭的圖3
用深度學習進行相機的失明/圖像的污漬、模糊等失效檢測:
環(huán)視感知網(wǎng)絡的多任務和單任務之爭的圖4
用深度學習進行連續(xù)幀的運動物體分割:
環(huán)視感知網(wǎng)絡的多任務和單任務之爭的圖5
還有深度學習做圖像拼接、學習融合參數(shù)、姿態(tài)識別、去霧去雨去模糊等等應用。在大數(shù)據(jù)的加持,與傳統(tǒng)算法進行各自性能對比可能有一定的提升,但是從融合成多任務的角度來說有以下幾個考慮因素:

  • 融合成多任務的必要性
  • 子任務之間的權(quán)重設置
  • 硬件單元的算力分配
  • 網(wǎng)絡輸入形式的統(tǒng)一性

是否需要神經(jīng)網(wǎng)絡來處理所有視覺任務?

根據(jù)所開發(fā)功能的不同,感知任務也會存在差異。在環(huán)視系統(tǒng)中,由于魚眼相機的有效檢測范圍只有20米以內(nèi),所以可行駛區(qū)域的分割就顯得沒那么重要。

再者相機的失明或圖像的污漬檢測應該在檢測算法之前就對數(shù)據(jù)的有效性進行判斷,而非和目標識別等功能并行輸出。

再比如環(huán)視泊車場景中對車位的距離要求往往精確到厘米級別,采用神經(jīng)網(wǎng)絡進行深度估計很難達到工程要求。

是否用一塊計算單元處理所有感知算法?

如果將所有子任務都放在一個神經(jīng)網(wǎng)絡中進行處理,那么有可能造成算力資源的浪費,許多硬件廠商對外宣稱的芯片算力是各個計算單元的總和,如TDA4x中就包括多塊DSP。從最大化資源利用角度上應該將不同算法分散部署同時運行。

是否能統(tǒng)一多任務網(wǎng)絡的數(shù)據(jù)輸入形式?

雖然很多視覺任務是針對單幀來處理的,但是視角可能存在差異,目標主流的環(huán)視系統(tǒng)中對車位線的檢測是將四顆魚眼采集的圖像拼接成鳥瞰圖后輸入網(wǎng)絡,而障礙物檢測的視角往往是前視圖形式。

4 如何用單任務識別物體和車位?

這里所說的環(huán)視感知系統(tǒng)的單任務僅針對神經(jīng)網(wǎng)絡部分,環(huán)視感知最關(guān)心的是3D障礙物的識別和車位的識別。我們將相機的失明檢測,目標的距離估計,平面的假設方程等任務剝離出神經(jīng)網(wǎng)絡,只關(guān)心障礙物和車位的目標檢測;然后統(tǒng)一輸入數(shù)據(jù)的視角;并在車位線識別中使用檢測方法取締分割任務。

魚眼圖像中如何檢測2.5D或3D的障礙物信息?

首先我們知道在感知系統(tǒng)中,2D框的檢測基本沒有太大的意義,如果無法得到車輛的朝向信息,就無法精確的計算目標車輛距離本車的實際距離。所以煉丹師們一般會考慮在2D框的基礎上增加朝向角的預測是否就可以得到一個2.5D的目標形式了呢?如下圖所示:
環(huán)視感知網(wǎng)絡的多任務和單任務之爭的圖6
以及更加端到端的做法是否可以直接回歸出3D立體框呢?如下圖所示:
環(huán)視感知網(wǎng)絡的多任務和單任務之爭的圖7
當然根據(jù)實際操作經(jīng)驗,直接回歸3D框目前還不太穩(wěn)定,不過基于2.5D的預測在加上后處理等功能已經(jīng)能實現(xiàn)輔助駕駛中L2+的功能需求了。

障礙物的檢測毫無疑問采用魚眼圖像進行處理,但是車位線的檢測是否也能在該視角下進行呢?

讀者可以參考這篇文章:《Real Time Detection Algorithm of Parking Slot Based on Deep  Learning and Fisheye Image》。算法大意分成三步:

  1. 檢測車位的外接框和角點框
  2. 將目標的位置轉(zhuǎn)換到真實3D坐標
  3. 通過車位和角點之間的位置約束過濾結(jié)果
環(huán)視感知網(wǎng)絡的多任務和單任務之爭的圖8
在圖像中檢測到車位和角點后,由于圖像畸變和透視投影的關(guān)系,角點之間的距離無法通過像素坐標直接判斷,所以需要根據(jù)平面模型和相機參數(shù)等外部輸入將2D的像素坐標轉(zhuǎn)換成3D的世界坐標中。

最后通過判斷車位框和角點框的包含關(guān)系以及角點框之間的距離約束過濾掉部分誤檢信息。如下圖所示:
環(huán)視感知網(wǎng)絡的多任務和單任務之爭的圖9

登錄后免費查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP