基于CenterNet的用于无人机巡检的挖掘机检测方法
技术领域
本发明属于目标检测技术领域,具体涉及基于CenterNet的用于无人机巡检的挖掘机检测方法。
背景技术
近年来,挖掘机施工作业引起的管道事故时有发生。如何高效地检测管道网络附近的挖掘机在改善管道风险管理中起着重要的作用。
现有挖掘机检测方法主要是利用无人机在高空对管网进行航拍,对挖掘机进行定期或随机流动性的检测,以便能够及时发现挖掘机的施工。其中,具体的挖掘机检测原理为:通过航拍获取带有挖掘机目标对象的图片制作成数据集,对数据集利用卷积神经网络的相关算法达到挖掘机检测的效果。例如,申请号为201811351933.X的专利文献公开了基于深度学习用于高空巡检下的挖掘机检测方法,引入深度神经网络进行目标预测,适用于较大规模的数据训练,通过原始图像的输入,获取图像特征,通过训练得到的模型能准确地对视野范围内的目标挖掘机进行精准的识别。
然而,面对复杂的航拍环境,且航拍图像中挖掘机的尺寸较小,复杂的图像背景对挖掘机的识别存在一定的影响,导致难以高效准确地检测识别出挖掘机的存在。
发明内容
针对现有技术中存在的上述不足之处,本发明提供基于CenterNet的用于无人机巡检的挖掘机检测方法。
为了达到上述发明目的,本发明采用以下技术方案:
基于CenterNet的用于无人机巡检的挖掘机检测方法,包括以下步骤:
S1、训练数据集的建立;
收集具有挖掘机的历史图像,对历史图像中的目标进行标注,建立训练数据集;其中,历史图像中的目标包括挖掘机以及挖掘机的车身和铲斗;
S2、CenterNet的训练;
将训练数据集输入CenterNet,提取feature map,接着对feature map进行卷积以获取车身和铲斗的热力图预测,然后分别进行全局最大池化和全局平均池化处理,再进行维度拼接、卷积和sigmoid激活层后,获取空间注意力特征图,最后将空间注意力特征图与feature map相乘后再进行卷积得到网络输出,并结合目标标注计算损失函数,通过反向传播算法最小化损失函数以优化网络参数;
S3、挖掘机检测;
通过无人机采集航拍图像,对航拍图像进行图像分块得到数个图像区块,各图像区块分别输入训练后的CenterNet进行挖掘机检测。
作为优选方案,所述步骤S2中,CenterNet的训练过程中,根据训练数据集中真实的目标标注生成标签图,具体通过
将历史图像中的目标中心关键点(p
x,p
y)映射到下采样后的标签图的
上,采用高斯核
将关键点分布到尺寸为x×y的c通道特征图上,c代表目标类别,R为下采样因子,σ
p为与目标大小相关的标准差,x和y为高斯核函数中的坐标值;
CenterNet训练的损失函数包括中心关键点类别预测损失Lk、位置偏移损失Loff和目标宽高的损失Lsize,分别使用focal loss和L1 loss进行计算,得到:
其中,N表示关键点的个数,α和β为focal loss的超参数,
和
为预测的中心关键点、位置偏移和目标宽高,Y
xyc、
和s
k为对应的真实值;
则最终的损失函数Ldet可表示为:
Ldet=Lk+λsizeLsize+λoffLoff
将车身和铲斗的热力图预测与预先标注好的车身和铲斗的标签图计算损失函数Lbody和Lbucket:
将Lbody和Lbucket与最终的损失函数Ldet进行联合优化,得到优化后的损失函数Ldet-all:
Ldet-all=Lk+λsizeLsize+λoffLoff+λbodyLbody+λbucketLbucket
其中,λsize、λoff、λbody、λbucket均为设定的权重超参数;
通过反向传播算法来最小化优化后的损失函数以优化网络参数,最后将优化后的损失函数Ldet-all替换为最终的损失函数Ldet。
作为优选方案,所述步骤S1中,还对训练数据集进行数据增强操作。
作为优选方案,所述数据增强操作包括尺度变化和旋转。
作为优选方案,所述步骤S3中,各图像区块之间具有重叠区域。
作为优选方案,所述步骤S3,还包括:
将各图像区块输入训练后的CenterNet得到的检测结果进行整合,并通过非极大值抑制算法进行去重,得到航拍图像的挖掘机检测。
作为优选方案,所述非极大值抑制算法进行去重,包括以下步骤:
S31、将检测结果的所有检测框均标记为未处理;
S32、从未处理的检测框中选出置信度得分最高的检测框A,然后逐一计算其余各检测框B与检测框A的重叠度,重叠度采用交并比IoU表示:IoU(A,B)=(A∩B)/(A∪B);
S33、将IoU大于预设阈值的检测框删除,将A标记为已处理;
S34、判断是否有未处理的检测框;若是,则转至步骤S32;若否,则结束。
作为优选方案,所述步骤S3中,在检测到挖掘机后,执行报警操作。
本发明与现有技术相比,有益效果是:
(1)本发明为挖掘机的车身和铲斗设计了空间注意力机制,并在传统目标检测数据集的格式上新增相应的标注;结合标注热力图对空间注意力机制进行训练,使其分别聚焦于车身和铲斗,实现对输入图像中空间位置的重要性的建模;充分利用挖掘机的视觉特性,通过使网络聚焦于目标的重要区域,减少无关背景对检测结果的影响,进而提升检测性能。
(2)本发明采用基于非极大值抑制算法的图像分块检测方法,为神经网络保留了较大的分辨率输入,有利于提升检测性能。
(3)本发明采用的CenterNet不需要手动设定锚框,且实时性强,计算量小,节约计算资源,适用于无人机巡检的场景。
附图说明
图1是本发明实施例1的基于CenterNet的用于无人机巡检的挖掘机检测方法的流程图;
图2是本发明实施例1的挖掘机检测的流程图;
图3是本发明实施例1的CenterNet训练的流程图;
图4是本发明实施例1的航拍图像的图像分块示意图;
图5是本发明实施例1的航拍图像的图像分块检测示意图;
图6是本发明实施例1的非极大值抑制算法进行去重的流程图;
图7是本发明实施例1的非极大值抑制算法进行去重前后的挖掘机检测对比图。
具体实施方式
为了更清楚地说明本发明实施例,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
实施例1:
如图1所示,本实施例的基于CenterNet的用于无人机巡检的挖掘机检测方法,包括以下步骤:
S1、训练数据集的建立;
收集具有挖掘机的历史图像,对历史图像中的目标进行标注,建立训练数据集;其中,历史图像中的目标包括挖掘机以及挖掘机的车身和铲斗;
具体地,历史图像为无人机巡检采集的历史航拍图像,将历史图像中的挖掘机手动标注出来,还将历史图像中的挖掘机的车身和铲斗分别标注出来,制作为训练数据集,从而实现训练数据集的建立。
S2、CenterNet的训练;
具体地,如图2所示,将训练数据集输入CenterNet,提取feature map,接着对feature map进行卷积以获取车身和铲斗的热力图预测,然后分别进行全局最大池化和全局平均池化处理,再进行维度拼接、卷积和sigmoid激活层后,获取空间注意力特征图,最后将空间注意力特征图与feature map相乘后再进行卷积得到网络输出,并结合目标标注计算损失函数,通过反向传播算法最小化损失函数以优化网络参数。
CenterNet是一种目标检测方法,具有不需要手动设定锚框(anchor box)、实时性强的特点,其舍弃传统的锚框思路,将目标检测问题变成了一个关键点估计问题,将图像传入全卷积网络,得到一个热力图,热力图峰值点即目标中心点,每个特征图的峰值点位置预测了目标的位置偏移和宽高信息。
在CenterNet的网络训练过程中,根据训练数据集中真实的目标标注生成标签图,标签图中每个点的范围是0~1,1代表目标的中心关键点。具体地,通过
将原始历史图像中的目标中心关键点(p
x,p
y)映射到下采样后的标签图的
上,采用高斯核
将关键点分布到尺寸为x×y的c通道特征图上。
其中,c代表目标类别,R为下采样因子,σp为与目标大小相关的标准差,x和y为高斯核函数中的坐标值;
CenterNet训练的损失函数分为三个部分,包括:中心关键点类别预测损失Lk、位置偏移损失Loff和目标宽高的损失Lsize,分别使用focal loss和L1 loss进行计算,得到:
其中,N表示关键点的个数,α和β为focal loss的超参数,
和
为预测的中心关键点、位置偏移和目标宽高,Y
xyc、
和s
k为对应的真实值;
最终的损失函数为上述三项损失的加权和,则最终的损失函数Ldet可表示为:
Ldet=Lk+λsizeLsize+λoffLoff
其中,λsize、λoff均为设定的权重超参数;
本实施例考虑到挖掘机主要由车身body和铲斗bucket组成这一视觉特性,基于空间注意力机制进行了CenterNet网络的改进,在上述最终的损失函数的基础之上,结合目标标注计算损失函数,具体包括:
对于神经网络backbone提取的feature map,分别使用两组卷积Conv layer进行车身和铲斗热力图预测Heatmap,并与预先标注好的车身和铲斗的标签图计算损失函数Lbody和Lbucket:
其中,Lbody/bucket中的“/”的含义为“或”。
将Lbody和Lbucket与最终的损失函数Ldet进行联合优化,得到优化后的损失函数Ldet-all:
Ldet-all=Lk+λsizeLsize+λoffLoff+λbodyLbody+λbucketLbucket
其中,λsize、λoff、λbody、λbucket均为设定的权重超参数;
经过上述两组卷积后再经过基于通道的全局最大池化(global max pooling,即Maxpool)和全局平均池化(global average pooling,即AvgPool)处理,再进行通道方向的维度拼接(concatenate)、卷积(Conv layer)和sigmoid激活层后,获取空间注意力(spatial attention)特征图,与原feature map相乘,再经卷积(Conv layer)后得到网络输出,将网络输出结合目标标注计算得到优化后的损失函数Ldet-all,通过反向传播算法最小化优化后的损失函数以优化网络参数,最后将优化后的损失函数Ldet-all替换为最终的损失函数Ldet,得到训练后的CenterNet,以便进行后续的挖掘机检测。
S3、挖掘机检测;
具体地,如图3所示,通过无人机采集原始航拍图像,对航拍图像进行图像分块得到数个图像区块,各图像区块分别输入训练后的CenterNet进行挖掘机检测,并将各图像区块输入训练后的CenterNet得到的区块检测结果进行整合,并通过非极大值抑制算法NMS进行去重,得到最终检测结果,即航拍图像的挖掘机检测。
具体地,由于无人机可搭载的计算模块计算能力有限,因此需要将航拍的原始图像的分辨率降低后输入神经网络,才能实现实时的目标检测。然而,由于航拍时无人机离地面距离较远,挖掘机目标本身较小,因此降低分辨率会使得检测性能下降。为了提升最终的挖掘机检测效果,本实施例使用基于非极大值抑制算法(Non-Maximum Suppression,NMS)的图像分块检测方法。
对于原始的航拍图像,为了降低分辨率的损失,将其分为数个图像区块,分别输入CenterNet进行检测,并进行检测结果整合和基于NMS的去重。例如,如图4所示,将航拍图像分为四个图像区块,各图像区块之间具有少量的重叠区域,以避免分块后产生的漏检。各图像区块分别输入训练后的CenterNet进行挖掘机检测,检测结果如图5所示。
如图6所示,本实施例采用非极大值抑制算法进行去重,包括以下步骤:
S31、将检测结果的所有检测框均标记为未处理;
S32、从未处理的检测框中选出置信度得分最高的检测框A,然后逐一计算其余各检测框B与检测框A的重叠度,重叠度采用交并比IoU表示:IoU(A,B)=(A∩B)/(A∪B);
S33、将IoU大于预设阈值的检测框删除,将A标记为已处理;
S34、判断是否有未处理的检测框;若是,则转至步骤S32;若否,则结束。
经过NMS去重后,得到整幅航拍图像的挖掘机检测结果,如图7所示,左侧的图为去重前的挖掘机检测结果,右侧的图为去重前的挖掘机检测结果。
实施例2:
本实施例的基于CenterNet的用于无人机巡检的挖掘机检测方法与实施例1的不同之处在于:
在训练数据集制作完成后,还对训练数据集进行数据增强操作,数据增强操作包括尺度变化和旋转等操作,提升网络训练的效率。
其他步骤可以参考实施例1。
实施例3:
本实施例的基于CenterNet的用于无人机巡检的挖掘机检测方法与实施例1的不同之处在于:
在检测到挖掘机后,执行报警操作,以便巡检人员及时阻止挖掘机的施工。
其他步骤可以参考实施例1。
以上所述仅是对本发明的优选实施例及原理进行了详细说明,对本领域的普通技术人员而言,依据本发明提供的思想,在具体实施方式上会有改变之处,而这些改变也应视为本发明的保护范围。