姚學(xué)峰 李 超
(1. 沈陽職業(yè)技術(shù)學(xué)院,遼寧 沈陽 110045;2. 遼寧科技大學(xué),遼寧 鞍山 114051)
目前,中國蛋類缺陷檢測仍以人工為主,成本高、效率低。隨著計算機視覺的不斷發(fā)展,圖像檢測技術(shù)在食品缺陷檢測中發(fā)展迅速[1]。對利用計算機視覺的核心技術(shù),對蛋類缺陷圖像的自動檢測方法進行研究具有重要的現(xiàn)實意義[2]。
目前,國內(nèi)外有關(guān)食品缺陷圖像檢測方法的研究主要集中在支持向量機和卷積神經(jīng)網(wǎng)絡(luò)等方面[3-4]。肖旺等[5]提出了一種改進的GoogLeNet用于食品表面缺陷檢測,相比傳統(tǒng)的缺陷檢測方法,該方法具有更高的精度、更好的泛化能力和魯棒性。楊志銳等[6]提出了一種改進的卷積神經(jīng)網(wǎng)絡(luò)用于食品缺陷檢測,與傳統(tǒng)檢測方法相比,該方法具有更好的分類精度(95%以上)。王云鵬等[7]提出了一種通過卷積神經(jīng)網(wǎng)絡(luò)AlexNet模型融合可見光和紅外圖像來檢測食品表面缺陷的方法,比傳統(tǒng)檢測方法檢測精度更高,能夠滿足在線食品分類的需要,檢測準(zhǔn)確率在95%以上。薛勇等[8]提出了一種用于食品缺陷檢測的GoogLeNet深度遷移模型,與傳統(tǒng)的檢測方法相比,該方法具有更好的泛化能力和魯棒性,檢測精度在92%以上。研究擬將改進的YOLOv5模型應(yīng)用于蛋類缺陷圖像的自動檢測中,將輕量級網(wǎng)絡(luò)MobileNetv3添加到Y(jié)OLOv5模型中,以降低模型的復(fù)雜性,去除頸部網(wǎng)絡(luò)和輸出端小目標(biāo)檢測,從而為圖像識別技術(shù)的發(fā)展提供依據(jù)。
圖像缺陷檢測是對相機采集的圖像進行特征提取,判斷目標(biāo)狀態(tài)[9]。視覺技術(shù)與圖像處理技術(shù)結(jié)合,形成了相對簡單、強大的抗干擾能力,適合大規(guī)模檢測。蛋類缺陷檢測系統(tǒng)結(jié)構(gòu)(圖1)主要由上位機和圖像采集系統(tǒng)兩部分組成。
1. 相機 2. 燈箱 3. 樣品臺 4. 光源 5. 樣本 6. 計算機圖1 系統(tǒng)結(jié)構(gòu)Figure 1 System structure
YOLOv5模型是在YOLOv3模型的基礎(chǔ)上進行改進的[10],主要包括YOLOv5s、YOLOv5m、YOLOv51和YOLOv5x 4種[11]。YOLOv5模型主要由輸入端、骨干網(wǎng)、頸部網(wǎng)絡(luò)和輸出端組成(見圖2)。
圖2 YOLOv5結(jié)構(gòu)Figure 2 YOLOv5 structure
YOLOv5在輸入端使用圖像縮放和Mosaic數(shù)據(jù)增強,在主干網(wǎng)絡(luò)使用Focus和CSP結(jié)構(gòu),在輸出端使用GIOU_Loss損失函數(shù)計算方法。
(1) Focus模塊[11]:Focus是YOLOv5中的一個新模塊,其結(jié)構(gòu)如圖3所示,主要功能是并行分割輸入圖像,切片通過增加特征圖中的通道數(shù)來減小圖像大小。以一張3通道圖像為例,經(jīng)過切片,可以得到4×3通道的小尺寸特征圖,最后疊加成12通道的特征圖。與卷積相比,切片的優(yōu)點是保留了所有原始信息。
圖3 Focus結(jié)構(gòu)Figure 3 Focus structure
(2) CBL模塊[12]:該模塊由卷積神經(jīng)網(wǎng)絡(luò)的卷積層(Conv)、批量標(biāo)準(zhǔn)化層(BN)和激活層(Leaky-Relu)組成(見圖4)。
(3) CSP模塊[13]:CSP模塊由CSP1_x控制和CSP2_x
圖4 CBL模塊結(jié)構(gòu)
兩部分組成(見圖5)。CAPNet設(shè)計的初衷是減少網(wǎng)絡(luò)計算量,獲得更豐富的梯度組合。在YOLOv4中,CSP應(yīng)用于骨干網(wǎng)絡(luò),而在YOLOv5中,CSP模塊仍然保留,擴大了應(yīng)用范圍。YOLOv5除骨干網(wǎng)絡(luò)外,還在頸部網(wǎng)絡(luò)中加入了CSP模塊。
圖5 CSP模塊結(jié)構(gòu)Figure 5 CSP module structure
(4) SPP模塊[14]:SPP位于主干網(wǎng)絡(luò)的最后一層,可以輸出任何大小的特征圖。SPP的內(nèi)部在開始和結(jié)束時由兩個CBL模塊及在中間的3個最大池化通道組成(見圖6)。3通道池化層的池化內(nèi)核大小為5×5,9×9,13×13。
圖6 SPP模塊結(jié)構(gòu)Figure 6 SPP module structure
在實際檢測環(huán)境中,計算資源非常有限,因此為了降低模型的復(fù)雜性,需要對網(wǎng)絡(luò)進行輕量級設(shè)計[15]。MobileNet系列是典型的輕量級作品之一[16]。MoblieNet系列網(wǎng)絡(luò)是由GoogLe提出的一種輕量級卷積神經(jīng)網(wǎng)絡(luò),已發(fā)展到MoblieNetv3版本。模型將輕量級網(wǎng)絡(luò)MobileNetv3引入到Y(jié)OLOv5結(jié)構(gòu)中,以取代YOLOv 5的骨干網(wǎng)絡(luò),并對YOLOv5模型進行優(yōu)化,實現(xiàn)輕量級設(shè)計。為了確保改進后的網(wǎng)絡(luò)平穩(wěn)運行,調(diào)整了原始網(wǎng)絡(luò)的輸入大小,使MobileNetv3的輸出與YOLOv5的輸入相匹配。
MobileNetV3綜合了3種模型的思想:MobileNetV1的深度可分離卷積、MobileNetV2的具有線性瓶頸的逆殘差結(jié)構(gòu)和MnasNet基于SE結(jié)構(gòu)的輕量級注意力模型。將最后一步的平均池化層前移并移除最后一個卷積層,引入h-swish激活函數(shù)。
深度可分離卷積在模型輕量化中被廣泛應(yīng)用,以輸入為a×b×3的圖像為例,使用常規(guī)卷積運算,其參數(shù)量計算為:
N=4×3×3×3×a×b=108ab。
(1)
使用深度可分離卷積運算,其參數(shù)量計算為:
N=3×3×3×a×b+1×1×3×4×a×b=39ab。
(2)
MoblieNetv3采用一種新的激活函數(shù):
(3)
為了進一步降低MobileNetV3網(wǎng)絡(luò)的計算量,對模型進行優(yōu)化,去掉中間的兩層卷積層,同時將最大池化層提到1×1卷積層之前,先對特征圖尺寸進行池化降低,再進行升維。
YOLO模型結(jié)構(gòu)設(shè)計有3個輸出,每個輸出都有不同的輸出張量大小,分別檢測大、中、小尺寸的目標(biāo)[17]。文中采集的蛋類圖像在圖像預(yù)處理中經(jīng)過目標(biāo)提取后設(shè)置為640像素×640像素,因為圖像已被去除且蛋類面積占圖像面積的90%以上。因此,除了使用輕量級MobileNetv3網(wǎng)絡(luò)替換YOLOv5的骨干網(wǎng)絡(luò)以進一步壓縮模型大小外,還改進了YOLOv 5網(wǎng)絡(luò)的Neck和Prediction部分,刪除了YOLOv5中用于小目標(biāo)檢測的輸出層[18],改進后的網(wǎng)絡(luò)結(jié)構(gòu)如圖7所示,其中bneckm_n表示n個m×mbneck模塊。
圖7 改進的YOLOv5結(jié)構(gòu)Figure 7 Improved YOLOv5 structure
為了驗證所提控制方法的有效性,以蛋類食品為例,針對各種缺陷進行了對比試驗。該試驗基于Python環(huán)境中的Python-深度學(xué)習(xí)框架[19]。表1為系統(tǒng)參數(shù),表2為試驗參數(shù)。
表1 系統(tǒng)參數(shù)
將原始的1萬個圖像數(shù)據(jù)集經(jīng)圖像預(yù)處理后合并為640像素×640像素×3像素的圖像,并使用LabelImg工具對蛋類食品圖像進行標(biāo)記[20]。訓(xùn)練集和測試集比例為4∶1。其中正常、孔洞、裂紋及臟污蛋各2 500個。
目標(biāo)檢測網(wǎng)絡(luò)的主要功能是對檢測到的目標(biāo)進行發(fā)現(xiàn)和分類。除了用于圖像識別的模型精度指標(biāo)外,模型速度指標(biāo)也是用于評估目標(biāo)檢測網(wǎng)絡(luò)性能的一個重要指標(biāo)類別。文中選擇準(zhǔn)確率、召回率和平均準(zhǔn)確率均值進行評價。
表2 試驗參數(shù)
(1) 準(zhǔn)確率:預(yù)測結(jié)果中實際包含的陽性樣本數(shù),按式(4)計算準(zhǔn)確率。
(4)
式中:
P——預(yù)測準(zhǔn)確率,%;
TP——正確預(yù)測數(shù);
FP——錯誤預(yù)測數(shù)。
(2) 召回率:按式(5)計算召回率。
(5)
式中:
R——預(yù)測召回率,%;
TP——正確預(yù)測數(shù);
FN——未預(yù)測數(shù)。
(3) 平均準(zhǔn)確率均值:按式(6)計算平均精度均值。
(6)
式中:
mAP——平均精度均值;
Pi(r)——第i類的平均精度;
N——類別數(shù)。
由于模型的速度指標(biāo)不僅與模型自身的結(jié)構(gòu)和復(fù)雜性有關(guān),還與硬件性能有關(guān),因此模型的速度指數(shù)與硬件相結(jié)合。文中,每秒檢測到的圖像幀數(shù)用于評估模型的速度。
為了驗證文中模型的效果,將試驗方法與YOLOv5l、YOLOv5m、YOLOv5s和文獻(xiàn)[21]進行對比分析。
由表3可知,與YOLOv5系列中最小的模型YOLOv5s相比,試驗方法的網(wǎng)絡(luò)模型參數(shù)量降低了2.5 Mb,比文獻(xiàn)[21]中的網(wǎng)絡(luò)模型參數(shù)量降低了119.8 Mb。試驗方法每秒檢測的圖像數(shù)為70.2,單個圖像處理時間為14.24 ms。就檢測速度而言,試驗方法優(yōu)于YOLOv5系列中最快的模型YOLOv5s,每秒檢測到的圖像數(shù)量增加了4.3,比文獻(xiàn)[21]中每秒檢測到的圖像多17.2,表明試驗?zāi)P驮谌毕輽z測速度上具有一定的優(yōu)勢。
表3 不同模型參數(shù)量和檢測圖像數(shù)
由表4可知,試驗?zāi)P偷臏?zhǔn)確率最高為98.4%,為所有模型中檢測精度最高的。在召回率和平均準(zhǔn)確率兩個評價指標(biāo)中,YOLOv5s模型表現(xiàn)最好,其次是試驗?zāi)P秃臀墨I(xiàn)[21]。YOLOv5l和YOLOv5m模型的3個評價指標(biāo)最低,這類模型都是大型檢測網(wǎng)絡(luò),具有更深的網(wǎng)絡(luò)層次和相對復(fù)雜的結(jié)構(gòu)。試驗方法的檢測精度較低,可能是由于數(shù)據(jù)集類型不足和數(shù)據(jù)集數(shù)量有限,導(dǎo)致網(wǎng)絡(luò)的最終檢測效果不佳。文獻(xiàn)[21]的方法具有較高的精度,但檢測速度最慢。試驗?zāi)P蜑榱俗非筝p量化設(shè)計而改變了網(wǎng)絡(luò)結(jié)構(gòu),并引入了一個輕量化檢測網(wǎng)絡(luò),使其在檢測精度上有一定的損失,與原型網(wǎng)絡(luò)YOLOv5s相比,網(wǎng)絡(luò)大小壓縮了35%,每秒檢測的圖像數(shù)增加了4.3,且檢測精度和檢測速度均衡,更符合實際生產(chǎn)線蛋類缺陷檢測的硬件要求。
表4 檢測結(jié)果
由表5可知,在各種蛋類圖像缺陷檢測中,試驗方法的檢測精度由高到低依次為孔洞、臟污、正常、裂紋,檢測準(zhǔn)確率均在97.8%以上??锥春驼5邦惖恼倩芈士蛇_(dá)100.0%,總召回率為97.2%。綜合考慮各類評價指標(biāo),試驗方法是孔洞特征檢測的最佳方法。雖然類別的檢測結(jié)果存在差異,但總體差異較小,表明試驗方法的檢測精度較高,綜合檢測性能穩(wěn)定,能夠適應(yīng)蛋類缺陷的圖像檢測。此外,裂紋檢測的準(zhǔn)確率和召回率較低,可能是因為采集的蛋類圖像未被清理,并且覆蓋了一些蛋類表面特征,進一步說明了模型的優(yōu)越性。
表5 試驗方法檢測結(jié)果
研究提出了一種基于改進的YOLOv5模型用于蛋類缺陷圖像自動檢測,增加了MobileNetv3網(wǎng)絡(luò)以降低模型的復(fù)雜性,并刪除了頸部網(wǎng)絡(luò)和輸出端對小目標(biāo)檢測的部分。結(jié)果表明,相比于傳統(tǒng)方法,試驗所提網(wǎng)絡(luò)模型對蛋類缺陷圖像的檢測準(zhǔn)確率為98.4%,單幅圖像檢測時間為14.24 ms,在準(zhǔn)確率和速度方面優(yōu)勢明顯,滿足了食品缺陷檢測的需要。后續(xù)應(yīng)進一步增加食品的種類并不斷完善整個系統(tǒng)。