葉嘉欣


摘要:目標檢測是計算機視覺的重要研究方向之一,旨在準確識別圖像中目標的位置和類別,因其較高的準確性,受到研究人員的廣泛關注。近年來,計算機技術快速發展,相對于傳統的目標檢測算法,基于深度學習的目標檢測算法的優勢逐漸凸顯,該算法精度高、實時性好。本文介紹了幾種經典的兩階段目標檢測算法,對其優缺點進行了比較,并對未來兩階段目標檢測算法的發展進行了展望。
關鍵詞:深度學習;目標檢測算法;技術演變 ;計算機視覺
引言
自計算機誕生之時,研究人員就在思考如何使計算機變得智能。如今,人工智能已經成為一個熱點領域,而在人工智能領域中,目標檢測[1]一直是計算機視覺領域經久不衰的研究方向[2]。它主要通過綜合利用圖像處理、機器學習、人工智能等技術,從圖像中查找對象,然后指定其位置和類別。在計算機視覺領域,由于各種外部環境因素的干擾,目標檢測一直是具挑戰性的問題之一。近年來,深度學習因為其優越性廣泛應用于各種領域,基于深度學習的目標檢測算法也逐漸被人們關注,如圖1所示。本文首先簡要說明傳統的目標檢測算法,并說明它的缺陷,還對當前經典的兩階段目標檢測算法進行了詳細的介紹與比較,最后展望了兩階段目標檢測算法未來的研究方向。
1. 傳統目標檢測算法
傳統的目標檢測算法可以分為兩個方向:根據特征進行目標識別、根據分割進行目標識別。在傳統的算法中,主要的特征有Harr特征[3]、HOG特征[4]、SIFT特征等。人為提取特征的效果難以保證是傳統目標檢測算法的一大缺點,可移植性較差,時間復雜度高,存在大量的冗余計算,勢必會導致運行速度難以提升,而且面對復雜多變的環境時,魯棒性差,只有在一些特定的環境下才會有較好的表現,因此在現實生活中也得不到大規模的使用。在計算機視覺技術迅猛發展的今天,基于深度學習的目標檢測算法因實時精度高,逐步替代了傳統目標檢測方法。在復雜場景下,背景變化劇烈時,傳統的目標檢測算法會出現誤檢或漏檢等現象。為克服傳統目標檢測算法準確性不高的不足,提出一種兩階段目標檢測算法。
2. 基于深度學習的兩階段目標檢測算法
2013年Sermanet等人[5]提出了著名的OverFeat算法。OverFeat可以說是單階段目標檢測算法的經典開山之作,基于AlexNet[6]實現了識別、定位、檢測共用同一個網絡框架。這也是首篇介紹使用一個網絡就能解決這一問題的方法。它利用了卷積神經網絡的特征提取功能,把分類過程中提取到的特征又同時用于定位檢測任務。該論文通過一種應用于回歸邊界框的貪婪合并策略,合并各個預測,是一種全新的定位與檢測方法。整體沒有全連接層,采用全卷積網絡,消除了傳統滑動窗口方法的很多冗余計算,提高了算法的魯棒性又保證了效率。此算法對后續深度學習目標檢測算法的發展有著重要意義。但是該算法對小目標的檢測效果不理想,且存在較高錯誤率。
2014年,R-CNN搭載著“Region Proposal(候選框)+CNN”提取的分類網絡的組合模式出現在大眾視野中,這種兩階段目標檢測算法以其優秀的準確度給目標檢測算法提供了新思路。Two-stage(兩階段)目標檢測算法將目標檢測分為兩大部分:候選區域的選取、目標的分類識別。兩階段目標檢測算法的優勢在于選取多個候選框可以充分提取目標的特征信息,檢測的準確度高,同時可以實現精準定位,但是因為算法模型復雜且分兩個步驟進行,所以檢測速度較慢。下面簡要介紹一些經典的兩階段檢測算法以及它們的優缺點。
2.1 R-CNN
R-CNN[7]算法由Girshick等人在2014年提出,它開啟了將深度學習運用在目標檢測的大門,并為后續該系列檢測算法奠定了基礎。此后,目標檢測算法的實時性與精確度不斷提高。
R-CNN目標檢測算法可分為四個步驟:第一步,利用選擇性搜索算法SS(Selective Search)[8]從圖像中提取約2000個候選框。第二步,利用深度卷積神經網絡提取各候選框的函數向量。第三步,用AlexNet將各個函數向量發送給各個向量機(SVM),判斷是否屬于此類。第四步,使用邊界框的回歸和非極大值抑制算法來獲得候選的最佳框。雖然該算法大幅提高了平均精確度,但是因為需要對2000個候選框進行特征提取,所以檢測速度較慢。針對此問題,He等人在2015年提出了SPP-Net[9]算法。
2.2 SPP-Net
因為R-CNN算法只能對固定大小的圖像進行卷積運算,這就會導致特征信息損失和運算速度慢的問題出現。為了解決R-CNN算法提取特征操作冗長的問題,He等人在2015年提出了SPP-Net算法。SPP-Net算法同樣大致分為四個步驟:第一步,采用SS(Selective Search)方法讓一張圖片生成2000個候選區域;第二步,利用空間金字塔池化[10](Spatial Pyramid Pooling,SPP)操作,把每個候選區域對應的特征轉換成固定長度的特征;第三步,輸入全連接層;第四步,進行后續SVM的分類和回歸。SPP-Net算法通過引入SPP來避免重復進行卷積運算,在保證同樣或者更好的檢測精度的同時,極大地提升了檢測速度,相比R-CNN 算法快24~102倍[11]。首先,訓練還處于多個階段,接下來,SPP-Net只對完全連接的層進行了微調,忽略了之前的所有層,添加池化層后,網絡只更新下面的完整連接層,忽略了以前層數對模型的影響,從而降低了檢測精度。為了解決R-CNN和SPP網絡的缺點,Girshick等人在2015年提出了Fast R-CNN算法。
2.3 Fast R-CNN
Fast R-CNN[12]是對R-CNN算法的改進,在卷積計算部分使用VGG16網絡代替AlexNet網絡,并且融合了SPP-net的思想,將網絡的SPP層設計成為單獨的一層,即ROI(Region of Interesting) Pooling層,進一步解決了權值更新的問題。該算法引入SVD(Singular Value Decomposition)對全連接層進行分解,使得處理一張圖片的速度明顯提升。Fast R-CNN將卷積神經網絡提取的特征存儲在顯存中,減少了對磁盤空間的占用,提高了訓練性能,加快了訓練速度。同時在網絡中加入多任務損失函數邊框回歸,整個訓練過程僅包括候選區域提取和CNN訓練兩個階段。但是,該算法存在一些缺陷。它仍然使用SS (Selective Search)方法來選擇候選區域,這一步仍然會有大量的計算。Fast R-CNN雖然成功地融合了R-CNN和SPP-Net的優點,但仍然無法實現端到端的目標檢測。例如,不能同時獲得候選區域,速度仍有提高的空間。
2.4 Faster R-CNN
針對以上網絡存在的不足,在 Fast R-CNN 之后不久,Ren等人在2015年提出了Faster R-CNN[13]算法。Faster R-CNN是第一個接近實時的深度學習檢測算法。Faster R-CNN的主要貢獻是引入了區域生成網絡(Region Proposal Networks,RPN),代替Selective Search算法。盡管Faster R-CNN已經突破了Fast R-CNN的速度瓶頸,但是后續檢測階段仍存在計算冗余問題。它繼續沿用ROI Pooling層,這就會導致降低目標檢測中定位的準確性,而且Faster R-CNN對小目標的檢測效果不佳,后來提出了各種改進方案,包括R-FCN[14]和Light head R-CNN[15]都對Faster R-CNN做了進一步的改進。
2.5 FPN
為了解決Faster R-CNN目標檢測算法在應對多尺度變化問題時的不足,以及對小目標檢測效果不佳等問題,Lin等人在Faster R-CNN的基礎上提出了FPN[16]算法。文章將一種自頂向下、帶有側向連接的層次結構應用在Faster R-CNN算法中,使得算法在不增加計算量的同時,對小目標的檢測能力大幅提升。在FPN出現之前,大多數基于深度學習的目標檢測算法都只用頂層特征做預測,雖然深層的特征語義信息豐富,但是目標位置卻很模糊。FPN通過連續上采樣和跨層融合,使得輸出特征既具有底層視覺信息,又具有深層語義信息。嚴格來說,FPN本身并不屬于一種目標檢測算法,它是一個骨干網絡。同時它也具有一定的缺陷,因為不同層之間存在語義鴻溝,直接融合會降低多尺度表示能力,而且下采樣過程會損失最高層金字塔特征信息。
結語
文中總結了當前階段比較經典的兩階段目標檢測算法,并分析和總結其優勢和局限。總體來看,兩階段目標檢測算法無論是檢測精度還是檢測速度都得到了提升與優化。相對于單階段目標檢測算法,兩階段目標檢測算法雖然沒有單階段目標檢測算法那么快,但其檢測精度方面更具有優勢。隨著計算機視覺與深度學習的快速發展和其硬件性能的不斷提高,給目標檢測技術的發展提供了有利的環境與條件。與傳統的目標檢測算法相比,基于深度學習的目標檢測算法不論是在速度還是精度方面都有了很大的提高,但仍有很大的發展空間。如何提升小目標的檢測精度,使其更好地運用到遙感監測與軍事領域中,如何使算法更加輕量化,使其能夠在移動設備上平穩運行,如何運用到視頻監控檢測,這對自動駕駛有著重要意義,這些都將會是兩階段目標檢測算法的重要研究方向。希望基于深度學習的兩階段目標檢測算法在未來能夠為人類帶來更大的貢獻。
參考文獻:
[1]趙永強,饒元,董世鵬.深度學習目標檢測方法綜述[J].中國圖象圖形學報, 2020,25(4):629-654.
[2]張順,龔怡宏,王進軍.深度卷積神經網絡的發展及其在計算機視覺領域的應用[J].計算機學報,2019,42(3):453-482.
[3]宋曉琳,鄔紫陽,張偉偉.基于陰影和類Haar特征的動態車輛檢測[J].電子測量與儀器學報2015,(9):1340-1347.
[4]徐淵,許曉亮,李才年.結合SVM分類器與HOG特征提取的行人檢測[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]吳素雯,戰蔭偉.基于選擇性搜索和卷積神經網絡的人臉檢測[J].計算機應用研究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]侯明偉.基于空間金字塔池化的卷積神經網絡圖像分類算法[D].武漢:武漢大學,2018.
[11]楊偉,杜學峰,張勇.基于深度學習的車輛目標檢測算法綜述[J].汽車實用技術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.
作者簡介:葉嘉欣,本科在讀,研究方向:日語、軟件工程。