楊海龍,田 瑩,王澧冰
(遼寧科技大學(xué) 計(jì)算機(jī)與軟件工程學(xué)院,遼寧 鞍山 114051)
現(xiàn)階段流行的深度學(xué)習(xí)檢測(cè)框架主要包括兩個(gè)類別:?jiǎn)坞A段檢測(cè)模型和兩階段檢測(cè)模型。YOLO系列算法屬于單階段類別,例如YOLO[1]、YOLO9000[2]、YOLOv3[3]和 SSD[4]。R-CNN[5]和相應(yīng)延伸出來的變體網(wǎng)絡(luò)則屬于兩階段類別,例如Fast R-CNN[6]、Faster R-CNN[7]和 Μask R-CNN[8]。單階段和兩階段模型都是基于圖像分類骨干網(wǎng)絡(luò),例如ZFNet[9]、VGG[10]和ResNet[11]等,來進(jìn)行特征提取從而完成檢測(cè)任務(wù)。盡管現(xiàn)在的檢測(cè)模型準(zhǔn)確率越來越高,推理速度越來越快,但是它的訓(xùn)練并不高效,從而制約了其檢測(cè)性能的進(jìn)一步提升。
圖像分類任務(wù)是計(jì)算機(jī)視覺領(lǐng)域多個(gè)研究方向的基礎(chǔ)。針對(duì)如何更好地訓(xùn)練分類模型,目前已有很多方法被用于實(shí)踐。但是對(duì)于目標(biāo)檢測(cè)的深度學(xué)習(xí)模型而言,和分類網(wǎng)絡(luò)相比,它們的計(jì)算復(fù)雜度更高,網(wǎng)絡(luò)設(shè)計(jì)也更復(fù)雜,優(yōu)化難度也大大增加。所以針對(duì)目標(biāo)檢測(cè)模型的優(yōu)化訓(xùn)練方法的研究和實(shí)驗(yàn)不是很多。
在單階段目標(biāo)檢測(cè)器中,最后的分類和檢測(cè)結(jié)果直接由一個(gè)卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network,CNN)生成。然而在兩階段檢測(cè)中,例如Faster R-CNN[7],先由區(qū)域生成網(wǎng)絡(luò)(Region proposal network,RPN)生成感興趣區(qū)域(Region of interest,RoI),最后的預(yù)測(cè)依據(jù)感興趣區(qū)域坐標(biāo)在特征圖上采樣和池化后得到特征來生成。這種特征處理流程的不同會(huì)導(dǎo)致兩種模型在數(shù)據(jù)處理和網(wǎng)絡(luò)訓(xùn)練優(yōu)化上區(qū)別較大。有的訓(xùn)練方法只對(duì)單階段檢測(cè)模型有效,有的則只對(duì)兩階段檢測(cè)模型有效,找到對(duì)兩者都有性能提升的優(yōu)化訓(xùn)練方法是其中的關(guān)鍵。
本文將數(shù)據(jù)增強(qiáng)、類標(biāo)簽平滑、學(xué)習(xí)率優(yōu)化和隨機(jī)尺度訓(xùn)練四種優(yōu)化訓(xùn)練方法,用于單階段檢測(cè)模型YOLOv3和兩階段檢測(cè)模型Faster R-CNN中,通過實(shí)驗(yàn)證明這些方法不但對(duì)提升兩種模型的檢測(cè)準(zhǔn)確率都有一定的幫助,而且也有著很好的泛化能力。并且,只是將這些方法加入到檢測(cè)模型訓(xùn)練的過程中,并不會(huì)對(duì)模型的網(wǎng)絡(luò)設(shè)計(jì)做出任何改變,因此對(duì)模型推理階段不造成額外的計(jì)算代價(jià)。
本文采用兩種數(shù)據(jù)增強(qiáng)方式:隨機(jī)顏色擾動(dòng)和隨機(jī)幾何變換。隨機(jī)顏色擾動(dòng)包括對(duì)圖片色調(diào)、對(duì)比度、亮度和飽和度的調(diào)整。隨機(jī)幾何變換方式包括隨機(jī)的水平翻轉(zhuǎn)、隨機(jī)的圖片大小調(diào)整和隨機(jī)的圖片裁剪和擴(kuò)大等。對(duì)于Faster RCNN,不采用隨機(jī)裁剪的增強(qiáng)方式。圖1展示了亮度與對(duì)比度調(diào)整、水平翻轉(zhuǎn)和隨機(jī)裁剪三種常用數(shù)據(jù)增強(qiáng)方式。
圖1 數(shù)據(jù)增強(qiáng)方式Fig.1 Data augmentation method
在卷積神經(jīng)網(wǎng)絡(luò)的最后階段通常采用softmax函數(shù)進(jìn)行分類,計(jì)算一個(gè)類別在所有類別n中所占的概率
式中:z表示最后分類輸出層的沒有歸一化的計(jì)算值;p表示最后的計(jì)算概率值;下標(biāo)i表示計(jì)算物體的類別。
檢測(cè)網(wǎng)絡(luò)訓(xùn)練過程中的目標(biāo)分類損失,采用交叉熵?fù)p失函數(shù)
式中:pi是輸出的分布概率;qi是基準(zhǔn)的概率分布。
對(duì)于常用的獨(dú)熱(One-hot)向量形式,在q的分布中,正確類的標(biāo)簽的概率值是1,其他類的標(biāo)簽概率值都是0。本文在q的分布中采用類標(biāo)簽平滑分布[12]
式中:K表示訓(xùn)練集的總類別數(shù);y表示基準(zhǔn)標(biāo)簽類別;ε是常數(shù),用來降低模型對(duì)正確類別的置信程度,本文設(shè)置ε=0.01。
在訓(xùn)練網(wǎng)絡(luò)時(shí),初始階段設(shè)置的學(xué)習(xí)率較大,隨著訓(xùn)練的進(jìn)行逐漸降低學(xué)習(xí)率。步幅學(xué)習(xí)率法是常用的學(xué)習(xí)率設(shè)置方法,如圖2中虛線所示,隨著迭代的進(jìn)行,訓(xùn)練到達(dá)一定的迭代次數(shù)時(shí),學(xué)習(xí)率便會(huì)乘以一個(gè)0到1之間的小數(shù),從而達(dá)到降低學(xué)習(xí)率的目的。例如在Faster R-CNN[7]的訓(xùn)練過程中,迭代進(jìn)行到60 K時(shí),學(xué)習(xí)率便會(huì)乘以0.1這個(gè)比率進(jìn)行自降;在YOLOv3[3]的訓(xùn)練中,當(dāng)?shù)M(jìn)行到40 K和45 K時(shí),學(xué)習(xí)率都會(huì)乘以比率0.1,從而使學(xué)習(xí)率降低。
本文采用余弦學(xué)習(xí)率方法[13],將學(xué)習(xí)率隨著迭代進(jìn)行的變化曲線定義為余弦形式。如圖2實(shí)線所示。假設(shè)模型訓(xùn)練要進(jìn)行150個(gè)epoch,可以將學(xué)習(xí)率定義為
式中:l表示迭代過程中的學(xué)習(xí)率;x表示迭代進(jìn)行的次數(shù)。
圖2 學(xué)習(xí)率優(yōu)化方法Fig.2 Learning rate optimization method
為了更好地避免模型訓(xùn)練開始階段產(chǎn)生梯度爆炸現(xiàn)象,將學(xué)習(xí)率預(yù)熱啟發(fā)方法[14]用于本文學(xué)習(xí)率優(yōu)化過程中。如圖2中初始的虛線所示,在訓(xùn)練開始階段的迭代中線性地快速增加學(xué)習(xí)率。
正常情況下訓(xùn)練集圖片的尺寸是多樣的,考慮到內(nèi)存的限制和使得批量處理更為簡(jiǎn)單,在文獻(xiàn)[1]和[4]中,訓(xùn)練圖片都以固定尺寸輸入到網(wǎng)絡(luò)中,導(dǎo)致最后訓(xùn)練得到的模型對(duì)于輸入圖片的魯棒性不高。
本文探究隨機(jī)尺度訓(xùn)練方法[3]對(duì)于網(wǎng)絡(luò)性能的提升程度。如圖3所示,以YOLOv3網(wǎng)絡(luò)為例,輸入的訓(xùn)練圖片尺寸依次增加64分辨率,尺寸為352、416、480和544四個(gè)分辨率,在同一次迭代中的圖片尺寸大小保持一致。
圖3 隨機(jī)圖片尺度訓(xùn)練Fig.3 Random picture scale training
為了驗(yàn)證本文提出的優(yōu)化訓(xùn)練方法對(duì)于目標(biāo)檢測(cè)性能的提升程度,選用單階段檢測(cè)器YOLOv3和兩階段檢測(cè)器Faster R-CNN作為實(shí)驗(yàn)的基礎(chǔ)檢測(cè)網(wǎng)絡(luò)。YOLOv3由于它的高效性和準(zhǔn)確性,是目前公認(rèn)的最優(yōu)秀的檢測(cè)器之一?,F(xiàn)在很多兩階段檢測(cè)器其實(shí)都是Faster R-CNN的變體。實(shí)驗(yàn)中為了排除測(cè)試方法的不同對(duì)于結(jié)果的影響,測(cè)試結(jié)果統(tǒng)一為單尺度、單模型,通過標(biāo)準(zhǔn)的非極大值抑制(Non-maximum suppression implementation,NΜS)后的輸出結(jié)果。
實(shí)驗(yàn)采用的Centos7服務(wù)器CPU型號(hào)為Intel? Xeno(R)CPU E5-2650v4@2.20GHz,內(nèi)存為96G,GPU為雙路NVIDIAGTX 1080Ti。實(shí)驗(yàn)平臺(tái)為基于python3的anaconda深度學(xué)習(xí)集成環(huán)境,深度學(xué)習(xí)框架為mxnet。
PASCALVOC[15-16]是一個(gè)常用的標(biāo)準(zhǔn)目標(biāo)檢測(cè)數(shù)據(jù)集。實(shí)驗(yàn)把VOC07 trainval和VOC12 trainval作為訓(xùn)練集,VOC07 test作為驗(yàn)證集。通過PASCALVOC開發(fā)工具包中定義的測(cè)試標(biāo)準(zhǔn)進(jìn)行評(píng)估后,得到最終的平均準(zhǔn)確率結(jié)果(mean average precision,mAP)。對(duì)于YOLOv3模型,驗(yàn)證時(shí)統(tǒng)一使用416×416分辨率的圖片。當(dāng)采用隨機(jī)圖片尺寸訓(xùn)練方法時(shí),隨機(jī)輸入352、416、480和544四個(gè)分辨率的圖片;不采用隨機(jī)尺寸方法時(shí),輸入圖片的分辨率固定為416×416。對(duì)于Faster RCNN模型,訓(xùn)練和驗(yàn)證時(shí)輸入的圖片短邊都固定為600像素,同時(shí)保證長邊尺寸不超過1 000像素。
2.2.1 實(shí)驗(yàn)結(jié)果 表1為YOLOv3模型在VOC 07數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果。對(duì)于YOLOv3模型,數(shù)據(jù)增強(qiáng)方法對(duì)于基準(zhǔn)mAP貢獻(xiàn)了14.98%,接近15%。隨機(jī)圖片尺度訓(xùn)練、學(xué)習(xí)率優(yōu)化和類標(biāo)簽平滑也都能在一定程度上提高檢測(cè)準(zhǔn)確率,分別貢獻(xiàn)了0.38%、0.45%和0.39%的mAP值。將隨機(jī)圖片尺度訓(xùn)練、學(xué)習(xí)率優(yōu)化和類標(biāo)簽平滑三種訓(xùn)練方法綜合,能夠給YOLOv3模型帶來1.22%的準(zhǔn)確率提升。在單尺度416×416測(cè)試的情況下,mAP達(dá)到了81.38%。圖4為應(yīng)用優(yōu)化訓(xùn)練方法后的YOLOv3檢測(cè)采樣示例圖片的可視化,證明模型能夠很好地檢測(cè)到圖片中的物體。
表1 YOLOv3實(shí)驗(yàn)結(jié)果,%Tab.1 Experimental results of YOLOv3
圖4 YOLOv3應(yīng)用訓(xùn)練方法目標(biāo)檢測(cè)示例圖Fig.4 Detection examples using training method YOLOv3s
表2為Faster R-CNN模型在VOC 07數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果。對(duì)于Faster R-CNN模型,和YOLOv3相比,數(shù)據(jù)增強(qiáng)方法對(duì)于檢測(cè)準(zhǔn)確率的提升就小了很多。當(dāng)采用數(shù)據(jù)增強(qiáng)方法訓(xùn)練網(wǎng)絡(luò)時(shí),mAP只得到了一個(gè)很小的0.22%的增加量。學(xué)習(xí)率優(yōu)化對(duì)于Faster R-CNN的準(zhǔn)確率提升為1.79%。類標(biāo)簽平滑的提升率為0.61%。學(xué)習(xí)率優(yōu)化和類標(biāo)簽平滑兩種優(yōu)化方法綜合能給Faster RCNN帶來相比基準(zhǔn)高2.40%的mAP提升。圖5為應(yīng)用優(yōu)化訓(xùn)練方法后的Faster R-CNN檢測(cè)采樣示例圖片的可視化,證明模型同樣能夠很好地檢測(cè)到圖片中的物體。
表2 Faster R-CNN實(shí)驗(yàn)結(jié)果,%Tab.2 Experimental results of Faster R-CNN
2.2.2 實(shí)驗(yàn)結(jié)果分析 數(shù)據(jù)增強(qiáng)對(duì)YOLOv3的檢測(cè)性能起著較大的作用,而對(duì)于Faster R-CNN的檢測(cè)準(zhǔn)確率卻只有0.22%的較小貢獻(xiàn)值。是因?yàn)镕aster R-CNN訓(xùn)練時(shí),首先通過區(qū)域生成網(wǎng)絡(luò)生成候選區(qū)域的坐標(biāo),然后依照這些坐標(biāo)在特征圖上采樣候選區(qū)域,這個(gè)過程相當(dāng)于通過裁剪特征自動(dòng)地完成了空間特征增強(qiáng)。而YOLOv3等單階段檢測(cè)模型直接從原始圖像特征生成預(yù)測(cè),沒有產(chǎn)生候選區(qū)域的過程,所以需要圖像裁剪和縮放等來進(jìn)行數(shù)據(jù)增強(qiáng),從而達(dá)到訓(xùn)練模型的魯棒性,進(jìn)而提升檢測(cè)準(zhǔn)確率。
類標(biāo)簽平滑方法的應(yīng)用分別給YOLOv3和Faster R-CNN帶來了0.39%和0.61%的性能提升。對(duì)于獨(dú)熱向量形式,正確類的標(biāo)簽概率值為1,其他類的都是0,但是根據(jù)softmax函數(shù),實(shí)際輸出的概率分布中的正確類的概率只能無限接近1,但永遠(yuǎn)不是1。這就使得模型要對(duì)自己的輸出概率有很高的置信度,從而使得模型訓(xùn)練過程中有過擬合的傾向,影響模型訓(xùn)練的效果。將ε=0.01的標(biāo)簽平滑方法用于訓(xùn)練,就大大降低了這種過擬合的傾向。
圖5 Faster R-CNN應(yīng)用訓(xùn)練方法目標(biāo)檢測(cè)示例圖Fig.5 Detection examples using training method Faster R-CNN
學(xué)習(xí)率優(yōu)化訓(xùn)練方法給YOLOv3帶來了0.45%的準(zhǔn)確率提升,對(duì)于Faster R-CNN的提升程度更大,為1.79%。傳統(tǒng)的步幅學(xué)習(xí)率方法存在的一個(gè)問題是:學(xué)習(xí)率突然下降會(huì)造成接下來幾輪迭代中學(xué)習(xí)動(dòng)量的震蕩,使模型訓(xùn)練變得不穩(wěn)定。當(dāng)采用余弦學(xué)習(xí)率時(shí)就避免了這種問題。同時(shí),訓(xùn)練開始階段的學(xué)習(xí)率預(yù)熱啟發(fā)方法的應(yīng)用,也很好地避免了梯度爆炸情況的出現(xiàn)。應(yīng)用余弦學(xué)習(xí)率和預(yù)熱啟發(fā)這兩種學(xué)習(xí)率優(yōu)化訓(xùn)練方法,使得模型整個(gè)訓(xùn)練過程中的梯度更新平穩(wěn)進(jìn)行。
在YOLOv3模型的訓(xùn)練中應(yīng)用隨機(jī)尺度訓(xùn)練方法,能有效地提高訓(xùn)練模型的魯棒性,從而給YOLOv3帶來0.38%的準(zhǔn)確率提升。
為了更好地驗(yàn)證這些訓(xùn)練方法對(duì)于檢測(cè)任務(wù)的提升效果,同時(shí)也為了驗(yàn)證算法的泛化能力,在ΜS COCO[17]數(shù)據(jù)集上進(jìn)一步實(shí)驗(yàn)。最終輸出的mAP由COCO數(shù)據(jù)集中定義的新標(biāo)準(zhǔn)mAP@0.50:0.95進(jìn)行評(píng)估后獲得。
ΜS COCO數(shù)據(jù)集相比PASCALVOC的檢測(cè)難度更大,包含更多的小目標(biāo),圖片中物體的咬合遮擋情況更為復(fù)雜。物體類別相比PASCALVOC的20類增加到了80類,平均每張圖片中包含的物體數(shù)目和類的數(shù)量也有較大的增加。為了更好地檢測(cè)到小目標(biāo),F(xiàn)aster R-CNN訓(xùn)練和驗(yàn)證時(shí)輸入到網(wǎng)絡(luò)的圖片尺寸被統(tǒng)一到800×1 300分辨率。將數(shù)據(jù)增強(qiáng)、類標(biāo)簽平滑和學(xué)習(xí)率優(yōu)化三種優(yōu)化訓(xùn)練方法同時(shí)用于YOLOv3和Faster R-CNN的訓(xùn)練中。
表3是在ΜS COCO數(shù)據(jù)集上的訓(xùn)練結(jié)果。綜合應(yīng)用本文提出的優(yōu)化訓(xùn)練方法時(shí),YOLOv3模型的三個(gè)不同尺度的檢測(cè)結(jié)果都有一定程度的提升,當(dāng)驗(yàn)證圖片尺度為544時(shí),提升率為2.5%。當(dāng)驗(yàn)證圖片尺度為416時(shí),提升率為3.5%。當(dāng)驗(yàn)證圖片尺度為352時(shí),提升率高達(dá)3.9%,表明應(yīng)用這些方法能更好地提升較小尺度圖片的檢測(cè)效果。將三種優(yōu)化訓(xùn)練方法綜合應(yīng)用于Faster R-CNN模型,選用特征提取網(wǎng)絡(luò)為ResNet50時(shí),mAP有0.5%的提升;選用網(wǎng)絡(luò)為ResNet101,則提升程度可以達(dá)到0.9%。
對(duì)比實(shí)驗(yàn)結(jié)果表明,本文提出的優(yōu)化訓(xùn)練方法也可以高效地適用于ΜS COCO數(shù)據(jù)集,從而證明這些方法有很好的泛化能力。
表3 ΜS COCO實(shí)驗(yàn)結(jié)果,%Tab.3 Experimental results of ΜS COCO
本文在YOLOv3和Faster R-CNN的網(wǎng)絡(luò)模型訓(xùn)練中應(yīng)用了數(shù)據(jù)增強(qiáng)、類標(biāo)簽平滑、學(xué)習(xí)率優(yōu)化和隨機(jī)圖片尺寸訓(xùn)練四種優(yōu)化訓(xùn)練方法,通過實(shí)驗(yàn)證明這些方法能夠不同程度地提升這兩種模型的目標(biāo)檢測(cè)準(zhǔn)確率。同時(shí),其良好的泛化性也表明這些方法在一定程度上也能夠適用于其他的檢測(cè)網(wǎng)絡(luò)模型。而且所提出的這些方法并沒有對(duì)檢測(cè)模型網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計(jì)做出任何改變,因此不會(huì)給模型帶來推理階段的額外消耗。