运动前景检测方法、装置、终端设备及存储介质
技术领域
本发明涉及计算机图像处理
技术领域
,尤其涉及一种运动前景检测方法、装置、终端设备及存储介质。背景技术
在计算机数字图像处理领域,基于图像处理的运动前景检测是指从视频序列中将运动的前景物体与背景区分开来。根据拍摄画面的运动状态,运动前景检测算法可以分为静态背景下的前景检测方法和动态背景下的前景检测方法,静态背景对应摄像机固定,背景相对稳定的场景;动态背景包含两种情况,一种是摄像机固定,但拍摄画面中包含运动的背景,例如树叶晃动、水纹波动等;另一种情况是指摄像机处于运动状态下,拍摄画面跟随摄像机而发生移动。
对于动态场景下的运动前景检测,目前的方法有:通过高斯金字塔对图像进行下采样和滤波操作,将动态场景变为相对稳定的静态场景,用像素点的运动满足预设条件那一层的数据进行混合高斯背景建模,从而实现动态场景下的运动前景检测,但是下采样和滤波操作本身会丢失大量的图像细节信息,导致一些运动前景的漏检。
发明内容
本发明实施例的目的是提出一种运动前景检测方法、装置、终端设备及存储介质,以解决目前动态场景下的运动前景检测方法出现的运动前景漏检的问题。
为实现上述目的,本发明第一实施例提供了一种运动前景检测方法,包括:
获取待检测的当前视频帧;
当当前视频帧是第一帧画面时,使用当前视频帧每个像素点的像素值初始化预先建立的第一混合高斯模型;
当当前视频帧不是第一帧画面时,根据背景帧对当前视频帧进行运动向量估计,得到当前视频帧的全局运动估计量;其中,所述背景帧根据当前视频帧的所有像素点的第一混合高斯模型计算得到;
根据所述全局运动估计量对当前视频帧中的每个像素点对应的第一混合高斯模型进行位置校正;
将当前视频帧的每个所述像素点与其位置校正后的所述第一混合高斯模型进行匹配;
根据匹配结果,将当前视频帧中的各个像素点分类为前景像素点和背景像素点。
优选地,所述方法还包括:
对于分类为前景像素点的每一个像素点,将任意一个像素点与其周边预设的搜索范围内的其他像素点对应的第一混合高斯模型进行匹配,得到邻域匹配结果;
根据所述邻域匹配结果,最终判断任意一个像素点属于前景像素点或背景像素点。
优选地,所述根据背景帧对当前视频帧进行运动向量估计,得到当前视频帧的全局运动估计量,具体包括:
将当前视频帧分成多个图像块,取其中一个图像块为参考块;
在所述背景帧的对应预设搜索区域内搜索出与所述参考块相似的图像块,作为匹配块;
根据所述参考块与所述匹配块的相对位移,得到所述参考块的局部运动向量;
采用直方图统计方法统计所有图像块的局部运动向量,将直方图中最高点所代表的局部运动向量作为当前视频帧的全局运动估计量。
优选地,所述根据所述全局运动估计量对当前视频帧中的每个像素点对应的第一混合高斯模型进行位置校正,具体包括:
将当前视频帧的所有像素点对应的第一混合高斯模型按照所述全局运动估计量进行偏移;
将超出预设成像范围的画面区域的像素点对应的第一混合高斯模型舍弃;
对新进入所述预设成像范围的画面区域的像素点建立对应的第一混合高斯模型。
优选地,所述第一混合高斯模型包括多个子高斯模型,则,
所述将当前视频帧的每个所述像素点与其第一混合高斯模型进行匹配,或所述将当前视频帧的每个所述像素点与其位置校正后的所述第一混合高斯模型进行匹配,,包括:
计算当前视频帧的第i个像素点与其第一混合高斯模型中第j个子高斯模型的均值之间的第一距离;
当所述第一距离的平方小于第j个子高斯模型的方差的λ1倍时,则判定第i个像素点与第j个子高斯模型匹配;其中,λ1>0;
否则,判断第j个子高斯模型是否为最后一个子高斯模型;
若是,则判定第i个像素点其对应的所述第一混合高斯模型不匹配;
若否,则继续计算第i个像素点与第j+1个子高斯模型的均值之间的第一距离。
优选地,在所述获取待检测的当前视频帧之后,还包括:
设置更新帧间隔帧数,所述更新帧用于指示所述第一混合高斯模型的模型参数按照预设的更新方式进行更新;则,
在所述判定判定第i个像素点与第j个子高斯模型匹配之后,还包括:
判断当前视频帧是否为更新帧;
若当前视频帧为更新帧,则按照所述预设的更新方式对所述第一混合高斯模型的模型参数进行更新;
将更新后的第一混合高斯模型中的所有子高斯模型的权重按照降序排序,并由大到小计算权重之和,将权重之和大于预设阈值对应的子高斯模型作为背景模型。
优选地,所述按照所述预设的更新方式对所述第一混合高斯模型的模型参数进行更新,包括:
将第i个像素点的像素值替换为第i个像素点对应的所述第一混合高斯模型中权重最小的子高斯模型的均值,并初始化该子高斯模型的方差和权重;
对所有子高斯模型的权重进行归一化处理,以更新第i个像素的第一混合高斯模型。
优选地,所述对于分类为前景像素点的每一个像素点,将任意一个像素点与其周边预设的搜索范围内的其他像素点对应的第一混合高斯模型进行匹配,具体包括:
计算分类为前景像素点的第k个像素点与其周边预设的搜索范围内的第h个像素点对应的第一混合高斯模型中任一子高斯模型的均值之间的第二距离;
若所述第二距离的平方小于第h个像素点对应的第一混合高斯模型中任一子高斯模型的方差的λ2倍,则判定第k个像素点与第h个像素点对应的的第一混合高斯模型中任一子高斯模型匹配;其中,λ2>0;
当匹配的任一子高斯模型为背景模型时,则判定第k个像素点为背景像素点;
当匹配的任一子高斯模型不为背景模型时,则判定第k个像素点为前景像素点。
本发明第二实施例提供一种运动前景检测装置,包括:
视频帧获取模块,用于获取待检测的当前视频帧;
模型初始化模块,用于当当前视频帧是第一帧画面时,使用当前视频帧每个像素点的像素值初始化预先建立的第一混合高斯模型;
运动估计模块,用于当当前视频帧不是第一帧画面时,根据背景帧对当前视频帧进行运动向量估计,得到当前视频帧的全局运动估计量;其中,所述背景帧根据当前视频帧的所有像素点的第一混合高斯模型计算得到;
位置校正模块,用于根据所述全局运动估计量对当前视频帧中的每个像素点对应的第一混合高斯模型进行位置校正;
匹配模块,还用于将当前视频帧的每个所述像素点与其位置校正后的所述第一混合高斯模型进行匹配;
第一前景判断模块,用于根据所述第一匹配结果,将当前视频帧中的各个像素点分类为前景像素点和背景像素点。
本发明第三实施例对应提供一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一实施例任一项所述的运动前景检测方法。
本发明第四实施例提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述第一实施例任一项所述的运动前景检测方法。
与现有技术相比,本发明实施例所提供的一种运动前景检测方法、装置、终端设备及存储介质,通过混合高斯模型和运动估计相结合,避免了现有前景检测方法因滤波导致的小运动物体被模糊化从而导致漏检的情况。
附图说明
图1是本发明一实施例提供的一种运动前景检测方法的流程示意图;
图2是本发明另一实施例提供的一种运动前景检测方法的流程示意图;
图3是本发明一实施例提供的菱形搜索法的两个搜索模板,左边为有9个搜索位置的大菱形模板(LDSP),右边为有5个搜索位置的小菱形模板(SDSP);
图4是本发明一实施例提供的一种第一混合高斯模型进行位置校正的示意图;
图5是本发明一实施例提供的一种在得到第一混合高斯模型之后进行前景或者背景判断的流程示意图;
图6是本发明一实施例提供的一种运动前景检测装置的结构示意图;
图7是本发明一实施例提供的一种终端设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明该实施例提供的一种运动前景检测方法的流程示意图,所述方法包括步骤S1至步骤S6:
S1、获取待检测的当前视频帧;
S2、当当前视频帧是第一帧画面时,使用当前视频帧每个像素点的像素值初始化预先建立的第一混合高斯模型;
S3、当当前视频帧不是第一帧画面时,根据背景帧对当前视频帧进行运动向量估计,得到当前视频帧的全局运动估计量;其中,所述背景帧根据当前视频帧的所有像素点的第一混合高斯模型计算得到;
S4、根据所述全局运动估计量对当前视频帧中的每个像素点对应的第一混合高斯模型进行位置校正;
S5、将当前视频帧的每个所述像素点与其位置校正后的所述第一混合高斯模型进行匹配;
S6、根据匹配结果,将当前视频帧中的各个像素点分类为前景像素点和背景像素点。
具体地,获取动态场景下待检测的一帧视频帧。优选地,对获取到的当前视频帧进行图像预处理,例如下采样、灰度化、滤波等。预处理完成后,对当前视频帧中每个像素点分别建立第一混合高斯模型。每个第一混合高斯模型由K个子高斯模型组成,每个子高斯模型均包含权重、均值和方差三个参数。其中,在建立每一视频帧的第一混合高斯模型后,可以计算其对应的背景帧,具体地:通过对所述视频帧的所有像素点对应的第一混合高斯模型计算加权均值,即可得到所述视频帧对应的背景帧。
对于当前视频帧为第一帧画面时,利用当前视频帧初始化第一混合高斯模型,具体的,每个像素点的初始化操作为:将每个像素点对应的所有子高斯模型的均值设置为当前像素值;方差初始化成一个较大的初始值,通常设置成15×15;权重均匀分配,每个模型权重均为1/K。优选地,K为3~6,当场景复杂,K取值大一些。对初始化后的每个像素点,将所述像素点与其第一混合高斯模型直接进行匹配。
对于当前视频帧不是第一帧画面时,以背景帧为参考帧,对比背景帧和当前视频帧,对当前视频帧进行运动向量估计,得到当前视频帧的运动向量;并根据运动向量,对第一混合高斯模型按照运动向量进行偏移,实现位置校正,使得偏移后的第一混合高斯模型和当前视频帧的像素点在空间位置上几乎一一对应,避免了滤波方法导致小的运动物体被模糊化从而导致漏检的情况。然后,将所述像素点与偏移后的第一混合高斯模型进行匹配。
对于属于第一帧画面的视频帧和不属于第一帧画面的视频的匹配结果,来进行前景判断。若某一像素点与其第一混合高斯模型不匹配,则可初步判断该像素点为前景像素点,否则,可初步判断为背景像素点。在本发明实施例中,通过混合高斯模型和运动估计相结合,可以避免现有前景检测方法因滤波导致的小运动物体被模糊化从而导致漏检的情况。
在一种可选的实施例中,所述方法还包括:
S11、对于分类为前景像素点的每一个像素点,将任意一个像素点与其周边预设的搜索范围内的其他像素点对应的第一混合高斯模型进行匹配,得到邻域匹配结果;
S12、根据所述邻域匹配结果,最终判断任意一个像素点属于前景像素点或背景像素点。
对于初步判断为前景像素点的像素点,将其与其周边预设的搜索范围内的其他像素点对应的第一混合高斯模型进行匹配,得到邻域匹配结果;并根据所述邻域匹配结果,再次进行前景判断,若该像素点与领域的其他像素点的第一混合高斯模型匹配,则最终判断为为背景像素点,否则最终判断为前景像素点。通过邻域模型搜索,可以范围根据局部运动估计量自适应变化,避免局部区域运动变化较大,可以弥补运动估计的精度问题。优选地,邻域模型的搜索范围为当前像素点所属区域局部运动估计量的一半。
参见图2,是本发明另一实施例提供的一种运动前景检测方法的流程示意图,由图2可知,在执行的流程中,为了提高模型的适应性,在模型匹配和判断时,还对部分模型进行参数更新,再根据更新后的模型进行后续步骤。
本发明该实施例通过提供一种运动前景检测方法,利用动态场景下第一帧视频帧初始化混合高斯模型,并直接进行模型匹配,对于非第一帧视频帧,以背景帧为参考,得到其运动向量,然后对混合高斯模型进行位置校正,再进行其他帧画面与校正模型的匹配;然后基于匹配结果进行前景判断。为了避免背景边缘部分被检测为前景,对于初步判断为前景像素点的像素点,还加入领域模型搜索,进一步判断相关像素点是否为前景,有效解决了目前动态场景下的运动前景检测方法出现的运动前景漏检的问题。
在一种可选的是实施例中,所述根据背景帧对当前视频帧进行运动向量估计,得到当前视频帧的全局运动估计量,具体包括:
将当前视频帧分成多个图像块,取其中一个图像块为参考块;
在所述背景帧的对应预设搜索区域内搜索出与所述参考块相似的图像块,作为匹配块;
根据所述参考块与所述匹配块的相对位移,得到对应所述参考块的局部运动向量;
采用直方图统计方法统计所有图像块的局部运动向量,将直方图中最高点所代表的局部运动向量作为当前视频帧的全局运动估计量。
具体地,运动估计方法可以使用:灰度投影法、块匹配法、相位相关法、光流法等。优选地,本发明该实施例采用块匹配方法进行局部运动向量估计,最后通过直方图统计方法求得全局运动向量。块匹配方法是通过对比当前帧和背景帧,找出图像中最相关的部分,并建立它们之间的联系。块匹配法的实现过程如下:
将任一帧画面分成多个图像块,取其中一个图像块为参考块。优选地,将当前帧图像分成多个m×n大小的图像块,取其中一个图像块作为参考块,记录其中心的位置。
在背景帧的对应搜索区域内取(Δm+m)×(Δn+n)的搜索窗,搜索出与参考块相似的图像块,作为匹配块。搜索方法有很多种,包括:全搜索法、三步搜索法、菱形搜索法等,优选地,采用菱形搜索法进行搜索,搜索模板采用两个,一个是9个搜索位置的大菱形模板(LDSP)(图3左),一种是有5个搜索位置的小菱形模板(SDSP)(图3右),具体参见图3,详细搜索如下:
a)初始化大菱形模板LDSP,以搜索窗口的原点为中心,分别计算参考块的中心在9个搜索位置上时,与背景帧相应位置处的图像块之间的误差。误差可以用绝对差值和(SAD)、归一化相关函数(NCFF)、均方根误差(RMSE)、最大匹配像素数(MPC),结构相似度(SSIM)等来表示。例如可采用均方根误差作为衡量指标,如果计算得到的最小块误差(MBD,Minimun Block Distortion)点位于中心位置,则转步骤c,否则转步骤b。均方根误差的计算公式如下,其中Xobs,i表示待匹配块第i个像素值,xmodel,i表示参考块的第i个像素值,N为参考块内像素点的总数。
b)以上一次找到的MBD点为中心构建新的LDSP并计算其9个搜索点的匹配误差,找到新的MBD点,若其位于模板中心,则转步骤c,否则重复步骤b;
c)以上一次得到的MBD点作为中心构建小菱形模板SDSP,在其5个搜索点处进行匹配计算和比较,找出MBD点,该点位置为最终的匹配块。
得到匹配块后,根据参考块与匹配块的相对位移,得到对应参考块的局部运动向量。因为匹配块与参考块之间的相对位移即为该参考块的运动矢量,也即局部运动向量。
得到了不同图像块的局部运动向量后,采用直方图统计方法统计所有图像块的局部运动向量,将直方图中最高点所代表的局部运动向量作为当前视频帧画面的全局运动估计量。
在一种可选的是实施例中,所述根据所述全局运动估计量对当前视频帧中的每个像素点对应的第一混合高斯模型进行位置校正,具体包括:
将当前视频帧的所有像素点对应的第一混合高斯模型按照所述全局运动估计量进行偏移;
将超出预设成像范围的画面区域的像素点对应的第一混合高斯模型舍弃;
对新进入所述预设成像范围的画面区域的像素点建立对应的第一混合高斯模型。
具体地,参见图4,是本发明该实施例提供的一种第一混合高斯模型进行位置校正的示意图。由图4可知,假设全局运动估计量用(x,y)表示,x表示横向的偏移,y表示纵向的偏移,将所有第一混合高斯模型的位置按照相同的方向进行偏移,例如左图中原来的区域A中的模型偏移到右图中区域A'。因为成像范围是固定的,偏移后,会有一部分图像区域偏移出成像范围,如左图中上方和右方的深灰色区域),该区域图像对应的模型要进行舍弃;新进入成像范围的区域,如右图中下方和左方的浅灰色区域,该区域要用当前帧对应位置处的像素初始化对应的第一混合高斯模型。
也就是说,按照全局运动估计量进行偏移,将超出预设成像范围的画面区域对应的第一混合高斯模型舍弃,对新进入预设成像范围的画面区域建立对应的第一混合高斯模型,即对于新加入预设成像范围的区域,利用当前帧画面的对应区域的像素进行初始化,初始化操作类似于第一帧画面的混合高斯模型的初始化,在此不赘述。
对原有的第一混合高斯模型进行部分舍弃和部分补充后,根据调整后的第一混合高斯模型,可以得到校正后的第一混合高斯模型。当前视频帧画面的像素位置和偏移后的第一混合高斯模型的位置一一对应,从而进行前景或者背景判断。
作为上述方案的改进,所述第一混合高斯模型包括多个子高斯模型,则,
所述将当前视频帧的每个所述像素点与其第一混合高斯模型进行匹配,或所述将当前视频帧的每个所述像素点与其位置校正后的所述第一混合高斯模型进行匹配,包括:
计算当前视频帧的第i个像素点与其第一混合高斯模型中第j个子高斯模型的均值之间的第一距离;
当所述第一距离的平方小于第j个子高斯模型的方差的λ1倍时,则判定第i个像素点与第j个子高斯模型匹配;其中,λ1>0;
否则,判断第j个子高斯模型是否为最后一个子高斯模型;
若是,则第i个像素点其对应的所述第一混合高斯模型不匹配;
若否,则继续计算第i个像素点与第j+1个子高斯模型的均值之间的第一距离。
具体地,第一混合高斯模型包括多个子高斯模型,则,
在第一混合高斯模型进行位置校正之后,可以进行前景或者背景判断,所以该方法还包括:
计算当前视频帧任意像素点与其对应的第一混合高斯模型中任一子高斯模型的均值之间的第一距离。例如计算当前像素值pixel与子高斯模型的均值μ之间的平方距离。
当第一距离的平方小于当前像素点对应的任一子高斯模型的方差δ2的λ1倍时,用公式表示为(pixel-μ)2<λ1*δ2,则判定当前像素点与当前像素点对应的任一子高斯模型匹配;其中,λ1>0。
否则,即(pixel-μ)2≥λ1*δ2,判断当前像素点对应的任一子高斯模型是否为最后一个子高斯模型。
若是,即所有子高斯模型均与当前像素点不匹配,则判定当前像素点与当前像素点对应的第一混合高斯模型不匹配;
若否,则继续计算当前像素点与下一个子高斯模型的均值之间的第一距离,也就是说要遍历当前像素点对应的第一混合高斯模型中所有子高斯模型。
作为上述方案的改进,在所述获取待检测的当前视频帧之后,还包括:
设置更新帧间隔帧数,所述更新帧用于指示所述第一混合高斯模型的模型参数按照预设的更新方式进行更新;则,
在判定第i个像素点与第j个子混合高斯模型匹配之后,还包括:
判断当前视频帧是否为更新帧;
若当前视频帧为更新帧,则按照所述预设的更新方式对所述第一混合高斯模型的模型参数进行更新;
将更新后的第一混合高斯模型中的所有子高斯模型的权重按照降序排序,并由大到小计算权重之和,将权重之和大于预设阈值对应的子高斯模型作为背景模型。
具体地,设定每间隔10帧更新一次模型参数。则每间隔10帧的视频帧标记有更新帧标记,
进一步的,所述按照所述预设的更新方式对所述第一混合高斯模型的模型参数进行更新,包括:
判断当前视频帧是否为更新帧,即判断当前视频帧是否有标记,若有标记,则当前视频帧为更新帧,则需要对当前视频帧对应的模型进行模型更新。
若当前视频帧为更新帧,则按照预设的更新方式对第一混合高斯模型的模型参数进行更新,并对更新后的所有子高斯模型的权重进行归一化处理。预设的更新方式如下:
ωt=(1-α)*ωt-1+α*Mk
μt=(1-α)*μt-1+α*xt
其中ωt,μt,分别表示t时刻任一子高斯模型的权重、均值和方差,α表示该子高斯模型的学习率,Mk在该子高斯模型在成功匹配时设为1,匹配失败时设为0。xt表示t时刻匹配该子高斯模型的当前像素点。更新完参数后需要对所有子模型的权重进行归一化操作,保证权重之和为1。归一化计算公式如下:
将更新后的第一混合高斯模型中的所有子高斯模型的权重按照降序排序,并由大到小计算权重之和,将权重之和大于预设阈值T对应的子高斯模型作为背景模型。
作为上述方案的改进,在判定第i个像素点像素点为前景像素点之后,还包括:
将第i个像素点的像素值替换为第i个像素点对应的所述第一混合高斯模型中权重最小的子高斯模型的均值,并初始化该子高斯模型的方差和权重;
对所有子高斯模型的权重进行归一化处理,以更新第i个像素的第一混合高斯模型。
具体地,将当前像素点的像素值替换为当前像素点对应的第一混合高斯模型中权重最小的子高斯模型的均值,并初始化该子高斯模型的方差和权重。优选地,该子高斯模型的权重初始化为一个较小值,例如0.001。
为了保证权重之和为1,对所有子高斯模型的权重进行归一化处理,得到新的子高斯模型。在本发明实施例中,在前景/背景检测过程中,通过在更新帧不进行混合高斯模型参数更新,降低算法的运行时间,提高算法的实时性。
为了更清楚地了解在得到第一混合高斯模型之后如何进行前景或者背景判断,参见图5,是本发明该实施例提供的一种在得到第一混合高斯模型之后进行前景或者背景判断的流程示意图。由图5可知,得到第一混合高斯模型之后,先计算当前像素值与对应位置模型之间的距离,然后根据距离判断当前像素值与对应位置模型是否匹配,若两者匹配,则判断当前帧是否为更新帧,当当前视频帧为更新帧时,则更新模型参数,然后判断匹配模型是否为背景模型,若是背景模型,则当前像素点为背景像素点,若不是背景模型,则初步判定当前像素点为前景像素点;当当前视频帧不为更新帧时,则判断匹配模型是否为背景模型,若是背景模型,则当前像素点为背景像素点,若不是背景模型,则初步判定当前像素点为前景像素点;若两者不匹配,则继续判断下一个模型的匹配情况,当所有模型均不匹配,则当前像素值替换为权重最小的模型的均值。对于初步判定为前景像素点的像素点,进一步的,为了弥补了运动估计的精度问题,还需要进行邻域模型搜索,如步骤S11-S12。
作为上述方案的改进,所述对于分类为前景像素点的每一个像素点,将任意一个像素点与其周边预设范围内的其他像素点对应的第一混合高斯模型进行匹配,具体包括:
计算分类为前景像素点的第k个像素点与其周边预设范围内的第h个像素点对应的所述第一混合高斯模型中任一子高斯模型的均值之间的第二距离;
若所述第二距离的平方小于第h个像素点对应的所述任一子高斯模型的方差的λ2倍,则判定第k个像素点与第h个像素点对应的所述任一子高斯模型匹配;其中,λ2>0;
当匹配的任一子高斯模型为背景模型时,则判定第k个像素点为背景像素点;
当匹配的任一子高斯模型不为背景模型时,则判定第k个像素点为前景像素点。
具体地,对于步骤S6初步判定为前景像素点的像素点,计算当前像素点与周边其他像素点对应的第一混合高斯模型中任一子高斯模型的均值之间的第二距离;
若第二距离的平方小于周边其他像素点对应的任一子高斯模型的方差的λ2倍,用公式表示为(pixel-μ)2<λ2*δ2,则判定当前像素点与周边其他像素点对应的任一子高斯模型匹配;其中,λ2>0。若出现当前像素点与周边任一像素点的模型成功匹配时,则退出邻域模型搜索,并根据成功匹配模型的权重判断是否属于背景模型,进而判断该像素点属于背景像素点还是前景像素点。在邻域模型搜索的过程中只进行模型匹配和前景/背景判断,不更新模型参数。
当匹配的任一子高斯模型为背景模型时,则判定当前像素点为背景像素点;当匹配的任一子高斯模型不为背景模型时,则判定所述当前像素点为前景像素点。同样地,背景模型的确定方式为:先将子高斯模型按照权重降序排序,再由大到小计算权重之和,将权重之和大于预设阈值T对应的子高斯模型作为背景模型。
另外,若(pixel-μ)2≥1λ1*δ2,则判断其他像素点对应的任一子高斯模型是否为最后一个子高斯模型;
若是,则判定当前像素点与其他像素点对应的第一混合高斯模型不匹配,当前像素点为前景像素点。
若否,则继续计算当前像素点与下一个子高斯模型的均值之间的第二距离。
在本发明实施例中,利用运动估计和邻域模型搜索处理动态场景,可以避免现有滤波方法导致小的运动物体被模糊化从而导致的漏检情况,同时邻域模型搜索范围可以根据局部运动估计量自适应变化,对于运动剧烈的区域,其邻域搜索范围相应的会更大,利用邻域模型搜索可以弥补运动估计导致的前景检测精度问题。
参见图6,是本发明该实施例提供的一种运动前景检测装置的结构示意图,所述装置包括:
视频帧获取模块11,用于获取待检测的当前视频帧;
模型初始化模块12,用于当当前视频帧是第一帧画面时,使用当前视频帧每个像素点的像素值初始化预先建立的第一混合高斯模型;
运动估计模块13,用于当当前视频帧不是第一帧画面时,根据背景帧对当前视频帧进行运动向量估计,得到当前视频帧的全局运动估计量;其中,所述背景帧根据当前视频帧的所有像素点的第一混合高斯模型计算得到;
位置校正模块14,用于根据所述全局运动估计量对当前视频帧中的每个像素点对应的第一混合高斯模型进行位置校正;
匹配模块15,还用于将当前视频帧的每个所述像素点与其位置校正后的所述第一混合高斯模型进行匹配;
第一前景判断模块16,用于根据所述第一匹配结果,将当前视频帧中的各个像素点分类为前景像素点和背景像素点。
优选地,所述装置还包括:
领域搜索模块,用于对于分类为前景像素点的每一个像素点,将任意一个像素点与其周边预设的搜索范围内的其他像素点对应的第一混合高斯模型进行匹配,得到邻域匹配结果;
第二前景判断模块,用于根据所述邻域匹配结果,最终判断任意一个像素点属于前景像素点或背景像素点。
优选地,所述运动估计模块13具体包括:
分块单元,用于将当前视频帧分成多个图像块,取其中一个图像块为参考块;
匹配块搜索单元,用于在所述背景帧的对应预设搜索区域内搜索出与所述参考块相似的图像块,作为匹配块;
局部运动估计单元,用于根据所述参考块与所述匹配块的相对位移,得到对应所述参考块的局部运动向量;
全局运动估计单元,用于采用直方图统计方法统计所有图像块的局部运动向量,将直方图中最高点所代表的局部运动向量作为当前视频帧的全局运动估计量。
优选地,所述位置校正模块14具体包括:
偏移单元,用于将当前视频帧按照所述全局运动估计量进行偏移,将超出预设成像范围的画面区域的像素点对应的所述第一混合高斯模型舍弃,并根据对新进入所述预设成像范围的画面区域的像素点建立对应的所述第一混合高斯模型。
优选地,所述第一混合高斯模型包括多个子高斯模型,则,所述装置还包括:
第一距离计算模块,用于计算当前视频帧的第i个像素点与其第一混合高斯模型中第j个子高斯模型的均值之间的第一距离;
第一判断模块,用于当所述第一距离的平方小于第j个子高斯模型的方差的λ1倍时,则判定第i个像素点与第j个子高斯模型匹配;其中,λ1>0;
第二判断模块,用于否则,判断第j个子高斯模型是否为最后一个子高斯模型;
第三判断模块,用于若是,则判定第i个像素点其对应的所述第一混合高斯模型不匹配;
第二距离计算模块,用于若否,则继续计算第i个像素点与第j+1个子高斯模型的均值之间的第一距离。
优选地,所述装置还包括:
标记模块,用于设置更新帧间隔帧数,所述更新帧用于指示所述第一混合高斯模型的模型参数按照预设的更新方式进行更新;则,
所述装置还包括:
第四判断模块,用于判断当前视频帧是否为更新帧;
更新模块,用于若当前视频帧为更新帧,则按照所述预设的更新方式对所述第一混合高斯模型的模型参数进行更新;
排序模块,用于将更新后的第一混合高斯模型中的所有子高斯模型的权重按照降序排序,并由大到小计算权重之和,将权重之和大于预设阈值对应的子高斯模型作为背景模型。
优选地,所述更新模块包括:
替换为单元,用于将第i个像素点的像素值替换为第i个像素点对应的第一混合高斯模型中权重最小的子高斯模型的均值,并初始化该子高斯模型的方差和权重;
归一化处理单元,用于对所有子高斯模型的权重进行归一化处理,以更新第i个像素的第一混合高斯模型。
优选地,所述第一前景判断模块16具体包括:
距离计算单元,用于计算分类为前景像素点的第k个像素点与其周边预设的搜索范围内的第h个像素点对应的所述第一混合高斯模型中任一子高斯模型的均值之间的第二距离;
第一判断单元,用于若所述第二距离的平方小于第h个像素点对应的所述任一子高斯模型的方差的λ2倍,则判定第k个像素点与第h个像素点对应的所述任一子高斯模型匹配;其中,λ2>0;
第二判断单元,用于当匹配的任一子高斯模型为背景模型时,则判定第k个像素点为背景像素点;
第三判断单元,用于当匹配的任一子高斯模型不为背景模型时,则判定第k个像素点为前景像素点。
本发明实施例所提供的一种运动前景检测装置能够实现上述任一实施例所述的运动前景检测方法的所有流程,装置中的各个模块、单元的作用以及实现的技术效果分别与上述实施例所述的运动前景检测方法的作用以及实现的技术效果对应相同,这里不再赘述。
参见图7,是本发明该实施例提供的一种终端设备的示意图,所述终端设备包括处理器10、存储器20以及存储在所述存储器20中且被配置为由所述处理器10执行的计算机程序,所述处理器10执行所述计算机程序时实现上述任一实施例所述的运动前景检测方法。
示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器20中,并由处理器10执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在一种运动前景检测中的执行过程。例如,计算机程序可以被分割成模型建立模块、第一匹配模块、运动估计模块、位置校正模块和前景判断模块,各模块具体功能请参见上述实施例所述的运动前景检测装置:
所述终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,示意图7仅仅是一种终端设备的示例,并不构成对所述终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
处理器10可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者处理器10也可以是任何常规的处理器等,处理器10是所述终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分。
存储器20可用于存储所述计算机程序和/或模块,处理器10通过运行或执行存储在存储器20内的计算机程序和/或模块,以及调用存储在存储器20内的数据,实现所述终端设备的各种功能。存储器20可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器20可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,所述终端设备集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任一实施例所述的运动前景检测方法。
综上,本发明实施例所提供的一种运动前景检测方法、装置、终端设备及存储介质,通过混合高斯模型、运动估计和邻域模型搜索相结合,避免了现有前景检测方法因滤波导致的小运动物体被模糊化从而导致漏检的情况,且邻域模型搜索范围能根据局部运动估计量自适应变化,对于运动剧烈的区域,其邻域搜索范围相应的会更大,邻域模型搜索弥补了运动估计的精度问题,有效解决了运动场景下背景边缘部分被检测成为前景的问题。同时本发明还通过降低模型参数更新频率的方式来降低动态场景下运动前景检测算法的计算复杂度,提高算法的实时性,即不对全部混合高斯模型进行模型参数更新,而是只更新间隔一定帧数的视频帧对应的模型,且在邻域模型搜索的过程中只进行模型匹配和前景/背景判断,不更新模型参数。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:人脸跟踪方法、装置及终端设备