具体实施方式
检测视频流中人的存在的基础
用于检测人存在的计算机视觉算法可以有很多种,具有它们自身的缺点和优点。一种技术通过确定前景中是否存在活动,即通过比较帧与背景来检测人的存在。另一种技术通过确定是否存在运动来检测人的存在,即通过比较帧与先前帧。基于前景和基于运动的技术都很简单,但是当视频流中的移动非人物体时,任何一种技术都会产生误报,例如移动植物,系绳气球在空中移动,旋转风扇。因此,任何一种技术都不能在户外使用。虽然另一种技术通过分析轮廓、形状,颜色或其他特征码的帧来检测人的存在。由于复杂的图像处理算法,这种技术可能是计算密集型的,因此并不总是适用于实时应用。
人为占用和一般占用
如本文所使用,人为占用意味着视频流中存在一个或多个人,例如,在视频流的一个或多个帧中人视觉上呈现。示例性的场景包括男人可以穿过一个区域并且离开,在监控区域女人可以坐下并打字,孩子可以在婴儿床玩玩具等。为了更准确地检测人的占用,如何理解占用与移动非人物体有关的某种运动如何不同是很重要的。一般而言,人为占用与不规则的运动有关,并且在某些方面运动可以被看作“能量的突发”。例如,男子从一个房间的一边走到椅子上坐下,这可以被检测为不规则的运动突发。相比之下,非人为运动是周期性的或偶发性的(重复的和规则的,但不一定是周期性的)。例如,移动在空中摇摆的植物的运动通常是偶发的,这通常可以被检测为重复运动。在另一个例子中,旋转风扇是周期性的,可以检测为周期性的运动。虽然本文中的一些示例性方案涉及检测人为占用,但是本发明设想到这些方案可以用于检测一般占用。一般占用的例子包括空间是否被动物、汽车、物体等占用
独特的占用检测技术
认识到人为运动与某些非人为运动的差异,技术可以通过多个处理阶段精确地检测人为占用或一般占用。在一个阶段中,背景帧差异可以通过积分来定位前景区域,同时排除偶发或周期性移动(例如,风扇、植物等)。在第二阶段,帧内差异可以积累运动。在第三阶段,前景区域中的累积运动产生信号。在第四阶段,对信号执行时域分析以检测占用,同时能够排除某些类型的非人为运动。通过多个阶段,该技术可以准确地检测占用,同时排除通常与那些类型的非人为运动相关的某些类型的周期性或偶发性运动。其结果是可以减少其他技术有可能产生的误报。而且,该技术可以在低成本、低功耗、高效的数字信号处理器或其他合适的硬件上高效地实现,使得该解决方案特别适合实时应用。
占用检测***
图1根据本发明的一些实施例,示出了说明性占用检测***。占用检测***100将视频流作为输入(例如,来自相机、数字成像装置、视觉传感器等)并且生成输出O(i)。视频流包括帧序列(即,在一段时间内捕获的图像),并且每个帧具有有相应像素值的像素。输出O(i)可以是与窗口或时间段相关的分类结果的序列,其中每个分类结果表明给定窗口或时间段(在一些情况下,对于特定时间实例)的占用或无占用。占用检测***100包括前景积分模块102、运动累积模块104、求和模块106和时域分析块108。前景积分模块102生成一个或多个前景区域D(t)。运动累积模块104产生运动图R(t)。这些模块中的每一个执行占用检测技术的阶段,目的在于检测占用,同时排除某些非人为的运动。
如果需要,可以将输出O(i)提供给一个或多个(可选的)分类器110以提高鲁棒性。分类器110可以包括以下的一个或多个:头部检测算法、基于皮肤和头发的(高级别)图像分类器、基于边缘的分类器、基于梯度的分类器、基于颜色的分类器、频域分析等,占用检测***100还可以包括一个或多个用于存储数字数据的计算机可读非临时性介质,数字数据包括模块生成的输入、输出和任何中间输出/数据。
占用检测***100操作以处理视频流的帧产生具有与窗口或时间段相关的分类结果序列的输出O(i)。在一些实施例中,前景积分模块102和运动累积模块104可以用作初始分类器,视频帧是否具有值得进一步处理的活动。如果前景区域很少或者没有前景区域和/或运动图表明很少或者没有运动,则求和模块106和时域分析模块108不被执行或者被跳过。输出O(i)表明没有占用。在一些实施例中,求和模块可以用作分类器,视频帧是否具有值得进一步处理的一些活动。如果求和模块106X(t)的输出表明很少或没有活动,则时域分析模块108不被执行或被跳过。输出O(i)表明没有占用。模块的中间输出或数据(例如,前景图、前景区域、差异图、运动图、X(t)中的一个或多个)可以被存储和/或缓存在非暂时性计算机可读介质中。以这种方式,时域分析模块108可以使用(过去的)输出/数据一次(后续)输出表明值得进行进一步处理的活动。
在一些实施例中,占用检测***100的模块执行的处理可以利用并行性和流水线操作,例如允许实时执行占用检测。例如,前景积分模块和运动累积模块可以并行实现。在另一个实例中,同一帧的像素的处理也可以并行执行,因为像素的处理不依赖于相同帧的其他像素。
所示的模块可以对应于能够实现或执行嵌入非暂态介质中,具有用于执行占用检测的操作的指令的代码的硬件处理器。在一些情况下,模块可以对应于提供或合成以执行占用检测的操作的专用硬件或电路。所示的模块示出了技术的信号流和处理信号流的模块。不是视频流的所有帧都被占用检测***100处理。如果帧被认为携带冗余信息或者认为对于精确的占用检测不是必需的,则可以跳过对一个或多个帧的处理。如果单独的处理模块和/或传感器表明没有占用的可能(例如,基于来自例如高级图像过滤器、温度传感器、运动传感器、压力传感器、热传感器,安全传感器(例如门)、时钟等的输出),则可以跳过对一个或多个帧的处理。
前景积分模块
对应于前景积分模块102的占用检测阶段之一涉及生成前景图。基于前景图,被称为“前景区域”的兴趣区域可以基于排除偶发和/或周期性运动的独特形式的积分来定位。图2根据本发明的一些实施例,示出了说明性前景积分模块。前景积分模块102可以处理视频流的多个帧以产生包括时间t上的零个、一个或多个前景区域的输出D(t)。前景积分模块102可以包括背景减法模块202、阈值模块204、积分模块206和阈值模块207。对于时间t=T的给定帧,产生前景图,并且时间t=T上的给定帧可以具有零个、一个或多个定位为输出D(t=T)的前景区域。对于与时间t的多个实例相关联的多个帧,针对时间t的多个实例生成多个前景图。对于实例时间t=T,可以有零个、一个或多个前景区域D(t=T)。
对于时间t=T上的给定帧,背景减除模块202和阈值模块204通过确定哪些像素属于前景以及哪些像素属于背景来生成前景图。可以使用许多合适的算法(例如,背景减方法)来生成具有前景像素值的这样的前景图,前景像素值标识给定帧的与背景参考帧不同的像素。背景参考帧可以由一个或多个参考帧208提供。前景像素值可以采取二进制值(例如,0或1),或者表明相对于背景,属于前景的像素的可能性的值的任何合适的数值范围。阈值模块204(即,第一阈值)可以是自适应的(例如,随时间改变,基于输入条件的改变而改变),或基于一个或多个条件或参数可编程。
在一个示例中,具有前景像素值的前景图(例如,对应于该帧的每个像素的值的阵列)通过阈值转换法确定。如果给定帧的给定像素的像素值与背景参考帧的对应像素值之间的差值大于第一阈值,则将第一前景像素值赋值给给定像素;否则,如果差值小于或等于第一阈值,则将第二前景像素值赋值给给定像素。差异部分可以由背景减法模块202基于给定帧和一个或多个参考帧208来执行。阈值部分可以由阈值模块204执行。
通过以下示例性操作来说明,在时间t=T上给定像素具有由foreground_pixel_value(t)表示的前景像素值的前景图的生成:
change(t)=abs(given_frame(t)-reference_frame)
对于给定帧的多个像素,可以重复该操作生成给定帧的1和0的前景图。
在一些实施例中,当在图像帧中检测到显著的和持久的变化时,来自一个或多个参考帧208的背景参考帧可以使用背景更新模块210更新,例如,光变化、自动百叶窗、物体移动等。例如,背景更新模块可以实现光变化检测算法。用于检测光变化以及相应地更新一个或多个参考帧208。
在一些实施例中,可以使用一个或多个形态学处理(斑点分析、连通性分析或其他形态学图像处理)处理前景图以提供去噪效果,例如去除寄生噪声和/或去除小的或不相关的变化(例如,去除可能由噪声引起的前景图中的1)。也可以使用其他适合于提供消除噪音效果的操作。
然后,在时间t的不同实例上的前景图序列被提供为积分模块206的输入。积分模块206有助于排除偶发和/或周期性运动。积分模块206所基于的见解是诸如旋转风扇或移动空中摇摆的植物的偶发和/或周期性运动将在前景图的窗口上,产生0和1之间翻转的前景像素值。优选地,积分模块206将排除有具有这种行为的前景像素值的像素。在一些实施例中,积分模块206可以在第一移动窗口上通过在每个像素的基础上将的前景像素值进行积分(例如,在时间t=T-X到t=T的前景图上)定位一个或多个前景区域(在时间t=T的前景图中)并且比较该积分值与第二阈值以定位一个或多个前景区域(在一些情况下,定位结果可能没有前景区域)积分模块206可以提供以下的一个或多个:移动平均积分、任何合适的基于窗口的积分以及加权积分器等。合适的积分模块206可以在前景图的窗口上累加和/或组合前景像素值(例如,在时间t=T-X到t=T的前景图的X*帧率上,其中X是窗口中的秒数),同时使用积分来在前景图的第一移动窗口上排除前景图像素中具有偶发或周期性的变化的像素,不作为前景区域的一部分。根据应用,前景图的窗口可以包括前景图的X=10-20秒。
在一些实施例中,积分前景像素值包括在前景图的第一移动窗口上计算给定像素的前景像素值的加权积分。可以使用具有与前景图窗口相对应的多个栏标的滤波器来实现加权积分,滤波器的系数对应于积分的权重。滤波器可以输出乘以相应的前景像素值的系数之和。换而言之,可以使用基于积分器的(一阶)无限脉冲响应(IIR)滤波器来实现或估计加权积分。IIR滤波器可以基于给定像素的先前积分值和当前前景像素值的加权和计算给定像素的积分值。IIR滤波器可以有效地在前景图的窗口上迭代地积分给定像素的前景像素值:
integrated(t)
=α*integrated(t-1)+(1-α)
*foreground_pixel_value(t)
有利地,基于积分器的IIR滤波器可以节省存储器的使用。此外,利用IIR滤波器,在时间t=T上的当前前景像素值通过基于过去的前景像素值的积分值迭代地计算,从而用作智能积分器。一般而言,alpha值取决于提供给积分值(基于过去的前景像素值计算)的权重和提供给当前前景像素值的权重。如果在前景图的X*帧率上积分前景像素值,则α可以被定义为1/(X*帧率)。
对于时间t=T,积分模块206和阈值模块207定位零个或一个或多个前景区域。在一些实施例中,选择这样的积分的系数或权重,在前景图的窗口上当前景像素值在0和1之间翻转时产生较小的输出(即,在时间t=T的实例上给定像素的积分值)而当前景像素值从0切换到持续若干个1时,产生较大的输出(即,在时间t=T的实例上的给定像素的积分值)。利用这种行为,可以通过阈值模块207对给定像素的积分值对照第二阈值进行测试。如果前景图的第一移动窗口上的给定像素的前景像素值的积分值大于第二阈值,阈值模块207可以将给定像素赋值给前景区域(可能与占用相关,赋值1),否则,阈值模块207将不把给定像素赋值给前景区域(考虑像素作为背景的一部分或与某些非人为活动相关,赋值0)。阈值模块207执行的操作由以下示例性操作示出:
在一些实施例中,因为可以被容易地压缩并节省大量的存储器,具有前景区域(例如,具有0和1的二进制帧)的帧可以被保存为压缩的位图;使用压缩的位图可以在低存储器芯片上实现占用检测方案,并且由于对外部存储器的访问少得多,因此节省了电力。
使用积分模块206和阈值模块207,前景积分模块102可以生成输出D(t),在前景图的第一移动窗口上,因为不是前景区域的一部分,输出D(t)可以排除前景像素值中具有偶发或周期性变化的像素。具体而言,输出D(t)可以具有以下说明性特征。当场景中存在静态或固定的变化时(例如移动的椅子,保持在桌子上的包),输出D(t)将具有不会随时间变化,恒定的前景区域。当有人走路或坐着工作时,输出D(t)会随时间而变化。当有植物移动或风扇旋转时,输出D(t)几乎没有前景区域,因为在周期性变化下积分会产生不会超过阈值的小的积分值。阈值模块207(即,第二阈值)可以是自适应的(例如,随时间改变,基于输入条件的改变而改变),或基于一个或多个条件或参数可编程的。
运动累积模块
对应于运动累积模块104的占用检测阶段之一涉及生成运动图。具体而言,运动累积模块104旨在检测并且积累运动活动,使得运动图可以用作帧中运动能量的指示器。图3根据本发明的一些实施例,示出了说明性运动累积模块。运动累积模块104可以处理视频流的多个帧以生成包括时间t的多个实例的多个运动图的输出R(t)。时间t的运动图具有运动像素值,运动像素值可以表明多个像素在时间t上足够的运动或活动。运动累积模块104可以包括变化检测模块302、阈值模块304、累加模块306和阈值模块308。对于时间t=T的给定帧,生成差异图,并且运动图也作为输出R(t=T)产生。对于与时间多个t的实例相关的多个帧,在时间t的多个实例上生成多个差异图和多个运动图。
对于时间t=T上的给定帧,变化检测模块302和阈值模块304通过帧内或帧间是否有足够的变化来生成差异图。可以使用许多合适的算法(例如,运动检测算法)生成具有差异像素值的差异图,差异像素值标示给定帧与给定帧之前的帧不同的像素。给定帧之前的帧可以由一个或多个先前帧310提供。差异像素值可以采取二进制值(例如,0或1),或者表明帧内或帧间的变化量的值的任何合适的数值范围。
在一个实例中,具有差异像素值的差异图(例如,对应于帧的每个像素的值的阵列)通过阈值转换法确定。如果给定帧的给定像素的像素值与给定帧之前的帧的对应像素值之间的差值大于第三阈值,则将第一差像素值赋值给给定像素;否则,如果差值等于或小于第三阈值,则将第二差像素值赋值给给定像素。差异部分可以由变化检测模块302基于给定帧和一个或多个先前帧310来执行。阈值部分可以由阈值模块304执行。阈值模块304,即第三阈值可以是自适应的(例如,随时间改变,基于输入条件的改变而改变),或基于一个或多个条件或参数可编程。
通过以下示例性操作来说明使用motion_difference(t)表示的,时间t=T上具有差异像素值得差异图的生成:
motion_difference(t)=abs(given_frame(t)-previous_frame)
对于给定帧的多个像素可以重复该操作,生成给定帧的1和0的差异图。在一些实施例中,具有差异像素值的帧(例如,具有0和1的二进制帧)可以被保存为压缩的位图,因为它可以被容易地压缩并节省大量的存储器;使用压缩的位图可以在低存储器芯片上实现占用检测方案,并且由于对外部存储器的访问少得多,因此节省了电力。
在一些实施例中,可以通过一个或多个形态学操作(斑点分析、连通性分析或其他形态学图像处理)来处理差异图以提供去噪效果,例如去除寄生噪声和/或去除帧内或帧间小或不相关帧差异(例如,在可能由噪声引起的差异图中去除1)。也可以使用其他适合于提供消除噪音效果的操作。
然后,将在时间t的多个实例上的一系列差异图作为输入提供给累积模块306。在差异图的第二移动窗口上通过生成具有通过基于每个像素,差异像素值的累积的运动像素值的运动图,累积模块306有助于检测具有足够能量的运动(并且消除不具有大量能量的运动)。积累模块306所基于的见解是占用活动将产生具有大量的能量的运动。例如,与打字等占用相关的小动作会产生小的运动;随着时间变化小运动被累积,可以从运动像素值中检测到能量的大小。优选地,累积模块306将标识呈现足够运动的像素。在一些实施例中,累加模块306可以累积差异像素值(对于给定像素)包括:计算在差异图的第二移动窗口上的给定像素的差异像素值的总和(例如,差异图的M×帧率时间t=T-M到t=T,其中M是窗口中的秒数,例如10-20秒):
在一些实施例中,差异像素值的总和是加权和。在一些实施例中,差异像素值的总和由移动窗口积分器提供。在一些实施例中,可以使用IIR滤波器来实现累积,这可以节省存储器。此外,利用IIR滤波器,以前的前景像素值在时间t=T时与当前的前景像素值迭代求和,因此用作智能累加器。
基于总和,阈值模块308可以生成可以表明每个像素的运动量(例如,1(充足运动)或0(运动不足)或值的其他适当范围)的运动图。为了确定运动像素值,对于给定像素,可以对照累积模块计算的累积值与阈值模块308的第四阈值进行测试。在前景图的第二移动窗口上,如果给定像素的差异像素值的累加值大于第四阈值(具有足够的移动),阈值模块308可以将第一移动像素值赋值给给定像素(赋值为1);否则,如果累加值等于或小于第四阈值,则阈值模块308可以将第二运动像素值赋值给给定像素(赋值为0)。阈值模块308执行的操作由以下示例性操作示出:
对于给定帧的多个像素可以重复该操作以生成给定帧的1和0的运动图。阈值模块308(即,第四阈值)可以是自适应的(例如,随时间改变,基于输入条件的改变而改变),或基于一个或多个条件或参数可编程。
在一些实施例中,可以通过一个或多个形态学操作(斑点分析、连通性分析或其他形态学图像处理)来处理运动图以提供去噪效果,例如去除寄生噪声和/或去除小的或不相关的运动活动(例如,移除可能由噪声或某些非人为活动引起的运动图中的1)。也可以使用其他适合于提供消除噪音效果的操作。
在一些实施例中,过去的帧的运动图被无损地压缩并存储在计算机可读的非暂态存储器中。
求和模块和时域分析模块
在前景积分和运动累积之后,占用检测产生可以用于分类存在占用和没有占用的信号。如之前所讨论的,与占用相关的运动或活动倾向于显示能量突发,并且这样的能量突发通常在时间上是不相关的。因此,占用检测***100产生信号:如果在时间t上绘制,当有占用时,则该信号将呈现峰值(与能量突发相关,与时间或时间段不相关),并且如果没有占用,则没有峰值(在一些情况下,信号具有在时间上相关的峰值,表明能量与占用无关)。
为了产生信号,特别是时间序列信号X(t),占用检测***将一个或多个前景区域D(t)中的运动图R(t=T)中的运动像素值求和为时间序列信号X(t)的样本X(t=T)。为了对一个或多个前景区域中的运动像素值求和,可以使用运动区域的积分图像(或积分区域表格)(这可以节省许多计算)。然后对时间序列信号进行分析以评估给定窗口或时间段内是否存在峰值。尽管与非为人占用相关的运动将作为X(t)信号中的活动出现,但是这种运动不会在X(t)中呈现为峰值,或者即使它在X(t)中呈现为峰也是与时间相关。因此,占用***可以准确地检测出占用,同时排除某些非人为动作来减少误报。
图4根据本发明的一些实施例,示出了说明性求和模块和时域分析块。求和模块106将一个或多个前景区域中的运动像素值相加以生成时间序列信号X(t)的采样X(t=T),并且时域分析块108对时间序列X(t)信号执行时域分析来检测占用,或者不占用。图5根据本发明的一些实施例,图示了使用求和模块时间序列信号的生成。在这个例子中,运动图D(t=T)被示出为具有局部前景区域D(t=T)的斑点矩形。斑点区域中的运动像素值具有值1,而斑点区域之外的运动像素值具有值0。斑点中D(t=T)的运动像素值D(t=T)(在图中示出为网格图案,具有多个1)由求和模块106求和产生时间序列信号X(t)的样本X(t=T)。对于时间t的许多实例上执行这种操作。
时间序列信号的时域分析
如前所述,时域分析所基于的见解是人为运动(与人为占有相关)将被视为X(t)中的峰值(不规则的能量突发,与时间不相关),并且诸如在房间内移动植物,旋转风扇,窗帘移动等特定非人为运动将在X(t)(可能与时间相关的峰值)中产生一些与人为占用相关的峰值数值上不同的活动。例如,如果X(t)有许多时间相关的高峰值,或者随着时间呈现出类似的行为,则意味着X(t)中的运动能量与非人为活动相关联。对时域分析的进一步认识是周期性/偶发性的非人为运动会产生一个均值(μ)和方差(σ),这表明X(t)在时间块内与时间相关的。这种见解也适用于一般占用,而不仅仅是人的占用,例如占用空间的汽车和占据空间的动物。
通过检查均值和方差,可以在数值上区分人为运动与X(t)中存在的某些非人为运动。换句话说,如果时间序列信号的运行均值没有暗示或者表明X(t)在时间上相关和/或时间序列信号的运行方差不表明或者表明X(t)相关时间,时间序列信号X(t)可能暗示占用。
生成均值和方差
为了生成均值和方差,确定μ和σ模块402可以使用以下数值运算来估计或确定给定时间t=T处的(运行)均值和(运行)方差,数值运算等同于计算运行时间序列信号X(t)的均值和时间序列信号X(t)的运行方差:
上述计算可以简化为更简单的数字信号处理操作,例如:
生成均值和方差的有限差值
时域分析的一个方面是检查从t=T-1到t=T的均值与从t=T-1到t=T的方差之间的差(即,比较连续均值和方差)。如果均值和方差在时间上是相关的,则从t=T-1到t=T的均值与从t=T-1到t=T的方差之间的差将具有小的值。另外,如果信号X(t)在时间上相关,则方差通常较低。在图(X)随时间变化的曲线图中,曲线将显示低的方差值和几乎/基本上平坦的均值。
为了检查从t=T-1到t=T的均值与从t=T-1到t=T的方差之间的差,相关性分析模块406可以使用以下数值运算,计算运行均值的第一有限差值(Div_Mean(t))以及时间t处的运行方差(Diff_Variance(t))的第二有限差值:
生成有限差值的平均值
时域分析的另一个方面包括找出多个时间段或时间窗口的Diff_Mean(t)的平均值和多个时间段或时间窗口的Diff_Variance(t)的平均值。检查多个时间段的有限差值的平均值可以数字地确定时间序列信号X(t)是否具有与占用相关的峰值。相关性分析模块406可以计算多个第一平均值(Avg_Diff_Mean(i)),其中每个第一平均值是基于第一有限差值(Diff_Mean(t))的值的窗口来计算的,并且计算多个第二平均值(Avg_Diff_Variance(i)),其中每个第二平均值是基于第二有限差值(Diff_Variance(t))的值的窗口来计算的。窗口可以重叠或不重叠。
为了检查平均差,相关性分析模块406可以使用以下数值运算来计算平均差:
如果一个或多个时间段或如果多个时间段完全不显示任何峰值(例如,如果平均值等于或低于阈值),则时域分析没有检测到占用。如果一个或多个时间段或多个时间段显示峰值(例如,如果平均值高于阈值),则时域分析检测到占用。通过这个平均过程,相对于基于与人为活动(例如,能量上涨的运动)相关的X(t)中的活动计算的平均值,与某些非人为活动(例如,周期性或偶发性移动)相关的X(t)中的活动将被转换成较小的平均值。当时间块的差异与时间相关时(在时间块上相关),平均值几乎不显示任何意义。因此,如果串联的多个第一平均值的一个或多个(或多个)第一平均值大于第五阈值,则相关性分析模块406可以检测占用,否则检测不到占用。此外,如果串联的多个第二平均值中的一个或多个(或多个)第二平均值大于第六阈值,则相关性分析模块406可以检测占用,否则检测不到占用。第五阈值和/或第六阈值可以是自适应的(例如,随时间改变,基于输入条件的改变而改变),或基于一个或多个条件或参数可编程的。
换句话说,为了检测到占用,Avg_Diff_Mean(i)和Avg_Diff_Sigma(i)应该具有高于阈值的值,即,在几个i值处示出一个或多个峰值。如果这些值不在阈值之上,即对于几个i值完全没有峰值,则没有检测到占用。在一些实施例中,为了提高鲁棒性,相关性分析模块406检查给定数量的时段的Avg_Diff_Mean(i)和Avg_Diff_Variance(i)是否同时在各自阈值之上以触发占用检测。在一些其它实施例中,相关性分析模块406检查给定数量的时段的Avg_Diff_Mean(i)或Avg_Diff_Variance(i)的平均值是否同时高于相应的阈值以触发占用检测以提高鲁棒性。
占用检测方法
图6根据本发明的一些实施例,示出了用于检测视频流中的占用情况同时将人为运动与某些非人为运动进行区分的示例性方法的流程图。该方法还可以应用于检测其他运动,例如,进入停车位的车辆,进入围栏的动物,放置在房间中的物体和进入房间的机器人。该方法可以用于减少由与某些非人为运动相关的周期性或偶发性运动(例如旋转的风扇,由于风扇而移动的植物)引起的误报。该方法可以通过图1-5中所示的***和模块来执行。该方法包括处理视频流的多个帧。对于给定帧,处理包括:(1)确定具有前景像素值的前景图,前景像素值标识给定帧的不同于背景参考帧的像素(任务602);(2)定位前景图中的一个或多个前景区域,在前景图的第一个移动窗口上,通过在每个像素的基础上积分前景像素值(任务604),(3)确定具有差异像素值的差异地图,差异像素值识别给定帧与帧先前的差异,给定帧的像素,(任务606);(4)在差异图的第二移动窗口上,通过在每个像素基础上积分差异像素值生成运动图(任务608);(5)一个或多个前景区域求和运动像素值以生成时间序列信号的样本(任务610),并且对时间序列信号执行时域分析以检测占用(任务612)。
第一个示例性场景:人为占用
图7A-D根据本发明的一些实施例,示出了第一示例性场景的时间序列信号、运行均值、运行方差、第一平均值和第二平均值的图。在图7A中可以看出,信号X(t)表现出与人占用相关的几个峰值,并且在与非人为运动(例如旋转风扇)相关联的“平坦”时段期间表现出一些活动。图7B-C分别显示运行均值Mean(t)和运行方差Variance(t)。图7D显示了Avg_Diff_Mean(i)和Avg_Diff_Variance(i)的图。使用示例性阈值0.7,通过将平均值与阈值进行数值比较,可以准确地检测人的占用,同时排除与非人为移动相关的时间段。
第二示例性场景:无人占用
图8A-D根据本发明的一些实施例,示出了第二示例性场景的时间序列信号、运行均值、运行方差、第一平均值和第二平均值的图。在图8A中可以看出,信号X(t)没有表现出与人占用相关的峰值,并且表现出与非人为运动有关的两个活动周期。图8B-C分别显示运行平均值Mean(t)和运行方差Variance(t)。图8D显示了Avg_Diff_Mean(i)和Avg_Diff_Variance(i)的图。使用示例性阈值0.7,通过将平均值与阈值进行数值比较,可以减少误报并且将两个时段排除为与非人为运动相关联。
第三示例性场景:无人占用
图9A-D根据本发明的一些实施例,示出了第一示例性场景的时间序列信号、运行均值、运行方差、第一平均值和第二平均值的图。在图9A中可以看出,信号X(t)表现出具有两个峰值的时间段,这两个峰值与人的占用(男人进入区域并且离开)相关联,并且在延长的“平坦”表现多个与非人为运动有关的活动。图9B-C分别示出运行平均值Mean(t)和运行方差Variance(t)。图9D显示了Avg_Diff_Mean(i)和Avg_Diff_Variance(i)的图。使用示例性阈值0.7,通过将平均值与阈值进行数值比较,可以准确地检测人的占用,同时排除与非人为移动相关的时间段。
变型和实现
许多数值计算应用了阈值。本领域技术人员可以理解,阈值可以根据应用而变化。然而在一些实施例中阈值是根据经验确定的,在一些实施例中,阈值可以是自适应的(例如,随时间变化或者基于诸如噪声水平、视频流、信号X(t)等的其他因素而改变)。此外,许多数值计算涉及移动窗口。虽然在一些实施例中,移动窗口利用过去的数据点,但是在一些实施例中,移动窗口可以利用后续的数据点,或者利用过去的数据点和随后的数据点。移动窗口的大小可以根据输入条件(例如,噪声的存在)进行编程或自适应。
注意,以上参考附图讨论的活动适用于涉及信号处理的任何集成电路,特别是可以执行专用软件程序或算法的那些集成电路,其中的一些可以与处理数字化的实时数据相关。某些实施例可以涉及多DSP信号处理、浮点处理、信号/控制处理、固定功能处理、微控制器应用等。在某些上下文中,本文讨论的特征可以适用于医疗***、工业过程控制、音频视频设备、安全***、监视***、遥感***、物联网以及其他基于数字处理的***。此外,上面讨论的某些实施例可以提供给医学对象监测、患者监测和家庭保健的数字信号处理技术中。其他应用可涉及汽车技术(例如,无人驾驶***、驾驶员辅助***、制动***、任何类型的信息娱乐和内部应用、基于相机的安全***(用于检测乘客,行人等)情况下,本发明的教导可以应用于包括帮助驱动生产率,能量效率和可靠性的过程控制***的工业市场中。在消费者应用中,上面讨论的信号处理电路的教导可以用于图像处理、自动对焦和人为跟踪(例如,数码相机,摄像机等),其他消费应用可以包括提供智能手机、平板电脑、安全***、个人电脑、游戏技术、虚拟现实、模拟训练等的占用检测。
占用检测的一个示例应用是停车场中的人/汽车占用,例如,停车位。检测占用可以为停车场提供有效的资产管理。例如,假设停车场是空的,然后汽车停放。当从空转换到人/汽车占用时,检测占用的方法将检测能量突发(例如,能量累积)。当拥有者在一段时间后停车并离开时,***可以将时间段标记为静止或“停放”,因为运动图中的运动像素值将为零或非常小(而前景图将暗示前景物体存在)。使用占用方法,可以将停车位的状态从“空”转换到“停车”到“停放”到“离开”到“空”。
占用检测的另一个示例应用是农场、房屋、建筑物等中的动物占用。在一些实施例中,动物占用也可以具有与人为占用相似的运动或能量的突发。例如,猫或狗可以进入房间,20分钟后,离开房间。或者奶牛可以进入一个房间,几个小时后,离开房间。马占用有类似的行为。水生动物也可以有类似的行为。
本发明设想,占用检测不限于检测人占用,而是还可以检测汽车/交通工具占用、动物占用、物体占用等。检测方案适合于检测以能量突发为特征的运动。该方案也适用于区分以突发为特征的运动而不是周期性/偶发性的运动
用于占用检测的各种设备的装置可以包括用于执行在此描述的功能的电子电路。在一些情况下,装置的一个或多个部分可以由专门配置用于执行在此描述的功能的处理器提供。例如,处理器可以包括一个或多个专用组件,或者可以包括被配置为执行在此描述的功能的可编程逻辑门。该电路可以工作在模拟域、数字域或混合信号域。在一些情况下,处理器可以被配置为通过执行存储在非临时性计算机介质上的一个或多个指令来执行在此描述的功能。
在一个示例实施例中,附图中的任何数量的电路可以在相关联的电子设备的电路上实现。电路板可以是通用电路板,可以容纳电子设备的内部电子***的各种部件,并且还为其他***设备提供连接器。更具体地说,电路板可以提供电连接,***的其他部件可以通过电连接电通讯。基于特定的配置需求、处理需求、计算机设计等,任何合适的处理器(包括数字信号处理器、微处理器、支持芯片组等),计算机可读非暂时性存储器元件等,其他组件如外部存储器、附加传感器、音频/视频显示控制器以及***设备可作为插件卡、电缆连接、耦合或集成到电路板本身。在各种实施例中,本文描述的功能可以以仿真形式实现为运行在以支持这些功能的结构中布置的一个或多个可配置(例如,可编程)元件内的软件或固件。提供仿真的软件或固件可以被提供在包括允许处理器执行那些功能的指令的非瞬态计算机可读存储介质上。
在另一个示例性实施例中,附图的电路可以被实现为独立模块(例如,具有被配置为执行特定应用或功能的关联组件和电路的设备),或者被实现为电子设备的专用硬件的插件模块。注意,本发明的特定实施例可以部分地或全部地容易地包括在片上***(SOC)封装中。SOC表明将计算机或其他电子***的组件集成到单个芯片中的集成电路。它可能包含数字、模拟、混合信号和通常射频功能:所有这些功能都可以在单个芯片基板上提供。其他实施例可以包括多芯片模块(MCM),多芯片模块(MCM)具有位于单个电子封装内的且配置以通过电子封装彼此紧密地相互作用多个单独的集成电路。在各种其他实施例中,可以在专用集成电路(ASIC)、现场可编程门阵列(FPGA)和其他半导体芯片中的一个或多个硅芯中实现占用检测功能。
还必须指出的是,本文中概述的所有规格、尺寸和关系(例如,处理器的数量、逻辑操作等)仅仅是为了示例和教导的目的而提供的。在不脱离本发明的精神或所附权利要求的范围的情况下,这些信息可以有相当大的变化。因此应该这样理解,这些说明仅适用于一个非限制性的例子。在前面的描述中,已经参考特定处理器和/或组件布置描述了示例实施例。在不脱离所附权利要求的范围的情况下,可以对这些实施例进行各种修改和改变。因此,描述和附图被认为是说明性的而不是限制性的。
注意,利用这里提供的许多示例,可以用两个、三个、四个或更多个模块来描述交互。但是,这仅仅是为了清楚和示例的目的。应该认识到,***可以以任何合适的方式被合并。沿着相似的设计替代方案,图示的任何组件、模块和元件可以以各种可能的配置进行组合,所有这些都清楚地在本说明书的宽泛范围内。在某些情况下,通过仅参考有限数量的电气元件来描述给定的一组流程的一个或多个功能可能更容易。应该理解的是,附图及其教导的电路是容易扩展的并且可以容纳大量的部件以及更复杂/精致的布置和配置。因此,所提供的示例不应该限制电路的范围或者抑制可能应用于无数其他体系结构的电路的广泛教导。
注意,在本说明书中,包括在“一个实施例”、“示例实施例”,“实施例”、“另一实施例”、“一些实施例”、“各种实施例”、“其他实施例”、“替代实施例”中的各种特征(例如元件、结构、模块、组件、步骤、操作、特性等)等旨在表明任何这样的特征被包括在本发明的一个或多个实施例中,或者可能不一定组合在相同的实施例中。
注意与占用检测相关的功能也仅仅说明了可以由图中所示的***执行或者在图内所示的***内执行的一些可能的功能,这也是重要的。在适当的情况下,这些操作中的一些可以被删除或移除,或者这些操作可以在不脱离本发明的范围的情况下被相当大地修改或改变。另外,这些操作的时间可能会有相当大的改变。为了举例和讨论,已经提供了前面的操作流程。本文描述的实施例提供了实质的灵活性,因为在不脱离本发明的教导的情况下,可以提供任何合适的布置、时间顺序、配置和时序机制。
本领域技术人员可以确定许多其他的改变、替代、变化、变更和修改,并且本发明意图包括落入所附权利要求书范围内的所有这些改变、替代、变化,更改和修改。注意,上述装置的所有可选特征也可以关于本文描述的方法或过程来实现,并且实例中的细节可以在一个或多个实施例中的任何地方使用。