APP下载

基于深度学习的阴影检测算法

2020-04-01汪明章邢冠宇

现代计算机 2020年6期
关键词:全局阴影准确率

汪明章,邢冠宇

(1.四川大学计算机学院,成都 610065;2.四川大学视觉合成图形图像技术国防重点学科实验室,成都 610065)

0 引言

阴影是一种常见的光照现象,是由于某些遮挡物将光遮挡,从而导致局部表面的颜色和强度发生变化。阴影分为自阴影和投射阴影:自阴影是由于物体本身的遮挡,导致物体的局部表面颜色和光照强度发生变化,称为自阴影;投射阴影是由于一个物体的遮挡,导致另一个物体局部表面发生颜色和光照强度的变化,称为投射阴影。一方面,若已知阴影位置,可以求得照明方向[1]、相机参数[2]和场景几何[3];另一方面,阴影的存在会降低一些视觉任务的性能,例如语义分割[4]、目标检测[5]。因此,阴影检测长期以来一直是计算机研究中的基本问题。

早期的方法是通过颜色空间或者基于光照不变假设等物理模型,使用手工设计的特征,例如颜色[6,7]、光照变化[8,9]等,来检测和消除阴影;然而在复杂情况下,基于假设的物理模型方法检测阴影效果不够好。近年来,基于深度学习的阴影检测方法[10-12]取得长足进步,比较先进的方法[12]检测阴影的精度已经达到90%,能恢复大多数阴影。但是目前这些方法仍会把一些黑色物体识别为阴影,因为这些网络无法分析和理解图像的全局语义,产生了错误的检测结果。

为了从图像中学习全局语义,本文设计了一种Ex⁃tract模块,完成两个任为:首先使用一个卷积块(Conv Block)来转换通道数,然后分别用一个残差块[13](Resid⁃ual Block)获取一个同分辨率的输出A和一个反卷积块(Deconvolution Block)获取一个分辨率提升一倍的输出B。残差块的作用是继续从低分辨率的图像中提取局部信息;而反卷积块的作用是从低分辨率的输入中提取全局信息。因此,Extract模块可以从大尺寸图像中学习细节信息,从小尺寸图像中学习全局信息。

1 相关工作

传统方法。早期的工作[8,14]基于光照不变的假设建立了物理模型,这种方法仅仅适用于高质量且满足假设的图像,而对于复杂的图像难以得到好的结果。另一种方法基于阴影图像的特点,手工设计特征描述符,通过这些描述符去描述图像区域,然后将用分类器将图像区域分为阴影区域和非阴影区域。用于阴影检测的特征描述符主要有:颜色[15,16]、边缘[17,18]、纹理[17]等,使用的分类器有决策树[17,19]和SVM[16,18]等。但是手工制作的特征描述阴影的能力有限,因此基于物理模型的传统方法在复杂情况下通常会失败。

近年来,卷积神经网络已经被证明是非常强大的工具。一些基于卷积神经网络的阴影检测方法被提出,其结果优于以前的方法。Khan等[10]使用多个CNN来学习超像素和边缘的特征,并将输出特征馈送到条件随机场以检测阴影。沈等[7]提出了一种深层次的结构化阴影边缘检测器,并采用结构化标签来改善预测阴影图的局部一致性。维森特等[11]使用带有噪声注释的大型数据集训练了stacked-CNN,使用留一法误差平方和最小化以恢复阴影标注。

Hosseinzadeh等[20]使用patched-CNN和根据手工特征计算的阴影先验图来检测阴影。Nguyen等[21]设计了具有灵敏度参数的scGAN来调整损失函数的权重。尽管阴影检测精度不断提高,但是现有方法仍可能会将黑色物体误识别为阴影,并遗漏了不明显的阴影。

2 本文方法

2.1 模块

Extract模块。Extract模块是本文方法的关键模块,Extract模块主要完成两个任务,一是对输入特征进行卷积,提取细节信息,得到输出特征;二是从输入特征中提取全局信息,得到另一个输出特征,这个输出特征作为更大尺寸Extract模块的输入特征。Extract模块的操作包含三个步骤:①先将输入特征A和输入特征B在深度方向进行堆叠得到中间特征C,然后对中间特征C进行卷积,得到中间特征D;②对中间特征2使用残差块进行卷积得到输出特征F,输出特征F作为下一个Extract模块的输入;③使用一个反卷积层对中间特征D进行反卷积得到输出特征E,目的是从小尺度图像中提取信息,作为更大尺度的输入特征之一,从而从小尺度图像中提取全局信息。输入特征A、输入特征B和输出特征F三者的大小相同,通道数可以不同。输入特征A可以为空,表示Extract模块只有一个输入,此时会跳过堆叠输入特征A和输入特征B这个步骤。

Merge模块。Merge模块的作用是将两个输入堆叠,卷积之后再使用残差块卷积。Merge模块的操作分为三个步骤:①将输入特征A和输入特征B在深度方向进行堆叠,得到中间特征C;②对中间特征C进行卷积,得到中间特征D;③对中间特征D进行使用残差卷积,得到输出特征E。输入特征A、输入特征B、中间特征C、中间特征D和输出的特征的大小均相同,但A、B和C、D、E的通道数可能不同。

图1 Extract模块示意图

图2 Merge模块示意图

解码模块。解码模块在不改变大小的情况下,减少通道数量至1,输出阴影的预测图。解码模块的操作分为两步:①在不减小大小的情况下,对输入特征A进行卷积,得到通道数为64的中间特征B;②对中间特征B进行卷积,得到通道数为1的输出特征C。

图3 解码模块数据流图

此外,本文网络中还是用了残差块[13],下采样模块和上采样模块。

2.2 网络结构

此部分介绍本文提出的模型。同一张彩色图像的四个不同大小(A:512×512、B:256×256、C:128×128、D:64×64)作为网络输入,从大尺寸的图像中提取细节信息,而从小尺寸图像学习全局信息;网络的输出是四个单通道图像,分别为(E:256×256、F:128×128、G:64×64、H:256×256),这些输出和对应尺寸的阴影掩模作为损失函数的输入。

在横向上看,有三条横向的流,从上到下特征的大小分别为256×256、128×128、64×64,在横向的流中,提取细节信息;在纵向上看,有四条向上的流,目的是从小尺寸特征中提取全局信息,作为大尺寸Extract模块的输入。因此,本文的网络既能提取细节信息,又能提取全局信息,具有良好的检测阴影能力。

图4 本文网络示意图

网络使用Extract模块从小尺寸图像中提取全局信息。

2.3 损失函数

假设阴影掩模为y,网络的阴影预测图为p。则y(i,j)为像素(i,j)的真值,当像素(i,j)是阴影像素时y( i,j)=1,否则y( i ,j)=0;p( i ,j)为阴影像素(i,j)的概率越接近1表示(i,j)越有可能是阴影像素点。那么交叉熵损失函数L(y,p)为:

从公式(1)可知,当阴影掩膜y和阴影预测图p越接近时,L(y,p)的值越小。

同一张图像的阴影掩模会被缩放为图像D1(256×256)、D2(128×128)、D3(64×64);网络预测有四个阴影预测图像E、F、G、H。D1和E、H大小相同,D2和F大小相同、D3和G大小相同。对于不同大小的网络输出同时进行监督,故总损失函数Loss为:

ω1~ω4为四个不同大小的损失所在的比例,在本文中均取为1,表示各个尺寸图像的损失占总损失的比例相同。

3 实验

3.1 实现细节

数据集简介。在本文中,使用了两个数据集;第一个为SBU[11]阴影数据集,是目前最大的公开可用的阴影数据集,由4089组原图-掩模图像对组成训练集,638组原图-掩模组成测试集;第二个数据集为UCF[17]数据集,由111组原图-掩模组成训练集,110组原图-掩膜组成测试集。本文的模型使用SBU数据集的训练集进行训练。

网络实现细节。卷积模块由卷积层、批归一化层和ReLU层组成,其中卷积层的卷积核大小为3×3、步长为1、填充为1。除下采样模块中使用的卷积层的卷积核大小为5×5、步长为2、填充为2之外,其他所有模块中的卷积层的参数都和卷积模块中卷积层的参数相同。

训练配置。本文网络使用的优化器为Adam,初始学习率lr为1e-5,权重衰减weight_decay为5e-4。学习率随着训练轮次epoch调整,衰减比例γ为0.98,第epoch轮的学习率lrepoch为:

3.2 评价指标

准确率accuracy。TP为预测结果是阴影像素且实际也是阴影像素的像素数量,TN为预测结果是非阴影像素实际也是非阴影像素的像素数量,Np为实际阴影像素的数量,Nn为实际非阴影点的数量,故准确率定义为:

准确率代表预测正确的像素占所有像素的比例,故准确率是越高越好。

平衡误差率BER。通常情况下,一张图像中的阴影像素的数量远少于非阴影像素的数量,故引入第二个评价标准平衡误差率(Balanced Error Rate,BER),BER的定义为:

平衡误差率根据阴影像素和非阴影像素的各自的数量计算预测正确的比例,再用1去减,故平衡误差率是越低越好。

3.3 实验结果

本文的对比的阴影检测方法为:Unary-Pairwise[22]、patched-CNN[20]、stacked-CNN[11]、scGAN[21]。其中第一个方法是使用手工设计的特征,后三个方法是基于深度学习的方法。本文使用的SBU数据集中的训练集来训练,其他方法使用作者的默认参数。准确率和平衡误差率的结果将在表1中给出。图5是部分阴影图像使用各种方法的对比结果。

图5本文方法检测结果

从表1中可以看出,本文方法的准确率是所有方法中最高的。在SBU数据集上,准确率比scGAN的准确率高0.06,BER比scGAN的BER低1.93;在UCF数据集上,准确率比scGAN的准确率高出0.07,BER比scGAN的BER低0.73。实验结果表明,本文的方法取得了较先进的结果。

表1 本文方法MSN和其他阴影检测方法的对比

4 结语

本文引入Extract模块,从小尺寸图像中提取全局信息,从大图像中提取细节信息。多层Extract模块、残差模块、解码模块和上采样模块等组成了多输入多输出的网络。通过多轮训练后,在ISTD和UCF数据集上准确率都是最高,平衡误差率都是最低,取得了非常好的结果。

猜你喜欢

全局阴影准确率
基于改进空间通道信息的全局烟雾注意网络
领导者的全局观
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
多层螺旋CT技术诊断急性阑尾炎的效果及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
你来了,草就没有了阴影
落子山东,意在全局
阴影魔怪