基于深度学习与one-hot编码的输电线路目标纠偏方法和系统
技术领域
本发明涉及无人机巡检技术,属于G06T一般的图像数据处理或产生领域,尤其涉及一种基于深度学习与one-hot编码的输电线路目标纠偏方法和系统。
背景技术
无人机自主飞行进行输电线路巡检正在逐步取代人工爬塔巡检和人工操作无人机巡检。
然而实际作业时,经常会由于人工操作精确度不足、GPS或RTK等位置信号不准确、信号强度差、信号丢失,或空中风力影响悬停位置等问题,错过应该精确拍照的点位,造成巡检任务无法圆满完成。
发明内容
发明目的:提供一种基于深度学习与one-hot编码的输电线路目标纠偏方法,对每个巡检点位中的关键零件进行检测识别,并通比较过该零件的中心点位置与当前画面中心点位置,获取纠偏所需要的偏移量。
技术方案:
提供一种基于深度学习与one-hot编码的输电线路目标纠偏方法,包括如下步骤:
步骤1、训练检测模型,使其在预定的训练轮数下损失函数最小;
步骤2、部署所述检测模型至无人机边缘端设备;
步骤3、获取无人机的视频流,从所述视频流中获得若干帧图片,并通过缩放变换为预定尺寸的图像,将所述预定尺寸的图像进行像素值归一化处理;
步骤4、将所述预定尺寸的、归一化的图像输入检测模型进行检测;
步骤5、检测模型输出目标零件矩形检测框的中心位置,并计算当前画面中心位置,比较两者的差异,得到偏移量;
步骤6、基于所述偏移量计算云台或无人机在水平和垂直方向上需要转动的角度或者移动距离,并基于上述角度或移动距离调整云台或无人机航姿直至偏移量符合预期。
根据本发明的一个方面,所述步骤3中的缩放变换具体为:
其中 frame为原始视频帧,resolution为模型需要的图像尺寸,f resize 为图像缩放函数,input_frame为缩放后输入模型的视频帧。
根据本发明的一个方面,所述损失函数L为:
其中,yi表示目标的真实类别,f(xi) 表示由模型预测出的目标类别,
Lreg为检测框回归损失函数,Lcls为检测框分类损失函数;
检测框回归损失函数Lreg由Smooth L1 损失函数和IoU损失函数共同组成;
以上两式中的f(x)代表由模型输出的预测检测框,y代表真实目标框,形式均为(x,y,w,h);intersection表示两个框的交集面积,union表示两个框的并集面积。
根据本发明的一个方面,所述偏移量计算过程具体如下:
m,n为目标零件矩形检测框的横坐标和纵坐标,u、v为当前画面中心的横坐标和纵坐标;最终输出为(offsetm, offsetn), 即为目标零件的中心距离画面中心在水平和垂直方向上的偏移量,以像素为单位。
根据本发明的一个方面,步骤6中,计算转动的角度或者移动距离的过程如下:
其中h为像素单位向角度换算的映射函数,g为像素单位向距离单位的映射函数。
根据本发明的一个方面,还包括步骤7:
若偏移量小于等于阈值,则发送拍照指令,完成拍照作业;
并判断是否存在下一航点,若存在则飞至下一航点;
若不存在,则结束任务,返航。
根据本发明的一个方面,还包括步骤8:
在每一巡检周期完成后,纠偏信息上传至控制平台,更新航点位置信息,提高准确度,所述纠偏信息包括巡检点信息,以及该巡检点对应的纠偏量。
根据本发明的一个方面,所述步骤7中,飞至下一航点的具体过程如下:
在初始时,构建飞行轨迹路径:
确定每个待检点的待检目标,以待检目标为球心,基于空间干扰物和拍摄距离确定直径,以所述球心和直径构建可检测球面,并通过约束条件在该可检测球面上获取可检测域,从可检测域中确定若干航点位置;求取相邻可检测球面的共同切面,该共同切面向两侧延伸预定距离,形成可飞行路径;连接各个飞行路径,获得连续的飞行轨迹;
基于已构建的飞行轨迹,飞行至下一航点。
进一步的,提供一种基于深度学习与one-hot编码的输电线路目标纠偏系统,包括:处理器以及存储有计算机程序指令的存储器;所述处理器读取并执行所述计算机程序指令,以实现上述方法。
提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。
有益效果:本发明可以高效快速对图像进行纠偏处理,保证任务高质量完成。
附图说明
图1是本发明的流程图。
图2是本发明的结构拓扑图。
图3是本发明某一实施例的示意图。
图4是本发明另一实施例的示意图。
图5是本发明又一实施例的示意图。
1为飞行轨迹,2为可检测球面,3为可飞行路径。
具体实施方式
结合图1、图2、图3和图4,详细描述本发明的技术细节和原理。
如图1所示,对于每个巡检点而言,当无人机到达预定区域时,在航点悬停。通过信息采集单元拍摄图像或视频,检测该航点的目标零件。对上述图像或者从视频中截取的视频帧图像进行检测,判断目标零件中心与画面中心在水平方向和/或垂直方向上的偏移量是否大于阈值,如果大于阈值,则说明目标零件偏离图像中心较远,需要调整拍摄姿态,这时,通过调整云台来实现姿态调整,从而获得预期的拍摄角度,得到质量较高的图片。如果没有大于阈值,则发送拍照指令进行拍摄,随后判断是否存在下一航点,如果没有航点,则结束任务,返回。如果存在下一航点,则飞行至下一航点,在该航点悬停,并重复上述步骤。
在本实施例中,通过对视频帧的预处理和判断,初步检测图像或视频是否符合相关要求,如不符合相关要求,进行纠偏处理,直至图像符合要求,本方案避免返程后发现图像不符合规定,而需要重新拍摄的情况,提高了巡线的效率。
在进一步的实施例中,对判断图像是否存在偏斜的具体过程如下。
深度学习检测模型对当前画面中目标零件进行检测,同时需要排除其他同类型零件和其他种类零件的检测结果。检测算法对目标的检测结果为矩形检测框,由此可以计算该矩形检测框的中心点位置(m, n)。当前画面分辨率为固定值,因此也可以计算当前画面的中心位置(u, v)。获得检测框中心点和画面中心点的坐标,即可计算当前被检测到
的零件距离画面中心的距离,即在水平方向和垂直方向上的偏移量:
若此时偏移量均小于设定的阈值,则认为目标零件已经处于画面中心,可以进行拍摄任务。若水平或/和垂直方向的偏移量仍然大于阈值,则对云台俯仰角度或/和水平角度进行调整,直到偏移量小于阈值,云台的调整动作结束,进行拍照任务。当巡检任务中的所有航点均执行完拍摄任务,则视该次巡检任务结束。
在进一步的实施例中,对目标检测任务进行网络模型搭建的过程如下:
为适应无人机飞行时对目标零件进行检测识别的实时性,设计了轻量化的网络模型:其中,SPP特征金字塔结构未采用任何卷积计算,仅使用最大值池化操作,有效地增加了backbone特征的感受野,并减少了模型计算量,以达到减少运算时间、加速运算的目的。
该SPP特征金字塔结构采用最大池化替代卷积操作,有如下几个优点:
对应较大分辨率的骨干网络输出,亦采用尺寸较大的池化滑动窗口:对应第二、第三、第四层骨干网络输出时,采用了13*13、9*9和5*5的池化滑动窗口;相比于传统的特征金字塔结构,卷积核的大小通常取3*3或5*5,而在该设计中,池化的滑动窗口尺寸比卷积的尺寸更大,可以获得更大的感受野,更容易提取目标的整体特征;
使用最大池化进行特征融合时,由于池化是没有参数参与计算的,在该SPP结构中不需要存储任何计算参数;而如果使用传统特征金字塔结构,即使每个骨干网络的输出层仅通过一个卷积层,每个卷积层的参数量也有 k*k*ic*oc个,其中k表示卷积核的尺寸,ic表示输入的特征向量的通道数,oc表示输出的特征向量的通道数。而通过池化进行特征融合,其参数量为0,大大减少了整个模型的参数量,从而达到了轻量化模型设计加速模型运算的目的。
换句话说,检测模型包括用于提取特征的四级骨干网络单元、用于提取固定大小特征的空间金字塔池化单元(SPP,Spatial Pyramid Pooling)和用于输出结果的检测头。通过设计更大的池化窗口,获得更大的感受野。
由于无人机在空中飞行时只能允许针对画面中的一个目标进行纠偏,而在实际操作中,画面中有可能出现多个种类的零件,以及多个同种类的零件。所以在模型训练的过程中,我们使用one-hot独热编码进行训练,即只将画面中最大的零件样本作为正样本,其他的零件均作为负样本。
具体如图4所示,在该画面中,共出现了四个绝缘子串。训练中我们只需要针对当前画面中最大的绝缘子串进行拟合,则该绝缘子串的分类标注为1,其他三个绝缘子串的分类标注为0。当检测网络进行训练时,该张图像的one-hot独热编码即为[1, 0, 0, 0],即只有最大的目标为正样本,其余目标为负样本。经过这样的one-hot独热编码,网络在经过训练后会自动学习到在画面中寻找最大的样本,从而达成巡检中自动过滤其他零件的目的。
整体流程如下:
首先,无人机云台摄像头获取视频流,从视频流中提取视频帧;所述视频帧通过缩放变换为模型需要的图像尺寸,并对像素值进行归一化处理,
其中 frame为原始视频帧,resolution为模型需要的图像尺寸,fresize为图像缩放函数,input_frame为缩放后输入模型的视频帧;
缩放和归一化后的视频帧输入模型,开始检测任务,其损失函数为: (1)
其中Lreg为检测框回归损失函数,Lcls为检测框分类损失函数;
(2)
检测框回归损失函数由SmoothL1损失函数和IoU损失函数共同组成; (3)
(4)
以上两式中的f(x)代表由模型输出的预测检测框,y代表真实目标框,形式均为(x,y,w,h);intersection表示两个框的交集面积,union表示两个框的并集面积;
(5)
其中yi表示目标的真实类别,f(xi) 表示由模型预测出的目标类别。
接着,训练该检测模型,使得其在一定的训练轮数下损失函数最小:
(6)
x表示输入图像,θ表示模型参数。
随后,计算模型输出的目标零件矩形检测框的中心位置(x,y), 并计算当前画面中心(u,v), 比较二者的差异:
(7)
最终输出为(offsetx, offsety), 即为目标零件的中心距离画面中心在水平和垂直方向上的偏移量,以像素为单位;
通过换算可以得知云台或无人机需要在水平和垂直方向上需要转动的角度或移动距离: (8)
其中h为像素单位向角度换算的映射函数,g为像素单位向距离单位的映射函数。
最终,无人机主控单元获得Angcam或Distdrone后控制云台或无人机航姿,取得如图
3的纠偏效果。
需要说明的是,在初次执行时,训练检测模型的过程是在采集图片后进行。在训练完成后,将得到的模型直接部署至无人机上,可以直接对无人机采集的视频流中的视频帧进行处理,而无需再次训练。因此,在执行的时候,上述步骤可以调整。同时,在训练的过程中,对目标零件进行独热编码后,在后续检测过程中,能够在视频帧中自动寻找最大的样本,过滤掉其他零件。
即将模型部署至无人机后,对无人机采集的视频流的每一视频帧进行图像缩放,调整至符合检测模型要求的预定尺寸,然后将缩放后的图像进行像素值归一化处理,从[0,255]归一化为[0,1],随后,将经过缩放和归一化处理的视频帧实时输入检测模型,进行纠偏处理,具体过程如上所述。
经过该纠偏流程后,在每个点位拍摄的照片中,关键零件均处于画面中央,图3为示例图片。在图3中,左图为纠偏前,该巡检点位重点零件 绝缘子横担侧挂点。处于画面偏左上位置,与画面中心位置在水平与垂直方向均存在偏移;右图为纠偏后,该零件已处于画面中央。
在进一步的实施例中,如果纠偏后,偏移量仍然大于阈值,则进行再次纠偏,直至符合条件。在符合条件后,发送拍照指令,完成拍照作业。在本文中,拍照的含义包括拍摄照片,也包括拍摄视频,然后从视频中抽取视频帧,作为照片。
因此,在这个实施例中,通过在航点进行判断拍摄角度是否符合要求,将不符合要求的图像或者视频筛除,在符合要求后,进行拍照存储和回传,不符合要求的照片,在现场进行检测和识别。因此通过这一过程,能够大大提高图片的质量和合格率,减少返航后,发现照片不合格,然后需要重新拍摄的情况。通过这种方式,大大提高了巡线的效率。
在进一步的实施例中,可以实现以下点位识别目标的纠偏,包括:绝缘子串、绝缘子横担侧挂点、绝缘子导线侧挂点、地线横担、全塔、塔头、塔身、塔基。
由于在电力巡线领域,现有的巡线无人机或相关设备不具有边缘计算能力,不能够现场初步判断图片的质量,因此,需要巡线完成后,在后台处理图片,一旦出现图像质量问题,需要二次巡线拍摄,大大延长了巡线的时间,影响巡线效率。而采用现有技术进行巡线操作,由于无法知晓拍摄的准确角度,图像质量合格率本身就比较低,而且由于没法准确控制拍摄参数,图像的质量较难提高。而如果采用现有的图像识别算法,则计算量非常大,耗电高,影响无人机的续航,从而导致巡线里程不高。
为此,通过上述实施例,在无人机上设置纠偏模块,通过轻量化的模型快速判断图像的质量,在提高图像拍摄质量的同时,降低耗电量,大大提高了无人机巡线的效率,减少重复巡线状况的发生。同时,减少了对人工操作的依赖,能够大大提高操作的方便程度。
在采用上述轻量化的图像纠偏模块后,为了进一步减少电量消耗,提高巡线里程和效率,进一步的优化方案如下:
在每一巡检周期完成后,纠偏信息上传至控制平台,更新航点位置信息,提高准确度,所述纠偏信息包括巡检点信息,以及该巡检点对应的纠偏量。
通过前一次或若干次的巡线,找到最佳的航点位置信息和纠偏信息,在后续的巡线过程中,无需再次处理图片,降低计算量和能耗,提高后系统整体的效率。因此,通过对控制平台的升级和优化,在无人机后续巡航或者更换无人机时,能够快速下发航点位置信息和纠偏量等纠偏信息,无需多次计算,大大提高了巡航效率。经过预定次数的迭代,获取至少一个最佳的巡检点信息和对应的纠偏量,不断优化,提高巡检的效率和质量。
例如,更换一架无人机进行巡航时,将相关的纠偏信息下发并部署更新至无人机中,无人机在巡航过程中飞至航点位置,并根据该航点位置的纠偏量调整姿态,进行拍照,而无需或者无需多次进行云台姿态调整。提高了巡航的效率和无人机管控的效率。无论是换一架无人机还是同一架无人机的后续巡航,都无需每次都进行纠偏作业,减少了纠偏过程的耗电量和时间,提高了效率。经过多次的处理,能够获取最优的巡线参数,当相关参数大于两个时,例如获得两个相对最佳的航点位置和纠偏量时,能够提供冗余巡检信息。
在更进一步的实施例中,如果后续航点位置信息和纠偏信息改变,则将新的纠偏信息更新至控制平台,从而在后续的作业中,提供新的有效信息。
在进一步的实施例中,为了进一步提高巡航里程、巡航效率和巡航质量,对纠偏过后的飞行过程进行优化。
如图5所示,在不少工况下,同一待检点,例如同一电力塔架处有多个待检目标,为了拍摄到符合质量要求的图片,需要绕电力塔架飞行,从而找到每个待检目标的最佳拍摄位置。而由于拍摄环境常常受到天气、电线的影响,没法获得达到最优的拍摄点,同时,每个检测目标进行拍摄,飞行的路径相对较远,每个目标都需要至少一次纠偏作业,因此纠偏的工作量还较大,还会影响无人机的续航。为此,进一步提供如下方案。
基于已构建的飞行轨迹,飞行至下一航点。
其中,构建能够降低飞行里程和减少纠偏工作量的飞行轨迹(飞行轨迹路径)的过程具体如下:
在初始时,构建飞行轨迹路径:
首先,确定每个待检点的待检目标,以待检目标为球心或椭球极直径,基于空间干扰物和拍摄距离确定直径或椭球的赤道半径,以所述球心和直径构建可检测球面,或者以所述椭球极直径和赤道半径构建可检测椭球面;
如图5所示,在左侧的电力塔架有3个待检目标,在右侧有2个待检目标,不同的待检目标,在空间上有一定的距离,当待检目标小于预定尺寸时,将待检目标视作待观测点,基于相机的工作距离和空间约束确定直径。例如相机的较佳工作距离为5-15米,而在8米处有电力线的障碍,则在10-15米之间选择数值,以该数值作为直径构建可检测球面。部分待检目标,即使较大,只要在预定范围内,可以选择其物理中心作为球心。
当待检目标的某一尺寸大于预定尺寸时,例如绝缘字串的长度较长,即使选择中点作为球心,构建可检测球面,也存在局部拍摄质量不高的问题。
在这种情况下:延长其长度方向,将待检目标的两个端点作为椭圆的焦点,两侧向外延长预定的长度,形成椭圆的长轴,以拍摄距离作为赤道半径(某个椭圆截面上的短轴),绕长轴旋转,形成椭球面。
通过约束条件在该可检测球面上获取可检测域,从可检测域中确定若干航点位置;
由于形成的可检测球面,并非球面上的点均是最佳拍摄点,例如在下半球面上,由于相机的拍摄角度问题,向上转动,可能会被无人机本体挡住,因此,无法形成较好的拍摄角度,在其他的拍摄区域,也可能存在遮挡或障碍等空间约束或其他约束。
因此可检测球面上的最佳检测区域,可能是局部球面,这些局部球面形成可检测域,基于可检测域计算较佳的航点位置,或者通过不同点的拍摄图像判断较佳的航点位置。形成每个待检目标对应至少两个以上的拍摄位置,以提供充足的位置,形成余量。
对于椭球面的处理,与球面的处理类似。
随后,求取相邻可检测球面的共同切面,该共同切面向两侧延伸预定距离,形成可飞行路径;
在相邻待检点(以电力塔架为例)之间,这一可飞行路径较为容易生成。在同一待检点,不同的待检目标的可检测区域之间,先通过计算不同可检测球面的切面,然后沿着垂直于该切面的方向延伸预定距离,形成可飞行路径。由于可飞行路径为一个长方体空间,因此在该长方体空间中,可以生成多个飞行线路。如果存在物理无碍,可以在长方体路径中曲线或者弧线飞行,以规避所述障碍。
同时由于可检测球面的非最佳拍摄区域,但是其可以飞行,不存在飞行障碍或者可以弧线飞行,绕过障碍,因此可以在实际路径设计中,并不影响构建可飞行路线。
接着,连接各个飞行路径,获得连续的飞行轨迹。
如图5所示,基于不同可检测球面的构建的可飞行路线,在飞行路线的端部构建连接路线,形成至少一个飞行轨迹,实现自动化巡检。
在进一步的实施例中,当相邻可检测球面存在重叠时,在重叠区域计算拍摄位置和偏移量,以实现在一个位置对不同目标进行拍摄。在这种实施方案中,通过对航点的计算,可以减少飞行距离,在一个位置,通过N-1次或者N次的偏移量,调整云台或无人机的姿态,即可实现对多个待检目标的拍摄,减少航程,N为自然数。
通过one-hot编码的方法,即使同一图片中有多个目标零件,也可以识别并将其中的一个目标作为主要目标,因此能够符合图像的处理要求。
在进一步的实施例中,在飞行路线上规划拍摄区间,在飞行的过程中,当无人机行驶至拍摄区间时,调用拍摄相关的相机和偏移量参数,进行视频拍摄,从视频数据中提取视频帧作为图像数据,进行存储。
例如,某一个待检测目标的可检测球面上存在若干个较佳拍摄角度的航点位置,将航点位置向外延伸,或者将不同的航点位置连接起来,形成拍摄区域,在该拍摄区域,相应的图像均符合要求,因此,沿着该拍摄区域飞行,可以直接进行拍摄,而无需悬停静止。因此,如果在相关的位置,需要调整相机或云台的参数,可以在达到该拍摄区域前进行调整,以保证达到拍摄区域后,能够立即进行拍摄,形成较佳的视频和图片。
也就是说,在该实施例中,较佳拍摄的航点位置,可以不用限制到某个点,而是通过构建可检测球面,并寻找可检测区域,找到若干个拍摄位置,并形成能够集较佳拍摄和较佳飞行为一体的区域,实现在飞行的同时,直接进行拍摄,而无需悬停拍摄,大大提高了巡检效率和拍摄质量。
以上详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种等同变换,这些等同变换均属于本发明的保护范围。