基于深度卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測研究綜述
作為計算機(jī)視覺中的基本視覺識別問題,目標(biāo)檢測在過去的幾十年中得到了廣泛地研究。目標(biāo)檢測旨在給定圖像中找到具有準(zhǔn)確定位的特定對象,并為每個對象分配一個對應(yīng)的標(biāo)簽。近年來,深度卷積神經(jīng)網(wǎng)絡(luò)DCNN(Deep Convolutional Neural Networks)憑借其特征學(xué)習(xí)和遷移學(xué)習(xí)的強(qiáng)大能力在圖像分類方面取得了一系列突破,在目標(biāo)檢測方面,它越來越受到人們的重視。因此,如何將CNN應(yīng)用于目標(biāo)檢測并獲得更好的性能是一項重要的研究。首先回顧和介紹了幾類經(jīng)典的目標(biāo)檢測算法;然后將深度學(xué)習(xí)算法的產(chǎn)生過程作為切入點,以系統(tǒng)的方式全面概述了各種目標(biāo)檢測方法;最后針對目標(biāo)檢測和深度學(xué)習(xí)算法面臨的重大挑戰(zhàn),討論了一些未來的方向,以促進(jìn)深度學(xué)習(xí)對目標(biāo)檢測的研究。
1 引 言
隨著世界經(jīng)濟(jì)的飛速發(fā)展,目標(biāo)檢測已經(jīng)成為社會安全、公共交通和國防軍事等各個領(lǐng)域的基礎(chǔ)性研究課題之一,在機(jī)器人導(dǎo)航[1]、航空航天[2]、工業(yè)檢測[3-4]、行人追蹤[5]和軍事應(yīng)用[6-7]等領(lǐng)域應(yīng)用廣泛。所謂的目標(biāo)檢測,是通過分析目標(biāo)的幾何特征,從圖像或視頻中定位感興趣的目標(biāo),準(zhǔn)確地判斷每個目標(biāo)的具體類別,并給出每個目標(biāo)的邊界框。然而,目標(biāo)所處的環(huán)境繽紛復(fù)雜、目標(biāo)本身通常具有不同的形態(tài)以及光亮、顏色和遮擋等多種因素的影響使目標(biāo)檢測在近年來受到廣泛關(guān)注。
傳統(tǒng)的目標(biāo)檢測的方法主要包括區(qū)域選擇、特征提取和分類三個階段。
(1)區(qū)域選擇是定位目標(biāo)位置。在定位的過程中,因為不能確定檢測目標(biāo)的大小、長寬比以及位置,因此使用多尺度滑動窗口,以便盡可能找到目標(biāo)的所有可能位置;
(2)采用SIFT(Scale-Invariant Feature Transform)[8],Strip[9],Haar[10]等能提高特征的抗變形能力和表達(dá)能力的方法進(jìn)行特征提取;
(3)利用AdaBoost[11]和DPM(Deformable Parts Model)[12]等方法通過提高分類器的準(zhǔn)確度和速度進(jìn)行特征分類。
盡管傳統(tǒng)的目標(biāo)檢測算法廣泛應(yīng)用于各個領(lǐng)域,但是其缺點引起人們的關(guān)注:
(1)眾多的候選窗口,不僅會產(chǎn)生很大的計算花銷,并且還會產(chǎn)生許多多余的窗口;
(2)語義鴻溝無法通過人工手動設(shè)計的描述符和經(jīng)過判別訓(xùn)練的淺層模型組合來彌補(bǔ);
(3)分類訓(xùn)練效果受到提取特征的影響,大量的特征維數(shù),不僅影響訓(xùn)練效果,還會產(chǎn)生“維數(shù)災(zāi)難”等問題;
(4)算法可遷移性差,并且對特定任務(wù)的依賴性高,當(dāng)檢測目標(biāo)發(fā)生較大改變時,需要設(shè)計新的算法。
為了能讓計算機(jī)模擬人類提取特征的過程而讓計算機(jī)更自然地獲取圖像信息,人們進(jìn)行不斷地研究和嘗試,2006年,深度學(xué)習(xí)被Hinton提出,他利用深度神經(jīng)網(wǎng)絡(luò)從大量數(shù)據(jù)中自動地學(xué)習(xí)高層語義特征。深度學(xué)習(xí)強(qiáng)大的表征能力以及豐富的特征表示使目標(biāo)檢測的準(zhǔn)確度獲得了很大提升,推動了目標(biāo)檢測的發(fā)展。
卷積神經(jīng)網(wǎng)絡(luò)不僅能夠提取高層特征,提高特征的表達(dá)能力,還能夠?qū)⑻卣魈崛 ⑻卣鬟x擇和特征分類融合在同一個模型中,通過端到端的訓(xùn)練,從整體上進(jìn)行功能優(yōu)化,增強(qiáng)特征的可分性。
2014年,Ross B.Girshick將檢測抽象為兩個過程,一是基于圖片提出若干可能包含目標(biāo)的區(qū)域(即圖片的局部裁剪),二是在提出的這些區(qū)域上運(yùn)行Alexnet分類網(wǎng)絡(luò),得到目標(biāo)的類別。這就是檢測任務(wù)轉(zhuǎn)化為區(qū)域上的分類任務(wù)的R-CNN(Convolutional Neural Networks)框架,它在目標(biāo)檢測方面取得重大突破,影響著檢測任務(wù)上的深度模型革命。基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測成為計算機(jī)視覺領(lǐng)域的研究熱點。
2 深度卷積神經(jīng)網(wǎng)絡(luò)概述
卷積神經(jīng)網(wǎng)絡(luò)是一種常用的深度學(xué)習(xí)網(wǎng)絡(luò)框架。1959年,Hubel & Wiesel[13]發(fā)現(xiàn)視覺系統(tǒng)中的可視皮層處理信息是分級處理的。20世紀(jì)90年代,LeCun等人[14]建立了CNN的現(xiàn)代結(jié)構(gòu),并對其進(jìn)行了改進(jìn)。他們設(shè)計了一種可以對手寫數(shù)字進(jìn)行分類的LeNet-5網(wǎng)絡(luò)。與其他神經(jīng)網(wǎng)絡(luò)相同,也能使用反向傳播算法[15]對數(shù)據(jù)進(jìn)行訓(xùn)練。
卷積神經(jīng)網(wǎng)絡(luò)可以獲取原始圖像的有效表示,這使得它能夠通過很少的預(yù)處理直接從原始像素識別視覺之上的規(guī)則。但是,訓(xùn)練數(shù)據(jù)的不足限制了計算機(jī)的計算能力,從而制約了LeNet-5在處理復(fù)雜問題方面的能力。之后,設(shè)計了多種方法來克服卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練深度的困難。其中AlexNet[16]框架的提出促進(jìn)了圖像識別領(lǐng)域的發(fā)展,該框架類似于LeNet-5,但層次結(jié)構(gòu)更深。同時使用了非線性激活函數(shù)ReLu[17]與Dropout[18]方法,取得了卓越的效果。
AlexNet之后,ZFNet[19],VGGNet[20],GoogleNet[21]和ResNet[22]等方法相繼被提出。從結(jié)構(gòu)上講,CNN發(fā)展的一個方向是增加層數(shù)。通過增加深度,可以利用增加的非線性得到目標(biāo)函數(shù)的近似結(jié)構(gòu),同時得到更好的特征。然而,這也使網(wǎng)絡(luò)的整體復(fù)雜性和優(yōu)化難度增加,并且會產(chǎn)生過度擬合現(xiàn)象。
自從2012年以來,多種改進(jìn)CNN的方法被提出。ZFNet對AlexNet的改進(jìn)首先通過將第一層的卷積核尺寸從11×11降為7×7,同時將卷積時的步長從4降至2。這樣擴(kuò)張中間的卷積層可以獲取到更多的信息。VGGNet將網(wǎng)絡(luò)的深度擴(kuò)展到了19層,并且每個卷積層使用了3×3這種小尺寸的卷積核,結(jié)果證明深度對網(wǎng)絡(luò)性能有著重要影響。GoogleNet同時增加了網(wǎng)絡(luò)的寬度與深度,相比于更窄更淺的網(wǎng)絡(luò),在計算量沒有增加的同時,網(wǎng)絡(luò)性能明顯增強(qiáng)。
3 通用的目標(biāo)檢測方法
通用的目標(biāo)檢測算法旨在任意一張圖片中定位和分類已有對象,并用矩形框標(biāo)記,最后顯示置信度。其主要包括兩種類型,一種是基于錨點的目標(biāo)檢測,一種是基于Anchor-free的檢測,其中基于錨點的目標(biāo)檢測分為Two-stage檢測模型和One-stage檢測模型,文中將進(jìn)行一一介紹。
3.1 基于Two-stage的檢測模型
3.1.1 R-CNN
R-CNN[23]不僅能夠提高候選邊界框質(zhì)量,還能提取高級特征,其工作可以分為三個階段:生成候選區(qū)域、基于CNN的特征提取和分類與定位。R-CNN采用選擇搜索[24]為每個圖片產(chǎn)生2k個區(qū)域提議,選擇性搜索方法依賴于簡單的自下而上的分組和顯著性提示,從而快速提供任意大小的更準(zhǔn)確的候選框,并有效減少了搜索空間。在分類上,R-CNN使用區(qū)域提議進(jìn)行評分,然后通過邊界框回歸調(diào)整評分區(qū)域,并用非極大值抑制進(jìn)行過濾以產(chǎn)生用于保留目標(biāo)位置的最終邊界框。
盡管R-CNN在準(zhǔn)確程度上相比于傳統(tǒng)方法有所提高,并且將CNN應(yīng)用于實際目標(biāo)檢測中具有重要意義,但是仍然存在一些缺點。
(1)全連接層的存在使得輸入圖像的大小固定,直接導(dǎo)致每個評估區(qū)域的整個CNN都需要重新計算,花費大量的測試時間;
(2)R-CNN的訓(xùn)練是分為多階段完成的。首先,對提議的卷積網(wǎng)絡(luò)進(jìn)行了微調(diào)。然后,將通過微調(diào)學(xué)習(xí)的softmax分類器替換為SVM。最后,訓(xùn)練邊界框回歸器;
(3)訓(xùn)練階段時間長,占用空間大。從不同區(qū)域提議提取并存儲在磁盤上的特征占用很大的內(nèi)存。
(4)盡管選擇性搜索可以生成具有較高召回率的區(qū)域提議,但是獲得的區(qū)域仍然存在多余的部分,并且這個過程需要耗費很長時間。
為了解決這些問題,現(xiàn)在已經(jīng)提出了許多方法。DeepBox[25]和SharpMask[26]試圖重新排序或者完善提取特征前的區(qū)域提議以去除冗余信息,獲得少數(shù)的有價值的建議。此外,還有一些改進(jìn)可以解決定位不準(zhǔn)確的問題。Saurabh Gupta等改進(jìn)了具有語義豐富的圖像和深度特征的RGB-D圖像的目標(biāo)檢測[27]。目標(biāo)檢測器和超像素分類框架的結(jié)合在語義場景分割任務(wù)上取得了可喜的成果。
3.1.2 SPP-net
為了解決因為目標(biāo)比例發(fā)生變化造成的目標(biāo)丟失或失真問題,He等人考慮到空間金字塔匹配(SPM)[28]的理論,并提出了一種名為SPP-net[29]的新型CNN體系結(jié)構(gòu)。SPM需要更精細(xì)的尺度才能將圖像劃分為多個部分,并將量化的局部特征聚合為中級表示形式。
目標(biāo)檢測中SPP-net的結(jié)構(gòu)如圖2所示,與R-CNN不同,目標(biāo)檢測中SPP-net重新使用了第五層卷積層(Conv5)的特征圖,將任意大小的區(qū)域提議投影成固定長度的特征向量。這些特征圖的可重復(fù)使用的可行性不僅涉及局部響應(yīng)的增強(qiáng),而且與其空間位置也有關(guān)系。SPP-net不僅可以通過估計不同區(qū)域提議的大小來獲得更好的結(jié)果,而且還可以通過共享不同區(qū)域之間的SPP層,提前計算成本來提高測試期間的效率。
3.1.3 Fast-R-CNN
與R-CNN相比,盡管SPP-net網(wǎng)絡(luò)在準(zhǔn)確性和效率上都提高了很多,但是仍然存在一些問題。SPP-net 采用了跟R-CNN幾乎相同的多級操作,需要額外的存儲空間。除此之外,在SPP層之前的卷積層不能使用微調(diào)算法進(jìn)行更新參數(shù)[29],這些都會導(dǎo)致深度網(wǎng)絡(luò)的準(zhǔn)確性下降。
針對以上問題,Girshick[30]引入了多任務(wù)損失,并提出了一種新穎的名為Fast R-CNN的卷積神經(jīng)網(wǎng)絡(luò)。Fast-R-CNN在卷積的最后一層采用感興趣區(qū)域(Region of Interests,ROI)池化生成固定尺寸的特征圖,另外,使用多任務(wù)損失函數(shù),將邊界回歸加入到CNN網(wǎng)絡(luò)中進(jìn)行訓(xùn)練。Fast R-CNN的體系結(jié)構(gòu)如圖3所示,體系整個圖像都經(jīng)過卷積層處理后生成特征圖。然后,從每個感興趣區(qū)域的區(qū)域提議中提取一個固定長度的特征向量。感興趣區(qū)域?qū)邮翘厥獾腟PP層,它只有一個金字塔。它將每個特征向量送入一系列全連接層,最后分為兩個同級輸出層。一個輸出層產(chǎn)生所有C+1類(C目標(biāo)類加上一個“背景”類)的softmax概率,另一輸出層用四個數(shù)值對編碼的邊界框的位置進(jìn)行編碼。這些過程中的所有參數(shù)(生成區(qū)域提議的除外)都通過端到端的多任務(wù)損失函數(shù)進(jìn)行了優(yōu)化。
為了加快Fast R-CNN的運(yùn)行速度,可以采用兩個方式。第一,如果訓(xùn)練樣本來自不同的圖像,F(xiàn)ast R-CNN可以對小批樣本進(jìn)行分層采樣,即首先隨機(jī)采樣N個圖像,然后在每個圖像中采樣R/N個感興趣區(qū)域,其中R代表感興趣區(qū)域的數(shù)量,在向前和向后傳播中從同一圖像共享計算和內(nèi)存。第二,在前向通道[29]中,計算FC層花費了大量時間,SVD[31]可用于壓縮較大的FC層并加快測試過程。在Fast R-CNN中,無論區(qū)域提議如何產(chǎn)生,所有網(wǎng)絡(luò)層的訓(xùn)練都可以在一個多階段的損失下進(jìn)行單階段處理。這樣可以節(jié)省更多的存儲空間,并通過更合理的訓(xùn)練方式提高準(zhǔn)確性和效率。
3.1.4 Faster-R-CNN
在目標(biāo)檢測中的特征提取和分類上,F(xiàn)ast R-CNN已經(jīng)很好地解決了很多問題,但是最新的目標(biāo)檢測網(wǎng)絡(luò)仍然依賴于選擇性搜索算法和Edgebox來生成候選區(qū)域。區(qū)域提議的計算也影響效率的提高。為了解決這個問題,Ren等人引入了附加的區(qū)域提議網(wǎng)絡(luò)(Region Proposal Network,RPN)[32],如圖4所示,網(wǎng)絡(luò)通過與檢測網(wǎng)絡(luò)共享全卷積特征,以幾乎無代價的方式進(jìn)行工作。區(qū)域提議網(wǎng)絡(luò)是通過全卷積網(wǎng)絡(luò)實現(xiàn)的,該網(wǎng)絡(luò)具有同時預(yù)測每個位置上的目標(biāo)邊界和出現(xiàn)概率的能力。類似于[24],區(qū)域提議網(wǎng)絡(luò)將任意大小的圖像生成一組矩形目標(biāo)建議。區(qū)域提議網(wǎng)絡(luò)在特定的卷積層上運(yùn)行,與之前的層共享目標(biāo)檢測網(wǎng)絡(luò)。
在Faster R-CNN的作用下,基于區(qū)域提議的CNN體系結(jié)構(gòu)可以以端到端的方式訓(xùn)練。此外,在PASCAL VOC 2007上,最新的目標(biāo)檢測精度,可以在GPU上達(dá)到5 FPS(frame/s)的幀率。但是,更換訓(xùn)練算法非常耗時,并且區(qū)域提議網(wǎng)絡(luò)會生成類似于目標(biāo)的區(qū)域,而不是目標(biāo)實例,并且不擅長處理極端比例或形狀的目標(biāo)。
3.1.5 R-FCN
根據(jù)感興趣區(qū)域池化層劃分,用于目標(biāo)檢測的流行的深度網(wǎng)絡(luò)[30,32]由兩個子網(wǎng)絡(luò)組成:共享的完全卷積子網(wǎng)(獨立于感興趣區(qū)域)和不共享的感興趣區(qū)域子網(wǎng)。目前最先進(jìn)的圖像分類網(wǎng)絡(luò),例如殘差網(wǎng)絡(luò)(ResNets)[22]和GoogLeNets[21],都是完全卷積的。為了適應(yīng)這些架構(gòu),構(gòu)建沒有感興趣區(qū)域子網(wǎng)的完全卷積目標(biāo)檢測網(wǎng)絡(luò),然而事實證明這種解決方案效果并不好[22]。是因為在圖像分類中,圖像中的一個目標(biāo)的移動對分類是沒有影響的,但是在候選區(qū)域中,目標(biāo)的任何移動在目標(biāo)檢測中都是意義重大的。將感興趣區(qū)域手動接入卷積層中會解決平移不變形問題,但是會影響其他區(qū)域。因此,Li[33]等人提出了一種基于區(qū)域的全卷積網(wǎng)絡(luò)(R-FCN).其運(yùn)行步驟如圖5所示。
?
與Faster R-CNN不同的是,對于每一個類別,R-FCN的最后一個卷積層會生成k2個具有固定K×K網(wǎng)格的位置敏感得分圖,然后添加一個位置敏感感興趣區(qū)域?qū)舆M(jìn)行聚合。最后,在每個感興趣區(qū)域中,將k個位置敏感得分取平均,生成C+1維矢量,并計算跨類別的Softmax響應(yīng)。另外附加了一個4k2-d的卷積轉(zhuǎn)換層,獲取與類無關(guān)的邊界框。
借助R-FCN可以通過共享幾乎所有層來采用更強(qiáng)大的分類網(wǎng)絡(luò)實現(xiàn)全卷積架構(gòu)中的目標(biāo)檢測。在PASCAL VOC和Microsoft COCO[34]數(shù)據(jù)集上均獲得了最好的結(jié)果,測試速度為每張圖像170 ms。
3.2 基于one-stage的模型
基于two-stage的框架由幾個階段組成,區(qū)域提議生成,使用CNN進(jìn)行特征提取,分類和邊界框回歸,這些階段通常是分開訓(xùn)練。即使在最近的端到端網(wǎng)絡(luò)Faster R-CNN中,仍然需要進(jìn)行替代訓(xùn)練才能獲得區(qū)域提議網(wǎng)絡(luò)和檢測網(wǎng)絡(luò)之間的共享卷積參數(shù)。因此,處理不同部分都需要花費的時間成為實時目標(biāo)檢測的瓶頸。基于全局回歸/分類的一步框架,可以直接從圖像像素映射到邊界框坐標(biāo)和分類概率,減少時間開銷。本文介紹幾個重要的框架,即YOLO(You Only Look Once)和SSD(Single Shot MultiBox Detector)[35]。
3.2.1 YOLO
Redmon等人[36]提出了一個名為YOLOv1的框架,該框架利用最上層的整個特征圖來預(yù)測多個類別和計算邊界框的置信度。YOLOv1的基本思想如圖6所示,YOLOv1將輸入圖像劃分為S×S網(wǎng)格,每個網(wǎng)格單元負(fù)責(zé)預(yù)測以該網(wǎng)格單元為中心的目標(biāo)的邊界框以及其對應(yīng)的置信度分?jǐn)?shù)。其中置信度表示存在目標(biāo)的可能性并顯示其預(yù)測的置信度。與此同時,無論邊界框的數(shù)量為多少,都會在每個網(wǎng)格單元中預(yù)測C個條件類概率。
在YOLOv1的基礎(chǔ)上,一種改進(jìn)的版本YOLOv2[37]被提出,YOLOv2提出了一個新的擁有19個卷積層和5個池化層的分類主干網(wǎng)絡(luò),即Darknet-19, 并采用了更強(qiáng)大的深度卷積ImageNet主干框架,輸入圖片的分辨率由原來的224×224直接設(shè)置為448×448,這使得學(xué)習(xí)到的權(quán)重對于獲取微小信息更加敏感。除此之外,YOLOv2借鑒Faster R-CNN中設(shè)定先驗框的策略,使用全卷積網(wǎng)絡(luò),用K-means聚類算法獲取先驗框的寬和高,并通過預(yù)測偏移量來降低網(wǎng)絡(luò)訓(xùn)練難度。最后與批歸一化、多尺度處理技術(shù)一起形成訓(xùn)練網(wǎng)絡(luò)。
作為YOLOv2的改進(jìn)版本YOLOv3[38],提出了更深入,更強(qiáng)大特征提取網(wǎng)絡(luò)Darknet-53。為了適應(yīng)包含許多重疊標(biāo)簽的復(fù)雜數(shù)據(jù)集,YOLOv3使用多標(biāo)簽分類。在對邊界框進(jìn)行預(yù)測時,YOLOv3在3個不同比例的特征圖進(jìn)行預(yù)測,是當(dāng)時速度和精度最均衡的目標(biāo)檢測網(wǎng)絡(luò)。
3.2.2 SSD
YOLO難以處理組合中的小物體,是因為對邊界框的預(yù)測增加了空間約束[36]。同時,由于多次進(jìn)行下采樣,將其刻畫為具有新的寬高比的目標(biāo),產(chǎn)生了相對粗糙的特征。
針對這些問題,Liu等人提出了SSD[35],其靈感來自于MultiBox[39]、區(qū)域提議網(wǎng)絡(luò)[32]和多尺度表示[40]中采用的錨點。給定一個特定的特征圖,SSD利用一組具有不同長寬比和比例的默認(rèn)錨點框來使邊界框的輸出空間離散化。為了處理不同大小的目標(biāo),將會利用多個具有不同分辨率的特征圖的預(yù)測融合網(wǎng)絡(luò)。SSD在VGG16網(wǎng)絡(luò)末端添加了幾個功能層,這些功能層用于預(yù)測具有不同比例和縱橫比及其相關(guān)置信度的默認(rèn)框的偏移量。最終檢測結(jié)果是通過在多尺度邊界框上通過非極大值抑制獲得的。SSD在PASCAL VOC和COCO的準(zhǔn)確性方面明顯優(yōu)于Faster R-CNN,并且速度提高了三倍。SSD300(輸入圖像尺寸為300×300)以59 FPS運(yùn)行,相比于YOLO更加準(zhǔn)確和高效。針對SSD不善于處理小目標(biāo)的問題,可以通過采用更好的特征提取網(wǎng)絡(luò)主干(例如ResNet101),添加反卷積層以引入額外的大規(guī)模上下文[41]和設(shè)計更好的網(wǎng)絡(luò)結(jié)構(gòu)[42]。
SSD與YOLO在結(jié)構(gòu)上的不同在于,SSD的特征是從不同的卷積層提取出來,進(jìn)行組合再回歸和分類,而YOLO只有一層,在YOLO之后的版本中也借鑒了SSD的這種多尺度的思想。
SSD網(wǎng)絡(luò)中的預(yù)選框的大小和形狀不能直接通過學(xué)習(xí)獲得,需要通過手動設(shè)置。而網(wǎng)絡(luò)中的每一層使用的預(yù)選框大小和形狀都不一樣,調(diào)試過程依賴經(jīng)驗,除此之外,檢測靠近彼此的多個小目標(biāo)的問題仍然沒有解決。SSD使用低級特征檢測小目標(biāo),但是低級特征卷積層數(shù)少,存在特征提取不充分的問題,在理論上還有很大的提升空間。
3.3 基于Anchor-free的檢測模型
雖然基于Anchor的目標(biāo)檢測模型(one-stage模型和two-stage模型)在效率和精度上有很大的提升,但是自身的局限性也阻礙了模型的優(yōu)化創(chuàng)新。大多數(shù)預(yù)設(shè)的錨點是負(fù)樣本,在訓(xùn)練過程中會導(dǎo)致正樣本和負(fù)樣本的失衡;為了實現(xiàn)較高的查全率,需要設(shè)置大量密集的錨點候選框,為此造成巨大的計算成本和內(nèi)存需求開銷;預(yù)設(shè)的錨框是人為設(shè)置的,其比例和寬高比對數(shù)據(jù)集比較敏感,很大程度上會影響檢測性能。為了解決這個問題,最近提出一些Anchor-free檢測模型。
3.3.1 CornerNet[43]
CornerNet是一種新穎的anchor-free網(wǎng)絡(luò),使用Hourglass網(wǎng)絡(luò)作為主干網(wǎng)絡(luò),后面連接兩個預(yù)測模型,分別預(yù)測左上和右下角點。在特征圖的每個位置上都可以預(yù)測角度偏移、對嵌入和類熱圖。通過類熱圖可以計算出現(xiàn)拐角的可能性,并使用拐角偏移量來預(yù)測拐角位置。CornerNet在MSCOCO數(shù)據(jù)集上獲得了顯著改進(jìn)。
3.3.2 FSAF[44]
為了讓位于圖像中的每個目標(biāo)都能自助選擇最合適的特征層,F(xiàn)SAF(Feature Selective Anchor-Free)在特征層中不設(shè)置anchor,實現(xiàn)了anchor-free.在訓(xùn)練過程中,F(xiàn)SAF根據(jù)損失,自動選擇最好的特征層,并將每個對象動態(tài)分配給最合適的特征層,在這個特征層進(jìn)行后續(xù)的回歸和預(yù)測。在預(yù)測階段,F(xiàn)SAF可以獨立預(yù)測,也可以與基于錨點的方法相結(jié)合。
3.3.3 ExtremeNet[45]
ExtremeNet 是在CornerNet上的改進(jìn),不同于CorNet, ExtremeNet 的檢測目標(biāo)是4個極值點(最左點、最右點、最上點和最下點),而不是檢測目標(biāo)的左上點和右下點,這種做法避免了因為強(qiáng)行使用矩形包圍框包圍物體帶來的問題。當(dāng)檢測到極值點之后,利用匹配算法,將所有極值點進(jìn)行組合,通過驗證組合中是否存在中心極值點,對所有組合示例進(jìn)行篩選。該方法速度不是很快,但是標(biāo)注簡單,在此基礎(chǔ)上可以進(jìn)行更多的改進(jìn)。
3.3.4 FCOS[46]
FCOS(Fully Convolutional One-Stage)是一個基于全卷積的檢測網(wǎng)絡(luò),它利用一個新的分支“center-ness”來預(yù)測一個像素與對應(yīng)對框中心的偏差,所得到的分?jǐn)?shù)用于降低低質(zhì)量檢測框的權(quán)重,最后通過NMS(Non-Maximum Suppression)將接測結(jié)果進(jìn)行融合。FCOS可以將語義分割和目標(biāo)檢測任務(wù)結(jié)合,除此之外,還可以對模型進(jìn)行小幅度改造(例如,關(guān)鍵點檢測)以應(yīng)用于其他檢索任務(wù)。
3.3.5 CenterNet[47]
CenterNet結(jié)合了基于中心的方法(中心點)和基于角點的方法(左上角點和右下角點)的思想,使網(wǎng)絡(luò)花費小的代價便能感知物體內(nèi)部信息,從而消除誤檢框。其作用過程為,首先通過成對的角預(yù)測邊界框,然后將角點的位置映射到輸入圖片的對應(yīng)位置,最優(yōu)判斷哪兩個角點屬于同一物體,以便形成一個檢測框。該方法可以移植到其他錨點或者anchor-free網(wǎng)絡(luò)上。
3.4 應(yīng)用深度卷積神經(jīng)網(wǎng)絡(luò)算法進(jìn)行目標(biāo)檢測存在的問題
盡管深度卷積神經(jīng)網(wǎng)絡(luò)在目標(biāo)檢測中發(fā)展迅速并且取得了可喜的進(jìn)展,但是其本身算法的應(yīng)用仍然存在挑戰(zhàn),本文主要劃分為以下幾點:
算法屬于有監(jiān)督的學(xué)習(xí),在學(xué)習(xí)過程中需要大量的標(biāo)記樣本。從目標(biāo)檢測的發(fā)展?fàn)顩r來看,有監(jiān)督的學(xué)習(xí)已經(jīng)遠(yuǎn)遠(yuǎn)超過無監(jiān)督學(xué)習(xí)。訓(xùn)練深度卷積神經(jīng)網(wǎng)絡(luò)需要大量的數(shù)據(jù)。雖然在網(wǎng)上可以找到大量的數(shù)據(jù),但是都雜亂無章,需要人工進(jìn)行標(biāo)注,這幾年的標(biāo)注成本逐漸升高。
訓(xùn)練時間過長且計算資源代價大。深度學(xué)習(xí)的參數(shù)過多,訓(xùn)練周期時間長,GPU的運(yùn)用加快了訓(xùn)練速度,縮短了訓(xùn)練時間,深度卷積神經(jīng)網(wǎng)絡(luò)算法隨著GPU的運(yùn)用流行起來,然而價格昂貴的GPU為建立大規(guī)模GPU集群的科研院所帶來的負(fù)擔(dān)。
理論研究不足。借助GPU的發(fā)展,深度學(xué)習(xí)使用端到端的方式優(yōu)化大容量模型。近幾年,度量學(xué)習(xí)、大數(shù)據(jù)、各種各樣的樣本選擇方法、訓(xùn)練方法和網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)化都促進(jìn)了卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展,然而,這些進(jìn)步缺乏理論支撐,雖然有效,但是緩慢。這種沒有深層次本質(zhì)理解的改進(jìn),使得設(shè)計和訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)時,經(jīng)常會出現(xiàn)梯度不穩(wěn)定和擬合問題。卷積神經(jīng)網(wǎng)絡(luò)本身有很多超參數(shù),這些超參數(shù)的組合是一個很大的數(shù)字,很多時候靠經(jīng)驗無法完成,只能憑直覺反復(fù)嘗試其中一部分組合,因此現(xiàn)在的卷積神經(jīng)網(wǎng)絡(luò)只能實現(xiàn)效果很好,但是效果和效率都不能達(dá)到最優(yōu)。
4 目標(biāo)檢測數(shù)據(jù)集和評價指標(biāo)
建立具有較小偏差的較大數(shù)據(jù)集對于開發(fā)高級計算機(jī)視覺算法至關(guān)重要。作為場景理解的重要組成部分,目標(biāo)檢測已廣泛應(yīng)用于現(xiàn)代生活的許多領(lǐng)域,到目前為止,許多基準(zhǔn)數(shù)據(jù)集在目標(biāo)檢測中發(fā)揮了重要作用。在本節(jié)中,將展示衣蛾寫常見的檢測數(shù)據(jù)集以及用來衡量檢測器性能的評估指標(biāo)。
4.1 數(shù)據(jù)集
4.1.1 通用的目標(biāo)檢測數(shù)據(jù)集
(1)Pascal視覺挑戰(zhàn)數(shù)據(jù)集[48]
PASCAL視覺挑戰(zhàn)是早起計算機(jī)視覺中最重要的競賽之一。Pascal-VOC的兩個版本:VOC07和VOC12主要用于對象檢測。其中VOC07是包含20類圖片的中等數(shù)據(jù)集,分為三部分,分別使用2 501,2 510和5 011張圖像進(jìn)行訓(xùn)練、驗證和測試。VOC12與COC07包含相同類別的圖像,分別使用5 717,5 823和10 991張圖像進(jìn)行訓(xùn)練、驗證和測試近年來,隨著一些較大數(shù)據(jù)集的發(fā)布,VOC逐漸被取代。
(2)MSCOCO[34]是具有80個類別的大規(guī)模數(shù)據(jù)集,分別使用118 287,5 000和40 670圖像進(jìn)行訓(xùn)練,驗證和測試。
(3)Open Images[49]是一個包含920萬張圖像的數(shù)據(jù)集,并帶有圖像級標(biāo)簽、對象邊界框和視覺關(guān)系。Open Images V5在1.9 M圖像上總共包含600萬個對象類別的1 600萬個邊界框,這使其成為具有對象位置注釋的最大的現(xiàn)有數(shù)據(jù)集。該數(shù)據(jù)集中的框是由專業(yè)注釋者手工繪制的,以確保準(zhǔn)確性和一致性,并且圖像多樣化,并且大多數(shù)包含有多個對象的復(fù)雜場景。
(4)ImageNet[50]包含120萬個高分辨率圖像,是一個具有200個類別的大型數(shù)據(jù)集,數(shù)據(jù)規(guī)模大,對象范圍廣,這使得使用大型訓(xùn)練數(shù)據(jù)訓(xùn)練深度模型成為可能。
4.1.2 除了一些通用的目標(biāo)檢測數(shù)據(jù)集,還有一些數(shù)據(jù)集是用于具體檢測任務(wù)。比如,在人臉檢測任務(wù)中,經(jīng)常用到的數(shù)據(jù)集有WIDER FACE數(shù)據(jù)集[51]、FDDB數(shù)據(jù)集[52]和Pascal Face數(shù)據(jù)集[53]。在行人檢測任務(wù)中,廣泛使用的數(shù)據(jù)集是Caltech數(shù)據(jù)集[54]、CityPersons數(shù)據(jù)集[55]、KITTI數(shù)據(jù)集[56]、INRIA數(shù)據(jù)集[57]和ETH數(shù)據(jù)集[58]。
4.2 評估指標(biāo)
定位和分類是目標(biāo)檢測的兩個重要任務(wù),在物體檢測評估指標(biāo)下,檢測準(zhǔn)確性和定位精度是用于評估檢測準(zhǔn)確性常用的兩個標(biāo)準(zhǔn)。對于定位精度,IoU通過判斷預(yù)測邊界框及其對應(yīng)的分配地面真值判斷回歸質(zhì)量。對于檢測準(zhǔn)確性,常用均值平均精度(mAP)作為評估指標(biāo)。
5 目標(biāo)檢測的未來方向和任務(wù)
盡管目標(biāo)檢測發(fā)展迅速并且檢測效果顯著,但是仍然存在許多未解決的問題。
5.1 小物體檢測
在COCO數(shù)據(jù)集和人臉檢測任務(wù)中的檢測都是小物體檢測,為了提高遮擋情況下小物體的定位精度,可以從以下幾個方面對網(wǎng)絡(luò)體系結(jié)構(gòu)進(jìn)行修改。
尺度自適應(yīng)。檢測目標(biāo)通常以不同的比例存在,這在人臉檢測和行人檢測中表現(xiàn)尤為突出,為了增加尺度變化的魯棒性,需要訓(xùn)練尺度不變、多尺度[59]或尺度自適應(yīng)檢測器。對于尺度不變的檢測器,可以采用更強(qiáng)大的網(wǎng)絡(luò)架構(gòu)、負(fù)樣本挖掘[60]、反向連接[61]和子類別建模[62]。對于多尺度檢測器,產(chǎn)生多尺度特征圖的FPN[63]和利用縮小物體與大物體之間的表示差異的生成對抗網(wǎng)絡(luò)[64-65]都彌補(bǔ)了特征金字塔的不足。對于尺度自適應(yīng)檢測器,可以將知識圖譜、注意力機(jī)制、級聯(lián)網(wǎng)絡(luò)和尺度分布估計組合在一起以更好定位檢測目標(biāo)。
空間相關(guān)性和上下文建模。空間分布在目標(biāo)檢測中起著重要作用。因此,可以采用區(qū)域提議生成和網(wǎng)格回歸來獲取目標(biāo)的可能位置。但是,多個提議和目標(biāo)類別之間的相關(guān)性往往被忽略。除此之外,R-FCN中的位置敏感分?jǐn)?shù)圖會忽略全局結(jié)構(gòu)信息。為了解決這些問題,可以參考各種子集選擇和順序推理任務(wù)來獲得合適的解決方案。
多任務(wù)聯(lián)合優(yōu)化和多模式信息融合。根據(jù)目標(biāo)檢測中內(nèi)外部不同任務(wù)之間的相關(guān)性,許多研究人員研究了多任務(wù)聯(lián)合優(yōu)化[30,32]。但是除了其中提到的任務(wù)還需要考慮目標(biāo)檢測中不同子任務(wù)的特征,并將多任務(wù)優(yōu)化擴(kuò)展到其他應(yīng)用程序,例如實例分割和多目標(biāo)跟蹤。此外,在特定的應(yīng)用中,可以將來自不同形式的信息融合在一起,以構(gòu)建更具判別性的網(wǎng)絡(luò)。
5.2 減輕人工標(biāo)注的負(fù)擔(dān)并實現(xiàn)實時目標(biāo)檢測
5.2.1 級聯(lián)網(wǎng)絡(luò)
級聯(lián)網(wǎng)絡(luò)往往在不同的階段或者不同的層中構(gòu)建級聯(lián)檢測器,淺層中不使用易于區(qū)分的示例,后期的分類器可以處理更多不易區(qū)分的樣本。但在訓(xùn)練新網(wǎng)絡(luò)時,級聯(lián)的前段網(wǎng)絡(luò)將被固定,阻止了不同CNN的優(yōu)化,這表明了CNN級聯(lián)的端到端優(yōu)化的必要性。
5.2.2 無監(jiān)督和無監(jiān)督的學(xué)習(xí)
采用手動的方式標(biāo)注大量的邊界框非常耗時。為了減輕負(fù)擔(dān),可以整合語義先驗、無監(jiān)督目標(biāo)發(fā)現(xiàn)、多實例學(xué)習(xí)和深度神經(jīng)網(wǎng)絡(luò)預(yù)測等方式,充分利用圖像監(jiān)督分配目標(biāo)類別標(biāo)簽給相應(yīng)的目標(biāo)區(qū)域和精準(zhǔn)的目標(biāo)邊界。此外,弱注釋也有助于通過適量的注釋工作構(gòu)建高質(zhì)量的檢測模型。
5.2.3 網(wǎng)絡(luò)優(yōu)化
在特定的應(yīng)用程序和平臺下,通過選擇最佳的檢測架構(gòu)[66],在速度、內(nèi)存和準(zhǔn)確性之間取得平衡是非常重要的。然而,通過降低檢測精度來讓模型學(xué)習(xí)較少參數(shù)更為有意義[67]。引入更好的預(yù)訓(xùn)練方案、知識提煉和提示學(xué)習(xí)可以緩解這種情況。DSOD(Deeply Supervised Object)還提出可以從頭開始進(jìn)行訓(xùn)練,以彌合不同圖像源和任務(wù)之間的鴻溝[42]。
5.3 3D目標(biāo)檢測和視頻目標(biāo)檢測
3D目標(biāo)檢測。深度學(xué)習(xí)借助3D傳感器可以更好地理解2D圖像,并將圖像級別的知識擴(kuò)展到現(xiàn)實世界。但是,很少利用這些3D感知技術(shù)將3D邊界框放置在檢測到的目標(biāo)周圍。為了獲得更好的邊界標(biāo)定,慣性傳感器可以借助多視圖表示和3D建議網(wǎng)絡(luò)對深度信息進(jìn)行編碼。
視頻目標(biāo)檢測。在理解不同目標(biāo)的行為時,時間信息起著重要的作用。但是,準(zhǔn)確性容易受到視頻中目標(biāo)外觀退化的影響,并且不采用端到端的方式訓(xùn)練網(wǎng)絡(luò)。為此,可以考慮時空小管、光學(xué)流和LSTM等方法從根本上為連續(xù)的幀之間建立目標(biāo)關(guān)聯(lián)。
6 結(jié) 論
目標(biāo)檢測經(jīng)過幾十年的研究發(fā)展,已經(jīng)逐漸成為一個成熟的研究領(lǐng)域。憑借其強(qiáng)大的學(xué)習(xí)能力以及在處理遮擋,尺度轉(zhuǎn)換和背景切換方面的優(yōu)勢,基于深度學(xué)習(xí)的目標(biāo)檢測已成為近年來的研究熱點。本文詳細(xì)介紹了基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測框架,以及其在R-CNN上進(jìn)行的不同程度的改進(jìn),最后提出了目標(biāo)檢測在未來的發(fā)展方向,以全面了解目標(biāo)檢測領(lǐng)域。
審核編輯:湯梓紅
評論
查看更多