日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 目标检测 >内容正文

目标检测

【目标检测_概述】recent advances in deep learning for object detection_2019

發布時間:2023/12/15 目标检测 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【目标检测_概述】recent advances in deep learning for object detection_2019 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • Abstract
    • 1、Introduction
    • 2、 Problem Setting
    • 3、Detection Components
      • 3.1 Detection Settings
      • 3.2 Detection Paradigms
        • 3.2.1 Two-stage Detectors
        • 3.2.2 One-stage Detectors
      • 3.3 Backbone
        • 3.3.1 Basic Architecture of a CNN
        • 3.3.2 CNN Backbone for Object Detection
      • 3.4 Proposal Generation
        • 3.4.1 Traditional Computer Vision Methods
        • 3.4.2 Anchor-based Methods
        • 3.4.3 Keypoints-based Methods
      • 3.5 Feature Representation Learning
        • 3.5.1 Multi-scale Feature Learning
        • 3.5.2
    • 4、Learning Strategy
      • 4.1 Training Stage
        • 4.1.1 Data Augmentations
        • 4.1.2 Imbalance Sampling
        • 4.1.3 Localization Refinement
      • 4.2 Testing stage
        • 4.2.1 Duplicate Removal

文章鏈接: 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_Nx1?,x2?,...,xN?,對于第 iii 個圖像 xix_ixi?,其中 CCC 類的目標有 MiM_iMi? 個,標注如下:

其中,cji(cji∈C)c_j^i(c_j^i \in C)cji?(cji?C), 且 bjib_j^ibji? 表示 xix_ixi? 圖像中的第 jjj 個目標,檢測器 fff 的參數是 θ\thetaθ,對于xix_ixi?yprediy_{pred}^iypredi?yiy_iyi? 的形式相同:


最后,檢測器的 loss 函數如下:

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

在評估時,使用一個稱為對象和預測之間的交集超并(IoU)的度量來評估本地化的質量(此處省略索引i):

其中,bgtb_{gt}bgt? 代表真實的bbox或mask, IoU 閾值 Ω\OmegaΩ 用來確定預測的結果是否緊密的和真實目標重合(一般都會設 Ω=0.5\Omega=0.5Ω=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 NN×N 個網格,對于 NNN 的多個值(從而允許在不同的尺度上獲取信息),并對網格的每個單元執行合用,以給出特征向量。將從每個 N×NN \times NN×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=(txc,tyc,twc,thc)tc=(t^c_ x,t^c_ y,t^c_ w,t^c_ h)tc=txc?tyc?twc?thc?給出,vvv 表示對象邊界框的真實值(v=(vx,vy,vw,vh)v=(v_x,v_y,v_w,v_h)v=vx?vy?vw?vh?)。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Ω_{test}Ωtest? 內,NMS將導致丟失預測,這種情況在密集對象檢測中非常常見。Navaneeth等人[165]引入了一種新的算法 soft-NMS 來解決這個問題。soft-NMS 沒有直接消除預測B,而是將 B 的置信度利用連續函數 F 的形式(F是線性函數或高斯函數)進行衰減,

soft-NMS 避免了對聚集對象的預測,并且在許多公共數據集上都有改進。Hosong等人[166]介紹了一種網絡架構,該架構設計用于執行基于置信度得分和邊界框的NMS,該架構在監督的方式下與檢測器訓練分開進行優化。他們認為,重復預測的原因是探測器故意鼓勵每個物體進行多次高分檢測,而不是獎勵一次高分。基于此,他們設計了一個網絡,其動機有兩個:(i)損失懲罰雙重檢測,以推動檢測器準確預測每個對象的一次精確檢測;(ii)聯合處理附近的檢測,以向檢測器提供一個對象是否被多次檢測的信息。新提出的模型沒有放棄檢測,而是將NMS重新定義為一個重新評分的任務,試圖降低覆蓋已檢測對象的檢測得分。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的【目标检测_概述】recent advances in deep learning for object detection_2019的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。