针对室内环境下智能监控视频对光照变化产生的阴影难以识别、分割困难等问题, 提出一种结合迁移学习方式和SENet通道注意力机制的UNet网络. 首先, 针对阴影特征模糊难以有效提取的问题, 在UNet模型的上采样部分, 添加SENet通道注意力机制, 在不增加网络参数的同时, 提高有效区域的特征权重; 并将预训练好的VGG16网络迁移到UNet模型中, 实现特征迁移和参数共享, 提高模型的泛化能力, 减少训练成本; 最后通过解码器得到分割结果. 实验结果表明, 改进的UNet算法相比于原UNet算法在对运动目标的分割精度上达到了96.09%, 对阴影的分割精度上达到92.24%, 平均交并比(
Considering that shadows caused by changes in lighting are difficult to identify and segment for intelligent surveillance videos in indoor environments, this study proposes a UNet network combining the transfer learning method and the SENet channel attention mechanism. Specifically, because shadow features are blurry and difficult to extract effectively, the SENet channel attention mechanism is added to the upsampling part of the UNet model to improve the feature weight of the effective area without increasing the network parameters. A pre-trained VGG16 network is then migrated into the UNet model to achieve feature migration and parameter sharing, improve the generalization ability of the model, and reduce training costs. Finally, the segmentation result is obtained by a decoder. The experimental results show that compared with the original UNet algorithm, the improved UNet algorithm offers significantly enhanced performance indicators, with its segmentation accuracy on moving objects and shadows respectively reaching 96.09% and 92.24% and a mean intersection-over-union (
自然界中的阴影无处不在, 阴影是由于光的传播途径中有遮蔽物而产生的. 阴影的优点是它包含光源和场景的物体信息, 有助于理解场景的目标. 但是阴影的缺点也不容忽视, 由于阴影与运动目标存在粘连, 使检测到的目标轮廓不够精准, 妨碍现有的很多影像、视频处理及分析工作, 也对后续进行目标的跟踪和识别等操作产生干扰. 因此, 对阴影检测及消除方法的研究, 既有理论意义又有现实意义, 被认为是机器视觉的一项富有挑战性的任务.
在对室内运动目标进行检测与跟踪等工作时, 阴影会因室内存在光照变化而出现. 由于产生的阴影与运动目标的运动性质一致, 随着目标的运动, 阴影的形状也会随时发生变化, 并且室内光线越充足, 阴影颜色越明显. 对于视频序列而言, 在对运动目标进行检测时, 极容易将阴影也判断成是目标, 这对室内运动目标的行为识别的研究造成了很大的困难, 最近几年的前景检测方法也还是被这个问题所困扰.
近年来, 阴影的检测与消除已成为智能监控领域的一个热门话题. 早期的传统方法是利用手工设计的特征(如颜色[
随着深度学习的迅速发展, 越来越多的研究者们使用深度学习方法检测和去除图像与视频中的阴影. Khan等人[
因此, 采用深度学习的方法进行阴影检测不仅可以获得较高的精度, 而且节省复杂的物理建模过程, 大大简化了阴影检测任务的复杂性, 为研究提供了新的思路.另外, 深度学习在图像语义分割工作中也取得了较高的成果, 如FCN[
UNet是一种十分对称的端到端的分割算法, 它包括主干特征提取部分和加强特征提取部分. 在主干特征提取结构中, 采用连续下采样过程提取更深层次的特征信息. 这个过程主要是通过3×3的卷积层和2×2的最大池化层来实现. 通过特征图的大小不断压缩, 特征通道的数量逐渐增加, 提取的特征更加抽象和丰富, 对目标的表达能力更强, 这一部分可以得到5个初步有效特征层. 由于图像的不断压缩, 会导致丢失很多目标的细节信息, 因此在加强特征提取结构中, 将上半部分获得的有效特征层进行上采样操作, 逐像素的恢复原始图像的精度, 恢复细节信息, 再通过跳跃连接将两部分获取的特征层进行特征融合. 最后使用1×1的卷积层来修改通道数, 获得最终分割结果. 在UNet语义分割模型中, 左侧部分用于编码, 右侧部分用于解码,
UNet网络结构图
由于在室内环境中, 如开关灯或太阳光线照射等原因, 室内光线强度随时发生变化, 对运动目标的检测变得更加复杂. 为了更加细致且精准的分割运动物体的阴影, 需要高效提取运动目标及其阴影的细节特征, 使阴影轮廓内部的信息更加明确, 因此进行更深层次的卷积运算是十分必要的. 然而随着卷积层的增加, 参数量也会增加. 因此, 改进后的模型需要达到能够高效提取运动目标和阴影的有效特征的同时, 还要减少网络参数.
为了高效提取特征, 减少网络参数, 本文采用VGG16网络(不包含全连接层)[
注意力机制的核心焦点是让网络关注到它最需要关注的地方. 当我们使用卷积神经网络处理图片时, 我们会更希望卷积神经网络关注应该需要注意的地方, 而不是关注于一切, 并且也不可能手动去调整需要注意的地方. 此时, 如何使卷积神经网络去自适应的对重要对象的关注就变得极其重要. 注意力机制就是实现网络自适应注意的一个方式.
对于输入进来的特征层, 利用SENet通道注意力机制模块[
然后对feature map
(1) Squeeze操作
这一步采用全局平均池化来实现, 输入的特征图为
其中,
VGG16网络结构
(2) Excitation操作
通过第1步的全局平均池化操作会得到一个结果
SENet注意力机制模块
该过程需要经过两个全连接层和两次激活操作. 首先
其中,
(3) Scale操作
Scale操作是运用乘法, 将第2步中获得的权重
其中,
为了加强模型对重要特征的关注, 减少对不必要特征的提取, 本文对UNet模型进行了相关改进, 在加强特征提取结构中加入SENet通道注意力机制. 在网络解码阶段, 先将编码阶段获得的有效特征层进行上采样操作, 逐像素的恢复原始图像的精度, 恢复细节信息, 再通过跳跃连接将两部分获取的特征层进行特征融合, 此时得到的细节特征更加全面. 将融合后的特征层进行两次卷积之后, 嵌入SENet通道注意力模块, 在前3次跳跃连接中, 每进行一次特征融合后都添加一个SENet通道注意力模块, 使模型在训练过程中能够始终关注重要特征, 从而提高对视频序列中的运动目标及其阴影分割的准确性和鲁棒性. 具体结构如
改进加强特征提取网络的结构图
本文在UNet网络结构上进行改进, 使用VGG16作为主干特征提取网络, 去掉其全连接层后与加强特征提取网络结构进行有效衔接. 在加强特征提取网络结构中, 本文选择在特征融合之后嵌入SENet通道注意力机制来关注重要特征, 能够增强网络的学习能力, 提高其分割的准确性. 改进后的UNet模型网络结构如
改进UNet的网络结构
本文实验的计算机配置如
环境配置
实验条件 | 配置 |
处理器 | Inter(R) Core(TM)i5-7500 CPU @3.40 GHz |
内存 | 16 GB |
显卡 | NVIDIA GeForce GTX 1080Ti |
深度学习框架 | PyTorch 1.2.0 |
编程语言 | Python 3.6 |
本实验采用公共测试数据集Changedetection中的shadow子集作为数据集, 该数据集是大多数运动检测领域使用的大型且权威的数据集. 其中shadow子集里有6个类别, 主要场景包含2个室内场景, 4个室外场景. 由于本文研究的是室内环境中运动目标及其阴影的检测与分割任务, 所以选择shadow子集中的cubicle视频序列作为数据集. 该cubicle视频序列的场景为白天室内环境中人物运动存在阴影的场景, 共包含图片7500帧, 图像尺寸为352×240, 选取其中的2000张作为本文实验的数据集.
本文使用Labelme图像标注工具对室内环境下的视频图像进行标注, 人工标注每张图像中的运动目标及其阴影, 并输入类别标签为people和shadow两类. 在完成手工标注后, 生成标签文件. 采用9:1的比例划分训练集和验证集, 训练集为1800张, 验证集为200张. 测试集选取剩余的cubicle视频序列中室内阳光强烈、存在明显阴影的视频序列, 以及选取公开数据集hallway和room这两个室内运动目标离光源较远、产生的阴影强度非常低的视频序列, 共80张. 然后对改进后的UNet模型进行训练, 实验流程图如
本文选择常用的评价分割结果指标, 精确率(
其中,
基于VGG16结构的UNet阴影分割算法流程图
初始学习率设置为1×10−4, 选取Adam优化算法, 学习率的更新因子为0.96, 间隔设置为1, 训练迭代次数为1000, 批处理图片大小设置为4. 本文图像分割模型的损失函数为交叉熵损失函数(cross entropy loss)与Dice Loss函数结合, CE Loss的计算公式为:
其中,
Dice系数, 是一种集合相似度度量函数, 通常用于计算两个样本的相似度(值范围为 [0, 1]), 计算公式如下:
其中,
从
本文选择基于HSV颜色空间的阴影检测方法和UNet网络、DeepLabv3网络以及本文改进后的UNet网络进行对比. 文献[
其中,
训练和验证损失函数变化曲线图
根据实验得出, 基于HSV颜色空间的阴影检测方法的阴影检测率为86.30%, 阴影区分率为73.28%, 平均值为79.79%, 平均运行时间为14.32 ms. 深度学习网络在cubicle数据集的实验结果如
深度学习网络在cubicle数据集的精度结果
算法 | 类别 | |||||
UNet | 运动目标 | 96.87 | 95.9 | 93.02 | 92.06 | 68.96 |
阴影 | 90.3 | 91.74 | 83.51 | |||
DeepLabv3 | 运动目标 | 94.53 | 91.11 | 86.55 | 87.23 | 43.27 |
阴影 | 84.55 | 87.98 | 75.79 | |||
本文算法 | 运动目标 | 97.1 | 96.09 | 93.41 | 92.58 | 74.48 |
阴影 | 91.17 | 92.24 | 84.67 |
从以上实验结果可以得知, 使用传统方法即基于HSV的阴影检测方法容易将部分运动目标误判为阴影, 对阴影的检测效果不高. 对比深度学习方法, 改进后的UNet分割网络相较于原UNet网络,
本文方法与其他方法的对比图
本文对UNet语义分割网络进行改进, 采用迁移学习方法并且加入SENet通道注意力机制, 能够抓取有效的重要特征, 提高良好的学习能力. 训练和测试改进后的UNet模型, 比传统阴影检测的方法效果要好. 相比于原UNet模型、DeepLabv3模型, 在分割精确度上有些许提升. 本文的运行时间相较于其他方法略长, 但基本上满足实时性的要求. 对于部分数据集来说, 图像中人物及其阴影的分割轮廓更加精准、细节更加完善. 实验结果表明, 提出的一种结合迁移学习方式和嵌入SENet通道注意机制的UNet网络模型的分割算法具有良好的鲁棒性能, 能够基本解决智能监控视频对室内环境下因光照变化产生的阴影难以识别、分割困难等问题. 未来可进一步研究将运动检测与阴影去除结合起来, 便于进行运动目标跟踪及异常行为分析等研究.
Salvador E, Cavallaro A, Ebrahimi T. Cast shadow segmentation using invariant color features. Computer Vision and Image Understanding, 2004, 95(2): 238–259, doi: 10.1016/j.cviu.2004.03.008.
Guo RQ, Dai QY, Hoiem D. Paired regions for shadow detection and removal. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2013, 35(12): 2956–2967, doi: 10.1109/TPAMI.2012.214.
Cucchiara R, Grana C, Piccardi M,
武明虎, 宋冉冉, 刘敏. 结合HSV与纹理特征的视频阴影消除算法. 中国图象图形学报, 2017, 22(10): 1373–1380, doi: 10.11834/jig.170151.
张德干, 陈晨, 董悦, 等. 一种基于机器学习的运动目标阴影检测新方法. 光电子·激光, 2018, 29(12): 1317–1324, doi: 10.16136/j.joel.2018.12.0075.
杨春德, 郭帅. 改进基于HSV空间的阴影检测算法. 计算机工程与设计, 2018, 39(1): 255–259, doi: 10.16208/j.issn1000-7024.2018.01.044.
Khan SH, Bennamoun M, Sohel F, et al. Automatic shadow detection and removal from a single image. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2016, 38(3): 431–446, doi: 10.1109/TPAMI.2015.2462355.
Shelhamer E, Long J, Darrell T. Fully convolutional networks for semantic segmentation. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(4): 640–651, doi: 10.1109/TPAMI.2016.2572683.
Chen LC, Papandreou G, Kokkinos I, et al. DeepLab: Semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected CRFs. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2018, 40(4): 834–848, doi: 10.1109/TPAMI.2017.2699184.
Sanin A, Sanderson C, Lovell BC. Shadow detection: A survey and comparative evaluation of recent methods. Pattern Recognition, 2012, 45(4): 1684–1695, doi: 10.1016/j.patcog.2011.10.001.
Prati A, Mikic I, Trivedi MM, et al. Detecting moving shadows: Algorithms and evaluation. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2003, 25(7): 918–923, doi: 10.1109/TPAMI.2003.1206520.