單義,楊金福,武隨爍,許兵兵
(1.北京工業大學 信息學部,北京 100124; 2.計算智能與智能系統北京重點實驗室,北京 100124)
目標檢測是實現場景理解的基礎,是計算機視覺領域的一項重點研究內容。自從深度卷積網絡大幅度提高圖像分類的準確率之后,深度卷積神經網絡也廣泛應用于目標檢測中。雖然深度卷積神經網絡在目標檢測方面取得了巨大的進步,但是小目標的檢測仍存在檢測準確率較低的問題。
現階段基于深度學習的目標檢測算法主要分為兩類,一是基于分類的目標檢測方法。基于分類的目標檢測算法又稱為兩階段(two-stage) 模型,首先選取候選區域,然后對候選區域進行分類和位置回歸,最終輸出檢測的結果。2014 年Girshick 等[1]首次提出基于區域提取的R-CNN 算法。2015 年Girshick[2]又提出一種改進的Fast RCNN 算法,將圖像經過基礎網絡處理之后,再傳入R-CNN 子網絡,共享卷積運算。但Fast RCNN 在提取區域候選框時仍然使用選擇性搜索算法(Selective Search[3]),增加了算法耗時,運行速度慢。針對Fast R-CNN 算法的缺點,2015 年Ren等[4]提出Faster R-CNN 算法,用候選區域生成網絡(regional proposal networks, RPN)來代替選擇性搜索算法。另一類是基于回歸的目標檢測算法,又稱為一階段(one-stage) 模型。2016 年Redmon 等[5]提出了新的目標檢測算法YOLO(You Only Look Once)。YOLO 算法將目標檢測框架看作空間上的回歸問題。但是YOLO 算法存在定位精度、召回率等較低的問題,且對尺寸較小的物體檢測效果不好,泛化能力相對較弱。為了解決YOLO 算法的缺陷,2016 年Liu 等[6]提出SSD(single shot multiBox detector)算法,利用多層特征圖進行檢測。
此外,針對小目標的物體檢測存在的問題,有學者提出了新的檢測網絡模型。2016 年Bell 等[7]提出一種利用感興趣區域內外信息進行物體檢測的模型(inside-outside net, ION)。2017 年Lin 等[8]在Faster R-CNN 網絡的基礎上提出一種具有橫向連接的特征金字塔網絡(feature pyramid networks,FPN),利用多尺度特征和自上而下的結構實現目標檢測。FPN 只利用頂層的特征進行檢測,雖然信息豐富,但是經過層層池化,很多細節特征信息會丟失,而這些信息對小目標檢測具有重要意義。Fu 等[9]針對SSD 算法在小目標檢測上存在的問題,提出一種改進的DSSD(deconvolutional single shot detector)算法,將SSD 算法的基礎網絡更改為ResNet-101[10],增強了網絡的特征提取能力,結合多尺度信息,提高了檢測結果。然而,上述網絡忽略了低層特征與高層特征之間的聯系,并且對于不同尺度大小的物體,卷積操作的感受野是不同的,在基礎網絡中利用同一種大小的卷積核進行卷積運算,不能很好提取不同大小的物體的感受野信息。
針對上述問題,本文提出基于跳躍連接金字塔和全局感受野的網絡結構,來融合不同尺度的高層與底層的特征信息,并利用不同大小的卷積核和不同步長的空洞卷積[11]來提取全局特征信息。實驗結果表明,所提出的模型能有效改善小目標檢測結果。
圖1 是本文提出的檢測模型的整體結構圖。網絡模型基于前饋深度卷積網絡,通過跳躍連接的金字塔(skip feature pyramid network)結構。將高層特征與低層特征相融合,在基礎網絡中加入全局感受野模塊(global receptive field, GRF)來提取不同尺度的物體的全局特征信息。該網絡模型在所有特征層中選取4 層不同尺度的高層與低層特征圖進行預測,在預測層產生固定數量的包圍盒(anchor boxes)和相應的類別概率值,最后通過非極大值抑制(non-maximum suppression)來獲得最終的預測框。

圖1 基于跳躍連接金字塔的小目標檢測模型Fig.1 Title Skip feature pyramid network with global receptive field for object detection
為了能夠清晰地展示本文提出的網絡結構,只展示用于預測層的特征圖,采用不同的顏色表示不同的特征層之間的融合,構建跳躍連接金字塔結構,并且提出利用全局感受野模塊來提取網絡全局特征信息。
如圖2 所示,(a)~(c)為現階段應用較多的深度網絡檢測結構。圖2(d)為本文提出的跳躍連接金字塔網絡結構。圖2(a)中只利用深度網絡中最后一層特征圖進行預測,其中YOLO 算法就是采用圖2(a)的結構形式,該網絡具有很高的檢測速度,但是檢測的準確率較低。圖2(b)是對圖2(a)算法結構的改進,通過在不同的尺度的高層特征上預測,有效地彌補圖2(a)結構中存在的問題,改善了檢測結果。圖2(c)是一種自頂而下的金字塔結構模型,不僅采用不同的特征層進行預測,而且融合了相鄰特征圖之間的信息。但是這種結構的網絡模型忽略了不同高層特征圖與低層特征圖之間的聯系。針對上述問題,提出如圖2(d)所示的跳躍金字塔結構模型,采用跳躍連接的方式,通過選擇不同步長的反卷積進行上采樣高層特征圖,并使用逐像素求和的計算方法來融合不相鄰的特征圖之間的信息。
在深度卷積網絡中,網絡的最深層的特征圖包含最多的抽象特征信息。因此利用提出跳躍金字塔結構,來融合不同的高層和低層特征圖之間的信息,不僅能有效利用不同特征層之間的尺度信息,而且融合了高層特征圖與低層特征圖之間的細節信息。

圖2 不同的結構形式的預測網絡Fig.2 Different structure of predicting network
跳躍連接的金字塔的細節結構如圖3 所示。通過選擇基礎網絡中的高層特征圖,對每一個高層特征圖利用大小為 3×3 通道數為256 卷積核進行卷積操作。這樣做的目的是將不同特征層的特征圖的通道數變成相同的數量,以便進行融合計算。在統一了每一層的通道數之后,采用 2 ×2 步長為2 的反卷積操作來把相鄰特征層的特征圖進行上采用,上采樣之后不同特征層就變為相同的大小。利用 4×4 步長為4 的反卷積來上采樣不相鄰的特征圖。反卷積計算特征圖的大小計算公式為

式中:i示輸入特征圖的尺寸;f為卷積核的大小;p為填充的像素數;s為反卷積的步長。最后對不同特征層不同通道數的特征層,可以用每個像素對應點的和來作為融合之后的特征圖。

圖3 跳躍連接的金字塔的細節結構Fig.3 The detailed structure of skip feature pyramid
在大多數的檢測模型中,多采用自上而下的結構,忽略了對于不同的大小的物體。而卷積神經網絡的感受野是不同的,因此提出在網絡中加入橫向連接的結構,采用不同大小的卷積核和不同步長的空洞卷積來增強網絡全局的感受野。與只利用一種卷積核的網絡結構相比,使用不同的大小的卷積核和不同步長的空洞卷積能有效提取不同尺度大小物體的特征。首先,利用 1 ×1 的卷積層,改變特征圖的通道數,減少特征模型的計算量。然后,利用 1 ×1、 3×3 和 5 ×5 三種不同的卷積核和3×3步長分別為1, 3 和5 的空洞卷積[11]來提取不同尺度的特征信息。進而把獲取的特征通道進行連接,用 1 ×1 的卷積核將通道數變換為原來特征圖相同的通道數,并與原來的特征圖對應像素點進行疊加,既保留原本網絡模型的特征,又加入了不同大小感受野的特征信息,有效改善提取較小尺寸的物體特征。全局感受野結構如圖4 所示。

圖4 全局感受野結構Fig.4 The network of global receptive field
為了更好地利用圖像的特征信息,選取VGG16中4 層不同尺度的特征圖,每一層對應的步長分別為8、16、32、64 個像素,在特征圖的每個像素點采用不同大小比例的包圍盒進行預測。每一層特征圖,設置不同大小的比例包圍盒來進行預測不同大小的物體,縱橫比分別為0.5、1.0、2.0。在訓練時,當包圍盒與圖像標注(ground truth)的重疊面積比例大于0.5 時,即認為該包圍盒中存在目標物體。
考慮到正負樣本的數量相差較大,與SSD 類似,本文采用負挖掘來解決極端的前景背景類別不平衡的問題。即在訓練中,不使用所有的負樣本包圍盒,也不隨機選擇負樣本包圍盒,而是將負樣本的損失進行排序,選擇其中損失最大的負樣本作為最后預測的樣本,并且控制最終的正負樣本比例為3∶1。與SSD 不同的是,本文在進行預測之前,先對網絡預測產生的包圍盒進行前景和背景的二分類濾除。這樣做的目的在于有效減少負樣本的數量。網絡的損失函數為

式中:i是每個訓練批次中包圍盒的索引;是每個批次圖像中每個圖像標注的對應類別標簽;是每個圖像標注對應的坐標;pi和xi是網絡預測的包圍盒中是否有目標和相應的坐標信息;ci和ti是所預測的目標包圍盒中物體的類別和相應的坐標信息;Nconv和Np分別為特征提取網絡和預測網絡中正樣本包圍盒的數量;lb是特征提取網絡輸出的二分類的交叉熵損失,即判斷包圍盒中是否有目標;lm是多分類任務的置信度。與Fast R-CNN 算法相似,lr為smooth L1 回歸損失。只有當包圍盒中時,即預測值為真時才會計算相應的損失。其中位置損失函數lr的具體損失函數如下:

其中:cx、cy、w、h分別表示包圍盒的中心坐標以及寬和高。(gcx,gcy,gw,gh) 表示圖像標注信息中的包圍盒對應的中心坐標以及寬和高, (dcx,dcy,dw,dh) 表示默認包圍盒的中心坐標以及寬和高,(xcx,xcy,xw,xh)表示預測的包圍盒的中心坐標以及寬和高。
本文以VGG16[12]作為基礎的特征提取網絡,并且在ILSVRC CLS-LOC 數據集上進行了預訓練。為了驗證所提出算法的有效性,分別在PASCAL VOC[13]和MS COCO[14]數據集上進行了實驗。PASCAL VOC 和MS COCO 數據集中類別數量分別為20 和80,并且每個類別都有標注信息和對應的類別信息。
在PASCAL VOC 數據上,所有的算法模型都在VOC2007 和VOC2012 數據集上進行訓練,測試在VOC2007 數據集上進行測試。一共訓練了140 k 次,學習率不斷衰減,設置0~80 k 的學習率為 1 0-3,80 k 到100 k 的學習率下降為 1 0-4,100 k到120 k 學習率下降為 1 0-5,120k~140 k 的學習率為 1 0-6。考慮到GPU 的處理能力,設置不同步長的學習批次,對于輸入大小為 320×320 的圖像,處理批次設置為32,而對于輸入圖像 512×512,設置的批次為16。動量和權值衰減分別設置為0.9和0.000 5。
表1 為本文的實驗結果和其他網絡檢測結果的對比。輸入圖像的尺寸對模型的輸出結果有較大影響。從表中可以看出,在輸入圖像的尺寸為320×320 時,平均準確率為80.1%,速度為31.2 f/s。在輸入圖像的尺寸為 5 12×512 時,平均準確率為81.9%,速度為 18.2 f/s。

表1 PASCAL VOC2007 的不同網絡模型的檢測結果Table 1 Detection results on PASCAL VOC dataset
表2 為網絡模型在PASCAL VOC2007 測試集的不同類別平均準確率的結果。從表中可以看出,本文方法在小目標類別中的平均檢測準確率明顯高于其他網絡模型。本文所提出的網絡整體的平均準確率高于其他網絡1%,其中如bird、sheep、plant 等小目標比其他網絡最優準確率分別高2.5%、3.2%、2.7%,證明了提出網絡的有效性。

表2 PASCAL VOC2007 不同類別的檢測結果Table 2 Object detection results on PASCAL VOC 2007 test set
圖5 為本文的方法和SSD 方法在VOC2007 數據集的可視化結果對比圖。第一行是SSD 算法的檢測結果,第二行是本文提出的檢測方法的實驗結果。從圖中可以看出,本文方法對于圖像中較小尺寸的鳥和人的檢測效果明顯改善,而且對于正確檢測的物體的置信度也有了較大的提高。
為了進一步驗證本文提出的模型在更多類別、更多數量的數據集上的有效性,我們在MS COCO 數據集上進行了實驗,實驗結果如表3 所示。MS COCO 數據集的評價指標不同于PASCAL VOC。以不同的IOU 進行評價,對圖像分為3 個規模大小進行評價。其中AP 表示準確率,AR 表示召回率。APs 和ARs 分別表示小目標的檢測準確率和召回率,以320×320 尺寸的圖像為例,本文方法在小目標準確率和召回率分別高于其他最優的模型2.4%和4%。

圖5 在VOC2007 上可視化的實驗結果對比Fig.5 The visual comparison of experimental results on VOC2007 test

表3 MS COCO 數據集檢測結果Table 3 Object detection results on MS COCO test-dev set.
針對小目標檢測準確率較低的問題,本文提出了一種基于跳躍連接金字塔的小目標檢測模型。通過跳躍連接的特征金字塔融合高層與低層特征圖信息,并且利用不同大小卷積和不同步長空洞卷積的橫向結構來提取全局特征信息,有效彌補因連續池化而造成的信息丟失。整個網絡模型以端到端方式進行訓練,并且在PASCAL VOC和MS COCO 數據集上進行了實驗,實驗結果表明本文提出的模型在小目標的檢測準確率方面明顯優于其他算法模型。