如何用卷积神经网络处理语义图像分割

描述

图像分割是根据图像内容对指定区域进行标记的计算机视觉任务,简言之就是“这张图片里有什么,其在图片中的位置是什么?”本文聚焦于语义分割任务,即在分割图中将同一类别的不同实例视为同一对象。

更具体地讲,语义图像分割的目标在于标记图片中每一个像素,并将每一个像素与其表示的类别对应起来。因为会预测图像中的每一个像素,所以一般将这样的任务称为密集预测。

语义分割的例子,目标是预测图像中每一个像素的类别标签。

当我们有越来越多要用机器执行的任务时,为这些机器配备必需的感知器是很重要的。

自动驾驶中实时语义分割道路场景

还有一点要注意的是我们不会分割同一类别的实例,只需要关注每一个像素的类别。换句话讲,如果在输入图像中有两个目标属于同一类,分割映射不会将其分为单独的两个目标。

相对地,实例分割模型是另一种不同的模型,该模型可以区分同一类的不同目标。

任务表征

简单地说,我们的目标是要用 RGB 图(高 x 宽 x3)或灰度图(高 x 宽 x1)为输入,并输出一个分割图,在分割图中每个像素都包括一个用整数表示的类别标签(高 x 宽 x1)。

注意:为了视觉上的理解简单起见,我标记的是分辨率比较低的预测图。事实上,分割标签的分辨率是和原始输入图的分辨率相对应的。

与我们处理标准分类值的方法相似,我们通过独热编码类别标签的方法创建目标——本质上讲是要为每一个可能的类创建一个输出通道。

然后我们可以利用每一个像素位深向量的 argmax 函数将预测值分解为分割映射(如上图所示)。

也可以通过将目标重叠在输入图像上来对目标进行观察。

建立网络架构

针对这项任务简单地构建神经网络架构的方法是简单地堆叠大量卷积层(用 same 填充保留维度)后输出最终的分割映射。通过特征图的接连转换,直接从输入图像学到了相对应的分割映射;然而,在整个网络中要保留完整分辨率的计算成本是很高的。

回顾深度卷积网络,前期的卷积层更倾向于学习低级概念,而后期的卷积层则会产生更高级(且专一)的特征图。为了保持表达性,一般而言,当我们到达更深层的网络时,需要增加特征图(通道)的数量。

对图像分类任务而言,这不一定会造成什么问题,因为对这个任务而言,我们只需要关注图像里面有什么(而不是目标类别对象的位置)。因此,我们可以通过池化或逐步卷积(即压缩空间分辨率)定期对特征图进行下采样以缓和计算压力。

常用的图像分割模型的方法遵循编码器/解码器结构,在这个结构中,我们对输入的空间分辨率下采样,产生分辨率更低的特征图,通过学习这些特征图可以更高效地分辨类别,还可以将这些特征表征上采样至完整分辨率的分割图。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分