【HUAWEI】HCIP-AI-MindSpore Developer V1.0 | 第四章 图像处理原理与应用(3 AND 4 )

server/2025/1/15 2:33:38/

目录

第四章 图像处理原理与应用

3 基于MindSpore的图像处理实践-图像分类

■ 图像的特性

▲ 局部感知

▲ 图像不变性

■ 卷积神经网络各结构的功能

▲ CNN核心思想

■ 图像分类算法的评估指标

▲ 图像分类的评估指标

▲ 图像分类评估举例

■ 基于 MindSpore 的迁移学习案例实践

▲ 网络越深,模型精度越大?

▲ 残差块

▲ 残差块的两种形式

▲ ResNet50结构

▲ 迁移学习

▲ 基于MindSpore的迁移学习案例实践

4  基于MindSpore的图像处理实践-图像生成

■ 生成对抗网络应用

▲ 生成图像数据集

▲ 图像到图像的转换

▲ 文字到图像的转换

▲ 照片到Emojis

▲ 照片编辑

▲ 预测不同年龄的长相

▲ 提高照片分辨率

▲ 照片修复

■ 生成对抗网络变种

▲ 条件生成对抗网络简介

▲ 条件生成对抗网络结构

▲ 深度卷积生成对抗网络简介

▲ WGAN

▲ Pix2Pix简介

▲ CycleGAN简介

■ 基于 MindSpore 的对抗示例生成案例实践

▲ 实验介绍

▲ 实验准备

▲ 定义网络与训练模型

▲ 实现FGSM

■ 基于 MindSpore 的深度卷积对抗生成案例实践

▲ 实验介绍

▲ 实验准备

▲ 数据加载与可视化

▲ 定义网络与训练模型

第四章 测一测



第四章 图像处理原理与应用

3 基于MindSpore的图像处理实践-图像分类

■ 图像的特性

▲ 局部感知

人对外界的认知是从局部到全局的,而图像的空间联系也是局部的像素联系较为紧密,而距离较远的像素相关性则较弱。

▲ 图像不变性

同一图像在不同位置、不同角度的旋转、不同大小、不同光照等条件下,都会被识别为同一物体,这一特点就是不变性。

■ 卷积神经网络各结构的功能

卷积神经网络各结构的作用:

 卷积层:卷积层通过不同的特征核提取图像的局部特征信息。

 池化层:降维。

 全连接层:将最后得到的特征图平摊成一个长的列向量映射到线性可分的空间,经过全连接层的计算得到最终输出层。起到“分类器”的作用。

▲ CNN核心思想

局部感知:一般认为人对外界的认知是从局部到全局的,图像像素点的空间联系也是局部的像素联系较为紧密,而距离较远的像素相关性则较弱。

参数共享优点:

解决图像位置不变性的问题。

减少计算和内存需求。

实现:

用参数相同的 Kernel 去扫描整副图像。

■ 图像分类算法的评估指标

▲ 图像分类的评估指标

▲ 图像分类评估举例

■ 基于 MindSpore 的迁移学习案例实践

▲ 网络越深,模型精度越大?

在深度学习中,网络层数增多一般会伴着下面几个问题:

 计算资源的消耗(可以通过 GPU 集群解决)。

 模型容易过拟合(可以通过增大数据集、 Dropout 等正则化方法避免)。

 梯度消失、梯度爆炸问题的产生(可以通过初始化、批标准化等方法避免)。

从上述可以看出,理论上说,网络层数越多,那么模型效果越好。实际上,网络发生了退化( Degradation ),该如何解决?

▲ 残差块

解决方法:让若干层映射为一个层,这样深层网络就会等同于浅层网络,从而避免退化问题。

深度残差网络( Residual Network , ResNet )的核心思想就是引入一个恒等快捷连接( Identity Shortcut Connection ),直接跳过一个或多个层使训练数百甚至数千层成为可能,且在这种情况下仍能展现出优越的性能。

Shortcut的两种形式

▲ 残差块的两种形式

Identity Block :输入和输出的维度是一样的,所以可以串联多个。

Conv Block :输入和输出的维度是不一样的,它的作用是为了改变特征向量的维度。

▲ ResNet50结构

▲ 迁移学习

迁移学习 (Transfer Learning) :把已训练好的模型(预训练模型)参数迁移到新的模型来帮助新模型训练。

迁移学习的作用

一个成功的迁移学习应用,有如下三个作用:

 更高的起点。在微调之前,源模型的初始性能要比不使用迁移学习来的高。

 更高的斜率。在训练的过程中源模型提升的速率要比不使用迁移学习来得快。

 更高的渐进。训练得到的模型的收敛性能要比不使用迁移学习更好。

▲ 基于MindSpore的迁移学习案例实践

 实验介绍

实验简介:以狗和狼的图像分类为例,讲解如何在 MindSpore 中加载预训练模型,并通过固定权重来实现迁移学习

实验目的:理解迁移学习的相关概念;基于 MindSpore 进行迁移学习图像分类实践。

实验环境:华为云 ModelArts 、 MindSpore 1.3 。

 实验准备

导入实验所需模块与库。

环境设置: Ascend 。

预训练模型准备: resnet50.ckpt 。

数据集准备:数据集中的图像来自于 ImageNet ,每个分类有大约 120 张训练图像与 30 张验证图像。将下载后的数据集解压到当前目录,结构如下:

 数据加载与可视化

 定义网络与训练模型

4  基于MindSpore的图像处理实践-图像生成

■ 生成对抗网络应用

▲ 生成图像数据集

人工智能的训练是需要大量的数据集的,如果全部靠人工收集和标注,成本是很高的。GAN 可以自动的生成一些数据集,提供低成本的训练数据。

GAN 不但能生成人脸,还能生成其他类型的照片,甚至是漫画人物。

▲ 图像到图像的转换

把一种形式的图像转换成另外一种形式的图像,就好像加滤镜。例如:把草稿转换成照片;把卫星照片转换为 Google 地图的图片;把照片转换成油画;把白天转换成黑夜。

▲ 文字到图像的转换

在 2016 年标题为“ StackGAN :使用 StackGAN 的文本到逼真照片的图像合成”的论文中,演示了使用 GAN ,特别是他们的 StackGAN ,从鸟类和花卉等简单对象的文本描述中生成逼真的照片。

▲ 照片到Emojis

GANs 可以通过脸部照片自动生成对应的表情( Emojis )。

▲ 照片编辑

使用 GAN 可以生成特定的照片,例如更换头发颜色、更改面部表情、甚至是改变性别。

▲ 预测不同年龄的长相

给一张脸部照片, GAN 就可以帮你预测不同年龄阶段你会长成什么样。

▲ 提高照片分辨率

给 GAN 一张照片,就能生成一张分辨率更高的照片,使得这个照片更加清晰。

▲ 照片修复

假如照片中有一个区域出现了问题(例如被涂上颜色或者被抹去), GAN 可以修复这个区域,还原成原始的状态。

■ 生成对抗网络变种

▲ 条件生成对抗网络简介

条件生成对抗网络( Conditional Generative Adversarial Network )也被称为 CGAN ,最初由 Mehdi Mirza等人于 2014 年提出。相比原始的 GAN ,CGAN 最大的特点是可以通过输入文字或图像,来控制生成的图像。但是要做到这一点,是需要通过监督式学习来完成的,即需要带标签的数据集进行训练。例如最早提出的CGAN 通过输入数字 0 到 9 (条件)来生成对应的手写数字图像。

▲ 条件生成对抗网络结构

在 CGAN 中,判别器的输入不仅需要数据集中的图像,还需要该图像的标签( Label )。对于生成器来说,输入的不仅仅只是噪声,还有想要生成图像的标签,再将生成的图像和设置的标签放入判别器中。而判别器会输出判断的结果。

▲ 深度卷积生成对抗网络简介

深度卷积生成对抗网络( Deep Convolutional Generative Adversarial Network , DCGAN ),可以简称为 DCGAN 。它是由 Alec Radford 等人于 2016 年提出的生成模型。它改进了原始生成对抗网络的结构,用卷积层取代了多层感知器结构,使模型能够生成更高质量的图像。

生成模型结构

判别模型的输入为图像,输出为一个标量,可以使用卷积神经网络中的卷积和下采样进行分类。那生成模型的输入为低维噪声,输出为高维图像,需要用到转置卷积(反卷积)或上采样来“放大”图像。

▲ WGAN

Wasserstein GAN ( Wasserstein Generative Adversarial Networks , WGANs ) 引 入 了Wasserstein 距离重新定义 GAN 模型的相似度衡量指标。 Wasserstein 距离又称为 Earth-Mover( EM )距离,用于衡量两个分布之间的距离。

▲ Pix2Pix简介

Pix2Pix 和 CGAN 一 样 都 是 进 行 监 督 式 学 习 , 和 CGAN 的 思 想 也 很 类 似 , 但 是Pix2Pix 的标签和数据都是图像,它可以做到图像翻译。基于 Pix2Pix 的条件生成对抗网络就可以做到这件事。 Pix2Pix 可以做很多事,例如白天转黑夜,轮廓转图像,图像上色等。

Pix2Pix存在的问题

Pix2Pix 是非常经典的模型,但是同样,它也主要存在着以下问题:

 只能生成 256x256 的图像,生成分辨率更高的图像时效果比较差。

 当同一类物体在图像中重叠时,无法生成高质量的图像。

 由于生成器会过滤掉加入标签的噪声,因此无法生成非常多样的图像。

▲ CycleGAN简介

CycleGAN 是由朱俊彦等人于 2017 年提出,是近年来最有趣的 GAN 之一。CycleGAN 的主要作用是做风格迁移( Style transfer ),它可以实现将风景照转化成梵高等名人的画风,不过这件事通过神经风格迁移( Neural style transfer )技术也能完成。但 CycleGAN 还可以实现将图像中的马和斑马进行互相转化,或者将图像中的橘子和苹果进行相互转化,同时保留原图像中其他的大部分信息。

 CycleGAN VS Pix2Pix

Pix2Pix 也可以做到图像翻译,且能做到标签图像和生成图像有很大的差异,那么CycleGAN 的优势在哪呢?

CycleGAN 不需要成对的图像数据集进行训练的模型。我们知道在训练Pix2Pix 模型时,语义图作为标签图,需要和真实图像是配对的。但我们希望将拍摄的图像,例如西湖的照片转化为梵高的风格时,由于梵高没有画过西湖,所以我们不可能用 Pix2Pix 来做这件事,而 CycleGAN 就可以做到这件事。

 CycleGAN结构

 内容相似性问题

当生成图像和原图像相差过大时, CycleGAN 提出还需要加一个恒等损失( Identity loss ),生成器 F 不仅需要将 Y 类图像转化成 X 类图像,还需要尽可能保证输入 X 类的图像时,要输出一样的图像。同样的,生成器 G不仅需要将 X 类图像转化成 Y 类图像,还需要尽可能保证输入 Y 类的图像时,要输出一样的图像。两个 L1 损失相加即为恒等损失。

■ 基于 MindSpore 的对抗示例生成案例实践

▲ 实验介绍

实验简介:以梯度符号攻击 FGSM ( Fast Gradient Sign Method )为例,演示此类攻击是如何误导模型的。

实验目的:理解梯度符号攻击 FGSM 的基本原理;理解如何使用 MindSpore 进行梯度符号攻击。

实验环境:华为云 ModelArts 、 MindSpore 1.3 。

▲ 实验准备

导入实验所需模块与库。

环境设置: Ascend 。

数据集准备: MNIST 数据集是美国国家标准与技术研究院收集整理的大型手写数字数据库,包含 60000 个示例的训练集以及 10000 个示例的测试集。

▲ 定义网络与训练模型

▲ 实现FGSM

在得到精准的 LeNet 网络之后,将采用 FSGM 攻击方法,在图像中加载噪声后重新进行测试。

■ 基于 MindSpore 的深度卷积对抗生成案例实践

▲ 实验介绍

实验简介:通过真实名人的照片来训练一个生成对抗网络( GAN ),进而产生虚假名人图片。

实验目的: 熟悉 GAN 的基本原理与功能。基于 MindSpore 实现 GAN 案例实践。

实验环境:华为云 ModelArts 、 MindSpore 1.3 。

▲ 实验准备

导入模块

环境设置: Ascend 。

预训练模型准备: resnet50.ckpt 。

数据集 准 备 : Celeb-A Faces 数 据 集 为 人 脸 属 性 数 据 集 , 其包 含

10177 个 名 人 身 份 的 202599 张 人 脸 图 片 。 本 实 验 选 择Align&Cropped Images 下的 img_align_celeba.zip ,是 202599 张经过人脸对齐和裁剪了的图像。因数据集较大,本实验为了节省下载和训练时间,所以采用了部分的数据集。

▲ 数据加载与可视化

▲ 定义网络与训练模型

第四章 测一测

 

说明:本文内容来源于网络,仅作为学习用途,如有侵权,请联系作者删除。


http://www.ppmy.cn/server/158443.html

相关文章

E10.【C语言】练习:编写一个猜数字游戏

目录 1.规则 2.准备 3.游戏代码 1.规则 1.程序生成1-100间的随机数 2.用户猜数字 猜对了:游戏结束 猜错了:程序会告知猜大了或猜小了,继续进行游戏,直到猜对 3.游戏可以一直玩除非退出游戏 2.准备 1.框架:循…

基于Springboot美食推荐商城系统【附源码】

基于Springboot美食推荐商城系统 效果如下: 系统登录页面 系统首页页面 公告信息页面 在线留言页面 美食页面 购物车页面 美食订单管理页面 会员等级类型管理页面 研究背景 随着信息技术的不断发展和互联网的普及,电子商务在美食销售领域中的应用越来…

《机器学习》之K-means聚类

目录 一、简介 二、K-means聚类实现步骤 1、初始化数据点、确定K值 2、通过距离分配数据点 3、更新簇中心 4、 迭代更新 三、聚类效果评价方式 1、轮廓系数的定义 2、整体轮廓系数 3、使用场景 4、优点 5、缺点 6、代码实现方法 四、K-means聚类代码实现 1、API接…

vue集成导出 txt文本文档 和 excel文档 的方法

1、导出txt文档方法 &#xff08;1&#xff09;在template中定义方法 <template> <li><el-button class"download" type"success" click"download">下载</el-button> </li> </template>&#xff08;2&…

Ubuntu 22.04 英伟达开发环境 CUDA 12.4 | cuDNN 9.0.0 | TensorRT 10.1 版本安装指南

NVIDIA 驱动安装 前置 笔者近期重整服务器&#xff0c;计划重新安装操作系统并配置新的开发环境。服务器的主要配置如下&#xff1a; Dell PowerEdge R730 Intel Xeon E5-2630v3 x2 64GB ECC DDR4 NVIDIA GeForce RTX 2080 Ti Rev. A Ubuntu 22.04.5 LTS x86_64 (No Desktop…

【Docker系列】容器内目录显示异常的解决之道

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

2025网络架构

一、园区网络概述。 园区网络典型层次和区域&#xff1a; 核心层&#xff1a;是园区网骨干&#xff0c;是园区数据交换的核心&#xff0c;联接园区网的各个组成部分&#xff0c;如数据中心、管理中心、园区出口等。汇聚层&#xff1a;处于园区网的中间层次&#xff0c;完成数据…

Addrange的用法

效果如下&#xff1a; 附代码&#xff1a; public static void List(){List<int> list new List<int> { 1,3,5};List<int> list2 new List<int> { 2, 4,6 };"\n原始list为&#xff1a;\n".Print();list.ForEach(x>x.Print());//var li…