浙大博士生劉漢唐帶你回顧圖像分割的經典演算法
AI科技評論按:圖像語義分割是 AI 領域中一個重要的分支,是機器視覺技術中關於圖像理解的重要一環。近年的自動駕駛技術中,也需要用到這種技術。車載攝像頭探查到圖像,後台計算機可以自動將圖像分割歸類,以避讓行人和車輛等障礙。隨著近些年深度學習的火熱,使得圖像分割有了巨大的發展,本文為大家介紹深度學習中圖像分割的經典演算法。
分享提綱:
圖像分割的問題定義,以及在實際場景中的應用樣例
全卷積網路
雙線性上採樣
特徵金字塔
Mask-RCNN
大家好,我是浙江大學在讀博士生劉漢唐,目前在阿里巴巴 iDST 實習。接下來的分享首先會為大家介紹圖像分割具體是做什麼的,圖像分割有哪些應用場景以及做圖像分割實驗經常用到的幾個數據集。
最後再講解圖像分割的幾個方法。分為兩個部分,第一部分是傳統視覺的圖分割演算法,雖然現在很少用,但自認為演算法比較優美。第二部分是深度學習演算法,會介紹最近幾年流行的經典技巧。
什麼是圖像分割?
圖像分割就是預測圖像中每一個像素所屬的類別或者物體。圖像分割有兩個子問題,一個是只預測類別層面的分割,對每個像素標出一個位置。第二個是區分不同物體的個體。
應用場景,比如自動駕駛,3D 地圖重建,美化圖片,人臉建模等等。
最常用的數據集
主要介紹三個:Pascal VOC;CityScapes;MSCOCO。
第一個是 Pascal VOC 數據集
這是一個比較老牌的數據集,它提供 20 個類別,包括,人,車等。有 6929 張標註圖片,提供了類別層面的標註和個體層面的標註,也就是說既可以做語義分割,只區分是不是車;也可以做個體分割,區分有幾輛車,把不同的車標記出來。
第二個是CityScapes數據集
主要面向道路駕駛場景,它有 30 個精細的類別。其中有 5000 張圖片進行了精細標註,精確到像素級別。還有 20000 張圖片有粗糙的標註。它也可以提供語義層面分割和個體層面分割。
第三個是MS COCO數據集
這是目前為止有語義分割的最大數據集,提供的類別有 80 類,有超過 33 萬張圖片,其中 20 萬張有標註,整個數據集中個體的數目超過 150 萬個,最新的一些論文都會在 MSCOCO 數據集上做實驗,因為它的難度最大,挑戰新最高。
傳統的圖切割
圖切割就是移除一些邊,使得兩個子圖不相連;圖切割的目標是,找到一個切割,使得移除邊的和權重最小。
圖切割的優點和缺點
優點是分割效果還不錯,並且是一種普適性的框架 ,適合各種特徵。缺點是時間複雜度和空間複雜度較高,需要事先選取分割塊兒的數目。
圖切割的失敗案列
為了克服這個失敗,有一篇論文提出了 Normalized Cut。它是在圖分割中加入權重參數 Volume。Volume(A) 是 A 中所有邊的權重之和。這種方法平衡了每一個子圖的大小。
深度學習演算法
第一篇比較成功用神經網路做圖像分割的論文是 Fully Convolutional Networks (以下簡稱為 FCN)。
傳統神經網路做分類的步驟是,首先是一個圖像進來之後經過多層卷積得到降維之後的特徵圖,這個特徵圖經過全連接層變成一個分類器,最後輸出一個類別的向量,這就是分類的結果。
而 FCN 是把所有的全連接層換成卷基層,原來只能輸出一個類別分類的網路可以在特徵圖的每一個像素輸出一個分類結果。這樣就把分類的向量,變成了一個分類的特徵圖。
為了能讓分類的特徵圖恢復到原圖的大小,採用了上採樣層。具體細節可觀看視頻回放。
FCN的結構圖
下面介紹一下怎麼進行圖片放大操作的。
這裡有兩個概念,第一個概念叫反卷積層(Deconvolution);第二個概念叫雙線性差值上採樣(Bilinear Upsampling)。
這裡的「反卷積」其實不是真正的卷積的逆運算,用 Transposed Convolution 代替比較合適,但原論文中用的是 Deconvolution,我們下面還是用這個詞,它可以等效於普通卷積。它的主要目的就是實現上採樣。
反卷積具體是怎麼計算的,詳細過程可到AI慕課學院免費觀看視頻回放。
下面講一下Padding和Stride。
Padding和Stride實際指的是普通卷積,而不是反卷積等效的普通卷積。
雙線性上採樣差
雙線性上採樣差值的三個用途:用作初始化反卷積的權重;不用反卷積,使用上卷積+卷積;只使用上採樣。
下面介紹膨脹卷積或帶洞卷積(Dilated Convolution )。
它的用途可以使特徵圖視野變大,但不增加計算量,對於圖像分割的好處,更利於提取全局信息,這樣就使得分割準確率增加很多。
特徵金字塔(Feature Pyramid)
有以下幾種特徵金字塔
特徵金字塔網路
Pyramid Pooling
前面的是在不同的尺度上提取特徵,而這個是把特徵提取之後pooling到不同的大小。
Mask-RCNN的特點
第一個特點它是多分支輸出的。它同時輸出物體的類別,bounding box和Mask。
第二個特點是它使用了Binary Mask。之前神經網路都是使用多類Mask,而它只需要判斷物體在哪個地方。
最後是RoiAlign層。能比較精確地把物體的位置對應到特徵圖的位置上。
Rol Pooling 與Roi Align的比較
TAG:AI科技評論 |