基于YOLOv3和ECO算法的电气化铁路接触网绝缘子的检测与跟踪
2021-09-26尧新亮
尧新亮,柯 坚
(西南交通大学机械工程学院,成都 610031)
KJ系列接触网绝缘子带电水冲洗装置是用于电气化铁路中绝缘子防污的设备,装置作业需要人工辅助,劳动强度大且有一定的危险性。在对装置基于图像的视觉伺服(IBVS)控制系统研究中,如图1所示,IBVS需要连续获得视频帧中绝缘子的图像坐标y,这要求系统能够对绝缘子目标进行检测定位。
图1 装置IBVS控制系统结构
现有的目标检测算法分成传统和基于深度学习两类,后者检测精度远远超过前者。传统目标检测算法通过滑动不同尺度窗口得到候选区域,提取其中的图像特征进行分类器训练,并利用得到的训练模型完成检测。基于深度学习的检测算法可以分为两阶段和一阶段检测。前者依次进行目标候选区域的生成与分类校准,检测精度较高。后者则直接得到检测物体的类别概率与坐标,检测速度更快。针对绝缘子的目标检测,已有相关学者进行了研究。游诚曦[1]利用SVM+HOG图像特征的组合,对接触网成像数据中的绝缘子进行检测定位研究;刘建宏[2]研究比较了SVM+SURF和Adaboost+HOG两种组合的绝缘子检测定位效果;苗向鹏[3]采用caffe开源框架,搭建CaffeNet网络对绝缘子进行检测定位;张子健[4]使用深度学习目标检测算法RRPN完成对绝缘子有角度的检测定位。
由于光照条件变化、目标遮挡或相机抖动等状况,实际工作中目标检测算法的结果并不稳定。为减少目标检测中错检、漏检等状况,工程实际中通常会使用多目标跟踪(MOT)来改善检测结果,以便为进一步的分析提供基础。MOT的主要任务是在连续的图像序列中同时追踪多个目标,得到目标的运动轨迹。按照初始化方法,MOT算法可以分为DBT(Detection-Based Tracking)和DFT(Detection-Free Tracking)。DBT为主流研究方向,需要对每一帧图像进行目标检测,代表算法包括SORT[5]、DeepSORT[6]等。DFT在初始帧需人工标定边界框,利用单目标跟踪器在后续帧跟踪定位,无需进行目标检测。
DFT中使用的跟踪器属于单目标跟踪(SOT),其主流算法为判别模型类。该类算法将当前帧目标和其他区域分为正、负样本,通过使用机器学习训练的分类器来寻找下一帧最优区域。近几年,判别模型中的相关滤波类和基于深度学习类成为SOT算法的主流。相关滤波类代表算法有KCF[7]、FDDST[8]、Staple[9]、BACF[10]等,基于深度学习类的代表算法有MDNet[11]、SiamFC[12]、A3CTD[13]等。SOT除了短期跟踪,也包括长期跟踪。长期跟踪算法中包含目标检测,能够在目标跟丢的情况下重新检测找回。因此,正确判断跟踪器的跟踪状态和准确的目标检测是长期跟踪算法的关键。MA等[14-15]提出的LCT算法中通过学习两个相关滤波器同时完成目标跟踪及状态估计;LUKEŽI等[16]提出的FuCoLoT算法中则利用CSRDCF跟踪器同时完成平移、尺度估计与目标置信度计算。在目标的找回检测中,前者使用随机簇检测,后者使用不同时间尺度上的跟踪器进行检测,两者的检测都只针对同一目标。
冲洗装置的冲洗对象为铁路沿线接触网立柱上的绝缘子,因此装置需要沿着线路不断运动,绝缘子在相机视野中会周期性的出现与消失。这要求装置控制系统能够准确检测绝缘子目标。从图1可以看出,装置采用的IBVS控制系统的控制周期为控制外环(图像环)的采样周期,这主要取决于相机采样和图像处理速度。同时,为保证装置的冲洗效果,高压射流需要沿着绝缘子轴线移动。所以,装置控制系统要求绝缘子目标检测跟踪算法具有较高的检测速度与精度、跟踪速度、目标定位精度和尺寸估计精度。
综合考虑冲洗装置控制系统硬件的局限、目标检测算法的复杂性、系统对绝缘子检测跟踪的技术要求以及装置在绝缘子出现的单个周期时间内能完成冲洗的数目(1~2),参考DFT和长期跟踪算法,提出使用YOLOv3目标检测器+多线程ECO单目标跟踪器结合,组成绝缘子的目标检测跟踪一体化算法。该算法利用YOLOv3完成初始帧的边界框标定,借助多线程ECO-HC跟踪器进行后续帧目标跟踪定位,避免了对多目标跟踪过程中每一帧图像的大量检测计算。针对绝缘子在伺服系统图像的周期性消失、出现和绝缘子外观的变化状况,引入响应质量分数来评估跟踪器的跟踪状态,利用响应质量分数完成一体化算法的检测器在目标丢失时的重新调用。
1 绝缘子的目标检测
YOLO[17-19]系列算法作为一阶段基于深度学习的目标检测算法,基本思想是通过卷积神经网络一次性预测边界框的尺寸、坐标和物体的分类。算法的损失函数为
(1)
对于YOLO系列算法,算法性能的提升主要决定于骨干网络,YOLOv3算法中采用的是Darknet-53。网络结构如图2所示。
图2 Darknet-53网络结构
1.1 模型训练
如图3所示,接触网绝缘子图像数据来源于网络和冲洗装置工作实地拍摄,一共1 000张RGB图像。利用图片标注工具labeling对数据集进行标注。模型利用谷歌的云计算平台Google Colab提供的GPU在线资源进行训练,显卡为Tesla P4,显存容量7611MiB,CUDA版本为10.1。
图3 接触网绝缘子图像(已标注)
1.2 检测结果与分析
选取100张1 000×1 000的绝缘子图像用于模型测试,这些图像中一共包含336个绝缘子目标。为有效评价算法的性能,相关参数计算如下
(2)
式中,NTP为正确检测的目标数目;NFP为错误检测的目标数目;NFN为遗漏检测的目标数目。使用精确度RP、召回率RR等对训练好的模型进行评估,相关检测结果见表1。
表1 检测结果
在部分针对行人等较大目标的检测算法性能对比中,专注于单类检测问题的DPM算法检测精度往往高于YOLOv3,这是由于后者优势在于多分类问题。针对接触网绝缘子,由于目标在图像中较小,从表1可以看出,YOLOv3算法相较于传统目标检算法DPM,漏检和错检数目更少,检测精度更高。两种算法的检测结果图像如图4所示,第一行图像为YOLOv3算法的结果,第二行图像为DPM算法的检测结果。
图4 绝缘子图像目标检测结果
2 ECO目标跟踪算法模型
ECO[21]属于相关滤波类目标跟踪算法,该算法以C-COT[22]为基础,通过引入因式分解卷积、满足样本分布的简洁生成模型和稀疏的更新策略等方法加快跟踪速度。其中,使用手工特征的版本为ECO-HC(HOG+CN特征),在单个CPU上有60fps的速度。下面为算法的模型理论公式。
2.1 特征离散空间的连续变换
(3)
式中,bd∈L2(T)为插值函数;Nd为特征通道采样数;xd[n]为平移后的函数权值。
2.2 连续卷积算子的学习
算法目标是学习一个连续的线性卷积算子,通过该算子将样本x映射到目标置信分数。实践中,算法引入投影矩阵,对卷积操作进一步分解,从而降低数据维度,减少计算时间。连续卷积算子为
(4)
关于投影矩阵中各个元素的物理意义,可以将其视为原滤波器集合中各通道滤波器对新集合中各滤波器的支持度或相关度。相对于传统判别滤波算法,ECO需要共同学习滤波器f和投影矩阵P,最小化分类损失函数。
2.3 目标函数
ECO使用概率生成模型对样本集进行简化,假设样本x和高斯标签y的联合概率分布P(x,y)。同时为提高样本的多样性,ECO利用高斯混合模型(GMM)生成不同的组件,每个组件包含相似的训练样本。在简化联合概率分布后,ECO将目标函数完善为
(5)
式中,l为组件范围;L为组件数;πl为组件权重;μl为组件期望。
3 接触网绝缘子基于检测的目标跟踪
绝缘子水冲洗装置视觉伺服控制系统设计要求能够自动完成装置作业时绝缘子目标的检测跟踪。目标检测器除了进行每个跟踪周期初始绝缘子的检测定位,也需要在跟踪器丢失目标时找回绝缘子。因此,算法需要有效评估跟踪器的跟踪状态,以此决定是否调用检测器进行目标检测。同时,在检测器检测到目标后,算法需要正确分辨其中是否包含新目标。
3.1 跟踪不确定性评估
跟踪不确定性评估对于单个立柱上绝缘子目标发生跟丢、跟踪结束等事件后启动检测器再检测至关重要。使用基于最大响应值的响应质量来评估跟踪不确定性,响应质量的计算公式如下
(6)
式中,s为跟踪器中的目标置信分数;pslr(peak-to-sidelobe ratio,峰值旁瓣比)为主瓣峰值强度与最强旁瓣的峰值强度之比;μ为置信分数图均值;σ为标准差。
3.2 目标区分
当检测器检测到目标后,算法需要正确分辨出当中的新目标。对于算法而言,检测器的检测结果为一系列边界框。判断检测边界框中是否包含新目标最简单的方法是计算检测边界框与已有目标边界框的IOU(交并比)或中心坐标的欧式距离,通过设定阈值进行甄别。
比如学校可以定期开展文明班级、文明寝室、文明先进个人等活动,并在此制度上设立相关的奖励制度,可以是奖金,也可以是学习用具。通过这种式让方学生自发参与到文明活动之中,培养学生精神文明建设。或者学校可以建立通过广播、校园公告栏、报纸、海报等形式来进行核心价值观和精神文明建设宣传的制度,加强推进精神文明建设的脚步。
(7)
式中,A、B为目标边界框;(x,y)为中心坐标;ρ为欧式距离。
3.3 算法结构
接触网绝缘子目标检测跟踪一体化算法结构如图5所示,算法使用ECO-HC作为短期跟踪器,YOLOv3算法为检测器。在单个立柱上绝缘子跟踪过程中,算法利用检测器得到的目标框作为短期跟踪器的初始边界框,同时检测器在目标跟丢(跟踪失败)和跟踪结束时(跟踪器数目为0)将再次启动。对于YOLOv3检测器的深度学习框架,算法采用OpenCV,要求OpenCV版本在3.4.2以上,只能配合CPU进行计算。
图5 绝缘子目标检测跟踪一体化算法结构
实践中,当检测器发现未跟踪目标时,算法会相应地学习一个新的跟踪器,并为其分配线程。该线程会在当前已有跟踪器完成更新计算后进行添加,在下一帧图像输入后进行计算。各个线程的跟踪器输入为相机视频帧,输出为响应质量、边界框和目标跟踪状态。根据目标跟踪状态,当跟踪器丢失目标时,算法自动清除该跟踪器及其线程。
4 实验
实际工作中绝缘子带电水冲洗装置搭载在平车上进行冲洗作业,单个立柱上绝缘子的有效冲洗距离约8 m。平车运动速度为5~10 km/h,单侧的冲洗时间约4 s。选取了成灌线上拍摄的图像序列进行绝缘子目标检测跟踪实验,一共1 200帧,图像尺寸为1 000×1 000。该图像中列车的运动速度高于冲洗装置搭载的平车移动速度。由于该段图像中绝缘子的移动速度较高,这对算法的检测与跟踪提出了更高要求。
图6为算法检测跟踪的结果图像。实验中,一体化算法的检测器能够较为准确的检测定位绝缘子,并在后续帧中进行连续跟踪。当绝缘子目标离开图像区域和跟踪器跟踪失败时,算法能够准确评估当前跟踪目标的外观变化,重新调用检测器。图6(a)中,第17、18帧两个绝缘子目标接连离开视野,算法调用检测器开始检测,并在第88帧成功检测到下一立柱的绝缘子目标。图6(b)中,在第117帧之后连续丢失全部目标,并在第130帧找回其中两个目标重新跟踪。算法在单个CPU(i7)平台下进行跟踪测试,同时跟踪两个目标的跟踪平均速度为30.9 fps,检测阶段平均速度为2 fps。
图7、图8分别为绝缘子目标检测跟踪一体化算法的单个跟踪器在跟踪阶段的平均像素误差和重叠率成功率图。平均像素误差成功率图横轴代表跟踪结果边界框中心与目标真实位置的像素距离平方,平均重叠率成功率图横轴代表跟踪结果边界框与目标真实边界框的IOU。图中实线为算法利用检测器得到的目标初始边界框进行跟踪,跟踪过程中算法跟踪器平均像素误差(20 px)成功率为44.8%,平均重叠率(0.5)成功率为49.7%。
相比使用人工标定边界框进行跟踪,算法跟踪器的平均像素误差成功率与平均重叠率成功率都有所下降。这是由检测器的精度所决定,检测结果的精度越高,跟踪效果越好。
图9为图6(b)中第88帧5号绝缘子(绿色)跟踪过程中响应质量的变化。在跟踪器开始跟踪的初始阶段,响应质量q变化不大;但是随着5号绝缘子不断靠近,绝缘子的外形不断发生变化,跟踪器计算的响应质量q急剧下降。直到第120帧,5号绝缘子目标跟丢,响应质量的数值相比初始帧已经下降了一个数量级。实验中,算法通过计算响应质量分数s,利用阈值τ准确判断跟踪状态,决定是否调用检测器。
图6 绝缘子图像的检测和跟踪
图7 算法跟踪器平均像素误差成功率
图8 算法跟踪器平均重叠率成功率
图9 目标跟踪过程响应质量
关于一体化算法的性能,使用MOT17行人跟踪数据集进行评价,该基准分别包含7个具有挑战性的测试和训练的图像序列。为保障结果的公正,使用数据集提供的公共检测器(SDP)的检测结果。算法的测试结果见表2,关于各指标的含义如下。
表2 MOT17跟踪结果
(1)MOTA:多目标跟踪准确度
(2)MOTP:多目标跟踪精度
(3)MT:主要跟踪目标
(4)ML:主要丢失目标
(5)IDs:身份切换数
(6)FM:跟踪轨迹中断次数
(7)FP:错误检测目标数
(8)FN:未检测目标数
从跟踪结果可以看出,一体化算法的跟踪准确度和精度都明显低于一般的MOT算法。该差异主要是由于一体化算法没有对每一帧图像进行检测,仅依靠单目标跟踪器完成目标跟踪定位。同时由于数据集目标数量多,需进行大量的跟踪计算,一体化算法的跟踪速度并无优势。对于绝缘子装置控制系统而言,在保障清洗效果的前提下需要进行跟踪的绝缘子数目较少(1~2)。同时,由于绝缘子之间的较大间隔,相互遮挡的情况较少。此种情况下,在装置有限的系统硬件资源下,检测器只完成初始和找回检测计算的一体化算法,对于少量目标进行跟踪更具优势。
5 结论
针对KJ系列电气化铁路绝缘子带电水冲洗装置视觉伺服系统的控制问题,提出了一种绝缘子目标的检测跟踪一体化算法。该算法利用YOLOv3检测器完成目标的初始检测与ECO-HC跟踪器的学习,并在后续帧使用跟踪器完成目标的跟踪定位。为有效评估算法中各跟踪器状态,引入了响应质量分数,通过设置阈值进行检测器的自动调用,并利用IOU等指标综合分析检测结果。该算法的优点在于利用多线程跟踪器就能进行多个目标的跟踪定位,无需对每一帧图像做大量的检测计算,为硬件资源有限的计算平台上完成多个目标的自动检测跟踪任务提供一条可行的策略。试验结果表明,一体化算法能够在单个CPU平台上对铁路沿线多个绝缘子进行连续检测跟踪。跟踪器同时跟踪两个目标的平均速度为30.9 fps,平均像素误差成功率44.8%,平均重叠率成功率49.7%,满足绝缘子水冲洗装置视觉伺服控制系统实时性、准确性等要求,具有工程实际应用价值。