网站建好后,免费个人博客网站,主流网站建设服务器有哪些,建立网站平台需要那些技术#x1f49b;前情提要#x1f49b;
本文是传知代码平台中的相关前沿知识与技术的分享~
接下来我们即将进入一个全新的空间#xff0c;对技术有一个全新的视角~
本文所涉及所有资源均在传知代码平台可获取
以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦#x…前情提要
本文是传知代码平台中的相关前沿知识与技术的分享~
接下来我们即将进入一个全新的空间对技术有一个全新的视角~
本文所涉及所有资源均在传知代码平台可获取
以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦
以下内容干货满满跟上步伐吧~ 导航小助手 本章重点一. 概述二. 演示效果三.核心逻辑总结 本章重点
农作物病害分类(Web端实现) 一. 概述
农作物病害是国家粮食安全的一个主要威胁是决定农作物产量和质量的主要因素。 由于传统方法缺乏必要的基础设施并且极大程度依赖于人工经验故诸多地区难以迅速高效地防治病害从而影响农业的发展。因此精确诊断农作物病害对于促进农业可持续发展至关重要。针对传统的农作物病害识别方法具有主观性并且极大程度依赖于人工经验的不足利用卷积神经网络对农作物病害进行识别与分类。 首先利用数据增强技术扩充农作物病害原始数据集增加数据的多样性和数量同时可以提高训练网络的泛化能力和识别精度 然后搭建卷积神经网络对农作物图像进行病虫害的特征提取和分类实现对农作物病害的准确识别和分类。 最后通过搭建本地Web实现识别分类的可视化可以详见视频。值得注意的是作者本人使用的是PlantVillage数据集进行训练、验证以及测试的。
Plant Village数据集共包含14中植物类别分别为苹果、蓝莓、樱桃、玉米、葡萄、柑橘、桃、胡椒、马铃薯、树莓、大豆、南瓜、草莓和番茄。 二. 演示效果 识别界面 三.核心逻辑
flask的路由设置代码
import os
from flask import Flask, redirect, render_template, request
from PIL import Image
import torchvision.transforms.functional as tf
import CNN
import numpy as np
import torch
import pandas as pd
import smtplib
from email.mime.text import MIMETextdisease_info pd.read_csv(static/materials/disease_infov1.csv, encodingutf-8)supplement_info pd.read_csv(static/materials/supplement_info.csv, encodingutf-8)model CNN.CNN(38)
model.load_state_dict(torch.load(static/save_model/plant_disease_model_xhh500.pt))
model.eval()def prediction(image_path):image Image.open(image_path)image image.resize((224, 224))input_data tf.to_tensor(image)input_data input_data.view((-1, 3, 224, 224))output model(input_data)output output.detach().numpy()index np.argmax(output)return indexapp Flask(__name__)app.route(/, methods[GET, POST])
def home_page():return render_template(home.html)app.route(/contact)
def contact():return render_template(contact.html)app.route(/services)
def services():return render_template(services.html)app.route(/about)
def about():return render_template(about.html)app.route(/typo)
def buchong():return render_template(typo.html)app.route(/submit, methods[GET, POST])
def submit():if request.method POST:image request.files[image]filename image.filenamefile_path os.path.join(static/uploads, filename)image.save(file_path)print(file_path)pred prediction(file_path)title disease_info[disease_name][pred]description disease_info[description][pred]prevent disease_info[Possible Steps][pred]image_url disease_info[image_url][pred]print(fimage_url: {image_url})supplement_name supplement_info[supplement name][pred]supplement_image_url supplement_info[supplement image][pred]supplement_buy_link supplement_info[buy link][pred]return render_template(submit.html, titletitle, descdescription, preventprevent,image_urlimage_url, predpred, snamesupplement_name, simagesupplement_image_url,buy_linksupplement_buy_link)app.route(/market, methods[GET, POST])
def market():return render_template(market.html, supplement_imagelist(supplement_info[supplement image]),supplement_namelist(supplement_info[supplement name]),diseaselist(disease_info[disease_name]), buylist(supplement_info[buy link]))if __name__ __main__:app.config[JSON_AS_ASCII] Falseapp.run(debugTrue)
模型训练的代码
import pandas as pd
import torch.nn as nnclass CNN(nn.Module):def __init__(self, K):super(CNN, self).__init__()self.conv_layers nn.Sequential(# conv1nn.Conv2d(in_channels3, out_channels32, kernel_size3, padding1),nn.ReLU(),nn.BatchNorm2d(32),nn.Conv2d(in_channels32, out_channels32, kernel_size3, padding1),nn.ReLU(),nn.BatchNorm2d(32),nn.MaxPool2d(2),# conv2nn.Conv2d(in_channels32, out_channels64, kernel_size3, padding1),nn.ReLU(),nn.BatchNorm2d(64),nn.Conv2d(in_channels64, out_channels64, kernel_size3, padding1),nn.ReLU(),nn.BatchNorm2d(64),nn.MaxPool2d(2),# conv3nn.Conv2d(in_channels64, out_channels128, kernel_size3, padding1),nn.ReLU(),nn.BatchNorm2d(128),nn.Conv2d(in_channels128, out_channels128, kernel_size3, padding1),nn.ReLU(),nn.BatchNorm2d(128),nn.MaxPool2d(2),# conv4nn.Conv2d(in_channels128, out_channels256, kernel_size3, padding1),nn.ReLU(),nn.BatchNorm2d(256),nn.Conv2d(in_channels256, out_channels256, kernel_size3, padding1),nn.ReLU(),nn.BatchNorm2d(256),nn.MaxPool2d(2),)self.dense_layers nn.Sequential(nn.Dropout(0.4),nn.Linear(50176, 1024),nn.ReLU(),nn.Dropout(0.4),nn.Linear(1024, K),)def forward(self, X):out self.conv_layers(X)# Flattenout out.view(-1, 50176)# Fully connectedout self.dense_layers(out)return outidx_to_classes {0: Apple___Apple_scab,1: Apple___Black_rot,2: Apple___Cedar_apple_rust,3: Apple___healthy,4: Blueberry___healthy,5: Cherry___healthy,6: Cherry___Powdery_mildew,7: Corn___Cercospora_leaf_spot Gray_leaf_spot,8: Corn___Common_rust,9: Corn___Northern_Leaf_Blight,10: Corn___healthy,11: Grape___Black_rot,12: Grape___Esca_(Black_Measles),13: Grape___Leaf_blight_(Isariopsis_Leaf_Spot),14: Grape___healthy,15: Orange___Haunglongbing_(Citrus_greening),16: Peach___Bacterial_spot,17: Peach___healthy,18: Pepper,_bell___Bacterial_spot,19: Pepper,_bell___healthy,20: Potato___Early_blight,21: Potato___Late_blight,22: Potato___healthy,23: Raspberry___healthy,24: Soybean___healthy,25: Squash___Powdery_mildew,26: Strawberry___Leaf_scorch,27: Strawberry___healthy,28: Tomato___Bacterial_spot,29: Tomato___Early_blight,30: Tomato___Late_blight,31: Tomato___Leaf_Mold,32: Tomato___Septoria_leaf_spot,33: Tomato___Spider_mites Two-spotted_spider_mite,34: Tomato___Target_Spot,35: Tomato___Tomato_Yellow_Leaf_Curl_Virus,36: Tomato___Tomato_mosaic_virus,37: Tomato___healthy} 总结
综上我们基本了解了“一项全新的技术啦” ~~
恭喜你的内功又双叒叕得到了提高
感谢你们的阅读
后续还会继续更新欢迎持续关注哟~
如果有错误❌欢迎指正呀
✨如果觉得收获满满可以点点赞支持一下哟~✨
【传知科技 – 了解更多新知识】