黃治翔 張藝騫



摘要: 目標檢測是當前計算機視覺領域的核心問題之一,其任務是找出圖像中所有感興趣的目標,確定它們的類別與位置。由于每張圖像中目標的數量、位置各有不同,所以目標檢測一直具有極大的挑戰力。深度學習的目標檢測相對于傳統的目標檢測來說,效果顯著,在一定程度上彌補了傳統檢測的不足。首先介紹傳統目標檢測算法,然后分別介紹深度學習算法,最后對當前目標檢測領域存在的問題進行總結,并展望未來。
關鍵詞: 目標檢測 深度學習 計算機視覺 圖像
中圖分類號: TP391.41;TP18 文獻標識碼: A 文章編號: 1672-3791(2023)24-0013-04
隨著計算機的蓬勃發展,目標檢測是當前視覺領域重點研究內容之一。目標檢測(objection detection)是機器視覺中最常見的問題,是一種基于目標幾何和統計特征的圖像分割。它將目標的分割和識別合二為一,其準確性和實時性是整個系統的一項重要能力。近年來,目標檢測在人工智能、人臉識別、無人駕駛等領域都得到了廣泛的應用[1]。目前,目標檢測主要分為傳統檢測方法和基于深度學習的檢測方法。傳統方法一般是對圖像設置不同大小比例的滑動窗口,將圖像中的某些部分列為候選區,然后人工設定特征算子,如尺度不變特征轉換(Scale-Invariant Feature Transform,SIFT)[2]、Harr 特征識別算法(Harr-Like,Harr)[3]和方向梯度直方圖(Histogram of Oriented Gradient,HOG)[4]等,提取候選區特征,最后進行特征分類,但存在效果檢測速度慢、精確低等問題。基于深度學習的目標檢測算法使用的是卷積神經網絡(ConvolutionalNeural Networks,CNN)學習特征的方式,這種特征學習方式能自動發現檢測及分類目標所需要的特征,同時通過卷積神經網絡將原始輸入信息轉化成更抽象、更高維的特征。這種高維特征具有強大的特征表達能力和泛化性,所以其在復雜場景下的性能表現較好,可滿足工業界的大部分應用需求[5]。
1 傳統目標檢測算法
傳統目標檢測方法分為3 個步驟:首先對給定的圖片通過采用滑動窗口的方法進行候選框提取,再對每個窗口中的局部信息進行特征提取,特征提取后用分類器判定,分類器需要離線進行學習和訓練后得到[6]。其區域選擇策略為基于滑動窗口的策略,主要是使用窮舉法來檢測目標位置。但圖像中的目標形狀、大小各有不同,就需要不同尺寸的窗口進行滑動。使用滑動窗口算法產生候選區域候選框的優點是算法簡單易實現,但缺點也是顯而易見的,即產生大量的冗余窗口致使計算量大、復雜度高以及時間長,但如果為了減少計算量而使用較大的步長則會導致給出的候選區域不準確,致使后續分類效果不佳,影響算法的整體性能。
在目標檢測算法中,特征提取方法可以分為3 種類型。一是底層特征,包括顏色、紋理和形狀等最基礎的特征。二是中層次特征,這些特征是通過在底層特征的基礎上應用機器學習方法進行特征挖掘和特征學習而得到的。常見的中層次特征包括PCA 特征、LDA學習后的特征以及其他基于優化理論進行特征學習的特征。三是高層次特征,這些特征通過對低層次特征和高層次特征進行深度挖掘和表示而得到,如使用是否戴帽子或是否戴眼鏡等語義特征來描述一個人。根據特征獲取方式的不同,低層次特征被稱為手工設計特征,而中層次特征被稱為基于學習的特征。
傳統的目標檢測算法主要使用的是基于手工設計的特征來實現特征提取。目前,主要使用的特征提取方法主要集中在這兩類特征上。其中常見的傳統的目標檢測算法有哈爾(Haar)特征、方向直方圖(HOG)特征等。在實際目標檢測應用中,被檢測目標的形態變化多種多樣,同時外部環境的變化也是不可預測的。光照和背景變化等因素都會增加手工設計特征的難度。Haar 特征只能描述在特定方向上,HOG 特征對于局部形狀信息以及噪點較敏感,對幾何和光學變化都有很好的不變性。傳統的目標分類算法中,SVM 分類器在數據分類任務上表現優異。為進一步提高SVM的分類效果,學者們提出了將核方法引入SVM 中,這種方法極大提高了分類精度,但高度依賴于核的選取。在實際應用中,算法所需處理的圖像數據的維度越來越大,傳統的分類器很難滿足對高維數據的分類檢測要求。鑒于此,學者們提出通過級聯方式使傳統分類器發揮更大性能,在此過程中不斷提出分類效果更好的強分類器,如Bagging、Boosting 及隨機森林等。雖然通過對分類器的集成能夠暫時保證對復雜圖像數據的處理能力,但如何在減少時間開銷的同時保證分類性能仍是學者們需要研究的問題。
2 深度學習算法
深度學習是人工智能技術下機器學習的一個分支,能夠對數據進行復雜分析,從數據中提取特征并建立高維度模型,以解決實際問題。與其他機器學習算法不同,深度學習利用神經網絡結構從原始數據中提取多層特征,使機器具有更強大的學習效果。深度學習的運行方式可以由不同模型組合起來,以解決更復雜的問題。它是一種解決問題的建模方法,可以從數據和系統內置規則中提取模型,并通過參數優化來實現更高精度的預測。近年來,由于計算機算力增強、數據增多和算法逐漸成熟,深度學習不僅用于數據挖掘、信息提取和模式識別等領域,還廣泛應用于自然語言處理、機器視覺和語音識別等領域,實現不同的人工智能技術,并在越來越多的行業與場景中得到應用。
HINTON G E等人[7]在2006年提出一種多隱藏層的網絡結構,能夠詳細描述一個物體更深層抽象的特征。當時計算機性能較差,不能滿足深度學習的運行環境,因此深度學習遇到瓶頸[8]。但由于科技發展,計算機硬件有了很大提升,深度學習擁有良好的發展環境,各種模型也不斷被人們提出,被廣泛應用于不同行業中。
深度學習是基于流向圖的方式,來描述從輸入到輸出的全部計算過程。而深度是這個流向圖的特別屬性,指從一個輸入到另一個輸出最長的長度[9]。深度學習是一種模擬人腦信息處理機制的機器學習方法,通過構建多層神經網絡對大量數據進行訓練,實現類似人腦的自主學習和分析功能。在目標檢測算法中,深度卷積神經網絡被大量使用,作為典型網絡模型,其主要有如下特點和優勢:第一,卷積神經網絡的層級結構可以提取輸入圖像的多層語義特征,如圖像的低級語義特征和高級語義特征;第二,深度卷積神經網絡可以學習更復雜的函數;第三,深度卷積神經網絡不需要先驗知識,可以直接自動學習原始輸入圖像的特征表達[10]。基于深度學習的目標檢測算法可根據原理不同劃分為基于回歸的神經網絡模型可稱為One-stage模型和基于區域候選的神經網絡模型可稱為Twostage模型。One-stage 模型包括以Yolo 和SSD 網絡為主的系列模型。Two-stage 模型包括以區域卷積神經網絡R-CNN 為代表的系列模型。二者主要區別在于One-stage 模型能夠利用主網絡完成對物體的識別和檢測,然后直接回歸物體的分類概率以及位置坐標值。但Two-stage 模型需要先產生區域建議框,然后由全連接層完成分類工作。兩種模型各有優點:One-stage 模型檢測速度快,但檢測精度卻不高;Two-stage 模型雖耗時多,但檢測精度較高。
區域卷積神經網絡R-CNN算法的具體流程為:(1)通過選擇搜索(Selective Search)網絡對圖像的紋理、顏色等特征進行分析,選取出2 000 個大小不同的候選區域;(2)對特征向量進行歸一化處理;(3)通過深度網絡對輸入的候選區域進行前向計算獲得特征;(4)訓練支持向量機(Support Vector Machine,SVM)分類器進行分類;(5)使用回歸器精細修正每個候選框的位置[11]。RCNN網絡模型如圖1所示。
Fast R-CNN 是對R-CNN 做了改進,將特征提取模塊、區域分類和邊界框回歸模塊整合在一起。FastR-CNN 的輸入是圖像和候選區,利用卷積網絡提取特征,在特征圖中每個候選區域對應的感興趣區域(Regions of interest,Rol)經過Rol pooling 層固定特征尺寸,送入全連接層進行分類和邊界框回歸[12]。該模型的創新就是將除了候選區選擇之外的模塊實現端到端的操作。不足之處就是在生成候選區耗時選擇性搜索,時間開銷并沒有得到根本改善。
Faster R-CNN 和Fast R-CNN 的流程幾乎相同,只是將產生建議框速度較慢的選擇性搜索算法換成了區域建議網絡。此項改進創造性地首次提出使用卷積神經網絡的方式產生區域建議框,并且產生的建議框直接與目標檢測網絡共享參數,建議框的數目也從2 000個縮減到300 個,減少了冗余計算[13]。Faster R-CNN框架如圖2 所示。
Yolo 目標檢測算法是由卷積層和FC 層構成的,首先是在最頂層特征圖中標出邊界框,然后就能對每個類別概率進行預測,最后再激活函數就可以得到最終信息。Yolo 目標檢測算法主要優點是其檢測速度快和使用了圖像全局信息做預測,對于背景的識別錯誤率是低于FastR-CNN 的。該算法并不是針對整幅圖像進行檢測,而是將整幅圖像分為了多個網格單元,對每個網格中心目標進行檢測即可。該算法不用生成候選區域,在一個卷積網絡中就可以完成特征提取、分類回歸等任務,檢測過程得到了簡化,檢測速度也變得更快;但該算法對于小尺度目標的檢測不夠準確,如果圖像中存在重疊、遮擋等現象就可能出現遺漏[14]。
SSD 算法是對Yolo 算法的改進,不僅提高了對小目標檢測的準確度,還保證了檢測速度。SSD 算法去除了Yolo 算法的全連接層,對任意大小的目標都可檢測。對SSD 的測試集進行訓練和訓練使用候選區域及用來池化的標準檢測器之間最大的不同之處在于,真實邊框需要被賦予一組固定集合檢測輸出中某一個特定輸出[15]。SSD 模型的結構圖如圖3 所示,SSD 是以VGG16 作為基礎模型,緊接著在其基礎上新增了卷積層,以此來獲得更多的特征圖以用于檢測。SSD 算法通過直接回歸的方式,計算出所需要檢測的目標類別。并且,SSD 算法的檢測過程是針對卷積網絡卷積之后的結果來進行處理的。在處理時,最終采用直接回歸目標位置和類別的時候,實際上是作用在不同的尺度的特征圖上來進行預測的。它是在真正意義上實現了端到端的訓練。另外,SSD 是屬于One-stage 模型的一種,它能夠處理低分辨率圖像,也能夠保證相應的檢測精度。這是因為SSD 算法是作用在不同尺度的特征圖上進行預測,以小尺度特征圖檢測大目標,以大尺度特征圖檢測小目標。
3 總結與展望
總體而言,基于區域提取的Two-stage 目標檢測架構在準確率和漏檢率方面表現出色,但檢測速度相對較慢,難以滿足對實時性要求較高或嵌入式移動平臺的應用需求。為了解決這一問題,基于位置回歸的One-stage 目標檢測算法應運而生。它通過直接進行分類和位置回歸,有效提高了目標檢測速度,并且隨著后續版本的迭代,檢測精度也在不斷提升。綜上所述,基于深度學習的目標檢測算法在精度和檢測速度方面相較于傳統方法有了顯著提升,但仍有許多科學問題需要進一步研究和解決。
未來,目標檢測的研究和探索應涵蓋多個方面。
第一,因果推理是一個值得關注的方向。因果推理讓機器具備常識,通過這種基于常識的判斷方法,人們可以利用小數據集完成大規模任務。這種技術在圖像分類、視頻問答、情境圖生成等領域都有應用價值。與僅通過大量數據訓練的模型相比,基于因果性的模型更能揭示內在原因,而非僅僅基于數據擬合的相關性。這有助于減少誤檢,提高目標檢測的精度。第二,模型可解釋。在訓練模型時設置參數很重要,如果模型可以解釋的話,那么在訓練數據時就會節省很多時間和成本,而且效果也很好。第三,努力提高模型的檢測精度和檢測速度。如果能夠同時兼顧精確度與檢測速度,則對于研究基于深度學習目標檢測具有重要的意義。隨著科技的發展,未來的目標檢測領域必將會得到更進一步發展。
參考文獻
[1] 王順飛,閆鈞華,王志剛. 改進的基于局部聯合特征的運動目標檢測方法[J]. 儀器儀表學報,2015,36(10):2241-2248.
[2] LOWE D G. Distinctive Image Features from Scaleinvariant?Keypoints[J]. International Journal of Computer?Vision,2004,60(2):91-110.
[3] LIENHART R,MAYDT J. An Extended Set of Haarlike?Features for Rapid Object Detection[C]//International?Conference on Image Process-ing.New York:IEEE,2002:I-900-I-903.
[4] 袁小平,馬緒起,劉賽.改進YOLOv3的行人車輛目標檢測算法[J].科學技術與工程,2021,21(8):3192-3198.
[5] 呂璐,程虎,朱鴻泰,等. 基于深度學習的目標檢測研究與應用綜述[J]. 電子與封裝,2022,22(1):72-80.
[6] 尹宏鵬,陳波,柴毅,等. 基于視覺的目標檢測與跟蹤綜述[J]. 自動化學報,2016,42(10):1466-1489.
[7] HINTON G E, SALAKHUTDINOV R R. Reducing the?dimensionality of data with neural networks[J].Science,2006,313(5786):504-507.
[8] 鄭遠攀,李廣陽,李曄.深度學習在圖像識別中的應用研究綜述[J].計算機工程與應用,2019,55(12):20-36.
[9] GUO Y M, LIU Y, ARD O, et al. Deep Learning for Visual?Under-standing: a review[J]. Neurocomputing, 2016,187:27-48.
[10] 李坤坤,劉正熙,熊運余.基于深度學習的目標檢測系統性文獻綜述[J].現代計算機,2021(16):98-102,117.
[11] 包曉敏,王思琪. 基于深度學習的目標檢測算法綜述[J]. 傳感器與微系統,2022,41(4):5-9.
[12] 南曉虎,丁雷. 深度學習的典型目標檢測算法綜述[J]. 計算機應用研究,2020,37(S2):15-21.
[13] 陶慧青. 基于Faster R-CNN 的高速鐵路異物侵限檢測算法的研究[D]. 蘭州:蘭州交通大學,2020.
[14] 李一男. 深度學習目標檢測方法研究綜述[J]. 中國新通信,2021,23(9):159-160.
[15] 周曉彥,王珂,李凌燕. 基于深度學習的目標檢測算法綜述[J]. 電子測量技術,2017,40(11):89-93.