基于Mask R-CNN的行人分割
2020-10-20胡剑秋邢向磊何佳洲
胡剑秋,邢向磊,蒋 攀,何佳洲
(1.江苏自动化研究所,江苏连云港 222061; 2.哈尔滨工程大学自动化学院,黑龙江哈尔滨 150001)
在安防、自动驾驶、军事等领域,识别行人是一项重要任务。在行人面部情况遮挡严重或行人尺度较小等脸部特征不明显的情况下,需要使用行人的其他生物特征来辨别,现阶段使用较多的生物特征是步态特征,该特征具有难隐藏、采集距离远等优势[1]。在分析行人步态规律过程中,本文采用提取行人轮廓的方式,需要准确地分割出行人腿部轮廓。为了更精确地分割行人的轮廓,本文基于Mask R-CNN模型对行人进行实例分割,并针对行人目标对模型进行优化,提取更高精度的行人轮廓信息,为后续寻找行人步态规律奠定基础。
近年来,研究人员基于深度神经网络对目标分割提出了一系列方法。文献[2]提出的全卷积神经网络(Fully Convolutional Networks, FCN)创造性地使用反卷积进行上采样,引入跳跃连接改善上采样粗糙的像素定位,是深度学习实例分割领域的开山之作。文献[3]提出的Mask R-CNN模型,基于Faster R-CNN模型[4],借鉴FCN网络扩展了分割掩码分支,同时完成了目标检测、目标分类、实例分割,实现端到端的像素级分割,改善多次取整量化造成的像素偏差,是目前实例分割领域极具竞争力的算法。研究人员不断提出基于Mask R-CNN改进的优秀算法,如MaskχR-CNN模型[5]利用检测参数的迁移学习获得mask值,还添加了多层感知器提高了检测目标的种类;同时Mask Scoring R-CNN模型[6]通过分析掩码的完整性,解决对实例分割掩码打分的问题,在实例分割的精度方面有所提高。
本文模型基于Mask R-CNN模型,根据文献[7]统计行人平均宽高比例为0.41,调整RPN网络,剔除宽高比大于1∶1的部分,并扩充行人分割Penn-fudan数据集[8]进行迁移学习,行人分割掩码的交并比(IoU)值较预训练模型提高了9%,获取了更高精度的行人分割效果。
1 模型原理
1.1 Mask R-CNN模型原理
2017年,何凯明等人提出Mask R-CNN模型,随后该模型成为实例分割领域的主流算法之一,可对图像和视频实现像素级的实例分割,精度高,速度可达8 FPS。
Mask R-CNN模型是一个经典的Two-stage算法,扩展自Faster R-CNN模型。本文使用的Mask R-CNN预训练模型的主干网络是ResNet-101残差神经网络[9],是目前提取特征精度较高的主干网络。同时主干网络融合空间金字塔结构(FPN),可将低层的目标位置信息和高层的特征语义信息融合,更好地产生图像特征图(Feature map)。随后的连接区域建议网络(RPN),如图1所示。网络在特征图上,基于锚框机制快速产生大量候选区域,具体操作是剔除越过边界,置信度低、重叠率高的区域,之后采用非极大值抑制NMS的方式,选出置信度靠前的候选区域。卷积特征图上每个点有k个锚框(本文模型中k=15)。每个锚点可区分前景与背景,即转化为分类参数cls,同时每个锚点都有(x,y,w,h)相应4个偏移量,即转化为回归参数reg。
头部网络使用ROIAlign方式进行区域特征聚集,
图1 区域建议RPN网络示意图
使用双线性插值方法改善特征聚集中两次量化导致的不匹配问题,提高小目标的检测精度以及分割的精度。多分类任务使用Softmax函数,边框回归任务使用Multi-task损失函数。分割掩码分支使用全卷积层,对待测目标实现像素级的分割。
Mask R-CNN模型整体的结构,如图2所示。
图2 Mask R-CNN模型结构图
关于模型的损失函数,每个采样ROI上的多任务损失,定义L=Lcls+Lbox+Lmask,其中Lcls和Lbox与Faster R-CNN框架一样,需要分RPN网络的损失和目标检测网络的损失。RPN的损失函数定义如式(1)所示:
(1)
目标检测网络的损失函数定义如式(2)所示:
L(p,u,tu,υ)=Lcls(p,u)+λ[u≥1]Lbox(tu,υ)
(2)
其中,P代表预测目标分类的分数;u代表真实分类的分数;tu代表真实回归框的坐标;υ代表预测回归框的坐标;Lcls代表对数函数损失;Lbox代表平滑L1损失函数。
分割损失Lmask求解流程如下:对于每个ROI区域,掩码分支定义K×m×m的矩阵,即有K个不同的分类,对其中每一个m×m区域中的每一个像素,用Sigmod函数计算相对熵,再计算平均相对熵误差Lmask。
1.2 问题与优化方法
实验中若直接用Mask R-CNN预训练模型对行人进行分割,会产生误检、漏检等问题,如将盆景识别为人;将摄像头支架识别为人;有遮挡情况下,将一个人识别为两个人;将人的部分躯体识别成其他类等。分析原因:Mask R-CNN预训练模型是基于MS COCO数据集进行训练,该数据集中的小尺度行人以及遮挡严重的行人占比较大,这样的数据不利于行人完整的分割以及腿部轮廓的提取。
针对上述问题,根据统计学规律[7-10],行人的平均宽高比为0.41,采取以下两种策略进行优化:
1)针对行人的实际长宽比例,剔除宽高比大于1∶1的部分,加速RPN网络计算。
2)扩充行人数据集,使用迁移学习微调参数。同时增加待检测场景的训练数据,如背景图片等,提高系统检测的迁移能力。
2 实验与结果分析
2.1 数据集扩充
本文在预训练模型上,基于有限的数据进行迁移学习。扩充公开的Penn-fudan行人实例分割数据集,该数据集针对行人实例分割任务,包含170张图片,345个标注的行人,从校园和城市街道采集户外行人图片,每张图片都包含至少一个行人,并且所有的行人都是站立状态,图像中标注行人的高度在180像素到390像素。
本文对Penn-fudan数据集进行筛选,剔除该数据集中漏检严重的数据,同时在大学校园周边采集户外行人数据,利用开源工具Labelme进行标注,对数据集进行扩充,组成新的数据集命名为Penn-fudan-heu数据集,简称PFH数据集。数据集各部分样例,如图3和图4所示。
图3 校园周边行人实例分割示意图
图4 Penn-fudan数据集示意图
扩充数据的标注原则如下,参照Penn-fudan数据集的建立原则,同时针对待测显著行人不能产生漏检,忽略遮挡严重(遮挡达35%以上)、尺度小(高度小于20像素)、镜像、雕塑、阴影中的行人,认为这些行人数据对本实验分割训练不利,最终得到的数据集组成如表1所示。
表1 PFH校园行人分割数据集
训练集train中有153个数据,验证集val文件夹中有41个数据,测试集test文件夹有22个数据。
融合数据集需要统一格式,进行解析。训练时,使用数据增强对数据样本进行扩充,采用的方法有调整图像的色彩或饱和度、随机翻转、旋转等,提高模型对不同行人的识别分割效果。
2.2 模型训练
本文实验平台搭建在Linux系统下,显卡型号是RTX2080Ti。预训练模型的效果图,如图5所示。
图5 Mask R-CNN预训练模型测试效果图
由图5可以看出,Mask R-CNN模型能基本满足目标分割的要求。但因存在1.2节所提及的问题,本文设计一种简单可行的针对行人的优化思路。调整RPN网络,并使用扩充的PFH数据集,对预训练模型进行迁移学习,微调参数[11]。
修改RPN网络参数如下,针对直立行人的实际长宽比例,将RPN网络中Anchor机制的宽长比RPN_ANCHOR_RATIOS修改为[0.2,0.4,1.0],提高网络选取候选框的效率。同时参考PFH数据集中的行人大小将锚机制中尺度修改为RPN_ANCHOR SCALES=(48,96,192,384,768)。模型中一些其他的参数也要进行相应的修改。
训练过程中,借鉴离散下降学习率设置方法。初始学习率为0.001训练网络的head部分,训练40 epochs,然后再用较小的学习率0.0001微调整个网络,训练80 epochs。本模型使用随机梯度下降的方式对损失进行收敛。
2.3 模型测试与评估
将优化好的模型在夜晚光线复杂,部分遮挡等恶劣情况下测试,取得较好的检测分割效果,效果图如图6所示。
优化后的Mask R-CNN模型还需要评估模型的性能。在扩建的PFH数据集上,评估优化前后Mask R-CNN模型的性能。在测试集上效果对比,如图7所示。
图7中白色箭头处,展示了预训练模型与优化后模型的主要差别,下面具体分析两者的差别。
图6 不同环境下优化后模型的检测示意图
图7 优化前后模型测试对比图
由第一列对比图知,优化后的模型没有识别镜像中的人。镜像中的人属于虚假人像,在PFH数据集中针对这种情况有类似标注,所以优化后的模型更贴近真实值。
由第二列对比图知,优化后的模型较好地分割出了显著行人,尤其是腿部。而预训练模型虽然将被遮挡的人检出,但其附近的人腿部分割较差。可见优化后的模型对显著行人分割较好。
由第三列对比图可知,预训练模型将被树遮挡的一个行人检测成了两个人,优化后模型并没有出现,接近真实值,分割效果较好。
由第四列对比图可知,图片左部优化后模型对行人腿部分割较好,而右部遮挡行人因标注以及遮挡的问题,检测分割效果有待提高。
由上述测试集四列图片可发现,对于复杂的行人,优化后的模型能够较好地分割了显著行人,更好地适应步态识别任务。而针对简单行人,优化前后两模型效果相近,具体的检测效果还要进行定量分析。
在PFH数据集的测试集上比较优化前后两模型分割掩码的交并比IoU值,结果见表2。
表2 PFH测试集上优化前后模型分割IoU表
由表2可以看出,优化后的模型分割掩码的IoU值较预训练模型提高了9%,原因在于模型优化训练使模型分割迁移能力提高,对校园周边行人的分割更为细腻,同时减少了误检的行人。
在行人检测方面,优化后的Mask R-CNN模型提高了显著行人分割的精度,忽略了一些遮挡的行人,会导致检测漏检率上升,但基于ResNet101主干网络,行人检测性能也极具竞争力。综上可知,本文的模型具有良好的检测与分割性能。
3 结束语
为了更好地提取行人步态规律,针对显著性行人分割的任务,本文优化了Mask R-CNN模型,针对行人目标调整了RPN网络,扩建行人分割FPH数据集,在预训练模型上进行迁移学习,行人分割掩码的IoU值较预训练模型提高了9%,实现了行人分割,以及腿部轮廓的提取,对后续步态规律的寻找具有很好的理论与实际意义。