王 平,江雨澤,趙光輝
(1.天津航天中為數(shù)據(jù)系統(tǒng)科技有限公司,天津 300301;2.西安電子科技大學(xué) 人工智能學(xué)院,陜西 西安 710071)
近年來(lái),深度學(xué)習(xí)在圖像檢測(cè)領(lǐng)域獲得了較大進(jìn)展[1-2],其中一階段檢測(cè)網(wǎng)絡(luò)由于其實(shí)時(shí)性被越來(lái)越多的應(yīng)用在目標(biāo)檢測(cè)任務(wù)中。目標(biāo)檢測(cè)由識(shí)別和定位兩個(gè)任務(wù)組成,大多數(shù)一階段網(wǎng)絡(luò)都使用較大的降采樣因子來(lái)增強(qiáng)對(duì)物體的識(shí)別分類能力,但是過(guò)大的降采樣因子也會(huì)給定位任務(wù)帶來(lái)全局噪聲,從而降低物體的定位精度,這種情況在目標(biāo)密集的情況下尤為明顯[3-5]。
為了解決傳統(tǒng)一階段網(wǎng)絡(luò)定位不準(zhǔn)的問(wèn)題,大量的研究人員開(kāi)始探索模型結(jié)構(gòu)中降采樣因子和目標(biāo)定位之間的矛盾關(guān)系。該問(wèn)題主要表現(xiàn)為降采樣因子會(huì)給目標(biāo)定位帶來(lái)全局噪聲,通過(guò)降低這些全局噪聲或者增大原始定位信息的權(quán)重來(lái)提升目標(biāo)的定位精度。
目前,已經(jīng)有一些算法通過(guò)對(duì)降采樣因子進(jìn)行處理來(lái)提升檢測(cè)網(wǎng)絡(luò)的整體檢測(cè)精度。文獻(xiàn)[6-7]采用改進(jìn)后的殘差網(wǎng)絡(luò)(Residual Net ResNet)模型設(shè)計(jì)了一種新的“瓶頸(Bottleneck)”結(jié)構(gòu),每個(gè)階段的輸出都會(huì)與上一個(gè)階段的殘差值進(jìn)行疊加,將之前每一層的原始信息直接傳遞到后層,變相增大了原始定位信息的權(quán)重。YOLOv3[3]使用了上采樣操作和多尺度特征圖聯(lián)合的方法來(lái)提升網(wǎng)絡(luò)的檢測(cè)精度,從而降低了降采樣帶來(lái)的噪聲強(qiáng)度。文獻(xiàn)[4]構(gòu)建了錨框細(xì)化模塊(Anchor Refinement Module,ARM)和目標(biāo)檢測(cè)模塊(Object Detection Module,ODM)模塊,將目標(biāo)的位置信息和類別信息進(jìn)行有效整合,降低了降采樣因子的干擾。
文章基于一階段檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)提出了一種新的降采樣因子使用方案,其將目標(biāo)定位和目標(biāo)識(shí)別這兩個(gè)部分在網(wǎng)絡(luò)結(jié)構(gòu)上用兩個(gè)支路進(jìn)行分離,在目標(biāo)識(shí)別支路中繼續(xù)大量使用降采樣因子,而在目標(biāo)定位支路上使用跳連接的方式來(lái)增強(qiáng)原始定位信息的權(quán)重,從而增強(qiáng)了網(wǎng)絡(luò)整體的檢測(cè)精度。
網(wǎng)絡(luò)的整體結(jié)構(gòu)如圖1所示。多尺度定位提升網(wǎng)絡(luò)基于一個(gè)主干網(wǎng)絡(luò),從兩條支路分別產(chǎn)生固定數(shù)量的錨框和所屬的類別分?jǐn)?shù)。多尺度定位提升網(wǎng)絡(luò)將目標(biāo)的定位任務(wù)和識(shí)別任務(wù)分離,分別由坐標(biāo)復(fù)原單元和多尺度分類單元完成。坐標(biāo)復(fù)原單元在傳統(tǒng)一階段網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上進(jìn)行了創(chuàng)新,減少了多次降采樣帶來(lái)的全局環(huán)境噪聲,最大限度地保留了目標(biāo)的坐標(biāo)信息。多尺度分類單元從主干網(wǎng)絡(luò)(如VGG-16)中提取目標(biāo)特征,采用多層金字塔結(jié)構(gòu)[8-11]以最大化地提取出目標(biāo)的語(yǔ)意信息,并且使用坐標(biāo)復(fù)原單元輸出的目標(biāo)坐標(biāo)作為目標(biāo)識(shí)別的初始化坐標(biāo),提升了目標(biāo)識(shí)別的精度。下面將詳細(xì)介紹多尺度定位提升網(wǎng)絡(luò)中的這兩個(gè)核心單元。

圖1 網(wǎng)絡(luò)整體結(jié)構(gòu)圖
文章為目標(biāo)定位任務(wù)專門設(shè)計(jì)了坐標(biāo)復(fù)原單元,提取圖片中多個(gè)目標(biāo)位置信息,它和目標(biāo)識(shí)別任務(wù)分離,防止過(guò)多的下采樣給目標(biāo)定位帶來(lái)不必要的全局噪聲。
在圖像分割領(lǐng)域,每一個(gè)像素點(diǎn)的所屬類別以及位置都能夠被解釋。為了能夠準(zhǔn)確地提取目標(biāo)的位置信息,參考了圖像分割中經(jīng)典的網(wǎng)絡(luò)設(shè)計(jì),即在主干網(wǎng)絡(luò)后添加多層反卷積結(jié)構(gòu),使用它來(lái)保留圖像中的多個(gè)目標(biāo)在空間上的位置信息;并且為了再盡量保證網(wǎng)絡(luò)精簡(jiǎn)的情況下保留網(wǎng)絡(luò)淺層更多的細(xì)節(jié)信息,文中的網(wǎng)絡(luò)直接將每一層特征圖的結(jié)果與上一個(gè)并聯(lián)結(jié)構(gòu)的特征圖結(jié)果進(jìn)行元素疊加。為了在保證網(wǎng)絡(luò)實(shí)時(shí)性的前提下進(jìn)一步更好地提取目標(biāo)的坐標(biāo)信息,網(wǎng)絡(luò)將每一級(jí)中尺寸最大的特征圖和下一級(jí)中尺寸最小的特征圖之間建立的直連通道(圖2中的底部支線),將原始主干網(wǎng)絡(luò)中的特征直接引入到后端,保留更多原圖中的細(xì)節(jié)信息,以提升目標(biāo)定位精度。直連通道使用3×3像素大小、步長(zhǎng)為2像素的卷積核來(lái)將最底層的特征圖尺寸調(diào)整為和最高層特征圖相同的尺寸,并且在中間加入線性整流激活函數(shù)(Rectified Linear Unit,ReLU)來(lái)降低網(wǎng)絡(luò)的訓(xùn)練難度。坐標(biāo)復(fù)原單元的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。

圖2 坐標(biāo)復(fù)原單元網(wǎng)絡(luò)結(jié)構(gòu)圖
坐標(biāo)復(fù)原單元的神經(jīng)網(wǎng)絡(luò)層參數(shù)如圖3所示。其中,C表示特征層的通道數(shù),S表示特征層的長(zhǎng)寬尺寸,C通道數(shù)改變時(shí)表示使用1×1像素大小的卷積核對(duì)特征層的通道數(shù)進(jìn)行修正,S特征層尺寸翻倍表示使用3×3像素大小的卷積核對(duì)特征層進(jìn)行反卷積操作,S特征層尺寸減半表示使用3×3像素大小的卷積核對(duì)特征層進(jìn)行降采樣操作,有加號(hào)的圓形標(biāo)志表示將兩個(gè)特征層進(jìn)行元素相加操作。

圖3 坐標(biāo)復(fù)原單元網(wǎng)絡(luò)層參數(shù)圖
針對(duì)目標(biāo)識(shí)別問(wèn)題,設(shè)計(jì)了多尺度分類單元,調(diào)用了主干網(wǎng)絡(luò)中的多層特征圖信息,包含了目標(biāo)的細(xì)節(jié)特征和抽象特征,對(duì)不同大小的目標(biāo)均有較強(qiáng)的適應(yīng)性。為了最大限度地保留小目標(biāo)的識(shí)別能力,網(wǎng)絡(luò)使用了多層金字塔結(jié)構(gòu)[8];為了讓多尺度分類單元對(duì)不同類別的目標(biāo)具有更強(qiáng)的分類能力,網(wǎng)絡(luò)在每一次反卷積操作前都添加了額外的卷積層以及ReLU激活。對(duì)第3個(gè)特征圖進(jìn)行了特殊處理,將其和主干網(wǎng)絡(luò)第3層的特征圖進(jìn)行級(jí)聯(lián)操作,在不修改特征圖元素?cái)?shù)值的情況下增加了特征圖的通道數(shù)。需要注意的是,在訓(xùn)練過(guò)程中,網(wǎng)絡(luò)將坐標(biāo)復(fù)原單元生成的目標(biāo)坐標(biāo)信息通過(guò)非極大值抑制方法進(jìn)行篩選,并后將篩選過(guò)后的目標(biāo)坐標(biāo)信息傳遞給多尺度分類單元中相對(duì)應(yīng)的特征圖,作為多尺度分類單元錨框的默認(rèn)初始值,再由多尺度分類單元通過(guò)數(shù)據(jù)集進(jìn)一步回歸出錨框的4個(gè)有關(guān)目標(biāo)的偏移量(Δw,Δh,Δx,Δy)。具體網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。多尺度分類單元的神經(jīng)網(wǎng)絡(luò)層參數(shù)如圖5所示。

圖4 多尺度分類單元網(wǎng)絡(luò)結(jié)構(gòu)圖

圖5 多尺度分類單元網(wǎng)絡(luò)層參數(shù)圖
主干網(wǎng)絡(luò)為VGG-16,當(dāng)它的網(wǎng)絡(luò)結(jié)構(gòu)也有很強(qiáng)的適應(yīng)能力時(shí),ResNet[6]、ResNext[7]和Inception等流行的主干網(wǎng)絡(luò)都可以作為它的主干網(wǎng)絡(luò)。在訓(xùn)練網(wǎng)絡(luò)模型時(shí),使用的主干網(wǎng)絡(luò)VGG-16在ILSVRC CLS-LOC數(shù)據(jù)集上經(jīng)過(guò)預(yù)先訓(xùn)練,這么做能夠讓MLE有更好的模型初始化結(jié)果,加快網(wǎng)絡(luò)訓(xùn)練速度,增強(qiáng)網(wǎng)絡(luò)綜合性能。此外,還對(duì)VGG-16網(wǎng)絡(luò)進(jìn)行了適當(dāng)?shù)男薷模瑒h除了原先在VGG-16中的FC 6和FC 7兩層全鏈接網(wǎng)絡(luò),轉(zhuǎn)而使用兩層卷積層Conv 6和Conv 7來(lái)代替。之后還在Conv 7的后面添加了兩個(gè)3×3的卷積層,并且在這兩個(gè)卷積層后面都額外加上了ReLU激活。
在坐標(biāo)復(fù)原單元LRU中,設(shè)計(jì)了一種底層特征圖到高層特征圖的直連結(jié)構(gòu)。由于底層特征到高層特征的特征圖大小不同,它采用了多層3×3像素大小、步長(zhǎng)為2像素的卷積核來(lái)統(tǒng)一這兩個(gè)特征圖的大小和維度,并將它們進(jìn)行元素相加以獲得最終的特征向量。在實(shí)驗(yàn)的過(guò)程中使用了多種形式的卷積核。實(shí)驗(yàn)表明,3×3像素大小、步長(zhǎng)為2像素的卷積核的最終效果最好。
為了讓網(wǎng)絡(luò)能夠?qū)Σ煌叽绲奈矬w都有較好的適應(yīng)性,設(shè)計(jì)了3種長(zhǎng)寬比的錨框,分別為1∶1、1∶2和1∶3,并且將這些錨框均勻地平鋪在由主干網(wǎng)絡(luò)生成的4種特征圖中的每一個(gè)元素中,之后特征圖中的每一個(gè)元素就能夠根據(jù)自己所處的層數(shù)以及錨框的長(zhǎng)寬比來(lái)生成默認(rèn)候選框。文中使用VGG16作為主干網(wǎng)絡(luò),其中,conv4_3處的特征圖每一個(gè)元素對(duì)應(yīng)的默認(rèn)候選框的變長(zhǎng)即為輸入圖像大小的1/8。假設(shè)輸入圖像的邊長(zhǎng)為n,那么第i層特征圖上的錨框基礎(chǔ)大小即為m(m=n/(8i)),其大小就分別為(m,m)、(4m/3,2m/3)、(2m/3,4m/3)、(3m/2,m/2)和(m/2,3m/2)。在訓(xùn)練的過(guò)程中,網(wǎng)絡(luò)根據(jù)重疊比例來(lái)確定錨框和目標(biāo)位置的關(guān)聯(lián)程度,確保將每一個(gè)目標(biāo)綁定到與其重疊最大那個(gè)錨框上,并后將剩余的錨框綁定到和剩余的錨框集合中重疊比例最大的目標(biāo)上,如果錨框的重疊比例小于0.5,那么就不將它與任何目標(biāo)綁定,轉(zhuǎn)而將其標(biāo)定為負(fù)樣本。網(wǎng)絡(luò)平均精度在不同錨框長(zhǎng)寬組合下的實(shí)驗(yàn)結(jié)果如表1所示。

表1 網(wǎng)絡(luò)平均精度在不同錨框長(zhǎng)寬比組合下的實(shí)驗(yàn)結(jié)果
由表1可知,當(dāng)使用前3種和全4種長(zhǎng)寬比的錨框時(shí),檢測(cè)效果最好,平均精度均為82.5%。為了盡可能地降低網(wǎng)絡(luò)中錨框長(zhǎng)寬比參數(shù)的數(shù)量,加快網(wǎng)絡(luò)的運(yùn)算速度,選擇3種錨框比,分別為1∶1、1∶2和1∶3。
文中使用了類似于區(qū)域侯選網(wǎng)絡(luò)[5]中設(shè)計(jì)的多尺度損失函數(shù)來(lái)對(duì)網(wǎng)絡(luò)進(jìn)行權(quán)重更新,但是在它的基礎(chǔ)上進(jìn)行了適當(dāng)?shù)男薷摹>唧w函數(shù)為
L({ri},{mi},{bi})=
(1)
上式左側(cè)是網(wǎng)絡(luò)更新的最終損失值。其中,i表示一張圖片中的第i個(gè)錨框;NLRU和NMCU分別表示屬于坐標(biāo)復(fù)原單元和多尺度分類單元模塊的特征圖集合中的元素總個(gè)數(shù);LLRU和LMCU是用于計(jì)算定位損失的交叉熵?fù)p失函數(shù),而[Ti≥1]表示只計(jì)算被綁定為是正樣本的錨框,如果特征圖中的第i個(gè)元素對(duì)應(yīng)的是原圖中的背景而不是目標(biāo),那么它就不參加定位損失函數(shù)的計(jì)算;Li和Mi分別表示LRU和MCU中特征圖集合的第i個(gè)元素預(yù)測(cè)的對(duì)象的坐標(biāo);Pi表示MCU中特征圖集合第i個(gè)元素預(yù)測(cè)目標(biāo)的具體類別的置信度;PMCU表示多類置信度的Softmax損失函數(shù)。
在訓(xùn)練網(wǎng)絡(luò)時(shí)使用了兩塊NVIDIA 1080 Ti,每一個(gè)圖形處理器中的Batch-Size[9](批訓(xùn)練大小)為16張,兩個(gè)圖形處理器的總Batch-Size大小為32張。文中使用的主干網(wǎng)絡(luò)VGG-16在ILSVRC CLS-LOC數(shù)據(jù)集上預(yù)先訓(xùn)練完成。然后使用具有0.9動(dòng)量和0.000 5權(quán)重衰減的隨機(jī)梯度下降算法對(duì)整個(gè)網(wǎng)絡(luò)進(jìn)行微調(diào),并且將初始學(xué)習(xí)率設(shè)置為0.002;在訓(xùn)練圈數(shù)為150、200、250時(shí),將學(xué)習(xí)率設(shè)置調(diào)整為0.001、0.000 5和0.000 05;訓(xùn)練到300圈時(shí)停止。
實(shí)驗(yàn)在PASCAL VOC 2007上進(jìn)行。這里使用Pytorch 1.1框架搭建網(wǎng)絡(luò),使用NVIDIA 1 080Ti顯卡在Ubuntu 16.04系統(tǒng)上進(jìn)行測(cè)試。
文中的網(wǎng)絡(luò)模型在VOC 2007和VOC 2012數(shù)據(jù)集上進(jìn)行訓(xùn)練,用VOC 2007測(cè)試集測(cè)試。使用兩塊NVIDIA 1080Ti顯卡,每一塊顯卡的批處理容量為16,兩塊顯卡的總?cè)萘考礊?2。接下來(lái)將比文章提出的網(wǎng)絡(luò)與現(xiàn)有網(wǎng)絡(luò)進(jìn)行對(duì)比,結(jié)果如表2所示。在輸入尺寸為512×512像素大小的情況下,文章提出的網(wǎng)絡(luò)實(shí)現(xiàn)了82.5%的平均精度,超過(guò)了現(xiàn)有的一階段方法,如ASSD[2]、DSSD[1]、YOLOv3[3]、RefineDet[4]等。同時(shí),文章的算法在保證一階段網(wǎng)絡(luò)實(shí)時(shí)性的情況下,也超越了一些計(jì)算時(shí)間較長(zhǎng)的二階段網(wǎng)絡(luò)(如MR-CNN[5]、CoupleNet[9])。

表2 多種網(wǎng)絡(luò)在PASCAL VOC 2007數(shù)據(jù)集下的實(shí)驗(yàn)結(jié)果
結(jié)合現(xiàn)實(shí)場(chǎng)景下的海面船只檢測(cè)問(wèn)題,網(wǎng)絡(luò)的實(shí)際檢測(cè)效果如圖6所示。

圖6 海面艦船檢測(cè)效果圖
文章為一階段網(wǎng)絡(luò)模型的搭建提供了另一種思路,它將目標(biāo)檢測(cè)中的識(shí)別和定位作為兩個(gè)獨(dú)立的任務(wù)來(lái)解決。坐標(biāo)復(fù)原單元旨在處理目標(biāo)定位任務(wù),通過(guò)在大尺度和小尺度特征圖之間建立直連通道來(lái)改善目標(biāo)定位精度。多尺度分類單元用來(lái)負(fù)責(zé)目標(biāo)識(shí)別任務(wù),它在金字塔結(jié)構(gòu)的基礎(chǔ)上添加了特征融合機(jī)制,增強(qiáng)了網(wǎng)絡(luò)對(duì)圖像語(yǔ)義信息的提取,并且用坐標(biāo)復(fù)原單元輸出的目標(biāo)坐標(biāo)作為多尺度分類單元來(lái)識(shí)別目標(biāo)的初始化坐標(biāo),降低了網(wǎng)絡(luò)的訓(xùn)練難度。提出的網(wǎng)絡(luò)以端到端的方式進(jìn)行訓(xùn)練,可以適應(yīng)多種主干網(wǎng)絡(luò)結(jié)構(gòu)。
對(duì)PASCAL VOC 2007數(shù)據(jù)集進(jìn)行的實(shí)驗(yàn)證明了筆者提出的網(wǎng)絡(luò)在保證實(shí)時(shí)性的情況下,獲得了較其他一階段網(wǎng)絡(luò)乃至一些二階段網(wǎng)絡(luò)更高的檢測(cè)精度。