曹 立 春
(內蒙古師范大學計算機科學技術學院 內蒙古 呼和浩特 010022)
目標檢測指的是在給定的圖像或視頻幀中找到被檢測目標的位置并判斷目標的相應類別。目前,基于深度學習的目標檢測日益成熟,其算法在各個大型數據集(如Image-Net、Pascal VOC、MS COCO等)上的準確率突飛猛進,但“檢測框”位置不精確及“小物體”容易漏檢等問題依舊比較嚴重,相比于大物體,小物體由于像素較低,且相對于整幅圖片來說所占的比例較少,受圖像背景干擾大容易被遮擋等原因,使得小目標檢測一直是圖像處理領域的一大難題。
傳統方法通過手工設計的特征來進行目標檢測,此類方法在性能上基本取決于人為設定的手工特征質量,因此很難將其泛化到其他類別。卷積神經網絡(Convolutional Neural Networks, CNN)的提出使得目標檢測邁進了一個新階段[1]。近年來,研究者們不斷在這個領域進行探索創新,基于R-CNN系列[2-3,7]框架逐漸完善,是目標檢測領域較成熟的框架之一,此外,U-Net[4]通過對稱式的結構融合了網絡中低維和高維的特征,對特征的提取能力有了很大的提升。但是目前在針對小目標的漏檢及計算機無法自主地調整搜索路徑等問題上仍然存在許多困難。
研究發現[5-6],算法提取的特征質量越好,越有助于小目標的檢測;檢測框對目標的包圍程度也會影響目標檢測的精度。基于此,本文提出將深度學習與強化學習相結合應用于目標檢測任務,并主要對特征提取部分的網絡框架進行改進。本文的創新點如下:(1) 改進U型網絡結構,加入注意力模塊,對特征進行增強;(2) 提取候選框結合深度強化學習,利用強化學習技術對預測的檢測框調整以達到精確定位的目的。本文通過以上兩個方面達到改善小目標檢測精度的目的。
目標檢測方法分為一階段法與兩階段法兩種。一階段法[7]主要使用錨框對整個圖像的區域進行預測,然后對預測進行解碼,生成對象的最終邊界框。而兩階段法[8]使用第一部分,如區域生成網絡[9](Region Proposal Network,RPN),生成一個稀疏的候選對象提議集,第二部分進行進一步的分類和回歸,使用卷積網絡確定準確的對象區域和相應的類別標簽。單級網絡雖然比兩級網絡快,但由于只使用了一階段的檢測,丟掉了許多的目標信息,因此在檢測精度上通常落后于兩階段方法,特別是對于包含小目標的場景。
強化學習是一種試錯過程,其思想是通過agent不斷地與環境交互,利用獎勵與懲罰的機制使agent學習到解決問題的最優策略。其與深度學習結合的深度強化學習能夠讓agent通過數據來掌握運動感知的技能,從而達到獎勵最大化。已經成功應用到了計算機視覺[10]、自然語言處理[11]等方面。
在目標檢測領域,強化學習也有著很重要的作用,Caicedo等[12]將強化學習與CNN相結合,通過一系列簡單的動作變換來定位候選區域中目標的正確位置,完成了目標定位的任務。接著,此種方法被用于美學的圖像裁剪問題[13]。Bellver等[14]采用嵌套層次搜索的手段滿足強化學習適用于序列性任務的要求,用IoU指標制定相應的reward方程,采用了事先規定的五點子窗口區域,大大減少了檢測的范圍。但是這種固定的搜索窗口限制了搜索范圍,導致目標檢測的召回率低。Gao等[15]設計了包括兩部分的網絡,深度學習部分分析區域的潛在精度增益,強化學習部分選擇區域放大,對放大的區域進行檢測,類似于圖像分割。但是這種方法可能會使小的對象可能變得太小而無法在下采樣圖像中檢測到。
上述兩階段法針對小目標檢測相對友好,但仍然存在對小目標檢測不準確、結果精度不高的問題,因此本文在兩階段模型的基礎上引入強化學習。本文創新在于通過將注意力機制嵌入到特征提取部分,并將U-Net的輸出改為多級輸出然后進行合并,進而達到對特征提取優化的效果。
本文算法首先通過特征提取網絡提取特征,也就是改進的U-Net與RPN結合得到初步的目標包圍框,隨后通過ROI Align篩選出感興趣區域,再進入強化學習網絡調整檢測框的包圍精度。本文的強化學習網絡由兩個全連接層組成,每層后面都接一個ReLU函數和一個dropout層,輸出為agent對檢測框調整的動作,并對動作設計了10種變形類別及1種終止類別。即采用馬爾可夫策略對檢測框進行迭代調整,從而提升精度。本文算法主要包含特征提取和強化學習兩大步驟,本文框架如圖1所示。

圖1 網絡結構圖
2.1.1傳統U-Net
傳統U-Net網絡先用卷積不斷的下采樣,得到分辨率較低的高維特征圖,不斷下采樣的過程中形成一個維數由低到高的特征金字塔,再通過一系列反卷積層逆向進行多次上采樣,在每次反卷積操作后,將特征圖維度減半,然后與對應層級的特征圖通過矩陣級聯進行融合,生成與原有特征金字塔逐級對應的特征圖,最終輸出與輸入圖像分辨率一致的像素級預測結果。融合后的特征包含了金字塔頂層的抽象數據和低層的細節信息。由于這種對稱式的網絡結構在形態上近似一個“U”型,因此命名為U-Net,其結構如圖2所示。

圖2 傳統U-Net結構圖
2.1.2多維注意力模塊
多維注意力模塊[16](MDA-Net)主要由像素注意力與通道注意力構成,像素注意力網絡中,輸入特征通過具有不同比率卷積核的初始模塊進行不同尺度的特征提取,然后通過卷積得到分別表示前景和背景分數的雙通道顯著性特征圖。再用Softmax函數把顯著性特征圖的值限制在[0,1]之間,它可以降低噪聲,相對增強目標信息。通道注意力使用經典的SE-Net[17]結構,首先經過全局平均池化(Global Average Pooling,GAP)輸出C個特征通道的數值分布,然后將特征降維,再經過ReLU激活后通過一個全連接層將維度變為原來的維度。通過Sigmoid獲得[0,1]之間歸一化的權重,也就是根據每個特征通道的重要程度去提升有用的特征并抑制用處不大的特征。最后由兩部分注意力與原特征相乘得到更具價值的特征圖。圖3所示為多維注意力模塊。

圖3 多維注意力模塊MDA-Net
2.1.3改進的U-Net
在傳統U-Net模型中,最終的輸出結果由金字塔底層特征(即卷積過程與反卷積過程融合的特征)直接產生,這導致模型在訓練時關注于低層的參數更新,而忽略了頂層的相關參數優化。因此本文提出改進的U-Net,與傳統U-Net結構相似,其主要思想是利用Resnet的自然卷積下采樣特征層級結構作為編碼器。但是由于Conv1的龐大內存占用,本文不將其納入U型網絡中,解碼器是通過對編碼器學習的特征逐步上采樣進行空間分辨率的恢復操作。通過將解碼器與編碼器相應空間分辨率的特征橫向鏈接達到特征利用的效果,但在特征的橫向鏈接處,本文嵌入上述多維注意力模塊MDA-Net,利用像素注意力與通道注意力,減弱下采樣圖像的噪聲影響,強化特征相關信息,弱化不相關信息,從而提高特征的利用能力。經過MDA-Net處理過的下采樣特征與對應的上采樣特征進行逐像素的相加,得到每層的融合特征。改進的U-Net與傳統U-Net不同,預測在每個級別上都獨立進行,每一層級都輸入到單獨的RPN網絡,生成一組帶有目標框的特征圖,然后將每層RPN得到的目標框進行向量拼接輸出到下一網絡層。圖4所示為本文改進的U-Net架構。

圖4 改進的U型網絡
為了提升檢測精度,需要對檢測框進行調整,使其緊密地包圍目標。對檢測框調整的過程可以看作是一系列有目標導向的馬爾可夫搜索過程,因此在本文改進的U-Net基礎上引入強化學習,來進一步調整檢測框的精確度。
強化學習網絡首先將ROI Align輸出的特征向量與歷史-動作向量相結合作為強化學習的輸入,此時算法將整幅圖像看作是一個環境,定義當前的檢測框為agent,agent通過獎勵函數的引導,選取動作集合中的動作來對檢測框進行變形移位,其目標是使檢測框將目標緊緊包圍起來,最終達到目標檢測的目的。為了構建一個完整的強化學習系統,下面進行對馬爾可夫決策過程建模。
2.2.1馬爾可夫建模
(1) 狀態。狀態表示是一個二元組(o,h),其中:o表示網絡當前產生的圖片特征向量,這個特征向量是由ROI Align生成的;h是一個固定大小的向量,用來表示agent曾采取的h個歷史動作。
(2) 動作。agent每次根據當前的狀態,從動作集A中選擇動作進入下一個狀態。動作集合定義:A={左移,右移,上移,下移,變大,變小,變寬,變窄,變高,變矮,終止},每個動作根據當前檢測框的大小,以比例0.2對檢測框進行變形,變形動作是一組離散的變化,終止動作表示當agent能夠確定當前的檢測框已經緊密地將目標包圍住時執行終止動作,代表搜索截止。
(3) 獎勵。當agent執行動作a并由狀態s進入下一狀態s′時,環境都會反饋給agent一個獎勵Ra,獎勵的大小代表動作的對錯,即算法計算當前采取動作后得到的候選區域b′與目標的真實區域g的重疊率大于當前候選區域b與g的重疊率,那么給予獎勵,否則給予懲罰,即sign函數給出+1與-1值。agent能夠根據當前的獎勵選擇后續的動作序列方向。獎勵函數定義如下:
Ra(s,s′)=sign(IoU(b′,g)-IoU(b,g))
(1)
式中:IoU(b,g)代表目標區域g與候選區域b的交并比。
IoU(b,g)=area(b∩g)/area(b∪g)
(2)
對于終止動作,獎勵函數定義為:
(3)
τ是一個閾值,表示允許將參與區域看作為正確的檢測目標的最小IoU。目標檢測評估的標準閾值為0.5,即如果IoU>0.5,則認為是真實的檢測,給予獎勵η,否則為錯誤的檢測,給予懲罰-η,在本實驗中η=3。為了更好地實現定位,在訓練時使用τ=0.6。如果τ的值較大,對性能有負面影響,因為agent認為只有清晰可見的對象才值得觸發。
2.2.2Q學習
根據以上對行動集合、狀態集合以及獎賞函數的定義,通過應用Q-學習算法學習最優策略Q(s,a),agent根據Q函數選擇具有最高期望獎勵的動作,其中Q函數使用貝爾曼方程進行更新,更新過程如下:
Q(s,a)=r+γmaxaQ(s′,a′)
(4)
式中:s為當前狀態;a為當前選擇的行動;r為獎勵;γ代表折扣系數;s′代表下一狀態;a′代表接下來采取的行動。
2.2.3模型訓練
對于一幅圖像,首先將圖片的尺寸設置為224×224作為改進U-Net的輸入,進行特征提取,分別得到不同層具有不同尺度的特征圖,這些層分別進入對應的RPN網絡,生成目標可能的候選框,在此階段應用非極大值抑制(Non-Maximum Suppression,NMS)算法消除冗余候選框,再進入ROI Align,生成感興趣區域,隨后進入強化學習網絡,設置當前狀態為s,agent以概率ε從動作集A中隨機選取一個動作a進行檢測框的移動。執行動作a之后,得到新的候選區域b′,環境會根據上式賦予agent一個正的或者是負的獎勵r,用于指導agent的下一步動作,同時將動作a并入到歷史動作向量中,與當前的圖像特征構成狀態表示。隨后環境進入下一狀態s′。重復上述過程,直至a為終止動作或者已經達到最大搜索步驟數時,結束搜索過程,達到最終的定位結果。并將每一步得到的經驗信息元祖(s,a,r,s′)存入經驗池中,提供給整個模型訓練。
模型的各部分設置如下:
(1) 探索-利用。在探索-利用過程中,使用ε-greedy訓練強化學習網絡,在探索階段使用的隨機選擇策略,即agent每次以ε的概率隨機選擇動作,利用階段以1-ε的概率利用已經學習到的策略進行決策。ε初始為1,ε-greedy策略分為15個周期,在前五個周期,通過agent與所有訓練圖像交互,ε由1.0逐漸減小至0.1。以逐步讓agent使用其自己的學習模型。在第五周期之后ε被固定為0.1,因此agent根據自己決策產生的經驗調整模型參數。使用隨機梯度下降和反向傳播算法與丟棄正則化對參數進行更新。雖然在探索階段隨機選擇動作效果最好,但是隨機的選擇動作可能會導致較難學習到agent的終止動作,因此本文設置當IoU大于0.6時,算法強制agent選擇終止動作。以便訓練的速度更快。
(2) 經驗回放。在環境S下agent執行動作a后進入的新狀態s′與得到的獎勵都被作為agent的經驗,存放入經驗池中,它是一個四元組(s,a,r,s′)。在算法的參數更新循環里,對經驗池里的樣本進行隨機采樣或批量隨機采樣,通過Q-學習對模型進行參數更新。本文使用了1 000個經驗回放和100個批量大小的經驗。
(3) 折現系數。由于當前的agent只考慮到采取動作a會得到的即時獎勵,沒有考慮到未來的獎勵,不利于算法的長期訓練,因此在式(4)中設置了折現系數γ=0.9,用來平衡即時獎勵與未來獎勵。
(4) 訓練參數。深度Q網絡的權值是從正態分布初始化的。對于學習,本文使用Adam優化器以1e-6的學習率來避免梯度爆炸。設置agent搜索每個目標的最大步數為20步。
(5) 學習軌跡。由于不能在每次agent學習的時候都給出一個指定的目標學習,因此在每個時間步驟,如果有多個物體存在在當前區域,下一個動作往往會關注于與真實值重疊最大的物體,因此在這個自頂向下的過程學習的物體很可能會變化。
本文設計的實驗硬件使用為:GPU為NVIDIA-GTX GPU,CPU為Intel i7-5500U,內存為8 GB,主頻為2.4 GHz。操作系統是Windows 10,結合Tensorflow及PyCharm對目標進行檢測。
本文的數據集使用Pascal VOC數據集,它主要用于分類、檢測和分割,是目標檢測技術的基準之一。該數據集中有20個分類。VOC2007中包含9 963幅標注過的圖片,共標注出24 640個物體。VOC2012數據集是VOC2007數據集的升級版,一共有11 530幅圖片,共27 450個物體。本文在VOC 2007和VOC 2012的訓練集上對系統進行了訓練,并在VOC 2007的測試集上進行了測試,取得了較好的實驗效果。
3.2.1目標檢測可視化
本文展示出了agent在圖像上進行馬爾可夫包圍的可視化過程,本文設置搜索的最大步數為20步。圖5為agent在簡單背景下的檢測過程可視化,圖6為agent在復雜背景下的檢測可視化過程。其中實線代表agent指導檢測框調整的過程,即除了終止動作以外的動作,虛線框代表終止動作,即表示agent認為緊密的包圍住了目標物體,搜索結束。可以看出,在簡單背景下,agent僅使用4步就可以成功定位到物體,并且在復雜背景下只使用7步就能夠達到檢測的目的。

(a) 原始 (b) 動作1變小

(c) 動作2下移 (d) 動作3變小

(e) 動作4終止圖5 簡單背景的目標檢測

(a) 原始 (b) 動作1變小

(c) 動作2左移 (d) 動作3上移

(e) 動作4變小 (f) 動作5變小

(g) 動作6變小 (h) 動作7終止圖6 復雜背景的目標檢測
本文對agent定位單個目標所需步數進行了統計,統計結果如圖7所示。可以看出,對于絕大部分特征明顯的物體,本文算法在5步以內就可以檢測成功,而對于一部分特征不明顯的物體,本文算法也在6至9步內完成了檢測,其余的更難檢測的物體則需要更多的步數。

圖7 步數直方圖
3.2.2實驗結果分析
本文對總框架進行了消融實驗,如表1所示,其中U-Net表示傳統U-Net,mAP為76.5%。U-Net+Q表示為傳統U-Net結合強化學習的框架,實驗的mAP結果提升至77.1%,表明利用強化學習對包圍框的調整可以有效提高檢測精度。U-Net+At表示本文對U-Net部分做出的改進,即通過加入注意力機制并采取分層預測的方式來提高特征質量,實驗的mAP提升至71.3%。證明了該方法的有效性。本文算法結合上述兩部分改進,將mAP提升至78.4%。可以看出本文算法對提升目標檢測精度具有良好的促進作用。

表1 算法各部分改進的mAP對比(%)
此外,圖8顯示了本文框架與文獻[16]的算法框架實驗結果對比圖,其中:較細框為檢測成功,較粗框表示漏檢的目標。可以看出,相比文獻[16]算法,本文在檢測準確率上有了大幅度的提升,原因為本文的算法在特征提取方不僅融合了注意力機制,還利用了高低不同層的特征,使得提取的特征較為精細準確,從而提升了檢測準確率。但是在目標大部分被遮擋時,仍然無法有效地檢測出來。

(a) 本文算法 (c) 文獻[16]算法

(b) 本文算法 (d) 文獻[16]算法圖8 在VOC2007數據集上的實驗結果
最后,本文算法與現存算法在單一類別目標數據中進行了比較,使用的評價指標為平均檢測精度(Average Precision,AP)和均值平均檢測精度(Mean Average Precision,mAP)。如表2所示,本文列舉出了幾種小目標的檢測結果,可以看出,本文算法相較其他方法不論在單一目標還是整體平均精度上都有相對的提高,表明本文算法對提升目標檢測精度具有較強的能力。

表2 各算法在Pascal VOC 2007數據集上的檢測準確率(%)
本文基于深度強化學習,提出了一種針對小目標的目標檢測算法,改進了傳統的U-Net,利用多層特征融合并輔以注意力機制達到對特征更好的提取,將融合后的特征分別送入RPN網絡生成檢測框,再利用強化學習調整目標檢測框,使其緊密地包圍住目標,提升了檢測精度。該算法在精度上相比以往的兩階段目標檢測具有一定提升,證明該方法是可靠的。但在目標大部分被遮擋時,該方法仍無法有效地檢測,考慮到可能是因為沒有利用周邊信息與上下文信息的原因,因此后續工作將考慮在此基礎上添加上下文模塊,達到對目標周邊信息的利用。