王相友 李晏興 楊振宇 張 蒙 王榮銘 崔麗霞
(1.山東理工大學(xué)農(nóng)業(yè)工程與食品科學(xué)學(xué)院, 淄博 255000; 2.山東理工大學(xué)機(jī)械工程學(xué)院, 淄博 255000)
隨著“馬鈴薯主糧化”戰(zhàn)略的實施,馬鈴薯種植業(yè)得到大力發(fā)展,馬鈴薯收獲成為影響馬鈴薯產(chǎn)業(yè)發(fā)展的重要因素。采用現(xiàn)有機(jī)械化收獲方式收獲馬鈴薯會摻雜大量的土塊和石塊,需要依靠人工進(jìn)行撿拾,這降低了馬鈴薯收獲效率、增加了收獲成本[1-3]。
針對馬鈴薯中土塊與石塊的識別與剔除問題,國內(nèi)外學(xué)者進(jìn)行了大量研究。HOSAINPOUR等[4]基于聲學(xué)原理,利用反向傳播算法的多層神經(jīng)網(wǎng)絡(luò)進(jìn)行模式識別,對馬鈴薯和土塊的檢測正確率分別為97.3%和97.6%。Al-MALLAHI等[5-6]利用基于像素顏色信息的線性判別分析識別馬鈴薯中的土塊,并利用高光譜成像技術(shù)對成像波段進(jìn)行優(yōu)選,識別正確率可達(dá)98%以上;利用馬鈴薯和土塊在紫外波段不同反射率造成的成像差異,通過平滑灰度直方圖,將波峰對應(yīng)的灰度設(shè)置為閾值分割背景、土塊和馬鈴薯,從而識別出98.79%的馬鈴薯和98.28%的土塊。MCGLOUGHLIN等[7]以馬鈴薯像素占比為判斷閾值,高于該閾值的目標(biāo)判斷為馬鈴薯,低于該閾值的目標(biāo)判斷為土塊或石塊。挪威TOMRA公司采用近紅外相機(jī)和彩色相機(jī)成像的方法去除馬鈴薯中土塊、石塊等異物,生產(chǎn)率可達(dá)7~15 t/h。美國KEY TECHNOLOGY公司采用激光和機(jī)器視覺技術(shù)相結(jié)合的方法分選馬鈴薯中的異物,最高生產(chǎn)率可達(dá)45 t/h。王榮本等[8-9]從模式識別的分類理論出發(fā),提出基于改進(jìn)的二維類間方差的多門限閾值石塊分割方法。謝勝仕等[10]以明薯率和破皮率為評價指標(biāo),通過優(yōu)化薯土擺動分離篩的結(jié)構(gòu)和工作參數(shù)實現(xiàn)了薯土分離。耿金鳳[11]采用支持向量機(jī)對馬鈴薯中的土塊與石塊進(jìn)行分類識別研究。劉芳等[12]提出了一種改進(jìn)型多尺度YOLO算法,構(gòu)建了復(fù)雜環(huán)境下番茄果實快速識別網(wǎng)絡(luò)模型,該模型對番茄圖像的檢測精度為97.13%,準(zhǔn)確率為96.36%。WU等[13]利用通道剪枝算法對YOLO v4算法進(jìn)行優(yōu)化,模型參數(shù)量減少了96.74%,推斷時間縮短了39.47%。
上述研究大都利用馬鈴薯與土塊和石塊的差異來實現(xiàn)土塊和石塊的識別。在實際生產(chǎn)中,馬鈴薯收獲后其表面會附著大量泥土,只有少部分薯皮外露,現(xiàn)有方法易將馬鈴薯誤判為土塊。此外,某些石塊的顏色和形狀與馬鈴薯相近,也會對石塊識別產(chǎn)生影響。因此,只有獲取目標(biāo)物更深層的特征信息,才能提高含雜馬鈴薯中土塊和石塊的檢測精度。
YOLO[14-15]系列網(wǎng)絡(luò)是一種基于深度卷積神經(jīng)網(wǎng)絡(luò)的對象識別和定位算法,其突出特點是運(yùn)行速度快、可以用于實時檢測。YOLO通過主干特征提取網(wǎng)絡(luò),獲取輸入圖像的深度特征,利用特征融合進(jìn)一步提高特征的有效性,能夠提高目標(biāo)檢測的精度。本文以YOLO v4算法為基礎(chǔ),建立含雜馬鈴薯土塊石塊檢測模型,利用通道剪枝算法對模型進(jìn)行優(yōu)化,以降低運(yùn)算成本,提升目標(biāo)檢測的速度和精度。
含雜馬鈴薯圖像數(shù)據(jù)采集于內(nèi)蒙古自治區(qū)烏蘭察布市商都縣,拍攝于2020年9月20—27日。圖像采集設(shè)備為MV-UBS31GC型工業(yè)相機(jī)。圖1為圖像采集示意圖。
采集圖像時,相機(jī)固定在馬鈴薯輸送帶上方約60 cm處,在自然光的照射下進(jìn)行拍攝,拍攝結(jié)果保存為752像素×480像素的RGB圖像,土塊圖像1 187幅,石塊圖像794幅,根莖圖像15幅,其他雜物圖像13幅。含雜馬鈴薯中主要雜物為土塊和石塊,其他雜物數(shù)量遠(yuǎn)少于土塊和石塊,由于用來訓(xùn)練模型的樣本數(shù)量不足,故選擇土塊和石塊作為主要研究對象。圖2為一組輸送帶上馬鈴薯中土塊石塊圖像,圖2a、2b中表面附著有泥土的馬鈴薯和含水率高的土塊灰度分布在[60,140]區(qū)間內(nèi);圖2c、2d中含水率低的土塊和石塊的灰度分布在[40,210]區(qū)間內(nèi),與馬鈴薯灰度分布區(qū)間有較大重合。如果通過圖像增強(qiáng)方法增加圖像中目標(biāo)物之間的灰度差異,利用基于灰度的閾值分割方法對圖像進(jìn)行分割,通過形態(tài)學(xué)處理去除背景中的小目標(biāo),可能會因為土塊石塊與馬鈴薯灰度相同無法分割出目標(biāo)。因此本文利用深度卷積神經(jīng)網(wǎng)絡(luò)提取土塊石塊特征,實現(xiàn)含雜馬鈴薯中土塊石塊的識別。
本研究共獲取了1 856幅圖像,利用LabelImg對每幅圖像中的馬鈴薯、土塊和石塊進(jìn)行人工標(biāo)注,標(biāo)注時以目標(biāo)的最小外接矩形作為真實框。為豐富目標(biāo)物的背景,采用Mosaic數(shù)據(jù)增強(qiáng)[16-17]方法,通過讀取4幅不同圖像,分別對4幅圖像進(jìn)行翻轉(zhuǎn)、縮放和色域變化等操作,并且將4幅圖像按左上、左下、右下和右上4個方向位置擺好,最后進(jìn)行圖像組合和真實框組合。結(jié)果如圖3所示。通過以上方法,最終將數(shù)據(jù)集樣本圖像擴(kuò)增至8 621幅,隨機(jī)選取其中70%(6 035幅)作為訓(xùn)練集,30%(2 586幅)作為測試集。
土塊因含水率不同表現(xiàn)出不同的形狀和顏色[18],本研究圖像數(shù)據(jù)的采集時間分別是08:00—12:00和14:00—18:00,以保證本文方法對不同土塊形態(tài)的適應(yīng)性。
研究所用計算機(jī)為Intel? CoreTMi7-10700k,5.1 GHz處理器,運(yùn)行內(nèi)存為16 GB,存儲內(nèi)存為256 GB,11GB NVIDIA RTX2080ti GPU,開發(fā)環(huán)境為Python 3.7。
含雜馬鈴薯中土塊石塊快速檢測的技術(shù)路線如圖4所示。將人工標(biāo)注的土塊石塊數(shù)據(jù)輸入YOLO v4模型中進(jìn)行訓(xùn)練和微調(diào),實現(xiàn)模型對目標(biāo)的快速識別。通過利用通道剪枝算法對模型中冗余通道和權(quán)重參數(shù)進(jìn)行修剪,從而在保證精度的情況下簡化模型的結(jié)構(gòu)和參數(shù)。
YOLO v4目標(biāo)檢測算法是YOLO v3目標(biāo)檢測算法的改進(jìn)版,相較于YOLO v3目標(biāo)檢測算法,該算法分別從數(shù)據(jù)增強(qiáng)、主干特征提取網(wǎng)絡(luò)、特征金字塔、損失函數(shù)和激活函數(shù)等方面進(jìn)行了優(yōu)化,提高了該算法實時檢測的速度和精度[19]。YOLO v4通過主干特征提取網(wǎng)絡(luò)CSPDarknet53實現(xiàn)輸入圖像的特征提取,利用PANet(Path aggregation network)實現(xiàn)不同輸出層之間的特征融合,在分類回歸層仍然沿用YOLO v3的結(jié)構(gòu)。本文基于YOLO v4算法建立的含雜馬鈴薯中土塊石塊的檢測識別模型主要由以下4個模塊構(gòu)成:CSP(Center and scale prediction)模塊將原來殘差塊的堆疊劃分成了兩部分,一部分繼續(xù)進(jìn)行殘差塊的堆疊,另一部分只經(jīng)少量處理再與輸出相連,能夠提高網(wǎng)絡(luò)的學(xué)習(xí)能力。CBM(Convolution,batch normalization and Mish)模塊用來提取輸入圖像特征,包括卷積、標(biāo)準(zhǔn)化和Mish激活函數(shù)處理。CBL(Convolution, batch normalization and LeakyReLU)模塊同樣用來提取圖像特征,與CBM模塊不同的是,該模塊的激活函數(shù)為LeakyReLU。SPP(Spatial pyramid pooling)模塊利用不同尺度的最大池化對輸入特征層進(jìn)行池化后再進(jìn)行堆疊,能夠極大增加感受野。
為提高模型的檢測效率,設(shè)定輸入圖像尺寸為416像素×416像素。YOLO v4模型的主要參數(shù)為:學(xué)習(xí)率0.001,迭代次數(shù)8 000,類別為2。在設(shè)定好模型參數(shù)后,分別將訓(xùn)練集和測試集中的數(shù)據(jù)輸入YOLO v4模型中進(jìn)行處理。YOLO v4模型的損失值(L)主要由邊界框損失值(LCIoU)、置信度損失值(Lconf)和類別損失值(Lclass)組成[20],損失值計算式為
L=LCIoU+Lconf+Lclass
(1)
(2)
(3)
(4)
BCE(,n)=-lgn-(1-)lg(1-n)
(5)
(6)
(7)
(8)
式中IoU——預(yù)測框與真實框交集和并集的比值
a——權(quán)重系數(shù)
v——長寬相似比
d——預(yù)測框和真實框中心點間的歐氏距離
c——預(yù)測框和真實框所組成的最小閉包區(qū)域?qū)蔷€的距離
wgt、hgt——真實框的寬和高
w、h——預(yù)測框的寬和高
S——網(wǎng)格數(shù)量
pc——第i個網(wǎng)格的第j個先驗框負(fù)責(zé)物體時的交叉熵
B——每個網(wǎng)格中先驗框的數(shù)量
n——第i個網(wǎng)格的第j個先驗框預(yù)測的類
p——當(dāng)前先驗框有物體的概率
本文對YOLO v4模型進(jìn)行8 000次迭代,圖5為損失函數(shù)的變化趨勢。從圖5中可以看出,損失函數(shù)在迭代的初期下降迅速,表明模型正在快速擬合,模型的學(xué)習(xí)效率較高。隨著迭代的進(jìn)行,約在1 800次時,模型損失值減小速度開始變緩,迭代至4 000次時,損失值在0.3附近波動,模型達(dá)到穩(wěn)定狀態(tài)。
本文提出的YOLO v4模型檢測結(jié)果如圖6所示,在復(fù)雜背景下模型能夠準(zhǔn)確識別出馬鈴薯、土塊和石塊,識別結(jié)果不受目標(biāo)物表面泥土以及土塊含水量的影響,證明了該檢測模型的有效性,為模型剪枝提供了基礎(chǔ)。
本文所建立的YOLO v4模型雖能實現(xiàn)收獲后馬鈴薯中雜物的檢測,但模型的結(jié)構(gòu)和參數(shù)數(shù)量較大,計算耗時較大,另一方面,含雜馬鈴薯中土塊石塊的檢測一般在田間進(jìn)行,需要與輸送設(shè)備配合使用。因此,為提高檢測模型的實用性,降低模型的計算量,有必要對模型進(jìn)行修剪。
通道剪枝算法能夠修剪掉模型中不重要的通道以及相關(guān)的輸入輸出關(guān)系[21]。與分層剪枝算法相比,該算法減少了需要存儲的參數(shù)量,對硬件的要求更低,更容易部署在小型移動設(shè)備上[13-14]。本文在保證精度的基礎(chǔ)上利用通道剪枝算法對YOLO v4模型進(jìn)行修剪。
通道剪枝算法實現(xiàn)原理如圖7所示,在模型訓(xùn)練期間,利用網(wǎng)絡(luò)中批歸一化(BN)層[22]的γ系數(shù)對每個輸入通道的貢獻(xiàn)率進(jìn)行評分。將貢獻(xiàn)率高的通道(藍(lán)線)進(jìn)行保留,貢獻(xiàn)率低的通道(紅線)進(jìn)行修剪,修剪后的模型結(jié)構(gòu)更加緊湊(右側(cè))。
模型剪枝的具體步驟如下:
(1)在模型訓(xùn)練期間,通過對網(wǎng)絡(luò)BN層的γ系數(shù)施加L1正則約束,使模型朝著結(jié)構(gòu)性稀疏的方向調(diào)整參數(shù)。
(2)在完成稀疏訓(xùn)練后,模型便按照既定的剪枝率進(jìn)行修剪,從而降低模型占用的存儲空間。
(3)剪枝完成后,對模型進(jìn)行微調(diào)以有效恢復(fù)剪枝造成的精度損失。
通道剪枝算法損失函數(shù)為
(9)
式(9)中等號右側(cè)第1項為網(wǎng)絡(luò)訓(xùn)練的損失函數(shù);x和y分別為訓(xùn)練的輸入和輸出;W為網(wǎng)絡(luò)的訓(xùn)練參數(shù);第2項為BN層γ系數(shù)的L1正則約束項;λ為懲罰因子。
本文通道剪枝處理的基本參數(shù)設(shè)置如表1所示。
表1 通道剪枝的基本參數(shù)設(shè)定
各BN層γ系數(shù)分布中心的變化趨勢如圖8所示,圖中γ系數(shù)隨著訓(xùn)練的進(jìn)行逐漸趨近于0,只有部分γ系數(shù)未衰減到0,說明γ系數(shù)正逐漸變得稀疏。直到迭代300次時,γ系數(shù)趨于穩(wěn)定,說明稀疏訓(xùn)練已達(dá)到穩(wěn)定狀態(tài)。稀疏訓(xùn)練完成后,以0.8為剪枝率對YOLO v4模型進(jìn)行通道修剪。剪枝后各層通道數(shù)量變化如圖9所示,各個卷積層的通道數(shù)量都得到了大幅度降低,證明該剪枝算法是有效的。
剪枝結(jié)果如表2所示,剪枝后模型的參數(shù)量減少了94.37%,模型存儲空間下降了187.35 MB,前向運(yùn)算時間縮短了0.02 s,mAP下降了2.1個百分點。微調(diào)后模型參數(shù)和占用空間略有增加,但其精度仍與剪枝前相近,前向傳播時間也沒有明顯變化。結(jié)果表明,剪枝處理能夠在保證模型原有精度的情況下對模型進(jìn)行簡化。
表2 微調(diào)后模型參數(shù)
選用平均精度均值(mAP)、準(zhǔn)確率P、召回率R和檢測速度作為模型性能的評價指標(biāo)。
模型經(jīng)非極大抑制(Non maximum suppression,NMS)處理后,選取置信度大于0.5的預(yù)測框為正樣本,反之為負(fù)樣本。
基于剪枝算法的YOLO v4檢測模型對2 586幅圖像的識別準(zhǔn)確率為91.43%,召回率為97.64%,平均IoU為87.25%,mAP為96.42%,檢測速度為78.49 f/s。識別結(jié)果表明,該模型檢測精度高,檢測速度快,為收獲后馬鈴薯在線除雜提供了技術(shù)基礎(chǔ)。
在目標(biāo)檢測領(lǐng)域,F(xiàn)aster R-CNN[23]、Tiny-YOLO v2、YOLO v3[24]、SSD[25]都有較高的檢測精度,為驗證本文方法的有效性,使用本文訓(xùn)練集對這4種模型和YOLO v4模型進(jìn)行訓(xùn)練,使用測試集數(shù)據(jù)對這5種算法性能進(jìn)行評估,評估結(jié)果如表3所示。
表3 5種算法的性能評估
與其他5種模型相比,本文方法的準(zhǔn)確率更高。剪枝后的YOLO v4 模型的mAP相比剪枝前的YOLO v4模型下降了2.1個百分點,微調(diào)后模型精度仍與剪枝前相近。在檢測速度方面,YOLO v3和SSD雖然比本文方法大,但mAP分別比本文方法低5.65、10.78個百分點。雖然YOLO v3在檢測速度和準(zhǔn)確率兩方面與本文方法相近,但在模型存儲空間方面,本文方法有絕對優(yōu)勢,本文方法比Tiny-YOLO v2小49.82 MB。
綜上所述,與其他5種模型相比,本文方法有較高的mAP和較高的檢測速度,其中mAP比Faster R-CNN、Tiny-YOLO v2、YOLO v3、SSD高11.2、11.5、5.65、10.78個百分點,比YOLO v4模型低0.04個百分點。檢測速度分別比Faster R-CNN、Tiny-YOLO v2和YOLO v4高27.73、38.17、7.58 f/s。本文方法檢測準(zhǔn)確率高,檢測速度快,剪枝處理后占用空間小,證明基于剪枝算法的YOLO v4檢測模型具有較高的實用性,可用于收獲后含雜馬鈴薯中土塊石塊的檢測。
比較了在不同剪枝率下兩種模型的各項性能,結(jié)果如表4所示,以剪枝率0.8和0.97分別對YOLO v3模型和YOLO v4模型進(jìn)行處理,并與未作剪枝處理的模型進(jìn)行比較。
表4 不同剪枝率模型性能對比
每秒浮點運(yùn)算次數(shù)和模型存儲空間都得到了大幅度壓縮,剪枝率為0.97的YOLO v4模型存儲空間為14.68 MB,模型存儲空間被壓縮到原始模型存儲空間的7.24%,剪枝率為0.8的模型被壓縮到原始模型的10.23%。
在模型性能方面,剪枝處理會在一定程度上降低模型的mAP,但在較大的剪枝率(0.97)下,mAP僅下降了約3個百分點,小的剪枝率則下降的更少。對比兩種模型剪枝與不剪枝的結(jié)果,模型各項性能得到一定的提升,說明剪枝處理在當(dāng)前數(shù)據(jù)集中有積極效果。
在運(yùn)算速度上,剪枝率0.97的YOLO v3模型速度相比原始模型提升了38.71%,剪枝率0.8的模型相比原模型提升了12.9%;剪枝率0.97的YOLO v4模型速度相比原始模型提升了40.96%,剪枝率0.8的模型相比原模型提升了24.1%,說明剪枝處理能有效提高模型前向運(yùn)算速度。
提出了基于改進(jìn)YOLO v4模型的含雜馬鈴薯中土塊石塊的檢測方法。YOLO v4模型以CSPDarknet53為主干特征提取網(wǎng)絡(luò),在保證檢測準(zhǔn)確率的前提下,利用通道剪枝算法對模型進(jìn)行剪枝處理,以簡化模型結(jié)構(gòu)、降低運(yùn)算量。采用Mosaic數(shù)據(jù)增強(qiáng)方法擴(kuò)充圖像數(shù)據(jù)集(8 621幅圖像),對模型進(jìn)行微調(diào),實現(xiàn)了馬鈴薯中土塊石塊的檢測。測試結(jié)果表明,模型參數(shù)量減少了94.37%,模型存儲空間下降了187.35 MB,前向運(yùn)算時間縮短了0.02 s,mAP為96.42%,模型存儲空間為20.75 MB,檢測速度為78.49 f/s,滿足實際生產(chǎn)需要,可應(yīng)用于收獲后馬鈴薯的除雜處理。