辣椒病虫害图像识别挑战赛

本文涉及的产品
图像搜索,7款服务类型 1个月
简介: 辣椒病虫害图像识别挑战赛

一、辣椒病虫害图像识别挑战赛简介


比赛地址:challenge.xfyun.cn/topic/info?…


1.赛事背景


农作物病虫害严重制约着农业生产,因为农作物病虫害种类多、密度大,极易造成农作物大量减产。同时由于传统人眼识别病虫害的方法速度较慢、准确度较低,会导致农药的滥用,破坏自然环境。如今随着精准农业和智慧农业概念的兴起和发展,利用信息技术辅助农业生产,实现对农作物病虫害的智能识别和检测,以减少不必要的农药喷施,对保护生态系统均衡,保障农作物安全生产,提高农作物的质量方面,有着十分重要的促进作用。


2.赛事任务


最为有效的病虫害识别方法是图片识别,本次大赛提供了大量农民在田间地头拍摄的辣椒的病虫害图片,涉及病虫害种类较多,参赛选手需基于提供的样本构建模型,实现辣椒的病虫害图像识别。


3.数据介绍


本次比赛为参赛选手提供了辣椒的病虫害图像数据:包括图像及其所属病虫害标签。数据主体为农民在不同环境条件下拍摄的辣椒的农作物图像,每张图像的主体突出度,背景复杂程度、光照条件,图像清晰度均存在一定差别。 其中疾病分类:

  • 炭疽病 d1
  • 疫病 d2
  • 用药不当 d3
  • 病毒病 d4
  • 温度不适 d5
  • 螨虫 d6
  • 细菌性病害 d7
  • 根腐病 d8
  • 缺素 d9
  • 脐腐病 d10
  • 蓟马 d11


二、PaddleX环境准备


飞桨图像识别套件PaddleClas是飞桨为工业界和学术界所准备的一个图像识别任务的工具集,助力使用者训练出更好的视觉模型和应用落地。此次计划使用端到端的PaddleClas图像分类套件来快速完成分类。此次使用PaddleClas框架完成比赛。

!pip install --upgrade paddlex >log.log
!pip list|grep paddlex


三、数据准备


1.数据解压缩


#解压缩
!unzip -qoa data/data153190/辣椒病虫害图像识别挑战赛公开数据.zip -d data/
# 重命名目录
!mv data/└▒╜╖▓б│ц║ж═╝╧ё╩╢▒Ё╠Ї╒╜╚№╣л┐к╩¤╛▌ data/pepper
!mv data/pepper/└р▒Ё║м╥х.txt data/pepper/label.txt
!mv data/pepper/╠с╜╗╩╛└¤.csv data/pepper/test.csv
!head data/pepper/label.txt


2.数据集划分


!paddlex --split_dataset --format ImageNet --dataset_dir data/pepper/train --val_value 0.1


3.导入PaddleX库


# 环境变量配置,用于控制是否使用GPU
# 说明文档:https://paddlex.readthedocs.io/zh_CN/develop/appendix/parameters.html#gpu
import os
os.environ['CUDA_VISIBLE_DEVICES'] = '0'
import paddle
import paddlex as pdx
from paddlex import transforms as T


4.数据增强


# 定义训练和验证时的transforms
# API说明:https://github.com/PaddlePaddle/PaddleX/blob/develop/docs/apis/transforms/transforms.md
train_transforms = T.Compose([
    T.RandomCrop(crop_size=224),
    T.RandomHorizontalFlip(),
    T.RandomDistort(),
    T.RandomBlur(prob=0.1),
    T.Normalize()])
eval_transforms = T.Compose([
    T.ResizeByShort(short_size=256),
    T.CenterCrop(crop_size=224),
    T.Normalize()
])


5.定义数据集


# 定义训练和验证所用的数据集
# API说明:https://github.com/PaddlePaddle/PaddleX/blob/develop/docs/apis/datasets.md
train_dataset = pdx.datasets.ImageNet(
    data_dir='data/pepper/train',
    file_list='data/pepper/train/train_list.txt',
    label_list='data/pepper/train/labels.txt',
    transforms=train_transforms,
    shuffle=True)
eval_dataset = pdx.datasets.ImageNet(
    data_dir='data/pepper/train',
    file_list='data/pepper/train/val_list.txt',
    label_list='data/pepper/train/labels.txt',
    transforms=eval_transforms)
2022-06-28 18:32:02 [INFO]  Starting to read file list from dataset...
2022-06-28 18:32:02 [INFO]  6804 samples in file data/pepper/train/train_list.txt
2022-06-28 18:32:02 [INFO]  Starting to read file list from dataset...
2022-06-28 18:32:02 [INFO]  752 samples in file data/pepper/train/val_list.txt


四、模型训练


1.模型初始化


num_classes = len(train_dataset.labels)
model = pdx.cls.DarkNet53(num_classes=num_classes)
# 自定义优化器:使用CosineAnnealingDecay
train_batch_size = 256
num_steps_each_epoch = len(train_dataset) // train_batch_size
num_epochs = 100
scheduler = paddle.optimizer.lr.CosineAnnealingDecay(
    learning_rate=.001, T_max=num_steps_each_epoch * num_epochs)
warmup_epoch = 5
warmup_steps = warmup_epoch * num_steps_each_epoch
scheduler = paddle.optimizer.lr.LinearWarmup(
    learning_rate=scheduler,
    warmup_steps=warmup_steps,
    start_lr=0.0,
    end_lr=.001)
custom_optimizer = paddle.optimizer.Momentum(
    learning_rate=scheduler,
    momentum=.9,
    weight_decay=paddle.regularizer.L2Decay(coeff=.00002),
    parameters=model.net.parameters())


2.开始训练


model.train(
    num_epochs=num_epochs,
    train_dataset=train_dataset,
    train_batch_size=train_batch_size,
    eval_dataset=eval_dataset,
    optimizer=custom_optimizer,
    save_dir='output/darknet53',
    save_interval_epochs=2,
    use_vdl=True)


五、预测并提交


重启环境,释放现存,预测结果

# test_images文件夹批量预测
import pathlib
import os
import paddlex as pdx
# 载入模型
model = pdx.load_model('output/darknet53/best_model')
# 结果文件
f=open("result.csv","w")
f.write('image,label\n')
# 遍历文件夹
test_data_dir = pathlib.Path('data/pepper/test')
# 不带目录,直接图片
test_files=list(test_data_dir.glob('*.jpg'))
for myfile in test_files:    
    result = model.predict(str(myfile))
    filename=os.path.basename(myfile)
    # 写入文件
    f.write(f"{filename},{result[0]['category']}\n")
f.close()
2022-06-29 07:11:53 [INFO]  Model[DarkNet53] loaded.
Corrupt JPEG data: 114 extraneous bytes before marker 0xd9
Invalid SOS parameters for sequential JPEG

下载提交即可获得成绩

image.png


目录
相关文章
|
6月前
|
机器学习/深度学习 算法
探索深度学习在图像识别领域的新进展
【4月更文挑战第27天】 随着人工智能技术的飞速发展,深度学习已成为推动图像识别领域进步的核心技术。本文聚焦于最新的研究成果和技术动态,详细解析了卷积神经网络(CNN)的优化策略、数据增强技术以及迁移学习的应用实例。通过对比实验结果,我们展示了这些技术如何提高模型的泛化能力和识别精度。此外,文章还探讨了深度学习面临的挑战和未来的发展方向,为该领域的研究人员和实践者提供了有价值的参考。
|
26天前
|
人工智能 自然语言处理 前端开发
基于知识图谱的水稻病虫害问答系统
基于知识图谱的水稻病虫害问答系统
26 1
|
1月前
|
机器学习/深度学习 自动驾驶 算法
深度学习中的图像识别技术及其在自动驾驶中的应用
【10月更文挑战第4天】本文深入探讨了深度学习在图像识别领域的应用,并特别关注其在自动驾驶系统中的关键作用。文章首先介绍了深度学习的基本概念和工作原理,随后通过一个代码示例展示了如何利用深度学习进行图像分类。接着,文章详细讨论了图像识别技术在自动驾驶中的具体应用,包括物体检测、场景理解和决策制定等方面。最后,文章分析了当前自动驾驶技术面临的挑战和未来的发展趋势。
40 4
|
6月前
|
机器学习/深度学习 自动驾驶 算法
基于深度学习的图像识别技术在自动驾驶领域的应用
【5月更文挑战第30天】 随着人工智能技术的飞速发展,特别是深度学习在图像处理和识别方面的突破,自动驾驶汽车逐渐成为可能。本文旨在探讨基于深度学习的图像识别技术如何赋能自动驾驶系统,提高其准确性与可靠性。文中首先介绍了深度学习在图像识别中的关键算法,随后分析了这些技术在复杂交通环境中的具体应用,以及它们在提升自动驾驶安全性方面的潜在价值。最后,文章讨论了目前该领域所面临的挑战和未来的发展方向。
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
探索人工智能在医疗诊断中的应用探索深度学习在图像识别中的应用
【5月更文挑战第31天】随着人工智能技术的飞速发展,其在医疗领域的应用也日益广泛。特别是在医疗诊断方面,AI技术不仅提高了诊断的准确性和效率,还为医生提供了更多的决策支持。本文将深入探讨AI在医疗诊断中的应用,包括图像识别、自然语言处理等方面,并分析其优势与挑战。 【5月更文挑战第31天】 随着人工智能技术的飞速发展,深度学习已经成为了推动计算机视觉领域进步的核心力量。本文将深入探讨深度学习技术在图像识别任务中的应用,重点分析了卷积神经网络(CNN)的基本原理、关键技术以及面临的挑战。通过精选的案例研究,我们揭示了深度学习如何改善模型的识别精度和泛化能力,同时讨论了目前该领域的开放性问题及未
|
3月前
|
机器学习/深度学习 数据采集 搜索推荐
深度学习中的图像识别技术及其在医疗领域的应用
【8月更文挑战第3天】 本文深入探讨了深度学习技术在图像识别领域的应用,并特别关注其在医疗健康领域的革新作用。通过介绍深度学习的基本原理和关键技术,文章揭示了这一技术如何提高诊断准确性、加速疾病检测流程,并助力于个性化治疗方案的制定。同时,文中提供了Python代码示例,展示了如何使用深度学习模型进行图像识别任务。
86 5
|
4月前
|
机器学习/深度学习 自动驾驶 安全
基于深度学习的图像识别技术在自动驾驶中的应用
随着人工智能技术的飞速发展,深度学习已成为推动自动驾驶技术进步的核心动力。本文深入探讨了深度学习在图像识别领域的应用,并分析了其在自动驾驶系统中的关键作用。通过引用最新的研究成果和实验数据,本文揭示了深度学习模型如何提高自动驾驶车辆对环境的感知能力,从而增强驾驶安全性和效率。
64 1
|
6月前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别在无人驾驶汽车中的应用
【5月更文挑战第30天】 随着人工智能技术的飞速发展,特别是深度学习在图像处理与识别领域的突破性进展,无人驾驶汽车技术正逐步成为现实。本文旨在探讨基于深度学习的图像识别技术如何为无人驾驶汽车提供核心的“视觉”功能,并分析其在实际应用中面临的挑战及解决方案。通过综合运用卷积神经网络(CNN)、递归神经网络(RNN)等模型,我们构建了一个高效的图像识别系统,该系统能够准确识别道路标志、行人、其他车辆以及多种障碍物,为无人驾驶汽车的安全行驶提供强有力的技术支持。
|
6月前
|
机器学习/深度学习 传感器 自动驾驶
探索基于深度学习的图像识别技术在自动驾驶领域的应用
【5月更文挑战第10天】 随着人工智能技术的飞速发展,特别是深度学习在图像处理和识别方面的突破性进展,自动驾驶汽车逐渐成为现实。本文将深入探讨深度学习技术在图像识别领域的应用,以及如何通过这些技术提高自动驾驶系统的性能和安全性。我们将分析卷积神经网络(CNN)在车辆检测、行人识别和交通标志识别中的作用,并讨论数据增强、迁移学习和对抗网络等策略如何帮助提升模型的泛化能力和鲁棒性。此外,文中还将涉及深度学习模型在实时处理和嵌入式系统部署时面临的挑战及其解决方案。
|
6月前
|
机器学习/深度学习 自动驾驶 算法
基于深度学习的图像识别在自动驾驶车辆中的应用
【5月更文挑战第5天】 随着人工智能技术的飞速发展,特别是深度学习在图像处理领域的突破性进展,自动驾驶汽车得以利用这些先进技术实现对环境的高效识别和理解。本文将探讨如何通过深度学习模型优化自动驾驶系统中的图像识别过程,以及这一技术如何提升车辆的安全性与可靠性。我们将重点讨论卷积神经网络(CNN)在道路标识、行人检测和障碍物分类中的应用,并通过实例展示深度学习算法在真实世界数据上的性能表现。