細粒度分類SCDA&Recurrent Attention Convolutional Neural Networ

fine-gained image classification

解決的問題

我們在路邊看到萌犬可愛至極,然後卻不知道這個是哪種狗;看見路邊的一個野花卻不知道叫什麼名字,吃著一種瓜,卻不知道是甜瓜還是香瓜傻傻分不清……

細粒度圖像分析任務相對通用圖像任務的區別和難點在於其圖像所屬類別的粒度更為精細。

大體分類

細粒度分類目前的應用場景很廣泛,現在的網路大多分為有監督的和半監督的.

有監督的做法基於強監督信息的細粒度圖像分類模型,是在模型訓練時,為了獲得更好的分類精度,除了圖像的類別標籤外,還使用了物體標註框(bounding box)和部位標註點(part annotation)等額外的人工標註信息

基於弱監督信息的細粒度圖像分類模型,基於強監督信息的分類模型雖然取得了較滿意的分類精度,但由於標註信息的獲取代價十分昂貴,在一定程度上也局限了這類演算法的實際應用。因此,目前細粒度圖像分類的一個明顯趨勢是,希望在模型訓練時僅使用圖像級別標註信息,而不再使用額外的part annotation信息時,也能取得與強監督分類模型可比的分類精度。

了解了大體的做法,我將從一些paper入手,講解目前細粒度圖像分析的具體實現.

##SCDA(Selective Convolutional Descriptor Aggregation)

是基於深度學習的細粒度圖像檢索方法。在SCDA中,細粒度圖像作為輸入送入Pre-Trained CNN模型得到卷積特徵/全連接特徵,如下圖所示。

區別於傳統圖像檢索的深度學習方法,針對細粒度圖像檢索問題,作者發現卷積特徵優於全連接層特徵,同時創新性的提出要對卷積描述子進行選擇。

不過SCDA與之前提到的Mask-CNN的不同點在於,在圖像檢索問題中,不僅沒有精細的Part Annotation,就連圖像級別標記都無從獲取。這就要求演算法在無監督條件下依然可以完成物體的定位,根據定位結果進行卷積特徵描述子的選擇。對保留下來的深度特徵,分別做以平均和最大池化操作,之後級聯組成最終的圖像表示。

很明顯,在SCDA中,最重要的就是如何在無監督條件下對物體進行定位。

通過觀察得到的卷積層特徵,如下圖所示,可以發現明顯的"分散式表示"特性。

對兩種不同鳥類/狗,同一層卷積層的最強響應也差異很大。如此一來,單獨選擇一層卷積層特徵來指導無監督物體定位並不現實,同時全部卷積層特徵都拿來幫助定位也不合理。例如,對於第二張鳥的圖像來說,第108層卷積層較強響應竟然是一些背景的雜訊。

基於這樣的觀察,作者提出將卷積特徵(HxWxD)在深度方向做加和,之後可以獲得Aggregation Map(HxWx1)。

在這張二維圖中,可以計算出所有HxW個元素的均值,而此均值m便是該圖物體定位的關鍵:Aggregation Map中大於m的元素位置的卷積特徵需保留;小於的則丟棄。

這一做法的一個直觀解釋是,細粒度物體出現的位置在卷積特徵張量的多數通道都有響應,而將卷積特徵在深度方向加和後,可以將這些物體位置的響應累積--有點"眾人拾柴火焰高"的意味。

而均值則作為一把"尺子",將"不達標"的響應處標記為雜訊,將"達標"的位置標為物體所在。而這些被保留下來的位置,也就對應了應保留卷積特徵描述子的位置。

實驗中,在細粒度圖像檢索中,SCDA同樣獲得了最好結果;同時SCDA在傳統圖像檢索任務中,也可取得同目前傳統圖像檢索任務最好方法相差無幾(甚至優於)的結果,如下圖所示。

RA-CNN (Recurrent Attention Convolutional Neural Network)

RA-CNN演算法不需要對數據做類似bounding box的標註就能取得和採用類似bounding box標註的演算法效果。在網路結構設計上主要包含3個scale子網路,每個scale子網路的網路結構都是一樣的,只是網路參數不一樣,在每個scale子網路中包含兩種類型的網路:分類網路和APN網路。

數據流是這樣的:輸入圖像通過分類網路提取特徵並進行分類,然後attention proposal network(APN)網路基於提取到的特徵進行訓練得到attention區域信息,再將attention區域crop出來並放大,再作為第二個scale網路的輸入,這樣重複進行3次就能得到3個scale網路的輸出結果,通過融合不同scale網路的結果能達到更好的效果。

針對分類網路和APN網路設計兩個loss,通過固定一個網路的參數訓練另一個網路的參數來達到交替訓練的目的.

如下圖所示,網路能夠逐漸定位attention area,然後再將此區域放大,繼續作為第二個scale網路的輸入。


推薦閱讀:

TAG:深度學習DeepLearning | 神經網路 |