> 文章列表 > [自注意力神经网络]Mask Transfiner网络-论文解读

[自注意力神经网络]Mask Transfiner网络-论文解读

[自注意力神经网络]Mask Transfiner网络-论文解读

 本文为CVPR2022的论文。国际惯例,先贴出原文和源码:

原论文地址https://arxiv.org/pdf/2111.13673.pdf源码地址https://github.com/SysCV/transfiner

一、概述

        传统的Two-Stage网络,如Mask R-CNN虽然在实例分割上取得了较好的效果,但其掩码依旧比较粗糙。Mask Transfiner将图像区域分解为四叉树,网络仅处理检测到的易错树节点(error-prone tree node)和错误自纠正(self-corrects their errors)。这使得Mask Transfiner可以以第计算成本预测高精度的实例掩码。

 二、相关概念

        实例分割中,大部分的像素点分类错误均可归结于下采样造成的空间分辨率损失。这导致在物体边缘位置,掩码的分辨率较低。为了解决这个问题,本文中提出了两个概念:信息损失区域(Incoherent Regions)和四叉树(Quadtree)。

        1.信息损失区域

                 为了描述这些区域,本文对掩码本身进行下采样来模拟网络中下采样造成的信息丢失。从上面的图例我们可以看到,对原掩码进行一次2倍的下采样后再进行一次2倍的上采样,橙色部分(原图上标红框)为分类错误的点。而经过实验,大部分的误差均几种在信息损失区域。

                信息损失区域的检测:本文涉及的轻量化检测模块如下图所示,可以有效的在多尺度特征金字塔上检测信息损失区域。

                        将最小特征(smallest features)和预测的粗糙对象掩码(coarse object mask predictions)拼接(concat操作)起来作为输入。

                        ①经过一个全卷积网络(FCN,由四个3x3卷积组成)和一个二分类器来预测最粗糙的信息损失掩码

                        ②对检测到的低分辨率掩码进行上采样(使用1x1卷积),并与相邻层中的高分辨率特征进行融合。

        2.四叉树

                在本文中,四叉树被用来细化图像中的信息损失区域。其连接这两个不同层次的特征金字塔中的预测掩码。如下图所示。基于检测到的信息损失点,可以构建一个多层次的四叉树,以检测到的最高层次的特征图作为根结点,这些根节点可以被映射到低层次特征图上细分的四个象限(这些图具有更大的分辨率和局部细节)。

         

 三、网络结构

        Mask Transfiner的网络结构如下图(属于网络大框架的部分以红框标出): 

         本网络基于分层的FPN(Feature Pyramid Networks-特征金字塔),Mask Transfiner的对象并不是单级的FPN特征,而是将RoI特征金字塔上的信息损失区域中检测到的稀疏特征点作为输入序列,并输出其对应的分割标签。

        1.RoI金字塔

                本文利用了骨干网络提取的分层特征图中的2到5层的特征图。基于对象检测器给定的实例建议,通过FPN在{ P_i,P_{i-1},P_{i-2} }三个不同层级的特征图上提取RoI特征,这三层的RoI特征的尺寸分别为{28,56,112},并使用这三个特征来构建RoI金字塔。

                其中,起始层 i 的计算公式为:i = \\left \\lfloor i_0 + log_2(\\sqrt{WH}/224)) \\right \\rfloor,其中i_0=4,W和H为RoI的宽高。

                低层次的特征中有较多的上下文和语义信息;而高层次的特征中则包含更多局部特征。

        2.输入节点序列

                该序列由来自四叉树的三个不同级别的信息损失节点构成。序列的大小为CxN,其中C为特征通道的维数,N为节点的总数。该序列由节点编码器(Node Encoder)压制而成。

        3.节点编码器

                节点编码器会使用以下四种信息对四叉树的每个节点进行编码。

                        ①从当前层次的FPN提取的细粒度特征

                        ②来自最初的粗掩码预测区域提供的语义信息

                        ③节点之间的关系和距离信息(由RoI中的相对位置编码封装)

                        ④每个节点的上下文信息和自身的信息

                本文在每个节点的3x3邻域中提取特征并使用全连接层进行压缩。如下图所示,细粒度特征,粗分割线索和上下文特征首先通过全连接层融合,再将位置嵌入添加到其中。

        4.序列编码器和像素解码器

                 每个序列编码器具有多头注意力模块和全连接前馈神经网络。

                 像素解码器为一个小型的双层MLP(多层感知机),其可以解码每个节点的输出查询,并预测最终的掩码标签。

四、损失函数

        基于四叉树,本文使用的损失函数为:

                L=\\lambda_1L_{Detect}+\\lambda_2L_{Coarse}+\\lambda_3L_{Refine}+\\lambda_4L_{Inc}

                        其中L_{Refine}表示预测的信息损失点与真实标签之间的L1损失函数;L_{Inc}为检测信息损失区域的交叉熵损失函数;L_{Detect}包括了检测器的定位和分类损失;L_{Coarse}表示初始粗分割预测的损失。