融合LSD算法与深度学习的开关状态检测方法

2021-09-07 00:48林本丰孙悦程
计算机工程与应用 2021年17期
关键词:直线状态图像

林本丰,王 呈,孙悦程

1.江南大学 物联网工程学院,江苏 无锡214122

2.无锡市工业设备安装有限公司,江苏 无锡214122

公用设施设备种类多,分布分散,日常巡视目前大部分仍依赖人工完成。物联网技术能够实现设备运行状态远程监测,对于加装传感器或已配备数据接口的设施设备,可以通过集成网关和总线技术远程采集运行数据,实现设施设备智能化改造。随着人员工资普涨,越来越多的维保单位引入巡检机器人,完成类似机房、隧道等现场环境及设备状态的监测。巡检机器人辅助视觉分析无需改造原有设备,适用一些未配备数据接口且加装传感器、改造成本较高的场景。本文即从巡检机器人应用的角度,针对变电所控制柜开关状态检测,展开机器视觉算法研究。

图像视频中的目标检测已经成为当前人工智能、机器视觉研究领域的热点[1-3]。直线段作为输入图像中底层图像特征,包含了场景中最基本的几何信息和拓扑信息[4],可以作为检测图像高层特征或分析图像内容的基础。相较特征点或边缘曲线等传统图像特征,直线段包含更丰富的信息,如直线段角度、中心点等。文献[5]提出基于正则化Hough变换的图像直线检测方法,在检测直线信息时受直线中的间隙和图像中的高斯噪声影响较小,但因为采用“一对多”匹配算法导致占用空间大,检测实时性不高。文献[6]提出一种基于改进Hough变换的直线快速检测算法,该算法利用相邻像素点的聚类和Hough变换原理来检测直线,加快了检测速率,但需要调整累加平面阈值、线段最大间隔值、搜索步进精度值等参数才能保证检测准确率。文献[7]提出一种基于局部直线提取的直线段检测器算法(Line Segment Detector,LSD),具有参数自适应能力,能同时提高检测速度,并达到亚像素级检测精度。LSD无需调试参数,能够自行控制误检数量,误检率低,对不同图像适应性强。文献[8]通过LSD算法提取出遥感图像中的有效直线特征,实现对多类机场跑道的有效定位。

深度学习作为图像识别的重要方法,在无人工干预的条件下通过自主学习优化检测模型实现目标识别[9],目前主流的深度学习算法分为两阶段目标检测算法以及单阶段目标检测算法。基于卷积神经网络的两阶段目标检测算法以R-CNN(Region Convolutional Neural Networks)[10-12]系列为代表,能实现高精度目标检测[13],但检测速度过慢。为解决两阶段检测器的检测实时性问题,具备高速检测性能的单阶段检测器应运而生[14]。Redmon等人在2016年CVPR(Conference on Computer Vision and Pattern Recognition)上提出基于卷积神经网络的单阶段目标检测算法YOLO(You Only Look Once)[15],具有检测速率快、精度高的特点。最新的YOLOv3算法采用特征融合和多尺度预测,大幅提升了检测速度和精度,但其网络分类器是针对COCO(Microsoft Common Objects in Context)数据集80类检测对象设计的,当面向少数量类别目标检测时会浪费部分网络计算资源。文献[16]针对目标检测的需求修改YOLO网络分类器进行重新聚类,并加强网络分辨率来适应高分辨率的航拍图像,研究成果应用于无人机航拍图像定位场景,但检测存在时延。文献[17]通过残差网络及多尺度融合方式,增强了低空无人机定位效果与实时性。

从考虑网络带宽和传输时延的角度出发,实现巡检机器人视觉检测应用落地具体有两类方式。(1)在具备高带宽、低时延数据传输条件下,通过巡检机器人将现场图像数据直接传输至云端,依靠云计算实现基于图像分析的公用设施设备的远程状态监控;(2)通过边缘设备采集工业现场图像数据,并依靠边缘计算能力提高设备状态分析的实时性,分析结果与云端协同。文献[18]提出应用于嵌入式GPU(Graphics Processing Unit)的实时目标检测算法,通过优化YOLOv3框架实现嵌入式端的车辆目标实时检测。文献[19]提出基于YOLO和嵌入式系统的车流量检测,也将YOLO算法成功移植嵌入式设备,但是上述方法均需建立庞大的数据集,人工标注数据集的时间成本与人力成本较大。本文借鉴上述文献中直线特征提取方法并受深度学习应用启发,通过LSD直线提取算法快速定位电柜开关盒生成图像数据集,同时将数据集输入到YOLO深度学习网络训练生成开关状态检测模型。此外本文尝试将YOLOv3深度学习网络部署到边缘嵌入式设备,依靠边缘计算提高目标检测实时性。

1 开关状态检测方案设计

变电所电柜开关盒位于控制柜设备上,具有矩形图形特征,周围存在按钮、铭牌等多个对象,如图1所示。若不先对开关盒进行定位,则在判断开关状态时会受到周围铭牌等多个对象干扰,影响深度学习的目标检测效果。

图1 工业现场控制柜图像Fig.1 Industrial field control cabinet image

因此,本文将开关状态检测方案设计分为LSD直线检测算法快速定位开关盒和训练深度学习模型实现开关状态检测两部分。先提取控制柜图像中的直线边沿特征完成快速定位开关盒,生成对应数据集。再将数据集输入到深度学习网络训练生成检测模型,识别开关盒工作状态,如图2所示。

图2 开关状态边缘检测方案框图Fig.2 Block diagram of switch state edge detection scheme

考虑公用设施设备施工安装的特点,往往到工程安装结束,才可以进行现场调试,从建立图像集、识别训练到系统上线,往往耗时较长。而BIM(Building Information Modeling)技术近年来在机电安装、运维中快速应用,如图3,为控制柜的BIM模型。本文在BIM数字化孪生研究的基础上,进一步探索采用BIM图像数据集来训练模型,以缩短图像识别的落地时间,并将模型应用于实际视觉分析场景,验证算法的鲁棒性。

图3 对应实际场景的控制柜BIM模型图像Fig.3 BIM model image of control cabinet corresponding to actual scene

2 开关状态检测方案设计

分析结矩形开关盒含有明显直线段信息。为准确提取开关盒边沿,先采用高斯滤波器对图像进行降噪预处理,完成图像预处理后对图像直线段进行提取与筛选,实现准确框定开关盒位置,快速生成数据集。常用直线段检测算法有霍夫直线检测(Hough Line Detection)算法[6]和LSD直线检测算法[7]。

霍夫直线检测原理是将图像中的像素点通过映射方式投影到以参数为坐标的空间,将图像空间中的每条直线转化为参数空间中的一个点,而图像空间中的点也与参数空间中的直线相互对应,如图4所示。图像空间中直线方程y=kx+b在参数空间中可写成ρ=xcosθ+ysinθ,其中ρ是图像空间中原点o到直线y=kx+b的距离,θ是直线y=kx+b的垂线om与x轴正向的夹角,图像空间中的点(x1,y1)与(x2,y2)被映射为极坐标空间中的两条正弦曲线,而图像空间中的直线参数信息对应参数空间中两条曲线的交点(ρ',θ')。

图4 图像空间对应参数空间示意图Fig.4 Schematic diagram of corresponding parameter space in image space

通过寻找参数空间中的曲线交点来确定图像空间中的直线参数,根据设定的间隙宽度和直线长度阈值筛选出直线段,并且此方法对直线段残缺部分以及噪声部分具有良好的过滤能力。因此在检测开关盒直线段信息时,只需确定参数空间中曲线交集处即可得到控制柜图像中直线段信息。

LSD算法通过局部边缘检测进行像素合并实现直线段检测。先将输入图像尺度缩小至原来的80%,能有效减弱甚至消除图像中的锯齿效应(staircase effect),再对图像进行高斯降采样,通过高斯核滤波实现锯齿效应和图像模糊之间的平衡。为减少梯度计算过程中相关像素间的依赖,梯度计算使用2×2模板,设i(x,y)为图像像素点(x,y)的灰度值,gx(x,y)与gy(x,y)分别为x方向与y方向梯度值,图像的梯度由下列公式计算得到:

水平线(level-line)角度Langle由下式计算得到:

图像梯度的幅值G(x,y)由下式计算得到:

LSD算法对控制柜图像中不同像素点梯度幅值进行排序,梯度幅值越高表明其像素点所在区域具有较强边缘特征。而梯度幅值越小则表明像素点所在区域趋于平坦或为噪声区域。再通过搜索周围区域未使用的像素点来确定是否加入线段支持区域,当水平线角度和区域角度θregion小于角度容忍度τ时将该水平线添加到线段支持区域中,保证输出直线段不包含较暗区域与边缘干扰线段。

本文将对以上两种直线检测算法进行测试,通过比较直线检出率RD、直线重复率RR、直线断裂率RF、误检率RE等检测结果,选取合适的直线检测算法对开关盒边沿进行直线提取。其中直线检出率、重复率、直线断裂率的计算公式为:

式中,Ndetected为检测到的直线段数量;Nall为图像中所有直线段数量;Nrepeat为检测到原属于同一直线段的重叠直线段数量;Nfracture为检测到原属于同一直线段的分裂直线段数量;Nerror为错误检测的直线段数量。

确定直线检测算法后再对检测到的直线段进行筛选,过滤长度过短、过长或者倾斜较大的直线段,并根据开关盒周围颜色分布情况,对直线段周围颜色区域进行HSV(Hue,Saturation,Value)分割,过滤错误颜色区域直线段,缩小开关盒边沿判断区域,实现准确定位开关盒。直线检测算法提取开关盒边沿的具体流程如图5所示。

图5 直线段检测提取开关盒边沿流程图Fig.5 Flow chart of line segment detection and extraction of switch box edges

3 基于YOLOv3深度学习的开关状态检测

为实现变电所弱电柜开关运行状态监测,需要在深度学习框架下建立开关状态检测模型。在常用的深度学习方法中,R-CNN系列提出的候选区(Region Proposals)方法通过比较颜色相似性、纹理相似性、尺寸相似性和形状兼容性,从图片中搜索出一些可能存在对象的候选区(Selective Search),再对每个候选区进行检测。但R-CNN系列对GPU环境要求较高,在检测速率上也难以达到实时效果。而YOLO作为基于回归的端对端神经网络,在单个神经网络的基础上通过回归的方式对目标进行检测。其中卷积层负责提取图像特征信息,全连接层对检测对象的位置与类别进行置信度预测。在实时检测的基础上能够保证较高的检测精度,适用于本文应用场景。

YOLOv3作为YOLO系列最新算法,采用特征金字塔网络(Feature Pyramid Network,FPN)思想,对13×13、26×26、52×52不同尺度特征图上的特征检测效果进行优化,并基于残差网络提出Darknet-53网络结构,每个卷积层由二维卷积层、BN(Batch Normalization)层和Leaky ReLU(Rectified Linear Unit)激活函数组成。Darknet-53的网络结构如图6所示。

图6 Darknet-53网络结构图Fig.6 Darknet-53 network structure diagram

网络中每个bounding box都包含本身的中心坐标信息、相对于整个图片的长宽比例信息以及置信度信息。在S×S网格中,每个网格需要预测B个bounding box与C个类别概率。最后输出S×S×( )5×B+C的张量。YOLO的损失函数可表示为:EIOU为重叠面积误差,Eclass为分类误差,Ec预测坐标信息与标记位置误差。其中坐标损失函数为:

式中,λcoord为误差权重系数,xi、yi、wi、hi分别代表回归后的坐标信息与长宽偏移信息。为标定阶段的信息。

在本文应用中,YOLOv3算法无需检测多类目标,只需检测开关状态为横向、纵向与斜向三种情况。为减少网络计算量,加快训练效率,可以对YOLOv3中的类Anchor机制(使用anchor boxes[20]作为先验框对目标进行检测的机制)进行优化。先验框设立初衷是为提高IOU(Intersection over Union),即预测框与原标记目标位置之间交集与并集的比值,如图7所示。IOU计算公式为:

图7 IOU概念图Fig.7 IOU concept map

原始Anchor机制是针对COCO数据集进行K-means聚类确定的,聚类得出面向COCO数据集中80个检测对象的模板框个数k为9,但并不适用于本文的开关状态检测对象,需要对k值进行重新计算。针对包含三种分类情况的开关状态数据集,重新进行K-means聚类,比较不同k值下的IOU,选取IOU变化幅度最低处k值作为此次训练的参数。

4 实验结果与分析

4.1 开关盒快速框定实验

为比较霍夫直线检测与LSD直线段检测在开关盒边沿检测上的优劣性,使用Python2.7调用OpenCV代码在BIM环境下对控制柜图像分别进行霍夫直线检测与LSD直线检测。首先通过高斯滤波器对原图像数据进行降噪预处理,实现了对图像噪声的过滤,具体图像滤波效果如图8所示。

图8 高斯滤波器降噪预处理效果Fig.8 Noise reduction preprocessing effect of Gaussian filter

针对预处理后的图像直接进行霍夫直线检测与LSD直线检测。由图9可以看到,LSD直线检测数量明显多于霍夫直线。

图9 不同算法检测开关盒边沿效果图像Fig.9 Different algorithms detecting edge image of switch box

通过比较两个直线检测算法效果图中的直线检出率、重复率、直线断裂率、误检率、直线提取数量和算法运行时间可以得到如表1的数据。可以确定LSD在开关盒边沿提取中直线提取数量优于霍夫直线提取,并且误检、漏检以及直线断裂数量均少于霍夫直线检测。因此最终选取LSD进行开关盒边沿检测。

表1 基于不同直线检测算法的直线段检测结果Table 1 Line segment detection results based on different line detection algorithms

针对LSD直线检测后的图像,需要对图像中非控制柜边沿部分进行过滤。为此,对直线段的角度偏移量、直线长度阈值以及断点之间最大阈值进行限定,如图10(a)所示。在过滤后的直线段信息中,对周围的HSV图像空间进行分析,根据开关盒本身黑色以及周围白色的特点,对直线段进行二次过滤,并将检测结果通过不同颜色标记出开关盒不同位置的边沿,如图10(b)所示。

图10 不同过滤条件下检测开关盒边沿效果图像Fig.10 Detection of switch box edge effect images under different filtering conditions

通过输入不同角度下控制柜图像,保证在不同视角下都能实现准确框定开关盒,同时以图像左上角为坐标零点,在每个框定对象上输出坐标位置信息,并根据检测结果不断优化直线段筛选条件。最终开关盒位置框定效果如图11所示。

图11 不同角度下LSD算法框定开关盒效果图Fig.11 LSD algorithm frame switch box renderings under different angles

本文训练模型所用图片数据均来自于由无锡市工业设备安装有限公司提供的无锡某隧道变电所BIM模型,无需采集现场图像,节约了时间与人力成本。为进一步优化标注流程,本文对标注工具LabelImg进行源码优化,通过python编写LSD直线检测算法的接口,接入到LabelImg标注工具中canvas.py文件下mouseDouble-ClickEvent触发函数中,实现在LabelImg成功载入图像后,双击图片即可实现LSD算法自动框定开关盒对象并保存目标坐标与长宽信息的功能。同时保留原有的人工框定功能,防止自动框定时出现漏检情况。

在完成框定开关盒的基础上制作图像数据集时,由于LSD算法在实现自动框定目标的基础上无法实现自动标注,而单个控制柜上的开关盒对象数量较多,并且本文需要针对开关状态有横向开关、纵向开关和斜向开关三种情况进行标注,因此在处理少量图片数据时,LSD算法框定与人工作业框定时间差距不太明显。但是在面对多数量目标以及大量图像数据时,LSD算法自动框定目标可以大幅度减少人工作业时间。通过比较人工框定与LSD自动框定不同张数图片生成坐标数据文件的时间,可以看出LSD框定大幅度提高目标框定效率,降低数据集生成时间成本,如表2所示。

表2 人工框定与LSD框定处理耗时比较Table 2 Comparison of time consuming between manual framing and LSD framing s

4.2 开关状态检测实验

为优化网络训练效率,减少计算量负荷,本文针对不同k值下的IOU大小进行合理的k值筛选,选取范围k=[1,9],而K-means聚类算法是一个不断迭代的过程,以k值为7时为例,在一定迭代次数后得到最终聚类结果,如图12所示,图中x和y代表数据集中框定位置长宽信息归一化后的数值。图12(a)中蓝色十字为原始数据,图12(b)中红点为初始聚类中心,图12(c)中黑点为最终聚类中心,不同颜色为不同类簇。

图12 K-means算法迭代过程Fig.12 K-means algorithm iteration process

同时记录不同k值下对应的IOU值,具体结果如图13所示。可以得到k值在7时,曲线趋于平缓,无太大抖动。

图13 IOU-k折线图Fig.13 IOU-k line chart

在确定训练参数k后,将数据集图像输入卷积神经网络进行卷积特征提取,包含横向、纵向与斜向开关三种不同分类情况的不同层卷积特征图如图14所示。本次实验结果通过比较训练中Loss值随迭代次数变化曲线以及训练过程中IOU变化曲线来对训练效果进行评估。同时将YOLOv3训练得到的模型在同一环境下与Faster R-CNN、SSD(Single Shot MultiBox Detector)算法进行检测速度比较,实现多方位的检测效果评估。

图14 不同层卷积特征图Fig.14 Convolution characteristic diagram of different layers

4.2.1 Loss值随迭代次数变化分析

在整个YOLOv3网络训练过程中,Loss值的大小代表训练过程中损失函数值的大小,以0为其最优期望值。在本文进行的深度学习训练中将初始参数进行如下调整,学习率设置为0.001,steps=10 000,15 000,scales=0.1,0.1下迭代5 000次。整个训练过程中,如果训练方向正确,则损失函数Loss值会呈现出一个由高向低的变化。如图15所示,在前100次到4 000次迭代过程,损失函数值从初始的高峰值突然下降到接近1.0的数值,说明整体训练方向正确,数据集以及网络配置文件中的参数均为正常,而在1 000到4 000轮迭代变化中,下降速度减缓,但在初始学习率下也同样保持了一个快速收敛下降的趋势,并且也未出现下降速率过慢导致陷入局部最优值的情况。在训练次数达到10 000次的时候,学习率降低初始设定值的0.1,Loss值下降速度逐渐延缓,此时能有效地防止学习率过大导致训练迭代值越过最优值或者出现训练发散的现象。迭代次数达到15 000次之后,损失函数Loss值无限接近最优期望值条件并且几乎不再出现波动变化,趋于稳定状态,此时无需再进行大量迭代。

图15 Loss值变化图Fig.15 Variation diagram of Loss value

4.2.2 IOU实验数值分析

IOU指的是在整个深度学习模型训练过程中,产生的候选框与原标记框之间交集与并集的比值大小,最优期望值为1,而IOU值的获取方式则是从训练过程中记录训练数据的日志文件中获取。获取原始IOU数据后,通过滑动平均对所有数据进行处理,获取较为准确的IOU值。如图16所示,IOU值伴随着迭代次数增长呈现稳定的上升趋势,从第1轮到50 000轮,IOU值急剧增长,代表训练中候选框在预测开关盒位置信息上的能力不断上升。达到50 000轮以后,整个数值增长不再波动,趋势逐渐平稳,IOU值无限接近最优期望值,候选框与原标记框两者位置接近重合,此时训练得到的权重模型已经能准确框定开关盒位置。

图16 IOU值变化图Fig.16 Graph of IOU values

4.2.3 不同算法实时性比较

目前在工业环境下,深度学习应用中较为常用的目标检测方法有Faster R-CNN、SSD和YOLO三种。为对本文中YOLOv3算法检测开关状态进行实时性评估,对以上三种方法进行检测时间成本的对比实验,实验结果如图17所示。从图中可以明显看出,相比于FasterR-CNN算和SSD算法,YOLOv3算法能大幅度减少检测时间,能在工业环境下为准确识别开关状态实时提供保障。

图17 不同算法下开关状态检测时间对比图Fig.17 Comparison diagram of switching state detection time under different algorithms

4.2.4 开关状态检测器综合指标分析

通过比较Loss曲线的波动变化,选取迭代15 000次时的权重文件作为最终检测模型。将验证集与测试集数据分别输入到YOLOv3网络经过权重模型进行识别,比较漏检、误检的数量,计算得到开关状态识别准确率,如表3所示。

表3 开关状态检测器检测结果分析Table 3 Analysis of detection results of switch state detector

从表中可以看到,开关状态检测精度到达了98.3%的准确率。并且实验中PC端不依赖GPU环境能达到33 frame/s的检测速度。在面向不同尺寸开关盒时,都能达到良好的检测效果,如图18所示。

图18 BIM环境下开关状态检测器结果示例图Fig.18 Example diagram of switch state detector results in BIM environment

为验证本文提出的融合LSD直线检测与深度学习网络的开关状态检测方案在面向移植嵌入式设备上具有适应性,采用NVIDIA Jetson TX2作为嵌入式设备移植对象,将深度学习框架与权重模型文件移植到嵌入式设备。为探究基于BIM模型数据集的训练模型能否应用于实际环境下的视觉检测,将真实环境下工业控制柜图像输入到深度学习网络通过权重模型进行识别。结果表明,BIM环境下训练得到的深度学习模型在识别真实环境下的设备开关状态具有良好的适应性,如图19所示。

图19 真实环境下开关状态检测器结果图Fig.19 Results of switch state detector in real environment

5 结论

本文面向工业现场针对控制柜设备上的开关盒进行工作状态监测,在BIM环境下通过LSD直线检测快速生成开关状态数据集,并输入到YOLOv3深度学习网络生成开关状态检测权重模型。在保证快速准确检测的基础上,降低数据集生成时间,加快图像识别在工程上的落地应用。实验结果表明,基于LSD直线段检测算法能快速准确定位开关盒生成数据集,大幅度降低人工框定图像中检测对象生成数据集的时间。同时相比于依赖强悍GPU平台的R-CNN系列算法,通过YOLOv3深度网络框架进行目标检测在满足降低检测成本的基础上能达到实时性的要求,检测速度上优于Faster R-CNN算法与SSD算法。并且将BIM模型应用于实际视觉分析场景,并且具有良好适应性,为未来工程上实现BIM模型与工业现场智能化应用结合打下基础。

本文提出基于LSD直线检测和深度学习的开关状态边缘检测方案在工程实施中具有以下技术优势:(1)加快了视觉应用在工程项目中的落地时间,无需现场采集图像与人工标定数据集,降低目标图像数据建立的人工成本和消耗时间,提高面向开关盒这类目标的检测效率。(2)在完成智能化检测的前提下,降低了实时监测的网络数据传输成本与GPU设备检测成本,实现边缘侧智能化检测,降低了设备改造成本和风险,实现工程上的低成本、易改造和易携带。

猜你喜欢
直线状态图像
改进的LapSRN遥感图像超分辨重建
有趣的图像诗
状态联想
画直线
生命的另一种状态
两条直线 变变变
画直线
坚持是成功前的状态
遥感图像几何纠正中GCP选取
趣味数独等4则