Curve-GCN:图卷积网络用于活动轮廓演变

﹥>﹥吖頭↗ 提交于 2020-07-29 02:28:55

CNN做分割需要处理数据量很大的grid数据,需要对所有点的label进行预测,而且传统CNN并不会结合点与点之间的联系。

使用图结构建模分割轮廓或分割曲面,然后采用GCN,仿照传统的deformable model的方法对曲线或曲面进行迭代演变实现分割,是一种可行的方案。如何将曲线、曲面和它的演变过程,建模到GCN框架中?本文提到的论文提供了一种实现思路。

本文直接相关的应用场景虽然不涉及医学图像分割,但是其思想,比如3D组织的分割和组织编辑,都可以借助该文章的思路。deformation model的方法在医学图像分割领域应用是非常广泛的,本文本质就是deformation model和GCN的结合。


论文:Fast Interactive e Object Annotation with Curve-GCN

网址:

https://arxiv.org/pdf/1903.06874.pdfarxiv.org

github:

https://github.com/fidler-lab/curve-gcngithub.com

摘要

  1. 本文提出的新框架,通过使用图卷积网络(GCN)同时预测边界上每个顶点的演变方向。
  2. 端到端训练框架和模型;
  3. 通过该方法,可实现:画一个多边形,快速完成物体的轮廓标注。
  4. Curve-GCN比现有的方法性能都要好,包括PSP-DeepLab,效率比Polygon-RNN++高。该方法可在29.3ms内完成全自动分割,在2.6ms内完成交互分割,分别比Polygon-RNN++快10倍和100倍。实时性很好。

介绍

物体的实例分割问题涉及到对数据进行大量的标注。手动对物体进行标注非常耗时。为解决标注问题,大量的交互分割算法被提出。本文也是为了解决这个问题。(在医学图像分割领域也大有用途!

像素级方法:利用CNN出来的热图,结合交互,加速标注。如DEXTR;

RNN方法:Polygon-RNN,递归的方式,human-in-the-loop标注。

本文,将目标标注看作一种回归问题,对所有位置的顶点进行同时预测。将物体的轮廓建模为一个固定拓扑的图结构,并采用GCN进行预测。该框架允许将物体参数化为多边形(polygon)或样条(splines),是标注过程更加灵活和高效。

该方法被称为Curve-GCN,端到端网络,实时运行。多个据集Cityscapes上测试了,效果优于Polygon-RNN++,PSP-Deeplab,DEXTR等。

相关工作

  • 像素级方法(Pixel-wise)
传统方法:graph-cut,能量最小化;通常需要大量用户的交互;
基于深度学习:DEXTR,CNN框架,输入端增加一个通道输入用户的少量标注(边界上点几个点)

基于轮廓的方法(Contour-based)

传统方法:水平集、活动轮廓;
结合CNN:CNN进行特征学习+水平集/活动轮廓优化,端到端【34】【24】
磁力套索(Intellligent Scissors):用户在边界附近点两个点,自动找到两点之间的最近边界的路径(获取最小能量路径)【25】
Plogon-RNN:通过CNN-RNN框架,顺序追踪边界。RNN每次只能在预测出上一个点的情况下,预测下一个顶点的位置,对轮廓上的所有点,多次匀性RNN网络依次预测。
Pixel2Mesh:从单张图片预测出物体的3D mesh。其中使用了GCN预测3D Mesh顶点的位置【33】



Curve-GCN

  • 参数模型表示(Polygon/Spline-GCN)

Polygon:通过N个控制点,控制点之间直线连接后形成的多边形结构;

Spline:通过N个控制点,控制点之间通过多阶曲线连接。

控制点的位置坐标表示为连续随机变量,结合输入的图像信息,通过GCN进行预测;

  • 公式符号说明(Notation)

GCN预测多边形每个顶点的offset(偏移量),该offset指导了该顶点的移动方向。而顶点的初始位置来源于输入图像(如图1)。

使用 cp_{i}=[x_{i},y_{i}]^{T} 表示第i个控制点的坐标; V=\left\{ cp_{0},cp_{1},...,cp_{N-1} \right\} 表示所有控制点的集合。

整个轮廓表示为图结构: G=(V,E) ,V表示顶点,E表示边。E通过其连接的顶点和该顶点的4邻域顶点来构建。图结构定义了信息如何在GCN中传播;连接4条路径允许节点之间更快的信息传播。

图1 Curve-GCN整体框架
  • 特征提取
  1. CNN Encoder:使用CNN进行编码,得到Feature Map Fc;
  2. Boundary Prediction:为了让模型看到图像的边界,在CNN编码的feature map Fc顶端,通过两条分支进行监督,分别是:(1)边缘分支(2)顶点分支,均由一个3x3卷积层和一个全连接层组成。这些分支通过训练用于预测28x28 grid图像上物体的边界和顶点。使用交叉熵loss训练。
  3. Augmented Feature Map:2中预测得到的边界和顶点输出和CNN feature map Fc做concatenate(拼接,图1中粉色的部分),得到augmented feature map F。
  4. GCN的输入特征表示为 f_{i}^{0} ,i表示第i个点特征,0表示为输入层。假定左上角坐标为(0,0),image长度为1,对于第i个点,其归一化坐标为 cp_{i}=(x_{i},y_{i}) ,则输入特征可表示为: f_{i}^{0}=concat\left\{ F(x_{i},y_{i}),x_{i},y_{i} \right\} 。其中 F(x_{i},y_{i}) 通过双线性插值计算(F即3中的特征图)。
  • GCN模型

使用多层GCN,对第i个节点的第l层的传播公式如下:

f_{i}^{l+1}=w_{0}^{l}f_{i}^{l}+\sum_{cp_{j}\in N(cp_{i})}{w_{1}^{l}f_{j}^{l}}

其中 N(cp_{i}) 表示图中和 cp_{i} 相连的点(领域点); w_{l}^{0}w_{1}^{l} 为权重矩阵。

进一步,作者使用Graph-ResNet结构:

其中 w_{0},w_{1},\tilde{w_{0}},\tilde{w_{1}} 为残差结构的权重。

最后的GCN层顶部,再使用一个全连接层,得到最终预测每个点的相对location shift,即 (\Delta x_{i},\Delta y_{i}) ,由此可得到预测的新坐标 [x_{i}^{'},y_{i}^{'}]=[x_{i}+\Delta x_{i},y_{i}+\Delta y_{i}] 。通过迭代去运行GCN网络,就可以逐步实现控制点和曲线的的贴边演变。

  • Spline Parametrization

GCN得到控制点的位置,需要得到漂亮的边缘,最好用spline方法做曲线拟合,比如Bezier spline和B-Spline方法。具体的方法可看其他相关资料。

训练

使用两种不同的Loss函数对模型进行训练。

(1)使用Point Matching Loss训练;(2)使用Differentiable Accuracy Loss(可微分精确Loss)进行精训练。

Point Matching Loss:

定义为当前时刻各个顶点点和该顶点的金标准之间的L1距离之和,即点对误差:

因为点并无确定的一一对应关系,但是顺序是一致的(ordered point set loss function),因此,需要计算各种匹配情况,然后取最小的那个作为Loss。

Differentiable Accuracy Loss:

仅适用Point Matching Loss会出现过度平滑的结果。通过curve我们可以渲染得到mask,然后利用mask和金标准mask计算L1 Loss,得到Differentiable Accuracy Loss,表达式如下:

M(\theta)=R(p(\theta))

L_{render}(\theta)=||M(\theta)-M_{gt}||_{1}

该Loss函数的前向传播和反向传播在论文中有详细说明,此处不做细的讲解。

InteractiveGCN(手动标注融合到循环中)

为使模型变得可交互化,允许接受并利用用户的修正信息,提出了一种InteractiveGCN,基本结构和Curve-GCN相同,区别在于其输入增加了用户对于某个点进行拖拉后导致的校正量:

其中 (\Delta x_{i},\Delta y_{i}) 为用户拖拉第i个点导致的偏移,即校正量。对于未被校正的点,校正量为(0,0)。交互模式下并不进行迭代推理,仅在用户拖拽修改一个点后进行一次推理,而推理结果仅影响当前拖拽点前后各k个点的范围(文中k=2)

图2 InteractiveGCN结合用于交互(通过拖拽修改绿色的点,仅它两侧邻域最近k个点会受到影响进行重新预测,图中k=2)

InteractiveGCN的训练需要通过模仿一个标注者来实现,这个标注者通过程序实现,它总是会去校正最差的预测点,具体的训练流程见下面这个流程图:

InteractiveGCN的训练方法

实验情况

  • Image Encoder

使用ResNet-50

  • Trainning细节:
  1. 先试用Point Matching Loss(快,但是不灵活,点必须精确的和金标准点对应),然后用differentiable accuracy loss进行微调(直接优化精度,但是速度较慢)。
  2. InteractiveGCN因为考虑速度原因使用Point matching loss。
  3. 学习率:3e-5,每7个epoch衰减一次。
  4. matching loss只能在单个polygon上进行使用,因此在粗训练阶段是在单实例上训练,fine-tune阶段改为在所有实例上训练。

Baselines:

  • Evaluation Metrics:
  1. Intersection-over-Union(IoU):评价整体区域分割精度;
  2. Boundary F score:评价边界精度。
  • 标注结果展示

结论

  1. 提出的Curve-GCN能高效用于交互分割;
  2. 性能达到SOTA,且快很多;
  3. 提出了一种仅影响局部范围的局部点的交互校正方法(InteractiveGCN)
  4. 将发布使用该方法的标注工具。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!