结合多尺度及密集特征图融合的阴影检测方法

2021-06-28 08:29张世辉张笑维张笑笑牛景春
计量学报 2021年5期
关键词:密集阴影卷积

张世辉, 张笑维, 李 贺, 张笑笑, 牛景春, 陈 琦

(1.燕山大学 信息科学与工程学院,河北 秦皇岛 066004;2.河北省计算机虚拟技术与系统集成重点实验室,河北 秦皇岛 066004)

1 引 言

阴影既是一种光学现象,又是一种几何现象。阴影在自然场景中无处不在。一方面,阴影可提供物体形状[1]、光源和照明条件[2~5]、相机参数和地理位置[6,7]以及场景几何[8]等有关场景的关键信息;另一方面,阴影也会给许多光学测量、场景理解等任务带来困难。因此,阴影检测是视觉计算、光学处理中最基本的问题之一。已有的阴影检测方法可以分为两大类。一类是传统的阴影检测方法[9~12],另一类基于深度学习的阴影检测方法[13~17]。在传统的阴影检测方法方面,Zhu等[9]提出了一种基于强度、梯度和纹理,利用条件随机场细化阴影的方法,但是该方法主要针对单色户外图像。Lalonde等[10]通过比较相邻区域的颜色和纹理并使用条件随机场找到阴影边界,但是该方法的阴影检测鲁棒性较差。为了从全局信息中受益,Guo等[11]提出了一种基于区域的阴影检测方法,该方法由于仅利用区域信息而导致阴影检测准确性稍差。Vicente等[12]提出了一次性内核优化结合最小二乘支持向量机进行阴影检测的方法。由于该方法使用了多分类器,导致效率较低且准确性也有待提高。由此可见,传统的阴影检测方法由于人工设计的特征在描述阴影方面的能力所限,阴影检测的效果有待提高。

为了解决传统阴影检测方法存在的问题,Khan等[13,14]提出了分别用于检测阴影区域和阴影边界的卷积神经网络(CNN),是基于深度学习思想进行阴影检测的较早成果。Vicente等[15]提出了一种通过组合全卷积网络(FCN)和CNN进行阴影检测的方法,但是这种方法需要预训练,效率较低且准确性不高。Hosseinzadeh等[16]提出了一种结合支持向量机(SVM)和CNN快速检测阴影的方法,由于先后使用了SVM和CNN,故阴影检测效率较低。Vicente等[17]提出了具有灵敏度参数的生成对抗网络scGAN检测阴影,但训练难度较大。综合分析基于深度学习的阴影检测方法发现,尽管该类方法避免了特征设计过程,也取得了不错的效果,但已有方法普遍易将深色物体误检为阴影。针对已有阴影检测方法的不足,本文提出一种基于端到端网络实现阴影检测的方法。实验结果验证了所提方法的可行性和有效性。

2 方法概述

2.1 相关概念

光线在同种均匀介质中沿直线传播时,由于不透明或半透明物体对光线的遮挡而形成的较暗区域称为阴影。在图像中,阴影由若干个像素点构成。阴影检测就是确定图像中的像素点是阴影像素点还是非阴影像素点。如图1(a)所示,该图像中有待检测的阴影。阴影检测方法的检测结果如图1(b)所示。

图1 阴影检测示意图Fig.1 The sketch map of shadow detection

2.2 方法总体思想

本文所提阴影检测方法的总体思想如下:首先,构造U型编码器-解码器网络,将待检测图像输入到U型网络的编码器部分,利用所提密集特征图融合结构获得密集低层特征图;其次,将密集低层特征图输入到串并联结合的扩张卷积结构中生成多尺度特征图;然后,在U型网络的解码器部分利用密集特征图融合结构提取阴影相关特征得到高层特征图;再次,将高层特征图和编码器中对称位置生成的密集低层特征图融合,并结合多尺度特征图,得到包含多层次、多尺度信息的特征提取结果;最后,对特征提取结果中的每个像素进行分类从而实现阴影检测。所提阴影检测方法总体流程如图2所示。

图2 阴影检测总体流程Fig.2 The overall process of shadow detection

3 基于DDF-Unet的阴影检测方法

人类视觉系统可以准确地完成图像中阴影的辨识任务。但是,如果要利用计算机完成阴影检测任务,则应首先提取出有利于区分阴影与非阴影的图像特征,然后基于所提取的特征实现阴影检测,故特征提取成为阴影检测的关键环节。为了更好地提取图像特征,本文提出了密集特征图融合结构和串并联结合的扩张卷积结构,并设计了一种融合所提结构的U型编码器-解码器网络DDF-Unet(dilated dense fusion-unet)实现阴影检测。

3.1 密集特征图融合结构的提出

在卷积神经网络中不同卷积层提取的特征图包含的语义信息是不同的,因此融合不同的信息可以充分利用所提阴影相关特征。另外,卷积神经网络的层数越多能够提取到的阴影特征越丰富,但是简单地增加网络深度会造成退化问题。而且,由于卷积神经网络的下采样对图像的缩放操作会影响图像的质量,故需要用上采样恢复图像细节。综合考虑卷积神经网络上述特点,本文分别提出了上采样和下采样的密集特征图融合结构。

3.1.1 下采样密集特征图融合结构

为了更好地提取并融合特征,提出图3所示的下采样密集特征图融合结构。该密集特征图融合结构同时使用了叠加(Add)操作和通道维度合并(Concat)操作将相同通道的卷积产生的特征图进行融合。具体包含各有1个3×3卷积(Conv)的模块C1、C2和C3、1个步长(Stride)为2的3×3卷积的模块C4和2个特征图融合操作,模块C1、C2、C3和C4中的卷积层后均有1个批归一化(batch normalization, BN)层和1个非线性激活函数(rectified linear units, ReLU)层。输入的特征图首先通过C1、C2和C3卷积操作,然后将C1卷积操作产生的特征图和C3卷积操作产生的特征图进行通道维度合并得到新特征图,再进行C4卷积下采样操作,之后将原始输入(Input)特征图通过步长为2的1×1卷积操作与C4卷积下采样操作产生的特征图叠加,最后将特征图输出(Output)。

图3 下采样密集特征图融合结构Fig.3 Down-sampling dense feature map fusion structure

3.1.2 上采样密集特征图融合结构

为了在融合特征图的同时提高上采样效率,提出的上采样密集特征图融合结构如图4所示,其中包含1个3×3反卷积(Deconv)的模块C1、各有1个3×3卷积的模块C2、C3和C4和1个特征图融合操作,模块C1、C2、C3和C4中的卷积层后均有1个BN层和1个非线性激活函数ReLU层。输入的特征图首先进行C1卷积上采样,通过C2、C3和C4卷积操作,并将C2卷积操作产生的特征图与C4卷积操作产生的特征图进行通道维度的合并,最后将特征图输出。

图4 上采样密集特征图融合结构Fig.4 Up-sampling dense feature map fusion structure

3.2 串并联扩张卷积结构的提出

分析阴影图像特点发现,图像中存在不同尺度的阴影,因此需要提取多尺度的阴影特征。由于使用不同扩张率的扩张卷积不但可以增大感受野,而且可以挖掘多尺度的阴影特征,故本文在特征提取过程中使用不同扩张率的扩张卷积。但是,如果只将不同扩张率的扩张卷积进行并联会丢失一定的信息,且特征分辨率不够密集,所以本文引入了串联结构,以便获得像素点更多的特征。所构造的串并联结合的扩张卷积结构如图5所示。

图5 串并联扩张卷积结构Fig.5 The structure of serial-parallel dilated convolution(SPDC)

图5中的串并联扩张卷积结构由不同扩张率的扩张卷积组成。当扩张率接近特征图的尺寸时,3×3扩张卷积的效果与标准的1×1卷积的效果是一样的。因此,在选择扩张率的时候,需要选择合适扩张率的扩张卷积。当特征图进入该结构时,首先经过5个不同扩张率的并联卷积层,分别是1个1×1的卷积、3个3×3的卷积(扩张率分别为2、4、8)和1个将3个3×3卷积(扩张率分别为2、4、8)串联的模块,然后将输出的不同尺度的特征图进行通道的合并,最后送入1×1的卷积进行融合得到新特征图。串并联扩张卷积结构可以通过不同大小的感受野获取不同尺度的特征,其中感受野由小到大为1、5、9、17、29。

定义描述图5结构的公式为:

y=H1,0(x)+H3,2(x)+H3,4(x)+

H3,8(x)+H3,8{H3,4[H3,2(x)]}

(1)

式中:y为特征融合;HK,d(x)为扩张卷积,其中下标K为卷积核尺寸,下标d为扩张率。

单个扩张卷积和堆叠的扩张卷积的感受野计算公式分别定义为:

R=K+(K-1)×(d-1)

(2)

R′=R1+R2-1

(3)

式中:R为单个扩张卷积的感受野;R′为堆叠的扩张卷积感受野,R1和R2分别为上一层和本层单个扩张卷积的感受野。

3.3 DDF-Unet网络结构的设计

为了检测图像中的阴影,设计了一种融合所提密集特征图融合结构和串并联结合的扩张卷积结构的U型编码器-解码器架构。该结构将提出的下采样密集特征图融合结构作为编码器结构,实现对输入图像的编码及特征提取。将提出的上采样密集特征图融合结构作为解码器结构,实现恢复阴影细节和空间维度功能。在编码器的输出结果输入到解码器之前,使用提出的串并联结合的扩张卷积结构对编码的结果进行多尺度的特征提取及再融合,并将得到的多尺度特征图上采样到解码器结构中增加多尺度信息。编码器与解码器对称并且二者之间通过空间维度合并操作将低层特征图的低层特征与高层特征图的深层特征结合起来,有助于更加准确地定位阴影像素并恢复阴影的边缘细节,输出更高准确度的结果。

DDF-Unet结构框架具体如图6所示,其含有6个密集特征图融合结构和1个串并联结合的扩张卷积结构,包括45个卷积,其中有24个3×3卷积、6个1×1卷积、6个3×3扩张卷积、4个步长为2的3×3卷积、4个步长为2的3×3反卷积和1个步长为8的3×3反卷积。

图6 DDF-Unet总体框架Fig.6 DDF-Unet overall framework

3.4 阴影检测算法

本文基于所设计的DDF-Unet网络实现阴影检测功能。其核心思想是将阴影检测作为一个有监督的分类问题,最终得到图像像素级别的分类结果,即将图像中的每一个像素点看作一个样本,根据每个像素的所属类别概率而判断其是否为阴影像素点。本文阴影检测算法(shadow detection algorithm)的具体步骤如下:

Step 1:利用卷积操作对待检测图像进行特征抽取,形成初始低层特征图;

Step 2:将低层特征图经过下采样密集特征图融合结构,形成密集低层特征图;

Step 3:将密集低层特征图利用卷积操作经过串并联结合的扩张卷积结构进行多尺度特征抽取,依据公式(1)计算多尺度特征图;

Step 4:将密集低层特征图经过上采样密集特征图融合结构,形成高层特征图,同时与对应层的密集低层特征图融合并依据多尺度特征图融入多尺度信息,得到包含多层次、多尺度信息的特征图;

Step 5:将多层次、多尺度信息的特征图经过卷积操作得到最终的特征提取结果,根据特征提取结果中每个像素点的概率大小判断其所属类别,得到阴影检测结果。

4 实验及分析

4.1 实验环境及数据集

实验硬件环境为CPU Intel Xeon(R) E5-2620 v4@2.10 GHz 16、62.8 GiB内存、NVINIA TITAN Xp显卡以及12 189 MiB显存。软件环境为Ubuntu14.0、CUDA-9.0、OpenCV-3.4.2、Python3和TensorFlow框架。采用阴影检测领域比较有代表性的UCF[9]和SBU[15]数据集进行阴影检测实验。UCF数据集包括355幅图像和相应标注好的Ground Truth,其中数据集分为296幅训练图像和59幅测试图像,涵盖了不同的室外场景。SBU是现有最大的公开阴影数据集,包含4 727幅图像,其中有4 089幅训练图像和638幅测试图像和相应标注好的Ground Truth,涵盖了各种各样的场景。

4.2 实验结果比较分析

为了全面、合理评估所提方法的阴影检测效果,本文实验分为2部分进行:第1部分是所提阴影检测方法在各种情况下的实验结果及分析;第2部分是所提阴影检测方法与已有阴影检测方法的比较。不失一般性,本文使用准确率和平衡误差率两个评价指标评估阴影检测性能。准确率指标定义为:

(4)

式中:PT、NT、NF和PF分别为检测正确的阴影像素个数、检测正确的非阴影像素个数、检测错误的阴影像素个数和检测错误的非阴影像素个数。

考虑到在自然图像中,非阴影的像素点通常多于阴影像素点,所以引入平衡误差率(balance error rate, BER)作为第2个评价指标,其定义为:

(5)

实验中,准确率越高、平衡误差率越低表明阴影检测效果越好。

4.2.1 本文方法的实验结果及分析

为了充分评估本文所提方法,此处选取阴影图像数据量更大且更具挑战的SBU数据集作为实验数据集,分别进行了2组实验:验证串并联扩张卷积结构效果的第1组实验和验证密集特征图融合结构效果的第2组实验。为了验证本文提出的串并联扩张卷积结构的效果,分别构造了图7和图8所示的串联扩张卷积结构(SDC)和并联扩张卷积结构(PDC),二者均使用了扩张率为2、4和8的扩张卷积,将U-net[18]作为基础网络,分别对比了原始U-net、使用串联扩张卷积结构、使用并联扩张卷积结构和使用串并联结合的扩张卷积结构(serial-parallel dilated convolution, SPDC)4种情况下的准确率和平衡误差率。为了验证本文所提出的密集特征图融合结构的效果,同样将U-net作为基础网络并把编码器和解码器部分替换为密集特征图融合结构,对比了使用原始U-net、使用密集特征图融合结构、使用密集特征图融合结构和串并联结合的扩张卷积结构相结合的DDF-Unet的实验效果。2组实验结果分别如表1和表2所示。

表1 使用不同扩张卷积结构的实验结果Tab.1 Experimental results of using different dilated convolution structures (%)

表2 使用密集特征图融合结构及DDF-Unet的实验结果Tab.2 Experimental results of using dense feature map fusion(DFMF) structure and DDF-Unet (%)

图8 并联扩张卷积结构Fig.8 The structure of parallel dilated convolution(PDC)

图7串联扩张卷积结构
Fig.7The structure of serial dilated convolution(SDC)

分析表1结果可知,使用扩张卷积结构比原始U-net能够获得更高的阴影检测准确率,而使用串并联结合的扩张卷积结构进行阴影检测的准确率比U-net、单独使用串联扩张卷积结构或并联扩张卷积结构分别提高了1.1%、0.6%和0.3%,而且平衡误差率分别降低了2.7%、1.7%和0.5%。由此可见,使用串并联结合的扩张卷积结构的阴影检测效果要优于对比方法,验证了所提串并联扩张卷积结构的有效性。

由表2可知,使用密集特征图融合结构进行阴影检测的准确率比原始U-net提高了1.7%且平衡误差率降低了6.2%,使用密集特征图融合结构和串并联结合的扩张卷积结构相结合的DDF-Unet的准确率比原始U-net和只使用密集特征图融合结构分别提高了2.6%和0.9%,平衡误差率分别降低了7.0%和0.8%。由此,本文提出的密集特征图融合结构可以明显提高阴影检测效果,验证了所提密集特征图融合结构的有效性。

4.2.2 本文方法与已有方法的比较

为了更加合理地评估本文方法的阴影检测效果,将本文方法与阴影检测领域具有代表性的方法进行了比较。图9展示了本文方法与文献[15~17]给出的3种方法阴影检测结果对比。图9中,从左到右每列分别为原始图像、Ground Truth、文献[15]的检测结果、文献[16]的检测结果、文献[17]的检测结果和本文方法的检测结果。其中,图像中白色的区域为阴影区域,黑色的区域为非阴影区域。由第1行结果可以看出:文献[15]将图像中斑马线之间地面的深色区域误检为阴影区域且连续性较差;文献[16]将图像中斑马线之间深色的地面区域全部误检为阴影区域;文献[17]尽管误检区域较少,但还是将图像中斑马线之间的一块深色地面区域误检为阴影区域;本文方法则没有受到地面深色区域的干扰且准确地检测到了阴影区域。由第2行结果可以看出:虽然文献[15~17]方法检测到了阴影区域,但是错误地将图像中黑色物体也误检为阴影,本文方法则没有将黑色区域误检为阴影且相对准确地检测到了阴影区域。由第3行结果可以看出:文献[15]和文献[16]的检测结果比较粗糙且存在多处误检;文献[17]的结果在细节上存在一些误检区域;本文方法在阴影细节上更为精细准确。由第4行结果可以看出:文献[15,16]方法将深绿色灌木和围墙误检为阴影且检测结果不够连续;文献[17]方法则将深色灌木全部误检为阴影;本文方法尽管也受到了灌木影响,但还是相对准确地检测到了阴影区域。由此可见,尽管文献[15~17]方法检测出了阴影区域,但是阴影细节和连续性有待改善且容易出现误检,而本文方法则相对准确地检测出了图像中的阴影区域。综合来看,与其它方法相比,本文方法在准确定位阴影的同时还可在很大程度上避免误检,并且能够适应更复杂的场景,从而进一步验证了本文方法的可行性和有效性。

图9 本文方法与已有方法的比较Fig.9 The comparison of the method in this paper and others

为了进一步说明本文方法的性能,将不同方法进行了量化评估。表3中给出了不同方法在数据集UCF和SBU上的量化评估结果。对表3数据进行分析可知,在数据集UCF和SBU上,本文方法的阴影检测准确率和平衡误差率指标均好于文献[15~17]中方法的结果,且在大数据集SBU上,本文方法有更好的表现。

表3 本文方法与已有方法的量化评估结果Tab.3 Quantitative evaluation results of the proposed method and existing methods (%)

5 结 论

本文提出一种基于深度卷积神经网络的阴影检测方法。主要贡献在于:1) 通过将不同层的特征图进行融合,提出了密集特征图融合结构,该结构不仅为如何更充分地利用卷积神经网络提取的各层次特征提供了一种思路,而且具有较好的通用性。2) 为了更好地挖掘多尺度的阴影特征,通过使用不同扩张率的扩张卷积,提出一种串并联结合的扩张卷积结构,不但增大了感受野而且能够提取更多阴影特征。3) 将密集特征图融合结构和串并联结合的扩张卷积结构相结合构造出一种端到端U型网络DDF-Unet,基于该网络实现了阴影检测功能。与其它代表性的阴影检测方法相比,本文所提方法准确性更好。

猜你喜欢
密集阴影卷积
耕地保护政策密集出台
基于3D-Winograd的快速卷积算法设计及FPGA实现
密集恐惧症
你来了,草就没有了阴影
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
让光“驱走”阴影
阴影魔怪
全球导航四大系统密集发射卫星