葉嘉欣
摘要:目標(biāo)檢測是計算機(jī)視覺的重要研究方向之一,旨在準(zhǔn)確識別圖像中目標(biāo)的位置和類別,因其較高的準(zhǔn)確性,受到研究人員的廣泛關(guān)注。近年來,計算機(jī)技術(shù)快速發(fā)展,相對于傳統(tǒng)的目標(biāo)檢測算法,基于深度學(xué)習(xí)的目標(biāo)檢測算法的優(yōu)勢逐漸凸顯,該算法精度高、實時性好。本文介紹了幾種經(jīng)典的兩階段目標(biāo)檢測算法,對其優(yōu)缺點進(jìn)行了比較,并對未來兩階段目標(biāo)檢測算法的發(fā)展進(jìn)行了展望。
關(guān)鍵詞:深度學(xué)習(xí);目標(biāo)檢測算法;技術(shù)演變 ;計算機(jī)視覺
引言
自計算機(jī)誕生之時,研究人員就在思考如何使計算機(jī)變得智能。如今,人工智能已經(jīng)成為一個熱點領(lǐng)域,而在人工智能領(lǐng)域中,目標(biāo)檢測[1]一直是計算機(jī)視覺領(lǐng)域經(jīng)久不衰的研究方向[2]。它主要通過綜合利用圖像處理、機(jī)器學(xué)習(xí)、人工智能等技術(shù),從圖像中查找對象,然后指定其位置和類別。在計算機(jī)視覺領(lǐng)域,由于各種外部環(huán)境因素的干擾,目標(biāo)檢測一直是具挑戰(zhàn)性的問題之一。近年來,深度學(xué)習(xí)因為其優(yōu)越性廣泛應(yīng)用于各種領(lǐng)域,基于深度學(xué)習(xí)的目標(biāo)檢測算法也逐漸被人們關(guān)注,如圖1所示。本文首先簡要說明傳統(tǒng)的目標(biāo)檢測算法,并說明它的缺陷,還對當(dāng)前經(jīng)典的兩階段目標(biāo)檢測算法進(jìn)行了詳細(xì)的介紹與比較,最后展望了兩階段目標(biāo)檢測算法未來的研究方向。
1. 傳統(tǒng)目標(biāo)檢測算法
傳統(tǒng)的目標(biāo)檢測算法可以分為兩個方向:根據(jù)特征進(jìn)行目標(biāo)識別、根據(jù)分割進(jìn)行目標(biāo)識別。在傳統(tǒng)的算法中,主要的特征有Harr特征[3]、HOG特征[4]、SIFT特征等。人為提取特征的效果難以保證是傳統(tǒng)目標(biāo)檢測算法的一大缺點,可移植性較差,時間復(fù)雜度高,存在大量的冗余計算,勢必會導(dǎo)致運行速度難以提升,而且面對復(fù)雜多變的環(huán)境時,魯棒性差,只有在一些特定的環(huán)境下才會有較好的表現(xiàn),因此在現(xiàn)實生活中也得不到大規(guī)模的使用。在計算機(jī)視覺技術(shù)迅猛發(fā)展的今天,基于深度學(xué)習(xí)的目標(biāo)檢測算法因?qū)崟r精度高,逐步替代了傳統(tǒng)目標(biāo)檢測方法。在復(fù)雜場景下,背景變化劇烈時,傳統(tǒng)的目標(biāo)檢測算法會出現(xiàn)誤檢或漏檢等現(xiàn)象。為克服傳統(tǒng)目標(biāo)檢測算法準(zhǔn)確性不高的不足,提出一種兩階段目標(biāo)檢測算法。
2. 基于深度學(xué)習(xí)的兩階段目標(biāo)檢測算法
2013年Sermanet等人[5]提出了著名的OverFeat算法。OverFeat可以說是單階段目標(biāo)檢測算法的經(jīng)典開山之作,基于AlexNet[6]實現(xiàn)了識別、定位、檢測共用同一個網(wǎng)絡(luò)框架。這也是首篇介紹使用一個網(wǎng)絡(luò)就能解決這一問題的方法。它利用了卷積神經(jīng)網(wǎng)絡(luò)的特征提取功能,把分類過程中提取到的特征又同時用于定位檢測任務(wù)。該論文通過一種應(yīng)用于回歸邊界框的貪婪合并策略,合并各個預(yù)測,是一種全新的定位與檢測方法。整體沒有全連接層,采用全卷積網(wǎng)絡(luò),消除了傳統(tǒng)滑動窗口方法的很多冗余計算,提高了算法的魯棒性又保證了效率。此算法對后續(xù)深度學(xué)習(xí)目標(biāo)檢測算法的發(fā)展有著重要意義。但是該算法對小目標(biāo)的檢測效果不理想,且存在較高錯誤率。
2014年,R-CNN搭載著“Region Proposal(候選框)+CNN”提取的分類網(wǎng)絡(luò)的組合模式出現(xiàn)在大眾視野中,這種兩階段目標(biāo)檢測算法以其優(yōu)秀的準(zhǔn)確度給目標(biāo)檢測算法提供了新思路。Two-stage(兩階段)目標(biāo)檢測算法將目標(biāo)檢測分為兩大部分:候選區(qū)域的選取、目標(biāo)的分類識別。兩階段目標(biāo)檢測算法的優(yōu)勢在于選取多個候選框可以充分提取目標(biāo)的特征信息,檢測的準(zhǔn)確度高,同時可以實現(xiàn)精準(zhǔn)定位,但是因為算法模型復(fù)雜且分兩個步驟進(jìn)行,所以檢測速度較慢。下面簡要介紹一些經(jīng)典的兩階段檢測算法以及它們的優(yōu)缺點。
2.1 R-CNN
R-CNN[7]算法由Girshick等人在2014年提出,它開啟了將深度學(xué)習(xí)運用在目標(biāo)檢測的大門,并為后續(xù)該系列檢測算法奠定了基礎(chǔ)。此后,目標(biāo)檢測算法的實時性與精確度不斷提高。
R-CNN目標(biāo)檢測算法可分為四個步驟:第一步,利用選擇性搜索算法SS(Selective Search)[8]從圖像中提取約2000個候選框。第二步,利用深度卷積神經(jīng)網(wǎng)絡(luò)提取各候選框的函數(shù)向量。第三步,用AlexNet將各個函數(shù)向量發(fā)送給各個向量機(jī)(SVM),判斷是否屬于此類。第四步,使用邊界框的回歸和非極大值抑制算法來獲得候選的最佳框。雖然該算法大幅提高了平均精確度,但是因為需要對2000個候選框進(jìn)行特征提取,所以檢測速度較慢。針對此問題,He等人在2015年提出了SPP-Net[9]算法。
2.2 SPP-Net
因為R-CNN算法只能對固定大小的圖像進(jìn)行卷積運算,這就會導(dǎo)致特征信息損失和運算速度慢的問題出現(xiàn)。為了解決R-CNN算法提取特征操作冗長的問題,He等人在2015年提出了SPP-Net算法。SPP-Net算法同樣大致分為四個步驟:第一步,采用SS(Selective Search)方法讓一張圖片生成2000個候選區(qū)域;第二步,利用空間金字塔池化[10](Spatial Pyramid Pooling,SPP)操作,把每個候選區(qū)域?qū)?yīng)的特征轉(zhuǎn)換成固定長度的特征;第三步,輸入全連接層;第四步,進(jìn)行后續(xù)SVM的分類和回歸。SPP-Net算法通過引入SPP來避免重復(fù)進(jìn)行卷積運算,在保證同樣或者更好的檢測精度的同時,極大地提升了檢測速度,相比R-CNN 算法快24~102倍[11]。首先,訓(xùn)練還處于多個階段,接下來,SPP-Net只對完全連接的層進(jìn)行了微調(diào),忽略了之前的所有層,添加池化層后,網(wǎng)絡(luò)只更新下面的完整連接層,忽略了以前層數(shù)對模型的影響,從而降低了檢測精度。為了解決R-CNN和SPP網(wǎng)絡(luò)的缺點,Girshick等人在2015年提出了Fast R-CNN算法。
2.3 Fast R-CNN
Fast R-CNN[12]是對R-CNN算法的改進(jìn),在卷積計算部分使用VGG16網(wǎng)絡(luò)代替AlexNet網(wǎng)絡(luò),并且融合了SPP-net的思想,將網(wǎng)絡(luò)的SPP層設(shè)計成為單獨的一層,即ROI(Region of Interesting) Pooling層,進(jìn)一步解決了權(quán)值更新的問題。該算法引入SVD(Singular Value Decomposition)對全連接層進(jìn)行分解,使得處理一張圖片的速度明顯提升。Fast R-CNN將卷積神經(jīng)網(wǎng)絡(luò)提取的特征存儲在顯存中,減少了對磁盤空間的占用,提高了訓(xùn)練性能,加快了訓(xùn)練速度。同時在網(wǎng)絡(luò)中加入多任務(wù)損失函數(shù)邊框回歸,整個訓(xùn)練過程僅包括候選區(qū)域提取和CNN訓(xùn)練兩個階段。但是,該算法存在一些缺陷。它仍然使用SS (Selective Search)方法來選擇候選區(qū)域,這一步仍然會有大量的計算。Fast R-CNN雖然成功地融合了R-CNN和SPP-Net的優(yōu)點,但仍然無法實現(xiàn)端到端的目標(biāo)檢測。例如,不能同時獲得候選區(qū)域,速度仍有提高的空間。
2.4 Faster R-CNN
針對以上網(wǎng)絡(luò)存在的不足,在 Fast R-CNN 之后不久,Ren等人在2015年提出了Faster R-CNN[13]算法。Faster R-CNN是第一個接近實時的深度學(xué)習(xí)檢測算法。Faster R-CNN的主要貢獻(xiàn)是引入了區(qū)域生成網(wǎng)絡(luò)(Region Proposal Networks,RPN),代替Selective Search算法。盡管Faster R-CNN已經(jīng)突破了Fast R-CNN的速度瓶頸,但是后續(xù)檢測階段仍存在計算冗余問題。它繼續(xù)沿用ROI Pooling層,這就會導(dǎo)致降低目標(biāo)檢測中定位的準(zhǔn)確性,而且Faster R-CNN對小目標(biāo)的檢測效果不佳,后來提出了各種改進(jìn)方案,包括R-FCN[14]和Light head R-CNN[15]都對Faster R-CNN做了進(jìn)一步的改進(jìn)。
2.5 FPN
為了解決Faster R-CNN目標(biāo)檢測算法在應(yīng)對多尺度變化問題時的不足,以及對小目標(biāo)檢測效果不佳等問題,Lin等人在Faster R-CNN的基礎(chǔ)上提出了FPN[16]算法。文章將一種自頂向下、帶有側(cè)向連接的層次結(jié)構(gòu)應(yīng)用在Faster R-CNN算法中,使得算法在不增加計算量的同時,對小目標(biāo)的檢測能力大幅提升。在FPN出現(xiàn)之前,大多數(shù)基于深度學(xué)習(xí)的目標(biāo)檢測算法都只用頂層特征做預(yù)測,雖然深層的特征語義信息豐富,但是目標(biāo)位置卻很模糊。FPN通過連續(xù)上采樣和跨層融合,使得輸出特征既具有底層視覺信息,又具有深層語義信息。嚴(yán)格來說,F(xiàn)PN本身并不屬于一種目標(biāo)檢測算法,它是一個骨干網(wǎng)絡(luò)。同時它也具有一定的缺陷,因為不同層之間存在語義鴻溝,直接融合會降低多尺度表示能力,而且下采樣過程會損失最高層金字塔特征信息。
結(jié)語
文中總結(jié)了當(dāng)前階段比較經(jīng)典的兩階段目標(biāo)檢測算法,并分析和總結(jié)其優(yōu)勢和局限??傮w來看,兩階段目標(biāo)檢測算法無論是檢測精度還是檢測速度都得到了提升與優(yōu)化。相對于單階段目標(biāo)檢測算法,兩階段目標(biāo)檢測算法雖然沒有單階段目標(biāo)檢測算法那么快,但其檢測精度方面更具有優(yōu)勢。隨著計算機(jī)視覺與深度學(xué)習(xí)的快速發(fā)展和其硬件性能的不斷提高,給目標(biāo)檢測技術(shù)的發(fā)展提供了有利的環(huán)境與條件。與傳統(tǒng)的目標(biāo)檢測算法相比,基于深度學(xué)習(xí)的目標(biāo)檢測算法不論是在速度還是精度方面都有了很大的提高,但仍有很大的發(fā)展空間。如何提升小目標(biāo)的檢測精度,使其更好地運用到遙感監(jiān)測與軍事領(lǐng)域中,如何使算法更加輕量化,使其能夠在移動設(shè)備上平穩(wěn)運行,如何運用到視頻監(jiān)控檢測,這對自動駕駛有著重要意義,這些都將會是兩階段目標(biāo)檢測算法的重要研究方向。希望基于深度學(xué)習(xí)的兩階段目標(biāo)檢測算法在未來能夠為人類帶來更大的貢獻(xiàn)。
參考文獻(xiàn):
[1]趙永強(qiáng),饒元,董世鵬.深度學(xué)習(xí)目標(biāo)檢測方法綜述[J].中國圖象圖形學(xué)報, 2020,25(4):629-654.
[2]張順,龔怡宏,王進(jìn)軍.深度卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展及其在計算機(jī)視覺領(lǐng)域的應(yīng)用[J].計算機(jī)學(xué)報,2019,42(3):453-482.
[3]宋曉琳,鄔紫陽,張偉偉.基于陰影和類Haar特征的動態(tài)車輛檢測[J].電子測量與儀器學(xué)報2015,(9):1340-1347.
[4]徐淵,許曉亮,李才年.結(jié)合SVM分類器與HOG特征提取的行人檢測[J].計算機(jī)工程2016,(1):56-60,65.
[5]Sermanet P,Eigen D,Zhang X,et al.Overfeat:Integrated recognition, localization and detection using convolutional networks[J].arXiv preprint arXiv:1312.6229,2013.
[6]Krizhevsky A,Sutskever I,Hinton GE.Imagenet classification with deep convolutional neural networks[J].Communications of the ACM,2017.60(6):84-90.
[7]Girshick R, Donahue J, Darrell T,et al.Rich feature hierarchies for accurate object detection and semantic segmentation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition.2014:580-587.
[8]吳素雯,戰(zhàn)蔭偉.基于選擇性搜索和卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測[J].計算機(jī)應(yīng)用研究2017,(9),2854-2857,2876.
[9]He K,Zhang X,Ren S,et al.Spatial pyramid pooling in deep convolutional networks for visual recognition[J].IEEE transactions on pattern analysis and machine intelligence,2015,37(9):1904-1916.
[10]侯明偉.基于空間金字塔池化的卷積神經(jīng)網(wǎng)絡(luò)圖像分類算法[D].武漢:武漢大學(xué),2018.
[11]楊偉,杜學(xué)峰,張勇.基于深度學(xué)習(xí)的車輛目標(biāo)檢測算法綜述[J].汽車實用技術(shù)2022,(2):24-26.
[12]Girshick R. Fast r-cnn[C]//Proceedings of the IEEE international conference on computer vision.2015:1440-1448.
[13]Ren S,He K,Girshick R,et al.Faster r-cnn:Towards real-time object detection with region proposal networks[C]//Advances in neural information processing systems. 2015,(1):91-99.
[14]Dai J,Li Y,He K,et al.R-fcn:Object detection via region-based fully convolutional networks[C]//Advances in neural information processing systems. 2016: 379-387.
[15]Li Z,Peng C,Yu G,et al.Light-head r-cnn:In defense of two-stage object detector[C]//arXiv preprint arXiv.2017:1711-7264.
[16]Lin TY,Dollár P,Girshick R,et al.Feature pyramid networks for object detection[C]//Proceedings of the IEEE conference on computer vision and pattern recognition.2017:2117-2125.
作者簡介:葉嘉欣,本科在讀,研究方向:日語、軟件工程。