CVPR2018 oral|香港中文大学胡枭玮:用于阴影检测的 DSC 特征

代码模型 Admin ⋅ 于 10个月前 ⋅ 1559 阅读

来源:AI科技评论@微信公众号

作者:黄善清

编者按:阴影检测向来是计算机视觉中基础且富有挑战性的问题——对于一张输入图像,我们通过生成二进制图像来标记阴影区域,阴影区域的检测为进一步获取图像中的光照情况、物体的形状与位置,以及摄像机的参数提供了可能。与此同时,阴影的存在也为计算机视觉中进一步理解图像的算法,例如物体的检测与跟踪,带来了障碍。

来自香港中文大学的胡枭玮采用了提取 DSC 特征的方式来解决这个问题,本文提纲整理如下:

阴影检测相关工作与研究动机
DSC模型介绍
实验结果与讨论
最新工作---阴影去除

大家好,我是胡枭玮,来自香港中文大学。很荣幸能和大家介绍一下我们的工作「Direction-aware Spatial Context Features for Shadow Detection」。这篇文章已经被 CVPR2018 收录,并做口头报告 (Oral)。

作为计算机视觉中的基础问题,最近一些年来,阴影检测已经被广泛的研究。

最近的两个工作是基于深度学习的方法来检测阴影,目前看来已经达到了比较好的性能,这两种方法——scGAN 与 stacked-CNN,分别发表在了 2017 年的 ICCV 与 2016 年的 ECCV 上,主要是通过深度神经网络从大量的数据样本中自动学习特征,用于检测阴影区域。

然而,它们仍然可能将黑色的物体误检为阴影,或者漏掉一些不太明显的阴影区域。

file

在这幅漫画中,左边的这个人举着刀子指向右边的人,可能会让我们以为左边的家伙是一个杀手,但如果我们观察整幅图像,就会发现右边的这个人才是真正的杀手。在同一幅图画中,我们看到了两个完全不一样的故事。

在检测阴影区域的时候,我们也面临类似的问题。

file

正如这幅图展示的这样,如果只从局部区域来判断它是不是阴影,这个问题是十分困难的。

我们并不知道这个黑色区域到底是一个阴影还是一个黑色物体,所以我们需要通过分析更大的区域或者周围区域来决定它是否是阴影——换句话说,阴影检测需要去理解全局图像的上下文信息。

除此之外,我们还需要分析不同方向的上下文信息。

file

如图所示,当我们比较 A 区域与 B 区域的时候,由于 B 区域要比 A 区域亮许多,给了我们一个很强烈的指示:A 是阴影区域。

可是当我们去比较 C 区域和 A 区域的时候,我们并不能从 C 区域来判断 A 是不是阴影(C 区域与 A 区域同样都是阴影,且 C 区域更暗)。所以,为了进一步理解阴影,我们提出从不同方向的上下文特征来分析图像。

file

比如在这幅图中,阴影投射在不同颜色的背景上面。

如果我们使用之前的方法,位于黄色区域的阴影可能会检测不到。但是,当我们方向性地分析图像上下文信息,就可以从图像的上面或者下面来传播阴影信息,同时可以使用左边或右边的信息来推断阴影区域。

因此,我们的方法可以有效的检测到位于黄色区域的阴影。

什么是 spatial context features?

为了传播图像的全局上下文信息,我们使用空间 RNN 来获取空间上下文特征,该特征叫做 spatial context features。先输入一张特征图(这个特征图可以是卷积神经网络中任意的一张特征图),再从四个方向独立的传播信息,用来获得局部的空间上下文特征。

file

以向右传播为例,每一个特征值都会被它左边的这个值更新。

在这个更新的过程中,信息在整张特征图上从左到右传播(公式中的权值 alpha right 是共享的并且可以自动学习的)。通过聚合四个方向的结果