論文筆記(1):From Image-level to Pixel-level Labeling with Convolutional Networks


 

文章采用了多實例學習(MIL)機制構建圖像標簽同像素語義的關聯 。 該方法的訓練樣本包含了70 萬張來自ImageNet的圖片,但其語義分割的性能很大程度上依賴於復雜的后處理過程,主要包括圖像級語義的預測信息、超像素平滑策略、物體候選框平滑策略和 MCG分割區域平滑策略。

下圖是論文所用方法的一般性說明:

(1)使用來自Imagenet的弱注釋數據(僅圖像級別的類別信息)對模型進行訓練。
(2)CNN生成特征平面。
(3)這些平面通過一個聚合層來約束模型,把更多的權重放在正確的像素上。
(4)通過分類正確的圖像級標簽來訓練系統。

底部:在測試期間,聚合層被去除,並且CNN密集地將圖像的每個像素進行分類(僅考慮少數分割先驗)。

這個框架分為訓練和測試兩個部分,是不一樣的結構。
訓練:通過CNN提取的feature map,然后進行聚合,把Pixel level 整合到image level,整合的過程:使得屬於相應類的像素的分數高。這也是本文的創新點
測試:測試集采用POSCAL,測試過程的結構沒有整合層,但是增加了先驗層,提高TP,降低FP。

 

訓練的過程中,首先利用已有的overfeat結構作為feature extractor,計算出feature planes之后,再經過四層的segmentation net,這四個seg net均采用了ReLU激活函數,並且采用了dropout策略防止過擬合。輸出是C+1個h*w的score image;經過聚合層,映射到image level,輸出是C+1維的向量,每個元素是該類別的條件概率。
上面的過程可以看出來,aggreg層是本論文的創新點,這個層到底是如何把像素和image轉換的呢?
請看下圖(聚合層的詳細流程):
從K個類里面算出來K個圖片,圖片中每一個像素都是在當前點的位置的像素屬於第K類的分數,用什么函數把圖像轉化為一個值呢,這個函數要滿足:當這個圖象屬於第I個類的時候,能夠使得這個值最大。
首先想到的是,把圖像的值都加起來,存在的問題是,平均化,沒有差異。
然后想到了聚合層實際上是相當於一般cnn的mini-batch的max pooling層,max pooling層的像素點都與input image的sub patch相關,於是想到了把最大的score加起來。這個函數存在的問題是,需要很長時間才能收斂。
作者不知道為何想到了convex 優化中的平滑函數,這個函數有很好的性質,能夠讓分數高的像素權重也高。
關於這一層的參數確定,用的是softmax回歸。
訓練好相應的模型之后,就要用測試數據測試了
測試過程如下圖:
首先輸入要測試的數據,經過overfeat6層卷積,形成上圖中的pi.j(K)的圖像,然后與IPL相乘,得到后面的y',最后,與
smooth prior卷積,形成最終結果,輸出,smooth prior能夠輸出平滑的分割結果。
測試過程增加了兩種先驗經驗的約束層,來達到高的准確率。
global:image level prior:從訓練的圖像中,初步分割結果的每個點,屬於哪類概率乘以該類在訓練過程中出現的概率。
smooth:用了三種方式增加TP,降低FP,分別是,超像素初步分割,bing計算box,累加出現在bounding Box中的次數。
這兩種方式的好處是,強制使低概率的被標記為背景,保證局部一致性。
 
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
(部分譯文)

3 Architecture

正如我們在第1節中指出的,CNN是一個非常靈活的模型,可以應用於各種圖像處理任務,因為它們減輕了任務特定功能的需求。 CNN學習過濾器的層次結構,當層次結構“更深入”時,過濾器提取更高層次的表示。 他們學習的功能類型也是非常普遍的,CNN使轉移學習(到另一個任務)非常容易。 但是,這些模型的主要缺點是在訓練過程中需要大量的數據。

由於圖像級對象標簽的數量比像素級分割標簽大得多,因此利用圖像分類數據集來執行分割是理所當然的。 接下來,我們考慮一個類C的分割問題。我們假設分類數據集至少包含相同的類。
在分類時可用的額外類,不在分割數據集中的,映射到“背景”類。 這個背景類對於在分割過程中限制假陽性的數量是必不可少的。

我們的架構是CNN,它是通過Imagenet的一個子集進行訓練的,從圖像級標簽生成像素級標簽。 如圖2所示,我們的CNN是相當標准的,有10級卷積和(可選)池化。輸入一個400×400的RGB補丁I,並輸出對應於12倍下采樣圖像像素標簽分數的| C | +1個平面(每個類一個,加上背景類)。在訓練過程中,第3.1節中介紹的一個額外圖層將像素級標簽聚合為圖像級標簽。 出於計算能力的原因,我們“凍結”了CNN的第一層,以及一些已經訓練有素(通過Imagenet分類數據)的CNN模型。

我們選擇訓練以用於對ILSVRC13進行對象分類的Overfeat。Overfeat模型生成尺寸為1024×hi×wi的特征圖,其中hi和wi是RGB輸入圖像大小,卷積核大小,卷積步長和最大池大小的函數。只保留前6個卷積層和2個Overfeat層,我們的RGB 400×400圖像塊I被轉換成1024×29×29的特征表示。

我們增加了四個額外的卷積層(我們用H6來表示來自OverFeat的特征面)。 每一個(除了最后的Y)之后是逐點校正非線性(ReLU)單元。

(W p,b p)表示第p層的參數。 在這一步,我們不使用任何最大池化。 一個dropout正規化策略被用於所有層(以防止過擬合)。 網絡輸出| C | + 1個維度為h o×w o的特征平面,訓練中考慮為每個類別加上背景。

3.1 Multiple Instance Learning

網絡從二次采樣圖像I為每個像素位置(i,j)產生一個分數和對於每個k∈C的類。假定在訓練期間,我們只能訪問圖像類別標簽,我們需要一種方法來聚合這些像素級分數,將其合並為一個單一的圖像級別的分數,然后將最大化正確的類標簽k*。 假設聚合過程aggreg()已經被選擇,我們通過應用下面的softmax函數將圖像級別的分數解釋為類別條件概率:

其中θ= {W p,b p∀p}表示我們框架下的所有可訓練參數。 然后,我們在所有訓練數據對(I,k*)上最大化對數似然(關於θ):

訓練是通過隨機梯度來實現的,通過softmax,聚合過程進行反向傳播,並且直到我們網絡的第一個非凍結層。(原文勘誤:應為up to the而不是“up the to”)

Figure 2:完整的RGB圖像通過網絡(由Overfeat和四個額外的卷積特征組成)向前傳送,生成維度(| C | + 1)×h o×w o的輸出平面。 這些輸出平面可以看作是輸入圖像的子采樣版本的像素級標簽。 然后,輸出通過Log-Sum-Exp圖層將像素級標簽聚合成圖像級標簽。 誤差通過層C10-C7反向傳播。

Aggregation

聚合應該促使網絡走向正確的像素級分配,這樣它可以在分割任務上正常執行。 一個明顯的聚合將是所有像素位置的總和:

然而,這將在訓練過程中對圖像的所有像素賦予相同的權重,甚至對該圖像上不屬於類別標簽的像素分配權重(even to the ones which do not belong to the class label assigned to the image)。注意,該聚合方法與通過mini-batch應用傳統的全連接分類CNN等同。 實際上,輸出平面中的每個值對應於以輸入平面中的對應像素為中心的 sub-patch的CNN的輸出。 另一方面,可以應用一個最大池化來匯總:

這將促使該模型增加被認為是圖像級分類最重要的像素的分數。 根據我們的經驗,這種方法訓練得不好。 請注意,在訓練開始時,所有像素可能具有相同(錯誤)的分數,但是只有一個(由max選擇)將在訓練過程的每一步都增加其分數。 因此,模型需要大量的時間才能收斂也不奇怪。

我們選擇了最大函數的平滑版本和凸近似,稱為Log-Sum-Exp(LSE):

 

超參數r控制近似值的平滑程度:高r值意味着具有類似於最大值的效果,非常低的值將具有類似於得分平均的效果。 這種聚合的優點是在訓練過程中具有相似分數的像素將具有相似的權重,參數r控制這種“相似性”。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM