無人駕駛的感知部分作為計算機視覺的領域范圍,也不可避免地成為CNN發(fā)揮作用的舞臺。本文是無人駕駛技術系列的第八篇,深入介紹CNN(卷積神經(jīng)網(wǎng)絡)在無人駕駛3D感知與物體檢測中的應用。
CNN簡介卷積神經(jīng)網(wǎng)絡(ConvoluTIonal Neural Network,CNN)是一種適合使用在連續(xù)值輸入信號上的深度神經(jīng)網(wǎng)絡,比如聲音、圖像和視頻。它的歷史可以回溯到1968年,Hubel和Wiesel在動物視覺皮層細胞中發(fā)現(xiàn)的對輸入圖案的方向選擇性和平移不變性,這個工作為他們贏得了諾貝爾獎。時間推進到上世紀80年代,隨著神經(jīng)網(wǎng)絡研究的深入,研究人員發(fā)現(xiàn)對圖片輸入做卷積操作和生物視覺中的神經(jīng)元接受局部recepTIve field內(nèi)的輸入有相似性,那么在神經(jīng)網(wǎng)絡中加上卷積操作也就成了自然的事情。當前的CNN相比通常的深度神經(jīng)網(wǎng)絡(DNN),特點主要包括:
一個高層的神經(jīng)元只接受某些低層神經(jīng)元的輸入,這些低層神經(jīng)元處于二維空間中的一個鄰域,通常是一個矩形。這個特點受到生物神經(jīng)網(wǎng)絡中recepTIve field的概念啟發(fā)。
同一層中不同神經(jīng)元的輸入權重共享,這個特點可以認為是利用了視覺輸入中的平移不變性,不光大幅度減少了CNN模型的參數(shù)數(shù)量,還加快了訓練速度。
由于CNN在神經(jīng)網(wǎng)絡的結構上針對視覺輸入本身特點做的特定設計,所以它是計算機視覺領域使用深度神經(jīng)網(wǎng)絡的不二選擇。在2012年,CNN一舉打破了ImageNet這個圖像識別競賽的世界紀錄之后,計算機視覺領域發(fā)生了天翻地覆的變化,各種視覺任務都放棄了傳統(tǒng)方法,啟用了CNN來構建新的模型。無人駕駛的感知部分作為計算機視覺的領域范圍,也不可避免地成為CNN發(fā)揮作用的舞臺。
無人駕駛雙目3D感知在無人車感知中,對周圍環(huán)境的3D建模是重中之重。激光雷達能提供高精度的3D點云,但密集的3D信息就需要攝像頭的幫助了。人類用兩只眼睛獲得立體的視覺感受,同樣的道理能讓雙目攝像頭提供3D信息。假設兩個攝像頭間距為B,空間中一點P到兩個攝像頭所成圖像上的偏移(disparity)為d,攝像頭的焦距為f,那么我們可以計算P點到攝像頭的距離為:
所以為了感知3D環(huán)境得到z,需要通過雙目攝像頭的兩張圖像I_l和I_r得到d,通常的做法都是基于局部的圖片匹配:
由于單個像素的值可能不穩(wěn)定,所以需要利用周圍的像素和平滑性假設d(x,y)≈d(x+α,y+β)(假設α和β都較?。郧蠼鈊變成了一個最小化問題:
這和opTIcal flow任務想要解決的是非常類似的問題,不過是(Il,Ir)變成了(It ,It+1),所以下面將要介紹的算法,兩者都適用。
MC-CNN現(xiàn)在來看看Matching-Cost CNN算法,這個算法使用了一個CNN來計算上式的右側matchingcost,MC-CNN的網(wǎng)絡結構見圖1。
圖1 MC-CNN的網(wǎng)絡結構
這個網(wǎng)絡的輸入是兩個圖片的一小塊,輸出是這兩塊不匹配的概率,相當于一個cost函數(shù),當兩者匹配時為0,不匹配時最大可能為1。通過對一個給定的圖片位置搜索可能的d取值,找到最小的CNN輸出,就得到了這一點局部的偏移估算。MC-CNN算法接下來做了如下后期處理:
Cross-based cost aggregation:基本思想是對鄰近的像素值相似的點的偏移求平均,提高估計的穩(wěn)定性和精度。
Semi-global matching:基本思想是鄰近的點的平移應該相似,加入平滑約束并求偏移的最優(yōu)值。
插值和圖片邊界修正:提高精度,填補空白。
最終算法效果如下:
圖2 MC-CNN的算法效果
MC-CNN雖然使用了CNN,但僅限于計算匹配程度,后期的平滑約束和優(yōu)化都是必不可少的,那有沒有可能使用CNN一步到位呢?FlowNet就是這樣做的。