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