李建偉, 段向歡, 徐夢夢, 薛桂香
(河北工業(yè)大學(xué) 人工智能與數(shù)據(jù)科學(xué)學(xué)院,天津 300401)
顯著性目標(biāo)檢測在圖像分割[1]、運(yùn)動(dòng)目標(biāo)跟蹤[2]等領(lǐng)域有廣泛的應(yīng)用價(jià)值。視頻顯著性目標(biāo)檢測需要根據(jù)視頻內(nèi)容的時(shí)空特征提取完整的顯著性目標(biāo),相比圖像顯著性檢測更具挑戰(zhàn)。文獻(xiàn)[3]提出了基于梯度流域和能量優(yōu)化函數(shù)的方法來檢測視頻中具有顯著時(shí)空特征的目標(biāo)。文獻(xiàn)[4]以無監(jiān)督的方式引用視頻的空間邊緣和時(shí)間運(yùn)動(dòng)邊界,通過計(jì)算和參考特征的測地距離來基本確定前景的位置以生成幀的時(shí)空顯著圖,并結(jié)合當(dāng)前幀前景邊緣、背景信息和后續(xù)幀中背景區(qū)域的測地距離生成最終的顯著性圖。
近來,生成對抗網(wǎng)絡(luò)[5]基于博弈論并通過生成器和判別器相互影響直到判別器不能判斷生成器的輸出是真是假為止。Isola P等人[6]應(yīng)用了cGAN,并將問題看作圖片翻譯問題。受此啟發(fā),本文在此基礎(chǔ)上結(jié)合顯著性檢測原理,引入了條件生成對抗網(wǎng)絡(luò)。條件生成對抗網(wǎng)絡(luò)將傳入的原始圖片作為參考條件,能夠更有效指導(dǎo)整個(gè)網(wǎng)絡(luò)的訓(xùn)練。通過對抗訓(xùn)練后的生成器為想要的模型,對輸入的視頻序列生成效果較好的顯著圖序列。
為了進(jìn)一步提高視頻顯著性目標(biāo)檢測的準(zhǔn)確率,本文基于彈性網(wǎng)絡(luò)的思想,提出了利用加權(quán)的L1和L2聯(lián)合作為正則項(xiàng)約束生成器的訓(xùn)練,實(shí)驗(yàn)結(jié)果表明,相比單純使用L1或L2作為正則項(xiàng),效果更好。
生成對抗網(wǎng)絡(luò)結(jié)構(gòu)分為生成器和判別器,通過訓(xùn)練得到一種從輸入的隨機(jī)噪音z到輸出圖y的映射[5],即G∶z→y。特別地,條件生成對抗網(wǎng)絡(luò)通過訓(xùn)練得到一種從輸入的隨機(jī)噪音z和被觀察圖象x到生成結(jié)果y的映射,即G∶{x,z}→y。
條件生成對抗網(wǎng)絡(luò)的生成器和判別器會(huì)一直相互對抗,直到經(jīng)過訓(xùn)練的生成器的輸出結(jié)果使判別器很難判斷是否是真實(shí)值。在此期間,判別器通過訓(xùn)練盡可能提高自己的判別能力。生成器和判別器均由模塊堆疊,模塊共分為3層:卷積層、批標(biāo)準(zhǔn)化層、基于淘汰率(值為50 %)的修正線性單元(ReLU)層。卷積核數(shù)均為4,步長大小為2。位于生成器編碼端以及判別器中的卷積層對輸入的圖片進(jìn)行下采樣,而位于生成器解碼端的卷積層對輸入的圖片進(jìn)行上采樣,上下采樣的變化因子均為2。
1.1.1 生成器
考慮到顯著性目標(biāo)檢測過程中原始圖片或視頻幀與其顯著圖的對應(yīng)關(guān)系,受文獻(xiàn)[6]工作的啟發(fā),采用了基于U-net[7]的生成器網(wǎng)絡(luò)。
U-net生成器網(wǎng)絡(luò)采用編碼器—解碼器結(jié)構(gòu)。從編碼器的第一層開始,樣本輸入,圖片信息被傳播到下一層,不同的模塊間圖片被下采樣,直到最中間一層。之后程序開始逆轉(zhuǎn),圖像在傳播過程中被上采樣,直到解碼器的最后一層。顯然,圖片信息在每一層傳播的過程中均會(huì)有損失。基于U-net生成器網(wǎng)絡(luò)中,在第i層和第n-i層之間添加了跳躍連接,其中,n表示所有層的數(shù)目。每個(gè)跳躍連接會(huì)相應(yīng)地拼接第i層和第n-i層的所有通道,這將會(huì)改變解碼器中每一層的通道數(shù)目。
在解碼器的最后一層后,會(huì)添加一層卷積層來映射出所要輸出圖像的通道數(shù)目,以滿足輸出圖象的要求。之后用Tanh激活函數(shù)添加非線性因素。此外,編碼器的第一個(gè)卷積層后通常不需要連接批標(biāo)準(zhǔn)化層。編碼器的所有修正線性單元層均為泄露(leaky)的,斜率為0.2,而解碼器中則均為非泄露的。
1.1.2 判別器
與生成器結(jié)構(gòu)相似,判別器也是基于卷積層、批量標(biāo)準(zhǔn)化層和ReLU層的多個(gè)模塊的堆疊。具體來講,共有4組這樣的模塊堆疊在判別器中,在最后一層會(huì)連接一個(gè)卷積層來轉(zhuǎn)換一維輸出,之后用Sigmoid激活函數(shù)。不同于生成器的是第一個(gè)卷積層不會(huì)被批標(biāo)準(zhǔn)化。判別器中應(yīng)用的修正線性單元都是泄露的,斜率值為0.2。
在生成圖像或者視頻幀的問題中,一些損失函數(shù)會(huì)產(chǎn)生相對模糊的結(jié)果,例如L1,L2等,通常它們很難獲取圖像的高層信息,但某些情況下,可以準(zhǔn)確地獲取低層次的信息。例如在顯著性檢測問題中,只要應(yīng)用L1損失函數(shù)就能在一定程度上保證獲取低層次信息的準(zhǔn)確性。本文提出的加權(quán)的L1,L2聯(lián)合正則約束能更好、更準(zhǔn)確地保證低層次信息地獲取。只需要將關(guān)注點(diǎn)放在圖片的補(bǔ)丁(patch)結(jié)構(gòu),這里引入文獻(xiàn)[6]提出的PatchGAN。它是一個(gè)判別器結(jié)構(gòu),該判別器試圖分類圖像中的每個(gè)N×N大小的補(bǔ)丁塊是真實(shí)的還是生成的。在圖像上以卷積的方式運(yùn)行判別器,它會(huì)平均所有響應(yīng)以得到判別器的最終輸出。本文實(shí)驗(yàn)中,N的值為70。
1.2.1 條件生成對抗網(wǎng)絡(luò)目標(biāo)函數(shù)
條件生成對抗網(wǎng)絡(luò)目標(biāo)函數(shù)可表示為
LcGAN(G,D)=Ex,y[logD(x,y)]+
Ex,z[log(1-D(x,G(x,z)))]
(1)
式中x為作為參考的變量,即原始的輸入圖片。y為真實(shí)值,z為隨機(jī)噪音變量。生成器G通過最小化目標(biāo)函數(shù)以達(dá)到“欺騙”判別器,判別器D則試圖最大化目標(biāo)函數(shù)以提高自己的判別能力,即
G*=argminGmaxxDLcGAN(G,D)
(2)
前人的工作表明,將傳統(tǒng)的損失函數(shù)和GAN目標(biāo)函數(shù)結(jié)合往往會(huì)有更好的效果[8]。因此這里將L1項(xiàng)添加到GAN的目標(biāo)函數(shù)中,即
LL1(G)=Ex,y,z[‖y-G(x,z)‖1]
(3)
1.2.2 彈性網(wǎng)絡(luò)(Elastic Net)
彈性網(wǎng)絡(luò)是一種利用L1和L2范式作為先驗(yàn)正則項(xiàng)來進(jìn)行訓(xùn)練的線性回歸模型。這種組合適用于非零權(quán)重比較少的稀疏模型,且多個(gè)特征和另一個(gè)特征相關(guān)時(shí)。彈性網(wǎng)絡(luò)的目標(biāo)函數(shù)為
argminβ{‖Y-XTβ‖2+λ2‖β‖2+λ1‖β‖1}
(4)
式中β為要學(xué)習(xí)的權(quán)重參數(shù),{X,Y}為樣本,λ1,λ2分別為L1范式、L2范式的比例系數(shù)。L1范式可以實(shí)現(xiàn)稀疏化,進(jìn)而實(shí)現(xiàn)特征的自動(dòng)選擇,去除無用特征。L2范式旨在擬合數(shù)據(jù),使得權(quán)重參數(shù)β的各個(gè)元素變得很小,這樣即使輸入值有很大的變化,輸出的預(yù)測值變化也會(huì)很有限,進(jìn)而提高模型的抗干擾能力。彈性網(wǎng)絡(luò)聯(lián)合L1,L2來正則約束模型,既簡化了模型,避免過擬合,又增強(qiáng)了模型的穩(wěn)定性和擬合能力。
1.2.3 L1,L2聯(lián)合正則下的對抗性目標(biāo)函數(shù)
受彈性網(wǎng)絡(luò)的啟發(fā),本文提出通過加權(quán)的L1,L2范式來聯(lián)合作為正則項(xiàng)約束條件生成對抗網(wǎng)絡(luò)的訓(xùn)練。最終的目標(biāo)函數(shù)為
G*=argminGmaxDLcGAN(G,D)+λ1LL1(G)+λ2LL2(G)
(5)
式中λ1,λ2分別為L1,L2損失函數(shù)的權(quán)重系數(shù),本文中λ1和λ2的值分別取100和150。LL2(G)即
(6)
在提出的模型中,無論是訓(xùn)練階段還是測試階段,均通過在生成器的一些層中添加淘汰率(dropout)來替代隨機(jī)噪音,并在一定程度上防止模型的過擬合。而且在網(wǎng)絡(luò)的輸出中,實(shí)驗(yàn)結(jié)果僅僅表現(xiàn)出了小幅度的隨機(jī)性。在本文算法實(shí)現(xiàn)時(shí)將目標(biāo)函數(shù)一分為二,即在優(yōu)化判別器時(shí),相對生成器,會(huì)學(xué)習(xí)得更慢一些,進(jìn)而更好地指導(dǎo)生成器的訓(xùn)練。
設(shè)計(jì)模型基于流行的深度學(xué)習(xí)框架Tensorflow來訓(xùn)練和測試。實(shí)驗(yàn)中,使用MSRA10K[9]和DUT-OMRON[10]等圖片數(shù)據(jù)集來訓(xùn)練網(wǎng)絡(luò),目的在于使模型能夠充分利用圖片的空間信息。為了保證視頻序列的時(shí)序特征,使用DAVIS[11]訓(xùn)練集來訓(xùn)練模型以提高獲取時(shí)空特征的能力。為了提高模型的泛化能力,在方法中采用了隨機(jī)抖動(dòng)策略。訓(xùn)練中沒有使用預(yù)訓(xùn)練模型,均從零開始訓(xùn)練,模型的權(quán)重通過均值為0、標(biāo)準(zhǔn)差為0.02的高斯分布進(jìn)行初始化。為了優(yōu)化網(wǎng)絡(luò),實(shí)驗(yàn)中使用了小批量隨機(jī)梯度下降法和Adam優(yōu)化算法。學(xué)習(xí)率設(shè)置為0.000 2,沖量系數(shù)和權(quán)重衰減則分別為0.5 和0.99。
測試階段,采用了SegTrack v2數(shù)據(jù)集[12]和DAVIS測試數(shù)據(jù)集[11]。這兩個(gè)標(biāo)準(zhǔn)視頻數(shù)據(jù)集被廣泛用于顯著性檢測工作中,每個(gè)視頻序列的每一幀都會(huì)有完整的像素級標(biāo)注。在測試過程中,運(yùn)行生成器網(wǎng)絡(luò)的方式和訓(xùn)練階段是基本一致的,但在測試階段添加了淘汰率而不再使用隨機(jī)噪音變量。進(jìn)行批標(biāo)準(zhǔn)化時(shí),使用的是測試階段生成的統(tǒng)計(jì)結(jié)果。實(shí)驗(yàn)中,當(dāng)訓(xùn)練到20輪時(shí),模型達(dá)到了很好的效果。之后又進(jìn)行了繼續(xù)訓(xùn)練,但并沒有得到更好的結(jié)果。
從定性和定量角度將其和目前主流的方法在SegTrack v2和DAVIS測試集上進(jìn)行了對比。方法包括:融合顯著區(qū)域特征的顯著性(DRFI)[13],基于超像素級圖和時(shí)空傳播的顯著性(SGSP)[14],基于測地距離的視頻顯著性(SAGE)[4],通過梯度流域計(jì)算顯著性(GAFL)[3]。其中,第一個(gè)是圖像顯著性檢測的方法,其他的都是對于視頻顯著性的。
視覺效果對比如圖1所示。圖中每一行表示同一視頻幀上幾種方法的對比。對原始視頻幀和對應(yīng)的真實(shí)值來說,從第一行開始,每2行來自同一個(gè)視頻,每3個(gè)視頻來自同一個(gè)數(shù)據(jù)集。從圖中可以看出,圖像顯著性檢測方法處理的結(jié)果會(huì)附帶很多顯著目標(biāo)周圍的背景,造成顯著目標(biāo)在結(jié)果中不易辨識(shí)。該方法處理的結(jié)果會(huì)損失一定的幀間信息,某些情況下可能會(huì)造成目標(biāo)的不完整性,在多目標(biāo)視頻中往往很難把握全部目標(biāo)的信息。其他用于視頻的方法可以更好地處理幀間信息,且顯著目標(biāo)周圍的背景也處理得較徹底,但SGSP得到的結(jié)果比較模糊,很難確定顯著目標(biāo)的邊緣,丟失了不少細(xì)節(jié)信息;GAFL和SAGE兩種方法結(jié)果相對清晰,但由于計(jì)算成本比較高,很難滿足實(shí)時(shí)要求。相比而言,本文方法獲得的結(jié)果保留了清晰準(zhǔn)確的信息,背景處理徹底,顯著目標(biāo)更接近人工標(biāo)注的真實(shí)值。此外,訓(xùn)練好的模型在處理視頻時(shí)具有很高的運(yùn)行效率,見表3。
圖1 視覺效果對比(第1列的Input表示原始圖片,第2列的GT表示對應(yīng)的人工標(biāo)注圖)
此外,本文采用兩種被廣泛使用的評價(jià)指標(biāo):F-measure和MAE對各種方法進(jìn)行了定量分析。F-measure為查準(zhǔn)率(Precision)和查全率(Recall)的統(tǒng)計(jì)加權(quán)調(diào)和平均值表示為
(7)
基于前人工作的推薦,這里設(shè)置β為0.3,以此來突出查準(zhǔn)率的重要性。查準(zhǔn)率對應(yīng)于正確檢測到的顯著像素占檢測到的顯著像素總數(shù)的百分比。查全率對應(yīng)于正確檢測到的顯著像素?cái)?shù)占據(jù)真實(shí)的顯著像素總數(shù)的比例。為了更好地評估檢測模型,通常利用F-measure的值來綜合這兩種評價(jià)指標(biāo)。
MAE用于評估由模型預(yù)測出的顯著概率圖P與相應(yīng)的真實(shí)值G之間的逐像素平均差異
(8)
式中w和h分別為輸入的視頻幀的寬度和高度。
所有方法在SegTrack v2數(shù)據(jù)集和DAVIS測試集上的F-measure和MAE值如表1所示。
表1 不同算法在兩個(gè)公開數(shù)據(jù)集上的評價(jià)指標(biāo)對比
從表中可以看出,對于F-measure(值越大效果越好)和MAE(值越小效果越好)這兩個(gè)評價(jià)指標(biāo),相比其他的方法,本文的模型都表現(xiàn)得更好,證明了它的有效性和優(yōu)越性。
基于彈性網(wǎng)絡(luò)的啟發(fā),也為了更好地訓(xùn)練條件生成對抗網(wǎng)絡(luò),尤其是生成器模型,提出利用加權(quán)的L1,L2損失函數(shù)來聯(lián)合作為正則項(xiàng)約束模型的訓(xùn)練。在訓(xùn)練集、測試集以及學(xué)習(xí)率、批量大小等基本參數(shù)不變的情況下,對比了單純使用L1,L2損失函數(shù)作為正則項(xiàng)和本文提出的方法等處理的結(jié)果。對比情況如表2所示。
表2 不同測試數(shù)據(jù)集上的正則項(xiàng)分析
從表中的數(shù)據(jù)可知,對于MAE和F-measure指標(biāo),聯(lián)合L1,L2損失函數(shù)一起作為正則項(xiàng)比單純使用其中某一個(gè)損失函數(shù)作為正則項(xiàng)效果要好,且通過調(diào)節(jié)兩個(gè)損失函數(shù)的權(quán)重,這里加大了L2損失函數(shù)的權(quán)重,取得了更好的結(jié)果。
為了對比各個(gè)方法的運(yùn)行效率,本文分別從DAVIS測試集和SegTrack v2數(shù)據(jù)集隨機(jī)選擇一個(gè)視頻序列,不同方法處理視頻的效率對比見表3。其中,Cows來自DAVIS數(shù)據(jù)集,F(xiàn)rog來自SegTrack v2數(shù)據(jù)集。實(shí)驗(yàn)的計(jì)算資源包括Intel(R) Core(TM) i5—7300HQ CPU(4核),計(jì)算機(jī)內(nèi)存8 GB,Nvidia Geforce GTX 1050 GPU。
如表3所示,本文方法不需要超像素分割、平滑濾波等預(yù)處理以及光流計(jì)算,在處理視頻序列時(shí)具有很高的運(yùn)行效率,相比其他的方法有數(shù)量級的提升。
在SegTrack v2、DAVIS等公開數(shù)據(jù)集上的對比實(shí)驗(yàn)結(jié)果表明:本文所提方法優(yōu)于其他先進(jìn)的主流方法。對于一些更復(fù)雜、更具難度的場景,本文提出的方法依舊面臨著不小挑戰(zhàn),這也說明GANs在視頻顯著性檢測領(lǐng)域中的研究還有很大的發(fā)展空間。