彭棉珠
仰恩大學(xué),福建 泉州 362014
圖像目標(biāo)檢測(cè)技術(shù)是計(jì)算機(jī)視覺信息處理的基本問(wèn)題,也是行為理解、場(chǎng)景分類等其他龐大視覺研究的基石[1]。圖像目標(biāo)檢測(cè)技術(shù)一般使用圖像處理和模式識(shí)別等相關(guān)技術(shù)來(lái)處理圖像,從每張圖像中去除掉復(fù)雜的背景,檢測(cè)出與任務(wù)相近的目標(biāo),以及識(shí)別出這些目標(biāo)的語(yǔ)義信息,并標(biāo)定出目標(biāo)在圖像所處的位置[2]。圖像目標(biāo)檢測(cè)作為計(jì)算機(jī)視覺領(lǐng)域的一個(gè)研究方向,其檢測(cè)精確度的優(yōu)劣、檢驗(yàn)功能的高低,對(duì)目標(biāo)檢測(cè)追蹤、動(dòng)作判別以及行為語(yǔ)義分析等計(jì)算機(jī)視覺任務(wù)有著相當(dāng)大的影響[3,4]。同時(shí),作為計(jì)算機(jī)視覺重要的一部分,圖像目標(biāo)檢測(cè)也存在著很多難題,一直是該領(lǐng)域的研究熱點(diǎn)[5]。基于卷積神經(jīng)網(wǎng)絡(luò)的圖像目標(biāo)檢測(cè)方法,就其提取到的圖像特征具有很強(qiáng)的特征表達(dá)能力[6]。隨著深度學(xué)習(xí)技術(shù)日新月異的發(fā)展與突破,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法在各個(gè)方面會(huì)取得不斷的突破[7]。
R-CNN算法在圖片中提議出一群候選框代替大量區(qū)域,并檢查這些候選框是否包含一些目標(biāo),在R-CNN中使用選擇性搜索算法(Selective Search)從圖片中提議這些區(qū)域。使用微調(diào)后的CNN網(wǎng)絡(luò)模型,去提取每個(gè)圖片中的特征向量。再使用經(jīng)過(guò)訓(xùn)練后的SVM(支持向量機(jī))對(duì)每個(gè)區(qū)域進(jìn)行分類,且使用邊界框回歸器來(lái)矯正定位錯(cuò)誤的檢測(cè)區(qū)域,使得檢測(cè)精確度得到相應(yīng)的提升。RCNN檢測(cè)目標(biāo)所遵循的步驟,整體流程圖如圖1所示:(1)首先,將一張圖像作為輸入;(2)然后,使用一個(gè)提議方法,在R-CNN中使用Selective Search(選擇性搜索)去獲得感興趣區(qū)域(Regions of Interest),提取大約2 000個(gè)區(qū)域。(3)根據(jù)CNN的輸入尺寸大小要求重塑所有這些區(qū)域的形狀大小,然后將每個(gè)區(qū)域(Region)傳遞到卷積神經(jīng)網(wǎng)絡(luò)中(ConvNet)。(4)CNN提取每個(gè)區(qū)域的特征,并且使用SVM(支持向量機(jī))將這些區(qū)域劃分為不同的類別。(5)最后,使用邊界框回歸預(yù)測(cè)接近真實(shí)區(qū)域的邊界框。

圖1 R-CNN整體流程圖
在Fast R-CNN中,將輸入圖像輸送給CNN,會(huì)依次產(chǎn)生卷積特征映射,使用這些映射提取區(qū)域建議。然后,使用一個(gè)RoI池層(RoI pooling layer)去重塑所有被提議區(qū)域的形狀為一個(gè)固定的大小,以至于它能夠輸送到全連接網(wǎng)絡(luò)。如圖2所示,F(xiàn)ast R-CNN算法實(shí)現(xiàn)步驟:(1)首先,和以往一樣把一個(gè)圖片作為輸入;(2)這張圖片是被傳遞到一個(gè)ConvNet(卷積網(wǎng)絡(luò))中依次產(chǎn)生感興趣區(qū)域;(3)通過(guò)應(yīng)用一個(gè)RoI池化層來(lái)重塑所有這些區(qū)域的形狀且將它們作為全連接的輸入數(shù)據(jù),緊接著每個(gè)區(qū)域被傳遞到全連接網(wǎng)絡(luò);(4)最后,傳遞這些區(qū)域到全連接層網(wǎng)絡(luò),使用softmax函數(shù)對(duì)它們進(jìn)行分類,并且同時(shí)使用線性回歸層返回邊界框。

圖2 Fast R-CNN整體流程圖
在Fast R-CNN中,RoI池化層作用在最后一層卷積層,在大尺度目標(biāo)的檢測(cè)中表現(xiàn)較好。但是,小目標(biāo)檢測(cè)的有效性并不令人滿意。特征金字塔網(wǎng)絡(luò)(FPN)是基于金字塔概念而設(shè)計(jì)的一種特征提取器,具有精度高、速度快的特點(diǎn)。特征金字塔應(yīng)用到Fast R-CNN中。整體流程如圖3,在Fast R-CNN中非常重要的是RoI池化層,它需要不同層的金字塔構(gòu)建不同尺度的區(qū)域。RoI池化層使用區(qū)域提出的結(jié)果和中間的某個(gè)特征圖作為輸入,將獲得的結(jié)果分開并用于分類結(jié)果和相應(yīng)的邊界框回歸。不同標(biāo)度的感興趣區(qū)域使用不同特征層作為RoI池化層的輸入。大尺度的區(qū)域使用后面的金字塔層。最后添上分類器和邊框回歸,有助于加快速度。

圖3 應(yīng)用FPN的Fast R-CNN流程圖
MS COCO數(shù)據(jù)集是微軟于2014年發(fā)布的大型數(shù)據(jù)集。COCO中的圖片包括自然圖片以及生活圖片,共包含91個(gè)類別,5.4萬(wàn)幅圖像和250多萬(wàn)個(gè)標(biāo)注物體。本文從MS COCO數(shù)據(jù)集選取5個(gè)類別圖像(分別為人物、汽車、自行車、飛機(jī)和火車),每個(gè)類別選取15張圖片作為研究對(duì)象,分別使用R-CNN、Fast R-CNN和Fast R-CNN(FPN)目標(biāo)檢測(cè)方法對(duì)COCO數(shù)據(jù)集來(lái)進(jìn)行檢測(cè)。為了測(cè)試三種算法的檢測(cè)效果,分別使用損失函數(shù)、準(zhǔn)確率和耗時(shí)性進(jìn)行論證。其中,損失函數(shù)用于評(píng)估模型的預(yù)測(cè)值f(x)與真實(shí)值Y的不一致程度,損失函數(shù)越小算法的魯棒性越好;準(zhǔn)確性則是用于衡量識(shí)別準(zhǔn)確目標(biāo)數(shù)占測(cè)試樣本總目標(biāo)數(shù)的百分比;而耗時(shí)性則充分說(shuō)明算法的訓(xùn)練與檢測(cè)過(guò)程的運(yùn)行速度[8]。
圖4為三種算法的損失函數(shù)。相較于R-CNN,只需訓(xùn)練一個(gè)模型去提取特征、分類和生成邊界框。模型訓(xùn)練的整個(gè)損失函數(shù),隨著訓(xùn)練次數(shù)的疊加,損失函數(shù)的值也隨之降低,模型訓(xùn)練的效果表現(xiàn)很好。而Fast R-CNN和FPN算法隨著訓(xùn)練次數(shù)的增加,損失函數(shù)也會(huì)緩慢下降,模型的強(qiáng)度也會(huì)更好。FPN對(duì)于小目標(biāo)的特征提取,在經(jīng)過(guò)多次卷積池化后能夠獲取相應(yīng)的語(yǔ)義信息,使得模型更容易判定圖像中的小目標(biāo),也更能定位出準(zhǔn)確的位置。

圖4 算法的損失函數(shù)運(yùn)行結(jié)果
選取測(cè)試集中5個(gè)類別,每個(gè)類別選取了15張圖片進(jìn)行模型的驗(yàn)證。三個(gè)算法都選用同樣的測(cè)試集進(jìn)行測(cè)試,每個(gè)算法的閾值都設(shè)置在0.3-0.5的范圍內(nèi)。如表1所示,通過(guò)測(cè)試15張圖片目標(biāo)物,用識(shí)別出圖片中目標(biāo)數(shù)占總檢測(cè)目標(biāo)數(shù)的百分比代表各個(gè)算法的準(zhǔn)確率。通過(guò)準(zhǔn)確率的結(jié)果發(fā)現(xiàn)Fast R-CNN比R-CNN不僅計(jì)算時(shí)間提升了,而且準(zhǔn)確度都提升3%-6%。但是,這兩個(gè)算法對(duì)于小目標(biāo)的檢測(cè)精度不是特別高。如圖5,存在四個(gè)人(分別為小女孩、小男孩、紅衣女士以及遠(yuǎn)處打網(wǎng)球的男士),而結(jié)果只準(zhǔn)確標(biāo)出了三個(gè)人的區(qū)域,標(biāo)注的區(qū)域更接近真實(shí)區(qū)域,并且也準(zhǔn)確識(shí)別出三個(gè)人。第四個(gè)人由于區(qū)域過(guò)于小,在多次卷積后很難獲得豐富的特征信息,這也就導(dǎo)致無(wú)法識(shí)別出目標(biāo)。當(dāng)使用FPN為Fast R-CNN的特征提取,不僅增加大目標(biāo)的識(shí)別準(zhǔn)確度,而且增加了小目標(biāo)的準(zhǔn)確度直至12%。實(shí)驗(yàn)結(jié)果(圖6)可見,很小的目標(biāo)能夠更好的檢測(cè)出來(lái)。主要是FPN生成了多特征映射層,具有比常規(guī)圖像金字塔更好的目標(biāo)檢測(cè)信息質(zhì)量。

圖5 Fast R-CNN和R-CNN的測(cè)試結(jié)果

圖6 Fast R-CNN(FPN)的測(cè)試結(jié)果

表1 三種算法檢測(cè)結(jié)果的準(zhǔn)確率(%)
對(duì)三種算法進(jìn)行耗時(shí)性能分析,分別記錄15幅圖像在訓(xùn)練與預(yù)測(cè)階段電腦CPU運(yùn)行時(shí)間,結(jié)果以平均值表示。如表2所示,R-CNN算法在訓(xùn)練圖片階段,每張圖像需要搜索算法提取2 000個(gè)區(qū)域;訓(xùn)練約8個(gè)小時(shí),每個(gè)新的圖像預(yù)測(cè)大約40秒,這個(gè)模型顯得很笨重。而當(dāng)面對(duì)龐大的數(shù)據(jù)集時(shí),其構(gòu)造并不好。而Fast R-CNN算法只需要通過(guò)ConvNet(卷積網(wǎng)絡(luò))對(duì)每個(gè)圖像進(jìn)行一次訓(xùn)練,和R-CNN相比,提升了計(jì)算時(shí)間,訓(xùn)練時(shí)間為2小時(shí),對(duì)于每張圖片使用大約3秒的時(shí)間去檢測(cè)目標(biāo)。將FPN應(yīng)用到Fast R-CNN中,能夠檢測(cè)到多尺度的目標(biāo)。但是需要進(jìn)行由上而下路徑檢測(cè)和訓(xùn)練,所以整個(gè)訓(xùn)練時(shí)間比Fast R-CNN較長(zhǎng),為3個(gè)小時(shí),每張圖像的檢測(cè)時(shí)間為1秒。

表2 三種算法的耗時(shí)性能
本文總結(jié)R-CNN、Fast R-CNN和FPN等目標(biāo)檢測(cè)方法,并應(yīng)用于COCO數(shù)據(jù)集(5個(gè)圖像類別)下,分別對(duì)三種算法進(jìn)行損失函數(shù)、準(zhǔn)確率與耗時(shí)性進(jìn)行分析。通過(guò)實(shí)驗(yàn)驗(yàn)證了FPN算法在小目標(biāo)物檢測(cè)的可行性與有效性。原因是FPN(特征金字塔)對(duì)CNN的特征提取器進(jìn)行改造,生成了多特征映射層(多尺度特征圖),具有比常規(guī)圖像金字塔更好的目標(biāo)檢測(cè)信息質(zhì)量,提升對(duì)小目標(biāo)的檢測(cè)效果。但從整體準(zhǔn)確率與耗時(shí)性能上看,三種算法的準(zhǔn)確率均低于80%,在圖片訓(xùn)練時(shí)間上耗時(shí)較長(zhǎng)。