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

目录

[第四章 图像处理原理与应用](#第四章 图像处理原理与应用)

[3 基于MindSpore的图像处理实践-图像分类](#3 基于MindSpore的图像处理实践-图像分类)

[■ 图像的特性](#■ 图像的特性)

[▲ 局部感知](#▲ 局部感知)

[▲ 图像不变性](#▲ 图像不变性)

[■ 卷积神经网络各结构的功能](#■ 卷积神经网络各结构的功能)

[▲ CNN核心思想](#▲ CNN核心思想)

[■ 图像分类算法的评估指标](#■ 图像分类算法的评估指标)

[▲ 图像分类的评估指标](#▲ 图像分类的评估指标)

[▲ 图像分类评估举例](#▲ 图像分类评估举例)

[■ 基于 MindSpore 的迁移学习案例实践](#■ 基于 MindSpore 的迁移学习案例实践)

[▲ 网络越深,模型精度越大?](#▲ 网络越深,模型精度越大?)

[▲ 残差块](#▲ 残差块)

[▲ 残差块的两种形式](#▲ 残差块的两种形式)

[▲ ResNet50结构](#▲ ResNet50结构)

[▲ 迁移学习](#▲ 迁移学习)

[▲ 基于MindSpore的迁移学习案例实践](#▲ 基于MindSpore的迁移学习案例实践)

[4 基于MindSpore的图像处理实践-图像生成](#4 基于MindSpore的图像处理实践-图像生成)

[■ 生成对抗网络应用](#■ 生成对抗网络应用)

[▲ 生成图像数据集](#▲ 生成图像数据集)

[▲ 图像到图像的转换](#▲ 图像到图像的转换)

[▲ 文字到图像的转换](#▲ 文字到图像的转换)

[▲ 照片到Emojis](#▲ 照片到Emojis)

[▲ 照片编辑](#▲ 照片编辑)

[▲ 预测不同年龄的长相](#▲ 预测不同年龄的长相)

[▲ 提高照片分辨率](#▲ 提高照片分辨率)

[▲ 照片修复](#▲ 照片修复)

[■ 生成对抗网络变种](#■ 生成对抗网络变种)

[▲ 条件生成对抗网络简介](#▲ 条件生成对抗网络简介)

[▲ 条件生成对抗网络结构](#▲ 条件生成对抗网络结构)

[▲ 深度卷积生成对抗网络简介](#▲ 深度卷积生成对抗网络简介)

[▲ WGAN](#▲ WGAN)

[▲ Pix2Pix简介](#▲ Pix2Pix简介)

[▲ CycleGAN简介](#▲ CycleGAN简介)

[■ 基于 MindSpore 的对抗示例生成案例实践](#■ 基于 MindSpore 的对抗示例生成案例实践)

[▲ 实验介绍](#▲ 实验介绍)

[▲ 实验准备](#▲ 实验准备)

[▲ 定义网络与训练模型](#▲ 定义网络与训练模型)

[▲ 实现FGSM](#▲ 实现FGSM)

[■ 基于 MindSpore 的深度卷积对抗生成案例实践](#■ 基于 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 张经过人脸对齐和裁剪了的图像。因数据集较大,本实验为了节省下载和训练时间,所以采用了部分的数据集。

▲ 数据加载与可视化
▲ 定义网络与训练模型

第四章 测一测

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

相关推荐
星迹日1 小时前
数据结构:包装类和泛型
java·开发语言·数据结构·笔记·泛型·通配符·包装类
一只码代码的章鱼2 小时前
计算机网络 笔记 第一章
笔记·计算机网络
大丈夫立于天地间4 小时前
OSPF - 1类LSA(Router-LSA)
网络·网络协议·学习·信息与通信
Ven%4 小时前
如何让后台运行llamafactory-cli webui 即使关掉了ssh远程连接 也在运行
运维·人工智能·chrome·python·ssh·aigc
Jeo_dmy4 小时前
(七)人工智能进阶之人脸识别:从刷脸支付到智能安防的奥秘,小白都可以入手的MTCNN+Arcface网络
人工智能·计算机视觉·人脸识别·猪脸识别
睡觉狂魔er6 小时前
自动驾驶控制与规划——Project 5: Lattice Planner
人工智能·机器学习·自动驾驶
xm一点不soso6 小时前
ROS2+OpenCV综合应用--11. AprilTag标签码跟随
人工智能·opencv·计算机视觉
云卓SKYDROID7 小时前
无人机+Ai应用场景!
人工智能·无人机·科普·高科技·云卓科技
是十一月末7 小时前
机器学习之过采样和下采样调整不均衡样本的逻辑回归模型
人工智能·python·算法·机器学习·逻辑回归
小禾家的7 小时前
.NET AI 开发人员库 --AI Dev Gallery简单示例--问答机器人
人工智能·c#·.net