李程啟,鄭文杰,黃文禮,溫招洋
(1.國網(wǎng)山東省電力公司電力科學(xué)研究院,山東 濟(jì)南 250000; 2.安徽南瑞繼遠(yuǎn)電網(wǎng)技術(shù)有限公司,安徽 合肥 230069)
卷積神經(jīng)網(wǎng)絡(luò)[1]將計(jì)算機(jī)視覺學(xué)習(xí)推向了高潮,在許多領(lǐng)域都取得了矚目的成就。比如目標(biāo)檢測(cè)、語義分割、人臉識(shí)別、強(qiáng)化學(xué)習(xí)等。在過去幾年,涌現(xiàn)出一系列優(yōu)秀的目標(biāo)檢測(cè)模型(SPP-Net[2]、YOLO[3]、R-CNN[4]等),計(jì)算機(jī)視覺方面的目標(biāo)檢測(cè)發(fā)展速度很快,算法已經(jīng)成熟,檢測(cè)的精度也越來越高。隨著社會(huì)經(jīng)濟(jì)的發(fā)展,人們的生活質(zhì)量不斷的提高,愿意工作在一線的工人越來越少。然而在企業(yè)當(dāng)中,缺陷檢測(cè)[5]是設(shè)備維護(hù)當(dāng)中一個(gè)不可或缺的任務(wù),需要大量的勞動(dòng)力,因?yàn)槿毕輽z測(cè)任務(wù)量大,分布性廣,因此需要大量的人力資源,但是由于缺陷識(shí)別機(jī)械性強(qiáng),枯燥性大,越來越少的工人愿意從事這一工作。將深度學(xué)習(xí)中的目標(biāo)檢測(cè)技術(shù)應(yīng)用到企業(yè)的實(shí)際生產(chǎn)當(dāng)中已經(jīng)迫在眉睫。
缺陷識(shí)別技術(shù)應(yīng)用起來并不困難,并且有廣闊的應(yīng)用前景,將需要識(shí)別的缺陷圖像分批送入網(wǎng)絡(luò)進(jìn)行訓(xùn)練,當(dāng)訓(xùn)練損失或者在驗(yàn)證集上的精度滿足要求后即可停止訓(xùn)練,此時(shí)模型即可用于檢測(cè)。但是在檢測(cè)模型上線運(yùn)行后往往會(huì)出現(xiàn)有些目標(biāo)因前期訓(xùn)練數(shù)據(jù)較少而出現(xiàn)漏檢率較高的情形[5]。因?yàn)樵谝恍O端情況下數(shù)據(jù)收集難度非常地大,出現(xiàn)率低,但卻是實(shí)際應(yīng)用當(dāng)中需要的并需要解決,如數(shù)據(jù)量較少的斜視目標(biāo)檢測(cè)。
通過對(duì)數(shù)據(jù)集做不同角度的透視變換,來模擬實(shí)際應(yīng)用場(chǎng)景中的斜視目標(biāo)能夠很好地解決斜視目標(biāo)識(shí)別問題。本文主要考慮訓(xùn)練集中斜視樣本較少的情況下如何顯著提高斜視目標(biāo)的檢測(cè)精度,以此來提高整體的檢測(cè)精度。提高檢測(cè)精度往往會(huì)采用數(shù)據(jù)增強(qiáng)的方法,本文通過對(duì)比各種數(shù)據(jù)增強(qiáng)方法,驗(yàn)證基于透視變換的數(shù)據(jù)增強(qiáng)模型訓(xùn)練方法對(duì)于提高含有斜視目標(biāo)訓(xùn)練集檢測(cè)精度的優(yōu)越性。
圖像增強(qiáng)[6]操作是在1998年提出的,然后在Chapelle等人[7]于2000年提出的Vicinal Risk Minimization(VRM)準(zhǔn)則中被正式標(biāo)準(zhǔn)化。常用的圖像增強(qiáng)手段包括圖片翻轉(zhuǎn)[8]、圖片尺寸縮放[9]、圖片裁剪[10]、圖片旋轉(zhuǎn)等。
斜視目標(biāo)是指監(jiān)控設(shè)備安裝位置受限時(shí),或者采集樣本過程中由于攝像頭沒有正對(duì)著要檢測(cè)的目標(biāo),或目標(biāo)沒有正對(duì)著攝像頭,使得目標(biāo)在一定程度上發(fā)生畸變,而形成的樣本圖片,如圖1所示。一般的數(shù)據(jù)增強(qiáng)方式都能在一定程度上提高模型的泛化能力,提高檢測(cè)精度,但是對(duì)于應(yīng)用當(dāng)中出現(xiàn)的斜視目標(biāo),上述數(shù)據(jù)增強(qiáng)方式并不能準(zhǔn)確有效地模擬這種場(chǎng)景,因此本文提出用透視變換來模擬實(shí)際應(yīng)用中的斜視目標(biāo)問題,實(shí)驗(yàn)結(jié)果顯示,透視變換能夠很好地解決斜視目標(biāo)識(shí)別問題。
圖1 斜視目標(biāo)實(shí)例圖片
透視投影[11],就是在坐標(biāo)空間中,將圖片通過透視性質(zhì)從視圖空間到目標(biāo)空間的變換,如圖2所示。
想象將點(diǎn)E當(dāng)做視點(diǎn),把P′平面看作視平面,通過點(diǎn)E從P′看向物體,此時(shí)P′平面就是近截面,P為遠(yuǎn)截面,P與P′之間的棱臺(tái)區(qū)域?yàn)榭梢晠^(qū)域。觀察者的視線穿過P′平面投影到P平面,就可以形成物體的透視圖。
圖2 透視投影的標(biāo)準(zhǔn)模型
將點(diǎn)E看作視點(diǎn),看向P′平面上的矩形,視線經(jīng)過P′平面到達(dá)P平面時(shí),由于視點(diǎn)與P′平面有一定的夾角,矩形發(fā)生透視畸變,投影成為新的矩形,如圖3所示。
圖3 透視變換示意圖
以矩形區(qū)域的4個(gè)角點(diǎn)為例,經(jīng)過透視變換后A′→A,B′→B,C′→C,D′→D,矩形的形狀發(fā)生改變。透視投影實(shí)質(zhì)上就是P′平面上的每一點(diǎn)在視角的作用下投影到P平面的過程。若將P平面定義為物體的正視圖平面,那么透視變換就是透視投影平面上的每一個(gè)像素點(diǎn)變換到正視圖上對(duì)應(yīng)的像素點(diǎn)的過程。為了實(shí)現(xiàn)透視畸變的校正,只需要找到P平面上的點(diǎn)和物體正視圖上對(duì)應(yīng)點(diǎn)的變換公式。
二維圖像透視變化公式[12]如下所示:
(1)
(2)
其中,(x,y)是投影圖像的坐標(biāo),(u,v)是正視圖上的坐標(biāo)。(a,b,c,d,e,f,g,h)是畸變參數(shù)。
本文采用透視變換方法對(duì)非斜視目標(biāo)使用透視變換來模擬斜視目標(biāo)可能出現(xiàn)的場(chǎng)景。透視變換實(shí)例如圖4所示,圖中第一行是原圖,第二行是透視變換之后的圖片,方框部分為要檢測(cè)的物體,分別為油杯、鳥巢、表盤破損。
圖4 透視變換實(shí)例
Faster RCNN框架是目前較為成熟且被廣泛使用的一種目標(biāo)檢測(cè)框架。其前身為RCNN和Fast RCNN,F(xiàn)aster RCNN在它們的基礎(chǔ)上實(shí)現(xiàn)了圖片特征信息的復(fù)用,且拋棄了傳統(tǒng)的滑動(dòng)窗口和SS[13](Select Search)方法,而是使用RPN網(wǎng)絡(luò)(Region Proposal Network)生成檢測(cè)框,然后對(duì)檢測(cè)框進(jìn)行統(tǒng)一的池化,使得Faster RCNN訓(xùn)練時(shí)間減少??蚣芮岸耸且粋€(gè)特征提取網(wǎng)絡(luò),常用的有VGG系列網(wǎng)絡(luò)和ResNet系列網(wǎng)絡(luò),后者出現(xiàn)的時(shí)間更晚,有著更好的性能,但在本文中僅針對(duì)ResNet101網(wǎng)絡(luò)進(jìn)行說明,沒有對(duì)Faster RCNN的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行修改,在模型訓(xùn)練時(shí),加入了根據(jù)原始數(shù)據(jù)集利用透視變換算法得到的數(shù)據(jù),使得訓(xùn)練出來的模型能夠?qū)π币暷繕?biāo)有更好的檢測(cè)精度。Faster RCNN網(wǎng)絡(luò)架構(gòu)如圖5所示。
圖5 基于透視變換的Faster RCNN網(wǎng)絡(luò)框架
2015年He等人[14]提出ResNet網(wǎng)絡(luò),在ResNet之前最深的網(wǎng)絡(luò)只有19層。在ResNet網(wǎng)絡(luò)出現(xiàn)以前,如果加深卷積層的深度會(huì)導(dǎo)致訓(xùn)練集準(zhǔn)確率出現(xiàn)下降的現(xiàn)象,由于在訓(xùn)練集上出現(xiàn)下降,可以肯定這不是因?yàn)镺verfit[15]過擬合造成的,因?yàn)檫^擬合在訓(xùn)練集上精度很高,但是在測(cè)試集上精度較低,很明顯不是這種情況。而作者提出了一種能夠加深卷積層的深度并且提高檢測(cè)精度的網(wǎng)絡(luò)模型,叫深度殘差網(wǎng)絡(luò)。深度殘差網(wǎng)絡(luò)最深可以達(dá)到1000層,并且不會(huì)出現(xiàn)過擬合的現(xiàn)象。
ResNet網(wǎng)絡(luò)由殘差學(xué)習(xí)單元和基本的卷積核組成。為了減少網(wǎng)絡(luò)的計(jì)算量,作者在每一個(gè)殘差模塊之上都使用了一個(gè)1×1的卷積核,來減少輸出卷積層的維度。為了更加公平地在各種算法之間比較基于透視變換數(shù)據(jù)增廣模型訓(xùn)練的檢測(cè)性能,如果不做特別說明,使用的檢測(cè)算法中都是以ResNet101作為骨干網(wǎng)絡(luò)。因?yàn)镽esNet101能夠很好地從圖片中提取特征,并且不增加系統(tǒng)的計(jì)算量。ResNet中一個(gè)單元結(jié)構(gòu)如圖6所示。
圖6 基于透視變換的ResNet單元結(jié)構(gòu)
實(shí)驗(yàn)是在Ubuntu16.04系統(tǒng)上進(jìn)行的,使用1個(gè)GTX 1080ti顯卡,主機(jī)的運(yùn)行內(nèi)存為32 GB,實(shí)現(xiàn)代碼是基于Tensorflow深度學(xué)習(xí)框架。
本文使用經(jīng)典的PASCAL VOC2007數(shù)據(jù)集[16]作為訓(xùn)練和測(cè)試數(shù)據(jù)集(以下簡(jiǎn)稱VOC2007)。VOC2007包括5011幅的訓(xùn)練集和4952幅的測(cè)試集,共計(jì)9963幅圖片,訓(xùn)練集和測(cè)試集當(dāng)中都包括20個(gè)種類。為了體現(xiàn)斜視目標(biāo)的檢測(cè)精度,本文對(duì)9963幅圖片的數(shù)據(jù)集進(jìn)行了透視變換,來模擬實(shí)際應(yīng)用中的斜視目標(biāo)場(chǎng)景。表1列舉了目標(biāo)檢測(cè)領(lǐng)域的基準(zhǔn)數(shù)據(jù)集。
表1 目標(biāo)檢測(cè)基準(zhǔn)數(shù)據(jù)集
由于卷積神經(jīng)網(wǎng)絡(luò)需要連接全連接層,要求所有圖片的特征圖具有相同的尺寸,因此在訓(xùn)練時(shí)對(duì)圖片進(jìn)行了統(tǒng)一的縮放處理,其中圖片最短邊為600像素,最長(zhǎng)邊為1000像素。雖然使用圖像金字塔能夠提高模型的準(zhǔn)確率,但是由于過度的系統(tǒng)開銷放棄了這種方案。在實(shí)驗(yàn)中,學(xué)習(xí)率設(shè)為0.001。
在anchor的使用上,提供3種面積的anchor:128×128、256×256和512×512,其中每個(gè)anchor分別使用1:1、1:2、2:1這3種長(zhǎng)寬比例。由于Faster RCNN在一幅圖片上有17100個(gè)anchor,經(jīng)過非極大值抑制和IoU過濾,最終每幅圖片只選取256個(gè)anchor。在使用IoU時(shí),本文規(guī)定anchor和標(biāo)注區(qū)域重疊面積大于0.7的認(rèn)為是目標(biāo)區(qū)域,重疊面積低于0.3的認(rèn)為是非目標(biāo)區(qū)域,對(duì)于重疊面積介于0.3和0.7之間的anchor舍棄掉不參與訓(xùn)練。另外在訓(xùn)練中對(duì)參與訓(xùn)練的圖片不再使用翻轉(zhuǎn)操作,因?yàn)閰⑴c比較的數(shù)據(jù)增強(qiáng)方式中存在圖像翻轉(zhuǎn)類型。
訓(xùn)練使用的是經(jīng)典的ResNet101作為骨干網(wǎng)絡(luò)。根據(jù)官方提供的在ImageNet數(shù)據(jù)集上的預(yù)訓(xùn)練模型,已經(jīng)提供了其中的卷積層參數(shù),通過使用預(yù)訓(xùn)練模型可以讓所有參數(shù)都不隨機(jī)初始化,這樣能夠加快模型訓(xùn)練速度,這是常用的方法。
由于本文使用的是PASCAL VOC2007數(shù)據(jù)集,所有類型的數(shù)據(jù)增廣都是進(jìn)行了70000次迭代訓(xùn)練,為了公平,每一類數(shù)據(jù)增廣方式中都選取最好的模型參與比較。
本文在其他經(jīng)典檢測(cè)算法上對(duì)透視變換的效果進(jìn)行驗(yàn)證,選用了流行的兩階段算法代表Faster RCNN和R-FCN,以及單階段算法代表YOLOv3和SSD進(jìn)行測(cè)試。
首先討論透視變換增強(qiáng)對(duì)于其他基于Faster RCNN的算法的效果。如表2所示,從檢測(cè)結(jié)果可以看出,透視變換對(duì)于其他基于Faster RCNN的檢測(cè)方法,也能顯著提高斜視目標(biāo)的精確度。這也從另一方面驗(yàn)證了透視變換對(duì)于斜視目標(biāo)檢測(cè)能夠提高精度。其中AP0.5表示在訓(xùn)練和測(cè)試中使用的閾值。AP0.5是指當(dāng)檢測(cè)框與標(biāo)注框重疊的交并比超過0.5即認(rèn)為檢測(cè)到目標(biāo)時(shí)的平均精度,下文當(dāng)中AP0.6、AP0.7、AP0.75和AP0.5的意義相同。
表2 基于透視變換的Faster RCNN變種模型的檢測(cè)結(jié)果 單位:%
本文引用了文獻(xiàn)[19]的檢測(cè)結(jié)果,R-FCN在最后一個(gè)卷積的后面,添加了一個(gè)1×1的卷積來生成k2(C+1)個(gè)通道的位置敏感的特征圖和k2(C+1)個(gè)通道的回歸特征圖,通過這種改變,與Faster RCNN相比精度有一點(diǎn)點(diǎn)的提高。本文對(duì)R-FCN中的數(shù)據(jù)進(jìn)行了透視變換的數(shù)據(jù)增強(qiáng),結(jié)果如表3所示。在R-FCN網(wǎng)絡(luò)當(dāng)中,對(duì)于訓(xùn)練時(shí)的前向傳播,每幅圖片選用2000/300個(gè)感興趣區(qū)域參與網(wǎng)絡(luò)的訓(xùn)練,在測(cè)試時(shí)每幅圖片選用300個(gè)感興趣區(qū)域參加測(cè)試。
表3 基于透視變換數(shù)據(jù)增廣的R-FCN在PASCAL VOC2007上的測(cè)試結(jié)果
Faster RCNN和R-FCN都是經(jīng)典的兩階段的算法,為了驗(yàn)證透視變換對(duì)斜視目標(biāo)檢測(cè)的魯棒性,本文在經(jīng)典的單階段算法YOLOv3上進(jìn)行了測(cè)試。YOLOv3[12]在特征圖上對(duì)每個(gè)位置進(jìn)行包圍框的預(yù)測(cè),最大不同是YOLOv3提供了3種尺度的特征圖,分別是23×23、46×46、92×92,對(duì)于特征圖運(yùn)用了上采樣,這樣能提供更多的語義信息和細(xì)粒度的特征,類似特征金字塔方案(FPN[13])。
本文在YOLOv3上使用COCO2014[20]數(shù)據(jù)集進(jìn)行訓(xùn)練和測(cè)試,對(duì)COCO2014的測(cè)試集進(jìn)行了透視變換。從表4可以看出,運(yùn)用透視變換之后,YOLO的檢測(cè)效果有1~2個(gè)點(diǎn)的提升,需要知道的是,在COCO2014數(shù)據(jù)集上提高精度是很困難的事情。為了充分驗(yàn)證斜視目標(biāo)對(duì)檢測(cè)效果的影響,本文對(duì)測(cè)試集進(jìn)行了不同角度的斜視角度變換,圖7的實(shí)驗(yàn)結(jié)果顯示,當(dāng)斜視的角度變得越來越大時(shí),原始的YOLOv3檢測(cè)精度下降明顯,而基于透視變換數(shù)據(jù)增廣的YOLOv3效果好于原始的YOLOv3。
圖7 不同斜視角度的目標(biāo)檢測(cè)精度
表4 基于透視變換數(shù)據(jù)增廣的YOLOv2/3在COCO2014上的測(cè)試結(jié)果 單位:%
在目標(biāo)檢測(cè)領(lǐng)域,另外一種應(yīng)用廣泛的單階段檢測(cè)方法是SSD算法,SSD算法使用了6種不同尺寸的特征圖來預(yù)測(cè)不同大小的目標(biāo),具有較好的檢測(cè)效果。本文也對(duì)SSD算法進(jìn)行了測(cè)試,結(jié)果如表5所示,在SSD算法上,透視變換也有明顯的效果提升。
表5 基于透視變換數(shù)據(jù)增廣的SSD513在COCO2014上的測(cè)試結(jié)果 單位:%
本文在基準(zhǔn)PASCAL VOC2007數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)。圖8顯示了Faster RCNN在VOC2007上的檢測(cè)效果,對(duì)測(cè)試集進(jìn)行了±10°的變換。表6顯示了在各種變化之下數(shù)據(jù)集的檢測(cè)效果。需要注意的是,因?yàn)楸疚谋容^的是各種數(shù)據(jù)變換方法對(duì)斜視目標(biāo)的模擬能力,因此在訓(xùn)練集和測(cè)試集當(dāng)中,只加入了變換后的圖片,并沒有使用原圖。因此表6的實(shí)驗(yàn)結(jié)果中,對(duì)所有的原始數(shù)據(jù)都進(jìn)行了變換,也就是訓(xùn)練集和測(cè)試集當(dāng)中沒有任何的原圖。
圖8 基于透視變換數(shù)據(jù)增廣的Faster RCNN模型檢測(cè)結(jié)果
表6 基于Faster RCNN的不同數(shù)據(jù)變換類型在PASCAL VOC2007上的性能對(duì)比(對(duì)整個(gè)數(shù)據(jù)集進(jìn)行變換)
表6的實(shí)驗(yàn)結(jié)果顯示,在AP0.5的情況下,使用透視變換比其他類型的變換最好的檢測(cè)結(jié)果要高4個(gè)百分點(diǎn),在AP0.6時(shí)高8個(gè)百分點(diǎn),在AP0.7時(shí)高5個(gè)百分點(diǎn)。實(shí)驗(yàn)結(jié)果表明透視變換在斜視目標(biāo)檢測(cè)時(shí)優(yōu)于其他種類的數(shù)據(jù)變換。檢測(cè)結(jié)果加粗的部分為實(shí)驗(yàn)中最好的檢測(cè)精度。為了充分驗(yàn)證斜視目標(biāo)對(duì)檢測(cè)效果的影響,本文對(duì)測(cè)試集進(jìn)行了不同角度的斜視角度變換,實(shí)驗(yàn)顯示,基于透視變換數(shù)據(jù)增廣的Faster RCNN效果好于原始的Faster RCNN。
為了充分驗(yàn)證透視變換對(duì)斜視目標(biāo)場(chǎng)景的模擬,在表7中對(duì)表6的實(shí)驗(yàn)數(shù)據(jù)進(jìn)行了一點(diǎn)改變。隨機(jī)在PASCAL VOC2007數(shù)據(jù)集的訓(xùn)練集上對(duì)各個(gè)類別數(shù)據(jù)的30%進(jìn)行了變換,測(cè)試集都進(jìn)行了透視變換。實(shí)驗(yàn)結(jié)果顯示,由于30%的變換率使得對(duì)斜視目標(biāo)場(chǎng)景模擬不夠充分,透視變換在檢測(cè)結(jié)果上相比其他類型的數(shù)據(jù)變換并沒有明顯的提升。實(shí)驗(yàn)結(jié)果顯示透視變換相對(duì)于其他最好的變換模型只有1~2個(gè)百分點(diǎn)的提升。雖然檢測(cè)提升效果較小,但是也從側(cè)面反映了透視變換對(duì)斜視目標(biāo)的模擬能力。
表7 基于Faster RCNN的不同數(shù)據(jù)變換類型在PASCAL VOC2007上的性能對(duì)比(隨機(jī)對(duì)數(shù)據(jù)集的30%進(jìn)行變換)
在分析了不同IoU標(biāo)準(zhǔn)下的檢測(cè)結(jié)果后,本文對(duì)不同尺度物體的檢測(cè)精度進(jìn)行了分析,如表8所示。選用的IoU為0.5,目標(biāo)的標(biāo)注面積小于322為小目標(biāo),用APs來表示;目標(biāo)的標(biāo)注面積介于322和962之間的稱為中等目標(biāo),用APm來表示;目標(biāo)的標(biāo)注面積大于962的稱為大目標(biāo),用APl來表示。其中數(shù)據(jù)集的變換采用表6的方法。實(shí)驗(yàn)結(jié)果顯示,在各種目標(biāo)尺度下,透視變換也是顯著優(yōu)于其他種類的數(shù)據(jù)變換,尤其是對(duì)中等目標(biāo),透視變換在實(shí)驗(yàn)中顯示了更加優(yōu)越的結(jié)果。
表8 基于Faster RCNN的不同數(shù)據(jù)變換類型在PASCAL VOC2007上的性能對(duì)比(APs、APm、APl分別表示小目標(biāo)、中等目標(biāo)、大目標(biāo))
斜視目標(biāo)的識(shí)別不是學(xué)術(shù)領(lǐng)域研究的重點(diǎn)對(duì)象,但卻是工業(yè)應(yīng)用中面臨的重大難題。實(shí)現(xiàn)高正確性、高精度和快速高效的透視變換是企業(yè)的需求。
本文通過研究數(shù)據(jù)增強(qiáng)的幾種方法,提出了基于透視變換數(shù)據(jù)增強(qiáng)的模型訓(xùn)練方法來解決檢測(cè)率不高的問題,運(yùn)用透視變換來模擬實(shí)際檢測(cè)中的斜視目標(biāo)。通過在主流的算法上進(jìn)行測(cè)試,實(shí)驗(yàn)驗(yàn)證了透視變換是一種很好的方法,能夠在不對(duì)復(fù)雜的檢測(cè)算法進(jìn)行修改的情況下,顯著提高斜視目標(biāo)的檢測(cè)精度。
透視變換只是應(yīng)對(duì)斜視目標(biāo)漏檢誤檢的權(quán)宜之計(jì),可以運(yùn)用在各種檢測(cè)場(chǎng)景當(dāng)中,因?yàn)樵趯?shí)際運(yùn)用中攝像機(jī)的位置、物體的移動(dòng)都會(huì)造成斜視樣本的生成。透視變換只是一種數(shù)據(jù)增強(qiáng)技術(shù),想要對(duì)斜視目標(biāo)識(shí)別進(jìn)行突破,還需要從理論上、檢測(cè)算法層面對(duì)網(wǎng)絡(luò)進(jìn)行設(shè)計(jì),相信這將是企業(yè)未來的主要研究方向。