自动驾驶-使用fcn语义分割

本文介绍了全卷积神经网络(FCN)如何用于自动驾驶中的语义分割任务,保留了图像的空间信息。FCN通过1x1卷积、上采样和跳跃连接技术实现像素级别的分类。上采样部分使用逆卷积恢复原始分辨率,跳跃连接则帮助保留丢失的信息,提高分割精度。
摘要由CSDN通过智能技术生成

上一章利用卷积神经网络处理分类问题,卷积神经网络在图像分类问题中取得了很高的精度,很好的解决了图像是什么的问题,然而其在处理过程中丢失了空间信息,无法回答目标物体在哪里的问题。本章介绍的全卷积神经网络(fully convlutional network)保留了图像的空间信息,输出图像和原始图像分辨率相同,并且在像素粒度上对图像中的目标物进行分类。如图所示使用fcn模型对道路进行语义分割,对每个像素标记为不同的分类,达到场景理解的目的。
这里写图片描述

fcn介绍

fcn在卷积神经网络的基础上新增了三项技术:1x1卷积,上采样和跳跃连接。

用卷积层代替全连接层

卷积层和全连接层的去别是其每个神经节点对应输入的一个局部区域,并且卷积的神经元间共享数据,不过卷积和全连接都是通过点积和的形式计算神经元,所以二者间可以相互转化。对一个4x4的输入卷积运算,kernel_size=3,stride=1,padding=‘same’,输出形状为2x2。如果将输入展开称一个16维的向量,则定义如下图的一个权重矩阵得到一个4维的向量,将4为的向量重新排列称2x2矩阵,此时的矩阵和卷积运算的到的矩阵相等。
这里写图片描述
在实际操作中,将全连接层转换为卷积层更有用。第一,全连接层使用的权重矩阵规模更大,所以更占内存空间;第二,全连接层使用的权重矩阵规模必须预先定义,但是卷积层可以处理任意大小的输入,所以更加灵活。
1x1卷积顾名思义,就是以kernel size 为1x1的卷积和对输入层进行卷积运算,得到和输入层形状相同的输出层,利用1x1卷积可以对输入层进行升维或者降维,并且由于卷积是非线性变换,进一步提高了网络的表达能力。

上采样

如下图所示fcn模型可以分为两部分,编码和解码,其中编码部分和卷积神经网络的卷积运算过程相同,每一层都提取出更复杂的特征,在解码部分使用逆卷积(convolution transpose)过程取代了传统卷积神经网络的全连接层,所以称这种模型为全卷积神经网络。逆卷积可以理解为卷积的逆过程,通过逆卷积将输入的维度放大,通过多层你卷积操作,使最终的输入图像大小和输入相同。
这里写图片描述
举个例子:
定义一次卷积过程input=4x4, kernel=3x3, padding=‘valid‘,stride=1,则最终输出为:output=2x2
这里写图片描述
其逆过程如下图所示:input=2x2,kernel=3x3,padding=‘valid‘,stride=1,output=4x4
这里写图片描述
当padding=‘same‘,stride=1时,输入和输出相同
这里写图片描述
当stride不为1时,逆卷积变换需要在输入矩阵中插入0值,插入的行数和列数为stride-1,如下图所示为input=3,kernel=3,padding=same,stride=2的逆变换,得到output=5。
这里写图片描述
更多的例子戳这里
卷积运算根据padding种类可以分为两种类型,用K表示kernel size, s表示stride。每种类型输出形状的计算方式为:

padding=’same’

output=inputs
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值