顧 攀 張烽棟
(復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院 上海 201203) (上海市智能信息處理重點(diǎn)實(shí)驗(yàn)室(復(fù)旦大學(xué)) 上海 201203)
圖像分類任務(wù)就是通過(guò)訓(xùn)練得到一個(gè)模型,該模型可以對(duì)于每一幅圖像標(biāo)注其語(yǔ)義的分類。而圖像的語(yǔ)義分割任務(wù)是需要訓(xùn)練一個(gè)更為復(fù)雜的模型,它可以對(duì)于圖像中的每一個(gè)像素,標(biāo)注其像素的分類。相較于普通的圖像分類而言,圖像的語(yǔ)義分割可以提取得到更多的信息,不僅可以找到圖像中的語(yǔ)義信息,還可以精確地定位到所有的語(yǔ)義信息在圖像中的位置。
近些年來(lái),越來(lái)越多的學(xué)者、專家在圖像的語(yǔ)義分割這個(gè)領(lǐng)域作出了卓越的貢獻(xiàn)。一些研究組也發(fā)布了他們所提供的圖像數(shù)據(jù)集合(如Pascal VOC Challenge中的分割任務(wù)[1]),數(shù)據(jù)集中的所有圖像都具有強(qiáng)監(jiān)督標(biāo)簽的信息(所謂強(qiáng)監(jiān)督的標(biāo)簽信息,就是對(duì)于每一幅圖像中的每一個(gè)像素,都標(biāo)記了該像素是屬于哪一個(gè)分類的),大大地加快了圖像的語(yǔ)義分割問(wèn)題的研究進(jìn)展速度??墒请S之而來(lái)的一個(gè)問(wèn)題在于,強(qiáng)監(jiān)督的訓(xùn)練數(shù)據(jù)總是只在有限的數(shù)據(jù)集中提供,所有利用這些數(shù)據(jù)訓(xùn)練算法的魯棒性和實(shí)用性都局限于數(shù)據(jù)集中的數(shù)據(jù)量。
圖像語(yǔ)義分割的算法起源于文獻(xiàn)[2],其中介紹了一種基于條件隨機(jī)場(chǎng)模型的算法,它通過(guò)對(duì)圖像每一個(gè)像素為離散點(diǎn),構(gòu)建了條件隨機(jī)場(chǎng)模型。而后隨著技術(shù)的發(fā)展,傳統(tǒng)圖像語(yǔ)義分割的算法大多都是通過(guò)設(shè)計(jì)一種提取像素(或圖像)級(jí)別特征的算法,再與分類器(如支持向量機(jī))相結(jié)合,計(jì)算語(yǔ)義分割的結(jié)果[3]。隨著2015年全卷積網(wǎng)絡(luò)的提出[4],圖像的語(yǔ)義分割算法的研究開(kāi)始偏向于使用深度學(xué)習(xí)的技術(shù)進(jìn)行解決,大多數(shù)的研究都在全卷積網(wǎng)絡(luò)的基礎(chǔ)上進(jìn)行。使用強(qiáng)監(jiān)督數(shù)據(jù)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型在該任務(wù)上取得了非常好的效果,同時(shí),算法的魯棒性與實(shí)用性都是取決于數(shù)據(jù)集中大量的強(qiáng)監(jiān)督訓(xùn)練數(shù)據(jù)才達(dá)到的。
可是,現(xiàn)在除了那些少量的公開(kāi)的數(shù)據(jù)集,具有強(qiáng)監(jiān)督標(biāo)注的數(shù)據(jù)在生活中幾乎不存在,而另一種類型的數(shù)據(jù),具有弱監(jiān)督標(biāo)簽的圖像數(shù)據(jù)(所謂弱監(jiān)督的標(biāo)簽信息,就是對(duì)于每一幅圖像而言,僅僅標(biāo)注了圖像中所包含的物體的類別),可以輕松地在互聯(lián)網(wǎng)上進(jìn)行收集得到。相對(duì)于數(shù)據(jù)集中有限的場(chǎng)景,如果能將生活中的數(shù)據(jù)全部加以利用,訓(xùn)練得到的模型的魯棒性一定會(huì)大大提高。如何利用弱監(jiān)督的圖片數(shù)據(jù)來(lái)對(duì)深度學(xué)習(xí)模型進(jìn)行訓(xùn)練,變成了一個(gè)值得研究的問(wèn)題。
由于全卷集網(wǎng)絡(luò)[4]的提出,近期提出的算法大多都是基于強(qiáng)監(jiān)督標(biāo)簽的算法,相對(duì)于利用強(qiáng)監(jiān)督標(biāo)簽數(shù)據(jù)進(jìn)行訓(xùn)練的算法,利用弱監(jiān)督標(biāo)簽的算法在效果上要較為差一些。主要是因?yàn)槿醣O(jiān)督標(biāo)簽僅包括了圖像級(jí)別的標(biāo)注信息,而語(yǔ)義分割的任務(wù)需要得到的是像素級(jí)別的標(biāo)注信息,在這種標(biāo)注信息的層級(jí)不同的前提下,難以設(shè)計(jì)一種有效的損失函數(shù)。大多數(shù)現(xiàn)有的算法都是通過(guò)一些近似算法來(lái)回避這個(gè)問(wèn)題。如果設(shè)計(jì)出一種有效的損失函數(shù),讓神經(jīng)網(wǎng)絡(luò)可以達(dá)到端對(duì)端的訓(xùn)練過(guò)程的話,那么算法的效果一定會(huì)得到巨大的提升。
本文提出了一套基于神經(jīng)網(wǎng)絡(luò)的圖像弱監(jiān)督語(yǔ)義分割框架,通過(guò)設(shè)計(jì)一個(gè)可以兼容弱監(jiān)督標(biāo)簽的損失函數(shù),使神經(jīng)網(wǎng)絡(luò)達(dá)到端對(duì)端的訓(xùn)練過(guò)程。方法也結(jié)合了一些經(jīng)典的方法,將圖像的語(yǔ)義分割與圖像的目標(biāo)檢測(cè)相結(jié)合,提取并計(jì)算圖像的語(yǔ)義分割結(jié)果。
本節(jié)將介紹一種新的圖像語(yǔ)義分割算法,它基于深度神經(jīng)網(wǎng)絡(luò)框架,并且可以通過(guò)弱監(jiān)督的數(shù)據(jù)對(duì)網(wǎng)絡(luò)進(jìn)行端到端的訓(xùn)練,以最大化深度神經(jīng)網(wǎng)絡(luò)的效果。這里將首先介紹算法對(duì)于一種特殊的情況(圖像中只存在單目標(biāo)問(wèn)題時(shí))的檢測(cè)算法,再通過(guò)提出多塊損失函數(shù),將算法擴(kuò)展至對(duì)于多目標(biāo)圖像內(nèi)容的檢測(cè)。
首先定義圖像訓(xùn)練集中的圖像為x,圖像級(jí)別的標(biāo)簽為y,并x∈RN×M,y∈{0,1}C,其中N與M為圖像的寬與高,而C為圖像中一共可能包含的語(yǔ)義類別的數(shù)量。定義s為任務(wù)最終輸出的語(yǔ)義分割結(jié)果,并s∈{0,1,2,…,C}N×M,每一個(gè)元素si,j表示了像素xi,j的語(yǔ)義類別,為0時(shí)表示屬于背景(或不屬于任何一個(gè)語(yǔ)義類別信息)。
在類別激活熱度圖算法中[5],如圖1中所示的深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),可以通過(guò)弱監(jiān)督的數(shù)據(jù)對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行訓(xùn)練,并獲取得到在低層神經(jīng)網(wǎng)絡(luò)輸出的特征幀。通過(guò)在特征幀與語(yǔ)義層之間,利用一個(gè)全局均值池化層將特征圖轉(zhuǎn)換成單個(gè)類別的置信度。由于最終的圖像在一個(gè)類別上的置信度可以通過(guò)f1,f2,…,fK進(jìn)行線性組合得到,所以對(duì)于某一個(gè)類別的熱度圖可以通過(guò)計(jì)算特征圖中的每一幀的線性組合得到。
圖1 利用全局均值池化層的神經(jīng)網(wǎng)絡(luò)語(yǔ)義層結(jié)構(gòu)
(1)
式中:F表示最后的特征圖層的內(nèi)容并且K表示該特征圖層的通道數(shù)。通過(guò)熱度圖的結(jié)果,可以近似地計(jì)算得到物體在圖像中所處于的位置,但無(wú)法求得物體更詳細(xì)的邊緣信息。而物體的邊界信息可以通過(guò)一些其他的無(wú)監(jiān)督的算法進(jìn)行提取[6],這里可以定義提取得到的邊界為m∈{0,1}N×M,其中每一個(gè)元素mi,j表示單個(gè)像素是否屬于該物體中,將輪廓信息與熱度圖的內(nèi)容相結(jié)合,可以求出該輪廓中所包括的物體所屬的分類為:
(2)
式中:S=∑i,jmi,j表示物體輪廓所占據(jù)的區(qū)域大小,在計(jì)算得到該物體具體所屬的分類后可以計(jì)算圖像x的圖像語(yǔ)義分割結(jié)果:
s=cmax×m
(3)
圖2是本文算法的整個(gè)算法框架內(nèi)容,算法中神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)參考?xì)埐罹W(wǎng)絡(luò)[10]的特征提取層進(jìn)行實(shí)現(xiàn)。算法首先通過(guò)一些無(wú)監(jiān)督的對(duì)象預(yù)檢測(cè)算法在圖像中找到所有的物體位置,這些物體所包含的語(yǔ)義類別的并集肯定會(huì)包含圖像中所有出現(xiàn)的類別數(shù)。根據(jù)1.1節(jié)中所介紹的算法內(nèi)容,對(duì)于僅包含單個(gè)分類的物體的圖像可以通過(guò)深度神經(jīng)網(wǎng)絡(luò)的算法計(jì)算得到其圖像語(yǔ)義分割的結(jié)果。
在通過(guò)對(duì)象預(yù)檢測(cè)算法對(duì)圖像進(jìn)行檢測(cè)后,可以得到多個(gè)包含物體的區(qū)域,將其截取后可以得到I1,I2,…,IT個(gè)圖像,其中T是子圖的個(gè)數(shù)。根據(jù)之前算法的介紹,每一幅子圖都可以通過(guò)神經(jīng)網(wǎng)絡(luò)的內(nèi)容計(jì)算得到單幅圖像的語(yǔ)義分割結(jié)果si,在全部計(jì)算完畢后可以計(jì)算整幅圖像的語(yǔ)義分割結(jié)果:
(4)
在1.2節(jié)中所介紹的方法中,對(duì)于每一幅子圖而言,算法并不能獲取得到每一幅子圖中所包含的對(duì)象所屬的分類信息,如果要僅通過(guò)弱監(jiān)督的數(shù)據(jù)對(duì)深度神經(jīng)網(wǎng)絡(luò)的模型進(jìn)行訓(xùn)練,需要對(duì)網(wǎng)絡(luò)結(jié)果進(jìn)行修改。使用弱監(jiān)督的數(shù)據(jù)對(duì)神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行訓(xùn)練,只能使用圖像級(jí)別的標(biāo)注,即對(duì)于每一幅圖像x而言,存在標(biāo)簽y∈{0,1}1×C表示該圖像中是否包含對(duì)應(yīng)的類別的物體。在算法中,將所有的子圖看作是一個(gè)整體作為輸入,所有的子圖將會(huì)送入深度神經(jīng)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練,在網(wǎng)絡(luò)最后的語(yǔ)意層輸出類別信息的位置,加入本文介紹的多塊損失函數(shù),即可完成使用弱監(jiān)督數(shù)據(jù)對(duì)深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程。
圖2 弱監(jiān)督圖像語(yǔ)義分割算法框架
在介紹多塊損失函數(shù)之前,首先回顧一下在深度神經(jīng)網(wǎng)絡(luò)算法中的經(jīng)典問(wèn)題,圖像分類問(wèn)題中所使用的代價(jià)函數(shù):
定義多塊損失函數(shù)為:
MPF(y1,y2,…,yT;y)
(5)
(6)
對(duì)于神經(jīng)網(wǎng)絡(luò)而言,它對(duì)于子圖的類別輸出結(jié)果應(yīng)趨近于只有一個(gè)維度較高的情況(由于每一個(gè)子圖中應(yīng)該只包含了一個(gè)物體),使用求最大值的操作可以將這些子圖的輸出全部結(jié)合成為一個(gè)向量。所以在這里,多塊損失函數(shù)具體可以被描述為:
(7)
式(7)所介紹的多塊損失函數(shù)可以直接被用于深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程的前向傳播過(guò)程中,而在訓(xùn)練過(guò)程的反向傳播中所使用到的損失函數(shù)的梯度大小,對(duì)于每一個(gè)子圖所輸出的類別置信度yt的梯度可以被計(jì)算為:
(8)
對(duì)于在第1節(jié)中所提出的算法,進(jìn)行了一些在數(shù)據(jù)集中的實(shí)驗(yàn)。本節(jié)將介紹實(shí)驗(yàn)的具體配置以及實(shí)驗(yàn)的結(jié)果,并進(jìn)行關(guān)于結(jié)果的適當(dāng)?shù)姆治觥?/p>
算法在MSRC-21以及VOC2012[1]數(shù)據(jù)集中進(jìn)行了實(shí)驗(yàn),并與一些其他算法進(jìn)行了比較。對(duì)比算法首先選擇了一種基于特殊的隨機(jī)森林的算法[7],它通過(guò)比較像素周圍像素的值計(jì)算出像素特征,再通過(guò)隨機(jī)森林對(duì)每一個(gè)像素進(jìn)行分類。另一個(gè)對(duì)比算法是基于超像素分割的算法[3],首先將圖像分割成超像素,然后再使用分類對(duì)超像素進(jìn)行類別的判斷,最終得到圖像的語(yǔ)義分割的結(jié)果。這兩個(gè)算法都是基于弱監(jiān)督數(shù)據(jù)對(duì)模型進(jìn)行訓(xùn)練的,與本文所介紹的算法條件相同。
訓(xùn)練用的兩個(gè)數(shù)據(jù)集都是帶有強(qiáng)標(biāo)簽信息的真實(shí)圖像數(shù)據(jù)集,強(qiáng)標(biāo)簽的信息僅僅用于測(cè)試算法的語(yǔ)義分割結(jié)果,而在訓(xùn)練的過(guò)程中僅使用弱監(jiān)督標(biāo)簽的部分。MSRC-21數(shù)據(jù)集包含了大小為320×213的591幅不同的圖片,它們被分在了21個(gè)不同的分類中。需要一提的是,由于“horse”與“mountain”兩個(gè)分類的圖像數(shù)量較少,在訓(xùn)練及測(cè)試的過(guò)程中算法忽略了這兩個(gè)分類的結(jié)果。而在VOC2012數(shù)據(jù)集中包括了1 464幅不同的訓(xùn)練圖片以及1 449幅測(cè)試圖片,它們被分在了20個(gè)不同的前景的分類中。
第1節(jié)所介紹的基于深度神經(jīng)網(wǎng)絡(luò)的圖像語(yǔ)義分割的算法基于MatConvNet框架[8]進(jìn)行構(gòu)建,該框架是基于MATLAB語(yǔ)言的計(jì)算機(jī)視覺(jué)框架,它可以自定義不同的神經(jīng)網(wǎng)絡(luò)層、代價(jià)函數(shù)等,可以順利地通過(guò)該框架將算法所介紹的神經(jīng)網(wǎng)絡(luò)算法進(jìn)行實(shí)現(xiàn)。
在訓(xùn)練的過(guò)程中,為了在圖像中提取所有物體的子圖,使用Deep Mask算法[11]作為對(duì)象預(yù)提取算法。對(duì)于所有提取得到的子圖都將包括一份對(duì)象的輪廓信息以及子圖屬于對(duì)象的置信度,并設(shè)計(jì)一個(gè)閾值,當(dāng)子圖屬于對(duì)象的置信度大于該閾值時(shí)將該子圖作為一個(gè)有效的對(duì)象在訓(xùn)練、測(cè)試過(guò)程中進(jìn)行使用。對(duì)于一幅圖像中有效的子圖將它們打包后一齊送入深度神經(jīng)網(wǎng)絡(luò),使用在第1.3節(jié)中介紹的多塊損失函數(shù)對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
算法在兩個(gè)數(shù)據(jù)集中都是通過(guò)準(zhǔn)確率作為評(píng)價(jià)標(biāo)準(zhǔn)的,準(zhǔn)確率計(jì)算了在所有測(cè)試圖像中所有的像素在語(yǔ)義分割問(wèn)題中分類的正確率。
表1總結(jié)了算法與對(duì)比算法在MSRC-21數(shù)據(jù)集中圖像的語(yǔ)義分割問(wèn)題的結(jié)果。由于MSRC-21數(shù)據(jù)集中包含了許多個(gè)屬于背景分類的像素,而算法中包含對(duì)象預(yù)檢測(cè)算法的存在,對(duì)于圖像中有大多數(shù)部分是背景,算法對(duì)背景區(qū)域不會(huì)特別敏感,性能將會(huì)受到一定的影響,所以在最終結(jié)果上要略遜于對(duì)比實(shí)驗(yàn)的算法。
表1 算法在MSRC-21數(shù)據(jù)集中的結(jié)果
表2總結(jié)了算法與對(duì)比算法在VOC2012數(shù)據(jù)集中圖像的語(yǔ)義分割問(wèn)題的結(jié)果。相對(duì)于MSRC-21數(shù)據(jù)集而言,VOC2012數(shù)據(jù)集中包含前景的圖像部分較多,所以在該數(shù)據(jù)集中算法表現(xiàn)的效果要比對(duì)比算法都要高上不少。
表2 算法在VOC2012數(shù)據(jù)集中的結(jié)果
這里要進(jìn)一步介紹在VOC數(shù)據(jù)集中實(shí)驗(yàn)的結(jié)果以及細(xì)節(jié),如表3所示,表格展示了在數(shù)據(jù)集中每一個(gè)具體分類的實(shí)驗(yàn)結(jié)果。其中“本”所表示的就是本文所介紹的算法,其他的對(duì)比算法以參考文獻(xiàn)編號(hào)進(jìn)行表示。在對(duì)比的實(shí)驗(yàn)中,增加了一些近年來(lái)強(qiáng)監(jiān)督的算法作為比較算法,可以直觀地看出弱監(jiān)督算法與強(qiáng)監(jiān)督算法之前的一些差距。
表3 算法在VOC2012數(shù)據(jù)集中的詳細(xì)結(jié)果 %
可以看出,在大多數(shù)分類中本文算法實(shí)驗(yàn)的結(jié)果都比其他弱監(jiān)督算法優(yōu)秀,在一些分類的結(jié)果上已經(jīng)可以追上強(qiáng)監(jiān)督分類的算法結(jié)果。在物體屬性很明顯的類別中算法的效果已經(jīng)接近與強(qiáng)監(jiān)督的算法,但在那些“和背景較像”的分類中(如“沙發(fā)”、“餐桌”等),算法的表現(xiàn)非常不盡人意。因此,算法會(huì)受到一定的背景因素的影響,在VOC數(shù)據(jù)集中這個(gè)影響已經(jīng)變低了不少,但還是依然存在,也證明了算法受背景的影響程度較高,這也是本文算法的一個(gè)不足之處。
本文提出了一種基于深度神經(jīng)網(wǎng)絡(luò)的圖像語(yǔ)義分割的算法,算法可以通過(guò)弱監(jiān)督的數(shù)據(jù)對(duì)模型進(jìn)行端到端的訓(xùn)練,在訓(xùn)練數(shù)據(jù)易于收集的同時(shí)可以最大化神經(jīng)網(wǎng)絡(luò)的性能。在深度神經(jīng)網(wǎng)絡(luò)模型中,本文提出的多塊損失函數(shù)很好地將多個(gè)不同的圖像輸出結(jié)合,使模型達(dá)到了端到端的訓(xùn)練過(guò)程。
本文的工作也還存在著一些不足,文中的對(duì)象預(yù)檢測(cè)模塊還是一個(gè)獨(dú)立的模塊,并無(wú)法用網(wǎng)絡(luò)端到端的訓(xùn)練優(yōu)化這一個(gè)模塊的內(nèi)容。在未來(lái)的工作中,如何將對(duì)象預(yù)檢測(cè)模塊與語(yǔ)義分割網(wǎng)絡(luò)相結(jié)合是一個(gè)較為重要的問(wèn)題。
[1] Everingham M,Van Gool L,Williams C K I,et al.The pascal visual object classes challenge 2012 (voc2012) results (2012)[OL].2010.http://www.pascal-network.org/challenges/VOC/voc2011/workshop/index.html.
[2] Shotton J,Winn J,Rother C,et al.TextonBoost:Joint Appearance,Shape and Context Modeling for Multi-class Object Recognition and Segmentation[J].Proc Eccv May Graz Austria,2006,1(2):1-15.
[3] Zhang K,Zhang W,Zheng Y,et al.Sparse reconstruction for weakly supervised semantic segmentation[C]//International Joint Conference on Artificial Intelligence,2013:1889-1895.
[4] 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.
[5] Zhou B,Khosla A,Lapedriza A,et al.Learning deep features for discriminative localization[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2016:2921-2929.
[6] Papandreou G,Chen L C,Murphy K P,et al.Weakly-and semi-supervised learning of a deep convolutional network for semantic image segmentation[C]//Proceedings of the IEEE International Conference on Computer Vision,2015:1742-1750.
[7] Shotton J,Johnson M,Cipolla R.Semantic texton forests for image categorization and segmentation[C]//Computer vision and pattern recognition,2008.CVPR 2008.IEEE Conference on.IEEE,2008:1-8.
[8] Vedaldi A,Lenc K.Matconvnet:Convolutional neural networks for matlab[C]//Proceedings of the 23rd ACM international conference on Multimedia.ACM,2015:689-692.
[9] Papandreou G,Chen L C,Murphy K P,et al.Weakly-and Semi-Supervised Learning of a Deep Convolutional Network for Semantic Image Segmentation[C]//IEEE International Conference on Computer Vision.IEEE,2015:1742-1750.
[10] He K,Zhang X,Ren S,et al.Deep Residual Learning for Image Recognition[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).Las Vegas,NV,United States,2016:770-778.
[11] Pinheiro P O,Lin T Y,Collobert R,et al.Learning to Refine Object Segments[C]//European Conference on Computer Vision 2016.Lecture Notes in Computer Science,2016,9905:75-91.