首先需要弄清楚以下几个概念:
- 语义分割(semantic segmentation)
- 目标检测(object detection)
- 目标识别(object recognition)
- 实例分割(instance segmentation)
语义分割,简单来说就是给定一张图片,对图片中的每一个像素点进行分类
目标检测,就是在一张图片中找到并用box标注出所有的目标.
目标识别,就是检测和用box标注出所有的物体,并标注类别.
实例分割,对图像中的每一个像素点进行分类,同种物体的不同实例也用不同的类标进行标注.
FCN网络
FCN,全卷积神经网络,是目前做语义分割的最常用的网络.
与经典的CNN在卷积层之后使用全连接层得到固定长度的特征向量进行分类(全联接层+softmax输出)不同,FCN可以接受任意尺寸的输入图像,采用反卷积层对最后一个卷积层的feature map进行上采样, 使它恢复到输入图像相同的尺寸,从而可以对每个像素都产生了一个预测, 同时保留了原始输入图像中的空间信息, 最后在上采样的特征图上进行逐像素分类。
UNET结构
上图就已经说的非常清楚了对于UNET网络的架构。
以下是使用torch的UNET-128 与 UNET-256的结构:
UNET-256