python开发构建基于机器学习模型的番茄病虫害识别系统

在我之前的文章中已经做过基于CNN的农作物病虫害识别系统,农作物的病虫害识别相比都不是什么新鲜的事情,以往这个问题绝大多数的方法都是基于CNN开发的深度学习的模型,后面又基于LSTM系列的模型也有开发过,但是基本上都是基于深度学习模型实现的识别,那么不禁就在想:如果纯粹基于基础的机器学习模型是否能够实现高效的识别呢?理论上来讲,只要特征提取的好,简单的机器学习模型应该也有不错的识别效果的,而且机器学习模型的推理速度有优势,如果精度ok,本身就是一个不错的选择。

话不多说,首先看下效果图:

完整项目截图如下所示:

数据集如下:

简单看下数据。

【Early_Blight_Fungus】

【Healthy】

【Septoria_Leaf_Spot_Fungus】

【YLCV_Virus】

整体建模流程如下所示:

这里是基于SVM实现的识别模型,核心实现如下:

#随机划分
X_train, X_test, y_train, y_test = splitData(x_list, y_list, ratio=0.3)
#模型初始化
model = LinearSVC()
#训练拟合
model.fit(X_train, y_train)
#预测
y_predict = model.predict(X_test)
y_pred = y_predict.tolist()
#计算准确率
accuracy = model.score(X_test, y_test)
print("SVM model accuracy: ", accuracy)
Precision,Recall,F1=calThree(y_test,y_pred)
saveModel(model,save_path=model_path)
result={}
result['accuracy'],result['F_value']=accuracy,F1
result['precision'],result['recall']=Precision,Recall
print('type: ', type(y_test), type(y_pred))
result['y_true'],result['y_pred']=y_test,y_pred
plotConfusionMatrix(y_test, y_pred, save_path = saveDir + 'ConfusionMatrix.png')

结果输出如下所示:

这里绘制了混淆矩阵,如下所示:

为了直观简洁实用,这里开发了专用的可视化界面,如下:

猜你喜欢

转载自blog.csdn.net/Together_CZ/article/details/129757837