李 恒 朱東弼
行人檢測(Pedestrian Detection)是檢測圖像中的目標位置,利用相關技術判定所提供的圖像是否存在行人并給出精確的位置標識[1]。行人檢測方法可分兩大類,一類是基于背景建模的方法,核心是將前景中的目標進行特征提取然后判斷是否存在目標,但背景建模會受到環境因素的影響會導致模型復雜。另一類是基于統計學習的檢測方法,它的核心是依據海量樣本對圖像特征進行提取,然后分類,但是也會受到多種因素干擾而發生漏檢或者重復檢測的問題,而影響檢測效果。
2012 年后,目標檢測進入深度學習時代,2013 年,Sermanet 等人使用卷積稀疏編碼對卷積神經網絡進行行人檢測的研究[2]。謝林江等人針對復雜背景因素影響檢測效果問題,提出了改進版的神經網絡模型,使得行人的特征更加明顯[3]。當前經典的目標檢測算法網絡模型分為兩大類:一類是基于區域建議的two-stage 算法,如2015 年的開創者RCNN、改進的Fast R-CNN 及2016 年進階版的Faster R-CNN[4],另一大類是one-stage 算法,比如經典的YOLO 系列、SSD 等算法,相比于two-stage 算法,這些算法不包含區域建議模塊,不利于網絡學習,從而拉低了整體的準確率。
雖然行人檢測系統與深度學習相結合使得檢測效果有所提升,但是由于人體姿態的復雜程度和背景因素的影響,且行人屬于小尺度目標,因此會影響檢測出行人的準確率。
Faster-RCNN 行人檢測流程首先使用全卷積神經網絡(Convolutional Neural Network,CNN)對原始圖像進行特征提取,然后對特征圖進行候選框推薦,對于更可能是目標物體的給與更高的概率完成候選區域的推薦。同時對特征圖進行窗口的選擇,由于推薦的窗口大小不同,采用自適應池化層進行統一,最后固定檢測框在全連接層實現回歸分類任務。
RPN 用于生成網絡建議框,在輸入圖片時,產生候選框并進行定位顯示分類概率。將RPN 和Faster-RCNN 進行訓練,從而得到輸出[4]。對于Faster-RCNN,沒有固定的輸入原始圖片尺寸,但通常將輸入的圖片短邊設置成600。如對于一張1 200×1 800 的圖片,會把圖片縮放到600×900 上。對于所輸出的特征圖尺寸進行五次成倍數裁剪,這里有兩個基本的模塊,一是Conv Block,為了改變網絡維度;另一個是Identity Block,用于加深網絡。為在圖片中生成候選區域,要在輸出的特征圖中進行滑窗選擇。針對特征圖中的多個窗口,分別要預測出k 個目標候選區域,稱為“錨”(Anchor)。每個anchor 有相對應的尺寸。如在3×3 的滑窗的中心處,根據三種不同的長寬比得到九個不同尺寸的矩形三種形狀寸的anchor。使得精確度有所提升。
在一張圖片中,真正需要檢測的目標不會占據太大面積,這會產生過多的負樣本,并且固定的anchor 尺寸使檢測受限,所以提出使用特征去指導每個矩形框的中心,自行生成長寬比,既可以節約時間,又可以生成合適的長寬比,既可以減少生成anchor 的時間,又可以生成合適的長寬比,這樣對于多變的人體姿態檢測效果更好。在RPN 結構中每一層都加入Guided Anchoring 模塊,作用是對特征圖進行建議框預測,其中的一個anchor generation 模塊作用是矩陣框的獲取不同于以往的滑窗,是要在預測特征圖的每一個點的像素作為目標置信度,作用是降低負樣本的數量,并且高和寬的比例尺寸不是固定不變的,用CNN 的方法進行回歸這樣與行人的尺度可以更好地對齊。另一個模塊是Feature adaption 模塊,將anchor 的高和寬轉換成一個有兩個通道的特征圖,之后再次對該特征圖進行卷積,即特征重采樣。用該方法通過RPN 和檢測網絡共享卷積層的方法縮減圖像中區域建議框的計算時間來提高檢測精度。
為了提高對于行人的檢測能力,本文以Faster R-CNN 模型為基礎,提出對RPN 中的模型結構進行改進,可提高行人檢測的精準度,并且去除了重復性計算,使得綜合性能有不錯的效果。