头歌:图像识别案例在线实验闯关

您所在的位置:网站首页 基于easydl的垃圾分类识别 头歌:图像识别案例在线实验闯关

头歌:图像识别案例在线实验闯关

2023-06-11 07:58| 来源: 网络整理| 查看: 265

第5关:彩色图像识别模型 任务描述

本关任务1(水质图像识别,教材上的案例):在水养殖业中,水体生态系统中存在着各种浮游植物、动物与各类微生物,其动态平衡尤为重要。一般地,这些大多是通过有经验的专家肉眼观察来进行判断,存在一定的主观性和不易推广应用。本实验基于数字图像处理技术和机器学习、深度学习方法,以专家经验为基础对水色图像进行优劣分级,并以专家标注的水色图像作为模型的训练数据集,最终实现对水色图像的快速判别。 本案例将水色分为五类:第1类为浅绿色,采集了51张图片;第2类为灰蓝色,采集了44张图片;第3类为黄褐色,采集了78张图片;第4类为茶褐色,采集了24张图片;第5类为绿色,采集了6张图片。图片总数为203张,其中图片大小不统一。 对5种类型共203张图片,按照80%训练、20%测试进行随机划分,构建基于水色图像的水质识别模型。

本关任务2(纸币图像识别):现有1元、5元、10元、20元、50元、100元共6种面额的纸币彩色图像数据集(每种纸币按正、反面和两个不同的方向,分别采集10张图片,累计每个币种采集40张图片,6种币种合计240张图片),请计算每张图片R、G、B三个颜色通道的一阶、二阶、三阶颜色矩阵,共9个特征指标数据,记为自变量X,同时构造纸币面额标签数据集,记为因变量Y。利用所得的自变量X和因变量Y,数据集按照80%训练、20%测试进行随机划分,构建纸币面额识别模型。

编程要求

根据提示,在右侧编辑器补充代码,完成建模、代码编写和分析。

''' 任务1: 1)背景介绍 在水养殖业中,水体生态系统中存在着各种浮游植物、动物与各类微生物,其动态平衡尤为重要。 一般地,这些大多是通过有经验的专家肉眼观察来进行判断,存在一定的主观性和不易推广应用。 本任务基于数字图像处理技术和机器学习、深度学习方法,以专家经验为基础对水色图像进行优劣分级, 并以专家标注的水色图像作为模型的训练数据集,最终实现对水色图像的快速判别。 2)任务描述 本案例将水色分为五类:第1类为浅绿色,采集了51张图片;第2类为灰蓝色,采集了44张图片;第3类为黄褐色,采集了78张图片; 第4类为茶褐色,采集了24张图片;第5类为绿色,采集了6张图片。图片总数为203张,其中图片大小不统一。 对5种类型共203张图片,按照80%训练、20%测试进行随机划分,构建基于水色图像的水质分类识别模型 返回模型的准确率rv和测试集的预测准确率rs。 ''' ''' 任务2: 现有1元、5元、10元、20元、50元、100元共6种面额的纸币彩色图像,储存在"图片"文件夹内,相关信息及要求如下: 1)每种纸币均从正、反两面及两个不同的方向,进行采集图像各10张,即每种纸币采集40张,6种货币,则总图片有240张。 2)图片的命名为:面额值_采集序号.png,比如1元纸币40张依次命名为:1_1.png~1_40.png,其他同理。 3)读取图片文件夹,计算每张图片的R、G、B三个颜色通道的一阶、二阶、三阶颜色矩特征,共9个特征指标数据,记为自变量X, 4)同时构造纸币面额标签数据集,记为因变量Y。 5)按80%训练和20%测试进行随机划分数据集,构建支持向量机分类模型, 6)返回模型的准确率rv和测试集的预测准确率rs。 ''' from PIL import Image import numpy as np import os def return_values(): path='图片2/' #任务1的图片文件夹 fname=os.listdir(path) X=np.zeros((len(fname),9)) #预定义自变量,即9个颜色矩阵特征指标 Y=np.zeros(len(fname)) #预定义因变量 for i in range(len(fname)): img=Image.open(path+fname[i]) #读取第i张图片 im=img.split() R=np.array(im[0])/255 #R通道 row_1=int(R.shape[0]/2)-50 row_2=int(R.shape[0]/2)+50 con_1=int(R.shape[1]/2)-50 con_2=int(R.shape[1]/2)+50 R=R[row_1:row_2,con_1:con_2] G=np.array(im[1])/255 #G通道 G=G[row_1:row_2,con_1:con_2] B=np.array(im[2])/255 #B通道 B=B[row_1:row_2,con_1:con_2] #构造X png_name=fname[i] X[i]=png_name.split("_")[0] #构造Y png_name=fname[i] Y[i]=png_name.split("_")[0] #建模及计算 from sklearn.model_selection import train_test_split x_train,x_test,y_train,y_test=train_test_split(X,Y,test_size=0.2,random_state=4) import sklearn.svm as svm from sklearn.svm import SVC clf = svm.SVC(kernel='linear') clf.fit(x_train,y_train) rv=clf.score(x_train, y_train); y1=clf.predict(x_test) r=y1-y_test rs=len(r[r==0])/len(y1) return (rv,rs)

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3