陳輝東 丁小燕 劉艷霞
[摘 要] 目標(biāo)識(shí)別和定位是計(jì)算機(jī)視覺領(lǐng)域研究的主要問題,圖像分割、目標(biāo)跟蹤、目標(biāo)行為分析等都是以圖像中的目標(biāo)檢測(cè)為基礎(chǔ)的。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,目標(biāo)檢測(cè)算法取得了巨大突破。在廣泛調(diào)研相關(guān)文獻(xiàn)的基礎(chǔ)上,對(duì)目標(biāo)檢測(cè)算法進(jìn)行分析和對(duì)比,分別研究基于區(qū)域提取的兩階段目標(biāo)檢測(cè)架構(gòu)和直接位置回歸的一階段目標(biāo)檢測(cè)架構(gòu)的本質(zhì)特點(diǎn)和發(fā)展過(guò)程,并提出未來(lái)的發(fā)展方向。
[關(guān)鍵詞] 目標(biāo)檢測(cè);深度學(xué)習(xí);卷積神經(jīng)網(wǎng)絡(luò)
[中圖分類號(hào)] TP 391.4 ?[文獻(xiàn)標(biāo)志碼] A ?[文章編號(hào)] 1005-0310(2021)03-0039-08
Abstract: ?Target recognition and localization are the main research issues in the field of computer vision. Image segmentation, target tracking, target behavior analysis are all based on target detection in images. With the development of deep learning technology, target detection algorithm has made a great breakthrough. On the basis of extensive research on relevant literature, this paper analyzes and compares the target detection algorithm, respectively studies the essential characteristics and development process of two-stage target detection architecture based on region extraction and one-stage target detection architecture based on direct location regression, and puts forward the direction for future development.
Keywords: Target detection;Deep learning;Convolutional neural networks
0 引言
目標(biāo)檢測(cè)包括分類(Classification)和定位(Location)兩方面。目標(biāo)檢測(cè)應(yīng)用領(lǐng)域廣泛,包括人臉檢測(cè)、行人檢測(cè)、車輛檢測(cè)等。由于檢測(cè)物體形狀各異,實(shí)際場(chǎng)景存在背景復(fù)雜、遮擋嚴(yán)重及光照影響等問題,設(shè)計(jì)高精度的檢測(cè)模型具有很大挑戰(zhàn)。傳統(tǒng)的目標(biāo)檢測(cè)算法分為3個(gè)步驟,如圖1所示。
1)候選區(qū)域選擇:通常使用滑動(dòng)窗口(Sliding Windows,SW)算法,通過(guò)不同大小的滑窗在輸入圖像上劃定目標(biāo)可能存在的區(qū)域,對(duì)目標(biāo)進(jìn)行初步定位。
2)特征提取:使用局部二值模式(Local Binary Pattern,LBP)、方向梯度直方圖(Histogram of Oriented Gradient,HOG)等算法對(duì)候選區(qū)域進(jìn)行特征提取。
3)分類:通過(guò)支持向量機(jī)(Support Vector Machines,SVM)、Adaboost等算法對(duì)提取的圖像特征進(jìn)行分類。
傳統(tǒng)目標(biāo)檢測(cè)算法沒有針對(duì)性地使用滑動(dòng)窗口去檢測(cè)目標(biāo),不僅效率低,準(zhǔn)確率也不高,而且人工選擇的特征對(duì)于形狀各異的不規(guī)則物體魯棒性較差[1-5]。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,利用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)[6]提取圖像特征,從而實(shí)現(xiàn)目標(biāo)檢測(cè),已成為機(jī)器視覺領(lǐng)域研究的熱點(diǎn)之一。
目前,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)方法主要有兩大分支,分別是基于區(qū)域提取的兩階段目標(biāo)檢測(cè)模型和直接進(jìn)行位置回歸的一階段目標(biāo)檢測(cè)模型。
1 兩階段目標(biāo)檢測(cè)
區(qū)域提取算法的核心是卷積神經(jīng)網(wǎng)絡(luò)CNN,具有局部連接和權(quán)值共享優(yōu)勢(shì),在物體分類應(yīng)用中具有很好的魯棒性[6]。區(qū)域提取操作首先利用CNN骨干網(wǎng)提取圖像特征,然后從特征圖中找出可能存在的前景目標(biāo)(候選區(qū)域),最后在候選區(qū)域上進(jìn)行滑動(dòng)窗口操作,進(jìn)一步判斷目標(biāo)類別和位置信息,這大大減少了計(jì)算的時(shí)間復(fù)雜度。
1.1 R-CNN
Region CNN(R-CNN)[7]由Ross Girshick提出,是基于深度學(xué)習(xí)目標(biāo)檢測(cè)的開山之作。該算法在VOC2007數(shù)據(jù)集上的所有類別的平均精準(zhǔn)度(mean Average Precision,mAP)達(dá)到66%,突破了多年以來(lái)可變型部件模型(Deformable Part Model,DPM)方法無(wú)法逾越的瓶頸,顯著提升了檢測(cè)率。R-CNN算法主要分為4步,如圖2所示。
1)輸入訓(xùn)練集圖像。
2)采用選擇性搜索(Selective Search,SS)算法從待檢測(cè)圖像中找出2k個(gè)區(qū)域候選框,并縮放成227×227的固定大小,這些候選框大概率包含要檢測(cè)的目標(biāo)。
3)通過(guò)CNN骨干網(wǎng)提取每個(gè)候選框的圖像特征,會(huì)得到固定長(zhǎng)度的特征向量。
4)把特征向量同時(shí)送入SVM分類器和全連接網(wǎng)絡(luò),分別進(jìn)行分類和位置回歸,輸出分類概率和對(duì)應(yīng)位置的坐標(biāo)信息。
R-CNN首先通過(guò)SS算法提取2k個(gè)左右的感興趣區(qū)域(Region of Interest, RoI),再對(duì)感興趣區(qū)域進(jìn)行特征提取,相比全局無(wú)差別的滑窗操作,其效率和準(zhǔn)確率都提高了很多,但也存在一些缺陷。比如,對(duì)2k個(gè)感興趣區(qū)域分別通過(guò)CNN網(wǎng)絡(luò)提取特征,彼此之間的權(quán)值無(wú)法共享,存在重復(fù)計(jì)算;對(duì)2k個(gè)左右的候選區(qū)域分別進(jìn)行特征提取、目標(biāo)分類和位置回歸,生成的中間數(shù)據(jù)需要單獨(dú)保存,還會(huì)消耗過(guò)多的存儲(chǔ)資源;對(duì)輸入的圖像必須強(qiáng)制縮放成固定大小,會(huì)導(dǎo)致目標(biāo)物體產(chǎn)生變形,影響檢測(cè)準(zhǔn)確率。針對(duì)重復(fù)計(jì)算和輸入圖片固定大小的問題,SPP-NET[8]給出了解決方案。
1.2 SPP-NET
SPP-NET是由Kaiming He等在R-CNN的基礎(chǔ)上提出的。在R-CNN網(wǎng)絡(luò)中,第一個(gè)全連接層的輸入需要固定的大小,但是卷積層對(duì)輸入尺寸并無(wú)要求。因此,只要在最后一個(gè)卷積層和第一個(gè)全連接層之間做些處理,保證輸入全連接層的尺寸一致即可解決輸入圖像尺寸受限的問題。SPP-NET在最后一個(gè)卷積層之后加入空間金字塔池化(Spatial Pyramid Pooling,SPP)層[8],在SPP 層中對(duì)Conv5層輸出的特征圖采用3個(gè)不同尺度的池化核進(jìn)行池化操作,分別得到16×256、4×256和1×256維的特征向量,再把該層輸出結(jié)果進(jìn)行拼接,就可得到固定長(zhǎng)度為5 376的輸出。SPP 層結(jié)構(gòu)圖如圖3所示。
與R-CNN相同,SPP-NET也需要預(yù)先生成候選區(qū)域,但輸入CNN特征提取網(wǎng)絡(luò)的不再是2k個(gè)左右的候選區(qū)域,而是包含所有候選區(qū)域的整張圖像,只需通過(guò)一次卷積網(wǎng)絡(luò)即可得到整張圖像和所有候選區(qū)域的特征。這大大減小了計(jì)算的時(shí)間復(fù)雜度,速度比R-CNN提高了100倍左右。
1.3 Fast R-CNN
Fast R-CNN借鑒SPP-NET中的特征金字塔思想,對(duì)R-CNN網(wǎng)絡(luò)進(jìn)行了改進(jìn),檢測(cè)性能獲得提升[9]。不同于SPP-NET采用3個(gè)尺度的池化核,研究者提出的RoI Pooling把各種尺寸的候選區(qū)域特征圖映射成統(tǒng)一尺度的特征向量,如圖4所示。
首先,將不同大小的候選區(qū)域都切分成M×N塊,再對(duì)每塊都進(jìn)行max pooling得到1個(gè)值。這樣,所有候選區(qū)域特征圖就都統(tǒng)一成M×N維的特征向量了。
此外,研究者還提出了多任務(wù)模型,即同時(shí)訓(xùn)練分類任務(wù)和位置回歸任務(wù),并共享卷積特征,進(jìn)一步提高了模型訓(xùn)練速度,如表1所示。
可以看出,R-CNN訓(xùn)練用時(shí)是Fast R-CNN的8.8倍,R-CNN每幅圖像的測(cè)試用時(shí)是Fast R-CNN的146倍,F(xiàn)ast R-CNN的檢測(cè)速度獲得很大提升。Fast R-CNN存在的問題是,利用SS算法產(chǎn)生候選框?qū)r(shí)間消耗非常大。為解決這個(gè)問題,Ren等人于2015年提出了Faster R-CNN。
1.4 Faster R-CNN
SPP-NET和Fast R-CNN都需要單獨(dú)生成候選區(qū)域,無(wú)法進(jìn)行端到端的訓(xùn)練,計(jì)算量很大且無(wú)法用圖形處理器(Graphics Processing Unit,GPU)進(jìn)行加速。針對(duì)這個(gè)問題,Ren等人于2015年設(shè)計(jì)了區(qū)域生成網(wǎng)絡(luò)(Region Proposal Network,RPN),提出Faster R-CNN[10]模型。
Faster R-CNN模型的輸入圖像不再通過(guò)SS提取候選區(qū)域,而是先用CNN骨干網(wǎng)提取圖像特征,這極大地提高了網(wǎng)絡(luò)的實(shí)時(shí)性。經(jīng)過(guò)骨干網(wǎng)提取的特征圖由RPN網(wǎng)絡(luò)和后續(xù)的檢測(cè)器共享,特征圖進(jìn)入RPN網(wǎng)絡(luò)后,對(duì)每個(gè)特征點(diǎn)預(yù)設(shè)9個(gè)不同尺度和形狀的錨盒,計(jì)算錨盒和真實(shí)目標(biāo)框的交并比和偏移量,判斷該位置是否存在目標(biāo),將預(yù)定義的錨盒分為前景或背景,再根據(jù)偏差損失訓(xùn)練RPN網(wǎng)絡(luò),進(jìn)行位置回歸,修正RoI的位置,最后將修正的RoI傳入后續(xù)網(wǎng)絡(luò)。
RPN網(wǎng)絡(luò)輸出的推薦框RoI就是從特征圖(CNN骨干網(wǎng)從原始圖像中提取的)中檢測(cè)出的潛在目標(biāo),將不同大小的RoI進(jìn)行RoI Pooling后,得到固定大小的特征向量,輸入到后續(xù)的全連接網(wǎng)絡(luò),對(duì)前景目標(biāo)再次進(jìn)行目標(biāo)細(xì)分類和位置回歸,得出最終檢測(cè)結(jié)果,如圖5所示。
Faster R-CNN只利用CNN骨干網(wǎng)提取一次特征,實(shí)現(xiàn)了RPN網(wǎng)絡(luò)和檢測(cè)頭(進(jìn)行分類和位置回歸的全連接層)的權(quán)值共享,不僅降低了計(jì)算復(fù)雜度,而且實(shí)現(xiàn)了端到端的訓(xùn)練。但是,F(xiàn)aster R-CNN 在檢測(cè)過(guò)程中,RPN網(wǎng)絡(luò)需要對(duì)目標(biāo)進(jìn)行一次回歸篩選以區(qū)分前景和背景目標(biāo),后續(xù)檢測(cè)網(wǎng)絡(luò)對(duì)RPN輸出的RoI再一次進(jìn)行細(xì)分類和位置回歸,兩次計(jì)算導(dǎo)致模型參數(shù)量大,使模型精度提高的同時(shí),目標(biāo)識(shí)別速度很難進(jìn)一步提升。
1.5 Mask R-CNN
2017年,Kaiming He等在Faster R-CNN中增加了并行的mask分支——小型全連接卷積網(wǎng)絡(luò)(Fully Convolutional Networks for Semantic Segmentation,F(xiàn)CN)[11-12],對(duì)每個(gè)RoI生成一個(gè)像素級(jí)別的二進(jìn)制掩碼。Mask R-CNN算法擴(kuò)展了Faster R-CNN,適用于像素級(jí)的細(xì)粒度圖像分割。該算法主要分兩部分:通過(guò)RPN網(wǎng)絡(luò)產(chǎn)生候選框區(qū)域;在候選框區(qū)域上利用RoI Align提取RoI特征,得到目標(biāo)分類概率和邊界框預(yù)測(cè)的位置信息,同時(shí)也對(duì)每個(gè)RoI產(chǎn)生一個(gè)二進(jìn)制掩碼。如圖6所示。
在Fast R-CNN中,采用RoI Pooling產(chǎn)生統(tǒng)一尺度的特征圖,這樣再映射回原圖時(shí)就會(huì)產(chǎn)生錯(cuò)位,使像素之間不能精準(zhǔn)對(duì)齊。這對(duì)目標(biāo)檢測(cè)產(chǎn)生的影響相對(duì)較小,但對(duì)于像素級(jí)的分割任務(wù),誤差就不容忽視了。Mask R-CNN中用雙線性插值解決像素點(diǎn)不能精準(zhǔn)對(duì)齊的問題,即RoI Align。比如,將320×240的原始圖像映射為32×24的特征圖,需要將原始圖像中的每320/32個(gè)像素映射到特征圖中的1個(gè)像素。如果將原始圖片中32個(gè)像素映射到特征圖中,得到32×32/320=3.2個(gè)像素。RoI Pooling四舍五入得到3個(gè)像素,會(huì)產(chǎn)生像素錯(cuò)位;但RoI Align使用雙線性插值可精確計(jì)算3.2個(gè)像素。在使用RoI Align代替RoI Pooling后,Mask R-CNN在目標(biāo)檢測(cè)領(lǐng)域取得了出色的結(jié)果,超越了Faster R-CNN。Mask R-CNN模型靈活性較強(qiáng),稍加改動(dòng)即可適用于目標(biāo)檢測(cè)、目標(biāo)分割等多種任務(wù),但由于繼承了Faster R-CNN的兩階段計(jì)算方法,其實(shí)時(shí)性仍不夠理想。
1.6 兩階段目標(biāo)檢測(cè)對(duì)比分析
上述基于區(qū)域提取的目標(biāo)檢測(cè)算法不斷發(fā)展并逐步優(yōu)化,檢測(cè)精度也不斷提高,最終實(shí)現(xiàn)了圖像實(shí)例分割。具體來(lái)說(shuō),R-CNN 率先嘗試用CNN卷積神經(jīng)網(wǎng)絡(luò)提取圖像特征,相比傳統(tǒng)手工設(shè)置特征的HOG、DPM等算法,取得了很大進(jìn)步,檢測(cè)率顯著提升。SPP-NET的主要貢獻(xiàn)是將整張圖片輸入到卷積層提取圖像特征,并在最后一個(gè)卷積層后加入空間金字塔池化,提高了檢測(cè)速度和多尺度目標(biāo)的檢測(cè)率。Fast R-CNN的主要?jiǎng)?chuàng)新點(diǎn)是讓分類任務(wù)和位置回歸任務(wù)共享卷積特征,解決了目標(biāo)定位和分類同步問題,檢測(cè)速度進(jìn)一步提升。Faster R-CNN提出用可訓(xùn)練的RPN網(wǎng)絡(luò)生成目標(biāo)推薦區(qū)域,解決了前幾種算法無(wú)法實(shí)現(xiàn)的端到端的學(xué)習(xí)問題。Mask R-CNN則在 Faster R-CNN 的基礎(chǔ)上,將 RoI Pooling層替換成了 RoI Align層,使得特征圖和原圖的像素對(duì)齊得更精準(zhǔn),并新增了一個(gè)mask掩碼分支用于實(shí)例分割,解決了同時(shí)進(jìn)行目標(biāo)定位、分類和分割的問題。
上述基于區(qū)域提取的目標(biāo)檢測(cè)方法首先產(chǎn)生感興趣區(qū)域的推薦框,再對(duì)推薦框進(jìn)行分類和回歸,雖然檢測(cè)精度一直在不斷提高,但是檢測(cè)速度普遍較慢,不適合對(duì)實(shí)時(shí)性要求較高的應(yīng)用場(chǎng)景,其性能對(duì)比如表2所示。
為進(jìn)一步提高目標(biāo)檢測(cè)實(shí)時(shí)性,一些學(xué)者提出一種將目標(biāo)檢測(cè)轉(zhuǎn)化到回歸問題上的簡(jiǎn)化算法模型,在提高檢測(cè)精度的同時(shí)提高檢測(cè)速度,并分別提出了YOLO[13]和SSD[14]等一系列基于位置回歸的一階段目標(biāo)檢測(cè)模型。
2 一階段目標(biāo)檢測(cè)
在兩階段檢測(cè)方法不斷發(fā)展優(yōu)化的同時(shí),一階段檢測(cè)網(wǎng)絡(luò)則從檢測(cè)實(shí)時(shí)性角度對(duì)檢測(cè)方法進(jìn)行Mask R-CNNResNeXt-10111.0078.273.939.8 解決特征圖與原圖不對(duì)齊的問題,同時(shí)實(shí)現(xiàn)檢測(cè)與分割 實(shí)例分隔代價(jià)太高優(yōu)化,適用不同場(chǎng)景的任務(wù)。SSD(Single Shot MultiBox Detector)和YOLO(You Only Look Once)系列是一階段中的經(jīng)典方法。一階段目標(biāo)檢測(cè)算法不通過(guò)中間層提取候選區(qū)域,而是在整個(gè)卷積網(wǎng)絡(luò)中進(jìn)行特征提取、目標(biāo)分類和位置回歸,通過(guò)一次反向計(jì)算得到目標(biāo)位置和類別,在識(shí)別精度稍弱于兩階段目標(biāo)檢測(cè)算法的前提下,速度有了極大的提升,這使得基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法在許多對(duì)推理速度要求高的任務(wù)中得以應(yīng)用。
2.1 YOLO v1
不同于以R-CNN為代表的兩階段檢測(cè)算法,YOLO網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單,速度比Faster R-CNN快10倍左右,具有較好的實(shí)時(shí)性[15]。
該模型把輸入圖像統(tǒng)一縮放到448×448×3,再劃分為7×7個(gè)網(wǎng)格,如圖7所示。每格負(fù)責(zé)預(yù)測(cè)兩個(gè)邊界框bbox的位置和置信度。這兩個(gè)bbox對(duì)應(yīng)同一個(gè)類別,一個(gè)預(yù)測(cè)大目標(biāo),一個(gè)預(yù)測(cè)小目標(biāo)。不同于Faster R-CNN的錨盒,bbox的位置不需要初始化,而是由YOLO模型在權(quán)重初始化后計(jì)算出來(lái)的,模型在訓(xùn)練時(shí)隨著網(wǎng)絡(luò)權(quán)重的更新,調(diào)整bbox的預(yù)測(cè)位置。模型在訓(xùn)練過(guò)程中通過(guò)真實(shí)目標(biāo)邊界框(Ground Truth,GT)計(jì)算物體中心在哪個(gè)網(wǎng)格中,然后就由這個(gè)網(wǎng)格負(fù)責(zé)檢測(cè)該物體(跨越多個(gè)網(wǎng)格時(shí),物體也僅由包含其中心點(diǎn)的網(wǎng)格負(fù)責(zé)檢測(cè))。
該算法實(shí)時(shí)性很高,但由于把圖像粗略劃分為7×7個(gè)網(wǎng)格進(jìn)行預(yù)測(cè),對(duì)小目標(biāo)的檢測(cè)效果不佳;而且每個(gè)網(wǎng)格只能預(yù)測(cè)一個(gè)類別,無(wú)法應(yīng)對(duì)多個(gè)類別的目標(biāo)同時(shí)落在同一個(gè)網(wǎng)格的情況。另外,YOLO v1直接預(yù)測(cè)bbox的位置,會(huì)導(dǎo)致神經(jīng)網(wǎng)絡(luò)在訓(xùn)練初期不穩(wěn)定。
2.2 YOLO v2
YOLO v2[16]把原始圖像劃分為13×13個(gè)網(wǎng)格,并借鑒Faster R-CNN中的錨盒,通過(guò)聚類分析,確定每個(gè)網(wǎng)格設(shè)置5個(gè)錨盒,每個(gè)錨盒預(yù)測(cè)1個(gè)類別。YOLO v2通過(guò)預(yù)測(cè)錨盒和網(wǎng)格之間的偏移量進(jìn)行目標(biāo)位置回歸,更有利于神經(jīng)網(wǎng)絡(luò)訓(xùn)練,性能指標(biāo)提升了5%左右。
另外,輸入圖像經(jīng)過(guò)多層CNN網(wǎng)絡(luò)提取特征后,較小的對(duì)象特征可能已經(jīng)不明顯甚至被忽略掉了,學(xué)者設(shè)計(jì)了passthrough層檢測(cè)細(xì)粒度特征,如圖8所示。YOLO v2把最后一個(gè)池化層之前的26×26×512的特征圖拆成4份的13×13×512,同時(shí)經(jīng)過(guò)1×1卷積和2×2池化,得到13×13×1 024的特征圖,然后把兩者拼接在一起輸出。這有利于改善小尺度目標(biāo)檢測(cè)精度。
由于帶標(biāo)簽的檢測(cè)數(shù)據(jù)集樣本數(shù)量較少,學(xué)者進(jìn)一步提出用詞向量樹WordTree 混合COCO檢測(cè)數(shù)據(jù)集(學(xué)習(xí)目標(biāo)位置回歸)和ImageNet分類數(shù)據(jù)集(學(xué)習(xí)分類特征),并使用聯(lián)合優(yōu)化技術(shù)同時(shí)在兩個(gè)數(shù)據(jù)集上進(jìn)行聯(lián)合訓(xùn)練,在YOLO v2的基礎(chǔ)上實(shí)現(xiàn)了超過(guò)9 000種物體類別的檢測(cè),稱為YOLO 9000[16]網(wǎng)絡(luò)。
2.3 SSD
SSD算法對(duì)YOLO進(jìn)行了改進(jìn),提高了對(duì)小目標(biāo)檢測(cè)的準(zhǔn)確率,并保證了檢測(cè)速度。SSD保留了網(wǎng)格劃分方法,但從基礎(chǔ)網(wǎng)絡(luò)的不同卷積層提取特征,如從conv4 、conv7、conv8、conv9、conv10和conv11層輸入到后面的分類和回歸網(wǎng)絡(luò),如圖9所示。
每層特征圖中的錨盒大小和個(gè)數(shù)都不同,conv4后的特征圖中每個(gè)特征點(diǎn)預(yù)設(shè)4個(gè)錨盒,conv7、conv8和conv9后的特征圖中每點(diǎn)預(yù)設(shè)6個(gè)錨盒,conv10和conv11后的特征圖中每點(diǎn)預(yù)設(shè)4個(gè)錨盒。隨著卷積層數(shù)的遞增,錨盒尺寸設(shè)置由小到大,以此提升SSD對(duì)多尺度目標(biāo)的檢測(cè)精度。
2.4 YOLO v3
YOLO v3通過(guò)聚類分析[17],每個(gè)網(wǎng)格預(yù)設(shè)3個(gè)錨盒,只用了YOLO v1和YOLO v2中darknet結(jié)構(gòu)的前52層,即沒有全連接層的部分,并大量使用殘差結(jié)構(gòu)進(jìn)行跳層連接,如圖10所示。殘差結(jié)構(gòu)的基本模塊由卷積(conv)、批歸一化(BN)和Leaky Relu激活函數(shù)組成。
為了降低池化操作給梯度計(jì)算帶來(lái)的負(fù)面效果,YOLO v3直接摒棄了YOLO v2中的5次最大池化,通過(guò)在5次卷積操作時(shí),設(shè)置stride=2來(lái)實(shí)現(xiàn)降采樣。
另外,為了提高小尺度目標(biāo)檢測(cè)精度,YOLO v3通過(guò)上采樣提取深層特征,使其與將要融合的淺層特征維度相同,但通道數(shù)不同,在通道維度上進(jìn)行拼接實(shí)現(xiàn)特征融合,融合了3×13×255、26×26×255和52×52×255共3個(gè)尺度的特征圖,對(duì)應(yīng)的檢測(cè)頭也都采用全卷積結(jié)構(gòu)。這樣既可以提高非線性程度,增加泛化性能及提高網(wǎng)絡(luò)精度,又能減少模型參數(shù)量,提高實(shí)時(shí)性。因?yàn)槿绻苯佑玫?1層輸出的16倍降采樣特征圖進(jìn)行檢測(cè),就使用了淺層特征,效果一般;如果直接用第79層輸出的32倍降采樣特征圖進(jìn)行檢測(cè),深層特征圖又太小,不利于小目標(biāo)檢測(cè);而通過(guò)上采樣把32倍降采樣得到的特征圖尺度擴(kuò)大1倍,然后和第61層輸出的16倍降采樣特征圖進(jìn)行拼接(特征融合),更容易提高多尺度目標(biāo)檢測(cè)的精度。
2.5 YOLO v4
YOLO v4[18]的特點(diǎn)是集大成者,像是檢測(cè)算法所用訓(xùn)練技巧的集合。YOLO v4在原有YOLO目標(biāo)檢測(cè)架構(gòu)的基礎(chǔ)上,采用了近些年CNN領(lǐng)域中最優(yōu)秀的優(yōu)化策略,從數(shù)據(jù)處理、主干網(wǎng)絡(luò)、網(wǎng)絡(luò)訓(xùn)練、激活函數(shù)、損失函數(shù)等各個(gè)方面都進(jìn)行了不同程度的優(yōu)化,在COCO數(shù)據(jù)集上的平均精度(Average Precision,AP)和檢測(cè)速率(Frame Per Second,F(xiàn)PS)分別提高了10% 和12%,被認(rèn)為是當(dāng)前最強(qiáng)的實(shí)時(shí)對(duì)象檢測(cè)模型之一。
YOLO v4是一個(gè)高效而強(qiáng)大的模型,使得開發(fā)者可以使用一張1080Ti或者2080Ti GPU去訓(xùn)練一個(gè)超級(jí)快速和精確的目標(biāo)檢測(cè)器,降低了模型訓(xùn)練門檻。
2.6 一階段目標(biāo)檢測(cè)對(duì)比分析
一階段目標(biāo)檢測(cè)算法起步比兩階段目標(biāo)檢測(cè)算法要晚,具有后發(fā)優(yōu)勢(shì),可以更好地吸收前者的優(yōu)點(diǎn),克服其不足之處。早期的一階段目標(biāo)檢測(cè)算法雖然檢測(cè)速度較快,但檢測(cè)精度相對(duì)于兩階段檢測(cè)算法還存在較大差距。隨著目標(biāo)檢測(cè)技術(shù)的快速發(fā)展,目前一階段目標(biāo)檢測(cè)模型的速度和精度都有了很大的提升,其性能對(duì)比如表3所示。
3 結(jié)論與展望
總體來(lái)說(shuō),基于區(qū)域提取的兩階段目標(biāo)檢測(cè)架構(gòu)準(zhǔn)確率較高,漏檢率低,但檢測(cè)速度較慢,無(wú)法滿足對(duì)實(shí)時(shí)性要求較高或嵌入式移動(dòng)平臺(tái)的應(yīng)用場(chǎng)景?;谖恢没貧w的一階段目標(biāo)檢測(cè)架構(gòu)提供了另一個(gè)思路,直接進(jìn)行分類和位置回歸,提高了目標(biāo)檢測(cè)速度,漏檢率和檢測(cè)精度等性能也在后續(xù)版本中不斷改善。除此之外,研究人員還在此基礎(chǔ)上提出了難例樣本挖掘[19]和多層特征融合[20]等方法進(jìn)一步改善模型性能。目前大量涌現(xiàn)的Tensorflow、Pytorch及國(guó)內(nèi)的JIT等深度學(xué)習(xí)框架為目標(biāo)檢測(cè)提供了高效的實(shí)現(xiàn)工具。即便如此,對(duì)于檢測(cè)領(lǐng)域來(lái)講,還有很多工作需要?jiǎng)?chuàng)新或改進(jìn)。
1)小樣本學(xué)習(xí):上述目標(biāo)檢測(cè)架構(gòu)都是基于深度神經(jīng)網(wǎng)絡(luò)的大規(guī)模模型,需要大量帶標(biāo)簽的訓(xùn)練數(shù)據(jù)集才能學(xué)習(xí)到較好的性能。但獲取大量帶位置標(biāo)簽的數(shù)據(jù)樣本的工作量巨大,而且很多應(yīng)用場(chǎng)景根本無(wú)法獲取?;谛颖镜哪繕?biāo)檢測(cè)方法引起廣大學(xué)者的研究興趣,但檢測(cè)精度還不盡如人意。借鑒支持向量機(jī)中的高階核函數(shù),引入圖像特征的高階統(tǒng)計(jì)信息,豐富小樣本特征信息,增加特征表達(dá)能力,有望提高基于小樣本的模型檢測(cè)精度,應(yīng)該是后續(xù)研究的方向。
2)弱監(jiān)督學(xué)習(xí):大規(guī)模的實(shí)例數(shù)據(jù)標(biāo)注是一項(xiàng)非常昂貴且耗時(shí)的工程。將弱監(jiān)督聯(lián)合使用大規(guī)模圖像級(jí)分類和小規(guī)模實(shí)例數(shù)據(jù)標(biāo)注來(lái)訓(xùn)練網(wǎng)絡(luò)模型,可大大減小標(biāo)注成本,越來(lái)越多的科研人員開始關(guān)注這個(gè)研究方向。
3)3D目標(biāo)檢測(cè):在自動(dòng)駕駛等領(lǐng)域,2D圖像不帶深度信息,沒辦法有效避免碰撞,業(yè)界迫切需要基于3D的目標(biāo)檢測(cè)算法。盡管目前關(guān)于3D的目標(biāo)檢測(cè)已有不少的研究,但在實(shí)際應(yīng)用中仍然存在很多問題。比如,對(duì)物體遮擋、截?cái)嗉爸車鷦?dòng)態(tài)環(huán)境的健壯性問題,過(guò)于依賴物體表面紋理或結(jié)構(gòu)特征容易造成混淆的問題,算法效率問題等,還需要進(jìn)一步的探究。
[參考文獻(xiàn)]
[1] 蔡娟, 李東新. 基于優(yōu)化k均值建模的運(yùn)動(dòng)目標(biāo)檢測(cè)算法[J]. 國(guó)外電子測(cè)量技術(shù), 2016, 35(12):20-23.
[2] 何文浩, 原魁, 鄒偉. 自適應(yīng)閾值的邊緣檢測(cè)算法及其硬件實(shí)現(xiàn)[J]. 系統(tǒng)工程與電子技術(shù), 2009, 31(1):233-237.
[3] 何巧萍. 基于視頻圖像處理技術(shù)的運(yùn)動(dòng)車輛檢測(cè)算法研究及實(shí)現(xiàn)[D]. 長(zhǎng)沙:長(zhǎng)沙理工大學(xué), 2006.
[4] ROSENBERG C, HEBERT M, SCHNEIDERMAN H.Semi-supervised self-training of object detection models[C]//IEEE Workshops on Application of Computer Vision. Breckenridge:WACV, 2005:29-36.
[5] VAPNIK V N. The nature of statistical learning theory[M].German:Springer, 1995.
[6] RAZAVIAN A S, AZIZPOUR H, SULLIVAN J, et al. CNN features off-the-shelf: an astounding baseline for recognition[C]//IEEE Conference on Computer Vision and Pattern Recognition Workshops. Columbus:CVPR, 2014:512-519.
[7] AGRAWAL P, GIRSHICK R, MALIK J. Analyzing the performance of multilayer neural networks for object recognition[C]// European Conference on Computer Vision. Switzerland:ECCV, 2014:329-344.
[8] BOSCH A, ZISSERMAN A, MUNOZ X. Representing shape with a spatial pyramid kernel[C]//International Conference on Image and Video Retrieval. Amsterdam:ACM, 2007:401-408.
[9] GIRSHICK R. Fast R-CNN[C]//IEEE International Conference on Computer Vision. Santiago :ICCV, 2015: 1440-1448.
[10] REN S, HE K, GIRSHICK R, et al. Faster R-CNN: towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2017,39(6):1137-1149.
[11] HE K, GKIOXARI G, DOLLR P, et al. Mask R-CNN[C]//IEEE International Conference on Computer Vision.Venice:ICCV,2017:2980-2988.
[12] LONG J,SHELHAMER E,DARRELL T.Fully convolutional networks for semantic segmentation[C]//IEEE Conference on Computer Vision & Pattern Recognition.Las Vegas :CVPR,2015: 3431-3440.
[13] REDMON J, DIVVALA S, GIRSHICK R, et al. You Only Look Once: unified, real-time object detection[C]//IEEE Conference on Computer Vision and Pattern Recognition.Las Vegas :CVPR, 2016:779-788.
[14] HE K, ZHANG X, REN S, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J].IEEE Transactions on Pattern Analysis & Machine Intelligence, 2015, 37(9):1904-1916.
[15] 周曉彥, 王珂, 李凌燕. 基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法綜述[J]. 電子測(cè)量技術(shù), 2017,40(11):89-93.
[16] REDMON J, FARHADI A. YOLO9000: better, faster, stronger[C]// IEEE Conference on Computer Vision & Pattern Recognition. ?Las Vegas: CVPR,2016:6517-6525.
[17] HENRIQUES J F, CARREIRA J, RUI C, et al. Beyond hard negative mining: efficient detector learning via block-circulant decomposition[C]//IEEE International Conference on Computer Vision. Sydney:ICCV, 2014:2760-2767.
[18] BOCHKOVSKIY A, WANG C Y, LIAO H . YOLOv4: optimal speed and accuracy of object detection [Z/OL].(2020-04-23)[2021-05-20]. https://arxiv.org/abs/2004.10934.
[19] LIN T Y, GOYAL P, GIRSHICK R, et al.Focal loss for dense object detection[C] // IEEE International Conference on Computer Vision. Venice:ICCV,2017:2980-2988.
[20] 張姍,逯瑜嬌,羅大為. 基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法綜述[C]// 中國(guó)計(jì)算機(jī)用戶協(xié)會(huì)網(wǎng)絡(luò)應(yīng)用分會(huì)2018年第二十二屆網(wǎng)絡(luò)新技術(shù)與應(yīng)用年會(huì)論文集. 蘇州:中國(guó)計(jì)算機(jī)用戶協(xié)會(huì)網(wǎng)絡(luò)應(yīng)用分會(huì),2018:129-132+141.
(責(zé)任編輯 白麗媛)
北京聯(lián)合大學(xué)學(xué)報(bào)2021年3期