# 1.背景
现如今由于农作物病虫害的多样性和复杂性,在特定的条件下其很容易在大范围内发生,导致农产品产量急剧下降。因此,预防和监测农作物病虫害已成为农业生产活动中的重要环节。当前,耕地面积逐渐减少,世界人口总数逐渐增加,导致人均耕地数量减少。 “吃饭问题” 成为了对现代社会农业政策、管理模式、技术手段的重大考验,因此如何保障农作物产能满足新增人口需求成为一个日益严峻的问题。随着大规模生产的集约化,农作物病虫害爆发影响会更大,生产能力的输出起着决定性的作用。作物病虫害是中国的主要农业灾害之一,其具有种类多、影响大、灾害频发的特点,甚至造成农作物大面积减产; 其灾害范围和严重程度常常给中国国民经济特别是农业生产造成巨大损失。在农作物生产活动中可能受到多种病虫害交杂影响,其中某些并不能被肉眼所识别,其可能也是破坏农作物植株正常生理状态的重点诱因,致使农作物基因突变、细胞变异或者组织损伤,从而带来减产、甚至绝产后果。
# 2.识别效果
![1 (1).jpg](08a0a3ef30dfb70a68fa3a12f8a34984.jpeg)
![1 (2).jpg](052a6342583a946804305ed5f7a951ac.jpeg)
![1 (3).jpg](95afbebdaa0668898d1e75946e2a1b2a.jpeg)
![1 (4).jpg](4a3babd65ebb3e405910fcc9217695fb.jpeg)
![1 (5).jpg](783767bd6e045ff43c95844f72cc0e97.jpeg)
![1 (6).jpg](2318be6dba8381fce8b8a16a47579ad0.jpeg)
# 3.视频演示
[[项目分享]Python基于改进YOLOv5的猕猴桃叶病害检测系统(完整源码&数据集&视频教程)_哔哩哔哩_bilibili](https://www.bilibili.com/video/BV1Ld4y1G7eo/?vd_source=bc9aec86d164b67a7004b996143742dc)
# 4.训练结果
### Precision&Recall&Map&So on
![results.png](590211afdaa61bcc48aab10e44e9dd06.png)
### 混淆矩阵
![confusion_matrix.png](8173437efbdd04cc50b9ab0112d7d954.png)
### 其他参数结果图
![b.png](8211c381d1c8668613d5c64a7bdc7c73.png)
# 5.[数据集](https://afdian.net/item?plan_id=7132dd20625811edb2c052540025c377)
![a.png](d17d1b1c3ad838dfeef92c36592edbd1.png)
# 6.[代码实现](https://mbd.pub/o/bread/Yp6ampdt)
```
"""定制resnet后面的层"""
def custom(input_size,num_classes,pretrain):
# 引入初始化resnet50模型
base_model = ResNet50(weights=pretrain,
include_top=False,
pooling=None,
input_shape=(input_size,input_size, 3),
classes=num_classes)
#由于有预权重,前部分冻结,后面进行迁移学习
for layer in base_model.layers:
layer.trainable = False
#添加后面的层
x = base_model.output
x = layers.GlobalAveragePooling2D(name='avg_pool')(x)
x = layers.Dropout(0.5,name='dropout1')(x)
#regularizers正则化层,正则化器允许在优化过程中对层的参数或层的激活情况进行惩罚
#对损失函数进行最小化的同时,也需要让对参数添加限制,这个限制也就是正则化惩罚项,使用l2范数
x = layers.Dense(512,activation='relu',kernel_regularizer= regularizers.l2(0.0001),name='fc2')(x)
x = layers.BatchNormalization(name='bn_fc_01')(x)
x = layers.Dropout(0.5,name='dropout2')(x)
#40个分类
x = layers.Dense(num_classes,activation='softmax')(x)
model = Model(inputs=base_model.input,outputs=x)
#模型编译
model.compile(optimizer="adam",loss = 'categorical_crossentropy',metrics=['accuracy'])
return model
```
```
class Net():
def __init__(self,img_size,gar_num,data_dir,batch_size,pretrain):
self.img_size=img_size
self.gar_num=gar_num
self.data_dir=data_dir
self.batch_size=batch_size
self.pretrain=pretrain
def build_train(self):
"""迁移学习"""
model = resnet.custom(self.img_size, self.gar_num, self.pretrain)
model.summary()
train_sequence, validation_sequence = genit.gendata(self.data_dir, self.batch_size, self.gar_num, self.img_size)
epochs=4
model.fit_generator(train_sequence,steps_per_epoch=len(train_sequence),epochs=epochs,verbose=1,validation_data=validation_sequence,
max_queue_size=10,shuffle=True)
#微调,在实际工程中,激活函数也被算进层里,所以总共181层,微调是为了重新训练部分卷积层,同时训练最后的全连接层
layers=149
learning_rate=1e-4
for layer in model.layers[:layers]:
layer.trainable = False
for layer in model.layers[layers:]:
layer.trainable = True
Adam =adam(lr=learning_rate, decay=0.0005)
model.compile(optimizer=Adam, loss='categorical_crossentropy', metrics=['accuracy'])
model.fit_generator(train_sequence,steps_per_epoch=len(train_sequence),epochs=epochs * 2,verbose=1,
callbacks=[
callbacks.ModelCheckpoint('./models/garclass.h5',monitor='val_loss', save_best_only=True, mode='min'),
callbacks.ReduceLROnPlateau(monitor='val_loss', factor=0.1,patience=10, mode='min'),
callbacks.EarlyStopping(monitor='val_loss', patience=10),],
validation_data=validation_sequence,max_queue_size=10,shuffle=True)
print('finish train,look for garclass.h5')
```
[环境部署视频教程&完整源码&标注好的数据集](https://s.xiaocichang.com/s/30ad74)
参考博客[《\[智慧农业\]Python基于改进YOLOv5的猕猴桃叶病害检测系统(完整源码&数据集&视频教程)》](https://mbd.pub/o/qunma/work)
# 7.参考文献
**1.[期刊论文]**基于神经网络的智慧农业病虫识别系统设计与应用
**期刊:**《农业与技术》 | 2021 年第 002 期
**摘要:**病虫害一直以来都是农业种植户担心的问题,虽然无法让病虫害问题不再产生,但农业种植户可以通过科技设备、病虫害目前情况以及发展情况提前预测,及时采取防控措施,减少病虫害对农业生产的危害.该平台的病虫害预警监测系统,设备层采用农业墒情、苗情、虫情、灾情实时监测的专用仪器,采集作物图像信息,运用神经网络算法进行模拟分析,最终给平台使用人员提出病虫害结论,实时监测作物的病虫害发生情况;系统可以帮助农业种植户在第一时间获得详细的农业作物生长情况、作物病害、虫害的数据,还可以进行远程专家诊断问答机制.
**关键词:**农业;智慧;病虫识别
**链接:**[https://www.zhangqiaokeyan.com/academic-journal-cn_agriculture-technology_thesis/0201288479126.html](https://link.zhihu.com/?target=https%3A//www.zhangqiaokeyan.com/academic-journal-cn_agriculture-technology_thesis/0201288479126.html%3Ffrom%3Dlzhh-3-2-1-4p-9278)
---------------------------------------------------------------------------------------------------
**2.[期刊论文]**MobileNet算法的嵌入式农业病虫害识别系统
**期刊:**《单片机与嵌入式系统应用》 | 2020 年第 005 期
**关键词:**图像识别;树莓派;MobileNet;Cortex-M3
**链接:**[https://www.zhangqiaokeyan.com/academic-journal-cn_microcontrollers-embedded-systems_thesis/0201278624524.html](https://link.zhihu.com/?target=https%3A//www.zhangqiaokeyan.com/academic-journal-cn_microcontrollers-embedded-systems_thesis/0201278624524.html%3Ffrom%3Dlzhh-3-2-1-4p-9278)
---------------------------------------------------------------------------------------------------
**3.[期刊论文]**基于深度学习的病虫害智能化识别系统
**期刊:**《中国植保导刊》 | 2019 年第 004 期
**摘要:**我国农作物种植覆盖面广、分散度高,病虫害发生种
普通网友
- 粉丝: 1127
- 资源: 5292
最新资源
- C# Winform简单的俄罗斯方块小游戏源码2.zip
- 混合动力汽车动态规划算法理论油耗计算与视频教学,使用matlab编写快速计算程序,整个工程结构模块化,可以快速改为串联,并联,混联等 控制量可以快速扩展为档位,转矩,转速等 状态量一般为SOC,目
- 全国职业院校技能大赛网络建设与运维规程
- agv 1223.fbx
- 考虑泄流效应的光伏无功优化matlab 以IEEE33节点为例,分析泄流效应下,最佳网络无功补偿方案,程序运行稳定
- jetbra插件工具,方便开发者快速开发
- 云计算2401班课程设计资料.zip
- 企业宣传PPT模板, 企业宣传PPT模板
- 微环谐振腔的光学频率梳matlab仿真 微腔光频梳仿真 包括求解LLE方程(Lugiato-Lefever equation)实现微环中的光频梳,同时考虑了色散,克尔非线性,外部泵浦等因素,具有可延展
- 生菜生长记录数据集.zip
- 基于Springboot+Vue健身房管理系统-毕业源码案例设计(高分项目).zip
- 中国风格, 节日 主题, PPT模板
- lcd取模工具,很难找的有用的LCD显示开发工具
- 基于Springboot+Vue健身房管理系统-毕业源码案例设计(源码+数据库).zip
- 基于Springboot+Vue江理工文档管理系统的设计与实现-毕业源码案例设计(源码+论文).zip
- 基于Springboot+Vue教师工作量管理系统-毕业源码案例设计(高分毕业设计).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈