細(xì)粒度分類網(wǎng)絡(luò)之WS-DAN論文閱讀附代碼

論文閱讀

細(xì)粒度分類 (FGVC) 是為了解決“類內(nèi)分類”問(wèn)題碰纬,有別于貓狗分類悦析,它要解決的是 [這只狗是薩摩還是哈士奇] 這種問(wèn)題强戴。這類問(wèn)題的特點(diǎn)是類別之間的區(qū)別較小骑歹,本人從事的瑕疵檢測(cè)也是屬于這一領(lǐng)域道媚,有瑕疵的樣本與正常樣本往往區(qū)別很小衰琐,用普通的分類網(wǎng)絡(luò)并不能達(dá)到很好的效果羡宙,這篇論文中介紹的網(wǎng)絡(luò)親測(cè)比普通的分類網(wǎng)絡(luò)效果更好狗热。

該論文提出了一種針對(duì)細(xì)粒度視覺(jué)分類任務(wù)的方法,采用基于弱監(jiān)督學(xué)習(xí)的圖像增強(qiáng)方法僧凰,結(jié)合注意力機(jī)制训措,這使得網(wǎng)絡(luò)可以在不需要額外標(biāo)注信息的情況下聚焦到那些圖像中“有話語(yǔ)權(quán)”的部分光羞,在細(xì)粒度分類問(wèn)題中達(dá)到 state-of-art 的水準(zhǔn)纱兑。

論文地址:https://arxiv.org/pdf/1901.09891.pdf?arxiv.org

論文的前面兩小節(jié)潜慎,作者大概介紹了一下他們發(fā)這篇論文做的工作以及業(yè)界對(duì) FGVC 問(wèn)題的進(jìn)展。精華從第三小節(jié)開(kāi)始:

1.訓(xùn)練過(guò)程
(a) Training process.

上圖是整個(gè)網(wǎng)絡(luò)的訓(xùn)練過(guò)程,也是整片論文的核心驳遵。訓(xùn)練過(guò)程分成了(A)Weakly Supervised Attention Learning 以及 (B) Attention-Guided Data Augmentation 兩部分唆迁,下面分別講解這兩部分

  • (A)Weakly Supervised Attention Learning

這一步是基于弱監(jiān)督的注意力區(qū)域?qū)W習(xí)竞穷。首先瘾带,網(wǎng)絡(luò)會(huì)對(duì)原始圖片基礎(chǔ) CNN 進(jìn)行特征提取,特征提取網(wǎng)絡(luò)默認(rèn)使用 inceptionV3朴恳,當(dāng)然我們也可以用其他網(wǎng)絡(luò)于颖。提取到的特征文中稱為 Feature maps森渐,隨后 Feature maps 經(jīng)過(guò)一個(gè)kernel size 為 1 的卷積運(yùn)算得到 Attention maps同衣,就是說(shuō) Attention maps 是由 Feature maps 降維之后得到的,具體降到多少維度 M 是一個(gè)超參數(shù)可以自行配置浪秘。根據(jù)作者描述秫逝,M 個(gè) Attention map 中每一個(gè)都代表了物體的一個(gè)位置例如鳥(niǎo)的頭部,飛機(jī)的機(jī)翼等金蜀。后面網(wǎng)絡(luò)還會(huì)根據(jù) Attention map 對(duì)圖片進(jìn)行針對(duì)性的增強(qiáng)渊抄。

Bilinear Attention Pooling

在得到 Feature maps 和 Attention maps 之后护桦,作者受 Bilinear Pooling 的啟發(fā)二庵,提出了 Bilinear Attention Pooling催享,簡(jiǎn)稱 BAP哟绊,如上圖中所示,具體操作是將 Feature maps 與每個(gè) channel 的 Attention map 按元素相乘铣耘,如下式涡拘。相乘之后再經(jīng)過(guò)池化降維以及拼接操作獲得最后的 Feature Matrix据德,這是最后線性分類層的輸入棘利。

F_k = A_k \odot F(k = 1, 2, ..., M)

  • (B) Attention-Guided Data Augmentation

這一步是用之前步驟獲得的 Attention map 來(lái)指導(dǎo)數(shù)據(jù)增強(qiáng)善玫,這會(huì)比普通的隨機(jī)數(shù)據(jù)增強(qiáng)更有優(yōu)勢(shì)茅郎,將Attention map 提取的部位放大作為增強(qiáng)后的數(shù)據(jù)進(jìn)行訓(xùn)練,為細(xì)粒度分類這一問(wèn)題提供了有效的解決方式奕扣。

Attention Cropping & Attention Dropping

在上面的步驟中,我們獲得了 M 個(gè) Attention Map奔害,網(wǎng)絡(luò)會(huì)在 M 個(gè)中隨機(jī)選取一個(gè)作為后面做數(shù)據(jù)增強(qiáng)的依據(jù)华临,至于為啥隨機(jī)選取我的理解是第一可以增加魯棒性雅潭,第二是可以對(duì)多個(gè)物體部位做到“雨露均沾”寻馏。隨機(jī)選取一個(gè) Attention Map 之后先對(duì)其歸一化以方便后續(xù)的操作诚欠。

image

現(xiàn)在可以根據(jù) Attention Map 生成 Crop Mask 了,Crop Mask 個(gè)人理解為截圖的策略尼荆,文中策略是將A_k^* 中大于閾值 \theta _c 的元素置為 1 捅儒,其他置為 0巧还,這一塊為 1 的區(qū)域就是我們細(xì)粒度分類中需要的細(xì)節(jié)區(qū)域麸祷,將它上采樣至模型輸入的圖片大小阶牍,當(dāng)作一個(gè)新的“樣本”輸入對(duì)模型進(jìn)行訓(xùn)練星瘾,以強(qiáng)制模型“注意”這些細(xì)節(jié)區(qū)域磕瓷。上面的 \theta _c 作為一個(gè)超參數(shù)也是可以根據(jù)具體問(wèn)題進(jìn)行調(diào)節(jié)的生宛,文中默認(rèn)為 0.5。

Attention Dropping 與 Attention Cropping 類似审洞,將 Attention Map 中小于閾值 \theta_d 的元素置為 1 芒澜,其他為 0 痴晦。加入這個(gè)操作是因?yàn)樽髡甙l(fā)現(xiàn)不同的 Attention Maps 可能聚焦了物體相同的部位誊酌,為了讓模型也可以注意到其他位置碧浊,比如上圖中的 Attention Map 是鳥(niǎo)的頭部箱锐,該操作就可以讓模型注意到鳥(niǎo)的其他部位浩聋,就像是在告訴模型,看看啊臊恋,除了頭衣洁,身體長(zhǎng)這樣的也是某某種鳥(niǎo)啊。Attention Dropping 操作讓模型提高了 0.6% 的準(zhǔn)確率捞镰。

訓(xùn)練過(guò)程還有一個(gè)很新穎的點(diǎn)是損失函數(shù)的設(shè)計(jì)闸与,除了計(jì)算預(yù)測(cè)結(jié)果的交叉熵?fù)p失之外,作者為了每次各個(gè) Attention Map 可以找到相同的物體部位岸售,還加入了特征圖與部位中心的平方差之和作為懲罰項(xiàng)践樱,如下公式,這就會(huì)讓每個(gè)特征圖固定到每個(gè)部位的中心凸丸。其中部位中心也是每次學(xué)習(xí)到的特征圖來(lái)更新的拷邢,這種設(shè)計(jì)真的很妙!

image
2. 預(yù)測(cè)過(guò)程
(b) Testing process

預(yù)測(cè)過(guò)程依然分為兩個(gè)部分环肘,最終預(yù)測(cè)結(jié)果是兩個(gè)子結(jié)果的平均值欣喧。

  1. 第一步,原始圖片輸入訓(xùn)練好的模型中得到屬于各個(gè)類別的概率久免,以及 Attention Maps

  2. 第二步,將第一步中得到的 M 個(gè) Attention Maps 取平均值,注意這里不是像訓(xùn)練過(guò)程里面隨機(jī)取一個(gè)區(qū)域,我的理解是這里如果隨機(jī)取的話,可能會(huì)導(dǎo)致模型不穩(wěn)定团搞,每次的預(yù)測(cè)結(jié)果不一樣复隆。下面就是與訓(xùn)練過(guò)程類似了轻局,根據(jù) Attention Maps 的平均值 A_m 畫(huà)出截取框,將截取框上采樣再放入訓(xùn)練好的網(wǎng)絡(luò)中箕母,得到“注意力區(qū)域”屬于各個(gè)類別的概率。

  3. 最后一步將上面兩步的結(jié)果取平均值得到最后的分類結(jié)果

后面作者對(duì)比了一下該算法與現(xiàn)有的算法在各個(gè)數(shù)據(jù)集上的表現(xiàn):

算法在 CUB-200-2011 數(shù)據(jù)集上的表現(xiàn)
算法在 FGVC-Aircraft 數(shù)據(jù)集上的表現(xiàn)
算法在 Stanford Cars 數(shù)據(jù)集上的表現(xiàn)

可以看出矾湃,該算法在各個(gè)細(xì)粒度分類數(shù)據(jù)集上的表現(xiàn)都比現(xiàn)有的分類算法有所提升拍屑,大家如果有細(xì)粒度分類的任務(wù)也可以試試該算法矢渊。

代碼

pytorch 實(shí)現(xiàn)的代碼地址:https://github.com/GuYuc/WS-DAN.PyTorch

這個(gè)代碼一個(gè)大神寫(xiě)的毡鉴,有注釋很容易看懂陈瘦,跑起來(lái)也ok,如果有問(wèn)題的話可以留言我們一起交流咖驮。

待續(xù)

后面想嘗試將其中的特征提取網(wǎng)絡(luò)換成 se_ResNeXt 袋坑,這也是在細(xì)粒度分類領(lǐng)域中常用的算法也颤,如果結(jié)合的話也許會(huì)有更好的效果,試試才知道。

最后,求贊求關(guān)注姐霍,歡迎關(guān)注我的微信公眾號(hào)[MachineLearning學(xué)習(xí)之路] 赃泡,深度學(xué)習(xí) & CV 方向的童鞋不要錯(cuò)過(guò)!况鸣!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末昔园,一起剝皮案震驚了整個(gè)濱河市邪锌,隨后出現(xiàn)的幾起案子妇萄,更是在濱河造成了極大的恐慌,老刑警劉巖奋构,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弥臼,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡搏明,警方通過(guò)查閱死者的電腦和手機(jī)同欠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門跷究,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)姓迅,“玉大人,你說(shuō)我怎么就攤上這事俊马《〈妫” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵柴我,是天一觀的道長(zhǎng)解寝。 經(jīng)常有香客問(wèn)我,道長(zhǎng)艘儒,這世上最難降的妖魔是什么聋伦? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮界睁,結(jié)果婚禮上觉增,老公的妹妹穿的比我還像新娘。我一直安慰自己翻斟,他們只是感情好逾礁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著访惜,像睡著了一般嘹履。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上疾牲,一...
    開(kāi)封第一講書(shū)人閱讀 51,590評(píng)論 1 305
  • 那天植捎,我揣著相機(jī)與錄音,去河邊找鬼阳柔。 笑死焰枢,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播济锄,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼暑椰,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了荐绝?” 一聲冷哼從身側(cè)響起一汽,我...
    開(kāi)封第一講書(shū)人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎低滩,沒(méi)想到半個(gè)月后召夹,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡恕沫,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年监憎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片婶溯。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鲸阔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出迄委,到底是詐尸還是另有隱情褐筛,我是刑警寧澤,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布叙身,位于F島的核電站渔扎,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏曲梗。R本人自食惡果不足惜赞警,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望虏两。 院中可真熱鬧愧旦,春花似錦、人聲如沸定罢。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)祖凫。三九已至琼蚯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間惠况,已是汗流浹背遭庶。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留稠屠,地道東北人峦睡。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓翎苫,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親榨了。 傳聞我的和親對(duì)象是個(gè)殘疾皇子煎谍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容