論文題目:Multi-Label Image Recognition with Graph Convolutional Networks

論文鏈接:arxiv.org/abs/1904.0358

這是2019年CVPR,南京大學計算機軟體新技術國家重點實驗室發表的一篇論文。

主要針對多標籤圖像識別任務,多標籤圖像識別任務的一個有效突破點是利用多標籤之間的關係,對標籤之間的依賴性進行建模。

本文的主要貢獻:

1.提出了一種新穎的可以端到端訓練的多標籤圖像識別框架,這個框架利用GCN將標籤表示(如詞向量)映射為相互依賴的對象分類器。

2.對GCN模型中的相關矩陣的設計進行了深入的研究,提出了一種有效的再加權方案,以同時緩解過擬合和過平滑問題。

方法介紹:

本文的網路框架如上所示,可以看出由兩個部分組成,圖像特徵學習模塊和基於GCN的分類器的學習。

圖像特徵學習模塊:可以採用任意的CNN模型對圖像進行特徵提取,作者採用的是ResNet-101,若輸入圖片大小是448*448,則conv5_x層獲得特徵圖是1024*14*14,然後應用全局平均池化得到1024維的特徵向量x。

基於GCN的分類器學習模塊:通過堆疊GCN模塊,通過GCN函數,將標籤之間的相關矩陣和每個標籤的特徵表示(詞嵌入向量)映射為目標分類器。

接下來,我會詳細說一下我對GCN學習分類器部分的理解。

先說一下GCN,圖卷積的核心思想是通過節點之間的信息傳播來更新節點的表示。GCN的輸入是圖節點的相關矩陣和對每個節點的特徵表示矩陣,通過GCN學習一個函數,來更新節點的特徵表示,最後得到每個節點的新的特徵表示,如下公式所示,其中,A是標籤之間的相關矩陣,H(C*Fl)矩陣中每一行都是一個節點的特徵表示Fl,Fl表示第l層特徵表示的維度,Wl(Fl*Fl+1)矩陣是第l層的權重矩陣;h(.)是一種非線性操作。

多標籤圖像識別中用到的GCN,輸入相關矩陣A和節點特徵表示矩陣W=(C*d),d是每個節點詞向量的維度。多個GCN模塊堆疊,最後輸出分類器矩陣表示W=(C*D),D是圖像表示的維度,在本文中即1024。

最後將得到的分類器W應用在圖像特徵x上,就得到分類的預測得分y=Wx。

到這裡本文的第一個細節就說完了,第二個細節是相關矩陣的構建,在傳統的圖卷積的應用中,相關矩陣都是提前預定好的,但是在多標籤圖像識別的數據集中,沒有一個數據集中提供相關矩陣。所以,對於相關矩陣的構建,對實驗結果也有很大的影響。

本文中採用數據驅動的方式構建相關矩陣,即標籤在數據集中的共現模式來定義標籤之間的相關性。大概分為四部:

1.計算訓練集中標籤對出現的次數,得到M(C*C)矩陣,其中C是類別數量,Mij表示Li和Lj同時出現的次數。

2.計算條件概率矩陣P,Ni表示標籤Li出現的次數,pi=Mi/Ni=P(LjLi)/P(Li)=P(Lj|Li)。

3.由於簡單用P代表相關矩陣存在兩個缺陷:罕見出現的共存可能是雜訊;訓練和測試集中標籤對共存數目不完全一致,所以為了防止過擬合,作者使用二值化方式處理P矩陣得到相關矩陣A。

4.因為3中的操作,可能使得節點特徵過於平滑,為了防止這個問題,作者進一步進行二次加權,如下所示。p決定分配給節點本身和其他相關節點的權重,通過這種做法,在更新節點特徵時,節點本身的權重是固定的,相關節點的權重則由鄰近分佈確定。當 p->1 時,不考慮節點本身的特徵;當 p->0 時,往往忽略相鄰信息。

以上就是主要的細節了。對於實驗,多標籤圖像識別基準數據集 MS-COCO 和 VOC 2007 上的實驗結果表明,本文方法均實現了當前最優。

自己第一次看到圖卷積在圖像領域的應用,期待大家分享交流這方面的應用,自己對文章的一個小的理解,歡迎大家交流指正,期待您的關注。


推薦閱讀:
相關文章