現代の農業において、害虫は農家にとって深刻な問題となっています。従来の害虫監視方法は時間と労力がかかることが多く、簡単に殺虫剤の過剰使用につながる可能性があります。このブログでは、農家が精密な農業管理を実現し、農薬の使用を削減し、作物の収量と品質を向上させるために、YOLOv5 を使用して農地の害虫を検出する方法を紹介します。
1. YOLOv5 の概要
YOLO (You Only Look Once) は、単一の前方パスで複数のオブジェクトを同時に検出できるリアルタイムのオブジェクト検出アルゴリズムです。YOLOv5 は YOLO シリーズの最新バージョンで、より高いパフォーマンスとより小さなモデルサイズを備えており、組み込みデバイスへの導入に最適です。YOLOv5 を使用して農地の害虫を検出します。
2. データの収集とラベル付け
まず、YOLOv5 モデルをトレーニングするために、農地の画像データを収集し、そのデータに注釈を付ける必要があります。データの注釈は時間のかかるプロセスであり、通常は LabelImg や VGG Image Annotator などの注釈ツールを使用する必要があります。
データ収集:
- さまざまな場所や季節の農地の画像を収集します。
- 画像にはさまざまな種類の作物や害虫が含まれていることを確認してください。
- 画像の解像度は、モデルが害虫を正確に検出できるように十分に高い必要があります。
データの注釈:
- 各画像に害虫の境界ボックス (境界ボックス) でラベルを付け、各境界ボックスに「アブラムシ」、「イナゴ」、「カブトムシ」などの害虫カテゴリ ラベルを割り当てます。
3. モデルのトレーニング
次に、YOLOv5 を使用してモデルをトレーニングし、農地内の害虫を識別できるようにします。まず、必要な Python ライブラリと YOLOv5 コードがインストールされていることを確認します。
pip install torch torchvision torchaudio
git clone https://github.com/ultralytics/yolov5
cd yolov5
pip install -U -r requirements.txt
次に、収集され、注釈が付けられたデータをトレーニングに使用します。
python train.py --img-size 640 --batch-size 16 --epochs 50 --data data/custom.yaml --weights yolov5s.pt
トレーニングが完了すると、害虫の検出に使用できる YOLOv5 モデルが取得されます。
4. インテリジェントな農業管理
ここで、インテリジェントな農業管理システムを構築し、YOLOv5 モデルを農地のカメラまたはドローンに展開して、次の機能を実現してみましょう。
4.1 害虫の監視
農地内のカメラやドローンによる農地の害虫のリアルタイム監視。害虫が検出されると、システムは直ちにアラートを送信し、農家に行動を促すことができます。
# 监测农田中的害虫
def monitor_pests():
while True:
# 使用YOLOv5检测害虫
detected_pests = yolo_detect_pests()
if detected_pests:
send_alert()
4.2 農薬散布の管理
害虫の検知結果に基づいて農薬散布装置を自動制御し、必要なときだけ農薬を散布し、農薬の使用量を削減します。
# 控制农药喷洒
def control_pesticide_spraying(action):
if action == "spray":
# 喷洒农药
pass
elif action == "stop":
# 停止喷洒
pass
# 根据害虫检测结果控制农药喷洒
def control_pesticide_based_on_detection():
while True:
# 使用YOLOv5检测害虫
detected_pests = yolo_detect_pests()
if detected_pests:
control_pesticide_spraying("spray")
else:
control_pesticide_spraying("stop")
4.3 生産予測
このシステムは、害虫の状態、気象データ、その他の情報を監視することで、農家が収量を予測し、収量と品質を最大化するための推奨される農業管理措置を提供するのに役立ちます。
# 进行产量预测和农业管理建议
def crop_yield_prediction_and_recommendation():
while True:
# 监测害虫情况
detected_pests = yolo_detect_pests()
if detected_pests:
# 基于监测结果进行产量预测
yield_prediction = predict_crop_yield()
# 提供农业管理建议
provide_recommendation(yield_prediction)