?

深層卷積神經網絡的目標檢測算法綜述

2019-09-09 03:38張澤苗趙逢禹
小型微型計算機系統 2019年9期
關鍵詞:邊框卷積框架

張澤苗,霍 歡,2,趙逢禹

1(上海理工大學 光電信息與計算機工程學院,上海 200093)2(復旦大學 上海市數據科學重點實驗室,上海 201203) E-mail:zhangzemiao@126.com

1 引 言

信息技術和硬件的快速發展,極大地提高了計算機的計算能力,依托于巨大計算能力的深度學習[1]也由此引起了廣泛的研究.卷積神經網絡(Convolutional Neural Networks,CNN)在機器視覺領域得到廣泛的應用并取得了巨大成功[2].目標檢測[3]是圖像語義分割[4]、實例分割[5]、圖像標注[6]和視頻理解[7]的基礎,是進行圖像場景識別、內容理解等高級視覺任務的前提,對于構建圖像檢索系統[8],人臉識別[9],物體識別,行人檢測[10],視頻監控以及實現無人自動駕駛[11]等領域具有重大意義.廣義上的目標檢測任務是指識別圖片中是否存在事先定義的類別目標物體,如果存在,返回該類別目標物體的空間位置以及空間范圍,一般使用矩形邊框進行標定[12],例如自然界中超過 1000個類別的目標檢測.狹義上的目標檢測是特指某個類別的目標物體的檢測,如:人臉識別,行人檢測,車輛檢測等.目標檢測算法最初利用人為構造的人工幾何特征(如:尺度不變特征變換[13](Scale-invariant Feature Transform,SIFT)、方向梯直方圖[14](Histogram of Oriented Gradients,HOG)、哈爾特征[15](Haar)等,先提取圖像特征,然后使用分類器(如:支持向量機,Support Vector Machine,SVM)進行分類,訓練完成分類之后進行邊框修正,實現物體的檢測.視覺詞袋模型[16](Bags-of-Visual-Words,BoVW)和形變部件模型[17](Deformable Part Model,DPM)等充分利用上述人工幾何特征,效果得到提升.其中DPM模型是在深度學習模型出現之前最成功的模型,它將目標對象建模成幾個部件的組合,先計算梯度直方圖,然后使用SVM訓練得到物體的梯度模型,最后利用梯度模型完成檢測,連續多年贏得The Pascal Visual Object Classes Challenge(2008-2012)的比賽[18].然而使用人工構造特征進行檢測存在費時,魯棒性差,檢測效果不理想的問題.2012年,Hinton[19]等人首次提出將深層卷積神經網絡(Deep Convolutional Neural Networks,DCNN)應用在大規模圖像分類上,奠定了DCNN在機器視覺方面的應用基礎.2013年,DetectorNet[20]首次將DCNN應用在目標檢測上.同年,Girshick[21]等提出了基于候選區域的卷積神經網絡(Region based CNN,R-CNN)目標檢測模型,解決了人工特征構造的問題,使用神經網絡自動抽取特征,R-CNN首先產生目標候選區域,然后再使用候選區域圖片完成后續檢測,在VOC 2012數據集上取得了53.3% mAP的成績,算法效果提升了30%的mAP.2014年,VGGNet[22]、GoogLeNet[23]分別取得了ILSVRC[12]2014 比賽亞軍和冠軍,進一步促進了DCNN在大規模圖像分類上的應用.2015年,文獻[24]在R-CNN的基 礎上提出了Fast R-CNN模型,改善R-CNN的特征提取流程,利用RoI Pooling層實現了從先前所有候選區域的CNN特征提取到整張圖片的單次CNN特征提取,加快了檢測速度.同年,文獻[30]又在Fast R-CNN的基礎上提出了Faster R-CNN,使用區域候選網絡(Region Proposal Network,RPN)代替Selective Search[31]的方法,首次實現了包括區域提取在內的端到端的目標檢測網絡,檢測速度達到了5fps,提升至原來的5倍,在VOC 2012數據集上檢測效果提升了10%.盡管Faster R-CNN進一步提升了檢測速度和檢測效果,但是Faster R-CNN的速度仍然無法達到實時檢測.Redmon等人認識到Faster R-CNN的RPN網絡需要進行大量運算,于是提出了YOLO[32]框架,首次提出了將目標定位歸為回歸問題的框架,雖然檢測準確率無法達到Faster R-CNN的檢測效果,但是檢測速度達到50fps.圖1按照時間順序給出了目標檢測的發展歷程,包括特征表達(SIFT[13],Bag of Visual Words[16],HOG[14])、檢測框架(DPM[17]、OverFeat[25]、R-CNN[21]、VGGNet[22]、GoogLeNet[23]、 ResNet[27]等)以及公共數據集(The PASCAL VOC[33]、MS COCO[34]、ImageNet[12]).

圖1 目標檢測主要發展歷程Fig.1 Key development of object detection

2 圖像分類

圖像分類是目標檢測的基礎,目標檢測是在分類基礎上,實現圖像中的目標定位,給出目標的具體空間位置和邊界,因此圖像分類的發展也推動著目標檢測的進步.目標檢測框架中需要對圖像進行特征提取,圖像分類為目標檢測框架提供了基本的特征提取卷積網絡骨架.在ILSVRC[12]比賽中,大量的優秀的卷積神經網絡框架相繼被提出,包括:AlexNet[19]、OverFeat[25]、VGGNet[22]、Inception v3[26]、ResNet[27]、DenseNet[28]以及SENet[29].深層卷積網絡的發展過程中,錯誤率逐步降低,從AlexNet的15.31%逐步降到SENet的2.3%,其中網絡層數總體趨勢為越來越多.由于網絡層數的增加,網絡參數相對應增加,因此網絡參數壓縮的研究也相繼被提出,包括GoogLeNet的inception模塊,ResNet的殘差連接結構等.Hinton等人提出的AlexNet首次將深層卷積神經網絡應用于大規模的圖像分類問題中,并在ILSVRC2012的測試集中實現了將15.315%的錯誤率,比第二名26.172%低11%左右,奠定了深層卷積神經網絡應用在圖像分類的基礎.Sermanet等人提出的OverFeat與AlexNet網絡結構類似,使用了更小的滑動窗口步長和不同大小、數量的卷積核,首次將圖像分類與目標定位、檢測結合起來實現效果的提升.Matthew D.Zeiler和Rob Fergus提出的ZFNet,調整了AlexNet的網絡結構,在第一層卷積層中使用了更小的卷積核以及在第一、二層卷積層中使用了更小的窗口滑動步長,通過卷積可視化進行調整,探索了不同網絡結構的分類效果.Karen Simonyan等人使用了3×3的卷積核加深了網絡深度,取得了更好的結果,改進過后的網絡稱為VGGNet.Christian Szegedy等人前后相繼提出了GoogleNet,Inception v2和Inception v3使用了inception模塊去拼接不同大小卷積核產生的特征圖,使得網絡結構變寬,而且參數急劇減小,引入批規范化(Batch Normalization,BN)加速網絡收斂,增加inception模塊數量從而加深網絡深度.2016年,Kaiming He等人發現在加深網絡層數的時候,網絡訓練損失并不會下降,于是提出了殘差連接結構,在加深網絡深度的同時減少網絡參數,提高了網絡的學習和擬合能力.2017年,Gao Huang等人通過設計稠密模塊(dense block)使得前向傳播中網絡層與其他網絡層都有連接,有效緩解了由于網絡深度過深導致的梯度消失問題,同時減少了網絡參數.2018年,Jie Hu等人設計了提出Squeeze and Excitation模塊充分利用了圖像不同通道之間的關系,能夠通過額外很小的計算代價,改進卷積神經網絡.

3 目標檢測算法評價指標

目標檢測算法的涉及的評價指標如下:

·檢測速度,幀每秒(Frames per second,fps):每秒鐘所能檢測的圖片的數量;

·IOU,intersection over union,實際邊框與邊框重疊部分與兩個邊框并集的比率.

(1)

其中,Bp為預測的位置邊框,Bg為物體實際的位置邊框,Bp∩Bg為Bp和Bg的交集的面積,Bp∪Bg為Bp和Bg的并集的面積.

·精確率,Precision,P

(2)

其中,TP為true positive,即正樣本中被預測正確的數量,FP為false positive,即負樣本被預測為正樣本的數量,一般IOU為0.5

·召回率,Recall,R

(3)

其中,FN為false negative,即正樣本被錯分為負樣本的數量.

·平均精確率,average precision,AP

(4)

其中,t為不同的IOU閾值下AOC曲線的召回率,如t=0.5時,只有當預測的邊框與實際的邊框的IOU ≥ 0.5時,預測邊框才為正樣本.

·平均精確率均值,mean average precision,mAP,指的是所有類別的AP的均值

(5)

其中N為類別的數量.

4 目標檢測框架

目標檢測的框架可分為以下兩類:

·基于候選區域(R-CNN)的深層卷積神經網絡兩步驟框架

基于候選區域的深層卷積神經網絡的目標檢測框架將目標檢測分為兩步,先提取圖片中目標可能存在的子區域,然后再將所有的子區域作為輸入,使用卷積神經網絡進行特征提取,最后再進行檢測分類和邊框回歸修正,其中包括R-CNN[21],SPPNet[35],Fast R-CNN[24],Faster R-CNN[30]、R-FCN[36]和Mask R-CNN[37]等.

·基于邊框回歸的單步驟單網絡框架

基于邊框回歸的單步驟單網絡框架是直接將邊框預測視為回歸預測,不再提前提取候選區域,原始圖像作為輸入,然后直接輸出預測結果,是一種真正意義上的端到端的單網絡框架,包括OverFeat[25],YOLO[32]以及SSD[38]等.

4.1 基于候選區域的深層卷積神經網絡兩步驟框架

4.1.1 R-CNN

2014年,Grishick等人使用Selective Search[31]產生候選區域,然后將所有候選區域輸入到CNN中提取出特征圖,最后使用SVM對特征圖進行分類,并使用線性回歸器對邊框預測進行修正,在數據集VOC 2012上該方法比之前應用DMP模型的方法提升了近30%的mAP,達到了53.5%的mAP.

如圖2所示,算法首先使用selective search算法,每張圖片產生2000個候選區域,然后縮放圖片到固定尺寸,輸入到CNN中進行特征提取,接著使用SVM進行分類判斷,最后再用線性回歸去修正所預測的邊框.

圖2 R-CNN流程Fig.2 Process of Fast R-CNN

R-CNN相對于之前的算法,在準確率方面得到了明顯了提升,但是R-CNN中候選區域提取、卷積網絡特征提取,SVM分類以及回歸器邊框修正都是分開進行操作,既耗時也無法共享參數和統一網絡損失.

4.1.2 Fast-CNN

R-CNN相對于傳統的DPM模型,檢測效果提升明顯,但是R-CNN需要對所有的候選區域都進行特征提取,同時還需單獨保存到磁盤,且候選區域提取、卷積網絡特征提取、SVM分類以及回歸器邊框修正都是分開進行操作,不僅費時還浪費存儲空間.2015年,Grishick等人對R-CNN進行了改進,提出Fast R-CNN[24],Fast R-CNN參考了SPPNet[35]的做法,使用RoI pooling層對候選區域進行映射,因此目標檢測框架只需對整張圖片進行單次CNN特征提取即可,CNN特征提取次數從之前的2000次優化為一次,極大提高了檢測速度,使用了金字塔池化的做法實現了處理不同大小的圖像,同時Fast R-CNN還使用softmax層以及線性回歸層代替R-CNN的SVM和單獨的線性回歸器,在忽略候選區域提取的步驟下,首次實現了端到端的目標檢測框架.相比于R-CNN和SPPNet,Faste R-CNN檢測速度提升了10倍,圖3給出了Fast R-CNN的算法示意圖.

圖3 Fast R-CNN流程Fig.3 Process of Fast R-CNN

4.1.3 Faster R-CNN

2015年,Ren等人提出的Faster R-CNN[30]解決了候選區域提取的瓶頸問題,提出了用候選區域生成網絡(Region Proposal Network,RPN)替代R-CNN和SPPNet所使用的Selective Search,實現了RPN和CNN的損失值統一,降低訓練難度,進一步提升了檢測效率.同時提出的anchor box概念,解決了同個位置多個目標檢測的問題,圖4給出了Faster R-CNN的流程.

4.1.4 RFCN

基于候選區域的深層卷積神經網絡的目標檢測框架包括候選區域提取網絡和特征提取的卷積網絡,盡管Faster R-CNN 相對于Fast R-CNN在檢測速度上提高一個數量級,Faster R-CNN的網絡中仍然需要對圖像中每個子區域進行處

圖4 Faster R-CNN流程Fig.4 Process of Faster R-CNN

理,無法實現候選區域提取網絡和特征提取的卷積網絡的權值共享.文獻[36]提出了基于區域的全卷積神經網絡(Region based Fully Convolutional Network,R-FCN),利用位置感知得分圖(position-sensitive score maps)來解決圖像變形在圖像分類任務中屬于一致而在目標檢測任務中不一致的問題,如圖5所示.R-FCN使用卷積網絡替代池化和全連接層,實現幾乎所有網絡層的計算共享,最終實現每張圖耗時170ms,比faster r-cnn快2.5~20倍.

圖5 R-FCN流程Fig.5 Process of R-FCN

4.1.5 Mask R-CNN

實例分割跟目標檢測密不可分,實例分割不僅要求能準確識別所有目標,還需要分割出單個實例,這兩個任務通常被認為是獨立的,因此容易因為實例重疊而產生虛假邊緣和系統誤差.文獻[37]提出了Mask R-CNN,在Faster R-CNN的基礎上增加了像素級別的實例分割遮罩分支,在進行目標檢測的同時實現實例分割,統一網絡損失.Mask R-CNN相對于Faster R-CNN而言只增加了很小的計算代價利用實例分割遮罩能為目標檢測任務提供補充信息.Mask R-CNN易于實現,具有很好的實例分割和對象檢測結果,只需要極小的修改便可應用到其他相關任務,圖6展示了Mask R-CNN的框架結構.

4.2 基于邊框回歸的單步驟單網絡框架

4.2.1 YOLO

YOLO(You Only Look Once)[32]重新定義目標檢測為圖像空間邊框回歸以及類別概率預測問題.如圖7所示,YOLO框架中只有單個網絡,輸入整張圖片,每張圖片分為N個方格,經過CNN的特征提取,然后使用softmax分類器以及線性回歸器,輸出目標檢測結果.由于YOLO框架中只有單個網絡,不需要提取候選區域,YOLO框架的計算量極大減少.相對于Faster R-CNN,YOLO犧牲了較小的準確率,但是檢測速度卻得到了極大的提升.實時檢測速度達到50fps,而Faster R-CNN只有5fps.

圖6 Mask R-CNN流程Fig.6 Process of Mask R-CNN

4.2.2 SSD

為了達到實時檢測的速度同時又不過于損失檢測準確率,Liu等人提出了SSD[38](Single Shot MultiBox Detector)模型,該模型比YOLO更加快速,同時檢測準確率也有所提升,

圖7 YOLO算法流程Fig.7 Process of YOLO

解決了YOLO中對于小物體檢測精度過低的問題.如圖8所示,SSD結合了YOLO和Faster R-CNN anchor box機制,SSD中使用了不同大小的多個卷積核,綜合利用了不同卷積層輸出的特征圖.與YOLO不同的是,SSD為每個類別都提前規定了不同比例的邊框模板,輸出的時候每個目標都輸出多個比例的邊框以及置信度.

圖8 SSD算法流程Fig.8 Process of SSD

4.3 近幾年目標檢測的發展

近幾年來,目標檢測在基于候選區域的深層卷積神經網絡兩步驟框架和基于邊框回歸的單步驟單網絡框架都有研究進展,其中特征表達和抽取增強[39]、網絡結構改進(如:Dilated Residual Networks[40],Xception[41],DetNet[42]以及Dual Path Networks(DPN)[43])以及語境信息[44-46]的結合是研究發展的重點,訓練過程的處理優化也影響著目標檢測的性能[47,48].基于SSD改進的目標檢測算法有DSOD[49],RFB Net[50],STDN[51],而基于Faster R-CNN改進的目標檢測算法有Mask-RCNN[37],HyperNet[52],FPN[53],ZIP[54],RefineNet[55],ORN[56],Megdet[47].

在基于Faster R-CNN的改進框架中,目標特征的構造和使用對于檢測效果影響顯著,2016年,Tao Kong[52]等人提出了HyperNet,該網絡結構使用VGG16作為DCNN的骨架,結合前層,中層以及深層的特征構造混合特征圖,將混合特征圖同時用于候選區域提取以及目標檢測,在VOC12上實現了71.4%的mAP(IoU=0.5).2017年,Liu Tsung-Yi[53]等人利用DCNN不同尺寸的不同層的特征圖構建特征金字塔,該方法對于檢測效果提升十分明顯,表明特征金字塔對于通用目標檢測具有重大作用,在COCO上實現了59.1的mAP(IoU=0.5).同年,Liu Hongyang[54]等提出了特征圖權值注意力判別單元,利用單元產生候選區域,使得檢測更加高效.2018年,Zhang Shifeng[55]等人提出了RefineDet,提出了anchor優化模塊以及目標檢測模塊,并將兩個模塊互連,anchor優化模塊為目標檢測模塊提供更少以及更準確的anchor,實現了準確率和效率同時提升,在COCO數據集上達到了62.9%的mAP(Iou=0.5).

在基于SSD的改進網絡框架中,檢測性能高效是SSD框架的優點,如何進一步提升效率以及在不影響效率的情況下提升檢測效果是研究的熱點.2017年,Shen Zhiqiang[49]等人結合了SSD和DenseNet的優點,在沒有進行預訓練的基礎上也能達到比較好的結果,且網絡參數少于SSD以及Faster R-CNN,解決了目標檢測重度依賴于預訓練以及遷移學習的問題.DSOD以DenseNet為骨架,在IoU=0.5的情況下,實現了VOC12的mAP為72.2%,COCO的mAP為47.3%的檢測效果.2018年,Liu Songtao[50]等人提出了RFB(Receptive Field Block)模塊增強輕量化網絡的特征表達,實現了又快又準的檢測效果,在同樣是以VGG16為骨架的情況下,VOC12數據集的mAP達到81.2%,COCO數據集的mAP則為55.7%(IoU=0.5).同年,Zhou Peng等[51]在DenseNet169的結構上加入了尺寸變化模塊,擴展了特征圖的寬帶和高度,實驗表明修改過后的特征圖能夠使檢測器不受目標比例的影響,改善檢測效果.

5 數據集

數據集對于有監督學習算法十分重要,對于目標檢測而言,適用性強的數據集不僅能為算法提供性能測試和算法評估,同時也推動著目標檢測研究領域的發展.目前與目標檢測以及圖像分類相關的典型數據集有:MNIST,ImageNet[12],Caltech101,Caltech256,PASCAL VOC(2007,2012)[18],Tiny Images,SUN[57],Microsoft COCO[34]以及Open Images(1)Karin I, Duerig T, Alldrin N, et al. Openimages: A public dataset for large-scale multi-label and multi-class image classification. Dataset available from https://github.ocm/openimages, 2017.,其中Microsoft COCO和Open Images為目標檢測中最重要的數據集.表1給出了不同數據集的概況.由于人工標注成本高昂,目標檢測數據庫更新緩慢且大部分數據集規模較小,無法反映現實生活中復雜的情景和物體之間的關系.Microsoft COCO是2014年微軟為更好地反映現實生活中物體與物體、環境相互之間情景關系理解所發布的數據集,該數據不僅提供了更為復雜的情景圖片,單張圖片包含更多物體,同時也提供了語義分割的數據集,極大推動了目標檢測的研究.但是隨著目標檢測算法的發展,該數據集規模已無法滿足通用目標檢測的算法的需求.Open Images包含900萬張標注圖片和邊框信息,是現存最大的數據集,圖像大小不一,且單張圖像為包含多個目標的復雜場景,相比于Microsoft COCO,Open Images規模更大,圖片中情景情況更為復雜.總體上,數據集的發展逐步趨向于大規模,圖像質量也越來越好,更加注重來自自然生活的復雜情景,包含更多的語境和情景信息,為監督學習提供大量優質訓練數據集,提升模型泛化能力,為未來研究方向奠定基礎.

6 發展趨勢展望

目標檢測是機器視覺領域的一個重要組成部分,應用在多個方面,如:自動駕駛,人臉識別等,與人們的生活息息相關.從傳統的人工特征構造應用DPM模型到基于深層卷積神經網絡的目標檢測框架,目標檢測取得了極大的發展.自深層卷積網絡應用于目標檢測以來,目標檢測主要致力于提升目標檢測的效果以及效率,在圖像特征表示以及網絡結構優化方面都有發展,基于R-CNN的框架相對于基于邊框回歸的單步驟框架而言,前者準確率更高,但更加耗時,而后者由于不需要提前對候選邊框進行提取,因此效率更高,但是準確率比基于R-CNN的框架低.近年來目標檢測的研究主要集中在特征表達增強上,相繼提出了混合特征圖、特征金字塔以及特征注意力單元等,取得了較好的研究成果.目標檢測算法準確率和效率之間的平衡[58]、語境信息的結合等也是研究的重點.

盡管近年來目標檢測研究領域取得了極大的進步,目標檢測距離實現達到人類檢測識別水平仍然需要開展大量研究工作,未來的研究方向可以考慮以下幾個方面:

·減少數據依賴性:目前目標檢測算法均為有監督學習,無法檢測未訓練過的目標,極大依賴訓練數據.訓練數據集的多樣性和大小影響著目標檢測的效果.減少數據依賴性,通過將有監督學習轉化為半監督或無監督學習,增強算法的泛化能力,提升模型應用能力,減少數據依賴性是目標檢測算法的重要發展方向.

·結合知識圖譜:知識圖譜是用來描述真實世界中存在的各種實體和概念,以及他們之間的強、弱關系,對于數據實體具有強大的描述能力.對于圖像而言,圖像中的多個目標之間也會存在依存關系,如:人包括頭、手、腳和身體等,目標檢測結合知識圖譜,能夠提升多目標檢測之間依存關系,增加檢測的語境信息,能更好地描述圖像中的目標實體關系,提升檢測效果,文獻[59]提出了知識感知的目標檢測框架,提出并定義了知識圖譜中的語義一致性,并將其應用到現有目標檢測算法當中.實驗表明,基于知識感知的目標檢測框架能夠改善目標檢測的效果.

·結合語境信息:圖像中的物體相互之間并非獨立,存在著相互依存關系,且物體與場景類別也相互依存,如書架與書,書房與書架之間的關系,綜合利用物體與物體和場景相互之間的具體語境信息,有利于提升物體的特征表達能力,對于提升檢測效果和檢測速度有重大意義.

表1 數據集比較
Table 1 Comparison of datasets

數據集圖像總量類別數圖像數量/類目標數/張圖像尺寸起始年份包含復雜情景數據集用途圖像分類場景識別目標檢測語義分割MNIST6萬101128×281998Caltech101914610140~8001300×2002004Caltech25630607256至少801300×2002007Scenes15448515200~400-256×2562006Tiny Images8000萬53464--32×322006PASACAL VOC(2012)1154020303~40872.4470×3802005SUN131072908-16.8500×3002010ImageNet1419712221841-1.5500×4002009Microsoft COCO32800091-7.3640×4802014是Places1000萬以上434--256×2562014Open Images900萬以上6000以上-8.4不同大小2017是

7 結束語

本文在對目標檢測算法廣泛研究的基礎上,旨在介紹自深層卷積神經網絡應用以來目標檢測的研究發展情況.首先介紹了目標檢測算法中基礎任務圖像分類的進展,目標檢測評測指標,然后詳細介紹了目前兩大類框架,基于候選區域的深層卷積神經網絡兩步驟框架和基于邊框回歸的單步驟單網絡框架.然后闡述了近年來目標檢測算法的發展,結合數據集介紹了目標檢測算法的研究趨勢,最后展望了目標檢測未來的發展和研究方向.

猜你喜歡
邊框卷積框架
有機框架材料的后合成交換
框架
基于3D-Winograd的快速卷積算法設計及FPGA實現
一種并行不對稱空洞卷積模塊①
從濾波器理解卷積
基于傅里葉域卷積表示的目標跟蹤算法
外出玩
關于原點對稱的不規則Gabor框架的構造
通過美工刀切分屏幕與邊框
我國在WYO框架下面對的貿易保護現狀及應對
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合