Cap2Det: Learning to Amplify Weak Caption Supervision for Object Detection 論文筆記

前言

弱監督目標檢測(WSOD)在訓練時不需要詳盡的box標註,但它要求image-level標籤必須是準確的,也即在圖像中至少有一個目標的標籤是這個類,但是這些image-level標籤依然需要人爲實現。那麼有沒有更加自然的監督方式呢?答案是有的!比如當用戶向網上上傳圖像時,通常會帶有一些自然語言描述,或者一些視頻的子標題。這些標註都是自然而然產生的,即人們是自願提供的,因此這些標註與image-level標籤相比是"free"的。

但是,現有的WSOD方法並不能使用這一類監督信息,原因如下:

  • 這些自然語言描述是非結構化的,它們需要經過解析之後才能提取出與目標相關的單詞,而那些與目標無關的單詞將會被去掉。
  • 這些描述既不精確又不詳盡,可能包含圖像中沒有出現的內容,而忽略掉圖像中出現的內容。

在這裏插入圖片描述
看上面右下角那個圖,裏面有一些很顯眼的物體,比如桌子啊碗啊什麼的,但是人們在描述這個圖像是,沒有提到這些物體。因此,如果直接將這些網絡數據送入目前的WSOD方法中,會包含很多限制,而WSOD也不能很好地利用這些豐富的數據所提供的監督信息。

爲了解決這個問題,本文根據圖像以及與其相關的一些caption(句子描述)構建了一個目標檢測器。本文的方法將人類書寫的自由格式文本和視覺目標聯繫起來,並在圖像中的目標上生成準確的bbox,該方法依賴於兩個關鍵點:

  1. 訓練了一個文本分類器,將caption映射到類標籤。這個分類器不依賴於數據集,僅需一小組標籤,並且可以推廣到數據集邊界之外。
  2. 由文本分類器預測出一系列僞gt標籤,並利用這些標籤來訓練WSOD。

本文的方法首先提取proposal,然後對於每個proposal和每個類,學習檢測分數(detection score)和類分數(class score),這兩個分數經過refine之後生成最終的檢測結果。

本文的貢獻如下:

  • 提出了一個從caption中進行學習的新任務,並且設立了一個新的benchmark,不僅僅將目標類別當作ID,還利用了這些類別名稱的語義和同義詞;
  • 在這個benchmark上,將caption與類別單詞匹配,通過利用caption使得模型達到了很好的性能;
  • 在經典的WSOD設置下,本文的模型證明了在image-level監督下也能達到很好的性能。

方法實現

在這裏插入圖片描述
上圖是模型的整體結構,主要由三部分組成:

  • 標籤推理模模塊(label inference module):從文本中提取目標相關內容,方法的創新點就在於標籤推理模型。

  • 多實例檢測模塊(multiple instance detection module):爲每個proposal預測分類分數和檢測分數;

  • 在線調整模塊(online refinement module):對分數進行refine以得到最終檢測結果。

1. 標籤推理模塊

WSOD的基礎是這樣一個假設:image-level標籤應該是準確無誤的。但是,這種"乾淨"的標註信息是很難獲取的。在現實生活中,視覺目標的語義信息可能會以自然語言描述、句子甚至段落的形式出現,這些信息比單獨的類標籤更加noisy,而通過詞彙匹配直接從這些caption中提取類標籤的方法並不十分有效。考慮一個圖像的以下三個句子描述:

“a person is riding a bicycle on the side of a bridge.”
“a man is crossing the street with his bike.”
“a bicyclist peddling down a busy city street.”

可以看出,只有第一句能夠匹配"person"和"bicycle"這兩個類,第二句中"man"和"person",以及"bike"和"bicycle"都是同義詞,因此前兩句都能精確描述"person"和"bicycle"這兩個目標。第三句中沒有出現"bicycle"這一目標。如果用這個樣本來訓練目標檢測器,前兩個句子可以作爲true positive,而第三句將作爲false negative被丟棄。

通過以上的觀察,可以看到爲了利用caption,必須放大caption提供的監督信號,並從中獲取更多的信息。下圖說明了放大監督信號的方法:
在這裏插入圖片描述

  • 這個純文本模型以自由格式的文本作爲輸入,使用Glo Ve將單個單詞嵌入到一個300D的空間中,並將嵌入的特徵投影到一個400D的潛在空間中;
  • 然後利用最大池化將這些word-level表示聚合起來;
  • 最後利用得到的中間表示來預測目標類標籤,這個預測結果回答了"圖像中有什麼",並且將作爲僞image-level標籤來訓練目標檢測器。

作者注意到,當使用僞標籤來訓練檢測器時,存在一個微妙的平衡:召回率增加使得更多的數據得以使用,但是精度會隨之降低,並因此威脅到之前"image-level標籤應該是準確無誤的"這一基礎假設。 爲什麼會發生這種情況呢?因爲基礎假設使得模型對於false positive非常敏感,當給定一個不合適的標籤,而沒有一個proposal符合這個標籤時,模型會感到困惑,從而導致了非最優的檢測結果。

由此,本文最終採取了兩個步驟

  1. 首先根據caption中出現的,並且在圖像中也十分顯眼的目標,對目標類標籤和caption之間進行匹配;
  2. 如果沒有目標可以匹配時,也即caption中並沒有提到與圖像中的目標相關的內容,那麼就需要使用標籤推理模塊預測僞標籤,以進行目標檢測。

在這裏插入圖片描述
如上圖所示,當使用COCO數據集中5%和100%的數據時,精度的範圍在89%和92%之間,而召回率穩定在62%,這也意味着本文的模型能夠從只含有少量標籤的數據集中進行學習,然後僅需要自由形式的文本作爲監督,就可以將知識遷移到其它的數據集上。

2. 多實例檢測模塊

在這裏插入圖片描述
接下來就是利用僞標籤訓練目標檢測模型。如上圖所示:

  • 圖像被送入經過預訓練的卷積層中,根據相應的特徵特徵來提取proposal
  • 然後通過ROIAlign將selective search生成的proposal裁剪爲固定的大小,生成固定大小的卷積特徵圖
  • 最後通過box特徵提取器爲每個proposal提取出固定長度的特徵向量。設圖像xx生成的proposal爲[r1,...,rm][r_1,...,r_m],那麼生成的proposal特徵向量爲[ϕ(r1),...,ϕ(rm)][\phi(r_1),...,\phi(r_m)]

那麼最終就是要生成image-level標籤pc^\hat{p_c}c{1,...,C}c \in \lbrace 1,...,C \rbraceCC是類的數量。

ϕ(ri)\phi(r_i)被送入兩個平行的全連接層,來計算檢測分數oi,cdeto^{det}_{i,c}和分類分數oi,cclso^{cls}_{i,c},這兩個分數都和特定類cc和特定proposal rir_i有關:
在這裏插入圖片描述
然後這兩個分數還要被轉換成兩個概率:

  1. pi,cclsp^{cls}_{i,c}:類cc出現在proposal rir_i中的概率;
  2. pi,cdetp^{det}_{i,c}rir_i對於預測image-level標籤ycy_c的重要性的概率。

在這裏插入圖片描述

最終將兩個概率進行聚合,以預測image-level標籤pc^\hat{p_c},其中pc^[0,1]\hat{p_c} \in [0,1],其值越大,說明cc更有可能出現在圖像中:
在這裏插入圖片描述
假設只有當類cc存在的時候yc=1y_c=1,那麼多實例檢測的loss如下:
在這裏插入圖片描述

3. 在線調整模塊

在這裏插入圖片描述
Online In- stance Classifier Refinemen(OICR)的主要思想是:給定一個gt類標籤,將評分最高的proposal,以及與該gt高度重疊的proposal作爲reference。 這些proposal被當作正樣本,用於訓練這個類的box分類器,其它的proposal被作爲負樣本。初始的評分最高的proposal可能與目標只重疊了一部分,因此將高度重疊的proposal也作爲正樣本將使得proposal更加準確。除此之外,在原始模型和refining模型之間共享卷積特徵,會讓訓練更具有魯棒性。

在OICR中,堆疊多個refining分類器,並且使用前一個分類器的輸出來生成instance-level監督,以訓練successor。在第0次迭代時的檢測分數爲:si,c(0)=pi,cclspi,cdet,si,C+1(0)=0s^{(0)}_{i,c}=p^{cls}_{i,c}p^{det}_{i,c},s^{(0)}_{i,C+1}=0,其中C+1C+1是背景。給定第kk次迭代時的檢測分數si,c(k)s^{(k)}_{i,c},使用image-level標籤來獲得第(k+1)(k+1)次迭代時的instance-level監督yi,ck+1y^{k+1}_{i,c}

假設cc^{'}是圖像xx的標籤,首先尋找評分最高的box rir_i,然後令yi,c(k+1)=1,i{lIoU(rl,rj)>threshold}y^{(k+1)}_{i,c^{'}}=1, \forall i \in \lbrace l|IoU(r_l,r_j)>threshold \rbrace。當k>0k>0時,使用(C+1)(C+1)-way的全連接層來對si,c(k)s^{(k)}_{i,c}進行推理,如式(1)所示。

OICR的訓練損失如下:
在這裏插入圖片描述
最終整個模型的損失如下式所示,本文對模型共進行3次refine(K=3K=3):
在這裏插入圖片描述


結論

本文利用caption這種弱監督信息來進行目標檢測,爲了從caption中獲取更多關鍵信息,本文創新性地提出了一種純文本分類器,它能夠放大caption提供的監督信號,將人們在caption中標註的信息,和圖像中出現的目標進行匹配。如果caption中並未提到有關圖像的內容,就需要通過推理來預測僞標籤,以進行目標檢測。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章