查看: 103|回复: 0

神经网络与深度学习-forth

[复制链接]

2

主题

5

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2023-6-18 17:17:10 | 显示全部楼层 |阅读模式
语义分割与FCN
一、语义分割问题
语义分割是为了找到同一画面中的不同类型目标区域。图像检测任务通常被分为:目标检测、语义分割、实例分割等。


二、目标与基本思想
目标:对图中每一个像素进行分类,得到对应标签。




基本思想:滑动窗口


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


2. 网络实现
卷积部分


FCN中第6、7、8层都是通过1 × 1卷积得到的,第6层的输出是4096 × 7 × 7, 第7层的输出是4096 × 7 × 7 ,第8层的输出是1000 × 7 × 7,即1000个大小是 7 × 7的特征图(称为heatmap),颜色越贴近红色表示对应数值越大
反卷积部分:跳级结构


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






FCN结果


3. FCN评价指标与标注工具
Labelme是一款常见的可以用于语义分割数据集制作的标注工具。


EISeg也是一款常用的标注工具。


四、风格迁移
风格迁移是指将一张图像的风格应用在另一张图像之上。因此需要两张输入图像,一张风格图像(Style image),一张内容图像(Content image),输出为合成图像(Synthesized image)。我们将使用神经网络修改内容图像,使得其在风格上接近风格图像。
方法
首先,我们初始化合成图像,例如将其初始化成内容图像。该合成图像是样式迁移过程中唯一需要更新的变量,即样式迁移所需迭代的模型参数。然后,我们选择一个预训练的卷积神经网络来抽取图像的特征,其中的模型参数在训练中无须更新。深度卷积神经网络凭借多个层逐级抽取图像的特征。我们可以选择其中某些层的输出作为内容特征或样式特征。
以之前放的图像为例,这里选取的预训练的神经网络含有3个卷积层, 其中第二层输出图像的内容特征,而第一层和第三层的输出被作为图像 的样式特征。 接下来,我们通过正向传播(实线箭头方向)计算样式迁移的损失函数 ,并通过反向传播(虚线箭头方向)迭代模型参数,即不断更新合成图像。


与常规的神经网络类似,需要首先通过前向传播计算风格迁移的损失函数,再通过反向传播迭代更新模型参数。其中常用的损失函数由内容损失、样式损失、总变差损失这三部分组成。最后,当模型训练结束时,我们输出风格迁移的模型参数,即得到最终的合成图像。
内容损失与线性回归中的损失函数类似,内容损失通过平方误差函数衡量合成图像与内容图像在内容特征上的差异。平方误差函数的两个输入均为extract_features函数计算所得到的内容层的输出。
样式迁移常用的损失函数由3部分组成:
l 内容损失(content loss)使合成图像与内容图像在内容特征上接近;
l 样式损失(style loss)令合成图像与样式图像在样式特征上接近;
l 总变差损失(total variation loss)则有助于减少合成图像中的噪点。 最后,当模型训练结束时,我们输出样式迁移的模型参数,即得到最终的合成图像。
五、人脸识别
双输入Siamese网络结构


可以预先知道下面的网络输出(预存人脸),节省识别的计算量。通过训练神经网络,我们希望同一人的两张照片间的相似度函数 值尽可能小,不同人的两张片间的相似度函数值尽可能大,下以 此为目标制作训练集、定义Loss函数。
对于训练完毕的神经网络,输入照片,通过简单的for循环语句 遍历数据库中存储的所有照片,依次通过相似度函数进行计算, 记录遍历过程中相似程度最大的值,在遍历结束后与预先设定的 阈值进行比较,得出预测结果,完成人脸识别。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|多点娱乐

GMT+8, 2025-10-15 00:04 , Processed in 0.150318 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表