本發明屬于顯著性目標檢測的技術領域,具體涉及一種基于全局和局部卷積網絡的顯著性目標檢測方法。
背景技術:
現有的顯著性目標檢測方法主要是局部或全局的自底向上數據驅動型方法,利用顏色對比度、背景先驗信息、紋理信息等計算顯著圖。這些方法主要有兩個缺點:一是依賴于人工選定的特征,往往會導致圖像本身含有的許多信息被忽略;二是顯著性先驗信息只通過簡單的啟發式結合,并沒有明確的最優組合方法,使得在復雜場景中的檢測結果不夠準確。
利用深度神經網絡自主提取圖像特征能有效地解決以上問題。文獻“Deep Networks for Saliency Detection via Local Estimate and Global Search”中利用深度卷積網絡提取特征進行顯著性檢測,局部評價利用每個超像素塊為中心的51*51的圖像塊作為輸入進行圖像塊級的分類,訓練數據量較大;全局評價基于人為選擇的特征,所以得到的全局特征并不能完全代表數據的深層信息,在復雜場景中效果不佳。與圖像級理解任務不同,顯著性檢測要得到圖像像素級別的分類。文獻“Fully convolutional neural networks for semantic segmentation”中提出了一種全卷積網絡,對“Very deep convolutional networks for large-scale image recognition”中提出的VGG-16模型進行改進,得到像素級的端對端的預測,降低了訓練的復雜性,并且能夠準確的提取圖像中的深層語義信息,在本發明中利用全局全卷積網絡(Fully Convolutional Network,FCN)進行顯著性目標粗檢測,再利用局部卷積網絡(Convolutional Neural Network,CNN)進行精細檢測。
技術實現要素:
要解決的技術問題
為了避免現有技術的不足之處,本發明提出一種基于全局和局部卷積網絡的顯著性目標檢測方法,提高復雜場景中顯著性檢測的高效性和準確性。
技術方案
一種基于全局和局部卷積網絡的顯著性目標檢測方法,其特征在于步驟如下:
步驟1、構建FCN全卷積網絡:將VGG-16模型中的全連接層移除,加入雙線性插值層作為反卷積層,對最后一個卷積層的特征圖進行上采樣,使最后一個卷積層的特征圖恢復到與輸入圖像相同的尺寸,從而對每個像素都產生一個顯著性的二分類預測;
步驟2、對FCN全卷積網絡進行訓練:以ImageNet上訓練好的VGG-16模型參數基礎上進行調優,以人工標注了圖中顯著目標的顯著性標注圖作為訓練的監督信息;訓練時以平方和函數作為代價函數,對網絡中的卷積層和反卷積層的系數使用BP算法進行調整;隨機選取適量的非訓練樣本作為驗證集,以防止訓練過擬合現象的發生;
步驟3:訓練終止后,利用訓練好的FCN全卷積網絡對待測樣本進行檢測,對每個像素點進行顯著或非顯著的二分類,得到端對端的預測,作為全局顯著性檢測結果;
構建局部CNN網絡,利用VGG-16模型結構進行圖像塊級的分類;
利用簡單線性迭代聚類Simple Linear Iterative Clustering,SLIC方法對顯著性標注圖的圖像像素點進行超像素聚類,再對超像素聚類結果進行圖分割,得到區域分割結果;
步驟4、訓練步驟3構建的局部CNN網絡:對區域分割得到的每個區域,以區域中心像素點為中心選取一個矩形圖像塊;將此圖像塊對應的FCN顯著性檢測結果和HSV顏色空間變換結果作為局部CNN網絡的輸入數據,以圖像塊對應的顯著性標注圖中,顯著的像素點所占圖塊總像素數的比例確定該圖像塊顯著性標簽,并通過BP算法修正局部CNN網絡的參數;
步驟5:以訓練好的FCN全卷機網絡對待測圖像進行卷積操作得到初步的顯著性分類結果;
對待測圖像利用簡單線性迭代聚類Simple Linear Iterative Clustering,SLIC方法對顯著性標注圖的圖像像素點進行超像素聚類,再對超像素聚類結果進行圖分割,得到區域分割結果;
對待測圖像進行HSV顏色空間變換,得到顏色變換之后的圖;
步驟6:對待測圖像進行區域分割,以FCN檢測結果和HSV顏色空間變換結果作為輸入特征,經過局部CNN網絡對每個區域進行二分類,將顯著分類的概率作為區域顯著性預測值。
有益效果
本發明提出的一種基于全局和局部卷積網絡的顯著性目標檢測方法,首先,使用FCN全卷積網絡進行深層語義信息的提取,輸入圖像不需要固定尺寸,進行端對端的預測,減少訓練的復雜度。使用局部CNN卷積網絡,提取局部特征對FCN得到粗糙檢測結果進行精度優化。本發明能準確高效的提取圖像中的語義信息,有利于復雜場景中顯著性目標檢測準確率的提高。
附圖說明
圖1是基于全局和局部卷積網絡的顯著性目標檢測流程圖
具體實施方式
現結合實施例、附圖對本發明作進一步描述:
步驟1、構建FCN網絡結構
FCN網絡結構是由十三個卷積層和五個池化層以及兩個反卷積層組成,在本模型在經過ImageNet預訓練的VGG-16模型上進行調優。移除VGG-16模型中的全連接層,加入兩層雙線性差值層作為反卷積層。第一個反卷積層進行4倍的插值,第二個反卷積層進行8倍的插值,將網絡輸出結果擴大到與原始圖像同樣的尺寸;設置分類類別為兩類,對每個像素點進行二分類。
步驟2、訓練網絡結構
將訓練樣本送入網絡依據邏輯回歸分類器的輸出對圖像中每個像素點進行分類,將顯著性標注圖直接作為訓練的監督信號,計算網絡分類結果與訓練樣本監督信號的誤差,使用反向傳播算法對模型進行訓練,對邏輯回歸模型以及卷積核和偏置進行調整。由于訓練樣本量較大,采用分批次進行訓練,每一批次稱作一個batch。計算誤差時,定義代價函數c為平方和函數:其中,m表示batch的大小,一般取20-100個,ti表示第i個圖像對應的監督信號,zi表示經網絡運算后輸出第i個圖像的檢測結果。
使用誤差的反向傳播算法對模型進行調優,計算代價函數c對卷積核W及偏置b的偏導數,然后對卷積核和偏置進行調整:其中η1,η2為學習率,在本實施例中η1=0.0001,η2=0.0002。在每一次訓練完成后,求得驗證集樣本的誤差。在本發明中,選取訓練終止條件為:當驗證集的誤差開始從由逐漸減小變成逐漸增大時,認為整個網絡已經開始過擬合,此時即可停止訓練。
步驟3、全局顯著性檢測及局部CNN網絡訓練數據預處理
利用全局FCN進行顯著性檢測,訓練終止后,利用訓練好的FCN網絡對待測樣本Im*n進行檢測,m,n對應圖像的長和寬。對每個像素點進行顯著或非顯著的二分類,得到粗糙的顯著性檢測結果Sm*n;
構建局部CNN網絡,局部CNN網絡采用VGG-16模型的結構,設置網絡的輸入為大小為227*227*4*batchsize,網絡輸出大小為2*batchsize,batchsize為每批次處理圖像塊的個數;
區域分割,首先采用SLIC對圖像Im*n進行超像素聚類,再對超像素聚類結果進行圖分割,得到區域分割結果{R1,R2,...,RN},N為區域分割的個數。
步驟4、訓練局部CNN網絡
對區域分割得到的每個區域Ri,i∈[1,N]得到其外接矩形Im*n(xmin:xmax,ymin:ymax),(xmin,ymin)、(xmax,ymin)、(xmin,ymax)、(xmax,ymax)為矩形的四個頂點,選取圖像塊Ci為Im*n(xmin-40:xmax+39,ymin-40:ymax+39),將圖像塊Ci對應的FCN顯著性檢測結果和HSV顏色空間變換結果作為Ri的訓練輸入特征。計算區域Ri中顯著像素點所占的比例θ,設置顯著性閾值th=0.75,若θ>th,則區域對應的標簽為顯著區域,否則為非顯著區域。類似FCN網絡訓練過程對CNN網絡進行訓練。
步驟5、全局顯著性檢測及局部CNN網絡數據預處理
以訓練好的FCN全卷機網絡對待測圖像進行卷積操作得到初步的顯著性分類結果;
對待測圖像利用簡單線性迭代聚類Simple Linear Iterative Clustering,SLIC方法對顯著性標注圖的圖像像素點進行超像素聚類,再對超像素聚類結果進行圖分割(Graph Cuts),得到區域分割結果;
對待測圖像進行HSV顏色空間變換,得到顏色變換之后的圖。
步驟6、顯著性檢測
對測試圖像進行區域分割,以FCN檢測結果和HSV顏色空間變換結果作為輸入特征,經過局部CNN網絡對每個區域進行二分類,將顯著分類的概率作為區域顯著性預測值。