一种背景模型和运动物体检测方法及系统的制作方法

文档序号:9616637阅读:514来源:国知局
一种背景模型和运动物体检测方法及系统的制作方法
【技术领域】
[0001] 本发明涉及背景模型技术领域,特别是指一种背景模型和运动物体检测方法及系 统。
【背景技术】
[0002] 背景模型是计算机视觉里最基础的步骤之一,目的是为了寻找运动的物体,例如 运动的人体。计算机视觉在对连续变化的图像进行处理时,需要判断哪些是运动的,哪些是 背景部分。为了达到这样的目的,通常有两种途径:一种方法是直接从一帧静态图形上用模 式识别的方法找到人体。但是这种方法有局限性,它要求模式识别的分类器中包括所有可 能的人体姿态,这在现实中很难做到。
[0003] 另一种方法是建立一个背景模型,即背景帧,用来代表真正的背景,然后通过比较 输入帧和背景帧的差异,来寻找运动的物体。这种方法对通常的应用是有效的。但是如果 运动的物体从一开始就存在于视野中,而且只有一部分产生运动的时候,这种方法就无法 检测到完整的运动物体。比如,一个人从一开始就站在摄像机的前面,然后手部或者腿部开 始运动,这时候身体其他不动的部位就无法通过比较背景的方式检测到。

【发明内容】

[0004] 有鉴于此,本发明的目的在于提出一种背景模型和运动物体检测方法及系统,不 需要专门训练背景模型,而且可以学习随着时间变化的背景,并且不要求特定的初始条件。
[0005] 基于上述目的本发明提供的背景模型和运动物体检测方法,包括:
[0006] 将第一帧图像作为背景帧,从第二帧开始,最新的一帧为输入帧,通过比较背景帧 和输入帧,从而得到掩码帧和标号帧;
[0007] 从运动物体掩码帧中对所有明显运动部位进行提取并分别标号;
[0008] 根据提取到的明显运动部位,对输入帧作边缘提取,找到输入帧中所有属于运动 物体边缘的像素点,得到运动物体边缘图像;
[0009] 沿着运动物体边缘图像找到包括该物体边缘的矩形框;
[0010] 结合运动物体边缘图像以及包括该物体边缘的矩形框,对检测到的明显运动部位 进行基于深度连续性的区域增长,从而得到要检测的运动物体;
[0011] 根据要检测的运动物体,得到一个0/1分布的完整运动物体的图像,其中〇表示背 景像素,1表示运动物体像素。表示输入帧中明显运动部位所属于的完整运动物体;
[0012] 将输入帧中所有不属于完整运动物体位置的部分判定为背景像素,其用来在当前 输入帧处理结束之后更新背景帧。
[0013] 在一些实施方式中,所述比较背景帧和输入帧的步骤包括:
[0014] 设定用来区别当前运动像素和当前背景像素的负阈值,因为通常物体比背景更接 近深度摄像头,因此深度值比背景要小,故而阈值为负。以及用于区别前一刻运动像素和前 一刻背景像素的正阈值;
[0015] 对输入帧和背景帧进行做差运算,差值是输入帧减去背景帧;
[0016] 所述得到表示输入帧中明显运动部分所处位置的掩码帧的步骤包括:
[0017] 对深度差小于负阈值的像素点,判定为当前运动像素,在掩码帧中标记为1,其余 的像素点判定为当前背景像素,在掩码帧中标记为〇 ;
[0018] 所述得到用来表示背景帧中明显运动部分所处位置的标号帧步骤包括:
[0019] 对深度差大于正阈值的像素点,判定为前一刻运动像素,在标号帧中标记为0,其 余的像素点判定为前一刻背景像素,在标号帧中标记为1 ;
[0020] 将掩码帧初始时刻的第一帧单独保存为初始运动物体掩码帧,接下来的时刻中, 掩码帧均表示运动物体掩码帧。
[0021] 在一些实施方式中,所述从运动物体掩码帧中对所有明显运动部位进行提取并分 别标号的步骤,包括:
[0022] 输入0/1分布的运动物体掩码帧图像和深度图像输入帧;
[0023] 初始化表示物体的数据结构:{矩形框=空,均值=0,像素点集合=空},拷贝0/1 分布的运动物体掩码帧到标号帧,并设定标号初始值为2 ;
[0024] 从左到右,从上到下,逐行扫描标号帧;
[0025] 如果发现0/1分布的标号帧上的一个像素点值为1,则将所述像素点重新赋值为 当前的标号值,接着从输入帧上获取该像素点对应的深度值,更新当前深度均值,将当前深 度均值、该像素点位置及其相关信息一起压入堆栈;
[0026] 如果堆栈非空,从堆栈弹出一个标号帧上的像素点,搜索该像素点的邻域像素点, 如果某个邻域像素点值为1,赋值为当前标号值,并把该像素点和深度图像输入帧上对应像 素点的相关信息压入堆栈;
[0027] 如果堆栈为空,标号值增加1,并把现有的像素点集合和信息拷贝到输出序列中;
[0028] 直到整个图形扫描完毕,输出所有提取到的物体及多个物体的深度均值、像素点 集合及其相关信息。
[0029] 在一些实施方式中,所述沿着运动物体边缘图像找到包括该物体边缘的矩形框的 步骤,包括:
[0030] 输入为0/1分布的运动物体边缘图像和检测到的明显运动部位;
[0031] 初始化表示物体的数据结构:{矩形框=空,均值=0,像素点集合=空};
[0032] 从左到右,从上到下,分别逐行扫描运动物体边缘图像和检测到的明显运动部 位;
[0033] 如果堆栈非空,如果发现运动物体边缘图像中的一个点的值为1,并且检测到的明 显运动部位中对应像素点也是1,则更新矩形框和均值,同时把该像素点位置及其相关信息 压入堆栈。将处理过的像素点重置为0,之后不扫描该像素点;
[0034] 从堆栈弹出一个像素点,搜索该像素点的邻域,如果某个邻域像素点的值为1并 且和当前堆栈弹出像素点的距离小于给定阈值,更新并把该像素点位置及其相关信息压入 堆栈。将处理过的像素点重置为0,之后不扫描该像素点;
[0035] 如果堆栈为空,把现有的像素点集合和信息拷贝到输出序列中作为一个物体的矩 形框;
[0036] 直到整个图形扫描完毕,提取到包括该物体边缘的矩形框,输出运动物体的矩形 框。
[0037] 在一些实施方式中,所述在当前输入帧处理结束之后更新背景帧的步骤,可选用 选择性的渐进更新方案对背景帧进行更新,即根据标号帧中值为〇的像素点所处位置,将 背景帧与输入帧中同样位置的像素点进行加权,用加权后的结果对背景帧进行更新。
[0038] 本发明还提供的一种背景模型和运动物体检测系统,其特征在于,包括:
[0039] 模型初始化模块,用于将第一帧图像作为背景帧,从第二帧开始,最新的一帧为输 入帧,通过比较背景帧和输入帧,从而得到掩码帧和标号帧;
[0040] 明显运动部位检测模块,用于从运动物体掩码帧中对所有明显运动部位进行提取 并分别标号;
[0041] 运动物体边缘提取模块,用于根据提取到的明显运动部位,对输入帧作边缘提取, 找到输入帧中所有属于运动物体边缘的像素点,得到运动物体边缘图像;
[0042] 限定搜索区域模块,用于沿着运动物体边缘图像找到如包括该物体边缘的矩形 框;
[0043] 方向性区域增长模块,用于结合运动物体边缘图像以及包括该物体边缘的矩形 框,对检测到的明显运动部位进行基于深度连续性的区域增长,从而得到要检测的运动物 体;
[0044] 输出完整运动物体模块,用于根据要检测的运动物体,得到一个0/1分布的完整 运动物体的图像,表示输入帧中明显运动部分所属于的完整运动物体;
[0045] 更新背景帧模块,用于将输入帧中所有不属于完整运动物体位置的部分判定为背 景像素,其用来在当前输入帧处理结束之后更新背景帧。
[0046] 在一些实施方式中,所述模型初始化模块包括:
[0047] 阈值设定模块,用于设定用来区别当前运动像素和当前背景像素的负阈值,以及 用于区别前一刻运动像素和前一刻背景像素的正阈值;
[0048] 做差模块,用于对输入帧和背景帧进行做差运算;
[0049] 掩码帧生成模块,用于对深度差小于负阈值的像素点,判定为当前运动像素,在掩 码帧中标记为1,其余的像素点判定为当前背景像素,在掩码帧中标记为〇 ;
[0050] 标号帧生成模块,用于对深度差大于正阈值的像素点,判定为前一刻运动像素,在 标号帧中标记为〇,其余的像素点判定为前一刻背景像素,在标号帧中标记为1 ;
[0051] 运动物体掩码帧生成模块,用于将掩码帧初始时刻的第一帧单独保存为初始运动 物体掩码帧,接下来的时刻中,掩码帧均表示运动物体掩码帧。
[0052] 在一些实施方式中,所述明显运动部位检测模块,包括:
[0053] 检测输入模块,用于输入0/1分布的运动物体掩码帧图像和深度图像输入帧;
[0054] 检测初始化模块,用于初始化表示物体的数据结构:{矩形框=空,均值=0,像素 点集合=空},拷贝0/1分布的运动物体掩码帧到标号帧,并设定标号初始值为2 ;
[0055] 检测扫描模块,用于从左到右,从上到下,逐行扫描标号帧;
[0056] 检测赋值模块,用于如果发现0/1分布的标号帧上的一个像素点值为1,则将所述 像素点重新赋值为当前的标号值,接着从输入帧上获取该像素点对应的深度值,更新当前 深度均值,将当前深度均值、该像素点位置及其相关信息一起压入堆栈;
[0057] 检测标号模块,用于如果堆栈非空,从堆栈弹出一个标号帧上的像素点,搜索该像 素点的邻域像素点,如果某个邻域像素点值为1,赋值为当前标号值,并把该像素点和深度 图像输入帧上对应像素点的相关信息压入堆栈;
[0058] 检测更新模块,用于如果堆栈为空,标号值
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1