E2EC: An End-to-End Contour-based Method for High-Quality High-Speed Instance Segmentation
论文:https://arxiv.org/pdf/2203.04074.pdf
代码:https://github.com/zhang-tao-whu/e2ec
上图 -> 图1 :几种基于轮廓的方法的理想变形路径。白色边界和点是初始轮廓,蓝线是变形路径,黑色点是对齐点。
Mask-RCNN
和PANet
等方法,虽然可以获得较好的精度,但效率低下,限制了他们在实时任务中的应用。YOLACT
、空白掩模
、张量掩模
和中心掩模
。然而,这些单阶段方法消耗大量存储,需要昂贵的后处理,而且很难实时执行。实例边界预测的质量也不令人满意,因为这些方法通常使用有限的特征信息(例如,Mask R-CNN
仅在28×28特征图中分割实例)。曲线GCN
、Deep GCN
、点集锚点
、DANCE
、偏振掩模
和LSNet
。基于轮廓的方法将实例分割视为一个回归任务,即对由一系列离散顶点表示的轮廓的顶点坐标进行回归。由N个(例如,N个=128)顶点组成的轮廓足以很好地描述大多数实例的。与基于掩模的方法需要对每个像素的密集处理相比,基于轮廓的方法更简单,计算需要更少。基于轮廓的方法还可以直接获得实例的边界,而不需要进行任何复杂的后处理。前边图1中的白线
所示,人工设计的初始轮廓与地真实例边界之间的差异会导致许多不合理的变形路径(从初始到地真顶点的路径)和巨大的训练难度。单级偏振掩模
和LSNet
方法仅基于实例中心上有限的特征,直接回归轮廓顶点的坐标,导致预测的轮廓细节的丢失。多阶段方法根据轮廓顶点的特征对初始轮廓进行迭代调整,得到更精细的分割结果。然而,Curve GCN和Deep Snake
利用局部信息聚合机制,传播局部相邻轮廓顶点的特征来细化轮廓,这可能无法纠正较大的预测误差。此外,必须无效地重复局部聚合以访问全局信息。相反,我们提出了一种基于所有轮廓顶点特征的全局轮廓变形方法。在本文中,我们提出了一种多阶段的、高效的基于端到端轮廓的实例分割模型E2EC,可以完全克服这些缺点。E2EC包含了三个新的组件:
1)可学习的轮廓初始化架构;
2)多方向对齐(MDA);
3)动态匹配损失(DML)函数。
轮廓初始化模块
;2)全局轮廓变形模块
。轮廓初始化模块基于中心点特征直接对完整的初始轮廓进行回归,这与沿着给定的固定射线的回归长度不同。然后,全局轮廓变形模块基于初始轮廓的所有特征对初始轮廓进行细化顶点和中心点,而不是使用局部顶点的特征。如图1所示,可学习的初始轮廓架构并不依赖于人工设计的初始轮廓(例如,曲线GCN的椭圆或深蛇的八边形),而是直接从对象实例的中点变形到具有更合理路径的轮廓。E2EC
在KITTI INStance(KINS)数据集
、语义边界数据集(SBD)
和城市景观数据集上
表现出了最先进的性能。对于512张×512图像,E2EC在NVIDIA A6000GPU上实现了36帧每秒的推理速度。如果禁用迭代变形模块,E2EC可以达到50帧/秒的速度,其精度与Deep Snake
相当。E2EC的工作流程下图所示。E2EC首先生成一个热图来定位实例中心,然后通过基于中心点特征回归初始偏移量来学习初始轮廓。初始轮廓首先由一个全局变形模块进行变形,然后演化为粗轮廓。变形模块将粗轮廓变形到最终轮廓。
该可学习的轮廓初始化体系结构包括轮廓初始化模块
和全局变形模块
。
1. 轮廓初始化:首选通过目标对象特征提取得到其对应特征图的中心点,然后根据中心点和对于边界顶点的偏移量对所有的轮廓顶点进行回归,得到的是一个有序的轮廓点集。
2. 全局变形:基于中心点特征和所有轮廓顶点特征,提出了一种简单但更有效的全局聚合机制,提出了全局变形对初始轮廓进行变形。如上图(b)所示,首先将N个初始轮廓顶点和中心点的特征连接到一个 长度向量(N+1)×C(其中C是顶点特征的信道数) 中。然后将该向量输入到MLP模块(隐藏层的通道和输出层为N×2),以获得轮廓顶点的偏移预测(一个长度为N×2的向量)。将偏移量和初始等高线坐标求和,得到调整后的粗实例轮廓在我们的实验中,我们设置了N=128和C=64
。
(0标记点的L2距离来匹配每个预测轮廓顶点的最接近插值真实顶点(gtipt)的过程。
------ 式(2)是DML对应的第一分量。其次,将最近的预测顶点与标签轮廓的关键顶点(由道格拉斯-佩克算法获得)进行动态匹配,以保留预测轮廓的细节。
------ 式(3)描述了将每个关键顶点与最近的预测顶点进行匹配,以最好地保留边界的细节的过程。
------ 式(4)是DML对应的第二分量。DML是上述两个分量的平均值,
------ 式(5)所示。DML可以极大地提高预测边界的质量,并解决在 Deep Snake and DANCE中发现的过平滑问题。
E2EC
可以基于任何检测器构造,只需要将bbox分支的输出大小从H×W×2
改为H×W×(N×2)
,即可直接回归具有N个顶点的初始轮廓。在本研究的实验中,为了与其他方法进行公平的比较,我们使用CenterNet
作为E2EC的检测器。
轮廓分割是我硕士期间的研究内容,当时用的是传统的方法提取轮廓,对轮廓进行分段分割合并来提取特征,轮廓是判断一个对象属性十分重要的特征,可以十分方便及可靠的应用于一些场景中,刚看到这篇论文时就突然有了浓厚的兴趣,后续也将继续研究此算法,并希望可以将它应用于一些场景中去以解决实际问题。
有新的进度的话会持续更新,加油!