本发明涉及一种检测技术,特别是涉及一种基于宏观和微观的运动目标检测方法。
背景技术:
运动目标检测的主要任务在于可以快速稳定准确的检测出运动目标,其核心思想均基于前后视频帧差法或背景模型法,得到运动目标。现有视频帧差计算方法采用传统前后帧的差值来提前运动目标,计算过程为:目标等于当前视频帧减去前一个视频帧,以此来完成目标的提前。而现有背景模型法采取的是建模完毕再计算决策的思路,其基本过程为:先建立模型,再对模型进行学习和更新;完毕后再计算当前帧和背景模型的差值,得到最终的运动目标。
但是视频帧差计算方法的检测精度较低,而传统背景模型法计算像素变化时并没有考虑它相邻的像素,在计算运动目标时需要消耗较大的内存,不断的学习和更新背景模型,难以达到实时性的要求。
应该注意,上面对技术背景的介绍只是为了方便对本申请的技术方案进行清楚、完整的说明,并方便本领域技术人员的理解而阐述的。不能仅仅因为这些方案在本申请的背景技术部分进行了阐述而认为上述技术方案为本领域技术人员所公知。
技术实现要素:
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种能够提高运动目标检测的检测精度和实时性的基于宏观和微观的运动目标检测方法。
为实现上述目的,本发明提供了一种基于宏观和微观的运动目标检测方法,包括步骤:
将图像划分为至少两个宏块,并以宏块作为一个整体单位建立背景模型;
根据宏块的背景模型决策出运动目标。
优选的,所述将图像划分为至少两个宏块,并以宏块作为一个整体单位建立背景模型的步骤之后还包括步骤:
对检测出运动目标的宏块进行继续划分为至少两个小块区域,并对小块区域建立背景模型;
所述根据宏块的背景模型决策出运动目标的步骤包括:
对宏块的背景模型进行宏观决策出粗略运动目标,再根据粗略运动目标和检测出运动目标的宏块内的小块区域的背景模型进行微观决策出精确运动目标。先将图像划分为宏块,并建立背景模型,根据宏块的背景模型进行运动目标检测可以得到相对于现有技术稍强的精度;然后,检测到运动目标的宏块进行继续划分得到更小的小块区域,并建立小块区域的背景模型,再根据小块区域的背景模型进行运动目标检测可以进一步的提高本发明的检测精度。
优选的,所述将图像划分为至少两个宏块,并以宏块作为一个整体单位建立背景模型的步骤包括:
将一帧图像化划分为5个较大的宏块,利用codebook背景建模思想将这五个宏块进行背景建模;
利用codebook算法里的前景检测判断方法对该五个宏块进行逐个判断,如果其中某一块区域是前景,则递归下去,将该块区域划分为5个较小的小块区域,并对细化后的小块区域也进行codebook背景建模;
如果其中某一块区域是背景,则该块区域前景检测结束。划分的时候,将大区域划分为5个小区域,结合现有的算法可以得到较为理想的检测效果,特别是对边缘部分更是如此;在本方案,只对判定为前景的区域进行进一步的小块区域划分,这是因为以判定为前景的区域指代检测出运动目标的区域进行检测更加容易,可以提高计算速度和效率;而当判定某一块区域为背景时,将不再划分,则是因为该块区域和运动目标的检测关系不大,结束该区域的检测和计算可以提高计算效率;当然,如果有需要的话,可以根据递归原则,对小块区域进行继续划分,直至精度满足要求为止。
优选的,所述将该块区域划分为5个较小的小块区域的步骤中,使用n=2×m-1,且m为奇数的划分规则,其中n和m分别指的是宏块和小块区域中每行所包含的像素个数。例如,如果m=5时,n=9,这样的分层选取较为适用于本方案,当然,其他分层选取也是可以的。
优选的,所述的前景检测判断方法包括步骤:
输入像素x=(r,g,b),计算其亮度值
对于背景模型中的所有码字,如果存在码字符合预设匹配条件,则判断它是背景,否则为前景。
优选的,若存在码字cm与x满足以下两个匹配条件(a)和(b):
(a)、colordist(x,cm)≤ε2,其中ε2为检测阈值;
(b)、
则
优选的,所述前景检测判断方法包括步骤计算颜色区分度和亮度边界;
所述计算颜色区分度和亮度边界的步骤包括:
输入像素xt=(rt,gt,bt)、码字ci和矢量
根据输入像素xt=(rt,gt,bt)、码字ci和矢量
定义亮度变化的下限ilow和上限ihigh,并根据下限ilow和上限ihigh以界定阴影和高亮区域,对于每个码字,定义亮度变化范围使用了如下式子:
式中:一般0.4<α<0.7,1.1<β<1.5;当α取值越小时,亮度变化范围越大,定义亮度判别函数使用了如下式子:
优选的,对所述运动目标检测方法中使用到的浮点计算,进行浮点数定点化处理,将浮点数运算转换成乘法和除法。在图像、视频算法处理中对浮点操作定点化是极大提高系统的运算速度;本文算法中涉及到大量的浮点计算,影响了系统的整个检测速度,所以本方案在实际操作过程中,采用将浮点数运算转换成乘法和除法,例如i×0.4,可以转化为i×4/10,或者可以转化为i<<2/10。
优选的,若对宏块的检测未发现运动目标,则结束未发现运动目标的宏块的运动检测方法后续操作。一般情况下,场景中的运动目标只会存在一段时间,即占用的时间段很短暂,而过了这一段时间之后,该场景中就没有运动目标,为了减轻处理器的负担,本文算法对于前期宏观大区域的检测若没不含运动目标,则后期不进行更细细化的微观小区域检测,也不做边缘细节的检测,从而减轻算法的运算,降低cpu的负担。
优选的,对运动目标检测方法使用的cpu采用乒乓缓存策略进行内存优化管理。一般视频图像处理算法中经常会出现视频图像数据的拷贝、搬移。而实际管理事务和解决算法运算通常为不同的cpu,因此,为了加快系统的运行速度,保证算法的实时性,减少高频率的拷贝操作,采取乒乓缓存策略,以此来提升系统的性能。
现有技术的缺陷在于:(1)帧差法算法简单、计算量小,适用于动态环境,但其检测精度不高,抗噪性能差。(2)传统背景模型计算像素变化时并没有考虑它相邻的像素,在计算运动目标时需要消耗较大的内存,不断的学习和更新背景模型,难以达到实时性的要求。
本发明的有益效果是:本发明由于先将图像划分为不同的宏块后,并对各个宏块建立背景模型,再通过宏块的背景模型进行运动目标检测,由于划分为小块,因而相对于对整帧图像进行建模要容易,学习和更新背景模型也更为简单,提高了实时性;同时,由于相对于整帧图像进行分析检测更为细致,因而检测精度得到了不错的提高。
参照后文的说明和附图,详细公开了本申请的特定实施方式,指明了本申请的原理可以被采用的方式。应该理解,本申请的实施方式在范围上并不因而受到限制。在所附权利要求的精神和条款的范围内,本申请的实施方式包括许多改变、修改和等同。
针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。
应该强调,术语“包括/包含”在本文使用时指特征、整件、步骤或组件的存在,但并不排除一个或更多个其它特征、整件、步骤或组件的存在或附加。
附图说明
所包括的附图用来提供对本申请实施例的进一步的理解,其构成了说明书的一部分,用于例示本申请的实施方式,并与文字描述一起来阐释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明实施例一种基于宏观和微观的运动目标检测方法的流程图;
图2是本发明实施例一种基于宏观和微观的运动目标检测方法的方法示意图;
图3是本发明实施例区域划分示意图;
图4是本发明实施例颜色模型的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都应当属于本申请保护的范围。
图1是本发明实施例一种基于宏观和微观的运动目标检测方法的流程图,参见图1,一种基于宏观和微观的运动目标检测方法,包括步骤:
s1:将图像划分为至少两个宏块,并以宏块作为一个整体单位建立背景模型;
s2:根据宏块的背景模型决策出运动目标。
本发明的有益效果是:本发明由于先将图像划分为不同的宏块后,并对各个宏块建立背景模型,再通过宏块的背景模型进行运动目标检测,由于划分为小块,因而相对于对整帧图像进行建模要容易,学习和更新背景模型也更为简单,提高了实时性;同时,由于相对于整帧图像进行分析检测更为细致,因而检测精度得到了不错的提高。
图2是本发明实施例一种基于宏观和微观的运动目标检测方法的方法示意图,结合图1可知,本实施例优选的,将图像划分为至少两个宏块,并以宏块作为一个整体单位建立背景模型的步骤之后还包括步骤:
对检测出运动目标的宏块进行继续划分为至少两个小块区域,并对小块区域建立背景模型;
根据宏块的背景模型决策出运动目标的步骤包括:
对宏块的背景模型进行宏观决策出粗略运动目标,再根据粗略运动目标和检测出运动目标的宏块内的小块区域的背景模型进行微观决策出精确运动目标。先将图像划分为宏块,并建立背景模型,根据宏块的背景模型进行运动目标检测可以得到相对于现有技术稍强的精度;然后,检测到运动目标的宏块进行继续划分得到更小的小块区域,并建立小块区域的背景模型,再根据小块区域的背景模型进行运动目标检测可以进一步的提高本发明的检测精度;当然,如果有需要的话,可以对小块区域进行继续划分,直至划分数n层时,精度满足要求为止。
本实施例优选的,将图像划分为至少两个宏块,并以宏块作为一个整体单位建立背景模型的步骤包括:
将一帧图像化划分为5个较大的宏块,利用codebook背景建模思想将这五个宏块进行背景建模;
利用codebook算法里的前景检测判断方法对该五个宏块进行逐个判断,如果其中某一块区域是前景,则递归下去,将该块区域划分为5个较小的小块区域,并对细化后的小块区域也进行codebook背景建模;
如果其中某一块区域是背景,则该块区域前景检测结束。划分的时候,将大区域划分为5个小区域,结合现有的算法可以得到较为理想的检测效果,特别是对边缘部分更是如此;在本方案,只对判定为前景的区域进行进一步的小块区域划分,这是因为以判定为前景的区域指代检测出运动目标的区域进行检测更加容易,可以提高计算速度和效率;而当判定某一块区域为背景时,将不再划分,则是因为该块区域和运动目标的检测关系不大,结束该区域的检测和计算可以提高计算效率;当然,如果有需要的话,可以根据递归原则,对小块区域进行继续划分,直至精度满足要求为止。
本发明所涉及的codebook背景建模思想指的是运用codebook算法,即码本算法进行的背景建模方法,其中codebook算法其实是采用一种量化聚类技术,其核心思想是在背景建模之前,对一段视频序列中的每一个像素点构建一个或多个码字,即码本。然后,在目标检测时,根据颜色区分度和亮度两个准则判断当前像素到底是背景还是前景。
图3是本发明实施例区域划分示意图,本实施例优选的,将该块区域划分为5个较小的小块区域的步骤中,使用n=2×m-1,且m为奇数的划分规则,其中n和m分别指的是宏块和小块区域中每行所包含的像素个数。例如,如果m=5时,n=9,这样的分层选取较为适用于本方案,当然,其他分层选取也是可以的。
图4是本发明实施例颜色模型的示意图,结合图1、图2和图3可知,本实施例优选的,前景检测判断方法包括步骤:
输入像素x=(r,g,b),计算其亮度值
对于背景模型中的所有码字,如果存在码字符合预设匹配条件,则判断它是背景,否则为前景。
图4是本发明实施例颜色模型的示意图,结合图1和图2可知,若存在码字cm与x满足以下两个匹配条件(a)和(b):
(a)、colordist(x,cm)≤ε2,其中ε2为检测阈值;
(b)、
则
本实施例优选的,前景检测判断方法包括步骤计算颜色区分度和亮度边界;
计算颜色区分度和亮度边界的步骤包括:
输入像素xt=(rt,gt,bt)、码字ci和矢量
根据输入像素xt=(rt,gt,bt)、码字ci和矢量
其中,p是指xt在矢量vi上的投影长度,θ是p和xt的夹角。
定义亮度变化的下限ilow和上限ihigh,并根据下限ilow和上限ihigh以界定阴影和高亮区域,对于每个码字,定义亮度变化范围使用了如下式子:
式中:一般0.4<α<0.7,1.1<β<1.5;当α取值越小时,亮度变化范围越大,定义亮度判别函数使用了如下式子:
本案中,符号xt和x均指代输入像素,其主要区别在于适用于不同的公式当中。
本实施例优选的,对运动目标检测方法中使用到的浮点计算,进行浮点数定点化处理,将浮点数运算转换成乘法和除法。在图像、视频算法处理中对浮点操作定点化是极大提高系统的运算速度;本文算法中涉及到大量的浮点计算,影响了系统的整个检测速度,所以本方案在实际操作过程中,采用将浮点数运算转换成乘法和除法,例如i×0.4,可以转化为i×4/10,或者可以转化为i<<2/10。
本实施例优选的,若对宏块的检测未发现运动目标,则结束未发现运动目标的宏块的运动检测方法后续操作。一般情况下,场景中的运动目标只会存在一段时间,即占用的时间段很短暂,而过了这一段时间之后,该场景中就没有运动目标,为了减轻处理器的负担,本文算法对于前期宏观大区域的检测若没不含运动目标,则后期不进行更细细化的微观小区域检测,也不做边缘细节的检测,从而减轻算法的运算,降低cpu的负担。
本实施例优选的,对运动目标检测方法使用的cpu采用乒乓缓存策略进行内存优化管理。一般视频图像处理算法中经常会出现视频图像数据的拷贝、搬移。而实际管理事务和解决算法运算通常为不同的cpu,因此,为了加快系统的运行速度,保证算法的实时性,减少高频率的拷贝操作,采取乒乓缓存策略,以此来提升系统的性能。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。