七、视觉识别

VI-0-1

7.1 分类

  • 前面讲的都是
    1. 线性分类器
    2. 全连接神经网络
    3. 卷积神经网络

7.2 语义分割

  • 给每个像素分配类别标签不区分实例,只考虑像素类别
VI-2-1

滑动窗口

  • 问题

    效率太低!重叠区域的特征反复被计算。

VI-2-2

全卷积

  • 解决方案

    让整个网络只包含卷积层,一次性输出所有像素的类别预测。

  • 问题

    处理过程中一直保持原始分辨率,对于显存的需求会非常庞大。

VI-2-3
  • 解决方案

    让整个网络只包含卷积层,并在网络中嵌入下采样上采样过程。

VI-2-4

反池化操作

VI-2-5 VI-2-6

转置卷积

  • 可学习的上采样

    转置卷积(Transpose Convolution)

VI-2-7
  • 操作
VI-2-8 VI-2-9 VI-2-10

7.3 目标检测

单目标

  • 单目标(分类+定位)

    将定位任务建模为回归问题!

    采用多任务损失。

VI-3-1

前面 常使用在ImageNet上预训练的模型 (迁移学习)

多目标

  • 困境

    每张图像期望输出的维度都不一样!

VI-3-2
  • 寻找区域

    利用CNN对图像中的区域进行多分类,以确定当前区域是背景还是哪个类别的目标。

VI-3-3
  • 困境:

    CNN需要对图像中所有可能的区域(不同位置、尺寸、长宽比)进行分类,计算量巨大!

区域建议

VI-3-4

R-CNN

  • 想法

    在特征图上进行区域扣取

  • 问题

    计算效率低下!

    每一张图像大约有2k个区域需要卷积网络进行特征提取,重叠区域反复计算。

VI-3-5
  • 改进

    裁剪+缩放特征

VI-3-6
  • 两种区域裁剪
VI-3-7 VI-3-8

Faster R-CNN

  • 还不够快

    候选区域产生过程耗时过高,几乎等于单张图片的检测时间。

VI-3-9
  • ”锚点“ 区域裁剪
VI-3-10
  • 二段的网络
VI-3-11
  • 利用卷积网络产生候选区域!
  • 四种损失联合训练:
    1. RPN分类损失(目标/非目标)
    2. RPN边界框坐标回归损失
    3. 候选区域分类损失
    4. 最终边界框坐标回归损失
VI-3-12

影响因素

VI-3-13

7.4 实例分割

Mask R-CNN

  • 添加一个小型 mask 网络,在每个RoI上运行
VI-4-1 VI-4-2
VI-4-3
  • 效果
VI-4-4 VI-4-5