语义分割和实例分割_一文读懂语义分割与实例分割
以人工智能為導向的現代計算機視覺技術,在過去的十年中發生了巨大的變化。今天,它被廣泛用于圖像分類、人臉識別、物體檢測、視頻分析以及機器人及自動駕駛汽車中的圖像處理等領域。圖像分割技術是目前預測圖像領域最熱門的一項技術,原因在于上述許多計算機視覺任務都需要對圖像進行智能分割,以充分理解圖像中的內容,使各個圖像部分之間的分析更加容易。 本文會著重介紹語義分割和實例分割的應用以及原理。
Email: williamhyin@outlook.com
知乎專欄: 自動駕駛全棧工程師
在開始這篇文章之前,我們得首先弄明白,什么是圖像分割?
我們知道一個圖像只不過是許多像素的集合。圖像分割分類是對圖像中屬于特定類別的像素進行分類的過程,因此圖像分割可以認為是按像素進行分類的問題。
那么傳統的圖像分割與今天的圖像分割的區別在哪?
傳統的圖像分割算法均是基于灰度值的不連續和相似的性質。而基于深度學習的圖像分割技術則是利用卷積神經網絡,來理解圖像中的每個像素所代表的真實世界物體,這在以前是難以想象的。
基于深度學習的圖像分割技術主要分為兩類:語義分割及實例分割。
語義分割和實例分割的區別又是什么?
語義分割會為圖像中的每個像素分配一個類別,但是同一類別之間的對象不會區分。而實例分割,只對特定的物體進行分類。這看起來與目標檢測相似,不同的是目標檢測輸出目標的邊界框和類別,實例分割輸出的是目標的Mask和類別。
Source
智能圖像分割的應用
了解完圖像分割的基本概念,我們來看看圖像分割在實際中的應用有哪些?
由于圖像分割技術有助于理解圖像中的內容,并確定物體之間的關系,因此常被應用于人臉識別,物體檢測, 醫學影像,衛星圖像分析,自動駕駛感知等領域。在我們生活中,圖像分割技術的應用實例也很常見,如智能手機上的摳圖相機,在線試衣間,虛擬化妝,以及零售圖像識別等,這些應用往往都需要使用智能分割后的圖片作為操作對象。
下面讓我們來看看圖像分割技術是怎么應用在這些實例上的。
人臉識別
人臉識別技術作為類別檢測技術幾乎被應用于每一臺智能手機及數碼相機上。通過這項技術,相機能夠很快的檢測并精確定位人臉的生物特征,實現快速自動聚焦。在定位人臉的生物特征后,算法還能夠分割圖像中人的五官及皮膚,實現自定義美顏,美容甚至實現換臉的效果。
source
摳圖相機及肖像模式
谷歌最近發布了一個可以實時去除背景的 App: YouTube stories,通過分割圖像中的前景和后景,內容創作者可以在創作故事時顯示不同的背景。
source
除了摳圖相機外,手機相機中的肖像模式也是常見的圖像分割應用。
如榮耀手機上的肖像打光模式,我們可以看到隨著布光的角度和強度變化,除了圖像的背景產生了顯著的變化,人臉的細節,皮膚色彩,明暗度對比甚至陰影角度都產生了變化。這種驚艷的效果離不開精確的圖像前后景及面部組分分割技術。
source
虛擬化妝
虛擬化妝常見于亞馬遜,道格拉斯等美妝在線商城。在圖像分割技術的幫助下,人們甚至不需要去專柜試色號,就可以直觀的通過虛擬化妝功能看到模特或者自身使用不同化妝品組合的效果。可以預見,隨著美妝市場的繼續擴大,AR虛擬試妝會成為未來的一項趨勢。
source
在線試衣間
虛擬化妝都能有了,虛擬試衣間肯定也不會少。在智能圖像分割技術的幫助下,不用脫衣也能實現完美試穿。東芝的一款虛擬試衣間利用圖像分割技術將二維圖像創建為三維模型,并實現不同衣物與人體表面的完美疊合。
source
零售圖像識別
圖像分割技術還被廣泛應用在零售及生產領域。零售商和生產商會將圖像分割后的圖片作為圖像搜索引擎的輸入,以便于理解貨架上貨物布局。這項算法能夠實時處理產品數據,以檢測貨架上是否有貨物。如果一個產品不存在,他們可以識別原因,警告跟單員,并為供應鏈的相應部分提出解決方案。
source
手寫字符識別
手機上有很多手寫文字提取的App,它們的原理絕大部分也是基于智能圖像分割技術從手寫文檔中層層提取單詞,來識別手寫字符。
source
醫學影像
圖像分割技術在醫學影像學中的應用,往往被很多外行人忽略。但是實際上在過去的十年中,智能圖像分割技術幾乎遍布醫學影像學的各項檢查中。不僅是因為醫學圖像分割能夠準確檢測人類不同部位的疾病的類型,例如癌癥,腫瘤等,更重要的是它能夠有助于從背景醫學影像(例如CT或MRI圖像)中識別出器官病變的像素,這是醫學影像分析中最具挑戰性的任務之一。
Source
自動駕駛汽車
近幾年,隨著自動駕駛汽車的興起,圖像分割技術也被廣泛應用在這一領域,目前主要被用來識別車道線和其他必要的交通信息,或者將圖像語義分割的結果與激光傳感器的點云數據做數據匹配,實現像素級的多傳感器融合。
Source
智能圖像分割的任務描述
我們已經在上文中討論了很多基于深度學習的圖像分割技術的應用,現在讓我們來看看這項技術的輸出究竟是什么?
簡單來說,圖像分割技術的目標是輸出一個 RGB 圖像或單通道灰度圖像的分割映射,其中每個像素包含一個整數類標簽。
不同于目標檢測輸出的是目標整體的邊界框和類別,語義分割輸出圖像中每個像素的類別,而實例分割輸出的是目標的Mask和類別。
下面我們通過jeremyjordan的例子了解智能圖像分割的輸出是什么。
首先我們對左上的輸入圖片進行圖像分割,預測圖像中的每一個像素,為每個可能的類創建一個輸出通道,使用 one-hot 對類標簽進行編碼(右上)。通過獲取每個通道的argmax,可以將多通道的預測結果壓縮為單通道分割圖(右下)。當我們使用單通道分割圖覆蓋我們觀察目標的單一通道時,圖像中出現特定類的區域會被高亮,我們稱之為掩膜(Mask)。我們可以將掩膜覆蓋在觀察目標上,來檢查目標中的對象(左下)。值得注意的是,為了更容易了解圖像分割的過程,作者使用了一個低分辨率的預測圖做效果展示,而在實際的圖像分割中,預測圖會被Resize到原始輸入圖像的尺寸。
語義分割
在上文中,我們介紹了智能圖像分割技術的任務究竟是什么,而接下來我們會介紹完成這項任務的方法。語義分割便是其中之一。
語義分割的目的是為了從像素級別理解圖像的內容,并為圖像中的每個像素分配一個對象類。
Semantic Segmentation by Patch Classification
基于像素塊分類的卷積分割網絡是最原始的智能圖像分割網絡,該算法將待分類像素周圍的一個圖像塊作為卷積神經網絡的輸入,用于訓練與預測。
paper:2012-Deep Neural Networks Segment Neuronal Membranes in Electron Microscopy Images作者采用滑窗預測的方法遍歷整張圖像的內容,將每一個滑動窗口內的像素塊饋送到神經網絡中進行類別預測,將預測結果的編碼標注在原圖像中的對應位置,以實現近似像素級的分割。
但是這種方法存在顯而易見的缺點:
FCN for Semantic Segmentation
基于像素塊分類的語義分割在結果上只是近似像素級的分割,如何實現完全的像素級分割是接下來的發展方向。
2015年J.Long 給出了當時全像素級分割的最佳解決方案,Fully Convolutional Network 全卷積神經網絡。FCN在網絡架構上不再使用全連接層,直接從抽象的特征中恢復每個像素所屬的類別。這種端對端的網絡架構,不僅在速度上遠快于像素塊分類的方式,而且能夠適用于任何大小的圖像。
paper:2015-Fully Convolutional Networks for Semantic SegmentationFCN的作者描述了一種Dense prediction的預測方式。這種方式的特點在于將VGG-16等傳統卷積分類網絡的最后幾個全連接層都換成了卷積層,最終的輸出結果不再是一維的類別概率信息,而是二維特征圖中每個像素點的分類概率信息。
我們可以看到在上圖中,作者刪除了卷積分類網絡的最后一層,并將之前幾個全連接層都換成了卷積層,然后經過softmax層,獲得每個像素點的分類概率信息。
那么問題來了,在上圖中我們最終得到的二維特征圖只有64x64的大小,如何保證我們輸入和輸出圖像的尺寸一致?
我們已經在Dense prediction的過程中實現了Downsampling,現在我們需要找到一個Upsampling的方式。
常見的Upsampling方案有兩種:Shift-and-Stitch 和Bilinear Interpolation。
FCN的作者在這里給出了另外一種方案:轉置卷積(Transpose Convolution)。通過轉置卷積層和激活函數的堆棧,FCN可以學習非線性上采樣。
在有些研究中,這種操作又被稱為反卷積(deconvolution),但是把轉置卷積稱作反卷積的說法有此不恰當。
轉置卷積與反卷積的實際數學運算是不同的。反卷積在數學上做的是卷積的逆操作,而轉置卷積進行規則卷積,但逆轉其空間變換。
聽起來有些令人困惑,我們來看下一個具體的例子。
一個5x5圖像輸入到步長為2,無填充的3x3卷積層,這樣就能得到一個2x2的圖像。
如果我們想要逆轉這個過程,我們需要逆數學運算,以便從我們輸入的每個像素生成9個值。我們以步長為2的3x3卷積核遍歷2x2的輸入圖像,最終輸出4x4的圖像。這就是反卷積。
而轉置卷積要求輸出一定是一個和正常卷積輸入大小相同的圖像,對于這個例子是5x5的圖像。為了實現這一點,我們需要在輸入上執行一些花哨的填充,即對2x2的輸入特征矩陣進行內填充(如填充到3x3),使其維度擴大到適配卷積目標輸出維度,然后才可以進行普通的卷積操作。
使用轉置卷積能夠從之前的卷積結果中重建空間分辨率。這雖然不是數學上的逆,但是對于編碼器-解碼器體系結構來說,它仍然非常有用。
現在我們來看看FCN的網絡結構。
原始的FCN只在Conv6-7這一步直接進行32倍上采樣的轉置卷積,我們會發現輸出的結果過于模糊。
那么我們如何改善這個結果呢?
這就得利用Resnet里面的skip-connection,融合不同網絡層的輸出信息,以獲得更多的細節。在卷積神經網絡中,低層網絡往往有更多的細節信息,而高層網絡具有更強的語義信息,但是對細節的感知能力較差。因此我們將Pool4層的輸出與conv6-7上采樣的結果相加,恢復到原圖分辨率只需要16倍上采樣。然后我們可以繼續向更低層做信息融合,得到8倍上采樣的結果,相比于FCN-32及16,FCN-8的結果更加精細。
總的來說,FCN作為語義分割的開山之作,無論是結構還是思路都值得后續的研究者借鑒。但是在輸出結果方面還是有待提升,主要體現在即使FCN-8的輸出結果還是不夠精細,而且沒有空間規整(spatial regularization)步驟,使得結果缺乏空間一致性,即沒有充分考慮像素與像素之間的關系。
U-Net for medical engineering
生物醫學對于視覺任務的要求往往很高,目標輸出不僅要包括目標類別的位置,而且圖像中的每個像素都應該有類標簽。為了滿足這些要求,Olaf Ronneberger 等人為生物醫學專門開發了U-Net圖像分割網絡,通過使用更深的網絡結構和跳層連接大幅提升了分割的精細度。
paper: 2015-U-Net: Convolutional Networks for Biomedical Image Segmentation從上圖中我們可以看到,U-Net的結構由左、右兩部分組成,因為它的架構看起來像字母 U,因此被命名為 U-Net。U-Net包括一個收縮通道來捕獲上下文,一個對稱的擴展通道來恢復空間分辨率和一系列跨層連接來融合低層級的細節信息和高層級的語義特征,從而實現精確定位。U-Net可以根據數據集的復雜程度,通過增加和刪減block來自由加深網絡結構。值得注意的是U-Net的卷積過程沒有Padding操作,需要選擇適當的輸入尺寸,使得每次池化的輸入尺寸都是偶數,以確保分割的準確。
其實認真分析U-Net 和 FCN 的基本結構會發現,兩者都是收縮通道和擴展通道的組合,但是還是存在一些結構上的區別。
其一是,U-Net沒有使用VGG等ImageNet預訓練的模型作為特征提取器,原因在于U-Net做的是醫學圖像的二值分割,與ImageNet的輸出分類完全不同。
其二是,U-Net在進行特征融合的時候,采用的是Concat,而不是FCN中的Add。Concat是通道數的增加, Add是特征圖相加,通道數不變。與Concat相比,Add的計算量少很多,但是Concat層更多用于不同尺度特征圖的語義信息的融合,而Add較多使用在多任務問題上。
SegNet
FCN和U-Net,這兩種網絡基本上定義語義分割的基本架構,即降采樣層/收縮通道和上采樣層/擴展通道的組合。
paper: SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image SegmentationSegNet 在FCN和U-Net的基礎上,進一步優化了語義分割的網絡結構,提出語義分割的模型由編碼器Encoder和解碼器Decoder組合,取代了收縮通道和擴展通道的說法,被后來的研究人員所引用。SegNet的編碼器網絡由13個卷積層組成,對應于 VGG16網絡中用于對象分類的前13個卷積層。而解碼器網絡的任務是將編碼器學習的低分辨率特征語義投影到高分辨率的像素空間上,得到一個像素級的密集分類。
值得注意的是,解碼網絡使用最大池化層索引進行非線性上采樣,以生成稀疏的特征映射,然后通過可訓練的卷積模塊進行卷積,使特征映射更加密集。最終解碼器輸出的特征映射被提供給Softmax層進行逐像素分類。
那么最大池化層索引上采樣與FCN的轉置卷積層上采樣區別在哪?
從上圖中我們可以看到,使用池化層索引進行上采樣最顯著的一個優勢就是減少訓練的參數量,減少內存開銷。其次可以提升邊緣刻畫度。并且這種上采樣模式具有廣泛適用性,可以被用在到任何編碼解碼器網絡中。
DeepLab
我們在上文中已經討論了FCN,U-Net和Segnet這些經典的語義分割網絡,接下來我們會討論代表著語義分割最前沿技術的Deeplab系列。
Deeplab是由谷歌研究人員開發的,目前被廣泛應用的語義分割模型,它最重要的特性是以更低的計算成本獲得更好的輸出。
從2016年谷歌首次推出Deeplab V1,到最新的Deeplab V3+,已經三代半了。
本文將主要介紹Deeplab v3+。
我們首先來看看Deeplab V3+的由來。
paper:Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation上圖中a是SPP空間金字塔結構,b是在Segnet和U-Net上被廣泛認可的Encoder-Decoder體系結構,而Deeplab v3+結合了a和b,并通過使用Modified Aligned Xception和Atrous Separable Convolution,開發出更快,更強大的網絡。
下圖是Deeplab v3+的網絡結構。
我們可以看到,Deeplab V3+由Encoder和Decoder兩部分組成,相對于V3 最大的改進是將 DeepLab 的 DCNN及ASPP 部分看做 Encoder,將 ASPP的輸出的高層語義特征與DCNN中低層高分辨率信息融合后上采樣成原圖大小的部分看做 Decoder 。值得注意的是,這里的上采樣方式是雙線性插值。雙線性插值采樣在較低的計算/內存開銷下能給出相對于轉置卷積上采樣更好的結果。
接下來我們來看看Deeplab V3+的幾個重要組成部分:
1. Atrous Convolution
在上文中,我們提到過,FCN通過對輸入圖像進行32倍下采樣,再上采樣得到語義分割的結果。但是這種操作的主要問題之一是由于DCNN(深度卷積網絡)中重復的最大池化和下采樣造成圖像分辨率過度下降,圖像細節信息丟失嚴重。此外,由于在學習上采樣的過程中還涉及到其他參數,將采樣數據上采樣到32倍會是一項計算和內存開銷很大的操作。
那么能否在相同的計算條件下,不用池化損失信息的方式增大卷積的感受野?
Deeplab的研究人員為此提出了一種新的下采樣的思路:空洞卷積/擴展卷積(Atrous/Dilated convolutions)。空洞卷積能在相同數量的參數下,獲得更大的感受野,從而避免在重復池化下采樣的過程中圖像分辨率過度降低,從而丟失細節信息。
讓我們來看看空洞卷積是怎么在參數量不變的情況下,增大感受野的?
空洞卷積的工作原理是通過增加空洞來填補卷積核各值之間的空隙來增加卷積核的大小。卷積核各值之間填充的空洞數量稱為擴張率(dilation rate)。當擴張率等于1時,它就是正常卷積。當速率等于2時,會在每個值之間插入一個空洞,使得卷積核看起來像一個5x5的卷積。換句話說,利用添加空洞擴大感受野,讓原本3x3的卷積核,在相同參數量和計算量下擁有5x5(dilated rate =2)或者更大的感受野,從而無需下采樣。
值得注意的是,在VGG中使用多個小卷積核代替大卷積核的方法,只能使感受野線性增長,而多個空洞卷積串聯,可以實現感受野指數級增長。比如正常卷積中一個5×5的卷積核是可以由2次連續的3×3的卷積代替。但是對于同樣是3x3大小,dilated=2的空洞卷積來說,連續2層的3×3空洞卷積轉換卻相當于1層13×13卷積。
2. Atrous Spatial Pyramidal Pooling(ASPP)
空間金字塔形池化是SPPNet中引入的一個概念,用于從特征圖中捕獲多尺度信息。在SPP出現之前,如果想要獲取多尺度信息,需要提供不同分辨率的輸入圖像,并將計算出的特征圖一起使用,這往往需要很多計算和時間成本。而使用空間金字塔形合并,可以使用單個輸入圖像捕獲多尺度信息。下圖是SPPNet的結構圖。
Source
SPPNet產生3個尺度分別為1x1、2x2和4x4的輸出。通過將這些值轉換為一維矢量進行連接,從而在多個尺度上捕獲信息。
Deeplab 系列為了使得目標在圖像中表現為不同大小時仍能夠有很好的語義分割效果,將多尺度的信息融合的概念應用于空洞卷積,通過將不同的擴張率空洞卷積的輸出串聯在一起,以多個尺度比例捕捉圖像的上下文,即ASPP。
值得注意的是,Deeplab v3+ 借鑒了MobileNet,在ASPP及DCNN中的Xception模塊都使用深度可分離卷積(depthwise separable convolution),在保持性能前提下,有效降低了計算量和參數量。
Deeplab V3+對V3的ASPP結構進行了修改,最終的ASPP結構如下圖所示。
Source
除了3x3不同擴張率的空洞卷積及1x1的卷積輸出外,為了提供全局信息,還會將1x1的GAP上采樣后添加到空間金字塔上。
3. Modified Aligned Xception
Deeplab v3+的主干使用Modified Aligned Xception。Xception是經典的圖像分類網絡,然后在可變形卷積網絡(Deformable Convolutional Networks)中引入了Aligned Xception以進行目標檢測。而Modified Aligned Xception 在此基礎上進行了進一步的優化。
上圖是Aligned Xception, 下圖是Modified Aligned Xception。
我們發現改進的地方主要在于,采用深度可分離卷積替換所有的最大池化操作,從而方便后續利用空洞可分離卷積(atrous separable conv )來提取任意分辨率的特征圖。其次在每個 3×3 深度卷積后,添加和MobileNet類似的額外的批處理歸一化和ReLU激活。
source
實例分割
在上文中,我們已經討論了很多語義分割的網絡模型。借助這些模型我們能夠從像素級別理解圖像,并準確分割對象的形狀。
比如在下圖中,我們能夠通過語義分割有效地區分牛和背景。
但是問題來了,你能區分上面的圖片中有幾頭牛嗎?
僅憑語義分割顯然不能回答這個問題,下面讓我們看看實例分割是怎么做到區分同一類別中不同物體的。
Mask R-CNN
Mask R-CNN是實例分割的代表之作。
如下圖所示,Mask R-CNN 對于分割同一類別中不同物體,給出的答案是同時利用目標檢測和語義分割的結果,通過目標檢測提供的目標最高置信度類別的索引,將語義分割中目標對應的Mask抽取出來。
paper:Mask R-CNNMask R-CNN的基礎其實是Faster R-CNN。Faster R-CNN使用 CNN 特征提取器來提取圖像特征,利用 Region Proposal 網絡生成感興趣區域(ROI),并通過ROI Pooling將它們轉換為固定的維度,最后將其反饋到完全連接的層中進行分類和邊界框預測。
而Mask R-CNN與Faster R-CNN 的區別在于,Mask R-CNN在Faster R-CNN 的基礎上(分類+回歸分支)增加了一個小型FCN分支,利用卷積與反卷積構建端到端的網絡進行語義分割,并且將ROI-Pooling層替換成了ROI-Align。下圖是Mask R-CNN 基于Faster R-CNN/ResNet的網絡架構。
Mask R-CNN首先將輸入原始圖片送入到特征提取網絡得到特征圖,然后對特征圖的每一個像素位置設定固定個數的ROI/Anchor(默認15個),將這些ROI區域饋送到RPN網絡進行二分類(前景和背景)以及坐標回歸,找出所有存在對象的ROI區域。緊接著通過ROIAlign從每個ROI中提取特征圖(例如7*7)。最后對這些ROI區域進行多類別分類,候選框回歸和引入FCN生成Mask,完成分割任務。
對ROIAlign的理解得從ROI-Pooling出發。為了得到固定大小(7X7)的特征圖,一般我們需要做兩次量化操作:1)圖像坐標 — feature map坐標,2)feature map坐標 — ROI feature坐標。池化操作的輸出值只能是整數,RoI Pooling進行兩次取整損失了較多的精度,而這對于分割任務來說較為致命。Maks R-CNN提出的RoI Align取消了取整操作,保留所有的浮點數,然后通過雙線性插值的方法獲得多個采樣點的值,再將多個采樣點進行最大值的池化,即可得到該點最終的值。
下圖是ROI-Pooling和ROIAlign的計算對比。
對于推理過程,我們還需要將14x14的Mask二值化后Resize到原圖中的實際大小,但是實際上這一結果其實并不精細。
為此作者設計了另外一種Mask R-CNN網絡結構:Faster R-CNN/FPN,并將最后的輸出的Mask分辨率提升到28x28。FPN特征金字塔網絡通過融合低層網絡的高分辨率信息和高層網絡的高語義特征,大幅提升多尺度物體及小物體的檢測效果,使得Mask R-CNN的輸出結果更加精細。
總的來說,Mask R-CNN是個非常簡單,靈活并適用于多種場景的實例分割框架。但是Mask R-CNN比較依賴目標識別部分的結果,一旦目標識別不準確,實例分割的結果也會不精確。
語義分割對于分割的精度和效率都有很高的要求,由于實例分割在語義分割的基礎上,還需要區分出同一類的不同的個體,因此實例分割同樣有著精度和效率的要求。除此之外還面臨著和語義分割相似的問題和難點,如深層網絡小物體分割細節丟失的問題,如何處理幾何變化,處理遮擋,甚至由于源圖像被光照射,被壓縮帶來的圖像退化問題。
為了解決速度和效率的問題,后續研究人員還推出了Instance FCN這種單階段實例分割網絡(Single Shot Instance Segmentation)。盡管單階段分割網絡在精度上不如雙階段分割網絡,但是其在速度及模型大小方面仍遠優于雙階段網絡,因此單階段網絡引領了近些年實例分割及目標識別的研究潮流。
令人激動的是,近幾年除了出現基于One-stage,Anchor-based的YOLACT和SOLO外,還出現了受到Anchor-free思路啟發的PolarMask和AdaptIS等實例分割網絡。這些Anchor-free的實例分割網絡,也很出色。我會在接下來的幾篇文章中更新Anchor-free網絡,感興趣的同學,可以關注我的專欄。
圖像分割數據集
在最后一節中我會分享一些常見的圖像分割的數據集,來滿足不同領域朋友的研究需求。
Coco Dataset: 擁有164k 的原始 COCO 數據集圖像,并附有像素級注釋,是一個常用的基準數據集。它包括172個類: 80個thing class,91個stuff class和1個unlabeled class。
Link : http://cocodataset.org/
PASCAL Context: 是2010年 PASCAL VOC 的一組擴展注釋。它為整個場景提供了注釋,包含400多個真實世界數據。
Link : https://cs.stanford.edu/~roozbeh/pascal-context/
The Cityscapes Dataset:包含30個類別和50個城市的城市場景圖像。用來評價城市場景中自動駕駛汽車的視覺算法性能。KITTI 和 CamVid 是類似的數據集,但是數據量相對較小,可以用來訓練自動駕駛汽車。
Link : https://www.cityscapes-dataset.com/
Bdd100k: 包含10000多張具有豐富城市道路實例的像素級注釋圖像,拍攝自不同的時間,天氣和駕駛場景,可以用來訓練自動駕駛汽車。
Link: https://bdd-data.berkeley.edu/
Lits Dataset:為了從肝臟 CT 中識別出腫瘤病變而創建的醫學影像數據集。該數據集包括130張訓練用CT圖和70張測試CT圖。
Link : https://competitions.codalab.org/competitions/17094
CCP Dataset:包含1000多張帶有像素級注釋的服裝搭配圖片,總共有59個類別。
LInk: https://github.com/bearpaw/clothing-co-parsing
ADEK20K:包含2萬張圖片,100個thing class 和50個stuff class的像素級注釋場景數據集。
Link: https://groups.csail.mit.edu/vision/datasets/ADE20K/
Pratheepan Dataset:包含32張臉部照片和46張家庭照片的皮膚分割數據集。
Link: http://cs-chan.com/downloads_skin_dataset.html
除上述常見的之外,還有以下種類繁多的圖像分割數據集。
- Stanford Background Dataset
- Sift Flow Dataset
- Barcelona Dataset
- MSRC Dataset
- LITS Liver Tumor Segmentation Dataset
- Data from Games dataset
- Human parsing dataset
- Mapillary Vistas Dataset
- Microsoft AirSim
- MIT Scene Parsing Benchmark
- INRIA Annotations for Graz-02
- Daimler dataset
- ISBI Challenge: Segmentation of neuronal structures in EM stacks
- INRIA Annotations for Graz-02 (IG02)
- Inria Aerial Image
- ApolloScape
- UrbanMapper3D
- RoadDetector
- Inria Aerial Image Labeling
智能圖像分割的未來
在計算機視覺領域,圖像識別這幾年的發展非常迅速,圖像識別技術的價值也迅速體現在我們的身邊,視頻監控,自動駕駛,智能醫療等等。我們面臨的挑戰,除了提高模型的泛化能力,少樣本學習,超大數據規模利用,還有一項便是更加全面的場景理解。
我們在本文中提到的語義分割,實例分割都是實現全面場景理解的一小步,未來圖像分割領域的發展趨勢,除了更精準的定位和分類,更高的效率,更少的訓練標簽,還有更統一和全面的分割方式,如全景分割(panoptic segmentation)。要實現全面場景理解的目標,我們還有很長的路要走,我也會繼續更新智能圖像分割領域的知識和文章,和大家一起學習:)
我會在接下來的文章中,分享基于Efficientdet和Detectron2的自動駕駛目標檢測及圖像分割項目實踐。
歡迎大家訂閱~
也可以點擊關注我的專欄, 自動駕駛全棧工程師, 我會定期分享自動駕駛相關的技術知識~
自動駕駛全棧工程師?zhuanlan.zhihu.com如果有什么疑問, 可以隨時聯系我的個人郵箱, 文章下評論可能回復不及時。
如果你覺得我的文章對你有幫助, 請幫忙點個贊~\(≧▽≦)/~
轉載請私信作者!
引用:
總結
以上是生活随笔為你收集整理的语义分割和实例分割_一文读懂语义分割与实例分割的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql binary安装_mysql
- 下一篇: mysql开窗函数over_oracle