【深度之眼cs231n第七期】笔记(二十二)

语义分割

概念:输入图像,对每一个像素做分类,而不是对一整幅图像做分类。训练的数据还是图像,标签是每个像素分别归为哪一类。比如说,某一个像素是属于猫的,某一个像素是属于草地的。
语义分割会把同一类的多个物体归为一类,比如这两个牛就被分为同一类了(同一种颜色)
在这里插入图片描述
语义分割只用分类就能实现,所以可以使用滑动窗口来实现。对于每个小窗口,对中心像素进行分类。
问题是,我们要为每一个像素准备一个滑动窗口,而许多滑动窗口是类似的,每个滑动窗口拿去做分类时,会重复计算重叠区域的特征,所以效率非常低,尤其对正向和反向传播。
其实可以共享各个滑动窗口间的计算,因为相邻的卷积特征是类似的。
在这里插入图片描述
如果把用来做图像分类的卷积神经网络的最后一层(全连接层)换成卷积层,这样整个网络就都是由卷积层组成的了,所以才叫全卷积网络。
最后一个卷积层得到的是C*H*W大小的分数,C是类的个数,对于每一个类里的每一个像素给出评分,而不是对一整个类进行评分。
然后对每一个像素计算交叉熵损失函数,再用反向传播进行训练
在这里插入图片描述
如果在全卷积网络中我们一直保持输入图像的大小,这会耗费大量的计算量,因为你可能会有很多的卷积通道(64、128甚至256),也有很多层。
所以实际上会先做下采样再做上采样。
在这里插入图片描述
如何实现上采样?
1.最近距离去池化:就是直接把输入复制n份
2.钉床函数去池化:直接把输入放左上角,其他地方补零
在这里插入图片描述
3.进行最大池化的时候,记住取最大值的地方,然后在上采样的时候放回原来的位置。
因为语义分割是像素级别的,而最大池化会丢失一些空间信息,如果没有记住原来的位置,在最后的结果可能没有那么精确。而且储存这些位置信息占用的空间并不大。
在这里插入图片描述

卷积转置

上面讲的方法都是固定的方法,并没有在学习如何做上采样。比如跨卷积就是在学习如何做下采样,学习如何做上采样的就叫做卷积转置,实际上就是一种卷积方式。
输入直接数乘卷积核,然后把卷积核复制到相应的位置,如果复制的地方重叠了,把它们加起来就好
在这里插入图片描述
这是一个一维的具体例子:
在这里插入图片描述
卷积转置的来由:卷积可以写成矩阵相乘的形式,我们使用相同的权重转置后和输入相乘,就得到卷积转置
左边的输入是一维向量[a,b,c,d],补零后是[0,a,b,c,d,0],卷积核为[x,y,z]
右边的输入是一位向量[a,b,c,d],卷积核为[x,y,z]
在这里插入图片描述
步长为2时的例子
在这里插入图片描述

图像分类和定位

分类定位在分类的同时,还进行物体的定位。
它和目标检测的不同之处在于:对于分类定位,输入的图像只含有一个目标
在这里插入图片描述
和分类的网络架构类似,这里有个全连接层拿来做分类,但我们还有另一个全连接层用来做包围框。所以我们会有两个损失函数,一个softmax损失,关于分类的;另一个可以使用L2距离来计算损失函数,实际中人们也会用L1距离、平滑L1等。两个损失函数间会有一个权重来平衡它们。
在这里插入图片描述
预测图像固定点的位置的想法(包围框)还可以应用到人体姿势估计上:输入一张人类的图像,输出人的关节
在这里插入图片描述
输入一幅图像后,输出14个参数,然后用回归损失(不是交叉熵损失函数和softmax损失函数,而是L2或L1,分类和回归的区别在于你的输出是连续的还是离散的)来评估,用反向传播训练网络
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值