分割知識點(diǎn)總結(jié)
1 什么是分割
原始圖像,(b)語義分割,(c)實(shí)例分割和(d)全景分割。
盡管FCN意義重大,在當(dāng)時來講效果也相當(dāng)驚人,但是FCN本身仍然有許多局限。比如:
1)沒有考慮全局信息;
2)無法解決實(shí)例分割問題;
3)速度遠(yuǎn)不能達(dá)到實(shí)時;
4)不能夠應(yīng)對諸如3D點(diǎn)云等不定型數(shù)據(jù)基于此。
下圖給出了部分研究成果與FCN的關(guān)系。
2 FCN
目前在圖像分割領(lǐng)域比較成功的算法,有很大一部分都來自于同一個先驅(qū):Long等人提出的Fully Convolutional Network(FCN),F(xiàn)CN用卷積層和池化層替代了分類網(wǎng)絡(luò)中的全連接層,從而使得網(wǎng)絡(luò)結(jié)構(gòu)可以適應(yīng)像素級的稠密估計(jì)任務(wù)。
全連接層轉(zhuǎn)換成卷積層
連接不同尺度下的層
FCN可以與大部分分類網(wǎng)絡(luò)有效結(jié)合,下表中給出了在PASCAL VOC 2011數(shù)據(jù)庫下,F(xiàn)CN與AlexNet、FCN-VGG16和FCN-GoogLeNet結(jié)合的結(jié)果。
分割任務(wù)中的編碼器encode與解碼器decode;
分割任務(wù)中的編碼器結(jié)構(gòu)比較類似,大多來源于用于分類任務(wù)的網(wǎng)絡(luò)結(jié)構(gòu),比如VGG。解碼器的不同在很大程度上決定了一個基于編解碼結(jié)構(gòu)的分割網(wǎng)絡(luò)的效果。
2)SegNet
SegNet的編碼器結(jié)構(gòu)與解碼器結(jié)構(gòu)是一一對應(yīng)的,即一個decoder具有與其對應(yīng)的encoder相同的空間尺寸和通道數(shù)。對于基礎(chǔ)SegNet結(jié)構(gòu),二者各有13個卷積層,其中編碼器的卷積層就對應(yīng)了VGG16網(wǎng)絡(luò)結(jié)構(gòu)中的前13個卷積層。SegNet與FCN的對應(yīng)結(jié)構(gòu)相比,體量要小很多。這主要得益于SegNet中為了權(quán)衡計(jì)算量而采取的操作:用記錄的池化過程的位置信息替代直接的反卷積操作。
3)解碼器變體
4、感受野與分辨率的控制術(shù)—空洞卷積
1)緒論
分割任務(wù)是一個像素級別的任務(wù),因此需要在輸入的空間尺寸下對每個像素都有分割的結(jié)果。換句話說,如果輸入的空間尺寸是HxW,那么輸出也需要是HxW的。為了提高網(wǎng)絡(luò)性能,許多結(jié)構(gòu)采用了池化或striding操作來增加感受野,同時提升遠(yuǎn)程信息的獲取能力。但是這樣的結(jié)構(gòu)也帶來了空間分辨率的下降。比如之前提到的編解碼結(jié)構(gòu)中的編碼器。
在空洞卷積提出以前,大部分的空間尺寸恢復(fù)工作都是由上采樣或反卷積實(shí)現(xiàn)的。前者通常是通過線性或雙線性變換進(jìn)行插值,雖然計(jì)算量小,但是效果有時不能滿足要求;后者則是通過卷積實(shí)現(xiàn),雖然精度高,但是參數(shù)計(jì)算量增加了。
空洞卷積:調(diào)整感受野(多尺度信息)的同時控制分辨率的神器。
(1) 控制感受野
下圖是空洞卷積結(jié)構(gòu)的示意圖,從左到右比率(rate)分別為1、6和24,比率可以粗暴理解為卷積核內(nèi)相鄰兩個權(quán)重之間的距離。從圖中可以看出,當(dāng)比率為1的時候,空洞卷積退化為常見的卷積。
(2) 控制分辨率
除了維持空間分辨率,空洞卷積也可以像標(biāo)準(zhǔn)卷積一樣通過設(shè)置輸出步長(output_stride)實(shí)現(xiàn)輸出特征圖分辨率的控制。
3)網(wǎng)絡(luò)結(jié)構(gòu)
(1) 網(wǎng)絡(luò)結(jié)構(gòu)介紹
從左到右分別是金字塔結(jié)構(gòu)、編解碼結(jié)構(gòu)、空洞卷積結(jié)構(gòu)和空間金字塔池化結(jié)構(gòu)。
4)實(shí)驗(yàn)及分析
(1)卷積核的有效權(quán)重
當(dāng)空洞卷積的區(qū)域與特征圖實(shí)際空間尺寸相近的時候,實(shí)際有效的卷積核權(quán)重是非常有限的。在極端條件下,當(dāng)空洞卷積的比率接近特征圖空間尺寸時,一個3x3的卷積核就退化成了1x1的卷積核。
為了克服這個問題,DeepLabv3中采用的做法是對最后一層特征圖應(yīng)用全局池化(global pooling),再將其送入一個1x1的卷積層中,最后,通過雙線性上采樣實(shí)現(xiàn)希望的空間分辨率。
(2) 實(shí)驗(yàn)總結(jié)
DeepLabv3給出了諸多條件下的剝離實(shí)驗(yàn),首先給出整體結(jié)論:
輸出步長為8時效果比更大的步長要好;
基于ResNet-101的結(jié)構(gòu)比基于ResNet-50的要好;
用變化的比率比11的比率要好;
加上多尺度輸入和左右翻折數(shù)據(jù)效果更好;
用MS COCO下預(yù)訓(xùn)練的模型效果更好。
4、快速道路場景分割—ENet
(1)緒論
雖然深度神經(jīng)網(wǎng)絡(luò)在計(jì)算機(jī)視覺領(lǐng)域的有效性已經(jīng)是毋容置疑的了,但是大部分神經(jīng)網(wǎng)絡(luò)仍然受限于計(jì)算量、存儲空間、運(yùn)算速度等因素,無法應(yīng)用于實(shí)際的計(jì)算機(jī)視覺任務(wù)。
以圖像分割為例,前面提到的SegNet的速度已經(jīng)相當(dāng)快了,但是仍然遠(yuǎn)不能達(dá)到實(shí)時分割的目的。比如道路場景分割任務(wù),至少需要達(dá)到10fps,而SegNet的速度只能實(shí)現(xiàn)1fps左右。
(2) 實(shí)時,該考慮什么?
特征圖分辨率
為了減小計(jì)算量、增大感受野,許多網(wǎng)絡(luò)都采用縮小特征圖分辨率的結(jié)構(gòu)(比如前面提到的SegNet)。但是,過度縮小特征圖分辨率則會造成嚴(yán)重的信息丟失,從而造成分割精度的下降。因此,要盡可能約束下采樣的比率。目前被廣泛接受的下降比率不超過1/8。那么還要繼續(xù)增大感受野該怎么辦呢?沒錯,就是用到空洞卷積了。
提前下采樣
解碼器規(guī)模
非線性操作
分解卷積層
考慮到卷積層權(quán)重其實(shí)有相當(dāng)大的冗余,可以用nx1和1xn的兩個卷積層級聯(lián)(對稱卷積)來替代一個nxn的卷積層來縮小計(jì)算量。具體地,用n=5的對稱卷積的計(jì)算量近似于一個3x3的普通卷積,但是由于引入了非線性,這樣的操作還能夠增加函數(shù)的多樣性。
(6) 空洞卷積
引入空洞卷積可以減小計(jì)算量、增大感受野,同時維護(hù)了特征圖的分辨率。為了使空洞卷積發(fā)揮最大的作用,ENet中穿插地使用了普通卷積、對稱卷積和空洞卷積。
(3)網(wǎng)絡(luò)結(jié)構(gòu)
ENet主要由兩種類型的網(wǎng)絡(luò)結(jié)構(gòu)構(gòu)成,如下圖所示:
其中,圖(a)對應(yīng)的是ENet的初始模塊,也就是前文提到的縮小輸入圖像分辨率,從而去除視覺冗余、減小計(jì)算量的部分;圖(b)對應(yīng)的則是重復(fù)使用,從而構(gòu)建網(wǎng)絡(luò)主體的bottleneck模塊。
5、以RNN形式做CRF后處理—CRFasRNN
(1)條件隨機(jī)場(CRF或CRFs)與隱馬爾科夫模型有著千絲萬縷的聯(lián)系。
馬爾科夫鏈?zhǔn)侵妇哂旭R爾可夫性質(zhì)且存在于離散指數(shù)集合狀態(tài)空間內(nèi)的隨機(jī)過程,之前走過的每一步之間是條件獨(dú)立的,即上一步走的方向不會影響這一步的方向。由于存在的選擇只有四個(舉例:上下左右),即選擇離散,所以我們稱這個過程為馬爾科夫鏈。當(dāng)選擇連續(xù)時,稱為馬爾科夫過程(Markov Process)。
(2)
隱式馬爾科夫模型(HMM,Hidden Markov Model)是關(guān)于時序的概率模型,描述由一個隱藏的馬爾科夫鏈隨機(jī)生成的不可觀測的狀態(tài)隨機(jī)序列,再由各個狀態(tài)生成一個觀測而產(chǎn)生觀測序列的過程。隱藏的部分稱為狀態(tài)序列;生成的觀測組成的隨機(jī)序列稱為觀測序列。
什么是CRF?
CRF是一種判別式概率模型,是隨機(jī)場的一種,結(jié)合了最大熵模型和隱式馬爾科夫模型的特點(diǎn);CRF是一種無向圖模型,圖中的頂點(diǎn)代表隨機(jī)變量,頂點(diǎn)間的連線代表隨機(jī)變量間的相依關(guān)系。其條件概率分布模型可以表述為P(Y|X),即給定一組隨機(jī)變量的條件下,隨機(jī)變量Y的馬爾科夫隨機(jī)場(MRF,Markov Random Field)。
(3)網(wǎng)絡(luò)結(jié)構(gòu)
那么,如果用一個FCN模型完成第一階段的分割任務(wù),用RNN形式的CRF完成第二階段的后處理(CRF-RNN),則可以搭建如下形式的端到端分割網(wǎng)絡(luò)結(jié)構(gòu)模型:
6、多感受野的金字塔結(jié)構(gòu)—PSPNet
(1)為什么要用金字塔結(jié)構(gòu)提取特征
由于金字塔結(jié)構(gòu)并行考慮了多個感受野下的目標(biāo)特征,從而對于尺寸較大或尺寸過小的目標(biāo)有更好的識別效果。
(2)金字塔池化模型
下圖是論文中提出的基于金字塔池化模型的網(wǎng)絡(luò)結(jié)構(gòu)。其中,虛線框出來的部分屬于金字塔池化模型。
實(shí)驗(yàn)中分別用了1x1、2x2、3x3和6x6四個尺寸,最后用1x1的卷積層計(jì)算每個金字塔層的權(quán)重,再通過雙線性恢復(fù)成原始尺寸。
最終得到的特征尺寸是原始圖像的1/8。最后在通過卷積將池化得到的所有上下文信息整合,生成最終的分割結(jié)果。
7、全局特征與局部特征的交響曲—ParseNet
(1)理論感受野是真的嗎?
大家已經(jīng)能夠體會到感受野對于分割網(wǎng)絡(luò)效果的影響有多么巨大了。簡單來說,感受野越大,網(wǎng)絡(luò)所能“看見”的區(qū)域就越大,從而能夠用于分析的信息就更多。由此,分割的效果也很有可能更好。
基于這種考慮,許多算法嘗試通過改變自身網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)來增大網(wǎng)絡(luò)的理論感受野,認(rèn)為這樣就能夠?yàn)榫W(wǎng)絡(luò)帶來更多的信息。盡管理論感受野的增大的確能夠增加網(wǎng)絡(luò)所獲取的上下文信息,但是,理論感受野難道真的就代表了算法實(shí)際看見的區(qū)域嗎?
網(wǎng)絡(luò)實(shí)際上能夠覆蓋的區(qū)域也就能達(dá)到整圖的1/4左右,遠(yuǎn)遠(yuǎn)沒有達(dá)到理論感受野的尺寸。那么究竟該如何利用全部的圖像上下文信息呢?ParseNet提出了一種融合全局信息與局部信息的方法,下面來具體介紹一下。
(2)全局特征的提取與融合
如下圖所示,ParseNet通過全局池化提取圖像的全局特征,并將其與局部特征融合起來。這種融合在過程中需要考慮兩個主要問題:融合的時機(jī)與尺度的歸一化。
融合時機(jī)
全局特征與局部特征的融合可以發(fā)生在兩個節(jié)點(diǎn):分別是訓(xùn)練分類器之前(early fusion)和訓(xùn)練分類器之后(late fusion)。其中,前者是將兩個特征融合后,作為一個整體共同送入分類網(wǎng)絡(luò),訓(xùn)練分類器;后者則是以兩個特征為輸入,分別訓(xùn)練其對應(yīng)的分類器,最后再將分類的結(jié)果整合。
歸一化
8、多分辨率特征融合—RefineNet
(1)恢復(fù)空間分辨率
在分割任務(wù)中,為了提取更復(fù)雜的特征、構(gòu)建更深的神經(jīng)網(wǎng)絡(luò),許多算法往往會以犧牲空間分辨率的方式,在盡量少地增加計(jì)算量的前提下,換取特征通道數(shù)的增加。雖然這種方式有諸多優(yōu)點(diǎn),但是也有一個明顯的缺陷——空間分辨率的下降。
下面我們具體聊一下RefineNet的網(wǎng)絡(luò)結(jié)構(gòu)和設(shè)計(jì)思想。
(2)全局特征的提取與融合
RefineNet總共包括三大模塊:殘差卷積模塊(RCU,Residual Convolution Unit)、多分辨率融合模塊(Multi-Resolution Fusion)和串聯(lián)殘差池化模塊(Chained Residual Pooling)。
RCU模塊
RCU模塊的結(jié)構(gòu)如下圖所示:
每個RCU模塊包括一個ReLU層和一個卷積層,網(wǎng)絡(luò)結(jié)構(gòu)中,每個分辨率下應(yīng)用兩個串聯(lián)的RCU模塊,用于提取該分辨率下的分割結(jié)果的殘差,最后以相加的形式校正該分辨率下的原始分割結(jié)果。
多分辨率融合
下圖是多分辨率融合部分的詳細(xì)結(jié)構(gòu):
在給定了多分辨率下經(jīng)過處理的分割結(jié)果后,各個結(jié)果將依次通過一個卷積層和一個上采樣層,形成空間分辨率統(tǒng)一的分割結(jié)果圖。
具體而言,網(wǎng)絡(luò)首先通過一個卷積層處理輸入進(jìn)來的不同分辨率下的分割結(jié)果,從而學(xué)習(xí)得到各通道下的適應(yīng)性權(quán)重。隨后,應(yīng)用上采樣,統(tǒng)一所有通道下的分割結(jié)果,并將各通道結(jié)果求和。求和結(jié)果送入下一個模塊。
串聯(lián)殘差池化
下圖是這一模塊的結(jié)構(gòu)圖:
這個模塊主要由一個殘差結(jié)構(gòu)、一個池化層和一個卷積層組成。其中,池化層加卷積層用來習(xí)得用于校正的殘差。值得注意的是,RefineNet在這里用了一個比較巧妙的做法:用前一級的殘差結(jié)果作為下一級的殘差學(xué)習(xí)模塊的輸入,而非直接從校正后的分割結(jié)果上再重新習(xí)得一個獨(dú)立的殘差。
這樣做的目的,RefineNet的作者是這樣解釋的:可以使得后面的模塊在前面殘差的基礎(chǔ)上,繼續(xù)深入學(xué)習(xí),得到一個更好的殘差校正結(jié)果。
最后,網(wǎng)絡(luò)又經(jīng)過一個一個RCU模塊,平衡所有的權(quán)重,最終得到與輸入空間尺寸相同的分割結(jié)果。
(3)網(wǎng)絡(luò)結(jié)構(gòu)變種
單個RefineNet
2次級聯(lián)的RefineNet
4次級聯(lián)2倍RefineNet
除了語義分割,RefineNet還可以用于目標(biāo)理解(object parsing)。下圖是RefineNet在目標(biāo)理解上的直觀結(jié)果:
9、用BRNN做分割—ReSeg
(1)簡單說說BRNN
什么是循環(huán)神經(jīng)網(wǎng)絡(luò)?
不同于卷積神經(jīng)網(wǎng)絡(luò)(CNN,Convolutional Neural Network)通常以圖塊(patches)為輸入,循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN,Recurrent Neural Network)的輸入是序列形式的。即使在處理圖像時,通常也需要對圖像矩陣進(jìn)行展開(flatten)操作,再應(yīng)用RNN。輸入序列數(shù)據(jù)后,RNN在序列的演進(jìn)方向遞歸所有節(jié)點(diǎn),并將其定向鏈?zhǔn)竭B接。
下圖是一個簡單的RNN單元示意圖:
為什么要用RNN?
什么是BRNN?
BRNN是雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(Bi-directional RNN)的縮寫,屬于循環(huán)神經(jīng)網(wǎng)絡(luò)的一種?;A(chǔ)RNN只能依據(jù)之前時刻的時序信息來預(yù)測下一時刻的輸出,但是有些問題中需要聯(lián)系上之前和未來狀態(tài),共同進(jìn)行預(yù)測。BRNN由兩個方向不同的RNN堆疊而成,同時處理過去和未來信息。下圖是BRNN的示意圖:
(2)ReSeg:用BRNN做分割
ReSeg是基于圖像分割模型ReNet提出的。因此,我們首先來看一下ReNet。
10、BRNN下的RGB-D分割—LSTM-CF
(1)RGB-D分割
RGB-D分割中的D指的是“Depth”,即“深度”,也就是相機(jī)到物體在實(shí)際空間中的距離。
引入深度信息后,其提供的額外結(jié)構(gòu)信息能夠有效輔助復(fù)雜和困難場景下的分割。比如,與室外場景相比,由于語義類別繁雜、遮擋嚴(yán)重、目標(biāo)外觀差異較大等原因,室內(nèi)場景的分割任務(wù)要更難實(shí)現(xiàn)。此時,在結(jié)合深度信息的情況下,能夠有效降低分割的難度。
11、實(shí)例分割模型—DeepMask
(1)實(shí)例分割
實(shí)例分割任務(wù)有其自己的任務(wù)需求與度量矩陣。簡單來講,語義分割只分割視野內(nèi)目標(biāo)的類型,而實(shí)例分割則不僅分割類型,同時還需要分割同類型的目標(biāo)是否為同一個實(shí)例。
(2)DeepMask
DeepMask網(wǎng)絡(luò)其實(shí)實(shí)現(xiàn)了三個任務(wù):前背景分割、前景語義分割與前景實(shí)例分割。這三個任務(wù)是基于同一個網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行的,只是各自有單獨(dú)的分支。下圖是DeepMask的網(wǎng)絡(luò)模型概況:
與大部分分割網(wǎng)絡(luò)相同,DeepMask同樣應(yīng)用了VGG模型作為特征提取的主要模塊,在訓(xùn)練中也用了ImageNet下訓(xùn)練得到的VGG參數(shù)初始化這一部分模型。DeepMask用兩條分支來分別實(shí)現(xiàn)分割任務(wù)和前景目標(biāo)識別任務(wù)。
分割部分
分割部分要實(shí)現(xiàn)的是對圖塊內(nèi)場景的類別的識別,由一個1x1卷積層后接分類層實(shí)現(xiàn)。這里的分類是稠密的,也就是對每一個像素都有其對應(yīng)的標(biāo)注。
前景Score部分
網(wǎng)絡(luò)的第二個分支要完成的任務(wù)是,判斷一個圖塊是否滿足下面兩個要求:
目標(biāo)位于圖塊的正中心附近
目標(biāo)完整存在于圖塊中(在某一尺度范圍內(nèi))
12、全景分割是什么?
(1)全景分割
與之前介紹的語義分割與實(shí)例分割不同,全景分割任務(wù)(Panoptic Segmentation)要求圖像中的每個像素點(diǎn)都必須被分配給一個語義標(biāo)簽和一個實(shí)例id。其中,語義標(biāo)簽指的是物體的類別,而實(shí)例id則對應(yīng)同類物體的不同編號。
全景分割的實(shí)現(xiàn)也面臨著其他難題。比如,與語義分割相比,全景分割的困難在于要優(yōu)化全連接網(wǎng)絡(luò)的設(shè)計(jì),使其網(wǎng)絡(luò)結(jié)構(gòu)能夠區(qū)分不同類別的實(shí)例;而與實(shí)例分割相比,由于全景分割要求每個像素只能有一個類別和id標(biāo)注,因此不能出現(xiàn)實(shí)例分割中的重疊現(xiàn)象。
全景分割的具體分割形式有以下兩點(diǎn)要求:
圖像中的每個像素點(diǎn)都有一個對應(yīng)的語義類別和一個實(shí)例id,如果無法確定可以給予空標(biāo)注。
所有語義類別要么屬于stuff,要么屬于things,不能同時屬于二者;且stuff類別沒有實(shí)例id(即id統(tǒng)一為一個)。
全景分割與語義分割的關(guān)系:
如果所有的類別都是stuff,那么全景分割除了度量與語義分割不同外,其它相同。
全景分割與實(shí)例分割的關(guān)系:
全景分割中不允許重疊,但實(shí)例分割可以;此外,實(shí)例分割需要每個分割的置信概率,但全景分割不需要。盡管如此,全景分割內(nèi)為了輔助機(jī)器的辨識,也是可以引入置信概率的概念的。
(2)度量矩陣
為了將stuff類別和things類別統(tǒng)一在一個分割任務(wù)下,全景分割的度量應(yīng)當(dāng)具有以下三個性質(zhì):
完整性:對stuff和things類別一視同仁,包含任務(wù)中的所有方面。
可解釋性:度量需要具有能夠可定義、可理解、可交流的性質(zhì)。
簡單:有效的度量應(yīng)當(dāng)簡潔、可復(fù)現(xiàn)。
基于此,全景分割的度量被分為了分割匹配(segment matching)和全景質(zhì)量計(jì)算(panoptic quality computation)兩個部分。
分割匹配:要求IoU(Intersection over Union)嚴(yán)格大于0.5才算匹配,且不可以有重疊區(qū)域,限制一個像素只能對應(yīng)一個標(biāo)簽。
全景質(zhì)量計(jì)算:對每個類別的全景分割質(zhì)量的單獨(dú)計(jì)算結(jié)果取平均,從而保證分割結(jié)果對類別不敏感。
審核編輯:劉清
-
編解碼器
+關(guān)注
關(guān)注
0文章
234瀏覽量
24133 -
圖像分割
+關(guān)注
關(guān)注
4文章
180瀏覽量
17930 -
計(jì)算機(jī)視覺
+關(guān)注
關(guān)注
8文章
1685瀏覽量
45811 -
FCN
+關(guān)注
關(guān)注
0文章
9瀏覽量
8743 -
深度神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
0文章
61瀏覽量
4501
原文標(biāo)題:圖像分割知識點(diǎn)總結(jié)
文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論