王憲保,朱嘯詠,姚明海
(浙江工業(yè)大學 信息工程學院,杭州 310023)
在濾袋的智能生產(chǎn)中,需要對濾袋進行卡扣的自動化安裝,而實現(xiàn)這一過程的前提是獲得濾袋開口的準確位置及濾袋所屬的類別。伴隨著濾袋制造工藝的提升以及需求的多樣化,濾袋大小、紋理等變得更加豐富,這為濾袋開口檢測問題帶來了更為嚴峻的挑戰(zhàn)。
本文的濾袋開口檢測實際上是一種目標檢測,它是一種包含目標定位與目標分類任務(wù),使用圖像處理、機器學習等方法,在圖像中搜索感興趣對象的計算機視覺技術(shù)[1]。一般先通過目標分類判斷是否含有目標對象,再進行更細粒度的檢測,并將搜索到的目標通過方框進行標注[2]。
計算機視覺處理中,圖像一般以像素矩陣的形式存儲,對其進行類別以及位置信息的相關(guān)特征提取方可實現(xiàn)目標檢測[3]。傳統(tǒng)目標檢測算法在圖像經(jīng)過去噪、增強、裁剪等預處理之后,對圖像采用滑動窗口遍歷并生成候選區(qū)域,對每個候選區(qū)域采取特征提取,例如方向梯度直方圖(HOG,histogram of oriented gradients)[4],尺度不變特征變換(SIFT,scale invariant feature transform)[5],(DPM,deformablepartsmodel)[6]等,最后通過AdaBoost[7],(SVM,support vector machine)[8]等機器學習算法對目標進行分類,然后依據(jù)類別對目標進行邊框回歸。由于上述目標檢測模型對于不同的特征需要設(shè)計不同分類器,導致其泛用性差、魯棒性不足。
2012年之后,計算機視覺技術(shù)在深度學習的帶動下開始了迅猛的發(fā)展,以深度卷積神經(jīng)網(wǎng)絡(luò)為代表的方法替代了手工特征方法。在目標檢測領(lǐng)域,(Fast RCNN,fast region-based convolutional neural network)[9]和(Faster RCNN,faster region-based convolutional neural network)[10]為基于深度學習的目標檢測方法提供了新的方向。前者由于共享卷積操作降低了網(wǎng)絡(luò)整體的計算消耗,后者在前者基礎(chǔ)上融合全卷積網(wǎng)絡(luò)[11]的思想,提出通過區(qū)域提議網(wǎng)絡(luò)(RPN,region proposal networks)代替原先的Selective Search[12]以及Edge Boxes[13]算法。另一種基于回歸的思路由2016年Redmon等[14]提出的(YOLO,you only look once)算法啟發(fā),這類算法精度不及Faster RCNN這類基于候選區(qū)域方法,但其檢測速度卻是前者的10倍,后續(xù)又提出了(SSD,single shot multi-box detector)[15]、(RefineNet,refinement neural network)[16]、(YOLOv2,you only look once v2)[17]以及(YOLOv3,you only look once v3)[18]等。
本文將(Mask RCNN,mask region based convolutional neural network)[19]作為基本框架,并針對具體目標對象進行改進,建立了一種用于濾袋的有效檢測方法。本文的主要工作有:首先,針對固定卷積中感受野形狀固定,不能靈活地覆蓋目標對象,降低了特征提取效果這一問題,采用可變形卷積網(wǎng)絡(luò)(DCN,deformable convolutional networks)[20-21]改進固定卷積,通過引入額外的偏移來提升空間采樣能力。其次,提出一種改進的(Soft-NMS,soft non-maximum suppression)方法,對Mask RCNN的RPN網(wǎng)絡(luò)輸出增加一次篩選,提升候選區(qū)域的質(zhì)量,減少候選區(qū)域的數(shù)量。最后,利用本文提出的目標檢測器在濾袋數(shù)據(jù)集上進行實驗,結(jié)果證明可以有效檢測濾袋開口,相較于基準方法高了2.4個百分點。
本文的組織結(jié)構(gòu)如下:首先在第一節(jié)對基礎(chǔ)框架等技術(shù)進行介紹;第二節(jié)對本文提出的檢測器進行詳細介紹;第三節(jié)通過實驗,驗證了本文提出的檢測器在濾袋開口檢測中的有效性,并通過與基準檢測器的對比,展現(xiàn)了本文檢測器的性能優(yōu)勢;第四節(jié)對全文工作進行總結(jié)與展望。
Mask RCNN模型建立在Faster RCNN的基礎(chǔ)上,將Faster RCNN中(ROI Pooling,region of interest pooling)替換為(ROI Align,region of interest align),消除了二次量化的誤差,并在頭部網(wǎng)絡(luò)中增加掩碼分支用于實現(xiàn)實例分割,提升了對象的檢測精度。
1.1.1 網(wǎng)絡(luò)結(jié)構(gòu)
Mask RCNN的結(jié)構(gòu)如圖1所示。模型包含用于特征提取的主干網(wǎng)絡(luò)、候選區(qū)域生成的RPN、ROI Align以及頭部網(wǎng)絡(luò)。主干網(wǎng)絡(luò)的選擇主要有(VGG,visual geometry group)[22]、(ResNet,deep residual network)[23]等,其將一系列卷積進行堆疊,逐層提取圖像中的語義信息,形成特征映射圖。
圖1 Mask RCNN的網(wǎng)絡(luò)結(jié)構(gòu)[10]
1.1.2 RPN
RPN將任意大小的輸入圖像轉(zhuǎn)換為一組含有分數(shù)的矩形框作為regionproposals,并同后續(xù)網(wǎng)絡(luò)共享特征提取圖中的特征信息,在輸入的每個空間位置采樣k個不同尺度的anchors。通過后續(xù)二分類網(wǎng)絡(luò)對這些anchors進行評估,挑選出可能含有對象的anchors,并對其進行邊界框的精修,作為目標候選區(qū)域。
與目標對象交并比(IOU,intersection over union)最大的anchors以及和至少一個對象的IOU不小于預設(shè)閾值的anchors將被作為proposal層中的正樣本,其余作為負樣本用以后續(xù)訓練。
根據(jù)式(1)對RPN進行訓練:
(1)
(2)
1.1.3 ROI Align
ROI Align是對ROI Pooling的優(yōu)化。ROI Pooling利用空間金字塔池化[24],將RPN的輸出作為輸入,輸出一組固定大小的特征張量作為后續(xù)處理的輸入。但是ROI Pooling引入了兩次量化操作,帶來了量化誤差,降低了ROI和其對應特征之間的一致性。針對此問題,ROI Align通過雙線性插值法解決,對每個ROI先進行分割,之后在分割得到的每個子區(qū)域中采樣K(K一般取4)個點,對每個點進行雙線性插值得到其像素值,之后將最大的像素值作為該子區(qū)域的像素值。這種方式避免了引入量化操作帶來的量化誤差,實現(xiàn)了ROI與特征的一致,提升了后續(xù)分類以及回歸框的精度。
1.1.4 頭部網(wǎng)絡(luò)
由于引入了特征金字塔生成不同尺度的特征圖,所以需要根據(jù)ROI尺度選擇特定層級的金字塔輸出作為后續(xù)處理的輸入,具體選擇如公式(3):
(3)
式中,k0=5,w,h表示對應ROI區(qū)域的寬和高,224對應特征金字塔第五層的尺度。
經(jīng)過ROI Align輸出固定大小的特征張量,經(jīng)過兩層全連接網(wǎng)絡(luò)之后分別傳送給分類器和回歸器,以實現(xiàn)目標對象的分類和邊界框的回歸。掩碼分支的輸入也由ROI Align產(chǎn)生,但其尺寸大小與分類和回歸不同。
網(wǎng)絡(luò)訓練采用多任務(wù)損失函數(shù),通過學習不斷下降的損失函數(shù)的值,直至獲得最優(yōu)解。損失函數(shù)的公式由式(4)給出。其中包含了3項,分別對應分類損失,邊框回歸損失以及掩碼分割損失。
L=Lcls+Lbbox+Lmask
(4)
Mask RCNN中使用固定卷積,這類卷積在空間采樣上不夠靈活,容易引入對象周邊的噪聲信息,干擾后續(xù)的識別與分類。針對此問題,本文引入可變形卷積來改進主干網(wǎng)絡(luò)中的部分固定卷積,以實現(xiàn)更加靈活的空間采樣。針對RPN網(wǎng)絡(luò)產(chǎn)生的候選區(qū)域提出一種改進的Soft-NMS方法進行進一步篩選與整合,在降低候選框冗余的同時提升候選框的質(zhì)量,從而達到提升目標檢測性能的目的。
本文將可變形卷積加入Mask RCNN中,從而得到更好的空間采樣結(jié)果,并用改進的Soft-NMS進一步整合候選區(qū)域降低其冗余程度,最終實現(xiàn)對濾袋開口的有效、精確檢測。圖2給出了本文目標檢測模型的總體結(jié)構(gòu)。整個模型分為4部分,第一部分為主干網(wǎng)絡(luò),實現(xiàn)圖像特征的提取工作;第二部分是RPN,用于候選目標的生成;第三部分是ROI Align,它將候選區(qū)域?qū)奶卣饔成涑鼗敵鰹楣潭ù笮〉奶卣鲝埩?,為后續(xù)處理做準備;第四部分是頭部網(wǎng)絡(luò),由三個分支構(gòu)成,分別實現(xiàn)目標類別的識別、目標邊界框的修正以及目標掩碼信息的生成。最后將掩碼信息與邊界框信息整合得到更為精確的定位。
圖2 融合可變形卷積的Mask RCNN網(wǎng)絡(luò)結(jié)構(gòu)
本文選取殘差網(wǎng)絡(luò)作為提取特征的主干網(wǎng)絡(luò)。殘差網(wǎng)絡(luò)利用跳接(skipconnect)形成殘差塊,通過堆疊殘差塊的方式構(gòu)建殘差網(wǎng)絡(luò)。殘差塊可以用公式(5)表示:
y=F(x,{Wi})+x
(5)
其中:y表示殘差塊的輸出,x為殘差塊的輸入,F(xiàn)(x,{Wi})表示待學習的殘差映射。
殘差網(wǎng)絡(luò)通過跳接結(jié)構(gòu),降低了隨著模型深度的增加產(chǎn)生過擬合的可能性,為構(gòu)建更深的模型提供了基礎(chǔ)。
傳統(tǒng)的卷積結(jié)構(gòu)空間采樣不夠靈活,無法有效處理目標形變。本文引入可變形卷積對原始殘差網(wǎng)絡(luò)進行改進,替換掉其高層中的固定卷積層,從而更有效地實現(xiàn)對目標的特征提取,提升檢測效果。
傳統(tǒng)的卷積從數(shù)學形式上可以用式(6)表示,其中pn代表卷積核中每個點對應中心點的空間偏移,R表示卷積核對應的各個空間位置偏移。
(6)
相較于傳統(tǒng)的卷積,可變形卷積引入了一個空間偏移Δpn,該偏移參數(shù)可以通過學習的方式獲得。可變形卷積的表示如公式(7):
(7)
由于增加的Δpn一般是小數(shù),并沒有與之對應的輸入,所以通過雙線性插值的辦法來獲得這一位置對應的輸入。
隨著卷積網(wǎng)絡(luò)的加深,頂層感受野的大小增加,高層語義信息變得更多,更適合分類,但同時也損失底層信息,這對小目標的檢測會造成較大影響。因此本文構(gòu)建特征金字塔(FPN,feature pyramid network)[25]來融合高低層級的語義信息,實現(xiàn)對各個層級卷積輸出的捕獲,提升對小目標的檢測效果。將殘差網(wǎng)絡(luò)中conv2,conv3,conv4,conv5的輸出分別用C2,C3,C4,C5表示。FPN在C5的輸出上通過一個1×1的卷積,將其通道數(shù)由原先的2048降為256,獲得特征映射圖CP5。之后對CP5進行上采樣,同時對C4的輸出經(jīng)過一個1×1的卷積將其通道數(shù)下降為256,使用特征圖相加的方式將兩者結(jié)合得到CP4。通過上述方式依次得到CP3,CP2,之后對CP2,CP3,CP4,CP5分別使用一個3×3的卷積以降低上采樣帶來的混疊現(xiàn)象,得到P2,P3,P4,P5,構(gòu)成了特征金字塔。
候選目標區(qū)域的質(zhì)量與數(shù)目直接影響到目標檢測的效果與速度。本文通過RPN方法利用anchor機制獲得原始的候選區(qū)域,同時依據(jù)所用數(shù)據(jù)集中目標的尺度對anchor的大小做出了調(diào)整,調(diào)整后的參數(shù)為(32,64,128,256),長寬比為(1,0.5,2)。
RPN生成的原始提議框數(shù)目眾多,在這些候選框中有些包含背景圖像,為減少這類樣本,提升候選框的質(zhì)量,一般采用非極大值抑制對候選框進行篩選。由于PRN分類結(jié)果與候選框位置之間沒有明確的線性關(guān)系,所以傳統(tǒng)NMS方法會導致很多雖然重疊但是包含目標不一樣的候選框被直接刪除。為此,本文提出一種改進的Soft-NMS方法,Algorithm1給出了改進后的偽代碼。
Algorithm 1: 改進的Soft-NMS方法
Input:B={b1,,bN},S={s1,,sN},Gt,其中B是一系列候選框,S是其對應的得分,Gt為IOU閾值
Output:O={o1,,om},S={s1,,sm},O為輸出框,S為其對應的得分
Begin:
O←?
WhileB≠? do:
k←argmax{S}
K←bk
L←K
B←B-K
For biin B:
If IOU(K,bi)>Gt
L←L∪bi
End if
si←sif(IOU(K,bi))
End for
K′←f2(L)
O←O∪K’
End while
上述算法中,計算得分的公式由式(8)給出,最佳候選框位置調(diào)整的方法由式(9)給出:
(8)
(9)
式(9)中,k代表了同當前最高得分的候選框之間IOU大于閾值的候選框的總數(shù),之后根據(jù)得分進行加權(quán)修正。
本文采取端到端的訓練方式,將RPN網(wǎng)絡(luò)的訓練任務(wù)同主干網(wǎng)絡(luò)以及頭部檢測網(wǎng)絡(luò)的檢測任務(wù)結(jié)合起來,通過構(gòu)建一個多任務(wù)損失函數(shù),訓練整體結(jié)構(gòu)。損失函數(shù)由式(10)給出:
Ltotal=Lcls+Lbbox+Lmask+Lrpn
(10)
主干網(wǎng)絡(luò)部分采用在ImageNet上訓練的ResNet50+DCN模型進行初始化,RPN以及檢測頭采用在COCO數(shù)據(jù)集上訓練的參數(shù)進行初始化。本文采用梯度下降法進行神經(jīng)元參數(shù)的迭代調(diào)整。
本文使用本實驗室構(gòu)建的濾袋數(shù)據(jù)集。為增加訓練樣本個數(shù),通過旋轉(zhuǎn)、裁剪以及翻轉(zhuǎn)等數(shù)據(jù)增強方式對數(shù)據(jù)集進行了增廣。使用labelImg工具對數(shù)據(jù)集進行標注。得到數(shù)據(jù)集1和數(shù)據(jù)集2,兩個數(shù)據(jù)集共有樣本1 000張。數(shù)據(jù)集1中包含8類不同圓形開口的濾袋,每類均有100張圖像,按8:2的比例分為訓練集和測試集。數(shù)據(jù)集2中含有2類不同橢圓形開口的濾袋,每類均有100張圖像,同樣以8:2的比例分為訓練集和測試集。表1和表2分別給出了數(shù)據(jù)集1和數(shù)據(jù)集2的具體信息。圖3和圖4展示了數(shù)據(jù)集對應的部分圖像。
表1 數(shù)據(jù)集1中每一類包含的圖片數(shù)目
表2 數(shù)據(jù)集2中每一類包含的圖片數(shù)目
圖3 數(shù)據(jù)集1圖片示例
圖4 數(shù)據(jù)集2圖片示例
本文的評價指標為各類平均精度(mAP,mean average precision),中心偏移距離以及檢測速度。本文對比的模型為Faster RCNN以及Mask RCNN兩種主流的兩階段目標檢測模型。
boxgt為真實值標簽用(y1gt,x1gt,y2gt,x2gt)表示,預測框boxpred用(y1pred,x1pred,y2pred,x2pred)表示。兩者之間的距離記作d=dis(boxgt,boxpred),可以根據(jù)公式(11)計算:
d=dis(boxgt,boxpred)=
(11)
其中:ygt=(y1gt+y2gt)/2,xgt=(x1gt+x2gt)/2,ypred=(y1pred+y2pred)/2,xpred=(x1pred+x2pred)/2。
本文的模型在數(shù)據(jù)集1與數(shù)據(jù)集2上進行評估。
實驗的硬件環(huán)境為Intel Corei5-9400 CPU,NVIDIA GTX 1080 GPU。軟件環(huán)境為Tensorflow架構(gòu),實驗語言為Python。訓練時設(shè)置學習率為0.001,權(quán)重衰減系數(shù)為0.000 1,采用帶動量的(SGD,stochastic gradient descent)優(yōu)化器迭代訓練,動量設(shè)置為0.9,訓練迭代20 000次,batch-size設(shè)置為2。實驗主要由以下幾部分組成:第一個實驗將對比本文算法與基準算法之間的性能差異;第二個實驗為消融實驗將驗證提出的改進Soft-NMS方法的有效性;第三個實驗將數(shù)據(jù)集1和數(shù)據(jù)集2合并,檢驗算法在輸入類別增加情況下的魯棒性。
實驗一:在本實驗中,通過將Faster RCNN、Mask RCNN以及本文的融合可變形卷積Mask RCNN在濾袋數(shù)據(jù)集1上訓練和測試,得到如表3展示的結(jié)果。圖6給出了部分檢測結(jié)果。
圖6 在數(shù)據(jù)集1上檢測的結(jié)果(示例)
BackbonemAP中心偏移距離FpsFaster RCNNVGG1688.124.341.12Faster RCNNResNet5090.620.621.23Mask RCNNResNet5093.213.720.95OursResNet50+DCN95.611.760.93
在表3中可以看到,本文的算法在中心偏移距離這一指標上優(yōu)于對比算法,相較于Faster RCNN提升了11.58個像素。Soft-NMS過程對候選框的重整提高了這一指標。
本文構(gòu)建的特征金字塔實現(xiàn)了特征的融合,提升了對小目標的檢測精度,使得模型的漏報率下降,提升了模型的召回率。藉此,總體的mAP相較于沒有特征金字塔結(jié)構(gòu)的Faster RCNN也得到了提升。同時,可變形卷積帶來了更加靈活的空間采樣,引入改進Soft-NMS的區(qū)域提議生成網(wǎng)絡(luò)提供了更高質(zhì)量的候選框,給本文方法在mAP上帶來了高于對比算法的性能,相較于Mask RCNN提升了2.4個百分點。
在檢測速度方面,由于本文模型基于Mask RCNN構(gòu)建,其增加了掩碼分支且本文在模型中加入金字塔結(jié)構(gòu)以及可變形卷積,在一定程度上提升了模型的復雜度,致使本文算法相較于Faster RCNN的推理速度有所下降,但是和Mask RCNN相當。
實驗2:為了驗證改進Soft-NMS的有效性在實驗數(shù)據(jù)集1上進行消融實驗。實驗結(jié)果如表4所示。對比采用的是NMS方法,本文使用的是改進的Soft-NMS方法,其余部分兩者相同皆為融合可變形卷積的Mask RCNN??梢钥吹奖疚奶岢龅腟oft-NMS方法相較于傳統(tǒng)NMS在數(shù)據(jù)集1上mAP指標實現(xiàn)了1.2個百分點的提升,同時中心偏移距離提升了0.36個像素,驗證了本文提出的改進Soft-NMS方法的有效性,經(jīng)過重整的候選框質(zhì)量確實優(yōu)于原始候選框。
實驗3:為了驗證算法的泛化性能,本文用數(shù)據(jù)集1和數(shù)據(jù)集2對算法進行驗證,結(jié)果如表5所示??梢钥吹揭肟勺冃尉矸e并使用改進Soft-NMS方法后,本文模型性能依舊高于其他對比算法,證明了本文方法在增加對象類別之后仍然可以具有較好性能。為了進一步檢驗其性能,將來自不同數(shù)據(jù)集的對象放在同一環(huán)境采集,繼續(xù)測試,結(jié)果如圖7所示。實驗結(jié)果證明本文模型可以有效地檢測不同濾袋開口,具有良好的魯棒性。
表4 改進Soft-NMS方法的有效性
表5 在數(shù)據(jù)集1+2上的檢測結(jié)果
圖7 在同一圖片中兩種不同塵袋的檢測效果
本文提出了一種基于深度學習的濾袋開口檢測算法,實驗結(jié)果表明,本文算法在濾袋開口檢測問題上比傳統(tǒng)基于深度學習的目標檢測方法表現(xiàn)得更好,且檢測速度較快。由于本文構(gòu)建的數(shù)據(jù)集規(guī)模較小,后續(xù)工作中將嘗試建立種類更為全面的大型數(shù)據(jù)集供濾袋開口檢測算法的訓練和測試,并且進一步通過剪枝算法壓縮模型體積,提升運算速度。