摘要:本文介紹了一種基于深度學(xué)習(xí)的玉米病蟲害檢測系統(tǒng)系統(tǒng)的代碼,采用最先進的YOLOv8算法并對比YOLOv7、YOLOv6、YOLOv5等算法的結(jié)果·,能夠準(zhǔn)確識別圖像、視頻、實時視頻流以及批量文件中的玉米病蟲害。文章詳細解釋了YOLOv8算法的原理,并提供了相應(yīng)的Python實現(xiàn)代碼、訓(xùn)練數(shù)據(jù)集,以及基于PySide6的用戶界面(UI)。該系統(tǒng)實現(xiàn)了對圖像中玉米病蟲害的準(zhǔn)確識別和分類,并包含了基于SQLite的登錄注冊管理、一鍵更換YOLOv5/v6/v7/v8模型以及界面自定義修改等功能。本文旨在為相關(guān)領(lǐng)域的研究人員和新入門的朋友提供一個參考,完整代碼資源文件以及數(shù)據(jù)集可以在文末的下載鏈接中獲取。本文結(jié)構(gòu)如下:
YOLOv8/v5項目完整資源:https://mbd.pub/o/bread/mbd-ZZuWmp1r
YOLOv7項目完整資源:https://mbd.pub/o/bread/mbd-ZZuXkppx
YOLOv6項目完整資源:https://mbd.pub/o/bread/mbd-ZZuXlpZp
YOLOv8/v7/v6/v5項目合集:https://mbd.pub/o/bread/ZZuXlpZv
前言
????????玉米作為全球最重要的糧食作物之一,其產(chǎn)量和質(zhì)量直接關(guān)系到全球糧食安全和農(nóng)業(yè)經(jīng)濟的穩(wěn)定。然而,病蟲害的發(fā)生嚴重威脅到玉米的生產(chǎn),導(dǎo)致產(chǎn)量減少和品質(zhì)降低,這對農(nóng)業(yè)生產(chǎn)者和整個糧食供應(yīng)鏈構(gòu)成了巨大的挑戰(zhàn)。傳統(tǒng)的病蟲害檢測方法依賴于人工目視檢查或者簡單的化學(xué)測試,這些方法不僅效率低,而且準(zhǔn)確率有限,難以滿足大規(guī)模和實時監(jiān)測的需求。隨著人工智能和機器視覺技術(shù)的發(fā)展,尤其是深度學(xué)習(xí)算法的進步,基于YOLO[1](You Only Look Once)系列算法的病蟲害檢測技術(shù)已經(jīng)成為研究的熱點。YOLO算法因其高速的檢測速度和較高的準(zhǔn)確率,特別適合于實時病蟲害檢測應(yīng)用。
????????最初的YOLO算法通過將檢測任務(wù)視為單一的回歸問題來直接預(yù)測物體類別和位置,大大提高了檢測速度。隨后,該算法的多個版本迭代,如YOLOv3和YOLOv4,不斷優(yōu)化模型架構(gòu)和訓(xùn)練過程,提高了檢測的準(zhǔn)確性和效率。到了YOLOv5[2]及其后的版本,更是在模型輕量化、速度和準(zhǔn)確度等方面取得了平衡,使得它們可以更好地應(yīng)用于實時病蟲害檢測。
????????除了YOLO系列之外,還有其他深度學(xué)習(xí)模型在玉米病蟲害檢測方面也表現(xiàn)出了優(yōu)異的性能。例如,F(xiàn)aster R-CNN[3]作為一種經(jīng)典的區(qū)域建議網(wǎng)絡(luò),雖然速度不如YOLO系列,但在準(zhǔn)確度上具有一定的優(yōu)勢,特別是在處理高分辨率圖像時。同樣,Mask R-CNN[4]在病蟲害檢測任務(wù)中也顯示出了其強大的能力,不僅可以準(zhǔn)確地識別病蟲害,還能生成病害區(qū)域的精確分割。
????????近期的研究還探索了利用遷移學(xué)習(xí)和半監(jiān)督學(xué)習(xí)技術(shù)來進一步提升玉米病蟲害檢測模型的性能。通過這些技術(shù),模型可以在有限的標(biāo)注數(shù)據(jù)上進行訓(xùn)練,并且能夠更好地泛化到新的、未見過的病蟲害類型上。此外,數(shù)據(jù)增強技術(shù)的應(yīng)用也大大提高了模型的魯棒性,使得在復(fù)雜環(huán)境下的檢測更加準(zhǔn)確可靠。

????????Transformer模型,尤其是基于自注意力機制的Vision Transformer (ViT),已經(jīng)在圖像分類任務(wù)中展現(xiàn)了其強大的性能。ViT通過將圖像劃分為序列化的小塊(patches),并將這些小塊輸入到Transformer模型中,利用自注意力機制捕獲不同塊之間的全局依賴關(guān)系。這種方法在處理農(nóng)業(yè)圖像數(shù)據(jù)時特別有效,因為它能夠捕捉到病蟲害特征與正常植物組織之間的微妙差異。最近的研究表明,ViT在多個農(nóng)業(yè)病蟲害數(shù)據(jù)集上都達到了優(yōu)于傳統(tǒng)CNN模型的性能。
????????基于圖卷積網(wǎng)絡(luò)(GCN)的方法。GCN在處理圖像時考慮了像素點之間的空間關(guān)系,這對于識別形狀和大小各異的病蟲害特征尤其重要。通過建立像素點之間的圖表示,GCN能夠有效地識別出復(fù)雜的病蟲害模式,從而提高檢測的準(zhǔn)確率。這種方法在處理具有復(fù)雜背景和不同病蟲害階段的農(nóng)業(yè)圖像時表現(xiàn)尤為出色。
????????在數(shù)據(jù)增強方面,一種名為AutoAugment的技術(shù)通過自動搜索最優(yōu)的數(shù)據(jù)增強策略,顯著提高了模型的泛化能力和魯棒性。AutoAugment的策略通過強化學(xué)習(xí)自動確定,這使得模型能夠在多樣化的農(nóng)業(yè)圖像數(shù)據(jù)集上獲得更好的性能。這項技術(shù)的應(yīng)用大大提升了病蟲害檢測模型在面對不同光照、遮擋和背景條件時的準(zhǔn)確性。
????????本文通過綜合運用最新的深度學(xué)習(xí)技術(shù)和圖形界面設(shè)計工具,構(gòu)建了一個先進的玉米病蟲害檢測系統(tǒng),以YOLOv8算法為核心進行病蟲害圖像的檢測與識別。文章的貢獻主要體現(xiàn)在以下幾個方面:
- 采用最先進的YOLOv8算法:本文不僅采用了目前最先進的YOLOv8算法進行玉米病蟲害檢測,而且還對比了YOLOv7、YOLOv6、YOLOv5等算法的檢測效果。通過這種對比分析,本文詳細展示了YOLOv8在檢測速度、準(zhǔn)確度以及實用性方面相比早期算法的顯著優(yōu)勢,為病蟲害檢測領(lǐng)域提供了新的研究思路和實踐手段。
- 利用PySide6實現(xiàn)友好的系統(tǒng)界面:通過使用Python的PySide6庫,本文開發(fā)了一個用戶友好的玉米病蟲害檢測系統(tǒng)界面。這一界面不僅直觀便捷,而且極大地提升了用戶的操作體驗,有助于推廣YOLOv8算法的應(yīng)用,并促進深度學(xué)習(xí)技術(shù)在農(nóng)業(yè)領(lǐng)域的實際應(yīng)用。
- 包含登錄管理功能,提高系統(tǒng)安全性:系統(tǒng)設(shè)計了登錄管理功能,確保了使用過程的安全性,并為將來添加更多個性化功能留出了空間。這一功能的設(shè)計反映了本文在系統(tǒng)安全性和可擴展性方面的考慮。
- 對YOLOv8模型進行深入研究:本文不僅應(yīng)用了YOLOv8算法,而且還對其性能進行了全面的評估,包括精確度、召回率等關(guān)鍵指標(biāo)的分析。此外,還探討了模型在不同環(huán)境條件下的表現(xiàn),為YOLOv8算法的優(yōu)化和改進提供了堅實的基礎(chǔ)。
- 提供完整的數(shù)據(jù)集和代碼資源包:為了使讀者能夠更加深入地理解和應(yīng)用YOLOv8算法在玉米病蟲害檢測中的實踐操作,本文提供了一套完整的數(shù)據(jù)集和代碼資源包。這些資源將有助于讀者直接復(fù)現(xiàn)文章中的實驗結(jié)果,并在此基礎(chǔ)上進行進一步的研究與開發(fā)。
1.數(shù)據(jù)集介紹
????????在本研究中,我們致力于通過構(gòu)建一個全面而精細的數(shù)據(jù)集,推動玉米病蟲害檢測技術(shù)的發(fā)展。此數(shù)據(jù)集包含了總計8856張高質(zhì)量的圖像,這些圖像經(jīng)過了嚴格的選擇和預(yù)處理,以確保能夠滿足深度學(xué)習(xí)模型的訓(xùn)練需求。7339張用于訓(xùn)練的圖片,757張用于驗證的圖片,以及760張用于測試的圖片,這樣的分配旨在確保模型能在廣泛的數(shù)據(jù)上進行學(xué)習(xí),并在未見數(shù)據(jù)上進行有效的性能驗證。

????????數(shù)據(jù)集經(jīng)過預(yù)處理步驟,以適應(yīng)深度學(xué)習(xí)模型的輸入需求。所有圖像首先經(jīng)過自動定向校正,確保其方向一致,并移除了可能影響模型訓(xùn)練的EXIF方向信息。隨后,圖像被統(tǒng)一調(diào)整至640x640像素的分辨率,采用拉伸的方式來適配模型的輸入尺寸,盡管這可能導(dǎo)致某些圖像比例發(fā)生變化,但統(tǒng)一的圖像尺寸對于確保模型處理的一致性和效率是必要的。
????????邊界框尺寸分布圖表明,絕大多數(shù)的邊界框在尺寸上比較小,這可能是由于病蟲害往往只影響植物的一小部分。這種情況意味著我們的模型需要能夠精確地識別小目標(biāo)。在模型設(shè)計時,應(yīng)當(dāng)考慮增加模型對小尺寸目標(biāo)的敏感性,或者使用一些專門針對小目標(biāo)檢測的算法優(yōu)化技術(shù)。
????????數(shù)據(jù)集中“病蟲害”類別的實例最多,遠多于其他類別,這表明我們的數(shù)據(jù)集對于訓(xùn)練病蟲害檢測模型是十分有利的。相較之下,“好條件下的玉米”和“受損的玉米”類別的實例數(shù)量較少,這可能會導(dǎo)致模型對這些類別的識別能力不足。因此,在訓(xùn)練模型時可能需要采取數(shù)據(jù)增強或過采樣等策略來平衡類別分布。

????????在圖像標(biāo)注方面,我們深知準(zhǔn)確的標(biāo)簽對于訓(xùn)練有效的機器學(xué)習(xí)模型的重要性。我們的數(shù)據(jù)集包含多個類別的標(biāo)簽,涉及玉米在不同健康狀態(tài)下的多種情形。標(biāo)簽及其對應(yīng)的中文名稱如下所示:
Chinese_name = { "Enfermedad": "病害","Good Condition Corn": "狀態(tài)良好","Good Condition Maize": "良好",
"Plaga": "害蟲", "corn": "玉米", "damaged corn": "受損玉米"}
????????通過這些細致的分類,我們的數(shù)據(jù)集可以幫助深度學(xué)習(xí)模型學(xué)習(xí)如何識別和區(qū)分玉米的健康狀況,并且對于病害和害蟲能夠作出準(zhǔn)確的判別。這對于研究和實踐玉米健康管理,提高產(chǎn)量和質(zhì)量具有重要的意義。
????????綜合考慮,我們的數(shù)據(jù)集不僅在數(shù)量和質(zhì)量上滿足了深度學(xué)習(xí)訓(xùn)練的高標(biāo)準(zhǔn),而且通過細致的預(yù)處理和標(biāo)注工作,為玉米病蟲害檢測模型的開發(fā)提供了一個堅實的基礎(chǔ)。我們希望,這個數(shù)據(jù)集的發(fā)布能夠激勵更多的研究人員和開發(fā)者參與到農(nóng)業(yè)病蟲害檢測技術(shù)的研究中來,共同推動這一領(lǐng)域的技術(shù)進步。
2. 系統(tǒng)界面效果
????????系統(tǒng)以PySide6作為GUI庫,提供了一套直觀且友好的用戶界面。下面,我將詳細介紹各個主要界面的功能和設(shè)計。
(1)系統(tǒng)提供了基于SQLite的注冊登錄管理功能。用戶在首次使用時需要通過注冊界面進行注冊,輸入用戶名和密碼后,系統(tǒng)會將這些信息存儲在SQLite數(shù)據(jù)庫中。注冊成功后,用戶可以通過登錄界面輸入用戶名和密碼進行登錄。這個設(shè)計可以確保系統(tǒng)的安全性,也為后續(xù)添加更多個性化功能提供了可能性。

(2)在主界面上,系統(tǒng)提供了支持圖片、視頻、實時攝像頭和批量文件輸入的功能。用戶可以通過點擊相應(yīng)的按鈕,選擇要進行玉米病蟲害檢測的圖片或視頻,或者啟動攝像頭進行實時檢測。在進行玉米病蟲害檢測時,系統(tǒng)會實時顯示檢測結(jié)果,并將檢測記錄存儲在數(shù)據(jù)庫中。

(3)此外,系統(tǒng)還提供了一鍵更換YOLOv8/v5模型的功能。用戶可以通過點擊界面上的"更換模型"按鈕,選擇不同的YOLOv8模型進行檢測。與此同時,系統(tǒng)附帶的數(shù)據(jù)集也可以用于重新訓(xùn)練模型,以滿足用戶在不同場景下的檢測需求。

(4)為了提供更個性化的使用體驗,這里系統(tǒng)支持界面修改,用戶可以自定義圖標(biāo)、文字等界面元素。例如,用戶可以根據(jù)自己的喜好,選擇不同風(fēng)格的圖標(biāo),也可以修改界面的文字描述。

3. YOLOv8算法原理
????????YOLOv8[5]作為目標(biāo)檢測領(lǐng)域的最新突破,繼承并優(yōu)化了其前身的架構(gòu)和算法,實現(xiàn)了對于對象檢測的高效性和精確性。在本部分,我們將深入探討YOLOv8的原理,并分析其在玉米病蟲害檢測中的應(yīng)用。

????????首先,YOLOv8在網(wǎng)絡(luò)架構(gòu)上進行了創(chuàng)新。它采用了分層次的特征提取網(wǎng)絡(luò),該網(wǎng)絡(luò)由多個模塊組成,每個模塊都負責(zé)從圖像中提取不同層次的特征。這些模塊包括多種類型的卷積層、殘差連接以及正則化層,共同工作以捕捉從簡單到復(fù)雜的圖像特征。通過這樣的結(jié)構(gòu)設(shè)計,YOLOv8能夠在保持實時檢測速度的同時,提高對目標(biāo)的檢測準(zhǔn)確率。
????????YOLOv8在損失函數(shù)設(shè)計上也有所創(chuàng)新。它引入了'Distribution Focal Loss',這是一種改進的損失函數(shù)設(shè)計。與傳統(tǒng)的Focal Loss相比,'Distribution Focal Loss'更加注重于預(yù)測分布的形狀而不僅僅是單個類別的準(zhǔn)確度,從而在提升模型對于類別分布不均勻數(shù)據(jù)的性能上有顯著效果。這對于處理玉米病蟲害檢測這樣的多類別不平衡數(shù)據(jù)集尤其有價值。
????????此外,YOLOv8優(yōu)化了任務(wù)分配過程。在以往的YOLO版本中,任務(wù)分配通常是基于預(yù)定閾值和錨框的IoU(交并比)來執(zhí)行的。而YOLOv8采用了'Task Aligned Assigner',這是一種基于任務(wù)對齊的策略,它通過動態(tài)調(diào)整分配閾值和任務(wù)權(quán)重來實現(xiàn)更加有效的任務(wù)分配。這種策略能夠更準(zhǔn)確地匹配目標(biāo)和預(yù)測框,從而提高模型對于小目標(biāo)檢測的敏感度和準(zhǔn)確度,這在玉米病蟲害檢測中尤其重要,因為病害和害蟲往往體積較小。
????????最后,在目標(biāo)檢測的效率和準(zhǔn)確性之間,YOLOv8實現(xiàn)了一個新的平衡。它通過精心設(shè)計的網(wǎng)絡(luò)結(jié)構(gòu)和損失函數(shù),不僅提升了檢測的精度,同時也保持了檢測的速度。這種平衡對于需要實時檢測和處理的農(nóng)業(yè)應(yīng)用場景來說至關(guān)重要。例如,在使用無人機進行玉米田的實時病蟲害監(jiān)測時,YOLOv8能夠快速地處理圖像數(shù)據(jù)并給出準(zhǔn)確的檢測結(jié)果,從而幫助農(nóng)業(yè)工作者及時采取相應(yīng)的措施。
????????在這些技術(shù)的支撐下,YOLOv8不僅在標(biāo)準(zhǔn)的目標(biāo)檢測任務(wù)中表現(xiàn)卓越,也特別適用于農(nóng)業(yè)領(lǐng)域的病蟲害檢測。其高效的處理速度和精確的檢測能力為玉米病蟲害管理提供了強有力的技術(shù)支持,有助于提高農(nóng)作物的健康水平和整體產(chǎn)量。
4. 代碼簡介
????????在本節(jié)中,我們將詳細介紹如何使用YOLOv8進行玉米病蟲害檢測的代碼實現(xiàn)。代碼主要分為兩部分:模型預(yù)測和模型訓(xùn)練。
4.1 模型預(yù)測
????????在模型預(yù)測部分,首先導(dǎo)入了OpenCV庫和YOLO模型。OpenCV庫是一個開源的計算機視覺和機器學(xué)習(xí)軟件庫,包含了眾多的視覺處理函數(shù),使用它來讀取和處理圖像。YOLO模型則是要用到的目標(biāo)檢測模型。
import cv2
from ultralytics import YOLO
????????接著,加載自行訓(xùn)練好的YOLO模型。這個模型是在大量的圖像上預(yù)訓(xùn)練得到的,可以直接用于目標(biāo)檢測任務(wù)。
model.load_model(abs_path("weights/best-yolov8n.pt", path_type="current"))
????????然后,使用OpenCV讀取了一個圖像文件,這個圖像文件作為要進行目標(biāo)檢測的圖像輸入。
img_path = abs_path("test_media/test.png")
image = cv_imread(img_path)
????????在讀取了圖像文件之后,就可以使用加載的模型對圖像進行預(yù)測了。下圖為預(yù)測結(jié)果。
pred, superimposed_img = model.predict(pre_img)

4.2 模型訓(xùn)練
????????這里我們開始訓(xùn)練和測試自己的數(shù)據(jù)集,在cmd終端或pycharm中運行run_train_model.py進行訓(xùn)練,以下是訓(xùn)練過程中的結(jié)果截圖。YOLOv8的損失函數(shù)是其性能的關(guān)鍵部分,它指導(dǎo)模型學(xué)習(xí)如何準(zhǔn)確地檢測和分類對象。
????????以下表格詳細介紹了YOLOv8模型訓(xùn)練中使用的一些重要超參數(shù)及其設(shè)置:
超參數(shù) | 設(shè)置 | 說明 |
---|---|---|
學(xué)習(xí)率(lr0 ) |
0.01 | 決定了模型權(quán)重調(diào)整的步長大小,在訓(xùn)練初期有助于快速收斂。 |
學(xué)習(xí)率衰減(lrf ) |
0.01 | 控制訓(xùn)練過程中學(xué)習(xí)率的降低速度,有助于模型在訓(xùn)練后期細致調(diào)整。 |
動量(momentum ) |
0.937 | 加速模型在正確方向上的學(xué)習(xí),并減少震蕩,加快收斂速度。 |
權(quán)重衰減(weight_decay ) |
0.0005 | 防止過擬合,通過在損失函數(shù)中添加正則項減少模型復(fù)雜度。 |
熱身訓(xùn)練周期(warmup_epochs ) |
3.0 | 初始幾個周期內(nèi)以較低的學(xué)習(xí)率開始訓(xùn)練,逐漸增加到預(yù)定學(xué)習(xí)率。 |
批量大?。?code>batch) | 16 | 每次迭代訓(xùn)練中輸入模型的樣本數(shù),影響GPU內(nèi)存使用和模型性能。 |
輸入圖像大?。?code>imgsz) | 640 | 模型接受的輸入圖像的尺寸,影響模型的識別能力和計算負擔(dān)。 |
????????在模型訓(xùn)練部分,首先導(dǎo)入YOLO模型,并加載了預(yù)訓(xùn)練的YOLOv8模型。
from ultralytics import YOLO
model = YOLO('./weights/yolov8s.pt', task='detect')
????????接著開始訓(xùn)練模型。其中指定了訓(xùn)練數(shù)據(jù)的配置文件路徑,使用GPU進行訓(xùn)練,使用2個工作進程加載數(shù)據(jù),輸入圖像的大小為640x640,訓(xùn)練100個epoch,每個批次的大小為8。
results2 = model.train(
data=data_path,
device='0',
workers=workers,
imgsz=640,
epochs=120,
batch=batch,
name='train_v8_' + data_name
)
????????在深入分析YOLOv8模型訓(xùn)練過程中的損失函數(shù)圖像,我們可以對模型性能的發(fā)展趨勢有一個全面的認識。這些圖像為我們提供了豐富的信息,包括模型對于訓(xùn)練數(shù)據(jù)的擬合程度、驗證過程中的泛化能力,以及模型預(yù)測的準(zhǔn)確性和召回率。首先,觀察訓(xùn)練和驗證的邊界框損失(train/box_loss和val/box_loss)圖像,它們的數(shù)值隨著訓(xùn)練次數(shù)的增加而穩(wěn)定下降,表明模型在邊界框定位方面的性能逐漸提升。損失函數(shù)的下降趨勢較為平滑,沒有出現(xiàn)明顯的波動或上升,這表示訓(xùn)練過程穩(wěn)定,沒有遇到過擬合或者梯度爆炸的問題。驗證損失的穩(wěn)定下降也表明模型具有良好的泛化能力。

????????接下來,分類損失(train/cls_loss和val/cls_loss)以及分布焦點損失(train/df1_loss和val/df1_loss)的圖表也顯示出類似的趨勢。這兩個指標(biāo)的下降說明模型在區(qū)分不同類別以及處理類別不平衡問題方面取得了進展。特別是分布焦點損失的下降,證明了YOLOv8在處理多類別任務(wù)時的有效性,這對于玉米病蟲害檢測這樣的復(fù)雜場景尤為重要。
????????在模型的精確度和召回率方面,我們看到訓(xùn)練過程中的精確度(metrics/precision)和召回率(metrics/recall)指標(biāo)雖有波動,但整體趨勢向好。精確度的波動可能是由于模型在訓(xùn)練過程中不斷嘗試和修正不同的預(yù)測邊界,而召回率的穩(wěn)步提高表明模型越來越少地錯過檢測目標(biāo)。這兩個指標(biāo)的提升是互補的,說明模型在識別真正的目標(biāo)與減少誤識別方面達到了平衡。
????????最后,平均精度均值(metrics/mAP50和metrics/mAP50-95)指標(biāo)為我們提供了模型性能的綜合視圖。mAP50指標(biāo)的提高表明模型在IoU為0.5的閾值下對于目標(biāo)的識別能力增強,而mAP50-95指標(biāo)的增長則說明模型在各種IoU閾值下都表現(xiàn)出了良好的性能。特別是mAP50-95的穩(wěn)定增長,意味著模型對于不同大小和形狀的目標(biāo)都具有較高的檢測能力。
????????PR曲線是一個重要的指標(biāo),用于評估分類器的性能,尤其是在數(shù)據(jù)集類別不平衡的情況下。它揭示了模型預(yù)測的精確度和召回率之間的關(guān)系。精確度(Precision)指的是模型預(yù)測為正的樣本中實際為正的比例,而召回率(Recall)則是模型正確預(yù)測的正樣本占所有實際正樣本的比例。

???????? 在這組曲線中,我們可以看到不同類別的精確度和召回率表現(xiàn)出明顯的差異。以“Plaga”(害蟲)為例,其曲線接近右上角,顯示了極高的精確度和召回率,其AP值達到了0.947,這表明模型在檢測害蟲這一類別上具有極高的性能。在實際應(yīng)用中,這意味著模型能夠在大多數(shù)情況下準(zhǔn)確地檢測出害蟲,且很少漏檢。
???????? 相比之下,“Good Condition Maize”(良好狀態(tài)的玉米)的AP值僅為0.069,其PR曲線也顯得較為平坦,這表明模型在這一類別上的識別性能較低。可能的原因包括該類別的樣本數(shù)量較少、樣本特征不夠顯著,或者訓(xùn)練樣本中這類狀態(tài)的玉米與其他狀態(tài)間的差異性不夠大。
????????“Enfermedad”(病害)和“damaged corn”(受損玉米)的曲線雖然優(yōu)于“Good Condition Maize”,但AP值分別為0.319和0.262,仍有提升空間。這可能是因為病害和受損玉米的特征更為復(fù)雜,或是這些狀態(tài)在視覺上與健康玉米的區(qū)分度不足?!癱orn”(玉米)這一通用類別的AP值為0.528,顯示了中等水平的模型性能,這可能是因為“玉米”這一類別包括了所有玉米的狀態(tài),因此模型需要區(qū)分的情況更為廣泛和復(fù)雜。
????????總體來說,所有類別的平均精確度均值mAP@0.5為0.393,這是一個中等偏上的結(jié)果,表明模型在多數(shù)情況下能夠提供相對可靠的檢測。然而,為了進一步提高模型的性能,可能需要對訓(xùn)練數(shù)據(jù)進行進一步的增強,或者對模型進行微調(diào),特別是在那些性能較低的類別上。
4.3 YOLOv5、YOLOv6、YOLOv7和YOLOv8對比
(1)實驗設(shè)計:

????????本實驗旨在評估和比較YOLOv5、YOLOv6、YOLOv7和YOLOv8幾種模型在玉米病蟲害目標(biāo)檢測任務(wù)上的性能。為了實現(xiàn)這一目標(biāo),博主分別使用使用相同的數(shù)據(jù)集訓(xùn)練和測試了這四個模型,從而可以進行直接的性能比較。該數(shù)據(jù)集包含玉米病蟲害的圖像。本文將比較分析四種模型,旨在揭示每種模型的優(yōu)缺點,探討它們在工業(yè)環(huán)境中實際應(yīng)用的場景選擇。
模型 | 圖像大小 (像素) | mAPval 50-95 | CPU ONNX 速度 (毫秒) | A100 TensorRT 速度 (毫秒) | 參數(shù)數(shù)量 (百萬) | FLOPs (十億) |
---|---|---|---|---|---|---|
YOLOv5nu | 640 | 34.3 | 73.6 | 1.06 | 2.6 | 7.7 |
YOLOv8n | 640 | 37.3 | 80.4 | 0.99 | 3.2 | 8.7 |
YOLOv6N | 640 | 37.5 | - | - | 4.7 | 11.4 |
YOLOv7-tiny | 640 | 37.4 | - | - | 6.01 | 13.1 |
(2)度量指標(biāo):
- F1-Score:F1-Score是精確率(Precision)和召回率(Recall)的調(diào)和平均值。精確率是指模型正確識別的正例與所有識別為正例的案例之比,而召回率是指模型正確識別的正例與所有實際正例之比。F1-Score對于不平衡的數(shù)據(jù)集或者需要同時考慮精確率和召回率的任務(wù)特別重要。
- mAP(Mean Average Precision):mAP是衡量模型在多個類別上平均檢測準(zhǔn)確度的指標(biāo)。它計算了模型在所有類別上的平均精度,是目標(biāo)檢測領(lǐng)域中常用的性能度量。
名稱 | YOLOv5nu | YOLOv6n | YOLOv7-tiny | YOLOv8n |
---|---|---|---|---|
mAP | 0.386 | 0.374 | 0.368 | 0.45 |
F1-Score | 0.43 | 0.42 | 0.41 | 0.393 |
(3)實驗結(jié)果分析:
??????? 在本次實驗中,我們對YOLOv5nu、YOLOv6n、YOLOv7-tiny和YOLOv8n四個算法進行了細致的比較和分析。通過在同一數(shù)據(jù)集上運行這些不同的YOLO算法版本,我們得以深入理解各自的性能特點。實驗使用了兩個關(guān)鍵的度量指標(biāo):平均精確度均值(mAP)和F1-Score,它們共同評估了算法的準(zhǔn)確性和可靠性。
??????? 首先,我們來分析mAP值,這個指標(biāo)評估了檢測器預(yù)測的精確性,即模型預(yù)測的邊界框與真實邊界框的重合程度。在這一指標(biāo)上,YOLOv8n以0.45的mAP值明顯領(lǐng)先于其他三個算法,顯示出它在目標(biāo)檢測任務(wù)上的強大性能。YOLOv5nu以0.386的mAP緊隨其后,而YOLOv6n和YOLOv7-tiny的mAP分別為0.374和0.368,表明這三個算法在精確度上的差異不大,但都低于YOLOv8n。
??????? F1-Score是另一個重要的度量指標(biāo),它結(jié)合了模型的精確率和召回率,是評估模型整體性能的重要指標(biāo)。通常情況下,F(xiàn)1-Score越高,模型的性能越平衡。在這項指標(biāo)上,YOLOv5nu以0.43的得分位居第一,緊跟其后的是YOLOv6n和YOLOv7-tiny,分別得分為0.42和0.41。有趣的是,盡管YOLOv8n在mAP上表現(xiàn)最好,但其F1-Score為0.393,略低于其他算法。這表明盡管YOLOv8n在檢測的準(zhǔn)確性上表現(xiàn)出色,但在精確率和召回率的平衡上,它可能沒有其他模型那么均衡。

???????綜合以上數(shù)據(jù),我們可以得出結(jié)論,YOLOv8n在目標(biāo)檢測的準(zhǔn)確性上表現(xiàn)最佳,尤其是在檢測目標(biāo)的定位上。然而,當(dāng)我們考慮到精確率和召回率的平衡時,YOLOv5nu在保持這一平衡方面略勝一籌。YOLOv6n和YOLOv7-tiny在這兩個指標(biāo)上的表現(xiàn)相當(dāng)接近,表明在YOLO系列的發(fā)展中,性能的提升是漸進的,并且每個新版本都會在不同方面進行優(yōu)化和改進。
???????此次實驗的結(jié)果強調(diào)了在選擇合適的YOLO版本進行病蟲害檢測時,需要根據(jù)實際應(yīng)用場景和具體需求來決定。如果目標(biāo)的準(zhǔn)確檢測是首要任務(wù),YOLOv8n可能是最佳選擇;而如果需要更平衡的精確率和召回率,則可能會考慮使用YOLOv5nu。無論如何,隨著YOLO算法的不斷進步,我們可以預(yù)期在未來的病蟲害檢測任務(wù)中會有更高效和準(zhǔn)確的模型出現(xiàn)。
4.4 代碼實現(xiàn)
????????在這篇博客中,我們要深入探討如何使用Python和YOLOv8來開發(fā)一個玉米病蟲害檢測系統(tǒng)。這項技術(shù)結(jié)合了深度學(xué)習(xí)模型和圖形用戶界面(GUI),以實現(xiàn)一個易于操作的應(yīng)用程序,它可以實時檢測和識別玉米中的病害和害蟲。
(1)導(dǎo)入必要的模塊和配置
????????首先,我們從導(dǎo)入必要的庫和模塊開始。我們使用sys模塊處理Python運行時環(huán)境的操作,time模塊獲取時間相關(guān)數(shù)據(jù),cv2即OpenCV庫處理圖像和視頻。此外,還有QtFusion和PySide6庫,用于創(chuàng)建和管理GUI。最關(guān)鍵的是YOLOv8Model中的YOLOv8Detector類,這是我們用于物體檢測的深度學(xué)習(xí)模型。
import sys # 導(dǎo)入sys模塊,用于處理Python運行時環(huán)境的一些操作
import time # 導(dǎo)入time模塊,用于處理時間相關(guān)的操作
import cv2 # 導(dǎo)入OpenCV庫,用于處理圖像和視頻
from QtFusion.path import abs_path
from QtFusion.config import QF_Config
from QtFusion.widgets import QMainWindow # 從QtFusion庫中導(dǎo)入FBaseWindow類,用于創(chuàng)建主窗口
from QtFusion.handlers import MediaHandler # 從QtFusion庫中導(dǎo)入MediaHandler類,用于處理媒體數(shù)據(jù)
from QtFusion.utils import drawRectBox # 從QtFusion庫中導(dǎo)入drawRectBox函數(shù),用于在圖像上繪制矩形框
from QtFusion.utils import get_cls_color # 從QtFusion庫中導(dǎo)入get_cls_color函數(shù),用于獲取類別顏色
from PySide6 import QtWidgets, QtCore # 導(dǎo)入PySide6庫的QtWidgets和QtCore模塊,用于創(chuàng)建GUI和處理Qt的核心功能
from YOLOv8Model import YOLOv8Detector # 從YOLOv8Model模塊中導(dǎo)入YOLOv8Detector類,用于進行YOLOv8物體檢測
from datasets.CornPest.label_name import Label_list
QF_Config.set_verbose(False)
????????在代碼中,我們使用QtFusion庫,這是一個封裝了Qt功能的庫,它提供了創(chuàng)建現(xiàn)代化窗口和控件的方法。
(2)定義類別和模型
????????我們接著創(chuàng)建了YOLOv8Detector的實例,并加載了預(yù)先訓(xùn)練好的模型權(quán)重。這個步驟是實現(xiàn)檢測功能的關(guān)鍵,它確保我們的系統(tǒng)具備了直接進行玉米病蟲害檢測的能力。
cls_name = Label_list # 定義類名列表
model = YOLOv8Detector() # 創(chuàng)建YOLOv8Detector對象
model.load_model(abs_path("weights/best-yolov8n.pt", path_type="current")) # 加載預(yù)訓(xùn)練的YOLOv8模型
colors = get_cls_color(model.names) # 獲取類別顏色
(3)創(chuàng)建主窗口
????????MainWindow類繼承自QMainWindow,它構(gòu)成了我們應(yīng)用的主窗口。在這個類中,我們設(shè)置窗口的基本屬性,如大小和標(biāo)簽,這些標(biāo)簽將用于顯示圖像和檢測結(jié)果。此外,我們還定義了鍵盤事件的處理函數(shù),以便用戶可以通過按鍵來控制應(yīng)用程序。
class MainWindow(QMainWindow): # 自定義主窗口類
def __init__(self): # 構(gòu)造函數(shù)
super().__init__() # 調(diào)用父類構(gòu)造函數(shù)
self.resize(850, 500) # 設(shè)置窗口大小
self.label = QtWidgets.QLabel(self) # 創(chuàng)建標(biāo)簽用于顯示圖像
self.label.setGeometry(0, 0, 850, 500) # 設(shè)置標(biāo)簽位置和大小
def keyPressEvent(self, event): # 鍵盤事件處理
if event.key() == QtCore.Qt.Key.Key_Q: # 按下Q鍵時
self.close() # 關(guān)閉窗口
????????在我們的系統(tǒng)中,MainWindow類繼承自QMainWindow,它是主窗口的基礎(chǔ)。在這個類中,我們設(shè)置了窗口的大小,并且初始化了一個標(biāo)簽來顯示處理過的圖像。我們還定義了keyPressEvent函數(shù)來處理用戶的鍵盤輸入,當(dāng)用戶按下'Q'鍵時,程序會安全退出。
(4)主程序流程
????????在主窗口類的基礎(chǔ)上,我們定義了frame_process函數(shù),它是系統(tǒng)的核心。此函數(shù)將處理視頻流的每一幀圖像。首先,我們將圖像調(diào)整到窗口大小,并對其進行預(yù)處理,以適應(yīng)我們的YOLOv8模型。然后,模型進行預(yù)測并計算所需時間,最終,根據(jù)預(yù)測結(jié)果在圖像上繪制邊界框和類別標(biāo)簽。這一流程不僅需要精確,而且必須足夠快,以實現(xiàn)實時處理。
def frame_process(image):
image = cv2.resize(image, (850, 500))
pre_img = model.preprocess(image)
t1 = time.time()
pred = model.predict(pre_img)
t2 = time.time()
use_time = t2 - t1
print("推理時間: %.2f" % use_time)
det = pred[0]
if det is not None and len(det):
det_info = model.postprocess(pred)
for info in det_info:
name, bbox, conf, cls_id = info['class_name'], info['bbox'], info['score'], info['class_id']
label = '%s %.0f%%' % (name, conf * 100)
image = drawRectBox(image, bbox, alpha=0.2, addText=label, color=colors[cls_id])
window.dispImage(window.label, image)
????????MediaHandler對象負責(zé)處理視頻文件,每當(dāng)新的幀準(zhǔn)備好時,它將調(diào)用frame_process函數(shù)進行處理。我們的MainWindow對象是用戶界面的核心,它顯示了從視頻流中檢測到的每一幀圖像。
app = QtWidgets.QApplication(sys.argv) # 創(chuàng)建QApplication對象
window = MainWindow() # 創(chuàng)建MainWindow對象
filename = abs_path("test_media/玉米病害.mp4", path_type="current") # 定義視頻文件的路徑
videoHandler = MediaHandler(fps=30) # 創(chuàng)建MediaHandler對象,設(shè)置幀率為30fps
videoHandler.frameReady.connect(frame_process) # 當(dāng)有新的幀準(zhǔn)備好時,調(diào)用frame_process函數(shù)進行處理
videoHandler.setDevice(filename) # 設(shè)置視頻源
videoHandler.startMedia() # 開始處理媒體
# 顯示窗口
window.show()
# 進入 Qt 應(yīng)用程序的主循環(huán)
sys.exit(app.exec())
????????通過上述步驟,我們成功集成了深度學(xué)習(xí)模型到一個用戶友好的界面中,提供了一個強大的工具,使得農(nóng)業(yè)從業(yè)者可以利用先進的技術(shù)來監(jiān)測和管理玉米病蟲害。這種集成為非技術(shù)用戶打開了使用先進技術(shù)的大門,以科學(xué)的方法提升農(nóng)業(yè)生產(chǎn)效率和作物質(zhì)量。
5. 玉米病蟲害檢測系統(tǒng)實現(xiàn)
????????在設(shè)計交互式玉米病蟲害檢測與識別系統(tǒng)的過程中,我們采取了一個模塊化和層次化的方法,以確保系統(tǒng)既高效又易于維護。我們的系統(tǒng)設(shè)計思路是圍繞用戶體驗來構(gòu)建的,旨在提供一個直觀、響應(yīng)迅速的用戶界面,同時在后臺執(zhí)行復(fù)雜的圖像處理和目標(biāo)檢測任務(wù)。
5.1 系統(tǒng)設(shè)計思路
????????在我們的系統(tǒng)設(shè)計中,我們致力于打造一個直觀且功能強大的交互式玉米病蟲害檢測與識別系統(tǒng),旨在提高用戶的操作便利性,并充分利用YOLOv8模型的強大功能。
(1)架構(gòu)設(shè)計
????????在開發(fā)交互式玉米病蟲害檢測與識別系統(tǒng)的過程中,我們的主要目標(biāo)是構(gòu)建一個用戶友好且功能強大的應(yīng)用程序,它能夠?qū)崟r識別和分類圖像中的多個目標(biāo)。我們的設(shè)計思路集中于創(chuàng)建一個集成化的環(huán)境,該環(huán)境將用戶界面、媒體處理和深度學(xué)習(xí)模型的功能融為一體。在這個系統(tǒng)中,我們特別重視模塊化和各功能間的流暢交互,確保了系統(tǒng)的高效運行和用戶操作的便捷性。

- 處理層(Processing Layer):這一層的核心是YOLOv8Detector類,一個強大的預(yù)訓(xùn)練模型,專門用于物體檢測任務(wù)。這個類封裝了所有必要的方法,用于處理圖像數(shù)據(jù)、執(zhí)行模型預(yù)測、并輸出檢測結(jié)果。其背后的設(shè)計理念是確保檢測過程的高效和精確,允許系統(tǒng)在最短的時間內(nèi)提供結(jié)果,這對于實時應(yīng)用至關(guān)重要。
- 界面層(UI Layer):用戶界面是用戶與系統(tǒng)交互的前端表示。由Ui_MainWindow類生成,它包括了一系列直觀的用戶交互元素,比如按鈕、標(biāo)簽、圖像顯示框等。界面設(shè)計的直觀性和響應(yīng)性是此層的關(guān)鍵,使得用戶能夠輕松地上傳圖像、啟動檢測過程并接收反饋。
- 控制層(Control Layer):作為系統(tǒng)的腦神經(jīng)中樞,MainWindow類管理著用戶的輸入,調(diào)節(jié)媒體處理器的行為,并協(xié)調(diào)模型的預(yù)測流程。這一層通過定義一系列槽函數(shù)和事件處理方法,實現(xiàn)了對用戶操作的響應(yīng)。例如,當(dāng)用戶通過界面上傳視頻文件時,控制層將指揮媒體處理器加載文件,并且開始幀處理流程。此外,控制層還負責(zé)處理模型的預(yù)測結(jié)果,將檢測信息反饋給用戶界面層,實現(xiàn)了數(shù)據(jù)和任務(wù)的流暢傳遞。
????????整體而言,我們的系統(tǒng)設(shè)計注重于靈活性和擴展性。每個層次都經(jīng)過精心設(shè)計,旨在最大化用戶體驗和系統(tǒng)性能。通過這樣的分層架構(gòu),我們確保了系統(tǒng)各部分的高度協(xié)同工作,同時保持了代碼的整潔和可維護性。這種設(shè)計讓我們的玉米病蟲害檢測與識別系統(tǒng)不僅能夠在實驗室環(huán)境中表現(xiàn)出色,也能夠輕松適應(yīng)實際應(yīng)用場景的要求。
(2)系統(tǒng)流程
????????在本次博客的探討中,我們要探討的是如何構(gòu)建一個基于YOLOv8模型的交互式玉米病蟲害檢測與識別系統(tǒng)。這個系統(tǒng)的設(shè)計允許用戶實時識別和分類玉米病蟲害,其目標(biāo)是提供一個高效且直觀的工具來支持農(nóng)業(yè)生產(chǎn)決策。

-
當(dāng)用戶啟動這個應(yīng)用程序時,它會首先實例化MainWindow類。這個類是用戶交互的中心,它初始化應(yīng)用程序的界面,設(shè)置必要的參數(shù),并準(zhǔn)備接收用戶的輸入。用戶通過這個界面可以選擇他們的輸入源。輸入源的選擇非常靈活,可以是實時視頻流、預(yù)錄制的視頻文件,甚至是單張的靜態(tài)圖像。這種設(shè)計使得系統(tǒng)可以廣泛應(yīng)用于不同的使用場景,從現(xiàn)場監(jiān)控到圖像分析都能夠勝任。
-
在用戶選擇了輸入源后,系統(tǒng)將調(diào)用MediaHandler等媒體處理器來配置攝像頭、讀取視頻文件或加載圖像文件。這個階段是自動化的,用戶只需通過點擊幾個按鈕即可完成整個過程。系統(tǒng)內(nèi)部會處理所有必要的媒體編解碼和格式轉(zhuǎn)換,確保不同格式的數(shù)據(jù)可以順利進入下一個處理階段。
-
處理媒體輸入源的下一步是連續(xù)的幀處理循環(huán)。在這個循環(huán)中,系統(tǒng)首先對每幀圖像進行預(yù)處理,這包括調(diào)整圖像尺寸、變換色彩空間以及歸一化等操作,以保證它們能夠符合YOLOv8模型的輸入標(biāo)準(zhǔn)。隨后,預(yù)處理好的圖像將被送入YOLOv8模型進行檢測和識別。YOLOv8模型是這個系統(tǒng)的核心,它能夠準(zhǔn)確地定位病蟲害,并對它們進行分類。
4.隨著模型輸出的檢測結(jié)果,用戶界面將實時更新。這些更新包括展示檢測到的病蟲害邊界框、分類標(biāo)簽,并在界面的顯示元素中展示檢測統(tǒng)計數(shù)據(jù)。這種實時反饋為用戶提供了即時的視覺信息,幫助他們理解當(dāng)前場景中的病蟲害狀況。 -
用戶可以通過界面上的按鈕進行各種交互操作,如保存結(jié)果、查看幫助信息或者退出應(yīng)用。系統(tǒng)還提供了高級功能,例如篩選特定檢測結(jié)果或分析檢測數(shù)據(jù),這些都可以通過下拉菜單來完成。用戶還能控制媒體播放狀態(tài),例如開始或停止視頻分析,這為用戶提供了對檢測過程的完全控制。
????????總的來說,我們的系統(tǒng)不僅提供了一個強大的檢測工具,而且還具備用戶友好的交互設(shè)計。通過將深度學(xué)習(xí)模型與高效的界面設(shè)計結(jié)合,我們的系統(tǒng)在提高玉米生產(chǎn)效率和管理水平方面提供了有力的支持。這個系統(tǒng)的靈活性和直觀性使它成為農(nóng)業(yè)技術(shù)工具箱中的一個寶貴資產(chǎn)。
5.2 登錄與賬戶管理
????????在我們的玉米病蟲害檢測系統(tǒng)中,我們不僅注重于檢測技術(shù)的實現(xiàn),也同樣重視用戶體驗。因此,我們設(shè)計了一個功能全面的用戶登錄與賬戶管理系統(tǒng),以確保每位用戶都能擁有個性化且安全的使用體驗。

????????利用PySide6強大的GUI開發(fā)能力和SQLite的輕量級數(shù)據(jù)庫功能,我們?yōu)橛脩籼峁┝艘惶淄暾馁~戶管理解決方案。用戶首次使用系統(tǒng)時,可以通過注冊功能創(chuàng)建自己的賬戶。在這個過程中,用戶可以設(shè)置自己的用戶名、密碼,并選擇一個頭像,這些信息都將被存儲在本地的SQLite數(shù)據(jù)庫中,確保用戶信息的私密性和安全性。
????????注冊后,用戶可以使用自己的賬戶信息登錄。登錄界面不僅簡潔直觀,而且還支持密碼的修改和頭像的更新,使得用戶能夠根據(jù)個人喜好和需要調(diào)整賬戶設(shè)置。這些個性化設(shè)置讓用戶在使用玉米病蟲害檢測系統(tǒng)時擁有更加貼合個人需求的體驗。
????????在賬戶的管理方面,我們提供了注銷和重新登錄的選項,用戶可以隨時退出當(dāng)前賬戶,并以不同的身份重新登錄。這為使用公共場所或家庭共享環(huán)境的用戶提供了額外的便利和靈活性。

????????系統(tǒng)的主界面集成了深度學(xué)習(xí)模型,用戶登錄后可以實時查看包括檢測框、類別、置信度等詳細信息的檢測結(jié)果。這些結(jié)果不僅可以在屏幕上實時顯示,用戶還可以將檢測記錄保存下來,以便后續(xù)的查看和分析。我們的系統(tǒng)支持多種輸入源,包括圖片、視頻文件、實時攝像頭捕獲的圖像和批量文件輸入,這使得系統(tǒng)能夠適用于各種不同的檢測場景。
????????通過這樣的設(shè)計,我們的玉米病蟲害檢測系統(tǒng)不僅具備了強大的識別和檢測功能,而且還提供了便捷的用戶管理服務(wù)。無論用戶在何種場景下使用,都能享受到高效、安全和個性化的服務(wù)體驗。我們相信,這將極大地提升用戶對系統(tǒng)的滿意度,并推動更廣泛的應(yīng)用和發(fā)展。
6. 總結(jié)與展望
????????在本博客中,我們詳細介紹了一個基于YOLOv8模型的玉米病蟲害檢測系統(tǒng),還實驗了YOLOv7、YOLOv6、YOLOv5等模型。系統(tǒng)以模塊化的方式設(shè)計,充分采用了合理的架構(gòu)設(shè)計,帶來良好的可維護性和可擴展性。其用戶界面友好,能夠提供實時的玉米病蟲害檢測和識別結(jié)果展示,同時支持用戶賬戶管理,以便于保存和管理檢測結(jié)果和設(shè)置。
????????該系統(tǒng)支持攝像頭、視頻、圖像和批量文件等多種輸入源,能夠滿足用戶在不同場景下的需求。在后面可以添加更多預(yù)訓(xùn)練模型,增加檢測和識別的種類;優(yōu)化用戶界面,增強個性化設(shè)置;并積極聆聽用戶反饋,以期不斷改進系統(tǒng),以更好地滿足用戶的需求。
結(jié)束語
????????由于博主能力有限,博文中提及的方法即使經(jīng)過試驗,也難免會有疏漏之處。希望您能熱心指出其中的錯誤,以便下次修改時能以一個更完美更嚴謹?shù)臉幼樱尸F(xiàn)在大家面前。同時如果有更好的實現(xiàn)方法也請您不吝賜教。
-
Fang W, Wang L, Ren P. Tinier-YOLO: A real-time object detection method for constrained environments[J]. IEEE Access, 2019, 8: 1935-1944. ??
-
Wu W, Liu H, Li L, et al. Application of local fully Convolutional Neural Network combined with YOLO v5 algorithm in small target detection of remote sensing image[J]. PloS one, 2021, 16(10): e0259283. ??
-
Wan S, Goudos S. Faster R-CNN for multi-class fruit detection using a robotic vision system[J]. Computer Networks, 2020, 168: 107036. ??
-
He K, Gkioxari G, Dollár P, et al. Mask r-cnn[C]//Proceedings of the IEEE international conference on computer vision. 2017: 2961-2969. ??文章來源:http://www.zghlxwxcb.cn/news/detail-836459.html
-
Talaat F M, ZainEldin H. An improved fire detection approach based on YOLO-v8 for smart cities[J]. Neural Computing and Applications, 2023, 35(28): 20939-20954. ??文章來源地址http://www.zghlxwxcb.cn/news/detail-836459.html
到了這里,關(guān)于基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的玉米病蟲害檢測系統(tǒng)(Python+PySide6界面+訓(xùn)練代碼)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!