王建林,付雪松,黃展超,郭永奇,王汝童,趙利強
(北京化工大學 信息科學與技術學院,北京 100029)
高端制造業(yè)及大型裝備研制的快速發(fā)展,迫切需求對大型構(gòu)件三維幾何參量實現(xiàn)高精度測量。在大型構(gòu)件三維幾何參量精密測量中,由于被測目標結(jié)構(gòu)復雜、測量環(huán)境變化等因素,現(xiàn)有的測量儀對合作目標的檢測精度較低。目標視覺檢測具有較高的檢測精度,可同時檢測多種類型目標,充分利用視覺檢測的優(yōu)點,準確檢測多類型合作目標,能有效地提高大型構(gòu)件三維幾何參量精密測量的精度。
現(xiàn)有目標視覺檢測方法主要有:基于人工設計特征的視覺檢測方法和基于卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,CNN)的視覺檢測方法[1]。
基于人工設計特征的目標視覺檢測方法利用被測目標圖像的人工設計特征訓練分類器,通過分類器對滑動窗口圖像區(qū)域的人工設計特征進行目標分類和目標定位。Felzenszwalb等[2]提出了將目標檢測分解為多個部件檢測的思想,設計了一種可變形部件模型(Deformable Parts Models,DPM)目標檢測框架,將方向梯度直方圖(Histogram of Oriented Gradient, HOG)特征與支持向量機(Support Vector Machine, SVM)分類方法緊密結(jié)合并應用于目標檢測,顯著地提高了目標檢測精度與效率。在合作目標檢測應用中,李新德等[3]通過融合Hu矩、歸一化轉(zhuǎn)動慣量、仿射不變矩等多種特征檢測目標,提高了合作目標檢測精度;初廣麗等[4]通過直線和圓等幾何特征檢測航天器合作目標,具有對噪聲、光照和旋轉(zhuǎn)變化等復雜場景不敏感的優(yōu)點;羅志偉等[5]采用高斯混合模型并結(jié)合圓度特征對BGA焊球進行缺陷檢測,獲得了較高的準確度和可靠性;王慧利等[6]利用邊緣-方向梯度直方圖特征檢測復雜背景下的艦船目標,具有邊緣特征魯棒性強、檢測精度高的優(yōu)點。然而,基于人工設計特征的目標視覺檢測方法采用滑動窗搜索目標效率較低,人工設計特征描述目標能力有限,不同人工設計特征適用的目標類型也不相同,難以滿足復雜環(huán)境下大型構(gòu)件三維幾何參量精密測量中多類型合作目標的檢測需求。
隨著數(shù)據(jù)資源的不斷豐富和圖形處理器性能的提升,深度卷積神經(jīng)網(wǎng)絡方法在目標檢測領域得到了應用。Girshick等[7]首次提出了R-CNN(Regions with CNN features)目標檢測方法,采用深度卷積神經(jīng)網(wǎng)絡提取目標特征,取得了較高的目標檢測精度。在此基礎上,F(xiàn)ast RCNN[8]、Faster R-CNN[9]方法相繼出現(xiàn),目標檢測精度和速度進一步提升;但是上述方法在檢測目標時仍然需要分階段進行候選區(qū)域生成和目標分類,檢測速度難以滿足實時性要求。Redmon等[10]基于回歸預測的思想提出了YOLO(You Only Look Once)目標檢測方法,實現(xiàn)了目標實時檢測,較大地提升了檢測速度,但是該方法對于圖像中的小尺寸目標檢測精度較低,定位誤差較大。Liu等[11]提出了一種單次多目標框檢測(Single Shot MultiBox Detector,SSD)方法,引入先驗候選框,在多尺度特征圖上進行目標檢測,目標檢測精度得到提高。Redmon和Farhadi[12]借鑒SSD方法的先驗候選框策略提出了YOLOv2方法,相較于YOLO方法,目標檢測精度和速度有了明顯提高,然而該方法的基礎網(wǎng)絡特征提取能力較弱,未充分利用圖像多尺度局部區(qū)域特征,制約了目標檢測精度的提高。隨后,DSSD[13]和YOLOv3[14]將基礎網(wǎng)絡改為特征提取能力更強的深度殘差網(wǎng)絡[15],提高了目標檢測精度,但是網(wǎng)絡層數(shù)過多導致檢測速度嚴重下降。Zhou等[16]提出的可變尺度檢測網(wǎng)絡(Scale-Transferrable Detection Network,STDN)方法采用密集連接網(wǎng)絡[17]對SSD進行改進,在有效提升檢測速度的同時保持了良好的檢測精度。Jeong等[18]提出了改進SSD目標檢測方法,但是現(xiàn)有研究中對于YOLO方法的改進仍然較少。
本文針對大型構(gòu)件三維精密測量中構(gòu)件結(jié)構(gòu)復雜、測量環(huán)境變化等導致的合作目標檢測精度低的問題,提出一種改進YOLOv2卷積神經(jīng)網(wǎng)絡的多類型合作目標檢測。利用WGAN-GP生成對抗網(wǎng)絡擴增合作目標圖像樣本數(shù)量,采用卷積層密集連接代替YOLOv2基礎網(wǎng)絡的逐層連接,引入空間金字塔池化匯聚圖像局部區(qū)域特征,構(gòu)建改進YOLOv2卷積神經(jīng)網(wǎng)絡的多類型合作目標檢測方法,實現(xiàn)多類型合作目標檢測。
在基于深度卷積神經(jīng)網(wǎng)絡方法的合作目標檢測應用中,難以獲得大量帶有標注的合作目標圖像樣本用于模型訓練,樣本數(shù)量少會導致模型的泛化能力弱,出現(xiàn)過擬合,降低目標檢測精度。為了解決合作目標圖像數(shù)量不足的問題,采用基于生成對抗網(wǎng)絡(Generative Adversarial Network,GAN)的WGAN-GP[19]方法擴增合作目標圖像樣本數(shù)量,使得目標檢測模型的泛化能力和魯棒性得到提高。
在GAN中,生成模型G和判別模型D之間的二元極小極大博弈表示為[20]:
Ez~pz(z)[log(1-D(G(z)))],
(1)
式中:E(·)表示期望;x為服從分布pdata(x)的真實訓練樣本;z為服從分布pz(z)的輸入生成器噪聲;pg(x)表示生成樣本的數(shù)據(jù)分布。
采用Wasserstein距離衡量兩個分布的相似程度,引入梯度懲罰加快模型收斂[19],目標函數(shù)為:
Ex~pg(x)[D(x)]-
λpenaltyEx~ppenalty[(‖xD(x)‖-1)2]},
(2)
式中:D∈1-Lipschitz,對于任意的x都有‖xD(x)‖≤1,xD(x)表示判別模型輸入對于輸出的梯度;設生成樣本分布中的點為xg,真實樣本分布中的點為xdata,xg和xdata連線上的點滿足分布ppenalty(x),λpenalty表示懲罰參數(shù)。
YOLOv2目標檢測方法劃分輸入圖像為S×S個網(wǎng)格,每個網(wǎng)格采用卷積神經(jīng)網(wǎng)絡預測K個邊界框的位置、邊界框包含目標屬于C種類型的條件概率Pr(Classi|Object)、目標的置信度Pr(Object)*IoU(Intersection over Union,IoU,表示預測框與真實框的交并比)。每個預測框的類別置信度為:
(3)
表征了目標真實邊框與目標預測邊框的重合程度和目標屬于每個類別的概率。YOLOv2卷積神經(jīng)網(wǎng)絡預測輸出層的維度為S×S×(K×(5+C))。
YOLOv2卷積神經(jīng)網(wǎng)絡基礎網(wǎng)絡提取特征的中間層采用卷積-下采樣的方式,梯度逐層反向傳播將越來越小,最終出現(xiàn)“梯度消失”,且YOLOv2偏重于融合不同層的全局特征,未充分利用多尺度局部區(qū)域特征,限制了YOLOv2目標檢測的精度。
針對YOLOv2基礎網(wǎng)絡特征提取能力弱以及反向傳播的“梯度消失”問題,采用改進的卷積層密集連接代替YOLOv2基礎網(wǎng)絡的逐層連接,增強YOLOv2基礎網(wǎng)絡特征提取能力和圖像特征信息流,提高目標檢測精度。
設卷積神經(jīng)網(wǎng)絡第l層的輸入為xl,卷積核權(quán)重為wl,偏置為bl,中間變量yl=xl-1*wl+bl,激活函數(shù)為f(·),損失函數(shù)為L(·);卷積層密集連接將前l(fā)-1層輸出的特征圖堆疊為 [x0,x1, …,xl-1]作為第l層的輸入,當卷積神經(jīng)網(wǎng)絡正向傳播時:
xl=f(wl*[x0,x1,…,xl-1]+bl).
(4)
當卷積神經(jīng)網(wǎng)絡反向傳播時,損失函數(shù)的梯度:
δl-1=δl*rot180(wl)⊙
(5)
其中:*表示卷積;rot180(·)表示對權(quán)重參數(shù)矩陣逆時針旋轉(zhuǎn)180°,⊙表示Hadamard積。
與YOLOv2的激活函數(shù)導數(shù)項f′(wl-1*xl-2+bl-1)相比,f′(wl-1*[x0,x1,…,xl-2]+bl-1)包含輸入特征圖x0以及之前各層的輸出特征;此連接方式將輸入特征傳入網(wǎng)絡的每一層,能夠充分利用輸入特征,并且網(wǎng)絡可以直接從損失函數(shù)計算梯度,減輕“梯度消失”現(xiàn)象,進而提高目標檢測精度。
由于網(wǎng)絡中過多添加密集連接將會影響目標檢測速度,因此將基礎網(wǎng)絡中包含豐富特征的最后一個卷積模塊的逐層連接改為密集連接;同時,由于密集連接模塊位于網(wǎng)絡的較深層,所提取的特征為深層抽象特征,所含信息較豐富,因此采用3×3卷積層提取特征,并采用1×1卷積減少特征圖數(shù)量,最終卷積層密集連接單元的非線性映射表示為BN- ReLU-Conv(3×3)-BN-ReLU-Conv(1×1)。
為了充分利用圖像局部區(qū)域特征,在YOLOv2中引入了改進的空間金字塔池化模塊,實現(xiàn)局部不同尺度區(qū)域的特征池化融合,并將不同卷積層的全局特征和同一卷積層不同尺度的局部特征有效融合,進而提高目標檢測精度。
圖1 改進的空間金字塔池化
改進的空間金字塔池化模塊如圖1所示。首先采用1×1卷積減少輸入特征圖數(shù)量,其次,對特征圖進行多尺度池化,用Spool×Spool表示池化窗口尺寸,Sfmap×Sfmap表示輸入特征圖尺寸,則:
(6)
取ni=1,2, 3,分別進行最大池化,每個尺度池化步長均為1,利用邊界填充(padding)以保持池化后的特征圖尺寸不變;最終得到3個尺寸為Sfmap×Sfmap×512的特征圖。
與He K等[21]提出的空間金字塔池化相比較,改進的空間金字塔池化將3個維度為Sfmap×Sfmap×512的特征圖池化后與輸入特征圖進行疊加,得到Sfmap×Sfmap×2 048維的特征圖作為輸出,此方式避免了原空間金字塔池化中各層特征圖變換為固定尺寸特征向量的局限性,匯聚了圖像局部區(qū)域特征,提高了目標檢測精度。
采用上述卷積層密集連接和空間金字塔池化改進YOLOv2,構(gòu)建改進YOLOv2卷積神經(jīng)網(wǎng)絡的多類型合作目標檢測方法。圖2為改進YOLOv2卷積神經(jīng)網(wǎng)絡多類型合作目標檢測模型。
結(jié)合新聞報道、學術研究以及裁判文書網(wǎng),筆者發(fā)現(xiàn)針對共享單車不法行為類型繁多,處罰方式各異??偨Y(jié)對共享單車的不法行為,筆者發(fā)現(xiàn)三種較為典型的不法行為:私藏共享單車、給共享單車上私鎖以及毀壞共享單車。相較于傳統(tǒng)犯罪,針對共享單車的犯罪屬于“新生事物”,因而理論界和司法界對于針對共享單車的刑法規(guī)制眾說紛紜,各執(zhí)一詞。以下,筆者將對這三種典型不法行為的刑事責任進行探討。
首先利用5個下采樣的層疊卷積-池化模塊提取目標的特征;然后采用包含由4個密集連接單元的密集連接模塊提取目標的抽象特征,密集連接模塊的每個卷積層輸出m幅堆疊的特征圖,密集連接模塊的第l層輸入m0+m×(l-1)幅堆疊的特征圖,其中m0為每個密集連接模塊輸入的特征圖通道數(shù);其后是3層的空間金字塔池化模塊,該模塊先采用1×1卷積減少輸入特征圖數(shù)量,然后匯聚多尺度局部區(qū)域特征,將輸入特征圖與多尺度池化特征圖疊加,得到Sfmap×Sfmap×2 048維的特征圖;最后為多尺度目標檢測模塊,根據(jù)空間金字塔池化模塊輸出的特征圖尺寸重構(gòu)密集連接模塊過渡層下采樣前的特征圖,使二者尺寸相同并疊加,采用1×1×(K×(5+C))的卷積核對疊加后的特征圖進行卷積,得到S×S×(K×(5+C))特征圖并進行目標檢測。
改進YOLOv2卷積神經(jīng)網(wǎng)絡多類型合作目標檢測方法最終輸出的預測框可表示為:
b=[bx,by,bw,bh,bc]T,
(7)
其中:(bx,by)為預測框中心點坐標;bw和bh分別為預測框的寬和高;bc表示置信度;bx,by中相對網(wǎng)格左上角的偏移量tx,ty和bc采用Sigmoid函數(shù)約束至[0,1]。
圖2 改進YOLOv2卷積神經(jīng)網(wǎng)絡多類型合作目標檢測模型
(8)
如圖3為改進YOLOv2卷積神經(jīng)網(wǎng)絡的多類型合作目標檢測方法的算法流程,包括訓練數(shù)據(jù)集構(gòu)建、目標檢測模型訓練以及目標檢測三個步驟。
首先,為了防止模型訓練過擬合,采用基于WGAN-GP的方法進行數(shù)據(jù)增強(Data Augmentation,DA),增加訓練樣本數(shù)量。根據(jù)訓練樣本的標注采用k-means聚類生成先驗候選框[12],聚類距離指標為訓練樣本各目標邊界框與聚類中心目標邊界框的交并比IoU,即:
(9)
其次,設置訓練參數(shù),加載卷積神經(jīng)網(wǎng)絡模型,構(gòu)建損失函數(shù),迭代更新模型權(quán)重參數(shù)使得損失函數(shù)收斂,獲得改進YOLOv2卷積神經(jīng)網(wǎng)絡多類型合作目標檢測模型。
最后,輸入測試樣本,加載已訓練的改進YOLOv2卷積神經(jīng)網(wǎng)絡多類型合作目標檢測模型進行多類型合作目標檢測。
多類型合作目標檢測算法步驟如下:
步驟1: 將輸入圖像劃分為S×S個網(wǎng)格,每個網(wǎng)格根據(jù)先驗邊界框生成K個邊界框;
步驟2: 采用改進YOLOv2卷積神經(jīng)網(wǎng)絡提取特征,通過回歸預測邊界框b=[bx,by,bw,bh,bc]T以及分類概率Class=[Class1,Class2,…,CalssC]T;
步驟3:選取具有最大置信度的邊界框,判斷其置信度與閾值的關系;若置信度大于閾值,則認為此邊界框中包含目標,得到邊界框的中心點坐標和尺寸參數(shù),否則認為該邊界框不包含目標;
步驟4: 選取包含目標的邊界框預測概率最大的類型作為預測目標類型;
步驟5: 采用非極大值抑制方法進行局部最大搜索,抑制冗余邊框,輸出并顯示目標檢測結(jié)果。
圖3 改進YOLOv2卷積神經(jīng)網(wǎng)絡的多類型合作目標檢測算法流程
實驗系統(tǒng)計算機配置為Intel(R) Xeon(R) E5-2643 3.3 GHz CPU,32.00 GB內(nèi)存,Navida GTX 1080Ti GPU,11.00 GB GPU顯存,Windows10系統(tǒng)Visual Studio 2017平臺,所使用的深度學習框架為Darknet,采用C/C++語言編程實現(xiàn)。實驗系統(tǒng)如圖4所示。
實驗結(jié)果采用平均精度(Average Precision, AP)、平均精度均值(mean Average Precision,mAP)、平均IoU和目標檢測速度作為性能評價指標,評價改進YOLOv2方法的目標檢測性能。AP表示網(wǎng)絡對每類目標檢測的平均精確度,計算方式為每類目標查準率-查全率曲線(Precision-Recall曲線)下方的面積,mAP為各類目標檢測的AP均值;平均IoU為全部預測框IoU的均值;目標檢測速度采用每秒傳輸幀數(shù)表示;Precision、Recall、AP、mAP和IoU可分別表示為:
precision=TP/(TP+FP),
(10)
recall=TP/(TP+FN),
(11)
(12)
(13)
IoU=TP/(TP+FP+FN),
(14)
其中:FN表示預測不是該類目標但實際是該類目標的目標數(shù)量;FP表示預測是該類目標但實際不是該類目標的目標數(shù)量;TP表示預測與實際均為該類目標的目標數(shù)量;precisionmax(r)表示最大的precision;m表示目標類別數(shù)量。
圖4 多類型合作目標檢測實驗系統(tǒng)
采用WGAN-GP方法擴增訓練集和驗證集各3 000幅圖像。原始訓練樣本圖像包含不同類型合作目標且圖像整體尺寸較大,導致生成高分辨率復雜環(huán)境多類型合作目標圖像較困難;因此,截取訓練圖像中已標注的目標邊界框子區(qū)域并提取區(qū)域中的目標類型,利用子區(qū)域和其中的目標類型訓練WGAN-GP模型生成對應類別的合作目標圖像。
如圖5(a)所示,用于訓練的平面反射片目標子區(qū)域圖像為26 850幅、球形角錐棱鏡目標子區(qū)域圖像為21 350幅,圖像尺寸均為128×128 pixel,其他設置與Gulrajani等[19]相同。圖5(b)所示為WGAN-GP生成的多類型合作目標圖像。將生成的合作目標圖像與原始圖像目標子區(qū)域疊加獲得合成圖像樣本,如圖5(c)所示。根據(jù)添加的合作目標類型以及隨機添加的目標子區(qū)域位置,生成合成圖像樣本的先驗標記信息,與原始訓練樣本一起構(gòu)建被測合作目標檢測訓練數(shù)據(jù)集。
圖5 基于WGAN-GP的數(shù)據(jù)增強結(jié)果
采用訓練數(shù)據(jù)集訓練YOLOv2目標檢測模型,表1為分別采用原始測試集中的真實目標和WAGN-GP增強數(shù)據(jù)集進行目標檢測實驗的結(jié)果。
表1YOLOv2檢測真實目標和WGAN-GP生成目標的結(jié)果
Tab.1 Detection results of real targets and WGAN-GP generated targets using YOLOv2 (%)
測試數(shù)據(jù)集AP-ReflectorAP-Spherical targetmAP平均IoU原始測試集78.2090.7084.4564.28WGAN-GP增強數(shù)據(jù)集77.0590.5683.8062.40
注:AP-Reflector表示平面反射片目標平均檢測精度,AP-Spherical target表示球形角錐棱鏡目標平均檢測精度。
由實驗結(jié)果可知,增強數(shù)據(jù)集的mAP為83.80%、平均IoU為62.40%,原始測試集的mAP為84.45%、平均IoU為64.28%,增強數(shù)據(jù)集的目標檢測精度和定位準確度與原始測試集相近;表明通過WGAN-GP數(shù)據(jù)增強方法可生成高質(zhì)量的多類型合作目標合成圖像,能夠較為真實地模擬多類型合作目標圖像;證明了基于WGAN-GP方法擴增訓練樣本的有效性和可行性。
分別采用原始合作目標訓練數(shù)據(jù)集和數(shù)據(jù)增強的合作目標訓練數(shù)據(jù)集訓練改進YOLOv2卷積神經(jīng)網(wǎng)絡多類型合作目標檢測模型,并同時訓練YOLOv2目標檢測模型作為對照組;利用原始合作目標訓練數(shù)據(jù)集訓練的改進YOLOv2目標檢測模型表示為改進YOLOv2,利用數(shù)據(jù)增強的合作目標訓練數(shù)據(jù)集訓練的改進YOLOv2目標檢測模型表示為改進YOLOv2+DA,YOLOv2模型的表示方法與改進YOLOv2相同。
圖6、圖7為改進YOLOv2+DA方法的合作目標檢測結(jié)果;表2為在合作目標測試數(shù)據(jù)集上的目標檢測實驗的統(tǒng)計結(jié)果。
采用原始合作目標訓練集訓練,采用合作目標測試數(shù)據(jù)集測試,改進YOLOv2目標檢測模型的合作目標檢測mAP達到89.78%,相較于YOLOv2模型提高了5.33%,表明所提改進YOLOv2卷積神經(jīng)網(wǎng)絡的多類型合作目標檢測方法能夠顯著提高合作目標檢測精度;改進YOLOv2模型檢測的合作目標平均IoU為67.46%,相較于YOLOv2模型提高了3.18%,表明了改進YOLOv2模型對于合作目標的定位和尺寸預測比YOLOv2模型更加準確;合作目標檢測速度達到58.9 frame/s,仍然保持了較快的檢測速度。
圖6 實驗室環(huán)境下的合作目標檢測結(jié)果
圖7 自然環(huán)境下的合作目標檢測結(jié)果
采用數(shù)據(jù)增強的合作目標訓練集訓練,采用合作目標測試數(shù)據(jù)集測試,改進YOLOv2+DA目標檢測模型的合作目標檢測mAP達到90.48%,相較于改進YOLOv2目標檢測模型提高了0.7%;改進YOLOv2+DA目標檢測模型檢測的合作目標平均IoU達到70.89%,相較于改進YOLOv2目標檢測模型提高了3.43%;表明采用WGAN-GP方法擴增樣本訓練合作目標檢測模型,能夠有效提高合作目標檢測精度。
綜合比較分析YOLOv2、YOLOv2+DA、改進YOLOv2和改進YOLOv2+DA目標檢測模型的合作目標檢測結(jié)果:改進YOLOv2+DA目標檢測模型的目標檢測mAP相較于以上三種模型分別提高了5.89%、4.24%和0.7%,表明了采用卷積層密集連接和空間金字塔池化改進YOLOv2方法的有效性,以及基于WGAN-GP的數(shù)據(jù)增強對于提高合作目標檢測精度的可行性。同時,基于改進YOLOv2和數(shù)據(jù)增強的合作目標檢測仍然保持58.7 frame/s的較快目標檢測速度,能夠?qū)崿F(xiàn)多類型合作目標的實時檢測。
由圖6和圖7可知,所提改進YOLOv2卷積神經(jīng)網(wǎng)絡的多類型合作目標檢測方法能夠?qū)崿F(xiàn)多類型合作目標的高精度檢測,對于環(huán)境變化具有較好的魯棒性,適用場景較廣。
表2 改進YOLOv2和YOLOv2的合作目標檢測結(jié)果比較
Tab.2 Comparison of cooperation target detection results between Improved YOLOv2 and YOLOv2
目標檢測模型AP-Reflector/%AP-Spherical target/%mAP/%平均IoU/%速度 /(frame/s)YOLOv278.2090.7084.4564.2861.3YOLOv2+DA81.9590.5386.2464.3261.2改進YOLOv289.2190.3489.7867.4658.9改進YOLOv2+DA90.4590.5090.4870.8958.7
本文采用卷積層密集連接代替YOLOv2基礎網(wǎng)絡的逐層連接,引入空間金字塔池化,建立了改進的YOLOv2,在此基礎上,提出了一種改進YOLOv2卷積神經(jīng)網(wǎng)絡的多類型合作目標檢測方法,有效地增強了目標圖像特征信息流,提高了目標圖像局部區(qū)域特征利用率,具有較高的多類型目標檢測精度和速度。實驗結(jié)果表明:采用WGAN-GP擴增圖像數(shù)據(jù)樣本具有可行性和有效性,采用YOLOv2檢測擴增圖像的mAP達到83.80%;采用數(shù)據(jù)增強樣本訓練改進YOLOv2合作目標檢測模型,能夠使合作目標檢測的mAP提高了0.7%;增強數(shù)據(jù)集訓練的改進YOLOv2合作目標檢測模型檢測多類型合作目標的mAP達到90.48%,檢測速度達到58.7 frame/s;所提方法能夠準確地檢測多類型合作目標,滿足大型構(gòu)件三維測量中多類型合作目標的檢測要求。