基于改进Mask R-CNN的火焰图像识别算法

2020-11-10 07:10喻丽春刘金清
计算机工程与应用 2020年21期
关键词:金字塔火焰卷积

喻丽春,刘金清

1.福州外语外贸学院 理工学院,福州 350202

2.福建师范大学 光电与信息工程学院,福州 350007

1 引言

在各种威胁社会公众安全的主要灾害中,火灾是其中最普遍常见的灾害之一,每年发生的火灾给人们带来了严重的损失。随着科学技术的发展,智能检测、智能监控技术在火灾预警系统中被广泛应用。火焰的识别和检测是火灾报警系统中最关键的环节。近年来,国内外研究人员对火灾检测技术进行了大量研究,取得了大量成就。目前已有的火灾检测技术总体可以分为两大类,一是基于红外、烟感等传感器的火灾检测[1-4]。这类技术在检测室内火灾是简单有效,但在室外空间较大的场所,由于温度、烟雾等信息不易采集,传感器也容易老化,漏报和误报情况较高。二是基于人工选择特征模型的视频图像火灾检测[5-6]。这种方法对人工选择特征具有较大依赖,由于人工选择特征具有主观性和盲目性,泛化能力较差,会影响到火灾检测的准确率。因此如何提升火焰图像检测的泛化能力和准确率,是当前亟待解决的一个重要问题。

目前深度学习和计算机视觉技术在图像分割和图像识别领域广泛应用,特别是基于深度学习的目标检测算法迅速发展,在图像语义分割识别上逐步替代了传统的分割识别技术。相对于传统算法,深度学习算法降低了硬件成本,不依赖人工特征工程。将深度学习应用于火焰图像检测,可以让模型自我学习烟火特征,及时检测识别火焰图像,实现火灾预警[7-8]。Mask R-CNN(Region-based Convolutional Neural Network)算法是当前最优秀的目标检测深度学习算法之一,它在图像目标检测上表现优异,本文通过改进Mask R-CNN 算法,将其应用于火焰图像检测,通过仿真实验对比已有的算法,改进后算法提高了检测准确率。

图1 Mask R-CNN框架结构图

2 Mask R-CNN介绍

Mask R-CNN 是 He 等[9]于 2017 年提出的物体检测新算法,是R-CNN 深度学习网络框架系列的最新框架。Mask R-CNN 的特点是在进行目标检测的同时进行实例分割,该算法取得了微软大型图像数据集(Microsoft Common Objects in Context,MS COCO)2016 比赛的冠军。Mask R-CNN 的网络总体包含三个部分:目标定位、目标分类、掩膜预测。Mask R-CNN的框架结构图如图1 所示,其骨干网络由残差网络(Residual Network,ResNet)和特征金字塔网络(Feature Pyramid Network,FPN)组成。图片输入后,首先通过骨干网络提取多尺度特征图,然后根据区域建议网络(Region Proposal Network,RPN)选择出候选区域目标,接着使用softmax分类器区分前景目标和背景目标,同时使用边框回归器修正候选框位置,生成最终候选框。最后使用全卷积网络进行掩膜预测,分类网络使用特征图和候选区域实现最终目标分类预测。

2.1 特征金字塔网络

Mask R-CNN 的骨干网络由残差网络和特征金字塔网络FPN结合而成。特征金字塔网络包含三个部分,一个是自底向上的线路,一个是自顶向下的线路,一个是横向链接[10],如图2所示。

(1)自底向上线路网络在前向传播过程中,特征图的尺寸大小在经过某些层会发生改变,而在经过另外一些层不会改变,将没有改变的特征层归为一个stage。每次抽取的特征就是一个stage 最后一层的输出,不同stage生成的特征输出构成特征金字塔。

(2)自顶向下线路自顶向下时采用上采样,横向链接将上采样的结果和自底向上生成相同大小的特征进行融合,融合后再用3×3的卷积核对每个融合结果进行卷积,消除混叠效应,得到最终特征图。

图2 特征金字塔网络

2.2 区域建议网络

区域建议网络RPN是在Faster R-CNN算法中首次提出[11],其功能是用来产生可能的目标候选区域,以解决传统选择搜索生成候选框耗时较多的问题。RPN 根据卷积神经网络生成的特征图,在原图的尺度上,采用滑动窗口的方式,每个滑动窗口生成k个锚点(anchor),然后对生成的anchor 分别进行分类和回归。分类分为前景目标和背景目标,回归层共产生2k个评分。每个锚点进行边框回归时,因为每个边框有四个坐标,因此会有4k个坐标输出,具体如图3所示。

图3 区域建议网络

2.3 兴趣区域对齐

兴趣区域(Region of Interest Align,ROI Align)是Mask R-CNN相对于Faster R-CNN网络的一个改进点。Faster R-CNN 存在的问题是:特征图与原始图像是不对准的(mis-alignment),所以会影响检测精度。而MaskR-CNN 提出了RoI Align 的方法来取代ROI pooling,ROI Align可以保留大致的空间位置。

ROI Align取消了量化操作,不再进行四舍五入,由于目标位置的边界可能不是整数,使用双线插值的方式获得坐标为浮点数的像素点上的图像数值。首先遍历每一个候选区域,保持浮点数边界,降候选区域分割成k×k单元,每个单元边界也不做量化,在每个单元中计算固定的四个坐标位置,用双线性内差法计算四个位置的值,然后进行最大池化操作。ROI Align 有效解决了原始图像与特征图不对准的问题。

2.4 分类边框及掩膜生成

ROI Align输出后,分为两个分支,一个分支是通过7×7×256 的卷积核,在经过两个1 024 特征向量的全连接层,完成分类和边框回归。另一个分支是通过5次的14×14 的卷积核运算,再利用2×2 的反卷积采样生成28×28 的特征图,在经过1×1 的卷积和激活函数后得到28×28的输出,输出中每个点代表物体形状的前景和背景置信度。用0.5 为置信度阈值得到物体掩膜,具体如图4所示。

图4 分类边框及掩膜生成

3 基于改进Mask R-CNN的火灾检测

Mask R-CNN 是当前物体检测中最优秀的深度学习检测算法之一。火灾检测的主要任务是要检测出火焰和烟雾,如果直接将Mask R-CNN 应用于火灾检测,存在如下问题:

(1)由于特征金字塔网络底层特征与高层特征的融合路径较长,导致底层特征信息在前向传播的过程中损失严重,进而影响后续的边框分类,掩膜生成,导致部分火焰或者烟雾漏检。

(2)MaskR-CNN 的损失函数包括分类误差、检测误差、分割误差。其分割误差为平均交叉熵损失函数,该函数在分割任务中依赖于区域信息,忽略了边界区域,因此对边界分割准确度不高,导致火焰或烟雾目标误检。

针对以上问题,可以通过改进Mask R-CNN特征金字塔网络和损失函数来改进算法,提升识别火灾检测准确率。

3.1 改进特征金字塔网络

由于特征金字塔网络在提取特征信息时,底层特征损失严重,为了在提取特征时充分保留特征金字塔的底层特征,引入一条自底向上的路径来加强底层特征的信息,建立底层特征和高层特征的特征融合路径。

FPN 输出P2、P3、P4、P5特征映射层后,P2和N2相同,将N2与步长为2的3×3的卷积核缩小尺寸,下采样为原来的一半,通过横向连接与P3按元素相加,再通过3×3的卷积核得到N3,接着再将N3与步长为2的3×3的卷积核卷积结果逐元素与P4相加,再通过3×3的卷积核卷积得到N4,如此依次迭代,得到N5。特征映射层的生成公式如下所示:

生成的N2、N3、N4、N5融合特征主要以本层特征为主的同时,还融合了顶层特征和底层特征,形成了一个新的金字塔结构网络,N2、N3、N4、N5每层特征输出图保持256 的通道输出,而每次卷积后,接线性整流函数(Rectified Linear Unit,ReLU),这样特征图输出能够在后续网络共享一个分类层。改进后的特征金字塔网络如图5 所示。其中图5(a)右侧虚线框部分为新增的特征融合路径,特征融合操作细节如图5(b)所示。

图5 引入自底向上特征融合路径

3.2 改进损失函数

MaskR-CNN 的损失函数由三部分组成,分别为分类误差、检测误差、分割误差。公式如下:

在进行分割任务时,Lmask为平均二值交叉熵损失函数,其计算公式如下:其中,y表示二值化后的实际分割结果输出,y表示二值化后的预测分割结果输出。

损失函数依赖于区域信息,对分割结果上对边界的分割准确度不高。为了提高分割结果准确度,在Lmask加入边界加权损失函数[12]。训练时,利用距离损失对分割位置、形状、连续性进行正则化,优化后公式如下:

其中,β表示权重系数,y表示二值化后的预测分割结果输出,B表示分割结果的边界,p表示点集B中包含分割结果的边界点的点数。R表示整个分割区域。Mdist表示相对准确分割边框的距离。

4 仿真实验及分析

4.1 实验环境

实验环境使用深度学习框架Tensorflow1.4[13]来实现本文算法,使用的显卡为NVIDIARTX2080Ti,操作系统是Windows 10,内存8 GB。使用Microsoft VS Code为开发环境,进行相关代码的训练和测试。

4.2 数据集

目前火灾数据集还没比较权威的公用数据集,因此实验数据集为通过互联网搜索后,人工筛选,得到约1 000多张火焰图片,图片样本如图6所示。通过图像标注工具VIA-2.0.8(VGG Image Annotator)对图片进行人工标注,标注框为矩形。标注时,应尽可能减少背景信息,以免进行模型训练时,将背景信息当作火焰特征进行训练,造成模型收敛困难,导致误检率增高。图像样本集包含火焰训练图片800张,验证图片100张,测试图片100张,共1 000张。

图6 图像样本集

4.3 模型训练

实验采用随机梯度下降的方法来训练优化模型。首先将数据集统一分辨率为400×400,然后使用Microsoft COCO 的预训练模型初始化网络参数。权重为1,动量系数为0.9,初始学习率为0.002。

为了验证模型,采用准确率P,召唤率R,以及精确率均值F1 等多个指标对检测模型进行评价。F1 计算公式如式(7)所示。Macro-F1值为多个类别F1 值的平均值,如式(8)所示。

1906年12月,汪优游、朱双云、王幻身等在上海创立开明演剧会。“是年(1906年)江皖患水,饿殍载道。双云、优游辈,谋有以赈之者,乃发起开明演剧会,演剧助赈。”[2]541907年2月,开明演剧会在上海县城举行赈灾公演,历时5天,受到上海市民的欢迎,成为清末民初上海学生演剧活动成功的范例之一。[2]52在汪优游撰写的《我的俳优生活》一文中也有开明演剧会的详细记录:

其中,TP表示实际为正确检测出目标图像的样本个数,FP为实际不是目标图像,却被检测为目标图像的样本个数。FN为实际为目标,被当作背景没检测出来的样本个数。

训练时,每迭代1 000 次,对火焰图像进行一次预测。经过15 000次的迭代后,训练网络初步具备识别火焰目标能力,并可以给出目标是否是火焰的概率。网络训练过程损失和识别精度如表1 所示。从表1 可以看出,经过5 000 次迭代后,训练得到有效收敛并逐步下降,在15 000 次左右平稳,说明网络得到了有效学习。训练网络的识别精确率也随之提升,达90%以上。

表1 训练网络损失和识别精确率

为了充分评估检测模型优化的有效性,分别构建如下四种模型。

(1)Mask R-CNN。

(2)Mask R-CNN 算法基础上改进特征金字塔网络,简称为Mask RCNN-A。

(3)Mask R-CNN 算法基础上改进损失函数,简称为Mask R-CNN-B。

(4)Mask R-CNN算法基础上同时改进特征金字塔网络和损失函数。简称为Mask R-CNN-C。

针对四种模型分别进行三次训练,形成三个独立的模型参数,分别测试模型的定位准确率和检测准确率。目标检测定位准确性,一般使用模型预测的候选框和原标记框的交并比(Intersection-Over-Union,IOU)指标来进行评价。各模型定位准确率测试结果如表2所示。

表2 模型定位准确率测试结果%

F1 值充分考虑了模型的准确率和召回率,因此实验选择F1 值来评价模型检测率的高低。模型检测准确率测试结果如表3所示。

表3 模型检测准确率测试结果%

从以上网络模型测试结果可以看出,算法Mask RCNN在分别单独改进特征金字塔网络结构和损失函数后,定位准确率IOU和精确率F1 值均有一定提升,其中同时改进FPN 网络和损失函数的模型算法对提升效果最佳,说明改进有效。同时改进FPN网络和损失函数后,定位平均精度达90%以上,Macro-F1值达到92%以上。

4.4 实验对比

为了验证本文改进算法模型的有效性,将改进后的模型同其他优秀算法进行对比。网络模型选择如下:

(1)YOLOv3模型算法[14]。

(2)SSD模型算法[15]。

(3)Mask R-CNN算法基础上同时改进特征金字塔网络和损失函数。简称为Mask R-CNN-C。

如表4 所示,相对于识别算法YOLOv3 和SDD,改进后算法Mask R-CNN-C 的Macro-F1 值提高了2.94%和4.29%,同时针对检测目标分割也更精确,具体如图8所示。少数较小的火焰目标,改进后算法能够准确定位,而原算法漏检。这是由于算法引入了底层特征信息和顶层特征的融合,同时改进了损失函数的效果。

表4 检测算法对比%

图7 检测效果对比

5 结束语

针对目前火焰图像检测算法依赖人工特征工程,泛化能力差导致检测率不高的问题,本文提出一种基于改进Mask R-CNN 的火焰图像检测算法。算法为了改善特征金字塔网络低层次过于粗糙的问题,引入自下而上的特征融合路径,增强了特征信息图的细节,改善了火焰目标的检测定位。在构建的测试数据集上,通过仿真实验与其他优秀算法的对比,改进后算法的检测准确率更高,同时也降低了误报率和损失率。

猜你喜欢
金字塔火焰卷积
“金字塔”
最亮的火焰
基于3D-Winograd的快速卷积算法设计及FPGA实现
缤纷的火焰
Great Vacation Places
卷积神经网络的分析与设计
从滤波器理解卷积
海上有座“金字塔”
漂在水上的火焰
基于傅里叶域卷积表示的目标跟踪算法