Kaggle Carvana 圖像分割比賽冠軍模型 TernausNet 解讀

 2018-01-30 11:44:00.0

前言:2017 年 7 月,美國二手汽車零售平臺 Carvana 在知名機器學習競賽平臺 kaggle 上發佈了名爲 Carvana 圖像掩模大挑戰賽(Carvana Image Masking Challenge)的比賽項目,吸引了許多計算機視覺等相關領域的研究者參與。

Kaggle Carvana 圖像分割比賽冠軍模型 TernausNet 解讀

輸入圖像(左)和理想的輸出圖像(右)

Carvana 希望爲消費者提供全面、透明的購車信息,以提升購買體驗。傳統的二手車銷售平臺向消費者提供的車輛展示圖片往往是模糊的,缺少標準規範的汽車信息圖片往往也不能全面地向消費者展示全面的信息。這嚴重降低了二手車的銷售效率。爲了解決這一問題,Carvana 設計了一套用以展示 16 張可旋轉的汽車圖片的系統。然而,反光以及車身顏色與背景過於相似等問題會引起一系列視覺錯誤,使得 Carvana 不得不聘請專業的圖片編輯來修改汽車圖片。這無疑是一件費時費力的工作。因此,Carvana 希望此次比賽的參賽者設計出能夠自動將圖片中的汽車從背景中抽離的算法,以便日後將汽車融合到新的背景中去。

此次比賽歷時約 2 個月,共吸引了來自 735 支參賽隊伍的 875 名選手。其中,來自 Lyft 公司的 Vladimir Iglovikov 和來自 MIT 的 Alexey Shvets 憑藉名爲 TernausNet 的工作拔得頭籌。獲獎之後他們也撰寫了一篇論文介紹了自己的比賽思路和使用的模型,我們把論文主要內容介紹如下。

Kaggle Carvana 圖像分割比賽冠軍模型 TernausNet 解讀

背景

近年來,用於密集計算的計算機硬件取得了進步,並且隨着這些硬件越來越平民化,研究者們能夠處理擁有數以百萬計的參數的複雜模型。其中,卷積神經網絡(CNN)是一種在圖像分類、目標識別、場景分類等任務中被廣泛應用的模型,取得了巨大的成功。不例外地,此次競賽獲得第一名的工作 TernausNet 也用到了基於 CNN 的神經網絡組件。TernausNet 是一個可用於密集圖像分割的深度學習模型,能夠根據使用者的要求,對原始圖像進行劃分,將原始圖像分成有不同意義的若干部分。避免傳統的手動圖像分割的耗時耗力的麻煩,達到高效、高質量、標準化的圖像分割要求。

TernausNet 使用利用 ImageNet 數據預訓練得到的 VGG11 編碼器達到了提高 U-Net 網絡性能的目的,出色的完成圖像分割的任務。

網絡架構

U-Net 是一種編碼器-解碼器結構,在網絡向前傳播的過程中,編碼器逐漸收縮,減少池化層的空間維度;而解碼器逐漸擴張,逐步修復物體的細節和空間維度。編碼器和解碼器之間通常存在跳躍連接(skip connection),跳躍連接能夠將低層次的特徵圖和高層次的特徵圖結合起來,能幫助解碼器更好地修復目標的細節,實現像素級的定位。在上採樣部分,大量的特徵通道能向更高分辨率的層傳送上下文信息。

U-Net 的編碼器是一個基於全卷積神經網絡(FCN)的網絡結構,即將卷積神經網絡(CNN)中的全連接層替換爲卷積層。FCN 可以接受任意尺寸的輸入圖像,採用反捲積層對最後一個卷積層的特徵圖進行上採樣, 使它恢復到輸入圖像相同的尺寸,從而可以對每個像素都產生了一個預測, 同時保留了原始輸入圖像中的空間信息, 最後在上採樣的特徵圖上進行逐像素分類。

具體而言,TernausNet 的模型結構如圖 1 所示。編碼器是一個特徵圖尺寸逐漸收縮、通道數逐漸增加的 FCN 網絡結構,卷積層和池化層交替工作,用來捕捉上下文的信息,逐步對特徵圖進行下采樣;解碼器是一個與編碼器對稱的結構,其特徵圖尺寸逐漸擴張,通道數逐漸減少,對特徵圖進行上採樣,逐步恢復高分辨率的圖片細節。根據 U-Net 的思想,解碼器可以通過跳躍連接將對應的編碼器的高分辨率特徵和解碼器上採樣得到的特徵圖結合起來,最終輸出一個逐像素的掩碼。

Kaggle Carvana 圖像分割比賽冠軍模型 TernausNet 解讀

圖1. U-NET 編碼器-解碼器神經網絡架構,編碼器爲用單一卷積層替換全連接層的 VGG11 網絡。藍色的矩形代表經過上一階段變換的多通道特徵圖。矩形的高度與特徵圖的尺寸成正比、寬度和通道數成正比。左側編碼器的通道數逐漸增加,右側解碼器的通道數逐漸減少。頂部連接左側和右側的箭頭表示從編碼層向相應的解碼層的信息遷移。

TernausNet 採用 VGG11 作爲 U-Net 網絡的編碼器。如圖 2 所示,VGG11 由 11 個向前傳播的網絡層組成。其中有 8 個卷積層,每個卷積層採用了 3*3 的卷積核,每個卷積層後都緊跟一個 ReLU 激勵函數層,第 1、2、4、6、8 個卷積層後都緊跟一個 2*2 的最大池化操作,每次操作後特徵圖尺寸減半。第一個卷積層通道數爲 64,第二層通道數爲 128,第三層第四層通道數爲 256,第五層到第八層通道數爲 512。爲了達到語義分割的目的,編碼器採用了類似 FCN 的設計思路,將 VGG11 的最後 3 層替換爲了一個 512 通道的卷積層,它同時也是編碼器與解碼器的「瓶頸」,將 U-Net 的左右兩個部分分開。

Kaggle Carvana 圖像分割比賽冠軍模型 TernausNet 解讀

圖2. VGG11網絡架構。圖中每個卷積層之後是ReLU激活函數。每個框中的數字表示對應特徵圖的通道數量

爲了構建解碼器,TernausNet 用兩倍於特徵圖大小的轉置卷積層同時將通道數減半。轉置卷積的輸出接着被連接到相應的編碼器輸出。得到的特徵圖通過卷積運算處理,保持通道數量與對應的編碼器相同。上採樣步驟重複了 5 次用來與 5 個最大池化層配對。如圖 1 所示,由於 TernausNet 有 5 個最大池化層,每層下采樣圖像兩次,因此,只有邊可以被 32,即 2 的 5 次方,整除的圖像可以用作此模型的輸入。

通常 U-Net 的權重是隨機初始化的。而 TernausNet 相對於傳統的 U-Net 網絡最大的改進在於:TernausNet 先用 ImageNet 預訓練的權重初始化了 U-Net 的前幾層,並應用了微調(fine tuning)。事實上,對於圖像分割任務而言,手動標註的圖像分割數據集往往至多也只有幾千張圖像,這樣的數據規模相對於 ImageNet 等包含數百萬張圖像的數據集來說是很小的。爲了避免過擬合問題,數據集合應該要足夠大,然而這會帶來很高的時間開銷。爲了減小時間開銷並防止過擬合,TernausNet 使用了 ImageNet 數據集上訓練的網絡權重作爲預訓練的參數。

模型訓練及實驗結果

作者在 Inria 航空圖像標註數據集上測試了 TernausNet 的性能。作者採用了 Jaccard 相似係數作爲評價模型的標準。Jaccar 相似係數是兩個有限集合之間的相似度度量。給定兩個集合 A 和 B,Jaccard 相似係數定義爲 A 與 B 交集的大小與 A 與 B 並集的大小的比值,定義如下:

Kaggle Carvana 圖像分割比賽冠軍模型 TernausNet 解讀

在圖像分割任務中,由於圖像由像素點組成,在離散問題中,我們可以將jaccard相似係數改寫爲:

Kaggle Carvana 圖像分割比賽冠軍模型 TernausNet 解讀

其中,Kaggle Carvana 圖像分割比賽冠軍模型 TernausNet 解讀是像素點i的二值類別屬性,Kaggle Carvana 圖像分割比賽冠軍模型 TernausNet 解讀是通過模型預測得出的像素點的概率。

此時,可以將圖像分割問題看作一個像素的二分類問題,其交叉熵損失函數可以表示爲:

Kaggle Carvana 圖像分割比賽冠軍模型 TernausNet 解讀

換句話說,整個 TernausNet 的損失函數可以表示爲:

Kaggle Carvana 圖像分割比賽冠軍模型 TernausNet 解讀

在測試集上得到的實驗結果如圖3所示:

Kaggle Carvana 圖像分割比賽冠軍模型 TernausNet 解讀

圖3. 三種不同權重初始化條件下的 U-Net 模型的 Jaccard 相似係數隨着訓練次數的變化情況。藍線表示隨機初始化權重的模型,橙色的線表示編碼器用 ImageNet 上預訓練的 VGG11 網絡權重初始化的模型,綠線表示網絡在 Carvana 數據集上預訓練的模型。

TernausNet 在 Inria 航拍圖片數據集上的圖像分割效果如圖 4 所示:

Kaggle Carvana 圖像分割比賽冠軍模型 TernausNet 解讀

圖4. 綠色像素的二進制掩模表示分類簇(建築物)。圖 A 表示初始圖像和疊加的真實掩模。圖 B 到圖 D 表示通過不同的方式初始化並且訓練 100 次之後得到的預測結果。圖 B 中的網絡具有隨機的初始化權重。圖 C 中的模型解碼器的權重是隨機初始化的,編碼器的權重以是在 ImageNet 上預訓練的 VGG11 的網絡權重進行初始化。圖 D 的模型使用在 Carvana 數據集上預訓練得到的權重。

TernausNet 的作者認爲,未來可以考慮更多先進的預訓練編碼器,例如:VGG16或者ResNet,用來構造編碼器-解碼器模型。

原論文地址:https://arxiv.org/pdf/1801.05746.pdf 

相關文章:

Kaggle比賽冠軍經驗分享:如何用 RNN 預測維基百科網絡流量

Kaggle16000份問卷揭示數據科學家平均畫像:30歲,碩士學位,年薪36萬


文章來源:雷鋒網