【AI有识境】如何掌握好图像分割算法?值得你看的技术综述
大家好,這是專欄《AI有識境》的第二篇文章,講述如何掌握好圖像分割算法。
進入到有識境界,可以大膽地說自己是一個非常合格的深度學習算法工程師了,能夠敏銳地把握自己研究的領域,跟蹤前沿和能落地的技術,對自己暫時不熟悉的領域也能快速地觸類旁通。
本篇文章,我們講解圖像分割需要掌握的重要知識點。本文將帶你走進圖像分割的大門,著重關注該領域的研究方向以及重點難點,講述如何學好圖像分割算法。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?作者&編輯 | 言有三
1 圖像分割簡介
圖像分割,是指將圖像分成若干語義目標的過程,可以細分為3個方向,見下圖對比。
首先我們要把圖像中的目標歸為不可數目標(stuff類別,比如天空只有一個,不能數)和可數目標(things類別,比如人可以有多個),然后我們看3個方向的對比。
圖1 圖像分割3個研究方向
語義分割(semantic segmention),也就是通常理解的圖像分割,它是一個逐像素的圖像分類問題,每個像素預測類別唯一,可數目標與不可數目標都要分類。
實例分割(Instance Segmentation),不僅要預測可數目標的語義標簽,還有區分個體的ID,語義標簽指的是物體的類別,而實例ID則對應同類物體的不同編號,注意不可數目標不需要預測。
全景分割(Panoptic Segmentation),它要求圖像中的每個像素點都必須被分配一個語義標簽和一個實例id。
全景分割與語義分割的關系是:如果所有的類別都是stuff,那么全景分割除了度量與語義分割不同外,其它相同。與語義分割相比,全景分割的困難在于要使網絡結構能夠區分不同實例;
全景分割與實例分割的關系是:全景分割中不允許重疊,但實例分割可以;此外實例分割需要每個分割的置信概率,但全景分割不需要。
近些年來隨著深度學習技術的發展,圖像分割技術有了突飛猛進的進步,從研究方向上來說,存在以下幾個大的方向:
(1) 語義分割;
(2) 實例分割;
(3) 全景分割;
(4) Image Matting;
(5) 弱監督與遷移學習;
對人類而言,由于有大量的先驗知識和相關的學習經驗,可以迅速識別圖像的相關內容。然而對于計算機而言,對各類復雜形狀和紋理的目標進行分割是有挑戰的。
目前分割模型存在的主要挑戰有:
(1) 多尺度:圖像中目標尺寸的巨大差異,給分割模型構成挑戰。
(2) 實例與全景分割:實例與全景分割不僅要分割出目標,還要識別不同的個體,圖像中存在非常多的ID以及遮擋時,給分割模型構成挑戰。
(3) 分割精度:分割需要進行像素級的分類,因此對分割精度要求很高,比如在邊緣處的分割瑕疵容易被放大。
本文剩余部分將介紹基于深度學習的圖像分割任務中各個研究方向的核心技術,并對重難點加以解讀。
2 語義分割問題
語義分割屬于圖像分割的一個主要方向,自深度學習技術得到快速發展之后,這個任務已經得到較好的解決,我們公眾號此前也寫過不少語義分割模型的介紹文章,接下來我們介紹語義分割中的核心概念與技術。
2.1 語義分割基礎
所謂語義分割,其實就是一個逐像素的圖像分類問題,輸出是一張與輸入圖大小相等的圖,每一個像素值表示語義的類別?;镜脑砣缦聢D2所示,包括一個卷積特征提取模塊和反卷積模塊:
圖2 語義分割原理示意圖
圖2左半部就是對空間分辨率降采樣的卷積特征提取網絡,右半部就是恢復分辨率的反卷積網絡。這里的反卷積也被稱為轉置卷積,即Transposed Convolution,實際上它仍然是一個卷積操作,和卷積操作的對比如下。
卷積操作可以查看下圖3,上方2×2是輸出,下方的4×4是輸入,卷積核大小為3×3,經過步長等于1的卷積后,得到了2×2的矩陣。
圖3 卷積操作示意圖
反卷積,則要實現從2×2的輸入,得到4×4的輸出,對應的就是下面的圖4。
圖4 反卷積操作示意圖
當然反卷積模塊也可以采用一些線性插值法來實現,比如雙線性插值,如下圖5。
圖5 雙線性插值示意圖
假如我們已經知道4個點,Q11=(x1,y1),Q12=(x1,y2),Q21=(x2,y1),Q22=(x2,y2),如果要知道任意點P的值P(x,y),可以采用插值法。
首先對x方向進行線性插值:
然后再對y方向也進行線性插值:
當然還有其他插值方法,我們不再一一講述。
另一方面,語義分割模型需要進行評測,在這里簡單介紹其中的損失目標和評估指標。
首先是損失目標,作為一個逐像素的分類問題,交叉熵損失函數是最常用的語義分割損失函數,令n對應于樣本數量,m是類別數量,yij 表示第i個像素樣本屬于分類j的標簽,它是0或者1,f(xij)是預測第i個像素樣本屬于分類j的概率,定義如下。
與圖像分類相比,區別僅在于將對整個圖像的預測,轉換到逐個像素的預測,最后取均值。當然如果要對不同像素做不同加權,或者對不同的類別進行加權,則可以設定經驗加權值。
另外還有一個很常用的二分類分割損失函數,稱之為Dice距離,定義如下。
其中p,q分別是預測值,Dice距離相對于softmax loss可以更好地應對2分類目標的類別不平衡問題;
最后我們簡單說一下語義分割任務的評測指標,常見的評測指標是逐像素分類精度,類別分類精度,以及IoU。
圖6 語義分割評測指標IoU
通過計算兩個區域的交并比,就可以獲得0~1的IoU指標,該指標相對于像素分類精度更敏感,更適合用于評估語義分割模型。根據類別還可以設置不同的權重進行加權,得到不同的mIoU值,可以參考各類benchmark。
語義分割還有許多核心技術,包括編解碼模型設計,多尺度特征融合,膨脹卷積與可變形卷積,注意力模型等,接下來進行介紹。
2.2 編解碼模型
上面介紹的語義分割原理示意圖就是一個編解碼模型,卷積為編碼部分,編碼器(encoder)的任務是在給定輸入圖像后,通過網絡學習得到輸入圖像的特征圖;反卷積為解碼部分,它在編碼器提供特征圖后,逐步實現每個像素的類別標注。除此之外,還有若干被廣泛驗證有效的編解碼模型經典模型,包括SegNet[1],FCN[2],U-Net[3],它們都在同一時期被提出。
SegNet中的編碼器結構與解碼器結構是一一對應的,即一個解碼器具有與其對應的編碼器相同的空間尺寸和通道數,如下圖7所示。
圖7 SegNet框架
對于基礎SegNet結構,二者各有13個卷積層,其中編碼器的卷積層對應了VGG16網絡結構中的前13個卷積層。SegNet記錄下池化過程中的位置信息來替代反卷積操作,其基本原理如下圖8,即使用卷積過程中記錄好的最大池化位置信息從低分辨率的特征圖恢復高分辨率的稀疏特征圖。
圖8 SegNet記錄池化
Fully connected Network(FCN)也使用了跳層連接的方案,將不同全局步長下的層進行連接,如下圖9。
圖9 FCN框架
卷積conv7對應全局步長為32,直接對其上采樣得到結果的模型為FCN32s。如果將步長為16的pool4的結果經過卷積變換后和conv7的上采樣結果進行融合,則模型為FCN16s。隨著pool4細節信息的加入,FCN16s比FCN32s的分割結果更好,以此類推。
UNet則將各級具有相同分辨率的卷積特征圖和反卷積特征圖進行了一一對應融合。
圖10 UNet框架
相比于SegNet和FCN,U-Net是一種更為常見的圖像分割模型,它充分利用了卷積和反卷積層的特征融合,結構簡單,性能魯棒。
這三個模型結構代表了最經典的分割編解碼模型架構,其核心為跳層連接,實現卷積核和反卷積核的信息融合。
2.3 多尺度特征融合
為了對多尺度的目標進行分割,各種尺度的特征融合對于模型來說是有益的,上一節介紹的基于跳層連接的編解碼模型就實現了卷積和反卷積過程中不同抽象層級的特征融合,除此之外還有一些有代表性的技術。
如ParseNet[4]將基于池化的全局特征與局部特征進行了融合。全局特征擁有更好的抽象層級和全局感受野,局部特征則擁有更多的細節,兩者融合理論上可以提升模型的性能,原理如下圖11。
圖11 ParseNet框架
PSPNet[5]則在ParseNet的基礎上進一步改進,提出了金字塔池化模塊Pyramid Pooling Module,如圖12。它與目標檢測中的SPPNet結構類似,在使用CNN進行特征提取后,對特征圖使用了多個不同尺度的池化,從而得到了不同級別的池化后的特征圖。隨后對這些特征圖分別進行特征學習,上采樣,然后串接成最終的特征向量,其中相鄰的池化采樣層采樣倍率為1/2。
圖12 PSPNet框架
對于圖像分割任務,全局特征通常是與整體輪廓相關的信息,而局部特征則是圖像的細節紋理,要想對多尺度的目標很好的完成分割,這兩部分信息都是必須的。多尺度特征融合的模型變種再多,本質上都是類似的思想。
2.4 膨脹卷積和注意力機制
膨脹卷積由Google的研究人員在文章[6]中提出,也被稱為帶孔卷積或者空洞卷積,這是一個在不增加計算量的情況可以增加卷積核感受野的卷積操作。它的原理就是原始卷積核相鄰元素之間的距離不是1,而是根據膨脹系數的大小而不同,如下圖3所示就是膨脹系數為2的帶孔卷積,它的感受野是原始的3×3卷積的兩倍。
圖13 膨脹卷積
通過控制膨脹系數(即相鄰卷積元素的距離),就可以控制卷積核的感受野,如下圖14展示膨脹系數分別是1,2,4的對比。
圖14 不同膨脹系數的膨脹卷積
感受野越大,越有利于綜合上下文信息,這對于圖像分割任務非常有效。在膨脹卷積被提出以前,大部分的空間尺寸恢復工作都是由上采樣或反卷積實現的。前者通常是通過線性或雙線性變換進行插值,雖然計算量小,但是效果有時不能滿足要求;后者則是通過卷積實現,雖然精度高,但是參數計算量增加了。如果使用膨脹卷積,可以在不控制特征分辨率下降的情況下,繼續擴大感受野抽象特征,如下圖15實現stride=16的卷積特征提取模塊。
圖15 基于膨脹卷積的特征提取
另外,基于膨脹卷積結構,研究者們提出了ASPP(Atrous Spatial Pyramid Pooling)[7],這種結構使用了并聯的膨脹卷積,在同一級特征圖上提取了多尺度的特征。
圖16 ASPP結構
如果將感受野的控制擴展到全圖,則可以采用自注意力機制,其中非局部卷積[8]以自注意的方式可以獲得全局的感受野,如圖17。
圖17 非局部卷積結構
圖17中輸入與輸出都是T×H×W×1024的4維張量,輸入block首先使用1×1×1卷積進行降維,得到三個T×H×W×512的數據塊。它們各自進行維度變換,其中兩個變換為THW×512,另一個變換為512×THW。一個THW×512和512×THW的矩陣相乘得到THW×THW的矩陣,并經過Softmax函數,得到權重函數。所以f(.)的操作就是每個通道上每個點的特征向量進行內積,空間信息得到了保留。權重向量與另一路經過維度變換的THW×512的數據進行計算,然后進行維度變換,得到輸出結果。下圖16便是一個基于自注意力機制的分割模型[9]。
圖18 注意力分割模型
另外圖像金字塔[10]也是一種簡單的多尺度技術,但是因為導致計算量的快速增加而不是很流行。
2.5 邊緣后處理技術
由于經典的CNN感受野是局部而不是整個圖像,并且具有一定的空間變換不變性,這降低了分割的邊緣定位精度。因此圖像分割常常使用一些后處理技術,這里我們主要介紹CRF技術。
CRF(Conditional random field)即條件概率隨機場,它是一種非局部的方法,可以融合場景信息。Google的語義分割模型Deeplab系列前幾篇[6,7]文章就使用了CNN加上全連接的CRF的設計。目前,全連接的CRF(DenseCRF)[11]是其中最好的方法,該方法中每一個圖像像素都跟其他所有像素相連。
為了能夠優化如此海量的連接圖,研究者們采用了在特征空間使用高斯濾波的方法完成。這個方法的思路是通過采用高效的近似高維濾波來減少圖中消息傳遞,從而將消息傳遞的二次復雜度降低為線性復雜度。目前在主流的CPU和500×500尺度上,全連接CRF的速度在100ms左右,可以近似達到實時。
將CRF與CNN進行融合也有兩種思路,一種是直接分步后處理,如Google的Deeplab系列文章的研究,將其用于處理CNN網絡的輸出;另一種就是直接融合進CNN框架,以同樣的方式進行反向傳播,典型如牛津大學的Torr-Vision研究組提出的《CRF as RNN》[12]。它用一個FCN模型完成第一階段的分割任務,用RNN形式的CRF完成第二階段的后處理。
圖19 CRF as RNN框架
融合了CRF方法的CNN在邊緣的定位精度上通常都取得了很大的提升。
2.6 Image Matting技術
語義分割的應用往往是為了做背景替換,而上面介紹的語義分割技術無法做好這件事,簡單的替換會導致出現很假的效果圖,比如下面的效果圖20。
圖20 直接背景替換
另一方面,也很難僅僅通過二分類的分割模型對非常復雜的結構進行分割,比如人的發絲(如圖21)。要想獲得更好的結果,需要用到軟分割,即Image Matting技術,Image Matting能預測出前景,背景,以及它們融合的透明度系數。
圖21 Image Matting問題
image matting問題可以用一個簡單的數學表達式表達,I = aF + (1-a)B,其中F是前景,B是背景,a是透明度,一張圖可以看作是在透明度圖像的控制下,前景和背景的線性融合。比如上圖左下角就是 Image Matting得到的透明度通道,右下角就是基于透明度通道的背景替換,得到比較自然的結果圖。
要解Image Matting問題有點病態,對于三通道的RGB圖像,只有3個方程,卻需要解出7個變量(前景與背景顏色以及透明度通道),所以許多傳統方法如closed form matting都要做局部區域顏色不變的約束才能求出解析解。
Image Matting方法從傳統方法發展到了深度學習,?
www.alphamatting.com這里有主流方法的比較,傳統的Image Matting方法都基于trimap進行求解。
所謂trimap,就是包含3種區域的圖,分別為確定性前景,確定性前景,不確定性區域。如下圖22中間圖的紅色,藍色,綠色部分;對trimap求解,就是要優化不確定性區域,得到0~1的概率,即最右邊圖。
圖22 基于Trimap的Matting方案
當前基于深度學習的Image Matting方法主要歸為兩類,基于Trimap和不基于Trimap的模型,這里我們不對整個領域的內容進行總結,而是各自介紹一個典型模型。
Adobe提出的Deep image matting[13]是早期基于深度學習的Image Matting模型。
圖23 Deep image matting框架
輸入RGB圖與Trimap,然后采用標準的語義分割模型預測最終的結果,主要區別在于優化目標上增加了透明度通道的回歸損失。Deep image matting雖然簡單,但不是一個端到端的模型,因此使用起來不是那么簡潔。
如果能夠擺脫trimap的約束,Image Matting模型就可以獲得end-to-end的解法,而且可以擺脫對需要非常精確的matting標注數據集的依賴,這才是更好的方案,也是當前Image Matting的研究重點,這里我們簡單介紹一個框架代表,即Boost Matting[14]。
圖24 Boost Matting框架
這樣的框架包括3部分:Mask Prediction Network:就是普通的分割網絡,所以采用了編解碼結構,同時可以使用高質量精細標注數據集和低粗標注數據集進行訓練。Quality Unification Network:它是一個對Mask Prediction Network結果進行歸一化的網絡,即降低精細標注數據集的預測結果,提高粗標注數據集的預測結果。Matting Refinement Network:基于輸入圖和Quality Unification Network結果預測輸出RGB和Alpha通道。
Image Matting問題既是一個非常經典的圖像處理問題,也作為語義分割的一個延伸問題,這一個子領域由于落地商業價值比較大,仍然在吸引一些研究人員改進相關模型。
那么時至今日,語義分割還有哪些研究點呢?可以關注以下方向。
(1) 語義分割剩余難點,包括因為樣本數量或者樣本尺度帶來的各類別不平衡的問題,更高效的感受野與上下文信息控制機制,更簡潔有效的Image Matting框架,更好的優化目標。
(2) 新的模型架構的嘗試,如基于圖神經網絡的分割[15]。
(3) 弱監督分割,如何在少量標注樣本的基礎上,實現高精度模型的訓練與數據的自動標注迭代[16-17]。
(4) 遷移學習,如何基于數據集更好地泛化到相似但分布差異較大的場景,典型如自動駕駛的各種天氣環境與不同路面情況[18]。
(5) 3D圖像與視頻分割,這既是二維圖像分割的延伸,也可以看作是新的研究方向[19-20]。
3 實例分割與全景分割
實例分割是另一個重要方向,它不僅要預測目標的語義標簽,還要區分個體的ID,相比于語義分割任務更加復雜。
3.1? 實例分割基礎
因為實例分割框架很多都基于目標檢測分支,所以從優化目標上來看,實例分割至少包含3個優化目標:
(1) 一個是像素類別分類損失,這與語義分割相同;
(2) 一個是目標檢測損失,這就是目標檢測框架里的回歸損失。
(3) 一個是實例分類損失,指目標框里的前景與背景二分類損失。
當然,最新的許多實例分割模型也不需要基于候選框,各自的優化目標也有所不同,可參考具體的工作。
對于實例分割模型的評測,則主要參考目標檢測中的AP(Average Precision)指標,只是計算IoU重疊度的區域不是框,而是不規則的掩膜,其計算方法請參考本系列的往期文章【AI初識境】深度學習模型評估,從圖像分類到生成模型。
3.2? 有候選框的多階段實例分割框架
這一類方法,即首先通過目標檢測的方法找出實例所在的區域(bounding box),再在檢測框內進行語義分割,每個分割結果都作為不同的實例輸出。
實例分割中最核心的問題在于區分個體ID,按照人類的思維習慣,可以采用遍歷的方法在圖像中進行掃描,早期的DeepMask網絡[21]就是這樣的一個實例分割框架,如下圖25。它給定一個圖像塊作為輸入,輸出一個與類別無關的mask和一個取值為0或者1的score,來估計這個圖像塊完全包含一個物體的概率。score=1需要滿足兩個條件:一是這個圖像塊中間位置包含一個物體,二是物體在一定尺度范圍內是全部被包含在這個圖像塊中,只有score=1的時候,mask才有效。
圖25 Deepmask框架
圖25中輸入原圖其實有多個目標,但是模型只預測該圖的中心位置是否有目標,那如何能夠預測出所有目標呢?在預測的時候,采用多尺度的滑動窗口對圖像進行滑動窗口預測,最后再把相同的目標合并掉,不同的目標則標記為不同ID。DeepMask由于是早期框架,過于復雜,不僅采用全連接層預測mask,還采用低效率的滑動窗口重復計算各個圖像塊的特征,所以沒有實用價值。
后來的InstanceFCN[22]雖然也采用滑動窗口的方式來尋找目標,但它共享了卷積特征,并且是在特征圖上進行滑動,是更加高效的方式,如下圖26所示。
圖26 InstanceFCN框架
我們知道實例分割的結果是可以重疊的,就是說在不同的候選框內,同一個像素可能有不同的預測結果,可以同時屬于A目標的左上角和B目標的右下角,那怎么樣才能對同一個像素預測出不同標簽呢?InstanceFCN提出了一個位置敏感圖(position-sensitive score maps)的概念,用于預測一個像素屬于某個物體的相對位置的得分。比如上圖26中間有9個圖,就是將相對位置分為了9種,從左上到右下,每個圖不是直接預測屬于某個目標的概率,而是預測其屬于某個目標相對位置的概率,最后進行合并推斷,理論上一個點最多可以預測出9個ID。
InstanceFCN需要單獨的分類分支來進行類別分類,后面的FCIS[23]綜合了Faster RCNN框架中的RPN和InstanceFCN的思想,提出了同時做檢測與分割的框架。由于本文篇幅問題,我們不細講,請讀者閱讀拓展資料。
Mask-RCNN[24]是一個隨后被提出的更加簡單的框架,把實例區分的問題直接交給Faster RCNN框架,而對RPN輸出的每一個RoI預測分割掩膜,即像素類別。訓練時Mask RCNN的參數設置也與Faster RCNN一致。
圖27 MaskRCNN框架
對于每一個RoI,如果類別為k,則產生k個掩膜,即每一個類別都輸出一個掩膜。這樣的好處在于,各個類別之間不產生競爭,對于實例分割來說這很重要,因為實例分割可以重疊,故損失的定義也只在對應的通道。
3.3? 無候選框的一階段實例分割框架
目標檢測模型從多階段發展到了一階段,從基于候選框的框架發展到了anchor free框架,實例分割模型也是如此。
YOLACT[25]是一個實時的實例分割框架,它通過將掩模分支添加到現有的一階段(one-stage)目標檢測模型來實現實例分割,如圖28。
圖28 YOLACT框架
YOLACT實際上是對每個實例預測分割候選集中k個分割的線性組合系數(Mask Coefficients),最后通過線性組合來生成實例mask。
SOLO(Segmenting Objects by Locations)[26]則是另一個非常簡潔的實例分割框架,它通過提出實例類別概念(Instance Category)來表示量化后的物體中心位置和物體的尺寸,從而區分不同的實例。SOLO認為由目標的中心位置和尺寸就可以區分不同的實體,因此將圖片劃分成S×S的網格,如果物體的中心落在了某個網格中,那么該網格就有了兩個任務,預測類別和實例掩膜,如圖29。
圖29 SOLO框架
PolarMask則是一個anchor-box[27]的實例分割框架,它通過預測實例的輪廓而不是二值掩膜來實現分割,將實例分割問題轉化為實例中心點分類(instance center classification)問題和密集距離回歸(dense distance regression)問題,這也是將目標檢測最新研究遷移到實例分割中。
圖30 PolarMask框架
另外還有一些自下而上的方法,即先對語義目標進行分割,再對實例進行聚類,如SGN[28],但是對密集分割的質量要求很高,后處理方法繁瑣,并不是好的方法,這里就不再展開介紹。
3.4? 全景分割
全景分割任務(Panoptic Segmentation)[29]要求圖像中的每個像素點都必須被分配給一個語義標簽和一個實例id,全景分割的具體分割形式有以下兩點要求:
(1) 圖像中的每個像素點都有一個對應的語義類別和一個實例id,如果無法確定可以給予空標注。
(2) 所有語義類別要么屬于stuff,要么屬于things,不能同時屬于二者;且stuff類別沒有實例id。
一個典型的全景分割框架[30]包括語義分割預測和實例分割預測分支,最后對其進行合并處理。實例標簽可以從實例分割分支給出,而類別則可以綜合兩個分支的結果,詳情可以閱讀該文了解。
圖31 統一全景分割框架
全景分割的評估指標也有所不同,下圖32分別展示了全景分割中的true positives、false positives和false negative ,對應配對的實例分割、不配對的錯誤分割和未召回的分割。
圖32 全景分割度量
基于此定義全景分割質量的度量:
其中分子是對所有匹配上的分割求平均IoU;分母后兩項是懲罰匹配錯誤的像素。
時至今日,實例分割和全景分割的研究點在哪里呢?可以關注以下方向。
(1) 現有檢測模塊的優化。
(2) Anchor free框架,如基于輪廓的分割預測。
(3) 弱監督實例分割與全景分割。
4 圖像分割的數據集與評測
研究圖像分割問題需要標準數據集來橫向比較模型,我們簡單介紹幾個常見的數據集與評測指標。
4.1 PASCAL VOC?
數據集地址:http://host.robots.ox.ac.uk/pascal/VOC/,初始發布于2005年,至2012年止。The PASCAL Visual Object Classes(VOC)項目是由Mark Everingham等人牽頭舉辦的比賽,這是一個時間跨度很大的比賽,從2005年開始到2012年結束。它起初主要用于object detection(目標檢測),最后包含了5個比賽,classification,detection,segmentation,action classification,person layout。
分割標注包含了20類,語義分割和實例分割兩個任務,VOC2012包含了6929張圖。
圖33 PASCAL樣圖
4.2 COCO
數據集地址:http://cocodataset.org/,發布于2014年,由微軟亞洲研究院整理。Microsoft COCO數據集,是對標PASCAL VOC,ImageNet數據集而誕生的,同樣可以用于圖像分類,分割,目標檢測等任務,共30多萬的數據。
從COCO的全稱Common Objects in Context可以看出,這個數據集以場景理解為目標,特別選取比較復雜的日常場景,相比于PASCAL VOC的建立是為了推進目標檢測任務,COCO的建立則是為了推進自然背景下的定位與分割任務,所以圖像中的目標通過非常精確的分割掩模進行位置的標定。
COCO數據集有91類,以人類4歲小孩能夠辨識為基準。其中82個類有超過5000個instance。
圖34 COCO樣圖
數據集的建立動機是研究3個問題:
(1) non-iconic views。要求數據集中的圖像,盡量不要只是包括一個大的目標或者一個空的場景的圖像,而是兩者都有,保證場景的復雜性。
(2) contextual reasoning between objects,即場景的覆蓋性,需要廣而且足夠復雜。數據集總共有328000個圖像和2500000個標注。與ImageNet和SUN數據集(另一個場景分類數據集)相比,類別數目更少,但是每一個類別的instance更多,這其實是有利于目標定位任務的,因為多樣性更好。對比PASCAL VOC,COCO數據集則要大的多,有更多類和instance。
(3) precise 2D localization。即精確定位,要求分割的標注結果非常精確,定位的邊框也是從分割掩膜生成而不是直接畫框標注,保證了極高的精度。
4.3 Cityscape
數據集地址:https://www.cityscapes-dataset.com/Cityscapes,發布于2016年,這是由奔馳采集的面向城市道路街景語義理解的數據集。Cityscapes包含50個城市在春夏秋三個季節不同時間段不同場景、背景的街景圖。
分割標注包含了30類,語義分割和實例分割兩個任務,提供5000張精細標注的圖像、20000張粗略標注的圖像。
圖35 Cityscape樣圖
4.4 ADE 20k
數據集地址:http://groups.csail.mit.edu/vision/datasets/ADE20K/,發布于 2017年,有2萬張圖片150種目標的場景數據集,可用于場景感知、解析、分割、多物體識別和語義理解。
圖36 ADE20k樣圖
更多數據集與評測基準,請大家閱讀相關資料。
5 參考資料
最后,我們來匯總一下有三AI生態中掌握好圖像分割任務可以使用的相關資源。
(1) 圖像分割專欄,公眾號寫過許多圖像分割相關的技術文章,大家可以去閱讀。
【技術綜述】閑聊圖像分割這件事兒
【完結】12篇文章帶你逛遍主流分割網絡
【技術綜述】基于弱監督深度學習的圖像分割方法綜述
(2) 書籍《深度學習之圖像識別:核心技術和與案例實戰》和《深度學習之人臉圖像:核心算法與案例實踐》,前者介紹了圖像分割中的核心算法,后者詳解了主流的語義分割模型。
言有三新書來襲,業界首次深入全面講解深度學習人臉圖像算法
言有三新書再印,從理論到實踐系統性學習計算機視覺
(3) 視頻課程《深度學習之圖像分割:理論與實踐》,從理論和Pytorch實踐來詳細教大家學好圖像分割算法,是更新的內容,詳情可以閱讀。
【視頻課】一課掌握圖像分割核心理論與實戰技巧
(4) 知識星球。知識星球是有三AI的付費內容社區,里面包括各領域的模型學習,數據集下載,公眾號的付費圖文原稿,技術總結PPT和視頻,知識問答,書籍下載,項目推薦,線下活動等資源,了解詳細請閱讀以下文章:
【雜談】有三AI知識星球一周年了!為什么公眾號+星球才是完整的?
【雜談】萬萬沒想到,有三還有個保密的‘朋友圈’,那里面都在弄啥!
最后是本文的參考文章:
[1] Badrinarayanan V, Handa A, Cipolla R. Segnet: A deep convolutional encoder-decoder architecture for robust semantic pixel-wise labelling[J]. arXiv preprint arXiv:1505.07293, 2015.
[2] Long J, Shelhamer E, Darrell T. Fully convolutional networks for semantic segmentation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2015: 3431-3440.
[3] Ronneberger O, Fischer P, Brox T. U-net: Convolutional networks for biomedical image segmentation[C]//International Conference on Medical image computing and computer-assisted intervention. Springer, Cham, 2015: 234-241.
[4] Liu W, Rabinovich A, Berg A C. Parsenet: Looking wider to see better[J]. arXiv preprint arXiv:1506.04579, 2015.
[5] Zhao H, Shi J, Qi X, et al. Pyramid scene parsing network[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 2881-2890.
[6] Chen L C, Papandreou G, Kokkinos I, et al. Deeplab: Semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected crfs[J]. IEEE transactions on pattern analysis and machine intelligence, 2017, 40(4): 834-848.
[7] Chen L C, Papandreou G, Schroff F, et al. Rethinking atrous convolution for semantic image segmentation[J]. arXiv preprint arXiv:1706.05587, 2017.
[8] Wang X, Girshick R, Gupta A, et al. Non-local neural networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 7794-7803.
[9] Fu J, Liu J, Tian H, et al. Dual attention network for scene segmentation[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 3146-3154.
[10] Chen L C ,? Yi Y ,? Jiang W , et al. Attention to Scale: Scale-Aware Semantic Image Segmentation[C]// 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2016.
[11] Kr?henbühl P, Koltun V. Efficient inference in fully connected crfs with gaussian edge potentials[C]//Advances in neural information processing systems. 2011: 109-117.
[12] Zheng S, Jayasumana S, Romera-Paredes B, et al. Conditional random fields as recurrent neural networks[C]//Proceedings of the IEEE international conference on computer vision. 2015: 1529-1537.
[13] Xu N, Price B, Cohen S, et al. Deep image matting[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017: 2970-2979.
[14] Liu J , Yao Y , Hou W , et al. Boosting Semantic Human Matting with Coarse Annotations[J]. 2020.
[15] Qi X ,? Liao R ,? Jia J , et al. 3D Graph Neural Networks for RGBD Semantic Segmentation[J]. IEEE, 2017.
[16] Huang Z, Wang X, Wang J, et al. Weakly-supervised semantic segmentation network with deep seeded region growing[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 7014-7023.?
[17] Dai J, He K, Sun J. Boxsup: Exploiting bounding boxes to supervise convolutional networks for semantic segmentation[C]//Proceedings of the IEEE International Conference on Computer Vision. 2015: 1635-1643.
[18]?Huang J ,? Lu S ,? Guan D , et al. Contextual-Relation Consistent Domain Adaptation for Semantic Segmentation[C]// ECCV 2020. 2020.
[19] Shelhamer E, Rakelly K, Hoffman J, et al. Clockwork convnets for video semantic segmentation[C]//European Conference on Computer Vision. Springer, Cham, 2016: 852-868.
[20] Tran D, Bourdev L, Fergus R, et al. Deep end2end voxel2voxel prediction[C]//Proceedings of the IEEE conference on computer vision and pattern recognition workshops. 2016: 17-24.
[21] Pinheiro P O O, Collobert R, Dollár P. Learning to segment object candidates[C]//Advances in Neural Information Processing Systems. 2015: 1990-1998.
[22]?Dai J ,? He K ,? Li Y , et al. Instance-sensitive Fully Convolutional Networks[J]. Springer, Cham, 2016.
[23]??Li Y ,? Qi H ,? Dai J , et al. Fully Convolutional Instance-Aware Semantic Segmentation[C]// Computer Vision & Pattern Recognition. IEEE, 2017.
[24]?He K ,? Gkioxari G , P Dollár, et al. Mask R-CNN[C]// IEEE. IEEE, 2017.
[25]?Bolya D ,? Zhou C ,? Xiao F , et al. YOLACT: Real-time Instance Segmentation[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, PP(99):1-1.
[26]?Wang X ,? Kong T ,? Shen C , et al. SOLO: Segmenting Objects by Locations[C]// 2020.
[27] Xie E ,? Sun P ,? Song X , et al. PolarMask: Single Shot Instance Segmentation With Polar Representation[C]// 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2020.
[28] Shu L ,? Jia J ,? Fidler S , et al. SGN: Sequential Grouping Networks for Instance Segmentation[C]// 2017 IEEE International Conference on Computer Vision (ICCV). IEEE, 2017.
[29] Kirillov A, He K, Girshick R, et al. Panoptic segmentation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2019: 9404-9413.
[30] Xiong Y ,? Liao R ,? Zhao H , et al. UPSNet: A Unified Panoptic Segmentation Network[C]// 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2019.
總結
圖像分割是計算機視覺領域的基礎任務之一,是從事計算機視覺必須掌握的方向。本文主要介紹圖像分割任務的全貌,許多細節并非全面,但仍希望能在你初學的道路上給予一定的幫助!
有三AI計算機視覺學習季劃
有三AI季劃是我們推出的終身計算機視覺培養計劃,有三作為主要導師直接帶領,囊括答疑,微信群交流,線下活動,多本自寫的書籍,圖文課件與代碼,直播與直播,知識星球社區,內容組與研發組權限,了解詳細請閱讀以下文章:
【CV春季劃】2021年有三AI-CV春季劃出爐,最后一屆言有三手把手從零帶學
【CV夏季劃】告別入門,提升眼界,從掌握最有價值的那些CV方向開始
【CV秋季劃】人臉算法那么多,如何循序漸進地學習好?
【CV秋季劃】模型優化很重要,如何循序漸進地學習好?
【CV秋季劃】圖像質量提升與編輯有哪些研究和應用,如何循序漸進地學習好?
【CV秋季劃】生成對抗網絡GAN有哪些研究和應用,如何循序漸進地學習好
轉載文章請后臺聯系
侵權必究
往期精選
【AI白身境】深度學習從棄用windows開始
【AI白身境】Linux干活三板斧,shell、vim和git
【AI白身境】學AI必備的python基礎
【AI白身境】深度學習必備圖像基礎
【AI白身境】搞計算機視覺必備的OpenCV入門基礎
【AI白身境】只會用Python?g++,CMake和Makefile了解一下
【AI白身境】學深度學習你不得不知的爬蟲基礎
【AI白身境】深度學習中的數據可視化
【AI白身境】入行AI需要什么數學基礎:左手矩陣論,右手微積分
【AI白身境】一文覽盡計算機視覺研究方向
【AI白身境】AI+,都加在哪些應用領域了
【AI白身境】究竟誰是paper之王,全球前10的計算機科學家
【AI初識境】從3次人工智能潮起潮落說起
【AI初識境】從頭理解神經網絡-內行與外行的分水嶺
【AI初識境】近20年深度學習在圖像領域的重要進展節點
【AI初識境】激活函數:從人工設計到自動搜索
【AI初識境】什么是深度學習成功的開始?參數初始化
【AI初識境】深度學習模型中的Normalization,你懂了多少?
【AI初識境】為了圍剿SGD大家這些年想過的那十幾招
【AI初識境】被Hinton,DeepMind和斯坦福嫌棄的池化,到底是什么?
【AI初識境】如何增加深度學習模型的泛化能力
【AI初識境】深度學習模型評估,從圖像分類到生成模型
【AI初識境】深度學習中常用的損失函數有哪些?
【AI初識境】給深度學習新手做項目的10個建議
【AI不惑境】數據壓榨有多狠,人工智能就有多成功
【AI不惑境】網絡深度對深度學習模型性能有什么影響?
【AI不惑境】網絡的寬度如何影響深度學習模型的性能?
【AI不惑境】學習率和batchsize如何影響模型的性能?
【AI不惑境】殘差網絡的前世今生與原理
【AI不惑境】移動端高效網絡,卷積拆分和分組的精髓
【AI不惑境】深度學習中的多尺度模型設計
【AI不惑境】計算機視覺中注意力機制原理及其模型發展和應用
【AI不惑境】模型剪枝技術原理及其發展現狀和展望
【AI不惑境】模型量化技術原理及其發展現狀和展望
【AI不惑境】AutoML在深度學習模型設計和優化中有哪些用
【AI有識境】如何掌握好圖像分類算法?
總結
以上是生活随笔為你收集整理的【AI有识境】如何掌握好图像分割算法?值得你看的技术综述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【每周CV论文】初学实例分割需要读哪些文
- 下一篇: 【杂谈】当当最新购书优惠来了,满300-