Abstract
本文主要做了兩件事:
- 用深度學(xué)習(xí)方法模擬經(jīng)典的圖像相似度估計(jì)問題
- 用深度學(xué)習(xí)方法估計(jì)仿射變換參數(shù),以及更為復(fù)雜的thin-plate spline transformation
CNN
handle large changes of appearance between the matched images
經(jīng)典的相似度估計(jì)方法,比如使用SIFT獲取局部特征丟棄不正確的匹配進(jìn)行模糊匹配,然后將模糊匹配的結(jié)果輸入到RANSAC或者Hough transform中進(jìn)行精確匹配,雖然效果不錯(cuò)但是無法應(yīng)對場景變換較大以及復(fù)雜的幾何形變的情況。本文使用CNN提取特征以應(yīng)對這兩點(diǎn)不足。
- 用CNN特征替換原有經(jīng)典特征,即使場景變換很大,也能夠很好的提取特征;
- 設(shè)計(jì)一個(gè)匹配和變換估計(jì)層,加強(qiáng)模型魯棒性。
Architecture
end-to-end
輸入:兩幅圖片
輸出:仿射變換的6個(gè)參數(shù)
這里的思路如下:先用雙路CNN提取兩幅圖片的特征,然后用correlation-layer進(jìn)行融合,這個(gè)過程可以視為模糊匹配,然后進(jìn)入回歸層得到具體預(yù)測出的仿射變換的6個(gè)參數(shù)。
特征提取:
使用雙路CNN,輸入兩幅圖像,權(quán)值共享。
CNN采用VGG-16,L2-norm,fine-tuning ImageNet。
Matching:
我們通過雙路CNN獲取兩幅圖片的feature map:
w,h,d:分別為feature map的長、寬、深度(通道)
在進(jìn)入matching階段前,要把兩路CNN提取到的特征融合為一個(gè)向量,這里使用的方法是correlation-layer。
correlation-layer
fA與fB進(jìn)行點(diǎn)乘得到correlation map ()
原來兩個(gè)w×h的feature map ,每個(gè)1×1×d的向量通過點(diǎn)乘得到w×h×(w×h)這樣一個(gè)立方體。立方體當(dāng)中的每一個(gè)位置(i,j)表示fB中的(i,j)位置的點(diǎn)對應(yīng)fA中所有點(diǎn)的相似度。這里correlation map的深度(w×h)即fA中所有點(diǎn)被展開成k,表示fA中點(diǎn)的索引。
歸一化:
得到correlation map 后對相似度進(jìn)行歸一化,以凸顯相似度高的點(diǎn)。我們使用ReLU+L2Norm進(jìn)行歸一化。為什么選用ReLU呢?考慮這兩種情況:
- 假設(shè)只有一個(gè)匹配點(diǎn)時(shí),會直接將匹配值增大為1
- 假設(shè)有多個(gè)噪聲匹配點(diǎn),使用ReLU會對除了最匹配的點(diǎn)之外的噪聲點(diǎn)降權(quán),提高了模型的魯棒性。
對correlation map歸一化后,我們得到了在進(jìn)入回歸層之前所需要的correspondence map。
使用correlation-layer的原因如下:
- 兩幅圖像的相似度只需要保留其相似性以及空間位置,圖像本身的特征不應(yīng)該被考慮。
假設(shè)有兩對圖像的仿射變換參數(shù)相同,只是圖像內(nèi)容不同,如果考慮feature map的像素信息,那么兩幅圖像進(jìn)入模型后輸出的參數(shù)也將不同; - 如果只是簡單的對兩幅圖中每一個(gè)通道的feature進(jìn)行相加或者相減,如果匹配點(diǎn)相差很遠(yuǎn),這種方法無法獲取正確的相似度。如果使用correlation map+Norm,即使匹配點(diǎn)相差很遠(yuǎn),也能夠凸顯出最為匹配的點(diǎn)。所以這種方法無法應(yīng)對場景大范圍變化的匹配問題;
Regression network
這里要注意的是,進(jìn)入回歸層中要使用卷積層而不是全連接層。因?yàn)閏orrelation map的參數(shù)個(gè)數(shù)是feature map大小的平方,直接用全連接參數(shù)過多將會造成梯度爆炸。
Loss function
使用每個(gè)柵格點(diǎn)經(jīng)過使用預(yù)測參數(shù)和真實(shí)參數(shù)進(jìn)行仿射變換后得到的值之間的距離作為Loss。
Dataset
人工生成數(shù)據(jù)集:
為了避免仿射變換后帶來的圖像的邊界問題,在原始圖中央截取Padded image。
在padded image的中央截取ImageA
對padded image進(jìn)行仿射變換,在中央截取相同大小,獲得ImageB