Object Detection in 20 Years: A Survey

  • 2019 年 10 月 7 日
  • 筆記

摘要

目標檢測作為電腦視覺中最基本、最具挑戰性的問題之一,近年來受到了廣泛的關注。它在過去二十年的發展可以說是電腦視覺歷史的縮影。如果我們把今天的物體檢測看作是深度學習力量下的一種技術美學,那麼讓時光倒流20年,我們將見證冷兵器時代的智慧。本文從目標檢測技術發展的角度,對近四分之一世紀(20世紀90年代至2019年)的400餘篇論文進行了廣泛的回顧。本文涵蓋了許多主題,包括歷史上的里程碑檢測器、檢測數據集、度量、檢測系統的基本構件、加速技術以及最新的檢測方法。本文還綜述了行人檢測、人臉檢測、文本檢測等重要的檢測應用,並對其面臨的挑戰以及近年來的技術進步進行了深入分析。

1、簡介

目標檢測是一項重要的電腦視覺任務,它處理在數字影像中檢測特定類(如人、動物或汽車)的視覺目標實例。目標檢測的目標是開發計算模型和技術,提供電腦視覺應用程式所需的最基本的資訊之一:什麼目標在哪裡?目標檢測作為電腦視覺的基本問題之一,是許多其他電腦視覺任務的基礎,如實例分割、影像字幕、目標跟蹤等。從應用程式的角度來看,目標檢測可以被分為兩個研究主題「一般目標檢測」和「特定場景下的目標檢測」,前一個旨在探索的方法檢測不同類型的目標在一個統一的框架來模擬人類的視覺和認知,後一個是指檢測特定的應用場景下,如行人檢測、人臉檢測、文本檢測等等。近年來,隨著深度學習技術的快速發展,為目標檢測注入了新的血液,取得了顯著的突破,將其推向了一個前所未有的研究熱點。目前,目標檢測已廣泛應用於自主駕駛、機器人視覺、影片監控等領域。圖1顯示了在過去的二十年中,與「目標檢測」相關的出版物數量的增長。

1、和相關綜述的不同

近年來,對一般目標檢測的研究進展進行了綜述。本文與上述綜述的主要區別總結如下:

1. A comprehensive review in the light of technical evolutions:本文廣泛回顧了目標檢測發展史上的400多篇論文,時間跨度超過25年(上世紀90年代至2019年)。以前的大多數綜述僅僅關注一個較短的歷史時期或一些特定的檢測任務,而沒有考慮它們整個生命周期中的技術演進。站在歷史的高速公路上,不僅有助於讀者建立一個完整的知識體系,而且有助於找到這個快速發展領域的未來方向。

2. An in-depth exploration of the key technologies and the recent state of the arts:經過多年的發展,最先進的目標檢測系統已經與「多尺度檢測」、「難負挖掘」、「邊界盒回歸」等大量技術相結合。然而,以前的評論缺乏基本的分析來幫助讀者理解這些複雜技術的本質,例如,「它們從哪裡來,它們是如何進化的?」「每種方法的優缺點是什麼?」本文針對上述問題對讀者進行了深入的分析。

3. A comprehensive analysis of detection speed up techniques:目標檢測加速演算法一直是一項關鍵而又具有挑戰性的任務。本文從多個層面對20多年來目標檢測歷史上的提速技術進行了廣泛的回顧,包括「檢測管道」(如級聯檢測、特徵圖共享計算)、「檢測主幹」(如網路壓縮、輕量級網路設計)、「數值計算」(如積分影像、矢量量化)等。以前的評論很少涉及這個主題。

2、目標檢測中的困難和挑戰

儘管人們總是問「在目標檢測中有哪些困難和挑戰?」,事實上,這個問題並不容易回答,甚至可能被過度概括。由於不同的檢測任務具有完全不同的目標和約束,它們的困難程度可能會有所不同。除了一些常見的挑戰等其他電腦視覺任務的目標在不同的視點,燈飾,和組內變異,挑戰目標檢測包括但不限於以下方面:目標旋轉和尺度變化(例如,小目標),準確的目標定位,密度和閉塞的目標檢測、加快檢測等。在第4和第5節中,我們將對這些主題進行更詳細的分析。本文的其餘部分組織如下。在第二部分中,我們回顧了20年來物體檢測的發展歷史。第三部分將介紹一些加速目標檢測的技術。第四部分總結了近三年來一些最先進的檢測方法。第五部分將回顧一些重要的檢測應用。第六部分對本文進行了總結,並對進一步的研究方向進行了分析。

2、20年間的目標檢測

在本節中,我們將從多個方面回顧目標檢測的歷史,包括里程碑檢測器、目標檢測數據集、度量和關鍵技術的發展。

2.1、目標檢測的指南

在過去的二十年中,人們普遍認為,目標檢測的發展大致經歷了兩個歷史時期:「傳統的目標檢測時期(2014年以前)」和「基於深度學習的檢測時期(2014年以後)」,如圖2所示。

2.1.1、里程碑:傳統的檢測器

如果我們把今天的物體檢測看作是深度學習力量下的一種技術美學,那麼回到20年前,我們將見證「冷兵器時代的智慧」。早期的目標檢測演算法大多是基於手工特徵構建的。由於當時缺乏有效的影像表示,人們別無選擇,只能設計複雜的特徵表示,以及各種加速技術來用盡有限的計算資源。

  • Viola Jones Detectors

18年前,P. Viola和M. Jones在沒有任何約束條件(如膚色分割)的情況下首次實現了人臉的實時檢測。該檢測器運行在700MHz奔騰III CPU上,在同等的檢測精度下,其速度是其他演算法的數十倍甚至數百倍。該檢測演算法後來被稱為「維奧拉-瓊斯(Viola-Jones, VJ)檢測器」,在此以作者的名字命名,以紀念他們的重大貢獻。VJ檢測器採用最直接的檢測方法,即,滑動窗口:查看影像中所有可能的位置和比例,看看是否有窗口包含人臉。雖然這似乎是一個非常簡單的過程,但它背後的計算遠遠超出了電腦當時的能力。VJ檢測器結合了「積分影像」、「特徵選擇」和「檢測級聯」三種重要技術,大大提高了檢測速度。

1)積分影像:積分影像是一種加速盒濾波或卷積過程的計算方法。與當時的其他目標檢測演算法一樣,在VJ檢測器中使用Haar小波作為影像的特徵表示。積分影像使得VJ檢測器中每個窗口的計算複雜度與其窗口大小無關。

2)特徵選擇:作者沒有使用一組人工選擇的Haar基濾波器,而是使用Adaboost演算法從一組巨大的隨機特徵池(約180k維)中選擇一組對人臉檢測最有幫助的小特徵。

3)檢測級聯:在VJ檢測器中引入多級檢測範式(又稱「檢測級聯」),通過減少背景窗口的計算量,增加對人臉目標的計算量,從而降低計算開銷。

  • HOG Detector

方向梯度直方圖(HOG)特徵描述符最初是由N. Dalal和B. Triggs在2005年提出的。HOG可以被認為是對尺度不變特徵變換和當時形狀上下文的重要改進。為了平衡特徵不變性(包括平移、尺度、光照等)和非線性(區分不同目標類別),將HOG描述符設計為在密集的均勻間隔單元網格上計算,並使用重疊局部對比度歸一化(在「塊」上)來提高精度。雖然HOG可以用來檢測各種目標類,但它的主要動機是行人檢測問題。為了檢測不同大小的目標,HOG檢測器在保持檢測窗口大小不變的情況下,對輸入影像進行多次重標。多年來,HOG檢測器一直是許多目標檢測器和各種電腦視覺應用的重要基礎。

  • Deformable Part-based Model (DPM)

DPM作為VOC-07、-08、-09檢測挑戰的優勝者,是傳統目標檢測方法的巔峰。DPM最初是由P. Felzenszwalb於2008年提出的,作為HOG檢測器的擴展,之後R. Girshick進行了各種改進。DPM遵循「分而治之」的檢測思想,訓練可以簡單地看作是學習一種正確的分解目標的方法,推理可以看作是對不同目標部件的檢測的集合。例如,檢測「汽車」的問題可以看作是檢測它的窗口、車身和車輪。這部分工作,即所謂的「明星模型」,是由P. Felzenszwalb等人完成的。後來,R. Girshick進一步將star模型擴展到「混合模型」,以處理更顯著變化下的現實世界中的物體。

一個典型的DPM檢測器由一個根過濾器和一些部分過濾器組成。該方法不需要手動指定零件濾波器的配置(如尺寸和位置),而是在DPM中開發了一種弱監督學習方法,所有零件濾波器的配置都可以作為潛在變數自動學習。R. Girshick將此過程進一步表示為多實例學習的一個特例,並應用了「難負挖掘」、「邊界盒回歸」、「上下文啟動」等重要技術來提高檢測精度(將在2.3節中介紹)。為了加快檢測速度,Girshick開發了一種技術,將檢測模型「編譯」成一個更快的模型,該模型實現了級聯結構,在不犧牲任何精度的情況下實現了超過10倍的加速度[14,38]。雖然目前的對象檢測器在檢測精度上已經遠遠超過了DPM,但其中很多仍然深受其有價值的見解的影響,如混合模型、硬負挖掘、邊界盒回歸等。2010年,P. Felzenszwalb和R. Girshick被PASCAL VOC授予「終身成就獎」。

2.1.2、里程碑:基於CNN的兩階段方法

隨著手工特性的性能趨於飽和,目標檢測在2010年之後達到了一個穩定的水平。R。Girshick說:「…在2010-2012年期間,進展緩慢,通過構建集成系統和使用成功方法的較小變體,取得了較小的進展。2012年,卷積神經網路在世界範圍內重生。由於深卷積網路能夠學習影像的魯棒性和高層次特徵表示,一個自然的問題是我們能否將其應用到目標檢測中?R. Girshick等人在2014年率先打破僵局,提出了具有CNN特徵的區域(RCNN)用於目標檢測。從那時起,目標檢測開始以前所未有的速度發展。在深度學習時代,目標檢測可以分為兩類:「兩階段檢測」和「一階段檢測」,前者將檢測框架為一個「由粗到精」的過程,而後者將檢測框架為「一步完成」。

  • RCNN

RCNN背後的想法很簡單:它首先通過選擇性搜索提取一組目標建議(目標候選框)。然後,將每個建議重新調整為固定大小的影像,並將其輸入到基於ImageNet(例如AlexNet)的CNN模型中,以提取特徵。最後,利用線性SVM分類器對每個區域內的目標進行預測,識別目標類別。RCNN在VOC07上產生了顯著的性能提升,平均平均精度(mAP)從33.7% (DPM-v5)大幅提高到58.5%。雖然RCNN已經取得了很大的進步,但它的缺點是顯而易見的:在大量重疊的提案上進行冗餘的特徵計算(一張圖片超過2000個框),導致檢測速度極慢(GPU下每張圖片14秒)。同年晚些時候,SPPNet被提出並克服了這個問題。

  • SPPNet

2014年,K. He等人提出了空間金字塔匯聚網路(SPPNet)。以前的CNN模型需要固定大小的輸入,例如,AlexNet需要224×224影像。SPPNet的主要貢獻是引入了空間金字塔池(SPP)層,它使CNN能夠生成固定長度的表示,而不需要重新調整影像/感興趣區域的大小。使用SPPNet進行目標檢測時,只需要對整個影像計算一次特徵圖,然後生成任意區域的定長表示,訓練檢測器,避免了重複計算卷積特徵。SPPNet的速度是R-CNN的20多倍,並且沒有犧牲任何檢測精度(VOC07 mAP=59.2%)。SPPNet雖然有效地提高了檢測速度,但仍然存在一些不足:第一,訓練仍然是多階段的,第二,SPPNet只對其全連接層層進行微調,而忽略了之前的所有層。次年晚些時候,Fast RCNN被提出並解決了這些問題。

  • Fast RCNN

2015年,R. Girshick提出了Fast RCNN檢測器,這是對R-CNN和SPPNet的進一步改進。Fast RCNN使我們能夠在相同的網路配置下同時訓練檢測器和邊界盒回歸器。在VOC07數據集上,Fast RCNN將mAP從58.5% (RCNN)提高到70.0%,檢測速度是R-CNN的200多倍。雖然Fast-RCNN成功地融合了R-CNN和SPPNet的優點,但其檢測速度仍然受區域檢測的限制(詳見2.3.2節)。然後,一個問題自然而然地出現了:「我們能用CNN模型生成目標建議嗎?」稍後,Faster R-CNN回答了這個問題。

  • Faster RCNN

2015年,S. Ren等人在快速RCNN之後不久提出了更快的RCNN檢測器。Faster RCNN是第一個端到端的,也是第一個接近實時的深度學習檢測器(COCO [email protected]=42.7%, COCO mAP@[.5,.95]=21.9%, VOC07 mAP=73.2%, VOC12 mAP=70.4%, 17fps with ZF-Net)。Faster R-CNN的主要貢獻是引入了區域建議網路(RPN),使幾乎免費的區域建議成為可能。從R-CNN到速度更快的RCNN,一個目標檢測系統的大部分獨立塊,如建議檢測、特徵提取、邊界盒回歸等,都逐漸集成到一個統一的端到端學習框架中。雖然更快的RCNN突破了Fast RCNN的速度瓶頸,但是在後續的檢測階段仍然存在計算冗餘。後來提出了多種改進方案,包括RFCN和Light head RCNN。(詳見第3節。)

  • Feature Pyramid Networks

2017年,T.-Y。Lin等人基於更快的RCNN提出了特徵金字塔網路(FPN)。在FPN之前,大多數基於深度學習的檢測器只在網路的頂層進行檢測。雖然CNN較深層的特徵有利於分類識別,但不利於目標的定位。為此,在FPN中開發了一個具有橫向連接的自頂向下體系結構,用於在所有級別上構建高級語義。由於CNN通過前向傳播自然形成了一個特徵金字塔,所以FPN在檢測具有多種尺度的目標時顯示出了很大的進步。在基本的更快的R-CNN系統中使用FPN,它在MSCOCO數據集上實現了最先進的單模型檢測結果,沒有附加任何附加條件(COCO [email protected]=59.1%, COCO mAP@[.5,.95]=36.2%)。FPN現在已經成為許多最新探測器的基本組成部分。

2.1.3、里程碑:基於CNN的一階段檢測器

  • You Only Look Once (YOLO)

YOLO由R. Joseph等人於2015年提出。它是深度學習時代[20]的第一個單級檢測器。YOLO非常快:YOLO的一個快速版本運行速度為155fps, VOC07 mAP=52.7%,而它的增強版本運行速度為45fps, VOC07 mAP=63.4%, VOC12 mAP=57.9%。YOLO是「你只看一次」的縮寫。從它的名字可以看出,作者完全拋棄了之前的「提案檢測+驗證」的檢測範式。相反,它遵循一個完全不同的哲學:將單個神經網路應用於整個影像。該網路將影像分割成多個區域,同時預測每個區域的邊界框和概率。後來R. Joseph在YOLO的基礎上進行了一系列改進,提出了其v2和v3版本,在保持很高檢測速度的同時進一步提高了檢測精度。雖然YOLO的檢測速度有了很大的提高,但是與兩級檢測器相比,它的定位精度有所下降,特別是對於一些小目標。YOLO的後續版本和後者提出的SSD更關注這個問題。

  • Single Shot MultiBox Detector (SSD)

SSD由W. Liu等人於2015年提出。這是深度學習時代的第二款單級探測器。SSD的主要貢獻是引入了多參考和多解析度檢測技術,這大大提高了單級檢測器的檢測精度,特別是對於一些小目標。SSD在檢測速度和準確度上都有優勢(VOC07 mAP=76.8%, VOC12 mAP=74.9%, COCO [email protected]=46.5%, mAP@[.5,.95]=26.8%,快速版本運行速度為59fps)。SSD與以往任何檢測器的主要區別在於前者在網路的不同層檢測不同尺度的目標,而後者僅在其頂層運行檢測。

  • Retinanet

單級檢測器速度快、結構簡單,但多年來一直落後於兩級檢波器的精度。T.-Y。Lin等人發現了背後的原因,並在2017年提出了RetinaNet。他們聲稱,在密集探測器訓練過程中所遇到的極端的前-後級不平衡是主要原因。為此,在Retinanet中引入了一個新的損失函數「焦損失」,通過對標準交叉熵損失的重構,使檢測器在訓練過程中更加關注難分類的樣本。焦損耗使得單級探測器在保持很高的檢測速度的同時,可以達到與兩級探測器相當的精度。(COCO [email protected] = 59.1%, mAP@ [。5,.95]= 39.1%)。

2.2、目標檢測數據集和基準

建立更大的數據集和更少的偏見是開發先進的電腦視覺演算法的關鍵。在目標檢測方面,近10年來發布了許多知名的數據集和基準,包括PASCAL VOC Challenges(如VOC2007, VOC2012)、ImageNet Large Scale Visual Recognition Challenge(如ILSVRC2014)、MS-COCO detection Challenge等數據集。表1給出了這些數據集的統計數據。圖4顯示了這些數據集的一些影像示例。圖3為2008 – 2018年VOC07、VOC12和MS-COCO數據集檢測精度的提高情況。

  • Pascal VOC

PASCAL Visual Object Classes (VOC)挑戰賽(2005 – 2012)是早期電腦視覺界最重要的比賽之一。PASCAL VOC中包含多種任務,包括影像分類、目標檢測、語義分割和動作檢測。兩種版本的Pascal-VOC主要用於目標檢測:VOC07和VOC12,前者由5k tr. images + 12k annotated objects組成,後者由11k tr. images + 27k annotated objects組成。在這兩個數據集中(Person: Person;動物:鳥、貓、牛、狗、馬、羊;交通工具:飛機、自行車、船、公共汽車、小汽車、摩托車、火車;室內:瓶子、椅子、餐桌、盆栽植物、沙發、電視/顯示器)。近年來,隨著ILSVRC、MS-COCO(即將推出)等大型數據集的發布,VOC逐漸淡出人們的視野,成為大多數新型檢測器的試驗台。

  • ILSVRC

ImageNet大尺度視覺識別挑戰(ILSVRC)推動了通用目標檢測技術的發展。ILSVRC從2010年到2017年每年舉辦一次。它包含一個使用ImageNet影像的檢測挑戰。ILSVRC檢測數據集包含200類視覺目標。它的影像/目標實例的數量比VOC大兩個數量級。例如,ILSVRC-14包含517k影像和534k帶注釋的目標。

  • MS-COCO

MS-COCO是目前最具挑戰性的目標檢測數據集。基於MS-COCO數據集的年度比賽從2015年開始舉辦。它的目標類別比ILSVRC少,但是目標實例多。例如,MS-COCO-17包含來自80個類別的164k影像和897k帶注釋的目標。與VOC和ILSVRC相比,MS-COCO最大的進步是除了邊框標註外,每個目標都進一步使用實例分割進行標記,以幫助精確定位。此外,MS-COCO包含更多的小目標(其面積小於影像的1%)和比VOC和ILSVRC更密集的定位對象。所有這些特性使得MS-COCO中的目標分布更接近真實世界。就像當時的ImageNet一樣,MS-COCO已經成為目標檢測社區事實上的標準。

  • Open Images

繼MS-COCO之後,開放影像檢測(OID)在2018年迎來了前所未有的挑戰。在開放影像中有兩項任務:1)標準目標檢測和2)視覺關係檢測。對於目標檢測任務,數據集由1,910k張影像和15,440k個帶注釋的邊界框組成,這些邊界框位於600個目標類別上。

  • 其他檢測任務的數據集

在過去的20年里,除了一般的目標檢測外,在行人檢測、人臉檢測、文本檢測、交通標誌/燈光檢測、遙感目標檢測等特定領域的檢測應用也十分繁榮。表2-6列出了這些檢測任務的一些流行數據集。第5節詳細介紹了這些任務的檢測方法。

2.2.1、度量

我們如何評估目標探測器的有效性?這個問題甚至可能在不同的時間有不同的答案。在早期的檢測社區中,對於檢測性能的評價標準並沒有得到廣泛的認可。例如,在行人檢測的早期研究中,通常使用「每個窗口的漏檢率與誤報率(FPPW)」作為度量。然而,perwindow測量(FPPW)可能存在缺陷,在某些情況下不能預測完整的影像性能。2009年,加州理工學院(Caltech)建立了行人檢測基準,從那時起,評估指標從每窗口(per-window, FPPW)改為偽陽性每影像(false positive perimage, FPPI)。近年來,對目標檢測最常用的評估方法是「平均精度(AP)」,該方法最早是在VOC2007中引入的。AP定義為不同召回情況下的平均檢測精度,通常以類別特定的方式進行評估。為了比較所有目標類別的性能,通常使用所有目標類別的平均AP (mAP)作為性能的最終度量。為了測量目標定位精度,使用Union上的交集(交集over Union, IoU)來檢查預測框和ground truth框之間的IoU是否大於預定義的閾值,比如0.5。如果是,則將該對象標識為「成功檢測到」,否則將標識為「未檢測到」。基於0.5 iou的地圖已經成為多年來實際的目標檢測問題的度量標準。

2014年以後,由於MS-COCO數據集的普及,研究人員開始更加關注邊界框位置的準確性。MS-COCO AP沒有使用固定的IoU閾值,而是在多個IoU閾值上取平均值,閾值介於0.5(粗定位)和0.95(完美定位)之間。這種度量的變化鼓勵了更精確的目標定位,並且對於一些實際應用可能非常重要(例如,假設有一個機器人手臂試圖抓住扳手)。近年來,對開放影像數據集的評價有了進一步的發展,如考慮了盒組和非窮舉的影像級類別層次結構。一些研究者也提出了一些替代指標,如「定位回憶精度」。儘管最近發生了一些變化,基於VOC/COCO的mAP仍然是最常用的目標檢測評估指標。

2.3、目標檢測技術的進化

在本節中,我們將介紹檢測系統的一些重要構件及其在過去20年中的技術發展。

2.3.1、早期的灰色知識

早期的目標檢測(2000年以前)沒有遵循滑動窗口檢測等統一的檢測理念。當時的探測器通常基於低層和中層的視覺設計如下。

  • 組件、形狀和邊緣

「分量識別」作為一種重要的認知理論,長期以來一直是影像識別和目標檢測的核心思想。早期的一些研究人員將目標檢測定義為測量目標組件、形狀和輪廓之間的相似性,包括距離變換、形狀上下文和Edgelet等。儘管最初的結果很有希望,但在更複雜的檢測問題上,事情進展得並不順利。因此,基於機器學習的檢測方法開始蓬勃發展。基於機器學習的檢測經歷了多個時期,包括外觀統計模型(1998年以前)、小波特徵表示(1998-2005年)和基於梯度的表示(2005-2012年)。建立一個目標的統計模型,如圖5(a)所示的Eigenfaces,是目標檢測歷史上基於學習的第一波方法。1991年,米。Turk等人利用特徵臉分解技術在實驗室環境中實現了實時人臉檢測。與當時基於規則或模板的方法相比,統計模型通過從數據中學習特定於任務的知識,更好地提供了對象外觀的整體描述。自2000年以來,小波特徵變換開始主導視覺識別和目標檢測。這組方法的本質是通過將影像從像素點轉換為一組小波係數來學習。在這些方法中,Haar小波由於其較高的計算效率,主要應用於許多目標檢測任務中,如一般目標檢測、人臉檢測、行人檢測等。圖5 (d)為VJ檢測器學習到的一組人臉Haar小波基。

自2000年以來,小波特徵變換開始主導視覺識別和目標檢測。這組方法的本質是通過將影像從像素點轉換為一組小波係數來學習。在這些方法中,Haar小波由於其較高的計算效率,主要應用於許多目標檢測任務中,如一般目標檢測、人臉檢測、行人檢測等。圖5 (d)為VJ檢測器學習到的一組人臉Haar小波基。

  • 早期的CNN目標檢測

使用CNN檢測物體的歷史可以追溯到20世紀90年代,當時Y. LeCun等人做出了巨大的貢獻。由於計算資源的限制,當時的CNN模型比現在的模型要小得多,也要淺得多。儘管如此,在早期基於CNN的檢測模型中,計算效率仍然被認為是難以破解的難題之一。Y. LeCun等人對「共享權複製神經網路」、「空間位移網路」等進行了一系列改進,通過擴展卷積網路的每一層來覆蓋整個輸入影像,減少計算量,如圖5 (b)-(c)所示。這樣,只需一次網路的正向傳播,就可以提取出整個影像任意位置的特徵。這可以被認為是當今全卷積網路(FCN)的原型,它是在近20年後提出的。CNN在當時也被應用於人臉檢測和手部跟蹤等任務。

2.3.2、多尺度檢測技術的演化

「不同尺寸」和「不同縱橫比」目標的多尺度檢測是目標檢測的主要技術挑戰之一。近20年來,多尺度檢測經歷了多個歷史時期:「特徵金字塔和滑動窗口(2014年前)」、「基於目標建議的檢測(2010-2015年)」、「深度回歸(2013-2016年)」、「多參考檢測(2015年後)」、「多解析度檢測(2016年後)」,如圖6所示。

  • Feature pyramids + sliding windows (before 2014)

隨著VJ檢測器後計算能力的提高,研究者們開始更加關注一種直觀的檢測方法,即構建「特徵金字塔+滑動窗口」。從2004年到2014年,基於這種檢測範式構建了許多里程碑式的檢測器,包括HOG檢測器、DPM,甚至深度學習時代的Overfeat檢測器(ILSVRC-13定位任務冠軍)。早期的檢測模型,如VJ檢測器和HOG檢測器,都是專門設計用來檢測「固定長寬比」的目標(如人臉和直立的行人),只需要簡單地構建特徵金字塔,並在其上滑動固定大小的檢測窗口。當時沒有考慮檢測「各種寬高比」。為了檢測PASCAL VOC中外觀更複雜的物體,R. Girshick等人開始在特徵金字塔外尋找更好的解決方案。「混合模型」是當時最好的解決方案之一,它通過訓練多個模型來檢測不同縱橫比的物體。除此之外,基於範例的檢測通過為訓練集中的每個目標實例(範例)訓練單獨的模型提供了另一種解決方案。隨著現代數據集中的對象(例如MS-COCO)變得更加多樣化,混合模型或基於範例的方法不可避免地會導致更多的雜類檢測模型。於是一個問題就自然而然地產生了:是否存在一種統一的多尺度方法來檢測不同長寬比的目標?「目標提案」(即將提出)的提出已經回答了這個問題。

  • Detection with object proposals (2010-2015)

對象建議引用一組可能包含任何目標的與類無關的候選框。它於2010年首次應用於目標檢測。使用目標建議進行檢測有助於避免對影像進行徹底的滑動窗口搜索。目標建議檢測演算法應滿足以下三個要求:1)高召回率,2)高定位精度,3)在前兩個要求的基礎上,提高精度,減少處理時間。現代的提案檢測方法可以分為三類:1)分割分組方法;2)窗口評分方法;3)基於神經網路的方法。我們建議讀者閱讀以下論文,以全面回顧這些方法。

早期的proposal檢測方法遵循自底向上的檢測理念,深受視覺顯著性檢測的影響。後來,研究人員開始轉向低水平的視覺(如邊緣檢測)和更精細的手工技能,以改進候選框的定位。2014年以後,隨著深度CNN在視覺識別領域的普及,自上而下、基於學習的方法在這個問題上開始顯示出更多的優勢。從那時起,目標建議檢測就從自下而上的視覺演化為「對一組特定目標類的過度擬合」,檢測器與建議生成器之間的區別也變得模糊。隨著「object proposal」對滑動窗口檢測的革命性變革,並迅速主導基於深度學習的檢測器,2014-2015年,許多研究者開始提出以下問題:object proposal在檢測中的主要作用是什麼?是為了提高準確度,還是僅僅為了加快檢測速度?為了回答這個問題,一些研究人員試圖削弱proposal的作用,或者只是對CNN feature進行滑動窗口檢測,但都沒有得到令人滿意的結果。在單級檢測器和(即將引入的)「深度回歸」技術的興起之後,提議檢測很快就淡出了人們的視線。

  • Deep regression (2013-2016)

近年來,隨著GPU計算能力的提高,人們處理多尺度檢測的方式變得越來越直接和暴力。使用深度回歸來解決多尺度問題的思想非常簡單,即,基於深度學習特徵直接預測邊界框的坐標。這種方法的優點是簡單易行,缺點是定位不夠準確,特別是對於一些小目標。「多參考檢測」(待介紹)解決了這一問題。

  • Multi-reference/-resolution detection (after 2015)

多參考檢測是目前最流行的多尺度目標檢測框架。它的主要思想是在影像的不同位置預先定義一組不同大小和寬高比的參考框(即錨框),然後根據這些參考框預測檢測框。每個預定義錨盒的典型損失包括兩部分:1)類別識別的交叉熵損失和2)目標定位的L1/L2回歸損失。損失函數的一般形式可以寫成:

其中t和

是預測的和地面真實邊界框的位置,p和p是它們的類別概率。IOU{a,

}是錨點a與其ground truth

之間的IOU。η是一個IOU閾值,0.5。如果錨沒有覆蓋任何對象,其定位損失不計入最終損失。近兩年來另一種流行的技術是多解析度檢測,即在網路的不同層檢測不同尺度的目標。由於CNN在正向傳播過程中自然形成了一個特徵金字塔,所以更容易在較深的層中檢測到較大的目標,在較淺的層中檢測到較小的目標。多參考和多解析度檢測已成為當前最先進的目標檢測系統的兩個基本組成部分。

2.3.3、Bounding Box回歸技術的演進

邊界盒(BB)回歸是一種重要的對象檢測技術。它的目標是在初始建議或錨框的基礎上細化預測邊界框的位置。近20年來,BB回歸的演變經歷了三個歷史時期:「沒有BB回歸(2008年以前)」、「從BB到BB(2008- 2013)」、「從feature到BB(2013年以後)」。圖7為邊界盒回歸的演化過程。

  • 沒有Bounding Box回歸(2008年之前)

早期的檢測方法,如VJ檢測器和HOG檢測器,大多不使用BB回歸,通常直接將滑動窗口作為檢測結果。為了獲得精確的目標位置,研究人員別無選擇,只能建造非常密集的金字塔,並在每個位置上密集地滑動探測器。

  • 從BB到BB(2008年-2013年)

第一次將BB回歸引入目標檢測系統是在DPM中。那時的BB回歸通常作為一個後處理塊,因此它是可選的。由於PASCAL VOC的目標是預測每個目標的單個邊界框,因此DPM生成最終檢測的最簡單方法應該是直接使用其根過濾器位置。後來,R. Girshick等人提出了一種更複雜的方法來預測一個基於目標假設完整配置的邊界框,並將這個過程表示為一個線性最小二乘回歸問題。該方法對PASCAL標準下的檢測有明顯的改進。

  • 從特徵到BB(2013年以後)

2015年引入更快的RCNN後,BB回歸不再作為單獨的後處理塊,而是與檢測器集成,以端到端的方式進行訓練。同時,BB回歸已經演化為直接基於CNN特徵預測BB。為了得到更強的魯棒預測,通常使用平滑l1函數,

或者平方根函數,

作為回歸損失,其對異常值的魯棒性優於DPM中使用的最小二乘損失。一些研究人員還選擇將坐標標準化以獲得更健壯的結果。

  • 上下文啟動的技術演變

視覺對象通常嵌入到與周圍環境一起的典型上下文中。我們的大腦利用物體和環境之間的聯繫來促進視覺感知和認知[160]。長期以來,上下文啟動一直被用來改進檢測。在其進化過程中,常用的方法有三種:1)局部上下文檢測,2)全局上下文檢測,3)上下文交互,如圖8所示。

  • 用局部紋理檢測

局部上下文是指要檢測的目標周圍區域的視覺資訊。長期以來,人們一直認為局部上下文有助於改進目標檢測。在21世紀初,Sinha和Torralba發現,包含面部邊界輪廓等局部上下文區域可以顯著提高人臉檢測性能。Dalal和Triggs還發現,加入少量的背景資訊可以提高行人檢測的準確性。最近的基於深度學習的檢測器也可以通過簡單地擴大網路的接受域或目標建議的大小來隨著本地上下文進行改進。

  • 用全局紋理檢測

全局上下文利用場景配置作為目標檢測的額外資訊源。對於早期的目標檢測器,集成全局上下文的一種常見方法是集成組成場景的元素的統計摘要,如Gist。對於現代的基於深度學習的檢測器,有兩種方法來集成全局上下文。第一種方法是利用大的接受域(甚至大於輸入影像)或CNN feature的全局池操作。第二種方法是將全局上下文看作一種序列資訊,並使用遞歸神經網路學習它。

  • 紋理交互

上下文交互是指通過視覺元素的交互(如約束和依賴關係)來傳達的資訊。對於大多數目標檢測器,在不利用目標實例之間的關係的情況下分別檢測和識別目標實例。最近的一些研究表明,考慮上下文的交互作用可以改進現代的目標檢測器。最近的一些改進可以分為兩類,第一類是探索單個目標之間的關係,第二類是探索建模目標和場景之間的依賴關係。

2.3.5、非極大值抑制技術的演進

非最大抑制(NMS)是一組重要的目標檢測技術。由於相鄰窗口的檢測分數往往相近,因此本文採用非最大抑製作為後處理步驟,去除複製的邊界框,得到最終的檢測結果。在目標檢測的早期,NMS並不總是集成[30]。這是因為當時目標檢測系統的期望輸出並不完全清楚。近20年來,NMS逐步發展為三組方法:1)貪心選擇法、2)邊界盒聚集法、3)學習NMS法,如圖9所示。

  • Greedy selection

貪心選擇是一種老式但最流行的目標檢測方法。該過程背後的思想簡單直觀:對於一組重疊檢測,選擇檢測分值最大的邊界框,並根據預定義的重疊閾值(如0.5)刪除相鄰框。上述處理以貪婪的方式迭代執行。雖然貪心選擇已成為NMS的實際方法,但仍有一定的改進空間,如圖11所示。首先,得分最高的盒子可能不是最合適的。其次,它可能會抑制附近的物體。最後,它不抑制假陽性。近年來,儘管最近進行了一些手工修改以提高其性能[158,159,163](更多細節請參見4.4節),但據我們所知,貪心選擇仍然是當今目標檢測的最強基準線。

  • BB aggregation

BB聚集是針對NMS的另一組技術,其思想是將多個重疊的邊界框組合或聚類成一個最終檢測。這種方法的優點是充分考慮了目標關係及其空間布局。有一些著名的檢測器使用這種方法,如VJ檢測器和Overfeat。

  • Learning to NMS

最近受到廣泛關注的一組NMS改進正在學習NMS。這類方法的主要思想是將NMS看作一個過濾器,對所有原始檢測進行重新評分,並以端到端方式將NMS訓練為網路的一部分。與傳統的手工NMS方法相比,這些方法在改善遮擋和密集目標檢測方面取得了良好的效果。

2.3.6、難負樣本挖掘技術的演進

目標檢測器的訓練本質上是一個不平衡的數據學習問題。在基於滑動窗口的檢測器的情況下,每個目標的背景和目標之間的不平衡可能達到極端的104∼105個背景窗口。現代檢測數據集要求預測目標的長徑比,進一步將不平衡比提高到106∼107。在這種情況下,使用所有的背景數據對培訓都是有害的,因為大量容易產生的負面影響將壓倒學習過程。難負挖掘(HNM)是針對訓練過程中數據不平衡的問題。HNM在目標檢測中的技術演進如圖10所示。

  • Bootstrap

目標檢測中的Bootstrap是指一組訓練技術,訓練從一小部分背景樣本開始,然後在訓練過程中迭代地添加新的誤分類背景。在早期的目標檢測器中,最初引入bootstrap的目的是減少對數百萬個背景樣本的訓練計算。後來成為DPM和HOG檢測器中解決數據不平衡問題的標準訓練技術。

  • HNM in deep learning based detectors

在深度學習時代後期,由於計算能力的提高,在2014-2016年的目標檢測中,bootstrap很快被丟棄。為了緩解訓練過程中的數據不平衡問題,像圖12這樣的檢測器速度更快。目標檢測中加速技術的概述。RCNN和YOLO只是在正面和負面窗口之間平衡權重。然而,研究人員後來發現,權重平衡不能完全解決不平衡的數據問題。為此,2016年以後,bootstrap被重新引入到基於深度學習的檢測器中。例如,在SSD和OHEM中,只有很小一部分樣本(損失值最大的樣本)的梯度會被反向傳播。在RefineDet中,設計了一個「錨定細化模組」來過濾容易出現的底片。另一種改進是設計新的損失函數,通過重新定義標準的交叉熵損失,使其更關注於困難的、分類錯誤的示例。

3、檢測的加速

加速目標檢測一直是一個重要而又具有挑戰性的問題。在過去的20年里,目標檢測領域已經發展了複雜的加速技術。這些技術大致可以分為「檢測流程提速」、「檢測引擎提速」和「數值計算提速」三個層次,如圖12所示。

3.1、特徵圖共享計算

在目標檢測器的不同計算階段中,特徵提取通常佔主導地位。對於基於滑動窗的檢測器,計算冗餘從位置和尺度兩方面入手,其中位置和尺度是由相鄰窗口之間的重疊造成的,尺度和尺度之間的特徵相關造成的。

3.1.1、空間計算冗餘和加速

減少空間計算冗餘最常用的方法是特徵圖共享計算,即,在滑動窗口前只計算一次整個影像的特徵圖。傳統探測器的「影像金字塔」可以看作是一個「特徵金字塔」。例如,為了加快HOG行人檢測器的速度,研究者通常會將整個輸入影像的「HOG map」進行累加,如圖13所示。然而,這種方法的缺點也很明顯,即,功能圖解析度(此功能圖上滑動窗口的最小步長)將受到單元格大小的限制。如果一個小目標位於兩個單元格之間,那麼所有檢測窗口都可以忽略它。解決這個問題的一個方法是構建一個完整的特徵金字塔,這將在第3.6節中介紹。特徵圖共享計算的思想在基於卷積的檢測器中也得到了廣泛的應用。一些相關的著作可以追溯到20世紀90年代。近年來,大多數基於CNN的探測器,如SPPNet、Fast-RCNN、Fast-RCNN,都採用了類似的思路,實現了數十倍甚至數百倍的加速度。

3.1.2、擴展計算冗餘並加快速度

為了減少尺度計算冗餘,最成功的方法是直接縮放特徵而不是影像,這種方法首次應用於VJ檢測器。然而,由於模糊效果,這種方法不能直接應用於類似於hog的特性。對於這個問題,P. Dollar』等人通過廣泛的統計分析發現HOG相鄰尺度與積分通道特徵之間存在很強的(log-linear)相關性。這種相關性可以通過近似相鄰尺度的特徵圖來加速特徵金字塔的計算。此外,構建「檢測器金字塔」是避免尺度計算冗餘的另一種方法,即,通過簡單地在一個feature map上滑動多個檢測器來檢測不同尺度的對象,而不是重新縮放影像或feature。

3.2、分類器的加速

傳統的基於滑動窗口的檢測器,如HOG檢測器和DPM,由於計算複雜度較低,更喜歡使用線性分類器而不是非線性分類器。核SVM等非線性分類器的檢測精度較高,但同時也帶來較高的計算開銷。作為一種標準的非參數方法,傳統的核函數法沒有固定的計算複雜度。當我們有一個非常大的訓練集時,檢測速度會變得非常慢。在目標檢測中,有很多方法可以加快核化分類器的速度,其中最常用的是「模型近似」。由於經典核支援向量機的決策邊界只能由一小組訓練樣本(支援向量)確定,因此推理階段的計算複雜度與支援向量的個數成正比:O(Nsv)。約簡集向量是核支援向量機的一種近似方法,其目的是用少量的合成向量來獲得一個等價的決策邊界。另一種提高核SVM在目標檢測中的速度的方法是將其決策邊界近似為分段線性形式,從而獲得一個恆定的推理時間。核方法也可以通過稀疏編碼方法來加速。

3.3、級聯檢測

級聯檢測是一種常用的目標檢測技術。它需要一個粗到精的檢測理念:使用簡單的計算過濾掉大部分簡單的背景窗口,然後用複雜的窗口處理那些更困難的窗口。VJ檢測器是級聯檢測的代表。在此之後,許多後續的經典目標檢測器,如HOG檢測器和DPM,都通過使用這種技術得到了加速。近年來,級聯檢測也被應用到基於深度學習的檢測器中,特別是針對「大場景中的小目標」的檢測任務,如人臉檢測、行人檢測等。除了演算法加速外,級聯檢測還被應用於解決其他問題,如提高對難例子的檢測,整合上下文資訊,提高定位精度。

3.4、網路剪枝和量化

「網路剪枝」和「網路量化」是加速CNN模型的兩種常用技術,前者是指對網路結構或權值進行剪枝以減小其大小,後者是指減少激活或權值的碼長。

3.4.1、網路剪紙

「網路修剪」的研究最早可以追溯到20世紀80年代。當時,Y. LeCun等人提出了一種稱為「最優腦損傷」的方法來壓縮多層感知器網路的參數[186]。該方法利用二階導數逼近網路的損失函數,從而去除一些不重要的權重。基於這一思想,近年來的網路剪枝方法通常採用迭代的訓練和剪枝過程,即:,在每個訓練階段後只移除一小部分不重要的砝碼,並重複這些操作。傳統的網路剪枝只是簡單地去除不重要的權值,這可能導致卷積濾波器中存在一些稀疏連接模式,不能直接應用於CNN模型的壓縮。解決這個問題的一個簡單方法是刪除整個過濾器而不是獨立的權重。

3.4.2、網路量化

最近的網路量化工作主要集中在網路二值化上,其目的是通過將網路的激活或權值量化為二進位變數(如0/1),從而將浮點運算轉換為AND或NOT logical operations,從而加快網路的速度。網路二值化可以顯著加快計算速度,並減少網路的存儲,從而更容易部署到移動設備上。上述思想的一種可能實現是用二進位變數用最小二乘法近似卷積。使用多個二進位卷積的線性組合可以得到更精確的近似。此外,一些研究人員進一步開發了GPU加速庫進行二值化計算,獲得了更顯著的加速結果。

3.4.3、網路蒸餾

網路蒸餾是將大型網路(「教師網」)的知識壓縮成小型網路(「學生網」)的一般框架。最近,這一思想被用於加速目標檢測。該思想的一種直接方法是使用教師網來指導(輕量級)學生網的訓練,以便後者可用於加速檢測。另一種方法是對候選區域進行變換,使學生網路和教師網路的特徵距離最小化。該方法使檢測模型的速度提高了2倍,同時達到了相當的精度。

3.5、輕量網路設計

最後一組加速基於CNN的檢測器的方法是直接設計一個輕量級的網路,而不是使用現成的檢測引擎。研究人員長期以來一直在探索網路的正確配置,以便在有限的時間成本下獲得準確性。除了一些通用的設計原則如「更少的通道,更多的層」,近年來也提出了一些其他的方法:1)分解卷積,2)群卷積,3)深度可分離卷積,4)瓶頸設計,5)神經結構搜索。

3.5.1、網路分解

分解卷積是構建輕量級CNN模型最簡單、最直接的方法。有兩組分解方法。第一組的方法是因式分解一個大康沃變頻器全局過濾器為一組的小空間維度(147、198),如圖14所示(b)。例如,一個人可以因式分解7 x7過濾器為三個3 x3過濾器,它們共享相同的接受域但後來的人更有效率。另一個例子是將k×k濾波器分解為k×1濾波器和1×k濾波器,這對於非常大的濾波器來說可能更有效,比如15×15。該思想最近被用於目標檢測。第二組是因式分解的方法那一大群卷繞成兩個小組在他們的頻道維度(201、202),如圖14所示(c)。例如,一個人可以近似一個卷積層與d過濾器和c通道的特性映射d0過濾器+非線性激活另一個過濾器(d' < d)。在這種情況下,原始層的複雜度O(dk^2c)可以降低到O(d'k^2c) + O(dd')。

3.5.2、群卷積

群卷積旨在減少參數的數量在一個卷積層特性除以渠道分成不同的組,然後纏繞在每一組獨立(189、203),如圖14所示(d)。如果我們平分特性渠道分成m組,而不改變其他配置,卷積的計算複雜性理論將減少到1 / m的之前。

3.5.3、深度方面分離卷積

圖14 (e)所示的深度可分離卷積是近年來流行的一種構建輕量級卷積網路的方法。當組數等於信道數時,它可以看作是群卷積的一個特例。假設我們有一個卷積層,帶有d個過濾器和一個c通道的特徵圖。每個濾波器的大小為k×k,對於深度可分卷積,首先將每個k×k×c濾波器分割為c個切片,每個切片的大小為k×k×1,然後在每個通道中對每個濾波器的每個切片分別進行卷積。最後,使用多個1×1過濾器進行維度轉換,以便最終的輸出應該具有d通道。利用深度可分卷積,將計算複雜度從O(dk^2c)降低到O(ck^2) + O(dc)。該思想最近被應用於目標檢測和細粒度分類。

3.5.4、瓶頸設計

與前一層相比,神經網路中的瓶頸層只包含很少的節點。它可用於學習降維輸入的高效數據編碼,這在深度自編碼中得到了廣泛的應用。近年來,瓶頸設計在輕量化網路設計中得到了廣泛的應用。在這些方法中,一種常見的方法是壓縮檢測器的輸入層,以減少從檢測管道開始的計算量。另一種方法是壓縮檢測引擎的輸出,使feature map變薄,使其在後續的檢測階段更加高效。

3.5.5、神經架構搜索

近年來,人們對利用神經結構搜索(NAS)自動設計網路體系結構而不是依賴於專家經驗和知識產生了濃厚的興趣。NAS已應用於大規模影像分類,目標檢測和影像分割任務。NAS最近在設計輕量級網路方面也顯示出了很好的結果,其中在搜索過程中考慮了預測精度和計算複雜度的限制。

3.6、數值加速

在這一節中,我們主要介紹了四種重要的數值加速方法,它們在目標檢測中經常使用:1)積分影像加速,2)頻域加速,3)矢量量化,4)降階近似。

3.6.1、用積分影像加速

積分影像是影像處理中的一種重要方法。它有助於快速計算影像子區域的和。積分影像的本質是訊號處理中卷積的積分微分可分性:

如果dg(x)/dx是一個稀疏訊號,那麼卷積可以被方程右邊的部分加速。雖然VJ檢測器以積分影像加速度著稱,但在它誕生之前,積分影像已經被用來加速CNN模型,並達到了10倍以上的加速度。除了上述例子外,積分影像還可以用來加速目標檢測中更一般的特徵,如顏色直方圖、梯度直方圖等。一個典型的例子是通過計算積分HOG映射來加速HOG。積分HOG map不是在傳統的積分影像中積累像素值,而是在影像中積累梯度方向,如圖15所示。由於細胞的直方圖可以看作是某一區域梯度向量的和,利用積分影像可以計算任意位置和大小的矩形區域的直方圖,計算開銷是恆定的。積分HOG地圖已被應用於行人檢測中,並在不損失任何精度的前提下實現了數十倍的加速度。2009年晚些時候,P. Dollar』等人提出了一種新的影像特徵,稱為積分通道特徵(ICF),可以認為是積分影像特徵的一種更為普遍的情況,並已成功應用於行人檢測。ICF在其所處的時間內,以接近實時的檢測速度實現了最先進的檢測精度。

3.6.2、頻域的加速

卷積是目標檢測中的一種重要的數值運算形式。由於線性檢測器的檢測可以看作是特徵圖與檢測器權值之間的窗口內積,因此該過程可以通過卷積來實現。卷積可以在很多方面得到加速,傅里葉變換是一個非常實用的選擇尤其是對於加速那些大的濾波器。頻域加速卷積的理論基礎是訊號處理中的卷積定理,即在合適的條件下,兩個訊號卷積的傅里葉變換是其傅里葉空間的點乘:

其中F^{-1}是傅里葉變換,F×1是傅里葉反變換,I和W是輸入影像和濾波器,n是卷積運算,n是逐點積。利用快速傅里葉變換(FFT)和反快速傅里葉變換(IFFT)可以加速上述計算。FFT和IFFT現在經常被用來加速CNN模型和一些經典的線性目標檢測器,這使得檢測速度提高了一個數量級。圖16是在頻域加速線性目標檢測器(如HOG和DPM)的標準管道。

3.6.3、矢量量化

矢量量化(VQ)是訊號處理中的一種經典的量化方法,其目的是通過一組小的原型矢量來近似一組大數據的分布。它可用於數據壓縮和加速目標檢測中的內積運算。例如,使用VQ,可以將HOG直方圖分組並量化為一組原型直方圖向量。然後在檢測階段,通過查表操作實現特徵向量與檢測權值之間的內積。由於該過程中沒有浮點乘法和除法,因此DPM和樣本SVM檢測器的速度可以提高一個數量級。

3.6.4、減少秩的逼近

在深度網路中,全連通層的計算本質上是兩個矩陣的乘法。當參數矩陣W∈Ru×v較大時,檢測器的計算量較大。例如,在快速RCNN檢測器中,近一半的正向通過時間用於計算完全連接的層。降秩近似是一種加速矩陣乘法的方法。它的目的是對矩陣W進行低秩分解:

U是一個U×t矩陣組成的第t左奇異向量W,Σt是一個包含頂級t t×t對角矩陣奇異值的W和V V×t矩陣組成的第一個t right-singular向量W以上的過程,也稱為截斷奇異值分解,減少了參數計算從紫外線到t (U + V),可以顯著如果t比最小值小得多(U, V)截斷奇異值分解被用來加速RCNN檢測器和達到x2速度快。

4、目標檢測的最新進展

在這一節中,我們將回顧近三年來最先進的目標檢測方法。

4.1、使用更好的引擎進行檢測

近年來,deep CNN在許多電腦視覺任務中發揮了核心作用。由於檢測器的精度在很大程度上取決於其特徵提取網路,因此本文將主幹網路(如ResNet和VGG)稱為檢測器的「引擎」。圖17顯示了三種著名的檢測系統的檢測精度:速度更快的RCNN、R-FCN和SSD,不同的發動機選擇。在本節中,我們將介紹深度學習時代的一些重要的檢測引擎。關於這個話題的更多細節,我們請讀者參考下面的調查。

AlexNet: AlexNet是一個八層深度網路,是第一個開啟電腦視覺深度學習革命的CNN模型。AlexNet在2012年ImageNet LSVRC-2012比賽中以巨大的優勢勝出(15.3% VS . 26.2%(第二名))。截至2019年2月,Alexnet論文被引用超過3萬次。

VGG: VGG是2014年由牛津視覺幾何小組(Visual Geometry Group, VGG)提出的。VGG將模型的深度增加到16-19層,使用非常小的卷積濾波器(3×3),而不是以前AlexNet中使用的5×5和7×7。VGG在當時的ImageNet數據集上實現了最先進的性能。

GoogLeNet: GoogLeNet a.k.Inception[198,231 – 233]是GoogleInc.自2014年以來提出的CNN模型的一個大家族。GoogLeNet增加了CNN的寬度和深度(多達22層)。Inception系列的主要貢獻是引入了因子卷積和批處理標準化。

ResNet: Deep Residual Networks (ResNet)[234],由K. He等人於2015年提出,是一種新型的卷積網路架構,它比以前使用的卷積網路結構要深很多(高達152層)。ResNet 旨在 減輕 網路 的 培訓 通過 調整 其 作為 學習 剩餘 功能 層 inputs. 參考 層ResNet在2015年多次電腦視覺大賽中獲獎,包括ImageNet檢測、ImageNet定位、COCO檢測、COCO分割。

DenseNet: DenseNet由G. Huang、Z. Liu等人於2017年提出。ResNet的成功表明,CNN的捷徑連接使我們能夠訓練更深入、更準確的模型。作者接受了這一觀察結果,並引入了一個緊密連接的塊,它以前饋的方式將每一層連接到每一層。

SENet:擠激網路(SENet)是由J. Hu和L. Shen等人於2018年提出的。它的主要貢獻是集成了全球池和洗牌,以學習功能映射在通道方面的重要性。SENet在ILSVRC 2017年分類競賽中獲得第一名。

用新引擎來進行目標檢測:近三年來,許多最新的發動機已應用於目標檢測。例如,一些最新的目標檢測模型,如STDN, DSOD, TinyDSOD, Pelee,都選擇DenseNet作為檢測引擎。Mask RCNN作為實例分割的最先進模型,採用了下一代ResNet: ResNeXt作為其檢測引擎。此外,為了加快檢測速度,在MobileNet、LightHead RCNN等檢測器中也採用了由Incepion改進版Xception[204]引入的深度可分離卷積運算。

4.2、用更好的特徵檢測

特徵表示的品質是目標檢測的關鍵。近年來,許多研究人員在一些最新的引擎的基礎上,進一步提高了影像特徵的品質,其中最重要的兩組方法是:1)特徵融合和2)學習具有較大接受域的高解析度特徵。

4.2.1、為什麼特徵融合這麼重要?

不變性和等方差是影像特徵表示的兩個重要性質。分類需要不變的特徵表示,因為它的目的是學習高級語義資訊。由於目標定位的目的是區分位置和尺度的變化,所以目標定位需要等變表示。由於目標檢測由目標識別和定位兩個子任務組成,因此檢測器必須同時學習不變性和等方差。近三年來,特徵融合在目標檢測中得到了廣泛的應用。由於CNN模型由一系列卷積層和池化層組成,更深層次的特徵具有更強的不變性,但等方差較小。雖然這有利於分類識別,但在目標檢測中定位精度較低。相反,較淺層次的特徵不利於學習語義,但它有助於對象定位,因為它包含更多關於邊緣和輪廓的資訊。因此,CNN模型中深度和深度特徵的融合有助於提高不變性和等方差。

4.2.2、特徵融合的不同方式

在目標檢測中進行特徵融合的方法有很多。本文從兩個方面介紹了近年來的一些方法:1)處理流程和2)元素智慧操作。

  • Processing flow

目前用於目標檢測的特徵融合方法主要分為兩類:1)自底向上融合,2)自頂向下融合,如圖18 (a)-(b)所示。自底向上的融合通過跳過連接將淺層特徵轉發到更深的層。相比之下,自頂向下融合將更深層次的特徵回饋給更淺層次的特徵。除了這些方法,最近還提出了更複雜的方法,例如跨不同層編織特性。由於不同層的地物圖在空間維度和通道維度上的尺寸可能不同,因此可能需要對地物圖進行調整,如調整通道數量、上取樣低解析度地物圖或下取樣高解析度地物圖,使其大小合適。最簡單的方法是使用最接近或雙線性插值。此外,分數階條紋卷積(又稱轉置卷積)是近年來另一種常用的調整feature map大小和調整通道數量的方法。使用分數階條紋卷積的優點是,它可以學習一種適當的方法來執行上取樣本身。

  • 逐元素操作

從局部的角度看,特徵融合可以看作是不同特徵映射之間的元素智慧操作。有三組方法:1)元素明智的總和,2)元素明智的乘積,3)連接,如圖18 (c)-(e)所示。逐元素的和是執行特徵融合最簡單的方法。它已被頻繁地用於許多最近的目標檢測器。element-wise product與element-wise sum非常相似,唯一的區別是使用乘法而不是求和。元素智慧產品的一個優點是,它可以用來抑制或突出某個區域內的特性,這可能進一步有利於小目標檢測。特徵拼接是特徵融合的另一種方式。它的優點是可以用來集成不同區域的上下文資訊,缺點是增加了記憶體。

4.2.3、學習高解析度的特點與大的接受領域

接受域和功能解析基於CNN探測器的兩個重要特點,前一個是指輸入像素的空間範圍導致的計算一個像素的輸出,而後者對應於一個取樣下來的速度輸入和功能之間的映射。具有較大接受域的網路能夠捕獲更大範圍的上下文資訊,而具有較小接受域的網路則可能更專註於局部細節。正如我們前面提到的,特徵解析度越低,就越難檢測小目標。提高特徵解析度最直接的方法是去除池化層或降低卷積下取樣率。但這將帶來一個新的問題,即由於輸出步長減小,接收域會變得太小。換句話說,這將縮小探測器的「視線」,並可能導致一些大型物體的漏檢。一種同時提高接收域和特徵解析度的方法是引入膨脹卷積(又稱無孔卷積,或帶孔卷積)。擴展卷積最初是在語義分割任務中提出的。其主要思想是對卷積濾波器進行擴展,使用稀疏參數。例如,膨脹率為2的3×3濾波器與5×5內核具有相同的接受域,但只有9個參數。膨脹卷積目前已廣泛應用於目標檢測中,在不需要任何額外參數和計算代價的情況下,被證明是提高精度的有效方法。

4.3、超越滑動窗

  • 用子區域搜索

子區域搜索提供了一種新的檢測方法。最近的一種方法是將檢測視為一個路徑規划過程,從初始網格開始,最終收斂到所需的ground truth盒。另一種方法是將檢測看作是一個迭代更新過程,對預測邊界框的角進行細化。

  • 檢測為重點定位

關鍵點定位是一項重要的電腦視覺任務,有著廣泛的應用,如面部表情識別、人體姿態識別等。由於影像中任何目標都可以由其在地面真值框的左上角和右下角唯一確定,因此檢測任務可以等價地框定為一對關鍵點定位問題。這個想法最近的一個實現是預測拐角的熱圖。該方法的優點是可以在語義分割框架下實現,不需要設計多尺度的錨盒。

4.4、對定位的提升

為了提高定位精度,目前的檢測方法主要有兩種:1)邊界盒細化法和2)設計新的損失函數進行精確定位。

4.4.1、Bounding Box精鍊

提高定位精度最直觀的方法是對邊界框進行細化,可以將其視為檢測結果的後處理。儘管邊界框回歸已經集成到大多數現代目標檢測器中,但是仍然有一些具有意外規模的目標不能被任何預定義的錨很好地捕獲。這將不可避免地導致對其位置的不準確預測。因此,最近引入了「迭代邊界框細化」,將檢測結果迭代地輸入BB回歸器,直到預測收斂到正確的位置和大小。但也有研究人員認為該方法不能保證定位精度的單調性,即多次使用BB回歸可能會使定位退化。

4.4.2、提升損失函數來進行精確定位

在大多數現代探測器中,目標定位被認為是一個坐標回歸問題。然而,這種模式有兩個缺點。首先,回歸損失函數並不對應最終的本地化評估。例如,我們不能保證較低的回歸誤差總是會產生較高的欠條預測,特別是當對象的長徑比非常大時。其次,傳統的邊界盒回歸方法不能提供定位的置信度。當多個BB重疊時,可能導致非最大抑制失敗(詳見2.3.5節)。設計新的損失函數可以緩解上述問題。最直觀的設計是直接使用IoU作為定位損失函數。其他一些研究人員進一步提出了一種基於人工智慧引導的NMS,以提高訓練和檢測階段的定位。此外,一些研究者也嘗試在概率推理框架下改進定位。與以往直接預測框坐標的方法不同,該方法預測了邊界框位置的概率分布。

4.5、用分割學習

目標檢測和語義分割是電腦視覺中的重要任務。近年來的研究表明,通過學習和語義分割可以提高目標檢測能力。

4.5.1、為什麼分割能提升檢測

語義分割提高目標檢測能力的原因有三個。

  • 分割有助於分類識別

邊緣和邊界是構成人類視覺認知的基本要素。在電腦視覺中,物體(如汽車、人)和物體(如天空、水、草)的區別在於前者通常有一個封閉的、明確的邊界,而後者沒有。由於語義分割任務的特徵能夠很好地捕捉到目標的邊界,因此分割可能有助於分類識別。

  • 分割有助於精確定位

目標的ground truth邊界框由其定義良好的邊界決定。對於一些特殊形狀的物體(例如,想像一隻貓有很長的尾巴),很難預測高借據的位置。由於目標邊界可以很好地編碼在語義分割特徵中,分割學習有助於準確的目標定位。

  • 分割可以作為上下文嵌入

日常生活中的物體被不同的背景所包圍,如天空、水、草等,這些元素構成了一個物體的語境。整合上下文的語義分割將有助於目標檢測,例如,飛機更有可能出現在空中而不是水上。

4.5.2、分割如何提升精度

通過分割提高目標檢測的主要方法有兩種:1)特徵豐富的學習和2)多任務丟失函數的學習。

  • 學習豐富的特徵

最簡單的方法是將分割網路看作一個固定的特徵提取器,並將其作為附加特徵集成到檢測框架中。該方法的優點是易於實現,缺點是分割網路可能帶來額外的計算。

  • 多任務損失函數的學習

另一種方法是在原有檢測框架的基礎上引入額外的分割分支,用多任務丟失函數(分割丟失+檢測丟失)訓練該模型。在大多數情況下,分割早午餐將在推理階段被刪除。優點是檢測速度不受影響,缺點是訓練需要像素級的影像標註。為此,一些研究人員採用了「弱監督學習」的思想:他們不是基於像素級注釋掩碼進行訓練,而是基於邊界框級注釋訓練分割早午餐。

4.6、旋轉和尺度變化的魯棒檢測

目標旋轉和尺度變化是目標檢測中的重要挑戰。由於CNN學習到的特徵是不受旋轉和尺度變化的影響的,近年來很多人在這個問題上做出了努力。

4.6.1、旋轉魯棒檢測

目標旋轉在人臉檢測、文本檢測等檢測任務中非常常見。這個問題最直接的解決方案是數據擴充,使任何方向的目標都能被擴充的數據很好地覆蓋。另一種解決方案是為每個方向訓練獨立的探測器。除了這些傳統的方法,最近還有一些新的改進方法。

  • 旋轉不變損失函數

旋轉不變損失函數學習的思想可以追溯到20世紀90年代。最近的一些工作對原有的檢測損耗函數進行了約束,使旋轉後的物體的特徵保持不變。

  • 旋轉校準

改進旋轉不變數檢測的另一種方法是對候選對象進行幾何變換。這對於多級探測器尤其有用,早期的相關關係將有利於後續的檢測。這種思想的代表是空間變壓器網路(STN)。STN目前已被用於旋轉文本檢測和旋轉人臉檢測。

  • 選准RoI池化

在兩階段檢測器中,特徵池的目標是為任意位置和大小的目標提案提取固定長度的特徵表示,首先將提案均勻地劃分為一組網格,然後將網格特徵串聯起來。由於網格網格劃分是在直角坐標系下進行的,其特徵對旋轉變換不具有不變性。最近的一項改進是在極坐標下對網格進行網格劃分,使特徵對旋轉變化具有魯棒性。

4.6.2、尺度魯棒檢測

近年來,在尺度魯棒檢測的訓練和檢測階段都有了改進。

  • 尺度適應訓練

大多數現代探測器都是將輸入影像重新縮放到一個固定的尺寸,並將物體在所有尺度下的損失進行反向傳播,如圖19 (a)所示。但是,這樣做的缺點是會出現「尺度不平衡」問題。在檢測過程中構建影像金字塔可以緩解這一問題,但不能從根本上解。最近的改進是尺度歸一化的影像金字塔(剪),而構建影像金字塔的訓練和檢測階段,只有backpropagates失去一些選擇的尺度,如圖19所示(b)。一些研究人員進一步提出更有效的培訓策略:剪斷與高效的重取樣(狙擊手)即剪切和變換影像一組分區,以便從大型批量訓練中獲益。

  • 尺度適應檢測

現代探測器大多採用固定的結構來檢測不同尺寸的物體。例如,在一個典型的基於CNN的檢測器中,我們需要仔細定義錨的大小。這樣做的一個缺點是配置不能適應意外的規模變化。為了提高對小目標的檢測,近年來的一些檢測器提出了一些「自適應放大」技術,自適應地將小目標放大為「大目標」。最近的另一項改進是學習預測影像中目標的尺度分布,然後根據分布自適應地重新縮放影像。

4.7、從零開始訓練

大多數基於深度學習的檢測器首先在大規模數據集(如ImageNet)上進行預訓練,然後針對特定的檢測任務進行微調。人們一直認為預訓練有助於提高泛化能力和訓練速度,問題是,我們真的需要在ImageNet上對檢測器進行預訓練嗎?事實上,採用預訓練網路進行目標檢測存在一定的局限性。第一個限制是ImageNet分類和目標檢測之間的分歧,包括它們的損失函數和尺度/類別分布。第二個限制是域不匹配。由於ImageNet中的影像是RGB影像,而深度影像(RGB- d)或三維醫學影像有時需要進行檢測,因此無法很好地將預先訓練好的知識轉移到這些檢測任務中。近年來,一些研究人員嘗試從零開始訓練一種物體探測器。為了加快訓練速度和提高穩定性,一些研究人員引入密集連接和批量歸一化來加速淺層的反向傳播。最近的工作由k . et al。進一步質疑pretraining的範式進一步探索相反的政權:他們在COCO目標檢測報告競爭結果數據集使用標準模型訓練從隨機初始化,唯一例外的增加訓練的迭代的數量所以隨機初始化模型可能收斂。即使只使用10%的訓練數據,隨機初始化訓練的魯棒性也令人驚訝,這表明ImageNet預處理可以加快收斂速度,但不一定提供正則化或提高最終檢測精度。

4.8、對抗訓練

由A. Goodfellow等人於2014年提出的生成式對抗網路(GAN)近年來受到了極大的關注。一個典型的GAN由兩個神經網路組成:一個生成網路和一個判別網路,它們在極小極大優化框架下相互競爭。通常,生成器學習從潛在空間映射到感興趣的特定數據分布,而discriminator的目標是區分真實數據分布中的實例和生成器生成的實例。GAN廣泛應用於影像生成、影像樣式傳輸、影像超解析度等電腦視覺任務。近年來,GAN也被應用於目標檢測,尤其是對小遮擋目標的檢測。GAN被用來通過縮小小目標和大目標之間的表示來增強對小目標的檢測。為了提高對被遮擋物體的檢測,最近的一個想法是使用對抗性訓練生成遮擋掩模。與在像素空間中生成示例不同,對抗性網路直接修改特性來模擬遮擋。此外,「對抗性攻擊」研究如何用對抗性的例子攻擊檢測器,近年來受到越來越多的關注。這一課題的研究對於自主駕駛來說尤為重要,因為在保證其對對抗攻擊的魯棒性之前,不能完全信任它。

4.9、弱監督目標檢測

現代目標探測器的訓練通常需要大量的人工標記數據,而標記過程費時、昂貴、低效。弱監督目標檢測(WSOD)的目標是通過訓練一個只帶有影像級注釋而不是邊界框的檢測器來解決這一問題。近年來,多實例學習被用於WSOD。多實例學習是一種有監督的學習方法。多實例學習模型不是使用一組單獨標記的實例進行學習,而是接收一組標記的包,每個包包含多個實例。如果將一個影像中的候選目標看作一個包,並將影像級注釋看作標籤,那麼WSOD可以表示為一個多實例學習過程。類激活映射是最近出現的另一組WSOD方法。對CNN可視化的研究表明,儘管沒有對目標位置的監控,但是CNN的卷積層表現為目標檢測器。類激活映射揭示了如何使CNN在接受影像級標籤訓練的情況下仍然具有定位能力。除了上述方法外,還有一些研究者認為WSOD是一個提案排序過程,通過選擇資訊量最大的區域,然後用影像級標註對這些區域進行訓練。WSOD的另一個簡單方法是屏蔽影像的不同部分。如果檢測分值急劇下降,則物體被覆蓋的概率較高。此外,交互注釋在訓練中考慮了人的回饋,從而提高了WSOD。最近,生成性對抗性訓練被用於WSOD。

5、應用

在本節中,我們將回顧過去20年來一些重要的檢測應用,包括行人檢測、人臉檢測、文本檢測、交通標誌/燈光檢測和遙感目標檢測。

5.1、行人檢測

行人檢測作為一種重要的目標檢測應用,在自動駕駛、影片監控、刑事偵查等領域得到了廣泛的關注。早期的行人檢測方法,如HOG檢測器、ICF檢測器,在特徵表示、分類器設計、檢測加速度等方面,為一般的目標檢測奠定了堅實的基礎。近年來,一些通用的目標檢測演算法,如Faster RCNN,被引入到行人檢測中,極大地推動了該領域的發展。

5.1.1、困難和挑戰

行人檢測的挑戰和困難可以總結如下。

  • 小行人:圖20 (a)顯示了一些遠離攝像機拍攝的小行人的例子。在Caltech Dataset[59,60]中,15%的行人身高小於30像素。
  • 難負:街景影像中的一些背景與行人的視覺外觀非常相似,如圖20 (b)所示。密集和閉塞行人:圖20 (c)顯示了密集和閉塞行人的一些例子。在Caltech的數據集中[59,60],沒有被遮擋的行人只佔行人總數的29%。
  • 實時檢測:高清影片中的實時行人檢測對於自動駕駛、影片監控等應用至關重要。

5.1.2、文獻回顧

行人檢測有著非常悠久的研究歷史。其發展可分為兩個技術階段:1)傳統的行人檢測和2)基於深度學習的行人檢測。關於這個主題的更多細節,請參考下面的調查。

  • 傳統行人檢測方法

由於計算資源的限制,Haar小波特徵在早期行人檢測中得到了廣泛的應用。為了提高對遮擋行人的檢測,當時流行的一種思想是「組件檢測」,即,把探測看作一個多部分探測器的集合,這些探測器分別訓練在不同的人體部位,如頭部、腿部和手臂上。隨著計算能力的提高,人們開始設計更加複雜的檢測模型,自2005年以來,基於梯度的表示和DPM已經成為行人檢測的主流。2009年,利用積分影像加速,提出了一種有效且輕量級的特徵表示:積分通道特徵(ICF)。ICF成為當時行人檢測的新標杆。除了特徵表示,還考慮了一些領域知識,如外觀恆常性和形狀對稱性以及立體資訊。

  • 基於深度學習的行人檢測

行人檢測是第一個使用深度學習的電腦視覺任務。

改進小行人檢測:雖然Fast/Faster R-CNN等深度學習目標檢測器在一般目標檢測方面表現出了最先進的性能,但由於卷積特徵的解析度較低,在小行人檢測方面的成功率有限[。最近解決這一問題的一些方法包括特徵融合,引入額外的高解析度手工特徵,以及基於多個解析度的集成檢測結果。

改進硬陰性檢測:最近的一些改進包括增強決策樹的集成,以及語義分割(作為行人上下文)。此外,還引入了「交叉模態學習」的思想,利用RGB影像和紅外影像來豐富硬底片的特徵。

改進密集遮擋行人檢測:如2.3.2節所述,CNN較深層的特徵具有較豐富的語義,但對密集目標檢測效果不佳。為此,一些研究人員考慮到目標的吸引力和周圍物體的排斥力,設計了新的損失函數。目標遮擋是密集行人經常遇到的另一個問題。局部檢測器的集成和注意機制是改善遮擋行人檢測最常見的方法。

5.2、人臉檢測

人臉檢測是最古老的電腦視覺應用之一。早期的人臉檢測,如VJ檢測器,極大地促進了目標檢測,其許多出色的思想甚至在今天的目標檢測中仍然發揮著重要的作用。人臉檢測已經應用於各行各業,如數位相機中的「微笑」檢測、電子商務中的「刷臉」、移動應用中的人臉化妝等。

5.2.1、困難和挑戰

人臉檢測的難點和挑戰可以總結如下:

類內變異:人臉可能呈現多種表情、膚色、姿勢和動作,如圖21 (a)所示。

遮擋:人臉可能被其他物體遮擋部分,如圖21 (b)所示。

多尺度檢測:檢測多種尺度下的人臉,尤其是一些微小的人臉,如圖21(c)所示。

實時檢測:移動設備上的人臉檢測通常需要CPU的實時檢測速度。

5.2.2、文獻回顧

人臉檢測的研究可以追溯到20世紀90年代初。然後經歷了多個歷史時期:早期人臉檢測(2001年以前)、傳統人臉檢測(2001-2015)、基於深度學習的人臉檢測(2015-至今)。我們請讀者參考以下調查以了解更多詳情。

  • 早期的人臉檢測(2001年之前)

早期的人臉檢測演算法可以分為三類:1)基於規則的方法。這組方法將人類對構成一張典型面孔的知識進行編碼,並捕捉面部元素之間的關係。2)基於子空間分析的方法。這組方法分析了人臉在底層線性子空間中的分布。特徵面是這組方法的代表。3)基於學習的方法:將人臉檢測框架為滑動窗口+二分類(目標vs背景)過程。這一組常用的模型包括神經網路和SVM。

  • 傳統的人臉檢測(2000-2015年)

這一時期有兩組人臉探測器。第一組方法是基於增強決策樹構建的。這些方法計算簡單,但在複雜場景下檢測精度較低。第二組基於早期的卷積神經網路,利用特徵的共享計算加快檢測速度。

  • 基於深度學習的人臉檢測(2015年以後)

在深度學習時代,大多數人臉檢測演算法都遵循一般的對象檢測思想,如更快的RCNN和SSD。加速人臉檢測:級聯檢測(詳見3.3節)是深度學習時代加速人臉檢測最常用的方法[179,180]。另一種加速方法是預測影像中人臉的尺度分布[283],然後在選定的尺度上進行檢測。

改進多姿態和遮擋人臉檢測:利用「人臉校準」的思想,通過估計校準參數或通過多個檢測階段的逐步校準來改進多姿態人臉檢測。為了提高對遮擋人臉的檢測,最近提出了兩種方法。第一個是融入「注意機制」,突出潛在人臉目標的特徵。第二種是「基於零件的檢測」,它繼承了DPM的思想。

改進多尺度人臉檢測:近年來多尺度人臉檢測研究採用了與一般目標檢測相似的檢測策略,包括多尺度特徵融合和多解析度檢測(詳見2.3.2和4.2.2節)。

5.3、文本檢測

幾千年來,文字一直是人類的主要資訊載體。文本檢測的基本目標是確定給定影像中是否有文本,如果有,則定位並識別它。文本檢測有著非常廣泛的應用。它幫助視障人士「閱讀」街道標識和貨幣。在地理資訊系統中,對門牌號和街道標識的檢測和識別使得構建數字地圖更加容易。

5.3.1、困難和挑戰

文本檢測的難點和挑戰可以總結如下:

不同的字體和語言:文本可能有不同的字體、顏色和語言,如圖22 (a)所示。

文本旋轉和透視變形:文本可能有不同的方向,甚至可能有透視變形,如圖22 (b)所示。

密集排列的文本定位:長寬比大、布局密集的文本行很難精確定位,如圖22 (c)所示。破碎和模糊的字元:破碎和模糊的字元在街景影像中很常見。

5.3.2、文獻回顧

文本檢測包括兩個相關但相對獨立的任務:1)文本定位和2)文本識別。現有的文本檢測方法可分為「逐級檢測」和「綜合檢測」兩大類。我們請讀者參考下面的調查以了解更多細節。

  • 步進檢測vs集成檢測

步進檢測方法由字元分割、候選區域驗證、字元分組和單詞識別等一系列處理步驟組成。這組方法的優點是大部分的背景都可以在粗分割步驟中進行濾波,大大降低了後續處理的計算成本。缺點是需要仔細設置所有步驟的參數,這些錯誤將在每個步驟中發生和積累。相比之下,集成方法將文本檢測定義為一個聯合概率推理問題,在統一的框架下處理字元定位、分組和識別的步驟。這些方法的優點是避免了累積誤差,易於集成語言模型。缺點是,當考慮到大量字元類和候選窗口時,推理的計算開銷會很大。

  • 傳統方法VS深度學習方法

傳統的文本檢測方法大多採用無監督的方式生成候選文本,常用的方法有最大穩定極值區域分割(MSER)和形態學濾波。這些方法還考慮了文本的對稱性和筆畫結構等領域知識。近年來,學者們更多地關注文本的定位問題,而不是識別問題。最近提出了兩組方法。第一組方法將文本檢測作為一般目標檢測的特例。這些方法都有統一的檢測框架,但對於方向或長寬比較大的文本檢測效果較差。第二組方法將文本檢測框架為影像分割問題。這些方法的優點是對文本的形狀和方向沒有特殊的限制,缺點是根據分割結果很難區分排列密集的文本行。針對上述問題,近年來基於深度學習的文本檢測方法提出了一些解決方案。

對於文本旋轉和透視圖更改:這個問題最常見的解決方案是在錨框和RoI池層中引入與旋轉和透視圖更改相關的附加參數。

改進密集排列文本檢測:基於分段的方法在檢測密集排列文本方面顯示出更大的優勢。為了區分相鄰的文本行,最近提出了兩組解決方案。第一個是「段與鏈接」,其中「段」表示字元的熱度圖,「鏈接」表示相鄰的兩個段之間的連接,表示它們屬於同一單詞或文本行。第二組是引入額外的角/邊界檢測任務,以幫助分離密集排列的文本,其中一組角或封閉的邊界對應於單個文本行。

改進斷字和模糊文本檢測:最近出現的一種處理斷字和模糊文本的方法是使用單詞級識別和句子級識別。處理不同字體的文本,最有效的方法是使用合成樣本進行訓練。

5.4、交通燈和標誌檢測

對於文本旋轉和透視圖更改:這個問題最常見的解決方案是在錨框和RoI池層中引入與旋轉和透視圖更改相關的附加參數。隨著自動駕駛技術的發展,交通標誌和交通燈的自動檢測近年來引起了人們的極大關注。在過去的幾十年里,雖然電腦視覺社區在很大程度上推動了對一般物體的檢測,而不是像交通燈和交通標誌這樣的固定模式,但認為它們的識別沒有挑戰性仍然是一個錯誤。

5.4.1、困難和挑戰

交通標誌/燈光探測的挑戰和困難可歸納如下:

光照變化:當行駛在強光下或夜間時,檢測尤為困難,如圖23 (a)所示。

運動模糊:由於汽車的運動,車載攝影機拍攝到的影像會變得模糊,如圖23 (b)所示。

惡劣天氣:在惡劣天氣下,如雨雪天氣,會影響影像品質,如圖23 (c)所示。

實時檢測:這對自動駕駛尤為重要。

5.4.2、文獻回顧

現有的交通標誌/燈光檢測方法可以分為兩大類:傳統的檢測方法和基於深度學習的檢測方法。關於這個話題的更多細節,我們請讀者參考下面的調查。

  • 傳統檢測方法

基於視覺的交通標誌/燈光檢測的研究最早可以追溯到20年前。由於交通標誌/訊號燈具有特定的形狀和顏色,傳統的檢測方法通常基於顏色閾值化、視覺顯著性檢測、形態填充法、邊緣/輪廓分析。由於上述方法僅僅是基於低水平視覺進行設計,在複雜的環境下往往會失敗(如圖23所示),因此一些研究者開始尋找除了基於視覺的方法之外的其他解決方案,例如將GPS與數字地圖相結合用於交通燈檢測。雖然「特徵金字塔+滑動窗」已經成為當時通用目標檢測和行人檢測的標準框架,但除了極少數的工作,主流的交通標誌/燈光檢測方法直到2010年才遵循這一範式。

  • 基於深度學習的檢測方法

在深度學習時代,一些著名的檢測器如fast RCNN和SSD被應用到交通標誌/燈光檢測任務中。在這些檢測器的基礎上,一些新的技術,如注意機制和對抗性訓練被用來改善複雜交通環境下的檢測。

5.5、遙感目標檢測

遙感成像技術為人們更好地了解地球打開了一扇門。近年來,隨著遙感影像解析度的提高,遙感目標檢測(如飛機、船舶、油壺等的檢測)成為研究熱點。遙感目標檢測在軍事偵察、災害救援、城市交通管理等方面有著廣泛的應用。

5.5.1、困難和挑戰

遙感目標檢測面臨的挑戰和困難總結如下:

「大數據」中的檢測:由於遙感影像數據量巨大,如何快速準確地檢測遙感目標仍然是一個問題。圖24 (a)為遙感影像與自然影像數據量對比圖。

遮擋目標:每天超過50%的地球表面被雲層覆蓋。圖24 (b)給出了一些被遮擋目標的例子。

領域適應:不同感測器(如不同調製和解析度)獲取的遙感影像存在很大差異。

5.5.2、文獻回顧

關於這個話題的更多細節,我們請讀者參考以下調查。

  • 傳統檢測方法

傳統的遙感目標檢測方法大多採用兩階段檢測範式:1)候選提取和2)目標驗證。在候選提取階段,常用的方法有基於灰度值濾波的方法、基於視覺顯著性的方法、基於小波變換的方法、基於異常檢測的方法等。上述方法的一個相似之處是它們都是非監督方法,因此在複雜的環境中通常會失敗。在目標驗證階段,常用的特徵包括HOG, LBP, SIFT等。此外,還有一些其他方法遵循滑動窗口檢測範式。為了檢測具有特定結構和形狀的目標,如油罐和近岸船舶,需要使用一些領域知識。例如,油壺檢測可以看作是圓/弧檢測問題。圖24近岸船。遙感目標檢測面臨的挑戰:(a)「大數據」檢測:單視圖遙感影像與VOC、ImageNet、MS-COCO平均影像大小的數據量比較。(b)被雲遮擋的目標。圖片來自邱S.等人。JSTARS2017[380],鄒澤明等。TGRS2016。檢測可視為對前甲板和船尾的檢測。為了改進遮擋目標檢測,常用的一種方法是「分部檢測」。為了檢測不同方向的目標,使用「混合模型」對不同方向的目標訓練不同的檢測器。

  • 基於深度學習的方法

RCNN在2014年取得巨大成功後,deep CNN很快被應用於遙感目標檢測。Fast RCNN、SSD等通用目標檢測框架在遙感領域受到越來越多的關注。由於遙感影像與日常影像的巨大差異,人們對深度CNN特徵對遙感影像的有效性進行了一些研究。人們發現,儘管深度CNN取得了巨大的成功,但它並不比傳統的光譜數據處理方法好。為了檢測不同方向的目標,一些研究者改進了ROI池層,使旋轉不變性更好。為了提高區域自適應能力,一些研究者從貝葉斯的角度提出了檢測方法,在檢測階段,根據測試影像的分布自適應更新模型。此外,注意機制和特徵融合策略也被用來改進小目標檢測。

6、結論和將來的方向

近20年來,在目標檢測方面取得了顯著的成就。本文不僅廣泛評論一些里程碑探測器(例如VJ探測器,HoG探測器,DPM, Faster-RCNN, YOLO,意思SSD,等等),關鍵技術為研究,加速方法,檢測應用中,數據集,和指標在其20年的歷史,而且還討論了社區目前遇到的挑戰,以及如何將這些探測器可以進一步擴展和改進。未來的目標檢測研究可能會集中在以下幾個方面:

  • 輕量級目標檢測:加快檢測演算法的速度,使其能夠在移動設備上平穩運行。一些重要的應用包括移動增強現實、智慧攝影機、人臉驗證等。雖然近年來已經做了很大的努力,但機器和人眼之間的速度差距仍然很大,特別是在檢測一些小物體時。
  • 檢測與自動化:最近基於深度學習的檢測器變得越來越複雜,嚴重依賴於經驗。未來的方向是通過神經結構搜索,減少在設計檢測模型時的人為干預(例如,如何設計引擎,如何設置錨盒)。AutoML可能是未來的目標檢測。
  • 檢測滿足域自適應:任何目標檢測器的訓練過程本質上都可以看作是一個在獨立且同分布(i.i.d)數據假設下的似然估計過程。使用非i.i.d進行目標檢測。數據,特別是對一些實際應用程式來說,仍然是一個挑戰。GAN在領域自適應方面顯示出良好的應用前景,對未來的目標檢測具有重要的指導意義。
  • 弱監督檢測:基於深度學習的檢測器的訓練通常依賴於大量注釋良好的影像。注釋過程耗時、開銷大且效率低。開發弱監督檢測技術,只使用影像級標註或部分使用邊界框標註對檢測器進行訓練,對於降低人工成本和提高檢測靈活性具有重要意義。
  • 小目標檢測:在大場景中檢測小目標一直是一個挑戰。該研究方向的一些潛在應用包括利用遙感影像計算野生動物的數量和檢測一些重要軍事目標的狀態。一些進一步的方向可能包括視覺注意機制的集成和高解析度輕量級網路的設計。
  • 影片檢測:高清影片中的實時目標檢測/跟蹤對於影片監控和自主駕駛具有重要意義。傳統的目標檢測器通常設計為基於影像的檢測,而忽略了影片幀之間的相關性。通過探索時空相關性來改進檢測是一個重要的研究方向。
  • 資訊融合檢測:RGB-D影像、三維點雲、光學雷達等多數據源/多模式數據的目標檢測對自主駕駛和無人機應用具有重要意義。目前存在的問題包括:如何將訓練有素的檢測器移植到不同的數據模式,如何進行資訊融合以提高檢測能力等。站在技術發展的高速公路上,我們相信這篇論文將幫助讀者建立一個大的影像目標檢測,並找到這個快速移動的研究領域的未來方向。