想法非常出彩的两篇工作,BRS中提出了一个有趣的思路,f-BRS又将它进行了升华。
核心思想如下:
💡 用户点击的位置不一定按照预期会被网络预测为正确的标签,因此可以用backpropagating的方式更新输入的distance map或者网络的其他参数,让预测至少符合用户交互点的预期。
需要注意的是这种方式是基于 distance map 输入的,经过我们的实验,那种高斯半径输入的click几乎不会发生预测错误的情况,因此直接使用backpropagating就不合适了。

1. [19 CVPR] Interactive Image Segmentation via Backpropagating Refinement Scheme

作者及单位:image.png

代码:Github

主要看点:

交互分割中 Backpropagating 的应用。 作者对交互点和预测图的结果的观察很有意义,想法非常棒的一个工作。

方法部分:

模型结构:

image.png
如上图,模型分为两个部分,一个粗糙预测网络和一个精细修复网络。

测试过程:

训练过程与以前的工作类似,但作者在 inference 过程中提出了有意思的干货。
用户点击的点一定会被分配到正确的标签嘛?作者说答案是不一定的。
如果发生这种情况,模型的预测是不符合用户的交互期望的,就会产生损失,那么可不可以在测试过程中优化参数,使得模型再次预测可以预测的符合用户的交互期望呢?
可以看下可以优化的部分有哪些:1. 图像; 2. 交互的distance map ;3. 网络参数。
如果更新网络参数,作者称可能会带来网络的灾难性遗忘,因此最好的选择是更新distance map (其实更新图像也能得到等效的效果吧)
可以通过最小化下列能量函数实现:
[19/20 CVPR] BRS and f-BRS - 图7,其中[19/20 CVPR] BRS and f-BRS - 图8是distance map (用于优化的)。

来看下这两个能量项目[19/20 CVPR] BRS and f-BRS - 图9

[19/20 CVPR] BRS and f-BRS - 图10是 corrective energy ,定义如下:
[19/20 CVPR] BRS and f-BRS - 图11,l(u)是用户标记,1或者0。[19/20 CVPR] BRS and f-BRS - 图12是用户标注的像素位置。[19/20 CVPR] BRS and f-BRS - 图13是网络输出的。
[19/20 CVPR] BRS and f-BRS - 图14是 inertial energy,定义如下:
[19/20 CVPR] BRS and f-BRS - 图15,这里,[19/20 CVPR] BRS and f-BRS - 图16表示初始的distance map。用这个符号来表示我也很迷,下标i可能是代表第i次用户交互?
为了更新distance map,对[19/20 CVPR] BRS and f-BRS - 图17求导,
[19/20 CVPR] BRS and f-BRS - 图18

在实践中,使用 L-BFGS 算法,去更新 interaction map。
以上的过程是迭代运行的,注意不是交互迭代,而是每次交互都要迭代。
下图展示了distance迭代的效果,下面三张图得仔细看才能看出来。
image.png
从消融实验中来看,效果还是很显著的
image.png

f-BRS中的一段话对这个方法的总结很好:

They find minimal edits to the distance maps that result in an object mask consistent with user-provided annotation. For that, they minimise a sum of two energy functions, i.e. corrective energy and inertial energy. Corrective energy function enforces consistency of the resulting mask with userprovided annotation and inertial energy prevents excessive perturbations in the network inputs

并且给出了更清晰的表达式:
[19/20 CVPR] BRS and f-BRS - 图21
其中[19/20 CVPR] BRS and f-BRS - 图22是网络在(u, v)处的输出, l 为交互的label (0或1),用户的交互点集合为[19/20 CVPR] BRS and f-BRS - 图23,x为输入的interaction map , ▲x是改变量。

一些困惑😐:

作者说

The training-free conversion, based on the proposed BRS, can convert various CNN-based vision algorithms into interactive ones effectively and easily.

作者说模型可以把一个任何一个模型变成可交互的(因为distance map可优化),并给出下图说明:

image.png
首先,c和c不一定相等,这个作为示意图可以理解,
但是疑问是卷积和从(u×u×c)变成了(u×u×2c),多出的卷积核的参数如何确定?
是从RGB通道上拷贝?这也不太对,因为Interaction maps是2个通道,而RGB是三个通道。
是随机的参数?这似乎可以行得通,因为测试的时候 Interaction maps 会迭代优化来适应这个奇怪的卷积核。作者在这里并没有解释清楚。
在BRS的实现中,这多出来的卷积参数是训练的来的,作者release的模型配置的输入可以看出:
文中还有一些符号不清晰,比如在下图中:
image.png
作者的解释如下:
image.png
我很难清楚地知道这些符号代表的含义,作者在文中也没有明确的定义。我的猜测如下:
上标 r 应该指当前迭代的轮次(BRS每次交互需要多次迭代 Distance map);
其他的符号我没有才出来具体是什么,z 也许是 Distance map。
z 在图上的上标是 k(r) - 1,在文中的描述为 r - 1 ,不清楚这个不一致是什么,另外函数 k( ) 是什么?🙆‍♀️


2. [20 CVPR] f-BRS: Rethinking Backpropagating Refinement for Interactive Segmentation

简称:f-BRS (feature backpropagating refinement scheme)

作者及单位:image.pngimage.png

代码 (nice code):Github

讲解视频:YouTube

主要看点:

  1. 如何解决之前 backpropagating 需要多次反向以及正向传播整个网络的问题(耗时)。
  2. 这个工作非常用心了,从开源代码,工具,以及视频制作都很棒。

方法部分:

再来回一下BRS中问题的定义:
[19/20 CVPR] BRS and f-BRS - 图29
其中[19/20 CVPR] BRS and f-BRS - 图30是网络在(u, v)处的输出, l 为交互的label (0或1),用户的交互点集合为[19/20 CVPR] BRS and f-BRS - 图31,x为输入的interaction map , ▲x是改变量。
BRS中是在 interaction map 上做的修改, f-BRS将这个过程迁移到了特征层面:
找一个辅助的参数 p,用这个参数去影响特征,这个参数的初始状态是 z 。这个参数在初始状态是不影响特征层的预测的,也就是说[19/20 CVPR] BRS and f-BRS - 图32
之后去寻找一个[19/20 CVPR] BRS and f-BRS - 图33,使得[19/20 CVPR] BRS and f-BRS - 图34更符合用户的交互预期。
[19/20 CVPR] BRS and f-BRS - 图35
关键问题是,这个辅助参数 p 选取的形式。为了达到更好的更正效果,作者提出p的选择应该保证以下原则:

  1. 更新p不能只影响局部 (localized effect);
  2. 在训练分割网络的时候,这一块是不用更新的。

作者在f-BRS这个工作中选取的 p 是 channel-wise scaling (weight) 和 bias。这两个参数改变会在全局上影响输出,而不是local sptail region上。
下图展示了 channel 和 spatial 上的作用效果:
image.png
可以看到 spatial 上的容易造成 local overfitting。

假设一个中间层为[19/20 CVPR] BRS and f-BRS - 图37,设它的 h 是channel 数目。这里定义一个 reparameterized function [19/20 CVPR] BRS and f-BRS - 图38
[19/20 CVPR] BRS and f-BRS - 图39,其中[19/20 CVPR] BRS and f-BRS - 图40,分别是a vector of scaling coefficients 和 a vector of biases,当 s = 1 和 b = 0 的时候不影响网络的预测。
g()可以当作无意义的,代表网络实现的具体操作。
具体的工作流程如下GIF所示:
fbrs_video_preview.gif

Zoom-In for interactive segmentation

这是一个提速的Trick,也能提高一些精度。它的提出基于这样一种假设,前两个交互点已经可以把物体的大致scale预测出来,因此在这个粗糙mask上放松一些边缘像素,crop后图基本上是包含目标物体的,但是size相比于原图会小很多。做法如下图所示:
image.png

实验结果:

image.png image.png

你看作者对比的 baseline 中有 RGB-BRS,对这三个通道的update得到的效果比distance map还好😶,不过时间稍微长了点。这些模型的update的对象如下图所示:
image.png