Deep Image Homography Estimation

在知乎問題:深度學習應用在哪些領域讓你覺得「我去,這也能行!」?中遇到一篇來自CVPR 2016的文章《Deep Image Homography Estimation》,感覺對自己幫助很大,所以記錄在這裏。

之前自己也在思考如何利用神經網絡實現圖像的配準,沒思考出什麼結果來。大部分的深度學習中使用的是單幅圖像進行訓練,如果輸入的是變形圖像和參考圖像,其實可以借鑑圖像匹配的網絡,但是還是不清楚具體如何進行。甚至開始懷疑配準的意義,既然都有一幅ground truth了,爲什麼不直接使用而需要將另外一幅進行配準。最後這個問題後來想通了:配準指的是形態配準到一致,但在異源圖像的融合中,還需要兩幅圖像之間的互補信息才能得到更多的有效信息。剩下的問題在這篇文章中給出了一些思路。

總的來說,這篇文章的創新點主要有兩個,一個是如知乎回答中的,將神經網絡與圖像處理的專業知識結合起來了,不再是使用一個黑箱直接得到結果,而是使用神經網絡得到一箇中間變量Homography,再使用Homography進行配準,而不必再將特徵點檢測和變換估計分開,因爲傳統的方法是先使用ORB等特徵點檢測找到一些角點,然後再使用RANSAC等方法進行變換矩陣的估計。因爲關於Homography的研究其實已經很成熟了,只要是共面變換,就可以使用Homography單應矩陣描述圖像之間的變換。文章中提到Homography的應用場景有三個:只有旋轉的變換;平面場景;離觀察者很遠的場景。這三種條件正如之前博客中對於Homography的分析。

還有一個創新點我認爲是作者以一種很簡單的方式建立了訓練樣本並且得到了真正的Homography。作者藉助了圖像集MS-COCO(Microsoft COCO: Common Objects in Context)構建自己的訓練樣本。

首先Homography有8個自由度(8-dof),所以理論上只需要4對匹配點就可以估計出單應矩陣。所以參考圖像就是在圖像樣本中隨機裁剪得到一個128x128大小的圖像patch A,然後對於圖像的四個頂點座標的x,y值分別在[-p,p]範圍內進行偏移(偏移最大值爲128的四分之一),於是就得到了一個變形的綠色的框B,並且可以得到A到B之間的變換矩陣HAB作爲ground-truth training label。但是在訓練網絡中我們希望變形圖像和參考圖像都是大小一樣的正方形,所以我們藉助HAB矩陣的逆矩陣,將原圖變形,同時將綠框恢復爲正方形,對應Step4,Step4中的圖像中的綠框就是變形圖像B。A和B都是灰度圖,二者構建一個2通道的圖像作爲網絡的輸入。關於2通道圖像在神經網絡中的訓練,可以參考這個博客

此外,還可以人爲地在訓練集上做一些模糊等處理來增強網絡的魯棒性。

關於網絡的一些細節

常規操作:使用3x3的卷積模板,使用BatchNorm歸一化,使用ReLU作爲激活函數。整個網絡的結構和Oxford VGG很相似,整個網絡有10層,其中有8個卷積層,兩個全連接層,每兩個卷積層後面跟一個最大池化層,在最後一個卷積層和第一個全連接層之間還有一個Dropout,Dropout以0.5的概率隨機丟棄神經元,避免過擬合。

在此基礎上,其實作者提出了兩個結構,一個是迴歸網絡regression network,直接估計出Homography矩陣的參數值;一個是分類網絡classification network,輸出對於量化矩陣的分佈函數produces a distribution over quantized homographies.

可以看到,兩種網絡只有最後一層是不同的。

迴歸網絡在訓練時最後一層使用的是L2 損失函數。這種方法的優點是計算簡單,然而,沒有計算出預測值的置信度confidence,這在某些應用中是不允許的prohibitive。

分類網絡在最後一層使用的是softmax分類器訓練時使用交叉熵cross entrop作爲損失函數。文章中使用了量化方法,我的理解是這樣的:文章首先將對單應矩陣的預測轉換成對4對匹配點的預測,具體形式是橫縱座標的偏移量(對應於測試樣本的構建),4個點對的偏移量構成的矩陣和單應矩陣是一一對應的。

所以,量化就是把當前點坐按概率分配給對應點。因爲會產生量化誤差,所以對每一個角點會生成一個關於偏移量的分佈函數。

X和y座標都可以在正向和負方向偏移。對8個維度,每個維度用21bins量化,這樣輸出就是168個神經元。

怎麼實驗的

實驗使用了Titan X GPU進行訓練,耗時8小時,使用了隨機梯度下降法,動量momentum是0.9,學習率是0.005,每30000次迭代進行因子爲10的下降。Batch size是64,total iteration爲90000.使用Caffe深度學習框架。網絡參數的初始值爲隨機值。

測試集和訓練集的生成方法類似,只不過圖像更大,patch也更大(256x256).因爲在patch是128x128時,ORB檢測出的特徵點過少,而神經網絡沒有這個問題。因爲網絡的輸入必須是固定大小的,所以測試時的patch必須進行因子爲2的下采樣,在計算得到homography時再乘2.

作者將HomographyNet的兩個版本回歸和分類網絡與兩個baseline進行了比較。一個baseline是ORB特徵點檢測+RANSAC+OpenCV中的getPerspectiveTransform函數的方法;一個baseline是對於測試集中的圖像對使用單位矩陣identity matrix。ORB方法的效果與特徵點的數目有關:In scenarios where too few ORB features are computed, the ORB+RANSAC approach outputs an identity estimate. In scenarios where the ORB+RANSAC’s estimate is too extreme, the 4-point homography estimate is clipped at [-64,64].

下圖是實驗結果。評價指標是對應點之間的平均距離。

可以看到迴歸的方法效果最好,但是分類的方法可以得到置信度,且可以可視化地糾正實驗結果,在某些應用中是有優勢的。

作者總結了這個系統的兩個優勢,一個是速度快,藉助英偉達的泰坦顯卡,可以實現每秒處理300幀的圖像,with a batch size of one。第二,將計算機視覺中最基礎的單應矩陣的估計問題轉化爲機器學習的問題,可以針對應用情景如使用SLAM的室內導航機器人做特定優化。事實上,單應矩陣在圖像拼接,ORB-SLAM算法和Augmented Reality(AR),相機標定中都有很重要的應用。這篇文章的三個作者都來自Magic Leap公司,一家做AR的公司,已經得到了Google和阿里巴巴等公司是十幾億美金的投資。

Reference:

https://blog.csdn.net/ajing2014/article/details/53998866

 

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