【目標檢測_概述】recent advances in deep learning for object detection_2019


文章鏈接:https://arxiv.org/pdf/1908.03673.pdf

Abstract

目標檢測是計算機視覺中一個基本的視覺識別問題,近幾十年來得到了廣泛的研究。視覺對象檢測的目的是在給定的圖像中找到具有精確定位的特定目標類的對象,併爲每個對象實例分配相應的類標籤。由於基於深度學習的圖像分類方法取得了巨大的成功,近年來,基於深度學習的目標檢測技術得到了積極的研究。本文綜述了近年來基於深度學習的視覺目標檢測技術的研究進展。通過查閱大量相關文獻,我們系統地分析了現有的目標檢測框架,並將調查分爲三個主要部分:(i)檢測組件;(ii)學習策略;(iii)應用和基準。在調查中,我們詳細討論了影響檢測性能的各種因素,如檢測器結構、特徵學習、方案生成、採樣策略等。最後,我們討論了未來的幾個方向,以促進和推動具有深度學習的視覺對象檢測的未來研究。

1、Introduction

在計算機視覺領域,有幾個基本的視覺識別問題:圖像分類[1]、目標檢測和實例分割[2,3]和語義分割[4](見圖1)。特別是,圖像分類(圖1.1(a))旨在識別給定圖像中對象的語義類別。目標檢測不僅識別目標類別,而且通過邊界框預測每個目標的位置(圖1(b))。語義分割(圖1(c))旨在預測按像素分類的分類器,以將特定類別標籤分配給每個像素,從而提供對圖像更豐富的理解。然而,與目標檢測相比,語義分割並不能區分同一類別的多個目標。在目標檢測和語義分割的交叉點上有一個相對較新的研究,叫做“實例分割”(如圖1(d)所示),被用來區分不同的目標,並且爲每個目標分配一個獨立的像素水平的mask。實際上,實例分割可以看作是對象檢測的一種特殊設置,在這種情況下,不需要通過邊界框來定位對象,而是需要像素級的定位。在本次調查中,我們將重點回顧基於深度學習的目標檢測的主要研究成果。一個好的檢測算法應該對圖像的語義線索和空間信息有很強的理解力。事實上,目標檢測是許多計算機視覺應用的基本步驟,例如人臉識別[5,6,7]、行人檢測[8,9,10]、視頻分析[11,12]和徽標檢測[13,14,15]。
在這裏插入圖片描述
在早期階段,在深度學習時代之前,目標檢測的流程分爲三個步驟:i)建議生成;ii)特徵向量提取;iii)區域分類。在方案生成過程中,目標是搜索圖像中可能包含對象的位置。這些位置也稱爲感興趣區域(roi)。一個直觀的想法是用滑動窗口掃描整個圖像[16,17,18,19,20]。爲了獲取目標的多尺度和不同長寬比的信息,將輸入圖像調整爲不同的尺度,並使用多尺度窗口在這些圖像中滑動。在第二步中,在圖像的每個位置,從滑動窗口中獲取一個固定長度的特徵向量,以獲取覆蓋區域的判別語義信息。該特徵向量通常由SIFT(Scale Invariant feature Transform)[21]、Haar[22]、HOG(Gradients Histogram of Gradients)[19]或SURF(Speeded Up Robust Features)[23]等低級視覺描述符編碼,對尺度、光照和旋轉方差具有一定的魯棒性。最後,在第三步中,學習區域分類器將分類標籤分配給覆蓋區域。由於支持向量機(SVM)[24]在小規模訓練數據上具有良好的性能,所以通常在這裏使用。此外,在區域分類步驟中使用了bagging[25]、cascade learning[20]和adaboost[26]等分類技術,進一步提高了檢測精度。

傳統的目標檢測方法大多集中在仔細設計特徵描述子以獲得感興趣區域的嵌入。藉助於良好的特徵表示和健壯的區域分類器,Pascal VOC數據集[29]取得了令人印象深刻的結果[27,28]。值得注意的是,基於變形零件的機器(DPMs)[30]是一種突破性的檢測算法,在2007年、2008年和2009年的VOC挑戰中三次獲獎。DPMs學習和集成具有可變形損失的多部分模型,並使用潛在的支持向量機挖掘硬負樣本進行判別訓練。然而,在2008年至2012年期間,基於這些傳統方法的Pascal VOC的進展已逐漸增加,通過構建複雜的集成系統所獲得的收益很小。這說明了這些傳統探測器的侷限性。最突出的是,這些限制包括:(1)在方案生成過程中,生成了大量的方案,其中許多是多餘的;這導致分類過程中出現大量誤報。此外,窗口尺度是人工設計的,具有啓發性,不能很好地匹配對象;(ii)特徵描述子是基於低級視覺線索手工構建的[31,32,23],這使得在複雜的上下文中很難捕捉到有代表性的語義信息。(三)檢測管道的每一步都是單獨設計和優化的,無法得到整個系統的全局最優解。

在將深度卷積神經網絡(DCNN)應用於圖像分類[33,1]取得成功之後,基於深度學習技術的目標檢測也取得了顯著的進展[34,2]。新的基於深度學習的算法在性能上大大優於傳統的檢測算法。深卷積神經網絡是一種計算層次特徵的生物螺旋結構。Fukushima提出的neocognitron[35]是一個早期的嘗試,試圖建立這樣一個層次化和空間不變的圖像分類模型。然而,這種早期嘗試缺乏有效的監督學習優化技術。基於這個模型,Lecun等人。[36]通過反向傳播隨機梯度下降(SGD)優化了卷積神經網絡,在數字識別方面表現出了競爭性的性能。然而,在這之後,深度卷積神經網絡並沒有得到深入的研究,支持向量機變得更加突出。這是因爲深度學習具有一定的侷限性:(1)缺乏大規模的帶註釋的訓練數據,導致過度擬合;(2)計算資源有限;(3)與支持向量機相比,理論支持較弱。2009年,Jia等人。[37]收集了一個包含1.2M高分辨率圖像的大規模帶註釋圖像數據集ImageNet,使利用大規模訓練數據訓練深層模型成爲可能。隨着並行計算系統(如GPU集羣)上計算資源的發展,2012 krighevsky等人。[33]利用ImageNet數據集訓練了一個大型的深卷積模型,與其他方法相比,在大規模視覺識別挑戰(ILSVRC)方面有了顯著的改進。在DCNN成功應用於分類之後,深度學習技術很快被應用到其他視覺任務中,並且與傳統方法相比顯示出了良好的效果。

與傳統檢測器使用的手工描述子不同,深度卷積神經網絡從原始像素到高層語義信息生成層次化特徵表示,並從訓練數據中自動學習,在複雜的上下文中表現出更強的鑑別表達能力。此外,深卷積神經網絡由於其強大的學習能力,可以在較大的數據集上獲得更好的特徵表示,而傳統的視覺描述子的學習能力是固定的,當有更多的數據可用時無法提高。這些特性使得基於深度卷積神經網絡的目標檢測算法的設計成爲可能,該算法能夠以端到端的方式進行優化,具有更強的特徵表示能力。

目前,基於深度學習的目標檢測框架主要分爲兩大類:(i)兩級檢測器,如基於區域的CNN(R-CNN)[2]及其變體[38,34,39]和(ii)一級檢測器,如hasyolo[40]及其變體[41,42]。兩階段檢測器首先使用建議生成器生成稀疏的建議集並從每個建議中提取特徵,然後使用區域分類器預測建議區域的類別。一級檢測器不需要級聯區域分類步驟,直接對特徵地圖的每個位置上的目標進行分類預測。兩級檢測器通常可以獲得更好的檢測性能,並在公共基準上報告最新的結果,而一級檢測器則顯著提高了時間效率,對實時目標檢測具有更大的適用性。圖2還說明了2012年後基於深度學習的目標檢測技術的主要發展和里程碑。我們將涵蓋這些關鍵技術的基本思想,並在調查中對其進行系統的分析。

本次調查的目的是全面瞭解基於深度學習的目標檢測算法。圖3顯示了將在本調查中涵蓋的關鍵方法的分類。我們回顧了基於深度學習的目標檢測的各種貢獻,並將它們分爲三類:檢測組件、學習策略、應用和基準。對於檢測組件,我們首先介紹了兩種檢測設置:包圍盒級別(bbox級別)和像素遮罩級別(mask級別)定位。Bbox級別的算法需要通過矩形邊界框來定位對象,而mask級別的算法需要更精確的像素級遮罩來分割對象。接下來,我們總結了兩個檢測家族的代表性框架:兩階段檢測和一階段檢測。然後詳細介紹了各個檢測組件,包括主幹結構、方案生成和特徵學習。在學習策略方面,由於檢測器訓練的困難,本文首先強調了檢測學習策略的重要性,然後詳細介紹了訓練階段和測試階段的優化技術。最後,我們回顧了一些基於真實物體檢測的應用,包括人臉檢測、行人檢測、標誌檢測和視頻分析。我們還討論了這些檢測任務的公開可用和常用的基準和評估指標。最後,我們展示了近年來基於公共基準的通用檢測的最新結果。

我們希望我們的調查能爲研究者和實踐者提供一個及時的回顧,以進一步促進檢測系統的研究。論文的其餘部分安排如下:在第二節中,我們給出了目標檢測的標準問題集。探測器組件的詳細信息見第3節。第四節介紹了學習策略。第5節和第6節提供了實際應用和基準的檢測算法。通用檢測的最新結果列於第7節。最後,我們在第8節中總結並討論未來的方向。

2、 Problem Setting

在這一部分中,我們提出了基於深度學習的目標檢測的問題定義。目標檢測包括識別(如“目標分類”)和定位(如“位置迴歸”)任務。目標檢測器需要通過精確的定位和對每個目標實例正確的分類標籤預測,將特定目標類別的目標與圖像背景區分開來。預測邊界框或 pixel mask 來定位這些目標目標實例。

正式的說,假設給定包含N個目標的標註圖像 x1,x2,...,xNx_1,x_2,...,x_N,對於第 ii 個圖像 xix_i,其中 CC 類的目標有 MiM_i 個,標註如下:
在這裏插入圖片描述
其中,cji(cjiC)c_j^i(c_j^i \in C), 且 bjib_j^i 表示 xix_i 圖像中的第 jj 個目標,檢測器 ff 的參數是 θ\theta,對於xix_iyprediy_{pred}^iyiy_i 的形式相同:

在這裏插入圖片描述
最後,檢測器的 loss 函數如下:
在這裏插入圖片描述
其中,第二項是正則化項,具有權衡參數λ。不同的損耗函數,如softmax損耗[38]和焦距損耗[43]影響最終的檢測性能,我們將在第4節討論這些函數。

在評估時,使用一個稱爲對象和預測之間的交集超並(IoU)的度量來評估本地化的質量(此處省略索引i):
在這裏插入圖片描述
其中,bgtb_{gt} 代表真實的bbox或mask, IoU 閾值 Ω\Omega 用來確定預測的結果是否緊密的和真實目標重合(一般都會設 Ω=0.5\Omega=0.5)。對於目標檢測,具有正確類別和成功定位的預測結果被認爲是正的,其他的被認爲是負預測:
在這裏插入圖片描述
對於一般的目標檢測問題評估,使用C類上的平均精度(mAP)進行評估,並且在實際場景中,例如行人檢測,使用不同的評估指標,這將在第5節中討論。除了檢測精度外,推理速度也是評價目標檢測算法的一個重要指標。具體地說,如果我們想檢測視頻流中的對象(實時檢測),就必須有一個能夠快速處理這些信息的檢測器。因此,還根據每秒幀數(FPS)來評估檢測器效率,即每秒可以處理多少圖像。通常,一個可以達到20fps的推理速度的檢測器被認爲是一個實時檢測器。

3、Detection Components

在本節中,我們將介紹目標檢測的不同組件。一是目標檢測範式的選擇。我們首先介紹了兩種檢測設置的概念:bbox-level 和 mask-level 算法。然後,介紹了兩級檢測器和一級檢測器兩種主要的目標檢測模式。在這些範例下,檢測器可以使用各種深度學習主幹架構、建議生成器和特徵表示模塊。

3.1 Detection Settings

目標檢測有兩種設置:i)一般的目標檢測(bbox級定位)和 ii)實例分割(像素級或掩碼級定位)。V-anilla目標檢測已經得到了廣泛的研究,並被認爲是傳統的檢測設置,其目標是通過矩形包圍盒對目標進行定位。在一般的目標檢測算法中,只需要bbox標註,而在評價中,通過計算預測邊界盒與地面真實值之間的IoU來衡量性能。實例分割是一個相對較新的設置,是在傳統檢測設置的基礎上發展起來的。實例分割需要用像素級的掩模來分割每個對象,而不是用一個粗糙的矩形邊界框。由於更精確的像素級預測,實例分割對空間偏差更敏感,因此對空間信息的處理有更高的要求。實例分割的評價指標與bbox級檢測基本相同,只是IoU計算是在掩碼預測上進行的。雖然這兩個檢測設置略有不同,但後面介紹的主要組件大多可以由這兩個設置共享。

在這裏插入圖片描述

3.2 Detection Paradigms

目前最先進的深度學習目標檢測器主要分爲兩大類:兩級檢測器和一級檢測器。對於兩階段檢測器,在第一階段,生成稀疏的建議集;在第二階段,生成的建議的特徵向量由深卷積神經網絡編碼,然後進行對象類預測。一級檢測器沒有單獨的建議生成(或學習建議生成)階段。它們通常將圖像上的所有位置視爲潛在對象,並嘗試將每個感興趣的區域分類爲背景或目標對象。兩級檢測器通常在許多公共基準數據集上報告最新的結果。然而,就較低的推理速度而言,它們通常是不足的。一級檢測器比兩級檢測器速度更快,更適合於實時目標檢測應用,但性能相對較差。

3.2.1 Two-stage Detectors

兩階段檢測器將檢測任務分爲兩個階段:(i)建議生成;(ii)對這些建議進行預測。在建議生成階段,檢測器將嘗試識別圖像中可能是對象的區域。其思想是提出具有高召回率的區域,使得圖像中的所有對象至少屬於這些建議區域中的一個。在第二階段中,我們使用一個基於深度學習的模型,用正確的分類標籤對這些建議進行分類。區域可以是背景,也可以是預定義類標籤之一的對象。此外,模型可以改進建議生成器建議的原始本地化。接下來,我們回顧兩級探測器中一些最有影響力的工作。

RCNN:

R-CNN[2]是Girshick等人提出的一種開創性的兩級目標檢測器在2014年。與以往基於傳統檢測框架segdmp[44](Pascal VOC2010上具有40.4%的mAP)的最新檢測方法相比,RCNN顯著提高了檢測性能,獲得了53.7%的mAP。R-CNN的流程可以分爲三個部分:i)方案生成,ii)特徵提取和 iii)區域分類。對於每個圖像,R-CNN通過選擇性搜索生成一組稀疏的proposal(大約2000個建議)[45],該搜索旨在拒絕那些容易被識別爲背景區域的區域。然後,將每個方案裁剪成固定大小的區域,並通過深卷積神經網絡將其編碼成(例如4096維)特徵向量,然後使用one-vs-all支持向量機分類器。最後,利用提取的特徵作爲輸入,學習邊界盒迴歸器,使原始方案緊密地約束對象。與傳統的手工特徵描述子相比,深層神經網絡能夠生成層次特徵,並在不同層次上捕獲不同尺度的信息,最後產生魯棒性和區分性的特徵進行分類。利用傳遞學習的能力,R-CNN採用在ImageNet上預先訓練的卷積網絡的權值。爲檢測任務重新初始化最後一個完全連接層(FC層)。然後在預先訓練好的模型上對整個探測器進行微調。這種從Imagenet數據集傳遞知識的方式提供了顯著的性能提升。此外,R-CNN在訓練前拒絕大量容易被否定的內容,這有助於提高學習速度和減少誤報。

然而,R-CNN面臨着一些關鍵的缺點:i)每個方案的特徵都是由深卷積網絡分別提取的(即計算不共享),這導致了大量的重複計算。因此,R-CNN的訓練和測試非常耗時;ii)R-CNN的三個步驟(建議生成、特徵提取和區域分類)是獨立的組成部分,整個檢測框架不能以端到端的方式進行優化,難以獲得全局最優解;和iii)選擇性搜索依賴於低層次的視覺線索,因此難以在複雜的背景下產生高質量的建議。而且,它無法享受GPU加速帶來的好處。

SPPnet:

受到空間金字塔匹配(SPM)思想的啓發[46],He 等人提出了SPP網[47]來加速R-CNN以及學習更多的有區別的特徵。SPP網絡不需要裁剪建議區域,也不需要單獨輸入CNN模型,而是利用一個深卷積網絡從整個圖像中計算出特徵映射,並通過空間金字塔池(SPP)層在特徵映射上提取固定長度的特徵向量。SPP將特徵映射劃分爲 N×NN \times N 個網格,對於 NN 的多個值(從而允許在不同的尺度上獲取信息),並對網格的每個單元執行合用,以給出特徵向量。將從每個 N×NN \times N 網格獲得的特徵向量串聯起來,給出區域的表示。提取的特徵被輸入到區域支持向量機分類器和邊界盒迴歸器中。與RCNN相比,SPP層還可以在不同尺度和長寬比的圖像/區域上工作,而無需調整它們的大小。因此,它不會遭受信息丟失和不必要的幾何失真。

Faste RCNN:

與R-CNN相比,SPP網絡具有更好的結果和更快的推理速度。然而,SPP網絡的訓練仍然是多階段的,因此無法進行端到端的優化(需要額外的緩存來存儲提取的特徵)。此外,SPP層沒有向卷積核反向傳播梯度,因此在凍結SPP層之前,所有的參數都被凍結。這大大限制了深層骨幹架構的學習能力。Girshick等人。提出了一種多任務學習檢測器Fast R-CNN[38],解決了SPP網絡的這兩個侷限性。Fast R-CNN(類似於SPP-Net)還計算了整個圖像的特徵映射,提取了特徵映射上的定長區域特徵。與SPP網絡不同,Fast R-CNN使用ROI池層提取區域特徵。ROI池層是SPP的一個特例,它只需要一個尺度(即N×N網格只有一個N值)就可以將方案劃分成固定數量的分區,並將錯誤信號反向傳播到卷積核。特徵提取後,將特徵向量輸入到兩個兄弟輸出層(分類層(cls)和迴歸層(reg))之前的全連通層序列中。分類層負責生成C+1類(C類加上一個背景類)上的softmax概率,而回歸層則編碼4個實值參數來優化邊界框。在快速RCNN中,特徵提取、區域分類和邊界盒迴歸步驟都可以端到端優化,而不需要額外的緩存空間來存儲特徵(與SPP網絡不同)。Fast R-CNN比R-CNN和SPP網具有更好的檢測精度,並且具有更好的訓練和推理速度。

儘管在學習檢測器方面取得了進展,但建議生成步驟仍然依賴於傳統的方法,如選擇性搜索[45]或邊緣框[48],這些方法基於低級視覺線索,無法以數據驅動的方式學習。爲了解決這個問題,基於一個新的提議生成器:區域提議網絡(RPN),開發了更快的R-CNN[34]。這個建議生成器可以通過監督學習方法來學習。RPN是一個完全卷積的網絡,它獲取任意大小的圖像,並在特徵地圖的每個位置生成一組目標建議。該網絡利用一個n×n滑動窗口在特徵圖上滑動,併爲每個位置生成一個特徵向量。然後將特徵向量輸入到兩個兄弟輸出分支:對象分類層(分類方案是否爲對象)和邊界盒迴歸層。然後將這些結果輸入到最後一層,用於實際的對象分類和邊界框定位。RPN可以嵌入到 Faster R-CNN中,從而根據訓練數據對整個框架進行端到端的優化。通過這種方式,RPN能夠以數據驅動的方式生成方案,並且能夠享受深度骨幹網的區分能力。更快的R-CNN能夠在GPU上以5FPS的速度進行預測,並在許多公共基準數據集(如Pascal VOC 2007、2012和mscoc)上取得了最新的結果。目前,有大量基於更快R-CNN的檢測器變體用於不同用途 [49,39,50,51]

R-FCN:

Faster R-CNN計算出輸入圖像的特徵圖,並在特徵圖上提取區域特徵,實現了跨區域的特徵提取計算。然而,在區域分類步驟中,計算並不共享,其中每個特徵向量仍然需要分別通過一系列FC層。這樣的額外計算可能非常大,因爲每個圖像可能有數百個建議。簡單地刪除完全連接的層將導致檢測性能的急劇下降,因爲深層網絡將減少建議的空間信息。Dai等人。[52]提出的基於區域的全卷積網絡(R-FCN)在區域分類步驟中分擔了計算代價。R-FCN生成一個位置敏感的評分圖,對不同類別的相對位置信息進行編碼,並利用位置敏感的ROI池層(PSROI池)對目標區域的每個相對位置進行編碼,提取空間敏感的區域特徵。所提取的特徵向量保持了空間信息,因此與沒有區域全連通層操作的快速RCNN相比,檢測器取得了競爭性的結果。

FPN:

Faster R-CNN的另一個問題是它使用了一個深層特徵圖來進行最終預測。這使得在不同尺度上檢測物體變得困難。特別是,很難發現小物體。在DCNN特徵表示中,深層特徵語義強而空間弱,淺層特徵語義弱而空間強。Lin等人。[39]利用了這一特性,提出了一種特徵金字塔網絡(FPN),該網絡將深層特徵和淺層特徵結合起來,使得可以在不同尺度的特徵圖中進行目標檢測。其主要思想是利用深層豐富的語義信息來增強空間上的強淺層特徵。FPN在多尺度目標檢測方面取得了重大進展,並在視頻檢測[53,54]和人體姿態識別[55,56]等領域得到了廣泛應用。

Mask RCNN:

大多數實例分割算法都是從普通的目標檢測算法擴展而來的。早期的方法[57,58,59]通常生成分段建議,然後是用於分段分類的快速RCNN。後來,戴等人。[59]提出了一個多階段的算法稱爲“MNC”,它將整個檢測框架分爲多個階段,並從學習到的包圍盒方案中預測分割掩模,然後由區域分類器進行分類。這些早期工作在多個階段進行bbox和mask預測。爲了使整個過程更加靈活,他等。[3] 提出了一種掩模R-CNN算法,該算法基於該算法並行預測包圍盒和分割掩模,並報告了最新的結果。基於Mask R-CNN,Huang等人。[60]提出了一個掩模質量感知框架,稱爲掩模評分R-CNN,該框架學習預測掩模的質量,並校正掩模質量與掩模置信度之間的偏差。

圖4概述了幾種典型的兩級檢測器的檢測框架。

在這裏插入圖片描述

3.2.2 One-stage Detectors

不同於將檢測管道分成兩部分的兩階段檢測算法:建議生成和區域分類;一階段檢測器沒有單獨的建議生成階段(或學習建議生成)。它們通常將圖像上的所有位置視爲潛在對象,並嘗試將每個感興趣的區域分類爲背景或目標對象。

OverFeat:

Sermanet等人開發了一種基於深度學習的早期成功的單階段檢測器。[61]命名爲OverFeat。OverFeat通過將DCNN分類器轉換爲完全卷積的目標檢測器來執行目標檢測。目標檢測可以看作是一個“多區域分類”問題,因此通過將最後的FC層看作1x1卷積層來允許任意輸入,從而將原始分類器擴展爲檢測器。分類網絡在輸入的每個區域輸出一個預測網格,以指示對象的存在。在對目標進行識別後,學習邊界盒迴歸算法,根據分類器相同的DCNN特徵對預測區域進行細化。爲了檢測多尺度目標,將輸入圖像調整爲多個尺度,並將其送入網絡。最後,所有尺度的預測被合併在一起。OverFeat通過使用卷積層共享重疊區域的計算,與RCNN相比顯示出顯著的速度強度,並且只需要通過網絡的一次向前傳遞。然而,分類器和迴歸器的訓練是分開的,沒有進行聯合優化。

YOLO:

之後,Redmon等人[40]開發了一種叫做YOLO的實時檢測器(You Only Look Once)。YOLO將目標檢測視爲一個迴歸問題,並將整個圖像空間分割爲固定數量的網格單元(例如,使用7×7網格)。每個 cell 都被認爲是檢測一個或多個物體存在的建議。在最初的實現中,每個 cell 被認爲包含兩個對象的中心。對每個單元進行預測,包括以下信息:該位置是否有對象、邊界框座標和大小(寬度和高度)以及對象的類別。整個框架是一個單一的網絡,它省略了建議生成步驟,可以端到端優化。基於精心設計的輕量級架構,YOLO可以以45 FPS的速度進行預測,使用更簡化的主幹網可以達到155 FPS。然而,YOLO面臨着一些挑戰:i)它在給定位置只能檢測到兩個對象,這使得很難檢測到小對象和擁擠的對象[40]。ii)只有最後一個特徵圖用於預測,不適合多尺度、多縱橫比的目標預測。

SSD:

2016年,Liu等人。針對YOLO的侷限性,提出了另一種一階段檢測器 SSD [42]。SSD仍然將圖像分割成網格單元,但在每個網格單元中,會生成一組具有多個尺度和縱橫比的 anchor,來離散化邊界框的輸出空間(與YOLO中採用的固定網格單元預測不同)。每一個 anchor 都由迴歸器學習到的4個偏移量進行優化,並由分類器分配(C+1)分類概率。此外,SSD在多個特徵圖上對目標進行預測,每個特徵圖都負責根據目標的接收場來檢測一定尺度的目標。爲了檢測大的目標並增加接收場,在原有的骨幹結構中加入了一些額外的卷積特徵映射。通過端到端的訓練方案,在所有預測圖上用定位損失和分類損失的加權和對整個網絡進行優化。最終的預測是通過合併來自不同特徵映射的所有檢測結果來實現的。爲了避免大量的 negetive proposal 支配訓練梯度,採用硬負挖掘對檢測器進行訓練。爲了提高檢測精度,還採用了密集的數據增強。SSD與 Faster R-CNN檢測精度相當,但具有實時推理能力。

RetinaNet:

在一階段檢測器中,由於沒有對 easy negative 樣本過濾,故前景與背景之間的類不平衡是一個嚴重的問題。Lin等人[43]提出了一種一階段檢測器 RetinaNet,以更靈活的方式解決了類不平衡問題。RetinaNet使用的是 focal loss 來抑制那些易於檢測的負樣本的梯度,而不是簡單地丟棄它們。此外,他們還使用特徵金字塔網絡在不同級別的特徵地圖上檢測多尺度對象。他們提出的 focal loss 大幅度優於簡單的硬負挖掘策略。

YOLOv2:

Redmon等人提出了一種改進的YOLO版本YOLOv2[41],它顯著提高了檢測性能,但仍然保持了實時推理速度。YOLOv2採用了一種更強大的深卷積骨幹結構,該結構通過對來自ImageNet的高分辨率圖像進行預訓練(從224×224到448×448),因此所學習的權重對捕獲細粒度信息更敏感。此外,受SSD中使用的 anchor 策略的啓發,YOLOv2通過對訓練數據進行k均值聚類(而不是手動設置)定義了更好的 anchor 優先級。這有助於減少本定位的優化困難。最後,結合批量規範化層[62]和多尺度訓練技術,YOLOv2獲得了當時最先進的檢測結果。

CornetNet:

以前的方法需要人工設計 anchor 來訓練檢測器。後來開發了一系列無錨物體檢測器,其目標是預測包圍盒的關鍵點,而不是試圖將物體與錨匹配。Law和Deng提出了一種新的無錨框架CornerNet[63],它將目標檢測爲一對角。在特徵映射的每個位置,預測了類熱圖、對嵌入和角偏移。類熱圖計算角點的概率,角點偏移用於迴歸角點位置。對嵌入用於將屬於同一對象的一對角分組。CornerNet在不依賴手工設計的錨來匹配對象的情況下,對MSCOCO數據集取得了顯著的改進。後來出現了其他幾種基於關鍵點檢測的單級檢測器[64,65]。

圖5概述了幾種具有代表性的單級檢測器的不同檢測框架。

在這裏插入圖片描述

3.3 Backbone

R-CNN[2]表明,在大規模圖像分類問題中,採用預先訓練好的模型的卷積權值,可以爲訓練檢測器提供更豐富的語義信息,提高檢測性能。在後來的幾年中,這種方法已經成爲大多數目標檢測器的默認策略。在本節中,我們將首先簡要介紹深度卷積神經網絡的基本概念,然後回顧一些廣泛應用於檢測的結構。

3.3.1 Basic Architecture of a CNN

深卷積神經網絡(DCNN)是一種典型的深度神經網絡,在視覺理解方面已經被證明是非常有效的[36,33]。深卷積神經網絡通常由卷積層、pooling層、非線性激活層和全連接層(FC層)組成。卷積層接收圖像輸入,並利用卷積n×n kernels生成特徵映射。

生成的特徵圖可以看作是一個多通道圖像,每個通道代表不同的圖像信息。特徵圖中的每個像素(命名神經元)都與前一個圖中的一小部分相鄰神經元相連,稱爲感受野。生成特徵映射後,應用非線性激活層。pooling 層用於總結感受野中的信號,擴大感受野並降低計算成本。

將一系列卷積層、pooling 層和非線性激活層相結合,建立了深卷積神經網絡。整個網絡可以通過基於梯度的優化方法(隨機梯度下降[66]、Adam[67]等)通過定義的損失函數進行優化。典型的卷積神經網絡是AlexNet[33],它包含五個卷積層、三個最大池層和三個完全連接層。每個卷積層後面跟着ReLU[68]非線性激活層。

3.3.2 CNN Backbone for Object Detection

在本節中,我們將回顧一些在具有最新結果的目標檢測任務中廣泛使用的架構,如VGG16[34,38]、ResNet[1,52]、ResNeXt[43]和 Hourglass [63]。

VGG16[69] 很大程度上是基於 AlexNet的,VGG16由五組卷積層和三個FC層組成。前兩組有兩個卷積層,後三組有三個卷積層。在每個組之間,應用最大池層來減少空間維度。VGG16表明,通過疊加捲積層來增加網絡的深度可以提高模型的表達能力,從而獲得更好的性能。然而,通過簡單地疊加捲積層將模型深度增加到20層會導致SGD的優化挑戰。即使在訓練階段,成績也明顯下降,低於較淺的模型。根據這一觀察,他等。[1] 提出的ResNet通過引入快捷連接來降低優化難度。在這裏,一個層可以跳過非線性轉換,直接按原樣將值傳遞給下一層(從而給我們一個隱式標識層)。具體如下:

在這裏插入圖片描述
其餘簡略。。。

3.4 Proposal Generation

region proposal 在目標檢測框架中起着非常重要的作用。其生成一組矩形邊框,這些邊框可能是對象。然後,將這些 proposal 用於分類和定位。我們將提案生成方法分爲四類:傳統的計算機視覺方法、基於錨的監督學習方法、基於關鍵點的方法和其他方法。值得注意的是,一級檢測器和兩級檢測器都會生成proposal,主要區別在於兩級檢測器只生成前景或背景信息稀疏的建議集,而一級檢測器則將圖像中的每個區域視爲潛在建議,並相應地估計每個位置處潛在對象的類和邊界框座標。

3.4.1 Traditional Computer Vision Methods

3.4.2 Anchor-based Methods

一大類有監督的方案生成器是基於 anchor 的方法。它們基於預定義的錨生成 proposal。Ren等人提出了一種基於深度卷積特徵映射的區域建議網絡(RPN)[34]以有監督的方式生成建議。該網絡使用3×3卷積濾波器在整個特徵圖上滑動。對於每個位置,考慮不同大小和縱橫比的k個錨(或邊界框的初始估計)。這些大小和比率允許在整個圖像中以不同的比例匹配對象。在真值 box 的基礎上,將目標位置與最合適的錨進行匹配,得到錨估計的結果。從每個錨中提取256維特徵向量,並將其輸入到兩個兄弟分支分類層和迴歸層。分類分支負責建模對象得分,而回歸分支編碼四個實數值,從原始錨估計中優化邊界框的位置。根據真值,分類分支預測每個錨要麼是物體,要麼只是背景(見圖6)。後來,SSD[42]在RPN中採用了類似的錨定思想,使用多尺度錨來匹配對象。主要區別在於SSD將分類概率分配給每個錨方案,而RPN首先評估錨是前景還是背景,並在下一階段進行分類。

儘管性能很好,但錨是以啓發式的方式手動設計的,具有多個尺度和長寬比。這些設計選擇可能不是最優的,並且不同的數據集需要不同的錨設計策略。爲了改進錨的設計選擇,人們做了許多努力。Zhang等人。提出了一種基於SSD的單鏡頭變尺度人臉檢測算法(S3FD)[87],該算法採用精心設計的錨來匹配目標。根據不同特徵圖的有效感受野[88],設計了不同的錨定先驗。朱等人。[89]介紹了一種通過增大輸入圖像大小和減小錨定步長來匹配小目標的錨定設計方法。謝等人。提出了基於RPN的錨箱尺寸分解區域建議網絡(DeRPN)[90]。DeRPN使用錨定字符串機制獨立地匹配對象的寬度和高度。這有助於匹配具有大尺度方差的對象,並減少搜索空間。

在這裏插入圖片描述
Ghodrati等人。開發了DeepProposals[91],預測了低分辨率深層特徵圖上的方案。然後將它們投影回高分辨率的淺層特徵地圖上,在那裏進一步細化。雷蒙等人。[41]利用k-means聚類方法從訓練數據中學習先驗知識,設計錨定先驗。後來,張等人。引入了RefineDet [92],它分兩步對手動定義的錨進行優化。在第一步中,RefineDet學習了一組基於原始手工設計的錨定的定位偏移,這些錨定通過學習的偏移進行了優化。在第二階段中,從第一步開始,基於改進後的錨,學習一組新的定位偏移,以進一步改進。這種級聯優化框架以數據驅動的方式顯著提高了錨定質量和最終預測精度。蔡等人。提出的Cascade R-CNN[49]採用了類似於RefineDet的思想,通過級聯的方式對提案進行優化。Yang等人。[93]將錨建模爲由定製錨計算的神經網絡實現的函數。他們的方法MetaAnchor與其他手工定義的方法相比有了全面的改進,但是定製的錨仍然是手工設計的。

3.4.3 Keypoints-based Methods

另一種基於關鍵點檢測的方案生成方法,可分爲兩大類:基於角點的方法和基於中心點的方法。基於角點的方法通過合併從特徵地圖中學習到的角點對來預測邊界框。Denet[94]以概率的方式重新定義了目標檢測問題。對於特徵圖上的每一點,Denet建立了四種角點類型(左上角、右上角、左下角、右下角)的分佈模型,並在對象的每個角點上應用樸素貝葉斯分類器來估計包圍盒的置信度。這種基於角點的算法消除了錨的設計,成爲產生高質量建議的更有效方法。後來在Denet的基礎上,Law和Deng提出了CornerNet[63],它直接模擬了角點上的分類信息。CornerNet利用新的特徵嵌入方法和角池層對左上角和右下角的信息進行建模,以正確匹配屬於同一對象的關鍵點,在公共基準上獲得最新的結果。對於基於中心的方法,在特徵地圖的每個位置上預測目標成爲中心的概率,在不使用任何錨定先驗的情況下直接回歸高度和寬度。朱等人。[95]提出了一種特徵選擇無錨(FSAF)框架,它可以插入到具有FPN結構的一級探測器中。

在FSAF中,在線特徵選擇塊用於訓練附加在特徵金字塔的每一層中的基於中心的多級分支。在訓練過程中,FSAF動態地將每個對象分配到最合適的特徵級別,以訓練基於中心的分支。與FSAF類似,Zhou等人。提出了一種新的基於中心的框架[64],該框架基於一個沒有FPN結構的沙漏網絡[63]。此外,他們將基於中心的方法應用於更高層次的問題,如三維檢測和人體姿態識別,均取得了最新的成果。Duan等人。[65]提出了基於中心的方法和基於角點的方法相結合的中心網。中心網首先通過角點對預測邊界盒,然後預測初始預測的中心概率以剔除容易出現的負性。與基線相比,CenterNet得到了顯著的改進。這些無錨方法是一個很有前途的研究方向。

3.5 Feature Representation Learning

特徵表示學習是整個檢測框架的重要組成部分。目標對象處於複雜的環境中,其尺度和縱橫比變化較大。爲了獲得良好的檢測性能,需要訓練具有魯棒性和鑑別能力的目標特徵嵌入。這一部分,我們介紹了目標檢測的特徵表示學習策略。具體來說,我們確定了三個類別:多尺度特徵學習、上下文推理和可變形特徵學習。

3.5.1 Multi-scale Feature Learning

典型的基於深卷積網絡的目標檢測算法,如Fast R-CNN[38]和Faster RCNN[34]僅使用單層特徵映射來檢測目標。然而,在一個單一的特徵地圖上,在大範圍的尺度和縱橫比範圍內檢測目標是相當困難的。深度卷積網絡學習不同層次的層次特徵,捕捉不同尺度的信息。具體來說,具有豐富空間信息的淺層特徵具有更高的分辨率和更小的接收場,因此更適合於檢測小目標,而深層語義豐富的特徵對光照、平移更爲魯棒,具有更大的接收場(但分辨率較粗),更適合於探測大型物體。在檢測小目標時,需要高分辨率的表示,而這些對象的表示在深層特徵中甚至可能不可用,使得小目標檢測變得困難。一些技術,如擴張/萎縮卷積[97,52]被提出以避免下采樣,並使用高分辨率信息甚至在更深的層。同時,在沒有足夠大的接收場的情況下,在淺層探測大目標也是非最優的。因此,處理特徵尺度問題已成爲目標檢測中的一個基礎研究問題。多尺度特徵學習問題主要有四種研究範式:圖像金字塔、預測金字塔、綜合特徵和特徵金字塔。這些在圖7中簡要說明。
在這裏插入圖片描述

Image Pyramid:

一個直觀的想法是將輸入圖像調整爲多個不同的尺度(圖像金字塔),並訓練多個檢測器,每個檢測器負責一定的尺度範圍[98、99、100、101]。在測試過程中,將圖像調整到不同的尺度,然後使用多個檢測器,併合並檢測結果。這可能在計算上很昂貴。Liu等人。[101]首先學習了一個輕量級的 scale-aware 網絡來調整圖像的大小,使所有對象都處於類似的比例。接着學習了一個單尺度檢測器。辛格等人。[98]進行了小目標檢測的綜合實驗。他們認爲,學習一個單尺度魯棒檢測器來處理所有尺度對象比學習具有圖像金字塔的尺度相關檢測器要困難得多。在他們的工作中,他們提出了一種新的用於圖像金字塔的框架尺度歸一化(SNIP)[98],它訓練多個尺度相關的檢測器,每個檢測器負責特定的尺度對象。

在這裏插入圖片描述

Integrated Features:

另一種方法是通過組合多層特徵並基於新構建的地圖進行最終預測來構建單一特徵地圖[102、51、50、103、104、105]。通過融合空間豐富的淺層特徵和語義豐富的深層特徵

Prediction Pyramid:

新構造的特徵包含了豐富的信息,可以檢測出不同尺度的目標。這些組合通常通過使用 skip-connection 來實現[1]。由於不同層次的特徵範數具有很高的方差,因此需要進行特徵規範化。貝爾等人提出了內-外網絡(ION)[51],它通過ROI池從不同層裁剪區域特徵[38],並結合這些多尺度區域特徵進行最終預測。孔等人提出的HyperNet[50]採用了與 IoN 類似的思想。他們通過集成中間層和淺層特徵來生成建議和檢測對象,精心設計了高分辨率超特徵地圖。反捲積層用於向上採樣深層特徵圖,批標準化層用於對輸入斑點進行標準化。構建的超特徵映射還可以隱式地編碼來自不同層的上下文信息。Wang等人受到細粒度分類算法的啓發,這些算法集成了高階表示,而不是利用對象建議的簡單一階表示。提出了一種新的多尺度位置感知核表示(MLKP)[103]框架,該框架能夠有效地捕獲提議特徵的高階統計量,並生成更具區分性的特徵表示。組合特徵表示更具描述性,爲分類和定位提供了語義和空間信息。

3.5.2

其餘簡略

4、Learning Strategy

與圖像分類相比,目標檢測需要同時優化定位和分類任務,這使得訓練魯棒檢測器變得更加困難。此外,還需要解決一些問題,如不平衡採樣、定位、加速等,因此需要開發創新的學習策略,以培養有效和高效的檢測器。在本節中,我們將回顧一些用於對象檢測的學習策略。

4.1 Training Stage

在本節中,我們將回顧訓練對象檢測器的學習策略。具體討論了數據增強、不平衡採樣、級聯學習、局部求精等學習策略。

4.1.1 Data Augmentations

數據增強對於幾乎所有的深度學習方法都是很重要的,因爲它們經常需要大量的數據,而更多的訓練數據會帶來更好的結果。在目標檢測中,爲了增加訓練數據並生成具有多種視覺特性的訓練塊,訓練圖像的水平翻轉被用於訓練速度更快的R-CNN檢測器[38]。在單級檢測器中使用更密集的數據增強策略,包括旋轉、隨機作物、擴展和顏色變化[42、106、146]。這種數據增強策略在檢測精度上有了顯著的提高。

4.1.2 Imbalance Sampling

在目標檢測中,正負樣本的不平衡是一個關鍵問題。也就是說,大多數被估計爲 proposal 的感興趣區域實際上只是背景圖像。它們很少是 positive instance(或對象)。這會導致訓練檢測器時出現不平衡的問題。具體來說,出現了兩個需要解決的問題:類別不均衡和檢測難度不均衡。類別不平衡問題是大多數候選方案屬於背景,只有少數方案包含對象。這就導致了背景 proposal 在訓練過程中主導了梯度。難度不平衡與第一個問題密切相關,即由於類別不平衡,使得大多數背景proposal 容易分類,而對象更難分類。爲了解決類別不平衡問題,人們制定了各種策略。兩級檢測器,如R-CNN和Fast R-CNN將首先拒絕大多數陰性樣本,並保留2000個進一步分類的建議。在Fast R-CNN[38]中,從這2k個方案中隨機抽取負樣本,並將每小批中的正、負比例固定爲1:3,以進一步減少類別失衡的不利影響。隨機抽樣可以解決類別不平衡問題,但不能充分利用來自negative proposal 的信息。一些negative proposal 可能包含關於圖像的豐富上下文信息,而一些難例可能有助於提高檢測精度。爲了解決這個問題,劉等人[42]提出了硬負挖掘策略,該策略固定前景和背景比率,但採用了困難的負例來更新模型。具體來說,選擇分類損失較大的負例進行訓練。

爲了解決困難不平衡,大多數抽樣策略都是基於精心設計的損失函數。對於obejct檢測,在C+1類別(C目標類別加上一個背景類別)上學習多類分類器。假設區域被標記爲基本真值類u,p是C+1類上的輸出離散概率分佈(p={p0,…,pC})。損失函數由下式給出:
在這裏插入圖片描述
Lin等人。提出了一種新的抑制易採樣信號的 focla loss[43]。他們沒有丟棄所有簡單的樣本,而是給每個樣本分配了一個重要權重w.r.t,其損失值爲:

在這裏插入圖片描述
其中 α 和 γ 是控制權重的參數。易分類樣本的梯度信號被抑制,使得訓練過程更加註重難例(hard proposals)。Li等人。[147] 採用了類似 focal loss 的思想,提出了一種新的梯度協調機制(GHM)。新提出的 GHM 不僅抑制了易分類的 proposal,而且避免了異常值的負面影響。Shrivastava等人。[148]提出了一種在線難例挖掘策略,該策略基於與Liu等人的SSD[42]相似的原理,自動選擇 hard proposal 進行訓練。與Liu等人不同,在線難例挖掘只考慮了難度信息,而忽略了類別信息,這意味着在每一個小批量中前景與背景的比例是不固定的。他們認爲困難樣本在目標檢測任務中比類不平衡更重要。

4.1.3 Localization Refinement

目標檢測器必須爲每個目標提供一個嚴密的定位預測(bbox或mask)。爲了做到這一點,許多人努力完善初步的方案預測,以改進定位。精確的定位是一項挑戰,因爲預測結果通常集中在對象最具辨別力的部分,而不一定是包含對象的區域。在一些情況下,要求檢測算法進行高質量的預測(高IoU閾值),如圖9所示,以說明在高IoU閾值狀態下檢測器可能如何失敗。定位的改進的一般方法是生成高質量的建議(見第3.4節)。在本節中,我們將回顧一些其他的定位精細化的方法。在R-CNN框架中,學習L-2輔助包圍盒迴歸函數來細化定位,在快速R-CNN中,通過端到端的訓練學習平滑的L1迴歸函數,如下所示:

在這裏插入圖片描述
其中,每個類別的預測的偏移量由每個目標類的 tc=txctyctwcthctc=(t^c_ x,t^c_ y,t^c_ w,t^c_ h)給出,vv 表示對象邊界框的真實值(v=vxvyvwvhv=(v_x,v_y,v_w,v_h))。x、 y、w、h分別表示邊框中心、寬度和高度。
在這裏插入圖片描述
除了默認的 定位 優化之外,一些方法還學習輔助模型以進一步優化定位。Gidaris等人[131]引入了一種迭代包圍盒迴歸方法,其中R-CNN被用於改進學習預測。在這裏,這些預測被多次修正。Gidaris等人[149]提出的 LocNet 模型模擬了每個包圍盒的分佈,並改進了學習到的預測。這兩種方法都需要在檢測管道中使用單獨的組件,並防止聯合優化。

4.2 Testing stage

目標檢測算法產生一組密集的預測,由於大量重複,這些預測不能直接用於評估。此外,還需要一些其他的學習策略來進一步提升檢測精度。這些策略提高了預測質量或加快了推理速度。在本節中,我們將在測試階段介紹這些策略,包括重複刪除、模型加速和其他有效的技術。

4.2.1 Duplicate Removal

在這裏插入圖片描述
非最大抑制(NMS)是目標檢測的一個組成部分,用於消除重複的假陽性預測(見圖10)。目標檢測算法使用多個重複的預測進行密集的預測。對於生成密集候選方案集的一階段檢測算法,如SSD[42]或DSSD(反褶積單次激發檢測器)[112],圍繞同一對象的方案可能具有相似的置信分數,從而導致誤報。對於生成稀疏建議集的兩階段檢測算法,邊界盒迴歸器會將這些建議拉近同一對象,從而導致相同的問題。重複預測被認爲是誤報,在評估時將受到懲罰,因此需要NMS來刪除這些重複預測。具體來說,對於每個類別,預測框根據置信度得分進行排序,並選擇得分最高的框。此框表示爲M。然後計算具有M的其他框的IoU,如果IoU值大於預定義的閾值Ω測試,則將刪除這些框。對所有剩餘的預測重複此過程。更正式地說,框B與M大於 ΩtestΩ_{test} 重疊的置信度得分將設置爲零:

在這裏插入圖片描述
然而,如果一個對象僅僅位於 ΩtestΩ_{test} 內,NMS將導致丟失預測,這種情況在密集對象檢測中非常常見。Navaneeth等人[165]引入了一種新的算法 soft-NMS 來解決這個問題。soft-NMS 沒有直接消除預測B,而是將 B 的置信度利用連續函數 F 的形式(F是線性函數或高斯函數)進行衰減,
在這裏插入圖片描述
soft-NMS 避免了對聚集對象的預測,並且在許多公共數據集上都有改進。Hosong等人[166]介紹了一種網絡架構,該架構設計用於執行基於置信度得分和邊界框的NMS,該架構在監督的方式下與檢測器訓練分開進行優化。他們認爲,重複預測的原因是探測器故意鼓勵每個物體進行多次高分檢測,而不是獎勵一次高分。基於此,他們設計了一個網絡,其動機有兩個:(i)損失懲罰雙重檢測,以推動檢測器準確預測每個對象的一次精確檢測;(ii)聯合處理附近的檢測,以向檢測器提供一個對象是否被多次檢測的信息。新提出的模型沒有放棄檢測,而是將NMS重新定義爲一個重新評分的任務,試圖降低覆蓋已檢測對象的檢測得分。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章