图像分割 II(Image Segmentation II)

Segmentation as classification

像素分类(Pixel classification)

作为分类问题的图像分割。给定一个窗口(NxN 个像素),对中心像素进行分类。

分类单个像素可能非常慢(例如,一张小图片 = 600 x 800 = 480,000 像素)

但是 CNN 可以并行分类多个像素。

全卷积网络(Fully-convolutional network)

全卷积网络(FCN)只有卷积层,没有全连接层。最后一层是一个空间映射图。可以接受任何尺寸的图像作为输入,输出映射图的大小取决于输入大小。

并行补丁分类(Parallel patch classification)

标准的 CNN 架构存在两个问题:

  1. Receptive field 大小与卷积层的数量成线性关系
  • 缺点
  • 局部性丢失:CNN的一大优点是能够捕捉局部特征,如边缘、角点等。随着感受野的增大,局部信息可能被稀释,从而降低网络对细节的敏感度。
  • 过多的上下文信息:可能会引起混淆导致性能下降。
  • 计算复杂度增大
  1. 大多数方法使用下采样 downsample(例如,最大池华)来减少计算量

感受野 Receptive field 定义:卷积神经网络每一层输出的特征图(feature map)上的像素点映射回输入图像上的区域大小。通俗点的解释是,特征图上一点,相对于原图的大小,也是卷积神经网络特征所能看到输入图像的区域。

随着卷积核的增多(即网络的加深),感受野会越来越大。

解决方案:使用编码器 - 解码器结构。 编码器对图像进行下采样(downsamples), 解码器进行上采样(upsamples)

下采样(Downsampling)

  • 主要用于缩小图像
  • 使得图像符合显示区域的大小
  • 特征提取:通过卷积层和池化层,网络可以从原始图像中提取更抽象、更高层次的特征。

上采样(Upsampleing)

  • 主要用于放大原图像
  • 空间分辨率恢复
  • 细节和局部信息的恢复

我们可以避免maxpoolig,但是这样会让网络速度变慢,也无法解决第一个问题。

上采样(Upsampling)


每一个上采样层都与一个下采样层配对。 最大值的位置被保存并传递给上采样器。

转置卷积(Transposed convolution)

步长(stride)> 1 的卷积是一种下采样形式

  • 例如,步长 = 2 意味着在输入中每移动1像素,滤波器在输出中移动2像素
  • 可学习的下采样 (Learnable downsampling)

当两个放大的卷积核相交时,会在重叠的像素上求和。

示例

Note:因为第三格是重叠的部分,所以可以进行相加。

转置卷积的矩阵表示

1x1 卷积层

它的特点是可以在不改变空间维度(即图像的宽度和高度)的情况下,改变通道数

应用场景

1x1 卷积通常作为全链接网络的最后几层出现。全连接层能够学习特征之间的非空间(全局)关系,但参数数量比较多,计算复杂度和过拟合风险比较高。使用 1x1 卷积可以减少参数数量,同时保留网络的深度。

学习的内容

1x1 卷积层通常用于在不同层次的特征图间进行信息融合,调整通道数目,实现跨通道的特征交互,同时也用于降低特征维度,减少计算量。这些卷积核可以学习如何在各个通道间进行有效的特征整合。

如图,最后一个是一个 1x1 的卷积层,步长为 1,这一层保持了空间尺寸不变,但改变了通道数到 100。

损失函数

在每个像素点上,计算预测的类别和真实类别之间的交叉熵 cross-entropy损失值。

结果

随着步长缩短,我们可以看到分割的质量变得更好。

小结

语义分割可以被看作是一个像素分类(pixel classification)问题。这可以通过全卷积网络来高效完成。

编码器 - 解码器架构:

  • 通过最大池化、步长卷积来下采样
  • 通过最大反池化、转置卷积来上采样

输出结果为每个像素的标签。

U-Net

最初是为医学图像分割提出的。是编解码器(encoder-decoder)结构,加上一些额外的功能特性。

架构

在解码器中,上采样的特征图与对应编码器层的原始特征进行了拼接。

对于细胞分割,U-Net只使用两个类别,并采用加权交叉熵损失(weighted cross-entropy loss):细胞之间的边缘具有更高的权重。

小结

U-Net:用于分割的全卷积网络,带有一些修改。最初用于医学图像分析,但也常用于其他分割任务。

同时也被用作其他任务的编码-解码(encoding-decoding)网络,如:

  • 图像去噪
  • 图像修复

实例分割(Instance segmentation)

语义分割对像素进行分类,但不区分不同的实例。

不是给每个像素打上实例标签,而是提取图像中可能是独立实例的区域块。在每个区域块内进行分割。

Instead of giving each pixel an instance label, extract patches of image that are likely to be separate instances. Do segmentation within each patch.

常用的架构是 Mask R-CNN。

Note: Stuff 和 things

视觉场景包含"物体(things)"和"材质(stuff)"两个部分。

  • "Things" = objects, "可数名词(countable nouns)" (cow, person, car)
  • "Stuff" = regions/materials, "不可数名词(mass nouns)" (road, grass)
  • 有些类别可能即使 thing 也是 stuff。(tree)

实例分割(以及计算机视觉领域通常)主要关注"物体(things)"。

R-CNN:

  • R-CNN 指的是基于区域(Region-based) 的卷积神经网络。
  • 它有效地提取"感兴趣区域 regions of interest"(很可能包含物体的图像区块)进行进一步处理。

Mask R-CNN

  • Mask R-CNN将通过R-CNN提取的图像区块送入一个完全卷积网络(FCN)。
  • FCN预测一个二值分割掩码 (binary segmentation mask),区分"对象"或"背景"。

结果

小结

  • 实例分割为同一类的每个实例赋予独立的标签(instance of a class),不仅仅是类别标签(class labels)。
  • 通常只适用于可数的"物体(things)"类别。
  • 典型的方法是先检测出物体的区块,然后在这些区块内进行二值分割(binary segmentation)。

小结

全卷积网络(FCN)的优点:

  • 更能够处理非常复杂的对象/背景。
  • 对于它们训练的类别,可能会给出更好的结果。

全卷积网络(FCN)的缺点:

  • 在捕捉精确的边界细节方面可能表现得较差。
  • 可能无法泛化到训练集之外的类别。
相关推荐
lihuayong15 小时前
计算机视觉:主流数据集整理
人工智能·计算机视觉·mnist数据集·coco数据集·图像数据集·cifar-10数据集·imagenet数据集
DCcsdnDC15 小时前
Airsim仿真双目相机时间戳不同步的解决办法
计算机视觉
机器视觉知识推荐、就业指导21 小时前
【数字图像处理二】图像增强与空域处理
图像处理·人工智能·经验分享·算法·计算机视觉
陈辛chenxin21 小时前
【论文带读系列(1)】《End-to-End Object Detection with Transformers》论文超详细带读 + 翻译
人工智能·目标检测·计算机视觉
深图智能1 天前
OpenCV 4.10.0 图像处理基础入门教程
图像处理·opencv·计算机视觉
Fansv5871 天前
深度学习-6.用于计算机视觉的深度学习
人工智能·深度学习·计算机视觉
SKYDROID云卓小助手1 天前
无人设备遥控器之如何分享数传篇
网络·人工智能·算法·计算机视觉·电脑
萧鼎2 天前
利用 OpenCV 进行棋盘检测与透视变换
人工智能·opencv·计算机视觉
紫雾凌寒2 天前
计算机视觉基础|卷积神经网络:从数学原理到可视化实战
人工智能·深度学习·神经网络·机器学习·计算机视觉·cnn·卷积神经网络
IT古董2 天前
【深度学习】计算机视觉(CV)-图像生成-风格迁移(Style Transfer)
人工智能·计算机视觉