一种自适应金字塔变换方法及系统的制作方法
【技术领域】
[0001]本发明实施例涉及图像处理技术,尤其涉及一种自适应金字塔变换方法及系统。
【背景技术】
[0002]光流法将三维空间中的目标和场景对应于二维图像平面运动时,它们在二维图像平面的投影就形成了运动,这种运动以图像平面亮度模式表现出来的流动就称为光流。光流法是对运动序列图像进行分析的一个重要方法,光流不仅包含图像中目标的运动信息,而且包含了三维物理结构的丰富信息,因此可用来确定目标的运动情况以及反映图像等其它信息。
[0003]由于光流法本身存在的缺陷使得其必须满足时间变化不会导致位置产生剧烈变化这一条件,而采用金字塔LK(Lucas-Kanade)算法则可克服上述缺陷。在金字塔LK算法中,关键点在于图像金子塔的建立,在多层金字塔中可以对不同速度的目标进行精确跟踪。但同时,金字塔层数并不是越多越好,而是需要和速度相适应。如在采样窗口为11像素时,1层金字塔对帧间运动为2ppf (pixel per frame,像素每帧)像素的跟踪精确,3层金字塔对lOppf的运动跟踪精确。当窗口变大或精度要求不高时,相应的帧间运动像素会根据不同的层数依次对应放大(最多放大2倍)。
[0004]现有技术中,在使用金字塔LK算法时采用指定层数的方式,而图像中目标速度的变化通常并不恒定,当速度加快后金子塔层数相对缺少,无法确定目标的运动情况及其它图像信息。当目标速度变缓时,金字塔层数相对溢出则带来了大量不必要的运算,计算时间长且效率低,也会带来误差。
【发明内容】
[0005]本发明提供一种自适应金字塔变换方法及系统,解决了金字塔层数固定不变带来的图像处理效率低下,灵活性低的问题。
[0006]第一方面,本发明实施例提供了一种自适应金字塔变换方法,包括:
[0007]实时获取连续帧流,分别计算第i帧至第i+n帧图像像素的相对移动速度,其中,i大于1,n大于或等于1 ;
[0008]计算所述相对移动速度的绝对值的平均值V;
[0009]根据所述平均值V和层数阈值确定金字塔的层数。
[0010]在上述方案中,优选的是,所述根据所述平均值V和层数阈值确定金字塔的层数包括:
[0011]当V大于0且小于1时,金字塔层数设置为1;
[0012]当V大于2且小于3时,金字塔层数设置为2;
[0013]当V大于4且小于7时,金字塔层数设置为3;
[0014]当V大于8且小于15时,金字塔层数设置为4;
[0015]当V大于16时,金字塔层数设置为5。
[0016]在上述方案中,优选的是,所述分别计算第i帧至第i+n帧图像像素的相对移动速度包括:
[0017]计算第i帧图像像素的相对移动速度;
[0018]以第i帧图像为基准,计算第i+Ι帧图像像素的相对移动速度,依次类推,以前一帧图像为基准计算下一帧图像像素的相对移动速度直到第i+n帧。
[0019]在上述方案中,优选的是,在所述根据所述平均值V确定金字塔的层数之后,还包括:
[0020]根据所述确定的金字塔层数建立图像金字塔。
[0021]在上述方案中,优选的是,在所述获取连续帧流,分别计算第i帧至第i+n帧图像像素的相对移动速度之前,还包括:
[0022]开机初始化,设置第1帧图像像素的移动速度为0。
[0023]在上述方案中,优选的是,所述η为4。
[0024]第二方面,本发明实施例还提供了一种自适应金字塔变换系统,该系统包括:
[0025]相对速度计算模块,用于实时获取连续帧流,分别计算第i帧至第i+n帧图像像素的相对移动速度,其中,i大于1,n大于或等于1;
[0026]平均值计算模块,用于计算所述相对移动速度的绝对值的平均值V;
[0027]层数确定模块,用于根据所述平均值V和层数阈值确定金字塔的层数。
[0028]在上述方案中,优选的是,所述层数确定模块具体用于确定:
[0029]当V大于0且小于1时,金字塔层数设置为1;
[0030]当V大于2且小于3时,金字塔层数设置为2;
[0031]当V大于4且小于7时,金字塔层数设置为3;
[0032]当V大于8且小于15时,金字塔层数设置为4;
[0033]当V大于16时,金字塔层数设置为5。
[0034]在上述方案中,优选的是,所述相对速度计算模块具体用于:
[0035]计算第i帧图像像素的相对移动速度,并以第i帧图像为基准,计算第i+Ι帧图像像素的相对移动速度,依次类推,以前一帧图像为基准计算下一帧图像像素的相对移动速度直到第i+n帧。
[0036]在上述方案中,优选的是,还包括:
[0037]金字塔建立模块,用于在根据所述平均值V确定金字塔的层数之后,根据所述确定的金字塔层数建立图像金字塔。
[0038]在上述方案中,优选的是,还包括:
[0039]初始化模块,用于在所述获取连续帧流,分别计算第i帧至第i+n帧图像像素的相对移动速度之前,开机初始化并设置第1帧图像像素的移动速度为0。
[0040]在上述方案中,优选的是,所述η为4。
[0041]本发明通过金字塔层数随图像中目标移动速度的变化而自适应变化,解决了金字塔层数固定不变带来的图像处理效率低,灵活性差的问题,实现了图像处理过程中,对运动目标的精确跟踪且程序运行效率高的目的。
【附图说明】
[0042]图1是本发明实施例一中的自适应金字塔变换方法的流程图;
[0043]图2是本发明实施例二中的自适应金字塔变换系统的结构示意图;
[0044]图3是本发明实施例三中的自适应金字塔变换方法的流程图。
【具体实施方式】
[0045]下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0046]实施例一
[0047]图1为本发明实施例一提供的自适应金字塔变换方法的流程图,本实施例可适用于图像处理过程中目标物体非匀速运动的情况,该方法可以由嵌入式系统如在ARM芯片上执行,具体包括如下步骤:
[0048]步骤110、实时获取连续帧流,分别计算第i帧至第i+n帧图像像素的相对移动速度;
[0049]其中,i大于l,n大于或等于1。在图像处理过程中,每秒会经过十几帧到几十帧的图像变化,实时获取连续帧流即分别读取获得连续的多帧图像,例如i = 10,η = 3,则连续获得第10帧、第11帧、第12帧和第13帧图像。其中,被跟踪部分即目标物体在移动过程中其本身亮度恒定(自身像素不随时间变化),可通过光流法计算得出后一帧图像相对于前一帧图像的相对移动速度。
[0050]步骤120、计算所述相对移动速度的绝对值的平均值V;
[0051 ]其中,分别计算出的相对移动速度如vl,v2,v3可正可负,当物体加速运动时,所述相对移动速度为正,当物体做减速运动时其相对移动速度为负。由于本方案中只关心相对移动速度的大小而非加速或减速,故本步骤中取vl,v2,v3的绝对值后再进行平均值V的计笪并ο
[0052]步骤130、根据所述平均值V和层数阈值确定金字塔的层数;
[0053]其中,层数阈值为多次模拟实验得到的金字塔层数变换的最佳节点值。在层数确定过程中,将平均速度V分别与上升阈值和下降阈值进行比较最终确定金子塔的层数。
[0054]实验过程中发现,最高层金字塔中2ppf的运动速度可以适应图像处理的需求且达到精确跟踪的目的,以此为基础,速度每增加一倍就增加一层金字塔。所以,如果运动速度为8ppf,则调整图像金字塔层数为3层,启动第一层运动为8ppf,第二层运动为4ppf,第三层运动为2ppf,则可满足精确跟踪的需求。据此,得到的具体确定过程如下:
[0055]当V大于0且小于1时,金字塔层数设置为1;
[0056]当V大于2且小于3时,金字塔层数设置为2;
[0057]当V大于4且小于7时,金字塔层数设置为3;
[0058]当V大于8且小于15时,金字塔层数设置为4;
[0059]当V大于16时,金字塔层数设置为5。
[0060]金子塔层数达到4到5层时,嵌入式设备的资源占用率较高,能耗较大,层数再多则现有常用的嵌入式设备(如无人机上挂载的中控设备)不足以长时间支持。
[0061]由于在各帧之间图像相对移动速度会出现小幅震荡导致平均移动速度V也会进行相应震荡,为减小震荡所带来的金字塔层数频繁出现变换的情况,当平均移动速度V落在层数阈值的震荡区时,金字塔层数维持不变。如:第一时刻计算得到平均移动速度V为4.2,相应的金子塔层数设置为3层,第二时刻平均移动速度计算得出为3.8,此时根据层数阈值的比较发现并没有落在任何一个变化区间,则第二时刻金字塔层数维持在3层。故上述确定公式中各层之间的阈值并不连续。
[0062]其中上述阈值的确定是在采样窗口像素为11的情况下计算得出,当采样窗口变大或者在精度要求不高的情况下,上述阈值可适应性变化(具体变化的最大区间为上述阈值的两倍)。如阈值依次放大两倍,具体确定过程如下:
[0063]当V大于0且小于2时,金字塔层数设置为1;
[0064]当V大于4且小于6时,金字塔层数设置为2;
[0065]当V大于8且小于14时,金字塔层数设置为3;
[0066]当V大于16且小于30时,金字塔层数设置为4;
[0067]当V大于32时,金字塔层数设置为5。
[0068]该自适应金字塔变换方法的工作原理为:
[0069 ]利用光流法计算图像相邻帧之间的相对移动速度,取连续多帧相对移动速度的绝对值的平均值后,再根据层数阈值确定金字塔层数。通过金字塔LK算法得到目标相对移动速度较快时的图像相关信息。
[0070]本实施例的技术方案,通过金字塔层数随图像中目标移动速度的变化而自适应变化,解决了金字塔层数固定不变带来的图像处理效率低,灵活性差的问题,实现了图像处理过程中,对运动目标的精确跟踪且程序运行效率高的目的。
[0071]在上述技术方案的基础上,通过大量实验得出η取值为4时运行效率较高,效果良好。即每次在确定金子塔层数时,选取连续5帧的图像得到平均移动速度V。
[0072]在上述技术方案的基础上,进一步包括了嵌入式设备初始化的过程,初始化后摄像设备开启,此时系统得到第一帧(即i = l)时的图像,由于之前的帧画面并不存在,故无法计算得到i = 1时帧间相对移动速度,此时可将此帧的相对移动速度设定为0。
[0073]在上述技术方案的基础上,进一步包括根据所述确定的金字塔层数建立图像金字塔。图像金字塔建立完毕后,在金字塔的最高层计算光流,用得到的运动估计结果作为下一层金字塔的起始点,重复此过程直到金字塔的最底层。此时,可以实现对更快运动的目标物体的图像跟踪。
[0074]实施例二
[0075]图2所示为本发明实施例二提供的自适应金字塔变换系统的结构示意图,该自适应金字塔变换系统的包括:
[0076]相对速度计算模1,用于实时获取连续帧流,分别计算第i帧至第i+n帧图像像素的相对移动速度,其中,i大于1,n大于或等于1;
[0077]平均值计算模块2,用于计算所述相对移动速度的绝对值的平均值V;
[0078]层数确定模块3,用于根据所述平均值V和层数阈值确定金字塔的层数。
[0079]其中,所述层数确定模块1具体用于确定:当V大于0且小于1时,金字塔层数设置为1;当V大于2且小于3时,金字塔层数设置为2;当V大于4且小于7时,金字塔层数设置为3;当v大于8且小于15时,金字塔层数设置为4;当V大于16时,金字塔层数设置为5。
[0080]其中,所述相对速度计算模块2具体用于:计算第i帧图像像素的相对移动速度,并以第i帧图像为基准,计算第i+Ι帧图像像素的相对移动速度,依次类推,以前一帧图像为基准计算下一帧图像像素的相对移动速度直到第i+n帧。
[0081]其中上述η的取值优选为4。
[0082]该自适应金字塔变换的工作原理为:利用光流法计算图像相邻帧之间的相对移动速度,取连续多帧相对移动速度的绝对值的平均值后,再根据层数阈值确定金字塔层数。通过金字塔LK算法得到目标相对移动速度较快时的图像相关信息。
[0083]本实施例的技术方案,通过金字塔层数随图像中目标移动速度的变化而自适应变化,解决了金字塔层数固定不变带来的图像处理效率低,灵活性差的问题,实现了图像处理过程中,对运动目标的精确跟踪且程序运行效率高的目的
[0084]在上述技术方案的基础上,系统还包括:
[0085]金字塔建立模块,用于在根据所述平均值V确定金字塔的层数之后,根据所述确定的金字塔层数建立图像金字塔;
[0086]初始化模块,用于在所述获取连续帧流,分别计算第i帧至第i+n帧图像像素的相对移动速度之前,开机初始化并设置第1帧图像像素的移动速度为0。
[0087]上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
[0088]实施例三
[0089]图3为本发明实施例三提供的自适应金字塔变换方法的流程图。本实施例可以以上述实施例为基础,提供了一种优选实例。如图所示,具体包括:
[0090]步骤310、摄像装置获取连续5帧图像;
[0091 ]步骤320、分别计算每帧图像的相对移动速度vl ,v2,v3,v4,v5;
[0092]步骤330、计算所述相对移动速度的绝对值的平均值v;
[0093]步骤340、根据所述平均值V和层数阈值确定金字塔的层数并建立金字塔。
[0094]本实施例优选的获取连续5帧图像作为确定金子塔层数的原始依据,利用光流法分别计算出帧间相对运动的速度vl至v5,如计算出vl = 2.5ppf(pixel per frame,像素每帧),v2 = -4ppf, v3 = 4.5ppf,v4 = 5ppf,v5 = 5ppf,则计算得出v = (| vl | +1 v2 | +1 v3 | +1 v4 | +
v5 I )/5 = 4.2ppf。根据金字塔层数的确定方法,平均值为4.2其大于4且小于7,则最终确定的金子塔层数为3层。金子塔层数确定后,则相应建立金字塔。
[0095]步骤340执行完毕后,程序跳转至步骤310继续获取连续帧图像,并求得相对移动速度的平均值,如得到的值为10则相应建立拥有4层的金字塔模型。如此实时获取并对应改变金字塔的层数以实现层数随目标移动速度的自适应变化。
[0096]注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
【主权项】
1.一种自适应金字塔变换方法,其特征在于,包括: 实时获取连续帧流,分别计算第i帧至第i+n帧图像像素的相对移动速度,其中,i大于1,n大于或等于1 ; 计算所述相对移动速度的绝对值的平均值V; 根据所述平均值V和层数阈值确定金字塔的层数。2.根据权利要求1所述的自适应金字塔变换方法,其特征在于,所述根据所述平均值V和层数阈值确定金字塔的层数包括: 当V大于0且小于1时,金字塔层数设置为1; 当V大于2且小于3时,金字塔层数设置为2; 当V大于4且小于7时,金字塔层数设置为3; 当V大于8且小于15时,金字塔层数设置为4; 当V大于16时,金字塔层数设置为5。3.根据权利要求1所述的自适应金字塔变换方法,其特征在于,所述分别计算第i帧至第i+n帧图像像素的相对移动速度包括: 计算第i帧图像像素的相对移动速度; 以第i帧图像为基准,计算第i+Ι帧图像像素的相对移动速度,依次类推,以前一帧图像为基准计算下一帧图像像素的相对移动速度直到第i+n帧。4.根据权利要求1所述的自适应金字塔变换方法,其特征在于,在所述根据所述平均值#角定金字塔的层数之后,还包括: 根据所述确定的金字塔层数建立图像金字塔。5.根据权利要求1所述的自适应金字塔变换方法,其特征在于,在所述获取连续帧流,分别计算第i帧至第i+n帧图像像素的相对移动速度之前,还包括: 开机初始化,设置第1帧图像像素的移动速度为0。6.根据权利要求1-5任一项所述的自适应金字塔变换方法,其特征在于,所述η为4。7.—种自适应金字塔变换系统,其特征在于,包括: 相对速度计算模块,用于实时获取连续帧流,分别计算第i帧至第i+n帧图像像素的相对移动速度,其中,i大于1,n大于或等于1; 平均值计算模块,用于计算所述相对移动速度的绝对值的平均值V ; 层数确定模块,用于根据所述平均值V和层数阈值确定金字塔的层数。8.根据权利要求7所述的自适应金字塔变换系统,其特征在于,所述相对速度计算模块具体用于: 计算第i帧图像像素的相对移动速度,并以第i帧图像为基准,计算第i+1帧图像像素的相对移动速度,依次类推,以前一帧图像为基准计算下一帧图像像素的相对移动速度直到第i+n帧。9.根据权利要求7所述的自适应金字塔变换系统,其特征在于,还包括: 金字塔建立模块,用于在根据所述平均值V确定金字塔的层数之后,根据所述确定的金字塔层数建立图像金字塔。10.根据权利要求7所述的自适应金字塔变换系统,其特征在于,还包括: 初始化模块,用于在所述获取连续帧流,分别计算第i帧至第i+n帧图像像素的相对移 动速度之前,开机初始化并设置第1帧图像像素的移动速度为0。
【专利摘要】本发明公开了一种自适应金字塔变换方法及系统。所述方法包括:实时获取连续帧流,分别计算第i帧至第i+n帧图像像素的相对移动速度,其中,i大于1,n大于或等于1;计算所述相对移动速度的绝对值的平均值v;根据所述平均值v和层数阈值确定金字塔的层数。本发明解决了在图像处理过程中,由于目标物体变速移动,而金字塔层数固定不变带来的图像处理效率低下、能耗高、灵活性差的问题。
【IPC分类】G06T7/20
【公开号】CN105488813
【申请号】CN201510833836
【发明人】傅重阳, 郭双城, 杨霖, 杨建军
【申请人】零度智控(北京)智能科技有限公司
【公开日】2016年4月13日
【申请日】2015年11月25日