EdgeFlow(ICCV2021) 论文阅读笔记(理论篇)

[Paper] EdgeFlow:Achieving Practical Interactive Segmentation with Edge-Guided Flow(2021)

[Code]PaddlePaddle/PaddleSeg

论文全称:EdgeFlow:Achieving Practical Interactive Segmentation with Edge-Guided Flow

最近看了郝钰莹姐姐在ICCV2021发表的EdgeFlow这篇关于图像分割的论文,写下这篇笔记,记录自己初步的粗陋理解。

以下将会从5个角度进行论文分析:即背景(为什么干?)干什么?怎么干?干的如何?读后所思!


一、背景?

吴恩达最近说了:“AI未来10年,从硬件至上到数据为王”。深度学习在计算机视觉领域取得了巨大成功,例如图像识别、目标检测 和图像分割。为了学习强大的抽象,大量标记的图像数据对于模型训练过程通常是必不可少的,尤其是高质量的训练数据在图像分割任务中起着关键作用。随着数据量的增加,人工标注的成本快速增长,尤其是在涉及像素级分割任务时,对于大量训练数据,像素级标注昂贵、费力并且费事。这个时候该怎么办呢?有人可能会说现在不是已经提出了半监督甚至无监督的算法来去解决这个问题了吗?但是真实情况是半监督甚至无监督的算法与全监督的准确性仍有很大差距。

于是乎,此时就有人开始想点子了,为了降低标记成本并提高分割质量,已经有人提出了交互式分割方法,只需要点击几下即可提供结果。然而,这些方法的性能在速度和准确性方面不能满足实际分割任务的要求。

所以EdgeFlow这篇论文便出现了,在这篇论文中,作者提出了 EdgeFlow,这是一种新颖的架构,它通过边缘引导流充分利用用户点击的交互信息。在没有任何后处理或迭代优化方案的情况下实现了最先进的性能。基准测试的综合实验也证明了该方法的优越性。此外,利用使用所提出的方法,为实际数据注释任务开发了一种高效的交互式分割工具。


二、干什么?

了解了背景,那么我们就自然而然猜到EdgeFlow要干什么了,其实就是提出一种图像分割的方法,该方法可以辅助数据标注人员快速准确的给庞大的数据集中的每一张图像打上像素级别的标签,这样就拿到很不错的带有label数据集来给后期的图像分割等任务的模型作为训练使用,从而让深度学习取得更好的效果。

而EdgeFlow论文的贡献如下:

1、提出了一种新颖的交互架构,通过早晚融合充分利用交互和图像信息。交互式点击的增强防止了网络上的特征稀释,然后使其能够有效地响应点击。
2、利用网络产生的对象边缘来提高分割稳定性。通过从粗到细的网络设计,综合实验表明该方法在多个基准测试中达到了最先进的性能。
3、开发了一种高效的交互式分割工具,支持交互式注释和多边形框编辑。该工具还支持多场景和各种标签格式。
 


三、怎么干?

在说怎么具体怎么干之前,先简单提一下传统的方法即是基于优化的方法,主要分为基于轮廓的方法、基于图形的方法、基于随机游走的方法、基于区域合并的方法。传统方法有共同的缺点,这些方法的泛化能力较差,仅适用于特定场景。此外,它们对初始交互信息很敏感,需要高质量的交互而没有嘈杂的输入。说完传统的方法,那么必然要分析一下最新的方法即基于深度学习的方法,其实已经有不少人提出了交互式分割的方法,他们将交互式点击转换成距离图,然后将距离图与原始图像一起作为输入来微调网络等,然而,这些方法在评估过程中高度依赖后处理或额外的优化方案,这需要额外的时间和计算。此外,它们对新的点击很敏感,导致分割掩码不稳定

EdgeFlow提出的方法:

作者提出了一种新颖的交互式分割架构,它充分利用了点击次数和连续点击次数的关系。与之前在第一层将图像和点击结合在一起的方法相比,作者提出的方法 1) 利用单独的分支来增强点击的特征,使网络能够更好地响应交互信息; 2)应用边缘掩码作为网络的先验信息,稳定注释。

网络架构

EdgeFlow(ICCV2021) 论文阅读笔记(理论篇)_第1张图片

如图 2 所示,所提出的架构由两部分组成,输入基础分割模型(CoarseNet)和细化模型(FineNet)。

首先分析粗网(CoarseNet):输入共有4部分,分别是原始图像、边缘掩码、正面点击的特征图、负面点击的特征图,其中原始图像为第一个分支,而其他三个输入经过concatenate共同作为交互分支的输入,两个分支各自进行conv block,然后第一个分支和交互分支的结果进行第一次融合后作为HRNet18模块的输入,其中在HRNet18模块中,进行了交互分支和第一个分支的第二次融合,之后拿着HRNet18网络的输出再一次的和交互分支进行了融合,融合之后的结果作为OCRNet的输入。细细数来共融合了3次,这可能就是论文中提到的通过早晚融合充分利用交互和图像信息吧,接着经过OCRNet的处理之后拿到掩码,此时粗网结束。

注意:作者利用 HRNet-18 作为主干和 OCRNet 作为分割头。该架构已被证明非常适合语义分割任务。与通用分割模型中的单个图像分支不同,作者在主干中添加了一个交互分支来处理正面点击、负面点击以及边缘掩码。一开始,边缘掩码被初始化为一个与输入图像大小相同的零图。接收到用户点击后,通过分割结果估计边缘掩码,然后作为输入的一部分。为了获得准确的边缘掩码,作者在分割头中为边缘约束添加了一个辅助块。

其次分析精网(FineNet):精网的目的是进一步细化粗分割掩码,具体输入由3部分组成,分别是CoseNet的输出结果(掩码)、原始图像和用户的正负面点击的特征图,请注意,为了更好的可视化,作者没有展示所有的输入。为了提高计算效率,作者在 FineNet 中使用了三个具有轻量级操作的多孔卷积块。多孔卷积还可以在高分辨率特征上获得大的感受野,从而可以获得更多的上下文信息并提高输出的质量。

边缘引导流:

点击编码:交互信息包含正负点击坐标。正面点击强调目标对象,负面点击隔离废弃区域。为了实现直觉并提供给网络,需要将点击编码为特征图。通常,交互式分割方法利用高斯算法或 L2 距离来生成距离图作为特征图。然而,当添加一个新的点击时,这种距离图会发生巨大的变化。本南森等人发现磁盘映射比其他编码方法具有更稳定的性能。受这个的启发,在作者的实现中,作者利用半径为 5 像素的磁盘映射对正点击和负点击进行编码。

早晚融合:一般来说,分割模型只支持三通道图像作为输入。因此,应该修改通用模型以适应额外的交互输入。一些方法在主干前面引入额外的卷积层以接受 N 通道输入,如图 6 所示。它们都在骨干网络之前融合了交互和图像特征,这就是所谓的早期融合。早期的融合方法普遍存在交互信息提取不正确的问题。交互特征比图像特征稀疏得多,并且包含高级信息,例如 位置信息。骨干网的早期层侧重于低层特征提取,因此交互特征会通过早期层被稀释,网络无法及时响应用户点击。

为了防止特征稀释,作者提出了一种早晚融合策略来整合交互和图像特征。作者设计了多阶段特征融合,而不是仅在网络开始时融合特征,如图 2 所示。第一次融合与图6(b)相同。第二次融合发生在主干的第一个过渡块和第二个阶段块之间。最后一次融合是在第四阶段块之后。多级融合促进了交互信息在网络上的传播,也使网络能够准确响应用户点击。

EdgeFlow(ICCV2021) 论文阅读笔记(理论篇)_第2张图片

边缘引导:交互式分割的关键思想是随着用户点击逐步改进分割掩码。由于用户点击的空间差异很大,连续点击的特征会有很大的不同,从而产生戏剧性的分割掩码。 先前的方法引入了先前点击的分割掩码作为输入,在一定程度上缓解了这个问题。然而,全掩码可能会使模型陷入局部最优,例如 一个糟糕的先前掩码通常会导致糟糕的分割结果。为了提高分割掩码的稳定性,作者提出了一种边缘掩码方案,该方案将前一次迭代估计的对象边缘作为先验信息,而不是直接掩码估计。边缘估计比输入的全掩码更稀疏且波动更小,因此可以提高分割的稳定性和效率。

在交互式分割模型中,交互图像和边缘掩模特征是异构的,导致空间偏差很大。因此,有必要正确对齐这些。光流方法最初用于对齐视频中两个相邻帧的特征。在语义分割中,它对多尺度特征对齐同时融合不同层是有效的。受的启发,作者采用流模块来对齐图像和交互特征,以便可以精确表示空间信息。 流模块的细节如图2所示。

损失函数:

作者期望损失函数更关注错误的像素而不是分类良好的像素。 受他人的启发,作者利用归一化焦点损失来计算预测掩码和地面实况掩码之间的差异。它可以表示为等式 1:

EdgeFlow(ICCV2021) 论文阅读笔记(理论篇)_第3张图片

 EdgeFlow(ICCV2021) 论文阅读笔记(理论篇)_第4张图片

 

其中 p 是位置 ( i , j ) 上的预测概率,y 是位置 ( i , j ) 上对应的地面实况。

为了最小化上次迭代的边缘估计与从地面实况掩码导出的边缘之间的差异,作者采用平衡的 BCE 损失\: Le来分配对边缘的更多关注,而不是对背景的关注。此外,作者利用BCE作为辅助损失\: La来约束主干输出,最后再算上之前的focal loss \: Lm共有3个损失,其中focal loss \: Lm权重为1、 平衡BCE loss \: Le权重为0.4、BCE loss \: La的权重为0.4。学习率为5*le-5,作者利用 Adam 优化器和多项式衰减将学习率降低到初始学习率值的 1%。


四、干的如何?

首先说一下评估指标:平均交叉并集(IoU)和标准点击次数(NoC)用作评估指标。 NoC 表示实现超过指定 IoU 阈值的交互点击次数,通常设置为 85% 和 90%,即 NoC@85 和 NoC@90。 在评估过程中,作者按照已有方法的思路构建了一个模拟来生成点击。 第一次点击对感兴趣的对象是积极的。 下一次点击被选为最大误差区域的中心。 注意,在本作品中,最大点击次数为 20。

作者计算 NoC@85 和 NoC@90 作为 GrabCut、Berkeley、DAVIS 和 Pascal VOC 的指标。评估结果如表 1 所示。作者的方法在除 GrabCut 之外的所有数据集上都取得了最佳性能。

EdgeFlow(ICCV2021) 论文阅读笔记(理论篇)_第5张图片

交互式分割工具:

在这项工作中,作者使用所提出的模型开发了一个交互式分割工具。 作者的工具旨在帮助用户高效准确地注释分割数据集。 注释流水线包括三个步骤:数据准备、交互式注释和多边形框编辑。

在数据准备过程中,作者的工具支持多种领域的数据格式,包括自然图像、医学成像、遥感图像等。 图像加载到软件中后,可以通过调整亮度和对比度进行缩放、移动和预处理。 注释过程是高度灵活和可配置的。 应用程序中的大多数操作都支持可由用户更改的键盘快捷键。

在交互式注释过程中,用户分别通过鼠标左键和右键单击添加正负点。 该应用程序运行模型推理并显示用户预测结果,如图 9(a) 所示。 用户可以通过改变阈值来调整目标边界来区分前景和背景像素,以获得更准确的分割结果。 该工具还支持过滤最大的连接区域,如图 9(b)所示。当图像中有多个相同类型的目标时,此功能很有用。 抑制小的正区域可以使用户免于点击每个区域中的负点。

EdgeFlow(ICCV2021) 论文阅读笔记(理论篇)_第6张图片

 

完成交互式分割后,该工具会在目标边界周围生成一个多边形框。 用户可以调整多边形顶点以进一步提高分割精度。 它对于实际的分割任务很灵活。

在某些情况下,在交互式分割过程中,调整多边形框架可能比添加多次点击更快,从而提高整体注释效率。 最后,分割结果可以保存为多种格式,包括分割掩码、PASCAL VOC、COCO、伪彩色等。

结论

大量标记的图像数据对于分割模型通常是必不可少的。 由于像素级注释的成本很高,交互式分割成为提取感兴趣对象的有效方法。在这项工作中,作者提出了一种名为 EdgeFlow 的新型交互架构,它充分利用了用户交互信息,无需任何后处理或迭代优化方案。 通过从粗到细的网络设计,作者提出的方法在常见的基准测试中达到了最先进的性能。 此外,作者开发了一种高效的交互式分割工具,可帮助用户通过灵活的选项逐步改进分割结果。 在未来的工作中,作者将致力于可以部署到各种平台的轻量级模型。 作者正在研究的另一个有前途的主题是多模态,它利用更多的输入类型,如音频和文本。 不同种类的投入可以相互补充,因此进一步提高质量至关重要。


五、读后所思:

1、作者提出的先粗后精的处理思路类似于RCNN家族的two-stage操作,这个自己知道但就是不会像作者那样用出来。

2、这种针对2D分割的方式能否进行调整进而用到多模态数据,例如3D点云,这个我会尝试去做一下。

注:本篇博客属于原创,转载请注明来源,谢谢!后期有时间有机会的话会出EdgeFlow的代码篇并发出来分享。

你可能感兴趣的:(计算机视觉,图像处理,深度学习,监督学习)