计算机视觉任务总结

视觉任务基本包括以下四类,难度基本是递增,且本质上都可以归类为分类任务。


图像分类 (Image Classification)

  • Image-level Classification
  • 代表:AlexNet (2012)、ZFNet (2013)、VGG (2014)、GoogLeNet (2014)、ResNet (2015)、DenseNet (2016)

根据类别数是否固定,可以将图像分类分成下面两种:

  • 对于类别数固定的分类任务,一般是用 CNN 提取图像特征,然后用一个全连接层 + softmax 进行分类;
  • 对于类别数不固定的分类任务(如支持补录人脸的人脸识别系统),一般是用 CNN 提取图像特征并将图片映射到一个隐空间 embeddding,然后把分类任务转化为隐空间的 k-近邻任务。

目标检测 (Object Localization)

  • Bounding-box-level
  • 代表:R-CNN、Fast R-CNN、Faster R-CNN、Yolo、SSD
  • 核心任务是 定位+检测/分类,包含 One-StageTwo-Stage 的目标检测算法。

语义分割 (Semantic Segmentation)

  • Pixel-level Classification
  • end-to-endpixels-to-pixels
  • 代表:FCN (2015)、U-Net (2015)、Mask R-CNN (2017)、SegNet
语义分割发展时间线

Fully Convolutional Network (FCN)

论文: Fully Convolutional Networks for Semantic Segmentation

FCN 引入了跳级结构 (skip architecture),核心思想就是将深层的 feature map 和浅层的 feature map 进行上采样和 concat 操作。

跳级结构 (skip architecture): 语义分割需要考虑语义位置的内在联系,全局信息考虑的是what,局部信息考虑的是where。深层表达了粗糙的语义信息,浅层保留了较好的外观信息。

FCN 网络结构 (CVPR 2015')

U-Net

论文:U-Net: Convolutional Networks for Biomedical Image Segmentation

U-Net 同样采用了跳级结构,但是整个网络比 FCN 更加规整,且为了跳级结构的对齐相连,还加入了 crop 操作(因为逐层卷积损失了导致边界像素值的丢失),最后一层通过 $\mathbf {1\times 1}$ 的卷积层对 feature map 进行降维

上采样可以用反卷积,也可以用双线性插值双线性插值使得图像比较平滑,而反卷积的好处就是参数可学习。数据集规模较大的时候,反卷积应该会更好。

U-Net 网络结构 (MICCAI 2015')

实例分割 (Instance Segmentation)

  • Pixel-level Classification
  • 代表:Mask R-CNN (2017)

未完待续!

坚持原创技术分享,您的支持将鼓励我继续创作!