任博涵
(,陜西 咸陽 712000)
隨著計(jì)算機(jī)科學(xué)技術(shù)以及深度學(xué)習(xí)的不斷發(fā)展,圖像處理和分析逐漸形成了自己的體系。圖像分割是圖像處理中的一項(xiàng)關(guān)鍵技術(shù)也是計(jì)算機(jī)視覺、圖像處理等領(lǐng)域的基礎(chǔ)性問題之一,同時(shí)是圖像分類、場景解析、物體檢測、圖像3D重構(gòu)等任務(wù)的關(guān)鍵步驟。從20世紀(jì)60年代開始,這項(xiàng)研究至今仍然是研究的熱點(diǎn)之一,并且被廣泛應(yīng)用于交通控制、氣象預(yù)測、地質(zhì)勘探、醫(yī)學(xué)影像分析、人臉與指紋識(shí)別等諸多領(lǐng)域。
傳統(tǒng)的圖像分割方法,如閾值法,邊緣檢測法等,雖然原理都是不同的,但是這些傳統(tǒng)的圖像分割方法用的都是像圖像的顏色特征,紋理特征,統(tǒng)計(jì)直方圖等的一些比較低級(jí)的圖像特征。在一些比較簡單的圖像分割應(yīng)用中可能會(huì)有比較好的效果,但是在一些更加復(fù)雜的應(yīng)用場景下,這些傳統(tǒng)算法的效果就不是非常理想。利用圖像本身涵蓋的內(nèi)容信息更加有效與圖像中級(jí),高級(jí)語言結(jié)合來提升圖像分割效果是在深度學(xué)習(xí)出現(xiàn)以前的研究熱點(diǎn)。規(guī)范割算法是Shi等人在2000年提出的一種圖像分割方法,在考慮了子圖間的差異性的基礎(chǔ)上,同時(shí)考慮了子圖內(nèi)部的相似性。規(guī)范割算法根據(jù)圖像的輪廓特征以及紋理特征來全局最小化損失函數(shù)來得到細(xì)尺度分割結(jié)果,因此在當(dāng)時(shí)取得了不錯(cuò)的效果。超像素算法是Moorer 等人于2008年基于最小割的概念提出的算法,該算法以二維圖像邊界代價(jià)圖作為輸入,保存了兩個(gè)像素之間存在邊界的概率值,它的分割準(zhǔn)確度相對來說也比較高。2004年,F(xiàn)elzenswalb 和 Huttenloche提出 FH 算法,該算法將圖像映射成無向圖,綜合考慮了區(qū)域內(nèi)部相似度和區(qū)域之間的差異性,通過對圖中的頂點(diǎn)進(jìn)行聚類實(shí)現(xiàn)分割,能夠較好地保持圖像邊界,因此可以準(zhǔn)確的分割出圖像的整個(gè)輪廓。Girshick等人于2014年提出了R-CNN方法,該方法首先使用搜索算法搜多到大量的可能存在物體的候選框,然后使用alexnet等網(wǎng)絡(luò)進(jìn)行分割或者檢測,在一定的程度上提高了圖像分割的準(zhǔn)確率,但是速度非常慢。
語義圖像分割的任務(wù)是對于圖像中的每一個(gè)像素點(diǎn)來進(jìn)行分類,這是目前在計(jì)算機(jī)數(shù)據(jù)領(lǐng)域最重要的問題之一,這項(xiàng)工作包含了圖像分類,物體檢測以及多類別的物體檢測,還有圖像分割所有的計(jì)算機(jī)視覺的基本任務(wù)。語義分割可以為其他的任務(wù),如物體定位,獲得物體的形狀以及大小等提供大量的信息,比如說提供物體的一個(gè)邊緣的細(xì)節(jié)以及大概的位置等。
圖像分割的一般過程主要分為三部分,首先需要根據(jù)需求定制我們自己的數(shù)據(jù)集,包括訓(xùn)練數(shù)據(jù),測試數(shù)據(jù)以及交叉驗(yàn)證數(shù)據(jù)等,具體的構(gòu)造方法可以請專門的標(biāo)注人員標(biāo)注自己的數(shù)據(jù),或者使用目前已經(jīng)公開可訪問的數(shù)據(jù)集,本文選擇后者。另外由于圖像分割的特性,不需要對圖片進(jìn)行縮放,但是為了增加模型的準(zhǔn)確性,我們?nèi)匀辉谟?xùn)練的時(shí)候?qū)D像縮放至640×384大小。第二步需要我們根據(jù)數(shù)據(jù)的不同特征,構(gòu)造不同的分割方法,進(jìn)行大量的實(shí)驗(yàn),調(diào)試超參數(shù)以獲得比較優(yōu)秀的分割模型。第三步是使用我們已經(jīng)訓(xùn)練好的模型對圖像進(jìn)行測試,查看或者觀察我們的模型的效果如何。
本文所采用的網(wǎng)絡(luò)結(jié)構(gòu)分別是如下的方法,由于我們的基網(wǎng)絡(luò)是vgg16以及ResNet110,因此首先需要使用已經(jīng)在ImageNet訓(xùn)練好的模型對網(wǎng)絡(luò)進(jìn)行初始化,這樣可以獲得比較好的初值,加速網(wǎng)絡(luò)的收斂速度,然后在我們的數(shù)據(jù)集上進(jìn)行訓(xùn)練。
利用深度學(xué)習(xí)進(jìn)行圖像分類在整個(gè)圖像領(lǐng)域變得越來越普遍,尤其是隨著最近幾年硬件技術(shù)的進(jìn)步,以及相關(guān)研究發(fā)現(xiàn),越深的網(wǎng)絡(luò)在分類領(lǐng)域所能獲得的效果也越來越好。但是這樣往往伴隨著一個(gè)問題,就是隨著網(wǎng)絡(luò)深度的增加,我們不得不去增加很多池化層來減少網(wǎng)絡(luò)的參數(shù),增加網(wǎng)絡(luò)的訓(xùn)練以及預(yù)測的速度,同時(shí)還可以增加網(wǎng)絡(luò)的感受野。但是在圖像分割領(lǐng)域增加大量的池化層會(huì)降低網(wǎng)絡(luò)中特征圖的分辨率,同時(shí)也會(huì)降低最終網(wǎng)絡(luò)的預(yù)測結(jié)果的分辨率。另一方面網(wǎng)絡(luò)加入池化層后會(huì)增加網(wǎng)絡(luò)的不變性,這種不變性在對圖像進(jìn)行分類的時(shí)候有著不錯(cuò)的效果,但是在對圖像分割的時(shí)候從特征圖轉(zhuǎn)換到物體的位置的時(shí)候就比較的難了,這也是為什么很多深度學(xué)習(xí)方法的預(yù)測結(jié)果中對于物體的大概位置預(yù)測的都比價(jià)準(zhǔn)確,但是對于一些細(xì)節(jié)的分割就比較的差。
為了解決如上兩個(gè)問題,DeepLab提出了使用空洞卷積來增加網(wǎng)絡(luò)的感受野,但是同時(shí)不會(huì)造成網(wǎng)絡(luò)中特征圖分辨率的減少。對于普通的卷積來說,如果只是想要增加網(wǎng)絡(luò)的感受野,可以增大卷積核的大小,但是增加卷積核的大小就會(huì)造成網(wǎng)絡(luò)參數(shù)的增多,進(jìn)一步降低網(wǎng)絡(luò)的速度,但是空洞卷積是在不改變卷積核大小的基礎(chǔ)上增加了網(wǎng)絡(luò)的感受野,空洞卷積是這樣的,在我們做卷積的時(shí)候通常是需要對連續(xù)的像素進(jìn)行卷積,但是在空洞卷積中如果設(shè)置速度為2,就是每隔一個(gè)像素點(diǎn)做一次卷積。這樣我們在卷積的時(shí)候就不需要進(jìn)行池化操作了,而是用空洞卷積來替代池化操作。
為了解決神經(jīng)網(wǎng)絡(luò)對于位置的預(yù)測比較差的情況,現(xiàn)在的方法通常是使用多個(gè)網(wǎng)絡(luò),獲得多個(gè)網(wǎng)絡(luò)的輸出結(jié)果,最后利用多個(gè)網(wǎng)絡(luò)的輸出結(jié)果做一個(gè)整合來解決這種情況。但是如果這么做的話就意味著我們的網(wǎng)絡(luò)參數(shù)會(huì)成倍的增加,這樣網(wǎng)絡(luò)的速度也會(huì)成倍的減慢,尤其是在一些對于速度要求比較高的場景,如自動(dòng)駕駛中,我們不僅需要獲得比較好的分割結(jié)果,同時(shí)需要獲得非??斓乃俣?。因此DeepLab提出了使用條件隨機(jī)場來使得網(wǎng)絡(luò)更好的對物體的邊緣做分割,實(shí)驗(yàn)證明,這是一種在速度上以及進(jìn)度上比較這種的一種方法。
DeepLabV1的網(wǎng)絡(luò)結(jié)果基本上是根據(jù)VGG16的網(wǎng)絡(luò)結(jié)構(gòu)修改而來的,由原來的一個(gè)分支設(shè)計(jì)成兩個(gè)分支,其中一個(gè)分支只有兩個(gè)卷積層,都是有128個(gè)卷積核,第一個(gè)卷積核的大小是3×3的,第二個(gè)卷積核的大小是1×1的,然后另外一個(gè)分支在第四個(gè)池化層之前的網(wǎng)絡(luò)結(jié)構(gòu)和原始的VGG都是基本保持一致的,但是在第四個(gè)池化層以后加了兩個(gè)卷積層,這兩個(gè)卷積層的結(jié)構(gòu)和第一個(gè)分支的結(jié)構(gòu)是一致的,最終對兩個(gè)分支的結(jié)果做一個(gè)整合。整合后的結(jié)果再接一個(gè)softmax就是網(wǎng)絡(luò)最后的輸出,針對最后的輸出做一個(gè)簡單的處理我們就可以獲得最終的預(yù)測圖。
我們很多時(shí)候如果想要獲得更加好的網(wǎng)絡(luò)輸出結(jié)果,往往意味著我們需要以更加慢的速度或者更加多的參數(shù)來實(shí)現(xiàn)。比如說現(xiàn)在最常見的對訓(xùn)練多個(gè)平行的網(wǎng)絡(luò),然后對多個(gè)平行的網(wǎng)絡(luò)的輸出結(jié)果進(jìn)行合并,再作為最后的輸出結(jié)果。但是這樣做就意味著我們的網(wǎng)絡(luò)參數(shù)是成倍增加的。另外,多個(gè)不同分辨率的輸出在尺寸上是不相同的,這樣我們需要對每個(gè)網(wǎng)絡(luò)做不同的插值才可以獲得最終的結(jié)果,這樣就造成了不同分辨率的特征圖的合并。因此,提出一種更加高效的方法,就是使用相同大小的卷積核做卷積操作,但是每個(gè)卷積核的速度是不同的,本文中使用4個(gè)不同的速度,分別是6,12,18,24,這樣我們在沒有增加網(wǎng)絡(luò)參數(shù)的前提下增加了網(wǎng)絡(luò)的感受野。
本文所使用的DeepLabV2的網(wǎng)絡(luò)結(jié)果是在ResNet101的基礎(chǔ)網(wǎng)絡(luò)上修改而來的,雖然使用多種分辨率的輸入會(huì)造成網(wǎng)絡(luò)參數(shù)的增加,但是由于本文使用了多種不同速度的卷積核,因此所造成的網(wǎng)絡(luò)參數(shù)的增加并不是倍數(shù)的增加。本文還使用了三個(gè)不同的網(wǎng)絡(luò),這里的三個(gè)不同的網(wǎng)絡(luò)是指的網(wǎng)絡(luò)的參數(shù)不同但是結(jié)構(gòu)是一致的。分別接受原圖,0.5倍的原圖以及0.25倍的原圖,接下來是33個(gè)殘差塊,每個(gè)殘差塊由兩個(gè)分支構(gòu)成,一個(gè)分支是由一個(gè)卷積一個(gè)批規(guī)范化層構(gòu)成的,另外一個(gè)分支是由三個(gè)卷積層構(gòu)成的,其中第一個(gè)和第二個(gè)卷積層后會(huì)有一個(gè)批規(guī)范化層和一個(gè)Relu函數(shù)層構(gòu)成,另外一個(gè)也就是最后一個(gè)卷積層是不經(jīng)過Relu層的,然后把兩個(gè)分支的結(jié)果合并成一個(gè),再過一個(gè)Relu層就構(gòu)成了一個(gè)殘差塊。然后在第33個(gè)殘差塊的輸出后接4個(gè)不同的卷積層,每個(gè)卷積層的速度是不同的,也就是上文中介紹的4個(gè)速度,這里的卷積使用的是空洞卷積。然后對4個(gè)卷積層的輸出做一個(gè)整合,就可以獲得當(dāng)前網(wǎng)絡(luò)的輸出結(jié)果了。最后分別接受低分辨率圖像的網(wǎng)絡(luò)輸出結(jié)果做一個(gè)插值,最后將三個(gè)網(wǎng)絡(luò)的結(jié)果疊加到一起就構(gòu)成了網(wǎng)絡(luò)最終的輸出結(jié)果。
對于圖像分割任務(wù)來說,目前主要的評價(jià)方法有兩種,一種是全局像素的準(zhǔn)確率,另外一種是平均交并比。由于圖像分割是對圖像中每一個(gè)像素進(jìn)行分類的任務(wù),因此我們在評價(jià)模型的時(shí)候,可以使用全局像素的準(zhǔn)確率。首先我們需要統(tǒng)計(jì)一副圖像中預(yù)測正確的像素點(diǎn)的個(gè)數(shù),然后除以當(dāng)前圖像的所有像素的個(gè)數(shù),最后再將所有圖像的準(zhǔn)確率加起來除以所有圖像的個(gè)數(shù)即可。但是有的時(shí)候會(huì)出現(xiàn)雖然全局準(zhǔn)確率很高,但是人類所觀察到的效果比較差的情況,這就誕生了另外一種評價(jià)方法平均交并比,算法用一副圖像的并集比上交集。其中,交集表示我們預(yù)測出來的一類物體的所有區(qū)域與真實(shí)的標(biāo)記的區(qū)域的交集,并集指這兩者的交集。這樣如果我們要使得這個(gè)評價(jià)標(biāo)準(zhǔn)最大,我們需要同時(shí)滿足使得模型的預(yù)測結(jié)果中對于預(yù)測正確的類別要越大對于預(yù)測錯(cuò)誤的類別越少。
隨著計(jì)算機(jī)硬件技術(shù)的進(jìn)步,尤其是大規(guī)模并行計(jì)算以及GPU的發(fā)展,利用深度學(xué)習(xí)解決圖像分割任務(wù)變得越來越簡單,同時(shí)準(zhǔn)確性也變得越來越高。另外隨著最近幾年人工智能技術(shù)的火熱,尤其是無人駕駛技術(shù),以及大量可行駛機(jī)器人等,為圖像分割技術(shù)提供了高質(zhì)量的數(shù)據(jù)。本文主要介紹了圖像分割的背景意義,以及綜述了圖像分割的一般流程,并重點(diǎn)介紹了兩種圖像分割的方法,為了加速計(jì)算,減去了DeepLab中的條件隨機(jī)場后處理。但是,利用深度學(xué)習(xí)解決圖像分割問題仍然存在著比較多的不足之處,主要是部分網(wǎng)絡(luò)結(jié)構(gòu)太大,分割速度比較慢;部分邊緣信息分割不夠準(zhǔn)確。