第五、六周上课内容总结[神经网络与深度学习]

本文介绍了计算机视觉领域的几个关键任务:目标检测用于识别图像中的物体及其位置;语义分割关注像素级的区域分类;风格迁移通过神经网络实现图像样式变换;人脸识别涉及人脸验证与识别;FCN是全卷积网络在语义分割中的应用,实现像素级预测。
摘要由CSDN通过智能技术生成

一、目标检测的实现

1.目标检测的基本原理:

        很多时候图像里有多个我们感兴趣的目标,我们不仅想知道它们的类别 ,还想得到它们在图像中的具体位置。在计算机视觉里,我们将这类任务称为目标检测(object detection)或物体检测。 目标检测在多个领域中被广泛使用。例如,在无人驾驶里,我们需要通过识别拍摄到的视频图像里的车辆、行人、道路和障碍的位置来规划行进线路。机器人也常通过该任务来检测感兴趣的目标。安防领域则需要检测异常目标,如歹徒或者炸弹。

2.代码实现以及数据集测试

二、语义分割简介

1.语义分割的特点

        语义分割关注如何将图像分割成属于不同语义类别的区域。值得一提的是, 这些语义区域的标注和预测都是像素级的。下图展示了语义分割中图像有关狗、猫和背景的标签。可以看到,与目标检测相比,语义分割标注的像素级的边框显然更加精细。

         计算机视觉领域还有2个与语义分割相似的重要问题,即图像分割和实例分割。我们在这里将它们与语义分割简单区分一下。

• 图像分割将图像分割成若干组成区域。这类问题的方法通常利用图像中像素之间的相关性。它在训练时不需要有关图像像素的标签信息,在预测时也无法保证分割出的区域具有我们希望得到的语义。

• 实例分割又叫同时检测并分割。它研究如何识别图像中各个目标实例的像素级区域。与语义分割有所不同。

• 以图片中的两只狗为例,图像分割可能将狗分割成两个区域:一个覆盖以黑色为主的嘴巴和眼睛,而另一个覆盖以黄色为主的其余部分身体 。而实例分割不仅需要区分语义,还要区分不同的目标实例。如果图像中有两只狗,实例分割需要区分像素属于这两只狗中的哪一只。

三、风格迁移

1.简介

        如果你是一位摄影爱好者,也许接触过滤镜。它能改变照片的颜色样式,从而使风景照更加锐利或者令人像更加美白。但一个滤镜通常只能改变照片的 某个方面。如果要照片达到理想中的样式,经常需要尝试大量不同的组合, 其复杂程度不亚于模型调参。 在本节中,我们将介绍如何使用卷积神经网络自动将某图像中的样式应用在另一图像之上,即风格迁移。 这里我们需要两张输入图像,一张是内容图像,另一张是样式图像,我们将使用神经网络修改内容图像使其在样式上接近样式图像。

        为了方便理解,风格迁移需要完成的工作可以由下图所示:

2.方法介绍 

        首先,我们初始化合成图像,例如将其初始化成内容图像。该合成图像是样式迁移过程中唯一需要更新的变量,即样式迁移所需迭代的模型参数。然后,我们选择一个预训练的卷积神经网络来抽取图像的特征,其中的模型参数在训练中无须更新。深度卷积神经网络凭借多个层逐级抽取图像的特征。我们可以选择其中某些层的输出作为内容特征或样式特征。

        以之前放的图像为例,这里选取的预训练的神经网络含有3个卷积层, 其中第二层输出图像的内容特征,而第一层和第三层的输出被作为图像 的样式特征。 接下来,我们通过正向传播(实线箭头方向)计算样式迁移的损失函数 ,并通过反向传播(虚线箭头方向)迭代模型参数,即不断更新合成图像。

 样式迁移常用的损失函数由3部分组成:

(1)内容损失(content loss)使合成图像与内容图像在内容特征上接近;

(2)样式损失(style loss)令合成图像与样式图像在样式特征上接近;

(3)总变差损失(total variation loss)则有助于减少合成图像中的噪点。 最后,当模型训练结束时,我们输出样式迁移的模型参数,即得到最终的合成图像。

3.定义内容代价函数

 4.代码实现与测试

四、人脸识别

1.人脸验证与人脸识别的区别

(1)人脸验证(Face verification)

        是一对一的问题,任务量较少,只需要将扫描到的人脸与数据库中单一的特征信息进行比对即可。

(2)人脸识别(Face recognition) 

        是一对多的问题,伪代码流程如下:

        for i in 数据库中的所有照片:

                调用人脸验证检测输入与数据库中照片i上的是否为同一人

2.人脸验证

(1)旧有思路:转化为分类问题

 (2)Siamese网络:

构建神经网络

对输入图片进行编码:

 双输入结构:

相似度函数:

d(X_{1},X_{2})=\left \| f(X_{1})-f(X_{2} )\right \|_{2}^{2}

 训练神经网络

面部验证与二分类:

 训练目的:

通过训练神经网络,我们希望同一人的两张照片间的相似度函数 值尽可能小,不同人的两张片间的相似度函数值尽可能大,下以 此为目标制作训练集、定义Loss函数。

制作训练集:

运行神经网络

利用人脸验证实现人脸识别:

对于训练完毕的神经网络,输入照片,通过简单的for循环语句 遍历数据库中存储的所有照片,依次通过相似度函数进行计算, 记录遍历过程中相似程度最大的值,在遍历结束后与预先设定的 阈值进行比较,得出预测结果,完成人脸识别。

五、语义分割与FCN

1.语义分割要做什么

 语义分割:找到同一画面中的不同类型目标区域

 深度学习图像分割算法的发展:

 2015CVPR

  首个端对端的针对像素级预测的全卷积网络 

 在当年和其他方法相比,获得很大提升

2.语义分割基本思想

语义分割目标:对图中每一个像素进行分类,得到对应标签

 

FCN网络结构

网络结构分为两个部分:全卷积部分和反卷积部分。全卷积部分借用了一些经典的CNN网络,并把最后的全连接层换成卷积,用于提取特征,形成热点图;反卷积部分则是将小尺寸的热点图上采样得到原尺寸的语义分割图像。

2.反卷积与反池化

1×1的卷积

 上池化(unpooling),或称为反池化

 

 3.FCN具体实现

FCN网络结构:卷积部分

        FCN中第6、7、8层都是通过1 × 1卷积得到的,第6层的输出是4096 × 7 × 7, 第7层的输出是4096 × 7 × 7 ,第8层的输出是1000 × 7 × 7,即1000个大小是 7 × 7的特征图(称为heatmap) 

         输出的特征图(称为heatmap),颜色越贴近红色表示对应数值越大。

 

 FCN网络结构:反卷积部分,跳级结构

        蓝色:卷积层;绿色:Max Pooling层;黄色: 求和运算;灰色: 裁剪

 六、数据处理基础

数值特征与类别特征

 其中第1列表示年龄,是一个数值特征,第2列表示性别,是一个只有一位(0,1)的特征 0 -> Male, 1 -> Female,第3列表示国籍,目前有197个国家 1 -> US, 2 -> China, …

对于国家类别,可以用一个整数来表示,或者用一个独热向量来表示, 如US: [1,0, ….,0]

数值特征不适合表示类别,因此一般使用独热编码 ;

国家编码从1开始,1~197,因为实际国籍有可能不填(对应0)。

文本处理

第一步,文本切分:

 第二步,统计词频:

\bullet 创建一个字典 (实际中经常使用Hash 表) 进行词频统计

\bullet 初始字典为空 

\bullet 遍历文本,并按如下更新字典: • 如果单词不再字典中, 加入该单词 (𝑤, 1) • 否则将其词频加1 

​​​\bullet直到完成整个遍历

\bullet​​​​​​​按照词频降序进行排序

\bullet将词频索引化

 \bullet如果词汇太多,则只保留排序在前 的k个单词 (如取𝑘 = 10000)

 第三步,独热编码:

 \bullet将每一个词映射到索引号上

  \bullet词典上没有的词(低频词或 拼写错误,直接忽略,或编码为0)

2.文本预处理与词嵌入

 文本预处理:

        一篇文章可以被简单地看作一串单词序列,甚至是一串字符序列。 我们将 解析文本的常见预处理步骤。 这些步骤通常包括:

1.将文本作为字符串加载到内存中。

2.将字符串切分为词元(如单词和字符)。

3.建立一个字典,将拆分的词元映射到数字索引。

4.将文本转换为数字索引序列,方便模型操作。

 文本预处理实例:IMDB

IMDB影评数据集:

文本嵌入:

如何将词映射成向量?-----使用之前所述的独热向量——存在的问题:维数过高

 词嵌入(word embedding)——将独热向量映射为低维向量

 原始向量:𝑣维;映射后:𝑑维,𝑑 ≪ 𝑣; 映射矩阵:𝑑 × 𝑣,根据训练数据学习得到

理解映射参数矩阵

 词嵌入训练效果

 七、RNN模型

1.概要

图像分类中使用:1对1模型     文本处理中:输入维度不定,输出维度不定或者是1

输入和输出维度:固定

 2.用RNN建模序列数据

 3.RNN模型

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值