摘" 要: 水果新鮮度分級在食品行業(yè)中有著重要作用。新鮮度是衡量水果質(zhì)量的重要標(biāo)準(zhǔn),直接影響到消費者的身體健康和購買欲望。由于水果顏色、紋理和外部環(huán)境變化(如陰影、照明和復(fù)雜背景)的相似性,使用機器視覺對水果進行自動識別和分類是具有挑戰(zhàn)性的。文章提出一種基于改進YOLOv5s網(wǎng)絡(luò)模型的多類水果分級方法。首先,引入DIoU?NMS算法,考慮預(yù)測框與真實框之間的重疊率以及中心點距離,回歸精度得到提高;其次,利用K?means算法對初始錨框進行調(diào)整;最后,在主干網(wǎng)絡(luò)Backbone中嵌入CAM,加強網(wǎng)絡(luò)的特征提取能力。試驗結(jié)果表明:改進后的YOLOv5s水果新鮮度檢測算法平均檢測一張圖像耗時為0.028 s,且其mAP達(dá)到96.6%,比原來YOLOv5s模型提升了2.4%。所提方法為水果新鮮度檢測提供一種高性能的解決方案,并能夠以較高的準(zhǔn)確率對多類水果進行分級與定位。
關(guān)鍵詞: 水果新鮮度檢測; YOLOv5s; 深度學(xué)習(xí); DIoU?NMS; K?means; CAM
中圖分類號: TN911.23?34" " " " " " " " " " " " " 文獻(xiàn)標(biāo)識碼: A" " " " " " " " " " " 文章編號: 1004?373X(2024)22?0037?07
Research on fruit freshness detection algorithm based on improved YOLOv5s
Abstract: The freshness grading of fruits plays an important role in the food industry. Freshness is the basic standard for measuring fruit quality, which directly affects consumers' physical health and purchasing desire. Due to the similarity in fruit color, texture, and external environmental changes (such as shadows, lighting, and complex backgrounds), using machine vision for automatic recognition and classification of fruits is challenging. A multi?class fruit grading method based on an improved YOLOv5s network model is proposed. The DIoU?NMS (distance IoU non?maximum suppression) algorithm is introduced improve regression accuracy by taking into account the overlap rate between the predicted box and the true and center point distance. The K?means algorithm is used to adjust the initial anchor box. CAM (context augmentation module) is embedded in the Backbone network to strengthen the feature extraction capability of the network. The experimental results indicate that the improved YOLOv5s fruit freshness detection algorithm takes 0.028 s to detect an image on average, and its mAP can reach 96.6%, which is 2.4% higher than the original YOLOv5s model. This research provides a high performance solution for fruit freshness detection, which can grade and locate many kinds of fruits with high accuracy.
Keywords: fruit freshness detection; YOLOv5s; deep learning; DIoU?NMS; K?means; CAM
0" 引" 言
水果中含有豐富的營養(yǎng)成分,同時水果還是我國經(jīng)濟體系的重要組成部分。在水果物流分揀行業(yè)中,常常會出現(xiàn)新鮮與腐壞水果摻雜在一起的情況,然而多數(shù)分揀工作都通過人工的方式完成,依賴人眼去識別水果。這樣會消耗大量勞動力,并且工作效率較低,嚴(yán)重影響水果商品化的速度。因此,研究具有高識別率的新鮮度自動檢測系統(tǒng),對提高水果分揀效率具有重要意義。
目前已有許多學(xué)者對水果檢測研究取得了較大進展。文獻(xiàn)[1]中使用機器學(xué)習(xí)技術(shù)進行水果分類,數(shù)據(jù)集包括不同時期的15種水果,以此來模擬真實情況,但數(shù)據(jù)集均為相同的純色背景。文獻(xiàn)[2]中將CNN和SVM融合,在較為復(fù)雜的環(huán)境下提取蘋果紋理的特征,效果不錯。
近年來,深度學(xué)習(xí)和卷積神經(jīng)網(wǎng)絡(luò)飛速發(fā)展,在目標(biāo)檢測和識別領(lǐng)域取得了顯著的成功[3?4]。文獻(xiàn)[5]提出了一種改進的MobileNetv2,通過凍結(jié)MobileNetv2的前130層,并訓(xùn)練剩下的25層進行微調(diào),區(qū)分新鮮與腐爛的蘋果、香蕉及橙子,取得了較高的準(zhǔn)確率。文獻(xiàn)[6]改進YOLOv3模型來實現(xiàn)水果分類,準(zhǔn)確率可達(dá)88%。文獻(xiàn)[7]使用GoogLeNet模型作為提取器,并以AlexNet和VGGNet模型作為分類器,分析了香蕉和草莓新鮮度的變化。結(jié)果表明,該模型對香蕉新鮮度的檢測準(zhǔn)確率較高。
文獻(xiàn)[8]提出了一種收獲后質(zhì)量分類和分級方法,將蘋果分為正常和有缺陷的蘋果。該數(shù)據(jù)集由300個具有正常表面和各種類型缺陷(如物理或昆蟲損壞、腐爛和疤痕)的富士蘋果組成。將基于CNN的模型加載到水果分選系統(tǒng)的定制軟件中,使用200個獨立蘋果驗證其在線性能,獲得92%的準(zhǔn)確率,而每個蘋果的處理時間僅為72 ms。文獻(xiàn)[9]提出一種改進UNet模型,用于根據(jù)果皮中存在的缺陷來檢測腐爛或新鮮的蘋果。共使用4 035張?zhí)O果圖像,包括1 693個新鮮蘋果和2 342個爛蘋果,用于訓(xùn)練修改后的UNet模型。與原來的UNet模型相比,改進后的UNet模型輸出增強,訓(xùn)練及驗證精度均有提高。
盡管有上述發(fā)展,但想要在現(xiàn)實生活中準(zhǔn)確地區(qū)分水果新鮮度,選擇新鮮產(chǎn)品,仍然是一個巨大的挑戰(zhàn)。在文獻(xiàn)[5?9]研究中,數(shù)據(jù)集由相同光照條件和單一背景下的水果組成,使得結(jié)論不太令人信服。本研究采用的數(shù)據(jù)集是在多種背景下,包含不同光照條件的4種水果圖像。因此,本文設(shè)計了一種改進的YOLOv5s模型,引入DIoU?NMS算法,提高回歸精度,并且在主干網(wǎng)絡(luò)Backbone中嵌入上下文增強模塊(Context Augmentation Module, CAM),來增強其提取特征信息的能力。最后,采用改進后的YOLOv5s算法對常見水果進行檢測,以驗證本文改進模型的有效性。
1" 數(shù)據(jù)獲取與處理
本文研究選擇了最受歡迎的幾種水果來對其新鮮度進行分級。從Kaggle、Google和Bing圖像中獲得了4種水果(蘋果、香蕉、橙子和石榴)的圖像。得到的水果數(shù)據(jù)集總共包含1 273張圖像。每種水果分為新鮮和腐壞兩類,共8類組。本文采用LabelImg來標(biāo)注數(shù)據(jù)圖像,并標(biāo)記腐壞水果及其類別信息,部分圖像見圖1。通過鏡像、翻轉(zhuǎn)、亮度調(diào)整、平移、旋轉(zhuǎn)等方式進行數(shù)據(jù)增強,以解決數(shù)據(jù)較少的問題,完善數(shù)據(jù)集。增強后的數(shù)據(jù)集共有5 323張,按照7∶2∶1的比例劃分為訓(xùn)練集、測試集、驗證集。
2" 試驗方法
2.1" YOLOv5s模型
YOLOv5s由Input、Backbone、Neck、Prediction構(gòu)成,如圖2所示。
YOLOv5s輸入端包括Mosaic[10]、自適應(yīng)錨框和自適應(yīng)圖像三個部分。其中:Mosaic算法可以把幾張圖像整合成一張圖像,以此來豐富圖像背景;自適應(yīng)錨框是用來獲得適合訓(xùn)練集的錨框尺度;自適應(yīng)圖像將輸入圖像固定為標(biāo)準(zhǔn)尺寸。
在主干網(wǎng)絡(luò)中,YOLOv5s主要采用了Focus和CSP模塊。Focus的核心作用是切片操作,具體操作如圖3所示。圖中,把原始4×4×3的圖像輸入Focus結(jié)構(gòu)進行切片操作,就會生成2×2×12的特征圖。CSP模塊則是借鑒CSPNet,將基礎(chǔ)層的特征映射分成兩塊,進行跨層合并,可以在降低計算量的同時保持較高的準(zhǔn)確率。
YOLOv5s的Neck采用FPN+PAN結(jié)構(gòu),如圖4所示。FPN[11]自上向下傳達(dá)強語義特征,而PAN[12]則是自下而上傳達(dá)定位特征。輸出端的損失函數(shù)采用GIoU_Loss[13],在目標(biāo)檢測后處理部分對多目標(biāo)框進行篩選時,一般還需要非極大值抑制操作。
2.2" YOLOv5s模型改進
2.2.1" 非極大值抑制
在經(jīng)典的NMS中,最高分檢測框和其他框分別算出相應(yīng)的IoU,把超出NMS閾值的檢測框消除。不難看出,在經(jīng)典NMS算法中僅考慮IoU。但實際情況,如果兩個物體比較近,此時IoU可能會很大,采用經(jīng)典NMS算法處理時,往往會只保留一個檢測框,這樣就會出現(xiàn)漏檢。
基于上述情況,DIoU?NMS(Distance IoU Non?Maximum Suppression)[14]算法不僅考慮了預(yù)測框與真實框的重疊面積,而且考慮兩個框中心點之間的距離,公式如下:
式中:b為預(yù)測框的中心點;[bgt]為真實框的中心點;[ρ](·)為兩個中心點的歐幾里得距離;[c]為內(nèi)含預(yù)測框和真實框最小矩形的對角線長度。
如果兩個框之間IoU較大,則兩個框的距離較大時,通常會認(rèn)為這是兩個物體的檢測框都被保留下來。
2.2.2" 錨框重設(shè)
YOLOv5s最初的預(yù)設(shè)錨框是在COCO數(shù)據(jù)集的基礎(chǔ)上計算出來的。本試驗使用的是自建數(shù)據(jù)集,目標(biāo)尺寸相對較大。模型原本的錨框尺寸不適合本文數(shù)據(jù)集。為了讓預(yù)設(shè)錨框和真實框更好地匹配,本文通過K?means算法,根據(jù)自建數(shù)據(jù)集對預(yù)設(shè)錨框的尺寸進行計算。通過計算最終可以在小、中、大三個標(biāo)準(zhǔn)中都獲得3個預(yù)設(shè)錨框,共9個。調(diào)整前后錨框尺寸如表1所示。
2.2.3" 主干網(wǎng)絡(luò)
本文將CAM引入YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)。CAM融合多尺度來展開卷積特征,獲得了豐富的上下文信息,用于加強網(wǎng)絡(luò)的特征提取能力,提高網(wǎng)絡(luò)對水果的識別精度。
目標(biāo)檢測需要上下文信息,為了豐富FPN的上下文信息,CAM使用不同擴展卷積率的擴展卷積來獲取不同感受野的上下文信息。CAM結(jié)構(gòu)如圖5所示。特征分別以1、3、5的速率進行擴展卷積處理,語境信息則是通過融合不同感受野的特征得到的。
C5表示輸入圖像經(jīng)過32次下采樣的結(jié)果。在C5上以不同的擴張卷積率進行擴張卷積,得到不同感受野的上下文信息。內(nèi)核尺寸為3×3,擴展卷積率為1、3和5。融合方式如圖6所示。
圖6a)和圖6c)分別為加權(quán)融合和拼接融合,即直接在空間維度和通道維度上添加特征映射;圖6b)是一種自適應(yīng)融合方法。假設(shè)輸入為(bs,C,H,W),可以通過Convolution、Concatenation和Softmax的運算獲得(bs,3,H,W)的空間自適應(yīng)權(quán)值。
本文將CAM引入YOLOv5s網(wǎng)絡(luò)模型,并且采用了圖6b)方式進行融合,提高了模型對水果特征的提取能力。在Backbone部分將SPP替換為CAM,如圖7所示。
3" 試驗與結(jié)果分析
3.1" 試驗環(huán)境
本文試驗運行環(huán)境的CPU為英特爾?酷睿TMi5?12600KF,系統(tǒng)為Windows 10,加速環(huán)境為CUDA 11.8,GPU為英偉達(dá)RTX3060TI,編程環(huán)境為Python 3.8,PyTorch 2.1。
3.2" 評估指標(biāo)
為了評估算法的性能,本文試驗采用多個指標(biāo)進行綜合評估,具體為P、R、AP、mAP。精確率(P)是預(yù)測為正的樣本中有多少是正確的,如式(2)所示。
召回率(R)是真實為正的樣本有多少被正確預(yù)測為正樣本,如式(3)所示。
AP用來計算不同類別的平均精確率,如式(4)所示。
mAP表示所有類別的平均精度均值,如式(5)所示。
式中:TP為模型預(yù)測為正的正樣本;FP為模型預(yù)測為負(fù)的負(fù)樣本;FN為模型預(yù)測為正的負(fù)樣本。
3.3" 試驗與結(jié)果分析
為了驗證本文模型對蘋果、香蕉、橙子和石榴新鮮度的有效性,將改進前后的YOLOv5s模型分別在本文數(shù)據(jù)集上進行測試,結(jié)果如圖8所示。圖中改進后的YOLOv5s水果新鮮度檢測算法mAP達(dá)到96.6%,對比原來YOLOv5s模型提升了2.4%。
3.3.1" 引入DIoU?NMS效果
本文將DIoU?NMS算法引入YOLOv5模型。為了驗證改進的有效性,測試改進前后模型的各項性能,如表2所示。
由表2可得,在YOLOv5s模型中引入DIoU?NMS,可以使得網(wǎng)絡(luò)檢測精度得到較大提升,對比原始網(wǎng)絡(luò),精確率、召回率、mAP分別提升了0.6%、0.8%、0.6%。證實了該改進模型的有效性。
3.3.2" 錨框重設(shè)效果
采用K?means聚類算法得出適合本文數(shù)據(jù)集的錨框尺寸,如表1所示。測試更改錨框前后模型的各項性能,結(jié)果如表3所示。
結(jié)果表明,改進之后錨框大小更適合本文數(shù)據(jù)集,相比之下,精確率、召回率、mAP分別提升了1.7%、1.7%、0.9%。
3.3.3" 改進主干網(wǎng)絡(luò)效果
本文提出的改進YOLOv5s算法在主干網(wǎng)絡(luò)中引入了CAM。改進之后的主干網(wǎng)絡(luò)提高了對水果新鮮度特征的提取能力,與原網(wǎng)絡(luò)對比實現(xiàn)了精度提升。其對比結(jié)果如表4所示。
由表4可以看出,在主干網(wǎng)絡(luò)引入CAM后,精確率從92.1%提升至94.2%,提高了2.1%,召回率比原來提高了2.0%,mAP提高了1.3%。引入CAM之后,改進模型有效地提高了對水果新鮮度特征的提取能力,提高了精度。
3.3.4" 消融試驗結(jié)果
為了驗證改進模型是否有效,在本文自建數(shù)據(jù)集上進行對比測試。上述試驗已經(jīng)證明了引入DIoU?NMS的有效性,因此本組試驗將引入DIoU?NMS的網(wǎng)絡(luò)作為基準(zhǔn),針對錨框重設(shè)和改進主干網(wǎng)絡(luò)進行消融試驗,結(jié)果如表5所示。
結(jié)合表2和表5可以看出,本文所有改進在自建水果數(shù)據(jù)集上均能得到較好的效果。相比于原始的YOLOv5s網(wǎng)絡(luò)模型(94.2%),本文改進后的水果檢測模型mAP提升了2.4%,具體檢測效果如圖9所示。其中:good表示新鮮;bad表示腐壞。
3.3.5" 與不同算法模型對比結(jié)果
為驗證改進 YOLOv5s水果新鮮度檢測算法的性能,選擇Faster?RCNN[15]、SSD[16]、Retinanet[17]、YOLOv4[18]、YOLOv5s、YOLOv7[19]以及改進YOLOv5s算法在水果數(shù)據(jù)集上進行7組測試,結(jié)果如表6所示。
結(jié)果表明,本文提出的改進YOLOv5s水果新鮮度檢測模型在檢測精度上得到一定提升,證明了本文改進模型的有效性。YOLOv7在本文數(shù)據(jù)集上的表現(xiàn)不如YOLOv5s,YOLOv7的mAP比YOLOv5s低1.1%。與原始的YOLOv5s算法相比,本文算法的mAP得到了2.4%的提升,同時檢測單張圖像的時間僅增加了6 ms,并且與其他網(wǎng)絡(luò)相比在檢測速度上仍然具有較大優(yōu)勢。各算法檢測結(jié)果對比如圖10所示。
4" 結(jié)" 論
本文提出了一種基于改進YOLOv5s模型的水果新鮮度檢測算法,對蘋果、香蕉、橙子和石榴進行新鮮度檢測。首先,引入DIoU?NMS算法,提高回歸精度;然后,進行錨框重設(shè);最后,在主干網(wǎng)絡(luò)嵌入CAM,增強網(wǎng)絡(luò)的特征提取能力。
試驗結(jié)果表明,本文方法能很好地檢測常見水果(如蘋果、香蕉、橙子和石榴)的新鮮度,并且取得了較高的檢測性能。
1) 本文算法在YOLOv5s模型中引入DIoU?NMS算法,考慮預(yù)測框與真實框的重疊面積以及中心點距離,使回歸精度得到了提升。結(jié)果表明,mAP提高0.6%。針對水果目標(biāo)大小不一的特點,本文采用錨框重設(shè)技術(shù),相比模型原本的錨框參數(shù),重設(shè)后的錨框更適合本文數(shù)據(jù)集,mAP提高了0.9%。
2) 本文方法對YOLOv5s的主干網(wǎng)絡(luò)進行改進,將Backbone中的SPP替換為CAM,提升了主干網(wǎng)絡(luò)對水果新鮮度特征的提取能力。與原本的主干網(wǎng)絡(luò)結(jié)構(gòu)相比,引入CAM后的主干網(wǎng)絡(luò)的mAP提升了1.3%。
3) 本文提出的基于改進YOLOv5s的水果新鮮度檢測模型的檢測結(jié)果mAP為96.6%,對比原來YOLOv5s模型提升了2.4%。在之后的科研中,考慮到檢測水果新鮮度的實際場景,需要擴充數(shù)據(jù)集,降低模型計算量,同時采用高效網(wǎng)絡(luò)結(jié)構(gòu),在保證較高精確率的前提下對模型進行輕量化處理,為部署移動設(shè)備提供便利。
參考文獻(xiàn)
[1] KAZI A, PANDA S P. Determining the freshness of fruits in the food industry by image classification using transfer learning [J]. Multimedia tools and applications, 2022, 81: 7611?7624.
[2] AMBROZIO D P, AMY T, HENRY M. Multispecies fruit flower detection using a refined semantic segmentation network [J]. IEEE robotics amp; automation letters, 2018, 3: 3003?3010.
[3] ALAM A U, RATHI P, BESHAI H, et al. Fruit quality monitoring with smart packaging [J]. Sensors, 2021(4): 1509.
[4] CHAKRABORTY S, SHAMRAT F M J M, BILLAH M M, et al. Implementation of deep learning methods to identify rotten fruits [C]// 5th International Conference on Trends in Electronics and Informatics. Tirunelveli, India: IEEE, 2021: 1207?1212.
[5] ANANTHANARAYANA T, PTUCHA R, KELLY S C. Deep learning based fruit freshness classification and detection with CMOS image sensors and edge processors [J]. Electronic imaging, 2020, 32: 172.
[6] CHEN M C, CHENG Y T, LIU C Y. Implementation of a fruit quality classification application using an artificial intelligence algorithm [J]. Sensor mater, 2022, 34: 151?162.
[7] NI J, GAO J, DENG L, et al. Monitoring the change process of banana freshness by GoogLeNet [J]. IEEE access, 2020, 8: 228369?228376.
[8] FAN S, LI J, ZHANG Y, et al. On line detection of defective apples using computer vision system combined with deep learning methods [J]. Journal of food engineering, 2020, 286: 110102.
[9] ROY K, CHAUDHURI S S, PRAMANIK S. Deep learning based real?time industrial framework for rotten and fresh fruit detection using semantic segmentation [J]. Microsystem technology, 2021, 27: 3365?3375.
[10] WANG H, SUN Z L. Improved mosaic: algorithms for more complex images [J]. Journal of physics: conference series, 2020, 1684(1) : 012094.
[11] LIN T Y, DOLLáR P, GIRSHICK R, et al. Feature pyramid networks for object detection [C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. [S.l.]: IEEE, 2017: 2117?2125.
[12] WANG W, XIE E, SONG X, et al. Efficient and accurate arbitrary?shaped text detection with pixel aggregation network [C]// Proceedings of the IEEE/CVF International Conference on Computer Vision. [S.l.]: IEEE, 2019: 8440?8449.
[13] REZATOFIGHI H, TSOI N, GWAK J Y, et al. Generalized intersection over union: a metric and a loss for bounding box regression [EB/OL]. [2024?01?17]. https://arxiv.org/abs/1902.09630.
[14] ZHENG Z, WANG P, LIU W, et al. Distance?IoU loss: faster and better learning for bounding box regression [J]. Proceedings of the AAAI conference on artificial intelligence, 2020, 34(7): 12993?13000.
[15] REN S, HE K, GIRSHICK R, et al. Faster R?CNN: towards real?time object detection with region proposal networks [J]. IEEE transactions on pattern analysis amp; machine intelligence, 2017, 39(6): 1137?1149.
[16] LIU W, ANGUELOV D, ERHAN D, et al. SSD: single shot multibox detector [C]// European Conference on Computer Vision. Cham: Springer, 2016: 21?37.
[17] WANG Y, WANG C, ZHANG H, et al. Automatic ship detection based on RetinaNet using multi?resolution Gaofen?3 imagery [J]. Remote sensing, 2019, 11(5): 531.
[18] BOCHKOVSKIY A, WANG C Y, LIAO H Y M. YOLOv4: optimal speed and accuracy of object detection [EB/OL]. [2023?07?18]. https://www.xueshufan.com/publication/3018757597.
[19] WANG C Y, BOCHKOVSKIY A, LIAO H. YOLOv7: trainable bag?of?freebies sets new state?of?the?art for real?time object detectors [C]// 2023 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Vancouver, BC, Canada: IEEE, 2023: 102?108.