浙江大学学报(工学版), 2019, 53(2): 373-381 doi: 10.3785/j.issn.1008-973X.2019.02.021

计算机与控制工程

Attention Res-Unet: 一种高效阴影检测算法

董月,, 冯华君,, 徐之海, 陈跃庭, 李奇,

Attention Res-Unet: an efficient shadow detection algorithm

DONG Yue,, FENG Hua-jun,, XU Zhi-hai, CHEN Yue-ting, LI Qi,

通讯作者: 李奇,男,副教授,硕导. orcid.org/0000-0002-1672-6362. E-mail: liqi@zju.edu.cn

收稿日期: 2018-10-14  

Received: 2018-10-14  

作者简介 About authors

董月(1995—),男,硕士生,从事图像处理研究.orcid.org/0000-0003-0433-473X.E-mail:21730058@zju.edu.cn , E-mail:21730058@zju.edu.cn

摘要

图像中阴影像素的存在会导致图像内容的不确定性,对计算机视觉任务有害,因此常将阴影检测作为计算机视觉算法的预处理步骤. 提出全新的阴影检测网络结构,通过结合输入图像中包含的语义信息和像素之间的关联,提升网络性能. 使用预训练后的深层网络ResNeXt101作为特征提取前端,提取图像的语义信息,并结合U-net的设计思路,搭建网络结构,完成特征层的上采样过程. 在输出层之前使用非局部操作,为每一个像素提供全局信息,建立像素与像素之间的联系. 设计注意力生成模块和注意力融合模块,进一步提高检测准确率. 分别在SBU、UCF这2个阴影检测数据集上进行验证,实验结果表明,所提方法的目视效果及客观指标皆优于此前最优方法所得结果,在2个数据集上的平均检测错误率分别降低14.4%和14.9%.

关键词: 阴影检测 ; 特征提取 ; 语义信息 ; 像素关联 ; 非局部操作 ; 注意力机制 ; 卷积神经网络(CNN)

Abstract

Shadow pixels in images can lead to the uncertainty of image content, which is harmful to computer vision tasks. Therefore, shadow detection is often used as a preprocessing step of computer vision algorithm. A shadow detection network was proposed by combining semantic information contained in input images and correlation between pixels. Pre-trained deep network ResNeXt101 was used as feature extraction front-end module to extract semantic information of the image. The baseline structure of the network was built to up-sample feature layers, encouraged by the design idea of U-Net. Non-local operations were added before the output layer to provide global information for each pixel and establish the relationship between pixels. At the same time, an attention generation module and an attention fusion module were developed to further improve shadow detection accuracy. Two common shadow detection datasets named SBU and UCF were utilized for verification. Experiment results showed that the proposed network outperformed previous methods in both visual effect and objective indicator. The proposed network showed 14.4% reduction on SBU and 14.9% reduction on UCF for the balance error rate, compared with the state-of-the-art framework.

Keywords: shadow detection ; feature extraction ; semantic information ; pixel correlation ; non-local ; attention module ; convolutional neural network (CNN)

PDF (1545KB) 元数据 多维度评价 相关文章 导出 EndNote| Ris| Bibtex  收藏本文

本文引用格式

董月, 冯华君, 徐之海, 陈跃庭, 李奇. Attention Res-Unet: 一种高效阴影检测算法. 浙江大学学报(工学版)[J], 2019, 53(2): 373-381 doi:10.3785/j.issn.1008-973X.2019.02.021

DONG Yue, FENG Hua-jun, XU Zhi-hai, CHEN Yue-ting, LI Qi. Attention Res-Unet: an efficient shadow detection algorithm. Journal of Zhejiang University(Engineering Science)[J], 2019, 53(2): 373-381 doi:10.3785/j.issn.1008-973X.2019.02.021

在自然条件下,由于遮挡物的存在,光源发出的光线无法全部入射到物体表面,从而产生阴影. 一方面,阴影区域能够提供足够的信息,用于估计环境光亮度、推断遮挡物的几何形状以及确定光源位置等[1]. 另一方面,图像中阴影像素的存在会导致图像内容的不确定性,对目标识别、目标跟踪、视频监控、自动驾驶等任务而言是有害的. 因此,研究全自动阴影检测算法,并将其用作计算机视觉任务的预处理步骤,提前标注出阴影区域的位置,避免其与待处理目标的混淆,可提高计算机视觉算法的鲁棒性.

现有的阴影检测算法可按照自身特点分为4类:基于本征图像(intrinsic image)的方法[2-4]、基于区域的方法[5-8]、基于特征提取的方法[9-13]、基于深度学习的方法[14-18]. Finlayson等[2-4]提出完整的本征图像理论(intrinsic image theory),该理论建立在光照均匀假设的基础上,利用熵值最小化(entropy minimization)方法求取灰度不变图像(greyscale invariant image),进而完成阴影检测与阴影去除. 但是,由于光照均匀假设并非时刻成立,图像质量参差不齐,使用该自动算法对普通网络图片进行处理时鲁棒性不强. 基于区域的方法通常采用聚类(clustering)算法将图像像素分为不同的小块,根据颜色、亮度、纹理等特征将像素块分类为阴影区域或非阴影区域. Hoiem等[5-6]基于支持向量机(support vector machine,SVM)方法分别构建单区域分类器和双区域分类器,使用图割法(graph cut)实现最终预测. Vincente等[7]和Yuan等[8]采用与Hoiem等[5-6]类似的算法流程,但在分类器及分类依据上有所不同. Vincente等[7]为每项不同特征单独训练SVM分类器,最终获得多核SVM分类器. Yuan等[8]使用逻辑回归(logistic regression)和决策树(decision trees)构建单区域分类器. 基于区域的方法包含聚类、多特征提取、分类、随机场优化等算法流程,时间复杂度高,不适用于实时阴影检测. 基于特征提取的方法关注阴影区域与非阴影区域的不同特性. 通常来说,阴影区域亮度和饱和度偏低,色调基本不变. 利用这一特性设定阈值,可获得初步的阴影检测结果. 但考虑到场景、光照条件、物体表面反射率的多样性,仅使用1种特征进行阈值分割是不够的. 一些算法[9-10]关注阴影区域的颜色信息,采用HSI、YCbCr等颜色空间协助检测任务. 另一些算法[10-13]关注物体的几何特征及边缘信息,常使用sobel算子或canny算子,这类算法往往侧重于提取图像的低阶信息,忽略像素块之间的关系及图像中物体的语义信息,对复杂场景的处理效果不佳. 由于深度学习方法的兴起,近年来学者们提出了一系列利用卷积神经网络(convolutional neural network,CNN)模型实现阴影检测的新方法. Khan等[14]首先使用深度学习方法进行阴影检测,训练2个网络分别用于检测阴影区域和阴影边缘,将检测结果输入条件随机场(conditional random field,CRF)得到分类结果,相比传统算法效果提升显著. Vincente等[15]最早使用2个级联网络实现阴影检测,第1个网络用来初步提取阴影标记,并将其作为阴影概率图与原图一起输入到第2个网络,最终得到精细化的阴影标记结果. Hosseinzadeh等[16]根据颜色及纹理特征使用SVM分类器得到阴影先验图(shadow prior map),将其与原图合并后送入训练好的CNN网络,输出阴影检测结果. Nguyen等[17]引入条件生成对抗网络(conditional generative adversarial networks,cGAN),生成器(generator)输出阴影标记,判别器(discriminator)分辨阴影标记真假,两者相互对抗使得生成器具备检测图像阴影区域的能力,该方法相较Vincente[15]的方法有了进一步的效果提升. Le等[18]同样借鉴生成对抗网络的思想,训练生成器生成阴影区域被衰减后的图像,训练判别器输出阴影标记,从图像源层面加强网络分辨阴影区域的能力. 现有的CNN阴影检测方法常使用级联网络[14-16]或生成对抗网络[17-18]的形式,增加了模型训练的难度,同时不利于快速检测算法的实现. 与之相比,单网络结构既可以实现端对端训练,降低模型训练的难度,又可以在一定程度上减少计算量,加快算法的运行速度,优势明显.

本研究以分类网络ResNeXt101[19]作为特征提取模块,借鉴U-Net[20]的设计思想,结合残差注意力机制(residual attention mechanism)[21]、非局部操作(non-local operation)[22],设计全新的单网络结构Attention Res-Unet,重点关注图像中包含的语义信息与像素之间的联系. 所设计的模型结构对不同场景(也包含某些复杂环境)、不同光照条件下获取的阴影图像都有较好的阴影检测效果. 将所提算法在SBU[15]、UCF[23]2个通用阴影检测数据集上进行验证,得到的客观指标及主观目视效果皆优于此前方法. 首次将单网络结构用于阴影检测,并通过深层预训练网络、注意力机制、非局部操作等手段融合语义信息和像素关系,设计模型结构并通过实验验证其有效性,进一步提高了阴影检测结果的可信度.

1. 阴影模型分析

图1所示,扩展光源发出的光线被遮挡物遮挡后,物体表面亮度降低,其中光线完全无法到达的区域称为本影区,光线部分被遮挡的区域称为半影区,半影区亮度介于本影区与明亮区域之间. 人眼能够感知的物体亮度由入射至物体表面的光亮度和物体表面反射率决定. 通用的阴影模型常表示为亮度及反射率相乘的形式[5]

图 1

图 1   阴影成因示意图

Fig.1   Shadow origin schematic diagram


$ {{{ I}}_i} = ({t_i}{\rm{cos}} \;\;{\theta _i}{{{L}}_{\rm{d}}}+{{{L}}_{\rm{e}}}){{{R}}_i}. $

式中: ${{{ I}}_i}$ 为图像第i个像素位置的RGB向量,表示三通道灰度; ${{{L}}_{\rm{d}}}$ 为光源发出的直射光亮度; ${{{L}}_{\rm{e}}}$ 为环境光亮度,同样是RGB颜色空间内的向量; ${{{R}}_{i}}$ 为图像中第i个像素位置对应的RGB三通道反射率; ${\theta _i}$ 为直射光光线方向与物体表面法线方向的夹角; ${t_i}$ ∈[0,1.0],为光源发出的光线到达物体表面的比例, ${t_i}=1.0$ 代表明亮区域像素, ${t_i}=0$ 代表本影区像素, ${t_i} \in\text{(}0,1.0\text{)}$ 代表半影区像素. 对于阴影检测任务,已知RGB彩色图像I,要求判断各位置像素的类别归属,即确定式(1)中 ${t_i} = 1$ 或是 ${t_i} \in [0,1.0\text{)}$. 式(1)中除 ${{{ I}}_i}$ 之外,其余参数均未知.

非学习类算法倾向于根据图像中阴影区域的统计规律分辨阴影像素与非阴影像素. 对于一些容易引起混淆的图像,以上算法的检测效果较差. 如图2所示列举了2种情况,如图2(a)所示为容易将阴影区域错误判定为非阴影区域的典型案例,左图为原图,右图为左图中方框区域的放大图像;如图2(b)所示为容易将非阴影区域错误判定为阴影区域的典型案例. 仅给出右边的2幅图像,即使是人类也难以判断其类别. 但当这2个区域被放回原图,问题变得十分简单,如图2(a)所示为1个人在公路上的影子,影子形状是连续的,那么红框内一定是阴影;图2(b)方框内的黑板没有被遮挡,一定不属于阴影. 这说明,图像中包含的语义信息和像素联系对阴影检测至关重要,它们可以帮助正确判别阴影区域与伪阴影区域,同时保持阴影检测结果的连续性. 本研究以此为导向,设计了效果更好的阴影检测模型.

图 2

图 2   阴影检测困难案例

Fig.2   Example for hard shadow detection


2. 阴影模型框架

图像中包含的语义信息和像素联系对阴影检测大有裨益. 为了获得语义信息,使用分类网络ResNeXt101(32×4 d)[19]作为前端的特征提取模块. ResNeXt101结构随深度增加,特征层尺寸逐步减小,可以认为是下采样的过程. 下采样有利于提取高层次信息,但在语义分割任务中常常会导致分类精度的下降. 为适应阴影检测任务的需求,借鉴医学图像分割网络U-Net[20]的设计思想,对已获得的ResNeXt特征层,逐步扩大特征层尺寸,同时减小特征层深度,直至输出图像尺寸恢复到输入大小. 同时,在网络输出前添加非局部操作[22],为每一个像素提供全局信息,建立像素与像素之间的联系. 最后,为进一步提升网络对不同场景、不同光照条件的泛化能力,结合最新的残差注意力机制[21],设计注意力生成模块和注意力融合模块,为输入图像的每一个像素位置分配权重,用于改善网络输出.

2.1. Attention Res-Unet算法

图3所示为Attention Res-Unet的网络结构和整体流程,为了方便理解,已将所有特征层的尺寸和深度都标示出来. 采样操作过程如下:将调整大小后的RGB三通道图像输入网络前端的ResNeXt101特征提取模块,得到尺寸为8×8、深度为2 048的特征向量;为了满足特征提取的需要,保留ResNeXt101的结构主体,丢弃用于分类结果输出的最后3层;在下采样过程后,依次设置步长为2,卷积核尺寸为2×2的转置卷积层(transposed convolution layer),可逐步增大特征层尺寸,同时减小特征层深度;仿照U-Net的典型结构,采用特征层拼接(concatenate)方法,结合下采样线路和上采样线路中相同尺度的信息;在每一次拼接后,使用3×3卷积层、批归一化层(batch normalization layer)[24]、ReLU激活函数组合融合相同尺度的特征信息. 按规则重复上述上采样操作,将得到128×128×64的特征层. 考虑到卷积层只能初步结合感受野中的图像信息[22],在该特征层后使用非局部操作[22],为每个像素提供精准的全局信息,自动构建像素关系,解决在困难案例图像检测时阴影区域内部大范围识别错误的问题. 非局部操作只会引入全局信息,而不会改变特征层的大小和深度,最后使用1×1卷积层和双线性插值方法得到初步的阴影检测结果.

图 3

图 3   Attention Res-Unet算法网络结构

Fig.3   Network architecture of Attention Res-Unet algorithm


为了进一步优化检测结果,在Attention Res-Unet主线路前向传播的同时,对上采样线路中不同层次的4个卷积层,分别使用注意力生成模块(attention generation module)生成对应层级的权重图. 然后将已获得的初步阴影检测结果和4张权重图输入注意力融合模块(attention fusion module),获得精细化的阴影检测结果.

2.2. 注意力生成模块

图4所示为注意力生成模块的全部流程. 1)对不同大小和深度的特征层输入,采用1×1卷积层将其降维至64通道;2)利用双线性插值使得权重图大小与网络输入图像大小相同;3)紧跟2个残差块(residual block)[25],每个残差块都使用1×1、3×3、1×1卷积层组合的基本结构(残差块中包含的批归一化层和ReLU激活函数层略去未注);4)使用另一个卷积层组合以及双曲正切激活函数层(tanh activation function layer),输出单通道的权重图,该权重图中每个像素值的大小均为(−1.0, 1.0).

图 4

图 4   Attention Res-Unet算法中注意力生成模块流程图

Fig.4   Procedure scheme of attention generation module in Attention Res-Unet algorithm


2.3. 注意力融合模块

经过网络主线路的前向传播,得到了初步的阴影检测结果. 另一方面,将不同尺度的特征层输入注意力生成模块,可以得到4张对应的权重图. 将这4张权重图按照前向传播的先后顺序依次输入注意力融合模块,如图5所示. 阴影掩模(shadow mask)与权重图的尺寸一致,所以将对应元素相乘,相乘后的结果再加上该阴影掩模,得到新的阴影检测结果. 重复这一过程,并在该模块的最终输出前使用sigmoid激活函数将响应值大小映射至(0,1.0). 该过程可表示为

$ \begin{split} {m_{\text{5}}} =& \left\{ {{\text{1 + exp }}\left[- {(((({m_{\text{1}}}{w_{\text{1}}} + {m_{\text{1}}}){w_{\text{2}}} + {m_{\text{2}}})} \right.} \right.\times \\ & {\left. {\left. {{w_{\text{3}}} + {m_{\text{3}}}){w_{\text{4}}} + {m_{\text{4}}})} \right]} \right\}^{ - 1}}. \end{split} $

式中: ${{{m}}_{\rm{1}}}$${{{m}}_{\rm{2}}}$${{{m}}_{\rm{3}}}$${{{m}}_{\rm{4}}}$${{{m}}_{\rm{5}}}$ 分别为阴影掩模 ${{{ M}}_{{1}}}$${{{ M}}_{{2}}}$${{{ M}}_{{3}}}$${{{ M}}_{{4}}}$${{{ M}}_{{5}}}$同一位置的响应值, ${{{w}}_{\rm{1}}}$${{{w}}_{\rm{2}}}$${{{w}}_{\rm{3}}}$${{{w}}_{\rm{4}}}$$w_5 $分别为权重图 ${{{ W}}_{\rm{1}}}$${{{ W}}_{\rm{2}}}$${{{ W}}_{\rm{3}}}$${{{ W}}_{\rm{4}}}$W5对应位置的权值.

从注意力融合模块的输入到输出,一共能得到5个阴影掩模,包括1个初步结果,3个中间结果和1个最终结果.

3. 训练及测试细节

3.1. 数据集

本网络在训练和测试时均使用SBU[15]阴影检测数据集,该数据集包含4 089张训练图像和638张测试图像. 在训练时,使用交叉验证(cross validation)方法随机选取5%的训练集图像作为验证集,以监督当前训练模型是否过拟合. 为进一步评估网络结构的阴影检测性能,使用UCF[23]阴影检测数据集进行跨数据集效果验证. UCF数据集共包含245张图像,全部用于测试.

3.2. 数据预处理

训练时将原图大小缩放至256×256,并以0.5的概率对调整大小后的图像做水平翻转. 测试时仅缩放至256×256. 最后将结果插值至原图大小.

3.3. 网络预训练

Attention Res-Unet中用于特征提取的前端结构是ResNeXt101,为了结合输入图像中包含的语义信息,使用在ImageNet数据库上训练得到的模型参数初始化特征提取模块.

3.4. 损失函数

二分类任务常采用二进制交叉熵损失函数(binary cross entropy loss,BCE Loss). 为了解决图像中正负例不平衡的问题,即阴影像素数目远少于非阴影像素数目,采用类别均衡的二进制交叉熵损失函数(class-balanced BCE loss),引入平衡因子 $w$ ,即

$ C = \sum\limits_i { - [w{y_i}{\rm{lg}} \;\;{a_i}+(1 - w)(1 - {y_i}){\rm{lg}}\;\; (1 - {a_i})]} . $

式中: $C$ 为损失函数值;w=0.15; ${y_i} \in 0,1$ ,为像素类别的真实值; ${a_i} \in (0,1.0)$ ,为像素类别的预测值.

为注意力融合模块相关的每一个阴影掩模计算损失函数,如图5所示. 阴影检测模型的损失值为这5个损失值之和.

图 5

图 5   Attention Res-Unet算法中注意力融合模块流程图

Fig.5   Procedure scheme of attention fusion module in Attention Res-Unet algorithm


3.5. 训练超参数

1)学习率(learning-rate):初始时为0.005,衰减系数为0.9;

2)动量(momentum):0.9;

3)权重衰减系数(weight decay coefficient):0.000 5;

4)批量大小(batch size):8;

5)训练迭代期(iteration):10 000;

6)优化方法:随机梯度下降(stochastic gradient descent,SGD).

4. 实验与结果讨论

4.1. 评价指标

为了与前人的成果进行客观对比,采用相同的评价指标[15-18]:阴影像素检测错误因子(shadow error rate, SER)、非阴影像素检测错误因子(non-shadow error rate, NER)、平均检测错误因子(balance error rate, BER)、正确率(accuracy, Acc),定义如下:

$ {\rm{SER}} = \left(1 - {{\rm{TP}}}/{{{N_{\rm p}}}}\right) \times 100\text{,} $

$ {\rm{NER}} = \left(1 - {{{\rm{TN}}}}/{{{N_{\rm n}}}}\right) \times 100\text{,} $

$ {\rm{BER}} = ({{{\rm{SER}}+{\rm{NER}}}})/{2} = \left[1 - \frac{1}{2}\left(\frac{{{\rm{TP}}}}{{{N_{\rm p}}}}+\frac{{{\rm{TN}}}}{{{N_{\rm n}}}}\right)\right] \times 100\text{,} $

$ {\rm Acc} = ({{{\rm{TP}}+{\rm{TN}}}})/({{{N_{\rm p}}+{N_{\rm n}}}}). $

式中:TP、TN、 ${N_{\rm p}}$${N_{\rm n}}$ 分别为阴影像素正确检测数目、非阴影像素正确检测数目、阴影像素总和、非阴影像素总和. SER、NER、BER越小,说明阴影检测的正确率越高,分类效果越好; $\rm Acc$ 越高越好. 本研究将 ${\rm{BER}}$ 作为最主要的指标.

4.2. 效果对比

使用SBU[15]数据集的测试集及UCF[23]数据集进行定性及定量评价. 所提出的算法在ubuntu16.04+python3.5+pytorch0.4.0的软件环境下实现,使用2块Nvidia GTX1080Ti显卡进行训练,训练时仅使用SBU的训练集,训练大约需要3.5 h. 使用1块GTX1080Ti进行测试,处理1张图片平均耗时为0.083 s,可达到12帧/s的检测速度.

图6所示为所设计的Attention Res-Unet对不同场景图像的阴影检测结果,以及与当前最优算法scGAN[17]、patched-CNN[16]、stacked-CNN[15]进行对比的结果. 从左到右,每一列分别为原图、真实检测结果、所提方法检测结果、scGAN[17]检测结果、patched-CNN[16]检测结果及stacked-CNN[15]检测结果. 相较于其他方法,Attention Res-Unet对阴影的定位更加准确,同时能够分辨真实的阴影区域和外观类似阴影的非阴影区域,错误检测的像素数目更少. 对于容易引起混淆的困难案例,例如图6第1列的第4~6幅图像,scGAN[17]、patched-CNN[16]、stacked-CNN[15]3种方法都出现了大面积的检测错误. 与之相比,所提算法仍然能够准确判断出:斑马线之间的低亮度区域不是阴影,黑色的螺丝钉不是阴影,阴影区域内部出现的高对比度黄色区域属于阴影. 这也证实了语义信息和像素关联对阴影检测的正面作用.

图 6

图 6   Attention Res-Unet与scGAN[17]、patched-CNN[16]、stacked-CNN[15]检测结果的目视效果对比

Fig.6   Visual effect comparison of test results of Attention Res-Unet with scGAN[17], patched-CNN[16] and stacked-CNN[15]


为了进一步验证所提观点,在SBU、UCF数据集上进行定量评价,结果如表1所示,最优结果用加粗数字标出. 实验结果显示,在SBU数据集上,所提算法的平均检测错误因子BER相对A+D-Net[18]、scGAN[17]、patched-CNN[16]、stacked-CNN[15]所得BER分别降低14.4%、46.3%、56.4%、55.6%;在UCF数据集上,所提算法的BER相对A+D-Net、scGAN、stacked-CNN所得BER的降幅分别为14.9%、26.8%、35.2%. 所提算法的总体检测正确率,在SBU数据集上达到95.53%,在UCF数据集上达到91.72%. 跨数据集验证的成功说明Attention Res-Unet方法的泛化能力很强,能够准确检测不同类型的阴影图像.

表 1   Attention Res-Unet与A+D-Net[18]、scGAN[17]、patched-CNN[16]、stacked-CNN[15]的定量评价结果

Tab.1  Quantitative evaluation results of Attention Res-Unet, A+D-Net[18], scGAN[17], patched-CNN[16] and stacked-CNN[15]

方法 SBU[15] UCF[23]
BER SER NER BER SER NER
Attention Res-Unet 4.88 5.31 4.44 8.42 8.40 8.44
A+D-Net[18] 5.70 6.20 5.20 9.90 7.30 12.50
scGAN[17] 9.10 7.80 10.40 11.50 7.70 15.30
patched-CNN[16] 11.20 10.13 12.27
stacked-CNN[15] 11.00 9.60 12.50 13.00 9.00 17.10

新窗口打开| 下载CSV


4.3. 各模块效果探究

为了研究Attention Res-Unet中各模块的作用,训练了3个不同的网络进行对比. 第1个是基本的U-net结构;第2个是Res-Unet结构,相较于Attention Res-Unet舍弃了注意力机制(注意力生成机制+注意力融合机制)以及非局部操作;第3个是Res-Unet+Attenion,在Res-Unet结构的基础上融入了注意力机制,但依然缺少非局部操作. 以上3个网络结构的复杂程度依次上升,与Attention Res-Unet的相似程度逐渐提高,可分别验证ResNeXt101特征提取模块、注意力机制以及非局部操作的作用. 在不同网络训练时使用相同的损失函数及训练策略,确保对比结果的可信度. 具体的实验结果如表2所示,Attention Res-Unet的3项指标都是最优(用加粗数字标出),说明本研究所提出的网络结构设计的合理性. 4个网络的BER分别为7.69、6.56、5.33、4.88,引入ResNeXt101特征提取模块后,BER降低14.69%;引入注意力模块后,BER降低18.75%;在输出层之前引入非局部操作后,BER降低8.44%. 和最简单的U-net结构相比,Attention Res-Unet的BER指标降幅达到36.54%. 另外,挑选了一些容易引起混淆的图像场景,测试这4个网络的阴影检测效果. 如图7所示,Attention Res-Unet的阴影检测结果与真实结果较接近,其他方法都出现了不同程度的错误分类,以及阴影区域不连续、不平滑,阴影边界粗糙的问题. 相较之下,Attention Res-Unet能够更准确地定位阴影边界,同时在易混淆场景中表现更佳,这与客观评价得到的结论一致.

表 2   Attention Res-Unet各模块作用验证

Tab.2  Effect validation of each module in Attention Res-Unet

方法 SBU[15]
BER SER NER
U-net 7.69 10.48 4.90
Res-Unet 6.56 7.40 5.73
Res-Unet+Attenion 5.33 5.88 4.77
Attention Res-Unet 4.88 5.31 4.44

新窗口打开| 下载CSV


图 7

图 7   Attention Res-Unet与Res-Unet+Attenion、Res-Unet、U-net检测结果的目视效果对比

Fig.7   Visual effect comparison of test results of Attention Res-Unet with Res-Unet+Attenion, Res-Unet and U-net


4.4. 更多的实验结果

图8所示为Attention Res-Unet在更多场景下的检测结果. 图8(a)说明本网络结构在不同光照条件,不同投影表面的场景中(包括雪地、水面、公路以及横跨3种不同表面),都能精确定位人像阴影区域,同时准确绘制阴影轮廓;如图8(b)所示,4幅图像各自存在不同材质不同反射率的暗色表面,Attention Res-Unet能够不受干扰,正确标注像素类别.

图 8

图 8   Attention Res-Unet的其他实验结果

Fig.8   Other results produced by Attention Res-Unet


图9所示为Attention Res-Unet在阴影检测时出现的典型失败案例. 如图9(a)所示,所提方法已经能够正确区分网球选手所穿的黑色衣裤与实际的阴影,说明网络在一定程度上结合了图像中的语义信息. 但对于人物主体以外的黑色袜子,类别判断出现了错误,一方面是因为特征提取模块能够提供的语义信息有限,且没有针对性,另一方面是袜子颜色与阴影颜色太过接近,难以区分. 如图9(b)所示的场景内容非常复杂,阴影区域分散程度高、个数多、面积小,难以提炼语义信息. 网络是在256×256的尺度下进行训练和测试的,更不利于检测小面积阴影区域,因此只能实现大致的阴影定位,无法精确绘制阴影轮廓. 一般来说,在更大的图像尺度下进行训练和测试能够减少误差的引入,但对计算机硬件有着更高的要求.

图 9

图 9   Attention Res-Unet的失败应用案例

Fig.9   Failure cases of Attention Res-Unet


5. 结 语

针对阴影检测问题,提出全新的网络结构Attention Res-Unet,该网络使用ResNeXt101作为特征提取前端,并结合U-net的设计思想完成特征层的上采样过程,融入注意力机制和非局部操作进一步提升网络效果. 将训练后的网络在SBU、UCF数据集上进行验证,客观指标及主观目视效果皆优于此前方法. 同时,额外设计和训练了3个具有相似结构但缺少相应模块的网络,实验结果显示,使用深层网络进行特征提取,结合注意力机制和非局部操作都对网络性能的提升起到了实质性的作用. 提出的网络结构对大多数不同光照条件、不同投影表面、不同遮挡物体所形成的阴影区域都可以实现精确检测,但在某些严苛条件或复杂场景下表现不佳,下一步将着重研究如何更高效率地结合图像中的语义信息,减少像素的错误分类,以及如何解决小面积阴影区域的精确检测问题.

参考文献

MURALI S, GOVINDAN V K, KALADY S

A survey on shadow detection techniques in a single image

[J]. Information Technology and Control, 2018, 47 (1): 75- 92

[本文引用: 1]

FINLAYSON G D, DREW M S, LU C. Intrinsic images by entropy minimization [C]// Computer Vision-ECCV. Prague: Springer, 2004: 582–595.

[本文引用: 2]

FINLAYSON G D, HORDLEY S D, LU C

On the removal of shadows from images

[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2006, 28 (1): 59- 68

FINLAYSON G D, DREW M S, LU C

Entropy minimization for shadow removal

[J]. International Journal of Computer Vision, 2009, 85 (1): 35- 57

[本文引用: 2]

HOIEM D. Single-image shadow detection and removal using paired regions [C] // Computer Vision and Pattern Recognition. Colorado Springs: IEEE, 2011: 2033–2040.

[本文引用: 4]

GUO R, DAI Q, HOIEM D

Paired regions for shadow detection and removal

[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2013, 35 (12): 2956- 2967

[本文引用: 2]

VICENTE T F Y, YU C P, SAMARAS D. Single image shadow detection using multiple cues in a supermodular MRF [C] // British Machine Vision Conference. Bristol: British Machine Vision Association, 2013: 1–12.

[本文引用: 2]

YUAN X, EBNER M, WANG Z

Single-image shadow detection and removal using local colour constancy computation

[J]. Image Processing Iet, 2015, 9 (2): 118- 126

[本文引用: 3]

PANAGOPOULOS A, WANG C, SAMARAS D. Estimating shadows with the bright channel cue [C] // European Conference on Trends and Topics in Computer. Heraklion: Springer, 2010: 1–12.

[本文引用: 2]

MARYAM G, FATIMAH K, ABDULLAH L N

Shadow detection using color and edge information

[J]. Journal of Computer Science, 2013, 9 (11): 1575- 1588

[本文引用: 2]

SALVADOR E, CAVALLARO A, EBRAHIMI T. Cast shadow segmentation using invariant color features [J]. Computer Vision and Image Understanding, 2004, 95(2): 238-259.

DONG Q, LIU Y, ZHAO Q

Detecting soft shadows in a single outdoor image: from local edge-based models to global constraints

[J]. Computers and Graphics, 2014, 38 (1): 310- 319

TIAN J, QI X, QU L

New spectrum ratio properties and features for shadow detection

[J]. Pattern Recognition, 2016, 51 (C): 85- 96

[本文引用: 2]

KHAN S H, BENNAMOUN M, SOHEL F. Automatic feature learning for robust shadow detection [C] // Computer Vision and Pattern Recognition. Columbus: IEEE, 2014: 1939–1946.

[本文引用: 3]

VICENTE T F Y, HOU L, YU C P. Large-scale training of shadow detectors with noisily-annotated shadow examples [C] // Computer Vision-ECCV. Amsterdam: Springer, 2016: 816–832.

[本文引用: 17]

HOSSEINZADEH S, SHAKERI M, ZHANG H. Fast shadow detection from a single image using a patched convolutional neural network [EB/OL]. (2018-03-16)[2018-10-14]. http.//arxiv.org/abs/1709.09283.

[本文引用: 11]

NGUYEN V, VICENTE T F Y, ZHAO M. Shadow detection with conditional generative adversarial networks [C] // IEEE International Conference on Computer Vision. Venice: IEEE, 2017: 4520–4528.

[本文引用: 11]

LE H, VICENTE T F Y, NGUYEN V. A+D-Net: shadow detection with adversarial shadow attenuation. [EB/OL]. (2018-07-27)[2018-10-14]. https://arxiv.org/abs/1712.01361.

[本文引用: 8]

XIE S, GIRSHICK R, DOLLAR P. Aggregated residual transformations for deep neural networks [C]// Computer Vision and Pattern Recognition. Honolulu: IEEE, 2017: 5987–5995.

[本文引用: 2]

RONNEBERGER O, FISCHER P, BROX T. U-Net: convolutional networks for biomedical image segmentation [C] // International Conference on Medical Image Computing and Computer-assisted Intervention. Cham: Springer, 2015: 234–241.

[本文引用: 2]

WANG F, JIANG M, QIAN C. Residual attention network for image classification [C] // Computer Vision and Pattern Recognition. Honolulu: IEEE, 2017: 6450–6458.

[本文引用: 2]

WANG X, GIRSHICK R, GUPTA A. Non-local neural networks [EB/OL]. (2018-04-18)[2018-10-14]. https://arxiv.org/abs/1711.07971.

[本文引用: 4]

ZHU J, SAMUEL K G G, MASOOD S Z. Learning to recognize shadows in monochromatic natural images [C] // Computer Vision and Pattern Recognition. San Francisco: IEEE, 2010: 223–230.

[本文引用: 4]

IOFFE S, SZEGEDY C. Batch normalization: accelerating deep network training by reducing internal covariate shift [C]// International Conference on Machine Learning. Lille: ACM, 2015: 448-456.

[本文引用: 1]

HE K, ZHANG X, REN S. Deep residual learning for image recognition [C]// Computer Vision and Pattern Recognition. Las Vegas: IEEE, 2016: 770–778.

[本文引用: 1]

/