M2Det论文解读和开源代码
轉(zhuǎn)自:https://www.jianshu.com/p/d8f2130b9d1b
前言
? ? 純屬個(gè)人學(xué)習(xí),不做商用,如有侵權(quán)請(qǐng)聯(lián)系作者。此外也并非完全翻譯,那沒有意義,同時(shí)也摻雜了挺多個(gè)人的理解,不到位的可以互相交流。
? ? 這是開源不久的單階段目標(biāo)檢測(cè)器,主要工作在于特征金字塔方面,北大和達(dá)摩的作品,AAAI2019收錄,論文地址:https://arxiv.org/abs/1811.04533,Github地址:https://github.com/qijiezhao/M2Det。
摘要
? ? 為了解決物體的多尺度問題,單階段和雙階段的檢測(cè)器均采用了特征金字塔結(jié)構(gòu)。盡管結(jié)果感人,但仍存在一定的限制,因?yàn)樗鼈兙皇呛?jiǎn)單地使用了backbone生成的天然的多尺度特征金字塔,這些backbone是為分類任務(wù)設(shè)計(jì)的(意思是適用于分類的不一定很好的適用于檢測(cè))。本文中,為了構(gòu)造更加有利于檢測(cè)多尺度物體的特征金字塔架構(gòu),作者提出了多層級(jí)的FPN(MLFPN),分三步:
1. 融合backbone提取的多層特征圖作為basic feature。
2. 利用TUM和FVM的模塊交替生成一系列的特征金字塔。
3.利用SFAM模塊將第2步生成的金字塔中的尺度相同的特征層concat起來。
將該結(jié)構(gòu)稱之為M2Det并集成進(jìn)SSD結(jié)構(gòu)。COCO數(shù)據(jù)集上,測(cè)試時(shí)單尺度下,M2Det 取得了41,0的mAP,11.8幀,多尺度下取得了 44.2的mAP,達(dá)到了SOTA的結(jié)果。
介紹
????解決尺度不變性有兩個(gè)方法,第一個(gè)是傳統(tǒng)的圖像金字塔,毫無疑問費(fèi)時(shí)費(fèi)力,要用的話也只是在測(cè)試的時(shí)候,多尺度的測(cè)試其實(shí)也就是利用了圖像金字塔。第二個(gè)就是現(xiàn)在流行的特征金字塔啦,圖一中說明了幾種風(fēng)格的特征金字塔,簡(jiǎn)單說就是SSD獨(dú)立地利用了最后兩層地特征,并額外的構(gòu)造了四個(gè)金字塔層級(jí),FPN加入了橫向和自頂向下地連接,STDN只是利用了最后一個(gè)block的特征。
作者diss圖1中a,b,c三種方法的缺陷是:
1. backbone是為分類而設(shè)計(jì)的網(wǎng)絡(luò),提取的特征不一定適合于檢測(cè)。
2. single-level information,個(gè)人理解的意思是金字塔的每一層的feature map幾乎均是來自于同一層,信息單一(但是FPN也有頂層的啊,作者也沒說明,不過大致應(yīng)該是這個(gè)意思)
圖1 特征金字塔結(jié)構(gòu)比
通常意義上認(rèn)為深層的特征有助于分類而淺層任務(wù)有助于回歸,而且,淺層特征適合于表征外觀簡(jiǎn)單的物體,而深層特征適合于表征外觀復(fù)雜的物體。實(shí)際中,相同大小的物體的外觀復(fù)雜度可能完全不同,比如近處的紅綠燈相比于遠(yuǎn)處的人體,在現(xiàn)有的結(jié)構(gòu)中這兩者應(yīng)該是在同一層級(jí)被檢測(cè)到,但是這兩者需要的特征語義深度是不一樣的,人體需要更深的語義而紅綠燈則只需要淺層的語義特征,所以有損現(xiàn)有的檢測(cè)器的性能。
? ? 因此本文旨在提出一個(gè)更加有效的適合于檢測(cè)的特征金字塔結(jié)構(gòu)。
Method
? ? 相關(guān)工作就不說了,畢竟論文也需要湊字?jǐn)?shù)。下面的才是本文的工作,也是重點(diǎn)。圖2是整體架構(gòu)圖,其中FFM1,TUM,FFMv2以及SFAM均是該文提出的,以下分別介紹:
?
圖2 M2Det架構(gòu) 尺度表示特征圖的分辨率,層級(jí)可以理解為語義層級(jí),即每個(gè)尺度的金字塔均由來自于8個(gè)不同語義深度的特征組成(shallow-->medium-->deep)
1. FFMv1
見圖3(a),有兩個(gè)輸入,來自于圖2的最后兩個(gè)stage的卷積層(SSD結(jié)構(gòu)),1024*20*20輸出512*20*20上采樣得到512*40*40與256*40*40concat得到768*40*40。
2. TUM
見圖3(c),U型decoder結(jié)構(gòu),輸出6個(gè)尺度的特征圖。有8個(gè)層級(jí),表示有8個(gè)TUM結(jié)構(gòu),一個(gè)TUM表示一個(gè)層級(jí)。仔細(xì)一看應(yīng)該是類似于FPN的那個(gè)top-down和橫向連接的方式
3. FFMv2
兩個(gè)輸入,一個(gè)是FFMv1的輸出,另一個(gè)是上一個(gè)TUM的尺度最大的輸出(128,40,40),cancat一波得到256*40*40,構(gòu)成當(dāng)前層級(jí)的TUM的輸入。
圖3 (a)FFMv1 (b)FFMv2 (c)TUM
除了第一個(gè)TUM的輸入是直接來自于FFMv1的輸出,剩下的TUM均是來自于FFMv2的輸出。而FFMv2又是來自于FFMv1和上一個(gè)TUM的輸出,加入FFMv1應(yīng)該是類似于殘差的想法。
4. SFAM結(jié)構(gòu)
由圖2可知有了8個(gè)層級(jí)的TUM的輸出,每個(gè)TUM均會(huì)輸出6個(gè)尺度(圖3c),SFAM就負(fù)責(zé)這些不同層級(jí)不同尺度的融合:對(duì)每一個(gè)尺度而言,從8個(gè)層級(jí)抽取該尺度的特征圖concat到一起(128*8=1024),語義也就實(shí)現(xiàn)了從淺到深,再利用SE block對(duì)channel做了一個(gè)Attention。之后就得到了6個(gè)尺度的特征金字塔,金字塔的每一層均是來自于8個(gè)從淺到深的語義層級(jí),也就是所謂的Multi-level。這就是不同于現(xiàn)有的金字塔的結(jié)構(gòu)的地方。
圖4 SFAM結(jié)構(gòu)
最后再利用了兩個(gè)卷積層進(jìn)行分類和回歸就能得到最后的結(jié)果。很明顯,個(gè)人感覺8個(gè)TUM應(yīng)該會(huì)引入較大的參數(shù)量,但是從結(jié)果來看卻又還行,參數(shù)比retinanet要少,精度也更高。
?
圖5 結(jié)果圖對(duì)比
Discussion
? ? 作者指出,最后結(jié)果的提升在于引入了本文提出的MLFPN,支撐點(diǎn)有兩:
1. 得到了多尺度多層級(jí)的特征金字塔
2. 金字塔每一層有不同語義層級(jí)的特征。
說實(shí)話這不就是同一個(gè)理由嘛,就是好就好在用了多尺度多層級(jí)的特征金字塔結(jié)構(gòu)。可視化激活圖如下:
?
圖6 可視化激活圖
這張圖挺有意思的,說明一下,原圖中有一大一小兩人和兩車以及一個(gè)紅綠燈,小車小人以及紅綠燈尺度相差不大,從圖中可以看出來:
1. 對(duì)比與小車和小人,大車和大人在小尺度的特征圖上激活值更大(原論文筆誤)
2. 小人、小車和紅綠燈在同一尺度上被激活(可以很直觀的理解,因?yàn)槌叨纫恢?#xff09;
3. 紅綠燈、小車以及小人在由淺到深的特征圖上被激活(這就印證了作者的假設(shè),由于其復(fù)雜性,相同尺度的物體需要的語義信息不一定相同)
后話
????該文章還是很細(xì)致的,易懂。感覺能把FPN和本文的工作細(xì)致的區(qū)分開就更好了,FPN也是利用了多層的語義信息,但是融合卻沒有本文這么復(fù)雜,說明了在構(gòu)造特征金字塔上仔細(xì)的研究也能取得不錯(cuò)的成果。
作者:Zliang_hhh
鏈接:https://www.jianshu.com/p/d8f2130b9d1b
來源:簡(jiǎn)書
簡(jiǎn)書著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處。
總結(jié)
以上是生活随笔為你收集整理的M2Det论文解读和开源代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: my eclipse2014破解步骤(转
- 下一篇: M2Det论文笔记