Bootstrap

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}')
;