基于语义分割的防侵入系统①

2022-02-15 06:39罗耀俊胡晓兵牛洪超魏上云
计算机系统应用 2022年1期
关键词:卷积语义精度

罗耀俊,向 海,胡晓兵,牛洪超,魏上云

1(四川大学 机械工程学院,成都 610065)

2(四川大学宜宾园区,宜宾 644000)

现如今,随着微电子、机器视觉、5G 通讯、人工智能技术的快速发展,市场对门式起重机的自动化、信息化和智能化水平要求越来越高[1].对于开放式工作的门式起重机来讲,安全是其面临的一个重大的挑战,尤其是门机轨道运行区域,直接影响其能否畅通运行.所以,对于研究一套安全、可靠、智能的防侵入系统,是具有十分重要的工业实用意义的[2–5].

对于门式起重机的防侵入监测任务而言,研究的重点在于如何在运行过程中对监测区域中的障碍目标以及可能进入特定区域的目标进行检测、跟踪和预警.障碍物检测研究主要集中在机器视觉,向荣等人[6]使用帧差法进行障碍物检测,但容易受环境光线的影响;战强等人[7]采用HIS 颜色空间对障碍物进行检测分割,通过建立空间位置坐标关系,使用栅格搜索算法对障碍物进行定位;王荣本等人[8]对智能车辆的障碍物检测进行了综合性分析,并提出多传感器荣融合方法进行车辆前方障碍物检测;辛煜[9]采用激光雷达实时对无人车周围环境进行三维重建,并提出了时空障碍物栅格图的障碍物检测方法;刘聪美等人[10]采用Hough 直线检测对煤矿铁轨进行识别,并采用支持向量机算法对行人进行监测,根据行人与铁轨的相对位置关系,发出不同的预警信号.

本文针对实际工作环境和工业需要,结合语义分割在各方向的应用[11–17],对门式起重机防侵入问题进行分析,将其转换为语义分割问题.标定用于防侵入研究的语义分割数据集GCAID,并利用多个语义分割网络进行训练对比,最后决定选用ICNet 网络运用于门式起重机的防侵入监测任务.门式起重机防侵入监测模型首先对图像进行语义分割,得到轨道和入侵目标的分割结果.然后根据轨道的分割结果,将监测视场划分为三个互不重叠的区域,分别是禁止区域、过渡区域和安全区域.接着计算检测的入侵目标所处的入侵区域,并根据入侵目标所处的区域,向控制系统发送不同的预警信号.

1 问题建模

如图1所示,将环境数据划分为4 部分,分别是禁止区域、过渡区域、安全区域以及障碍目标.禁止区域属于轨道区域,禁止出现行人等危险源,当出现行人等危险源时应及时对门机进行减速和制动;过渡区域是沿轨道区域外扩0.5 m的区域,分布在禁止区域两侧,当出现行人等危险源时应发出警报信息并减速;安全区域是指除禁止区域和过渡区域的其他区域,对于这些区域存在的潜在危险目标可以按照正常速度运行;障碍目标是指可能影响门机安全运行的目标,结合本文的实际研究情况,暂定只考虑行人目标.在门机的防侵入检测问题中,只需重点检测禁止区域和过渡区域即可,过渡区域的划分是基于禁止区域的划分,因此需要首先检测出禁止区域.如图1左图所示,禁止区域包括轨道以及固定螺栓等目标,整个禁止区域与过渡区域存在明显的边缘、颜色等特征的差异,因此可以将整个禁止区域作为其中的一个检测对象.过渡区域的划分是在禁止区域的基础上进行的,且过渡区域与安全区域的特征基本是一致的,因此不做单独检测.障碍目标以行人检测为主,其可以在任何位置出现,针对不同位置对门机的运行状态进行不同的控制,分别是禁止区域减速停车、过渡区域警报减速、安全区域正常行驶.如前所述,如果采用目标检测算法来对问题进行建模,存在的问题是采用边界框来划分区域容易使得处于安全区域的行人被划入禁止区域,从而使得门机总处于预警和停车状态.此外,对于处于禁止区域、但距离门机较远位置的障碍目标,在提前预警的情况下,如果在门机到达前障碍目标能够提前移除过渡区域,那么仍然可以不用停车.对此,可以该问题转换为语义分割问题,前景分别是轨道区域(即禁止区域)和障碍目标(即行人),背景为过渡区域和安全区域.通过轨道区域来确定禁止区域、过渡区域和安全区域,根据行人的位置所属区域来判断门机的执行命令.

图1 门机防侵入建模示意图

基于以上分析,门机的防侵入检测系统的关键是对轨道区域和行人进行准确地检测和分割.经典的语义分割算法,如灰度分割、条件随机场等,均难以满足复杂自然环境下的在线检测;基于深度学习的语义分割算法近年来取得大量研究成果,在医学图像分割、缺陷检测与分割、街景分割、自动驾驶、卫星图像分割等领域已经成功应用.因此,本文采用基于深度学习的语义分割模型,以实现对轨道区域和行人的精确分割.

2 ICNet 网络网络架构

ICNet (image cascade network)网络[18]是由香港中文大学联合腾讯优图、商汤科技于2018年在欧洲计算机视觉国际会议(European conference on computer vision,ECCV)上首次公开,相比于与UNet、SegNet、FCN 等网络,ICNet 综合利用了不同分辨率的图像来提高网络的检测精度和速度,其核心思想是采用图像级联框架来逐步细化分段预测,首先使用低分辨率图像来获取粗略的预测掩膜,然后通过级联融合来源以引入高分辨率图像特征,并逐步改进已获得的粗略预测.ICNet 通过将图像语义分割任务划分为粗预测和精调整,在单块英伟达1080Ti 图像处理器的情况下,可以以30.3 帧/s的速度处理1024×2048 分辨率的图像,并且平均IOU 精度可以达到71%.

降采样输入图像、减少特征图数量以及模型压缩是最常用的检测加速策略,但是无论哪一种策略,都难以平衡网络推断速度和精度.尽管这3 种策略可以显著地减少运行时间,但同时也只能得到比较粗糙的预测结果.而如果直接使用高分辨率图像进行检测,计算量通常是难以接受的.如图2所示,ICNet 并不是简单地选择任何一种策略来加快推断速度,相反,它是通过采用不同分辨率大小的输入,并采用级联特征融合单元来进行快速的语义分割.训练时采用级联标签进行引导,而在测试阶段直接输出最终预测结果.输入图像尺寸为全尺寸,如1024×2048 分辨率的Cityscape 数据集图像,并将输入图像进行下采样至输入的1/2和1/4,从而得到低、中、高3 种不同分辨率的图像,并将它们分别输入到3 个不同的网络分支中.将1/4 输入图像送入PSPNet 进行8 倍下采样至输入分辨率的1/32,以进行粗分割;将1/2 输入图像和原图像分别送入两个更浅的卷积网络进行特征提取和下采样;将最上分支的1/32 特征图进行上采样并与第2 分支的1/16 特征图通过级联特征融合(cascade feature fusion,CFF)单元进行求和,经过激活后再进行上采样,并与第3 分支的1/8 特征图通过CFF 模块进行融合,并通过两次上采样以及卷积操作后得到与原图相同分辨率的预测图.

图2 ICNet 网络架构图

虽然第1 分支的卷积层数量比较多,采用的是完整的PSPNet 分割网络,但由于输入图像的分辨率非常低,因此其计算量依然比较有限,推断时间仅需18 ms,内存占用也只有0.6 GB.由于第2 层的卷积核共享了第1 层的卷积核参数,因此第2 层的级联特征融合也仅仅只耗费了6 ms.第3 层虽然输入图像的分辨率非常高,但是由于卷积层数量比较少,网络深度比较浅,整个推断过程也仅需9 ms.因此,ICNet 通过不同分支进行不同分辨率输入的计算以及特征图的级联融合,在保证分割精度的前提下,可以有效地提高检测速度和减少内存占用.

图3为CFF 单元示意图,该单元地输入包括3 个部分:两个特征图F1、F2以及真实标签,尺寸分别为C1×H1×W1、C2×H2×W2和1×H2×W2,其中F2的尺寸为F1的两倍.在特征融合前,先对F1使用双线性插值进行上采样2 倍,从而得到与F2具有相同高度和宽度的特征图F1'.然后再使用卷积核为C3×3×3、空洞率为2的空洞卷积,对F1'进行调整,得到尺寸为C3×H2×W2的特征图F1''.空洞卷积可以融合相邻像素的特征信息,相比于反卷积而言,使用空洞卷积只需要更小的卷积核,就可以获得与较大卷积核的反卷积一样大的感受野.在保持感受野不变的条件下,反卷积操作比空洞卷积需要更大的卷积核,如反卷积的卷积核为7×7,而空洞卷积可以使用3×3、空洞率为2的卷积核实现,因此空洞卷积需要的计算量更少.

为了使得F2的通道数与F1''的通道数保持一致,使用尺寸为C3×1×1 卷积核对F2进行卷积操作,得到F2',其尺寸为C3×H2×W2.然后分别对F1''和F2'进行批归一化操作,使得两个特征图可以保持在同一尺度空间.最后对归一化后的F1''和F2'进行逐元素求和以及ReLU 激活操作,从而得到融合后的特征图F2'',其尺寸为C3×H2×W2.为了增强网络对F1的学习,使用降采样后的真实标签来引导学习.如图3所示,在第1 层与第2 层融合后,使用1/16 真实标签进行学习,从而得到融合后的损失值;同理,使用1/8 真实标签学习第2 层与第3 层的融合特征.对第3 层融合后的特征进行上采样后,计算与1/4 真实标签的损失值.因此在训练期间,损失值包括3 部分,第1 层和第2 层融合后的特征与1/16 真实标签间的损失L1/16、第2 层和第3 层融合后的特征与1/8 真实标签间的损失L1/8、第3 层融合后的特征上采样后与1/4 真实标签间的损失L1/4.

图3 级联特征融合图

训练时,为了增加每个分支的学习率,采用级联标签引导策略,利用1/16、1/8和1/4 真实标签来引导学习低、中、高3 种不同分辨率的学习,对于T个分支和N个类别,在分支t(t=1,2,…,T),预测特征图Ft的空间尺寸为Yt×Xt,在位置(n,y,x)(n表示特征图Ft的第n通道)的值为Fn,y,xt,真实标签在二维坐标中(y,x)对应的值为.对于分支使用权值为λt的带权Softmax 交叉熵损失函数,其数学表达式为:

测试时,仅保留高分辨率的引导操作,这样既可以保持训练过程中的稳定性,同时又能够防止网络受单个分支支配.

3 数据集的处理

由于目前尚无公开的门机轨道数据,为了更好地匹配实际问题,通过摄像头采集不同光线和天气条件下的现场视频.采集视频的分辨率为1024×720,帧率为30 帧/s,颜色通道为RGB 三通道.对所采集的视频间隔15 帧取一张图片,共计1680 张图片,其中晴天为1420 张、阴天为140 张、傍晚为120 张.

考虑到只检测轨道和人,因此标记类别有3 类,分别是轨道、人和背景.由于行人的数据在现场非常有限,本系统在网络上下载了12 个包含人的视频,并按照45 帧的间隔进行数据提取,然后筛除不包含人的图片,共得到540 张分辨率为1024×720的数据集.最后选择将两个子数据集合并为最终的GCAID 数据集.

Labelme是一个开源的可视化图像标注工具,它采用Python+Qt 进行开发.Labelme是目前常用的标注工具之一,它可以标注用于语义分割、实例分割、场景分割等视觉任务的数据.Labelme 可以根据任务的需要对图像进行多边形、矩形、圆形、多线段、线段、点等形状的标注,也可以对图像直接进行类别标注用于图像分类.此外,Labelme 还可以对视频进行标注.Labelme 标注的数据格式包括.xml和.json 格式,分别对应VOC 类型和COCO 类型的数据集.Labelme 兼容所有操作系统,其操作界面如图4所示.

图4 Labelme 标记工具操作界面

ICNet 对于图像的识别精度、数据集的标注精度及面积计算精度,都会影响分割精度.由于数据集的标注精度会影响到网络对图像的识别精度,网络对图像的识别精度通过直接影响最后的类别预测,从而影响面积计算精度,最后影响分割.所以,本系统首先采用通过只标定轨道(包括整个轨道安装区域)与人,背景区域自动生成的策略,通过减少分割数量来减少ICNet对于图像识别精度的影响.然后,由于系统是对于门式起重机轨道的防侵入监测,只需轨道与人处在分割区域内.所以在数据集标记过程中,对于轨道和人,采用了不影响整体识别的前提下,扩大标注区域,来减小标注精度和图像识别精度对面积计算、类别分割的影响.

基于Labelme 工具箱,对包含2220 张图片的GCAID数据集按json 格式进行标注.如图4所示,标签包含2 类,分别是track和human,代表图片中的轨道区域和人.本文所标记的track 并非仅仅表示轨道,而是包含整个轨道安装区域,因此其特征更加复杂,难以通过经典的图像处理算法进行检测.实际的语义标签包含3 个类,分别是背景、轨道和人,背景类在标定的时候自动生成.如图5所示,图5(a)列表示原始数据,包含了轨道、人以及各种复杂的背景,其中74%的数据只包含轨道或人中的一种,26%的数据同时包含轨道和人;图5(b)列表示真实语义分割图,这部分数据是由人工标定,作为训练时的监督数据;图5(c)列表示掩膜可视化的结果,通过图5可以清晰地看出,数据集包含3 个类别,分别为_background_、track和human,对应地标签分别为0、1和2.在模型训练过程时,通常只需要原始图片和真实语义分割图即可,通常记为(x,y),分别表示模型输入数据和训练目标.

图5 GCAID 数据集部分样本

4 实验分析

4.1 训练参数设置

采用Keras 来实现ICNet 网络,训练时采用4 块技嘉2080Ti 图形处理显卡,并使用CUDA10.0和CUDNN v7.5 来加速训练过程.将GCAID 数据集划分为训练集、验证集和测试集共3 个互不重叠的子集,各子集包含的样本数分别为1698、189和333.

在训练超参数设置方面,每个批次的样本数为2,训练轮数为50,每一轮迭代375 次,共迭代37 500 次.初始学习率为0.01,在第30 轮、40 轮将学习率分别降低10 倍.训练过程中采用早停技术,以防止出现过拟合.在训练过程中,每迭代1 轮就进行1 次验证.为了增加样本的多样性,采用包括随机缩放(比例在0.5~2)、随机镜像等数据增强策略.训练时,L1/16与L1/8的权值λ1、λ2均为0.4,L1/4的权值λ3设置为1.网络的分割精度评估采用逐类交并比平均值(mean of class-wise intersection over union,mIoU).mIoU是通过计算每一类的IoU 值后再求平均值,计算公式为:

其中,k表示类别数,pii表示像素预测类别i与真实标定类别i一致的像素点总数,表示实际标定类别为i却预测类别为j的其他类的像素点数(包含pii),表示实际标定类别为j却预测为类别i的像素点数(包含pii).由于分母重复计算了pii,因此需要减去一个pii.

4.2 数据分析

如图6(a)所示,经过50 轮的训练,训练精度均达到稳定状态,尽管ICNet的初始精度较低,但是经过快速的上升后,获得最高训练精度;而SegNet 模型的训练精度则明显低于其他模型.如图6(b)所示,所有模型的训练损失值都处于向下收敛,其中,ICNet的损失值下降速度最快.

图6 常用模型训练精度曲线图与损失曲线图

图7(a)为常用语义分割模型验证精度曲线图,从图中可以看出,SegNet 在前20 轮训练中,验证损失的波动幅度较大,然后就趋于平缓;FCN-8的验证精度持续上升,在第10 轮后一致保持最高的验证精度;UNet的验证精度值最低,始终处于80%以下.如图7(b)所示,除了SegNet的损失值前20 轮波动幅度较大以外,其他的模型的下降过程较为平稳.

图7 常用模型训练精度曲线图与损失曲线图

如表1所示,ICNet的训练精度和训练损失均优于其他模型,而在验证精度与损失方面,FCN-8 则取得了最好的成绩,且ENet 也优于ICNet.通过对333 张测试集进行测试分析,并选用每个网络保存的最佳模型,得到测试mIoU 如表2所示,ICNet 取得63.72%的测试精度,而SegNet的测试mIoU 最低,仅为30.25%.

表1 实验中相关参数设置对照

其次,对各模型在测试集上的表现进行了分析,评估指标包括mIoU和各类的IoU.测试结果如表2所示.从表中可以看出,ICNet 对于GCAID 数据集的平均分割精度最高,为63.72%.

表2 实验中相关数据对照

其他多数框架针对高分辨率输入都具有相对密集的计算过程,而ICNet 由于采用了独特的级联特征融合网络,通过在训练时使用了级联的标签监督,有效地利用了低分辨率图和高分辨率图信息结合.其中低分辨率分支被送入了Heavy CNN中,得到了粗糙的语义预测.中分辨率和高分辨率的分支只被轻量级的CNN处理,进行恢复和完善模糊边界和丢失的细节,可以减少中部分支和下部分支的参数数目.虽然低分辨率分支导致了细节缺失和边界模糊,但它已经获得了大部分语义信息,细节再由其他分支补全.正是这种独特的级联网络使得测试结果中ICNet 在所选网络中都呈现出较好的精度.

最后,本文对ICNet 网络的训练轮数进行了对比分析,如表3所示,随着迭代次数的增加,测试mIoU先出现上升,然后呈现下降,在70 轮取得最佳mIoU值.可以看出,随着训练轮数增加,模型出现了过拟合情况.此外,本文展示了部分ICNet 分割结果,如图8所示,可以看出,ICNet 对轨道的分割比较准确,但是对于人的分割精度并不是很理想,且容易将部分背景错误分类为人.针对人的分割精度较差的原因主要有两点:第一是人的姿态更加复杂,且在整个图像中的占比并不是很高,因此在训练过程中即使错误分类,依然可以得到较高的精度;第二是因为数据集中人的数量并不是很多,从而导致样本失衡.

表3 ICNet 在不同迭代轮数下的测试结果

图8 部分测试结果图

4.3 防侵入测试

在对防侵入进行测试中,本文基于轨道的分割结果将图片分为禁止区、过渡区和安全区,然后根据人的分割结果及其所处的区域发出不同的预警信号.测试时,将帧率设置为20 帧/s,测试结果如表4所示,正确预警样本包含48 张不包含人的样本和5 张包含人但处于警告区的样本,错误预警的3 张样本是将人划入到禁止区.

表4 防侵入系统测试结果

图9是部分防侵入测试结果,从图中可以看出,模型能够很好的对轨道各区域进行正确划分,效果良好.

图9 防侵入分割测试结果

5 结论

本文针对门式起重机实际工作环境和工业需要,结合深度学习技术,对门式起重机防侵入问题进行了分析,并对门机的防侵入监测任务进行了详细的建模,确定了门式起重机智能防侵入系统的方案.采用了语义分割算法(ICNet 网络)对视场中的特定目标进行了检测和分割,并对选用的ICNet的网络结构做了详细的介绍.针对门机的防侵入监测需求,使用Labelme 图片标注工具制作了GCAID 数据集,用于训练ICNet和其他语义分割模型,也对训练网络参数设置进行了详细说明,并基于Keras 测试了包括ICNet、UNet、SegNet等语义分割模型.对比其他网络,ICNet 网络具有99.37%的训练精度和1.81%的训练损失,都展现出了最优的精度,并且在对实际防侵入测试中,也证明了基于语义分割的防侵入系统的智能性、可行性,为门式起重机或类似场景,提供了智能防侵入系统方案.

猜你喜欢
卷积语义精度
基于不同快速星历的GAMIT解算精度分析
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
基于深度卷积网络与空洞卷积融合的人群计数
近似边界精度信息熵的属性约简
卷积神经网络概述
电力系统短期负荷预测方法与预测精度
汉语依凭介词的语义范畴
浅谈ProENGINEER精度设置及应用