閱讀筆記(arXiv2016)Deep Image Homography Estimation
深度影象單應性估計
摘要
我們提出了一個深度卷積神經網路來估計一對影象之間的單應性矩陣。我們的前饋網路有10層,將兩個堆疊的灰度影象作為輸入,並生成8個自由度單應矩陣,可用於將畫素從第一個影象對映到第二個影象。我們為HomographyNet提出了兩種卷積神經網路架構:一種直接估計實值單應性引數的迴歸網路,以及產生量化單應性分佈的分類網路。我們使用4點單應性引數化將四個角點從一個影象對映到第二個影象。我們的網路以端到端的方式使用變形的MS-COCO影象進行訓練。我們的方法不需要單獨的區域性特徵檢測和變換估計階段。我們的深層模型與基於ORB特徵的傳統單應性估計器相比較,我們強調了HomographyNet優於傳統技術。我們還描述了深度單應性估計的各種應用,從而展現了深度學習方法的靈活性。
一、簡介
稀疏的二維特徵點是運動和SLAM技術中大多數現代結構的基礎[9]。這些稀疏的二維特徵通常稱為角點,並且在所有幾何計算機視覺任務中,必須平衡角點檢測方法中的誤差與幾何估計誤差。即使是最簡單的幾何方法,如估計兩幅影象之間的單應性,也依賴於容易出錯的角點檢測方法。
從一對影象中估計2D單應性(或投影變換)是計算機視覺中的一項基本任務。單應性是單眼SLAM系統在場景中的重要組成部分:
•僅旋轉運動
•平面場景
•物體離觀察者很遠的場景
眾所周知,圍繞相機中心進行旋轉的兩個影象之間的轉換是單應性的,單應性對於建立全景圖是必不可少的[3]。為了處理平面和大多平面的場景,流行的SLAM演算法ORB-SLAM [14]使用了單應性估計和基本矩陣估計的組合。基於平面結構和單應性的增強現實應用已得到充分研究[16]。使用平面結構的攝像機標定技術[20]也依賴於單應性。
傳統的單應性估計流水線由兩個階段組成:角點估計和穩健單應性估計。通過返回大量且超完整的點集來將魯棒性引入到角點檢測階段,而在單應性估計步驟中的魯棒性表現為重度使用RANSAC或者平方損失函式的魯棒性。由於角點不如人造線形結構可靠,因此研究界已投入了大量精力將線特徵[18]和更復雜的幾何圖形[8]新增到特徵檢測步驟中。我們真正想要的是一個單一的強大演算法,給定一對影象,只需返回與該對相關的單應性。演算法可以學習它自己的一組基元,而不是手動設計角點特徵,線特徵等等。我們希望更進一步,並將變換估計步驟新增為深度學習流水線的最後一部分,從而使我們能夠以端到端的方式學習整個單應性估計流水線。
目前,在密集或直接無特徵SLAM演算法(如LSD-SLAM [6])中的研究表明,將完整影象用於幾何計算機視覺任務是有前途的。同時,深度卷積網路正在設定諸如影象分類,語義分割和人體姿態估計等語義任務的最新基準。另外,FlowNet [7],深度語意匹配 [1]和Eigen等人的多尺度深度網路[5]等最近的工作為密集的幾何計算機視覺任務(如光流和深度估計)提供了有希望的結果。即使像視覺測量這樣的機器人任務也正在用卷積神經網路來解決[4]。
在本文中,我們表明整個單應矩陣估計問題可以通過深度卷積神經網路來解決(見圖1)。我們的貢獻如下:我們為單應性估計任務提供了一個新的VGG樣式[17]網路。我們展示瞭如何使用4點引數化[2]來獲得一個良好行為的深度估計問題。由於深度網路需要大量資料從頭開始訓練,因此我們分享了我們建立看似無限資料集()從現有的真實影象資料集(如MS-COCO資料集)中訓練三聯體。我們提出了單應性估計問題的另一個表示式作為分類,它產生了單應性的分佈,並且可以用來確定估計的單應性的置信度。
二、4點-單應性矩陣引數
引數化單應性的最簡單方法是使用3x3矩陣和固定比例。單應性將左影象中的畫素,對映為右影象中的畫素,並按比例定
義(見公式1)。
然而,如果我們將單應性的8個(或9個)引數展開成單個向量,我們很快就會意識到我們正在混合旋轉和平移項。例如,子矩陣表示單應性中的旋轉項,而向量是平移偏移量。將旋轉和平移術語作為優化問題的一部分進行平衡是很困難的。
我們發現,一種基於單一位置變數的替代引數化,即角點位置更適合我們的深度單應性估計任務,4點引數化已被用於傳統的單應性估計方法[2],而我們在現代的單應性估計問題的深層表現中使用它(見圖2)。 令為第一個角點的偏移量,4點引數化表示如下的單應性 。
等同於單應矩陣制定。4點引數化使用八個數字。一旦知道了四個角點的位移,就可以輕鬆將轉換為。這可以通過多種方式來完成,例如可以使用規範化的直接線性變換(DLT)演算法[9],或OpenCV中的函式getPerspectiveTransform()。
三、資料生成用於單應性估計
從頭開始訓練深度卷積網路需要大量的資料。為了滿足這個要求,我們通過對自然影象的大資料集應用隨機投影變換生成幾乎無限數量的標記訓練樣例。該過程如圖3所示並在下面描述。
為了生成單個訓練樣例,我們首先從位置處的較大影象中隨機剪裁出一個正方形塊(我們避免在資料生成管道中稍後阻止選取邊界的偽像)。這個隨機塊叫做。然後,Patch A的四個角被隨機擾動[-ρ,ρ]範圍內的值。這四個對應關係定義了。然後,將該單應性(的逆)應用於大影象以產生影象。第二個塊從位置處的中裁剪出來。然後兩個灰度塊和被通道疊加以建立,再直接送到我們的ConvNet中的一張雙通道影象。然後將的4點引數化用作相關的真值訓練標籤。
管理訓練影象生成管道使我們可以完全控制要建模的視覺效果種類。例如,為了使我們的方法對運動模糊更具魯棒性,我們可以將這些模糊應用於訓練集中的影象。如果我們希望該方法對遮擋具有魯棒性,我們可以將隨機遮擋形狀插入到訓練影象中。我們嘗試將繪畫中的隨機遮擋矩形放入我們的訓練影象中,作為模擬真實遮擋的簡單機制。
四、ConvNet模型
我們的網路使用帶有BatchNorm [10]和ReLUs的3x3卷積模組,並且在架構上類似於Oxfords 的VGG Net[17](見圖1)。兩個網路都採用輸入大小為128x128x2的雙通道灰度影象。換句話說,通過單應相關的兩個輸入影象以疊加通道的方式並送到網路中。1)我們使用8個卷積層和最大池層(2x2,步幅);2)每兩次卷積後,8個卷積層每層具有以下數量的濾波器:64,64,64,64,128,128,128,128。卷積層之後是兩個完全連線的層。第一個完全連線的層有1024個單元。在最後的卷積層和第一個完全連線層之後應用概率為0.5進行剔除。我們的兩個網路共享相同的架構層,第一個網路產生實值輸出,第二個網路產生離散量(見圖4)。
迴歸網路直接生成8個實數值,並將損失用作訓練期間的最後一層。這種方法的優點是簡單; 然而,對於預測沒有產生任何種類的置信值,這種直接方法在某些應用中可能是禁止的。
分類網路使用量化方案,在最後一層採用softmax操作,我們在訓練期間使用交叉熵損失函式。量化意味著存在一些固有的量化誤差,網路能夠為該方法產生的每個角點產生置信度。我們選擇對8個輸出維度中的每一個使用21個量化庫,這導致最終的圖層有168個輸出神經元。圖6是我們的方法產生的角點置信度的視覺化。注意:所有角點的置信度是不相等。
四、實驗
我們在單個Titan X GPU上使用隨機梯度下降(SGD)以0.9動量訓練我們的兩個網路約8小時。我們使用0.005的基礎學習率,並在每30,000次迭代後將學習率降低10倍。我們使用一種廣受歡迎的開源深度學習軟體包Caffe [11]進行所有實驗。
為了建立訓練資料,我們使用MS-COCO訓練集。所有影象都調整為320x240並轉換為灰度。然後,我們使用第III部分中描述的方法生成500,000對大小為128x128的單應影象塊。我們選擇ρ=32,這意味著128x128灰度影象的每個角點可以被影象邊緣大小的最大四分之一擾動。我們避免較大的隨機擾動來避免極端變換。我們沒有使用任何形式的預訓練;網路的權重被初始化為隨機值並從頭開始訓練。我們使用MS-COCO驗證集來監視過度配合,其中我們發現很少。
據我們所知,沒有大的公開可用的單應性估計測試集,因此我們在我們自己的變形MS-COCO 14測試集上評估我們的單應性估計方法。為了建立這個測試集,我們從測試集中隨機選擇了5000個影象,並將每個影象的大小調整為640x480,然後生成一對大小為256x256的影象塊和相應的單應矩陣,使用方法如圖3所示,ρ= 64。我們將HomographyNet的分類和迴歸變數與兩條基線進行比較。第一個基線是經典ORB [15]描述符+ RANSAC+ getPerspectiveTransform()OpenCV 的Homography計算。我們在傳統的單應性估計器中使用預設的OpenCV引數。這估計了多個尺度的ORB特徵,並使用前25個得分匹配作為RANSAC估計量的輸入。在計算ORB特徵太少的情況下,ORB + RANSAC方法輸出一個標識估計。在ORB+ RANSAC的估計過於極端的情況下,4點單應性估計值被限制在[-64,64]。第二條基線為測試集中的每一對影象使用3x3單位矩陣。
由於HomographyNets需要固定大小的128x128x2輸入,因此在通過網路之前,來自變形MS-COCO 14測試集的影象對的大小從256x256x2調整為128x128x2。 然後將網路的4點引數化單應輸出乘以因子2來解釋這一點。評估分類HomographyNet時,選擇置信度最高的角點位移。
結果報告在圖5中。我們報告每種方法的平均角點誤差。為了測量這個度量,首先計算實際角點位置和估計角點位置之間的距離。 誤差在影象的四個角點取平均值,並在整個測試集上計算平均值。 儘管迴歸網路表現最好,但分類網路可以產生置信度,因此也是一種有意義的方式來對結果進行視覺化除錯。在某些應用中,具有這種確定性的措施可能至關重要。
我們在圖7中對單應性估計進行了視覺化處理。第1列中的藍色方塊通過第III節中描述的過程生成的隨機單應對映到第2列中的藍色四邊形。 綠色四邊形是估計的單應性。 藍色和綠色四邊形越接近,越好。紅線顯示影象塊中ORB功能的最高得分匹配。DeepHomography Estimator的一個類似視覺化顯示在第3列和第4列中。
五、應用
我們的Deep Homography Estimation系統支援各種有趣的應用。 首先,我們的系統速度很快。它在NVIDIA Titan X GPU上執行速度超過300fps,批量大小為1(即實時推理模式),這使得大量應用程式無法用於較慢的系統。最近出現的深度網路專用嵌入式硬體將使許多嵌入式系統或平臺上的應用程式具有有限的計算能力,而這些嵌入式系統或平臺無法承受昂貴而耗電的桌面GPU。這些嵌入式系統能夠實時執行更大的網路,如AlexNet [12],並且執行相對輕量級的HomographyNets應該沒有問題。
其次,通過將單應性估計作為機器學習問題,可以構建應用特定的單應性估計引擎。例如,通過單應性估算使用平面SLAM導航室內工廠車間的機器人可以僅利用從室內工廠的機器人影象感測器捕獲的影象來訓練。 儘管可以優化諸如ORB的特徵檢測器以在特定環境中工作,但這並不簡單。環境和感測器特定的噪聲,運動模糊和可能限制單應效能的遮擋估計演算法可以使用ConvNet以類似的方式處理。其他經典的計算機視覺任務,如影象鑲嵌(如[19])和無標記攝像機跟蹤系統(增強現實)(如[16])也可以受益於HomographyNet訓練從目標系統的感測器和環境建立的影象對。
六、總結
在本文中,我們解答了最重要的計算機視覺估計任務之一,即單應性估計是否可以作為學習問題。我們介紹了兩種卷積神經網路體系結構,能夠很好地完成這項任務。端到端訓練管道包含兩個其他的見解:使用4個角點引數化單應性,使引數化座標以相同比例操作,並使用大量的真實影象集合,以綜合方式建立看起來無限大小的訓練集為單對估計。我們希望通過學習正規化解決視覺中更多的幾何問題。