論文閱讀——D2-Net: A Trainable CNN for Joint Description and Detection of Local Features

一、概述

??作為近兩年detector和descriptor joint learning(也稱one-stage)類型論文的又一代表,D2-Net是一種相當特別的結構。其特點是“一圖兩用”,即網(wǎng)絡預測出的dense tensor即是detection score maps骡送,又是description map特征圖即代表特征檢測結果又代表特征描述結果(注意預測的特征圖并不是原圖分辨率大邪菪А)。換句話說各谚,D2-Net的特征檢測模塊和描述模塊是高度耦合的。

??本文主要針對的是appearance變化較大(包括日-夜變化到千、大的視角變化等)場景下的圖像匹配任務昌渤。文章作者比較了兩種局部特征學習方法:sparse方法和dense方法。其中sparse方法高效憔四,但是在appearance變化大的場景提取不到可重復的關鍵點膀息,其原因在于特征提取器只使用淺層圖像信息,不使用語義信息了赵;dense方法則直接利用深層特征提取密集特征描述潜支,更加魯棒卻以更高的匹配時間和內存開銷為代價。

??因此作者的目的在于柿汛,提出一種足夠魯棒的sparse local feature冗酿,讓其提取的特征(興趣點)具有更好的repeatability,進而實現(xiàn)既有sparse方法的高效性络断,又有dense方法的魯棒性裁替。其核心idea是將特征提取階段延后,使得局部特征也可以利用高層語義信息貌笨,而不是只考慮低層信息弱判。


問題:關于這里的sparse和dense方法

  1. 作者這里提到sparse方法的缺陷是keypoint不夠可重復,因為這些sparse feature提取時只考慮圖像低層特征锥惋。但是這段又沒給參考文獻昌腰,所以本文究竟是針對哪些論文做的改進呢?近幾年的local feature并不會像作者說的那樣“only consider small low-level information like image regions”鞍虻遭商?難道是針對SIFT為代表的的傳統(tǒng)方法的缺陷嗎?看到下面評估部分也有和SuperPoint對比捅伤,那SuperPoint也有這個缺陷嗎株婴?

  2. dense方法這幾篇文獻沒讀過,但是作者說這些方法“跳過檢測直接提取密集描述子的方法”暑认,這還是圖像匹配嗎困介?

    答:閱讀了下UCN的論文,發(fā)現(xiàn)所謂密集匹配方法就是直接對輸入兩圖(A,B)預測特征然后在特征空間上進行最近鄰搜索等方法蘸际,預測出特征之間的稠密關聯(lián)座哩,簡單理解就是已知圖像A上的關鍵點就是每個像素點,然后要求它們在圖像B上的對應位置(理解的不一定準確)粮彤。


關鍵詞:A single CNN plays a dual role; joint optimization; different train/test model structure

二根穷、方法

2.1 模型結構設計

??不同于SuperPoint或者SEKD姜骡,本文雖然也是dense prediction類型的結構,但并不同時預測kpt和description兩個圖屿良,而是只預測了一個形狀為HxWxd(d為特征描述的長度)的特征圖圈澈,然后既作描述結果又作檢測結果…從spatial維度來說,該特征圖的每個像素位置是一個描述子尘惧;從channel維度來說康栈,每一個通道代表一個特征檢測器的檢測結果,總共得到d個2D響應圖喷橙,這里可以用SIFT中的高斯差分金字塔響應來類比啥么。

??后續(xù)的興趣點提取需要對這個d通道的特征圖做進一步的后處理:

??按照上面對D2特征圖的定義,如果(i,j)位置是一個興趣點贰逾,則從通道維度來說該像素位置最終的檢測結果肯定要取檢測器響應值最大的通道對應數(shù)值悬荣,這樣就選出了通道;從空間維度來說又要滿足該位置在該通道的2D map必須為一個局部最大值疙剑。即本文中的"hard feature detection":

??首先對輸入圖像構建圖像金字塔氯迂,然后在每個scale上進行forward,得到D2特征圖言缤,再把多尺度特征圖逐scale上采樣并與同分辨率融合(見下式)囚戚,得到融合后的特征圖。預測階段根據(jù)融合特征圖進行上述后處理轧简,即可提取出特征點驰坊。

??由于上述特點,網(wǎng)絡結構本身發(fā)非常簡單哮独,直接用VGG16 conv4_3之前的部分拳芙,恢復ImageNet上的預訓練權重,然后除了最后一層conv4_3之外全部凍結皮璧,只對該層做微調舟扎。不過關于模型,有兩個值得注意的地方:

??1.使用VGG16的結果比ReseNet好很多
??2.訓練時和測試時的模型結構不同
??具體來說悴务,在測試階段為了提高特征的分辨率睹限,將pool3改成一個stride為1的avg pool,隨后的三層conv dilation ratio調整為2讯檐,以維持相同的感受野羡疗。作者解釋是說訓練時為了減小內存使用比較小的特征分辨率,測試時為了提高特征定位能力别洪,將分辨率提升到原圖的1/4叨恨,并加上了一個類似SIFT中使用的局部特征提煉,然后將特征插值上采樣到原分辨率挖垛。

??不過訓練過程不能用上面的hard feature detection痒钝,因為其不可微秉颗。故作者提出了一個soft的版本,其設計思想就是模仿hard方法的通道選擇和空間位置選擇(即通道內的局部最大值):

??對于空間位置選擇送矩,作者會對特征圖的每個像素求一個α(i,j)蚕甥,得到α map(shape為[h,w,d]):

??其中N(i,j)代表以(i,j)為中心的9-鄰域。因此可見這里的局部最大值其實是在3x3區(qū)域內的最大值栋荸,而不是式(3)中寫的那樣菇怀,整個通道只輸出一個最大值。

??對于通道選擇蒸其,直接計算一個ratio-to-max得到β圖(shape為[h,w,d]):

??根據(jù)kpt的定義,score map s就應該是α map和β map的乘積map在通道維度求最大值的結果库快。最后再做一個歸一化:(問題:這個歸一化讓score map的像素值之和為1是什么意思摸袁?score map不應該用sigmoid之類的轉為0-1之間的分布比較合理嗎?)

??關于這部分還要考慮一個問題义屏,為什么D2-Net需要在訓練中提取興趣點靠汁?(比如R2D2等結構,都是直接針對kpt score map做優(yōu)化闽铐,只有實際預測時才需要根據(jù)score map提取特征點這個步驟)

??答:這個問題的理解是不正確的蝶怔,訓練中并不是提取興趣點,而是在得到”single score map"兄墅。上面的hard feature detection相當于NMS的過程踢星,輸出的是稀疏的興趣點位置坐標;而訓練檢測模塊需要hxw的score map隙咸,故先要把hxwxd的特征圖經過一個可微的步驟沐悦,處理后得到該score map。

2.2 聯(lián)合優(yōu)化目標函數(shù)設計

①triplet margin ranking loss(只考慮描述子)

??訓練描述子其實沒有太多不一樣的地方五督,就是根據(jù)輸入pair的correspondences藏否,將每一個匹配對c視為正對,不匹配對為負對充包,對構成的三元組進行訓練副签。主要問題是如何根據(jù)當前匹配對c構建最有意義的負對。作者這里用了一個基于鄰域的困難樣本挖掘策略基矮,假如當前匹配為下圖的點A和點B淆储,那么分別在I1和I2扣去A\B鄰域的區(qū)域找負對,并分別與B的描述子dB、A的描述子dA進行比較粥脚,找到所有這種負對中相似度最小的逐纬,與c構建三元組。

??以下p(c)和n(c)分別代表正對距離和負對距離灌具。m(c)代表當前匹配c的triplet loss青团。

②加入描述子優(yōu)化的triplet margin ranking loss

??由于D2特征即代表興趣點score map也代表描述子,本文的優(yōu)化需要對檢測和描述進行聯(lián)合優(yōu)化咖楣。作者在triplet margin ranking loss基礎上加入了提升檢測結果可重復性這一優(yōu)化目標督笆,具體實現(xiàn)方法是:利用輸入兩圖像中所有correspondences的檢測得分來對當前匹配計算出的triplet loss進行加權平均,如果當前匹配triplet loss很低(即該對匹配的距離遠小于其各自的最難負對)诱贿,則為了最小化loss娃肿,這一對triplet loss小(即區(qū)分度高)的correspondence自然要給更大的權值珠十;其他triplet loss大的correspondence就給小點的權值料扰。

??感覺文中式(13)的符號有點confusing,m(p(c),n(c))直接寫成,m(c)可能更加簡潔焙蹭。

三晒杈、評價

  1. 本文核心idea是將特征提取延后,使用網(wǎng)絡提取的深層特征進行后處理孔厉,得到用于檢測kpt的score map拯钻。與此同時作者發(fā)現(xiàn)提取到的特征也可以順便作為描述子,故提出了這種“一圖兩用”撰豺,聯(lián)合優(yōu)化的結構
  2. 本文論文的比較簡單粪般,但是給出的代碼實現(xiàn)非常整齊。
  3. D2-Net測試階段為了獲得更高的分辨率污桦,將訓練的網(wǎng)絡結構進行修改(通過減小pool stride和增大conv dilate rate維持感受野)亩歹,使得測試時可以正常加載訓練的權重,且特征分辨率更高凡橱。這種操作感覺很有創(chuàng)意捆憎,之前沒有遇到過。
  4. 作者在實驗階段嘗試用預訓練好的resnet作為backbone梭纹,但是結果比vgg差不少躲惰,這個也比較奇怪。
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末变抽,一起剝皮案震驚了整個濱河市础拨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绍载,老刑警劉巖诡宗,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異击儡,居然都是意外死亡塔沃,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門阳谍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蛀柴,“玉大人螃概,你說我怎么就攤上這事「爰玻” “怎么了吊洼?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長制肮。 經常有香客問我冒窍,道長,這世上最難降的妖魔是什么豺鼻? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任综液,我火速辦了婚禮,結果婚禮上儒飒,老公的妹妹穿的比我還像新娘谬莹。我一直安慰自己,他們只是感情好约素,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布届良。 她就那樣靜靜地躺著笆凌,像睡著了一般圣猎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上乞而,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天送悔,我揣著相機與錄音,去河邊找鬼爪模。 笑死欠啤,一個胖子當著我的面吹牛,可吹牛的內容都是我干的屋灌。 我是一名探鬼主播洁段,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼共郭!你這毒婦竟也來了祠丝?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤除嘹,失蹤者是張志新(化名)和其女友劉穎写半,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體尉咕,經...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡叠蝇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了年缎。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片悔捶。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡铃慷,死狀恐怖,靈堂內的尸體忽然破棺而出炎功,到底是詐尸還是另有隱情枚冗,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布蛇损,位于F島的核電站赁温,受9級特大地震影響,放射性物質發(fā)生泄漏淤齐。R本人自食惡果不足惜股囊,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望更啄。 院中可真熱鬧稚疹,春花似錦、人聲如沸祭务。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽义锥。三九已至柳沙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拌倍,已是汗流浹背赂鲤。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留柱恤,地道東北人数初。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像梗顺,于是被迫代替她去往敵國和親泡孩。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內容