基于改进区域候选网络的航拍图像中绝缘子目标识别方法
2019-01-07翟永杰李海森吴童桐
翟永杰,李海森,吴童桐,苑 朝
(华北电力大学自动化系,河北 保定 071003)
0 引言
我国电网规模庞大,高压和超高压输电线路快速发展。架空输电线路及杆塔附件长期暴露在户外,存在自然破坏和老化等问题,严重影响着电网的安全运行。绝缘子是电网中用量庞大的零部件,出现故障的几率较大,检测绝缘子的状态对保障电网安全运行十分必要,因此需要定期巡检[1]。但输电线路所经区域复杂,利用传统的人工巡检方式,不仅工作量大、条件艰苦,而且效率较低。利用无人机搭载高清数码相机对杆塔和线路进行巡视,并通过图传设备将视频及图像实时传输至地面站,具有高效、快速、可靠、成本低、不受地域影响等优点,已成为输电线路巡检的新方向和研究热点[2]。
目前国内外识别绝缘子的方法可大致分为以下3种:
(1)基于轮廓提取。文献[3]通过检测图像中的圆形轮廓来对应绝缘子片的圆形结构;文献[4]基于非下采样轮廓波变换提取绝缘子轮廓,取得了一定成果;文献[5]认为航拍图像中绝缘子为椭圆形状,通过椭圆拟合实现了绝缘子的定位。但航拍图像背景复杂,并且拍摄角度和视距的多变性导致了绝缘子轮廓的不确定性,使得轮廓提取算法的准确度较低。
(2)基于颜色特征。文献[6]依据玻璃绝缘子的颜色特征初步定位绝缘子,对于玻璃绝缘子的识别有较好效果;文献[7]认为绝缘子偏绿,对应HIS颜色空间的S分量,采用最大熵阈值分割定位绝缘子;文献[8]采用分块统计HIS空间中的H分量和S分量属于泛绿的区域来进行绝缘子的粗定位;但以上方法均针对玻璃材质的绝缘子,对于白色、红褐色和黑色的瓷质绝缘子难以实现定位。文献[9]在饱和度分量S中对绝缘子进行阈值分割,但不能排除饱和度分量与绝缘子相近的其他目标的干扰。
(3)基于纹理特征。文献[10]利用灰度共生矩阵提取绝缘子的纹理特征;文献[11]基于MPEG-7纹理特征对绝缘子进行定位,对于背景简单且绝缘子纹理性较强的图像检测效果较为理想。但是基于纹理特征的方法计算量大,并且航拍图像也可能因为存在纹理特征而成为与绝缘子相近的伪目标,因此该方法的应用性不强。
由于航拍图像的背景高度复杂化和多样化,现有方法都是基于绝缘子的某单类特征进行检测,其检测的准确率很难达到输电线路巡检要求。本文引入RPN(区域候选网络)对航拍图像中的绝缘子进行目标检测,但由于文献[12-13]中的RPN针对的都是多类目标,而多类目标和单类绝缘子目标的宽高比以及占画幅比等方面存在较大差异,所以为了适应航拍图像中绝缘子的检测,需要对RPN进行改进。
1 算法的总体框架
针对航拍图像中绝缘子的单类目标检测问题,通过改进RPN[12-13],并将其应用于航拍图像中绝缘子检测。针对航拍图像中绝缘子的特点,首先通过聚类分析得到最合适的锚点框初始值,从而实现RPN锚点框的初始化;然后,通过改进损失函数,解决RPN在训练过程中正负样本不均衡的问题,进而实现绝缘子的检测。
改进后的绝缘子检测流程如图1所示,主要从两方面对算法进行了改进:初始化锚点框;改进损失函数。具体步骤为:先经过卷积神经网络对绝缘子图片进行特征提取,然后将其输入RPN中,经过前景和后景的二分类以及候选锚点框的偏移量回归,最终实现绝缘子的识别与定位。
图1 绝缘子检测流程
1.1 初始化锚点框
文献[12-13]中的RPN针对的是多类目标,而多类目标和单类绝缘子目标的宽高比和占画幅比方面存在较大差异,为了训练出适应航拍图像中绝缘子的检测模型,需要对RPN的锚点框进行初始化,而初始化的依据就是训练集中绝缘子的标注框信息,通过聚类统计分析出标注框的尺度和宽高比,进而初始化RPN的锚点框。
1.2 改进损失函数
为了解决正样本数量太少(S正/S负≫γ,其中γ为平衡因子)容易引起训练失衡的情况,在交叉熵损失函数[14]中加入了权重系数,如公式(1),对于每张图片而言,其中正负样本的权重系数随着 S正/S负变化而动态地调整:
根据上文中边界框回归的损失函数和前后景的损失函数,可以定义改进后的RPN的优化函数,最终的损失函数仍然采用Faster RCNN中的损失函数[12], 如公式(2)所示:
式中:i是一个mini-batch中锚点的索引;pi是索引为i的锚点被预测为前景的概率,即目标的置信度,如果这个锚点为正样本,则真实值标签为1;如果这个锚点为负样本,则真实值标签为0;ti是包含4个参数的边界回归框的预测值;ti*是正样本到真实边界框需要的回归量;Lfb是用于分类出前后景的损失函数; Lreg(ti, ti*)是边界框的回归损失函数。pi*Lreg意味着只有正样本(pi*=1)才对回归损失函数起作用。用于分类和回归的层分别由{pi}和{ti}组成。这2个子网络层通过Nfb和Nreg进行归一化,并由平衡因子λ平衡两者各自的损失函数。
2 RPN结构及原理
经典的检测方法,如RCNN和Fast RCNN[15],生成检测框非常耗时,而Faster RCNN[12]则抛弃了传统的滑动窗口和seletive search方法[16-17],直接使用RPN生成检测框,极大提升了检测框的生成速度和准确性,这也是Faster RCNN最大的优势。
Faster RCNN的结构如图2所示。其中,RPN是以图像的特征图作为输入,并输出带有目标对象预测分数的一组矩形建议框[11]。
RPN实际上分为2个分支(如图3所示),上面的一条分支通过Softmax分类器对锚点框进行分类,获得前景和后景;下面的一条分支用于计算锚点边界框回归的偏移量,而最后的区域候选层则负责综合前景和边界框回归的偏移量,获得候选框,同时剔除太大和超出边界的候选框。
图2 Faster RCNN的结构
图3 RPN的结构
2.1 锚点
在每个滑动窗口位置,同时预测多个区域候选框,其中k表示每个位置的最大候选框的数量。因此,回归层具有4k个输出,编码k个框的坐标,并且分类层输出2k个评分,评分每个候选框是目标对象或不是目标对象的概率,如图4左侧所示。
图4 RPN中的锚点框
锚点位于所讨论滑动窗口的中心点,并且与尺度和纵横比相关(如图4右侧所示)。 默认情况下,使用3个尺度和3个高宽比,在每个滑动位置产生k=9个锚点框。对于大小为W×H的特征图,总共有W×H×k个锚点框。
2.2 边界框回归
边界框回归采用一种对锚点框进行微调的方法,使得候选框和标记的真实目标框更加接近。
对于窗口一般使用四维向量(x,y,w,h)来表示,分别表示窗口中心点的坐标和宽高。如图5所示,实线框P代表原始的Proposal,虚线框G代表真实目标框。边界框回归的目的是寻找一种关系使得输入的原始框P经过映射得到一个跟真实框G更加接近的回归框G。
图5 边界框回归
即:给定(Px,Py,Pw,Ph),寻找一种映射 F,使得:
式中: 输入 P=(Px, Py, Pw, Ph)是 Region Proposal层的输出,也就是RCNN中的Pool5 feature(特征向量)。
文献[5]给出一种思路, 先做平移(Δx, Δy):
由式(4)—式(9)可知, 需要学习的是 dx(P),dy(P), dw(P), dh(P)这 4 个变换。 当输入的候选框与真实目标框相差较小时(RCNN设置的是Intersection Over Union,即 IoU>0.6),可以认为这是一种线性变换,那么就可以使用线性回归来建模,对窗口进行微调,从而得到预测值G=[dx(P), dy(P),dw(P), dh(P)],这 4 个值是经过真实目标框和候选框计算得到的真正需要的平移量(tx,ty)和尺度放缩量(tw, th)。
线性回归就是给定输入的特征向量X,学习一组参数W,使得经过线性回归后的值跟真实目标框非常接近,即Y≈WX。
那么目标函数可以表示为 d*(P)=w*Φ5(P), 其中Φ5(P)是输入Proposal的特征向量,w*是要学习的参数(*表示x,y,w,h,也就是每一个变换对应一个目标函数),d*(P)是得到的预测值。要让预测值跟真实值 t*=(tx, ty, tw, th)的差距最小,得到损失函数为:
函数优化目标为:
利用梯度下降法或者最小二乘法可以得到w*。
3 RPN结构的改进
在图2的Faster RCNN示意结构图中,黑色框部分为RPN,与Fast RCNN相比,其第一阶段的候选提议框是不同的,而Fast RCNN采用的是探索式的候选提议框[14],这样的候选框提取效率相对比较低。本文基于Faster RCNN中的RPN进行改进,结构如图6所示。
与Faster RCNN中的RPN(基于VGG网络[18]提取的最后一层特征图进行第一阶段候选框的提取)相比,本文的改进方法结合ResNet网络[19]的跳层连接方式以及inception网络[20]的多尺度卷积核思想,不仅使用了VGG网络最后一层的特征图,还使用了VGG网络中的Layer2,Layer3和Layer5层的特征图进行候选框的提取[21]。其中,Layer2和Layer3分别经过如图7(a)所示的inception示意图,一次性使用多个不同尺度的卷积核来抓取多个范围不同的特征信息,并让网络自己选择需要的特征,从而消除卷积核的尺度对识别结果的影响。同时,Layer2和Layer3使用如图7(b)所示的ResNet的跳层连接思想,直接将上一层所抓取的特征信息跳层传递给下一层,不用让其每次都重新学习,而且因为使用了跳层连接的方式,避免了下采样在进行低层信息保留时,冗余信息的产生。
图6 改进后的RPN结构
图7 Inception与ResNet的结构
4 训练样本预处理
4.1 训练样本扩充
对于航拍绝缘子图像而言,存在着训练样本不足、优质样本缺乏等问题,需要对训练样本进行扩充,通过图像的旋转、镜像等方式,并结合绝缘子的3D人工图像进行样本扩充。如图8为通过3D建模生成的图像。
图8 人工合成的3D绝缘子图像
4.2 真实目标框的分析与锚点框初始化
针对绝缘子这一单一检测目标,其人工标注框的宽高比可以统计出来,如图9所示为所有标注框的宽高比分布情况,利用K-MEANS[23]方法对标注框的宽高比和尺度进行聚类统计,据此可以选择锚点框的初始比率为[1:3, 1:1, 3:1], 锚点框尺度为[120,280,460,600]。上述做法解决了训练过程中正样本较少的问题,有利于提升最终模型的准确性。
图9 数据标注框的宽高比分布情况
5 实验结果与分析
为验证改进后的RPN识别绝缘子的有效性,将其与未改进的RPN识别结果进行比较。实验采用某电力公司真实航拍绝缘子图像以及模拟3D绝缘子图像为样本集(共计22 244张,训练集200 00张,测试集2244张),如图10所示,在不同IoU重叠率下,通过对比改进前后RPN对正样本的召回率,来证明通过对真实目标框的分析以及选择锚点框的初始化是很有必要的。
图10 在测试集上验证召回率和IoU重叠率的关系
使用的服务器GPU型号为GTX 1080,使用训练集数据分别对改进前后的RPN进行训练,总共迭代次数为128 000次,在70 000次迭代之前使用的学习率为0.000 6,在70 000次迭代到100 000次迭代之间使用的学习率为0.000 3,之后的迭代使用学习率为0.000 03。图11为改进后的RPN在训练集上的loss曲线和测试集上的loss曲线,由loss曲线可知,迭代120 000次之后,测试集上的loss不再下降,这说明终止迭代的次数也是合理的。
图11 改进后的RPN在训练集上的loss和测试集上的loss曲线
在测试集(2 244张绝缘子图片)上验证评估改进前后RPN的检测精度。计算平均精度[24]时采用的重叠率为0.5,图12(a)为RPN的RP曲线,图12(b)为改进后的RPN的RP曲线。由此可以得出,改进后RPN的精度较之前提高了约5%。如图13所示为绝缘子检测效果的对比。
图12 在测试集上的绝缘子检测
图13 改进前后的RPN用于绝缘子检测的效果
6 结语
本文基于改进后的RPN对航拍图像中绝缘子进行目标检测,具有以下特点:
(1)改进后的RPN使用了Inception的多尺度的卷积核和ResNet跳层连接的思想,对检测效果有明显的提升。
(2)针对绝缘子的真实目标框进行尺度和宽高比的聚类分析,以此进行锚点框的初始化,有利于提高正样本的召回,进而有利于最终模型精度的提升。
结果表明,改进后的RPN能更准确地识别和定位绝缘子。