1. 程式人生 > >基於深度學習的細粒度影象分類綜述

基於深度學習的細粒度影象分類綜述

文章概要

1.簡介

細粒度影象分類 (Fine-grained image categorization), 又被稱作子類別影象分類 (Sub-category recognition),是近年來計算機視覺、 模式識別等領域一個非常熱門的研究課題。 其目的是對屬於同一基礎類別的影象(汽車、狗、花、鳥等)進行更加細緻的子類劃分, 但由於子類別間細微的類間差異以及較大的類內差異, 較之普通的影象分類任務, 細粒度影象分類難度更大。 圖1所示為細粒度影象分類資料集CUB-200[1]中的兩個物種,加州鷗和北極鷗,從豎直方向的圖片對比可以看出,兩個不同物種長相非常相似,而從對比水平方向可知,同一物種由於姿態,背景以及拍攝角度的不同,存在較大的類內差異。 因此,要想順利的對兩個極為相似的物種進行細粒度分類,最重要的是在影象中找到能夠區分這兩個物種的區分性的區域塊(discriminative part),並能夠對這些有區分性的區域塊的特徵進行較好的表示。

圖1 (a) 加州鷗

圖1 (b) 北極鷗

由於深度卷積網路能夠學習到非常魯棒的影象特徵表示,對影象進行細粒度分類的方法,大多都是以深度卷積網路為基礎的,這些方法大致可以分為以下四個方向:

  1. 基於常規影象分類網路的微調方法

  2. 基於細粒度特徵學習(fine-grained feature learning)的方法

  3. 基於目標塊的檢測(part detection)和對齊(alignment)的方法

  4. 基於視覺注意機制(visual attention)的方法

2.基於常規影象分類網路的方法

這一類方法大多直接採用常見的深度卷積網路來直接進行影象細粒度分類,比如AlexNet[3]、VGG[4]、GoogleNet[5]、ResNet[6]以及DenseNet[7]和 SENet[8] 等。

圖2 多工學習網路結構[9]

由於這些分類網路具有較強的特徵表示能力,因此在常規影象分類中能取得較好的效果。然而在細粒度分類中,不同物種之間的差異其實十分細微,因此,直接將常規的影象分類網路用於對細粒度影象的分類,效果並不理想。受遷移學習理論啟發,一種方法是將大規模資料上訓練好的網路遷移到細粒度分類識別任務中來。常用的解決方法是採用在ImageNet上預訓練過的網路權值作為初始權值,然後再通過在細粒度分類資料集上對網路的權值進行微調(finetune),得到最終的分類網路。

在[9]中,Zhang等人進一步將度量損失函式引入到精細分類網路的微調中來。具體而言,每次輸入三個樣本(Postive,Reference以及Negative)到三個共享權值的網路中,然後利用三個網路的特徵輸出用來計算損失函式,除了傳統的softmax 損失函式,三個特徵輸出還構成了廣義的triplet 損失。最後兩個損失函式聯合用來微調網路:

其中,Es®是softmax獲取的分類誤差,Et(r,p,n)是通過圖2中三個共享引數的子網路fr(s),fp(s)和fn(s)獲取到的triplet誤差,兩種誤差實現對網路不同層次的約束。Es®通過影象的類別資訊,約束網路引數的優化方向是在影象真實類別上獲取最大的響應,這其中並沒有關注不同類別之間的度量關係。而Et(r,p,n)則通過計算類內距離與類間距離,增大網路對不同類別的相似樣本的識別能力。

  1.  基於細粒度特徵學習的方法
    

Lin等人在2015年發表於ICCV的論文[9]中提出雙線性卷積神經網路模型(Bilinear CNN,網路結構如圖3所示)實現對深度卷積特徵更好的表示。該方法使用VGG-D和VGG-M兩個網路作為基準網路,在不使用Bounding Box (邊框)標註資訊的情況下,在CUB200-2011資料集上到達了84.1%的分類精度;而使用Bounding Box時,其分類精度高達85.1%。

圖3 Bilinear CNN的網路結構

一個雙線性模型 M 由一個四元組組成: M = (fA;fB; P; C)。其中,fA和fB代表特徵提取函式, 即圖 3 中的卷積網路 A和卷積網路 B, P 是一個池化函式 (Pooling function),C 則是分類函式。

特徵提取函式 f(·) (CNN stream)由卷積層,池化層和啟用函式組成。這一部分網路結構可以看作一個函式對映f:L x I →RK×D, 將輸入影象與位置區域 對映為一個維的特徵,其中K為卷積網路輸出特徵圖的通道數,D為每個通道中的二維特徵圖展開成的一維特徵向量的大小。而兩個特徵提取函式輸出的卷積特徵, 可以通過一個雙線性操作進行匯聚, 得到一個雙線性特徵:bilinear(l;T;fA;fB) =fA(L;T)TfB(L;T)。而池化函式 P 的作用則是將所有位置的雙線性特徵匯聚成一個特徵。文章所採用的池化函式是將所有位置的雙線性特徵累加起來,得到影象的全域性特徵表示Φ’(I)。

如果兩個特徵函式fA,fB 提取的特徵維度分別是 K × M 與K ×N 的話,則池化函式 P 的輸出將是一個 M×N的矩陣,而在對其進行分類之前需要先把特徵矩陣拉伸成一列MN大小的特徵向量。最後, 分類函式的作用是對提取的特徵進行分類, 可以採用邏輯迴歸或者 SVM 分類器實現。

總體來說,雙線性CNN模型能夠基於簡潔的網路模型,實現對細粒度影象的有效識別。一方面,CNN網路能實現對細粒度影象進行高層語義特徵獲取,通過迭代訓練網路模型中的卷積引數,過濾影象中不相關的背景資訊。更重要的是另一方面,網路A 和網路B在影象識別任務中扮演著互補的角色,即網路A能夠對影象中的物體進行定位, 而網路B 則是完成對網路A 定位到的物體位置進行特徵提取。通過這種方式,兩個網路能夠配合完成對輸入細粒度影象的類檢測和目標特徵去的過程,較好地完成細粒度影象識別任務。關於雙線性網路更加的介紹可以參考SIGAI的另外一篇文章:雙線性匯合(bilinear pooling)在細粒度影象分析及其他領域的進展綜述。

4.基於目標塊檢測的方法

基於目標塊(object part)檢測的方法思路是:先在影象中檢測出目標所在的位置,然後再檢測出目標中有區分性區域的位置,然後將目標影象(即前景)以及具有區分性的目標區域塊同時送入深度卷積網路進行分類。但是,基於目標塊檢測的方法,往往在訓練過程中需要用到目標的Bounding box標註資訊,甚至是目標影象中的關鍵特徵點資訊,而在實際應用中,要想獲取到這些標註資訊是非常困難的。比較有代表性的是2014年ECCV中提出來的Part-RCNN方法[11]:

圖4 Part-RCNN的演算法流程圖

Part-RCNN演算法的流程圖如圖4所示。它的主要思想是藉助目標檢測中的經典方法R-CNN[12]來檢測圖中鳥的位置和鳥頭部以及鳥身體的位置,然後將這三部分的資訊同時輸入深度卷積網路進行訓練。

首先, 同 R-CNN 一樣, Part RCNN 也使用自底向上的區域演算法 Selective Search[13] 來產生區域候選, 如圖4左上角所示。之後, 利用 R-CNN 演算法來對這些區域候選進行檢測, 給出評分分值。在這裡, Part R-CNN 只檢測前景物件 (鳥) 和兩個區域性區域 (頭、 身體)。 根據評分分值 (圖4中間) 挑選出區域檢測結果 (見圖4上方中間)。作者認為, R-CNN 給出的評分分值並不能準確地反映出每個區域的好壞。例如, 對於頭部檢測給出的標註框可能會在物件檢測的標註框外面, 身體檢測的結果與頭部檢測的結果可能會有重疊等。 這些現象都會影響最終的分類效能。 因此, 需要對檢測區域進行修正,主要考慮利用區域的邊框約束和幾何約束進行:

其中,公式2為改進後的評分函式,公式3和公式4分別為邊框約束和幾何約束條。利用如上所述的約束條件對 R-CNN 檢測的位置資訊進行修正之後,再分別對每一塊區域提取卷積特徵,將不同區域的特徵相互連線起來, 構成最後的特徵表示來訓練 SVM 分類器。在CUB200-2011資料集中,該演算法使用AlexNet作為骨幹網路,在測試時如果不使用目標標註框,其識別準確率為73.89%,若測試階段使用目標位置標註框,識別準確率為76.37%。

5.基於視覺注意機制的方法

視覺注意機制(Vision Attention Mechanism)是人類視覺所特有的訊號處理機制。具體表現為視覺系統在看東西的時候,先通過快速掃描全域性影象獲得需要關注的目標區域,而後抑制其他無用資訊以獲取感興趣的目標。目前,基於CNN網路的視覺注意方法被廣泛應用到計算機視覺中,包括目標檢測、識別等任務。在深度卷積網路中,同樣能夠利用注意模型來尋找影象中的感興趣區域或區分性區域,並且對於不同的任務,卷積網路關注的感興趣區域是不同的。比如圖5中的亮點即為卷積網路感興趣的區域,且越亮的區域對於精細分類任務越重要。

圖5 影象中高亮的區域為卷積網路關注的部分

由於基於視覺注意模型(Vision Attention Model)的方法可以在不需要額外標註資訊(比如目標位置標註框和重要部件的位置標註資訊)的情況下,定位出影象中有區分性的區域,近年來被廣泛應用於影象的細粒度分類領域。代表性的工作是17年CVPR中提出的迴圈注意卷積神經網路(Recurrent Attention Convolutional Neural Network, RA-CNN)[14]。該模型模仿faster-RCNN[15]中的RPN (Region Proposal Network) 網路,提出使用APN (Attention Proposal Network) 網路來定位出影象中的區分性區域,並通過在訓練過程中使用排序損失函式 (Rank Loss),來保證每次利用注意模型定位的區域都更加有效。

圖6 RA-CNN網路演算法流程圖

如圖6所示,整個模型由三個VGG19網路組成,第一個VGG網路卷積層輸出的特徵圖送入到APN網路中進行學習,得到關於整幅影象的區分性區域的座標以及Bounding Box的半徑。假設當前VGG網路輸入影象為X,VGG卷積層的所有引數為Wc,則卷積特徵F=Wcx,其中表示在前向傳遞求取卷積特徵過程中網路中所有的卷積,池化和啟用函式操作。而APN網路可以表示為[tx,ty,tl]=g(Wc*X),其中tx,ty,tl分別為輸入影象X中區分性區域中心的橫縱座標,以及該區域的半徑(文章中預設該區域為正方形)。APN網路由兩層全連線網路構成。

在獲得了有辨識性區域的座標和半徑以後,作者利用該座標從上一層VGG輸入影象中將該區域進行裁剪,然後在將其放大以後輸入到下一個VGG網路中進一步學習,依次迭代。

文中除了使用交叉熵損失函式(Cross Entropy Loss)保證每一個VGG網路對影象分類的準確性以外,還使用一個排序損失函式(如公式5所示)來對由APN網路得到的不同的區分性區域進行分類,在分類結果中正確類別的置信概率,要高於用生成該區域的原圖直接進行分類的正確置信概率(見圖6中綠色條紋處的Pt(1) ,Pt(2) ,Pt(3) )。排序損失函式如下:

在迭代過程中,排序損失函式驅動卷積網路尋找輸入影象中最有區分性的區域,作者通過對區分性區域層層放大的方法,將其細節不斷放大,有利於卷積網路對該區域特徵的學習。同時模型中的第一層和第二層網路可以分別認為是目標級別的注意模型(Object level attention model)和目標塊級別的注意模型(Part level attention model)。

最後作者將原圖以及通過APN網路迭代得到的兩個不同尺度的區域影象同時送入深度卷積網路進行訓練,並將這三個尺度影象的特徵進行融合,進行分類,在CUB-200資料集中達到了85.3%的準確率。

6.總結

本文簡要介紹了基於深度學習的精細分類的代表方法,目前精細分類領域發展出了包括基於多網路學習、目標塊和視覺注意等多種方法,每一種方法都是為了獲取到影象中具有區分性的區域,從而幫助網路學習到更加有效的特徵,用來完成對細粒度影象的分類與識別。特別是通過使用視覺注意機制,能夠在不依賴人工標註框資訊的情況下,自動學習出影象中細微的區分性區域,達到非常高的分類精度。

參考文獻

[1] Wah C, Branson S, Welinder P, et al. The Caltech-UCSD Birds-200-2011 Dataset[J]. Advances in Water Resources, 2011.

[2].Bo, et al. “A survey on deep learning-based fine-grained object classification and semantic segmentation.” International Journal of Automation and Computing (2017): 1-17.

[3].Krizhevsky A, Sutskever I, Hinton G E, et al. ImageNet Classification with Deep Convolutional Neural Networks[C]. Neural Information Processing Systems(NIPS), 2012: 1097-1105.

[4].Simonyan K, Zisserman A. Very Deep Convolutional Networks for Large-Scale Image Recognition[C]. International Conference on Learning Representations(ICLR), 2015.

[5].Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C]. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015: 1-9.

[6].He K, Zhang X, Ren S, et al. Deep Residual Learning for Image Recognition[C]. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2016: 770-778.

[7]Huang G, Liu Z, Van Der Maaten L, et al. Densely connected convolutional networks[C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 2017, 1(2): 3.

[8] Hu J, Shen L, Sun G. Squeeze-and-Excitation Networks[C]. // Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 2018

[9]. ZHANG, Xiaofan, et al. Embedding label structures for fine-grained feature representation. In: Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016. p. 1114-1123.

[10] Lin T Y, Roychowdhury A, Maji S. Bilinear Convolutional Neural Networks for Fine-grained Visual Recognition[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2017, PP(99):1-1.

[11] Zhang N, Donahue J, Girshick R B, et al. Part-Based R-CNNs for Fine-Grained Category Detection[J]. European Conference on Computer Vision (ECCV), 2014: 834-849.

[12] Girshick R, Donahue J, Darrell T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition (CVPR). 2014: 580-587.

[13].Uijlings J R, De Sande K E, Gevers T, et al. Selective Search for Object Recognition[J]. International Journal of Computer, 2013, 104(2): 154-171.

[14] Ren S, He K, Girshick R, et al. Faster r-cnn: Towards real-time object detection with region proposal networks[C]//Advances in neural information processing systems (NIPS). 2015: 91-99.

[15] Jianlong Fu, Heliang Zheng, Tao Mei. Look Closer to See Better: Recurrent Attention Convolutional Neural Network for Fine-Grained Image Recognition[C]// IEEE Conference on Computer Vision and Pattern Recognition. 2017,4476-4484.

[16] Lin T, Roychowdhury A, Maji S, et al. Bilinear CNN Models for Fine-Grained Visual Recognition[C]. International Conference on Computer Vision, 2015: 1449-1457.

原文連結

https://mp.weixin.qq.com/s/JGQdHS_yqkOMrN_Z3jEb7A

服務推薦