【圖像算法 - 21】慧眼識蟲:基于深度學習與OpenCV的農田害蟲智能識別系統

摘要:

在現代農業生產中,病蟲害是影響作物產量和品質的關鍵因素之一。傳統的害蟲識別依賴人工巡查,效率低、成本高且易出錯。本文將介紹如何利用深度學習OpenCV構建一套高效的農田害蟲智能識別系統。該系統能夠自動識別10類常見農業害蟲,包括行軍蟲(army worm)、豆芫菁(legume blister beetle)、紅蜘蛛(red spider)、稻癭蚊(rice gall midge)、稻縱卷葉螟(rice leaf roller)、稻飛虱(rice leafhopper)、稻水象甲(rice water weevil)、麥稈蠅(wheat phloeothrips)、白背飛虱(white backed plant hopper)、二化螟(yellow rice borer)。通過該系統可實現害蟲的快速檢測與預警,助力智慧農業發展,提升病蟲害防控效率。

關鍵詞: 深度學習, OpenCV, 害蟲識別, 目標檢測, 農業AI, 智慧農業, YOLO12, Python, 計算機視覺, CSDN

【圖像算法 - 21】慧眼識蟲:基于深度學習與OpenCV的農田害蟲智能識別系統

1. 引言:AI賦能蟲情監測,讓害蟲無處遁形

農業害蟲種類繁多、繁殖迅速,若不能及時發現并防治,極易造成大面積減產甚至絕收。傳統的人工識別方式不僅耗時耗力,而且對技術人員的專業知識要求較高,難以滿足大規模農田的實時監測需求。

隨著人工智能技術的成熟,基于深度學習的目標檢測算法為害蟲識別提供了全新的解決方案。通過訓練AI模型自動識別圖像中的害蟲種類與位置,可以實現:

  • 自動化蟲情監測:7×24小時不間斷監控。
  • 精準施藥:僅在害蟲區域噴灑農藥,減少用量,保護生態環境。
  • 早期預警:在蟲害爆發初期及時發現,降低損失。
  • 數據化管理:生成蟲情報告,輔助科學決策。

本文將詳細介紹如何使用 YOLO12 模型結合 OpenCV 實現對10種常見農田害蟲的智能識別,并提供完整可運行的代碼示例。

2. 技術選型:YOLO12 + OpenCV 的高效組合

技術作用
YOLO12作為目標檢測模型,負責從圖像中識別并定位各類害蟲,具有速度快、精度高、易于訓練部署的優點。
OpenCV負責圖像采集、預處理、結果可視化以及與攝像頭或無人機等設備的集成,是連接AI模型與現實應用的橋梁。

YOLO系列介紹:

【圖像算法 - 03】YOLO11/YOLO12/YOLOv10/YOLOv8 完全指南:從理論到代碼實戰,新手入門必看教程(文末有視頻介紹)

OpenCV介紹:

【圖像算法 - 12】OpenCV-Python 入門指南:圖像視頻處理與可視化(代碼實戰 + 視頻教程 + 人臉識別項目講解)

3. 數據準備:構建高質量害蟲圖像數據集

3.1 數據來源

  • 公開農業病蟲害數據集(如PlantVillage、IP102等)
  • 農業科研機構提供的高清害蟲圖像
  • 實地拍攝(使用微距相機拍攝田間害蟲)

在這里插入圖片描述

3.2 類別定義

本文目標識別以下10類常見害蟲:

names:0: army worm1: legume blister beetle2: red spider3: rice gall midge4: rice leaf roller5: rice leafhopper6: rice water weevil7: wheat phloeothrips8: white backed plant hopper9: yellow rice borer

3.3 數據標注

使用 Labelme 工具對每張圖像中的害蟲進行矩形框標注(Bounding Box),保存為YOLO格式的 .txt 文件。

labelme數據標注保姆級教程:從安裝到格式轉換全流程,附常見問題避坑指南(含視頻講解)

在這里插入圖片描述

3.4 數據集劃分

7:2:1 比例劃分為訓練集、驗證集和測試集。

創建配置文件 pest_detection.yaml

path: ./pest_dataset
train: images/train
val: images/val
test: images/testnc: 10
names: ['army worm', 'legume blister beetle', 'red spider', 'rice gall midge', 'rice leaf roller', 'rice leafhopper', 'rice water weevil', 'wheat phloeothrips', 'white backed plant hopper', 'yellow rice borer']

4. 模型訓練:使用YOLOv12訓練害蟲識別模型

4.1 環境準備

【圖像算法 - 01】保姆級深度學習環境搭建入門指南:硬件選型 + CUDA/cuDNN/Miniconda/PyTorch/Pycharm 安裝全流程(附版本匹配秘籍+文末有視頻講解)

安裝 ultralytics

Ultralytics 庫已經集成了YOLO11/YOLO12/YOLOv10/YOLOv8,安裝命令如下:

pip3 install ultralytics

4.2 開始訓練

from ultralytics import YOLO# Load a model
model = YOLO("yolo12n.pt")  # build a new model from YAML
#model = YOLO("yolo12n-pose.pt")  # load a pretrained model (recommended for training)
#model = YOLO("yolo12n-pose.yaml").load("yolo12n.pt")  # build from YAML and transfer weights# Train the model
results = model.train(data="pest_detection.yaml", epochs=100, imgsz=640, batch=16, device=0)
  • 使用 yolo12n 作為基礎模型,適合在邊緣設備部署。
  • 訓練完成后,最佳模型保存在 runs/train/weights/best.pt

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

5. 推理與應用:OpenCV實現害蟲識別與可視化

以下是完整的推理代碼,支持圖像和攝像頭實時檢測:

在這里插入圖片描述

6. 應用場景與展望

  • 無人機巡田:搭載攝像頭的無人機自動飛行,AI識別蟲情并生成熱力圖。

  • 智能誘蟲燈:結合AI識別,自動統計誘捕害蟲種類與數量。

  • 手機App識別:農民拍照即可識別害蟲,獲取防治建議。

  • 未來方向 :

    • 結合實例分割(如YOLO12-seg)實現更精確的害蟲輪廓識別。
    • 部署到邊緣設備(Jetson Nano、樹莓派)實現田間實時處理。
    • 構建蟲情預警平臺,實現數據上云與遠程監控。

邊緣端部署參考:

【圖像算法 - 05】RK3588 部署實戰:YOLO11/YOLOv8(det/seg/pose/obb) 毫秒級推理入門(理論精講 + 代碼落地,新手零門檻上手)
【圖像算法 - 04】Jetson 部署必看:YOLOv8/YOLOv10/YOLO11/YOLO12 毫秒級推理全指南(理論 + 代碼實戰,新手入門零門檻教程)

7. 總結

本文成功構建了一套基于深度學習(YOLO12)與OpenCV的農田害蟲智能識別系統,能夠高效識別10類常見害蟲。該系統具有高精度、實時性強、易于部署等優點,為智慧農業中的病蟲害防控提供了強有力的技術支持。

核心優勢:

  • 自動化識別,減少人工成本
  • 精準定位,支持精準施藥
  • 可擴展性強,支持多類害蟲
  • 開源可復現,便于二次開發

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/919732.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/919732.shtml
英文地址,請注明出處:http://en.pswp.cn/news/919732.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

循環神經網絡實戰:GRU 對比 LSTM 的中文情感分析(三)

循環神經網絡實戰:GRU 對比 LSTM 的中文情感分析(三) 文章目錄循環神經網絡實戰:GRU 對比 LSTM 的中文情感分析(三)前言數據準備(與 LSTM 相同)模型搭建(GRU)…

學習游戲制作記錄(制作提示框以及使用鍵盤切換UI)8.21

1.制作裝備提示框創建提示框,添加文本子對象,用來描述名稱,類型以及屬性加成掛載垂直分配組件和文本大小適配組件,這樣圖像會根據文本大小來調整自己創建UI_ItemTip腳本并掛載在文本框上:[SerializeField] private Tex…

chapter07_初始化和銷毀方法

一、簡介 一個Bean,在進行實例化之后,需要進行兩種初始化 初始化屬性,由PropertyValues進行賦值初始化方法,由ApplicationContext統一調用,例如加載配置文件 Bean的初始化與銷毀,共有三種方式(注…

open webui源碼分析6-Function

一、Functions簡介 可以把Tools作為依賴于外部服務的插件,Functions就是內部插件,二者都是用來增強open webui的能力的。Functions是輕量的,高度可定制的,并且是用純Python編寫的,所以你可以自由地創建任何東西——從新…

C2039 “unref“:不是“osgEarth::Symbology::Style”的成員 問題分析及解決方法

在osgEarth2.10中實現多線段連續測量功能時,遇到下圖中的錯誤; 經過測試和驗證,主要問題出現在下圖圈出代碼的定義上 圖22-1 對于22-1中的兩個變量這樣定義是錯誤的。因為Style類沒有繼承自osg::Referenced,因此不能與osg::ref_ptr配合使用

GitHub 熱榜項目 - 日榜(2025-08-19)

GitHub 熱榜項目 - 日榜(2025-08-19) 生成于:2025-08-19 統計摘要 共發現熱門項目:12 個 榜單類型:日榜 本期熱點趨勢總結 本期GitHub熱榜呈現三大技術熱點:1)AI原生開發持續爆發,Archon OS、Parlant等…

ingress 配置ssl證書

模擬環境舉例&#xff1a; # 生成帶 OU 的證書配置文件 cat > csr.conf <<EOF [ req ] default_bits 2048 prompt no default_md sha256 distinguished_name dn[ dn ] C CN ST Beijing L Beijing O YourCompany, Inc. # 組織名稱 (必填) OU DevOps De…

Pandas 合并數據集:concat 和 append

文章目錄Pandas 合并數據集&#xff1a;concat 和 append回顧&#xff1a;NumPy 數組的拼接使用 pd.concat 進行簡單拼接重復索引將重復索引視為錯誤忽略索引添加多級索引&#xff08;MultiIndex&#xff09;鍵使用連接&#xff08;Join&#xff09;方式拼接append 方法Pandas …

2025年5月架構設計師綜合知識真題回顧,附參考答案、解析及所涉知識點(七)

本文主要回顧2025年上半年(2025-5-24)系統架構設計師考試上午綜合知識科目的選擇題,同時附帶參考答案、解析和所涉知識點。 2025年5月架構設計師綜合知識真題回顧,附參考答案、解析及所涉知識點(一) 2025年5月架構設計師綜合知識真題回顧,附參考答案、解析及所涉知識點(…

面向RF設計人員的微帶貼片天線計算器

微帶貼片天線和陣列可能是僅次于單極天線和偶極天線的最簡單的天線設計。這些天線也很容易集成到PCB中&#xff0c;因此通常用于5G天線陣列和雷達等高級系統。這些天線陣列在基諧模式和高階模式下也遵循一組簡單的設計方程&#xff0c;因此您甚至可以在不使用仿真工具的情況下設…

明基RD280U編程顯示器深度測評:碼農的「第二塊鍵盤」竟然會發光?

文章目錄前言一、開箱篇&#xff1a;當理工男遇到「俄羅斯套娃式包裝」二、外觀篇&#xff1a;深空灰的「代碼容器」1. 桌面變形記2. 保護肩頸的人體工學設計三、顯示篇&#xff1a;給代碼做「光子嫩膚」1. 28寸超大大屏 3:2屏比 4K超清2.專業編程模式&#xff0c;讓代碼一目…

算法114. 二叉樹展開為鏈表

題目&#xff1a;給你二叉樹的根結點 root &#xff0c;請你將它展開為一個單鏈表&#xff1a; 展開后的單鏈表應該同樣使用 TreeNode &#xff0c;其中 right 子指針指向鏈表中下一個結點&#xff0c;而左子指針始終為 null 。 展開后的單鏈表應該與二叉樹 先序遍歷 順序相同。…

智慧能源管理系統:點亮山東零碳園區的綠色引擎

一、概述在全球積極踐行“雙碳”目標的時代浪潮下&#xff0c;山東作為經濟大省&#xff0c;正全力推動產業的綠色變革&#xff0c;零碳園區建設成為其中的關鍵一環。《山東省零碳園區建設方案》明確規劃&#xff0c;到2027年建成15個左右省級零碳園區 &#xff0c;到2030年進一…

分布式日志分析平臺(ELFK 與 EFK)理論

一、日志分析平臺核心概念在分布式系統中&#xff0c;日志是系統運行狀態監控、問題排查和業務分析的重要依據。隨著系統規模擴大&#xff0c;單機日志管理方式已無法滿足需求&#xff0c;分布式日志分析平臺應運而生。其核心目標是實現日志的集中收集、統一處理、高效存儲和可…

CoreShop微信小程序商城框架開啟多租戶-添加一個WPF客戶端以便進行本地操作--讀取店鋪信息(6)

本節內容&#xff0c;使用登錄的token進行店鋪信息讀取&#xff0c;順利的話&#xff0c;進行EXCEL上傳測試。 1。在后臺編寫 讀取店鋪信息代碼 1.1 查看原來鋪店信息在什么位置&#xff0c;店鋪的表格為CoreCmsStore#region 獲取列表// POST: Api/CoreCmsStore/GetPageList///…

UE5關卡藍圖能不能保存副本呀?

提問 關卡藍圖能不能保存副本呀&#xff1f; 回答 在 UE 里&#xff0c;“關卡藍圖&#xff08;Level Blueprint&#xff09;”本身其實是不能直接復制/保存成獨立資源的&#xff0c;因為它和具體的 **Level&#xff08;.umap 文件&#xff09;**是綁定的——相當于一個“場景腳…

機器學習數據預處理學習報告

一、學習背景與目的在機器學習流程中&#xff0c;數據預處理是保障模型訓練效果的關鍵環節。原始數據常存在缺失值、量綱不一致、特征格式不匹配等問題&#xff0c;直接影響模型對數據規律的學習。本次學習圍繞 Pandas 與 Scikit-learn&#xff08;sklearn&#xff09;工具庫&a…

git舊倉庫遷移到新倉庫

git舊倉庫遷移到新倉庫 A倉庫(舊倉庫)&#xff1a;git172.16.21.21:xxxx_software/Ni-Handler-Mgr.git B倉庫(新倉庫)&#xff1a;git172.16.11.11:yyyy/hostpc/ni-handler-mgr.git Step1 新建新倉庫 創建新 GitHub 倉庫? 在 GitHub 頁面點擊 “New repository”&#xff0c;命…

YOLO --- YOLOv5模型以及項目詳解

YOLO — YOLOv5模型以及項目詳解 文章目錄YOLO --- YOLOv5模型以及項目詳解一&#xff0c;開源地址二&#xff0c;改進點Focus 模塊三&#xff0c;網絡結構3.1 CSP1_X 與 CSP2_X3.2 自適應Anchor的計算3.3 激活函數3.3.1 SiLU3.3.2 Swish3.4 Bottleneck3.5 C33.5.1 BottleneckC…

Linux文本三劍客的使用及常見重點操作

文本三劍客指 Linux環境下的 grep&#xff08;搜索&#xff09;、sed&#xff08;編輯&#xff09;、awk&#xff08;分析&#xff09;三款用于文本處理的核心命令&#xff0c;三者分工明確、功能互補&#xff0c;是處理日志、配置文件、結構化數據等場景的 “剛需工具”。一、…