A+D net:Training a shadow detector with adversarial shadow attenuation

基本信息

  • ECCV 2018
  • http://openaccess.thecvf.com/content_ECCV_2018/html/Hieu_Le_AD_Net_Training_ECCV_2018_paper.html
  • www3.cs.stonybrook.edu/~cvl/projects/adnet/index.html
  • https://github.com/lmhieu612/ADNET_demo

值得借鉴的地方

  1. 使用通过网络去衰减阴影去扩充数据集,而不是折腾啥虚幻的全局语义,非常值得借鉴。
  2. 引入物理损失保证衰减阴影的准确性,保证只衰减阴影区域而不衰减别的区域。

Abstract

我们提出了一种新颖的基于GAN的框架来检测图像中的阴影,其中将阴影检测网络(D-Net)与生成对抗训练示例的阴影衰减网络(A-Net)一起进行训练。 A-Net修改了受简化的物理阴影模型约束的原始训练图像,并着重于欺骗D-Net的阴影预测。因此,它通过难以预测的情况有效地增强了D-Net的训练数据。训练D-Net可以预测原始图像和从A-Net生成的图像中的阴影。我们的实验结果表明,来自A-Net的额外训练数据显着提高了D-Net的阴影检测精度。我们的方法优于最具挑战性的阴影检测基准(SBU)上的最新方法,并且还获得了跨数据集任务(在UCF上进行测试)的最新结果。此外,提出的方法以每秒45帧的速度实现准确的实时阴影检测。

1 Introduction

阴影在自然场景中经常发生,并且可能妨碍许多任务,例如图像分割,对象跟踪和语义标记。 在场景中对象的光源,几何形状和材料之间复杂的物理交互作用中会形成阴影。 有关物理环境的信息,例如稀疏的3D场景重建[33],粗略的几何估计[22]以及在不同光照条件下[25]的同一场景的多个图像可以帮助阴影检测。 不幸的是,从单个图像推断一般场景的物理结构仍然是一个难题。

当处其他照片和网络图像时,阴影检测的难度会进一步增加[15]。这样的图像通常来自非线性相机传感器,并且呈现出许多压缩和噪声伪像。在这种情况下,最好训练和使用基于外观的分类器[36,7,27,13],而不是依赖光照的物理模型[4,5]。但是,影子分类器需要带注释的训练数据,并且分类器的性能通常与训练数据的数量相关。不幸的是,带注释的阴影数据收集和标记非常昂贵。只有最近可用的训练数据才从几百个图像[7,36]增加到几千个[30],从而能够基于深度卷积神经网络[30,20]训练功能更强大的阴影分类器。然而,与推动深度学习发展的数据集相比,即使几千张图像也只是很小的一部分[2,16]。因此可以安全地假设深度学习阴影分类器的性能尚未达到饱和,并且可以使用更多的训练数据来改善它。不幸的是,收集和注释阴影数据是一个费力的过程。即使是惰性标注方法[28],也需要花费大量精力。每个图像的注释步骤本身需要20秒,这不包括数据收集和清理工作。

在本文中,我们提出了一种方法来最大程度地提高可用阴影数据的效用,而不是收集其他数据。 主要思想是通过削弱原始训练图像中的阴影区域,从单个阴影图像生成一组增强训练图像。 我们将此过程称为阴影衰减,并为此训练了一个深度神经网络,称为A-Net。 如图1所示,该网络修改原始阴影图像以减弱阴影效果。生成的图像用作阴影检测器D-Net的其他具有挑战性的训练样本。 我们提出了一个新颖的框架,其中以衰减的方式联合训练阴影衰减器和阴影检测器。 衰减模型A-Net的输出为对抗训练样本提供了难以检测的阴影区域,以提高检测器D-Net的整体可靠性。

在这里插入图片描述

图1:对抗阴影衰减。 衰减器获取原始阴影图像,并生成不同的对抗性阴影样本以训练阴影检测器。

最近的研究还表明,深度网络对对抗性扰动高度敏感[19,26,34]。 通过联合训练A-Net和D-Net,我们可以根据最近的趋势直接增强检测器D-Net对对抗条件的抵抗力,并提高检测器的通用性[35,3,31]。

本质上,这里提出的是用于阴影检测的数据增强方法。它与其他数据增强方法不同,并且没有通用数据增强方法的两个固有问题,即:1)增强后的数据可能与真实数据有很大不同,在真实数据上训练的分类器的泛化能力没有影响,2)难以确保扩充后的数据样本具有与原始数据相同的标签,这会导致训练标签噪声。解决这些问题的一种流行方法是将增强数据样本约束为接近原始数据,例如,设置原始样本与所生成样本之间的L2距离的上限。但是,很难设置正确的界限。较大的值会产生标签噪音,而较小的值会产生与原始数据过于相似的增强样本,没有任何好处。在本文中,我们以有原则的方式针对阴影检测解决了这两个问题。我们的想法是使用阴影和光照的物理模型来指导数据生成过程并估计出现标签噪声的可能性。

请注意,我们旨在衰减阴影区域,而不是将其删除。 阴影去除是一个重要的问题,但是训练一个好的阴影去除网络将需要许多训练对对应的无阴影/无阴影的图像,这是不可用的。 此外,完全去除的阴影将对应于具有标签噪声,并且这可能会损害检测器的性能。

实验结果表明,在具有挑战性的阴影检测基准SBU [30]以及跨数据集任务(在SBU上进行训练并在UCF数据集上进行测试[36])上,我们的阴影检测器优于最新方法。 此外,我们的方法比许多现有方法更有效,因为它不需要后处理步骤,例如补丁平均或条件随机场(CRF)平滑。 对于256×256输入图像,我们的方法以每秒45帧的速度检测阴影。

2 Related Work

单图像阴影检测是一个经过充分研究的问题。早期的工作集中在照明的物理建模上[5,4]。这些方法在阴影检测很简单的情况下使图像的照度不变表示。但是,这些方法仅适用于使用窄带传感器拍摄的高质量图像[15]。Panagopoulos等人的方法是将基于物理学的约束与粗糙几何体结合在一起的另一种早期尝试。 [21]其中,照明环境被建模为冯·米塞斯-费舍尔分布[1]的混合物,并且阴影像素通过图形模型进行了分割。近来,基于来自小型带注释数据集[36,7]的学习分类器[8,11,27,13]的数据驱动方法显示出更多的成功。例如,Vicente等 [27,29]基于留一误差估计优化了多核最小二乘支持向量机。这种方法在UCF [36]和UIUC [7]数据集上产生了准确的结果,但是其基础的训练过程和优化方法无法处理大量的训练数据。

为了处理大量训练数据并从中受益,最近基于深度神经网络的随机梯度下降训练开发了阴影检测方法。维森特等[30]提出了一个stacked-CNN架构,将图像级别的全卷积神经网络(FCN)与patch-CNN结合起来。这种方法取得了良好的检测结果,但是它很麻烦,因为必须使用全连接网络(FCN)的预测来训练其预测来训练patch-CNN。同样,测试很耗时,因为它需要FCN预测,然后需要覆盖测试图像的密集采样斑块的预测。最近,Nguyen等 [20]提出了scGAN,一种基于生成对抗网络(GAN)的方法[6]。他们提出了一个参数化条件GAN [17]框架,其中训练了生成器以根据输入的RGB色块和灵敏度参数为条件生成阴影蒙板。为了获得输入图像的最终阴影蒙版,生成器必须在多个比例的多个图像块上运行,并对输出进行平均。他们的方法在SBU数据集上取得了良好的结果,但是检测过程在测试时计算量很大。我们提出的方法还使用对抗训练进行阴影检测,但与scGAN根本不同。 scGAN使用生成器生成以输入图像为条件的二进制阴影蒙版,而我们的方法使用生成器生成RGB空间中的增强训练图像。此外,尽管scGAN使用区分符作为调节器来鼓励全局一致性,但我们的方法中的区分符在阴影像素分类中起着更为重要的作用。与scGAN相比,我们的方法不需要后期处理或输出平均,从而可以进行实时阴影检测。使用GAN进行阴影检测的另一种方法是Stacked Conditional GAN [32]。但是,此方法需要无阴影图像。最近的另一种方法[10]建议使用上下文信息进行更好的阴影检测。通过具有几个空间方向的递归神经网络来合并上下文信息。尽管此方法在阴影检测基准上可获得出色的结果,但它还需要运行CRF作为后处理步骤。

我们提出了一种通过增强训练示例来改进阴影检测的方法,并与数据增强的最新趋势保持同步。例如,张等人 [35]提出了一种简单的扩充方法,即通过将样本对及其标签的线性组合丰富数据集,以提高网络的泛化性及其对对抗样本的抵抗力。 Shrivastava等人 [24]提出了另一种使用对抗性示例来训练网络的方法。他们对抗性地训练了一个Refiner网络,该网络输入合成示例并输出更逼真的图像。细化的示例可以用作其他训练数据。以类似的方式,我们提出的衰减器(A-Net)会获取原始训练图像,并生成带有衰减阴影的真实图像,作为阴影检测器的其他训练示例。对抗性示例的生成是与检测器(D-Net)联合训练过程中不可或缺的部分,与[24]相比,生成的数据是丰富训练集的预处理步骤。阴影衰减器的作用也可以看作与对抗性扰动有关[18]:A-Net修改输入图像,以掩盖阴影检测器D-Net的预测。对抗性示例也可以用于改善网络的通用性以进行域自适应[31],其中条件GAN用于执行特征增强。

3 Adversarial Training and Attenuation

3.1 Framework Overview

我们提出了一种基于对抗训练和阴影衰减的新型阴影检测框架。 我们提出的模型包含两个共同训练的深度网络。 图2说明了我们框架的流程图。 称为衰减器或A-Net的阴影衰减网络将阴影图像及其对应的阴影蒙版作为输入。 基于这些输入,衰减器生成输入图像的一个版本,其中阴影已被衰减。 可以将衰减视为部分阴影去除。 衰减器生成的图像被馈入阴影检测网络,称为检测器或D-Net,该网络可预测阴影区域。 在每次训练迭代中,D-Net还将获取原始输入图像,并学习预测相应的带注释的地面真实阴影蒙板。

在这里插入图片描述

图3:A-Net。 相对于输入图像的差异损失限制了阴影蒙板外部的区域。 阴影蒙板内部的区域受D-Net的反馈和基于物理约束的约束。

A-Net经过训练可衰减阴影区域,从而迷惑阴影检测器。 对于阴影蒙版内的像素,A-Net会修改像素的值以将其伪装为非阴影像素,以使D-Net无法识别它们。 我们通过使用结合了物理启发的阴影区域的损耗来进一步限制衰减变换。 这提高了所生成像素的质量,从而提高了检测器的通用性。 同时,A-Net学会了不更改值或阴影蒙版外部的像素。我们通过使用一个损失惩罚阴影蒙版(非阴影像素)外部区域上的生成图像和输入图像之间的差异来实现上述目的。 具有所有上述约束的对抗训练过程以及来自阴影检测网络的反向传播误差指导A-Net执行阴影衰减。

探测器网络D-Net用A-Net生成的对抗性示例作为输入,并预测阴影蒙版。 通常,由A-Net生成的图像中的阴影区域比输入图像中的阴影区域更难检测,因为A-Net经过训练可将阴影衰减以欺骗D-Net。 因此,除了原始的训练示例外,D-Net还有挑战性的示例训练。 随着D-Net增强了检测阴影的能力,A-Net还增强了其减弱阴影的能力,从而给D-Net提供更具有挑战性的阴影示例。 这个过程增强了D-Net的阴影检测能力。

3.2 Physics-based Shadow and Illumination Model

我们使用基于物理的照明模型来指导数据生成过程并避免标签噪声。 我们使用Guo等[7,8]使用的简化照明模型,其中,每个像素均由直接光和环境光组合照明: I i = ( k i L d + L e ) R i I_i = (k_iL_d + L_e)R_i Ii=(kiLd+Le)Ri,其中 I I I是图像, I i I_i Ii表示彩色图像的第 i i i个像素。 R i R_i Ri是与第 i i i个像素相对应的表面反射率。 L d L_d Ld L e L_e Le是3×1向量,分别代表直射光和环境光的颜色和强度(模拟区域源和相互反射)。 k i ∈ [ 0 , 1 ] k_i \in [0,1] ki[0,1]是阴影因子,表示有多少直接光到达像素 i i i。 对于阴影的本影区域, k i k_i ki保持接近于0,而在半影区域中, k i k_i ki逐渐接近于1。 对于无阴影区域 k i k_i ki = 1内的像素,我们可以通过以下比率来关联原始阴影区域及其对应的衰减阴影区域:

I i s h a d o w − f r e e I i s h a d o w = L d + L e k i L d + L e \frac {I_i^{shadow-free}} {I_i^{shadow}} = \frac {L_d + L_e} {k_iL_d + L_e} IishadowIishadowfree=kiLd+LeLd+Le

通过计算无阴影值和阴影值之间的比率,我们消除了未知的反射系数。 我们假设直射光在图像所描绘的场景上是恒定的,并且环境光对所有像素的影响都是相似的。 我们将此模型整合到A-Net和D-Net的训练过程中:

  • A-Net:我们设计物理损耗来强制衰减阴影区域内像素的照明比具有较小的差异。
  • D-Net:我们直接估算阴影蒙版内外区域之间的照度比,以测量衰减图像中的阴影强度,从而避免训练标签噪声。

3.3 A-Net: Shadow Attenuator Network

阴影衰减器网络A-Net被训练为仅对阴影区域进行重新照明,以使探测器网络D-Net无法检测到它们。 为了获得有用且逼真的衰减阴影,A-Net旨在在尊重物理照明模型的同时欺骗D-Net。 图3显示了A-Net的训练过程,该过程在以下约束和目标下衰减阴影区域:1)保留非阴影像素的值。 2)阴影像素被重新照明,以使D-Net无法将其识别为阴影像素。 3)产生的像素变换遵守物理启发的照明约束。

通过定义适当的损失函数,可以将这些约束和目标并入A-Net的训练中。 I I I表示一个输入图像, M ( I ) M(I) M(I)代表 I I I的阴影。 A ( I ) A(I) A(I)代表 I I I M ( I ) M(I) M(I)组成的输入对的A-Net输出(这里我们令 A ( I ) A(I) A(I) 作为 A ( I , M ( I ) ) A(I, M(I)) A(IM(I))的缩写。 令 D ( I ) D(I) D(I)表示输入图像 I I I的D-Net的输出,即预测的阴影蒙版。 理想情况下,阴影像素的输出应为1,否则为0。 A-Net训练的目标是使三个损失的加权组合最小化:

L A ( I ) = λ n s d L n s d ( I ) + λ s d L s d ( I ) + λ p h L p h ( I ) (1) L_A(I) = \lambda_{nsd} L_{nsd}(I) + \lambda_{sd}L_{sd}(I) + \lambda_{ph} L_{ph}(I) \tag 1 LA(I)=λnsdLnsd(I)+λsdLsd(I)+λphLph(I)(1)

其中 λ n s d \lambda_{nsd} λnsd是对输入图像 I I I的阴影蒙版 M ( I ) M(I) M(I)以外的像素的值的修改造成损失的损失: λ n s d ( I ) = m e a n i ∉ M ( I ) ∣ ∣ A ( I ) i − I i ∣ ∣ 1 \lambda_{nsd}(I) ={\rm mean}_{i \notin M(I)}||A(I)_i - I_i||_1 λnsd(I)=meani/M(I)A(I)iIi1 L s d L_{sd} Lsd是对抗性损失,它会限制生成的图像上阴影像素的D-Net正确识别,仅限于训练阴影蒙版 M ( I ) M(I) M(I)内: L s d ( I ) = m e a n i ∈ M ( I ) [ D ( A ( I ) ) i ] L_{sd}(I)={\rm mean}_{i \in M(I)}[D(A(I))_i] Lsd(I)=meaniM(I)[D(A(I))i] L p h L_{ph} Lph是一种受物理学启发的损失,可确保以物理上可行的方式重新照明生成图像中的阴影区域。 基于第3.2节中描述的照明模型,我们希望在重新照明的阴影区域内,所有像素 i i i的比率 A ( I ) i I i \frac{A(I)_i}{I_i} IiA(I)i都相似。 我们通过为对数比的方差添加一个损失项来对此建模:

L p h ( I ) = ∑ c ∈ { R , G , B } V a r i a n c e i ∈ M ( I ) [ log ⁡ ( A ( I ) i c ) − log ⁡ ( I i c ) ] L_{ph}(I) = \sum_{c \in \{R, G, B\}} \mathop{\rm Variance }\limits_{i \in M(I)} [\log(A(I)_i^c) - \log(I_i^c)] Lph(I)=c{R,G,B}iM(I)Variance[log(A(I)ic)log(Iic)]

( ⋅ ) c (\cdot)^c ()c表示RGB彩色图像某通道c中的像素值。

图4显示了对抗训练过程中A-Net产生的衰减阴影的一些示例。 两个原始输入图像包含强度为3.46和2.63的易于检测的阴影。 测量这些阴影强度值的启发式方法将在3.4节中介绍。 给定这些输入图像和荫罩的A-Net的输出显示在列(c,d,e)中,该列是在训练期间的第1、5和40轮获得的。 随着训练的进行,生成的图像中的阴影变得更难检测。 在数值上,衰减阴影的阴影强度随时间降低。 此外,A-Net还学会了不更改非阴影区域。

在这里插入图片描述

图4:衰减阴影的示例。 (a)输入图像。 (b)阴影蒙版GT。 (c,d,e):A-Net分别从时期1、5和40产生阴影衰减的对抗示例。 相应的阴影强度在每个图像的左上角显示为黑色文本。

3.4 D-Net: Shadow Detector Network

D-Net是我们框架的核心。 它学习从A-Net生成的对抗示例以及原始训练示例中检测阴影。 在每次训练迭代中,原始输入和对抗衰减的图像均用于训练D-Net。 D-Net的学习目标是最小化以下损失函数:

L D ( I ) = λ r e a l ∣ ∣ D ( I ) − M ( I ) ∣ ∣ 1 + λ a d v ( A ( I ) ) ∣ ∣ D ( A ( I ) ) − M ( I ) ∣ ∣ 1 (2) L_D(I) = \lambda_{real} ||D(I) - M(I)||_1 + \lambda_{adv}(A(I))||D(A(I)) - M(I)||_1 \tag 2 LD(I)=λrealD(I)M(I)1+λadv(A(I))D(A(I))M(I)1(2)

其中 λ r e a l λ_{real} λreal λ a d v ( A ( I ) ) λ_{adv}(A(I)) λadv(A(I))控制D-Net应从真实样本 I I I和对抗性示例 A ( I ) A(I) A(I)分别学习多少。 λ a d v ( A ( I ) ) λ_{adv}(A(I)) λadv(A(I))取决于 I I I中的阴影被衰减了多少。 如果 A ( I ) A(I) A(I) I I I的完全无阴影版本,则理想情况下, λ a d v ( A ( I ) ) λ_{adv}(A(I)) λadv(A(I))应该为零。 否则,此损失函数对应于具有标签噪声,因为它要求阴影检测器D-Net的输入 A ( I ) A(I) A(I)的输出与阴影蒙版 M ( I ) M(I) M(I)相同,而 A ( I ) A(I) A(I)为无阴影图片。

为了确定 A ( I ) A(I) A(I)是否为无阴影图像,我们基于第3.2节中描述的照明模型得出启发式算法。 我们首先在阴影边界旁边定义两个区域,分别表示为 B i n B_{in} Bin B o u t B_{out} Bout,如图5所示。 B o u t B_{out} Bout(绿色)是边界外部的区域,通过减去阴影蒙版的膨胀结果来计算。 内部区域 B i n B_{in} Bin(红色)是腐蚀的阴影蒙版。 我们将阴影强度 k s t r e n g t h k_{strength} kstrength定义为两个边界区域的平均像素强度之比: k s t r e n g t h ( A ( I ) ) = m e a n i ∈ B o u t [ A ( I ) i ] m e a n i ∈ B i n [ A ( I ) i ] k_{strength}(A(I)) = \frac{\mathop{\rm mean}_{i \in B_{out}}[A(I)_i]} {\mathop{\rm mean}_{i \in B_{in}}[A(I)_i]} kstrength(A(I))=meaniBin[A(I)i]meaniBout[A(I)i]。 图5示出了具有两个不同阴影强度的图像的两个示例。 阴影较暗(相对于非阴影区域)的图像具有较高的 k s t r e n g t h k_{strength} kstrength值,反之亦然。

在这里插入图片描述

图5:估计阴影强度。 从真实的阴影蒙版中,我们定义了通过阴影蒙版的膨胀和腐蚀而获得的两个区域 B i n B_{in} Bin(红色)和 B o u t B_{out} Bout(绿色)。 阴影强度 k s t r e n g t h k_{strength} kstrength计算为 B o u t B_{out} Bout中像素的平均强度与 B i n B_{in} Bin中像素的平均强度之比。 (a)阴影非常强的图像, k s t r e n g t h k_{strength} kstrength = 4.16。 (b)浅阴影, k s t r e n g t h k_{strength} kstrength = 1.15。

我们使用衰减图像的阴影强度来确定D-Net是否应从衰减阴影图像中学习。 如果阴影强度 k s t r e n g t h k_{strength} kstrength太接近1,即阴影边界两侧的两个区域具有相同的平均强度,则可以完全去除阴影。 基于这种启发式方法,我们将对抗性示例 A ( I ) A(I) A(I)的权重设置如下:

λ a d v ( A ( I ) ) = { λ a d v 0 i f   k s t r e n g t h ( A ( I ) ) > 1 + ϵ 0 o t h e r w i s e (3) \lambda_{adv}(A(I)) = \left \{ \begin{array}{ll} \lambda_{adv}^0 & {\rm if \ } k_{strength}(A(I)) > 1 + \epsilon \\ 0 & {\rm otherwise} \end{array} \right. \tag 3 λadv(A(I))={λadv00if kstrength(A(I))>1+ϵotherwise(3)

其中 λ a d v 0 \lambda_{adv}^0 λadv0是对抗示例的可调基线因子, ϵ \epsilon ϵ是一个较小的阈值,根据经验我们将其设置为0.05。

3.5 Network Architectures

A-Net和D-Net都是基于U-Net架构[23]开发的。 根据[12],我们创建了具有七个跳过连接模块的网络,每个模块都包含一系列卷积,BatchNorm和Leaky-ReLu [9]层。 A-Net输入是一个四通道图像,它是RGB图像和相应的阴影蒙版的串联。 A-Net输出是一个三通道RGB图像。 D-Net的输入是RGB图像,输出是单通道阴影掩码。

4 Experiments and Results

我们在几个公共影子数据集上进行了实验。其中之一是SBU Shadow数据集[30]。该数据集由成对的RGB图像和相应的带注释的阴影二进制掩码组成。 SBU数据集包含4089个训练图像和638个测试图像,是目前最大和最具挑战性的阴影基准。我们还在UCF测试集上进行跨数据集实验[36],该测试集包含110张带有相应阴影蒙版的图像。我们通过将测试的真实阴影蒙版与D-Net生产的预测蒙版进行比较,定量评估阴影检测性能。按照阴影检测文献中的惯例,我们将使用平衡错误率( B E R BER BER)作为主要评估指标。 BER定义为: B E R = 1 − 1 / 2 ( T P T P + F N + T N T N + F P ) BER = 1 - 1/2(\frac{TP}{TP+FN} + \frac{TN}{TN+FP}) BER=11/2(TP+FNTP+TN+FPTN),其中 T P TP TP T N TN TN F P FP FP F N FN FN分别是预测正确的阴影像素,预测正确的非阴影像素,预测错误的阴影像素和预测错误的非阴影像素的总数。由于自然图像倾向于压倒性地增加更多的非阴影像素,因此 B E R BER BER的偏差要小于平均像素精度。我们还为阴影和非阴影类分别提供了平均像素错误率。

训练和实现细节。 我们使用Adam求解器[14]的随机梯度下降来训练我们的模型。 批大小为64。在每次训练迭代中,我们连续执行三个前向传播:将输入阴影图像 I I I转发到A-Net以获取对抗性示例 A ( I ) A(I) A(I),然后分别转发对抗性图像 A ( I ) A(I) A(I)和阴影输入图像到D-Net。 正如[6]所提出的,D-Net上的一个参数更新一次,A-Net上的参数也更新一次。 在训练和测试之前,我们将图像转换为对数空间。 我们通过实验将训练参数设置为: ( λ n s d , λ s d , λ p h , λ r e a l , λ a d v 0 ) : = ( 30 , 1 , 100 , 0.8 , 0.2 ) (λ_{nsd},λ_{sd},λ_{ph},λ_{real},λ_{adv}^0):=(30,1,100,0.8,0.2) (λnsdλsdλphλrealλadv0:=(30,1,100,0.8,0.2)。 我们在PyTorch上实现了我们的框架。 有关更多详细信息,请访问:http://www3.cs.stonybrook.edu/~cvl/projects/adnet/index.html

4.1 Shadow Detection Evaluation

我们评估了SBU和UCF数据集上提出的D-Net的阴影检测性能。 为了检测图像中的阴影,我们首先将图像调整为256×256。 我们将此图像输入D-net,以生成尺寸为256×256的阴影蒙版,并将其与真实的阴影蒙版进行比较以进行评估(以原始尺寸)。

在表1中,我们将我们的方法的性能与最先进的方法Stacked-CNN [30],scGAN [20],ST-CGAN [32]和DSC [10]进行了比较。 我们还考虑了D-Net的一种变体,它经过训练而没有来自A-Net的衰减阴影图像。 所有方法都在SBU训练集中进行训练。 性能是根据BER以及阴影和非阴影的BER。 请注意,DSC [10]仅报告了SBU数据集上的BER值,并且其跨分布结果是从不同于常用UCF测试数据集的测试数据上获得的(由[36]提出)。

在这里插入图片描述

表1:SBU Shadow数据集[30]上的阴影检测方法评估以及UCF上的跨数据集[36]评估。 所有方法均在SBU训练数据上进行训练。 同时显示了平衡错误率(BER)和每类错误率。 DSC [10]仅报告了BER数值,并且使用了不同的UCF测试数据集,因此无法比较跨分布性能。 最佳性能以粗体显示。

在SBU测试集上,我们的检测器(D-Net)优于以前的最新方法。 与Stacked-CNN相比,我们减少了51%的错误。 与scGAN和ST-CGAN相比,D-Net分别减少了41%的错误和33%的错误。 尽管D-Net明显更简单,但它的误码率却比DSC高0.2%。 D-Net是完全卷积的,不需要运行递归神经网络和CRF后处理。

对于跨数据集实验,检测器在SBU训练集上进行训练,但在UCF数据集的测试集上进行评估[36]。 这些数据集是不相交的。 SBU涵盖了广泛的场景,而UCF则专注于存在暗影和暗反照率物体的图像。 同样,我们将我们的方法与以前的最新方法进行了比较:StackedCNN [30],scGAN [20]和ST-CGAN [32]。 就BER而言,相对于scGAN和ST-CGAN,我们提出的D-Net分别将错误率显着降低了18%和16%。 在使用和不使用衰减阴影图像的情况下训练的D-Net之间的性能差距非常显着,突出了使用衰减阴影示例进行训练的好处。

4.2 Qualitative Results

在图6(i)和(ii)中,我们显示了SBU数据集上的阴影检测结果。 这些列分别显示输入图像,地面真实阴影蒙版和D-Net输出。 在图6.(i)中,我们看到了D-Net如何正确预测不同类型的场景中的阴影,例如沙漠,高山,大雪,以及在从晴天到多云和阴天的不同天气条件下。 在图6.(ii)中,请注意D-Net如何准确地预测特写镜头,远距离拍摄以及航空影像中的阴影。 图7显示了scGAN阴影检测结果的定性比较[20]。 通常,D-Net会产生带有更清晰边界的更准确的阴影。

在这里插入图片描述

图6:阴影检测结果。 我们提出的方法可以准确地检测以下方面的阴影:(i)不同的场景和照明条件; (ii)特写镜头和远距离拍摄以及航拍图像。

在这里插入图片描述

图7:SBU数据集上阴影检测的比较。 我们的方法与最先进的方法scGAN之间的定性比较[20]。 (a)输入图像。 (b)真实的荫罩。 (c)scGAN [20]预测的荫罩。 (d)通过我们的方法预测的荫罩。

4.3 Failure Cases

我们的方法的一些失败案例如图8所示。许多是由于暗反照率物质区域被错误地归类为阴影所致。 我们还将调查错误分类的像素的位置,以了解故障原因。 图9显示了错误预测像素相对于SBU测试集上最接近的地面真实阴影边界的距离的比例。 大部分丢失的阴影像素在距边界一小段距离之内。 具体而言,65%的假阴性情况在阴影边界的10个像素内。 这意味着我们的方法遗漏的阴影像素可能在阴影边界附近或非常小的阴影区域内。 同时,大部分误报预测都远离阴影边界。 这可能是由于将深色物体分类为阴影所致。

在这里插入图片描述

图8:阴影检测失败的示例。 由于非阴影暗反射率区域,我们的方法失败了。 (a)输入图像。 (b)真实的面具。 (c)通过我们的方法预测的阴影蒙版。

在这里插入图片描述

图9:错误预测像素到SBU测试集上最接近阴影边界的距离的累积曲线。

4.4 Ablation Study and Parameter Analysis

我们进行了实验,以分析基于物理的损耗( L p h L_{ph} Lph)和权重函数 λ a d v λ_{adv} λadv在我们框架中的影响。我们用另外两个场景对模型进行了训练,以进行比较:1)没有基于物理的损失并且没有权重函数 λ a d v λ_{adv} λadv,以及2)有基于物理的损失但没有权重函数 λ a d v λ_{adv} λadv。我们将这两种配置分别表示为(- L p h L_{ph} Lph,- λ a d v λ_{adv} λadv)和(+ L p h L_{ph} Lph,- λ a d v λ_{adv} λadv)。表2显示了在这些修改过的条件下训练的模型的阴影检测结果。我们在UCF和SBU测试集中测试了经过SBU训练的模型。从表2可以看出,降低权重函数 λ a d v λ_{adv} λadv会稍微增加错误率,而降低基于物理的损耗 L p h L_{ph} Lph会大大增加错误率。在图10中,我们比较了有无基于物理的损失训练的模型生成的对抗性示例。合并此损耗会产生具有更逼真的衰减阴影的图像。因此,产生的示例有助于阴影检测器D-Net的训练。在我们的实验中,在第50个训练轮次,基于λadv的A-Net生成的所有图像中约有6%未使用。

在这里插入图片描述

表2:消融研究。 包含和不包含基于物理的损耗 L p h L_{ph} Lph时,我们框架的阴影检测结果的比较。 通过将基于物理的损耗 L p h L_{ph} Lph纳入训练过程,检测性能显着提高:SBU [30]测试集中的BER降低20%,UCF降低27%[36](跨数据集任务)

在这里插入图片描述

图10:在有或没有物理条件下生成的对抗性示例。 (a)输入图像I。(b)由A-net生成的对抗示例,无需经过物理损失即可训练。 (c)由经过物理损失训练的A-net生成的对抗示例

我们进行了实验,以研究框架参数的影响。 我们从第4节中介绍的参数设置开始。当我们选择 λ s d λ_{sd} λsd= 10时,D-Net可获得6.5%的BER。 随着 λ s d λ_{sd} λsd的增加,A-Net会更显着地衰减阴影,但也趋向于改变非阴影部分,从而通常生成质量较低的图像。 在第二个实验中,我们重新调整了输入到D-Net的真实图像和对抗图像之间的比例。 当我们选择 λ a d v 0 λ_{adv}^0 λadv0= 0.5和 λ r e a l λ_{real} λreal= 0.5时,D-Net获得7.0%的BER。

在这里插入图片描述

表2:消融研究。 包含和不包含基于物理的损耗 L p h L_{ph} Lph时,我们框架的阴影检测结果的比较。 通过将基于物理的损耗 L p h L_{ph} Lph纳入训练过程,检测性能显着受益:SBU [30]测试集中的BER降低了20%,UCF中的错误减少了27%[36](跨数据集任务)

5 Summary

在本文中,我们提出了一种使用阴影衰减进行阴影检测器对抗训练的新颖框架。 我们已经通过实验展示了我们的模型如何能够从真实的影子训练示例以及对抗示例中有效学习。 我们训练有素的模型在两个基准数据集中表现优于以前的最新阴影检测器,证明了我们模型的有效性和泛化能力。 此外,据我们所知,这是第一款能够以45 fps的实时速度准确检测阴影的阴影检测器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值