施澤浩
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610065)
目標(biāo)檢測(cè)[1]算法是傳統(tǒng)的計(jì)算機(jī)視覺問題,主要任務(wù)是定位圖像上出現(xiàn)的目標(biāo),并對(duì)其進(jìn)行分類。在邁向更為復(fù)雜的圖像理解中,目標(biāo)檢測(cè)至關(guān)重要,因?yàn)槲覀儾粌H需要知道圖像里有什么物體,更需要知道物體的位置。
傳統(tǒng)的目標(biāo)檢測(cè)算法,例如VJ人臉檢測(cè)算法,主要是基于滑動(dòng)窗口和級(jí)聯(lián)分類器。滑動(dòng)窗口的大小是固定的,意味著只能檢測(cè)固定大小的目標(biāo),基于滑動(dòng)窗口不可避免的問題就是如何應(yīng)對(duì)不同尺度的目標(biāo)。一種有效的方法便是構(gòu)建圖像金字塔,將輸入圖片縮放成不同尺寸,在不同尺寸的輸入上進(jìn)行滑動(dòng)窗口操作,便能解決檢測(cè)不同尺度目標(biāo)的問題。近年來,深度學(xué)習(xí)不斷在圖像識(shí)別上取得突破,受到廣泛關(guān)注,自2013年起開始應(yīng)用到目標(biāo)檢測(cè)領(lǐng)域,并不斷刷新在各大目標(biāo)檢測(cè)數(shù)據(jù)庫上的成績(jī)。但是,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法同樣面對(duì)著檢測(cè)不同尺度目標(biāo)的問題。如果直接將圖像金字塔用于基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法,意味著對(duì)每個(gè)尺寸的圖片都要經(jīng)過一次網(wǎng)絡(luò)的前向傳播,不僅要克服輸入圖像大小變化的問題,而且效率十分低下。為此本文設(shè)計(jì)了特征金字塔網(wǎng)絡(luò),只需一次前向傳播,便能特征金字塔網(wǎng)絡(luò)中完成對(duì)不同尺度目標(biāo)的檢測(cè)。
ResNet[2]是近年最有影響力的一個(gè)基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu),被廣泛應(yīng)用到計(jì)算機(jī)視覺的各項(xiàng)任務(wù)。本文采用Resnet-50作為基礎(chǔ)網(wǎng)絡(luò),并在其上搭建特征金字塔網(wǎng)絡(luò)。Res2,Res3,Res4,Res5 是 ResNet中的結(jié)構(gòu),P2,P3,P4,P5是搭建的特征金字塔。考慮到卷積神經(jīng)網(wǎng)絡(luò)在低層(Res2,Res3)擅長(zhǎng)提取細(xì)粒度特征,對(duì)小目標(biāo)檢測(cè)比較重要,而在高層(P2,P3)擅長(zhǎng)提取語義信息,對(duì)目標(biāo)的正確分類比較重要,將低層特征圖與高層特征圖逐像素相加,得到一個(gè)具有強(qiáng)語義信息又能提取細(xì)節(jié)位置信息的特征圖。
按照?qǐng)D1所示的方式搭建網(wǎng)絡(luò),黑色實(shí)心箭頭為256個(gè)3×3卷積核的卷積層,空心箭頭為逐像素相加操作,融合高低層特征,得到 P2,P3,P4,P5四個(gè)針對(duì)不同尺度目標(biāo)的特征圖。整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)清晰,在各個(gè)深度學(xué)習(xí)框架中都容易實(shí)現(xiàn)。
在得到的特征金字塔上面,我們采用Faster R-CNN[3]中的預(yù)定義框機(jī)制。在特征金字塔的每個(gè)特征圖上的每個(gè)像素位置上設(shè)置一組不同大小,不同長(zhǎng)寬比的預(yù)定義框,如圖2。虛線框?yàn)轭A(yù)定義框,網(wǎng)絡(luò)通過預(yù)測(cè)對(duì)預(yù)定義框的調(diào)整得到實(shí)線框,即目標(biāo)的位置。

圖1

圖2
通過選擇與目標(biāo)IOU(交并比)最大的一個(gè)預(yù)定義框進(jìn)行目標(biāo)函數(shù)優(yōu)化,分類用交叉熵?fù)p失,邊框回歸用光滑L1損失。在每個(gè)像素位置同時(shí)輸出各個(gè)預(yù)定義框的位置和尺寸的調(diào)整量,是否含有目標(biāo)的分?jǐn)?shù),還有屬于各個(gè)類別的概率。排除包含目標(biāo)分?jǐn)?shù)低于一定閾值的預(yù)定義框,最后通過非極大值抑制得到最終的目標(biāo)檢測(cè)框。整個(gè)檢測(cè)過程只需要一次前向傳播,大大提高了檢測(cè)效率。
為了驗(yàn)證特征金字塔網(wǎng)絡(luò)的有效性,我們用ResNet50作為基準(zhǔn)進(jìn)行對(duì)比,在PASCAL VOC進(jìn)行實(shí)驗(yàn),測(cè)試在相同預(yù)測(cè)框數(shù)目下對(duì)不同大小目標(biāo)的召回率。
PASCAL VOC[4]目標(biāo)檢測(cè)數(shù)據(jù)庫含有20類物體,分為訓(xùn)練集,驗(yàn)證集和測(cè)試集。只允許使用訓(xùn)練集和驗(yàn)證集做訓(xùn)練,不允許使用外部數(shù)據(jù)。實(shí)驗(yàn)算法在VOC 2007,VOC 2012訓(xùn)練集和驗(yàn)證集上做訓(xùn)練,總共16541張圖片,并在VOC 2007測(cè)試集上做測(cè)試。
實(shí)驗(yàn)評(píng)價(jià)主要基于目標(biāo)召回率,相同預(yù)測(cè)框數(shù)目下召回率越高越好。實(shí)驗(yàn)結(jié)果表明,基于特征金字塔網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法對(duì)目標(biāo)召回率,大大超過基準(zhǔn)算法,見表1。目標(biāo)大小用目標(biāo)包圍框的面積的開方表示,可以看到,基于特征金字塔網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法在各個(gè)預(yù)測(cè)框數(shù)目下都有很好的表現(xiàn),對(duì)小目標(biāo)的召回率尤其突出。

表1
本文提出了基于特征金字塔網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法,借鑒了傳統(tǒng)目標(biāo)檢測(cè)算法檢測(cè)不同尺度目標(biāo)的思路,主要解決了現(xiàn)有基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法檢測(cè)不同尺度目標(biāo)與檢測(cè)效率之間的矛盾。算法將傳統(tǒng)圖像金字塔統(tǒng)一到深度學(xué)習(xí)框架中,融合高低層特征,極大得提高了現(xiàn)有算法檢測(cè)不同尺度目標(biāo)的能力,同時(shí)大大提高檢測(cè)效率。同時(shí),該網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)潔清晰,在各個(gè)深度學(xué)習(xí)框架中都容易實(shí)現(xiàn),具有一定的工程應(yīng)用價(jià)值。
[1]尹宏鵬,陳波,柴毅,等.基于視覺的目標(biāo)檢測(cè)與跟蹤綜述[J].Acta Automatica Sinica,2016,42(10):1466-1489.
[2]He K,Zhang X,Ren S,et al.Deep Residual Learning for Image Recognition[C].IEEE Conference on Computer Vision and Pattern Recognition.Las Vegas:IEEE Computer Society,2016:770-778.
[3]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,2015,PP(99):1-1.
[4]Everingham M,Van Gool L,Williams C K I,et al.The PASCAL Visual Object Classes Challenge[J].International Journal of Computer Vision,2010,88(2):303-338.