2. 四川大学宜宾园区, 宜宾 644000
2. Yibin R&D Park of Sichuan University, Yibin 644000, China
现如今, 随着微电子、机器视觉、5G通讯、人工智能技术的快速发展, 市场对门式起重机的自动化、信息化和智能化水平要求越来越高[1]. 对于开放式工作的门式起重机来讲, 安全是其面临的一个重大的挑战, 尤其是门机轨道运行区域, 直接影响其能否畅通运行. 所以, 对于研究一套安全、可靠、智能的防侵入系统, 是具有十分重要的工业实用意义的[2-5].
对于门式起重机的防侵入监测任务而言, 研究的重点在于如何在运行过程中对监测区域中的障碍目标以及可能进入特定区域的目标进行检测、跟踪和预警. 障碍物检测研究主要集中在机器视觉, 向荣等人[6]使用帧差法进行障碍物检测, 但容易受环境光线的影响; 战强等人[7]采用HIS颜色空间对障碍物进行检测分割, 通过建立空间位置坐标关系, 使用栅格搜索算法对障碍物进行定位; 王荣本等人[8]对智能车辆的障碍物检测进行了综合性分析, 并提出多传感器荣融合方法进行车辆前方障碍物检测; 辛煜[9]采用激光雷达实时对无人车周围环境进行三维重建, 并提出了时空障碍物栅格图的障碍物检测方法; 刘聪美等人[10]采用Hough直线检测对煤矿铁轨进行识别, 并采用支持向量机算法对行人进行监测, 根据行人与铁轨的相对位置关系, 发出不同的预警信号.
本文针对实际工作环境和工业需要, 结合语义分割在各方向的应用[11-17], 对门式起重机防侵入问题进行分析, 将其转换为语义分割问题. 标定用于防侵入研究的语义分割数据集GCAID, 并利用多个语义分割网络进行训练对比, 最后决定选用ICNet网络运用于门式起重机的防侵入监测任务. 门式起重机防侵入监测模型首先对图像进行语义分割, 得到轨道和入侵目标的分割结果. 然后根据轨道的分割结果, 将监测视场划分为三个互不重叠的区域, 分别是禁止区域、过渡区域和安全区域. 接着计算检测的入侵目标所处的入侵区域, 并根据入侵目标所处的区域, 向控制系统发送不同的预警信号.
1 问题建模如图1所示, 将环境数据划分为4部分, 分别是禁止区域、过渡区域、安全区域以及障碍目标. 禁止区域属于轨道区域, 禁止出现行人等危险源, 当出现行人等危险源时应及时对门机进行减速和制动; 过渡区域是沿轨道区域外扩0.5 m的区域, 分布在禁止区域两侧, 当出现行人等危险源时应发出警报信息并减速; 安全区域是指除禁止区域和过渡区域的其他区域, 对于这些区域存在的潜在危险目标可以按照正常速度运行; 障碍目标是指可能影响门机安全运行的目标, 结合本文的实际研究情况, 暂定只考虑行人目标. 在门机的防侵入检测问题中, 只需重点检测禁止区域和过渡区域即可, 过渡区域的划分是基于禁止区域的划分, 因此需要首先检测出禁止区域. 如图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模块进行融合, 并通过两次上采样以及卷积操作后得到与原图相同分辨率的预测图.
虽然第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.
训练时, 为了增加每个分支的学习率, 采用级联标签引导策略, 利用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)对应的值为
$ {\cal{L}} = - \sum\limits_{t = 1}^T {{\lambda _t}} \frac{1}{{{Y_t}{X_t}}}\sum\limits_{y = 1}^{{Y_t}} {\sum\limits_{x = 1}^{{X_t}} {\log \frac{{{{\rm e}^{F_{\hat n,y,x}^t}}}}{{\displaystyle\sum\nolimits_{n = 1}^N {{{\rm e}^{F_{n,y,x}^t}}} }}} } $ | (1) |
测试时, 仅保留高分辨率的引导操作, 这样既可以保持训练过程中的稳定性, 同时又能够防止网络受单个分支支配.
3 数据集的处理由于目前尚无公开的门机轨道数据, 为了更好地匹配实际问题, 通过摄像头采集不同光线和天气条件下的现场视频. 采集视频的分辨率为1024×720, 帧率为30帧/s, 颜色通道为RGB三通道. 对所采集的视频间隔15帧取一张图片, 共计1 680张图片, 其中晴天为1 420张、阴天为140张、傍晚为120张.
考虑到只检测轨道和人, 因此标记类别有3类, 分别是轨道、人和背景. 由于行人的数据在现场非常有限, 本系统在网络上下载了12个包含人的视频, 并按照45帧的间隔进行数据提取, 然后筛除不包含人的图片, 共得到540张分辨率为1024×720的数据集. 最后选择将两个子数据集合并为最终的GCAID数据集.
Labelme是一个开源的可视化图像标注工具, 它采用Python+Qt进行开发. Labelme是目前常用的标注工具之一, 它可以标注用于语义分割、实例分割、场景分割等视觉任务的数据. Labelme可以根据任务的需要对图像进行多边形、矩形、圆形、多线段、线段、点等形状的标注, 也可以对图像直接进行类别标注用于图像分类. 此外, Labelme还可以对视频进行标注. Labelme标注的数据格式包括.xml和.json格式, 分别对应VOC类型和COCO类型的数据集. Labelme兼容所有操作系统, 其操作界面如图4所示.
ICNet对于图像的识别精度、数据集的标注精度及面积计算精度, 都会影响分割精度. 由于数据集的标注精度会影响到网络对图像的识别精度, 网络对图像的识别精度通过直接影响最后的类别预测, 从而影响面积计算精度, 最后影响分割. 所以, 本系统首先采用通过只标定轨道(包括整个轨道安装区域)与人, 背景区域自动生成的策略, 通过减少分割数量来减少ICNet对于图像识别精度的影响. 然后, 由于系统是对于门式起重机轨道的防侵入监测, 只需轨道与人处在分割区域内. 所以在数据集标记过程中, 对于轨道和人, 采用了不影响整体识别的前提下, 扩大标注区域, 来减小标注精度和图像识别精度对面积计算、类别分割的影响.
基于Labelme工具箱, 对包含2 220张图片的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), 分别表示模型输入数据和训练目标.
4 实验分析 4.1 训练参数设置
采用Keras来实现ICNet网络, 训练时采用4块技嘉2080Ti图形处理显卡, 并使用CUDA10.0和CUDNN v7.5来加速训练过程. 将GCAID数据集划分为训练集、验证集和测试集共3个互不重叠的子集, 各子集包含的样本数分别为1 698、189和333.
在训练超参数设置方面, 每个批次的样本数为2, 训练轮数为50, 每一轮迭代375次, 共迭代37500次. 初始学习率为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值后再求平均值, 计算公式为:
$ mIoU = \frac{1}{{k + 1}}\sum\limits_{i = 0}^k {\frac{{{p_{ii}}}}{{\displaystyle\sum\nolimits_{j = 0}^k {{p_{ij}} + \displaystyle\sum\nolimits_{j = 0}^k {{p_{ji}} - {p_{ii}}} } }}} $ | (2) |
其中, k表示类别数, pii表示像素预测类别i与真实标定类别i一致的像素点总数,
如图6(a)所示, 经过50轮的训练, 训练精度均达到稳定状态, 尽管ICNet的初始精度较低, 但是经过快速的上升后, 获得最高训练精度; 而SegNet模型的训练精度则明显低于其他模型. 如图6(b)所示, 所有模型的训练损失值都处于向下收敛, 其中, ICNet的损失值下降速度最快.
图7(a)为常用语义分割模型验证精度曲线图, 从图中可以看出, SegNet在前20轮训练中, 验证损失的波动幅度较大, 然后就趋于平缓; FCN-8的验证精度持续上升, 在第10轮后一致保持最高的验证精度; UNet的验证精度值最低, 始终处于80%以下. 如图7(b)所示, 除了SegNet的损失值前20轮波动幅度较大以外, 其他的模型的下降过程较为平稳.
如表1所示, ICNet的训练精度和训练损失均优于其他模型, 而在验证精度与损失方面, FCN-8则取得了最好的成绩, 且ENet也优于ICNet. 通过对333张测试集进行测试分析, 并选用每个网络保存的最佳模型, 得到测试mIoU如表2所示, ICNet取得63.72%的测试精度, 而SegNet的测试mIoU最低, 仅为30.25%.
其次, 对各模型在测试集上的表现进行了分析, 评估指标包括mIoU和各类的IoU. 测试结果如表2所示. 从表中可以看出, ICNet对于GCAID数据集的平均分割精度最高, 为63.72%.
其他多数框架针对高分辨率输入都具有相对密集的计算过程, 而ICNet由于采用了独特的级联特征融合网络, 通过在训练时使用了级联的标签监督, 有效地利用了低分辨率图和高分辨率图信息结合. 其中低分辨率分支被送入了Heavy CNN中, 得到了粗糙的语义预测. 中分辨率和高分辨率的分支只被轻量级的CNN处理, 进行恢复和完善模糊边界和丢失的细节, 可以减少中部分支和下部分支的参数数目. 虽然低分辨率分支导致了细节缺失和边界模糊, 但它已经获得了大部分语义信息, 细节再由其他分支补全. 正是这种独特的级联网络使得测试结果中ICNet在所选网络中都呈现出较好的精度.
最后, 本文对ICNet网络的训练轮数进行了对比分析, 如表3所示, 随着迭代次数的增加, 测试mIoU先出现上升, 然后呈现下降, 在70轮取得最佳mIoU值. 可以看出, 随着训练轮数增加, 模型出现了过拟合情况. 此外, 本文展示了部分ICNet分割结果, 如图8所示, 可以看出, ICNet对轨道的分割比较准确, 但是对于人的分割精度并不是很理想, 且容易将部分背景错误分类为人. 针对人的分割精度较差的原因主要有两点: 第一是人的姿态更加复杂, 且在整个图像中的占比并不是很高, 因此在训练过程中即使错误分类, 依然可以得到较高的精度; 第二是因为数据集中人的数量并不是很多, 从而导致样本失衡.
4.3 防侵入测试
在对防侵入进行测试中, 本文基于轨道的分割结果将图片分为禁止区、过渡区和安全区, 然后根据人的分割结果及其所处的区域发出不同的预警信号. 测试时, 将帧率设置为20帧/s, 测试结果如表4所示, 正确预警样本包含48张不包含人的样本和5张包含人但处于警告区的样本, 错误预警的3张样本是将人划入到禁止区.
图9是部分防侵入测试结果, 从图中可以看出, 模型能够很好的对轨道各区域进行正确划分, 效果良好.
5 结论
本文针对门式起重机实际工作环境和工业需要, 结合深度学习技术, 对门式起重机防侵入问题进行了分析, 并对门机的防侵入监测任务进行了详细的建模, 确定了门式起重机智能防侵入系统的方案. 采用了语义分割算法(ICNet网络)对视场中的特定目标进行了检测和分割, 并对选用的ICNet的网络结构做了详细的介绍. 针对门机的防侵入监测需求, 使用Labelme图片标注工具制作了GCAID数据集, 用于训练ICNet和其他语义分割模型, 也对训练网络参数设置进行了详细说明, 并基于Keras测试了包括ICNet、UNet、SegNet等语义分割模型. 对比其他网络, ICNet网络具有99.37%的训练精度和1.81%的训练损失, 都展现出了最优的精度, 并且在对实际防侵入测试中, 也证明了基于语义分割的防侵入系统的智能性、可行性, 为门式起重机或类似场景, 提供了智能防侵入系统方案.
[1] |
许光辉, 孙勇娜, 叶浪. 桥门式起重机智能化设计现状及研究. 中国科技纵横, 2016(14): 36. DOI:10.3969/j.issn.1671-2064.2016.14.030 |
[2] |
秦长海. 基于视觉定位的起重机智能化控制系统. 建筑机械化, 2009, 30(5): 50-52. DOI:10.3969/j.issn.1001-1366.2009.05.014 |
[3] |
白雪, 黄廷磊. 运动目标精确检测算法. 计算机系统应用, 2009, 18(12): 41-44. DOI:10.3969/j.issn.1003-3254.2009.12.010 |
[4] |
朱良. 户外周界期传感技术——周界防入侵系统的眼睛和耳朵. 中国安防, 2008(3): 39-41. DOI:10.3969/j.issn.1673-7873.2008.03.013 |
[5] |
乔传标, 王素玉, 卓力, 等. 智能视觉监控中的目标检测与跟踪技术. 测控技术, 2008, 27(5): 22-24. DOI:10.3969/j.issn.1000-8829.2008.05.007 |
[6] |
向荣, 蒋荣欣. 铁路机车快速超视距障碍物识别算法. 湘潭大学自然科学学报, 2013, 35(2): 103-108. DOI:10.3969/j.issn.1000-5900.2013.02.021 |
[7] |
战强, 吴佳. 未知环境下移动机器人单目视觉导航算法. 北京航空航天大学学报, 2008, 34(6): 613-617. |
[8] |
王荣本, 赵一兵, 李琳辉, 等. 智能车辆的障碍物检测研究方法综述. 公路交通科技, 2007, 24(11): 109-113, 124. DOI:10.3969/j.issn.1002-0268.2007.11.025 |
[9] |
辛煜. 无人驾驶车辆运动障碍物检测、预测和避撞方法研究[博士学位论文]. 合肥: 中国科学技术大学, 2014.
|
[10] |
刘聪美. 基于图像处理的矿用电机车行人监测预警系统设计. 煤炭工程, 2016, 48(5): 17-19, 23. DOI:10.11799/ce201605006 |
[11] |
Geng QC, Zhou Z, Cao XC. Survey of recent progress in semantic image segmentation with CNNs. Science China Information Sciences, 2018, 61(5): 051101. DOI:10.1007/s11432-017-9189-6 |
[12] |
Ronneberger O, Fischer P, Brox T. U-net: Convolutional networks for biomedical image segmentation. Proceedings of the 18th International Conference on Medical Image Computing and Computer-Assisted Intervention. Munich: Springer, 2015. 234–241.
|
[13] |
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 |
[14] |
He KM, Gkioxari G, Dollár P, et al. Mask R-CNN. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2020, 42(2): 386-397. DOI:10.1109/TPAMI.2018.2844175 |
[15] |
Badrinarayanan V, Kendall A, Cipolla R. SegNet: A deep convolutional encoder-decoder architecture for image segmentation. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(12): 2481-2495. DOI:10.1109/TPAMI.2016.2644615 |
[16] |
柳锋, 李俊峰, 戴文战. 基于深度学习语义分割的导光板缺陷检测方法. 计算机系统应用, 2020, 29(6): 29-38. DOI:10.15888/j.cnki.csa.007411 |
[17] |
韩利丽, 孟朝晖. 基于深度学习的视频语义分割综述. 计算机系统应用, 2019, 28(12): 1-8. DOI:10.15888/j.cnki.csa.007195 |
[18] |
Zhao HS, Qi XJ, Shen XY, et al. ICNet for real-time semantic segmentation on high-resolution images. Proceedings of the 15th European Conference on Computer Vision. Munich: Springer, 2018. 418–434.
|