導讀鑒于顯著性目標和偽裝目標研究的相似性,本文作者將顯著性目標與偽裝目標合在一起進行研究,文章重點是特征提取網絡與特征融合技術,主要介紹了三種方法EGNet,PFANet和SINet。
在自然界中許多生物都具有“偽裝”的本領,變色龍能夠根據周遭的環境來調整自身顏色以達到其“偽裝”的目的;獅子將身體“偽裝”在草叢之中而伺機等待獵物的靠近;蝴蝶躺在與自身顏色相近的樹干上一動不動以躲過天敵的傷害。生物學家將這類偽裝方式稱為背景匹配,即動物為避免被識別,會嘗試改變其自身顏色以“完美”地融入周圍環境。
如今,隨著CV領域在深度學習方向上的發展,學者們把目光投向了目標檢測這一領域。與通用目標檢測以及顯著性目標檢測不一樣,通用目標檢測與顯著性目標檢測中目標與背景均有較為明顯的差異性,這種差異通常情況下通過人眼也能較容易地分辨出來。但偽裝目標檢測中偽裝目標與背景之間存在高度的相似性,因此關于偽裝目標的檢測顯得更具挑戰性。
在我看來,偽裝目標的檢測與通用目標檢測有所區別,但和顯著性目標檢測有點類似,更多的是做語義分割,但不同于語義分割,偽裝目標里的分割時一個二分類的問題(即前景和背景的分割)顯著性目標檢測把輸入圖像分為顯著物體和背景,偽裝目標是分割為偽裝目標和背景。鑒于顯著性目標和偽裝目標研究的相似性,于是我將顯著性目標與偽裝目標合在一起進行研究。特征提取網絡與特征融合技術是我研究的重點。
關于偽裝目標研究可應用的領域十分廣闊,除了其學術價值外,偽裝物體檢測還有助于推動諸如軍事上偽裝隱蔽目標的搜索探測、醫學領域上病情的判斷以及農業遙感中蝗蟲的入侵等等。
目前,由于缺乏規模足夠大的數據集,偽裝物體檢測的研究還不夠深入,所以目前所有的研究都是基于由南開大學團隊為COD任務專門構建出的COD10K數據集。
本次涉及三個方法,前兩個是針對顯著性目標檢測所提出的,分別是EGNet和PFANet;而后面的是專門針對于偽裝目標檢測提出的SINet。
首先對EGNet進行介紹,EGNet,也稱為邊緣引導網絡,顧名思義,我們知道他在保護邊緣信息上做了功夫,整個方法可以分為三個步驟,第一步是提取邊緣特征(PSFEM),第二步是將局部的邊緣信息和全局的位置信息聚合(NLSEM),最后一步則是將特征進行平衡,得到我們想要的最后的特征(O2OGM)。
下面我們來詳細看一下各個結構,首先是PSFEM。EGNet采用的結構是U-net的結構,將六個特征層,依次進行卷積的操作,然后再經過一個卷積層。從Conv3-3、Conv4-3、Conv5-3、Conv6-3四條路徑分別提取目標不同層次的特征信息。其中從骨架最后一層的Conv6-3提取的特征卷積后與邊緣信息結合用于O2OGM模塊;Conv3-3、Conv4-3、Conv5-3、Conv6-3之間都一個從深層到上一淺層的連接(從Conv6-3開始,Conv3-3結束),用來豐富特征信息。
然后是NLSEM模塊,采用骨架中的Conv-2-2提取目標的邊緣特征。不使用Conv1-2是因為其太接近輸入層(噪聲多)并且其感受野較小,不使用Conv3-3及更深的層提取邊緣特征是因為他們所得到的feature map包含的邊緣信息較少,他們更多包含的是語義信息。
最后是O2OGM模塊,將Conv6-3提取的顯著性目標特征信息與Conv2-2提取的邊緣特征結合后的特征分別與Conv3-3、Conv4-3、Conv5-3、Conv6-3每層提取的顯著性目標特征進行融合,即圖中FF模塊的操作。FF操作很簡單,就是將高層特征上采樣然后進行拼接的操作,就可以達到融合的效果。
PFANet的結構相對簡單,采用VGG網絡作為特征提取網絡,然后將前兩層特征稱為低層特征,后三層特征稱為高層特征,對他們采用了不同的方式進行特征增強,以增強檢測效果。
首先是對于高層特征,先是采用了一個CPFE來增大感受野,然后再接一個通道注意力模塊,即完成了對高層特征的特征增強(這里的這個CPFE,其實就是ASPP)。
然后再對經過了CPFE后的高層特征使用通道注意力(CA)。
以上即是高層特征的增強方法,而對于低層特征,處理得則更為簡單,只需要使用空間注意力模塊(SA),即可完成。
整個PFANet的網絡結構很清晰,如下圖所示。
介紹完EGNet和PFANet兩種方法以后,就剩下SINet了。SINet的思路來自于19年的一篇CVPR的文章《.Cascaded partial decoder for fast and accurate salient object detection》。這篇文章里提出了CPD的這樣一個結構,具體的可以取搜索一下這篇論文,詳細了解一下。
接下來我將介紹一個用于偽裝目標檢測的網絡SINet。假設你是一頭饑腸轆轆的雄獅,此刻你掃視著周圍,視線突然里出現了兩匹斑馬,他們就是你今天的獵物,美食。確定好了目標之后,那么就開始你的獵殺時刻。所以整個過程是你先掃視周圍,我們稱之為搜索,然后,就是確認目標,開始獵殺,我們稱之為確認。我們的SINet就是這樣的一個結構,他分為搜索和確認兩個模塊,前者用于搜索偽裝目標,后者用于精確定位去檢測他。
我們現在就具體來看看我們的SINet到底是怎么一回事。首先,我們都知道低層特征有著較多的空間細節,而我們的高層特征,卻有著較多的語義信息。所以低層的特征我們可以用來構建目標區域,而高層特征我們則可以用來進行目標定位。我們將這樣一張圖片,經過一個ResNet的特征提取器。按照我們剛才的說法,于是我們將前兩層稱為低層特征,最后兩層稱之為高層特征,而第三層我們稱之為中層特征。那么有了這樣的五層特征圖,東西已經給我們了?我們該怎么去利用好這些東西呢?
首先是我們的搜索模塊,通過特征提取,我們得到了這么一些特征,我們希望能夠從這些特征中搜索到我們想要的東西。那我們想要的是什么呢?自然就是我們的偽裝線索了。所以我們需要對我們的特征們做一些增強的處理,來幫助我們完成搜索的這樣一個任務。而我們用到的方法就是RF。我們來看一下具體是怎么樣實現的。首先我們把整個模塊分為5個分支,這五個分支都進行了1×1的卷積降維,我們都知道,空洞卷積的提出,其目的就是為了增大感受野,所以我們對第一個分支進行空洞數為3的空洞卷積,對第二個分支進行空洞數為5的空洞卷積,對第3個分支進行空洞數為7的空洞卷積,然后將前四個分支的特征圖拼接起來,這時候,我們再采用一個1×1卷積降維的操作,與第五個分支進行相加的操作,最后輸出增強后的特征圖。
這個RF的結構來自于ECCV2018的一篇論文《 Receptive field block net for accurate and fast object detection》,其作用就是幫助我們獲得足夠的感受野。
我們用RF對感受野增大來進行搜索,那么搜索過后,我們得到了增強后的候選特征。我們要從候選特征得到我們最后要的偽裝目標的檢測結果,這里我們用到的方法是PDC模塊(即是部分解碼組件)。
具體操作是這樣的,所以接下來就應該是對它們進行處理了逐元素相乘方式來減少相鄰特征之間的差距。我們把RF增強后的特征圖作為輸入,輸入到網絡里面。首先對低層的進行一個上采樣,然后進行3×3的卷積操作(這里面包含了卷積層,BN層還有Relu層),然后與更高一層的特征圖進行乘法的這樣一個操作,我們為什么使用逐元素相乘呢?因為逐元素相乘方式能減少相鄰特征之間的差距。然后我們再與輸入的低層特征進行拼接。
我們前面提到了,我們利用增強后的特征通過PDC得到了我們想要得到的檢測結果,但這樣的一個結果足夠精細嗎?其實,這樣得到的檢測結果是比較粗略的。這是為什么呢?這是因為我們的特征之間并不是有和偽裝檢測不相關的特征?對于這樣的多余的特征,我們要消滅掉。我們將前面得到的檢測圖稱之為 ,而我們要得到精細的結果圖 ,就得使用我們的注意力機制了。這里我們引入了搜索注意力,具體是怎么實現的呢?大家想一想我們前面把特征分成了低層特征、高層特征還有中層特征。我們平時一般都叫低層特征和高層特征,很少有提到中層特征的。其實我們這里這樣叫,是有打算的,我們認為中層特征他既不像低層特征那么淺顯,也不像高層特征那樣抽象,所以我們對他進行一個卷積操作(但是我們的卷積核用的是高斯核函數方差取32,核的尺寸我們取為4,我們學過數字圖像處理,都知道這樣的一個操作能起到一個濾波的作用,我們的不相關特征能被過濾掉)但是有同學就會問了,那你這樣一過濾,有用的特征不也過濾掉了嗎?基于這樣的考慮,我們把過濾后的特征圖與剛才的這個 再來做一個函數,什么函數呢?就是一個最大化函數,這樣我們不就能來突出偽裝圖 初始的偽裝區域了嗎?
SINet整體的框架如圖所示:
講了這么多,我們最后來看看實驗的效果,通過對這三篇文章的復現,我得到了下面的這樣一些結果。
可以看出,在精度指標的評價方面,SINet相比于其他兩種方法都有很大提升,而PFANet模型結構雖然很簡單,但他的效果也是最差的。
下面我們再看看可視化的效果:
編輯:lyn
-
特征提取
+關注
關注
1文章
29瀏覽量
9812 -
深度學習
+關注
關注
73文章
5492瀏覽量
120975 -
特征融合
+關注
關注
0文章
3瀏覽量
1881
原文標題:詳解基于深度學習的偽裝目標檢測
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論