祝世平 謝文韜 趙叢楊 李慶海
(北京航空航天大學儀器科學與光電工程學院 北京 100191)
在信息時代,隨著視頻技術(shù)及其應(yīng)用的飛速發(fā)展,視頻、圖像等視覺信息載體變得更加實用,應(yīng)用更加廣泛[1]。由于視頻和圖像主要是供人眼觀察的,人眼敏感的圖像對象被稱為顯著對象,例如圖像中明亮的顏色、高速運動、閃爍的爆炸等圖像區(qū)域。
在視覺顯著性研究的早期,研究人員提出了自主注意力和非自主注意力[2]。一些研究者試圖理解視頻中眼球運動的時域效應(yīng),而另一些研究者則關(guān)注于剪輯點,比如電影場景的變化對視覺意義[3]的影響。1980年Treisman和Gelade[4]提出了特征集成理論。后來,Koch和Ullman[5]提出了將正演模型和顯著性圖集成的概念。顯著性圖是一種用來表示對圖像中每個點的關(guān)注程度的方法。顯著性圖的第1個實現(xiàn)是由Itti等人[6]提出的,他們提出了第1個完整的人類注意力模型。由于當前深度學習的流行,基于卷積神經(jīng)網(wǎng)絡(luò)的視覺顯著性計算方法也得到了廣泛的關(guān)注和發(fā)展。
本文提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的視覺顯著性目標檢測方法,它與當前的主流模式有很大的不同,例如典型的學習像素上下文注意力的顯著性檢測(learning Pixel-wise Contextual AtteNtion for saliency detection, PiCANet)[7]和反注意力顯著目標檢測(Reverse Attention for Salient object detection,RAS)[8]更注重模型的訓練方式,在多超參數(shù)搜索空間內(nèi)進行組合,得到更合適的全局最優(yōu)收斂結(jié)果;輪廓知識遷移顯著目標檢測(Contour knowledge transfer for Salient object detection, C2S-Net)[9]采用了弱監(jiān)督進行學習,減少對顯著物體標注數(shù)據(jù)的依賴,獲得更加泛化和自適應(yīng)的模型;邊緣指導的顯著物體檢測(Boundary-Aware Salient object detection, BASNet)[10]更加關(guān)注目標的顯著邊緣,通過同時預測邊緣和區(qū)域,整合信息獲得更精確的結(jié)果;而針對快速準確顯著物體檢測的級聯(lián)局部解碼器(Cascaded Partial Decoder for fast and accurate salient object detection, CPD)[11]丟棄低分辨率特征圖,在加速計算的同時,保留了淺層網(wǎng)絡(luò)提取的細節(jié)空間特征;一種基于池化設(shè)計的實時顯著物體檢測(a simple Pooling-based design for real-time salient object detection, PoolNet)[12]采用了多種學習監(jiān)督的路徑,利用不同的損失函數(shù)進行搭配,整合了多種訓練特點?;诙鄬嵗貙W習的顯著物體檢測(salient object detection via Multiple Instance Joint Re-learning, MIJR)[13]創(chuàng)建了一種基于真值圖的實例化過程,并以主流算法為基礎(chǔ)進行了全面的指標提升;顯著物體檢測的標簽解耦框架(Label Decoupling Framework for salient object detection,LDF)[14]提出了一種主體和細節(jié)的解耦合模型,利用特征信息的自交互完善預測結(jié)果,并對主體和細節(jié)信息進行迭代;多尺度交互的顯著物體檢測網(wǎng)絡(luò)(Multi-scale Interactive Network for salient object detection, MINet)[15]利用相鄰尺度特征圖擴大感受野來替代拼接,一定程度上減少了參數(shù)的冗余,規(guī)避了相鄰尺度帶來的噪聲,達到了較好的效果;對抗攻擊的魯棒顯著物體檢測(RObust SAlient object detection against adversarial attacks,ROSA)[16]則是另辟蹊徑,利用白盒攻擊的方法對抗現(xiàn)有的顯著目標檢測模型,引入新的更容易分辨的噪聲,來打破難以分辨的對抗擾動的結(jié)構(gòu),而不是試圖直接去除對抗擾動,從而保證了框架的泛化;基于反注意力的顯著物體檢測網(wǎng)絡(luò)(Reverse Attention based Residual network for salient object detection,RAR)[17]則是將流程分為雙向,一個輸出粗粒度的預測并計算損失進行監(jiān)督,再利用殘差學習不斷糾正神經(jīng)網(wǎng)絡(luò)模型的預測錯誤,不斷完成自我修正。
區(qū)別于目前的顯著目標檢測方法,本文重點關(guān)注圖像在不同層次特征空間內(nèi)的隱含信息,方法在卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)模型中建立一個特征金字塔結(jié)構(gòu),將金字塔中不同層次的特征交叉融合,在不同組融合的過程中對特征圖進行重新排列,增強了模型學習策略對圖像中不同場景下顯著性目標的魯棒性,模型可以得到更好的圖像空間全局分布和高頻細節(jié)的結(jié)果;另一方面,利用對空間上下文信息更加敏感的FReLU激活函數(shù),來替代傳統(tǒng)的ReLU激活函數(shù),對空間信息進行激活,抓取像素的空間活性(也就是空間的敏感性信息)。
本文算法提出的整體神經(jīng)網(wǎng)絡(luò)模型數(shù)據(jù)流程如圖1所示。原始紅綠藍(Red Green Blue, RGB)圖像首先送入基于ResNet-50主干網(wǎng)絡(luò)(圖1中粉色部分)的自編碼結(jié)構(gòu),得到不同尺寸和通道數(shù)的特征金字塔結(jié)構(gòu),接著進行特征排列,使得尺度表征差距盡可能大并按照排列后的順序完成拼接融合,再送入雙重卷積殘差模塊進行特征圖的空間激活,最終將這些特征圖整合到一起,輸出得到顯著物體預測結(jié)果,并利用二元交叉熵(Binary Cross Entropy,BCE)和交并比(Intersection Over Union, IOU)損失函數(shù)進行監(jiān)督。
圖1 模型整體結(jié)構(gòu)
接下來對各部分模塊進行分析說明。
本文模型利用ResNet-50作為模型主干[18],如圖2所示,生成5個不同尺度層級的特征圖,這些特征圖有著不同的大小,也代表著不同復雜度的特征信息,這是一個信息編碼過程。接著將得到的5個特征圖送入按照尺寸順序如圖1左側(cè)所示進行上采樣和連接,進行解碼操作,這就完成了一套自編碼操作。自編碼的流程是先對輸入原始圖像進行特征編碼,也就是使圖像在卷積作用下尺寸減小而通道數(shù)增大,獲取高級語義信息,也就是編碼器;接下來,對得到的小尺寸、大通道數(shù)特征圖進行上采樣,恢復到更高的分辨率,從語義信息解碼得到包含更多信息的空間信息,也就是解碼器[19]。
圖2 自編碼結(jié)構(gòu)
自編碼器的特征組合方式為按照特征圖尺寸從小到大順序,對自身上采樣并與相鄰特征圖進行整合拼接,具體的上采樣和整合順序參考圖1左側(cè)部分,上采樣采用了UP標志,拼接采用了“+”號進行表示,是一個標準的U型結(jié)構(gòu),將特征圖按照尺寸從小到大進行排列,便得到了圖1中的A/B/C/D/E的特征金字塔[20]。
在得到了A/B/C/D/E這5個不同層級的特征圖后,將其每3個分為1組,得到共計10組特征圖組Gn(G1=[A, B, C], G2=[A, B, D], ···, G10=[C, D,E])。接著引入尺度表征(Scale Representation,SR)的概念,對于每一個特征圖Fi,都有著不同的高度H、寬度W以及通道數(shù)C,而2維數(shù)組SRi便是代表這個特征圖在長寬和通道數(shù)這兩個維度上的尺度
前面提到的10組特征圖組,每個組內(nèi)的3張?zhí)卣鲌D都有著各自的尺度表征(Scale Distance, SD),這時對每相鄰的兩個特征圖求取差值的2范數(shù),便得到了2個尺度表征差(ΔSR),如式(2)所示,其中的i, j, k為組內(nèi)特征圖索引,i和j相鄰,j和k相鄰
接著對每個特征圖組內(nèi)兩個尺度表征差求和,就得到了對于每個特征圖組的特征圖尺度表征差值和f(Gn)
這一步的操作稱為特征排列(feature permutation),其目的是找到特定排列讓每一個特征圖組內(nèi)相鄰尺度差距盡可能地大,這樣使得模型盡可能的去融合簡單空間信息和復雜語義信息,也就是學習層級相差更大的特征,而不是依賴于相近層級的特征變換信息進行推理,其具體操作如圖3所示。
圖3 特征排列流程
依據(jù)尺度特征圖尺度表征差值和f(Gn)最大的原則完成特征排列后,將每組內(nèi)的3張?zhí)卣鲌D雙線性插值上采樣到相同大小,并按照特征排列的順序進行通道拼接,完成多尺度的特征融合,得到整合的特征圖Gk*。
每一個特征圖組經(jīng)過特征排列并完成特征融合得到Gk*后,各自送入雙重卷積殘差模塊(double-conv residual module),模塊結(jié)構(gòu)如圖4所示,主通路是兩個3×3的卷積+批歸一化模塊,旁側(cè)支路經(jīng)過本征函數(shù)(identity function)與主路輸出相加,結(jié)果經(jīng)過一個1×1的卷積進行通道降維,統(tǒng)一將特征圖通道降低為32,最后經(jīng)過一個FReLU激活函數(shù)進行輸出。
圖4 雙重卷積殘差模塊
雙重卷積殘差模塊在主路上利用加深的神經(jīng)網(wǎng)絡(luò)層數(shù)對輸出特征圖進行深度編碼提煉語義信息,旁路則是作為防止梯度爆炸或者梯度消失所設(shè)置的直接通路,便于模型的學習和訓練。在整個神經(jīng)網(wǎng)絡(luò)模型的末尾處引入這個模塊,是為了利用雙重卷積去抓取更大的感受野,以此來獲得更高層次的語義信息,這樣的優(yōu)勢是使得網(wǎng)絡(luò)的學習能力更強,我們用在網(wǎng)絡(luò)的末尾處,對高層次特征進行再次學習;同時,殘差支路的引用可以建立一個本征映射,使得網(wǎng)絡(luò)深度加深的同時,梯度可以更加快速的回傳。
在雙重卷積殘差模塊最后使用的非線性激活函數(shù)是FReLU而非運用的最多的ReLU激活函數(shù),基礎(chǔ)ReLU激活函數(shù)的簡單數(shù)學特性讓其得到廣泛運用,它的變體pReLU則是把原先直接置零的操作改為一個p很小的px線性函數(shù)
ReLU雖然簡單有效,激活了神經(jīng)網(wǎng)絡(luò)的非線性,但是卻沒有很好地利用卷積神經(jīng)網(wǎng)絡(luò)對空間信息的抓取能力,因此我們在基礎(chǔ)卷積部分采用了FReLU,特征圖中某一位置的像素值為x,這里將原本直接把x和0對比的操作,改為x先以自身為中心進行一個3×3的卷積,再將卷積后的結(jié)果值Conv(x)和原本的x進行對比,取兩者最大值作為結(jié)果[21]。
這樣每一次的激活函數(shù)在每個位置都進行了一個重采樣,如圖5所示,進一步提取了圖像的空間布局信息,從傳統(tǒng)ReLU的在數(shù)學層面上的激活變成FReLU的在空間層面上的激活。
圖5 基于ReLU派生的激活函數(shù)
結(jié)合前面的兩次3×3的卷積,雙重卷積殘差模塊完成了權(quán)重參數(shù)和max函數(shù)在像素上的空間激活,也就是對特征圖的空間信息進行了更好的學習和提取。
將這10組排列好的特征圖組在通道數(shù)上進行拼接,最終經(jīng)過一層卷積將通道數(shù)降為1,得到最終的顯著物體預測輸出。
模型訓練的損失函數(shù)分為兩部分,不僅有廣泛適用于分類任務(wù)的交叉熵損失函數(shù),還加入了IOU損失函數(shù)用于回歸目標圖像分布。
本文中的任務(wù)是檢測顯著目標和非顯著目標的二分類,使用的是2元交叉熵(binary cross entropy),其注重測量預測圖像像素與2元真值圖對應(yīng)像素值之間的分類差異,趨向于向真值圖像像素類別方向靠攏,如式(8),S代表模型預測值,G代表標注真值,r和c分別代表圖像的行和列
IOU損失最初是用于檢測任務(wù)模型的評價,衡量兩個數(shù)據(jù)集[22]之間的相似性,但最近經(jīng)過改進,它可以用于模型訓練,IOU評估了預測值與真值圖分布的相似性,對回歸任務(wù)有著較好的適用性,更關(guān)注回歸預測的準確情況
其中α和β分別代表BCE損失函數(shù)和IOU損失函數(shù)的權(quán)重,經(jīng)過多組對比實驗,本文中兩個權(quán)重設(shè)定為0.5和0.5效果最佳。
為了客觀全面的對本文模型算法進行評測,本文中的神經(jīng)網(wǎng)絡(luò)模型訓練集采用最常見的顯著物體檢測訓練數(shù)據(jù)集DUTS-TR,其中包含10553張原始圖像和對應(yīng)的真值標注圖像,示例圖見圖6。數(shù)據(jù)集內(nèi)包含動物、植物、人類等自然生物目標和機械、建筑等其他目標,囊括室內(nèi)、城市、鄉(xiāng)村、森林等多種背景,提供了較為完備的顯著物體檢測場景。
圖6 DUTS-TR數(shù)據(jù)集示例圖
數(shù)據(jù)集的圖像尺寸大小、比例都不相同。為了使得能夠送入神經(jīng)網(wǎng)絡(luò)模型進行統(tǒng)一處理,DUTS-TR數(shù)據(jù)集的圖像經(jīng)過預處理為統(tǒng)一的256×320尺寸RGB三通道彩色圖像,并進行了圖像像素值的歸一化處理。
測試數(shù)據(jù)集方面,選取了顯著物體檢測領(lǐng)域常用的HKU-IS/DUTS-TE/SOD 3個數(shù)據(jù)集進行測試,都是在學術(shù)領(lǐng)域內(nèi)被廣泛認可和使用的顯著物體檢測測試集。
本文實驗的計算機服務(wù)器工作站硬件配置如下:處理器為英特爾的Intel I9-9900X CPU,內(nèi)存為金士頓32 GB DDR4 RAM,計算顯卡為英偉達的NVIDIA Titan V GPU。本項目在PyTorch 0.4深度學習框架上進行訓練,在模型訓練超參數(shù)方面,訓練次數(shù)設(shè)定為200次,每次送入圖像批次數(shù)量為16,優(yōu)化器方面選擇的是目前廣泛使用的Adam優(yōu)化器。
本實驗采用3種顯著物體檢測領(lǐng)域廣泛運用的評價指標對模型進行評測。
F–Measure是通過對預測模型的精確率和召回率進行擴展得到的指標[23],目前大多數(shù)方法使用的maxF就是取不同閾值下的最大值,F(xiàn)–Measure具體公式為
S-Measure是一種不同于傳統(tǒng)像素級預測圖和真值圖差距評價指標的方法[24]。其更關(guān)注模型預測圖與二值化的真值圖之間的結(jié)構(gòu)相似性,主要分為對象結(jié)構(gòu)So和區(qū)域結(jié)構(gòu)Sr,公式為
與上述兩種評價指標不同,更為傳統(tǒng)的MAE指標側(cè)重于真-負的像素情況[25],該方法更客觀地表征了預測圖與真值圖的差異。公式為
首先來看各模塊對模型的整體影響,本文主要提出兩個部分的重要創(chuàng)新點:特征排列和空間激活。在3個測試數(shù)據(jù)集上分別測試基礎(chǔ)模型、添加特征排列的模型、添加空間激活的模型和都添加的模型。
其中基礎(chǔ)模型為完成特征金字塔A/B/C/D/E并得到10組Gk后,各組內(nèi)特征圖不依據(jù)尺度表征差和最大化進行特征排列,而是直接隨機選擇排列順序,并不基于某種規(guī)則進行特征排列,然后再上采樣到相同大小進行通道拼接得到Gk*,接著不送入雙重卷積殘差模塊,激活函數(shù)設(shè)置為默認的ReLU激活函數(shù),直接將10組Gk*上采樣到相同大小進行通道上的拼接,再送入普通的1×1卷積將通道數(shù)降低為1,最后上采樣到原圖尺寸,得到預測結(jié)果。
同時,本文也探究了兩種損失函數(shù)BCE和IOU對模型的影響,對加入了特征排列和空間激活的模型訓練過程中的損失函數(shù)進行了消融對比,分為僅使用BCE、僅使用IOU和兩者都使用(權(quán)重各為0.5)3種。
將3個測試集的結(jié)果取均值作為最終結(jié)果,對比數(shù)據(jù)如表1所示,可以看到在使用了特征排列或者空間激活的情況下,模型在maxF, S-Measure和MAE這3項指標上都有著相應(yīng)的提升(maxF,S-Measure數(shù)值越大越好,MAE越小越好),而綜合了特征排列和空間的模型得到了最好的表現(xiàn),在3項指標上也有著較大的提升;同時BCE和IOU損失函數(shù)的結(jié)合也會一定程度上提升模型的效果。
表1 特征排列和空間激活對模型的影響對比研究
再結(jié)合圖7中消融對比實驗的預測結(jié)果來具體分析,由于改變BCE和IOU損失函數(shù)僅在指標上體現(xiàn)明顯,預測結(jié)果上差別不大,故僅僅對是否添加特征排列(Feature Permutation, FP)和空間激活(Space Activation, SA)進行對比。
圖7 特征排列和空間激活對模型的預測圖結(jié)果對比
可以看出,未進行特征排列和空間激活的基礎(chǔ)模型,在馬腿這種較細的目標以及兩匹馬之間會存在誤分割,將背景錯誤的分為顯著目標,同時馬匹的輪廓也存在一定的模糊;加入了特種排列后,由于特征圖在融合階段需要滿足尺度表征差值的和最大化,因此模型對圖像宏觀上的學習更加準確,而不會走捷徑僅僅依賴簡單的尺寸關(guān)系等信息,消除了兩匹馬之間背景的誤分割情況,但目標馬匹邊緣還是會存在一定的模糊;加入了空間激活后,可以看到對背景完成剔除的同時,目標馬匹的邊緣預測也更加精細準確,由于空間激活讓模型對更深層的語義進行編碼的同時提取了空間活性信息,因此目標的形狀分割的效果得到了明顯進步,但是在右側(cè)馬匹的襠部微小的縫隙并沒有像特征排列那樣預測出來;而同時引入特征排列和空間激活,可以看到不僅完成了幾乎所有背景的剔除,包括馬匹襠部那種極難鑒別的縫隙也很好地預測了出來,同時目標的輪廓也更加精細,達到了最佳的分割效果,與真值圖最為接近。
接著將提出的算法和目前主流的幾種顯著物體檢測算法在HKU-IS, DUTS-TE, SOD 3個測試集上進行全面對比,從表2中可以看到在maxF和SMeasure這兩個越高越好的指標上,本文提出的方法都取得了最高的成績,而在越低越好的MAE指標上得到了最低的數(shù)值,在3個指標上全面超越其他主流顯著物體檢測算法。
表2 本文算法和其他主流顯著物體檢測算法在不同數(shù)據(jù)集上數(shù)據(jù)指標對比研究
從圖8的圖像預測結(jié)果可以看到,本文模型算法取得了最接近真值圖的效果,對于透明的酒瓶可以將其和墻體上的陰影很好地分割開,而不會誤認為透明的瓶體是背景;對草地上動物的四肢能做到分割完全而不產(chǎn)生區(qū)域粘連現(xiàn)象,同時對于遠處的物體也會將其從顯著目標中剔除;圖8中的巴士車窗與后方樓房在形態(tài)和色彩上很接近,本文模型很好地將兩者區(qū)分開,并沒有產(chǎn)生其他主流模型算法中的區(qū)域破碎現(xiàn)象;對于騎車人手掌這樣的小目標以及自行車體鋼條框架這樣的極細目標,本文模型算法也可以做到精確的分割;對于鳥類的羽毛和背景的重合區(qū)域,本文模型算法也能較好地分割出羽毛的輪廓,并且可以有效地區(qū)分鳥類腳部作為顯著目標和樹枝作為背景的語義信息。
圖8 本文算法和其他主流顯著物體檢測算法結(jié)果對比圖
總體來說,本文算法得到的顯著物體檢測結(jié)果,有著更精確的區(qū)域定位、更精細的邊緣輪廓、更分明的前景和背景,相比其他主流算法減少了背景的誤檢測、分割對象邊緣的彌散、檢測目標主體的誤判斷等。
再通過細節(jié)進一步比較本文算法和其他主流算法在主體前后景分割上的優(yōu)越性,如圖9所示,原始圖像中騎車人和自行車為顯著目標,其中騎車人舉起的手掌較小且色彩對比度不高,自行車體有很多細長的鏤空輻條結(jié)構(gòu),都屬于較難預測的部分;將本文算法與其他算法中最好的兩個做對比,可以看到圖9(c)在自行車體結(jié)構(gòu)上并沒能分割出車輪內(nèi)的輻條,圖9(d)雖然有預測車輪內(nèi)輻條的傾向,但是對于自行車主體部分預測的非常模糊,沒辦法有效區(qū)分背景和車體,同時對騎車人手掌的分割也不太理想;相比之下,本文算法圖9(b)不僅很好地分割出了自行車體的框架甚至是車輪的部分輻條,對手掌的分割也是非常精準,達到了最佳的效果。此處的標注目標應(yīng)該是“騎車的人和自行車”,嚴格來說車輪輻條間隙的背景不應(yīng)該作為標注真值中的1,而理應(yīng)標注為0,此處的標注從語義上來說并不準確。顯著目標檢測模型的意義就是為了分割前景目標和背景,此處的騎車圖像來自測試集而非訓練集,模型在訓練過程中并沒有學習到這種場景,因此也并沒有學習到“自行車輻條間隙應(yīng)該如何判別”的特定情況,而在測試過程中遇到這種圖像時,模型會按照分割前景目標和背景的邏輯進行預測,而從語義上看,自行車輻條間隙理應(yīng)作為背景而非前景,這樣看來本文算法模型確實是更加出色的。
圖9 本文算法與對比算法在前后景分割效果細節(jié)上的對比
雖然本文算法還難免存在一些小瑕疵,比如把背景中的極少數(shù)小物件誤檢測為顯著物體,但是綜合來看,本文算法相比其他主流算法,取得了最好的顯著物體結(jié)果輸出。
本文針對目前計算機視覺領(lǐng)域被廣泛關(guān)注的顯著物體檢測任務(wù),提出了一種基于特征排列和空間激活的神經(jīng)網(wǎng)絡(luò)模型算法。首先,本文算法模型引入特征排列,讓神經(jīng)網(wǎng)絡(luò)盡可能地去學習較難的圖像語義特征;另一方面,加入了空間激活特性,先用雙重卷積殘差獲得更深層的編碼,再利用FReLU激活函數(shù)抓取圖像空間上的活性,構(gòu)建神經(jīng)網(wǎng)絡(luò)模型對圖像進行更深入的理解。實驗結(jié)果表明,本文算法在多個測試集上的多個指標表現(xiàn)都超越了目前主流的顯著物體檢測方法,做到將顯著物體目標從背景精確分離出來的結(jié)果。未來將會進一步改善模型結(jié)構(gòu),完成在更復雜的場景下做到邊緣更為精細、區(qū)域更加分明的檢測任務(wù)。