發(fā)布時間:2020-03-18
瀏覽次數:493
自動駕駛感知模塊中傳感器融合已經成為了標配,只是這里融合的層次有不同,可以是硬件層(如禾賽,Innovusion的產品),也可以是數據層(這里的討論范圍),還可以是任務層像障礙物檢測(obstacle detection),車道線檢測(lane detection),分割(segmentation)和跟蹤(tracking)以及車輛自身定位(localization)等。
有些傳感器之間很難在底層融合,比如攝像頭或者激光雷達和毫米波雷達之間,因為毫米波雷達的目標分辨率很低(無法確定目標大小和輪廓),但可以在高層上探索融合,比如目標速度估計,跟蹤的軌跡等等。
這里主要介紹一下激光雷達和攝像頭的數據融合,實際是激光雷達點云投影在攝像頭圖像平面形成的深度和圖像估計的深度進行結合,理論上可以將圖像估計的深度反投到3-D空間形成點云和激光雷達的點云融合,但很少人用。原因是,深度圖的誤差在3-D空間會放大,另外是3-D空間的點云分析手段不如圖像的深度圖成熟,畢竟2.5-D還是研究的歷史長,比如以前的RGB-D傳感器,Kinect或者RealSense。
這種融合的思路非常明確:一邊兒圖像傳感器成本低,分辨率高(可以輕松達到2K-4K);另一邊兒激光雷達成本高,分辨率低,深度探測距離短。可是,激光雷達點云測距精確度非常高,測距遠遠大于那些Infrared/TOF depth sensor,對室外環(huán)境的抗干擾能力也強,同時圖像作為被動視覺系統(tǒng)的主要傳感器,深度估計精度差,更麻煩的是穩(wěn)定性和魯棒性差。所以,能不能把激光雷達的稀疏深度數據和致密的圖像深度數據結合,形成互補?
另外,稀疏的深度圖如何upsample變得致密,這也是一個已經進行的研究題目,類似image-based depth upsampling之類的工作。還有,激光雷達得到的點云投到攝像頭的圖像平面會發(fā)現,有一些不反射激光的物體表面造成“黑洞”,還有遠距離的街道或者天空區(qū)域基本上是沒有數據顯示,這樣就牽涉到另一個研究題目,image-based depth inpainting / completion。
解決這個問題的前提是,激光雷達和攝像頭的標定和同步是完成的,所以激光雷達的點云可以校準投影到攝像頭的圖像平面,形成相對稀疏的深度圖。
我們分析的次序還是先傳統(tǒng)方法,后深度學習方法,最近后一種方法的文章2017年以后逐漸增多。筆者開始這方面工作是恰恰是2017年,非常榮幸地發(fā)現當時發(fā)表的學術論文和自己的方向非常接近,并且筆者在這些論文公開化之前已經申請了多個專利。
首先,把任務看成一個深度圖內插問題,那么方法類似SR和upsampling,只是需要RGB圖像的引導,即image-guided。
實現這種圖像和深度之間的結合,需要的是圖像特征和深度圖特征之間的相關性,這個假設條件在激光雷達和攝像頭傳感器標定和校準的時候已經提到過,這里就是要把它應用在pixel(像素)/depel(深度素)/surfel(表面素)/voxel(體素)這個層次。
基本上,技術上可以分成兩種途徑:局部法和全局法。這樣歸納,看著和其他幾個經典的計算機視覺問題,如光流計算,立體視覺匹配和圖像分割類似。
是否還記得圖像濾波的歷史?均值濾波-》高斯濾波-》中值濾波-》Anisotropic Diffusion -》Bilateral濾波(等價于前者)-》Non Local Means濾波-》BM3D,這些都是局部法。那么Joint Bilateral Filtering呢,還有著名的Guided image filtering,在這里都可以發(fā)揮作用。
這是一個例子:bilateral filter
再看一個類似的方法:guided image filtering
還有上述方法的改進型:二次內插,第一次是在殘差域內插,第二次是應用前面的guided image filtering方法。
特別需要說一下,最近有一個方法,采用傳統(tǒng)形態(tài)學濾波法,性能不比深度學習CNN差,不妨看一下它的流程圖:有興趣可以搜搜 “In Defense of Classical Image Processing: Fast Depth Completion on the CPU“,其結果和CNN方法的比較也附上。
全局法,自然就是MRF,CRF,TV(Total variation),dictionary learning 和 Sparse Coding之類。下面為避免繁瑣的公式拷貝,就直接給出論文題目吧。
下一個是“Image Guided Depth Upsampling using Anisotropic Total Generalized Variation“:采用TV,傳感器雖然是ToF,激光雷達也適用。接著一個是“Semantically Guided Depth Upsampling”:引入語義分割,類似depth ordering。
如果把稀疏深度圖看成一個需要填補的問題,那么就屬于另外一個話題:image-guided depth inpainting/completion,這方面的技術基本都是全局法,比如“Depth Image Inpainting: Improving Low Rank Matrix Completion with Low Gradient Regularization“:
有一類方法,將激光雷達點云投影到圖像平面的點作為prior或者"seed",去修正圖像的深度估計過程,這就好比一個由激光雷達點云投影到圖像上的稀疏點構成的網格(grid),去指導/約束雙目圖像匹配。
下面這個方法將Disparity Space Image (DSI)的視差范圍縮小:
如圖方法結合激光雷達點云的投影和立體匹配構成新的prior:
下面介紹深度學習的方法。
從2017年開始,這個方面的應用深度學習的論文開始多起來了,一是自動駕駛對傳感器融合的重視提供了motivation,二是深度學習在深度圖估計/分割/光流估計等領域的推廣應用讓研究人員開始布局著手多傳感器融合的深度學習解法。
筆者看到的這方面公開的第一篇論文應該是2017年9月MIT博士生Fangchang Ma作為第一作寫的,“Sparse-to-Dense: Depth Prediction from Sparse Depth Samples and a Single Image“。其實第一篇公開的論文是在2017年8月,來自德國Andreas Geiger研究組的論文在International Conference on 3D Vision (3DV)發(fā)表,“Sparsity Invariant CNN”。
他們開拓性的工作使Kitti Vision Benchmark Suite啟動了2018年的Depth Completion and Prediction Competition,不過MIT獲得了當年Depth Completion的冠軍。幾天前(2019年2月)剛剛公開的最新**論文,是來自University of Pennsylvania的研究組,“DFuseNet: Fusion of RGB and Sparse Depth for Image Guided Dense Depth Completion”。
先說Sparsity Invariant CNN。輸入是深度圖和對應的Mask圖,后者就是指激光雷達投影到圖像平面有值的標志圖,為此設計了一個稱為sparse CNN的模型,定義了sparse convolution的layer:
結果想證明這種模型比傳統(tǒng)CNN模型好:
再回頭看看MIT的方法。一開始還是“暴力”方法:其中針對KITTi和NYU Depth(室內)設計了不同模型
結果看上去不錯的:
差不多一年以后,監(jiān)督學習RGB到深度圖的CNN方法和利用相鄰幀運動的連續(xù)性約束self-learning方法也發(fā)表了,憑此方法MIT獲得了KITTI比賽的冠軍:
一個同時估計surface normals 和 occlusion boundaries的方法如下,聽起來和單目深度估計很相似的路數,“Deep Depth Completion of a RGB-D Image“:
這是AR公司MagicLeap發(fā)表的論文,“Estimating Depth from RGB and Sparse Sensing“:模型稱為Deep Depth Densification (D3),
它通過RGB圖像,深度圖和Mask圖輸入生成了兩個特征圖:二者合并為一個feature map
看看結果: