王淑青 黃劍鋒 張鵬飛 王 娟
(湖北工業(yè)大學(xué)電氣與電子工程學(xué)院,湖北 武漢 430068)
近年來(lái),中國(guó)小龍蝦產(chǎn)量逐步上升,蝦球與整蝦的剝離是其初加工的重要部分,而識(shí)別小龍蝦合格與否是其中重要的一環(huán)[1-2]。目前,小龍蝦質(zhì)量的判別一般由人工完成,需花費(fèi)大量的時(shí)間和人力成本,而且誤判的可能性較大。根據(jù)小龍蝦蜷曲程度進(jìn)行質(zhì)量檢測(cè)的研究尚未見(jiàn)相關(guān)報(bào)道,但是目標(biāo)檢測(cè)技術(shù)在食品領(lǐng)域的應(yīng)用較多,其中基于深度學(xué)習(xí)的目標(biāo)檢測(cè)技術(shù)在眾多領(lǐng)域中展現(xiàn)了其優(yōu)越性[3-6],在食品加工與檢測(cè)中也備受青睞[7-9]。宋超[10]使用無(wú)監(jiān)督的K-means結(jié)合支持向量機(jī)的傳統(tǒng)方法與深度學(xué)習(xí)方法對(duì)雞蛋裂紋進(jìn)行了檢測(cè),結(jié)果表明傳統(tǒng)方法的環(huán)境適應(yīng)性較差,基于深度學(xué)習(xí)的缺陷識(shí)別率較傳統(tǒng)方法提高了近3%;Fan等[11]使用基于候選缺陷區(qū)域計(jì)數(shù)和支持向量機(jī)的方法對(duì)蘋(píng)果外觀缺陷進(jìn)行了在線檢測(cè),其檢測(cè)精度遠(yuǎn)低于深度學(xué)習(xí)方法。尹宏鵬等[12]研究發(fā)現(xiàn),深度學(xué)習(xí)是當(dāng)下最優(yōu)秀的視覺(jué)識(shí)別方法,而且相比傳統(tǒng)方法有著更大的發(fā)展空間。
YOLOv4是近期被提出的檢測(cè)效率更高的深度卷積神經(jīng)網(wǎng)絡(luò)。為確保小龍蝦檢測(cè)模型的工作效率,文章擬設(shè)計(jì)一種基于YOLOv4深度學(xué)習(xí)網(wǎng)絡(luò)的小龍蝦質(zhì)檢方法,通過(guò)對(duì)小龍蝦圖像進(jìn)行添噪、旋轉(zhuǎn)等制作多種形態(tài)的小龍蝦數(shù)據(jù)圖像,使用YOLOv4網(wǎng)絡(luò)模型對(duì)數(shù)據(jù)集進(jìn)行學(xué)習(xí)與訓(xùn)練,使用工業(yè)CCD相機(jī)在線采集并檢測(cè)小龍蝦的質(zhì)量類別,驗(yàn)證該模型的分類準(zhǔn)確率和檢測(cè)速度都能滿足生產(chǎn)需求,可以提高小龍蝦生產(chǎn)效率。
蝦球的生產(chǎn)需將小龍蝦煮至半熟狀態(tài),此時(shí)外殼鮮紅,蜷曲角度<90°的為合格小龍蝦(圖1),文章提出的小龍蝦檢測(cè)方法即通過(guò)小龍蝦的蜷曲特征判斷其質(zhì)量。
小龍蝦檢測(cè)主要由圖像獲取、圖像處理和小龍蝦分揀3部分完成,其檢測(cè)系統(tǒng)模型如圖2所示[13]。使用工業(yè)相機(jī)對(duì)小龍蝦生產(chǎn)線進(jìn)行拍攝取圖,工業(yè)光源有助于獲取更清晰的生產(chǎn)圖像,有利于提高系統(tǒng)檢測(cè)的準(zhǔn)確率;

圖1 小龍蝦質(zhì)量分類Figure 1 Crayfish quality classification

1. 傳送帶 2. 工業(yè)光源 3. 工業(yè)相機(jī) 4. 計(jì)算機(jī) 5. 人機(jī)交互 6. 分揀裝置圖2 小龍蝦質(zhì)量檢測(cè)系統(tǒng)Figure 2 Crayfish quality inspection system
圖像處理通過(guò)事先采集大量小龍蝦圖像數(shù)據(jù),使用YOLOv4網(wǎng)絡(luò)對(duì)數(shù)據(jù)集進(jìn)行訓(xùn)練,將訓(xùn)練好的YOLOv4模型移植到工業(yè)計(jì)算機(jī)用于小龍蝦生產(chǎn)線的實(shí)時(shí)檢測(cè);小龍蝦分揀主要由機(jī)械臂或其他分揀裝置挑揀出檢測(cè)到的質(zhì)量不合格小龍蝦。
YOLO網(wǎng)絡(luò)是一種利用回歸網(wǎng)絡(luò)實(shí)現(xiàn)目標(biāo)檢測(cè)的分類算法,與傳統(tǒng)區(qū)域候選網(wǎng)絡(luò)[14-15]相比,YOLO網(wǎng)絡(luò)整合產(chǎn)生候選區(qū)和檢測(cè)兩個(gè)階段,直接將檢測(cè)任務(wù)視作回歸問(wèn)題,因此擁有更快的檢測(cè)速度,并在大多目標(biāo)檢測(cè)任務(wù)中表現(xiàn)出良好的效果,能夠?qū)崿F(xiàn)端到端的預(yù)測(cè)[16]。YOLOv4整體網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
YOLOv4目標(biāo)檢測(cè)網(wǎng)絡(luò)以CSPDarknet53為主干,包含5個(gè)CSP模塊,各模塊前的卷積核大小為3×3,步幅為2,能夠進(jìn)一步增強(qiáng)網(wǎng)絡(luò)學(xué)習(xí)能力;路徑聚合網(wǎng)絡(luò)(PANet)作為頸部,增添空間金字塔池(SPP)附加模塊,采用1×1,5×5,9×9,13×13最大池化方式,能夠增加感受區(qū)并分離出更重要的上下文特征;沿用YOLOv3檢測(cè)頭作為頭部。YOLOv4采用Mosaic及CutMix數(shù)據(jù)增強(qiáng)策略增加輸入圖像可變性,豐富圖像特征信息,所設(shè)計(jì)的目標(biāo)檢測(cè)模型可以獲得更高的魯棒性,同時(shí)采用標(biāo)簽平滑、學(xué)習(xí)率余弦退火衰減等技巧優(yōu)化網(wǎng)絡(luò)訓(xùn)練過(guò)程[17]。
YOLO網(wǎng)絡(luò)將輸入的小龍蝦圖像劃分為N×N格。待測(cè)小龍蝦的中心坐標(biāo)落在某個(gè)網(wǎng)格中,則該網(wǎng)格負(fù)責(zé)檢測(cè)小龍蝦目標(biāo)。檢測(cè)過(guò)程中,每個(gè)網(wǎng)格單元預(yù)測(cè)B個(gè)邊界框,每個(gè)邊界框包含5個(gè)預(yù)測(cè)值:tx、ty、tw、th和置信度,置信度反映預(yù)測(cè)目標(biāo)框的置信水平與預(yù)測(cè)精度[18]。按式(1)計(jì)算預(yù)測(cè)框的中心坐標(biāo)(bx,by)和寬高bw、bh。
(1)
式中:
σ(x)——Logistic函數(shù);
cx、cy——特征圖中每個(gè)網(wǎng)格的左上角坐標(biāo);
pw、ph——先驗(yàn)框相對(duì)于特征圖的寬和高;
tx、ty、tw、th——模型預(yù)測(cè)的中心坐標(biāo)及寬高。
將預(yù)測(cè)框的中心坐標(biāo)及寬高除以對(duì)應(yīng)的特征圖尺寸,再乘以原始輸入圖片尺寸便可得到預(yù)測(cè)的邊界框相對(duì)于小龍蝦原圖的坐標(biāo)實(shí)際值。
每個(gè)網(wǎng)格仍需預(yù)測(cè)一個(gè)類別信息,記錄為C類,因此輸出為尺寸N×N(5×B+C)的張量。同時(shí),檢測(cè)系統(tǒng)按式(2)計(jì)算交并比。
(2)
式中:
IoU——交并比;
DR——預(yù)測(cè)框;
GT——實(shí)際框。
IoU是衡量預(yù)測(cè)框精準(zhǔn)度的重要指標(biāo),IoU越大,預(yù)測(cè)框所在位置越精準(zhǔn)。

圖3 YOLOv4網(wǎng)絡(luò)結(jié)構(gòu)Figure 3 YOLOv4 network structure
小龍蝦的具體預(yù)測(cè)流程如圖4所示,YOLOv4算法先將輸入的小龍蝦圖像重置為608×608大小;使用CSPDarknet53網(wǎng)絡(luò)提取圖像特征;將特征向量發(fā)送至SPP和PANet進(jìn)行預(yù)測(cè);運(yùn)用非極大值抑制算法消除重復(fù)預(yù)測(cè),獲得最終預(yù)測(cè)結(jié)果。
YOLOv4網(wǎng)絡(luò)訓(xùn)練時(shí)的損失函數(shù)由邊界框回歸損失Lciou、置信度損失Lconf、分類損失Lclass3部分組成,若在某個(gè)邊界框內(nèi)不存在目標(biāo),僅計(jì)算置信度損失,若存在目標(biāo),則計(jì)算3種損失。損失函數(shù)表達(dá)式為:

(3)
式中:
S2、B——特征圖尺度與先驗(yàn)框;
λnoobj——權(quán)重系數(shù);

ρ(·)——?dú)W氏距離;
c——預(yù)測(cè)框與實(shí)際框閉包區(qū)域的對(duì)角線距離;
b、w、h——預(yù)測(cè)框的中心坐標(biāo)及寬高;
bgt、wgt、hgt——實(shí)際框的中心坐標(biāo)及寬高;


置信度損失與分類損失通過(guò)交叉熵方法計(jì)算,邊界框回歸損失通過(guò)CIoU損失函數(shù)計(jì)算,相比傳統(tǒng)的均方誤差損失函數(shù),CIoU有效避免了對(duì)目標(biāo)物體尺度敏感的問(wèn)題,能夠更好地關(guān)注預(yù)測(cè)框與實(shí)際框的位置關(guān)系,反映兩者之間的聯(lián)系。
小龍蝦網(wǎng)絡(luò)檢測(cè)模型訓(xùn)練所用數(shù)據(jù)集是一個(gè)自制數(shù)據(jù)集,使用工業(yè)攝相機(jī)現(xiàn)場(chǎng)拍攝小龍蝦生產(chǎn)過(guò)程視頻,截圖,按1∶1的樣本類別分布擇優(yōu)挑選1 000張小龍蝦圖片。
由于相機(jī)采集的圖像數(shù)據(jù)較少,為避免導(dǎo)致模型過(guò)擬合,提高網(wǎng)絡(luò)模型的泛化能力,采用隨機(jī)旋轉(zhuǎn)、鏡像翻轉(zhuǎn)、添加噪聲、高斯模糊、亮度增強(qiáng)、背景渲染等策略擴(kuò)充數(shù)據(jù)樣本,因此訓(xùn)練后的網(wǎng)絡(luò)模型能夠滿足多場(chǎng)景多形態(tài)的小龍蝦檢測(cè)需求,其數(shù)據(jù)擴(kuò)充示例見(jiàn)圖5。

圖4 小龍蝦預(yù)測(cè)流程Figure 4 Crayfish detection process
通過(guò)數(shù)據(jù)擴(kuò)充得小龍蝦圖片共6 000張,包含不同大小、形態(tài)、色彩的小龍蝦樣本。圖片數(shù)據(jù)中共有兩類小龍蝦樣本,總計(jì)4 500個(gè)合格品樣本,4 500個(gè)不合格品樣本,數(shù)據(jù)量級(jí)及豐富性可得到保證。
訓(xùn)練YOLOv4模型前需對(duì)數(shù)據(jù)集進(jìn)行標(biāo)注,使用LableImage數(shù)據(jù)標(biāo)注工具,設(shè)置合格小龍蝦類別為0,標(biāo)簽為qualified,不合格類別為1,標(biāo)簽為unqualified,標(biāo)注后默認(rèn)保存YOLO數(shù)據(jù)格式的文本文件,兩種類別小龍蝦的樣本標(biāo)記信息如圖6所示。
數(shù)據(jù)標(biāo)注后保存的文本文件內(nèi)容見(jiàn)表1,表中每行都代表了一個(gè)小龍蝦目標(biāo)的位置信息,標(biāo)簽代表具體目標(biāo)標(biāo)注的類別,x,y,w,h是0~1的浮點(diǎn)數(shù),是相對(duì)于整幅圖片尺度的歸一化值。隨機(jī)劃分80%的標(biāo)注圖像作為訓(xùn)練集,20%作為測(cè)試集。
深度學(xué)習(xí)網(wǎng)絡(luò)模型訓(xùn)練通常對(duì)訓(xùn)練平臺(tái)配置有較高要求,YOLOv4網(wǎng)絡(luò)可在CPU或GPU上進(jìn)行訓(xùn)練,由于GPU的計(jì)算能力遠(yuǎn)高于CPU,其訓(xùn)練成本低,故選擇在GPU上進(jìn)行訓(xùn)練。將已標(biāo)注和劃分好的小龍蝦數(shù)據(jù)集作為訓(xùn)練樣本,YOLOv4網(wǎng)絡(luò)模型訓(xùn)練平臺(tái)的具體配置信息見(jiàn)表2。

圖5 數(shù)據(jù)擴(kuò)充Figure 5 Data expansion

圖6 數(shù)據(jù)標(biāo)注Figure 6 Data annotation
網(wǎng)絡(luò)學(xué)習(xí)模型的訓(xùn)練基于Darknet 深度學(xué)習(xí)框架,其訓(xùn)練參數(shù)為:輸入圖像大小為608×608,每次迭代訓(xùn)練輸入的圖片總數(shù)為64,分成8批次進(jìn)行訓(xùn)練,動(dòng)量值為0.9,權(quán)重衰減系數(shù)為0.000 5,最大迭代次數(shù)為10 000,初始學(xué)習(xí)率為0.001,選用mosaic數(shù)據(jù)增強(qiáng)策略,迭代至8 000,9 000步時(shí),學(xué)習(xí)率開(kāi)始衰減。
3.2.1 損失值 損失值是樣本預(yù)測(cè)值與真實(shí)值之間的誤差,由損失函數(shù)計(jì)算得到,損失值越小,預(yù)測(cè)效果越好。網(wǎng)絡(luò)訓(xùn)練過(guò)程中保存完整的訓(xùn)練日志,訓(xùn)練完畢后根據(jù)日志信息進(jìn)行可視化繪圖,其損失值折線圖如圖7所示。

表1 數(shù)據(jù)標(biāo)注?

表2 訓(xùn)練平臺(tái)配置
由圖7可知,隨著迭代次數(shù)的增加,損失值減少,8 000次迭代后,損失值普遍<0.5,在0.3附近波動(dòng),證明網(wǎng)絡(luò)模型的訓(xùn)練效果良好。
3.2.2 測(cè)試結(jié)果 平均精度均值(mAP)是測(cè)量目標(biāo)檢測(cè)效率的重要指標(biāo),由精確率和召回率決定。以召回率為橫軸,精確率為縱軸的曲線簡(jiǎn)稱P-R曲線,P-R曲線下面積記為精度均值,所有目標(biāo)類別的平均精度均值的值越大,神經(jīng)網(wǎng)絡(luò)模型效果越好。
使用訓(xùn)練好的網(wǎng)絡(luò)模型進(jìn)行小龍蝦測(cè)試集預(yù)測(cè),按式(4)分別計(jì)算精確率(P)和召回率(R)。
(4)
式中:
TP——被判為正類的正類;
FP——被判為正類的負(fù)類;
FN——被判為負(fù)類的正類。
測(cè)試集中共包含1 567個(gè)合格小龍蝦樣本,1 402個(gè)不合格小龍蝦樣本。由表3可知,兩種類別小龍蝦的預(yù)測(cè)結(jié)果存在少許誤檢樣本,但各類別的精確率和召回率均>97%,模型預(yù)測(cè)性能較優(yōu)。
3.2.3 對(duì)比分析 使用YOLOv4模型對(duì)小龍蝦數(shù)據(jù)集進(jìn)行訓(xùn)練與測(cè)試后,訓(xùn)練平臺(tái)的配置信息不變,使用Faster RCNN[19]、EfficientDet[20]和YOLOv3深度學(xué)習(xí)模型在相同數(shù)據(jù)集上進(jìn)行訓(xùn)練分析,不同模型的平均精度均值和每秒幀數(shù)(FPS)對(duì)比見(jiàn)表4。

圖7 損失值曲線Figure 7 Loss value curve

表3 兩種類別小龍蝦預(yù)測(cè)結(jié)果

表4 模型性能對(duì)比
由表4可知,與主干為ResNet101[21]的Faster RCNN,主干為EfficientNet-B0的EfficientDet 和主干為Darknet53的YOLOv3模型相比,YOLOv4模型的平均精度均值分別提高了2.9%,2.1%,7.5%;每秒幀數(shù)分別提高了11,14,5幀,其預(yù)測(cè)精度及檢測(cè)速度均得到了較大改善。
為驗(yàn)證YOLOv4模型的可行性和小龍蝦檢測(cè)系統(tǒng)的在線檢測(cè)能力,將模型移植到小龍蝦實(shí)時(shí)檢測(cè)平臺(tái),采用主板為Z390,CPU為i7-9700K,主頻3.6 GHz,GPU為英偉達(dá)RTX 2080Ti,顯存11 G,內(nèi)存32 G。使用工業(yè)CCD相機(jī)在線獲取小龍蝦生產(chǎn)流水線圖像,網(wǎng)絡(luò)模型對(duì)獲得的圖像進(jìn)行尺度裁剪和分類特征提取,實(shí)時(shí)檢測(cè)高速流水線中小龍蝦的質(zhì)量類別,由攝像頭實(shí)時(shí)采集的圖像并完成檢測(cè)的效果見(jiàn)圖8。

圖8 檢測(cè)效果Figure 8 Detection effect
由圖8可知,該模型能完成多種形態(tài)下的小龍蝦檢測(cè)任務(wù),其檢測(cè)準(zhǔn)確率達(dá)97.8%,平均檢測(cè)時(shí)間為37 ms,能夠滿足高速生產(chǎn)過(guò)程中的小龍蝦檢測(cè)任務(wù)。
提出了一種基于YOLOv4神經(jīng)網(wǎng)絡(luò)的小龍蝦質(zhì)量檢測(cè)方法,自主采集與標(biāo)注小龍蝦圖片后,通過(guò)圖像擴(kuò)充策略以滿足數(shù)據(jù)集中小龍蝦形態(tài)的豐富性,訓(xùn)練后得到的檢測(cè)模型優(yōu)于Faster RCNN、EfficientDet等網(wǎng)絡(luò),具有較好的魯棒性。由于自主采集大量復(fù)雜的數(shù)據(jù)存在一些難度,自制的小龍蝦數(shù)據(jù)圖像背景較為單一,模型在復(fù)雜背景下的小龍蝦類別檢測(cè)能力欠佳,存在一定的誤檢率,后續(xù)工作重點(diǎn)將針對(duì)這一問(wèn)題進(jìn)行克服改善,以進(jìn)一步增強(qiáng)檢測(cè)模型的泛化性能。