首页 > 编程知识 正文

花卉识别软件哪个最好,花卉识别扫一扫在线

时间:2023-05-04 11:41:37 阅读:279366 作者:1186

代码:

#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2020/3/7 15:40# @Author : Shark# @Site : # @File : flower_image_test.py# @Software: PyCharmfrom __future__ import absolute_import, division, print_function, unicode_literalsimport warningswarnings.filterwarnings("ignore")# 导入模块import globimport osimport cv2import tensorflow as tfimport numpy as npimport matplotlib.pyplot as pltfrom sklearn.model_selection import train_test_splitfrom tensorflow.python.keras import layers,optimizers,Sequentialimport h5py# from tensorflow.compat.v1 import ConfigProto# from tensorflow.compat.v1 import InteractiveSession## config = ConfigProto()# config.gpu_options.allow_growth = True# session = InteractiveSession(config=config)### os.environ['CUDA_VISIBLE_DEVICES'] = '/gpu:0'path='D:/software/huawei/flower_photos/'w=100h=100c=3def read_image(): cate=[] for x in os.listdir(path): if(os.path.isdir(path+x)): # print(path+x) cate.append(path+x) print(cate) imgs=[] labels=[] for idx,folder in enumerate(cate): # print("idx:"+str(idx)+" folder: "+folder) for im in glob.glob(folder+"/*.jpg"): # print("image path: "+im) img=cv2.imread(im) img=cv2.resize(img,(w,h)) # print(img) imgs.append(img) labels.append(idx) return np.asarray(imgs,np.float32),np.asarray(labels,np.int32)data,labels=read_image()print("data 的维度:",data.shape)print("label 的维度:",labels.shape)seed=785np.random.seed(seed)(x_train,x_val,y_train,y_val)=train_test_split(data,labels,test_size=0.20,random_state=seed)x_train=x_train/255x_val=x_val/255# print(x_train[0])# dasiy : 雏菊 dandelion: 蒲公英 roses: 玫瑰花 sunflower: 向日葵 tuplis: 郁金香flower_dict={0:'dasiy',1:'dandelion',2:'roses',3:'sunflower',4:'tuplis'}model=Sequential([ layers.Conv2D(32,kernel_size=[5,5],padding="same",activation=tf.nn.relu), layers.MaxPool2D(pool_size=[2,2],strides=2,padding="same"), layers.Dropout(0.25), layers.Conv2D(64, kernel_size=[3, 3], padding="same", activation=tf.nn.relu), layers.Conv2D(64, kernel_size=[3, 3], padding="same", activation=tf.nn.relu), layers.MaxPool2D(pool_size=[2, 2], strides=2, padding="same"), layers.Dropout(0.25), layers.Conv2D(128,kernel_size=[3,3],padding="same",activation=tf.nn.relu), layers.MaxPool2D(pool_size=[2,2],strides=2,padding="same"), layers.Dropout(0.25), layers.Flatten(), layers.Dense(512,activation=tf.nn.relu), layers.Dense(256,activation=tf.nn.relu), layers.Dense(5,activation朴素的草丛,])op=optimizers.现代的火龙果(lr=0.0001)model.compile(optimizer=op,metrics=['accuracy'],loss='sparse_categorical_crossentropy')model.fit(x_train,y_train,batch_size=200,epochs=20,validation_data=(x_val,y_val),verbose=2)model.summary()# model.save('D:/software/huawei/model6.h5')# test_path="D:/software/huawei/test_photos/"test_path="D:/software/huawei/test_photos/"img2=[]image_name=[]for img in glob.glob(test_path+"/*.jpg"): print(img) image_name.append(img) img=cv2.imread(img) img=cv2.resize(img,(w,h)) img2.append(img)img2=np.asarray(img2,np.float32)print("测试集的大小:",img2.shape)predict=model.predict_classes(img2)for i in range(np.size(predict)): print(image_name[i]) print("第",(i+1),"张图片的预测结果: ",flower_dict[predict[i]]) img=plt.imread(image_name[i]) plt.imshow(img) plt.show()

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。