一种基于自适应模型集成的无人机航拍图像目标检测方法

文档序号:26434849发布日期:2021-08-27 13:32阅读:105来源:国知局
一种基于自适应模型集成的无人机航拍图像目标检测方法

本发明属于无人机航拍图像目标检测领域,具体是一种基于自适应模型集成的无人机航拍图像目标检测方法,用于对无人机航拍图像进行分析检测。



背景技术:

随着无人机技术的快速发展,配备摄像头的无人机已经可以快速部署;基于无人机航拍图像下的目标检测是计算机视觉领域中十分前沿的研究课题,由此衍生出的相关技术可以应用于农业、快递、公共安全监控和航空摄影等各个领域。

在传统的计算机视觉领域,多数基于手动提取特征加上分类器的目标检测算法已无法满足使用中人们对检测精度的要求。近几年深度学习技术包括目标检测、语义分割、实例分割等多项计算机视觉领域都取得了十分惊艳的效果,但深度学习方法结合无人机航拍图像也面临诸多挑战:无人机航拍图像相较于通用数据集图像有背景样本复杂、分辨率高、物体尺度变化大以及目标分布密集等特点,因此会影响检测器的精度;而且受到无人机飞行高度以及作业天气等影响,单一模型的性能会随着外部作业条件产生明显的波动。



技术实现要素:

本发明针对上述问题,提出了一种基于自适应模型集成的无人机航拍图像目标检测方法,利用数个深度学习目标检测模型进行集成,依据对应的数个结果,按照模型性能对边框与分数阈值进行修正,从而达到全天候全作业天气条件下,精确检测无人机航拍图像目标的目的。

所述的基于自适应模型集成的无人机航拍图像目标检测方法,具体步骤如下:

步骤一、利用目标检测技术,对特征提取网络进行训练,得到符合不同限制条件的m个检测子模型;

限制条件包括:天气条件,模型差异性,以及对大中小目标不同的敏感度等;

m大于等于2;

步骤二、无人机在同一个高度下分别进行日间作业与夜间作业的拍摄,将n个不同高度下拍摄的所有帧图像都进行标注,总共得到2*n组图像集;

标注是指:每帧图像中都包括若干目标,每个目标都分别利用边框进行标注;

2*n组图像集为a={a1,a1',a2,a2',...,an,an'};an为第n个高度下日间作业拍摄的所有帧图像的集合;an'为第n个高度下夜间作业拍摄的所有帧图像的集合;

步骤三、针对每个高度,将该高度对应的2组图像集中所有目标标注的边框面积,取平均值作为该高度下对应的高度指标,共得到n个高度指标;

高度指标集合为:r={r1,r2,…,rn};

步骤四、将2*n组带有标注信息的图像集,分别输入每个子模型进行coco测评指标的测试,得到测评表;

测评表中每个模型下,每个高度对应的日间作业或夜间作业的n组标注图像分别作为一个数据集,同一个高度下两个数据集分别对应各自的测评分数;测评分数为0到1之间的数。

步骤五、无人机在固定作业条件下飞行拍摄,得到作业区域的照片流,将每张图片分别送入m个子模型中得到该图片的m个检测结果;

每个检测结果中都包含不同个数的目标以及对应的目标边框,m个检测结果的目标边框集合为:r={r1,k1、r2,k2…,ri,ki,...,rm,km};ri,ki表示第i个子模型的检测结果中包含ki个目标边框,ri,ki={ri,1,ri,2,..ri,j,...ri,ki},ri,kj表示第i个子模型的检测结果中的第j个目标边框。

步骤六、针对当前图片q,利用m个检测结果,计算该图片q的目标边框面积平均值;计算公式如下:

其中,rai,j表示第i个子模型的检测结果中第j个目标边框的面积;

同理,得到照片流中每张图片的目标边框面积平均值;

步骤七、将当前图片q的目标边框面积平均值ra,与n个高度指标一一进行相似度比较,得到图片q的相似度集合sim;

相似度simn的计算公式如下:

ε为取值0.001的极小数。

各高度指标分别与当前图片q的ra进行相似度计算后,得到相似度集合:

sim={sim1,sim2,...,simn},

最后,从照片流中逐个选择下一张照片,再次重复与n个高度指标一一进行相似度比较,最终得到各照片对应的相似度集合。

步骤八、将照片流的每张图片分别转换为灰度图,逐张遍历各灰度图上的所有像素点,判断当前图片q上的像素点ii,j的灰度值pi,j是否小于预先设定的明暗阈值ds,如果是,将像素点ii,j判定为暗点d,否则,将像素点ii,j判定为明点d',得到图片q的明暗标志df;

明暗标志df设定为:当前灰度图中的暗点数量的占比大于等于整张图像中60%的像素区域时,将该图像的明暗标志df设为1,否则设为0。

步骤九、对各图片的相似度集合sim中所有的值按照明暗标志df匹配,得到集合simdf;

具体为:

simdf={sim1df,sim1df',sim2df,sim2df',…,simndf,simndf'}

步骤十、根据测试表以及高度指标,从集合simdf中选出与各图片当前作业条件最匹配的测试数据集编号matched_index;

计算公式如下:

matched_index=index(max(simdf))

从相似度集合sim中选择最大值,即为与当前作业条件最匹配的高度;根据明暗标志df匹配当前作业条件的日间或夜间;两个匹配都符合的编号即为matched_index。

步骤十一、针对每个图片,根据数据集编号matched_index带入m个子模型中,通过查找测评表,得到测评分数s_matched集合作为对应模型的权重;

数据集编号matched_index中包含m个数据,分别对应m个子模型,每个数据包括同一高度下的日间/夜间作业条件,对应到测评表中,各个模型对应的测评分数作为各模型的权重;

测评分数m个子模型s_matched集合为:

s_matched={s(1,matched_index)、s(2,matched_index)...,s(m,matched_index)}

步骤十二、对测评分数s_matched归一化,计算各个子模型的加权融合权重w;

具体公式为:

w={w1、w2…,wi,...,wm}

s_matchedi即为s(i,matched_index)

步骤十三、针对当前图片q利用各子模型的加权融合权重w,分别计算图片q中各目标的置信度c及各目标边框修正后的检测框,实现对航拍图像的目标检测。

算法步骤如下:

步骤1301、将当前图片q输入m个子模型中进行检测,将各子模型的检测结果r中所有检测的目标边框都添加到列表listb中;

检测结果中各目标边框都包括目标的左上角坐标(x1,y1),右下角坐标(x2,y2)以及置信度得分c;

步骤1302、将各目标边框按照检测结果的置信度得分c降序排列在列表listb中;

步骤1303、建立空列表listl和空列表f,并将listb中的第一个目标边框q0分别存入两个表中作为初始值;

列表f为n行1列的表格,l为n行m列的表格;

步骤1304、循环遍历列表listb,逐个选择各目标边框,并判断当前目标边框q1是否以交并比0.55为阈值在列表f中找到匹配,如果没有,将当前遍历的边框q1添加到listl和列表f中,并且将当前边框q1从列表listb中删除,继续选择下一个边框q2重复判断;如果有匹配的边框,选出列表f中与当前边框q1匹配的边框的行索引号index_match,并将当前边框q1添加到listl中对应的第index_match行,将当前遍历边框q1从列表listb中删除,继续选择下一个边框q2重复判断;直到listb为空集。

最终列表f中保留的是当前图片q中每个目标边框的去冗余后最优的集合;每一行分别为一个目标边框;

理想情况下listl中保留的是:针对当前图片q中每个目标边框,经过m个子模型中会得到m个不同结果,全部保留在listl的同一行;即listl的每一行对应的是不同模型对同一个目标边框的不同描述。

步骤1305、按顺序从列表f中逐个选择目标边框,按照该框在f中的行索引index_f,将listl中对应index_f行的m个结果取出,进行目标的置信度与边框位置的修正,并且将修正结果放置于listf中index_f行,对列表中该目标值进行更新,直至当前图片q中所有目标边框选择完毕。

针对每个目标边框,融合模型的置信度计算公式为:

c=c1*w1+c2*w2+…cm*wm

cm为该目标边框在第m个子模型的置信度;

当前目标边框的位置坐标计算公式为:

(x1,y1)为当前目标边框的左上角位置坐标,根据该目标检测框在m个模型中的不同坐标计算得到;x1m为该目标检测框在第m个模型中的坐标。

(x2,y2)为当前目标边框的右下角位置坐标。

最终,得到存放于listf中的当前图片q中所有目标的边框检测。

本发明的优点在于:

一种基于自适应模型集成的无人机航拍图像目标检测方法,利用深度学习技术生成初始边框信息结果;将不同作业条件量化为照片灰度值与检测边框平均面积的函数,在训练过程中通过构建不同作业条件下的测试集样本获得不同模型的测试评分,在使用过程中通过照片的灰度值与初始边框平均面积定位到类似环境下不同模型的测试得分,进而自适应获得模型集成权重,该权重以多个模型在当前作业条件下最优模型为主导,其余模型为补充,提升召回率的同时也可以在一定程度上提升模型的精确度,且飞机在不同的作业条件下,模型会自适应的寻找最优模型,让其作为主导模型,并且自适应的修改融合权重,保证当前融合权重为当前飞行作业条件下的最优权重,从而达到全天候全作业天气条件精确检测无人机航拍图像目标的目的,该算法计算量小、不需要对深度学习网络进行修改、普适性好,适用于大部分场景的无人机航拍目标检测算法。

附图说明

图1为本发明一种基于自适应模型集成的无人机航拍图像目标检测方法的流程图;

图2为本发明对某张图像标注了若干目标边框的示意图;

图3为本发明对当前图片进行集成模型计算各目标的置信度c及修正边框后的结果图;

图4为本发明与现有技术在对无人机航拍图像的检测性能比较图。

具体实施方式

下面结合附图对本发明进行进一步详细说明。

本发明在python中进行仿真实验,通过无人机航拍图像目标检测技术获取初始检测信息,结合不同作业条件下的测试集样本获得不同模型的测试评分,对初始检测信息进行融合,提出一种自适应模型集成的无人机航拍图像目标检测方法,计算以当前作业条件下最优模型为主导,其余模型为补充的融合权重对各个模型进行自适应集成,从而达到全天候全作业天气条件精确检测无人机航拍图像目标的目的。

如图1所示,具体步骤如下:

步骤一、利用目标检测技术,对特征提取网络进行训练,得到符合不同限制条件的m个检测子模型;

限制条件包括:天气条件,模型差异性,以及对大中小目标不同的敏感度等;

m大于等于2;

通过对无人机航拍图像中的待检测目标,利用替换深度学习特征提取网络的方法以及打乱训练数据集的方法,训练得到m个针对本次作业任务的基于深度学习的目标检测模型。

步骤二、无人机在同一个高度下分别进行日间作业与夜间作业的拍摄,将n个不同高度下拍摄的所有帧图像都进行标注,总共得到2*n组图像集;

标注是指:每帧图像中都包括若干目标,每个目标都分别利用边框进行标注;如图2所示。

2*n组图像集为a={a1,a1',a2,a2',...,an,an'};an为第n个高度下日间作业拍摄的所有帧图像的集合;an'为第n个高度下夜间作业拍摄的所有帧图像的集合;

除了光照条件影响以外,飞行的高度同样会影响目标检测的精度,具体在航拍图像中,航拍高度越高,目标在图像中所占像素越少,目标框的面积也越小,按照目标框面积与飞行高度的对应关系,在上述两个光照条件中分别不同高度进行数据采集,共得到2*n组测试图像。

步骤三、针对每个高度,将该高度对应的2组图像集中所有目标标注的边框面积,取平均值作为该高度下对应的高度指标,共得到n个高度指标;

高度指标集合为:r={r1,r2,...,rn};

步骤四、将2*n组带有标注信息的图像集,分别输入每个子模型进行标准coco测评指标的测试,得到测评表;

测评表中包括m*n*2组测试得分;每个子模型下,每个高度对应的日间作业或夜间作业的n组标注图像分别作为一个数据集,同一个高度下两个数据集分别对应各自的测评分数;测评分数为0到1之间的数。以s(i,j,z)表示明暗度为z的状态下第i个子模型在测试数据j上的评分,其中i∈{1,2…m},j∈{1,2…2n},z∈{0,1};在得到s(i,j,z)之后就可以得到各个模型在不同光照作业条件下,不同飞行高度条件下检测的性能,为后续模型融合时找出当前作业条件最佳模型获得评判依据。

测评表格式如下:

步骤五、无人机在固定作业条件下利用摄像头对作业区域进行拍摄,得到作业区域的照片流in,将每张图片分别送入m个子模型中得到该同一图片的m个检测结果;

每个检测结果中都包含不同个数的目标以及对应的目标边框,m个检测结果的目标边框集合为:r={r1,k1、r2,k2...,ri,ki,...,rm,km};ri,ki表示第i个子模型的检测结果中包含ki个目标边框,ri,ki={ri,1,ri,2,..ri,j,...ri,ki},ri,kj表示第i个子模型的检测结果中的第j个目标边框。

步骤六、针对当前图片q,利用m个检测结果,计算该图片q的目标边框面积平均值;计算公式如下:

其中,rai,j表示第i个子模型的检测结果中第j个目标边框的面积;

同理,得到照片流中每张图片的目标边框面积平均值;

步骤七、将当前图片q的目标边框面积平均值ra,与n个高度指标一一进行相似度比较,得到图片q的相似度集合sim;

相似度simn的计算公式如下:

ε为取值0.001的极小数。

各高度指标分别与当前图片q的ra进行相似度计算后,得到相似度集合:

sim={sim1,sim2,...,simn},

最后,从照片流中逐个选择下一张照片,再次重复与n个高度指标一一进行相似度比较,最终得到各照片对应的相似度集合;根据相似度之后,便可以推测当前飞机的飞行高度;在推测出飞行高度之后,需要确定当前作业条件还需要得知目前的天气状况为白天还是黑夜。

步骤八、将照片流的每张图片分别转换为灰度图,逐张遍历各灰度图上的所有像素点,判断当前图片q上的像素点ii,j的灰度值pi,j是否小于预先设定的明暗阈值ds(darkscore),如果是,将像素点ii,j判定为暗点d;否则,将像素点ii,j判定为明点d',遍历结束之后得到图片q的明暗标志df(darkflag);

明暗标志df计算公式如下:

df设定为:当前灰度图中的暗点数量的占比大于等于整张图像中60%的像素区域时,将该图像的明暗标志df设为1,否则设为0。将df作为s(i,j,z)中z的取值,从而判断当前作业的天气光照情况。

步骤九、对各图片的相似度集合sim中所有的值按照明暗标志df匹配,得到集合simdf;

利用df标识符取出对应作业时间状态下的相似度集合,在此集合中只确定了飞行高度条件还需要将光照条件带入集合,筛选出当前光照条件下的条件相似度,带入df作为光照条件相似度判断依据,最终得到:

simdf={sim1df,sim1df',sim2df,sim2df',...,simndf,simndf'}

步骤十、根据测试表以及高度指标,从集合simdf中选出与当前图片当前作业条件最匹配的测试数据集编号matched_index;

确定了df以及ra的值后,能进一步构建出当前飞行作业的光照情况以及飞行的高度情况,选择当前作业条件下的主导模型从而获取模型融合时的作业条件权重。计算公式如下:

matched_index=index(max(simdf))

从相似度集合sim中选择最大值,即为与当前作业条件最匹配的高度;根据明暗标志df匹配当前作业条件的日间或夜间;两个匹配都符合的编号即为matched_index。

步骤十一、针对每个图片,根据数据集编号matched_index带入m个子模型中,通过查找测评表,得到测评分数s_matched集合作为对应模型的权重;

数据集编号matched_index中包含m个数据,分别对应m个子模型,每个数据包括同一高度下的日间/夜间作业条件,对应到测评表中,各个模型对应的测评分数作为各模型的权重;

测评分数m个子模型s_matched集合为:

s_matched={s(1,matched_index)、s(2,matched_index)...,s(m,matched_index)}

步骤十二、对测评分数s_matched归一化,计算各个子模型的加权融合权重w;

为了保留高分评分结果降低低分评分结果对融合的影响,选用softmax函数作为归一化函数,从而加强高分结果降低低分结果的影响。具体公式为:

w={w1、w2...,wi,...,wm}

s_matchedi即为s(i,matched_index)

在softmax函数的作用下,可以放大评分值差异,使得评分越高的模型越能够占据主导地位,亦可降低非主导模型低置信度结果对最终结果的影响从而提升模型的精度。

步骤十三、针对当前图片q利用各子模型的加权融合权重w,分别计算图片q中各目标的置信度c及各目标边框修正后的检测框,实现对航拍图像的目标检测。

算法步骤如下:

步骤1301、将当前图片q输入m个子模型中进行检测,将各子模型的检测结果r中所有检测的目标边框都添加到列表listb中;

检测结果中各目标边框都包括目标的左上角坐标(x1,y1),右下角坐标(x2,y2)以及置信度得分c;

步骤1302、将各目标边框按照检测结果的置信度得分c降序排列在列表listb中;

步骤1303、建立空列表listl和空列表f,并将listb中的第一个目标边框q0分别存入两个表中作为初始值;

列表f为n行1列的表格,l为n行m列的表格;

步骤1304、循环遍历列表listb,逐个选择各目标边框,并判断当前目标边框q1是否以交并比(iou)0.55为阈值在列表f中找到匹配,如果没有,将当前遍历的边框q1添加到listl和列表f中,并且将当前边框q1从列表listb中删除,继续选择下一个边框q2重复判断;如果有匹配的边框,选出列表f中与当前边框q1匹配的边框的行索引号index_match,并将当前边框q1添加到listl中对应的第index_match行,将当前遍历边框q1从列表listb中删除,继续选择下一个边框q2重复判断;直到listb为空集。

最终列表f中保留的是当前图片q中每个目标边框的去冗余后最优的集合;每一行分别为一个目标边框;

理想情况下listl中保留的是:针对当前图片q中每个目标边框,经过m个子模型中会得到m个不同结果,全部保留在listl的同一行;即listl的每一行对应的是不同模型对同一个目标边框的不同描述。

当前遍历框在listl中存放的位置索引与当前遍历框和f中匹配边框的索引一致。listl中同一索引可能存放多个预测框信息,需根据listl中同一索引index的多个框信息更新对应f中索引index存放的预测值;

步骤1305、按顺序从列表f中逐个选择目标边框,按照该框在f中的行索引index_f,将listl中对应index_f行的m个结果取出,进行目标的置信度与边框位置的修正,并且将修正结果放置于listf中index_f行,对列表中该目标值进行更新,直至当前图片q中所有目标边框选择完毕。

针对每个目标边框,融合模型的置信度计算公式为:

c=c1*w1+c2*w2+…cm*wm

cm为该目标边框在第m个子模型的置信度;

当前目标边框的位置坐标计算公式为:

(x1,y1)为当前目标边框的左上角位置坐标,根据该目标检测框在m个模型中的不同坐标计算得到;x1m为该目标检测框在第m个模型中的坐标。

(x2,y2)为当前目标边框的右下角位置坐标,如图3所示,为对当前图片的卡车目标进行置信度的计算以及修正边框结果。

最终,得到存放于listf中的当前图片q中所有目标的边框检测。

输出的列表f包含了所有模型的结果的并集,提升了整体模型的召回率,在精度方面,虽然提升了召回率,但是非主导模型或主导模型中置信度较低的检测结果,会因为加权融合的计算方法进一步压低置信度,从而保证了融合模型大幅度提升召回率的同时提升精度,并且融合模型的边框同样会以主导模型结果为主,非主导模型为修正量再一次得到修正,使得所有模型的融合结果更加精准,从而达到全天候全作业天气条件精确检测无人机航拍图像目标的目的。

通过与现有算法相比,如图4所示,可知,本发明更能精确检测无人机航拍图像目标。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1