Deep Learning for Generic Object Detection: A Survey -- 目標檢測綜述總結
最近,中國國防科技大學、芬蘭奧盧大學、澳大利亞悉尼大學、中國香港中文大學和加拿大滑鐵盧大學等人推出一篇最新目標檢測綜述,詳細闡述了當前目標檢測最新成就和關鍵技術。文章最後總結了未來8個比較有前景的方向,對學習目標檢測的人員提供了很大的幫助,在此翻譯這篇文章,方便閱讀與理解。
此外,來自首爾國立大學的 Lee hoseong 在近期開源了「deep learning object detection」GitHub 專案,正是參考該論文開發的。該專案集合了從 2013 年 11 月提出的 R-CNN 至在近期舉辦的 ECCV2018 上發表的 RFBNet 等四十多篇關於目標檢測的論文,相當全面。這些論文很多都曾發表在機器學習或人工智慧頂會上,如 ICLR、NIPS、CVPR、ICCV、ECCV 等。正如圖中紅色字型標示的那樣,其中也包含了很多代表性的成果,如從 R-CNN 到 Mask R-CNN 的 R-CNN 系列、YOLO 系列、RPN、SSD、FPN 以及 RetinaNet 等。無論對剛入門的機器學習新手,還是想深入研究目標檢測的研究者,都是難得的學習、參考資源。不僅如此,專案作者還給出了相應的完整資源列表,包括論文、官方/非官方實現。下邊就是GitHub的連結。
摘要
通用目標檢測旨在從自然影象中定位大量預定義類別的物體例項,是計算機視覺中最基本和最具挑戰性的問題之一。近年來,深度學習技術已成為資料中學習特徵表示的有力方法,並在通用目標檢測領域取得了顯著的突破。在深度學習快速發展的時期,本文提供對深度學習技術帶來的這一領域最近成就的全面調研。本次調研包括250多項關鍵技術,涵蓋了通用目標檢測研究的許多方面:前沿的檢測框架和基本子問題,包括目標特徵表示,候選區域生成,上下文資訊建模和訓練策略等;評價問題,特別是benchmark資料集,評價指標和最先進的方法。最後,我們討論了未來研究的方向。
關鍵詞:目標檢測;深度學習;卷積神經網路;目標識別。
1.介紹
影象目標檢測作為計算機視覺的一個長期、基本和具有挑戰性的問題,已經成為幾十年來研究的一個活躍領域。目標檢測的目的是確定是否有任何物件的例項從給定的類別(如人類,汽車,自行車,狗和貓)在某些給定的影象,如果存在,返回每個物件例項的空間位置和程度(例如,通過一個邊界框[179])。作為影象理解和計算機視覺的基礎,物件檢測構成了解決更復雜或更高層次的視覺任務的基礎,如分割、場景理解、物件跟蹤、影象定位、事件檢測和活動識別。物件檢測在人工智慧和資訊科技的許多領域都有廣泛的應用,包括機器人視覺、消費電子、安全、自動駕駛、人機互動、基於內容的影象檢索、智慧視訊監控和增強現實。
最近,深度學習技術[81, 116]已經成為從資料中自動學習特徵表示的強大方法。特別是,這些技術為物件檢測提供了顯著的改進,這一問題在過去五年中引起了極大的關注,儘管它已經被心理物理學家、神經學家和工程師們研究了幾十年。
物件檢測可以分為兩種型別 [69,240]:特定例項的檢測和特定類別的檢測。第一種型別的目標是檢測特定物件的例項(如唐納德特朗普的臉、五角大樓大樓或我的狗Penny),而第二種型別的目標是檢測不同的預定義物件類別的例項(例如人類、汽車、自行車和狗)。從歷史上看,在物件檢測領域的大部分努力都集中在檢測單個類別(如面孔和行人)或少數特定類別。與此相反,在過去的幾年中,研究界已經開始朝著建立通用目標探測系統的挑戰目標邁進,這些系統的物件探測能力的廣度與人類不相上下。
然而,在2012年,Krizhevsky等人提出了一個叫做AlexNet的深度卷積神經網路(DCNN),它在大規模的視覺識別挑戰(ILSRVC)[179]中實現了破紀錄的影象分類精度。從那時起,許多計算機視覺應用領域的研究都集中在深度學習方法上。基於深度學習的許多方法已經在通用物件檢測中湧現出來,[65、77、64,183、176]取得了巨大的進步,但我們不知道在過去的5年裡對這個主題進行了全面的調查。在這個快速進化的時代,這篇論文的重點是通過深度學習來獲得一般的物件檢測,以便在通用物件檢測中獲得更清晰的全景。
泛型物件檢測問題本身的定義如下:給定一個任意的影象,確定是否有來自預定義類別的語義物件的例項,如果存在的話,返回空間位置和範圍。物體指的是一種可以被看到和觸控的物質。儘管在很大程度上是物件類檢測的同義詞,但通用物件檢測更側重於探測廣泛的自然類別的方法,而不是物件例項或專門類別(例如,人臉、行人或汽車)。一般的物件檢測已經得到了極大的關注,最近在物件檢測方面的進展就證明了這一點,例如從2006年到2012年的PASCAL VOC檢測挑戰,從2013年到179年,ILSVRC的大規模檢測挑戰,以及自2015年以來的MS COCO大規模檢測挑戰。圖1顯示了近年來的顯著改善。
1.1與之前目標檢測方法相對比
表1. 2000年以來的一些相關調查摘要
如表1所總結的,已經發表了許多值得注意的物件檢測調查。其中包括許多關於特定物件檢測問題的優秀調查,例如行人檢測[51、60、48]人臉檢測[226、232],車輛檢測{196}和文字檢測{227}。Ponce et al. [169], Dickinson [46], Galleguillos 和 Belongie [59], Grauman 和 Leibe [69], 以及 Andreopoulos 和 Tsotsos [5]也做出了重要貢獻。
最近很少有直接針對通用物件檢測問題的調查,除了Zhang等人的研究,他對物件類檢測的課題進行了調查。然而,在[69、5、240]進行的研究主要是在2012年之前,因此在深度學習和相關方法最近取得的顯著成功之前。
深度學習允許由多個層次層組成的計算模型來學習非常複雜、微妙和抽象的表示。在過去的幾年中,深度學習在諸如視覺識別、物體檢測、語音識別、自然語言處理、醫學影象分析、藥物發現和基因組學等廣泛的問題上取得了重大進展。在不同型別的深層神經網路中,深度卷積神經網路(DCNN)[115、109、116]在處理影象、視訊、語音和音訊方面取得了突破。在這個快速進化的時代,研究人員最近發表了關於深度學習的不同方面的調查,包括Bengio等人[12],LeCun等人[116],Litjens等人[133],Gu等人[71],以及最近在ICCV和CVPR的教程。
儘管已經提出了許多基於深度學習的方法來進行反對檢測,但我們並不知道在過去的五年中對這一課題的全面調查,這是這項調查的重點。對現有工作進行徹底的審查和總結,對於進一步推進目標檢測至關重要,對於希望進入該領域的研究人員來說尤其如此。在我們的討論中不包括對特定物件檢測的廣泛研究,如人臉檢測[120、237、92],行人檢測[238、85],車輛檢測[247]和交通標誌檢測[253]。
1.2 分類方法
自深度學習進入以來,關於通用物件檢測的論文數量驚人。事實上,很多人,對藝術狀態的全面回顧已經超過了像這樣的論文的可能性。有必要建立一些選擇標準,例如,一篇論文的完整性和對該領域的重要性。我們更傾向於包括頂級期刊和會議論文。由於對空間的限制和我們的知識,我們真誠地向那些作品不包括在這篇文章中的作者道歉。對於相關主題的調查,讀者可以參考表1中的文章。本調查主要集中在過去五年中取得的重大進展;但是為了完整性和更好的可讀性,一些早期相關的工作也包括在內。我們把自己限制在靜態圖片上,把視訊物件檢測作為一個單獨的主題。
本文的其餘部分按如下方式組織。第2節總結了過去20年的相關背景,包括問題、關鍵挑戰和取得的進展。第3節中我們描述了目標檢測中的里程碑物件檢測器。第4節介紹了設計目標探測器的基本子問題和相關問題。第5節中對流行資料庫的總結和評價指標進行解釋。在第6節中討論了幾個有前景比較廣闊的目標檢測方向。
2.背景
2.1目標檢測的問題
通用物件檢測(即通用物件類別檢測),也稱為物件類檢測[240]或物件類別檢測,定義如下。給定一個影象,通用物件檢測的目標是確定是否有來自許多預定義類別的物件的例項,如果存在,則返回每個例項的空間位置和範圍。它更注重於檢測廣泛的自然類別,而不是特定的物件類別檢測,只有較窄的預定義類別(如面孔、行人或汽車)可能存在。儘管成千上萬的物體佔據了我們生活的視覺世界,但目前研究界主要對高度結構化的物體(如汽車、面孔、自行車和飛機)的定位感興趣,並對(如人類、牛和馬)的定位(如天空、草和雲)進行了闡述。
通常,一個物體的空間位置和範圍可以用一個邊界框來粗略地定義。一個與軸對齊的矩形緊緊地將物體[53、179],一個精確的畫素化的分割掩碼,或一個封閉的邊界[180、129],如圖3所示。據我們所知,在目前的文獻中,邊界框被更廣泛地用於評估通用物件檢測演算法[53,179],並且將是我們在這個調查中採用的方法。然而,社群正在走向深入的場景理解(從影象級物件分類到單一物件的定位,到一般的物件檢測,以及畫素化的物件分割),因此預期未來的挑戰將會在畫素級別[129]。
圖3 與通用物件檢測相關的識別問題。(a)影象級物件分類,(b)邊界框級通用物件檢測,(c)畫素級語義分割,(d)例項級語義分割。
泛型物件檢測與語義影象分割密切相關(圖3(c)),它的目標是將影象中的每個畫素分配給語義類標籤。物件例項分割(圖3(d))旨在區分同一物件類的不同例項,而語義劃分則不能區分不同的例項。泛型物件檢測也區分了同一物件的不同例項。與分割不同,物件檢測包括邊界框中的背景區域,這可能對分析有用。
2.2主要挑戰
圖4 通用物件檢測中的挑戰摘要
- 理想分類器
- 高準確度
- 高魯棒性
- 每個類別內的差異(不同的顏色、紋理、材質、形狀等)
- 目標例項差異(姿勢、形變)
- 成像條件和無約束環境(照明,檢視點,刻度,遮擋,陰影,雜波,模糊,運動,天氣狀況)
- 影象噪聲(成像噪聲,濾波失真,壓縮噪聲)
- 高辨別性
- 組內歧義
- 過多的真實的目標分類(有結構與無結構的)
- 高魯棒性
- 高效
- 現實世界中成千上萬的物件類別
- 要求定位和識別物件
- 大量可能的物件位置
- 大規模影象/視訊資料
- 高準確度
通用物件檢測的目標是定位和識別廣泛的自然物件類別。如圖4所示,通用物件檢測的理想目標是開發通用物件檢測演算法,實現兩個相互競爭的目標:高質量、高準確性和高效率。如圖5所示,高質量檢測必須準確地定位和識別影象或視訊幀中的物體,這樣才能區分真實世界中各種各樣的物件類別(例如高度的區別性),以及來自同一類別的物件例項,受限於類內外觀的變化,可以被本地化和識別(例如、高魯棒性)。高效率要求整個檢測任務以足夠高的幀速率執行,並使用可接受的記憶體和儲存使用。儘管經過了幾十年的研究和取得了重大進展,但準確和效率的綜合目標還沒有得到滿足。
2.2.1 有關精準度的挑戰
準確的說,精準度的挑戰來自於大量的類內變化和大量的物件類別的挑戰。
圖5 同一類的成像條件變化的變化與成像條件的變化
我們從細胞內的變化開始,可以分為兩種型別:內在因素和成像條件。對於前者,每個物件類別可以有許多不同的物件例項,可能在一個或多個不同的顏色,質地,材料,形狀,大小,如椅子類別圖5所示(h)。即使在一個更加狹義的類,如人或馬,物件例項可以出現在不同的姿勢,非剛性變形和不同的衣服。
對於後者,這些變化是由成像條件的變化和不受約束的環境造成的,這可能會對物體的外觀產生巨大的影響。特別地,不同的例項,甚至是相同的例項,都可以被捕獲到不同的地方:不同的時間、地點、天氣條件、攝像機、背景、光照、視點和觀看距離。所有這些條件都會產生顯著的物體外觀變化,如光照、姿勢、尺度、遮擋、背景雜波、陰影、模糊和運動,如圖5(a-g)所示。數字化的工件、噪音的腐敗、糟糕的解決方案和過濾的扭曲,可能會增加更多的挑戰。
2.2.2 有關效率的挑戰
除了類內的變化外,大量的物件類別,按照10000- 100000的順序,要求探測器有很大的辨別能力,以區分不同種類的不同種類的差異,如圖5(i)所示)。在實踐中,當前的檢測器主要關注結構化的物件類別,例如PASCAL VOC [53]、ILSVRC [179]和COCO [129]的物件類。顯然,現有的基準資料集所考慮的物件類別的數量比人類所能識別的要小得多。
效率的挑戰源於需要本地化和識別所有物件例項非常大量的物件類別,和非常大的可能位置和尺度在單一的影象,如圖所示,圖5中的例子©,另一個挑戰是可伸縮性:探測器應該能夠處理看不見的物件,未知的情況下,迅速增加影象資料。例如,ILSVRC [179]的規模已經對可以獲得的手工註釋施加了限制。由於影象的數量和類別的數量變得更大,可能不可能手工註釋它們,迫使演算法更多地依賴於弱監控的訓練資料。
2.3 過去二十年取得的進展
對物件識別的早期研究基於模板匹配技術和簡單的基於部分的模型,重點關注那些空間佈局大致是剛性的特定物件,比如人臉。在1990年之前,物件識別的主要模式是基於幾何表示,之後的焦點從幾何和先前的模型轉向使用統計分類器(如神經網路,SVM和Adaboost ),基於外觀特徵。這個成功的物件探測器家族為大多數人發揮的平臺。
在20世紀90年代末和21世紀初,物件探測研究取得了顯著的進步。近年來,物件檢測的里程碑在圖2中顯示,其中兩個主要的時代(SIFT vs. DCNN)被高亮顯示。外觀特徵從全域性表示從轉移到區域性表示,這些表示在翻譯、縮放、旋轉、光照、視點和遮擋等方面都是不變的。手工的區域性不變特徵得到了極大的流行,從比例不變式開始特徵轉換(篩選)特性,並且在各種視覺識別任務上的進展主要是基於對本地描述符的使用,比如Haar、SIFT、形狀聯絡、梯度直方圖(HOG)、區域性二值法(LBP)、協方差。這些區域性特性通常是由簡單的連線或功能池編碼器聚合而成的,比如Sivic和Zisserman 、Csurka等、弓形模型的空間金字塔匹配(SPM)以及Fisher向量。
多年來,手工設計的目標定位和鑑別分類器的多級優化通道在計算機視覺領域佔據了許多領域,包括物件檢測,直到2012年的重大轉折點,深度卷積神經網路(DCNN)在影象分類中達到了創紀錄的破紀錄。成功地將DCNNs應用於影象分類,進而轉移到物件檢測,從而導致了基於里程碑的CNN(RCNN)的Girshick等人的探測器。從那時起,物件檢測領域已經發生了巨大的變化,許多基於深度學習的方法已經開發出來,這在一定程度上要歸功於可用的GPU計算資源,以及大規模資料集的可用性,以及諸如ImageNet和COCO 的挑戰比賽。有了這些新的資料集,研究人員可以在檢測到數百個類別的物體時,從具有巨大的內部變化和類間相似性的影象中,找出更現實、更復雜的問題。
研究界已經開始朝著建立通用目標探測系統的挑戰性目標邁進,該系統能夠探測到許多物件類別與人類的匹配。這是一個主要的挑戰:根據認知科學家的說法,人類可以識別大約3000個入門級的類別,總共有3萬個視覺類別,以及與領域專業知識不同的類別的數量可能是十萬類。:儘管在過去的幾年裡取得了顯著的進步,但是設計一個精確、強健、高效的檢測和識別系統,在10000到100000個類別中接近人類水平的表現無疑是一個開放的問題。
3. 目標檢測的結構
在目標特徵表示和識別分類器方面已經有了穩定的進展,從手工製作特徵到學習DCNN特徵的巨大變化就是很好地證明。
相比之下,本地化的基本滑動視窗策略仍然是主流,儘管做了一些努力。然而,視窗的數量是很大的,並且隨著畫素的數量呈二次增長,在多個尺度和縱橫比上搜索的需求進一步增加了搜尋空間。搜尋空間巨大,計算複雜度高。因此,高效的檢測框架設計起著關鍵作用。通常採用的策略包括級聯、共享特性計算和減少每個視窗的計算。
如圖6所示,我們將回顧自深度學習進入通用物件檢測領域以來出現的里程碑檢測框架,總結如表10所示。在過去幾年中,幾乎所有提議的探測器都基於這些里程碑式的探測器之一,試圖在一個或多個方面進行改進。這些探測器大體上可分為兩大類:
- 兩級檢測框架,其中包括對區域提案的預處理步驟,使整個檢測過程分為兩個階段;
- 單級檢測框架,或區域建議自由框架,是一種不單獨檢測候選框的單一方法,使整個流水線處於單一階段。
3.1 Two Stage Framework
在基於區域的框架中,從影象中生成獨立於類別的區域建議框,從這些區域中提取CNN的特徵,然後使用特定於類別的分類器來確定建議框的類別標籤。從上圖可以看出,DetectorNet、OverFeat、MultiBox和RCNN獨立且幾乎同時提出使用CNNs進行通用物件檢測。
RCNN
RCNN靈感來自於突破影象分類結果由CNN和選擇性搜尋區域的手工特徵提取,Girshick等人是最早探索CNN通用物件檢測和發達RCNN,集AlexNet與區域建議方法選擇性搜尋。如上圖所示,RCNN框架中的訓練由多個階段組成。
- 使用選擇性搜素對未知區域進行提取可能包含目標的區域建議;
- 從影象中裁剪並扭曲成相同大小的區域提案,作為輸入,使用ImageNet等大型資料集對CNN模型進行預訓練;
- 利用CNN提取的固定長度特徵,對一類特定的線性支援向量機分類器進行訓練,取代了用finetuning學習的softmax分類器;
- 通過CNN特徵的每個物件類學習建議框迴歸。
儘管RCNN實現了高目標檢測質量,但仍存在明顯的缺陷:
- 訓練是一個多階段的複雜過程,由於每個階段都必須單獨訓練,所以訓練不優雅、緩慢且難以優化。
- 許多隻提供粗略本地化的區域建議需要外部檢測。
- SVM分類器和候選框迴歸訓練在磁碟空間和時間上都是佔用十分大,因為CNN的特徵是獨立於每幅影象的每個區域提案提取出來的,這給大規模檢測帶來了很大的挑戰,尤其是非常深入的CNN網路,如AlexNet[109]和VGG[191]。
- CNN特徵從每個檢測影象中提取每個目標的候選框,這個測試是十分緩慢的。
SPPNet
在測試過程中,CNN特徵提取是RCNN檢測的主要瓶頸,RCNN檢測管道需要從數千個扭曲區域中提取CNN特徵來獲得影象。注意到這些明顯的缺點,He 等人將傳統的空間金字塔池(SPP)引入到CNN架構中。自卷積層接受輸入的任意尺寸,固定大小的影象在CNN的要求僅僅是由於完全連線(FC)層,He 等人發現這個事實並新增一個SPP層之上的最後卷積(CONV)層獲得功能的固定長度的FC層。有了SPPnet, RCNN在不犧牲任何檢測質量的情況下獲得了顯著的加速,因為它只需要在整個測試影象上運行卷積層一次,就可以為任意大小的區域提案生成固定長度的特性。雖然SPPnet以數量級加速了RCNN的評估,但它並沒有導致檢測器訓練的類似加速。此外,SPPnet中的finetuning無法在SPP層之前更新卷積層,這限制了深度網路的準確性。
Fast RCNN
Girshick[64]提出了Fast RCNN,解決了RCNN和SPnet的一些缺點,同時提高了它們的檢測速度和質量。如圖8所示,Fast RCNN通過開發一個流線化的訓練過程來實現端到端檢測器訓練(當忽略區域建議生成過程時),該過程同時學習軟最大分類器和使用多工損失的特定於類的邊界盒迴歸,而不是比在RCNN/SPPNET中的三個獨立的階段訓練SULTMax分類器、SVM和BBR。Fast RCNN採用跨區域建議共享卷積計算的思想,在最後一CONV層和第一FC層之間新增感興趣區域(RoI)匯聚層來提取每個區域建議(即RoI)的固定長度特徵。本質上,ROI池使用特徵級的翹曲來近似影象水平上的翹曲。RoI匯聚層之後的特徵被饋送到FC層序列中,FC層最終分支到兩個兄弟輸出層:用於物件類別預測的軟最大概率和用於建議細化的特定於類的邊界框迴歸偏移。與RCNN/SPPnet相比,Fast RCNN顯著提高了效率——通常訓練速度快3倍,測試速度快10倍。綜上所述,Fast RCNN具有檢測質量高、單階段訓練過程更新所有網路層以及無需儲存特徵快取等優點。
Faster RCNN
雖然Fast RCNN顯著加快了檢測過程,但仍然依賴於外部區域的建議。區域建議書計算成為Fast RCNN的新瓶頸。最近的研究表明,CNNs具有在CONV層中定位物件的非凡能力[243,244,36,158,75],這種能力在FC層中被削弱了。因此,選擇性搜尋可以被CNN在產地提案中所替代。Ren等人[175,176]提出的更快的RCNN框架提出了一個高效準確的區域提案網路(RPN)來生成區域提案。它們利用單一網路完成區域提案的RPN和區域分類的Fast RCNN任務。在Fast RCNN中,RPN和Fast RCNN共享大量的卷積層。上一個共享卷積層的特性用於區域提議和來自不同分支的區域分類。RPN首先在每個CONV 特徵圖位置初始化不同比例和縱橫比的k nn參考框(即所謂的錨)。每個nn錨被對映到一個較低的維向量(例如ZF的256和VGG的512),該向量被注入兩個兄弟的FC層,一個物件分類層和一個box迴歸層。與Fast RCNN不同,RPN中用於迴歸的特徵大小相同。RPN與Fast RCNN共享CONV特性,從而支援高效的區域提案計算。RPN實際上是一種完全卷積網路(FCN) [138,185];因此,更快的RCNN是一個純粹的基於CNN的框架,不使用手工製作的特性。對於非常深入的VGG16型號[191],更快的RCNN可以在GPU上測試5fps(包括所有步驟),同時在PASCAL VOC 2007上使用每幅影象300個建議書實現了最先進的目標檢測精度。[175]中最初的更快的RCNN包含幾個交替的訓練步驟。然後在[176]中通過一步聯合訓練簡化了這一過程。
在Faster RCNN中,Lenc Vedaldi[117]挑戰的作用區域建議代選擇性搜尋等方法,研究區域的作用建議在基於CNN的探測器,一代,發現CNN包含足夠的幾何資訊準確的物件檢測CONV而不是FC層。他們證明了構建整合的、簡單的、快速的目標探測器的可能性,這些探測器完全依賴於CNNs,消除了區域提議生成方法,比如選擇性搜尋。
RFCN
RFCN (Region based Fully Convolutional Network),雖然Faster RCNN快一個數量級的速度比Fast RCNN,哪些地區的子網仍然需要每RoI應用(每張圖象幾百RoI)領導戴等。[40]提出RFCN探測器完全卷積(沒有隱藏的FC層),幾乎所有的計算共享整個影象。如圖8所示,RFCN僅在RoI子網路中不同於更快的RCNN。在更快的RCNN中,RoI池層之後的計算無法共享。一個自然的想法是最小化無法共享的計算量,因此Dai等人[40]提議使用所有CONV層來構建一個共享的RoI子網路,並且在預測之前從CONV特性的最後一層提取RoI作物。然而,Dai等人[40]發現這種天真的設計結果具有相當低的檢測精度,推測較深的CONV層對類別語義更敏感,對翻譯的敏感性較低,而目標檢測需要尊重翻譯方差的本地化表示。基於這一觀察,Dai等人[40]以一組專門的CONV層作為FCN輸出構建了一組位置敏感評分對映,在此基礎上增加了一個與更標準的RoI池不同的位置敏感RoI池層[64,175]。他們表明使用ResNet101[79]的RFCN可以達到與更快的RCNN相當的精度,通常在更快的執行時間。
Mask RCNN
He 等人[80]遵循概念簡單、效率和靈活性的精神,提出了Mask RCNN,通過擴充套件更快的RCNN來處理畫素級的物件例項分割。Mask RCNN採用相同的兩級管道,相同的一級(RPN)。在第二階段,在預測類和框偏移量的同時,Mask RCNN添加了一個分支,為每個RoI輸出一個二進位制掩碼。新的分支是一個完全卷積網路(FCN)[138,185],位於CNN專題地圖之上。為了避免原始RoI池層(RoIPool)造成的錯位,提出了一個RoIAlign層來保持畫素級空間對應。Mask RCNN採用骨幹網路ResNeXt101-FPN[223,130],實現了COCO物件例項分割和邊界盒物件檢測的頂級結果。它很容易訓練,概括得很好,並且只給更快的RCNN增加了很小的開銷,執行速度為5 FPS[80]。
Light Head RCNN
為了進一步加快RFCN[40]的檢測速度,Li等人[128]提出了輕頭RCNN,使檢測網路的頭部儘可能輕,減少RoI區域計算。Li等人[128]利用大核可分離卷積,得到了具有小通道數和廉價RCNN子網路的薄特徵對映,在速度和精度上取得了很好的平衡
3.2 Unified Pipeline (One Stage Pipeline)
RCNN[65]以來,3.1節基於區域的管道策略在檢測基準上占主導地位。3.1節中介紹的重要工作導致了更快、更精確的檢測器,目前流行的基準資料集的領先結果都基於更快的RCNN[175]。儘管取得了這些進展,但基於區域的方法對移動/可穿戴裝置來說計算成本可能很高,因為它們的儲存和計算能力有限。因此,研究人員不再試圖優化基於區域的複雜管道的單個元件,而是開始制定統一的檢測策略。
統一管道(Unified pipeline)廣泛指的是直接通過單一的前向CNN網路(不涉及區域提議生成或後分類)從完整影象中預測類概率和邊框偏移的體系結構。這種方法簡單而優雅,因為它完全消除了區域提案生成和後續畫素或特徵重取樣階段,將所有計算封裝在一個網路中。由於整個檢測管道是一個單一的網路,可以直接從檢測效能上進行端到端優化。
DetectorNet
Szegedy等人[198]率先探索CNNs用於目標檢測。DetectorNet設計的物件檢測是一個物件包圍盒掩碼的迴歸問題。他們使用AlexNet[109],用迴歸層代替最終的softmax分類器層。給定一個影象視窗,他們使用一個網路來預測粗網格上的前景畫素,以及四個額外的網路來預測物件的上、下、左、右半邊。然後分組程序將預測掩碼轉換為檢測到的邊框。每個物件型別和掩碼型別都需要訓練一個網路。它不會擴充套件到多個類。DetectorNet必須獲取影象的許多作物,併為每個作物的每個部分執行多個網路。
OverFeat
Sermanet等人[183]提出的一種基於完全卷積深度網路的現代單級目標檢測器。它是最成功的物件檢測框架之一,贏得了ILSVRC2013本地化競賽。OverFeat通過一個通過CNN網路的前進通道,以多尺度滑動視窗的方式執行物件檢測,這個網路(最終分類/迴歸層除外)只包含卷積層。通過這種方式,它們自然地在重疊區域之間共享計算。OverFeat生成一個特徵向量網格,每個特徵向量代表輸入影象中稍微不同的上下文檢視位置,可以預測物件的存在。一旦確定了一個物件,同樣的特徵就會被用來預測單個包圍盒迴歸子。此外,OverFeat利用多尺度特性來提高整體效能,它通過網路將多達6個放大的原始影象縮放到一起,並迭代地將它們聚合在一起,從而導致評估上下文檢視(最終特徵向量)的數量顯著增加。OverFeat比RCNN有顯著的速度優勢[65],RCNN是在同一時期提出的,但由於在那個階段很難訓練完全卷積網路,因此其準確率明顯較低。速度優勢來自於使用完全卷積網路共享重疊視窗之間的卷積計算
YOLO
YOLO (You Only Look Once),Redmon等人[174]提出了YOLO,一種統一的檢測器澆注物件檢測方法,作為從影象畫素到空間分隔的邊界框和相關類概率的迴歸問題。YOLO的設計如圖8所示。由於區域提議生成階段完全取消,YOLO直接使用一小部分候選區域預測探測。與基於區域的方法(如更快的RCNN)不同,YOLO使用全域性影象的特徵來預測檢測結果。特別是,YOLO將影象劃分為S - S網格。每個網格預測C類概率、B包圍框位置和這些框的信任得分。這些預測被編碼為一個S (5B +C)張量。通過完全拋棄區域提案生成步驟,YOLO的設計速度很快,實時執行45 FPS,快速版本,即快速YOLO[174],執行155 FPS。由於YOLO在進行預測時看到了整個影象,因此它隱式地編碼了物件類的上下文資訊,不太可能在後臺預測誤報。YOLO對邊框位置、比例尺、長寬比進行粗劃分,造成定位誤差較大。正如[174]中所討論的,YOLO可能無法本地化一些物件,尤其是小物件,可能是因為網格劃分非常粗糙,並且通過構建每個網格單元只能包含一個物件。目前還不清楚YOLO在資料集上能在多大程度上轉化為具有大量物件的良好效能,比如ILSVRC檢測挑戰。
YOLOv2 and YOLO9000
Redmon和Farhadi[173]提出YOLOv2,YOLO,意思的一個改良版本的定製GoogLeNet[200]網路被替換為一個更簡單的DarkNet19,加上利用一些策略是從現有的工作,如批量標準化[78],移除完全連線層,並使用好錨箱kmeans和多尺度的培訓學習。YOLOv2在標準檢測任務上達到了最先進的水平,比如PASCAL VOC和MS COCO。此外,Redmon和Farhadi[173]引入了YOLO9000,它可以實時檢測超過9000個物件類別,提出了一種聯合優化方法,利用WordTree在ImageNet和COCO上同步訓練,將來自多個數據源的資料組合起來。
SSD
SSD (Single Shot Detector),為了在不犧牲太多檢測精度的前提下保持實時速度,Liu等人[136]提出了SSD,其速度快於YOLO[174],其精度與最先進的基於區域的探測器(包括更快的RCNN)相比具有競爭力[175]。SSD有效地結合了RPN在更快的RCNN[175]、YOLO[174]和多尺度CONV特性[75]中的思想,在保持高檢測質量的同時,實現了快速的檢測速度。與YOLO一樣,SSD預測了固定數量的邊界框和這些框中存在物件類例項的得分,然後是NMS步驟,以生成最終檢測。SSD中的CNN網路是完全卷積的,其早期層基於標準架構,如VGG191,這被稱為基網路。然後,在基礎網路的末端新增幾個尺寸逐漸減小的輔助CONV層。最後一層低解析度的資訊在空間上可能過於粗糙,無法進行精確定位。SSD使用具有更高解析度的較淺的層來檢測小物件。對於不同大小的物件,SSD通過在多個CONV feature map上操作來在多個尺度上執行檢測,每個CONV feature map都預測相應大小的邊框的類別得分和框偏移量。對於300300的輸入,SSD在VOC2007測試中以59 FPS的速度在Nvidia Titan X上實現了74:3%的mAP。
4. Fundamental SubProblems
在這一節中描述了重要的子問題,包括特徵表示、區域建議、上下文資訊挖掘和訓練策略。對每種方法的主要貢獻進行了審查。
4.1 基於DCNN的物件表示
作為任何檢測器的主要組成部分之一,良好的特徵表示在目標檢測中是最重要的[46,65,62,249]。過去,大量的工作是致力於設計區域性描述符(例如,篩選[139]和豬[42])和探索方法(例如,袋字[194]和費舍爾向量[166])組和抽象描述符到更高層次表示為了讓歧視物件部分開始出現,但是這些特性表徵方法需要仔細的工程和相當大的專業領域。
相比之下,由多個處理層組成的深度學習方法(特別是深度CNNs,或DCNNs)可以直接從原始影象中學習到具有多層次抽象的強大特徵表示[12,116]。隨著學習過程降低了傳統特徵工程中特定領域知識的依賴性和複雜過程的需要[12,116],特徵表示的負擔已經轉移到更好的網路架構的設計上。
第3節(RCNN [65], Fast RCNN [64], Faster RCNN [175], YOLO [174], SSD[136])中綜述的主要框架一直在提高檢測的準確性和速度。人們普遍認為CNN的表現起著至關重要的作用,而CNN架構是探測器的引擎。因此,最近在檢測精度方面的大多數改進都是通過研究新網路的發展來實現的。因此我們首先回顧流行CNN架構中使用通用物件檢測,其次是審查表示努力致力於改善物件的特性,如發展不變的特性來適應幾何物件規模的變化,姿勢,觀點,一部分變形和執行多尺度分析,提高目標檢測在一個廣泛的鱗片。
4.1.1 受歡迎的CNN架構
ZFNet [234] VGGNet[191]、GoogLeNet[200]、Inception系列[99、201、202]、ResNet[79]、DenseNet[94]和SENet[91]等,其在物件識別方面的網路改進如表2所示。對CNN最近進展的進一步回顧可以在[71]中找到。
簡單地說,CNN有一個分層結構,由卷積、非線性、池化等層組成。從較細到較粗的層,影象反覆經歷濾波卷積,每一層都增加了這些濾波器的接受域(支援域)。例如,開拓AlexNet[110]有五個卷積層和兩個完全連線(FC)層,和第一層包含96過濾器的大小11×11×3。一般來說,第一個CNN層提取的是低層特徵(如邊緣),中間層提取的是複雜度不斷增加的特徵,如低層特徵的組合,後期卷積層檢測物件為早期部分的組合[234,12,116,157]。
從表2中可以觀察到,架構演變的趨勢是,網路越來越深入:AlexNet由8層,VGGNet 16層,以及最近ResNet和DenseNet都超過了100層,這是VGGNet[191]和GoogLeNet[200],特別是,這表明,增加深度可以提高深層網路的表徵能力。有趣的是,從表2中可以觀察到,AlexNet、OverFeat、ZFNet和VGGNet等網路的引數數量非常龐大,儘管只有幾層,因為大部分的引數來自FC層。因此,像Inception、ResNet和DenseNet這樣的新網路雖然具有非常大的網路深度,但是由於避免使用FC層,它們的引數要少得多。
隨著在精心設計的拓撲中使用Inception模組,GoogLeNet的引數大大減少了。同樣地,ResNet也證明了跳過連線來學習具有數百層的極深網路的有效性,贏得了ILSVRC 2015分類任務。InceptionResNets[202]受ResNet[79]的啟發,將Inception網路與快捷連線相結合,聲稱快捷連線可以顯著加速Inception網路的訓練。Huang等人[94]提出了從密集塊構建的DenseNets,密集塊以前饋方式將每一層連線到每一層,從而帶來了諸如引數效率、隱式深度監視和特性重用等引人注目的優勢。最近,胡錦濤等。[79]提出了一個建築單元稱為緊縮和激勵(SE)塊,可以結合現有的深架構來提高他們的效能代價最小的額外計算,通過自適應地調整channelwise特性響應通過顯式地建模卷積特性之間的相互依賴關係渠道,導致2017年贏得ILSVRC分類任務。CNN體系結構的研究依然活躍,大量的骨幹網路仍在湧現,如擴張的剩餘網路[230],Xception [35], DetNet[127],雙路徑網路(DPN)[31]。
CNN的訓練需要一個具有足夠標籤和內部多樣性的大標記資料集。與影象分類不同,檢測需要從影象中定位(可能有很多)物件。研究表明[161],使用具有物件級註釋(如ImageNet分類和定位資料集)的大型資料集對深度模型進行預處理,而不僅僅是影象級註釋,可以提高檢測效能。然而,收集邊框標籤是很昂貴的,尤其是對於成千上萬個類別來說。一個常見的場景是CNN在一個具有影象級別標籤的大型資料集(通常具有大量視覺類別)上進行預訓練;然後,經過預先訓練的CNN可以作為通用特徵提取器(172,8,49,228)直接應用到一個小資料集上,它可以支援更廣泛的視覺識別任務。對於檢測,預訓練網路通常在給定的檢測資料集上是finetuned2[49, 65, 67]。CNN預處理中使用了幾個大規模的影象分類資料集;其中,ImageNet1000資料集[44,179]有120萬張影象的1000個物件類別,或者比ImageNet1000大得多但類更少的Places資料集[245],或者是最近的一個將Places和ImageNet資料集結合起來的混合資料集[245]。
在[49,67,1]中,我們探索了未精細化的預訓練CNNs用於目標分類和檢測,其中特徵效能是提取層的函式;例如,對於在ImageNet上進行預訓練的AlexNet, FC6 / FC7 / Pool5的檢測準確率呈降序排列[49,67];finetuning預先訓練的網路可以顯著提高檢測效能[65,67],儘管在AlexNet的例子中,FC6和FC7的finetuning效能提升要比Pool5大得多,這表明Pool5的特性更加普遍。此外,源資料與目標資料集之間的關係或相似性起著關鍵作用,例如基於ImageNet的CNN特徵在與物件相關的影象資料集上表現出更好的效能[243]
4.1.2 改進物件表示的方法
深如CNN探測儀RCNN[65],快速RCNN[64],快RCNN[175]和YOLO[174]意思,通常使用2中列出的深CNN架構為骨幹網路和使用特性從CNN頂層物件表示,然而檢測物件在一個大範圍的尺度是一個基本的挑戰。解決這個問題的一個經典策略是在大量縮放的輸入影象(例如影象金字塔)上執行檢測器[56,65,77],這通常產生更精確的檢測,但推理時間和記憶體有明顯的限制。相比之下,CNN逐層計算其特徵層次結構,特徵層次結構中的子取樣層導致固有的多尺度金字塔。
這個層次結構固有特性產生特徵圖不同的空間解析度,但在結構固有的問題[75、138、190]:後來的(或更高版本)層有一個很大的接受域和強大的語義,並最健壯的變化例如物件構成,照明和部分變形,但解析度低和幾何細節丟失。相反,較早的(或較低的)層具有較小的接受域和豐富的幾何細節,但解析度高,對語義的敏感性小得多。直觀上,根據物件的大小,物件的語義概念可以出現在不同的層中。因此,如果目標物件很小,那麼它需要較早層中的詳細資訊,並且很可能在較晚層中消失,這在原則上使小物件檢測變得非常具有挑戰性,因此有人提出了一些技巧,如擴張卷積[229]或無粘性卷積[40,27]。另一方面,如果目標物件很大,那麼語義概念將出現在更晚的層中。顯然,僅從一層進行特徵特徵的不同尺度目標的預測並不是最理想的,因此提出了多種方法[190、241、130、104],通過利用多CNN層來提高檢測精度,大致可分為三種多尺度目標檢測:
- 結合CNN多層特徵進行檢測[75,103,10]
- 多個CNN層進行探測
- 以上兩種方法的組合[58,130,190,104,246,239]。
結合CNN多層特徵進行檢測
利用CNN多個層的聯合特徵進行檢測,是在進行預測之前,從多個層結合特徵。具有代表性的方法包括Hypercolumns[75]、HyperNet[103]和ION[10]。這種特性的組合通常是通過跳躍連線來完成的,這是一種經典的神經網路思想,它跳過網路中的某些層,將較早層的輸出作為後一層的輸入,這種體系結構最近在語義分割方面變得流行[138,185,75]。如圖10 (a)所示,ION[10]使用跳躍池從多層中提取RoI特徵,然後利用組合特徵對選擇性搜尋和邊框生成的目標提案進行分類。HyperNet[103],如圖10 (b)所示,採用類似的思路,融合深、中、淺層特徵,通過端到端聯合訓練策略生成目標方案並預測目標。這種方法只提取每幅影象中的100個候選區域。組合特性更具有描述性,更有利於定位和分類,但增加了計算複雜度。
多個CNN層進行探測
在多個CNN層進行檢測[138,185],通過平均分割概率,將多個層的粗預測和細預測結合起來。SSD[136]和MSCNN[20]、RBFNet[135]和DSOD[186]結合了多特徵對映的預測來處理不同大小的物件。SSD將不同規模的預設框分散到CNN中的多個層,強制每個層集中於預測某個規模的物件。Liu等[135]提出了RFBNet,簡單地將SSD後期的卷積層替換為接受域塊(receiver Field Block, RFB),以增強特徵的識別性和魯棒性。RFB是一個多分支卷積塊,類似於初始塊[200],但它將多個具有不同核心的分支和卷積層[27]組合在一起。MSCNN[20]對CNN的多層應用反褶積來增加feature map的解析度,然後使用這些層來學習區域提議和池特性。
以上兩種方法的組合
結合上述兩種方法,一方面,通過簡單地將skip特徵合併到UNet[154]、hypercolumn[75]、HyperNet[103]和ION[10]等檢測中,超特徵表示的實用性並沒有因為高維性而產生顯著的改善。另一方面,從較晚的接受域較大的層中檢測較大的物件,以及使用較早的接受域較小的層來檢測較小的物件是很自然的;然而,簡單地從較早的層檢測物件可能會導致較低的效能,因為較早的層具有較少的語義資訊。因此,為了結合兩者的優點,最近的一些作品提出了多層檢測物件的方法,通過對不同層的特徵進行組合,得到每個檢測層的特徵。代表方法包括SharpMask[168],Deconvolutional單發射擊檢測器(DSSD)[58],金字塔網路特性(紅外系統)[130],自頂向下調製(TDM)[190],反向連線與客體性網路(羅恩)[104]之前,ZIP122,傳輸檢測網路規模(標準化)[246],RefineDet StairNet和[239][217],如表3所示,對比圖11所示。
從圖11 (a1)到(e1)可以看出,這些方法具有高度相似的檢測體系結構,它們包含了一個自頂向下的網路和橫向連線,以補充標準的自底向上前饋網路。具體來說,自底向上傳遞後,最終的高階語義特徵通過自頂向下網路傳輸回來,並在經過橫向處理後與中間層的自底向上特徵相結合。結合後的特徵被進一步處理,然後用於檢測,也通過自頂向下網路傳輸.可以從
圖11 (a2)到(e2),一個主要的區別是反向融合塊(RFB)的設計,它處理下層過濾器的選擇和多層特徵的組合。自頂向下和橫向特徵通過小卷積處理,並與元素和或元素積或連線相結合。FPN作為一種通用的特徵提取器在一些應用中得到了顯著的改進,包括物件檢測[130,131]和例項分割[80],例如在基本的更快的RCNN檢測器中使用FPN。這些方法必須增加額外的層來獲得多尺度的特徵,引入了不可忽視的成本。STDN[246]利用DenseNet[94]將不同層的特徵進行組合,設計了一個scale transfer模組,獲得不同解析度的特徵對映。規模轉移模組模組可以直接嵌入DenseNet中,幾乎不需要額外的成本。
模型幾何轉換
DCNNs天生侷限於模型重要的幾何變換。一個 DCNN表示與影象變換的不變性和等價性的實證研究可以在[118]中找到。為了提高CNN表示的魯棒性,我們提出了一些方法,目的是學習不同型別轉換的CNN表示,比如scale [101, 18], rotate[18, 32, 218, 248],或者兩者都要[100]。
建模物件變形
在深度學習之前,基於可變形部件的模型(DPMs)[56]在通用物件檢測中非常成功,它通過可變形配置中的元件部件來表示物件。這種DPM模型對物體姿態、視點和非剛性變形的轉換不太敏感,因為部件的位置是相應的,並且它們的區域性外觀是穩定的,這促使研究人員[41,66,147,160,214]明確地建模物件組合,以改進基於CNN的檢測。第一次嘗試[66,214]使用AlexNet在基於DPM的檢測中學習到的深層特性,將DPMs和CNNs結合起來,但是沒有區域建議。為了使CNN能夠享受到物體零件形變建模的內建功能,我們提出了許多方法,包括DeepIDNet[160]、DCN[41]和DPFCN147。DeepIDNet[161]設計了一個變形約束池層取代常規max池層共享視覺學習模式及其deformationproperties跨不同的物件類、傣族等。[41]設計了一個可變形的卷積層和一層變形RoI池,這兩個是基於的想法增加正則網格取樣地點的特徵圖譜與額外的位置偏移和學習通過旋轉偏移,在DPFCN[147]中,Mordan等人提出了基於可變形部分的RoI池層,該層通過同時優化各部分的潛在位移,在目標方案周圍選擇有區別的部分。
4.2 情境建模
在物理世界中,視覺物件出現在特定的環境中,通常與其他相關物件共存,有很強的心理學證據[13,9]表明語境在人類物件識別中起著重要的作用。人們認識到,適當的背景建模有助於物件檢測和識別[203,155,27,26,47,59],特別是當物件的外觀特徵不足,因為小的物件大小,遮擋,或影象質量差。已經討論了許多不同型別的上下文,特別是參見調查[47,59]。上下文可以大致分為三類[13,59]
- 語義上下文:在某些場景中發現物件而在其他場景中不存在的可能性;
- 語義上下文:在某些場景中發現物件而在其他場景中不存在的可能性
- 縮放上下文:物件相對於場景中的其他物件有一個有限的大小集合。
在深度學習普及之前,有大量的工作[28,47,59,143,152,171,162],然而大部分工作還沒有在基於DCNN的目標探測器中進行探索[29,90]。
物件檢測的當前技術狀態[175,136,80]檢測物件沒有明確利用任何上下文資訊。人們普遍認為,DCNNs隱式地利用上下文資訊[234,242],因為它們學習了具有多層抽象的層次表示。儘管如此,在基於DCNN的檢測器中明確地探索上下文資訊仍然有價值[90,29,236],因此,下面將回顧最近在基於DCNN的物件檢測器中挖掘上下文線索的工作,這些工作被組織為全域性上下文和區域性上下文,這是由[240,59]中的早期工作所激發的。表4總結了具有代表性的方法。
全域性上下文[240,59]是指影象或場景級上下文,可以作為目標檢測的線索(例如,臥室可以預測床的存在)。DeepIDNet[160]將影象分類分數作為上下文特徵,與目標檢測分數相連線,提高檢測結果。在ION[10]中,Bell等人提出使用空間遞迴神經網路(RNNs)來探索整個影象的上下文資訊。在SegDeepM[250]中,Zhu等人提出了一種MRF模型,對每次檢測的外觀和上下文進行打分,並允許每個候選框選擇一個片段,對它們之間的協議進行打分。在[188]中,語義分割被用作語境啟動的一種形式。
本地上下文[240,59,171]考慮物件關係中的本地環境,物件與其周圍區域之間的互動。一般來說,建模物件的關係是具有挑戰性的,需要推理不同的類的邊界框,位置、尺度等。在深度學習時代,研究顯式模型物件的關係是相當有限的,代表的是空間記憶網路(SMN)[29],[90]物件關係網路,和結構推斷網路(罪)[137]。在SMN中,空間記憶體本質上是將物件例項組裝回一個偽影象表示,很容易將其輸入到另一個CNN中進行物件關係推理,這導致了一種新的順序推理體系結構,其中影象和記憶體並行處理,以獲得檢測結果,從而進一步更新記憶體。Hu等人[90]受自然語言處理領域注意力模組近期成功的啟發[211],提出了一種輕量級ORN,它通過外觀特徵和幾何形狀之間的互動,同時處理一組物件。它不需要額外的監督,而且很容易嵌入到現有的網路中。實踐證明,該方法能夠有效地改進現代目標檢測管道中的目標識別和重複刪除步驟,從而產生了第一個完全端到端的目標檢測器。SIN[137]考慮了兩種上下文,包括場景上下文資訊和單一影象中的物件關係。將目標檢測問題歸結為圖結構推理問題,在給定影象的情況下,將物件視為圖中的節點,將物件之間的關係建模為圖中的邊
更廣泛的方法更簡單地解決了這個問題,通常是通過增大檢測視窗大小來提取某種形式的區域性上下文。代表性的方法有MRCNN[62]、門控雙向CNN (GBDNet)[235, 236]、對語境CNN (ACCNN)[123]、CoupleNet[251]、Sermanet等[182]。
在MRCNN62(圖13),除了功能從原始物件中提取建議在最後CONV骨幹層,Gidaris和Komodakis提出提取物件的特性從不同的地區建議(一半地區、邊境地區、中部地區、上下文區域和語義分割區域),以獲得更豐富、更健壯的物件表示。所有這些特性都通過連線簡單地組合在一起。
從那以後,人們提出了許多與MRCNN密切相關的方法。[233]中的方法只使用了四個上下文區域,組織在一箇中央凹結構中,在那裡分類器被共同訓練到末端。Zeng等人提出了GBDNet235,236,從目標方案周圍的多尺度上下文化區域提取特徵,以提高檢測效能。與單純的對每個區域分別學習CNN特徵並將其連線起來的方法不同,GBDNet可以通過卷積的方式在不同上下文區域的特徵之間傳遞訊息。Zeng等人注意到訊息傳遞並不總是有幫助的,而是依賴於單個樣本,他們使用門控函式來控制訊息傳輸,就像在長短時記憶(Long - Short - Term Memory, LSTM)網路中一樣[83]。與GBDNet同時,Li等[123]提出了ACCNN(圖13 ©),利用全域性和區域性上下文資訊方便目標檢測。為了捕獲全域性上下文,我們提出了一個多尺度的區域性上下文化(MLC)子網路,該子網路通過多重疊加的LSTM層為輸入影象生成一個注意力對映,以突出有用的全域性上下文位置。Li等[123]為了對區域性環境上下文進行編碼,採用了與MRCNN相似的方法[62]。如圖13 (d)所示,CoupleNet[251]在概念上與ACCNN[123]相似,但構建於RFCN[40]之上。除了RFCN[40]中的原始分支使用位置敏感的RoI池來捕獲物件資訊外,CoupleNet[251]還添加了一個分支來使用RoI池對全域性上下文資訊進行編碼。
4.3檢測的建議方法
一個物體可以定位在影象的任何位置和比例。在手工製作特徵描述符(例如SIFT[140]、HOG[42]和LBP[153])的鼎盛時期,詞包(BoW)[194,37]和DPM[55]使用滑動視窗技術[213,42,55,76,212]。然而,視窗的數量是很大的,並且隨著影象中畫素的增加而增加,在多個尺度和縱橫比下的搜尋需求進一步顯著增加了搜尋空間。因此,應用更復雜的分類器在計算上過於昂貴。
在2011年左右,研究人員提出了利用檢測方案s3來緩解計算可操作性和高檢測質量之間的緊張關係[210,209]。object proposal源於[2]提出的object - eness這個概念,object proposal是影象中可能包含物件的一組候選區域。檢測建議通常作為預處理步驟,以通過限制需要由檢測器評估的區域數量來降低計算複雜度。因此,一個好的檢測方案應該具有以下特徵:
- 高召回,只需提出幾個建議即可實現;
- 建議儘可能準確地匹配目標;
- 高效率
基於選擇性搜尋給出的檢測建議[210,209]的目標檢測的成功吸引了廣泛的興趣[21,7,3,33,254,50,105,144]。
對目標建議書演算法的全面綜述超出了本文的範圍,因為目標建議書具有超出目標檢測的應用[6,72,252]。我們請感興趣的讀者參考最近的調查[86,23],該調查對許多經典的物件建議演算法及其對檢測效能的影響進行了深入分析。我們的興趣在於回顧基於DCNNs、輸出類無關建議以及與通用物件檢測相關的物件建議方法。
2014年,目標提案[210,209]與DCNN特性[109]的融合,使得RCNN在通用目標檢測領域具有里程碑意義[65]。從那時起,檢測方案演算法迅速成為標準的預處理步驟,2014年以來PASCAL VOC[53]、ILSVRC[179]和MS COCO[129]物件檢測挑戰的所有獲獎作品都使用了檢測方案[65,160,64,175,236,80]。
在基於傳統低階線索(如顏色、紋理、邊緣和漸變)的目標提議方法中,選擇性搜尋[209]、MCG[7]和edgebox[254]是最流行的。隨著領域的快速發展,傳統的目標提議方法86作為獨立於檢測器的外部模組,成為檢測管道的瓶頸[175]。使用DCNNs的一類新出現的物件建議演算法[52,175,111,61,167,224]引起了廣泛的關注。
最近基於DCNN的物件提議方法一般分為兩類:基於邊框的和基於物件段的,有代表性的方法如表5所示。
邊框建議方法,Ren等人的RPC方法[175]最能說明包圍盒提案方法,如圖14所示。RPN通過在最後一個共享CONV層的feature map上滑動一個小網路來預測目標提案(如圖14所示)。在每個滑動視窗位置,它通過使用k個錨箱同時預測k個提案,其中每個錨箱4在影象的某個位置居中,並與特定的比例和長寬比相關聯。Ren等人[175]提出通過共享卷積層將RPN和Fast RCNN整合到一個網路中。這樣的設計導致了大量的加速和首個端到端檢測管道,更快的RCNN[175]。從表3和表4可以看出,RPN已被許多最先進的目標探測器廣泛選擇為提案方法
Lu等人[141]沒有將一組錨固定為MultiBox[52,199]和RPN[175],而是提出使用遞迴搜尋策略生成錨點位置,該策略可以自適應地引導計算資源關注可能包含物件的子區域。從整個影象開始,搜尋過程中訪問的所有區域都充當錨。對於搜尋過程中遇到的任何錨點區域,使用標量變焦指示器來決定是否進一步劃分該區域,並使用一個稱為鄰接和變焦網路(AZNet)的深度網路計算一組具有目標得分的邊界框。AZNet通過新增一個分支來擴充套件RPN,以與現有分支平行計算標量縮放指示器。
還有進一步的工作試圖通過利用多層卷積特性來生成目標提案[103,61,224,122]。Ghodrati等人[61]與RPN[175]同時提出了DeepProposal,該方案通過使用多個卷積特性的級聯來生成物件建議,構建一個逆級聯來選擇最有前途的物件位置,並以一種粗到細的方式來完善它們的框。HyperNet[103]是RPN的一種改進變體,它設計了一種超級特徵,這種特徵將多層卷積特徵聚合在一起,並通過端到端聯合訓練策略在生成提案和檢測物件時共享。Yang等人提出的CRAFT[224]也採用了cascade策略,首先訓練RPN網路生成目標提案,然後用它們訓練另一個二進位制快速RCNN網路,進一步區分目標和背景。Li等人[122]提出了一種用於改進RPN的ZIP方法,該方法利用了一種常用的方法,即在網路的不同深度使用多個卷積特徵對映來預測物件提議,從而集成了低層細節和高層語義。ZIP中使用的骨幹網是一個縮小的網路,受conv和deconv結構的啟發[138]。
最後,最近值得一提的工作包括Deepbox[111],它提出了一個輕量級的CNN來學習如何重新排列EdgeBox生成的提案,DeNet[208]引入了一個包圍盒角估計來有效預測目標提案,從而在一個更快的RCNN風格的兩級檢測器中取代RPN。
物件段建議書方法[167,168]旨在生成可能與物件相對應的段建議書。段建議比包圍盒建議更具有資訊性,並且在物件例項分割方面更進一步[74,39,126]。Pinheiro等人[167]提出的DeepMask是一項開創性的工作,通過深度網路直接從原始影象資料中學習片段建議。與RPN共享相似點之後,在多個共享卷積層之後,DeepMask將網路分割為兩個分支,以預測一個類無關的遮罩和一個相關的物件得分。類似於OverFeat中的高效滑動視窗預測策略[183],經過訓練的DeepMask網路在推理過程中以滑動視窗的方式應用於影象(及其重新調整後的版本)。最近Pinheiro等人[168]提出SharpMask,通過使用細化模組對DeepMask體系結構進行增強,類似於圖11 (b1)和(b2)所示的體系結構,通過自頂向下的細化過程對前饋網路進行增強。SharpMask可以有效地將早期特徵中豐富的空間資訊與後期層中編碼的強語義資訊結合起來,生成高保真物件掩碼。
由於完全卷積網路(FCN)用於語義分割[138]和DeepMask [167], Dai等人提出InstanceFCN[38]用於生成例項段建議。與DeepMask類似,InstanceFCN網路被拆分為兩個分支,但是這兩個分支完全是卷積的,其中一個分支生成一小組例項敏感評分對映,然後是輸出例項的組裝模組,另一個分支用於預測物件得分。Hu等人提出的FastMask[89]以類似於SSD[136]的一次性方式高效生成例項段提案,以便在深度網路中利用多尺度卷積特性。從多尺度卷積特徵圖中提取的滑動視窗被輸入到一個可縮放的注意頭模組,以預測分割掩碼和目標得分。FastMask聲稱在13 FPS 800×600解析度影象與一個輕微的貿易平均召回。Qiao等人[170]提出ScaleNet,通過顯式地新增一個規模預測階段,對SharpMask等[168]等以前的物件建議方法進行了擴充套件。也就是說,ScaleNet估計了輸入影象的物件尺度分佈,SharpMask在此基礎上根據ScaleNet預測的尺度搜索輸入影象,並輸出例項段建議。喬等人[170]的研究表明,他們的方法在超市資料集上的表