Python棉花病虫害图谱系统CNN识别+AI问答知识neo4j vue+flask深度学习神经网络可视化
文章结尾部分有CSDN官方提供的学长 联系方式名片
文章结尾部分有CSDN官方提供的学长 联系方式名片
关注B站,有好处!
功能介绍
编号:F045
🪲 vue+flask+neo4j+mysql 架构 (前后端分离架构)
🪲 棉花医院AI问答:前端聊天界面体验超棒(对接千问大模型API)
🪲 病虫害图片识别:基于CNN的棉花病虫害识别,可自己训练模型(基于pytorch)
🪲 数据为棉花的四个期对应的 各种虫害
🪲 知识图谱: 模糊查询+图标+双击+拖动等(双击展示数据)
🪲 数据大屏:中国地图显示产地: echarts 分析
🪲 病虫害查询: 分页+模糊查询+卡片展示
🪲 棉花生长周期:展示4个周期
🪲 关键词分析等、登录注册
视频讲解
F045vue+flask棉花病虫害CNN识别+AI问答知识neo4j 图谱可视化系统深度学习神经网络
病虫害知识问答
基于阿里千问大模型API实现的棉花病虫害问答
类似聊天界面
病虫害识别
基于Pytorch CNN卷积神经网络模型实现的病虫害识别
识别叶甲
上传图片,右侧展示识别结果、图片和相关的信息:
知识图谱可视化
可视化
支持模糊搜索显示知识图谱子图,输入“蕾”
点击节点,右侧展示详细节点信息
病虫害知识库搜索
可以搜索各种病虫害,支持模糊搜索+分页,画面美观
棉花周期科普
关键词分析
基于统计、textrank+tfidf双算法的关键词主题词分析
词云分析
基于jieba分词的词云分析
数据大屏
多种echarts可视化图形数据分析的应用,美观大方
通过中国地图分析棉花产地、药物类型、虫害分析、有效成分等
登录和注册
个人信息设置,可修改头像等
通过OCR识别技术进行实名认证
病虫害识别代码
class SimpleCNN(nn.Module):
def __init__(self, num_classes):
super(SimpleCNN, self).__init__()
self.conv1 = nn.Conv2d(3, 16, kernel_size=3, stride=1, padding=1)
self.conv2 = nn.Conv2d(16, 32, kernel_size=3, stride=1, padding=1)
self.pool = nn.MaxPool2d(kernel_size=2, stride=2, padding=0)
self.fc1 = nn.Linear(32 * 32 * 32, 128)
self.fc2 = nn.Linear(128, num_classes)
def forward(self, x):
x = self.pool(F.relu(self.conv1(x)))
x = self.pool(F.relu(self.conv2(x)))
x = x.view(-1, 32 * 32 * 32)
x = F.relu(self.fc1(x))
x = self.fc2(x)
return x
# 预测函数
def predict(image_path, model, class_names):
# 定义图像预处理
# transform = transforms.Compose([
# transforms.Resize((128, 128)), # 统一大小
# transforms.ToTensor(),
# ])
transform = transforms.Compose([
transforms.Resize((128, 128)),
transforms.Lambda(lambda x: x.convert('RGB')), # 确保转换为RGB模式
transforms.ToTensor(),
])
# 加载和预处理图像
image = Image.open(image_path)
image = transform(image).unsqueeze(0) # 增加批次维度
# 将图像输入模型进行预测
model.eval() # 设置模型为评估模式
with torch.no_grad():
outputs = model(image)
# print(outputs)
_, predicted = torch.max(outputs, 1)
print(predicted.item())
# 返回预测的类别
return class_names[predicted.item()]
def predict_interface(test_image_path):
# 加载训练好的模型
num_classes = 5 # 根据你的数据集类别数量修改
model = SimpleCNN(num_classes)
model.load_state_dict(torch.load(MODEL_PATH))
model.eval()
# 类别名称(根据你的数据集修改)
class_names = ['中黑盲蝽', '台龟甲', '叶甲', '宽棘缘椿', '小长蝽',
] # 替换为实际类别名称
# 测试预测
# test_image_path = '3.jpg' # 替换为测试图像的路径
predicted_class = predict(test_image_path, model, class_names)
return predicted_class
if __name__ == "__main__":
# 加载训练好的模型
num_classes = 5 # 根据你的数据集类别数量修改
model = SimpleCNN(num_classes)
model.load_state_dict(torch.load('disease_model.pth'))
model.eval()
# 类别名称(根据你的数据集修改)
class_names = ['中黑盲蝽', '台龟甲', '叶甲', '宽棘缘椿', '小长蝽',
] # 替换为实际类别名称
# 测试预测
test_image_path = '3.jpg' # 替换为测试图像的路径
predicted_class = predict(test_image_path, model, class_names)
print(f'Predicted class: {predicted_class}')