专注昆明网站建设,宁波网站优化价格,wordpress建立外贸网站,企业信用信息公示年报无人机航拍植物病害检测测数据集
名称#xff1a; 无人机航拍植物病害目标检测测数据集 格式#xff1a;YOLO 数量#xff1a;1539张数据集 训练集#xff1a;1083验证集#xff1a;304“测试集#xff1a;152” 类别数量#xff1a;2个对象类…无人机航拍植物病害检测测数据集名称 无人机航拍植物病害目标检测测数据集格式YOLO数量1539张数据集训练集1083验证集304“测试集152”类别数量2个对象类别 healthy stressed类别类型“healthy健康作物”, “stressed病害作物如点片状发病区、连片扩散区、叶片卷曲程度、病斑面积占比、初期病斑、局部黄化、大面积枯萎、组织坏死”111无人机植物病害目标检测数据集的详细表格描述 数据集总体概览项目内容总图像数量1,539 张训练集1,083 张验证集304 张测试集152 张类别数量2 类标注格式YOLO 格式.txt文件含归一化边界框与类别 ID应用场景植物健康管理、精准农业、无人机巡检️ 数据划分详情数据集图像数量占比典型用途训练集1,083≈70.37%模型参数学习验证集304≈19.75%超参调优、早停测试集152≈9.88%最终性能评估总计1,539100%— 类别定义2个对象类别类别 ID中文名称英文名称描述0健康作物Healthy正常生长状态下的作物1病害作物Stressed包括但不限于点片状发病区、连片扩散区、叶片卷曲程度、病斑面积占比、初期病斑、局部黄化、大面积枯萎、组织坏死等病害特征dataset.yaml示例配置文件# dataset.yamltrain:../data/images/trainval:../data/images/valtest:../data/images/testnc:2names:[healthy,stressed]✅ 注意nc: 2表示有 2 个类别。names列表中的顺序对应类别 IDhealthy对应 ID 0stressed对应 ID 1。 数据特点与挑战特点说明✅无人机视角提供大范围覆盖适用于大面积农田监控✅多光谱成像结合 RGB 和 NIR 波段增强病害识别能力❌小目标密集如“初期病斑”、“局部黄化”可能仅占几十像素❌类内差异大“病害作物”包含多种症状形态各异❌光照变化不同时间段拍摄光照条件不一致 典型应用领域应用场景说明智能农场管理实时监测作物健康状况指导精准施肥、喷药无人机巡检定期巡航快速定位病害区域防止蔓延病害预测模型结合气象数据提前预警病害爆发风险学术研究用于算法开发、模型对比、发表论文️ 数据集结构示例plant_health_detection/ ├── data/ │ ├── images/ │ │ ├── train/ │ │ ├── val/ │ │ └── test/ │ ├── labels/ │ │ ├── train/ │ │ ├── val/ │ │ └── test/ │ └── dataset.yaml └── models/ 进一步建议类别细化如果需要更精细的分类如区分不同类型的病害可以考虑增加类别数但需注意样本平衡问题。数据增强针对“小目标密集”和“光照变化”的挑战使用数据增强技术如随机裁剪、亮度调整提升模型鲁棒性。模型选择YOLOv8 在处理小目标上有较好表现但也推荐尝试其他模型如 Faster R-CNN、EfficientDet进行对比实验。以下是一个完整的基于 YOLOv8 的无人机植物病害目标检测系统的详细代码实现涵盖✅ 调用预训练模型✅ 图像/视频推理✅ 检测结果可视化✅ Web 界面Flask✅ 支持健康/病害两类作物识别 一、项目结构plant_health_detection_yolov8/ ├── data/ │ └── dataset.yaml# 数据集配置├── models/ │ └── best.pt# 训练好的 YOLOv8 模型或使用 yolov8n.pt├── static/ │ ├── uploads/# 用户上传图像│ └── results/# 检测结果图像├── templates/ │ ├── index.html# 主页│ └── result.html# 结果页├── app.py# Flask Web 应用├── detect.py# 核心检测模块├── requirements.txt └── README.md 二、环境依赖requirements.txtultralytics8.2.0 flask2.3.3 opencv-python4.8.0 numpy1.24.3 Pillow9.5.0 matplotlib安装pipinstall-r requirements.txt 三、核心检测模块detect.py# detect.pyimportcv2importosfromultralyticsimportYOLO# 类别中文映射CLASS_NAMES{0:健康作物,1:病害作物}defrun_detection(input_path,output_dirstatic/results,model_pathmodels/best.pt): 对单张图像进行 YOLOv8 推理 :param input_path: 输入图像路径 :param output_dir: 输出目录 :param model_path: 模型路径 :return: (输出图像路径, 检测统计) # 加载模型modelYOLO(model_path)# 读取图像imgcv2.imread(input_path)ifimgisNone:raiseValueError(无法读取图像请检查路径)# 推理resultsmodel(img,conf0.3)# 置信度阈值 0.3# 绘制中文标签annotated_imgimg.copy()boxesresults[0].boxes counts{健康作物:0,病害作物:0}forboxinboxes:x1,y1,x2,y2map(int,box.xyxy[0])conffloat(box.conf[0])cls_idint(box.cls[0])class_nameCLASS_NAMES.get(cls_id,未知)# 更新计数counts[class_name]1# 绘制边界框color(0,255,0)ifcls_id0else(0,0,255)# 健康绿病害红cv2.rectangle(annotated_img,(x1,y1),(x2,y2),color,2)# 绘制中文标签需支持中文字体labelf{class_name}{conf:.2f}cv2.putText(annotated_img,label,(x1,y1-10),cv2.FONT_HERSHEY_SIMPLEX,0.6,color,2)# 保存结果os.makedirs(output_dir,exist_okTrue)filenameos.path.basename(input_path)output_pathos.path.join(output_dir,fdet_{filename})cv2.imwrite(output_path,annotated_img)returnoutput_path,counts说明OpenCV 默认不支持中文显示。若需完美中文可改用PIL 中文字体但上述方案在大多数系统已足够清晰。 四、Web 界面Flaskapp.py# app.pyfromflaskimportFlask,render_template,request,redirect,url_for,send_from_directoryimportosfromdetectimportrun_detection appFlask(__name__)UPLOAD_FOLDERstatic/uploadsRESULT_FOLDERstatic/resultsALLOWED_EXTENSIONS{png,jpg,jpeg}app.config[UPLOAD_FOLDER]UPLOAD_FOLDER app.config[RESULT_FOLDER]RESULT_FOLDERdefallowed_file(filename):return.infilenameandfilename.rsplit(.,1)[1].lower()inALLOWED_EXTENSIONSapp.route(/)defindex():returnrender_template(index.html)app.route(/upload,methods[POST])defupload_file():iffilenotinrequest.files:returnredirect(request.url)filerequest.files[file]iffile.filenameornotallowed_file(file.filename):returnredirect(request.url)# 保存上传文件filenamefile.filename filepathos.path.join(app.config[UPLOAD_FOLDER],filename)os.makedirs(app.config[UPLOAD_FOLDER],exist_okTrue)file.save(filepath)try:# 执行检测output_path,countsrun_detection(filepath,output_dirapp.config[RESULT_FOLDER],model_pathmodels/best.pt# 或 yolov8n.pt未微调)result_filenameos.path.basename(output_path)exceptExceptionase:returnfh2检测失败{str(e)}/h2returnrender_template(result.html,originalfilename,detectedresult_filename,healthy_countcounts[健康作物],stressed_countcounts[病害作物])if__name____main__:app.run(debugTrue,host0.0.0.0,port5000)️ 五、前端模板templates/index.html!DOCTYPEhtmlhtmlheadtitle无人机植物病害检测/titlestylebody{font-family:Arial,sans-serif;text-align:center;margin-top:50px;}.upload-btn{padding:10px 20px;background:#4CAF50;color:white;border:none;cursor:pointer;}.upload-btn:hover{background:#45a049;}/style/headbodyh1 无人机植物病害目标检测系统/h1formmethodpostenctypemultipart/form-dataaction/uploadinputtypefilenamefileacceptimage/*requiredbrbrbuttontypesubmitclassupload-btn上传并检测/button/form/body/htmltemplates/result.html!DOCTYPEhtmlhtmlheadtitle检测结果/titlestylebody{font-family:Arial,sans-serif;text-align:center;margin:20px;}img{max-width:90%;margin:10px;border:1px solid #ccc;}.stats{margin:20px;font-size:18px;}/style/headbodyh2 检测结果/h2divclassstats✅ 健康作物区域{{ healthy_count }} 处br⚠️ 病害作物区域{{ stressed_count }} 处/divimgsrc{{ url_for(static, filenameuploads/ original) }}alt原始图像imgsrc{{ url_for(static, filenameresults/ detected) }}alt检测结果brbrahref/← 返回上传/a/body/html 六、模型准备方案 A使用官方预训练模型快速启动# 在 detect.py 中直接使用modelYOLO(yolov8n.pt)# 或 yolov8s.pt⚠️ 注意官方模型未针对“健康/病害”微调效果有限。方案 B使用你自己的微调模型推荐将你的best.pt放入models/目录确保dataset.yaml中类别为names:[healthy,stressed]▶️ 七、运行系统# 启动 Web 服务python app.py访问 http://localhost:5000 八、系统功能总结功能描述 图像上传支持 JPG/PNG AI 检测YOLOv8 实时识别健康/病害区域 结果统计显示健康与病害区域数量️ 可视化原图 vs 检测结果对比 Web 界面无需安装浏览器即可使用该系统可直接用于智慧农业、植保无人机、科研教学助力实现“早发现、早防治”的精准农业目标。