本发明涉及图像处理领域,尤其涉及一种时间序列变点检测方法。
背景技术:
时间序列(timeseries)是指按时间顺序排列的观测数值的有序集合,是一类非常重要的数据对象,广泛存在于金融、经济、气象、工程和社会科学等领域。时间序列分析技术基于概率统计学分析动态数据序列,通过建立时间序列的数学模型可以进一步对时间序列进行趋势分析和预测。
时间序列变点(changepoint)检测是时间序列分析研究中的一个关键问题,宽泛的时间序列变点定义描述如下:观察一个按时间顺序发生的随机过程,探讨在其随机元素的分布或分布参数中是否有某个变化发生,变点就是一个过程的随机性质发生改变的时刻。
目前,时间序列变点检测方法按数据变化趋势的不同可分为以下三类:第一类是基于时间序列均值的变化,即水平变化趋势;第二类是基于方差的变化,即波动趋势;第三类是基于时间序列结构上的变化,即数据形态变化趋势。
第一类和第二类相关的传统时间序列变点检测方法大多基于统计原理,例如最小二乘法、极大似然法、贝叶斯方法,计算过程复杂且很难满足当前时间序列动态更新的特点。
许多研究者基于第三类检测方法提出了时间序列的数据形态变化的变点检测方法,按照算法的思想主要分为以下三种方法:基于滑动窗口、自顶向下、自底向上的时间序列变点检测算法。
现有技术中,第一类和第二类时间序列变点检测方法存在计算过程复杂、无法满足数据动态更新的问题;第三类时间序列变点检测方法依赖阈值参数对时间序列变点的判断,对数据的质量要求高并且容易受到数据噪声影响,适应性较差。
技术实现要素:
本发明主要解决的技术问题是提供一种时间序列变点检测方法,解决现有技术中时间序列变点检测方法计算过程复杂、对数据质量要求高、适应性差的问题。
为解决上述技术问题,本发明采用的一个技术方案是提供一种时间序列变点检测方法,包括以下步骤:转换图像,将待检测的时间序列数据对应转换为时间序列图像,对所述时间序列图像进行处理得到单连通单像素图像;差分处理,对所述单连通单像素图像进行方向码提取得到方向码序列,对所述方向码序列进行差分运算得到差分方向码序列;曲率计算,对所述差分方向码序列分成多个区间进行曲率计算,得到各个区间对应的区间曲率序列;变点确定,由所述区间曲率序列确定曲率极值点信息,然后对应得到时间序列数据中的变点信息。
优选的,在所述转换图像步骤中,将时间序列数据{m1,m2,m3,……,mn}输入到计算机绘图工具中得到时间序列图像{p1,p2,p3,……,pn},所述时间序列图像的横坐标为图像数据的序号,纵坐标为图像数据的数值,并且根据图像数据量的多少设定横坐标中序号的间隔大小,以及根据图像数据的实际取值设定纵坐标的取值范围和纵坐标的间隔大小。
优选的,所述时间序列图像{p1,p2,p3,……,pn}中的每一个图像数据在纵坐标上对应有多个像素点,经过单像素图像处理,将时间序列图像由多像素点表示的形式处理为由单像素点表示的形式,即把所述时间序列图像{p1,p2,p3,……,pn}处理转换为单像素图像。
优选的,在所述转换图像步骤中,还包括采用广度优先搜索的分支剪枝方法将单像素图像处理为单连通单像素图像{d1,d2,d3,……,dn}。
优选的,在所述差分处理步骤中,对单连通单像素图像{d1,d2,d3,……,dn}进行方向码提取,即通过方向值来表示相邻两个单像素点的方向变化,形成方向码序列{c1,c2,c3,……,cn-1}。
优选的,按照水平、垂直和两条对角线方向,为相邻的两个单像素点之间的方向变化定义8个方向值:0、1、2、3、4、5、6、7;其中,0表示0度,1表示45度,2表示90度,3表示135度,4表示180度,5表示225度,6表示270度,7表示315度。
优选的,把方向码序列{c1,c2,c3,……,cn-1}中前后相邻的两个方向值依次反向相减,即后一个方向值减去前一个方向值,从而获得差分方向码序列{e1,e2,e3,……,en-2}。
优选的,在所述曲率计算步骤中,包括所述差分方向码序列
{e1,e2,e3,……,en-2}中的任一个差分方向码值eo与对应的差分方向码角度值α的转化关系式:
其中,eo为差分方向码值,o为序号,1≤o≤n-2,α为差分方向码角度值。
优选的,在所述曲率计算步骤中,对所述差分方向码序列{e1,e2,e3,……,en-2}分成多个区间进行曲率计算的方法包括:
第一步,确定区间长度f和区间步进度为1,由此对方向码差分序列{e1,e2,e3,……,en-2}进行区间划分,得到多个区间方向码差分序列{ei,ei 1,…,ei-1 f},i为序号,1≤i≤n-1-f,即对应包括的区间方向码差分序列有:
{e1,e2,…,ef}、{e2,e3,…,ef 1}、{e3,e4,…,ef 2}、……、{en-1-f,en-f,…,en-2},共有n-f个区间方向码差分序列;
第二步,对每一个区间方向码差分序列{ei,ei 1,…,ei-1 f},计算所述区间方向码差分序列的曲率值:首先计算所述区间方向码差分序列{ei,ei 1,…,ei-1 f}对应的区间角度值序列{αi,αi 1,…,αi-1 f},对应计算方法是:
其中αb表示区间方向码差分序列{ei,ei 1,…,ei-1 f}对应的差分方向码角度值,b为序号,i≤b≤i-1 f;第三步,根据不同的曲率值ki对应构建区间曲率序列:{k1,k2,…,kn-1-f}。
优选的,在所述变点确定步骤中,根据所述区间曲率序列{k1,k2,…,kn-1-f},计算相邻三个曲率值的变化情况,确定是否为极值点,若满足:(kv 1-kv)·(kv 2-kv 1)<0,则对应有极值点,且计算该极值点的序号为(v 1)·f,v为序号,1≤v≤n-3-f,由此得到曲率极值点信息。
本发明的有益效果是:本发明公开了一种时间序列变点检测方法。该方法包括步骤有转换图像、差分处理、曲率计算和变点确定,通过把待检测的时间序列数据对应转换为单连通单像素图像,对单连通单像素图像进一步运算得到差分方向码序列,然后差分方向码序列分成多个区间进行曲率计算,得到各个区间对应的区间曲率序列,再由区间曲率序列确定曲率极值点信息,最后再对应得到时间序列数据中的变点信息。本方法能够灵活应对数据的波动以及噪声影响,对于时间序列数据的陡峭或平缓均不敏感,具有较强的鲁棒性,能够应对不同的时间序列数据的变点检测。
附图说明
图1是根据本发明时间序列变点检测方法一实施例的流程图;
图2是根据本发明时间序列变点检测方法另一实施例中的时间序列图像;
图3是根据本发明时间序列变点检测方法另一实施例中的时间序列图像局部放大示意图;
图4是根据本发明时间序列变点检测方法另一实施例中的时间序列图像细化后的局部放大示意图;
图5是根据本发明时间序列变点检测方法另一实施例中的单像素图像;
图6是根据本发明时间序列变点检测方法另一实施例中的单连通单像素图像;
图7是根据本发明时间序列变点检测方法另一实施例中的方向码的8种方向值;
图8是根据本发明时间序列变点检测方法另一实施例中的单连通单像素图像的局部放大图;
图9是根据本发明时间序列变点检测方法另一实施例中的差分方向码曲率示意图;
图10是根据本发明时间序列变点检测方法的检测结果图;
图11是基于斜率提取的时间序列边缘点算法检测的时间序列变点检测结果图;
图12是基于形状变点检测算法检测的时间序列变点检测结果图。
具体实施方式
为了便于理解本发明,下面结合附图和具体实施例,对本发明进行更详细的说明。附图中给出了本发明的较佳的实施例。但是,本发明可以以许多不同的形式来实现,并不限于本说明书所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。
需要说明的是,除非另有定义,本说明书所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是用于限制本发明。本说明书所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
图1显示了本发明时间序列变点检测方法一实施例的流程图。在图1中,包括以下步骤:
步骤s1:转换图像,将待检测的时间序列数据,表示为{m1,m2,m3,……,mn},n表示数据的个数,对应转换为时间序列图像,表示为{p1,p2,p3,……,pn},对所述时间序列图像进行处理得到单连通单像素图像,表示为{d1,d2,d3,……,dn};
步骤s2:差分处理,对所述单连通单像素图像进行方向码提取得到方向码序列,表示为{c1,c2,c3,……,cn-1},对所述方向码序列进行差分运算得到差分方向码序列,表示为{e1,e2,e3,……,en-2};
步骤s3:曲率计算,对所述差分方向码序列分成多个区间进行曲率计算,得到各个区间对应的区间曲率序列;
步骤s4:变点确定,由所述区间曲率序列确定曲率极值点信息,然后对应得到时间序列数据中的变点信息。
本发明将图像处理的方法融入时间序列变点检测中,先将时间序列数据转换为图像,并对图像处理后得到单连通单像素图像。然后对该单连通单像素图像进行提取方向码序列,方向码序列再经过差分处理后得到差分方向码序列,利用差分方向码曲率缩放不变的特性,可以忽略时间序列数据的变化大小,对时间数据的陡峭或者平缓不敏感,因而具有较强的适应性,能够应用于不同的数据特征环境中。
在转换图像步骤s1,时间序列数据是指随着时间变化而采集获得的数据序列集合,通常可以用一个数据序列来表示,如时间数据序列{m1,m2,......,mz,......,mn}其中的时间数据就是m1,m2等,n表示这个时间数据序列的个数,即数据量的多少,z表示其中数据的序号或索引,且有1≤z≤n,并且这些数据m1,m2等是随着时间推移而在不同时刻采集获得的数据,例如对应的时间数据序列具体是{1.130968,1.120483,1.107771,……,1.112046},其中m1=1.130968,m2=1.120483,m3=1.107771,n=1024,m1024=1.1120146。
优选的,在步骤s1将时间序列数据{m1,m2,m3,……,mn}输入到计算机绘图工具中得到时间序列图像{p1,p2,p3,……,pn},所述时间序列图像的横坐标为图像数据的序号,如图像数据p3的横坐标即为其序号3,纵坐标为图像数据的数值,如图像数据p3的纵坐标即为p3的数值,并且根据图像数据量的多少合理设定横坐标中序号的间隔大小或距离,以及根据图像数据的实际取值合理设定纵坐标的取值范围和纵坐标的间隔大小或距离。
如图2所示,图2是通过使用python绘图软件对时间序列数据绘制的折线图,即时间序列图像,其中时间序列数据的个数是1024个,对应为横坐标的取值范围为1024,取值区间在-3至1.5之间,对应为纵坐标的取值范围。
优选的,在一维的时间序列数据转换位二维的时间序列图像时,可以根据一维的时间序列数据的长度,即数据的个数或数量,确定二维的时间序列图像的宽,而二维的时间序列图像的高度则可以根据固定的高宽比确定。
优选的,对于该时间序列图像可以进行高度,即纵坐标方向和宽度,即横坐标方向的等比例放大或缩小,而不能只进行竖向高度放大或缩小处理,或者只进行横向宽度放大或缩小处理。如果不按原始图像的高宽比进行变形,例如只增大图像宽度,那图像就会变扁,对变点检测会造成影响。
这是因为在后续步骤s4中,需要由该二维的时间序列图像中检测出来的数据形态变点信息是像素坐标信息,需要再转换回一维的时间序列数据中去,最后的输出结果应该是时间序列数据中变点的索引,即数据序号,以及对应的数据的数值信息。以此可以简化最终变点检测结果与原始的时间序列数据的对应关系,保证时间序列图像中每个数据的横坐标对应时间序列数据中的每个数据的序号。
因此,合理的确定二维的时间序列图像的高度和宽度,能够避免多余的像素信息转时序信息。
优选的,在步骤s1中,当把的时间序列数据{m1,m2,m3,……,mn}对应转换为时间序列图像{p1,p2,p3,……,pn}后,得到的该时间序列图像通常会是如图3所示的时间序列图像,其中每一个时间序列图像数据,如p3,在纵坐标上会对应有多个像素点,即在图3中,像素值为0或1的像素点表示时间序列图像数据。在图3中,顶部第一横行表示横坐标:x,左边第一纵行表示纵坐标:y,则217(x)就表示横坐标为217,249(y)就表示纵坐标为249。
可以看出,每一个时间序列图像数据的纵坐标(y)对应至少四个像素值为0或1的像素点。例如,横坐标(x)为217时,对应有四个像素点,其纵坐标(y)分别是259、260、261、262。横坐标(x)为220时,对应有六个像素点,其纵坐标(y)分别是257、258、259、260、261、262。
对应的,将时间序列图像由多像素点表示的形式处理为由单像素点表示的形式,即把时间序列图像处理转换为单像素图像,该处理过程称之为单像素图像处理。对应如图4所示,图4是经过处理之后的时间序列图像的局部像素显示视图。在图4中,每一个时间序列图像数据的横坐标对应一个像素值为0或1的像素点,即每一个时间序列图像的横坐标对应一个像素点。按照该处理方法,图2中的时间序列图像经过单像素图像处理后得到如图5所示的单像素图像。
从图5中可以看出,时间序列图像经过单像素图像处理后,可能会产生多个分支fz,这些分支fz产生的原因是由于数据本身存在一定波动。为了避免这些分支对步骤s2中的方向码提取产生影响,需要将这些分支进行去除,得到单连通单像素图像。
从图5中可以看出,时间序列图像{p1,p2,p3,……,pn}经过单像素图像处理后,可能会产生多个分支fz,这些分支fz产生的原因是由于数据本身存在一定波动。为了避免这些分支对步骤s2中的方向码提取产生影响,需要将这些分支进行去除,得到单连通单像素图像{d1,d2,d3,……,dn},其中的数据是单连通单像素图像数据,如d3即为单连通单像素图像数据,该数据是对应一个像素并且不再具有分支。
进一步的,在步骤s1中,还包括采用广度优先搜索的分支剪枝方法将单像素图像处理为单连通单像素图像。
优选的,广度优先搜索的分支剪枝方法是将单像素图像中的分支除去,进而保留单像素图像中的骨架主体zt的过程。在该处理方法过程中,首先将单像素图像中的所有端点检测出来,这些端点不包括单像素图像中的起点和终点,起点是指单像素图像中最左边的点,终点是指单像素图像中最右边的点,二者属于骨架主体zt的一部分,并不属于分支fz,这里不需要处理;除起点和终点以外,其他端点则属于各个分支fz,找到这些分支fz后,对每一个分支对应的端点出发,向骨架主体zt进行搜索,搜索过的点进行标记并去除,直到搜索到与骨架主体zt的交叉点为止,由此可以去除这些分支fz,保留单像素图像中的骨架主体zt,形成单连通单像素图像,即实现把所述时间序列图像{p1,p2,p3,……,pn}进行处理得到单连通单像素图像{d1,d2,d3,……,dn}。图5所示的单像素图像经过该分支剪枝方法处理后最终得到的单连通单像素图像如图6所示。
优选的,如图7所示,在步骤s2中对所述单连通单像素图像{d1,d2,d3,……,dn}进行方向码提取得到方向码序列{c1,c2,c3,……,cn-1}的方法是通过方向值来表示相邻两个单像素点的方向变化。例如方向值c1就是单像素点d2相对于单像素点d1的方向变化。可以看出,方向码序列{c1,c2,c3,……,cn-1}的个数是n-1,总个数小于单连通单像素图像{d1,d2,d3,……,dn}中的数据个数n,这是因为方向变化是值相邻的两个像素点之间的方向变化,是从第一个像素点指向第二个像素点开始进行的,因此得到的方向码序列{c1,c2,c3,……,cn-1}的数据个数要比单连通单像素图像{d1,d2,d3,……,dn}的数据个数少1个。
优选的,按照水平、垂直和两条对角线方向,可以为相邻的两个单像素点之间的方向变化定义8个方向值:0、1、2、3、4、5、6、7。其中,“0”表示0度,“1”表示45度,“2”表示90度,“3”表示135度,“4”表示180度,“5”表示225度,“6”表示270度,“7”表示315度。
如图8所示,在图8中共有4个有效的单像素点,其单像素点的走向是从左至右。该4个有效的单像素点分为4列,像素值分别为3、0、0、0。结合图7所示的相邻两单像素点连线的8种方向值,在图8中的第1列中,当像素值为3的单像素点斜向上指向第2列中像素值为0的单像素点时,其方向值表示为1;第2列中,当像素值为0的单像素点斜向上指向第3列中像素值为0的单像素点时,其方向值表示为1;在第3列中,当像素值为0的单像素点水平向右指向第4列中像素值为0的单像素点时,其方向值表示为0;以此类推,该4个有效的单像素点的方向码序列为{1,1,0}。
进一步的,通过该提取方向码的方法对图6中的单像素点进行方向码提取,获得一个由方向值组成的方向码序列。在提取过程中,从图像边缘轮廓的起始单像素点开始,对每一个单像素点进行搜索并标记,搜索过的单像素点则不再搜索,直到搜索到某个单像素点的八领域中不存在有效的单像素点为止,并记录相邻的两个单像素点的相对位置方向,从而得到该单连通单像素图像{d1,d2,d3,……,dn}对应的方向码序列{c1,c2,c3,……,cn-1}。
进一步的,在得到方向码序列后,把方向码序列{c1,c2,c3,……,cn-1}中前后相邻的两个方向值依次反向相减,即后一个方向值减去前一个方向值,如c2-c1、c3-c2等,从而获得差分方向码序列{e1,e2,e3,……,en-2}。
图8中的方向码序列表示为{1,1,0},则相应的差分方向码序列为{0,-1}。因此,对所述方向码序列{c1,c2,c3,……,cn-1}进行差分运算得到差分方向码序列{e1,e2,e3,……,en-2}。可以看出,差分方向码序列{e1,e2,e3,……,en-2}的数据的总个数是n-2,进一步比方向码序列{c1,c2,c3,……,cn-1}的数据总个数n-1少1个。
图9示出了方向码序列{1,1,0}和差分方向码序列{0,-1}的关系。可以看出,在方向码序列{1,1,0}中,方向值1到方向值1的差分方向码值为0,其变化的角度为180度;再从方向值1到方向值0的差分方向码值为-1,其方向变化的角度为45°。
基于图9,由此可以得出差分方向码序列{e1,e2,e3,……,en-2}中的任一个差分方向码值eo,o为序号,取值范围是1≤o≤n-2,与对应的差分方向码角度值α的转化关系式:
其中,eo为差分方向码值,α为差分方向码角度值。
进一步的,在步骤s3中,对所述差分方向码序列分成多个区间进行曲率计算的方法包括:
第一步,确定区间长度f和区间步进度为1,由此对方向码差分序列{e1,e2,e3,……,en-2}进行区间划分,得到多个区间方向码差分序列{ei,ei 1,…,ei-1 f},i为序号,1≤i≤n-1-f,即对应包括的区间方向码差分序列有:{e1,e2,…,ef}、{e2,e3,…,ef 1}、{e3,e4,…,ef 2}、……、{en-1-f,en-f,…,en-2}。因此,一共有n-f个区间方向码差分序列。
优选的,这里区间长度f和区间步进度可以根据需要进行灵活选择,也可以根据不同的数据区间选择不同的区间长度f和区间步进度,这样有利于在数据变化平缓的区间选择使用较大数值的区间长度f和区间步进度,可以提高检测的速度,同时也能满足检测的精准度要求。而在数据变化急剧的区间选择使用较小数值的区间长度f和区间步进度,这样可以获得较高的检测的精准度要求。
第二步,对每一个区间方向码差分序列{ei,ei 1,…,ei-1 f},计算所述区间方向码差分序列的曲率值:首先计算所述区间方向码差分序列{ei,ei 1,…,ei-1 f}对应的区间角度值序列{αi,αi 1,…,αi-1 f},对应计算方法是:
其中αb表示区间方向码差分序列{ei,ei 1,…,ei-1 f}对应的差分方向码角度值,b为序号,i≤b≤i-1 f;
第三步,根据不同的曲率值ki对应构建区间曲率序列:{k1,k2,…,kn-1-f}。
优选的,在步骤s4中,根据区间曲率序列:{k1,k2,…,kn-1-f},
计算相邻三个曲率值的变化情况,确定是否为极值点,若满足:
(kv 1-kv)·(kv 2-kv 1)<0,
则对应有极值点,且计算该极值点的序号为(v 1)·f,v为序号,1≤v≤n-3-f,由此得到曲率极值点信息。
优选的,当区间长度f=5时,基于图6所示单连通单像素图像{d1,d2,d3,……,dn},n=1024,可以得到的曲率极值点信息是[25,180,215,305,475,530,625,780,835,960,1010]。
进一步的,由于时间序列数据{m1,m2,m3,……,mn}与差分方向码序列{e1,e2,e3,……,en-2}在数据的总量上相差两个,而极值点的序号的计算是以差分方向码序列{e1,e2,e3,……,en-2}为基准进行计算的,因此在得到极值点的序号后需要加2,就可以对应得到时间序列数据{m1,m2,m3,……,mn}中变点的序号。因此,基于曲率极值点信息是[25,180,215,305,475,530,625,780,835,960,1010]可以对应得到时间序列数据的变点信息是[27,182,217,307,477,532,627,782,837,962,1012]。并且,基于图2的图像可以确定这些变点的显示如图10所示。
进一步的,图10为采用本发明的时间序列变点检测结果图,该数据集具有较明显的趋势变化,但在数据分布上既存在有一定数据波动的区间,同时也存在变化较为平缓的区间,数据间的变化较小。
作为比较对象之一,图11为基于斜率提取的时间序列边缘点算法检测的时间序列变点检测结果图。对于此该方法的时间序列数据,基于斜率提取的时间序列边缘点算法的阈值参数较难设置,设置较小无法检测出数据波动区间的变点,设置较大则会出现如图11中所示的检测结果密集的结果。
作为比较对象之二,图12为基于形状的变点检测算法检测的时间序列变点检测结果图。基于形状的变点检测算法的参数设置同样会存在问题,增大递归深度参数虽然可以避免漏检,但同时也会带来如12所示,在数据较为平缓的区间中出现了伪检测结果,需要加入其他消除伪检测的步骤。而采用本发明的时间序列变点检测方法既能避免漏检问题,同时不会带来伪检测问题。
以上实验表明,基于本发明的变点检测方法一定程度上能够应对数据的波动以及噪声的影响,对于时间序列数据的陡峭或平缓均不敏感,适应性强于其他检测方法,能够应对不同的数据特征环境。
由此可见,本发明公开了一种时间序列变点检测方法。该方法包括步骤有转换图像、差分处理、曲率计算和变点确定,通过把待检测的时间序列数据对应转换为单连通单像素图像,对单连通单像素图像进一步运算得到差分方向码序列,然后差分方向码序列分成多个区间进行曲率计算,得到各个区间对应的区间曲率序列,再由区间曲率序列确定曲率极值点信息,最后再对应得到时间序列数据中的变点信息。本方法能够灵活应对数据的波动以及噪声影响,对于时间序列数据的陡峭或平缓均不敏感,具有较强的鲁棒性,能够应对不同的时间序列数据的变点检测。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
1.一种时间序列变点检测方法,其特征在于,包括以下步骤:
转换图像,将待检测的时间序列数据对应转换为时间序列图像,对所述时间序列图像进行处理得到单连通单像素图像;
差分处理,对所述单连通单像素图像进行方向码提取得到方向码序列,对所述方向码序列进行差分运算得到差分方向码序列;
曲率计算,对所述差分方向码序列分成多个区间进行曲率计算,得到各个区间对应的区间曲率序列;
变点确定,由所述区间曲率序列确定曲率极值点信息,然后对应得到时间序列数据中的变点信息。
2.根据权利要求1所述的时间序列变点检测方法,其特征在于,在所述转换图像步骤中,将时间序列数据{m1,m2,m3,……,mn}输入到计算机绘图工具中得到时间序列图像{p1,p2,p3,……,pn},所述时间序列图像的横坐标为图像数据的序号,纵坐标为图像数据的数值,并且根据图像数据量的多少设定横坐标中序号的间隔大小,以及根据图像数据的实际取值设定纵坐标的取值范围和纵坐标的间隔大小。
3.根据权利要求2所述的时间序列变点检测方法,其特征在于,所述时间序列图像{p1,p2,p3,……,pn}中的每一个图像数据在纵坐标上对应有多个像素点,经过单像素图像处理,将时间序列图像由多像素点表示的形式处理为由单像素点表示的形式,即把所述时间序列图像{p1,p2,p3,……,pn}处理转换为单像素图像。
4.根据权利要求3所述的时间序列变点检测方法,其特征在于,在所述转换图像步骤中,还包括采用广度优先搜索的分支剪枝方法将单像素图像处理为单连通单像素图像{d1,d2,d3,……,dn}。
5.根据权利要求4所述的时间序列变点检测方法,其特征在于,在所述差分处理步骤中,对单连通单像素图像{d1,d2,d3,……,dn}进行方向码提取,即通过方向值来表示相邻两个单像素点的方向变化,形成方向码序列{c1,c2,c3,……,cn-1}。
6.根据权利要求5所述的时间序列变点检测方法,其特征在于,按照水平、垂直和两条对角线方向,为相邻的两个单像素点之间的方向变化定义8个方向值:0、1、2、3、4、5、6、7;其中,0表示0度,1表示45度,2表示90度,3表示135度,4表示180度,5表示225度,6表示270度,7表示315度。
7.根据权利要求6所述的时间序列变点检测方法,其特征在于,把方向码序列{c1,c2,c3,……,cn-1}中前后相邻的两个方向值依次反向相减,即后一个方向值减去前一个方向值,从而获得差分方向码序列{e1,e2,e3,……,en-2}。
8.根据权利要求7所述的时间序列变点检测方法,其特征在于,在所述曲率计算步骤中,包括所述差分方向码序列{e1,e2,e3,……,en-2}中的任一个差分方向码值eo与对应的差分方向码角度值α的转化关系式:
其中,eo为差分方向码值,o为序号,1≤o≤n-2,α为差分方向码角度值。
9.根据权利要求8所述的时间序列变点检测方法,其特征在于,在所述曲率计算步骤中,对所述差分方向码序列{e1,e2,e3,……,en-2}分成多个区间进行曲率计算的方法包括:
第一步,确定区间长度f和区间步进度为1,由此对方向码差分序列{e1,e2,e3,……,en-2}进行区间划分,得到多个区间方向码差分序列{ei,ei 1,…,ei-1 f},i为序号,1≤i≤n-1-f,即对应包括的区间方向码差分序列有:{e1,e2,…,ef}、{e2,e3,…,ef 1}、{e3,e4,…,ef 2}、……、{en-1-f,en-f,…,en-2},共有n-f个区间方向码差分序列;
第二步,对每一个区间方向码差分序列{ei,ei 1,…,ei-1 f},计算所述区间方向码差分序列的曲率值:首先计算所述区间方向码差分序列{ei,ei 1,…,ei-1 f}对应的区间角度值序列{αi,αi 1,…,αi-1 f},对应计算方法是:
然后计算该区间方向码差分序列{ei,ei 1,…,ei-1 f}的曲率值为:
其中αb表示区间方向码差分序列{ei,ei 1,…,ei-1 f}对应的差分方向码角度值,b为序号,i≤b≤i-1 f;
第三步,根据不同的曲率值ki对应构建区间曲率序列:{k1,k2,…,kn-1-f}。
10.根据权利要求9所述的时间序列变点检测方法,其特征在于,在所述变点确定步骤中,根据所述区间曲率序列{k1,k2,…,kn-1-f},计算相邻三个曲率值的变化情况,确定是否为极值点,若满足:
(kv 1-kv)·(kv 2-kv 1)<0,
则对应有极值点,且计算该极值点的序号为(v 1)·f,v为序号,1≤v≤n-3-f,由此得到曲率极值点信息。
技术总结