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

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

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


比赛地址: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


相关实践学习
基于函数计算实现AI推理
本场景基于函数计算建立一个TensorFlow Serverless AI推理平台。
目录
相关文章
|
4月前
|
机器学习/深度学习 人工智能 监控
人工智能中的图像识别
人工智能中的图像识别
40 1
|
1天前
|
机器学习/深度学习 自动驾驶 算法
基于深度学习的图像识别在自动驾驶系统中的应用
【5月更文挑战第2天】 随着人工智能技术的飞速发展,深度学习在图像识别领域取得了突破性进展。这些技术的应用不仅局限于日常的智能设备中,更在自动驾驶系统的发展中扮演着关键角色。本文旨在探讨深度学习算法如何提升自动驾驶汽车的图像识别能力,以及这一进步如何促进自动驾驶系统的整体性能和安全性。通过分析最新的研究成果和实际案例,我们阐述了深度学习模型在处理复杂交通场景中的优势,并讨论了未来可能的发展趋势。
|
3天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别在自动驾驶领域的应用
【4月更文挑战第30天】 随着人工智能技术的飞速发展,深度学习已经成为计算机视觉领域的核心技术之一。图像识别作为计算机视觉的重要分支,其在自动驾驶领域的应用尤为关键。本文旨在探讨基于深度学习的图像识别技术如何推动自动驾驶系统的发展,分析当前的挑战与未来的发展趋势,并提出了几种优化方案以提升自动驾驶车辆在复杂环境下的性能和安全性。
12 1
|
2天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶领域的应用
【4月更文挑战第30天】 随着人工智能技术的飞速发展,深度学习作为其核心分支之一,在图像识别领域取得了显著的成就。本文聚焦于探讨基于深度学习的图像识别技术如何革新自动驾驶系统,提高其准确性和可靠性。文中首先概述了深度学习的基本概念及其在图像处理中的关键作用,随后深入分析了卷积神经网络(CNN)与循环神经网络(RNN)等模型在自动驾驶车辆环境感知中的应用。此外,文章还探讨了数据增强、迁移学习等策略对提升模型性能的影响。最后,本文讨论了当前该技术面临的挑战及未来的发展趋势。
|
3天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别在自动驾驶技术中的应用
【4月更文挑战第30天】 随着人工智能技术的飞速发展,深度学习作为其重要分支之一,在图像识别领域取得了显著成果。特别是在自动驾驶技术中,基于深度学习的图像识别系统不仅增强了车辆对环境的感知能力,而且提高了决策系统的智能水平。本文将探讨深度学习在自动驾驶图像识别中的应用机制,分析关键技术挑战,并提出未来的发展趋势。通过综合现有文献和最新研究成果,我们旨在为读者提供一个关于该技术如何塑造未来交通生态的清晰视角。
|
6天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶车辆中的应用
【4月更文挑战第27天】 随着人工智能技术的飞速发展,特别是深度学习在图像处理领域的突破,自动驾驶车辆的图像识别系统已成为研究的热点。本文旨在探讨基于深度学习的图像识别技术如何增强自动驾驶车辆的环境感知能力,并分析其在实时导航、障碍物检测和分类、交通标志识别等方面的应用。通过梳理当前最前沿的技术进展,我们讨论了卷积神经网络(CNN)与递归神经网络(RNN)等模型在处理复杂道路场景中的优势与挑战,同时指出了数据增强、迁移学习及集成学习等策略在提升模型泛化能力中的作用。最后,文章对自动驾驶图像识别系统面临的开放问题进行了展望,包括对抗性攻击的防御、多模态数据融合以及伦理法规遵循等关键议题。
13 1
|
4天前
|
机器学习/深度学习 传感器 自动驾驶
探索基于深度学习的图像识别在自动驾驶技术中的应用
【4月更文挑战第29天】 在自动驾驶技术的迅猛发展中,图像识别作为其核心技术之一,正经历着从传统算法向基于深度学习方法的转变。本文深入探讨了深度学习在图像识别领域的应用及其对自动驾驶系统性能的影响。通过分析卷积神经网络(CNN)在特征提取、模式识别中的能力,以及循环神经网络(RNN)在序列数据处理上的优势,文章揭示了深度学习如何提升自动驾驶车辆对环境的感知能力。同时,考察了数据增强、迁移学习等策略在处理自动驾驶中的视觉问题上的实际效果和潜力。最后,讨论了目前技术面临的挑战及未来可能的发展方向。
|
4天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶汽车中的应用
【4月更文挑战第29天】 随着人工智能技术的迅猛发展,特别是深度学习在图像识别领域的突破性进展,自动驾驶汽车技术得到了显著的提升。本文旨在探讨深度学习技术如何优化自动驾驶系统中的图像识别过程,以及这些技术对提高道路安全性和车辆智能化水平的潜在影响。文中首先回顾了深度学习的基本概念及其在图像处理中的关键作用,随后分析了几种主流的深度神经网络模型,并举例说明了它们在自动驾驶环境中的应用。最后,文章讨论了目前技术面临的挑战及未来发展方向。
|
3天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶系统中的应用
【4月更文挑战第30天】 随着人工智能技术的飞速发展,深度学习已成为推动技术创新的核心动力之一。特别是在图像识别领域,深度学习技术已经取得了显著的成就。本文旨在探讨基于深度学习的图像识别技术在自动驾驶系统中的应用,并分析了该技术对提升自动驾驶汽车环境感知能力的重要性。通过构建高效准确的深度神经网络模型,实现对道路场景中各种物体的快速识别与分类,从而为自动驾驶决策提供可靠的数据支持。
|
6天前
|
机器学习/深度学习 传感器 自动驾驶
【专栏】基于深度学习的图像识别技术在自动驾驶车辆中的应用
【4月更文挑战第27天】本文探讨了深度学习在自动驾驶图像识别中的应用,该技术通过模拟人脑认知处理大量标注数据,实现对图像的准确识别。深度学习模型在特征提取和泛化能力上优于传统方法,能用于识别交通标志、车辆、行人等,进行障碍物检测与避障,以及行为预测和决策制定。尽管面临数据获取、计算资源和泛化能力的挑战,但随着技术发展,深度学习将继续推动自动驾驶技术的进步,提供更安全、便捷的出行方案。