細粒度分類解決的問題
我們在路邊看到萌犬可愛至極,然后卻不知道這個是哪種狗;看見路邊的一個野花卻不知道叫什么名字,吃著一種瓜,卻不知道是甜瓜還是香瓜傻傻分不清……
細粒度圖像分析任務相對通用圖像任務的區(qū)別和難點在于其圖像所屬類別的粒度更為精細。
大體分類
細粒度分類目前的應用場景很廣泛,現(xiàn)在的網(wǎng)絡大多分為有監(jiān)督的和半監(jiān)督的。
有監(jiān)督的做法基于強監(jiān)督信息的細粒度圖像分類模型,是在模型訓練時,為了獲得更好的分類精度,除了圖像的類別標簽外,還使用了物體標注框(bounding box)和部位標注點(part annotation)等額外的人工標注信息。
基于弱監(jiān)督信息的細粒度圖像分類模型,基于強監(jiān)督信息的分類模型雖然取得了較滿意的分類精度,但由于標注信息的獲取代價十分昂貴,在一定程度上也局限了這類算法的實際應用。因此,目前細粒度圖像分類的一個明顯趨勢是,希望在模型訓練時僅使用圖像級別標注信息,而不再使用額外的part annotation信息時,也能取得與強監(jiān)督分類模型可比的分類精度。
了解了大體的做法,我將從一些paper入手,講解目前細粒度圖像分析的具體實現(xiàn)。
SCDA(Selective Convolutional Descriptor Aggregation)
是基于深度學習的細粒度圖像檢索方法。在SCDA中,細粒度圖像作為輸入送入Pre-Trained CNN模型得到卷積特征/全連接特征,如下圖所示。
區(qū)別于傳統(tǒng)圖像檢索的深度學習方法,針對細粒度圖像檢索問題,作者發(fā)現(xiàn)卷積特征優(yōu)于全連接層特征,同時創(chuàng)新性的提出要對卷積描述子進行選擇。
不過SCDA與之前提到的Mask-CNN的不同點在于,在圖像檢索問題中,不僅沒有精細的Part Annotation,就連圖像級別標記都無從獲取。這就要求算法在無監(jiān)督條件下依然可以完成物體的定位,根據(jù)定位結果進行卷積特征描述子的選擇。對保留下來的深度特征,分別做以平均和最大池化操作,之后級聯(lián)組成最終的圖像表示。
很明顯,在SCDA中,最重要的就是如何在無監(jiān)督條件下對物體進行定位。
通過觀察得到的卷積層特征,如下圖所示,可以發(fā)現(xiàn)明顯的"分布式表示"特性。
對兩種不同鳥類/狗,同一層卷積層的最強響應也差異很大。如此一來,單獨選擇一層卷積層特征來指導無監(jiān)督物體定位并不現(xiàn)實,同時全部卷積層特征都拿來幫助定位也不合理。例如,對于第二張鳥的圖像來說,第108層卷積層較強響應竟然是一些背景的噪聲。
基于這樣的觀察,作者提出將卷積特征(HxWxD)在深度方向做加和,之后可以獲得Aggregation Map(HxWx1)。
在這張二維圖中,可以計算出所有HxW個元素的均值,而此均值m便是該圖物體定位的關鍵:Aggregation Map中大于m的元素位置的卷積特征需保留;小于的則丟棄。
這一做法的一個直觀解釋是,細粒度物體出現(xiàn)的位置在卷積特征張量的多數(shù)通道都有響應,而將卷積特征在深度方向加和后,可以將這些物體位置的響應累積--有點"眾人拾柴火焰高"的意味。
而均值則作為一把"尺子",將"不達標"的響應處標記為噪聲,將"達標"的位置標為物體所在。而這些被保留下來的位置,也就對應了應保留卷積特征描述子的位置。
實驗中,在細粒度圖像檢索中,SCDA同樣獲得了最好結果;同時SCDA在傳統(tǒng)圖像檢索任務中,也可取得同目前傳統(tǒng)圖像檢索任務最好方法相差無幾(甚至優(yōu)于)的結果,如下圖所示。
RA-CNN (Recurrent Attention Convolutional Neural Network)
RA-CNN算法不需要對數(shù)據(jù)做類似bounding box的標注就能取得和采用類似bounding box標注的算法效果。在網(wǎng)絡結構設計上主要包含3個scale子網(wǎng)絡,每個scale子網(wǎng)絡的網(wǎng)絡結構都是一樣的,只是網(wǎng)絡參數(shù)不一樣,在每個scale子網(wǎng)絡中包含兩種類型的網(wǎng)絡:分類網(wǎng)絡和APN網(wǎng)絡。
數(shù)據(jù)流是這樣的:輸入圖像通過分類網(wǎng)絡提取特征并進行分類,然后attention proposal network(APN)網(wǎng)絡基于提取到的特征進行訓練得到attention區(qū)域信息,再將attention區(qū)域crop出來并放大,再作為第二個scale網(wǎng)絡的輸入,這樣重復進行3次就能得到3個scale網(wǎng)絡的輸出結果,通過融合不同scale網(wǎng)絡的結果能達到更好的效果。
針對分類網(wǎng)絡和APN網(wǎng)絡設計兩個loss,通過固定一個網(wǎng)絡的參數(shù)訓練另一個網(wǎng)絡的參數(shù)來達到交替訓練的目的.
如下圖所示,網(wǎng)絡能夠逐漸定位attention area,然后再將此區(qū)域放大,繼續(xù)作為第二個scale網(wǎng)絡的輸入。