從單目視覺信息學習深度信息(一)

現實生活中,除了人本身有兩隻眼睛可以通過雙目視覺信息獲取深度信息,我們很難方便的有如此穩定和精確的雙目系統來測深度。最近接觸到了AR.Drone的無人機,開放接口這種事情最喜歡了,似乎可以用深度信息來控制無人機的運動,不過介於無人機只有單目攝像頭的限制,不得不轉換思維,開始蒐集論文研究如何用單目視覺信息來獲取深度。

提取單目視覺信息的方式可以包括兩種,基於靜止的單張圖像和基於運動的多張圖像。

這篇是之前看了Andrew N.g.的05年ICML論文(High Speed Obstacle Avoidance using Monocular Vision and
Reinforcement Learning (ICML,2005)
),做了一次組會分享的內容,希望基於此啓發感興趣的童鞋,之後會做更多方法和實驗的跟進。


problem

論文裏解決的是玩具車的無人導航系統問題,實驗提出的假設如上圖所示:
1、玩具車行駛速度一般在5m/s,所以1s內發給玩具車的命令必須保證選擇5m內沒有障礙的方向行駛,當然可能1s內已經有多次計算,很多指令發出,這基於算法和圖像傳輸效率。
2、外界環境是不規則的,論文在訓練參數的時候所在的環境是一個灌木叢生,葉子隨處可見,偶爾還有石凳的小花園,視覺系統的參數被訓練好(論文裏還使用了合成圖像加入到訓練數據裏)之後,測試也同樣是在這個花園,鄙人以爲似乎有對環境建模的嫌疑。
3、實驗採用了當下比較常見的硬件,包括攝像頭和小型動力機。4、整個自動化控制系統是基於視覺處理和行車控制系統來完成的。

motivation

我們知道雙目視覺系統,是通過左右兩個對齊的攝像機的成像結果,基於極限約束計算視差圖,再由幾何關係得到深度數據的,但是這樣做的侷限是:1、兩個攝像機的位置距離限制了深度數據的獲取。2、由於抖動等不穩定因素使得兩個攝像機的對齊困難。所以論文開始探索從單目視覺獲取相關信息。

approach

上圖是這個方法的系統結構。參數訓練好後,玩具車上的照片獲取到圖片,依次傳到電腦上的視覺系統處理,輸出在視野中每個方向的預測深度,到行車控制系統,輸出導航命令(之間可能會通過一些控制動力機的底層操作系統接口來發出指令),從而玩具車按照指定的方向行動。

trainningdata

鄙人自認爲才疏學淺,對於Driving Control的部分沒有深入研究,如果有對此部分感興趣的童鞋,可以
瞭解一些 model based reinforcement learning 的相關算法。本篇主要是對單目視覺系統的研究,今後也會陸續有其他相關算法和實驗,無人機!俺來也!
上圖簡單描述了論文裏採集訓練數據的方法:
1、採集數據時使用了攝像頭拍攝彩色圖像和激光掃描儀測實際距離同時進行。
2、所有彩色圖像被分割成16段豎條,每段都代表了可能的導航方向。
3、激光掃描儀對視野中的物體橫向掃描,獲取一維數據(這個數據應該調整到與相應圖像中的16段數據對應,並且選取最近的深度距離作爲圖像每段數據的標籤)。

monocularcures

一張靜止的圖像,有什麼信息可以推測物體深度呢?上圖說明了論文中提出的一些信息:紋理灰度變化和霧度,紋理梯度變化,物體的大小和遮擋,圖片的整體信息。如上圖所示,圖片被分割成16段豎條,每段又用11個以50%重疊的窗口覆蓋,每個窗口提取上述特徵信息(論文裏用到的是Laws灰度變化檢測,Harris角點檢測,Radon邊緣檢測的方法,在之後會詳細說明,這篇我們先做基本的描述)。
假設每個窗口的特徵維度是n,那麼一段豎條(stripe)的特徵維度是11xn,爲了讓特徵能描述到整體的結構,論文中加入左右兩邊stripe的特徵,所以最終一個stripe的特徵維度是3x11xn。

下面說說爲什麼採用這些特徵。


texture

圖片紋理的灰度變化表達了圖片的能量:變化越頻繁,能量越大,比如上圖兩個黃色矩形框的內容,左邊的就右邊的能量低,用斑點濾波和邊緣濾波器可以得到這些特徵。霧度顧名思義,就是起霧的程度,我們在現實生活中應該有所體會,放眼望去,越被霧氣籠罩的部分往往越遠離我們,用灰度均值濾波器可以檢測到這種特徵。

gradiant

紋理的梯度變化包含了灰度變化的方向和這些方向的密度,比如上圖離我們近的瓷磚,變化比較稀疏,離我們遠的變化就比較密集,右邊的羣山圖也是同樣的道理,藝術家們常用這種方法讓人有種處在三維空間的錯覺。
論文對Harris角點檢測方法進行改進,不是以前的比較灰度梯度變化方差矩陣的特徵值相對大小,而是直接統計不同角度的特徵向量對應的特徵值,從而得到多個方向上灰度變化情況的分佈。對與Radon變化也做了改進,找到最顯著的直線的方向,加入紋理梯度變化的特徵集合。

occlusion

物體的空間分佈也告訴我們很多信息。如圖中桌球相互遮擋,前面的球能依次遮住後面的球。如果我們知道桌球的大小,那麼在這個圖中不同位置的桌球的不同大小也說明了其離我們的遠近。這兩種特徵在論文中都用上文提到的整體結構信息描述方法來概括了,在Andrew N.g.的其他論文裏還建立了同一圖片,不同分辨率的之間的關係,能更好的表達整體信息。

learning

現在我們將一張靜止圖片中,每段豎條(代表可能的導航方向)的特徵信息和實際深度(在這個導航方向上與小車最近的障礙物的距離)建立線性迴歸方程,特徵的每一維都有相應的參數,優化參數使得通過方程預測得到的深度,和實際深度的均方誤差和最小。這個過程的求解是可以通過僞逆矩陣直接計算,不用像線代課程裏所講的梯度下降法反覆迭代來求最優解。

result

論文的這部分實驗,把不同特徵分成不同的特徵集合,得到的預測深度和實際深度的誤差期望(用對數是爲了突出乘積誤差,弱化加法誤差),目前鄙人的實驗還在進行中,和論文的數據跑出的結果基本接近,所以接下來可能嘗試,用其他環境的數據來檢驗這個算法。

做完小組分享後,發現論文裏的特徵對環境依賴性很強,似乎還可以用現在很流行的深度學習算法來預測深度,不過事情要一步一步的做,重在學習過程是吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章