数据科学技术与应用7图像数据处理课件.pptx

上传人(卖家):三亚风情 文档编号:3325458 上传时间:2022-08-20 格式:PPTX 页数:31 大小:1.67MB
下载 相关 举报
数据科学技术与应用7图像数据处理课件.pptx_第1页
第1页 / 共31页
数据科学技术与应用7图像数据处理课件.pptx_第2页
第2页 / 共31页
数据科学技术与应用7图像数据处理课件.pptx_第3页
第3页 / 共31页
数据科学技术与应用7图像数据处理课件.pptx_第4页
第4页 / 共31页
数据科学技术与应用7图像数据处理课件.pptx_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、图像数据处理图像数据处理 图像是人类获取信息、表达信息和传递信息的重要手段 早期:使用计算机绘制图像,建立三维模型 人工智能技术发展,计算机开始试图自动识别图像的内容 手写数字识别 车牌识别 人脸识别 数字图像 将图像进行数字化 使用给定大小的网格将连续图像离散化,每个小方格(像素)被记录为一种颜色 颜色矩阵表示数字图像 像素(Pixel)数字图像的最小单位 每个像素具有横和纵位置坐标,以及颜色值(a)灰度图像(b)图像局部(168)像素图 图像局部(168)的像素矩阵 像素也被用来表示整幅图像的网格数,如640480同样大小的图像,像素越大越清晰数字图像类型(1)二值图像 像素矩阵由0、1两

2、个值构成,“0”代表黑色,“1”代白色,用1位二进制表示 通常用于文字、线条图的扫描识别(OCR)和掩膜图像的存储灰度图像 灰度图像矩阵元素的取值范围通常为0,255“0”表示纯黑色,“255”表示纯白色,中间的数字从小到大表示由黑到白的过渡色 用8位二进制表示 二值图像可以看成是灰度图像的特例数字图像类型(2)RGB彩色图像 每个像素的颜色表示为:红(R)、绿(G)和蓝(B)三原色组合 图像用3个MN的二维矩阵 每个矩阵分别存放一个颜色分量,取值范围在0,255,表示该原色在该像素的深浅程度 每个像素的颜色使用38bit表示,也被称为24位图。图像压缩 直接存储数字图像的二维矩阵存储非常大,

3、通常将原始数据压缩后进行存储 常用格式 BMP、JPEG、TIF、GIF、PNG等数字图像处理(1)图像变换(Geometrical Image Processing)几何变换坐标变换,图像的放大、缩小、旋转、移动,多个图像配准,全景畸变校正,扭曲校正,周长、面积、体积计算等 空间变换傅里叶变换、离散余弦变换,小波缓缓将图像从时域变换到频域图像增强和复原(Image Enhancement&Restoration)目的:提高图像的质量 方法:去除噪声,提高图像的清晰度数字图像处理(2)图像重建(Image Reconstruction)通过物体外部测量的数据经数字化处理获得物体的三维形状信息

4、投影重建、明暗恢复形状、立体视觉重建和激光测距重建图像编码(Image Encoding)利用图像的统计特性、人类视觉生理学及心理学特性对图像数据进行编码 以较少的比特数表示图像或图像中所包含的信息常见有JPEG、TIFF等压缩格式数字图像处理(3)图像识别(Image Recognition)利用计算机对图像进行处理、分析和理解,识别各种不同模式的目标和对象空间变换 广泛地应用于导航、地图与地形配准、自然资源分析、天气预报、环境监测、生理病变研究等领域。7.2 Python图像处理 Python图像处理库 常用:PIL、Pillow、OpenCV以及Scikit-image等表7-1 Sci

5、kit-image的常用模块子模块名称子模块名称主要实现功能主要实现功能io读取、保存和显示图片或视频data图片和样本数据color颜色空间变换filters图像增强、边缘检测、排序滤波器、自动阈值等transform几何变换或其它变换,如旋转、拉伸和拉东变换等feature特征检测与提取等measure图像属性的测量,如相似性或等高线等segmentation图像分割restoration图像恢复util通用函数图像基本操作(1)图像读取和显示 用ndarray的多维数组表示图像 Scikit-image库的io库 图片输入输出 robot=io.imread(data/Robot.jpg

6、)robot.shape#图像像素和颜色字节数(372,400,3)type(robot)#数据类型 io.imshow(robot)io.show()图像基本操作(2)图像的坐标和颜色 使用(row,col)表示图像每个像素的坐标 起点(0,0)位于图像的左上角 给出一个坐标位置,即可获得图像中该像素的颜色。robot91,221#取指定坐标像素的颜色array(65 61 62,dtype=uint8)RGB彩色图像 每个像素的颜色用一个(R,G,B)三元组表示 可以只提取某个通道(分别用0、1、2表示)的颜色值。robot91,221,0#取指定坐标像素的R值65 图像基本操作(3)数组

7、的切片操作 可以访问图像中某一部分的颜色 robot77:80,221:231,0#取一部分图像的R值array(37 90 79 61 41 42 129 75 75 72 32 38 85 63 52 41 78 113 65 71 38 33 69 78 60 44 53 116 68 63,dtype=uint8)图像裁剪 提取数组的部分数据显示和保存 head=robot40:165,180:305#给出图像局部 head的坐标范围 io.imshow(head)io.show()io.imsave(data/RobotHead.jpg,head)#将图像数据保存为文件7.3 案例:

8、深度学习实现图像分类 图像特征提取 基于色彩特征 基于纹理 基于形状 基于空间关系等 深度学习算法 传统前馈神经网络 参数多 计算量大 CNN7.3 案例:深度学习实现图像分类 前馈神经网络 全连接 图像数据非常大 10001000像素的灰度图像 输入层有10001000=100万个节点 第一个隐层有1000个节点 有100010001000=1亿个权重参数需要学习卷积神经网络(CNN)图像每个像素与周围像素关联紧密,与离得远的像素之间关联很小 CNN网络引入特定隐藏层,减少网络参数 卷积层(Conventional Layer)由若干卷积单元组成 每个卷积单元仅仅连接输入单元的一部分 一组连

9、接可以共享同一个权重 池化层(Pooling layer)将卷积后的特征切成几个区域,取其最大值或平均值 得到新的、维度较小的特征,从而减少隐层结点数。通过全连接层把所有局部特征结合变成全局特征,输出识别或分类结果。卷积神经网络(CNN)无需对图像进行复杂的前期预处理 自动筛选出有利于分类的局部特征深度学习库Keras 用Python开发的多层神经网络API 能方便地集成其他开源深度学习库 Tensorflow CNTK后端等 在Anaconda集成环境中安装Keras,同时需要安装后端如Tensor low等 采用“模型”构建神经网络 pip install keras pip instal

10、l tensorflow 序贯(Sequential)模型 简单的线性模型 由多个神经网络层按输入输出顺序线性堆叠而成 只具有一个输出 函数式(Functional)模型在序贯模型基础上,允许用户定义多输出、非循环有向或具有共享层的结构序贯模型构建的神经网络 Dense层:全连接层,结点与下一层结点完全连接 Activation层:激活层,对上一层的输出施加激活函数。常用的激活函数有softmax、relu、tanh、sigmoid等 Dropout层:中断层 在训练过程中,每次更新参数时按照一定概率,随机断开指定百分比(p)的输入神经元连接,用于防止过拟合。使用Keras搭建神经网络 先定义

11、神经网络的结构,编译后方可用于模型学习、性能分析和预测。pile(loss,optimizer,metrics,)参数说明:loss损失函数,神经网络输出值与真实值之间的误差度量方法,mean_squared_error,hinge,categorical_crossentropy等optimizer优化器,神经网络的参数学习算法,有SGD,RMSprop,Adagrad,Adam等metrics列表,给出所需的性能评估指标,accuracy,例7-1:构建神经网络,为鸢尾花数据集训练分类器模型 鸢尾花数据集每个数据包含4个数据特征项,属于3种类型。神经网络输入层维度为4,输出层维度为3 中间

12、构建两个16结点隐层 隐层采用的激活函数为relu 堆叠神经网络层构建神经网络模型,编译from keras.models import Sequentialfrom keras.layers import Dense,Activation#定义模型结构model=Sequential()model.add(Dense(units=16,input_dim=4)model.add(Activation(relu)model.add(Dense(16)model.add(Activation(relu)model.add(Dense(3)model.add(Activation(softmax)

13、#定义损失函数和优化器,并编译pile(loss=categorical_crossentropy,optimizer=adam,metrics=accuracy)用第5章例5-7预处理后的数据向量生成训练集和测试集#预处理代码见例5-7,此处省略train_x,test_x,train_y,test_y=train_test_split(X,y,train_size=0.8,test_size=0.2,random_state=0)#keras多分类问题需要将类型转化为二元类矩阵from keras.utils import np_utilstrain_y_ohe=np_utils.to_c

14、ategorical(train_y,3)test_y_ohe=np_utils.to_categorical(test_y,3)用训练集训练模型,用测试集评估模型性能 将预测样本输入分类器,输出显示构建的分类器在鸢尾花测试集的30个样本上都预测正确。model.fit(train_x,train_y_ohe,epochs=50,batch_size=1,verbose=2,validation_data=(test_x,test_y_ohe)#评估模型loss,accuracy=model.evaluate(test_x,test_y_ohe,verbose=2)print(loss=,ac

15、curacy=.format(loss,accuracy)classes=model.predict(test_x,batch_size=1,verbose=2)print(测试样本数:,len(classes)print(分类概率:n,classes)用Keras实现图像分类 图像数据集CIFAR-10 包括6万张3232的 RGB 彩色图像图片 被分成10类 5万张图片用于训练,1万张图片用于测试。图像分类的实现 构建CNN网络 基础的神经网络层 卷积层Conv1D、Conv2D Conv2D(filters,kernel_size,strides=(1,1),padding=valid,

16、)池化层 MaxPooling2D、AveragePooling2D MaxPooling2D(pool_size=(2,2),)Flattern层例7-2:构建CNN深度神经网络,基于CIFAR-10训练图像分类器1)读取CIFAR-10数据集 Keras自带,可通过load_data()函数获得from keras.datasets import cifar10(x_train,y_train),(x_test,y_test)=cifar10.load_data()2)对数据进行预处理 将图像的像素值归一化为0,1之间 多分类问题,需要将类标签向量转换为二元类矩阵num_classes=1

17、0#分类个数x_train=x_train.astype(float32)x_test=x_test.astype(float32)x_train/=255x_test/=255y_train=np_utils.to_categorical(y_train,num_classes)y_test=np_utils.to_categorical(y_test,num_classes)3)构建CNN模型from keras.layers import Dense,Dropout,Activation,Flattenfrom keras.layers import Conv2D,MaxPooling2

18、Dmodel=Sequential()model.add(Conv2D(32,(3,3),padding=same,input_shape=x_train.shape1:)model.add(Activation(relu)model.add(Conv2D(32,(3,3)model.add(Activation(relu)model.add(MaxPooling2D(pool_size=(2,2)model.add(Dropout(0.25)model.add(Conv2D(64,(3,3),padding=same)model.add(Activation(relu)model.add(C

19、onv2D(64,(3,3)model.add(Activation(relu)model.add(MaxPooling2D(pool_size=(2,2)model.add(Dropout(0.25)model.add(Flatten()model.add(Dense(512)model.add(Activation(relu)model.add(Dropout(0.5)model.add(Dense(num_classes)model.add(Activation(softmax)4)对构建好的CNN模型进行编译 因为是多分类问题,所以选择损失函数“categorical_crossent

20、ropy”,同时优化器选择“rmsprop”#初始化RMSprop优化器opt=keras.optimizers.rmsprop(lr=0.0001,decay=1e-6)#模型编译pile(loss=categorical_crossentropy,optimizer=opt,metrics=accuracy)5)训练 CNN模型batch_size=32 epochs=100#参数学习算法的迭代次数model.fit(x_train,y_train,batch_size=batch_size,epochs=epochs,validation_data=(x_test,y_test),shu

21、ffle=True)6)对 CNN模型进行性能评估scores=model.evaluate(x_test,y_test,verbose=1)print(Test loss:,scores0)print(Test accuracy:,scores1)使用预训练模型进行图像分类 模型训练是一项非常耗时 Keras也包含了很多目前非常优秀的预训练模型 如Xception、VGG16、VGG19等 模型在ImageNet图像数据集(http:/www.image-net.org/)上训练获得的 使用Keras的ResNet50图像分类模型预测大象图片分类使用预训练模型进行图像分类 输出预测结果,按照

22、概率排序前3的类型为:Indian_elephant(印度象)、tusker(有长牙的动物)和African_elephant(非洲象)。from keras.applications.resnet50 import ResNet50from keras.applications.resnet50 import preprocess_inputfrom keras.applications.resnet50 import decode_predictionsfrom keras.preprocessing import imageimport numpy as np#导入预训练模型ResNet

23、50model=ResNet50(weights=imagenet)#对输入图片进行处理img_path=data/elephant.jpgimg=image.load_img(img_path,target_size=(224,224)X=image.img_to_array(img)#将图像转换为数组X=np.expand_dims(X,axis=0)X=preprocess_input(x)#模型预测preds=model.predict(X)print(Predicted:,decode_predictions(preds,top=3)0)思考与练习1.设计不同的CNN模型训练CIFAR-10图像集,比较不同模型下图像分类的效果。2.选择不同的优化器和损失函数,比较图像分类的效果。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(数据科学技术与应用7图像数据处理课件.pptx)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|