魏 冉 裴悅琨 姜艷超 周品志 張永飛
(1.大連大學(xué)遼寧省北斗高精度位置服務(wù)技術(shù)工程實(shí)驗(yàn)室,遼寧 大連 116622;2.大連大學(xué)大連市環(huán)境感知與智能控制重點(diǎn)實(shí)驗(yàn)室,遼寧 大連 116622)
中國(guó)櫻桃種植面積已居世界首位。但由于水果產(chǎn)后處理技術(shù)不完善,導(dǎo)致新鮮的櫻桃不能及時(shí)進(jìn)行分級(jí)分揀,影響出口銷售[1]。
表面缺陷是果品分級(jí)分揀的重要影響因子[2]。傳統(tǒng)的果品缺陷檢測(cè)技術(shù)通常是在果品采收后依靠人工分類,效率低、工作量大。目前,機(jī)器視覺(jué)中用于缺陷識(shí)別的方法可分為光譜成像、機(jī)器學(xué)習(xí)、圖像處理和深度學(xué)習(xí)四大類。Siedliska等[3]采用VNIR高光譜成像實(shí)現(xiàn)了櫻桃核的無(wú)損檢測(cè),精度達(dá)96%,但該技術(shù)存在特征波段的選擇和準(zhǔn)確性不穩(wěn)定等缺點(diǎn)。Zawbaa等[4]將經(jīng)尺度不變特征變換(SIFT)提取的算子輸入隨機(jī)森林(RF)識(shí)別蘋(píng)果,精度達(dá)96.97%,這種將圖像處理提取的特征結(jié)合機(jī)器學(xué)習(xí)分類器(如 Adaboost[5]、SVM[6]、DPM[7]等)進(jìn)行分類的算法,受環(huán)境影響較大,且設(shè)計(jì)的表征模型具有針對(duì)性。裴悅琨等[8]基于卷積神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)的櫻桃缺陷識(shí)別方法精度達(dá)到97.99%,但并不能定位到果品的位置。
基于以上檢測(cè)技術(shù)的缺點(diǎn),國(guó)內(nèi)外學(xué)者逐漸將果品識(shí)別的研究熱點(diǎn)轉(zhuǎn)向了基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法,更加關(guān)注圖像的局部區(qū)域和特定的物體類別,并應(yīng)用于多個(gè)領(lǐng)域[9-12]。Bargot等[13]使用Faster R-CNN檢測(cè)果園中的水果;Villacrés等[14]采用Faster R-CNN檢測(cè)真實(shí)果園中的櫻桃數(shù)量;Vasconez等[15]使用Faster R-CNN實(shí)現(xiàn)了不同田間條件下的水果追蹤和計(jì)數(shù)工作;但該算法在櫻桃缺陷識(shí)別中的研究尚未見(jiàn)報(bào)道。文章擬基于Faster R-CNN對(duì)櫻桃缺陷特征進(jìn)行檢測(cè),針對(duì)小目標(biāo)易誤檢、漏檢的問(wèn)題,對(duì)原始網(wǎng)絡(luò)算法進(jìn)行改進(jìn)。采用表征能力較強(qiáng)的ResNet50[16]作為特征網(wǎng)絡(luò),代替原始的VGG16主干網(wǎng)絡(luò);不同于傳統(tǒng)的單特征圖預(yù)測(cè),采用特征金字塔FPN[17]融合深淺層次網(wǎng)絡(luò),實(shí)現(xiàn)多尺度預(yù)測(cè),并結(jié)合遷移學(xué)習(xí)初始模型權(quán)重;提出結(jié)合注意力機(jī)制SENet、SKNet,用于加強(qiáng)關(guān)鍵特征信息的學(xué)習(xí),增強(qiáng)模型魯棒性,建立櫻桃缺陷檢測(cè)模型,方便自動(dòng)化處理程序根據(jù)返回的定位信息完成櫻桃的分配操作,為后期實(shí)現(xiàn)自動(dòng)化缺陷檢測(cè)提供一定的理論基礎(chǔ)與技術(shù)支持。
數(shù)據(jù)采集于遼寧省大連市金州區(qū)果園的櫻桃,基于實(shí)驗(yàn)室分揀原型設(shè)備構(gòu)建用于櫻桃缺陷檢測(cè)的數(shù)據(jù)集,主要包括數(shù)據(jù)采集及增強(qiáng)、數(shù)據(jù)分類及標(biāo)注。
櫻桃數(shù)據(jù)品種為美早,將采集到的果體置于模擬分揀環(huán)境下獲取樣本。每次采集前在滾輪間放置多個(gè)不同類別的櫻桃,轉(zhuǎn)動(dòng)齒輪使樣本數(shù)據(jù)盡量多地涵蓋果體各個(gè)面的特征,通常一張樣本圖中包含1~10個(gè)櫻桃。圖像像素為2 046×1 080,格式為JPG。為降低過(guò)擬合造成的試驗(yàn)誤差,采用旋轉(zhuǎn)、隨機(jī)裁剪、翻轉(zhuǎn)、平移,調(diào)整亮度、色度、飽和度、對(duì)比度和銳度等數(shù)據(jù)增強(qiáng)技術(shù)擴(kuò)充樣本數(shù)據(jù)集。
共獲取10 000張櫻桃樣本集,根據(jù)其生長(zhǎng)缺陷分為裂口、雙生、刺激生長(zhǎng)、霉變、褐變腐爛和完好6種類別(見(jiàn)圖1)。優(yōu)等果果體完好,可投入水果貿(mào)易市場(chǎng);裂口、雙生和刺激生長(zhǎng)類型的次等果依然可以繼續(xù)銷售,價(jià)格低于優(yōu)等果;霉變和褐變腐爛果應(yīng)及時(shí)剔除,避免流入市場(chǎng)。
圖1 6類櫻桃樣本圖
選擇LabelImg工具對(duì)圖像進(jìn)行標(biāo)注,并將標(biāo)注信息以PASCAL VOC的格式保存為XML文件。隨機(jī)選擇樣本的80%作為訓(xùn)練集,20%作為測(cè)試集,如圖2所示。
圖2 櫻桃樣本種類及數(shù)量
Faster R-CNN[18]是深度學(xué)習(xí)目標(biāo)檢測(cè)中典型的兩階段檢測(cè)模型,主要包括特征網(wǎng)絡(luò)、RPN網(wǎng)絡(luò)、Roi Pooling層、分類和回歸網(wǎng)絡(luò)。模型先通過(guò)特征網(wǎng)絡(luò)獲得特征圖,利用RPN生成精細(xì)的候選框,與特征圖映射后得到局部特征層,傳入Roi Pooling完成池化后,輸入分類和回歸網(wǎng)絡(luò),最終得到目標(biāo)的類別和位置信息?;贔aster R-CNN的櫻桃缺陷檢測(cè)過(guò)程如圖3所示。
圖3 基于Faster R-CNN的櫻桃缺陷檢測(cè)過(guò)程
基于ResNet50的殘差模塊包含Identity Block和Conv Block兩種結(jié)構(gòu)(見(jiàn)圖4)。Identity Block模塊的輸入和輸出向量的維度相同,可直接通過(guò)串聯(lián)加深網(wǎng)絡(luò),學(xué)習(xí)深層次的語(yǔ)義信息。Conv Block模塊的輸入和輸出向量的維度不同,需執(zhí)行1×1的卷積來(lái)匹配維度。
圖4 Identity Block和Conv Block殘差結(jié)構(gòu)
文章主要研究ResNet50作為特征網(wǎng)絡(luò)在櫻桃缺陷檢測(cè)中的表現(xiàn)效果,替代了原始框架中的VGG16,ResNet50由1個(gè)卷積層、1個(gè)全連接層和4組殘差模塊構(gòu)成,每組分別有3,4,6,3個(gè)block,每個(gè)block有3個(gè)卷積層(見(jiàn)圖5)。
圖5 ResNet50結(jié)構(gòu)圖
RPN主要采用端到端的訓(xùn)練方式生成區(qū)域候選框,代替了原始的滑動(dòng)窗口法和SS算法,極大地提高了檢測(cè)框的生成速度。
RPN網(wǎng)絡(luò)訓(xùn)練時(shí)產(chǎn)生的損失函數(shù)由分類損失Lcls和回歸損失Lreg兩部分組成。模型的訓(xùn)練損失函數(shù)為:
(1)
(2)
(3)
ti=(tx,ty,tw,th),
(4)
(5)
式中:
i——依次遍歷RPN網(wǎng)絡(luò)生成的第i個(gè)邊界框;
pi——第i個(gè)anchor預(yù)測(cè)為真實(shí)標(biāo)簽的概率;
Ncls——一個(gè)batch中anchor的數(shù)目;
Nreg——anchor位置的個(gè)數(shù);
λ——兩部分損失的調(diào)和因子;
ti——第i個(gè)邊界框的預(yù)測(cè)參數(shù);
smoothL1——平滑函數(shù)。
選用Faster R-CNN作為櫻桃缺陷檢測(cè)的模型,針對(duì)果體的缺陷特征,對(duì)該框架進(jìn)行改進(jìn),以提高模型檢測(cè)精度。
2.3.1 特征金字塔FPN 主干網(wǎng)絡(luò)前向傳播得到的最后一層共享特征圖,語(yǔ)義信息豐富,但圖像分辨率降低,丟失了大量的細(xì)節(jié)信息,易造成小目標(biāo)難檢問(wèn)題;而淺層特征圖分辨率較高,具備大量的細(xì)節(jié)信息,目標(biāo)定位較精準(zhǔn)。因此,尺度差異一直是目標(biāo)檢測(cè)領(lǐng)域的研究熱點(diǎn)[19]。文章采取一種將局部和全局信息相結(jié)合的方法,構(gòu)建特征金字塔FPN,實(shí)現(xiàn)多尺度特征圖的融合和預(yù)測(cè),在無(wú)明顯計(jì)算負(fù)擔(dān)的情況下增強(qiáng)特征的表達(dá)能力,以提高對(duì)小目標(biāo)的檢測(cè)精度。
通過(guò)FPN得到的多特征映射,利用自頂向下和橫向連接,將上層的特征圖經(jīng)上采樣后與下一層特征圖進(jìn)行融合[20],對(duì)不同深度的目標(biāo)實(shí)行多尺度預(yù)測(cè),最終得到的新特征向量被送入全連接層執(zhí)行分類和回歸任務(wù)。融合后的特征向量同時(shí)具備了深層次的高語(yǔ)義信息和淺層次的細(xì)節(jié)信息,能改善對(duì)小目標(biāo)的檢測(cè)效果,其網(wǎng)絡(luò)結(jié)構(gòu)如圖6所示。
圖6 ResNet50融合FPN結(jié)構(gòu)示意圖
2.3.2 注意力機(jī)制SENet SENet[21]是在特征圖的通道維度上增加注意力機(jī)制,在每個(gè)通道信號(hào)上增加一個(gè)權(quán)重以表示其與關(guān)鍵信息的相關(guān)性,從而篩選出重要信息,使模型加強(qiáng)關(guān)鍵特征,抑制無(wú)用特征。
如圖7(a)所示,在ResNet中嵌入SE模塊,對(duì)分支上的殘差模塊特征進(jìn)行特征重標(biāo)定。先對(duì)分支上的輸入值執(zhí)行全局池化操作Squeeze(Fsq),如式(6)所示,將維度特征降至一維,然后利用Excitation(Fex)操作預(yù)測(cè)每個(gè)通道的重要性,結(jié)合非線性激活ReLU擬合通道間的依賴關(guān)系,再利用Sigmoid歸一化權(quán)重,最后執(zhí)行Scale(Fscale)操作將權(quán)重值與原始特征通道加權(quán),從而使神經(jīng)網(wǎng)絡(luò)重點(diǎn)關(guān)注權(quán)重大的通道,提高模型檢測(cè)效率。
(6)
2.3.3 注意力機(jī)制SKNet SKNet[22]是在卷積核上增加注意力機(jī)制,同時(shí)考慮了通道和卷積的權(quán)重,針對(duì)不同圖像動(dòng)態(tài)地生成不同尺寸的卷積核,使網(wǎng)絡(luò)自主選擇合適的卷積核,獲取不同感受野的信息,增強(qiáng)模型魯棒性。
如圖7(b)所示,其操作過(guò)程主要包括:
圖7 SE-ResNet模塊和SK-ResNet模塊
(1)Split:為了提升精度,對(duì)輸入的特征圖X(C×H×W)使用不同大小的卷積核執(zhí)行Convolutions+Batch Normalization+ReLU運(yùn)算,X被分成兩條(或多條)分支F1:X→U1∈H×W×C,F(xiàn)2:X→U2∈H×W×C。
(2)Fuse:利用Add操作整合所有分支的信息:Uc=U1+U2,特征圖U融合了多個(gè)不同的感受野信息,然后利用全局平均池化操作嵌入全局信息,如式(7)所示。
(7)
式中:
sc——s的第c個(gè)元素(代表每個(gè)通道的重要程度)。
對(duì)1×1×C的s向量用一個(gè)全連接層進(jìn)行線性變換,得到信息z(1×1×Z),如式(8)所示,再對(duì)每個(gè)分支使用線性變換,將Z維恢復(fù)到C維向量,以預(yù)測(cè)不同組卷積的注意力因素。
z=Ffc(s)=δ[BN(Ws)],
(8)
式中:
z∈d×1;
δ——ReLU函數(shù);
BN——批標(biāo)準(zhǔn)化;
W∈d×C;
r——壓縮因子;
L——d的最小值。
(3)Select:對(duì)分支進(jìn)行歸一化,先將通道分?jǐn)?shù)與U1、U2相乘得到A1、A2,再將分支融合得到向量V,V相對(duì)于U融合了多個(gè)感受野信息。最終的特征映射V如式(9)和式(10)所示(其中e為自然數(shù))。
Vi=ai×A1+bi×A2,
(9)
(10)
式中:
a、b——Select的2個(gè)權(quán)重矩陣;
Ai、Bi——A、B的第i行(A,B∈C×d);
ai、bi——a、b的第i個(gè)元素(ai+bi=1)。
特征圖循環(huán)經(jīng)過(guò)殘差注意力機(jī)制后執(zhí)行FPN多尺度預(yù)測(cè),傳入RPN與候選信息相映射,最后執(zhí)行分類和回歸任務(wù)。由于SKNet采用不同的卷積核,可以自適應(yīng)地調(diào)整自身的感受野,因此比SENet更加細(xì)膩,具有更高的精度。改進(jìn)后的Faster R-CNN模型如圖8所示。
圖8 改進(jìn)后的Faster R-CNN網(wǎng)絡(luò)結(jié)構(gòu)圖
如圖9所示,基于深度學(xué)習(xí)的櫻桃缺陷檢測(cè)系統(tǒng)硬件由模擬流水線環(huán)境和電腦配置兩部分組成。模擬流水線環(huán)境配置用于獲取櫻桃數(shù)據(jù)集,電腦配置部分用于對(duì)數(shù)據(jù)集進(jìn)行處理。
(1)工業(yè)化環(huán)境配置:照明系統(tǒng)、CMOS攝像機(jī)(acA2000-50g型)、鏡頭[M1614-MP29(CH)3型號(hào)]、POE千兆網(wǎng)卡(LR5M千兆網(wǎng)卡型號(hào))和傳送齒輪等。
(2)電腦配置:臺(tái)式電腦,GeForceGTX3080顯卡,單GPU10G顯存;Inter(R)Core(TM)i9-10900K處理器,32 G內(nèi)存,頻率DDR43000,基于PyCharm的Python編程語(yǔ)言,Windows-Sever 2019、64位操作系統(tǒng),采用Pytorch深度學(xué)習(xí)框架。
在數(shù)據(jù)集Microsoft COCO預(yù)訓(xùn)練權(quán)重的基礎(chǔ)上,采用遷移學(xué)習(xí)初始化權(quán)重參數(shù),降低深度學(xué)習(xí)模型訓(xùn)練的難度?;贔aster R-CNN,模型所采用的特征網(wǎng)絡(luò)為ResNet50,輸入圖片的大小歸一化為300像素×300像素,采用隨機(jī)梯度法訓(xùn)練網(wǎng)絡(luò),動(dòng)量設(shè)為0.9,學(xué)習(xí)率初始化為0.005,權(quán)重衰減因子為0.000 5,迭代次數(shù)為100,每訓(xùn)練5步以0.33倍速降低學(xué)習(xí)率值。訓(xùn)練時(shí)采用的batchsize大小為8,IoU值為0.5。
為衡量試驗(yàn)?zāi)P蛯?duì)解決櫻桃缺陷識(shí)別的有效性,采用深度學(xué)習(xí)領(lǐng)域常用的衡量指標(biāo)平均AP值(mAP)、F1值和每秒幀率(FPS)評(píng)價(jià)模型性能。
mAP是所有類別平均精度AP的平均值,取值區(qū)間為[0,1],AP是由精確率P和召回率R繪制而成的曲線面積。F1綜合了P和R兩個(gè)指標(biāo),其計(jì)算為:
(11)
(12)
(13)
(14)
(15)
式中:
TP——真正例;
FP——假正例;
FN——假反例;
N——類別數(shù);
AP(i)——第i類目標(biāo)的AP值。
指標(biāo)每秒幀率(FPS)用于評(píng)估模型對(duì)圖片的處理速度,即每秒鐘識(shí)別的圖片數(shù)目。
為了更全面理解試驗(yàn)方法對(duì)檢測(cè)結(jié)果的影響,通過(guò)對(duì)櫻桃缺陷數(shù)據(jù)集采用多種策略進(jìn)行實(shí)驗(yàn)驗(yàn)證。先探究主干網(wǎng)絡(luò)ResNet50對(duì)試驗(yàn)結(jié)果的影響。為避免試驗(yàn)其他元素對(duì)結(jié)果的作用,在保證模型參數(shù)一致的前提下,對(duì)比特征網(wǎng)絡(luò)為VGG16、MobileNet-V2和ResNet50的3種檢測(cè)模型,試驗(yàn)結(jié)果見(jiàn)表1。
由表1可知,將原始的VGG16替換為MobileNet V2和ResNet50后,mAP指標(biāo)分別提升了5.89%,11.85%,F(xiàn)1值分別提升了4%,8%。網(wǎng)絡(luò)ResNet50的mAP、F1值均高于其他網(wǎng)絡(luò),說(shuō)明其殘差結(jié)構(gòu)在試驗(yàn)中具有優(yōu)越性和較強(qiáng)的表征能力。基于ResNet50的目標(biāo)模型雖然在雙生、刺激生長(zhǎng)、完好這3類較大尺度的目標(biāo)上檢測(cè)結(jié)果較好,但對(duì)于裂口、霉變、褐變腐爛這種小目標(biāo)的檢測(cè)精度有待提高,識(shí)別能力相對(duì)較弱。
在正常光線下,基于ResNet50的Faster R-CNN能識(shí)別出特征明顯的果體,但由于雙生與刺激生長(zhǎng)、霉變與褐變腐爛兩兩之間的相似特征造成檢測(cè)效果較弱,未被正確識(shí)別,對(duì)裂口也易造成誤檢漏檢,為了提高對(duì)小目標(biāo)的檢測(cè)精度,同時(shí)緩解由于網(wǎng)絡(luò)層數(shù)的增多而帶來(lái)的目標(biāo)特征丟失現(xiàn)象,引入FPN進(jìn)行多尺度預(yù)測(cè),為加快訓(xùn)練速度,采用遷移學(xué)習(xí)初始化試驗(yàn)?zāi)P蜋?quán)重。
由表2可知,對(duì)特征網(wǎng)絡(luò)采用基于特征融合的多尺度預(yù)測(cè)后,模型對(duì)所有類別的檢測(cè)均有正向促進(jìn)作用,尤其對(duì)霉變、褐變腐爛、裂口和刺激生長(zhǎng)的改善效果明顯,AP值分別提高了18.13%,9.49%,9.21%,9.06%,對(duì)于完好和雙生果的精度也分別提高了0.69%,0.64%,模型mAP值提升了7.86%,證明了融合多尺度特征層更能獲得較準(zhǔn)確的物體信息,提高小目標(biāo)檢測(cè)精度。融合FPN后,試驗(yàn)?zāi)P蛯?duì)于小目標(biāo)誤檢、漏檢現(xiàn)象得到了明顯改善,且對(duì)各種缺陷的檢測(cè)精度均值達(dá)到99%,說(shuō)明結(jié)合FPN的策略是有效的。
表2 櫻桃測(cè)試集上不同改進(jìn)策略對(duì)比
在上述改進(jìn)策略后的基準(zhǔn)網(wǎng)絡(luò)上分別引入SENet、SKNet模塊,模型mAP值分別繼續(xù)提升了0.14%,0.48%,且注意力機(jī)制模塊參數(shù)少、計(jì)算快,改進(jìn)前后并未對(duì)模型帶來(lái)明顯的網(wǎng)絡(luò)負(fù)擔(dān),證明了注意力機(jī)制在圖像檢測(cè)任務(wù)中的有效性。不同改進(jìn)策略模型的Eval mAP和改進(jìn)前后模型損失分別見(jiàn)圖10和圖11。
圖10 不同優(yōu)化策略模型Eval mAP圖
圖11 模型損失對(duì)比圖
為了更好地證明試驗(yàn)方法的優(yōu)越性,將改進(jìn)的Faster R-CNN模型與其他基于深度學(xué)習(xí)的檢測(cè)算法進(jìn)行對(duì)比,結(jié)果見(jiàn)表3和表4。
由表3和表4可知,在各類物體的檢測(cè)結(jié)果上,試驗(yàn)改進(jìn)后的模型優(yōu)于其他典型的深度學(xué)習(xí)檢測(cè)方法,相比于SSD、YOLO V3、YOLO V4具有較高的檢測(cè)性能,mAP值分別提升了5.53%,4.64%,4.02%,F(xiàn)PS值為31.16幀/s。與文獻(xiàn)[8]檢測(cè)方法相比,試驗(yàn)缺陷果檢測(cè)精度稍高,檢測(cè)速度為311個(gè)/s,遠(yuǎn)高于文獻(xiàn)[8]。說(shuō)明改進(jìn)后的模型算法表現(xiàn)出了實(shí)際應(yīng)用的穩(wěn)定性,檢測(cè)耗時(shí)在可接受的范圍內(nèi),證明了試驗(yàn)方法的可行性。
表3 櫻桃測(cè)試集上不同檢測(cè)算法的對(duì)比
表4 櫻桃缺陷種類識(shí)別結(jié)果對(duì)比
為實(shí)現(xiàn)櫻桃智能識(shí)別分級(jí)分揀,建立了基于Faster R-CNN的櫻桃缺陷檢測(cè)模型,主要解決了小目標(biāo)易誤檢、漏檢的問(wèn)題。主干網(wǎng)絡(luò)采用具有強(qiáng)特征提取能力的ResNet50,結(jié)合多尺度特征融合與預(yù)測(cè)的方式,提高了對(duì)小目標(biāo)區(qū)域的表征提取,以此更匹配試驗(yàn)對(duì)象。采取主干網(wǎng)絡(luò)融合注意力機(jī)制的優(yōu)化方式,引導(dǎo)模型關(guān)注方向,提高了模型檢測(cè)精度。采用改進(jìn)策略后的Faster R-CNN模型對(duì)缺陷、完好果的識(shí)別精度分別為98.13%,98.80%,通過(guò)與其他方法的對(duì)比,驗(yàn)證了改進(jìn)后的Faster R-CNN對(duì)于櫻桃缺陷識(shí)別具有高精度和可靠的實(shí)時(shí)性優(yōu)勢(shì),能夠滿足流水線櫻桃缺陷檢測(cè)工程的精準(zhǔn)識(shí)別,但模型參數(shù)龐大,增加了內(nèi)存開(kāi)銷,檢測(cè)速度有待提高,故后續(xù)擬研究輕量級(jí)深度網(wǎng)絡(luò)模型,在保證高精度的同時(shí)增強(qiáng)實(shí)時(shí)性檢測(cè)。