摘要:為實現(xiàn)蔗種切種機構對壞芽蔗種實時檢測剔除,提出一種基于改進YOLOv4的蔗種壞芽快速識別方法。通過在YOLOv4主干網(wǎng)絡添加輕量的注意力模塊(CBAM),以增強網(wǎng)絡提取蔗芽特征能力,降低背景噪聲對蔗芽識別精度的影響;并利用K-means算法對數(shù)據(jù)集重新聚類,生成符合蔗芽特征的錨定框,提高蔗種壞芽檢測精度;將路徑聚合網(wǎng)絡中原有的標準卷積替換為深度可分離卷積,大幅減少參數(shù)降低計算負荷,整體識別速度得到提升。測試結果表明:改進后的網(wǎng)絡模型比YOLOv4精確率提高3.12%,平均精確率均值提高4.15%,召回率提高3.69%,單張圖像識別時間縮短7 ms。改進后算法實現(xiàn)對蔗種壞芽的快速準確識別,滿足切種機構實時檢測并剔除蔗種壞芽的需求。
關鍵詞:蔗種壞芽;改進網(wǎng)絡;切種機構;注意力模塊;聚類算法;深度可分離卷積
中圖分類號:S351.1; TP391.4" " " 文獻標識碼:A" " " 文章編號:2095?5553 (2024) 09?0190?06
Research on sugarcane seed bad bud recognition method based on improved YOLOv4
Shen Manlin, Liu Jiaodi, Xu Hongzhen, He Jie, Duan Yulong
(School of Mechanical and Control Engineering, Guilin University of Technology, Guilin, 541006, China)
Abstract: In order to realize the real?time detection and elimination of the bad buds by the sugarcane seed cutting mechanism, a rapid recognition method for the bad buds of sugarcane seed based on improved YOLOv4 was proposed. A lightweight Convolutional Block Attention Module (CBAM) was added to the YOLOv4 backbone network to enhance the ability of sugarcane bud feature extraction and reduce the influence of background noise on the accuracy of sugarcane bud recognition. The K-means algorithm was used to re?cluster the data set to generate an anchor frame that was consistent with the characteristics of cane buds, which improved the detection accuracy of cane seed bad buds. The original standard convolution in the path aggregation network is replaced by deep separable convolution, which greatly reduces the parameters and computational load, and improves the overall recognition speed. The training and test results show that compared with YOLOv4, the precision of the improved network model is increased by 3.12%, the mean average precision is increased by 4.15%, the recall is increased by 3.69%, and the recognition time of single image is shortened by 7 ms. The improved algorithm realized rapid and accurate identification of sugarcane seed bad buds and met the need of real?time detection and removal of sugarcane seed bad buds by the seed cutting mechanism.
Keywords: sugarcane seed bad bud; improved the network; seed cutting mechanism; attention module; clustering algorithm; depth separable convolution
0 引言
甘蔗是我國蔗糖的主要生產(chǎn)原材料,蔗種蔗芽質(zhì)量直接影響到新宿和宿根蔗的產(chǎn)量[1]。從生長到收割存儲過程中,蔗芽可能發(fā)生蟲蛀、機械損傷、腐壞、霉變等現(xiàn)象,蔗種選種是要求檢測識別出壞芽蔗種并進行剔除,選出正常蔗種是保證蔗種出苗的前提。目前蔗種壞芽識別依舊以人工肉眼識別為主,勞動強度大、效率低且成本高。
目前甘蔗檢測研究主要集中在蔗種莖節(jié)識別,目的是避免預切種切到蔗芽。陸尚平[2]基于小波分解與模糊聚類對莖節(jié)識別,算法處理較為復雜且檢測速度慢;石昌友等[3]利用雙密度雙樹復小波變換與直線檢測算法識別甘蔗莖節(jié),定位精度較高,但少數(shù)莖節(jié)邊界線模糊易導致無法準確識別;陳延祥[4]利用YOLOv3與機器視覺相結合的莖節(jié)識別算法,識別精確率高,但識別速度較慢;李尚平等[5]利用改進后YOLOv3網(wǎng)絡對整根甘蔗莖節(jié)圖像特征進行識別與定位。在蔗芽識別分類研究上,黃亦其等[6]基于Bayes決策對蔗芽完好性分類,分類平均精確率均值mAP較高,但需手動從蔗芽區(qū)域提取分類特征;Song等[7]基于LeNet-5網(wǎng)絡建立卷積神經(jīng)網(wǎng)絡(CNN)模型識別蔗種好芽與壞芽,提取圖像特征十分規(guī)則,但模型復雜數(shù)據(jù)處理時間長。
深度學習目標檢測算法在速度與精度方面對比傳統(tǒng)算法優(yōu)勢顯著[8],被廣泛應用于圖像識別與分類。本文提出一種基于改進YOLOv4的蔗種壞芽快速檢測識別方法,針對蔗芽不同形態(tài)特征進行識別定位與分類,以提高蔗種壞芽識別精確率與識別速度,實現(xiàn)蔗種切種機對蔗種壞芽的實時識別與剔除。
1 改進YOLOv4的蔗種壞芽快速識別方法
1.1 YOLOv4網(wǎng)絡的改進
YOLOv4網(wǎng)絡[9]主要由輸入層(Input)、主要特征提取網(wǎng)絡(Backbone)、頸部特征融合網(wǎng)絡(Neck)和分類回歸檢測網(wǎng)絡(Head)組成。其中主要特征提取網(wǎng)絡為CSP結構融入Darknet53后形成的CSP Darknet53,減少了網(wǎng)絡計算量和對顯存的占用,實現(xiàn)網(wǎng)絡輕量化;YOLOv4網(wǎng)絡采用Mish激活函數(shù)取代Leaky函數(shù),增強了深層信息傳播;頸部特征融合網(wǎng)絡引入空間金字塔池化層(SPP)作為附加模塊,路徑聚合網(wǎng)絡(PANet)作為特征融合模塊,將提取的特征信息轉(zhuǎn)換為坐標、類別等信息,有效提高了網(wǎng)絡預測的準確性;分類回歸檢測網(wǎng)絡則沿用了YOLOv3[10]的檢測頭,得到輸出后與真實標注比較,計算出損失函數(shù)。以上為YOLOv4網(wǎng)絡模型的整體框架。
為提高網(wǎng)絡對壞芽檢測識別速度,本文基于原始YOLOv4網(wǎng)絡做出以下改進:第一在主要特征提取網(wǎng)絡中添加CBAM模塊;第二利用K-means算法對數(shù)據(jù)集重新聚類,生成符合蔗芽尺寸的9個錨定框;第三將PANet中所有標準卷積模塊替換為深度可分離卷積。改進后YOLOv4網(wǎng)絡結構如圖1所示。
1.2 CBAM模塊
CBAM分為通道注意力模塊(CAM)與空間注意力模塊(SAM),兩模塊串聯(lián)并分別與通道和空間維度的注意力特征融合,通常應用在前饋卷積神經(jīng)網(wǎng)絡[11]。原始CSPDarknet53包含53層卷積,分為5個CSP模塊,本文將CBAM模塊嵌入主干網(wǎng)絡CSPDarknet53中,添加于CSPBlock中每組重復卷積層末端。CBAM模塊具體結構如圖2所示,在CAM中,輸入特征圖F沿通道方向分別經(jīng)過最大池化與平均池化[12],將兩種池化后特征送入共享特征層計算,計算后特征圖相加經(jīng)Sigmoid激活函數(shù)處理,生成通道注意力映射Mc,Mc與F逐元素相乘得到新特征圖F1,如式(1)所示。
本文改進所添加注意力模塊不再采用單一池化操作,而是采用最大池化與平均池化相加或堆疊。經(jīng)過CAM與SAM后所得新特征圖F2與F融合后作為下一層輸入。低階通道特征經(jīng)過最大池化與平均池化融合,可實現(xiàn)對高階通道特征的引導與校準。兩模塊生成的注意力映射可提高圖像中蔗芽權重,使改進后模型更關注壞芽顯著特征,降低了背景噪聲對壞芽檢測精度的影響,同時減小錯檢與漏檢率。
1.3 K-means聚類算法
K-means聚類算法[13]是一種簡單易于實現(xiàn)的無監(jiān)督聚類方法,因其收斂速度快效果好而被廣泛使用。原始YOLOv4網(wǎng)絡中默認錨定框全部基于COCO數(shù)據(jù)集統(tǒng)計,用于確定檢測目標長寬比和預測目標邊界框。對本文蔗芽識別任務而言,部分錨定框尺寸過大,并不適用于蔗芽目標檢測。為此,使用K-means算法對蔗種圖像數(shù)據(jù)集中所有錨定框重新聚類,獲取與蔗芽尺寸大小、比例相匹配的9個錨定框,以此提升識別算法在回歸過程中的速度與精確度。
將蔗種圖像數(shù)據(jù)集中蔗芽錨定框的長與寬輸入聚類算法,隨機選取9個錨定框作為質(zhì)心,計算數(shù)據(jù)集中各錨定框到各質(zhì)心距離,將每個錨定框標記為與其距離最近質(zhì)心的類別,再對歸類后各錨定框求新質(zhì)心,基于新質(zhì)心對錨定框重新分類,再求質(zhì)心,數(shù)次重復直至質(zhì)心不變,即可得到一組適合蔗芽特征的錨定框尺寸。將重新聚類后所生成錨定框分配到不同尺度特征圖上,如表1所示。
1.4 改進PANet結構
不同深度下網(wǎng)絡提取特征圖所關注重點不一,高層關注整體,低層關注細節(jié)。低層特征圖中信息能更好對壞芽進行識別定位,因此在PANet的FPN網(wǎng)絡結構中增加了PAN,將低層信息傳到高層,同時減少由上向下路徑中卷積層數(shù)量。PANet模塊運算量主要在3×3標準卷積上,使用深度可分離卷積代替結構中全部標準卷積后參數(shù)量相應減少,計算負荷降低的同時加強了多層次特征融合。深度可分離卷積是將標準卷積轉(zhuǎn)化為一個深度卷積與一個逐點卷積進行運算[14],如圖3所示。
2 蔗種壞芽檢測識別試驗
2.1 試驗數(shù)據(jù)集
本試驗使用甘蔗樣本為桂糖44號,由廣西桂林農(nóng)業(yè)科學院種植提供,數(shù)據(jù)集為室內(nèi)拍攝含單個蔗芽的蔗種段,含好芽和壞芽兩類,每類樣本圖片790張,共拍攝1 580張。訓練時將圖像大小參數(shù)調(diào)整為416像素×416像素,將所得數(shù)據(jù)集按8∶2隨機分為1 264張訓練集與316張驗證集。
2.2 試驗環(huán)境配置
本次網(wǎng)絡模型測試所用的試驗平臺設備配置為Intel(R)Core(TM)i7-10700K CPU@3.80 GHz,內(nèi)存24 G,訓練試驗平臺設備配置為CPUi7-4790,搭配NVIDIA GeForce RTX2060 SUPER圖形卡,8 G顯存以及Windows10操作系統(tǒng),在Python3.7、CUDA11.1環(huán)境下進行蔗芽識別處理。
2.3 檢測方法框架
創(chuàng)建數(shù)據(jù)集時,對數(shù)據(jù)集的標注是關鍵步驟。以蔗芽作為目標檢測區(qū)域,基于Labelimg軟件對蔗芽進行標注處理[17],如圖4所示。
將標定后的蔗芽分為好芽與壞芽兩類,便于網(wǎng)絡模型檢測識別。使用Labelimg對圖像進行預處理時輸出xml文件,此文件主要內(nèi)容包含圖像路徑、蔗芽所在位置信息及蔗芽類別。其中好芽指未受損傷且飽滿完整的蔗芽;壞芽指受自然環(huán)境影響發(fā)生霉變、干枯,或受機械損傷的蔗芽。好芽與壞芽特征對比如圖5所示,好芽(圖5(a))紋理均勻且呈微微凸起狀;壞芽(圖5(b))因破損或干枯發(fā)霉,紋理粗糙且呈凹陷狀,蔗芽區(qū)域顏色較深。兩類蔗芽圖像特征清晰,差異明顯易于識別分類。
3 試驗結果分析
3.1 評價指標
對于本文蔗芽目標檢測任務,選取以下模型性能評價指標對模型進行評價:精確率P、召回率R、精確度均值AP、平均精確度均值mAP以及F1值,其中F1值是P和R的調(diào)和均值;AP值為P-R曲線與坐標軸圍成的面積[18],體現(xiàn)了訓練模型在每個類別上的識別精度;mAP表示AP值求平均[19],體現(xiàn)訓練模型在所有類別上的識別精度,mAP越接近于1代表網(wǎng)絡性能越好。計算如式(3)~式(7)所示。
3.2 模型訓練結果
將數(shù)據(jù)集輸入改進后YOLOv4網(wǎng)絡訓練,訓練過程中共經(jīng)過400次迭代,使用Tensorboard記錄數(shù)據(jù),每進行一次迭代,寫入訓練集損失;每訓練一個輪次,寫入驗證集損失并保存模型權重。模型訓練損失值變化如圖6所示,損失值在前50輪次下降最快,歷經(jīng)50次迭代后損失值變化放緩;200次迭代后,訓練損失再次呈現(xiàn)小幅下降趨勢,持續(xù)50次迭代后損失值變化再次放緩,最后150次迭代損失值基本不再下降,于固定范圍變化浮動。將最后50輪次中損失最低的模型作為訓練結果以進行后續(xù)分析。
3.3 消融試驗結果
為驗證改進算法采用模塊對原始YOLOv4網(wǎng)絡的提升效果,進行消融試驗。在YOLOv4網(wǎng)絡的基礎上分別單獨添加CBAM注意力模塊、改進K-means聚類算法和引入深度可分離卷積進行對比驗證。表2為消融試驗結果,表中CBAM代表在主干網(wǎng)絡中添加CBAM注意力模塊,K-means代表用K-means聚類算法對YOLOv4原有錨定框重新聚類,Depthwise代表在PANet引入深度可分離卷積代替全部標準卷積。
由表2可看出,YOLOv4模型的平均精確率均值為93.27%,精確率為95.42%。在此基礎上,CSPDarknet53中添加CBAM后網(wǎng)絡運算速度下降,但mAP提高了3.04%,表明CBAM在不影響實時性檢測情況下可有效提升mAP;利用K-means聚類算法對原始錨定框重新聚類,mAP提高2.49%,表明合適的錨定框能有效提高識別精度;引入深度可分離卷積后參數(shù)量減少,mAP與P均小有提升。原始YOLOv4網(wǎng)絡同時做出以上三點改進后,mAP提升至97.42%,精確率得到大幅提升。
通過上述消融試驗結果對比,原始YOLOv4網(wǎng)絡經(jīng)過,三點改進均能有效提高模型識別精確率,試驗數(shù)據(jù)表明融合三點改進后網(wǎng)絡模型的壞芽識別精確率高達98.54%,遠高于原始YOLOv4網(wǎng)絡識別精確率。
3.4 不同網(wǎng)絡模型對比試驗結果
為檢測改進YOLOv4網(wǎng)絡模型的識別性能,將其與目前主流網(wǎng)絡模型YOLOv4-tiny、YOLOv4、YOLOv5進行試驗對比。將改進YOLOv4、YOLOv4-tiny、YOLOv4、YOLOv5網(wǎng)絡模型對同一組數(shù)據(jù)集分別進行檢測[20],試驗結果如表3所示,改進YOLOv4網(wǎng)絡模型的mAP相較YOLOv4-tiny、YOLOv4、YOLOv5均有所上升,分別增長了9.9%、4.15%、3.56%;改進YOLOv4網(wǎng)絡模型對蔗芽識別分類的平均速度為17 ms/芽,在檢測速度上相較于YOLOv4、YOLOv5也具有優(yōu)勢。YOLOv4-tiny網(wǎng)絡檢測速度雖為8 ms/芽,但其識別精確率過低,整體優(yōu)勢不如改進后YOLOv4網(wǎng)絡模型。
圖7為訓練后不同網(wǎng)絡模型對蔗芽識別分類效果,每個框右上角數(shù)值代表算法檢測框的置信度。置信度表示預測框檢測到某物品種類時,預測框與物品真實框的重合程度[21],是YOLO系列算法評估檢測準確性的指標。將蔗芽類別判斷置信度設為0.5,當網(wǎng)絡判斷蔗芽置信度超過0.5,識別蔗芽成功,否則不進行識別,提高了蔗芽檢測精度。
4 結論
1) 提出一種基于改進YOLOv4的蔗種壞芽快速識別檢測算法,試驗結果表明,改進后YOLOv4的識別精確率達到98.54%,平均準確度均值為97.42%,召回率為96.18%,單張圖像平均識別時間為17 ms。模型能夠在保證檢測精度的同時,滿足對蔗種壞芽識別的實時性需求。
2) 為驗證改進YOLOv4網(wǎng)絡模型的優(yōu)越性,與主流的目標檢測模型進行對比試驗。本文模型的平均準確度均值相比YOLOv4-tiny、YOLOv4、YOLOv5分別提高9.9%、4.15%、3.56%,壞芽識別檢測速度相較YOLOv4與YOLOv5分別加快7 ms/芽、3 ms/芽。
3) 改進后模型滿足蔗種壞芽快速、高精度的識別檢測需求,解決切種機構對壞芽蔗種實時識別問題,識別分類結果輸出后向切種機構傳遞剔除信號,切種后及時剔除壞芽蔗種,實現(xiàn)蔗種切種機實時檢測剔除壞芽蔗種。
參 考 文 獻
[ 1 ] 劉慶庭, 莫建霖, 李廷化, 等. 我國甘蔗種植機技術現(xiàn)狀及存在的關鍵技術問題[J]. 甘蔗糖業(yè), 2011(5): 52-58.
Liu Qingting, Mo Jianlin, Li Tinghua, et al. Current situation of sugarcane planter and its key technical issues in China [J]. Sugarcane and Canesugar, 2011(5): 52-58.
[ 2 ] 陸尚平. 基于機器視覺的甘蔗莖節(jié)識別與蔗芽檢測研究[D]. 武漢: 華中農(nóng)業(yè)大學, 2011.
Lu Shangping. Research on sugarcane internodes and sugarcane buds identification based on machine vision [D]. Wuhan: Huazhong Agricultural University, 2011.
[ 3 ] 石昌友, 王美麗, 劉欣然, 等. 基于機器視覺的不同類型甘蔗莖節(jié)識別[J]. 計算機應用, 2019, 39(4): 1208-1213.
Shi Changyou, Wang Meili, Liu Xinran, et al. Node recognition for different types of sugarcanes based on machine vision [J]. Journal of Computer Applications, 2019, 39(4): 1208-1213.
[ 4 ] 陳延祥. 基于機器視覺的甘蔗多刀切種裝備設計與研究[D]. 無錫: 江南大學, 2022.
Chen Yanxiang. Design and research on sugarcane multi?cutter cutting equipment based on machine vision [D]. Wuxi: Jiangnan University, 2022.
[ 5 ] 李尚平, 李向輝, 張可, 等. 改進YOLOv3網(wǎng)絡提高甘蔗莖節(jié)實時動態(tài)識別效率[J]. 農(nóng)業(yè)工程學報, 2019, 35(23): 185-191.
Li Shangping, Li Xianghui, Zhang Ke, et al. Increasing the real?time dynamic identification efficiency of sugarcane nodes by improved YOLOv3 network [J]. Transactions of the Chinese Society of Agricultural Engineering, 2019, 35(23): 185-191.
[ 6 ] 黃亦其, 尹凱, 黃媚章, 等. 基于Bayes決策的甘蔗種芽完好性檢測與試驗[J]. 農(nóng)業(yè)工程學報, 2016, 32(5): 57-63.
Huang Yiqi, Yin Kai, Huang Meizhang, et al. Detection and experiment of sugarcane buds integrity based on Bayes decision [J]. Transactions of the Chinese Society of Agricultural Engineering, 2016, 32(5): 57-63.
[ 7 ] Song H, Peng J, Tuo N, et al. Study of sugarcane buds classification based on convolutional neural networks [J]. Intelligent Automation and Soft Computing, 2021, 27(2):581-592.
[ 8 ] 趙永強, 饒元, 董世鵬, 等. 深度學習目標檢測方法綜述[J]. 中國圖象圖形學報, 2020, 25(4): 629-654.
Zhao Yongqiang, Rao Yuan, Dong Shipeng, et al. Survey on deep learning object detection [J]. Journal of Image and Graphics, 2020, 25(4): 629-654.
[ 9 ] Bochkovskiy A, Wang C, Liao H. YOLOv4: Optimal speed and accuracy of object detection [J]. Computer Vision and Pattern Recognition, 2020.
[10] Redmon J, Farhadi A. YOLOv3: An incremental improvement [J]. arxiv e?prints, 2018.
[11] Woo S, Park J, Lee J Y, et al. CBAM: Convolutional block attention module [C]. Proceedings of the European Conference on Computer Vision, 2018: 3-19.
[12] 劉強, 李鵬, 鄒一鳴, 等. 基于改進YOLOv4算法的動車庫接地桿狀態(tài)檢測[J]. 五邑大學學報(自然科學版), 2022, 36(2): 41-47.
Liu Qiang, Li Peng, Zou Yiming, et al. State detection of grounding rods in moving garage based on improved YOLOv4 algorithm [J]. Journal of Wuyi University (Natural Science Edition), 2022, 36(2): 41-47.
[13] Chao G. Discriminative K-means laplacian clustering [J]. Neural Processing Letters, 2019, 49(1): 393-405.
[14] Back S, Lee S, Shin S, et al. Robust skin disease classification by distilling deep neural network ensemble for the mobile diagnosis of herpes zoster [J]. IEEE Access, 2021, 9: 20156-20169.
[15] 梁桓偉. 基于Android的近紅外人眼檢測與跟蹤研究與實現(xiàn)[D]. 大連: 大連交通大學, 2018.
Liang Huanwei. Research and implementation of near infrared human eye detection and tracking based on Android [D]. Dalian: Dalian Jiaotong University, 2018.
[16] 趙東升. 基于HLS的高效深度卷積神經(jīng)網(wǎng)絡FPGA實現(xiàn)方法[D]. 西安: 西安電子科技大學, 2019.
Zhao Dongsheng. An FPGA implementation method of efficient deep convolution neural network based on HLS [D]. Xi'an: Xidian University, 2019.
[17] Tian D, Lin C, Zhou J, et al. SA-YOLOv3: An efficient and accurate object detector using self?attention mechanism for autonomous driving [J]. IEEE Transactions on Intelligent Transportation Systems, 2020, 23(5): 4099-4110.
[18] 宋德江. 基于深度學習的車輛行為識別[D]. 重慶: 西南大學, 2021.
Song Dejiang. Vehicle behavior detection based on deep learning [D]. Chongqing: Southwest University, 2021.
[19] Li Y, Guo J h, Guo X m, et al. A novel target detection method of the unmanned surface vehicle under all?weather conditions with an improved YOLOV3 [J]. Sensors, 2020, 20(17): 4885.
[20] 彭國雯. 基于深度學習的場景文字檢測算法的融合技術研究[D]. 開封: 河南大學, 2019.
[21] 高嘉琳, 白堂博, 姚德臣, 等. 基于改進YOLOv4算法的鐵路扣件檢測[J]. 科學技術與工程, 2022, 22(7): 2872-2877.
Gao Jialin, Bai Tangbo, Yao Dechen, et al. Detection of track fastener based on improved YOLOv4 algorithm [J]. Science Technology and Engineering, 2022, 22(7): 2872-2877.