章 琳,袁非牛,張文睿,曾夏玲
1.江西科技師范大學(xué) 數(shù)學(xué)與計算機科學(xué)學(xué)院,南昌330038
2.上海師范大學(xué) 信息與機電工程學(xué)院,上海201418
卷積神經(jīng)網(wǎng)絡(luò)已被廣泛地應(yīng)用于很多視覺研究領(lǐng)域[1],比如圖像分類、人臉識別、音頻檢索、ECG 分析等。卷積神經(jīng)網(wǎng)絡(luò)之所以取得如此巨大的成功是因為其所采用的卷積、池化等操作。卷積操作具有局部連接、權(quán)值共享的特點,能很好地保留二維數(shù)據(jù)的空間信息,而池化操作能夠很好地滿足平移不變性,這在分類任務(wù)中非常重要。但是卷積神經(jīng)網(wǎng)絡(luò)有一個很大的缺陷,就是網(wǎng)絡(luò)輸入必須指定大小,而且一般只能進行一對一的預(yù)測,即一個輸入只能得到一個預(yù)測結(jié)果。但是隨著視覺領(lǐng)域的發(fā)展,這種預(yù)測已經(jīng)無法滿足要求,完成的任務(wù)越來越復(fù)雜,往往需要的是密集預(yù)測,即輸入對象中的每一個元素都需要進行預(yù)測,這是卷積神經(jīng)網(wǎng)絡(luò)無法完成的,而全卷積神經(jīng)網(wǎng)絡(luò)就是在這種需求下被提出的。
顧名思義,全卷積神經(jīng)網(wǎng)絡(luò)中包含的都是卷積層,根據(jù)任務(wù)需要可以適當(dāng)保留池化層,為了完成密集預(yù)測,卷積神經(jīng)網(wǎng)絡(luò)中的全連接層必須被卷積層替代,這也是全卷積神經(jīng)網(wǎng)絡(luò)最大的特點之一。由于保留了卷積和池化操作,全卷積神經(jīng)網(wǎng)絡(luò)具有卷積神經(jīng)網(wǎng)絡(luò)的所有特點,此外,全卷積神經(jīng)網(wǎng)絡(luò)對于輸入非常寬容,可以處理任意大小的輸入信號。早在1992 年,Matan 等[2]就已經(jīng)將一個卷積神經(jīng)網(wǎng)絡(luò)擴展為可以處理任意大小輸入信號,但是該網(wǎng)絡(luò)僅能處理一維信號;而在1994 年,Wolf等[3]將輸入信號擴展為二維圖像,提出了一個卷積定位網(wǎng)絡(luò)對郵政地址進行定位,該方法完全可以被看作全卷積神經(jīng)網(wǎng)絡(luò),因為其網(wǎng)絡(luò)結(jié)構(gòu)中僅采用了卷積和下采樣操作,然后通過一個后續(xù)的候選框產(chǎn)生方法來完成定位任務(wù)。盡管該方法與后期的全卷積神經(jīng)網(wǎng)絡(luò)有較大差距,并且不是端對端的,但是它為全卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展奠定了堅實的基礎(chǔ)。
目前,全卷積神經(jīng)網(wǎng)絡(luò)被廣泛應(yīng)用于目標(biāo)分割、目標(biāo)檢測、目標(biāo)分類等研究領(lǐng)域,并取得了令人矚目的成果。下面,將分別介紹多個研究領(lǐng)域中一些比較經(jīng)典的全卷積神經(jīng)網(wǎng)絡(luò)算法以及目前一些最新的研究進展。
語義分割,即密集分類問題,需要對輸入圖像中的每個像素點都進行分類來完成目標(biāo)分割任務(wù),任務(wù)最后的輸出是一張與原圖大小相關(guān)的分類結(jié)果圖,圖中每個值對應(yīng)的是原圖中每個點的分類預(yù)測結(jié)果。由于語義分割能實現(xiàn)各類目標(biāo)之間的精確分割,因此被廣泛應(yīng)用于自動駕駛、醫(yī)療、地理、機器人等研究領(lǐng)域。
2.1.1 FCN
FCN[4]語義分割算法是在2015年提出的,它第一次真正實現(xiàn)了全卷積神經(jīng)網(wǎng)絡(luò)在像素級預(yù)測任務(wù)上的端對端訓(xùn)練。FCN算法通過將原始CNN網(wǎng)絡(luò)中的全連接層替換為1×1 的卷積層來實現(xiàn)全卷積網(wǎng)絡(luò)結(jié)構(gòu),如圖1所示。通過這個操作,F(xiàn)CN可以對圖像中的每個像素點都產(chǎn)生一個預(yù)測結(jié)果,最終輸出一個與輸入圖像大小相關(guān)的預(yù)測圖。在結(jié)果預(yù)測階段,提出了一種可學(xué)習(xí)的雙線性上采樣方法,實驗證明該方法優(yōu)于采用固定參數(shù)的上采樣方法。為使分割結(jié)果更加精細(xì),F(xiàn)CN采用了跳層結(jié)構(gòu),將來自多個不同層的特征圖上采樣到同樣大小后,通過求和的方式進行融合。由于淺層信息的加入,輸出結(jié)果的語義和空間精度得到了有效提升。此外,為了使網(wǎng)絡(luò)可以快速收斂,利用多種網(wǎng)絡(luò)結(jié)構(gòu)在ImageNet上訓(xùn)練好的權(quán)重對網(wǎng)絡(luò)參數(shù)進行初始化,然后再使用語義分割的訓(xùn)練數(shù)據(jù)集對網(wǎng)絡(luò)參數(shù)進行微調(diào)。FCN 對AlexNet[5]、VGG16[6]和GoogLeNet[7]進行了微調(diào),其中VGG16效果最好。
圖1 FCN框架圖
FCN有以下優(yōu)點:1×1卷積層的使用使網(wǎng)絡(luò)可以處理任意大小的輸入;基于塊的方法需要在重疊塊上進行很多冗余計算,而FCN 中感受野的顯著重疊使得網(wǎng)絡(luò)在前饋和反饋計算中更加高效。FCN也存在以下缺陷:首先網(wǎng)絡(luò)整體規(guī)模過大,很難在相關(guān)任務(wù)上完成端對端訓(xùn)練;其次,由于預(yù)測結(jié)果由多個下采樣后的特征圖通過上采樣直接產(chǎn)生,這些特征圖太過稀疏,導(dǎo)致分割結(jié)果不夠精細(xì),缺乏細(xì)節(jié)信息。FCN通過跳層結(jié)構(gòu)將來自不同層的特征圖進行有效融合能有效提升分割精度。這是由于FCN 中較深的層能學(xué)習(xí)到目標(biāo)的全局特征,而較淺的層則可以捕獲目標(biāo)的大量細(xì)節(jié)信息,這種信息的互補對目標(biāo)分割任務(wù)有利。
2.1.2 U-net
U-net[8]是在2015 年提出的一個用于醫(yī)學(xué)圖像分割的全卷積網(wǎng)絡(luò)結(jié)構(gòu)。它是一個對稱編-解碼網(wǎng)絡(luò)結(jié)構(gòu)。U-net 也采用了FCN 的跳層結(jié)構(gòu),但兩者有較大區(qū)別:U-net 將編碼階段獲取的特征圖傳送到對應(yīng)的解碼階段,并通過連接的方式融合來自不同階段的特征圖。U-net 采用的是3×3 的非填補卷積操作,因此每經(jīng)過一次卷積,特征圖會縮小2×2個像素,為了實現(xiàn)連接操作,特征在傳送過程中還進行了裁剪。
U-net 另一個亮點在于針對生物細(xì)胞圖像的特點,提出了一個加權(quán)交叉熵?fù)p失函數(shù):
其中,ω 是一個權(quán)重圖譜,通過形態(tài)學(xué)操作的方式計算獲得:
損失函數(shù)的目的是為了補償訓(xùn)練數(shù)據(jù)集中每類像素出現(xiàn)的不同頻率,使網(wǎng)絡(luò)將重點放在相互接觸的細(xì)胞之間比較細(xì)微的區(qū)域。此外,采用了He等[9]提出的自適應(yīng)權(quán)重初始化方法:采用標(biāo)準(zhǔn)方差為的高斯分布去初始化權(quán)重,其中N 為神經(jīng)元輸入結(jié)點的數(shù)量。
2.1.3 SegNet
SegNet[10]與U-net非常相似,但二者又有明顯不同,首先SegNet沒有采用跳層結(jié)構(gòu);其次,SegNet的編碼階段直接采用了VGG16的前5個塊,為了加快收斂抑制過擬合,還在每個卷積層后面增加了一個Batch Normalization(BN)[11],SegNet 使用VGG16 在ImageNet 上訓(xùn)練好的權(quán)重來進行網(wǎng)絡(luò)初始化。
SegNet 最大的亮點在于提出了一種更加有效的unpool方法。作者指出語義分割中邊界輪廓至關(guān)重要,在內(nèi)存條件允許的情況下,編碼階段所有特征圖的邊界信息都應(yīng)該被保存,但這并不符合實際,因此提出了一種更加有效的方法去存儲邊界信息。該方法與原始unpool[12]的相同之處是,在編碼階段都需要保存下采樣操作中最大特征值在每個池化窗口中的位置信息,文中稱之為最大池化索引,然后在解碼階段,利用最大池化索引對輸入的特征圖進行上采樣。不同之處在于最大池化索引的保存方式,原始unpool 采用的是浮點精度,而SegNet僅采用2 bit數(shù)據(jù)量就完成了存儲,這使得SegNet的網(wǎng)絡(luò)規(guī)模大幅度減小,具有更快的運行速度。
2.1.4 Deeplab系列算法
Deeplab 系列算法包括deeplab v1[13]、v2[14]、v3[15]和v3+[16]。Deeplab v1是2016年提出的,它將FCN與全連接條件隨機場相結(jié)合,分割性能有了很大提升。主要原因在于:首先,為了改善FCN 分割結(jié)果太過稀疏的問題,deeplab v1將VGG16中最后兩個池化層的步長由2改為1,同時采用邊界補0 的方式使池化之后的特征圖盡量保持原有大??;其次,為了保證后續(xù)卷積層的感受野不受影響,deeplab v1 將最后3 個卷積層和第一個全連接層替換為步長為2和4的空洞卷積(hole algorithm);為了減少計算時間,改用4×4或3×3的卷積核去替換第一個全連接層中的7×7卷積核。經(jīng)過以上操作,deeplab v1 的輸出比FCN 增大了4 倍。由于分割結(jié)果邊緣過于平滑,在網(wǎng)絡(luò)后端增加了一個全連接條件隨機場去銳化分割邊緣。這樣做雖然可以獲取很好的邊緣細(xì)節(jié),但是全連接條件隨機場的使用大大增加了算法的計算復(fù)雜度。
2017年deeplab v2被提出[14],它在v1的基礎(chǔ)上進行了兩方面改進,首先將基礎(chǔ)網(wǎng)絡(luò)改為ResNet101[17];然后提出了空洞空間金字塔池化(ASPP)以實現(xiàn)目標(biāo)在多個尺度上的魯棒分割。ASPP是受到R-CNN[18]中空間金字塔池化方法的啟發(fā),對同一特征圖同時采用多個并行的帶有不同采樣率(rate)的空洞卷積層以實現(xiàn)多尺度,然后對不同采樣率提取的特征在各自的分支中做進一步的處理并以求和方式進行融合,產(chǎn)生最終結(jié)果。ASPP能捕獲目標(biāo)的多尺度信息,空洞卷積的引入解決了特征分辨率和感受野之間的矛盾,為獲取足夠大的感受野,空洞卷積需要足夠大的采樣率,當(dāng)采樣率過大時會造成空洞卷積操作無效以及算法復(fù)雜度劇增的后果。
同年12 月,deeplab v3[15]問世,它的一個明顯不同就是不再使用全連接條件隨機場。同時做了以下改進:通過級聯(lián)方式提出了一個更深的網(wǎng)絡(luò)模型,復(fù)制ResNet網(wǎng)絡(luò)最后一個塊(即block4)的幾個副本(即block5-block7),將這些副本通過級聯(lián)方式連接到網(wǎng)絡(luò)后端,每個塊包含3個3×3的卷積層,除了最后一個塊,其他塊的最后一個卷積層采用的步長都為2。還提出了一種稱為Multi-gird的方法,即在網(wǎng)絡(luò)中的block4到block7采用了具有不同rate 的空洞卷積。在ASPP 中加入了BN[11],將rate=24的空洞卷積替換為一個1×1的卷積,并且加入了圖像級特征。這個改進就是為了解決當(dāng)采樣率過大時,卷積核的大小可能會超過特征圖,這種情況下卷積會退化為一個只有中心點權(quán)重有效的1×1濾波器。
2018 年,deeplab 系列作者提出了deeplab v3+算法[16]。相比之前的算法,v3+的網(wǎng)絡(luò)結(jié)構(gòu)有較大改變,它在網(wǎng)絡(luò)中加入了一個簡單但有效的解碼模型,如圖2所示。v3+模型采用v3 網(wǎng)絡(luò)作為編碼模型,并將其中的ResNet101 替換為Xception[19],并增加了其深度;此外,為了減少網(wǎng)絡(luò)參數(shù),在ASPP 模塊和解碼模型中引入了深度可分離卷積(depth wise separable convolution)[19],對于模型中的空洞卷積,則采用空洞可分離卷積替換。此外,將網(wǎng)絡(luò)中所有的最大池化層替換為步長為2的深度可分離卷積,并且在每個3×3的深度可分離卷積后面都增加了BN和ReLU操作。
根據(jù)對deeplab 算法的分析,在網(wǎng)絡(luò)設(shè)計方面可以歸納出一些結(jié)論:(1)采用空洞卷積能有效提升分割結(jié)果的分辨率,使細(xì)節(jié)信息更加豐富;(2)全連接條件隨機場能有效恢復(fù)分割結(jié)果的細(xì)節(jié),但其計算復(fù)雜度較高;(3)更深的網(wǎng)絡(luò)有利于獲取更有效的特征;(4)ASPP 能有效捕獲多個尺度的上下文信息,有效解決多尺度問題;(5)深度可分離卷積能有效減少模型參數(shù)數(shù)量,降低模型計算量,同時有效提升模型的表達能力;(6)編-解碼模型能使編碼階段計算速度更快,而解碼階段能通過逐步恢復(fù)空間信息獲取目標(biāo)更好的邊緣細(xì)節(jié)[16]。
2.1.5 其他算法
圖2 Deeplab v3+網(wǎng)絡(luò)結(jié)構(gòu)圖
RefineNet[20]是一個多通道微調(diào)全卷積網(wǎng)絡(luò),提出的長距離殘差連接方法可以利用早期卷積層獲取的細(xì)粒度低階特征直接去微調(diào)更深層捕獲的高階特征。網(wǎng)絡(luò)的輸入來自ResNet 的4 個不同尺度的特征輸出,RefineNet模塊中包含殘差卷積單元,多分辨率融合單元以及鏈條式殘差池化單元,這種設(shè)計可以保證網(wǎng)絡(luò)中的梯度通過長距離殘差連接輕松地被傳播到較早的低階層,確保整個網(wǎng)絡(luò)可以進行端對端的訓(xùn)練。
Peng 等[21]提出大部分網(wǎng)絡(luò)都偏向堆疊小尺寸卷積核,如1×1、3×3,原因在于當(dāng)計算復(fù)雜度相同時,堆疊小卷積核效果更好。但是本文指出當(dāng)需要同時進行分類和定位時,大卷積核反而更加重要,因此提出了一個采用大卷積核的全局卷積模塊以及提升目標(biāo)邊緣精度的邊界微調(diào)模塊,當(dāng)卷積核大小為11時效果最佳。
PSPNet提出了一個金字塔池化模塊[22],并將其嵌入全卷積網(wǎng)絡(luò)后端,該模塊包含多個并行的具有不同步長的全局均值池化操作,可以聚合更多的上下文信息,不同感受野下獲取的全局信息可以減少很多誤分割。DenseASPP 認(rèn)為ASPP 獲取的特征圖尺度不夠豐富,感受野覆蓋范圍不夠密集[23],因此借鑒DenseNet 的思想,將ASPP以更加密集的方式進行連接、組合。
Cheng 等[24]提出了一個位置敏感反卷積模塊(LSDeconvNet),該模塊在deeplabv2 的基礎(chǔ)上增加了一個反卷積子網(wǎng)絡(luò),網(wǎng)絡(luò)將RGB 圖像和由深度圖像編碼成的HHA 圖像并行送入LS-DeconvNet 并采用一個門控融合層合并兩個語義分割結(jié)果;黃龍等[25]通過層間融合方式提出了一種快速全卷積網(wǎng)絡(luò),有效地避免了連續(xù)卷積層造成的圖像特征信息損失;Yuan等[26]則提出了一個雙支路非對稱編-解碼網(wǎng)絡(luò)結(jié)構(gòu)對煙霧目標(biāo)進行分割。
此外,文獻[26-31]都將全卷積網(wǎng)絡(luò)用于醫(yī)學(xué)圖像分割。Yuan 等[27]提出了一個編-解碼兩階段全卷積網(wǎng)絡(luò),編碼階段包括5個卷積層、3個池化層和1個dropout層,解碼階段包括4 個反卷積層和3 個上采樣層,同時針對皮膚圖像中病變區(qū)域較小的特點提出了基于杰卡德距離的損失函數(shù)。文獻[28]中提出兩種全卷積網(wǎng)絡(luò),第一種將三維大腦圖像分為冠狀位、矢狀位和軸狀位3種二維圖像,同時送入一個多尺度全卷積網(wǎng)絡(luò),然后融合3個輸出獲取分割結(jié)果,這樣做有效地避免了使用計算量巨大的三維卷積;第二種模型是Auto-U-net,與U-net非常類似,最大的差別在于Auto-U-net 將U-net 中的卷積全部替換為填補卷積,即卷積層的輸入輸出大小一致。同樣的,文獻[29]和[30]也以U-net 為基礎(chǔ)進行改進,前者在編碼階段的最后引入一個門控循環(huán)神經(jīng)元以獲取全局特征,并將網(wǎng)絡(luò)循環(huán)使用提出了一個周期全卷積網(wǎng)絡(luò)(RFCN);后者則在編碼階段加入了一個ASPP 模塊。Li 等[31]提出的全卷積殘差網(wǎng)絡(luò)能同時完成分割和分類任務(wù),包括88 個卷積層和4 個反卷積層,其中采用了類似FCN[4]的跳層結(jié)構(gòu),同時為了加大網(wǎng)絡(luò)深度,還提出了一種Residual in Residual 結(jié)構(gòu)。Jia 等[32]則提出了一個基于弱監(jiān)督的全卷積網(wǎng)絡(luò),利用多尺度學(xué)習(xí)提出了一個深度弱監(jiān)督損失函數(shù),同時為了獲取對學(xué)習(xí)過程有顯著幫助的額外弱監(jiān)督信息,在網(wǎng)絡(luò)中引入了關(guān)于正樣本的約束條件。
文獻[32-34]都采用和deeplab v1近似的策略,在全卷積網(wǎng)絡(luò)后端增加一些后處理模塊來進一步提升分割精度。Zhang等[33]提出了一種基于概率超像素的全連接條件隨機場去改善全卷積網(wǎng)絡(luò)得到的粗糙分割圖,Sun等[34]則采用數(shù)字表面模型(DSM)去增強全卷積網(wǎng)絡(luò)的分割結(jié)果,黃英來等[35]則將改進后的FCN和全連接條件隨機場結(jié)合用于林木圖像分割。
之前介紹的都是基于圖像的語義分割,文獻[36-39]則是針對視頻的。He等[37]最大貢獻在于提出了一種時空數(shù)據(jù)驅(qū)動池化方法,該方法包括空間池化層、時間池化層和區(qū)域-像素池化層,首先利用全卷積網(wǎng)絡(luò)產(chǎn)生每一幀圖像的超像素分割圖,并且利用光流信息建立不同幀對應(yīng)區(qū)域之間的聯(lián)系,最后采用提出的池化方法將兩者進行融合。在文獻[36-38]中,都采用了雙流結(jié)構(gòu)來進行視頻目標(biāo)分割。Qiu 等[38]利用二維像素和三維像素之間的空間和時間依賴性,提出了一種深度時空全卷積網(wǎng)絡(luò),其中二維全卷積網(wǎng)絡(luò)與卷積長短期記憶模型(ConvLSTM)結(jié)合用于二維像素,三維全卷積網(wǎng)絡(luò)用于三維像素。而Caelles 等[39]和Jain 等[40]提出的雙流結(jié)構(gòu)采用的是一樣的網(wǎng)絡(luò)結(jié)構(gòu),前者一條分支用于分割前景目標(biāo),另一條分支用于產(chǎn)生目標(biāo)輪廓;后者一條分支用于學(xué)習(xí)視頻的外觀信息,另一條則用于學(xué)習(xí)光流信息。
雖然基于FCN 的全監(jiān)督語義分割取得了巨大成功,但是圖像標(biāo)簽需要像素級標(biāo)注,這是一項巨大的工程。因此,很多學(xué)者考慮是否可以采用一些比像素級標(biāo)注更容易獲取的標(biāo)注信息來替代,如圖像級標(biāo)簽,這種方法被稱為弱監(jiān)督語義分割。
2.2.1 STC
Wei等[41]提出了一種由分割簡單圖像逐步升級為分割復(fù)雜圖像的弱監(jiān)督語義分割框架(STC),如圖3所示,模型中所有DCNN 均為全卷積結(jié)構(gòu)。該方法的一個前提是假設(shè)簡單圖像只包含一個語義標(biāo)簽,那么就可以通過顯著性方法將簡單圖像中的目標(biāo)檢測出來,給前景候選像素直接分配相應(yīng)的圖像級標(biāo)簽,這就把問題轉(zhuǎn)換成了全監(jiān)督語義分割,這部分工作由I-DCNN完成,其中采用的顯著性分割方法為判別區(qū)域特征融合(DRFI)[42]。第二階段為E-DCNN,它利用I-DCNN 對簡單圖像進行分割,同時結(jié)合圖像級標(biāo)簽去訓(xùn)練E-DCNN。最后階段為P-DCNN,和E-DCNN 策略一樣,利用E-DCNN 對復(fù)雜圖像進行預(yù)測,同時結(jié)合圖像級標(biāo)簽去增強P-DCNN的分割能力?;谶@個由簡單到復(fù)雜的模型,圖像分割結(jié)果被逐步優(yōu)化。雖然STC在PASCAL VOC2012上取得了51.2%的成績,但該模型有兩個較大的缺陷,首先必須收集很多具有簡單背景單一目標(biāo)的簡單圖像作為第一階段的訓(xùn)練樣本,否則后續(xù)工作無法繼續(xù);其次,STC需要分3個階段采用不同數(shù)據(jù)對網(wǎng)絡(luò)進行訓(xùn)練,因此訓(xùn)練過程復(fù)雜,時間過長。
在STC方法之后,針對弱監(jiān)督語義分割還提出了很多方法[43-45],但這些方法中都包含了使用了全連接層的分類網(wǎng)絡(luò),在此不做詳細(xì)介紹。
2.2.2 WILDCAT
WILDCAT[46]包括3個子網(wǎng)絡(luò)能同時完成圖像分類,檢測和分割任務(wù),如圖4 所示。該結(jié)構(gòu)以ResNet101 為骨干網(wǎng)絡(luò)用于提取圖像初級特征,通過1×1 卷積層,即圖中WSL轉(zhuǎn)換層,將初級特征編碼為多個特征圖,其中每類C 包含M 個,這部分僅使用圖像級標(biāo)簽進行學(xué)習(xí)。為了總結(jié)來自多個特征圖的信息,采用平均池化將屬于同一類的M 個特征圖合并為一個特征圖,最后采用提出的空間池化對C 個來自不同類的特征圖進行分類、檢測和分割。
表1 給出了一些方法在PASCAL VOC2012 測試集上的語義分割結(jié)果對比,可以發(fā)現(xiàn),跳層結(jié)構(gòu)、殘差結(jié)構(gòu)、空洞卷積、多尺度結(jié)構(gòu)等技巧的使用極大地提升了分割精度。相比全監(jiān)督算法,雖然弱監(jiān)督算法的精度還有較大差距,但由于弱監(jiān)督算法對標(biāo)簽的要求很低,因此也非常具有研究價值,性能也有很大提升空間。
圖3 STC框架圖
圖4 WILDCAT框架圖
表1 幾種方法在PASCAL VOC2012測試集上的性能對比
實例分割與語義分割有非常本質(zhì)的區(qū)別,且更加符合人類觀察物體的實際情況,基于實例的分割要求將屬于同一類別的不同目標(biāo)區(qū)分開來,因此實例分割需要目標(biāo)檢測技術(shù)作為基礎(chǔ),然后再進行像素級分類。
由于目標(biāo)不同,原始FCN 并不能被直接用于目標(biāo)實例分割。但是Dai 等[47]發(fā)現(xiàn),F(xiàn)CN 分割結(jié)果中大部分像素都是可以被再次使用的,因此,他們對FCN進行改進,提出了可用于實例分割的FCN 網(wǎng)絡(luò),稱之為實例FCN。實例FCN的整體流程包括兩個分支,第一條分支用于產(chǎn)生輸入圖像中所有可能的實例分割圖,第二條分支產(chǎn)生的是與第一條分支中所有分割圖對應(yīng)的一個分?jǐn)?shù),用于判斷該分割圖中是否含有目標(biāo),有則為1,沒有則為0。最后,根據(jù)兩條分支的共同輸出,產(chǎn)生一些候選的實例分割圖。文中采用的損失函數(shù)為:
其中第一部分來自第二分支,而第二部分則來自第一分支;i 表示訓(xùn)練時隨機選取的滑動窗口的個數(shù),j 為窗口中像素的索引。為進一步提升分割精度,還在網(wǎng)絡(luò)后端采用了非極大值抑制算法。
第一分支的實例FCN 和傳統(tǒng)FCN 有什么關(guān)系呢?傳統(tǒng)FCN中,同一像素點會產(chǎn)生相同分?jǐn)?shù),這對實例分割是不夠的。在實例分割中,同一像素可能會屬于不同實例,需要有不同的分?jǐn)?shù)與其對應(yīng)。因此為了實現(xiàn)這一目標(biāo),實例FCN會輸出一系列分?jǐn)?shù)圖,每個分?jǐn)?shù)圖是圖像中每個像素點與實例相對位置的一個分類。其實實例FCN 還是對圖像中的每個像素進行分類,不過這里的類別變成了是否屬于某個實例的相對位置。通過這種方法,即使是圖像中的同一像素,只要它位于實例的不同相對位置,那么在不同的實例中就可以得到不同的分?jǐn)?shù)。然后通過一個滑動窗口來組合每個分?jǐn)?shù)圖,產(chǎn)生最終的結(jié)果,具體如圖5 所示,這里滑動窗口的作用等同于邊界框。實例FCN 產(chǎn)生的分?jǐn)?shù)圖的個數(shù)與k 的選取有關(guān),k 表示滑動窗口中子窗口的個數(shù),即k=3,生成的分?jǐn)?shù)圖有k2個。每個分?jǐn)?shù)圖代表的是每個像素點是否屬于該實例的某個相對位置的分類結(jié)果,也就是說在圖中,第二排第三列的6號分?jǐn)?shù)圖中每個像素點都被分類為是或不是屬于這個實例的右邊。然后,在相應(yīng)的分?jǐn)?shù)圖中,直接復(fù)制對應(yīng)位置子窗口的值,并根據(jù)其位置組合在一起形成實例分割圖。最后,為了提高分割結(jié)果的分辨率,實例FCN 借鑒了deeplab v1 的方法,將VGG16 中pool4 層的步長由2 改為1,并且在最后一個塊的3個卷積層上采用了空洞卷積。
圖5 實例FCN分割分支結(jié)構(gòu)圖
實例FCN 的優(yōu)點在于能直接完成實例分割,并且網(wǎng)絡(luò)參數(shù)數(shù)量很少。缺點在于只能完成分割任務(wù),如果想對實例進行分類,后續(xù)還需再添加一個分類網(wǎng)絡(luò)。
實例FCN 是將分割和分類任務(wù)分開進行,如果想實現(xiàn)實例分類還需要添加一個分類網(wǎng)絡(luò)。Li 等[48]認(rèn)為這樣沒有完全利用兩個任務(wù)之間的相關(guān)性,因此對實例FCN進行改進,首次實現(xiàn)了全卷積網(wǎng)絡(luò)用于端對端實例分割任務(wù),稱之為FCIS。該方法在閾值取0.5 時,平均準(zhǔn)確率達到了59.9%。FCIS與實例FCN有幾點不同:首先,采用候選區(qū)域生成網(wǎng)絡(luò)(RPN)[49]獲取一些感興趣的區(qū)域(RoIs),即采用邊界框去替換滑動窗口,這里RPN直接作用于特征圖而不是原始輸入圖像;其次,F(xiàn)CIS除了獲取實例FCN 中的分?jǐn)?shù)圖(文中稱為位置敏感內(nèi)部分?jǐn)?shù)圖),另外還獲取了一組分?jǐn)?shù)圖用于分類任務(wù)(文中稱為位置敏感外部分?jǐn)?shù)圖);然后,采用和實例FCN 一樣的組合方式產(chǎn)生兩個分割圖,一個用于實例分割,一個則用于實例分類;最后為增強網(wǎng)絡(luò)提取特征的能力,采用ResNet 替換了VGG16。FCIS 具有很多優(yōu)點:首先網(wǎng)絡(luò)參數(shù)數(shù)量少,所有分?jǐn)?shù)圖由單支FCN獲取,沒有多余操作;其次保留了FCN中局部權(quán)重共享的特性;最后每個RoI的計算非常簡單、快速。
Mask R-CNN 是2017 年提出的[50],該方法擊敗了COCO2016挑戰(zhàn)賽的冠軍,同等條件下的平均準(zhǔn)確率提升了5.5%。Mask R-CNN 是對Faster R-CNN[49]的一個擴展,在Faster R-CNN的網(wǎng)絡(luò)結(jié)構(gòu)中增加了一條分支專門用于生成目標(biāo)的實例分割結(jié)果。由于Faster R-CNN中RoIPool[49]采用的量化操作會造成輸入RoI 與輸出特征之間無法對齊,因此Mask R-CNN 提出盡量避免對RoI 的邊界或塊(bins)進行量化操作,使用雙線性插值去計算每個RoI塊的輸入特征在固定的4個采樣位置上的精確值,然后通過平均或最大值方法將這四個值進行合并。該方法稱為RoIAlign,能有效提升分割精度,克服類內(nèi)競爭問題。Mask R-CNN算法包括兩個階段:第一階段采用RPN 生成一系列候選目標(biāo)邊界框,經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)進行特征提取并將這些候選邊界框映射到特征圖上產(chǎn)生一系列RoIs,然后采用RoIAlign提取每個RoI的特征用于后續(xù)操作;第二階段是一個并行結(jié)構(gòu),一條分支和Faster R-CNN一樣生成目標(biāo)的類別和最終的目標(biāo)邊界框,另一條分支直接采用FCN[4]對每個RoI 生成一個精細(xì)的分割圖。這與實例FCN中先完成精細(xì)分割,分類依靠分割結(jié)果進行形成了鮮明對比。在第一階段,將ResNeXt101[51]與Lin 等[52]提出的特征金字塔網(wǎng)絡(luò)(FPN)結(jié)合進行圖像特征提取,有效地提升了整體網(wǎng)絡(luò)的精度和速度。此外,由于增加的分割分支規(guī)模很小,Mask R-CNN運行速度并未受到什么影響。盡管如此,Mask R-CNN畢竟還是兩階段算法,其速度相比單階段算法還是不夠理想。
Hayder等[53]采用的方法比較類似,先使用RPN對圖像產(chǎn)生一些候選框,然后在候選框的基礎(chǔ)上采用提出的基于距離變換的殘差反卷積結(jié)構(gòu)去進行實例分割,整體網(wǎng)絡(luò)會重復(fù)殘差反卷積結(jié)構(gòu)兩次。而Liu等[54]的想法則比較新穎,將一個實例分割問題分為水平方向和垂直方向分別進行,首先采用一個帶有跳層連接的全卷積網(wǎng)絡(luò)分別獲取目標(biāo)的水平和垂直分割圖,然后通過一個融合網(wǎng)絡(luò)去生成最終結(jié)果。而文獻[55]則通過學(xué)習(xí)靜態(tài)圖特征進行視頻實例分割,以deeplab v2 為基礎(chǔ),將視頻當(dāng)前幀以及前一幀的預(yù)測分割結(jié)果送入網(wǎng)絡(luò),通過仿射變換和非剛性變換來模擬兩幀之間同一目標(biāo)的預(yù)期運動,引導(dǎo)當(dāng)前幀進行實例分割。
4.1.1 Overfeat
Overfeat是比較早采用1×1全卷積層替換全連接層的方法之一[56]。該方法能同時完成分類、定位和檢測任務(wù)。為了增加檢測結(jié)果的可信度,沒有對生成的多個候選框采用抑制方式,而是改用累加方式,通過這種操作,該方法不需要在背景樣本上進行訓(xùn)練就可以完成檢測任務(wù),可以避免耗時又復(fù)雜的訓(xùn)練過程,同時也能讓網(wǎng)絡(luò)更加關(guān)注正樣本,提升準(zhǔn)確率。
Overfeat 最大的特點,是3 個任務(wù)共享網(wǎng)絡(luò)的特征提取部分,只需改變網(wǎng)絡(luò)的最后幾層就可以完成不同的任務(wù)。因此在分類任務(wù)完成之后,定位和檢測的微調(diào)并不需要很長時間。文中提出了兩種模型,一種速度快,一種精度高。兩種模型都以AlexNet[57]為基礎(chǔ),高精度模型的改進為:沒有使用對比歸一化,池化區(qū)域不重疊,第一個卷積層采用更小的步長以獲取更大的特征圖。另一個亮點在于提出了offset池化。一般的池化都是從特征圖第一個像素開始,而且只將一個池化結(jié)果送入后續(xù)層。但是,分別從特征圖的第1、2、3個像素開始,并將3種情況下的池化結(jié)果分別送入網(wǎng)絡(luò)后續(xù)層,然后選取多個預(yù)測結(jié)果中的最大值作為最終結(jié)果。由于Overfeat以AlexNet為骨干網(wǎng)絡(luò),且沒有采用多尺度特征融合,因此對特征的表達能力不足;盡管提出了一種速度快的模型,但是由于采用了貪婪的劃窗策略,其計算復(fù)雜度還是很高。
4.1.2 R-FCN
為解決分類問題中的平移不變性和目標(biāo)檢測中的平移可變性之間的矛盾,Dai 等[58]提出了一個基于區(qū)域的全卷積網(wǎng)絡(luò)(R-FCN),其整體框架和FCIS 非常類似。與FCIS一樣,R-FCN也會產(chǎn)生一系列分?jǐn)?shù)圖,但是數(shù)量與實例FCN一樣,僅為FCIS的一半,因為只需要完成目標(biāo)檢測任務(wù)。其次,R-FCN 也是基于區(qū)域的,即會由RPN 方法產(chǎn)生一系列RoIs,目標(biāo)檢測任務(wù)都在這些RoIs上完成。最后R-FCN沒有使用直接復(fù)制的方式去合成最后的預(yù)測結(jié)果,而是提出了一個位置敏感RoI池化操作,其中采用了平均池化,每個RoI會產(chǎn)生k2(C+1)個分?jǐn)?shù),其中C 為圖像中目標(biāo)類別的數(shù)量,然后對每一類的這k2個分?jǐn)?shù)通過平均方式進行投票,對產(chǎn)生的(C+1)維向量采用softmax進行分類。
4.1.3 其他算法
文獻[59]和[60]將全卷積網(wǎng)絡(luò)用于文本目標(biāo)檢測。Zhang 等[59]提出了一個Text-Block 全卷積網(wǎng)絡(luò),直接移植VGG16前5個塊,采用跳層結(jié)構(gòu)融合來自5個塊的特征圖,每個特征圖都被反卷積上采樣到原始圖像大小。He等[60]指出文本對象之間存在較大尺度差異,僅采用一個全卷積分支不足以準(zhǔn)確地捕捉如此大的文本差異,因此提出一個包含3條分支的網(wǎng)絡(luò)結(jié)構(gòu)。3條分支結(jié)構(gòu)相同,共享相同的卷積參數(shù),輸入為3 個不同尺度上的同一圖像。通過這種聯(lián)合預(yù)測,該模型可以捕獲更多的上下文信息。Zhu等[61]基于文本目標(biāo)將全卷積網(wǎng)絡(luò)用于交通信號檢測。采用兩階段策略,首先直接采用Text-Block全卷積網(wǎng)絡(luò)[59]將交通信號的大致區(qū)域從圖像中分割出來,這樣可以移除一些非文本或背景文本區(qū)域,減少文本檢測范圍,緩解文本尺度變化較大的問題。然后為滿足實時要求,利用交通信號文本尺度變化相對較小的特性對TextBoxes[62]進行簡化。
Li等[63]將全卷積網(wǎng)絡(luò)用于三維目標(biāo)預(yù)測,網(wǎng)絡(luò)主干是一個類似FCN[4]的全卷積網(wǎng)絡(luò),然后在第四層進行分裂,一條分支用于目標(biāo)分類,一條用于三維邊界框預(yù)測;Zuo等[64]將全卷積網(wǎng)絡(luò)與循環(huán)神經(jīng)網(wǎng)絡(luò)相結(jié)合用于人類皮膚檢測;羅明柱等[65]將改進后的AlexNet 與金字塔模型、非極大值抑制結(jié)合進行人臉檢測;Yang 等[66]在全卷積神經(jīng)網(wǎng)絡(luò)后面采用了基于多馬爾科夫隨機場的候選區(qū)域產(chǎn)生方法對遙感圖像中的飛機進行檢測;Lin 等[67]將來自網(wǎng)絡(luò)的淺層特征和深層特征相結(jié)合用于近海船只檢測;Persello 等[68]則將空洞卷積引入全卷積網(wǎng)絡(luò)用于VHR圖像非正式居住點檢測。
基于全卷積網(wǎng)絡(luò)在目標(biāo)檢測上取得的成績,很多人都將其引入顯著性檢測領(lǐng)域。顯著目標(biāo)檢測與目標(biāo)檢測最大不同在于,顯著檢測只需將人眼最關(guān)注的那個目標(biāo)檢測出來,它主要依靠目標(biāo)的顯著性來完成任務(wù)。
DeepFix 首次將全卷積網(wǎng)絡(luò)用于預(yù)測人眼關(guān)注區(qū)域[69],其結(jié)構(gòu)與VGG16類似,引入了空洞卷積和兩個類似于inception 的模塊;Kruthiventi 等[70]提出的方法能預(yù)測人眼關(guān)注區(qū)域并完成顯著目標(biāo)分割,兩個任務(wù)共享網(wǎng)絡(luò)前半部分,并在分割任務(wù)中采用跳層結(jié)構(gòu)。Hou等[71]提取VGG16 中6 個不同層的特征圖,每個深層特征圖都傳送到前面提取了特征圖的層級進行上采樣并進行連接操作,最終結(jié)果通過融合6 個初始結(jié)果產(chǎn)生。Luo等[72]提取VGG16的5個不同階段的特征圖,并在每組特征圖后填加了一系列卷積層、池化層和反卷積層。
張守東等[73]提出的方法包含三部分:利用顯著性提名網(wǎng)絡(luò)獲取顯著目標(biāo)候選區(qū)域;通過候選區(qū)域的空間信息和類別置信值獲取目標(biāo)的空間位置特征;融合深層特征、空間位置特征以及初始顯著圖置信圖特征。
Li等[74]將全卷積網(wǎng)絡(luò)用于顯著實例檢測任務(wù),提出的方法包括三步:估計顯著圖;檢測顯著目標(biāo)輪廓;識別顯著目標(biāo)實例。提出了一個帶跳層結(jié)構(gòu)的多尺度全卷積網(wǎng)絡(luò)完成前兩步,并根據(jù)目標(biāo)輪廓檢測結(jié)果產(chǎn)生固定數(shù)量的顯著目標(biāo)候選框,然后采用子集優(yōu)化算法對候選框進行篩選,最后將估計顯著圖和篩選得到的候選框一起送入條件隨機場,進行分割結(jié)果優(yōu)化。
Kuen等[75]和Wang等[76]都額外引入了循環(huán)神經(jīng)網(wǎng)絡(luò),前者先利用一個卷積-反卷積網(wǎng)絡(luò)獲取初始顯著圖,然后采用提出的循環(huán)關(guān)注卷積-反卷積網(wǎng)絡(luò)對初始結(jié)果進行反復(fù)微調(diào),這種關(guān)注的順序特性可以使網(wǎng)絡(luò)利用過去迭代的上下文模式來增強被關(guān)注子區(qū)域的表達。后者提出了一個循環(huán)全卷積網(wǎng)絡(luò),將原始圖像和其顯著先驗知識作為網(wǎng)絡(luò)第一時段的輸入,然后將第一時段的結(jié)果與原始圖像一起送入第二時段,循環(huán)多次得到最終結(jié)果,由于每次都利用了前一時段的結(jié)果作為輔助,因此該方法可以通過逐步修正前期錯誤來改善顯著分割結(jié)果。
Wang 等[77]將全卷積網(wǎng)絡(luò)用于視頻顯著目標(biāo)檢測。首先采用一個對稱的卷積-反卷積網(wǎng)絡(luò)對當(dāng)前幀進行靜態(tài)顯著目標(biāo)檢測,以獲取視頻目標(biāo)的空間顯著信息,然后將當(dāng)前幀、后一幀和當(dāng)前幀的顯著檢測結(jié)果一起送入動態(tài)顯著檢測網(wǎng)絡(luò),兩個檢測網(wǎng)絡(luò)結(jié)構(gòu)相同。該方法沒有依賴光流、邊緣圖或其他需要預(yù)先計算的信息,因此在保證精度的同時,處理速度上得到了極大提升。
邊界語義檢測能獲取目標(biāo)精確的邊界語義信息,可以作為語義分割的研究基礎(chǔ)。HED[78]是最早將全卷積網(wǎng)絡(luò)用于邊界語義檢測的算法,它直接融合VGG16的5個不同階段的輸出并對這5 個輸出和最后的輸出進行聯(lián)合監(jiān)督訓(xùn)練,同時針對任務(wù)中正負(fù)樣本嚴(yán)重不均衡的問題提出了一個帶權(quán)重的二值交叉熵?fù)p失函數(shù);Liu等[79]采用的網(wǎng)絡(luò)結(jié)構(gòu)與HED類似,也針對樣本不均衡問題提出了一個魯棒標(biāo)注損失函數(shù);Yang等[80]采用的是一個非對稱編-解碼全卷積結(jié)構(gòu);CASENet 則認(rèn)為對所有階段的輸出都進行監(jiān)督是不合理的[81],尤其是淺層階段,因此僅對最后階段和融合結(jié)果進行了監(jiān)督訓(xùn)練,同時提出一種共享連接方法去融合高階和低階特征。
Lee 等[82]首次將全卷積網(wǎng)絡(luò)用于高光譜圖像分類,提出了一個結(jié)合了多尺度濾波器組和殘差結(jié)構(gòu)的網(wǎng)絡(luò),通過多尺度濾波器組獲取圖像的初始空間和光譜特征,然后融合兩種特征送入網(wǎng)絡(luò)進行分類。Li 等[83]將全卷積網(wǎng)絡(luò)與優(yōu)化的極限學(xué)習(xí)機結(jié)合進行高光譜圖像分類。Jiao等[84]直接使用FCN-8s[4]網(wǎng)絡(luò)提取高光譜圖像的深度多尺度特征,然后采用權(quán)重融合方法將光譜特征和深度多尺度特征進行融合。Mou 等[85]采用無監(jiān)督方式進行高光譜圖像分類,文中采用一個全卷積-反卷積網(wǎng)絡(luò)進行圖像的無監(jiān)督光譜-空間特征學(xué)習(xí),結(jié)構(gòu)中添加了殘差學(xué)習(xí)和在SegNet中的unpool操作。
Zhan 等[86]將全卷積網(wǎng)絡(luò)用于衛(wèi)星圖像中云和雪的分類,結(jié)構(gòu)與deeplab v1 類似,提出了一個多尺度策略對特征圖進行融合。Mancini等[87]將全卷積網(wǎng)絡(luò)與樸素貝葉斯最近鄰模型結(jié)合,輸入圖像被縮放到不同尺度并行送入網(wǎng)絡(luò),利用樸素貝葉斯分類器對多尺度特征進行分類。Karim 等[88]將長短期記憶網(wǎng)絡(luò)(LSTM)和全卷積網(wǎng)絡(luò)結(jié)合用于時間序列分類。
Yu等[89]設(shè)計了一個雙流全卷積網(wǎng)絡(luò),兩條分支采用相同結(jié)構(gòu)用于提取外觀和運動特征,然后采用一個線性權(quán)重融合方法來融合這兩種特征,同時引入時間金字塔池化來構(gòu)建視頻級特征以完成動作識別;Liu 等[90]通過人類視覺注意力的幫助去完成動作識別,該網(wǎng)絡(luò)采用多流全卷積結(jié)構(gòu),前兩條分支用于提取外觀和運動特征,第三條分支是一個注視預(yù)測全卷積網(wǎng)絡(luò)用于學(xué)習(xí)動態(tài)注視特征;Yu 等[91]將識別分為兩階段,首先將ResNet[17]改為全卷積網(wǎng)絡(luò)同時引入跳層,將圖像中的皮膚病灶區(qū)域分割出來,然后構(gòu)造一個深度殘差網(wǎng)絡(luò)對第一階段的結(jié)果進行分類,兩個網(wǎng)絡(luò)的不同在于分割網(wǎng)絡(luò)后面添加了一個7×7平均池化層用于提取全局深度殘差特征。
可以發(fā)現(xiàn)使用深度網(wǎng)絡(luò)框架提取的特征能更好地反應(yīng)數(shù)據(jù)的內(nèi)在本質(zhì),合適的特征融合方式能有效提升網(wǎng)絡(luò)的性能,殘差結(jié)構(gòu)和多尺度信息的優(yōu)勢越來越明顯。
除了以上應(yīng)用較廣泛的領(lǐng)域,全卷積神經(jīng)網(wǎng)絡(luò)在圖像摳圖、圖像修復(fù)、目標(biāo)候選框生成等領(lǐng)域也有所表現(xiàn)。
Xu 等[92]提出了一個編-解碼+微調(diào)的兩階段全卷積網(wǎng)絡(luò)。第一階段是一個非對稱編-解碼結(jié)構(gòu),主要用于產(chǎn)生一個粗糙的分割結(jié)果,由于摳圖對圖像細(xì)節(jié)要求很嚴(yán)格,因此增加了一個微調(diào)階段用于增強第一階段結(jié)果的邊緣部分。微調(diào)階段的結(jié)構(gòu)非常簡單,是一個只包括4 個卷積層的殘差結(jié)構(gòu)。該方法的優(yōu)點在于泛化能力強,摳圖結(jié)果擁有非常精確的邊緣,采用聯(lián)合損失函數(shù)使網(wǎng)絡(luò)更加快速的收斂;缺點在于訓(xùn)練過程不是端對端的,待第一階段收斂后才能訓(xùn)練第二階段。
Tan等[93]提出了一個基于全卷積網(wǎng)絡(luò)的深度去馬賽克模型,任務(wù)分兩階段,首先采用全卷積網(wǎng)絡(luò)產(chǎn)生一個初始去馬賽克圖像,該網(wǎng)絡(luò)只包含一系列卷積層,沒有任何池化層;然后使用一個深度殘差估計和多模融合方法產(chǎn)生一個更高質(zhì)量的結(jié)果,該部分將第一階段提取的特征送入一個只包含一個1×1 卷積層的殘差層以生成殘差圖像,然后將其與初始去馬賽克圖像求和形成一副合成圖像,最后利用原始圖像對合成圖像進行矯正。為提升方法性能,提出一種多模訓(xùn)練方式,其中包含3 種模型,每種模型結(jié)構(gòu)相同,區(qū)別在于輸入信號,第一個模型使用所有數(shù)據(jù),另外兩個模型分別使用光滑紋理圖像和粗糙紋理圖像,最后采用加權(quán)雙插值融合方法去合并3個模型的輸出。由于加入了對不同紋理圖像的關(guān)注,修復(fù)的圖像能很好地保留原始圖像的紋理細(xì)節(jié)。
最著名的全卷積目標(biāo)候選框生成方法當(dāng)屬區(qū)域建議網(wǎng)絡(luò)(Region Proposal Network,RPN)[49],將RPN 設(shè)計為全卷積網(wǎng)絡(luò)是為了能夠和Fast R-CNN[94]共享一些卷積層。RPN 的輸入是共享卷積層最后一層的輸出特征圖,采用一個3×3 滑動窗口對特征圖進行滑動,這里采用的是3×3卷積,然后將獲得的特征圖送入分類層和回歸層,分類層輸出2k 個分?jǐn)?shù)用于估計k 個候選框中是否有目標(biāo),回歸層輸出4k 個結(jié)果用于編碼k 個候選框的坐標(biāo)信息。為使網(wǎng)絡(luò)輸入可以是任意尺寸,分類層和回歸層全部采用1×1 卷積層實現(xiàn)。文中給RPN 的候選框取了另外一個名字:Anchor,Anchor 的中心位置位于滑動窗口中心,每個Anchor 對應(yīng)不同的尺度和長寬比,如果有3個不同尺度和3個不同長寬比,每個滑動窗口會產(chǎn)生9 個不同的Anchor,RPN 則會輸出18 個分類信息和36個坐標(biāo)信息。
Jie 等[95]采用的結(jié)構(gòu)與VGG16 非常相似,為實現(xiàn)多尺度,將輸入圖像縮放到不同大小,然后從這些圖像中裁剪出40×40 的塊送入網(wǎng)絡(luò)產(chǎn)生一系列目標(biāo)候選框。由于采用了固定的多尺度輸入以及基于塊的訓(xùn)練方式,會產(chǎn)生一些檢測錯誤,因此使用一種貪婪迭代搜索方法對每個候選框進行微調(diào);隨后,Jie 等[96]又提出了一個尺度感知像素級目標(biāo)候選網(wǎng)絡(luò)(SPOP-net)用于解決小目標(biāo)定位差的問題,SPOP-net 包括三條分支:第一條被稱為置信度網(wǎng)絡(luò),以預(yù)訓(xùn)練好的deeplab v1 為基礎(chǔ),對圖像進行像素級分類,另外兩條分別用于定位圖像中的大目標(biāo)和小目標(biāo),共享同一結(jié)構(gòu),目標(biāo)的最終預(yù)測坐標(biāo)為兩個分支結(jié)果的加權(quán)和,權(quán)重信息來自第一條分支獲取的大/小目標(biāo)置信度圖。
本文對全卷積神經(jīng)網(wǎng)絡(luò)在多個研究領(lǐng)域取得的成果進行了系統(tǒng)梳理和分析,重點剖析了幾個熱門研究方向的一些經(jīng)典算法的核心所在,同時對目前最新提出的一些方法進行了分析總結(jié)。將全卷積神經(jīng)網(wǎng)絡(luò)中采用較多的技術(shù)進行歸納總結(jié),分析其優(yōu)缺點,詳見表2。
表2 全卷積神經(jīng)網(wǎng)絡(luò)采用技術(shù)的分析
全卷積神經(jīng)網(wǎng)絡(luò)具有能支持任意大小的輸入,支持完整圖像的端對端訓(xùn)練,更加高效,能更好地學(xué)習(xí)上下文信息的優(yōu)點。當(dāng)然它還存在大量值得研究的問題:
(1)提出更加適合于弱/無監(jiān)督訓(xùn)練方式的全卷積網(wǎng)絡(luò)結(jié)構(gòu)。弱/無監(jiān)督更加符合人腦的思維模式,現(xiàn)有的很多全卷積網(wǎng)絡(luò)在全監(jiān)督訓(xùn)練下可以取得很好的成績,但是移植到弱/無監(jiān)督之后其效果顯著下降,探尋數(shù)據(jù)內(nèi)在本質(zhì)特點,設(shè)計更加合適的網(wǎng)絡(luò)結(jié)構(gòu)值得研究。
(2)全卷積網(wǎng)絡(luò)通過堆疊眾多卷積層來獲取長距離依賴信息,以學(xué)習(xí)目標(biāo)的可區(qū)分性特征。卷積層堆疊過多會帶來算法計算復(fù)雜度劇增、網(wǎng)絡(luò)優(yōu)化困難、多跳依賴關(guān)系建模困難的問題。不依靠增加網(wǎng)絡(luò)深度,提出可區(qū)分性特征學(xué)習(xí)模塊也是值得研究的問題。
(3)研究效果與效率并存的卷積操作。全卷積網(wǎng)絡(luò)中使用最多的就是卷積操作,當(dāng)由于任務(wù)需求需采用大尺寸卷積核時,卷積操作的計算復(fù)雜度會劇增??煞蛛x卷積[97]、HetConv[98]等的提出,給這方面研究指引了方向,指出高性能高效率的卷積操作是值得研究的問題。
(4)隨著手機終端的大力發(fā)展,對實時網(wǎng)絡(luò)結(jié)構(gòu)需求量劇增,如何設(shè)計輕量級、小巧的全卷積網(wǎng)絡(luò)結(jié)構(gòu),同時保證一定的性能也是值得研究的問題。