1. 引言
提取高压输电线路的电力线、监测输电线路和铁塔的形变和故障点是电力自动巡检中的主要任务,对所拍摄视频图像进行电力铁塔的检测对铁塔类型、形变和故障判断有着至关重要的作用 [1] [2] [3] [4] [5] 。
目前,在输电铁塔的检测识别方面,吴华等人采用了一种自相似的描述子对电力塔进行检测 [6] 。该方法的处理速度不能满足实际工程需求,需要进一步优化其检测方法。吴晓东等人采用多尺度分割技术,利用变化检测的方法对电力塔进行识别 [7] ,在一定程度上减少了计算量,因未能结合多尺度间的纹理结构特征信息,识别精度欠佳。张雪峰等人在高分辨率SAR (synthetic aperture radar)图像中,通过球不变随机向量SIRV (Spherically Invariant Random Vector)模型增强来提高CFAR (Constant False Alarm Ratio)检测的准确率,并针对SIRV模型参数估计速度慢的情况,提出了分级检测的方法来提高检测速度 [8] 。Carlos Sampedro等人提出了一种电力塔检测和分类的监督学习方法,通过训练两个多层感知器MLP (multi-layer perceptron)神经网络,一个感知器用于分割背景和前景,另一个感知器用于对4种不同类型的电力塔进行分类,该方法具有较好的鲁棒性,但其精度和速度不能完全满足实际使用需求 [9] 。
塔台检测是以塔台为目标进行的目标检测。目前的目标检测方法主要分为两大类:基于背景建模的方法 [10] 和基于目标建模的方法 [11] 。基于目标建模的检测方法通常采用滑动窗机制,对目标采用学习好的分类器进行检测,该技术由于检测率高成为目前检测技术研究的热点。基于深度学习的CNN技术是目前性能最好的检测器,但因为要把每个滑动窗的数据带入训练好的分类器耗时很长,难以满足实时性。基于特征的AdaBoost分类器可以在多尺度上进行检测,但选择特征的鲁棒性和样本的充分性会影响其性能。
对于以上情况,本文提出了一种电力巡检中基于学习的塔台检测方法,针对动态背景下的输电线路直升机巡检视频进行塔台检测。首先对直升机拍摄的输电线路的飞行视频中正负样本进行标注,用获取的正负样本分别对AdaBoost分类器和CNN分类器进行训练,得到两个分类器。然后利用AdaBoost分类器在多尺度上对塔台进行粗检,得到的初检结果作为候选塔台,再利用基于深度学习的CNN分类器对候选目标进行确认,去除初检结果中的非塔台物体。
该方法能够在保证检测算法效率的基础上,提高塔台检测的精度。
2. 算法框架
本文提出的直升机电力巡检系统中基于学习的塔台检测算法框架图如图1所示。

Figure 1. The algorithm framework diagram
图1. 本文算法框架图
该方法主要由四部分组成:1) 从直升机/无人机拍摄的输电线路巡检视频中剪切丰富的塔台和非塔台图片构成训练样本集,并进行正负样本标注;2) 对训练样本集提取LBP特征,把特征集和标信息送入AdaBoost模型进行训练,学习生成分类器classifier1;3) 设计深度学习CNN模型结构,把训练样本集和标注信息送入Caffe架构下的CNN模型,学习生成分类器classifier2;4) 在多尺度下,把滑动窗内的测试视频图像块,送入训练生成的分类器classifier1,根据classifier1输出得到塔台初检结果;把初检结果送入训练得到的分类器classifier2,根据classifier2输出得到塔台的准确定位。
3. 基于AdaBoost分类器的塔台初检
AdaBoost (Adaptive Boosting)的核心思想是由同一个训练集训练不同的弱分类器,然后把这些弱分类器集合起来构造一个更强的分类器作为最终的强分类器 [12] [13] 。该算法是一种迭代算法,根据每次迭代中训练集中每个样本分类是否正确及上次总体分类的准确率来确定每个样本的权值。将修改权值后的新数据送给下层分类器进行训练,然后将每次训练得到的分类器融合起来,作为最后的决策分类器。由于AdaBoost不需要预知弱学习算法的任何先验知识,而且利用积分图思想加快了计算速度,是一种相对有效的学习算法。因此本文选用AdaBoost模型进行训练。
LBP (Local Binary Pattern,局部二值模式)是一种用来描述图像局部纹理特征的算子 [14] [15] 。由于它的旋转不变性、灰度不变性和计算简单等显著优点被广泛应用于目标的检测和识别场合。在野外的自然环境中,相比其它目标,电力铁塔具有形态分明、纹理显著等特点。再针对直升机或无人机巡检时一定要满足实时性要求,故在AdaBoost分类器训练的特征选择上,本文选用LBP特征对塔台进行描述。
本文基于AdaBoost分类器的塔台检测主要分为两个阶段,第一阶段是训练,第二阶段是检测。在训练阶段,首先准备大量不同视角、不同形状、不同距离、不同背景的塔台图片作为正样本,准备更多张的非塔台图片作为负样本,构成训练样本集,对训练样本集进行大小归一化、灰度化和直方图均衡化等图像预处理。其次,对预处理后的样本集提取LBP特征;接着把提取的LBP特征集以及所属样本的标注信息送入AdaBoost模型进行分类器训练,学习得到分类器classifier1。在检测阶段,首先对输入的视频图像进行灰度化和直方图均衡化等预处理,接着采用多尺度滑动窗策略提取图像块内容,对滑动窗里的图像块大小归一化后提取LBP特征,再将提取的LBP特征输入分类器classifier1进行决策分类,判定滑动窗内图像是不是塔台。因为在多尺度滑动窗检测机制下,一个目标可能被多次检测,在认为重叠较多的检测框表示的是同一个目标的前提下,对视频帧图像中的多尺度滑动窗检测结果进行合并处理,合并处理后的检测框即为候选塔台的初检结果。
AdaBoost分类器训练时的设置如下:
训练样本集个数:34,006,正样本个数:12,851个,正样本归一化尺寸:50 × 100,负样本个数:21,155个,负样本尺寸:大小不限制。
训练迭代次数:20;
最小命中率:0.999;
最大虚警率:0.5;
弱分类器数目:100;
滑动窗最小尺寸:50 × 100,最大尺寸:85 × 169;
窗体缩放倍率:1.3;
滑动尺度设为3。
基于AdaBoost分类器的目标检测算法不受应用场景的限制,尤其适用于运动摄像机下的目标检测,但易受遮挡影响,且对噪声敏感,其检测精度不能完全满足实际工程需求,需要进一步改进优化。
4. 基于CNN分类器的细检
卷积神经网络(Convolutional Neural Networks, CNN) [16] [17] [18] 是一种多层的深度神经网络,主要由输入层、卷积层、池化层、全连接层、输出层(分类器)组成。CNN作为一种典型的深度学习方法能从一个二维图像中提取其拓扑结构,采用反向传播算法优化网络结构,求解网络中的未知参数。CNN相较于传统的图像处理算法的优点之一在于,避免了对图像复杂的前期预处理过程(提取人工特征等),可以直接输入原始图像,特征提取可以隐式地从训练数据中学习得到,故本文选用深度CNN模型对塔台进行有效训练学习。
定义
为输入值,
为要预测的输出值,在给定了训练集
的情况下,进行训练就是要学习得到一个函数
,使能够对
进行很好的预测。深度学习训练的过程就是对如公式(1)所示的代价函数寻找全局最小化的过程,其中
为权重系数。
(1)
Caffe [19] 是一种较成熟和完善的用于计算CNN相关算法的开源GPU计算框架,由于简单易用、性能强大和快速高效,Caffe框架受到了学者和相关研究人员的广泛认可。在Caffe框架上,可以使用提供的各种网络模型训练分类器;可以使用Caffe提供的类型扩展自定义模型来训练分类器;也可使用训练好的模型提取数据特征和进行分类等,故本文在Caffe框架下,对本文设计的CNN进行训练,以提升学习效能。
本文设计的CNN模型如图2所示,该网络总共包含18层网络结构组成,具体为:输入层–卷积层–激活层–池化层–归一化层–卷积层–激活层–池化层–归一化层–全连接层–激活层-dropout层–全连接层–激活层–dropout层–全连接层–softmax层–输出层。
输入层数据为经过灰度化、直方图均衡化和大小归一化等图像预处理后的训练样本集。卷积层作为特征提取层,用卷积核对训练数据进行卷积处理,自动提取信号的有效深层信息,增强原始信号特征的同时降低噪音。激活层将值限定于大于等于0的范围内,用于加速收敛。作为一种模糊滤波器,池化层对卷积得到的特征进行下采样处理,用于二次特征提取,在减少数据量的同时保留有用信息。归一化层模仿生物神经系统的侧抑制机制,对局部神经元的活动创建竞争机制,使得响应较大的值相对更大,提高所建模型的泛化能力。全连接层相当于传统神经网络中多层感知机中的隐含层,一般位于网络尾端,也可作为输出层。把训练得到的特征进行汇总或作为输入图像的另一种信息表示。dropout层用在全连接层之后,用于防止过拟合。softmax层输出各个类别的预测概率值。输出层输出类别,本文的类别数为2,塔台为一类,背景为一类。
本文在基于Caffe架构的CNN模型训练时的参数设置如下:
训练样本集数目:46,409个,其中46,309个样本用于训练,另外100个样本用于测试,塔台正样本个数:18,660个,非塔台负样个数:27,649个,归一化尺寸:100 × 100,第1个卷积层中,卷积核大小:5 × 5,步长:1,通道数:20,第2个卷积层中,卷积核大小:5 × 5,步长:1,通道数:50,池化层窗口大小:2 × 2,步长:2,第1个全连接层神经元个数:500,第2个全连接层神经元个数:980,第3个全连接层神经元个数:2,最后输出层损失函数:Softmax函数。
5. 结果与分析
本文算法的开发环境为VS2010、Opencv2.4.3、VirtualBox4.3.24、ubuntu14.04、cuda7.5.18、Caffe,实验所用PC配置为Intel i3 4GB RAM,win7 32位操作系统。
本文实验数据主要来自直升机的2次飞行数据,视频分辨率为768 × 432。飞行场景具备一定的复杂性,场景包含了平原、山地、森林植被、田地、村庄、道路等内容。飞行中光照变换大,载体运动剧烈。实验数据满足多样性要求。
首先,采用AdaBoost分类器和本文的两级分类器进行了塔台检测对比测试,主观检测效果如图3所示,AdaBoost分类器的检测结果用白框标注,本文的两级分类器的检测结果用黑框标注。

Figure 2. The CNN model designed in this paper
图2. 本文设计的CNN模型
图3的(a)~(g)依次给出了飞机在平原、田地、村庄、森林植被、道路、云层上空飞行及在阴影和光照改变剧烈条件下的检测结果。其中,(a)给出的是平原场景中第13,539、16,059、71,695和72,084帧图像的检测结果,AdaBoost分类器在第13,539帧和第16,059帧出现了错检,本文方法在第二级检测时排除了错检,做到了准确的塔台目标定位。可见,AdaBoost分类器无法对和塔台颜色接近的地面以及和塔台纹理相似的树木进行区分。(b)给出的是田地场景中第7750、11,164、11,476和50,931帧图像的检测结果,AdaBoost分类器在第11164帧和第50931帧出现了错检,而本文方法排除了错检,能够准确定位不同角度的塔台目标。可见,AdaBoost分类器并不能准确区分与塔台纹理相似的田地地面。(c)给出的是村庄周围场景中第15,490、28,643、29,367和51,347帧图像的检测结果,在第51,347帧中,AdaBoost分类器将凹凸不平的地面误检为塔台,而本文方法排除了错检,准确定位出了不同尺度上的塔台目标。可见,AdaBoost分类器对纹理丰富的地面的区分性较差。(d)是在森林植被(冬季)和道路场景中第4839、5566、30,601和46,999帧图像的检测结果,从第4839和5566帧中可以看出,由于冬天雪地里光线较强,致使塔台和背景对比度低,人眼几乎无法分辨,而本文方法依然能准确检测出模糊不清的塔台,可见本文方法对轮廓模糊的塔台目标具有强辨别性。从第46,999帧中可以看出,AdaBoost分类器将道路旁边的树木错检为塔台,而本文方法排除了错检,准确定位出了塔台目标。结合第30,601帧可知,对于纹理特征比较明显的树木,相比较AdaBoost分类器,本文方法更具有强区分性。(e)给出的是光照发生剧烈变化和阴影条件下第3686、4649、54,236和54,941帧图像的检测结果,从第54,236和54,941帧中可以看出,本文方法在光照发生剧烈改变时,依然能够排除误检,实现塔台的准确定位,可见本文方法能够克服光照剧烈变化对塔台检测所造成的影响。(f)给出的是在云层场景第191、232、242和305帧图像的检测结果,从中可以看出,在第191帧中,AdaBoost分类器将云层误检为塔台,而本文方法没有;在第232帧中,本文方法虽然未能检测出右边的塔台,但在其后继帧内,如第242帧和第305帧中均检测到了该塔台。可见,相比较AdaBoost分类器而言,本文方法具有更好的检测性能。(g)给出的是在森林植被场景第747、791、841和2291帧图像的检测结果,由图可知,本文方法准确定位出了绿色植被中的塔台目标。可见,本文方法对绿色植被环绕的塔台依然具有强的分辨能力。实验结果表明:1) AdaBoost分类器方法不受应用场景限制,适用于运动摄像机下的目标检测,可以实现多尺度的目标定位,但是对光照变化和噪声敏感,导致检测精度下降。2) 本文方法的检测效果明显优于AdaBoost分类器的检测结果。
其次,对两段时长共约50分钟的飞行数据采用AdaBoost分类器和本文的两级分类器对塔台检测进行了查全率(P)、查准率(R)以及P和R加权调和平均(F1-measure) [11] 的对比测试,评价结果如表1所示。
从表1中可以看出:1) AdaBoost分类器方法虽然查全率(召回率)较高,为93.69%,但由于存在较多错检,致使查准率低至68.12%,因此导致其加权调和平均值较低,为78.88%。2) 本文方法查全率(召回率)为92.43%,虽然比AdaBoost分类器方法低约1%,但由于能去除大部分错检,使检测结果更准确,

Table 1. Comparison of objective test results of two algorithms
表1. 两种算法客观检测结果对比

Figure 4. Comparison of the time consumption of each frame of the two algorithms
图4. 两种算法各帧耗时情况对比
且几乎不会去除掉正确塔台,其查准率79.19%,比AdaBoost分类器方法的高出约11%,其加权调和平均值为85.30%,比AdaBoost分类器方法的高出约6%。因此在性能上,本文方法更具优势。
最后,实验数据取了一段200帧的视频,将本文塔台检测方法和深度学习CNN分类器的检测方法在运行效率上进行了对比,两种算法各帧的检测时间(单位为秒)如图4所示。
由图可见,CNN分类器平均每帧检测耗时约为28.53秒,而本文方法平均每帧检测耗时约为0.33秒。相比于CNN分类器的每帧图像检测时间,本文方法检测耗时缩短了约98.84%,由此可见,相比于深度学习CNN分类器的检测方法,本文提出的塔台检测方法在计算时间上更具优势。
6. 总结
针对直升机电力巡检系统中塔台的自动高效检测问题,本文提出了一种基于学习的两级塔台检测方法,主要由训练和测试两部分组成。在训练阶段,由大量的训练样本学习得到两个分类器,一个分类器是基于LBP特征的AdaBoost分类器;另一个分类器是深度学习得到的CNN分类器。在测试阶段,利用AdaBoost分类器对直升机飞行视频进行塔台的第一级自动检测得到候选目标。为了去除粗检结果中的非塔台物体,利用CNN分类器进行塔台的第二级自动检测,从而得到最终的检测结果。对两段飞行数据进行了测试,实验结果表明:相比基于AdaBoost的目标检测算法,本文方法具有更高的检测精度。相比基于深度学习CNN的目标检测算法,本文方法的检测速度更高。从而可见,为进一步故障判断和检修任务,本文方法可直接应用在直升机电力巡检系统中的塔台自动检测方面。
基金项目
本项目受到国家自然科学基金面上项目(No.61671376, No. 61771386和No.61671374)的资助。
参考文献