基于图像的波动趋势识别方法、装置、计算机设备和介质与流程

文档序号:24186451发布日期:2021-03-09 13:49阅读:178来源:国知局
基于图像的波动趋势识别方法、装置、计算机设备和介质与流程

1.本发明涉及图像识别技术领域,尤其涉及一种基于图像的波动趋势识别方法、装置、计算机设备和介质。


背景技术:

2.在图像识别技术领域,经常需要识别波动曲线的波动趋势,以判断变量的变化趋势。例如,在证券研究中,通过识别股票交易价格的波动曲线,来识别股票的上涨或下跌趋势,明确股票价格的拐点是后续研究的基础。又如,在消费指数研究中,通过识别某一类用品的销量波动曲线,也即该类用品中多个商品的销量波动曲线,来识别这类用品的上涨或下跌区域,进而明确对应消费指数的变化等。对于识别波动曲线的变化趋势这个问题,对于人眼来说非常容易,但是,对于计算机来说,该问题就不那么容易了。
3.现有技术中,计算机在基于图像进行波动趋势识别时,提出一种依赖于逐点判断的方法,具体地,逐点判断当前点是否为局部最高点(峰)、最低点(谷),最高点到最低点间为下降趋势,最低点到最高点间为上升趋势。由于需要逐点进行高低点的判断,其运行速度非常慢,导致该方法计算效率低下。特别是当计算机需要批量完成差异性较大的大量图像中波动曲线的趋势识别时,上述方法的问题被进一步放大。
4.因此,如何提升基于图像进行波动趋势识别时的计算效率,成为本领域亟需解决的技术问题。


技术实现要素:

5.本发明的目的是提供一种基于图像的波动趋势识别方法、装置、计算机设备和介质,用于解决现有技术中的技术问题。
6.一方面,为实现上述目的,本发明提供了一种基于图像的波动趋势识别方法。
7.该基于图像的波动趋势识别方法包括:获取待识别图像中的波动曲线,其中,波动曲线表征时间序列;根据波动曲线确定平滑参数;按照平滑参数过滤波动曲线中的短期波动,以得到光滑时间序列;通过差分技术在光滑时间序列上确定拐点,以得到初始拐点;在距离初始拐点的预定时间范围内进行峰谷搜索,以得到目标拐点;根据相邻目标拐点之间的峰谷关系确定波动曲线的波动趋势状态;以及输出表征波动趋势状态的状态信息。
8.进一步地,根据波动曲线确定平滑参数包括:确定波动曲线对应的时间序列的类型;当时间序列的类型为月度数据时,确定平滑参数为第一预设平滑参数;当时间序列的类型为季度数据时,确定平滑参数为第二预设平滑参数;当时间序列的类型为年度数据时,确定平滑参数为第三预设平滑参数,其中,第一预设平滑参数、第二预设平滑参数和第三预设平滑参数逐渐减小。
9.进一步地,{y
t
}为波动曲线对应的时间序列,t=1,2,...,t,t为时间序列的时间长度,{y
tt
}为光滑时间序列,λ为平滑参数,按照平滑参数过滤波动曲线中的短期波动,以得到光滑时间序列的步骤包括:求解以下最小化问题的解,以得到光滑时间序列{y
tt
}:
10.进一步地,根据波动曲线确定平滑参数包括:步骤s11:确定迭代平滑参数的初始值;步骤s12:根据迭代平滑参数计算光滑时间序列;步骤s13:根据时间序列和光滑时间序列计算波动序列;步骤s14:计算光滑时间序列的方差与波动序列的方差的比值,得到当前比值;步骤s15:判断当前比值与上一次比值的差是否小于或等于预设阈值,其中,当差小于或等于预设阈值时,输出当前比值作为平滑参数,当差大于预设阈值时,将当前比值作为迭代平滑参数,并返回至步骤s12。
11.进一步地,{y
t
}为波动曲线对应的时间序列,t=1,2,...,t,t为时间序列的时间长度,{y
tt
}为光滑时间序列,通过差分技术在光滑时间序列上确定拐点,以得到初始拐点的步骤包括:采用以下公式计算趋势状态序列stage(t):
[0012][0013]
根据趋势状态序列判断相邻两个时刻的趋势状态是否相同;以及当相邻两个时刻的趋势状态不同时,确定相邻两个时刻中的前一个时刻为初始拐点。
[0014]
进一步地,在距离初始拐点的预定时间范围内进行峰谷搜索,以得到目标拐点的步骤包括:
[0015]
步骤s21:获取趋势状态序列,设置初始的搜索次数为1;
[0016]
步骤s22:根据趋势状态序列搜索最小峰谷间隔;
[0017]
步骤s23:判断最小峰谷间隔是否小于第一时长阈值,其中,若最小峰谷间隔小于第一时长阈值,执行步骤s24,若最小峰谷间隔大于或等于第一时长阈值,执行步骤s25;
[0018]
步骤s24:将最小峰谷间隔对应的峰谷之间的状态修改为相反状态,以更新趋势状态序列,并返回步骤s22;
[0019]
执行步骤s25:根据趋势状态序列搜索最小峰峰间隔;
[0020]
执行步骤s26:判断最小谷谷间隔是否小于第二时长阈值,其中,若最小谷谷间隔小于第二时长阈值,执行步骤s27,若最小谷谷间隔大于或等于第二时长阈值,执行步骤s28;
[0021]
步骤s27:将最小谷谷间隔对应的两个峰删除,将两个峰之间的最大值作为新的峰,并根据最新的峰谷更新趋势状态序列后,返回步骤s25;
[0022]
执行步骤s28:根据趋势状态序列搜索最小谷谷间隔;
[0023]
执行步骤s29:判断最小谷谷间隔是否小于第二时长阈值,其中,若最小谷谷间隔小于第二时长阈值,执行步骤s30,若最小谷谷间隔大于或等于第二时长阈值,执行步骤s31;
[0024]
步骤s30:将最小谷谷间隔对应的两个谷删除,将两个谷之间的最大值作为新的谷,并根据最新的峰谷更新趋势状态序列后,返回步骤s28;
[0025]
步骤s31:在趋势状态序列中,将所有峰前后预设窗口范围内的局部极值点作为新的峰,将所有谷前后预设窗口范围内的局部极值点作为新的谷;
[0026]
步骤s32:判断当前搜索次数是否达到搜索阈值,其中,若达到搜索阈值,执行步骤
s33,若未达到搜索阈值,执行步骤s34;
[0027]
步骤s33:将最新的峰谷作为目标拐点;
[0028]
步骤s34:根据最新的峰谷更新趋势状态序列后,将所述搜索次数加1后,返回步骤s22。
[0029]
进一步地,波动趋势状态包括上升趋势和下降趋势,输出表征波动趋势状态的状态信息的步骤包括:输出包括状态信息的波动曲线,其中,对应上升趋势的波动曲线部分采用第一显示方式显示,对应下降趋势的波动曲线部分采用第二显示方式显示。
[0030]
另一方面,为实现上述目的,本发明提供了一种基于图像的波动趋势识别装置。
[0031]
该基于图像的波动趋势识别装置,其特征在于,包括:获取模块,用于获取待识别图像中的波动曲线,其中,波动曲线表征时间序列;第一确定模块,用于根据波动曲线确定平滑参数;处理模块,用于按照平滑参数过滤波动曲线中的短期波动,以得到光滑时间序列;第二确定模块,用于通过差分技术在光滑时间序列上确定拐点,以得到初始拐点;搜索模块,用于在距离初始拐点的预定时间范围内进行峰谷搜索,以得到目标拐点;第三确定模块,用于根据相邻目标拐点之前的关系确定波动曲线的波动趋势状态;以及输出模块,用于输出表征波动趋势状态的状态信息。
[0032]
为实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
[0033]
为实现上述目的,本发明还提供计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
[0034]
本发明提供的基于图像的波动趋势识别方法、装置、计算机设备和介质,获取到待识别图像中表征时间序列的波动曲线后,根据波动曲线确定平滑参数,并按照平滑参数过滤波动曲线中的短期波动,以得到光滑时间序列,然后通过差分技术在光滑时间序列上确定拐点,以得到初始拐点,在此基础上,根据初始拐点进一步判断,在距离初始拐点的预定时间范围内进行峰谷搜索,以得到目标拐点,根据相邻目标拐点之间的峰谷关系确定波动曲线的波动趋势状态,最后输出表征波动趋势状态的状态信息。通过本发明,先滤波处理,仅对滤波后的拐点进行局部高低点的判断,减少了大量无效的高低点识别,使得时间占用大为减少,提升了计算效率,同时,由于在滤波之后通过峰谷搜索对初始拐点进行了校准操作,得到目标拐点,按照目标拐点进行趋势识别,提升了拐点识别的准确性。
附图说明
[0035]
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0036]
图1为本发明实施例一提供的基于图像的波动趋势识别方法的流程图;
[0037]
图2为本发明实施例提供的时间序列和光滑时间序列的示意图;
[0038]
图3为本发明实施例提供的目标拐点的示意图;
[0039]
图4为本发明实施例提供的包括状态信息的波动曲线的示意图;
[0040]
图5为本发明实施例二提供的基于图像的波动趋势识别装置的框图;
[0041]
图6为本发明实施例三提供的计算机设备的硬件结构图。
具体实施方式
[0042]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0043]
为了解决现有技术中基于图像进行波动趋势识别时,依赖于逐点判断的方法计算效率低的技术问题,本发明提出一种基于图像的波动趋势识别方法、装置、计算机设备和介质。在研究解决上述技术问题的过程中,发明人发现,基于图像进行波动趋势识别时,对于人眼来说非常容易,通过仔细拆分人眼识别趋势的过程,进一步发现:给定任意一个波动曲线,人眼首先快速地过滤短期波动,再精准识别曲线的拐点,从而对各个阶段的波动趋势给出研判。基于这样的发现,在本发明提出的基于图像的波动趋势识别方法中,获取到待识别图像中表征时间序列的波动曲线后,首先根据波动曲线确定平滑参数,并按照平滑参数过滤波动曲线中的短期波动,以得到光滑时间序列,然后通过差分技术在光滑时间序列上确定拐点,以得到初始拐点,在此基础上,根据初始拐点进一步判断,在距离初始拐点的预定时间范围内进行峰谷搜索,以得到目标拐点,根据相邻目标拐点之间的峰谷关系确定波动曲线的波动趋势状态,最后输出表征波动趋势状态的状态信息。采用本发明提供的基于图像的波动趋势识别方法,以模拟人眼识别趋势为起点,先滤波处理,仅对滤波后的拐点进行局部高低点的判断,减少了大量无效的高低点识别,使得时间占用大为减少,提升了计算效率,同时,由于在滤波之后通过峰谷搜索对初始拐点进行了校准操作,得到目标拐点,按照目标拐点进行趋势识别,提升了拐点识别的准确性。
[0044]
关于本发明提供的基于图像的波动趋势识别方法、装置、计算机设备和介质的具体实施例,将在下文中详细描述。
[0045]
实施例一
[0046]
本发明实施例一提供了一种基于图像的波动趋势识别方法,通过该方法,能够提升计算效率,同时能够提升拐点识别的准确性,具体地,图1为本发明实施例一提供的基于图像的波动趋势识别方法的流程图,如图1所示,该实施例提供的基于图像的波动趋势识别方法包括如下的步骤s101至步骤s107。
[0047]
步骤s101:获取待识别图像中的波动曲线。
[0048]
其中,波动曲线表征时间序列,也即表征变量在一段时间内随时间变化的波动情况,例如可以为一段时间内沪深300指数序列,再如可以为一段时间内车库的泊车数量变化序列,又如可以为一段时间内病毒感染数量变化序列等。
[0049]
步骤s102:根据波动曲线确定平滑参数。
[0050]
步骤s103:按照平滑参数过滤波动曲线中的短期波动,以得到光滑时间序列。
[0051]
其中,图2为本发明实施例提供的时间序列和光滑时间序列的示意图,如图2所示,对波动曲线,也即时间序列进行滤波处理后,过滤掉其中的短期波动,即可得到光滑时间序列对应的曲线,图2中示出的短期波动较多的曲线为波动曲线,相对较光滑的曲线为光滑时间序列对应的曲线,图中纵坐标为沪深300指数,横坐标为时间,时间点包括2010.01、
2010.03、2010.05、2010.07、2010.09、2010.11、2011.01和2011.03。
[0052]
在该实施例中,根据波动曲线自身确定适配的平滑参数。可选地,在一种实施例中,预定时间序列的类型和预设平滑参数的对应关系,在根据波动曲线确定平滑参数时,首先确定波动曲线对应的时间序列的类型,然后根据确定的类型和上述对应关系,进一步确定对应的平滑参数。例如,时间序列的类型包括按照时间频率分布的月度数据、季度数据或年度数据等,或者,时间序列的类型包括按照地域分布的县级数据、市级数据或省级数据等。时间序列的类型不同,对应的平滑参数的大小不同。平滑参数越大,被过滤的短期波动越多,得到的光滑时间序列越平滑。因此,根据波动曲线自身确定平滑参数,避免不同量纲、不同波动性的数据采用相同的平滑参数,使得平滑参数适配于波动曲线。
[0053]
进一步可选地,根据波动曲线确定平滑参数的具体步骤包括:确定波动曲线对应的时间序列的类型;当时间序列的类型为月度数据时,确定平滑参数为第一预设平滑参数;当时间序列的类型为季度数据时,确定平滑参数为第二预设平滑参数;当时间序列的类型为年度数据时,确定平滑参数为第三预设平滑参数,其中,第一预设平滑参数、第二预设平滑参数和第三预设平滑参数逐渐减小。例如,第一预设平滑参数为14400,第二预设平滑参数为1600,第三预设平滑参数为100。在该实施例中,时间频率越高,波动曲线的短期变化越大,相应设置的平滑参数越大,从而能够在保留变化趋势的同时,过滤掉无效的波动变化。
[0054]
可选地,在一种实施例中,设{y
t
}为波动曲线对应的时间序列,t=1,2,...,t,t为时间序列的时间长度。{y
t
}包含趋势成分和波动成分,其中,趋势成分也即光滑时间序列,波动成分也即波动序列,设{y
tt
}为光滑时间序列,{y
tc
}为波动序列,则y
t
=y
tt
+y
tc
,过滤波动曲线中的短期波动,以得到光滑时间序列,也即从{y
t
}中分离出趋势项{y
tt
}。设λ为平滑参数,求解以下最小化问题的解,以得到光滑时间序列{y
tt
}:
[0055][0056]
在上述最小化问题中,大括号中的第一项为最小二乘,第二项为趋势项的二阶差分的平方,λ≥0为平滑参数,λ越大,则估计得到的趋势项越平滑。例如,如果λ=0,则滤波退化为最小二乘法,此时估计的序列{y
tt
}为{y
t
}本身;如果λ=∞,估计的趋势项接近线性函数,因为线性函数的二阶差分为0。
[0057]
在实际操作中,可以通过平滑参数的选取,获得不同光滑程度的趋势项,而针对不同量纲、不同波动性的数据泛泛地采用同样的平滑参数是不可取的。进一步可选地,在根据波动曲线确定平滑参数时,具体执行以下步骤:
[0058]
步骤s11:确定迭代平滑参数的初始值。
[0059]
具体地,可根据经验确定平滑参数的初始参数值,在本发明中,将迭代过程中的平滑参数定义为迭代平滑参数。
[0060]
步骤s12:根据迭代平滑参数计算光滑时间序列。
[0061]
具体地,在确定迭代平滑参数的初始值后首次执行该步骤时,将该初始值作为λ带入最小化问题,得到算式最小值时对应的{y
tt
}。
[0062]
步骤s13:根据时间序列和光滑时间序列计算波动序列。
[0063]
将时间序列{y
t
}和光滑时间序列{y
tt
}代入y
t
=y
tt
+y
tc
,即可得到波动序列。
[0064]
步骤s14:计算光滑时间序列的方差与波动序列的方差的比值,得到当前比值。
[0065]
计算得到的光滑时间序列的方差为波动序列的方差为计算二者的比值,为当前比值。
[0066]
步骤s15:判断当前比值与上一次比值的差是否小于或等于预设阈值。
[0067]
其中,当该差小于或等于预设阈值时,输出当前比值作为平滑参数,当差大于预设阈值时,将当前比值作为迭代平滑参数,并返回至步骤s12。
[0068]
具体而言,在第n次迭代时,将第n次计算得到的比值与第n-1次得到的比值作差,判断该差与预设阈值的大小关系,其中,预设阈值可以根据经验进行设置,例如设置为10-6
等。当上述差大于预设阈值时,将第n次迭代得到的比值作为迭代平滑参数,返回至步骤s12继续迭代;当上述差小于或等于预设阈值时,将该第n次得到的比值作为平滑参数,退出迭代,将该平滑参数代入得到算式最小值时对应的{y
tt
},即为计算得到的光滑时间序列。其中,n=1时,设置第n-1次得到的比值为0。
[0069]
在该实施例中,选取平衡参数以权衡最小二乘与光滑性惩罚。具体而言,通过迭代运算确定平滑参数,若当前迭代得到的比值与上一次得到的比值的差异很小时,也即满足预设阈值要求时,停止迭代。
[0070]
从而,采用该实施例提供的基于图像的波动趋势识别方法,在滤波这一步,可根据时间序列自己的特征自适应的选取平滑参数,有利于计算机批量处理大量差异性的时间序列,进一步提升波动趋势识别的准确性。
[0071]
步骤s104:通过差分技术在光滑时间序列上确定拐点,以得到初始拐点。
[0072]
在确定光滑时间序列后,在该步骤中,基于查分技术确定拐点,在本发明中定义为初始拐点。
[0073]
可选地,在一种实施例中,设{y
t
}为波动曲线对应的时间序列,t=1,2,...,t,t为时间序列的时间长度,{y
tt
}为光滑时间序列,通过差分技术在光滑时间序列上确定拐点,以得到初始拐点的步骤包括:
[0074]
采用以下公式计算趋势状态序列stage(t):
[0075][0076]
得到趋势状态序列stage(t)后,根据趋势状态序列判断相邻两个时刻的趋势状态是否相同,具体地,相邻两个时刻均为1时,趋势状态均为上升趋势,均为-1时,趋势状态均为下降趋势,则相邻两个时刻的趋势状态相同,相邻两个时刻中一个为1,另一个为-1,表征该相邻两个时刻的趋势状态不同。当相邻两个时刻的趋势状态不同时,确定相邻两个时刻中的前一个时刻为初始拐点。
[0077]
步骤s105:在距离初始拐点的预定时间范围内进行峰谷搜索,以得到目标拐点。
[0078]
通过该步骤,利用峰谷搜索实现拐点的精确识别。图3为本发明实施例提供的目标拐点的示意图,如图3所示,从多个初始拐点中进一步筛选出目标拐点。
[0079]
可选地,在一种实施例中,步骤s105具体包括以下步骤:
[0080]
步骤s21:获取趋势状态序列,设置初始的搜索次数为1。
[0081]
其中,该步骤中的趋势状态序列为上述步骤s104得到的趋势状态序列。
[0082]
步骤s22:根据趋势状态序列搜索最小峰谷间隔。
[0083]
步骤s23:判断最小峰谷间隔是否小于第一时长阈值single_thresh。
[0084]
其中,若最小峰谷间隔小于第一时长阈值,执行步骤s24,若最小峰谷间隔大于或等于第一时长阈值,执行步骤s25。
[0085]
步骤s24:将最小峰谷间隔对应的峰谷之间的状态修改为相反状态,以更新趋势状态序列,并返回步骤s22。
[0086]
执行步骤s25:根据趋势状态序列搜索最小峰峰间隔。
[0087]
执行步骤s26:判断最小谷谷间隔是否小于第二时长阈值。
[0088]
其中,若最小谷谷间隔小于第二时长阈值,执行步骤s27,若最小谷谷间隔大于或等于第二时长阈值,执行步骤s28。
[0089]
步骤s27:将最小谷谷间隔对应的两个峰删除,将两个峰之间的最大值作为新的峰,并根据最新的峰谷更新趋势状态序列后,返回步骤s25。
[0090]
执行步骤s28:根据趋势状态序列搜索最小谷谷间隔。
[0091]
执行步骤s29:判断最小谷谷间隔是否小于第二时长阈值double_thresh。
[0092]
其中,若最小谷谷间隔小于第二时长阈值,执行步骤s30,若最小谷谷间隔大于或等于第二时长阈值,执行步骤s31。
[0093]
步骤s30:将最小谷谷间隔对应的两个谷删除,将两个谷之间的最大值作为新的谷,并根据最新的峰谷更新趋势状态序列后,返回步骤s28。
[0094]
步骤s31:在趋势状态序列中,将所有峰前后预设窗口范围内的局部极值点作为新的峰,将所有谷前后预设窗口范围band内的局部极值点作为新的谷。
[0095]
步骤s32:判断当前搜索次数是否达到搜索阈值。
[0096]
其中,若达到搜索阈值,执行步骤s33,若未达到搜索阈值,执行步骤s34。
[0097]
步骤s33:将最新的峰谷作为目标拐点。
[0098]
步骤s34:根据最新的峰谷更新趋势状态序列后,将所述搜索次数加1后,返回步骤s22。
[0099]
例如,若时间序列是日度数据,选择single_thresh=6,double_thresh=12,band=5,若时间序列是月度数据,single_thresh=20,double_thresh=40,band=10。
[0100]
其中,在上述步骤s21至步骤s34中,存在多次对趋势状态序列的更新以及基于趋势状态序列的搜索等,需要说明的是,每次更新所依据的趋势状态序列,均是在更新当前最新的趋势状态序列,每次搜索所依据的趋势状态序列,同样也是搜索当前最新的趋势状态序列。
[0101]
步骤s106:根据相邻目标拐点之间的峰谷关系确定波动曲线的波动趋势状态。
[0102]
具体地,在相邻目标拐点之间,若前一个目标拐点为波峰,后一个目标拐点为波谷,则该两个目标拐点对应的波动曲线的波动趋势状态为下降趋势,若前一个目标拐点为
波谷,后一个目标拐点为波峰,则该两个目标拐点对应的波动曲线的波动趋势状态为上升趋势。
[0103]
步骤s107:输出表征波动趋势状态的状态信息。
[0104]
通过该步骤,将表征波动趋势状态的状态信息输出,例如可以采用图示的方法输出。可选地,在一种实施例中,波动趋势状态包括上升趋势和下降趋势,输出表征波动趋势状态的状态信息的步骤包括:输出包括状态信息的波动曲线,其中,对应上升趋势的波动曲线部分采用第一显示方式显示,对应下降趋势的波动曲线部分采用第二显示方式显示。图4为本发明实施例提供的包括状态信息的波动曲线的示意图,如图4所示,在对应下降趋势的波动曲线部分增加覆盖层。
[0105]
在该实施例提供的基于图像的波动趋势识别方法中,获取到待识别图像中表征时间序列的波动曲线后,根据波动曲线确定平滑参数,并按照平滑参数过滤波动曲线中的短期波动,以得到光滑时间序列,然后通过差分技术在光滑时间序列上确定拐点,以得到初始拐点,在此基础上,根据初始拐点进一步判断,在距离初始拐点的预定时间范围内进行峰谷搜索,以得到目标拐点,根据相邻目标拐点之间的峰谷关系确定波动曲线的波动趋势状态,最后输出表征波动趋势状态的状态信息。采用该实施例提供的基于图像的波动趋势识别方法,以模拟人眼识别趋势为起点,先滤波处理,仅对滤波后的拐点进行局部高低点的判断,减少了大量无效的高低点识别,使得时间占用大为减少,提升了计算效率,同时,由于在滤波之后通过峰谷搜索对初始拐点进行了校准操作,得到目标拐点,按照目标拐点进行趋势识别,提升了拐点识别的准确性。
[0106]
相比现有技术逐点识别而言,采用该实施例对单个长度为200的时间序列的趋势识别计算时长减少至现有技术的1/20,提升计算效率,同时减少计算资源的占用,并且能够实现拐点的精准识别。
[0107]
实施例二
[0108]
对应于上述实施例一,本发明实施例二提供了一种基于图像的波动趋势识别装置,相应地技术特征细节和对应的技术效果可参考上述实施例一,在该实施例中不再赘述。图5为本发明实施例二提供的基于图像的波动趋势识别装置的框图,如图5所示,该装置包括:获取模块201、第一确定模块202、处理模块203、第二确定模块204、搜索模块205、第三确定模块206和输出模块207。
[0109]
获取模块201用于获取待识别图像中的波动曲线,其中,所述波动曲线表征时间序列;第一确定模块202用于根据所述波动曲线确定平滑参数;处理模块203用于按照所述平滑参数过滤所述波动曲线中的短期波动,以得到光滑时间序列;第二确定模块204用于通过差分技术在所述光滑时间序列上确定拐点,以得到初始拐点;搜索模块205用于在距离所述初始拐点的预定时间范围内进行峰谷搜索,以得到目标拐点;第三确定模块206用于根据相邻所述目标拐点之前的关系确定所述波动曲线的波动趋势状态;以及输出模块207用于输出表征所述波动趋势状态的状态信息。
[0110]
可选地,在一种实施例中,第一确定模块202具体执行的步骤包括:确定所述波动曲线对应的时间序列的类型;当所述时间序列的类型为月度数据时,确定所述平滑参数为第一预设平滑参数;当所述时间序列的类型为季度数据时,确定所述平滑参数为第二预设平滑参数;当所述时间序列的类型为年度数据时,确定所述平滑参数为第三预设平滑参数,
其中,所述第一预设平滑参数、所述第二预设平滑参数和所述第三预设平滑参数逐渐减小。
[0111]
可选地,在一种实施例中,{y
t
}为所述波动曲线对应的时间序列,t=1,2,...,t,t为所述时间序列的时间长度,{y
tt
}为所述光滑时间序列,λ为所述平滑参数,处理模块203具体执行的步骤包括:求解以下最小化问题的解,以得到所述光滑时间序列{y
tt
}:
[0112]
可选地,在一种实施例中,第一确定模块202具体执行的步骤包括:
[0113]
步骤s11:确定迭代平滑参数的初始值;
[0114]
步骤s12:根据所述迭代平滑参数计算所述光滑时间序列;
[0115]
步骤s13:根据所述时间序列和所述光滑时间序列计算波动序列;
[0116]
步骤s14:计算所述光滑时间序列的方差与所述波动序列的方差的比值,得到当前比值;
[0117]
步骤s15:判断所述当前比值与上一次比值的差是否小于或等于预设阈值,其中,当所述差小于或等于所述预设阈值时,输出所述当前比值作为所述平滑参数,当所述差大于所述预设阈值时,将所述当前比值作为所述迭代平滑参数,并返回至所述步骤s12。
[0118]
可选地,在一种实施例中,{y
t
}为所述波动曲线对应的时间序列,t=1,2,...,t,t为所述时间序列的时间长度,{y
tt
}为所述光滑时间序列,第二确定模块204具体执行的步骤包括:
[0119]
采用以下公式计算趋势状态序列stage(t):
[0120][0121]
根据所述趋势状态序列判断相邻两个时刻的趋势状态是否相同;以及
[0122]
当所述相邻两个时刻的趋势状态不同时,确定所述相邻两个时刻中的前一个时刻为所述初始拐点。
[0123]
可选地,在一种实施例中,搜索模块205具体执行的步骤包括:
[0124]
步骤s21:获取趋势状态序列,设置初始的搜索次数为1。
[0125]
步骤s22:根据趋势状态序列搜索最小峰谷间隔。
[0126]
步骤s23:判断最小峰谷间隔是否小于第一时长阈值single_thresh。
[0127]
其中,若最小峰谷间隔小于第一时长阈值,执行步骤s24,若最小峰谷间隔大于或等于第一时长阈值,执行步骤s25。
[0128]
步骤s24:将最小峰谷间隔对应的峰谷之间的状态修改为相反状态,以更新趋势状态序列,并返回步骤s22。
[0129]
执行步骤s25:根据趋势状态序列搜索最小峰峰间隔。
[0130]
执行步骤s26:判断最小谷谷间隔是否小于第二时长阈值。
[0131]
其中,若最小谷谷间隔小于第二时长阈值,执行步骤s27,若最小谷谷间隔大于或等于第二时长阈值,执行步骤s28。
[0132]
步骤s27:将最小谷谷间隔对应的两个峰删除,将两个峰之间的最大值作为新的峰,并根据最新的峰谷更新趋势状态序列后,返回步骤s25。
[0133]
执行步骤s28:根据趋势状态序列搜索最小谷谷间隔。
[0134]
执行步骤s29:判断最小谷谷间隔是否小于第二时长阈值double_thresh。
[0135]
其中,若最小谷谷间隔小于第二时长阈值,执行步骤s30,若最小谷谷间隔大于或等于第二时长阈值,执行步骤s31。
[0136]
步骤s30:将最小谷谷间隔对应的两个谷删除,将两个谷之间的最大值作为新的谷,并根据最新的峰谷更新趋势状态序列后,返回步骤s28。
[0137]
步骤s31:在趋势状态序列中,将所有峰前后预设窗口范围内的局部极值点作为新的峰,将所有谷前后预设窗口范围band内的局部极值点作为新的谷。
[0138]
步骤s32:判断当前搜索次数是否达到搜索阈值。
[0139]
其中,若达到搜索阈值,执行步骤s33,若未达到搜索阈值,执行步骤s34。
[0140]
步骤s33:将最新的峰谷作为目标拐点。
[0141]
步骤s34:根据最新的峰谷更新趋势状态序列后,将所述搜索次数加1后,返回步骤s22。
[0142]
可选地,在一种实施例中,所述波动趋势状态包括上升趋势和下降趋势,输出模块207具体执行的步骤包括:输出包括所述状态信息的所述波动曲线,其中,对应所述上升趋势的波动曲线部分采用第一显示方式显示,对应所述下降趋势的波动曲线部分采用第二显示方式显示。
[0143]
实施例三
[0144]
本实施例三还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图6所示,本实施例的计算机设备01至少包括但不限于:可通过系统总线相互通信连接的存储器011、处理器012,如图6所示。需要指出的是,图6仅示出了具有组件存储器011和处理器012的计算机设备01,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
[0145]
本实施例中,存储器011(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器011可以是计算机设备01的内部存储单元,例如该计算机设备01的硬盘或内存。在另一些实施例中,存储器011也可以是计算机设备01的外部存储设备,例如该计算机设备01上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,存储器011还可以既包括计算机设备01的内部存储单元也包括其外部存储设备。本实施例中,存储器011通常用于存储安装于计算机设备01的操作系统和各类应用软件,例如实施例二的基于图像的波动趋势识别装置的程序代码等。此外,存储器011还可以用于暂时地存储已经输出或者将要输出的各类数据。
[0146]
处理器012在一些实施例中可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器012通常用于控制计算机设备01的总体操作。本实施例中,处理器012用于运行存储器011中存储的程序代码或者处理数据,例如基于图像的波动趋势识别方法等。
[0147]
实施例四
[0148]
本实施例四还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储基于图像的波动趋势识别装置,被处理器执行时实现实施例一的基于图像的波动趋势识别方法。
[0149]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0150]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0151]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
[0152]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1