目录

一、上采样

二、ROI Pooling操作及其改进

三、FPN(特征金字塔网络)

四、语义分割

五、FCN(全卷积网络)

六、U-Net

七、Mask R-CNN


一、上采样

  • 上采样方式
    • Resize

      • 双线性插值直接缩放,类似图像缩放,如双线性插值。
      • 双线性插值又称双线性内插,是两个变量插值函数的线性插值扩展,核心思想是在两个方向分别进行一次线性插值。
      • 例如已知Q12、Q22、Q11、Q21四个点,在x轴方向插值得到R1、R2,再对R1、R2插值得到P点。
      • 数学上,可简化插值公式或用矩阵运算表示,如将坐标系统设定为特定值时,插值公式可化简。
    • Deconvolution(转置卷积)

      • 通过conv2d_transpose函数实现。
      • 参数说明:filter为卷积核,形状为[kernel_size, kernel_size, output_channels, input_channels],与正向卷积核的通道数参数放置位置相反;output_shape为输出张量形状;strides为步幅;padding为填充方式。
      • 实现过程分两步:第一步扩充输入,元素之间插入0,扩充倍数与步幅有关;第二步对扩充后的矩阵用卷积核进行卷积操作,步长为1,卷积核数量由filter决定。
  • 实验代码
    • 使用TensorFlow的conv2d_transpose,输入一张28x28的图像,卷积核尺寸4x4,输出通道数5,输入通道数3,设置步幅为2,padding为"SAME",输出形状为1x56x56x5。

二、ROI Pooling操作及其改进

  • RoI Pooling

    • 应用于Faster RCNN中,用于目标检测的特征提取。
    • 具体步骤:
      • 计算特征图上对应区域的大小,如400x300的边界框在feat stride=16时对应25x18.75的特征区域,需进行第一次量化操作,得到25x18。
      • 根据固定输出尺寸划分特征图,如输出7x7时,每块大小为25/7x18/7≈3.57x2.57,需第二次量化操作,得到3x2区域,再进行max pooling。
  • RoI Wrap Pooling

    • 与RoI Pooling的区别在于第二步使用双线性差值算法,使特征图变化到固定尺度,减少量化误差。
  • RoI Align Pooling

    • 在Mask RCNN中采用,完全去掉量化操作,使用双线性插值使网络特征图中的点连续。
    • 如特征区域大小为25x18.75,每个块大小为3.57x2.65,通过选择采样点并双线性插值得到连续值。

三、FPN(特征金字塔网络)

  • 组合结构

    • 由自下而上和自上而下路径组成,其中自下而上路径用于特征提取,空间分辨率逐渐下降,语义值增加。
    • 可结合RPN、Fast R-CNN或Faster R-CNN使用,生成特征图金字塔,根据ROI大小选择合适的特征图层提取特征块。
  • 改进检测器

    • 提供自上而下的路径,从语义丰富的层构建高分辨率层,提高检测准确率和速度,尤其是小目标检测。
    • 添加横向连接,使目标位置检测更准确。
  • 在不同框架中的应用

    • SSD:通过多个特征图完成检测,但最底层分辨率高但语义不足,不用于检测,导致小目标检测性能差。
    • YOLOv3:使用DarkNet-53作为骨干网络,并添加特征金字塔,增强小目标检测能力,使用3个尺度的特征图进行多尺度检测。

四、语义分割

  • 定义与应用场景
    • 图像语义分割是对图像中每个像素点分类,确定其类别,是图像处理和机器视觉的重要部分,应用于自动驾驶、无人机落点判定等领域。
    • 分类包括语义分割、实例分割和全景分割。
    • CNN通过多层结构自动学习多尺度特征,适合分类而不适合分割,因convolution和pooling过程丢失细节。

五、FCN(全卷积网络)

  • 网络结构
    • 结构类似编码器-解码器,经过多次conv和max pooling,feature map尺寸逐渐减小。
    • 不使用全连接层,将全连接替换为卷积,输出2维feature map后接softmax获得像素级分类信息。
  • 不同版本差异
    • FCN-32s:对pool5 feature进行32倍上采样。
    • FCN-16s:先对pool5 feature进行2倍上采样与pool4 feature相加,再进行16倍上采样。
    • FCN-8s:在pool4和pool3特征融合基础上进行更多次融合。
    • 融合多层feature有利于提高分割准确性。

六、U-Net

  • 结构与特点
    • 参加ISBI Challenge提出的分割网络,适应小训练集。
    • 结构类似U形,使用conv+max pooling下采样,再通过deconv反卷积上采样,crop之前的低层feature map进行融合。
    • 采用特征拼接而非逐点相加,形成更“厚”特征。

七、Mask R-CNN

  • 网络结构

    • 基于Faster R-CNN,在分类和坐标回归基础上增加语义分割分支。
    • 主干网络使用ResNet50与ResNet FPN,HEAT Network在每个ROI输出Mask。
    • Loss函数包括Loss mask,对每个像素进行分类,使用average binary cross-entropy loss。
  • ROI Align

    • 改进自Faster R-CNN的Roi-Pooling,取消量化操作,对像素进行精准对准。
  • 训练与Inference细节

    • 训练时与Faster R-CNN类似,图像变换到短边800,正负样本比例1:3。
    • Inference时,ResNet的Mask R-CNN生成300个候选区域,FPN生成1000个候选区域进行分类回归和非极大值抑制,最后检测分数前100的区域进行mask检测。
  • 实验结果

    • 溶解实验:网络越深效果越好,FPN效果好,sigmoid优于softmax,RoI Align提升效果,特别是AP75,Mask分支采用CNN效果好,每个类预测mask更好。
    • 目标检测结果:即使不使用mask分支,结果也很好,RoI Align比RoI Pooling高约0.9个点,比Mask R-CNN低0.9个点,归结为多任务训练提升。
    • 人体关键点检测:mask进行one-hot编码,输出softmax,mask分辨率提高有利于检测。

总述:语义分割涉及多种技术,包括上采样、特征金字塔网络、不同的pooling方法和网络架构如FCN、U-Net、Mask R-CNN等。这些技术的应用和改进有助于提高目标检测和分割的精度。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐