泰迪杯实战案例超深度解析:基于YOLOv5的农田害虫图像识别系统设计
(第十届泰迪杯数据挖掘挑战赛A题特等奖案例全流程拆解)
一、案例背景与核心挑战
1.1 行业痛点与数据特性
在农业植保领域,虫情检测灯每天产生海量图像数据,但传统人工识别存在以下问题:
-
效率低下:1名植保员每天最多分析200张图,无法满足实时预警需求。
-
专业门槛高:138种害虫存在形态相似性(如稻纵卷叶螟与二化螟幼虫差异仅5%)。
-
数据难题:
-
类别极度不平衡:高频害虫(如褐飞虱)样本量>200,稀有类(如稻水象甲)仅1-5张。
-
标注噪声:虫体遮挡、姿态多变导致标注框偏移(平均IoU误差15%)。
-
环境干扰:夜间拍摄光照不均、水雾反光等问题影响图像质量。
-
1.2 技术目标与评估指标
任务 | 技术指标 | 实现难点 |
---|---|---|
目标检测(mAP@0.5) | >0.85(baseline:0.72) | 小目标检测(虫体平均尺寸80x60px) |
长尾类识别(F1-score) | 尾部类(样本<20)提升至0.65+ | 数据稀缺下的特征泛化能力 |
实时推理速度 | Jetson Nano平台>20FPS | 模型轻量化与算子优化 |
系统鲁棒性 | 光照变化、遮挡场景下精度下降<5% | 抗干扰特征学习 |
二、数据工程:从原始数据到高质量训练集
2.1 数据清洗与标注修正(工业级细节)
2.1.1 噪声标注半自动修正流程
-
初筛阶段:
-
利用预训练模型推理,筛选置信度<0.3的预测框作为疑似漏标样本。
-
计算标注框长宽比异常值(昆虫通常1:1~1:3),标记离群样本。
python
def find_abnormal_anns(annotations, ar_thresh=[0.3, 3.5]): abnormal_ids = [] for ann in annotations: w = ann['xmax'] - ann['xmin'] h = ann['ymax'] - ann['ymin'] ar = w / h if ar < ar_thresh[0] or ar > ar_thresh[1]: abnormal_ids.append(ann['id']) return abnormal_ids
-
-
人工核验工具链:
-
开发基于CVAT的标注修正平台,集成智能辅助功能:
-
自动补框:对漏标虫体,点击虫体中心后,模型预测候选框。
-
重叠合并:对同一虫体的多个碎片框,自动计算最小包围框。
-
-
核验效率提升:通过预筛选&
-