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

圖1 小龍蝦質量分類Figure 1 Crayfish quality classification

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

圖3 YOLOv4網絡結構Figure 3 YOLOv4 network structure
小龍蝦的具體預測流程如圖4所示,YOLOv4算法先將輸入的小龍蝦圖像重置為608×608大??;使用CSPDarknet53網絡提取圖像特征;將特征向量發送至SPP和PANet進行預測;運用非極大值抑制算法消除重復預測,獲得最終預測結果。
YOLOv4網絡訓練時的損失函數由邊界框回歸損失Lciou、置信度損失Lconf、分類損失Lclass3部分組成,若在某個邊界框內不存在目標,僅計算置信度損失,若存在目標,則計算3種損失。損失函數表達式為:

(3)
式中:
S2、B——特征圖尺度與先驗框;
λnoobj——權重系數;

ρ(·)——歐氏距離;
c——預測框與實際框閉包區域的對角線距離;
b、w、h——預測框的中心坐標及寬高;
bgt、wgt、hgt——實際框的中心坐標及寬高;


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

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

圖5 數據擴充Figure 5 Data expansion

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

表1 數據標注?

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

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

表3 兩種類別小龍蝦預測結果

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

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