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