“目標檢測是當前計算機視覺和機器學習領域的研究熱點。從Viola-Jones Detector、DPM等冷兵器時代的智慧到當今RCNN、YOLO等深度學習土壤孕育下的GPU暴力美學,整個目標檢測的發(fā)展可謂是計算機視覺領域的一部濃縮史。本文簡要回顧了從1994到2017一共二十余年間目標檢測的發(fā)展歷程。”
01
—
A Road Map
02
—
基于經典手工特征的目標檢測算法
早期的目標檢測算法大多是基于手工特征所構建的。由于在深度學習誕生之前缺乏有效的圖像特征表達方法,人們不得不盡其所能設計更加多元化的檢測算法以彌補手工特征表達能力上的缺陷。同時,由于計算資源的缺乏,人們不得不同時尋找更加精巧的計算方法對模型進行加速。
【代表算法1】Viola-Jones 檢測器[1]-[2]
【代表算法2】HOG行人檢測器[3]
【代表算法3】可變形部件模型[8]-[12]
Viola-Jones 檢測器:
2001年Paul Viola和MichaelJones在CVPR上發(fā)表了一篇跨時代意義的文章[1],后人將文章中的人臉檢測算法稱之為Viola-Jones(VJ)檢測器。VJ檢測器在17年前極為有限的計算資源下第一次實現(xiàn)了人臉的實時檢測,速度是同期檢測算法的幾十甚至上百倍,極大程度地推動了人臉檢測應用商業(yè)化的進程。VJ檢測器的思想深刻地影響了目標檢測領域至少10年的發(fā)展。
VJ檢測器采用了最傳統(tǒng)也是最保守的目標檢測手段——滑動窗口檢測,即在圖像中的每一個尺度和每一個像素位置進行遍歷,逐一判斷當前窗口是否為人臉目標。這種思路看似簡單,實則計算開銷巨大。VJ人臉檢測之所以器能夠在有限的計算資源下實現(xiàn)實時檢測,其中有三個關鍵要素:多尺度Haar特征的快速計算,有效的特征選擇算法以及高效的多階段處理策略。
在多尺度Harr特征快速計算方面,VJ檢測器使用積分圖對特征提取進行加速。積分圖可以使特征計算量與窗口的尺寸無關,同時也避免了處理多尺度問題時建圖像金字塔這一耗時的過程。
在特征選擇算法方面,與傳統(tǒng)意義上的手工特征不同的是,VJ檢測器中使用的Harr特征并非是人為事先設計好的。VJ檢測器使用了過完備的隨機Haar特征,并通過Adaboost算法從一個巨大的特征池(約180k維)中進行特征選擇,選取出對于人臉檢測最有用的極少數(shù)幾種特征從而降低不必要的計算開銷。
在多階段處理方面,作者提出了級聯(lián)決策結構,并將其形象地稱之為“瀑布”(Cascades)。整個檢測器由多級Adaboost決策器組成,每一級決策器又由若干個弱分類決策樁(Decision Stump)組成。瀑布的核心思想是將較少的計算資源分配在背景窗口,而將較多的計算資源分配在目標窗口:如果某一級決策器將當前窗口判定為背景,則無需后續(xù)決策就可繼續(xù)開始下一個窗口的判斷。
HOG行人檢測器:
HOG特征最早是為解決行人檢測問題所提出。HOG特征可以認為是在梯度方向直方圖特征基礎上的又一次重要改進,是所有基于梯度特征的目標檢測器的基礎。HOG檢測器是沿用了最原始的多尺度金字塔+滑窗的思路進行檢測。為了檢測不同大小的目標,通常會固定檢測器窗口的大小,并逐次對圖像進行縮放構建多尺度圖像金字塔。為了兼顧速度和性能,HOG檢測器采用的分類器通常為線性分類器[3]或級聯(lián)決策分類器[7]等。
在圖像的特征提取過程中,最重要的兩個概念是不變性(包括平移不變性、旋轉不變性、尺度不變性以及光照不變性等)和區(qū)分性(特征的表達能力)。為了兼顧二者的特點,HOG特征采用了如下的策略:將圖像所在區(qū)域劃分為不同的細胞單元(Cell),并在每個細胞內統(tǒng)計梯度方向直方圖信息。除此之外,為了進一步增強其光照不變性以及非線性表達能力,HOG特征還首次引入了區(qū)塊(Block)的概念,將相鄰的Cell歸并為一個Block,并在Block內對Cell特征進行局部歸一化。
可變形部件模型:
可變形部件模型(Deformable Part based Model,DPM)是基于經典手工特征的檢測算法發(fā)展的頂峰,連續(xù)獲得VOC07、08、09三年的檢測冠軍。DPM最早由芝加哥大學的P. Felzenszwalb等人提出[8],后由其博士生R.Girshick改進[9]-[12]。2010年,P.Felzenszwalb和R. Girshick被VOC授予“終身成就獎”。DPM的主要思想可簡單理解為將傳統(tǒng)目標檢測算法中對目標整體的檢測問題拆分并轉化為對模型各個部件的檢測問題,然后將各個部件的檢測結果進行聚合得到最終的檢測結果,即“從整體到部分,再從部分到整體”的一個過程。例如,對汽車目標的檢測問題可以在DPM的思想下分解為分別對車窗、車輪、車身等部件的檢測問題,對行人的檢測問題也可以類似地被分解為對人頭、四肢、軀干等部件的檢測問題。
在模型結構方面,DPM可視為HOG檢測器在其結構上進行了拓展。整個DPM檢測器由基濾波器(Root-filter)和一系列部件濾波器(Part-filter)構成。這一部分工作由Felzenszwalb等人在07年提出[8],并稱其為星型模型(Star-model)。后來Girshick又在星型模型的基礎上進一步將其拓展為混合模型(Mixture Model)[9]-[12],用于解決真實世界中三維物體不同視角下的檢測問題。
在模型優(yōu)化方面,由于DPM模型在訓練過程中并未要求詳細標注出各個部件的位置,所以采用了一種弱監(jiān)督學習的策略。由于部件濾波器可以視為模型中的隱含變量,故Girshick進一步將其轉化為隱含變量結構SVM的優(yōu)化問題,并結合難樣本挖掘和隨機梯度優(yōu)化策略對該問題進行求解。
在模型加速方面,Girshick還曾將DPM中的線性SVM分類器“編譯”為一系列的級聯(lián)決策樁(Decision Stump)分類器,在不犧牲精度的前提下,將DPM加速了10倍。值得一提的是,這種加速策略本質上是借鑒了VJ檢測器快速檢測人臉的技術思路。
在算法的后處理方面,DPM算法采用包圍框回歸和上下文信息集成這兩個方法[10]-[12]進一步提升檢測準確率。其中,包圍框回歸的主要作用是將檢測得到的基濾波器以及部件濾波器所對應的包圍框進行整合并利用線性最小二乘回歸來得到最終精確的包圍框坐標。上下文信息集成的作用在于利用全局信息對檢測結果進行重新調整。從本質上來講,上下文信息反映了各個類別的目標在圖像中的聯(lián)合先驗概率密度分布,即哪些類別的目標可能同時出現(xiàn),哪些類別的目標則不太可能同時出現(xiàn)。
雖然近幾年基于深度學習的檢測模型從精度上已遠遠超越了DPM,但DPM中的很多思想直到今天依然重要,例如混合模型、難樣本挖掘、包圍框回歸、上下文信息的利用等。時至今日,這些方法還都深深影響著目標檢測領域的發(fā)展。
03
—
基于深度學習的目標檢測算法(上)
——基于Object Proposals的檢測算法
Girshick曾提到[14]:“在過去的幾年中(2011-2013),目標檢測算法的發(fā)展幾乎是停滯的,人們大多在低層特征表達基礎上構建復雜的模型以及更加復雜的多模型集成來緩慢地提升檢測精度”。既然深度卷積網絡能夠學習到非常魯棒且具有表達能力的特征表示,那么為何不將其引入目標檢測流程中用來提取特征呢?當卷積神經網絡在2012年ImageNet分類任務[19]中取得了巨大成功后,Girshick等人抓住了機會打破僵局,于2014年率先提出了區(qū)域卷積網絡目標檢測框架(Regionswith CNN features,R-CNN)[14]。自此目標檢測領域開始以前所未有的速度發(fā)展。
隨著卷積神經網絡層數(shù)的不斷加深,網絡的抽象能力、抗平移能力和抗尺度變化能力越來越強。對于圖像分類任務來說這誠然是一件好事,然而對于檢測任務來說卻帶來了另一個問題:目標包圍框精準的位置越來越難以獲得。由此便出現(xiàn)了一個矛盾:如果想讓檢測算法獲得更強的平移不變性和尺度不變性,那就必須一定程度地犧牲特征在目標包圍框位置和尺度變化上的敏感性,即協(xié)變性;相反,如果想要獲得更精確的目標包圍框定位結果,就必須在平移不變性和尺度不變性上做一些妥協(xié)。所以,如果想要將卷積網絡有效應用于目標檢測問題中,關鍵是如何有效解決深度網絡的平移/尺度不變性和目標檢測問題中平移/尺度協(xié)變性要求的矛盾[20]。這迫使人們不得不放棄基于特征圖+滑動窗口這一套檢測方案,從而將關注點轉向尋找更加定位精準的目標候選框檢測(Object Proposal Detection)算法上來。
在過去的幾年里,伴隨著深度學習目標檢測算法的發(fā)展,有非常多的Object ProposalDetection算法被提出,例如Selective Search[22]、Edge Boxes[23]、BING[24]等等。需要注意的是,基于Object Proposal并非是深度學習檢測算法的專屬,早在傳統(tǒng)的手工特征時期,Uijlings等人[22]就嘗試過使用Selective Search + 詞袋(Bag of Words)特征進行目標檢測。
下面將分別介紹幾種基于Object Proposal的深度學習目標檢測算法。
【代表算法1】Regions with CNN Features (R-CNN)[14]
【代表算法2】Spatial Pyramid Pooling Networks (SPPNet)[15]
【代表算法3】Fast-RCNN[16]
【代表算法4】Faster-RCNN[17]
【代表算法5】Feature Pyramid Networks
R-CNN:
R-CNN[14]使用了一種非常簡單的檢測策略,首先在圖像中提取Object Proposals,接下來把每個Proposal縮放到相同的大小后使用在ImageNet上訓練好的Alexnet網絡[19]提取特征,最后再使用SVM分類器進行虛警排除和類別判斷。R-CNN在VOC07數(shù)據集上取得了驚艷的效果,mAP由33.7%(DPM-v5[25])提升至58.5%。雖然R-CNN取得了很大的進步,但其缺陷也很明顯:首先,其訓練是多階段的,較為繁瑣和耗時;其次,由于在高密度的候選區(qū)域上反復進行特征提取,其檢測速度很慢(GPU下每張圖40秒,640×480像素)。后來Kaiming He等人提出了SPPNet[15],很好地解決這個問題。
SPPNet:
Kaiming He等人在2014年提出了SPPNet[15],用來解決CNN網絡提取特征時要求輸入圖像尺寸固定的問題。與傳統(tǒng)的CNN網絡模型相比,其創(chuàng)新點是,在卷積層和全連接層之間添加了一個空間金字塔池化(Spatial Pyramid Pooling, SPP)層。SPPNet可做到不經過候選區(qū)域的縮放操作就能實現(xiàn)任意大小、任意長寬比區(qū)域的特征提取。在不損失精度的前提下,SPPNet是R-CNN的檢測速度的38倍。SPPNet有效解決了候選區(qū)域計算冗余的問題,但是依然存在一些缺陷:首先,其訓練是仍然是多階段的;其次,SPPNet在微調網絡時,只對其全連接層進行了微調,影響了特征的準確性。后續(xù)提出的Fast R-CNN檢測器進一步地解決了這些問題。
Fast-RCNN:
2015年,Girshick等人在R-CNN和SPPNet的基礎上又提出了FastR-CNN檢測器[16]。Fast-RCNN最大的特點在于實現(xiàn)了一種多任務學習方式,實現(xiàn)了在網絡微調的同時,對目標分類和包圍框回歸的同步訓練,且訓練速度是R-CNN的9倍,檢測速度是R-CNN的200倍。在VOC2007數(shù)據集上,F(xiàn)ast-RCNN將mAP由RCNN的58.5%提升至70.0%。Fast-RCNN成功地結合了R-CNN和SPPNet兩者的優(yōu)點,但還是需要事先使用外部算法來提取目標后選框,不能夠實現(xiàn)端到端的處理。那能不能將候選區(qū)域檢測這一操作同樣也交給網絡去做呢?后來的Faster R-CNN解決了這個問題。
Faster-RCNN:
同樣是在2015年,在Fast-RCNN被提出后不久,Shaoqing Ren、Kaiming He以及Girshick等人又很快提出了Faster-RCNN算法[17]。Faster-RCNN是第一個真正意義上的端到端的深度學習檢測算法,也是第一個準實時(17幀/秒,640×480像素)的深度學習目標檢測算法。Faster-RCNN在VOC07上在此將mAP由70.0%提升至78.8%。Faster-RCNN最大的創(chuàng)新點在于設計了候選區(qū)域生成網絡(RegionProposal Network,RPN),并在其中設計了“多參考窗口”的機制,將Selective Search或Edge Boxes等外部Objectproposal檢測算法融合到同一個深度網絡中實現(xiàn)。從R-CNN到Fast RCNN再到Faster-RCNN,候選區(qū)域生成,特征提取,候選目標確認和包圍框坐標回歸逐漸被統(tǒng)一到同一個網絡框架之中。檢測精度由R-CNN的58.8%提升至Faster-RCNN的78.8%,檢測速度也由每幀幾十秒[14]提升至準實時檢測[17]速度。
Feature Pyramid Networks:
在2017年,Tsung-Yi Lin、Piotr Dollar、Ross Girshick和Kaiming He等人又在Faster RCNN的基礎上提出了Feature Pyramid Networks(FPN)檢測算法。原有的目標檢測算法通常都是只采用頂層特征做檢測,原因是網絡頂層特征的語義信息比較豐富。然而,雖頂層特征的語義信息豐富,但其中的目標位置信息卻比較粗略,不利于目標包圍框的準確定位;相反,雖然底層特征的語義信息比較少,但其中目標的位置信息卻非常準確。因此,F(xiàn)PN的主要思想就是在網絡前饋結束后,又將網絡中最頂層的特征圖像逐層地反饋并與前層的特征圖進行融合,在此基礎上,再從網絡中不同深度的位置引出多個檢測端口對其中的不同尺度的目標進行檢測。由于網絡在前饋過程中天然形成了金字塔形狀的特征圖,所以FPN對小目標以及尺度分布較大的目標具有天然的檢測優(yōu)勢。FPN選擇在比VOC規(guī)模和難度更大的MSCOCO數(shù)據集上進行了測試,取得了當時最佳的檢測效果。
04
—
基于深度學習的目標檢測算法(下)
——基于一體化卷積網絡的檢測算法
最近兩年基于深度學習的目標檢測算法的發(fā)展有兩條主線,第一條是基于Object Proposal的檢測主線,這條主線基本是按照R-CNN >> SPPNet >> Fast-RCNN >> Faster-RCNN >> FPN發(fā)展的;另一條是最近一年提出的一體化卷積網絡的檢測主線,這條主線基本是按照YOLO >> SSD >> Retina-Net發(fā)展的。在第二條主線中,人們拋棄了傳統(tǒng)的粗檢測+精檢測的檢測流程,經過單次檢測即可直接得到最終的檢測結果,因此有著更快的檢測速度。
一體化卷積網絡檢測算法最早可以追溯到上世紀九十年代[30]-[31],當時Yann Lecun等人將其命名為“空間位移神經網絡(Space Displacement Neural Network)”。最近兩年,一體化卷積網絡檢測算法受到了更多人的關注,在未來也會有更大的發(fā)展空間。下面將分別對這條主線下的YOLO、SSD、Retina-Net三種典型算法進行介紹。
【代表算法1】You Only Look Once (YOLO) [18]
【代表算法2】Single Shot MultiBox Detector (SSD) [28]
【代表算法3】Retina-Net[29]
YOLO:
YOLO[18]是第一個一體化卷積網絡檢測算法,由Joseph和Girshick等人在2015年提出。該算法最大的優(yōu)勢是速度快,徹底解決了基于深度學習速度上的痛點。該算法的增強版本在GPU上速度為45幀/秒,快速版本速度為155幀/秒(640×480像素)。YOLO是“You Only LookOnce”的縮寫,從算法的名字就能夠看出來作者徹底放棄了Proposal這一概念,直接將整張圖像作為網絡的輸入,并僅通過一次前向傳播直接得到目標包圍框的位置和目標的類別。YOLO雖然有著非常快的檢測速度,但其精度與Faster-RCNN相比有所下降,尤其是小目標檢測效果較差,其定位的準確度也稍有不足。這主要是由于YOLO沒有采用類似FasterRCNN中的“多參考窗口”的機制處理多尺度窗口問題。后來提出的SSD算法改善了這些問題。
SSD:
SSD[28]算法由Wei Liu等人于2015年提出。SSD算法吸收了YOLO速度快和RPN定位精準的優(yōu)點,采用了RPN中的多參考窗口技術,并進一步提出在多個分辨率的特征圖上進行檢測。SSD在VOC07上取得了接近Faster-RCNN的準確率(mAP=72%),同時保持了極快的檢測速度(58幀/秒,640×480像素)。SSD與Faster-RCNN中不同之處有兩點:首先,SSD是在多個尺度下的特征圖上設置多個參考窗口進行后選框的檢測,而Faster-RCNN僅僅是在一個尺度上進行處理;其次,F(xiàn)aster-RCNN是先利用提取目標后選框,然后再在后選框基礎上利用檢測網絡和ROI Pooling進行后續(xù)判斷,SSD則直接分別在多個尺度的特征圖上進行多尺度檢測和包圍框坐標回歸。此外,SSD在訓練過程中,還采用了難樣本挖掘操作來對圖像中難樣本進行聚焦。
Retina-Net:
一直以來,雖然基于一體化卷積網絡的檢測模型的檢測速度都明顯快于基于Object Proposals的檢測算法,其檢測精度卻一直略遜于后者。Tsung-Yi Lin、 Priya Goyal、Ross Girshick以及Kaiming He等人對其背后的原因進行了研究,并與2017年提出了Retina-Net[29]檢測模型。Tsung-Yi Lin等人認為圖像中極為不均衡的目標-背景數(shù)據分布才是導致一體化卷積網絡檢測精度較低的主要原因。Retina-Net對傳統(tǒng)的交叉熵損失函數(shù)進行修正,提出了“聚焦損失函數(shù)(Focal Loss)”。通過降低網絡訓練過程中簡單背景樣本的學習權重,Retina-Net可以做到對難樣本的“聚焦”和對網絡學習能力的重新分配,從而使一體化卷積網絡檢測模型的檢測速度和精度全面超越基于Object Proposals的檢測模型。事實上,SSD中的難樣本挖掘操作也與Focal Loss有著類似思想和效果。
05
—
目標檢測中的關鍵技術
近年來,尤其是深度學習出現(xiàn)之后,自然圖像目標檢測領域取得了一系列突破性的進展。早期的目標檢測算法[3],[1]-[2],[8]-[12]通常將檢測視為一個在圖像多個尺度上“滑動窗口遍歷+目標背景二分類”的問題。因此,人們常常重點解決特征的表達能力、特征提取的時間效率、多尺度問題的加速方法等問題。最近幾年提出的基于深度學習的檢測算法[12]-[15],[25]則通常是在以下幾個問題上尋求技術突破:
【關鍵技術1】 多尺度檢測方法
【關鍵技術2】 包圍框坐標回歸
【關鍵技術3】 加速策略
多尺度檢測方法:
目標檢測中的“多尺度”問題包含了“不同大小”和“不同長寬比”兩方面的內容。早期的目標檢測算法,如VJ檢測器檢測人臉、HOG檢測器檢測行人都是針對特定長寬比目標所設計的檢測算法,所以并沒有考慮“不同長寬比”這一層面的問題;而中后期的目標檢測算法開始更多關注于一般性目標的通用檢測算法,即開始關注檢測“不同長寬比”的目標。下圖顯示了自然圖像目標檢測的多尺度檢測方式發(fā)展流程。
目標檢測的多尺度檢測方式發(fā)展流程
從近20年的目標檢測工作來看,處理多尺度的問題采用的方法經歷了從最早的“多尺度積分圖特征”,到之后的“特征/濾波器金字塔遍歷”,再到后來的“Object Proposals”,最后到如今的依靠“深度網絡暴力回歸”四個階段的發(fā)展歷程。
早期檢測算法如VJ檢測器在處理多尺度問題時,并沒有采用“建塔”這一最直觀的思路。這是因為這種做法在計算能力有限的時代無法承受如此大的計算量。所以,VJ檢測器不得不采取積分圖這一種巧妙的方法來解決該問題。在VJ檢測器出現(xiàn)之后的幾年里,隨著硬件計算能力不斷提升,更多的人嘗試使用更加復雜且表達能力更強的特征進行目標檢測。但遺憾的是,高度非線性的特征表示如HOG、LBP等并不具有積分圖特征類似的性質,所以人們開始把思路轉向了“構建金字塔+滑窗遍歷”這一最直觀的處理方式。從HOG檢測器到DPM,甚至后來的深度學習檢測算法Overfeat[32]都是通過這種方式構建的。
需要強調的是,通過建塔的方式只能處理特定長寬比目標的檢測問題,例如人臉檢測、行人檢測等。對于如VOC、MSCOCO等一般性目標檢測問題,如果構建不同長寬比、不同尺度的特征金字塔,其計算量直到今天也是難以接受的。不過,DPM雖然沒有構建不同長寬比的金字塔,但卻可以處理一般性目標檢測問題。這是因為DPM采用了Mixture Model這種特殊的處理策略。
隨著人們需要檢測的目標類別越來越多,目標形態(tài)越來越多樣化,人們開始思考,是否能夠利用一種統(tǒng)一的“粗檢測”模型來處理不同長寬比和不同類別的目標?Object Proposals提供了一種很好的解決思路。Object Proposal的檢測指的是利用較低的計算量實現(xiàn)對圖像中所包含的一般性目標的包圍框進行準確定位(不局限與具體的目標類別,也不局限于固定的長寬比)。Object Proposals在近兩年基于深度學習的目標檢測算法中起到了非常重要的作用。從R-CNN到Fast-RCNN再到Faster-RCNN,Object Proposals從最開始獨立的算法模塊逐漸演變到最后與網絡融為一體。
隨著GPU計算性能的提升,人們處理多尺度問題的方法變得越來越直接越來越暴力,而這種暴力在基于一體化卷積網絡的檢測方法(如YOLO)中達到了頂峰。采用深度網絡暴力回歸解決多尺度問題的思想非常簡單,即直接利用深度網絡在目標對應位置提取的特征對其包圍框的長寬進行回歸。這種做法的優(yōu)點是設計簡單,計算量小,先提條件是圖像感受野足夠大且深度特征表達能力足夠強,缺點是對小目標的包圍框定位不夠準確。
包圍框坐標的回歸:
特征的平移、尺度不變性以及定位的準確性一直以來都存在著矛盾。早期的檢測算法大多采用低層手工特征,更多關注于圖像的邊緣、輪廓等信息。這類特征的平移、尺度不變性較差,但對目標進行精確定位時有著天然的敏感性,可對目標邊界進行準確的定位。而基于深度學習的檢測算法中采用的深度特征由于其具有更強的平移不變性和尺度不變性,隨之帶來的問題是對目標包圍框定位的先天能力不足。下圖顯示了目標檢測中包圍框回歸技術的發(fā)展過程。
對于早期基于手工特征的檢測算法以及后來基于Object Proposals的檢測算法(如DPM、R-CNN、Fast-RCNN)而言,包圍框坐標回歸僅僅是作為一種刷榜時提分的手段,這種操作對于檢測問題僅僅起到了錦上添花的作用,可有亦可無。然而從Faster-CNN開始,情況發(fā)生了轉變,這是由于包圍框回歸不再是一個單獨的后處理模塊,而是集成在了網絡中,并采用多任務損失函數(shù)同分類任務一同進行訓練?,F(xiàn)如今包圍框回歸已經是算法流程中不可替代的一個標準環(huán)節(jié)。最近的一些算法在包圍框回歸精度的提升方面取得了一些成果,比如多次包圍框坐標修正[40]、以及概率推斷在包圍框坐標預測中的應用[41]等。
目標檢測的包圍框回歸技術發(fā)展流程
加速策略:
目標檢測算法的加速一直以來都是該領域一個非常重要的問題。一般來講,人們對算法的加速通常體現(xiàn)在兩個層面,第一個層面是從算法原理角度出發(fā),設計低計算復雜度的算法,并盡可能減少重復計算的開銷;第二個層面是從硬件實現(xiàn)層面出發(fā),采用更高并行粒度的算法,并通過多核并行計算提升計算速度,如利用GPU加速。早期的檢測算法在目標檢測的計算原理方面做了很多加速工作,而后期的深度學習的檢測算法的計算量雖然比早期算法要大,但依靠硬件計算能力的提升已經可以輕松實現(xiàn)實時檢測的速度。下圖顯示了自然圖像目標檢測算法的常見加速策略。
目標檢測算法的加速策略一覽
通常在目標檢測算法當中,特征提取部分的計算開銷較其他環(huán)節(jié)的比重最大,所以近年來人們在特征提取層面的加速工作最多,加速效果也最為顯著。傳統(tǒng)的基于滑動窗口的檢測器會在每個尺度的圖像上以一定步長移動,并在每個窗口上做特征提取操作。由于相鄰滑窗之間通常有很大面積的交疊,因此交疊部分的特征就會存在大量的計算重復。為了解決這個問題,通常在滑窗之前,都會在圖像上只整體計算一次特征圖(Feature Map),以避免后面滑窗時對特征進行重復提取。事實上,傳統(tǒng)目標檢測算法中的“圖像金字塔”也可以理解為“特征金字塔”,HOG檢測器和DPM都是在特征金字塔上進行檢測的。值得一提的是,最近幾年基于深度學習的目標檢測算法,除了R-CNN之外,其余的也都利用了該加速思想。
除了特征圖之外,積分圖也是早期目標檢測算法中常見的加速策略。利用積分圖特征進行加速的思想前面在介紹VJ檢測器已經介紹過,這里再進行一些更加深入的探討。利用積分圖進行算法加速的本質是利用了卷積操作的積分微分的可分離性[1]-[2]:
如果個g(x)'是稀疏的,那么利用該性質就可以加速計算。事實上,早在VJ檢測器之前(1998年),LeCun等人就深入探討過利用該性質對CNN進行過加速[39],并取得了10倍以上的加速效果。積分圖后來也有被用于加速行人檢測算法的HOG特征提取過程,在不損失精度的前提下取得了幾十倍的加速效果[7][33]。
未完待續(xù)……
參考文獻
[1] Viola P, Jones M. Rapid Object Detection Using a Boosted Cascade of SimpleFeatures [C]. IEEE Conference on Computer Vision and Pattern Recognitino, 2001,1:511.
[2] Viola P, Jones M J. Robust Real-Time Face Detection [J]. IEEEInternational Conference on Computer Vision 2004:747-747.
[3] Dalal N, Triggs B. Histograms of Oriented Gradients for Human Detection [C].IEEE Computer Society Conference on Computer Vision & Pattern Recognition.IEEE Computer Society, 2005:886-893.
[4] Turk M, Pentland A. Eigenfaces for recognition [J]. Journal of CognitiveNeuroscience, 1991, 3(1):71-86.
[5] Shotton J, Blake A, Cipolla R. Multiscale Categorical Object RecognitionUsing Contour Fragments [J]. IEEE Transactions on Pattern Analysis and MachineIntelligence, 2008, 30(7):1270-81.
[6] Opelt A, Pinz A, Zisserman A. A Boundary-Fragment-Model for ObjectDetection [C]. European Conference on Computer Vision 2006. Springer BerlinHeidelberg, 2006:575-588.
[7] Zhu Q, Yeh M C, Cheng K T, et al. Fast Human Detection Using a Cascadeof Histograms of Oriented Gradients [C]. IEEE Computer Society Conference onComputer Vision & Pattern Recognition. IEEE, 2006:1491-1498.
[8] Felzenszwalb P, Mcallester D, Ramanan D. A Discriminatively Trained, Multiscale,Deformable Part Model [C]. IEEE Computer Society Conference on Computer Vision &Pattern Recognition. 2008, 8::1-8.
[9] Felzenszwalb P F, Girshick R B, Mcallester D. Cascade Object Detection withDeformable Part Models [C]. IEEE Conference on Computer Vision & PatternRecognition. IEEE Computer Society, 2010:2241-2248.
[10] Forsyth D. Object Detection with Discriminatively Trained Part-BasedModels [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2010, 32(9):1627-45.
[11] Girshick R B, Felzenszwalb P F, Mcallester D. Object Detection withGrammar Models[J]. Nips, 2010, 33:442-450.
[12] Girshick R B. From Rigid Templates to Grammars: Object Detection with StructuredModels [J].A Dissertation Submitted to the Faculty of the Division of the PhysicalSciences, 2012.
[13] Girshick R, Iandola F, Darrell T, et al. Deformable Part Models Are ConvolutionalNeural Networks [J]. IEEE Conference on Computer Vision & PatternRecognition, 2015:437-446.
[14] Girshick R, Donahue J, Darrell T, et al. Rich Feature Hierarchies forAccurate Object Detection and Semantic Segmentation [C]. Computer Vision andPattern Recognition. IEEE, 2013:580-587.
[15] He K, Zhang X, Ren S, et al. Spatial Pyramid Pooling in DeepConvolutional Networks for Visual Recognition [J]. IEEE Transactions on PatternAnalysis and Machine Intelligence, 2015, 37(9):1904-16.
[16] Girshick R. Fast R-CNN [OL]. arXiv:1504.08083, 2015.
[17] Ren S, He K, Girshick R, et al. Faster R-CNN: Towards Real-Time ObjectDetection with Region Proposal Networks [OL]. arXiv:1506.01497, 2015.
[18] Redmon J, Divvala S, Girshick R, et al. You Only Look Once: Unified,Real-Time Object Detection [OL]. arXiv: 1506.02640, 2016.
[19] Krizhevsky A, Sutskever I, Hinton G E. ImageNet Classification with DeepConvolutional Neural Networks [J]. Advances in Neural Information ProcessingSystems, 25(2):2012.
[20] Dai J, Li Y, He K, et al. R-FCN: Object Detection via Region-based FullyConvolutional Networks [OL]. arXiv: 1605.06409, 2016.
[21] Hosang J, Benenson R, Dollar P, et al. What Makes for EffectiveDetection Proposals? [J]. IEEE Transactions on Pattern Analysis and MachineIntelligence, 2016, 38(4):814-830.
[22] Van d S K E A, Uijlings J R R, Gevers T, et al. Segmentation as SelectiveSearch for Object Recognition [C]. Proceedings IEEE International Conference onComputer Vision. 2011:1879-1886.
[23] Zitnick C L, Dollár P. Edge Boxes: Locating Object Proposals from Edges[C]. European Conference on Computer Vision, 2014:391-405.
[24] Cheng M M, Zhang Z, Lin W Y, et al. BING: Binarized Normed Gradients forObjectness Estimation at 300fps [J]. IEEE International Conference on ComputerVision 2014:3286-3293.
[25] Girshick R., Felzenszwalb P., and McAllester D. Discriminatively TrainedDeformable Part Models, release 5 [OL].http://www.cs.berkeley.edu/?rbg/latent-v5/.
[26] Zeiler M D, Fergus R. Visualizing and Understanding ConvolutionalNetworks [J]. 2014, 8689:818-833.
[27] Simonyan K, Zisserman A. Very Deep Convolutional Networks forLarge-Scale Image Recognition [J]. Computer Science, 2014.
[28] Liu W, Anguelov D, Erhan D, et al. SSD: Single Shot MultiBox Detector [OL].arXiv: 1512.02325, 2016.
[29] Lin T Y, Goyal P, Girshick R, et al. Focal Loss for Dense ObjectDetection [OL]. arXiv: 1708.02002, 2017.
[30] Vaillant R, Monrocq C, Cun Y L. An Original Approach for the Localizationof Objects in Images [C]. International Conference on Artificial NeuralNetworks. 1993:26-30.
[31] Lecun Y, Bottou L, Bengio Y, et al. Gradient-based Learning Applied to DocumentRecognition [J]. Proceedings of the IEEE, 1998, 86(11):2278-2324.
[32] Sermanet P, Eigen D, Zhang X, et al. OverFeat: Integrated Recognition,Localization and Detection using Convolutional Networks [C]. InternationalConference on Learning Representations, 2013.
[33] Benenson R, Mathias M, Timofte R, et al. Pedestrian Detection at 100 Framesper Second [C]. IEEE International Conference on Computer Vision2012:2903-2910.
[34] Alexe B, Deselaers T, Ferrari V. What is an Object? [C]. IEEEInternational Conference on Computer Vision and Pattern Recognition,2010:73-80.
[35] Ponttuset J, Arbelaez P, Barron J, et al. Multiscale CombinatorialGrouping for Image Segmentation and Object Proposal Generation [J]. IEEETransactions on Pattern Analysis and Machine Intelligence, 2015:1-1.
[36] Kong T, Yao A, Chen Y, et al. HyperNet: Towards Accurate Region ProposalGeneration and Joint Object Detection [C]. IEEE International Conference on ComputerVision and Pattern Recognition. 2016:845-853.
[37] Ghodrati A, Diba A, Pedersoli M, et al. DeepProposal: Hunting Objects byCascading Deep Convolutional Layers [C]. IEEE International Conference on ComputerVision and Pattern Recognition. 2015:2578-2586.
[38] Dollar P, Appel R, Belongie S, et al. Fast Feature Pyramids for ObjectDetection [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2014, 36(8):1532-45.
[39] Simard P Y, Bottou L, Haffner P, et al. Boxlets: A Fast Convolution Algorithmfor Signal Processing and Neural Networks [C]. Conference on Advances in NeuralInformation Processing Systems II. MIT Press, 1999:571-577.
[40] Yoo D, Park S, Lee J Y, et al. AttentionNet: Aggregating Weak Directionsfor Accurate Object Detection [J]. IEEE International Conference on ComputerVision. 2015:2659-2667.
[41] Gidaris S, Komodakis N. LocNet: Improving Localization Accuracy forObject Detection [C]. IEEE Conference on Computer Vision and PatternRecognition. 2016:789-798.
聯(lián)系客服