基於深度學習的小目標檢測算法文獻綜述閲讀

語言: CN / TW / HK

最近做了一個對於小目標檢測算法的文獻的閲讀,在搜查文獻的時候,瞭解了目標檢測的發展過程以及其中比較典型的算法,以下根據彙報的PPT從四個方法介紹小目標檢測算法文獻綜述,分別是:目標檢測的簡要介紹、小目標檢測背景介紹及難點、小目標檢測算法介紹、總結與展望,此篇博客也可作為彙報的講稿。

目標檢測簡要介紹

目標檢測示例
傳統目標檢測到基於深度學習的目標檢測
目標檢測過程簡單的可以分為兩個過程:定位和識別,定位是對於某一個目標位於哪一個位置而言,識別是指所定位的目標是什麼,是一個分類問題。目標檢測的發展也可以分為兩個過程,其一是傳統的目標檢測,另一個是基於深度學習的目標檢測。

傳統目標檢測

傳統目標檢測可以分為三個過程:獲取檢測窗口、手工設計感興趣目標的特徵、訓練分類器。

1998年Papageorgiou發表一篇關於A general framework for object detection,提出Harr分類器,這是一個用於檢測人臉的目標檢測分類器,計算獲取的每個檢測窗口的像素總和,然後取它們的差值,利用差值作為特徵進行目標分類,該方法的優點是速度快。2004年,David Lowe首次提出旋轉尺度不變特徵變換SIFT,並在 2004 年進行補充完善,SIFT 提取圖像的局部特徵,圖像旋轉、尺度縮放、亮度變化等現象不會影響特徵的提取;對視角變化、仿射變換和噪聲也具有很好的穩定性,並且具有高速性和可擴展性等眾多優點。Navneet Dalal 和 Bill Triggs 在 CVPR 2005 提出了方向梯度直方圖(Histogram of Oriented Gradient, HOG),HOG 通過統計並計算圖像局部區域的梯度直方圖來構成特徵,圖像幾何和光學形變不會影響特徵提取,具有很好的穩定性,使用 HOG+SVM 算法在行人檢測中也取得相當好的效。
到 2010 年,由 Pedro Felzenszwalb 提出形變部件模型(Deformable Part Model, DPM),採用改進後的 HOG 特徵,結合 SVM分類器和滑動窗口(Sliding Windows),對目標多視角問題和本身的形變問題分別用多組件策略和圖結構部件模型策略來處理。此外,使用多示例學習自動確定樣本所屬類別和部件模型位置等潛變量。DPM由於其優秀的檢測性能連續在2007、2008、2009 年的 Pascal VOC (Visual Object Class)中獲得冠軍,Felzenszwalb 也因此在2010 年被授予終身成就獎。

傳統的目標檢測算法的優點是檢測的準確度較高,但缺點是時間複雜度比較高、窗口宂餘高。傳統的目標檢測的算法是對全圖進行華創掃描,對於要檢測的目標完全沒有針對性。而隨着計算機科學技術和GPU等硬件設施的發展,基於深度學習的目標檢測算法開始興起。

基於深度學習的目標檢測

基於深度學習的目標檢測是將深度網絡應用於目標檢測,根據檢測的原理可將目標檢測算法分類兩階段法和單階段法。基於深度學習的目標檢測的算法

基於候選區域的目標檢測

基於區域提取的檢測方法首先通過選擇性搜索(Selective Search)或 RPN(Region Proposal Net)等方法提取出候選區域,然後利用迴歸等方法對候選區域進行分類和位置 預 測 ,代 表 算 法 有 RCNN、SPP-Net、Fast RCNN、Faster RCNN和 Mask RCNN等。

2014年Girshick等提出RCNN,該算法在VOC2007的測試集上的mAP達到了48%。RCNN 算法主要包含 4 個步驟:①利用選擇性搜索算法提取候選區域,將候選區域縮放至同一大小;②使用卷積神經網絡提取候選區域特徵;③SVM 分類器對候選區域特徵分類;④利用邊框迴歸算法進行邊框預測。RCNN 算法作為第一個基於深度學習的較成熟算法,相比於傳統機器學習算法有了很大進步,但其劣勢也很明顯:
採用 4 個分離的步驟進行檢測不適於端到端訓練;每次檢測都需要生成 2 000 多個候選框,每個候選框都需要一次卷積操作,重疊的候選框帶來大量的重複計算,極大影響了檢測速度。

2014年何愷明提出金字塔池化層網絡SPP-Net,傳統的 CNN 網絡由於連接了全連接層,因此需要對輸入的圖片尺寸進行裁剪或拉伸,以符合全連接層輸入要求。但是在圖片裁剪或拉伸過程中會扭曲圖像,使目標特徵有所變形。為解決這一問題,SPP-Net 在 CNN 網絡中加入了空間金字塔池化層(SPP)。不管輸入尺寸如何,SPP 都會將其輸出固定為同一個尺寸,提高了圖像的尺度不變性並降低了過擬合。採用 SPP 後,只需要對圖像作一次卷積操作,通過計算原圖與特徵圖的映射關係即可得到圖像的候選區域,大幅縮減了算法的檢測時間。1

2015年Ren提出FastRCNN算法,與RCNN不同的是,FastRCNN先對圖片通過神經網絡提取特徵,再選出候選區域並將不同的輸入ROI池化為相同的大小,最後,對全連接層輸出進行邊框迴歸和分類。ROI池化可以避免對候選區域進行縮放,減少了算法的運行時間,但是選擇候選區域仍然比較費時。

2015年Ren等再次提出了Faster RCNN,首先提取圖片特徵;其次,將圖片特徵送入 RPN(Region Proposal Network)網絡得到提取的區域;然後提取邊界框特徵;最後,根據候選框特徵預測物體的邊界框和類別。相比於 Fast RCNN 算法,該算法較重要的改進點就是採用 RPN 代替 Selective Search 提取候選區域。算法另一個極為重要的改進就是先驗框的引入,此後的YOLO等單階段的算法也採用了這個方法。

基於迴歸的目標檢測

基於迴歸的目標檢測算法只對圖片進行一次卷積運算,其直接在第一次卷積運算中對目標進行定位和識別,這類算法比如YOLO(You only look once)、SSD、YOLOv2等。

2016年Redmon等提出了YOLO網絡,YOLO 將檢測看作迴歸問題,只作一次卷積操作,因此檢測速度很快。但是 YOLO 算法由於劃分尺度問題,對小目標的檢測效果不太理想。若同時出現兩個目標中心落在同一個網格中,算法就不能很好地檢測出目標。之前看YOLO時做的筆記: YOLOv1閲讀筆記-掃描版.

2016年Liu等提出了SSD(Single Shot MultiBox Director),SSD在一個網絡中直接回歸出目標的類別和具**置,其次採用卷積神經網絡進行預測,另外在網絡結構上採用不同尺度的特徵提取器,最終達到了很好的檢測精度和檢測速度。

2016年Redmon等在YOLO的基礎上提出了YOLOv2,YOLOv2對於YOLOv1的改進體現在以下幾方面:歸一化、使用高分辨率圖像對模型進行微調、採用了先驗框、聚類提取先驗尺度、約束預測邊框的位置、Passthrough層檢測細粒度特徵、多尺度圖像訓練、採用Darknet-19網絡。總的來説,YOLOv2就是對YOLO的改進,在檢測速度和檢測精度上都得到了提升。

不同的檢測算法在VOC2007上的表現

小目標檢測背景介紹及難點

目前目標檢測算法算的發展是比較好了,現在YOLOv5都已經發布了,但是小目標檢測的問題在目標檢測領域來説時比較困難的,小目標從尺寸類型可以分為絕對尺寸和相對尺寸,絕對尺寸的小目標尺寸不大於 32*32,相對尺寸是相對於圖像來説,目標尺寸不大於圖像尺寸的十分之一。對於複雜場景下的小目標,尤其對衞星遙感圖像來説,分辨率高視野大,目標相對尺寸較小是它的主要特點。而目前主流的目標檢測算法對小目標檢測的召回率低,檢測精度不高,很難達到實時應用的要求。因此,對高分辨率圖像的小目標檢測的研究不僅是現在目標檢測中的重點,更是這一領域的難點,並且在現實應用中具有十分重要的意義。

小目標檢測算法介紹

就目前的小目標檢測來説,可以簡單分為三類:多尺度預測、反捲積與上採樣、對抗網絡GAN,這三類採用不同的方法對小目標的檢測進行改進。

多尺度預測

在之前的基於迴歸的目標檢測中,應用了多尺度的檢測,但是最終的預測值僅有一個,多尺度預測不僅採用多個尺度對圖片的特徵進行提取,而且在不同的尺度上都會進行預測。其中代表性的算法包括:LIN在2017提出的FPN模型,2018年Singh提出了SNIP算法,2018年趙亞男等提出了MFDSSD算法。以下通過介紹FPN算法來介紹多尺度預測方法。

FPN(Feature Pyramid Networks for Object Detection),
FPN網絡結構
FPN主要是在網絡的結構方面進行改進,首先,使用Resnet、vgg等網絡,構建由下向上的特徵金字塔,然後通過上採樣,構建自上而下的網絡,接着對其進行橫向連接。原來多數的目標檢測只採用頂層特徵做預測,但低層的特徵語義信息比較少,但目標位置比較準確,高層的特徵語義信息比較豐富,但目標比較粗略。其次,有一些算法雖然也採用了多尺度的特徵融合,但是隻對最後的融合特徵進行預測,FPN對每一個融合的特徵都進行了預測。

反捲積和上採樣

小目標在圖像中所佔像素較少,而且輪廓比較粗糙。如果能提高圖像特徵的分辨率,使小目標的特徵變大,對小目標檢測是有幫助的。將反捲積和上採樣應用在網絡中可以提高特徵圖尺寸,通過與低層特徵融合可提高特徵的表達力,更好地預測小目標。2016年,Fu等人針對SSD方法在小目標上檢測效果不好的問題,提出了DSSD模型;2015,Jonathan提出了FNC網絡;2018年,範欽明提出了AFFSSD網絡;這些方法都通過反捲積等方法提高了圖片中低分率的語義信息。下面僅對DSSD進行粗略的介紹;

DSSD網絡的結構
DSSD對於SSD網絡的改進主要在以下兩點:一、把SSD網絡的基礎網絡由VGG換成了Resnet-101,增強了特徵提取能力;二、使用反捲積層增加了大量的上下文信息。低分辨率的特徵信息作為上下文你信息,通過反捲積與前面兩倍分辨率信息的特徵圖像進行融合,最後通過一個預測模塊進行預測。
反捲積模塊示意圖
把紅色層做反捲積操作,使其和上一級的藍色層的尺度相同,再把兩者融合起來,得到新的紅色層來做預測。


對抗網絡GAN

在這裏插入圖片描述
PGAN使用感知生成式對抗網絡(Perceptual GAN)提高小物體檢測率,生成器將低分辨率小目標的特徵轉化為高分辨率大物體的特徵,分辨器與生成器以競爭的方式分辨特徵,在不斷的迭代過程中,縮小小目標與大目標直接的差異來提高小目標檢測的準確率。PGAN挖掘不同尺度物體間的結構關聯,提高小物體的特徵表示,使之與大物體類似。包含兩個子網絡,生成網絡和感知分辨網絡。生成網絡是一個深度殘差特徵生成模型,通過引入低層精細粒度的特徵將原始的較差的特徵轉換為高分變形的特徵。分辨網絡一方面分辨小物體生成的高分辨率特徵與真實大物體特徵,另一方面使用感知損失提升檢測率。

在這裏插入圖片描述

總結與展望

目前小目標檢測的算法基本都是在現有的深度網絡上進行改進,使之能夠適應小目標識別;
其次,相對於大目標檢測,小目標檢測的數據集較少且質量不佳;
展望就算了吧哈哈哈


  1. 源於張新於2020年發表的基於深度學習的小目標檢測算法綜述 ↩︎