使用背景匹配的自适应背景抠图
一、介绍
本论文提出了一种自适应的背景抠图方法,主要内容为以下三个部分:
- 背景匹配网络(background matching network,BMN)
- 鲁棒的语义估计网络(robust semantic estimation network,REN)
- 精确的阿尔法估计网络(accurate alpha estimation network,AEN)
对于视频的每一帧,使用背景匹配网络在背景帧中识别相应的背景帧。之后,鲁棒语义估计网络估计出粗略的阿尔法矩阵。有了粗略的阿尔法图像,我们对输入进行裁剪以去除空白区域,将其放大到一个大尺寸,并使用阿尔法估计网络来估计最终的前景图像。
这项工作的主要贡献是。
- 提出了一种新型的自适应背景抠图方法。作者认为这是目前第一个使用动态背景视频进行精确抠图的方法。
- 提出了一个有效的通道(pipeline),从输入视频和动态背景视频中估计α图像。BMN从动态背景帧中找到最佳匹配的背景,再用REN和AEN从粗到细逐步估计准确的阿尔法图像,使网络更加地具有鲁棒性。
二、相关工作
抠图算法:
已知输入图像
I
I
I,背景图像
B
B
B,求图像
I
I
I的前景
F
F
F,以及前景概率
α
α
α。(前景与背景相对,指我们所需的人像及人所持的物体)
I
=
α
F
+
(
1
−
α
)
B
(
1
)
I = αF+(1-α)B \quad (1)
I=αF+(1−α)B(1)
所以视频中的每一帧
I
I
I 可以被看作是前景
F
F
F 和背景
B
B
B 通过
α
α
α 系数的线性组合,通过提取
α
α
α 和
F
F
F,我们可以将前景物体合成到新的背景中,达到背景替换的效果。
语义分割:
图像是由许多像素(Pixel)组成,而语义分割顾名思义就是将像素按照图像中表达语义含义的不同进行分组/分割(Grouping)
三、方法
BMN识别背景帧中的相应背景,试图找到与当前帧最匹配的背景。在现实中,来自BMN的匹配背景可能与当前帧存在重合度不高、颜色和位置差异。
因此,我们逐步估计阿尔法矩阵,首先估计粗略的阿尔法矩阵,然后细化粗略的阿尔法矩阵。REN从输入帧和BMN的匹配背景中估计粗略的阿尔法图像。AEN最后使用粗阿尔法图像、输入帧和匹配的背景对粗阿尔法图像进行细化。整个流程图如图2所示。
3.1. 背景匹配网络
背景是动态的,考虑到当前的输入图像或帧,我们的目标是找到最佳匹配的背景。在实际应用中,捕获的视频和动态背景包含连续的帧,而且各帧之间的差异很小。因此我们不是简单地将候选背景帧分类为匹配或不匹配的类别,而是试图估计相似度值。
背景匹配网络需要两个输入:输入帧和背景帧。该网络的输出为两个输入图像的估计相似度。
BMN的结构是由几个卷积层、下采样层和全连接层组成。
训练则需要当前帧、相应的背景,即地面实况背景和地面实况阿尔法矩阵信息。
在训练中则使用大量的不匹配的背景和地面真实背景的简单转换来训练BMN。我们将相似度
S
S
S定义为1减去非地面区域的平均L1差值,即非地面区域的平均L1差值。非地面区域,即背景区域。
其中i代表第i个像素,x是当前帧,y是输入的背景帧,α是相应的阿尔法矩阵,因此1-α的非零元素表示背景区域。
有了相似度的定义,我们使用以下损失函数来训练BMN。
其中B代表BMN的输出,
y
g
t
y_gt
ygt是地面实况背景,
α
g
t
α_gt
αgt是地面实况阿尔法矩阵。
在测试过程中,对于所有的背景帧,我们用BMN来计算与当前帧的相似度。具有最高相似度的背景帧是最佳匹配的背景。
3.2. 鲁棒的语义估计网络
使用鲁棒语义估计网络(REN)来估计粗略的阿尔法矩阵。
图2很好地展示了REN的结构,它基本上是一个特征金字塔网络[21]。低层次的特征通过跳过连接与高层次的特征相结合。
在训练过程中,多尺寸特征被用来预测不同分辨率的粗阿尔法矩阵。
由于REN的目标是估计粗略的语义信息,我们使用二元交叉熵损失来训练REN。
其中x是输出,y是地面实况图像。
根据多尺寸的阿尔法图像输出,相应地计算出多尺寸的损失:
其中R(x)是REN的全尺寸输出,
α
g
t
α_gt
αgt是真实地面的阿尔法矩阵,
1
2
\frac{1}{2}
21和
1
4
\frac{1}{4}
41的代表与输入尺寸相比的比例。
3.3. 精确的阿尔法估计网络
我们观察到,前景区域通常是整个图像的一小部分,因此我们对目标前景区域进行轻微的裁剪,并将其放大到一个固定的大尺寸(实验中为640×640),以更好地细化细节,包括输入帧、匹配的背景和粗略的阿尔法矩阵。裁剪操作是基于REN估计的粗阿尔法哑光。
精确的阿尔法估计网络(AEN)包含编码器和解码器,将低级别的特征与高级别的特征相连接,以预测精细的阿尔法图像。除了阿尔法图像,还同时估计前景残余物(foreground residual)。
这里使用
L
1
L_1
L1损失来训练AEN,阿尔法图像的损失函数为:
前景的损失函数为:
其中,
A
(
x
)
α
A(x)^α
A(x)α是输出的α图像,
A
(
x
)
f
g
r
A(x)^{fgr}
A(x)fgr是输出的前景残余,
α
g
t
α_{gt}
αgt是地面实况α图像,
f
g
r
g
t
fgr_{gt}
fgrgt是地面真实的前景。最终的损失函数是阿尔法损失和前景损失之和。
3.4. 实施细节
训练细节。
为了提高速度,BMN和AEN都在低分辨率下进行训练。输入和背景被降级为192×320。当训练AEN时,所有的图像都根据粗略的阿尔法矩阵进行裁剪,然后放大到640×640。BMN和AEN是独立训练的。REN和AEN分别训练一些历时,然后我们共同训练REN和AEN。
背景匹配加速。
本方法通过估计当前帧和所有候选背景帧的相似度,设法从所有背景帧中找到最佳匹配的背景。
当背景视频很长时,它可能非常耗时。通常情况下,背景视频包含连续的帧,而相邻的帧之间的差异很小。与其从所有的背景帧中寻找最佳匹配的背景,不如先用固定的间隔采样减少候选背景帧。
例如,如果将采样间隔设置为8,那么只有12.5%的背景帧会被使用,从而大大加快了背景匹配过程。