王 樂, 周慶華, 王 磊, 蔣華勝, 林思宇
(長(zhǎng)沙理工大學(xué) 物理與電子科學(xué)學(xué)院, 長(zhǎng)沙 410114)
工業(yè)生產(chǎn)中機(jī)械零件種類繁多、產(chǎn)量大,人工分揀不僅影響工作效率,而且?guī)聿豢煽康囊蛩?,直接影響產(chǎn)品質(zhì)量與成本。對(duì)于一些危險(xiǎn)場(chǎng)合,人工分揀更是無法完成的。因此工件自動(dòng)化分揀是自動(dòng)化生產(chǎn)系統(tǒng)中的重要環(huán)節(jié),可以有效地解決工業(yè)生產(chǎn)中傳送帶上零件集中混型輸送和識(shí)別[1],而提高分揀精度、減少分揀耗時(shí)是提升生產(chǎn)效率的重要途徑。傳統(tǒng)自動(dòng)化生產(chǎn)線中的分揀技術(shù)主要應(yīng)用各種傳感器的組合,對(duì)工件的材質(zhì)、顏色、形狀等進(jìn)行檢測(cè)[2],這些方法算法簡(jiǎn)單、對(duì)處理器要求不高,但對(duì)工件的擺放位置具有嚴(yán)格的要求,靈活性差,檢測(cè)速度慢,有時(shí)對(duì)工件進(jìn)行接觸,造成一定損傷。
隨著現(xiàn)代信息技術(shù)的發(fā)展,機(jī)器視覺技術(shù)因其高精度、速度快、無接觸、無損檢的特點(diǎn)逐漸取代傳統(tǒng)自動(dòng)化分類和定位技術(shù)。機(jī)器視覺技術(shù)一般通過攝像頭采集圖像信息,然后進(jìn)行二值化、邊緣提取、SIFT、SURF 等操作提取特征信息,最后通過支持向量機(jī)、k近鄰等分類器對(duì)目標(biāo)物體進(jìn)行分類。但此類方法很大程度上依賴于特定的檢測(cè)條件,對(duì)于不同的目標(biāo)或者同一目標(biāo)的不同形態(tài),需要設(shè)計(jì)不同的方法去提取特征,算法的最終識(shí)別效果也受制于設(shè)計(jì)者的經(jīng)驗(yàn),普適性差,很難滿足復(fù)雜場(chǎng)景的要求。
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)將人工神經(jīng)網(wǎng)絡(luò)和卷積運(yùn)算相結(jié)合,通過逐層提取,獲得了豐富的特征信息,并對(duì)一定程度的扭曲和形變有良好的魯棒性[3]。同時(shí),卷積神經(jīng)網(wǎng)絡(luò)采用局部感受野、稀疏連接和權(quán)值共享,極大減少了神經(jīng)網(wǎng)絡(luò)的訓(xùn)練參數(shù),降低了網(wǎng)絡(luò)運(yùn)算的復(fù)雜度。因此,本文將卷積神經(jīng)網(wǎng)絡(luò)算法用于機(jī)械零件的定位與分類中。2012年Hinton等人[4]提出了AlexNet卷積神經(jīng)網(wǎng)絡(luò),在著名的ImageNet圖像分類問題上取得了最好成果,將top-5的錯(cuò)誤率下降了15%。2014年Christian Szegedy[5]等人提出的Inception結(jié)構(gòu),進(jìn)一步將top-5的錯(cuò)誤率降到了6.67%,獲得了大型機(jī)器視覺挑戰(zhàn)賽(ILSVR)的冠軍。2014 年Ross Girshick[6]等人提出了 R-CNN算法,其主要分為產(chǎn)生候選區(qū)域、提取特征信息和進(jìn)行圖像分類3個(gè)階段。但由于這3個(gè)階段彼此分離,導(dǎo)致檢測(cè)過程復(fù)雜,花費(fèi)時(shí)間較長(zhǎng),且難以優(yōu)化。2015 年 Ross Girshick 和 Shaoqing Ren 又相繼提出了 Fast R-CNN[7]和其改進(jìn)版 Faster R-CNN[8]。Faster R-CNN在一定程度上降低了檢測(cè)的復(fù)雜度,但檢測(cè)速度仍然較慢, 難以滿足實(shí)際工業(yè)中實(shí)時(shí)性的要求。
2016年Joseph Redmon[9]等人提出了YOLO目標(biāo)檢測(cè)算法,這是一種全新的端到端(End-to-End)的檢測(cè)算法,使用單一的卷積神經(jīng)網(wǎng)絡(luò)在檢測(cè)圖像上同時(shí)完成了邊界框和類別概率預(yù)測(cè)。同年在 YOLO 的基礎(chǔ)上,Joseph Redmon[10]又提出了 YOLO v2 。雖然YOLO v2相比R-CNN系列檢測(cè)算法在檢測(cè)速度上有了很大的提升,但檢測(cè)準(zhǔn)確率并不是很高,尤其是對(duì)于復(fù)雜場(chǎng)景和小目標(biāo)物體的檢測(cè)。
本文以螺母和墊片2種目標(biāo)物體為檢測(cè)對(duì)象,以工業(yè)傳送帶為研究場(chǎng)景。同時(shí),考慮到傳送帶上干擾物的存在,在YOLO v2檢測(cè)算法的基礎(chǔ)上,采用多尺度訓(xùn)練、網(wǎng)絡(luò)預(yù)訓(xùn)練和k-means維度聚類等優(yōu)化方法,提出了用于機(jī)械零件實(shí)時(shí)識(shí)別與定位的改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)算法。改進(jìn)算法能夠?qū)崿F(xiàn)運(yùn)動(dòng)傳送帶上目標(biāo)物體的識(shí)別和定位,檢測(cè)準(zhǔn)確率達(dá)到了85%以上,檢測(cè)速度達(dá)到了實(shí)時(shí)性的要求,為零件實(shí)時(shí)分揀提供了基礎(chǔ)。
卷積神經(jīng)網(wǎng)絡(luò)是一種前向傳播和反向傳播相結(jié)合的人工神經(jīng)網(wǎng)絡(luò),是一種典型的深度學(xué)習(xí)算法,在傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上增加了卷積和池化操作。卷積神經(jīng)網(wǎng)絡(luò)采用局部感知、參數(shù)共享、下采樣等技術(shù)減少了網(wǎng)絡(luò)參數(shù)的數(shù)量。在保證提取足夠特征信息的同時(shí),降低了計(jì)算的復(fù)雜度,提高了網(wǎng)絡(luò)識(shí)別的效率[11]。
LeNet-5[12]是卷積神經(jīng)網(wǎng)絡(luò)的經(jīng)典網(wǎng)絡(luò),最早被用于手寫數(shù)字的識(shí)別,取得了很好的效果。其總共有7層(不包含輸入層),由2個(gè)卷積層、2個(gè)池化層、2個(gè)完全連接層和1個(gè)輸出層組成。局部感知和參數(shù)共享理論被應(yīng)用在卷積層,下采樣操作用在池化層。這樣就構(gòu)成了完整的卷積神經(jīng)網(wǎng)絡(luò)系統(tǒng)。
圖1 為L(zhǎng)eNet-5網(wǎng)絡(luò)結(jié)構(gòu)圖,輸入圖片大小為32*32,采用5*5的卷積核進(jìn)行卷積操作,步長(zhǎng)為1,即每次滑動(dòng)窗口的大小為1個(gè)像素,得到28*28的特征圖。下采樣層以2*2的卷積核,每次滑動(dòng)2個(gè)像素大小進(jìn)行平均池化操作,得到14*14特征圖。完全連接層將所有結(jié)點(diǎn)匯總起來,傳給輸出層。輸出層具有10個(gè)結(jié)點(diǎn),代表0到9數(shù)字的輸出概率。
圖1 LeNet-5模型的結(jié)構(gòu)
YOLO算法屬于CNN,擁有24個(gè)卷積層和2個(gè)完全連接層,其中大量運(yùn)用了卷積的級(jí)聯(lián)結(jié)構(gòu),卷積核主要包括 3*3 和 1*1兩種大小的卷積核。YOLO將整張圖片用于訓(xùn)練,不需要任何的裁剪和預(yù)處理操作。其將整個(gè)目標(biāo)的檢測(cè)作為回歸問題來處理,訓(xùn)練出的網(wǎng)絡(luò)模型能夠接受原始的像素信息,在輸出端直接輸出目標(biāo)物體的邊界框和類別信息,是一個(gè)端到端的檢測(cè)模型。在檢測(cè)過程中,將整個(gè)圖片分成S*S的網(wǎng)格,如果有目標(biāo)物體的中心落在某個(gè)單元格里,這個(gè)單元格負(fù)責(zé)檢測(cè)該物體。每個(gè)單元格需要預(yù)測(cè)B個(gè)邊界框,對(duì)于每個(gè)邊界框需要預(yù)測(cè)其置信度。計(jì)算公式如下:
(1)
(2)
可以看到,損失函數(shù)主要包括5部分。其中Ii表示是否有物體中心落入網(wǎng)格i中,若有Ii值為1,反之為0。Iij表示判斷網(wǎng)格i中第j個(gè)檢測(cè)邊界是否負(fù)責(zé)該物體,若是則為1,反之為0。
YOLO雖然速度快,但有以下3個(gè)缺點(diǎn):
(1)與目前流行的R-CNN系列目標(biāo)識(shí)別算法相比,精度并不是很高。
(2)與基于候選區(qū)域的算法相比,雖然對(duì)于背景的誤判較小,但是對(duì)于目標(biāo)的定位并不是很準(zhǔn)確。
(3)由于YOLO算法規(guī)定一個(gè)網(wǎng)格中只能預(yù)測(cè)一類物體,因此YOLO對(duì)于粘連物體和小目標(biāo)物體的識(shí)別精度不高。
針對(duì)以上缺點(diǎn),YOLO v2在YOLO的基礎(chǔ)上進(jìn)行改進(jìn)。去掉了YOLO網(wǎng)絡(luò)的完全連接層和最后一個(gè)最大池化層,使用每個(gè)anchor box 來預(yù)測(cè)物體的種類,并且將網(wǎng)絡(luò)的輸入調(diào)整到了416*416,使得網(wǎng)絡(luò)在經(jīng)過多次卷積和下采樣操作后,得到的特征圖為13*13,有利于中心點(diǎn)的計(jì)算。YOLO v2在每個(gè)卷積層的后面都加入了批量歸一化操作[13],這樣在去掉dropout層后,網(wǎng)絡(luò)也不會(huì)過擬合,同時(shí)也提高了網(wǎng)絡(luò)預(yù)測(cè)的精度。針對(duì)YOLO對(duì)于小物體預(yù)測(cè)精度低的問題,YOLO v2借鑒殘差網(wǎng)絡(luò),引入了傳遞層,即將上一層26*26的特征圖直接與13*13的特征圖相連,使得網(wǎng)絡(luò)能夠獲取更加豐富的特征信息。
在YOLO v2之前,大部分的網(wǎng)絡(luò)結(jié)構(gòu)都是基于VGG-16[14],但VGG-16網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜、參數(shù)較多、計(jì)算量大。Darknet-19作為YOLO v2的基本網(wǎng)絡(luò)結(jié)構(gòu),參考了YOLO和SSD[15]的網(wǎng)絡(luò)結(jié)構(gòu),兼顧了精度和復(fù)雜度,使得網(wǎng)絡(luò)在具有較高精度的同時(shí),具有較少的參數(shù)。Darknet-19具有19個(gè)卷積層和5個(gè)最大池化層,在ImageNet數(shù)據(jù)集上可以達(dá)到72.9%的top-1精度和91.2%的top-5精度。網(wǎng)絡(luò)中以3*3的卷積核為主,大量使用了卷積的級(jí)聯(lián),并借鑒了Network in network[16]的思想,在3*3的卷積之間均采用了1*1的卷積核,在減少網(wǎng)絡(luò)訓(xùn)練參數(shù),降級(jí)計(jì)算成本的同時(shí)增加了網(wǎng)絡(luò)的深度。
考慮到在實(shí)際分揀中可能存在各種干擾物,采用通用的目標(biāo)識(shí)別與定位卷積神經(jīng)網(wǎng)絡(luò)算法難以兼顧精度和速度的要求。因此,本文以Darknet-19作為網(wǎng)絡(luò)訓(xùn)練框架,并從網(wǎng)絡(luò)預(yù)訓(xùn)練、多尺度訓(xùn)練、k-means維度聚類3個(gè)方面進(jìn)行優(yōu)化,以達(dá)到復(fù)雜場(chǎng)景中,傳送帶上目標(biāo)物體實(shí)時(shí)識(shí)別與定位的目的。目標(biāo)檢測(cè)算法的流程如圖2所示。由于標(biāo)簽數(shù)據(jù)集稀少,首先在ImageNet數(shù)據(jù)集上進(jìn)行網(wǎng)絡(luò)預(yù)訓(xùn)練,然后在標(biāo)簽數(shù)據(jù)集上進(jìn)行再訓(xùn)練。通過前向傳播獲取網(wǎng)絡(luò)輸出,依靠反向傳播更新參數(shù)。在目標(biāo)檢測(cè)的過程中,加載訓(xùn)練好的網(wǎng)絡(luò)模型獲取特征圖,使用k-means維度聚類優(yōu)化候選框,得到2組候選框的尺寸,然后在特征圖中產(chǎn)生邊界框。對(duì)于一個(gè)目標(biāo)物體可能產(chǎn)生多個(gè)邊界框,需要通過非極大值抑制來留下置信分?jǐn)?shù)最高的邊界框,實(shí)現(xiàn)對(duì)物體的精確定位,對(duì)于每個(gè)邊界框預(yù)測(cè)出的多個(gè)物體的類別概率,也通過非極大值抑制留下類別分?jǐn)?shù)最高的預(yù)測(cè),實(shí)現(xiàn)對(duì)物體的分類。
圖2 目標(biāo)檢測(cè)算法的流程
由于目標(biāo)物體的標(biāo)簽數(shù)據(jù)較少,且往往分辨率較低,直接采用制作的標(biāo)簽數(shù)據(jù)集進(jìn)行網(wǎng)絡(luò)的訓(xùn)練,往往精度不高,定位較差。因此,在實(shí)際的訓(xùn)練中采用了預(yù)訓(xùn)練的方法,提高了物體識(shí)別的精度,同時(shí)降低網(wǎng)絡(luò)訓(xùn)練的時(shí)間。本文網(wǎng)絡(luò)的訓(xùn)練主要分為以下2步:
(1)ImageNet 數(shù)據(jù)集有1 400多萬幅圖片,有著1 000個(gè)目標(biāo)類別,圖像清晰,分辨率較高,且多數(shù)的圖片具有明確的類別標(biāo)注信息。因此,可以在ImageNet 1 000類的數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練。由于手工收集的標(biāo)簽數(shù)據(jù)集只有2個(gè)類別,因此,將預(yù)訓(xùn)練后的網(wǎng)絡(luò)最后一層由1 000個(gè)類別輸出調(diào)整為3個(gè)類別輸出(包括2個(gè)類別和背景),使網(wǎng)絡(luò)獲得對(duì)目標(biāo)物體的普遍認(rèn)識(shí),達(dá)到對(duì)網(wǎng)絡(luò)權(quán)重參數(shù)的初始化操作。
(2)經(jīng)過預(yù)訓(xùn)練的模型已經(jīng)收斂到局部最優(yōu)解,然后采用收集到的1 000個(gè)手工標(biāo)簽的螺母和墊片數(shù)據(jù)集對(duì)網(wǎng)絡(luò)進(jìn)行再訓(xùn)練。在此以Darknet-19作為網(wǎng)絡(luò)訓(xùn)練框架,為了適應(yīng)本文的檢測(cè)任務(wù)去掉了最后一個(gè)卷積層,增加了3個(gè)3*3的卷積層,卷積核的個(gè)數(shù)為1 024,同時(shí),添加了一個(gè)1*1的卷積層,使卷積層的輸出數(shù)量與檢測(cè)任務(wù)的輸出一致。在每輪模型訓(xùn)練開始之前將訓(xùn)練數(shù)據(jù)模型集隨機(jī)打亂,確保模型不同輪數(shù)相同批次狀態(tài)下接觸到不同數(shù)據(jù),這樣的操作可以加快網(wǎng)絡(luò)的收斂速度。在模型訓(xùn)練時(shí),將初始的學(xué)習(xí)率設(shè)為0.000 1,在訓(xùn)練10輪后將學(xué)習(xí)率提高到0.001,適當(dāng)?shù)募涌炷P偷挠?xùn)練次數(shù),當(dāng)訓(xùn)練次數(shù)達(dá)到20 000時(shí)將學(xué)習(xí)率降低為0.000 1,在5 000時(shí)將學(xué)習(xí)率降為0.000 01,避免因?yàn)檩^大的學(xué)習(xí)率使模型跳過最優(yōu)解。在迭代訓(xùn)練的過程中將批處理樣本設(shè)置為32,通過前向傳播預(yù)測(cè)輸出,通過反向傳播和隨機(jī)梯度下降(SGD)更新參數(shù)。
為了使網(wǎng)絡(luò)對(duì)不同輸入尺寸的圖片具有一定的魯棒性,在訓(xùn)練的過程中采用5種單一尺度和多尺度訓(xùn)練的方法。對(duì)于單一尺度的訓(xùn)練,進(jìn)行了5組實(shí)驗(yàn),5組實(shí)驗(yàn)的輸入圖片尺寸分別為:288*288,352*352,416*416,480*480,544*544。對(duì)于多尺度的訓(xùn)練方法,在訓(xùn)練的過程中每隔10輪,則隨機(jī)的改變輸入圖片的尺寸。因?yàn)槟P偷南虏蓸右蜃訛?2,則多尺度輸入圖片必須是32的倍數(shù),其計(jì)算公式為:
s=32(7+a)
(3)
其中,s為輸入圖片的尺寸,a為在訓(xùn)練過程中隨機(jī)產(chǎn)生的0到12之間的整數(shù)。
為了提高網(wǎng)絡(luò)的召回率,YOLO v2的作者在文中使用了5種不同尺寸的候選框,但是對(duì)于特定的檢測(cè)任務(wù)效果并不理想[18]。本文針對(duì)螺母和墊片的檢測(cè)任務(wù),通過k-means 對(duì)數(shù)據(jù)集中手工標(biāo)記的目標(biāo)框做聚類分析,找到目標(biāo)框的統(tǒng)計(jì)規(guī)律。首先,通過肘部法則來估計(jì)聚類的個(gè)數(shù)。隨著k值的增大,平均畸變程度會(huì)降低,每個(gè)類中包含的樣本數(shù)會(huì)減少,樣本離其聚類中心點(diǎn)會(huì)更近,但隨著k值繼續(xù)增大,平均畸變的改善效果會(huì)逐漸降低。因此,取平均畸變改善效果最好的位置所對(duì)應(yīng)的k值為聚類的個(gè)數(shù)。然后,以聚類個(gè)數(shù)k為候選框的個(gè)數(shù),對(duì)標(biāo)簽數(shù)據(jù)集中目標(biāo)物體歸一化后的寬和高進(jìn)行聚類分析。圖3顯示了k值對(duì)平均畸變的影響??梢钥闯?,當(dāng)k=2時(shí),平均畸變的改善效果下降幅度最大,平均畸變的改善效果最好,此時(shí)標(biāo)簽數(shù)據(jù)集的聚類效果達(dá)到最好,其空間聚類效果如圖4所示,其中綠色的正方形代表各聚類中心點(diǎn),候選框的尺寸為2個(gè)顏色區(qū)域的聚類中心點(diǎn)所對(duì)應(yīng)的目標(biāo)邊界框的寬和高。由此得到2組候選框的尺寸為[4.54,4.43],[5.27,5.41]。
圖3 k值對(duì)平均畸變的影響
圖4 k=2時(shí)的聚類效果
本文以螺母和墊片2種物體為識(shí)別與定位的對(duì)象,以工業(yè)傳送帶為場(chǎng)景,同時(shí)考慮到了傳送帶上干擾物的存在。通過傳送帶上的攝像頭,實(shí)時(shí)截取1 000張分辨率為640*480的圖片,其中100張圖片作為驗(yàn)證數(shù)據(jù)集,900張圖片作為訓(xùn)練數(shù)據(jù)集。通過LabelImg軟件,手動(dòng)標(biāo)記出圖像中螺母和墊片的位置,并通過旋轉(zhuǎn)、縮放、飽和度和曝光度等方式對(duì)數(shù)據(jù)進(jìn)行擴(kuò)充。
本文在配置有2.60 Ghz雙核Intel Core CPU 和 Ubuntu16.04系統(tǒng)下進(jìn)行網(wǎng)絡(luò)的訓(xùn)練和測(cè)試,顯卡型號(hào)是 NVIDIA -GTX 1050 Ti 獨(dú)立顯卡,開發(fā)包CUDA 8.0。開發(fā)環(huán)境為vs2013和opencv3.1.0。開發(fā)框架為Darknet,訓(xùn)練過程中的部分網(wǎng)絡(luò)參數(shù)的設(shè)置見表1。
表1 網(wǎng)絡(luò)訓(xùn)練參數(shù)
圖5顯示了一個(gè)檢測(cè)結(jié)果的例子。其中,nut代表目標(biāo)物體螺母,pad代表目標(biāo)物體墊片,可以看到運(yùn)用訓(xùn)練出來的模型能夠?qū)?fù)雜場(chǎng)景中的目標(biāo)物體進(jìn)行正確的分類和定位。驗(yàn)證集中平均準(zhǔn)確率達(dá)到了0.858,檢測(cè)速度可以達(dá)到每秒23幀。
圖5 多目標(biāo)、復(fù)雜場(chǎng)景檢測(cè)結(jié)果
為了測(cè)試本文算法的有效性,首先分別對(duì)網(wǎng)絡(luò)預(yù)訓(xùn)練、多尺度訓(xùn)練、k-means維度聚類優(yōu)化候選框等優(yōu)化方法的效果進(jìn)行測(cè)試,然后將本文算法與Faster R-CNN及YOLO v2算法的準(zhǔn)確率和檢測(cè)速度進(jìn)行了對(duì)比。表2給出了網(wǎng)絡(luò)預(yù)訓(xùn)練與直接采用標(biāo)簽數(shù)據(jù)集訓(xùn)練的結(jié)果對(duì)比,參數(shù)AP(Average Precision)表示平均準(zhǔn)確率??梢钥吹奖疚牡臋z測(cè)精測(cè)與直接使用標(biāo)簽數(shù)據(jù)集的檢測(cè)精度相比有了一定的提高。圖6是采用網(wǎng)絡(luò)預(yù)訓(xùn)練和直接訓(xùn)練時(shí),迭代次數(shù)與損失函數(shù)的關(guān)系。(a)為直接訓(xùn)練時(shí),損失函數(shù)與迭代次數(shù)的關(guān)系,(b)為采用網(wǎng)絡(luò)預(yù)訓(xùn)練時(shí),迭代次數(shù)與損失函數(shù)的關(guān)系。可以看到當(dāng)?shù)螖?shù)達(dá)到40 000次時(shí),采用直接訓(xùn)練的方法,損失函數(shù)收斂到2.0,而采用網(wǎng)絡(luò)預(yù)訓(xùn)練的方法,損失函數(shù)收斂到1.5左右。因此,采用預(yù)訓(xùn)練的算法能夠使模型更快更好地收斂。訓(xùn)練時(shí)使用的輸入圖片大小為416*416,批處理尺寸為16。
表2網(wǎng)絡(luò)預(yù)訓(xùn)練與直接訓(xùn)練結(jié)果對(duì)比
Tab.2Thecomparisonbetweennetworkpre-traininganddirecttrainingresults
訓(xùn)練方法驗(yàn)證集AP螺母墊片直接訓(xùn)練的方法0.7960.790網(wǎng)絡(luò)預(yù)訓(xùn)練的方法0.8250.829
(a)直接訓(xùn)練
(b)網(wǎng)絡(luò)預(yù)訓(xùn)
圖6采用網(wǎng)絡(luò)預(yù)訓(xùn)練和直接訓(xùn)練時(shí),迭代次數(shù)與損失函數(shù)的關(guān)系
Fig.6Therelationshipbetweentheiterationsandthelossfunctionduringpre-traininganddirecttraining
在對(duì)多尺度訓(xùn)練效果測(cè)試實(shí)驗(yàn)中,采用了288*288、352*352、416*416、480*480、544*544這5種單一尺寸和多尺度的訓(xùn)練方式。在多尺度的訓(xùn)練過程中,每隔10輪就改變輸入尺寸的大小。使用驗(yàn)證集對(duì)訓(xùn)練好的模型進(jìn)行評(píng)估,表3給出了驗(yàn)證集中每類物體的檢測(cè)時(shí)間和精度,參數(shù)AP(Average Precision)表示平均準(zhǔn)確率??梢钥吹?,隨著輸入圖片尺寸的增加,檢測(cè)時(shí)間增加,同時(shí)精度提高。對(duì)于使用多尺度訓(xùn)練的網(wǎng)絡(luò),采用416*416的輸入圖片進(jìn)行測(cè)試,可以看到相比其它輸入圖片的尺寸,多尺度訓(xùn)練的圖片在檢測(cè)時(shí)間和檢測(cè)精度上達(dá)到了較好的平衡。因此,采用多尺度訓(xùn)練的網(wǎng)絡(luò)對(duì)不同輸入尺寸的圖片具有較強(qiáng)的魯棒性。
表3多尺度與單一尺度訓(xùn)練結(jié)果對(duì)比
Tab.3Thecomparisonofmulti-scaleandsingle-scaletrainingresults
輸入尺寸檢測(cè)時(shí)間/s驗(yàn)證集AP螺母墊片288×880.0220.7950.798352×3520.0260.8120.816416×4160.0370.8250.829480×4800.0420.8360.836544×5440.0520.8380.839多尺度0.0350.8320.837
在對(duì)k-means維度聚類優(yōu)化候選框效果的測(cè)試實(shí)驗(yàn)中,使用自采集的標(biāo)簽數(shù)據(jù)集,對(duì)目標(biāo)邊界框的寬和高進(jìn)行聚類信息,得到2組候選框的尺寸為[4.54,4.43],[5.27,5.41]。表4給出了YOLO v2和維度聚類方法的結(jié)果對(duì)比,本文的維度聚類方法在候選框數(shù)量較少的情況下保證了較高的平均重疊率(IOU)和檢測(cè)精度,同時(shí)也節(jié)省了計(jì)算資源。訓(xùn)練時(shí)使用的輸入圖片大小為416*416,批處理尺寸為16。
表4k-means維度聚類與YOLOv2結(jié)果對(duì)比
Tab.4Thecomparisonofk-meansdimensionclusteringandYOLOv2results
候選框產(chǎn)生的方法候選框的數(shù)量平均重疊(IOU)螺母墊片驗(yàn)證集AP螺母墊片YOLO v250.6570.6280.8250.829維度聚類20.6610.6430.8270.832
最后,將本文提出的改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)算法與Faster R-CNN 和YOLO v2算法進(jìn)行對(duì)比,結(jié)果見表5。Faster R-CNN中采用了ZP網(wǎng)絡(luò)框架訓(xùn)練的模型檢測(cè)準(zhǔn)確率高于本文的檢測(cè)算法,但在本文硬件配置下只達(dá)到了每秒7幀的檢測(cè)速度,很難滿足復(fù)雜場(chǎng)景中實(shí)時(shí)性要求。同時(shí),將本文的算法與YOLO v2算法進(jìn)行對(duì)比,本文的算法在檢測(cè)準(zhǔn)確率和速度上都有了提升,基本能夠滿足復(fù)雜場(chǎng)景中實(shí)際分揀的需求。
表5本文算法與通用目標(biāo)檢測(cè)算法的對(duì)比
Tab.5Thecomparisonbetweentheproposedalgorithmanduniversaltargetdetectionalgorithms
檢測(cè)算法驗(yàn)證集AP螺母墊片檢測(cè)速度(FPS)Faster R-CNN ZF0.8880.9747YOLO v20.8250.82920本文算法0.8580.85823
本文以YOLO v2卷積神經(jīng)網(wǎng)絡(luò)算法為基礎(chǔ),通過多尺度訓(xùn)練、網(wǎng)絡(luò)預(yù)訓(xùn)練、k-means維度聚類以及批處理尺寸設(shè)置對(duì)算法進(jìn)行改進(jìn)。通過多尺度訓(xùn)練,增強(qiáng)了網(wǎng)絡(luò)對(duì)輸入圖片尺寸的魯棒性;采用網(wǎng)絡(luò)預(yù)訓(xùn)練在標(biāo)簽數(shù)據(jù)較少的、圖像分辨率不高的情況下提高了物體識(shí)別的準(zhǔn)確率;k-means維度聚類算法對(duì)自己的標(biāo)簽數(shù)據(jù)集中目標(biāo)邊界框的寬和高進(jìn)行聚類分析,得到候選邊界框信息,提高了物體定位的準(zhǔn)確度;通過設(shè)置適當(dāng)?shù)呐幚泶笮?,在保證實(shí)時(shí)性分揀的同時(shí),提高物體識(shí)別的準(zhǔn)確度,減少網(wǎng)絡(luò)訓(xùn)練的時(shí)間和GPU計(jì)算的負(fù)擔(dān)。本文算法在NVIDIA -GTX 1050 Ti 的配置下,達(dá)到0.858的檢測(cè)準(zhǔn)確率和每秒23幀的檢測(cè)速度。在識(shí)別準(zhǔn)確率和速度上達(dá)到了很好的平衡,為零件實(shí)時(shí)分揀提供了基礎(chǔ)。