細粒度圖像分類學習筆記

 下面的內容大多是結合其它的博客的內容和自己的理解進行整理,加深自己的理解和方便查詢龙优,沒有貼上原來博客的地址,如果有雷同事秀,我不是故意的彤断,希望見諒野舶!

細粒度圖像分類的難點包括兩個方面:準確定位到具有分辨力的關鍵區(qū)域,以及從檢測到的關鍵區(qū)域中提取有效特征進行分類宰衙。關于區(qū)域定位主要有兩種方法:監(jiān)督式和非監(jiān)督式平道,監(jiān)督式即對訓練數據標注bounding box信息,而非監(jiān)督式是通過網絡去學習這些區(qū)域的信息供炼,訓練數據沒有bounding box信息一屋。這里需要注意人為標定的區(qū)域不一定是最適合模型分類的區(qū)域。

1袋哼、Look Closer to See Better: Recurrent Attention Convolutional Neural Network for Fine-grained Image Recognition(RA-CNN)冀墨。

2017年CVPR的文章,本文提出的RA-CNN的網絡包含三個scale子網絡涛贯,每個scale子網絡的網絡結構都是一樣的诽嘉,只是網絡參數不一樣,每個scale子網絡又包含兩種類型的網絡:分類網絡和APN網絡弟翘。輸入圖像通過分類網絡進行特征提取并分類虫腋,然后APN網絡基于提取到的特征進行訓練得到attention區(qū)域信息,再將attention區(qū)域裁剪出來并放大衅胀,作為第二個scale網絡的輸入岔乔,重復進行三次就得到了三個scale網絡的輸出結果,最后將三個scale網絡的結果進行融合得到輸出滚躯。
亮點1:多scale網絡可以在訓練的過程中逐漸聚焦到關鍵區(qū)域;
亮點2:針對分類網絡和APN網絡設計兩個loss(softmax loss + ranking loss),通過固定一個網絡的參數訓練另一個網絡的參數達到交替訓練的目的嘿歌;
亮點3:不需要bounding box的標注信息掸掏。

RA-CNN網絡結構圖.png
從圖中可以看到 ,(a1)(a2)(a3)分別表示3個不同的scale子網絡(網絡結構相同,參數不同)宙帝,(b1)(b2)(b3)分別表示3個不同scale子網絡的卷積層丧凤,這些卷積層就是從輸入圖像中提取特征,根據提取到的特征愿待,一方面?zhèn)鹘o全連接層fc和softmax層去預測該圖像的類別概率,一方面通過APN網絡(d1)(d2)得到區(qū)域信息靴患,這兩個方面的操作也就是文中說的multi-task,一個task做分類仍侥,另一個task做區(qū)域檢測。
Task1:p(X) = f(Wc ? X)
Task2:[tx,ty,tl]=g(Wc ?X)
其中Wc為(b1)或(b2)或(b3)的網絡參數鸳君,即卷積層农渊、池化層和激活層的集合,用來從輸入圖像中提取特征或颊,Wc*X就是最后提取到的特征砸紊。然后f()函數(task1)是全連接層和softmax層传于,用來將學習到的特征映射成類別概率,也就是p(X)醉顽。g()函數也就是APN網絡(task2)可以用兩個全連接層實現沼溜,其中最后一個全連接層的輸出channel是3,分別對應tx游添、ty盛末、tl。這里因為假設檢測出來的區(qū)域都是正方形否淤,所以得到的tx和ty表示區(qū)域的中心點坐標悄但,tl表示正方形區(qū)域邊長的一半。

2石抡、Residual Attention Network for Image Classification

具體理解可以參考下面這篇博文檐嚣,寫的特別詳細。
https://blog.csdn.net/wspba/article/details/73727469

3啰扛、CBAM: Convolutional Block Attention Module

具體理解可以參考下面這篇博文嚎京,寫的特別詳細,其他的博客也寫的都是大同小異隐解。
https://blog.csdn.net/u013738531/article/details/82731257

網絡可視化

1鞍帝、Visualizing and Understanding Convolutional Networks

綜述:這篇paper是CNN可視化的開山之作(由Lecun得意門生Matthew Zeiler發(fā)表于2013年),主要解決了兩個問題:
∩访!1)why CNN perform so well?
∨劣俊2)how CNN might be improved?
背景介紹:CNN針對圖像分類問題有著令人驚嘆的效果,2012年的AlexNet(test error:15.3%)碾壓第二名(test error:26.2%),由此CNN如雨后春筍般瘋狂生長续徽,CNN之所以成功主要歸功于三個方面:①數以百萬計的帶標簽數據蚓曼,②強大的GPU計算能力,③更好的正則化處理 钦扭。
提出問題:訓練出來的CNN模型為什么能夠奏效纫版?怎么奏效?這些問題并沒有得到解決客情。論文介紹了CNN各層到底學到了原始圖像的什么特征以及這些特征對最終預測結果的影響力度其弊。
實現:論文以2013年的ZFNet=5層conv+3層FC 為基礎,在此基礎上進行了略微調整膀斋,并提升了效果梭伐。
 1)我們都知道ZFNet以conv+ReLU+Maxpooling為主要的實現方式,“看懂并理解”網絡就是這個過程的逆過程概页,即Unpooling+ReLU+反卷積籽御,下面我們分別進行介紹:
 2)Unpooling:毫無疑問,maxpooling是一個不可逆過程,例如在一個3*3的pool中技掏,我們選擇9個元素的最大值進而實現降采樣铃将,我們必然會損失其他8個元素的真實數據。實現過程中哑梳,我們需要記錄pool中最大值的位置信息劲阎,我們稱之為“Switches”表格,在unpooling過程中鸠真,我們將最大值直接放回該位置悯仙,將其他位置直接置0;
 3)ReLU:在CNN中吠卷,我們使用ReLU作為激活函數是為了修正feature map锡垄,使其恒不為負,為了重構每一層的輸出祭隔,這種約束依然成立货岭,我們繼續(xù)使用ReLU;
 4)反卷積:CNN中疾渴,上層的輸出與學習到的filters進行卷積千贯,得到本層的特征,逆過程的實現就是通過使用相同卷積核的轉置搞坝,與矯正之后的特征進行卷積搔谴,從而實現反卷積。

2桩撮、Learning Deep Features for Discriminative Localization

綜述:論文重新審視了global average pooling(GAP)敦第,并詳細闡述了這種pooling方式如何使得CNN具有優(yōu)異的目標定位能力
介紹
 1)作者受到NIN、GoogLeNet的啟發(fā)距境,摒棄FC申尼,轉而使用GAP,在減少參數的同時對原本的分類效果影響不大垫桂;
 2)GAP實際上起到一定正則化的作用,paper在幾種經典的網絡結構中使用其卷積結構粟按,而后+GAP+FC诬滩,采用softmax直接預測輸出;
 3)論文中指出灭将,FC會導致feature map損失空間位置信息疼鸟,而GAP則不會(我的理解是如果在圖像的某一位置有高響應,則經過FC之后庙曙,根據整個feature并不能分辨出刺激源于左上角還是右下角還是什么其他的地方空镜,而通過GAP就可以,因為其保留了空間位置信息)
實現
 1)論文使用的NIN和GoogLeNet類似的結構,保留卷積結構吴攒,接上GAP张抄,接上一層FC,直接作為分類預測結果洼怔,論文通過將輸出層的權重投影到feature map上來識別圖像區(qū)域的重要性署惯,由此將這種技術稱為class activation mapping(CAM)
 2)具體CAM如何實現?詳見如下圖:

image.png
注:針對某一特定類別镣隶,比如圖中的這個狗狗极谊,我們將最后一次卷積操作得到的feature map與訓練FC得到的特征權重進行累加求和,得到我們的CAM(當我讀到這里的時候安岂,產生了一個疑惑轻猖,圖中所示的CAM明明是映射到了原像素空間,但是經過多次卷積池化feature map的size肯定不等于原圖像大小域那,目前的理解是將最后得到的CAM直接upsampling到原像素空間咙边,我們的目的是計算圖像中的每個像素對最終結果的貢獻程度)
image.png

3、Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization

綜述
 1)paper中提出了一種新的可視化CNN的方法 Gradient-weighted Class Activation Mapping (Grad-CAM)琉雳,是CAM的升級版样眠;
 2)Grad-CAM可適用于任何網絡結構,省去了修改網絡結構并訓練的煩惱翠肘,一定程度上是對CAM的泛化
 3)使用此種結構檐束,可以應用到以下幾個問題中:
 3.1)之前的CAM必須對包含多層的FC進行修改(使用GAP進行替換),而Grad-CAM則不必修改網絡
 3.2)可用于結構化輸出
 3.3)可用于視覺問題解答或者增強學習中
 對于網絡可視化束倍,我們可以采用兩種方式:
 1)deconvnet(反卷積)
 2)guided-backpropagation(導向反向傳播)
 反向傳播(backpropagation)/反卷積(deconvnet)/導向反向傳播(guided-backpropagation)這三者究竟有什么區(qū)別被丧?反卷積和導向反向傳播的基礎是反向傳播,就是對梯度進行求導绪妹,然后更新我們的參數甥桂,就是學習的過程,下圖十分清楚的對比了正向傳播/反向傳播/反卷積/導向反向傳播邮旷,4者不同之處主要體現在經過ReLU時對梯度的選擇性:

image.png
實現方法
 1)在CAM中黄选,我們根據最后一層的FC學到的權重作為對應feature map的權重,而后upsampling到原像素空間婶肩,看起來理所應當办陷,但當我們在最后一次使用conv之后,得到對應的feature map,之后多次使用FC律歼,我們如何計算feature map對應的權重呢民镜? 這里有一個小問題,我們?yōu)槭裁词褂胏onv階段最后一次得到的feature map呢险毁?因為最后一次conv得到的feature map是前面多次conv+ReLU+pooling的結果制圈,具有最強的空間信息和語義信息们童,隨后的FC和softmax所提取的信息已經很難理解,所以我們若想實現CNN的可視化鲸鹦,必須好好利用最后一次conv得到的feature map慧库。
 下面開始我們的計算過程:實現方法:
 1)在CAM中,我們根據最后一層的FC學到的權重作為對應feature map的權重亥鬓,而后upsampling到原像素空間完沪,看起來利索應當,但當我們在最后一次適用conv之后嵌戈,得到對應的feature map,之后多次使用FC覆积,我們如何計算feature map對應的權重呢?
 這里有一個小問題熟呛,我們?yōu)槭裁词褂胏onv階段最后一次得到的feature map呢宽档?因為最后一次conv得到的feature map是前面多次conv+ReLU+pooling的結果,具有最強的空間信息和語義信息庵朝,隨后的FC和softmax所提取的信息已經很難理解吗冤,所以我們若想實現CNN的可視化,必須好好利用最后一次conv得到的feature map九府。
 下面開始我們的計算過程:
image.png

整體結構如下圖所示:
image.png
注:paper中還強調Grad-CAM可視化方法不僅僅可用于一般的圖像分類網絡的可視化椎瘟、輸出結構化網絡的可視化還可用于視覺問答網絡的可視化等等
Guided Grad-CAM(導向反向傳播和Grad-CAM的結合)
 1)問題:雖然Grad-CAM可以很好的類別判別能力,也可以將相關區(qū)域定位出來侄旬,但是其不具備像素空間梯度可視化(比如導向反向傳播和反卷積這種細粒度重要性可視化)的方法
 2)解決問題:
  2.1)首先對圖像使用插值法進行上采樣
  2.2)然后將導向反向傳播和Grad-CAM結合起來肺蔚,實現可視化

4、Tell Me Where to Look: Guided Attention Inference Network(GAIN)

這篇文章里用到了Grad-CAM來得到Attention Map儡羔。Grad-CAM是CAM的進一步拓展宣羊。CAM假設分類網絡最后不是用FC而是Global Average Pooling,那么實際上對于每一類的響應都有一張對應的Feature Map汰蜘。Feature Map其實就包含了對不同位置的響應強度仇冯。所以給定圖片想要得到針對某類的Attention Map只要weighted average各個feature map即可。得到weight的方式很直觀族操,從最后分類的FC層的參數就可以得到對于某一類每個feature map的權重苛坚。CAM需要網絡最后有Global Average Pooling,Grad-CAM去掉了這個限制色难。

image.png
神經網絡的識別方式炕婶,當識別狗時,網絡會將“注意力”放在狗身上莱预,同樣的當識別貓時,網絡會將“注意力”放在貓身上项滑。但是GAIN的作者發(fā)現了一個問題依沮,那就是在識別某些物體的時候涯贞,網絡容易會將“注意力”放在和所要識別的物體相關的東西上,而不會將“注意力”放在物體本身上危喉。如圖2所示宋渔,可以看出,網絡在識別船的時候辜限,卻把“注意力”放在了水面上皇拣。
image.png
針對于本問題,作者提出了一種新的訓練方式薄嫡,通過在最小化原圖像識別損失函數的同時來最小化遮擋住待識別物體的圖像的識別分數來訓練整個網絡氧急,訓練后的網絡能夠更好的將“注意力”放在待識別的物體上。給定圖像毫深,分類網絡輸出對于c個類別上的分布吩坝,對于每一類可以利用Grad-CAM的方法得到一張Attention Map。根據Attention Map把重要的部分遮蓋掉得到c張不同的圖哑蔫。然后同一個分類網絡需要對每張?zhí)幚磉^的圖分類钉寝,使得對應的正確類別上的分數盡可能的低。當然如果有正確的attention annotation闸迷,可以額外加一個loss來幫助學習attention map嵌纲。
GAIN工作方式.png
網絡分為兩個部分,第一部分為分類部分腥沽,就是簡單的使用VGG對圖像進行特征提取逮走,然后使用全鏈接層實現對物體的識別。所以本論文的主要創(chuàng)新點主要集中在第二部分上巡球。
image.png
上面這種訓練方式被作者成為weak supervision言沐。此外為了提高attention map質量,作者還在GAIN的基礎上添加了額外的監(jiān)督部分(integrating extra supervision)酣栈,文中稱這種方式為full supervision险胰,如下圖所示
image.png
image.png
加入了這部分pixel-level的監(jiān)督學習后,所得到的attention_map的精準度更高矿筝。同時本文也指出獲取這種pixel-level的分割圖是很費時的起便,而作者提出的這種方法可以大大減少對pixel-level分割圖的需求量恩闻。
總結:本文通過對卷積神經網絡的學習方法進行改進棕硫,使得能夠獲得更好的attention map晌涕,因此能夠提升圖像語義分割及物體定位的性能后室。

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末待错,一起剝皮案震驚了整個濱河市举庶,隨后出現的幾起案子琳水,更是在濱河造成了極大的恐慌借嗽,老刑警劉巖琳轿,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件判沟,死亡現場離奇詭異耿芹,居然都是意外死亡,警方通過查閱死者的電腦和手機挪哄,發(fā)現死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門吧秕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人迹炼,你說我怎么就攤上這事砸彬。” “怎么了斯入?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵砂碉,是天一觀的道長。 經常有香客問我咱扣,道長绽淘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任闹伪,我火速辦了婚禮沪铭,結果婚禮上,老公的妹妹穿的比我還像新娘偏瓤。我一直安慰自己杀怠,他們只是感情好,可當我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布厅克。 她就那樣靜靜地躺著赔退,像睡著了一般。 火紅的嫁衣襯著肌膚如雪证舟。 梳的紋絲不亂的頭發(fā)上硕旗,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天,我揣著相機與錄音女责,去河邊找鬼漆枚。 笑死,一個胖子當著我的面吹牛抵知,可吹牛的內容都是我干的墙基。 我是一名探鬼主播,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼刷喜,長吁一口氣:“原來是場噩夢啊……” “哼残制!你這毒婦竟也來了?” 一聲冷哼從身側響起掖疮,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤初茶,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后浊闪,有當地人在樹林里發(fā)現了一具尸體纺蛆,經...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡吐葵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了桥氏。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡猛铅,死狀恐怖字支,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情奸忽,我是刑警寧澤堕伪,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站栗菜,受9級特大地震影響欠雌,放射性物質發(fā)生泄漏。R本人自食惡果不足惜疙筹,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一富俄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧而咆,春花似錦霍比、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至涯捻,卻和暖如春浅妆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背障癌。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工凌外, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人混弥。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓趴乡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蝗拿。 傳聞我的和親對象是個殘疾皇子晾捏,可洞房花燭夜當晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內容