基于随机森林的空中移动对象识别方法与流程

文档序号:24070462发布日期:2021-02-26 14:56阅读:256来源:国知局
基于随机森林的空中移动对象识别方法与流程

[0001]
本发明属于机器学习技术领域,具体涉及一种基于随机森林的空中移动对象识别方法。


背景技术:

[0002]
随着各类空中飞行器的不断发展,飞机作为其中一种主要的类型,发挥着越来越重要的地位。因此,对空中移动对象的及时有效识别,具有重大的意义。目前国内外对空中移动对象识别的方法,主要有以下几种:

针对飞机旋转部件对雷达回波有调制作用的机理,利用最近邻分类器对飞机进行分类。

利用信息融合的方法识别出飞机型号。

利用bp神经网络。

利用传统树分类器对飞机图像进行分类。但是现有方法较少从空中移动对象的运动轨迹出发,因此对轨迹特征的挖掘与利用不够充分。同时在少数利用轨迹特征的研究中,也大多是根据与历史轨迹匹配时的相似度来进行识别与判断,对于活动轨迹中的典型行为模式也没有进行深入挖掘。


技术实现要素:

[0003]
本发明的目的在于提出一种基于随机森林的空中移动对象识别方法。
[0004]
实现本发明目的的技术解决方案为:一种基于随机森林的空中移动对象识别方法,包括:
[0005]
步骤1:通过传感器探测空中移动对象在航行过程中的位置点集合,形成轨迹数据集,并进行分段和去噪处理;
[0006]
步骤2:基于步骤1处理后的轨迹数据集,提取空中移动对象的活动热点区域,并判断每个移动对象所属的热点区域,赋予相应的编号;
[0007]
步骤3:基于步骤1处理后的轨迹数据集,通过典型轨迹模式算法判断轨迹的运动模式;
[0008]
步骤4:基于步骤1处理后的轨迹数据集,进行轨迹运动特征提取,提取轨迹数据中在各个位置点的运动特征,包括经度、纬度、高度、速度,时长,计算这些特征的最大值、最小值、平均值,以及高度段、速度段、时间段;
[0009]
步骤5:将轨迹数据集通过步骤2至步骤4所提取出的轨迹特征作为特征参数输入随机森林模型中,训练空中移动对象识别模型;
[0010]
步骤6:基于步骤1到步骤4处理轨迹数据测试集,将得到的特征参数输入到步骤5训练的随机森林模型中,得到最终识别结果。
[0011]
本发明与现有技术相比,其显著优点为:(1)不同的空中移动对象,其自身具有的高度、速度等属性不同,可以通过这些属性特征对不同对象进行区分,但是由于会受到各种噪声干扰,仅仅依靠最值和均值等属性特征进行判断,会存在一定的偏差。本发明结合划分的高度区间和速度区间,更好地体现出高度和速度特征,能够更准确地识别不同的空中移动对象。(2)不同的空中移动对象的起飞降落位置以及航线不同,因此其活动的热点区域不
同,本发明考虑了频繁活动的热点区域,进一步提高了空中移动对象的识别精度。(3)部分空中移动对象存在相对较为典型的活动轨迹模式,如绕“8”字飞行或绕圈飞行,本发明考虑了空中移动对象的航行轨迹,利用航行轨迹中提取运动模式,能够更加准确地识别具有典型运动模式的空中移动对象。
附图说明
[0012]
图1是基于随机森林的空中移动对象识别方法的流程图。
具体实施方式
[0013]
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0014]
第一部分:
[0015]
图1为一种基于随机森林的空中移动对象识别方法的流程图。本发明公开了一种基于随机森林的空中移动对象识别方法,包括:
[0016]
(1)轨迹数据训练集和测试集的构建。采集空中移动对象的历史轨迹数据,进行分段和去噪处理后,根据一定的比例划分为轨迹数据训练集和测试集。
[0017]
(2)空中移动对象的活动热点区域识别。其中,空中移动对象的活动热点区域识别是基于轨迹数据训练集,采用基于密度的聚类方法,对聚类方法得到的划分簇,求取其外包多边形,即为所述热点区域。空中移动对象所属热点区域判别是基于所得到的空中移动对象的活动热点区域,判断出空中移动对象属于哪个活动热点区域内。其中,判别方法采用射线法,通过判断点是否在多边形内,得到轨迹点属于每一个热点区域的次数。最终通过判断空中移动对象的所有轨迹点在哪个空中移动对象热点活动区域出现的次数最高,赋予相应的热点区域编号。
[0018]
(3)空中移动对象的运动模式判别。基于空中移动对象的轨迹数据训练集,判断空中移动对象的运动模式,其中轨迹的运动模式采用典型轨迹模式算法。
[0019]
(4)空中移动对象的运动轨迹特征提取。提取空中移动对象轨迹数据训练集中各个位置点的运动特征,包括经度、纬度、高度、速度,时长。其中,对于经度、纬度、高度、速度,分别求得其最大值、最小值和平均值,并判断空中移动对象所属的高度段和速度段。
[0020]
(5)构建空中移动对象识别模型。将通过轨迹数据训练集提取出的特征输入随机森林模型中,得到空中移动对象识别模型。
[0021]
(6)得到识别结果。将通过轨迹数据测试集得到的特征输入到空中移动对象识别模型中,得到空中移动对象的最终识别结果。
[0022]
第二部分:
[0023]
下面详细说明本发明的技术方案以及所依据的科学原理。
[0024]
(1)基于密度的聚类方法
[0025]
dbscan(density-basedspatialclusteringofapplicationswith noise,具有噪声的基于密度的聚类方法)是一种典型的密度聚类算法。
[0026]
算法流程简要介绍如下:
[0027]
输入:样本集d={x1,x2,...,x
m
},m∈n,邻域参数(ε,minpts)
[0028]
其中,x为样本集中的点,ε为某一样本的邻域距离阈值,minpts为某一邻域中样本个数的阈值。
[0029]
(a)检查样本集d中每点的邻域,若样本集中任一点x
i
的邻域包含点数量多于minpts,则创建一个以x
i
为核心对象的簇;
[0030]
(b)迭代各样本点,合并这些核心对象直接密度可达的样本对象;
[0031]
其中,直接密度可达的定义为:如果p在q的邻域内,而q是一个核心对象,则称对象p从对象q出发时是直接密度可达的。
[0032]
(c)当没有新的点添加到任何簇时,算法结束。
[0033]
输出:簇划分c={c1,c2,...c
k
},k∈n
[0034]
(2)求取轨迹点簇外包多边形的方法如下:
[0035]
(a)将点簇中经度坐标值和纬度坐标值均为最小的点设为初始点p,记录点p坐标;
[0036]
(b)以p为基点从12点方向开始逆时针扫描,记录扫描到的第一个点q坐标;
[0037]
(c)以q为新的基点,重复(b),直到回到初始点p;
[0038]
(d)此时记录下的所有点坐标即为外包多边形的顶点。
[0039]
(3)射线法
[0040]
利用射线法判断点是否在多边形内,具体的算法流程如下:
[0041]
(a)点point的坐标为(x,y),多边形polygon的点有序集合为e={(x1,y1);(x2,y2);

;(x
n
,y
n
)},n∈n;
[0042]
(b)以point为起点,以无穷远为终点作平行于x轴的射线line(x,y;-∞,y);
[0043]
(c)循环取得多边形的每一条边side{x
i
,y
i
;x
i+1
,y
i+1
},i∈n;
[0044]
(d)判断point(x,y)是否在side上,如果是,则返回true;
[0045]
(e)判断line与side是否有交点,如果有,则count++;
[0046]
(f)判断交点的总数count,如果为奇数则返回true,偶数则返回false。
[0047]
(4)典型轨迹模式算法
[0048]
基于斜率导数判断典型轨迹运动模式的步骤如下:
[0049]
(a)将轨迹点数据p={(x1,y1);(x2,y2);...;(x
n
,y
n
)},n∈n,转化为轨迹的斜率数据集a={k1,k2,...,k
n
},n∈n,两个数据集间的转换可通过斜率计算公式得到;
[0050]
(b)根据斜率数据集a生成一条斜率曲线l,并对曲线l进行求导,生成导数序列集k={(k1’
,k2’
,...,k
n’},n∈n;
[0051]
(c)遍历导数序列集k,若k
i
≥σ(i∈1,2,...n),则将轨迹模式集b中第i位赋值为1;否则,若k
i
<σ,则将b中第i位赋值为0;其中σ为阈值,σ的取值为经验值,最终得到一个仅包含0和1的轨迹模式集b={m1,m2,...,m
n
},n∈n;
[0052]
(d)从m1开始,依次向后寻找每四个元素m
t
,m
t+1
,m
t+2
,m
t+3
(t=1,2,...,n-3),并进行二进制计算,若结果为0,则为绕“0”模式,若结果为集合m={3,6,9,12}中任一数字,则为绕“8”模式,并且下一次寻找从m
t+4
开始;否则下一次从m
t+1
开始,继续向后寻找每四个元素,直到找到最后一个元素结束。
[0053]
第三部分:
[0054]
下面对本发明实施例中的技术方案进行详细说明。
[0055]
步骤101:采集空中移动对象的历史轨迹数据:
[0056]
其中,空中移动对象的历史轨迹数据可以是由各种定位技术、传感器探测装置等收集到的空中移动对象在航行过程中的位置点集合,形成空中移动对象的历史轨迹数据集,包含轨迹点的编号、经纬度信息、时间戳信息、高度和速度等特征信息。
[0057]
步骤102:轨迹分段:
[0058]
(a)根据轨迹点的编号,将步骤101中得到的轨迹数据集进行拆分,得到多个仅包含唯一编号的轨迹数据集;
[0059]
(b)对于(a)中得到的每个仅包含唯一编号的轨迹数据集,均从轨迹数据集中的第一个点开始,依次遍历,对比相邻两点的时间差;若时间差大于阈值,则判断为新的轨迹段,将后一个点及其之后的所有轨迹点存入新的轨迹集中;否则,继续遍历,对比下一个两点间的时间差;
[0060]
步骤103:轨迹去噪:
[0061]
基于历史轨迹数据集,得到去噪后的轨迹数据集,其中轨迹数据集的去噪方法为:依次判断前后两个轨迹点的速度差,若大于阈值则标记为断点,按照断点将轨迹分为若干个轨迹段,并按照长度进行排序,默认最长的一段不是噪点,分别将剩余的轨迹段与该条最长轨迹段进行对比,按照时间顺序提取轨迹段的端点,计算两段轨迹端点间的速度差,若大于阈值,则将短的轨迹段中的所有轨迹点全部剔除,否则,保留轨迹段。
[0062]
步骤104:数据集划分:
[0063]
将历史轨迹数据集分为训练集和测试集;本实例中,由传感器探测到共20类空中移动对象在航行过程中的轨迹数据点,形成轨迹数据集,其中每类对象的轨迹条数为n(50≤n≤150)。轨迹数有2000条,按照4:1的比例,将采集的全部轨迹数据分为训练集和测试集,其中训练集包含1600条轨迹,测试集包含400条轨迹,训练集和测试集间没有交叉内容。
[0064]
步骤201:空中移动对象的活动热点区域提取:
[0065]
基于轨迹数据训练集,采用基于密度的聚类方法,将对象的历史轨迹数据集输入,输出轨迹点划分簇,对得到的每一个轨迹点簇求取其外包多边形,所得到的多边形集即为所述对象的活动热点区域。
[0066]
其中,提取空中移动对象活动热点区域是采用基于密度的聚类方法,具体地,基于密度的聚类算法如下:
[0067]
输入:轨迹数据训练集d={x1,x2,...,x
m
},m∈n,邻域参数(ε,minpts)
[0068]
其中,x为样本集中的点,ε为某一样本的邻域距离阈值,minpts为某一邻域中样本个数的阈值。
[0069]
(a)检查d中每点的邻域,若任一点x
i
的邻域包含点数量多于minpts,则创建一个以x
i
为核心对象的簇;
[0070]
(b)迭代各样本点,合并这些核心对象直接密度可达的样本对象;
[0071]
(c)当没有新的点添加到任何簇时,算法结束。
[0072]
输出:簇划分c={c1,c2,...c
k
},k∈n
[0073]
之后,对每一个轨迹点簇求取外包多边形的方法如下:
[0074]
(a)将点簇中经度坐标值最小的点设为初始点p,记录点p坐标;
[0075]
(b)以p为基点从12点方向开始逆时针扫描,记录扫描到的第一个点q坐标;
[0076]
(c)以q为新的基点,重复(b),直到回到初始点p;
[0077]
(d)此时记录下的所有点坐标即为外包多边形的顶点。
[0078]
步骤202:空中移动对象所属热点区域识别:
[0079]
基于步骤201得到的空中移动对象的活动热点区域,判断出空中移动对象属于哪个活动热点区域内。其中,判别方法采用射线法,通过判断点是否在多边形内,得到点属于每一个热点区域的次数。最终通过判断空中移动对象的所有轨迹点在哪个空中移动对象活动区域出现的次数最高,赋予相应的热点区域编号。
[0080]
利用射线法判断点是否在多边形内,具体的算法流程如下:
[0081]
(a)点point的坐标为(x,y),多边形polygon的点有序集合为e={(x1,y1);(x2,y2);

;(x
n
,y
n
)},n∈n;
[0082]
(b)以point为起点,以无穷远为终点作平行于x轴的射线line(x,y;-∞,y);
[0083]
(c)循环取得多边形的每一条边side{x
i
,y
i
;x
i+1
,y
i+1
},i∈n;
[0084]
(d)判断point(x,y)是否在side上,如果是,则返回true;
[0085]
(e)判断line与side是否有交点,如果有,则count++;
[0086]
(f)判断交点的总数count,如果为奇数则返回true,偶数则返回false。
[0087]
之后,判断一条轨迹中的所有点在哪个热点活动区域的出现次数最高,并赋予相应的热点区域编号,具体的算法流程如下:
[0088]
(a)若轨迹点在步骤201中的热点区域内,则记录一次该热点区域的编号;
[0089]
(b)遍历所有的轨迹点,得到相应的热点区域编号;
[0090]
(c)对比所有的热点区域中轨迹点的数量,取数量最高的区域编号为最终结果。
[0091]
步骤301:空中移动对象的运动模式判别。基于空中移动对象的轨迹数据训练集,判断空中移动对象的运动模式。对象进行绕圈活动时,其轨迹斜率在正负无穷之间交替变化,基于该特性,通过轨迹斜率导数识别绕圈活动,其中轨迹的运动模式采用典型轨迹模式算法。
[0092]
基于斜率导数的典型轨迹模式算法判别绕圈和绕“8”运动模式的步骤如下:
[0093]
(a)将轨迹点数据p={(x1,y1);(x2,y2);...;(x
n
,y
n
)},n∈n,转化为轨迹的斜率数据集a={k1,k2,...,k
n
},n∈n,两个数据集间的转换可通过斜率计算公式得到;
[0094]
(b)根据斜率数据集a生成一条斜率曲线l,并对曲线l进行求导,生成导数序列集k={(k1’
,k2’
,...,k
n’},n∈n;
[0095]
(c)遍历导数序列集k,若k
i
≥σ(i∈1,2,...n),则将轨迹模式集b中第i位赋值为1;否则,若k
i
<σ,则将b中第i位赋值为0;其中σ为阈值,σ的取值为经验值,最终得到一个仅包含0和1的轨迹模式集b={m1,m2,...,m
n
},n∈n;
[0096]
(d)从m1开始,依次向后寻找每四个元素m
t
,m
t+1
,m
t+2
,m
t+3
(t=1,2,...,n-3),并进行二进制计算,若结果为0,则为绕“0”模式,若结果为集合m={3,6,9,12}中任一数字,则为绕“8”模式,并且下一次寻找从m
t+4
开始;否则下一次从m
t+1
开始,继续向后寻找每四个元素,直到找到最后一个元素结束。
[0097]
步骤401:空中移动对象的运动轨迹特征提取。提取空中移动对象轨迹数据训练集
中各个位置点的运动特征,包括经度、纬度、高度、速度,时长。
[0098]
步骤402:对于步骤401中得到的经度、纬度、高度、速度,分别求得其最大值、最小值和平均值。
[0099]
步骤403:基于步骤401得到的轨迹运动特征,得到轨迹的高度段和速度段。具体地,步骤如下:
[0100]
(a)对于任一对象,其高度段为绝大多数点所落在的区间,本实例中所取的阈值为80%,并将区间端点的数值记录。
[0101]
(b)遍历所有的对象,得到高度集合c;
[0102]
(c)设定高度段的个数m;
[0103]
(d)从c中最小的高度h1开始,以步长为h2/(m-1),这里h2为最大高度,共将c分为m-1段,计算得到每一段中所有点的平均值,与h1、h2一同存入新的集合中,生成最终的高度段区间。
[0104]
速度段与高度段的选取方式相同。
[0105]
步骤404:判断空中移动对象所属的高度段和速度段:
[0106]
基于步骤403得到的速度段和高度段,判断对象所属的高度段和速度段,其中判断方法是采用众数的方法。分别判断不同高度段或速度段中轨迹点的数量,取点数最多的一个区间为最终结果。
[0107]
步骤405:对步骤401中得到的时长数据进行分段处理,得到时长段。具体地,分段处理的方法采用时间间隔分段,时间间隔的取值为经验值,本实例中的时长间隔取值为1小时,对原轨迹的时长进行离散化处理,最终得到整数个时长数。
[0108]
步骤501:基于步骤2至步骤4提取出的轨迹特征,构建空中移动对象识别模型,其中模型的构建采用随机森林方法。输入的特征包括最大速度、最小速度、平均速度、最大高度、最小高度、平均高度、最大经度、最小经度、中心经度、最大纬度、最小纬度、中心纬度、速度段、高度段、时间段、热点区域编号、绕圈模式。
[0109]
步骤601:得到识别结果。将通过轨迹数据测试集得到的特征输入到空中移动对象识别模型中,得到空中移动对象的最终识别结果。
[0110]
本发明还提出一种基于随机森林的空中移动对象识别系统,基于所述的方法进行空中移动对象识别。
[0111]
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的方法进行空中移动对象识别。
[0112]
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的方法进行空中移动对象识别。
[0113]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0114]
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1