一种静止摄像机下的基于ViBe的运动目标检测方法与流程

文档序号:11922072阅读:250来源:国知局
一种静止摄像机下的基于ViBe的运动目标检测方法与流程

本发明涉及计算机视觉技术,尤其是涉及一种静止摄像机下的基于ViBe的运动目标检测方法。



背景技术:

作为近年来提出的一种较为流行的运动目标检测算法,ViBe算法具有计算复杂性低,执行效率高的优点,可用于静止摄像机下做实时的运动目标检测。但算法也存在着检测到的目标存在较多空洞,容易产生鬼影等问题。

对于空洞消除,传统的做法是使用膨胀技术,该技术可以较好地消除较小的空洞,但是对于较大的空洞无法有效处理,而且无法较保留目标的完整轮廓。在ViBe的改进算法ViBe+算法(M.V.Droogenbroeck and O.Paquot,”Background subtraction:Experiments and improvements for vibe”,Computer Vision and Pattern Recognition Workshops(CVPRW),2012 IEEE Computer Society Conference on,pages 32–37,2012.)中设置空洞大小的阈值的方法来填充空洞。但是通常目标检测无法确定目标的大小,不同运动目标产生的空洞大小不一致,阈值难以有效确定。

对于鬼影检测(ghost detection)的方法一般主要应用于基于背景建模的各类运动目标检测算法的后处理阶段,主要针对检测得到的目标执行进一步的分割并剔除其中的鬼影区域。鬼影的产生主要基于以下的两种情况,第一种情况是运动目标由运动状态变为静止状态,此时目标由运动的前景变为静止的背景,而由于算法未及时地将目标融合进背景模型中,从而导致鬼影的产生;第二种情况是静止的目标由静止状态变为运动状态。由于背景模型未能及时地更新,被目标在静止状态时遮挡的背景此时被检测为前景,从而在目标原来停留的区域产生鬼影。由于鬼影容易造成对目标区域的误判,同时也将极大地降低对目标定位的精度,因此及时地检测这些鬼影区域并更新背景模型对基于背景建模的运动目标检测算法来说具有十分重要的意义。

当前的一些鬼影检测方法主要围绕着如何对检测得到前景区块进行真实前景区域和鬼影区域的判定,主要有以下的一些方法。

最简单的鬼影检测方法即基于像素级的前景统计,即对视频帧的每一个像素统计其被持续检测为前景的帧数,记作N,如果N大于某个人为设定的经验阈值T,那么该像素点被判定为鬼影区域内的像素点。但此方法对于低速,大型的目标无法有效工作。这是由于虽然能够去除鬼影,但真实的前景像素也将被去除。

Cucchiara等人(R.Cucchiara,M.Piccardi,and A.Prati,"Detecting moving objects,ghosts,and shadows in video streams",IEEE Transactions on Pattern Analysis and Machine Intelligence 25,pp.1337-1342,2003)提出的基于计算前景像素光流均值的鬼影检测方法。该方法认为运动的前景区块会产生明显的光流,而对于鬼影区域其光流的均值将趋近于零。然而种方法也有其一定的缺点,首先光流计算的代价较高,其次光流计算的结果有可能会产生一些光流噪声,这将影响后继鬼影检测的效果。Cheung等人(S.C.S.Cheung,C.Kamath,“Robust Background Subtraction with Fore-ground Validation for Urban Traffic Video”,EURASIP Journal on Applied Signal Processing,pp.2330-2340,2005.)提出通过计算当前帧和前一帧的帧差,帧差得到的前景区域对应的前景区块即为真实的目标前景,其余的前景区块即为鬼影区域。但此方法易受背景扰动的影响,导致算法失效。另外一类即采用直方图统计的方法,来度量目标区域和鬼影区域与该区域历史模板的相似度。当前帧目标区域的直方图与该区域历史模板的直方图相似度低,而鬼影区域的直方图与该区域的历史模板的直方图相似度较高,进而判断出鬼影区域。但这同时存在对背景模板的依赖性,当背景存在剧烈的光照变化时或者背景存在扰动时,对方法的效果也将产生影响。Desurmont(X.Desurmont,C.Chaudy,A.Bastide,C.Parisot,J.F.Delaigle,B.Macq,“Image analysis architectures and techniques for intelligent systems”,IEE Proceedings on Vision,Image and Signal Processing,Special issue on Intelligent Distributed Surveillance Systems,pp.224-231,2005.)等人提出的计算每个前景区块的边缘均方梯度。该方法认为鬼影区域的边缘均方梯度由于没有目标取值较小,因此如果前景区块的边缘均方梯度小于设定的阈值,那么该前景区块被判定为鬼影。但是如果背景的纹理较为的丰富,将导致鬼影区域计算的边缘均方梯度值特别大,从而影响检测的效果。



技术实现要素:

本发明的目的在于提供高效而实用,对于提高当前一些基于背景建模的运动目标检测算法(如:ViBe算法)的检测效果和精度具有十分重要的意义的一种静止摄像机下的基于ViBe的运动目标检测方法。

本发明包括以下步骤:

A.初始化视频帧每个像素点前景计数和鬼影(ghost)计数。

B.对使用ViBe算法检测得到的二值图进行预处理。

C.对步骤B中预处理后的二值图进行前景区块划分操作,并分别使用不同的数字标记属于同一前景区块的像素,同时去除前景区块中像素少的前景区块,并修改背景像素点和前景像素点的前景计数。

D.每隔p帧对步骤C中得到的前景区块像素点的前景计数进行去噪处理,并根据前景区块中所有像素点的前景计数值来进行鬼影检测。

E.对经过步骤C或者步骤D处理后得到的二值图中的前景区块进行内部空洞消除,并使用区块标记数字对所消除的内部空洞像素进行标记。

F.每隔q帧对当前视频帧和经过步骤E处理后得到的二值图进行边缘检测,生成两张边缘二值图;然后对这两张边缘二值图执行逻辑与操作,并对逻辑与操作后得到的结果根据边缘像素的邻域连通性进行边缘划分,对于划分后得到的边缘分别使用数字进行标记;最后统计每个前景区块中的每条边缘被所包括的前景像素个数和其对应的边缘像素个数,进而来判断边缘的有效性。

G.根据步骤F中得到的有效边缘,统计每个前景区块中的有效边缘,并根据有效边缘划分出前景区块中的有效区域,修改有效区域内和区域外的前景像素的鬼影计数,最后根据鬼影计数进行鬼影检测。

在步骤A中,所述初始化视频帧每个像素点前景计数和鬼影(ghost)计数的具体步骤可为:

A1.第一帧初始化视频帧的每个像素的前景计数值为0。

A2.第一帧初始化视频帧的每个像素的鬼影计数值为0。

在步骤B中,所述对使用ViBe算法检测得到的二值图进行预处理的具体步骤可为:

B1.使用ViBe算法进行初始的运动目标检测,对于检测得到的二值图,其中像素值为255即为前景像素,像素值为0即为背景像素。

B2.对步骤B1检测得到的二值图进行中值滤波处理去除前景噪声。

在步骤C中,所述对步骤B中预处理后的二值图进行前景区块划分操作,并分别使用不同的数字标记属于同一前景区块的像素,同时去除前景区块中像素少的前景区块,并修改背景像素点和前景像素点的前景计数的具体步骤可为:

C1.对经过B步骤预处理后的二值图中的所有前景像素进行8个方向邻域统计,因为邻域内的所有前景像素与中心点前景像素相连通的,所以对于邻域相连通前景像素将划分为属于同一前景区块,并对每个划分好的前景区块按照顺序使用不同的数字依次进行标记,所述标记的是前景区块中的每个前景像素,用于区分每个前景区块各自所包含的前景像素。

C2.去除前景区块中前景像素个数小于10的前景区块,即将前景区块中的前景像素置为背景像素。

C3.对经过步骤C2处理后得到的二值图中的背景像素,即像素值为0的像素将其前景计数置为0。

C4.对经过步骤C2处理后得到的二值图中的前景像素,即像素值为255的像素,将其前景计数执行加1操作。

在步骤D中,所述每隔p帧对步骤C中得到的前景区块像素点的前景计数进行去噪处理,并根据前景区块中所有像素点的前景计数值来进行鬼影检测的具体步骤可为:

D1.每隔P帧对经过步骤C划分得到所有前景区块中的每个像素的前景计数进行遍历,对于前景计数值小于前景计数阈值U的像素进行噪声判断。

D2.对于稀疏分布的前景计数值小于前景计数阈值U的像素将判定为噪声,此时该像素的前景计数更新为其八个邻域像素中前景计数值最大那个像素的前景计数或者是更新为前景计数阈值U+1,这里将根据具体的条件来选取像素前景计数的更新策略。

D3.对于连通分布的前景计数值小于前景计数阈值U的像素将不判定为噪声,此时像素的前景计数不变。

D4.统计经过去噪处理后的前景区块中所有的前景像素的前景计数,如果前景区块中所有像素的前景计数都超过了前景计数阈值U,那么判断该前景区块为鬼影区域,同时将该前景区块中的前景像素全部置为背景像素,从而消除鬼影并剔除该前景区块,并更新该前景区块中所有前景像素的背景模型。

在步骤E中,所述对经过步骤C或者步骤D处理后得到的二值图中的前景区块进行内部空洞消除,并使用区块标记数字对所消除的内部空洞像素进行标记的具体步骤可为:

E1.由于步骤D是间隔p帧对步骤C处理的结果进行鬼影检测,因此如果当前帧数是p的倍数,那么执行步骤D并得到处理后的二值图,否则步骤D不执行并直接使用步骤C处理后得到的二值图。

E2.根据步骤E1得到的二值图中每个前景区块,计算出包含每个前景区块的最小矩形框。

E3.对每个前景区块分别进行双边空洞像素检测,即从矩形框的上下边出发,寻找每一列中的空洞像素,即每一列中上下第一个出现的前景像素之间的背景像素;从矩形框的左右边出发,寻找每一行中的空洞像素,即每一行中左右第一个出现的前景像素之间的背景像素;每一行的和每一列空洞像素的交集即为前景区块的空洞像素。

E4.将根据步骤E3检测得到的每个前景区块中的空洞像素置为前景像素来消除空洞,并使用每个前景区块各自所对应的标记数字,来标记它们各自所检测得到的空洞像素。

在步骤F中,所述每隔q帧对当前视频帧和经过步骤E处理后得到的二值图进行边缘检测的具体步骤可为:

F1.每隔q帧进行当前帧和经过步骤E处理后的二值图进行Sobel边缘检测,生成两张边缘二值图,即根据梯度阈值H1和H2来分别对当前帧和二值图根据Sobel算子计算得到每个像素的梯度值进行判定。当像素梯度值大于梯度阈值时,像素判定为边缘像素,即像素值为255,否则判定为背景像素,像素值为0,进而得到两张边缘二值图。

F2.将步骤F1计算得到的两张边缘二值图执行逻辑与操作,并将与操作得到的边缘二值图执行边缘划分,即对于每个边缘像素进行八个方向的邻域统计,对于邻域内的所有边缘像素这里判定它们是与中心点边缘像素相连通的,所以对于相连通的边缘像素将被划分为属于同一边缘;最后对划分得到的所有边缘分别使用数字进行标记,即标记每条边缘中的边缘像素,用于区分每条边缘各自所包含的边缘像素。

F3.然后计算每个前景区块中每条边缘所包括的前景像素的个数M和其对应的边缘像素的个数N,接着计算M和M+N的比值。

F4.将步骤F3计算得到的每个边缘的比值和阈值S进行比较,大于该阈值的边缘判断为有效边缘,否则为无效边缘。

在步骤G中,所述根据步骤F中得到的有效边缘,统计每个前景区块中的有效边缘,并根据有效边缘划分出前景区块中的有效区域,修改有效区域内和区域外的前景像素的鬼影计数,最后根据鬼影计数进行鬼影检测的具体步骤可为:

G1.根据步骤F得到的有效边缘可以得到隶属于每个前景区块中的有效边缘,然后根据有效边缘分布在前景区块中的空间位置可以划分出前景区块中的有效区域。

G2.对于二值图中的背景像素,将其鬼影计数置为0。然后根据步骤G1得到的每个前景区块中的有效区域,将有效区域内的前景像素点的鬼影计数做减二操作,由于鬼影计数始终是大于等于0的,所以当鬼影计数由于减二操作小于0时,将其重新置为0,对有效区域外的前景像素的鬼影计数做加一操作。为尽可能降低由于边缘显著性降低带来的将前景目标的误判为鬼影的情况,所以这里设定一旦前景像素判定为位于有效区域内,立即对鬼影计数做减二操作。

G3.然后统计每个前景区块的中前景像素的鬼影计数值,超过鬼影计数阈值V的像素将判定为鬼影区域像素,并将其置为背景像素,用于消除鬼影区域,更新其鬼影计数值为0,同时更新该像素的背景模型。

本发明基于ViBe运动目标检测算法,提出了新型的空洞消除和鬼影检测方法。首先使用ViBe算法进行初始的运动目标检测,并对检测得到的二值图划分为互不连通的多个前景区块;然后通过统计每个前景区块中所有前景像素点的前景计数值,同时根据小于前景计数阈值的前景像素的前景计数值的邻域相关性来剔除奇异的前景像素点。当某个前景区块中的所有像素点的前景计数超过设定的前景计数阈值时,该前景区块将被检测为鬼影,同时更新该前景区块中像素的背景模型;其次分别对当前帧和二值图执行Sobel边缘检测,并对得到的两张边缘二值图执行逻辑与操作。对于鬼影区域,由于不存在目标,逻辑与操作后将得不到有效的边缘,而对于运动目标区域,将得到目标的有效边缘,因此根据位于同一前景区块内的有效边缘的空间分布,计算有效边缘所包围的区域,那么此区域将被认定为前景区块中的有效区域,否则视为无效区域。最后通过对前景区块中的有效区域和无效区域的前景像素进行鬼影计数,根据计数值来检测鬼影区域的像素点,进而消除鬼影区域。另外,本发明还通过双边空洞像素检测来消除前景区域空洞的影响,进而使得检测得到的目标更加的完整,达到去除空洞的目的。

本发明首先对使用ViBe算法检测得到的前景区块的像素进行前景计数,同时根据小于前景计数阈值的前景像素的邻域相关性来剔除奇异的前景像素点,从而检测鬼影区域;其次采用双边空洞像素检测来消除前景区块的内部空洞;最后结合目标边缘来检测前景区块中的有效边缘,从而根据有效边缘区分出前景区块中的有效区域和无效区域,进而对有效和无效区域中的前景像素执行鬼影计数,并根据鬼影计数值来检测和消除鬼影区域,得到最终的检测结果。

附图说明

图1为本发明实施例的基于前景计数的前景像素噪声点判定和噪声点消除示意图。

图2为本发明实施例的基于前景计数的鬼影检测示意图。

图3为本发明实施例的前景区块空洞消除示意图。

图4为本发明实施例的基于边缘有效性判别的鬼影检测示意图。

具体实施方式

下面结合附图和实施例对本发明的方法作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了实施方式和具体操作过程,但本发明的保护范围不限于下述实施例。

本发明实施例的实施方式包括以下步骤:

S1.初始化视频帧每个像素点前景计数和鬼影计数。

具体包括:第一帧时,初始化视频帧中每一个像素的前景计数和鬼影计数为0。

S2.对使用ViBe算法检测得到的二值图进行预处理。

具体包括:对使用ViBe算法检测得到的二值图进行中值滤波去除前景噪声点,中值滤波的核大小一般取为3×3。

S3.对步骤S2中预处理后的二值图进行前景区块划分操作,并分别使用不同的数字标记属于同一前景区块的像素,同时去除前景区块中像素个数小于10的前景区块,并修改背景像素点和前景像素点的前景计数。

具体包括:对步骤S2得到的二值图中的每个前景像素进行八个方向的邻域统计,对于邻域内的所有前景像素这里判定它们是与中心点前景像素相连通的,所以对于邻域相连通的前景像素将划分为属于同一前景区块,并对每个划分好的前景区块按照顺序使用不同的数字依次进行标记,这里标记的是前景区块中的每个前景像素,用于区分每个前景区块各自所包含的前景像素;并剔除前景像素个数小于10的前景区块。

对二值图中的背景像素,将其前景计数值置为0;而对于前景像素,将其前景计数值做加1操作。

S4.每隔p帧对步骤S3中得到的前景区块像素点的前景计数进行去噪处理,并根据前景区块中所有像素点的前景计数值来进行鬼影检测。

具体包括:使用当前视频帧的帧数与p(p取20)值进行求模操作,求模的结果为0,即对经过步骤S3划分得到的前景区块中前景像素点的前景计数进行去噪处理。对于那些位于前景区块中且前景计数小于前景计数阈值U(U取5)的前景像素点进行噪声点的判定,一般的,稀疏分布的这些前景像素点将判定为噪声点,连通分布的这些前景像素点将不判定为噪声点,这些前景像素点判定为噪声点的条件和去噪处理方案如图1所示。

对经过去噪声处理后的前景区块中的前景像素的前景计数值进行统计,如果此时还存在前景计数小于前景计数阈值的前景像素点,那么前景区块为真实的目标前景区块,否则前景区块被判定为鬼影,消除鬼影区域并更新鬼影区域内前景像素的背景模型,这部分的鬼影检测如图2所示,图2中给出的是采用基于前景计数的鬼影检测的部分结果,方法每隔20帧进行基于前景计数的鬼影检测,当前景块中所有前景像素的前景计数大于计数阈值U(U=5),那么前景块判定为鬼影;从1960帧开始,可以看到帧序列中每帧左下角的前景区块为鬼影,最后在2040帧时左下角的前景块被检测为鬼影区域,并被消除。这部分的鬼影检测主要用于处理运动目标由运动到静止状态时产生的鬼影。

S5.对经过步骤S3或者步骤S4处理后得到的二值图中的前景区块进行内部空洞消除,并使用区块标记数字对所消除的内部空洞像素进行标记。

具体包括:由于步骤S4是间隔p帧对步骤S3处理的结果进行鬼影检测,所以如果当前帧数是p的倍数,那么执行步骤S4并得到处理后的二值图,否则步骤S4不执行并直接使用步骤S3处理后得到的二值图。

根据二值图中每个前景区块,计算出包含每个前景区块的最小矩形框,并从矩形框的上下两边出发,统计每一列中的空洞像素,即每一列中上下第一个出现的前景像素之间的背景像素;从矩形框的左右边出发,统计每一行中的空洞像素,即每一行中左右第一个出现的前景像素之间的背景像素;每一行和每一列空洞像素的交集即为前景区块的空洞像素,空洞消除如图3所示。

将每个前景区块的空洞像素置为前景像素,并使用每个前景区块各自所对应的标记数字,来标记它们各自所检测得到的空洞像素。

S6.每隔q帧对当前视频帧和经过步骤S5处理后得到的二值图进行边缘检测,生成两张边缘二值图,即包含像素值为255的边缘像素和像素值为0的背景像素;然后对这两张边缘二值图执行逻辑与操作,并对逻辑与操作后得到的结果根据边缘像素的邻域连通性进行边缘划分,对于划分后得到的边缘分别使用数字进行标记;最后统计每个前景区块中的每条边缘被所包括的前景像素个数M和其对应边缘像素个数N,接着计算M和M+N的比值,并根据阈值S判断边缘的有效性。

具体包括:使用当前视频帧的帧数与q(q取5)值进行求模操作,求模的结果为0,即对当前视频帧和经过步骤S5处理的二值图进行Sobel边缘检测,生成两张边缘二值图,即根据梯度阈值H1(H1取200)和H2(H2取100)来分别对当前帧和二值图根据Sobel算子计算得到每个像素的梯度值进行判定,当像素梯度值大于梯度阈值时,像素判定为边缘像素,即像素值为255,否则判定为背景像素,像素值为0,进而得到两张边缘二值图。

将计算得到的两张边缘二值图执行逻辑与操作,并将与操作得到的边缘二值图执行边缘划分,即对于每个边缘像素进行八个方向的邻域统计,对于邻域内的所有边缘像素这里判定它们是与中心点边缘像素相连通的,所以对于相连通的边缘像素将被划分为属于同一边缘;最后对划分得到的所有边缘分别使用数字进行标记,即标记每条边缘中的边缘像素,用于区分每条边缘各自所包含的边缘像素。

计算每个前景区块中每条边缘所包括的前景像素的个数M和其对应的边缘像素的个数

N,根据公式:

满足上述公式的边缘为有效边缘,否则为无效边缘。剔除无效边缘,保留有效边缘。

S7.根据步骤S6中得到的有效边缘,统计每个前景区块中的有效边缘,并根据有效边缘划分出前景区块中的有效区域,修改有效区域内和区域外的前景像素的鬼影计数,最后根据鬼影计数进行鬼影检测。

具体包括:根据步骤S6得到的有效边缘可以得到隶属于每个前景区块中的有效边缘,然后根据有效边缘分布在前景区块中的空间位置可以划分出前景区块中的有效区域。

划分出前景区块中的有效区域和无效区域后,对位于有效区域内的前景像素的鬼影计数做减2操作,由于鬼影计数始终是大于等于0的,所以当鬼影计数由于减二操作小于0时,将其重新置为0,对无效区域内的前景像素的鬼影计数做加1操作。而对于二值图中的背景像素,将其鬼影计数置为0。最后统计前景区块中前景像素的鬼影计数,如果前景像素的鬼影计数值大于鬼影计数阈值V(V取值为5),那么该前景像素被判定为鬼影区域像素,直接将其置为背景像素,同时更新该像素的背景模型,并置该像素的鬼影计数为0。基于边缘有效性判别的鬼影检测如图4所示,图4中给出的是采用基于边缘有效性判别的鬼影检测的部分结果,方法每隔5帧进行基于边缘有效性判别的鬼影检测,当前景区块中前景像素的鬼影计数大于计数阈值V(V=5),那么该前景像素被判定为鬼影区域像素;从1980帧开始,可以看到帧序列中无效区域A中检测得到的鬼影区域像素会逐渐的被消除,最后在2040帧时无效区域A被完全地消除了。这部分的鬼影检测主要用于处理运动目标由静止到运动状态时产生的鬼影。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1