王高峰 徐子同 盧 瑋 王翠翠 高 濤
(1.貴州宇鵬科技有限公司 貴陽 550014)(2.長安大學(xué)信息工程學(xué)院 西安 710072)
目標(biāo)的檢測和識別是人工智能領(lǐng)域很重要的研究方向,它的目的就是利用計算機(jī)識別一幅圖像中目標(biāo)的種類,并給出它邊界框的位置。由于目標(biāo)出現(xiàn)遮擋或者視角變化,都會發(fā)生識別的準(zhǔn)確率降低,同時由于卷積神經(jīng)網(wǎng)絡(luò)和區(qū)域建議網(wǎng)絡(luò)優(yōu)化問題以及計算機(jī)的運算能力,都會影響到目標(biāo)識別和檢測的速度。對于傳統(tǒng)的目標(biāo)檢測方法,研究的重點是特征提取和分類,但它對目標(biāo)的分類依靠的是人工設(shè)計的特征,因此得到的準(zhǔn)確度很低。即使最近的Fast R-CNN實現(xiàn)了近實時檢測的速率,但它忽略了生成區(qū)域建議框的時間。
為了提高運算速度和準(zhǔn)確率,本文提出一種新的基于區(qū)域建議網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測算法,該算法摒棄了傳統(tǒng)的 selective search[16]選擇候選區(qū)域的方法,而是利用RPN算法獲得候選區(qū)域的邊界框,減小計算量,然后通過Fast R-CNN開源框架,得到待檢測圖像的所有特征,最后,利用LocNet網(wǎng)絡(luò),輸入已經(jīng)得到的候選區(qū)域,計算候選區(qū)域的邊界概率,得到最優(yōu)的目標(biāo)邊界框。
卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)點在于可以通過利用自主學(xué)習(xí)特征的這種優(yōu)勢,使特征表達(dá)能力和分類能力都比傳統(tǒng)目標(biāo)檢測識別方法好,所以基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測和識別方法取得了較高的準(zhǔn)確率。但是,由于無法滿足實時檢測的要求,Gir?shick[4]等提出了R-CNN模型,這種卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測和識別算法摒棄了遍歷搜索方式,利用選擇性搜索法從待檢測圖像中提取許多的候選區(qū)域,極大提高了速度和準(zhǔn)確率,然而R-CNN還存在明顯的缺陷:占用大量的磁盤空間、會丟失信息和區(qū)域建議框有大量的重疊等。Girshick又提出了Fast R-CNN模型。相比于R-CNN模型,它不需要對每一個候選區(qū)域都進(jìn)行特征提取,極大減少了不必要的運算量,但是它也有很大的缺點,選擇性搜索法是一種單獨的操作,對整個網(wǎng)絡(luò)速度還是有很大影響,所以我們提出了基于區(qū)域建議網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)的快速目標(biāo)檢測識別算法。
目前最好的目標(biāo)檢測網(wǎng)絡(luò)都要用到區(qū)域建議算法來預(yù)測目標(biāo)的位置,生成候選區(qū)域。而本文提出了一種改進(jìn)的基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測識別算法,這個算法使用了深度計算建議框網(wǎng)絡(luò)(Region Proposal Networks,RPN)[13],它與 Fast R-CNN 共享卷基層,極大提高了速度。工作過程如圖1所示。
圖1 算法工作過程
區(qū)域建議網(wǎng)絡(luò)(RPN)作用就是在卷積神經(jīng)網(wǎng)絡(luò)的最后一個卷積層輸出的特征圖上滑動窗口,然后生成許多可能存在檢測目標(biāo)的候選區(qū)域,利用這些候選區(qū)域建議框來完成目標(biāo)識別檢測。
1)區(qū)域建議網(wǎng)絡(luò)的工作過程
圖2 區(qū)域建議網(wǎng)絡(luò)工作過程
區(qū)域建議網(wǎng)絡(luò)主要工作過程:(1)在特征圖上生成許多建議框,識別哪些建議框是前景,哪些是背景,簡稱RPN Classification;(2)獲取前景區(qū)域的大致坐標(biāo),簡稱RPN bounding box regression。工作過程和任務(wù)如圖2所示。
2)區(qū)域建議網(wǎng)絡(luò)的Anchor機(jī)制
RPN網(wǎng)絡(luò)中核心思想就是生成許多Anchor來預(yù)測目標(biāo)及邊界。由于目標(biāo)大小尺寸不定,因此An?chor給出一個基準(zhǔn)窗,根據(jù)不同的倍數(shù)和不同的長寬比得到不同大小的窗,然后又生成多種Anchor。
3)區(qū)域建議網(wǎng)絡(luò)損失函數(shù)計算
(1)softmax loss的計算:需要與某個anchor相對應(yīng)的人工標(biāo)定和預(yù)測的邊界框結(jié)果來求。
(2)regression loss的計算:需要從三個部分開始計算,第一個是建議框的坐標(biāo)位置x,y,w,h;第二個是reference box,其中每一個都有個中心點坐標(biāo)x_a,y_a,w_a,h_a;第三個是ground truth所標(biāo)定的框?qū)?yīng)的中心位置點坐標(biāo)x*,y*,w*,h*。計算公式如下:
則RPN的損失函數(shù)可以由下面公式計算。
其中Ncls是大小為256的batch,Lcls(pi,pi*)是目標(biāo)前景與背景的對數(shù)損失,pi是anchor i被預(yù)測為目標(biāo)的概率是前景的標(biāo)簽值,如果anchor是正樣本,的值為1,反之a(chǎn)nchor是負(fù)樣本,則的值為0。R是魯棒損失函數(shù)smooth L1。
第一步,訓(xùn)練RPN,用VGGNet預(yù)訓(xùn)練的模型來初始化RPN參數(shù),微調(diào)來訓(xùn)練RPN參數(shù)到最優(yōu)。
第二步,孤立對Fast-RCNN網(wǎng)絡(luò)的訓(xùn)練,將上一步RPN輸出的proposal作為Fast-RCNN網(wǎng)絡(luò)的輸入。
第三步,利用對目標(biāo)檢測分類的Fast-RCNN網(wǎng)絡(luò)來初始化RPN訓(xùn)練,但把共享的卷積層固定不變,只對RPN特有的層微調(diào),這時兩個網(wǎng)絡(luò)可以共享卷積層了。
第四步,繼續(xù)保持共享的卷積層固定,只對Fast R-CNN的全連接層進(jìn)行微調(diào)。利用這種方法使兩個網(wǎng)絡(luò)能夠共享卷積層。
使用LocNet[9]網(wǎng)絡(luò)進(jìn)行更加精確地邊界框定位也是本文的創(chuàng)新點之一。傳統(tǒng)的邊界框定位就是直接通過回歸的方法得到邊界框坐標(biāo),但誤差很大,通常很難獲得非常準(zhǔn)確的邊界框位置。摒棄bbox回歸得到邊界的方法,而利用概率模型來確定邊界框位置是一種新型的目標(biāo)定位法,可以使邊界框的定位更精確,使用LocNet網(wǎng)絡(luò)時,將邊界框作為識別的區(qū)域,通過計算邊界框這個區(qū)域內(nèi)每一行和每一列是否包含目標(biāo)的條件概率,利用概率可以知道建議框具體位置的信息,從而準(zhǔn)確推斷出建議框的位置。
實驗結(jié)構(gòu)模型如圖3所示。
圖3 實驗結(jié)構(gòu)模型
整個模型可分為以下四部分:
1)特征提取部分:卷積層卷積、激活函數(shù)以及池化操作,用于提取特征圖。
2)RPN部分:區(qū)域建議網(wǎng)絡(luò)用于生成候選區(qū)域建議框Proposal,首先利用RPN網(wǎng)絡(luò)結(jié)構(gòu)生成多種Anchors,然后利用Softmax對判斷Anchors屬于前景還是背景,同時借助Bounding Box Regression對Anchors的位置進(jìn)行回歸預(yù)測,從而得到Proposal的準(zhǔn)確坐標(biāo)。
3)Proposal Layer部分:計算proposals和ground truth boxes的偏移量,用于回歸層中邊界框的位置回歸和參數(shù)的學(xué)習(xí),獲得更精確的位置。
4)ROI池化部分:利用卷積層得到的待檢測圖像feature map和RPN網(wǎng)絡(luò)得到的候選區(qū)域建議框proposal,把propopal在待檢測圖像中的坐標(biāo)映射到最后一個卷積層(conv5-3)輸出的feature map中,然后把這些映射到的區(qū)域進(jìn)行RoI池化操作,得到固定大小特征圖,然后與之后的fc層相連。
圖4 目標(biāo)識別準(zhǔn)確率與訓(xùn)練次數(shù)關(guān)系
圖5 損失函數(shù)與訓(xùn)練次數(shù)關(guān)系
圖6 目標(biāo)檢測識別結(jié)果圖
圖6 中框代表目標(biāo)位置,數(shù)字代表識別分類的概率,數(shù)字越高說明分類越準(zhǔn)確。
實驗準(zhǔn)確率及損失函數(shù)值如表1所示。其中AP(Average Precision)代 表 平 均 準(zhǔn) 確 率 ,mAP(mean Average Precision)代表不同種類的目標(biāo)識別準(zhǔn)確率的平均值,lose損失函數(shù)代表錯誤率,利用梯度下降法找到最小值,即調(diào)到最優(yōu)參數(shù),識別效果最好。
表1 實驗準(zhǔn)確率及損失函數(shù)值
在與Fast R-CNN網(wǎng)絡(luò)相比較時,通過實驗數(shù)據(jù)得到的AP值和mAP值看出,此方法確實比Fast R-CNN網(wǎng)絡(luò)檢測識別更準(zhǔn)確,而且本方法不僅識別物體的準(zhǔn)確率高于其他方法,得到的物體邊界框也更加精確。
本文所用方法與Fast R-CNN網(wǎng)絡(luò)分別對VOC2007圖像集的測試的對比試驗結(jié)果如圖8和圖9所示。
圖7 本文使用方法的損失函數(shù)
圖8 本文所用方法識別結(jié)果圖
圖9 Fast R-CNN方法識別結(jié)果圖
由結(jié)果圖可得出結(jié)論:Fast R-CNN網(wǎng)絡(luò)使用selective search的方法選出大量的候選區(qū),雖然取代了傳統(tǒng)的遍歷,減少了計算量,但它需要人工設(shè)計分割的策略,有可能會因為分割不到位,導(dǎo)致目標(biāo)檢測識別率不高;其次無法對選出的區(qū)域篩選,不能去除不相關(guān)的區(qū)域而減少計算量。并且Fast R-CNN網(wǎng)絡(luò)使用的是bounding box回歸的方法確定邊界框位置,相比于LocNet網(wǎng)絡(luò),使用回歸的方法不能準(zhǔn)確找到目標(biāo)邊界框位置,但LocNet網(wǎng)絡(luò)使用概率模型,可以用卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)從而確定更準(zhǔn)確的位置。
本文提出了一種新的目標(biāo)檢測和識別算法——基于區(qū)域建議網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測識別算法。這種算法由生成建議框的卷積神經(jīng)網(wǎng)絡(luò)、用于目標(biāo)檢測的Fast R-CNN網(wǎng)絡(luò)和使邊界框回歸更精確的LocNet網(wǎng)絡(luò)構(gòu)成。通過對實驗結(jié)果進(jìn)行分析和對比,可以直觀看出新的目標(biāo)識別檢測算法在速度、識別檢測準(zhǔn)確率和邊界框位置精確度上都更加優(yōu)異。