一种面向ViBe的前景鬼影消除方法与流程

文档序号:11144704阅读:826来源:国知局
一种面向ViBe的前景鬼影消除方法与制造工艺

本发明涉及计算机视觉技术与视频图像处理领域,具体涉及面向ViBe(Visual Background Extractor,即可视化背景提取器)的前景对象检测及抑制鬼影技术。



背景技术:

随着高清摄像头的普及和物联网的飞速发展,视频监控被广泛应用于人们的生产生活之中,从而产生了海量的视频数据,传统的人工查阅随着视频数据的增加变得越来越困难,如何利用计算机从海量视频中提取有用的信息成为目前计算机视觉领域的研究热点之一。提取视频中有意义的信息落地第一步是要对视频进行运动目标的检测与提取,目前运动目标检测的方法主要有三种常用的方法:光流法、帧间差分法、背景差法。

背景差法中的ViBe与诸多方法相比具有计算量小、内存占用率低、实时性高、抗噪效果好等优点。但是由于ViBe只需第一帧就可以完成背景模型的初始化,而仅仅靠第一帧不包含时空信息,存在易引入鬼影的缺点,且当有前景对象不断经过鬼影区域时,会出现鬼影被不断加强无法消去的情况。这将严重影响背景建模的准确性,从而影响了ViBe在前景检测应用中的效果。

针对该缺点,常见的抑制鬼影的方法有:1、对视频前n帧进行预处理,运用帧间差法先得到不包含前景对象的背景图片,在进行模型的初始化,可以有效的消除鬼影的产生,但是由于预留n帧进行预处理同时也拉长了模型初始化的时间,相比原ViBe只需第一帧就可完成初始化,该方法实现了一定程度上的鬼影消除,但却牺牲了方法的实时性;2、基于阈值的鬼影抑制方法,对鬼影具有一定的抑制作用,但是因为阈值的设定使得方法具有一定的延时性,鬼影的消除速度方面仍有提高的空间。



技术实现要素:
为江苏省科技厅重点研发计划产业前瞻与共性关键技术:“大规模监控视频存储与分析关键技术研发”(BE2015137)的研究成果之一。

发明内容

本发明的目的在于提供一种面向ViBe的前景鬼影消除方法,克服原ViBe提取前景容易引入鬼影的缺陷,以提高鲁棒性和实时性,减少鬼影对背景建模的影响,从而提高目标检测的准确性。

为了解决以上技术问题,通过进行实时鬼影检测和对鬼影区域进行局部初始化,此方法能够在视频背景建模的过程中实时地对鬼影产生抑制效果,并采用与原ViBe相同的思路,属于基于像素点的运算,并没有增加过多运算量,平均每帧处理时间在可接受范围内,具有良好的鲁棒性和实时性,有效地减少了鬼影对背景建模的影响,提高了目标检测的准确性。

在原ViBe提取前景的基础上引入实时鬼影区域检测和局部模型重新初始化的策略,发明的主体包含鬼影区域检测,鬼影区域定位,以及鬼影的抑制三部分。其中鬼影的抑制包含三个关键问题:(1)对何时进行局部模型重新初始化操作的判定、(2)如何确定局部重新初始化的具体区域,即如何定位每一帧中新出现的属于背景的像素的位置、(3)如何确定鬼影区域的像素集是否已经被完全重新初始化。

本发明与已公开的专利《基于ViBe算法的鬼影快速抑制方法》采用了不同的思路,《基于ViBe算法的鬼影快速抑制方法》是通过阈值给予匹配数目置信因子权值,通过判断某像素点匹配数目与阈值的关系确定该像素点是否是鬼影点,若是鬼影点则将其划为背景点,而本发明是通过第二帧检测对鬼影区域进行划定,通过确定候选鬼影区域集合,对鬼影区域中的鬼影进行实时的检测与抑制。且相比前者阈值的选定容易受特定的视频序列影响,本方法更具可实施性与直观性,通过在不同场景上的实验具有良好的抑制鬼影效果与运行速度。

本发明采用的具体技术方案如下:

一种面向ViBe的鬼影消除方法,其特征在于包括以下步骤:

分为鬼影区域的检测、鬼影区域的定位、前景鬼影的抑制三个部分其特征在于将鬼影的消除置于每一帧的背景建模之后,通过设置前景像素点连通域的面积阈值得到前景ROI(Region of Interest,即感兴趣区域),当前景移动后,通过像素点集合的交运算将背景模型初始化中被前景遮挡的背景的部分区域定位并进行重新初始化,不断地矫正混入前景像素的背景模型,以达到实时抑制鬼影的目的。具体权利要求包括以下步骤:

步骤一,对鬼影区域进行检测得鬼影区域:逐帧读取视频序列,检测是否存在由第一帧初始化过程中含有的前景对象而引入的鬼影,若存在则转到步骤二,否则结束执行对鬼影区域的检测;

步骤二,对鬼影区域的定位:通过对前景对象ROI矩形区域与所述步骤一中得到的鬼影区域进行交运算,将计算所得的像素点集合所在的位置作为鬼影区域记录下来并转到步骤三;

步骤三,对前景鬼影的抑制:判断是否可以对步骤二得到的鬼影区域进行重新初始化,若可以,则对当前帧指定区域进行局部模型重新初始化,并将新的样本集重新填充到背景模型对应的区域中,否则读取下一帧,继续执行步骤三。

对前景鬼影区域的实时检测,引入第二帧判断法,即通过利用像素点之间的邻接关系得到前景对象的连通域,并设置阈值,从而判断第二帧是否含有前景对象,进而判断视频序列中是否可能含有鬼影。所述步骤一具体包括以下过程:

过程1.1,将前景像素点的灰度值设置为255,,将背景点的像素值设置为0;

过程1.2,利用像素点的邻接关系获取连通域,设置面积阈值AreaThreshold;

过程1.3,计算连通域面积S,若S>AreaThreshold,则判定视频的背景模型在初始化中有运行的前景对象的,在之后的检测过程中将会出现鬼影;否则结束执行本方法;

过程1.4,记运动的前景对象因位移产生的两个区域的外接矩形为R1,R2,R1和R2有重叠部分,对R1和R2取外接矩形Rghost,记满足条件的Rghost组成的集合为G。

所述步骤二中位置信息包括鬼影区域集合中元素左上角的坐标(x0,y0),以及其高度h和宽度w。

对前景鬼影区域的背景模型重新初始化的鬼影抑制,通过将原先被前景对象遮挡的,且没有被新的前景对象遮挡的背景区域进行重新初始化,以矫正在第一帧中初始化模型过程中混入的前景像素点对模型的干扰。步骤三具体包括以下过程:

过程3.1,确定何时进行局部模型重新初始化操作:在检测鬼影阶段记录下鬼影区域Rghost的位置信息,在以后的每一帧中也可以得到划分被判断为前景的像素点形成连通域的外接矩形Rforeground,通过判定Rforeground与Rghost的几何关系,如果Rghost没有完全被Rforeground覆盖,则开始更新未被覆盖的区域的所有像素对应的样本集;

过程3.2,确定局部重新初始化的具体区域:当鬼影区域存在没有被前景对象遮挡住的背景时,对此部分的区域进行重新初始化的操作,局部重新初始化的具体区域为背景像素集合和鬼影区域的像素集合的交集;把即将被进行局部更新操作的区域记为RtoBeReinitialized。则RtoBeReinitialized=Rghost-Rforeground∩Rghost

过程3.3,确定鬼影区域的像素集是否已经被完全重新初始化:当检测到某一帧时,任意Rghost∈G的面积满足Sghost<AreaThreshold时可以确定该鬼影区域已经重新初始化完毕,即背景模型对应的区域不再包含前景像素点的样本,将该区域从集合G中移除。

所述面积阈值AreaThreshold=64。

所述获取Rghost位置信息的方法如下:对连通域像素集合坐标值进行遍历,分别获得X方向Y方向的最值,在X方向上,记最小值为xmin,最大值xmax;在Y方向上,记最小值为ymin,最大值为ymax记所述连通域表征鬼影区域的Rghost的左上角坐标为(x0,y0),高度为h,宽度为w,则x0=xmin,y0=ymin,h=ymax-ymin,w=xmax-xmin

所述过程3.1中判定Rforeground与Rghost的几何关系的方法如下:,记Rforeground的左上角坐标为(x0',y0'),高度为h’和宽度w’,则当满足或时矩形框Rforeground与Rghost没有重叠部分。

本发明具有有益效果:

(1)在目标检测应用方面,一般而言,视频序列中的目标检测需要对前景对象进行分离与提取,ViBe相比其他方法有计算量小、内存占用率低、实时性高、抗噪效果好等诸多优点,但是容易引人鬼影的问题会导致前景对象的误检,错误地将背景对象检测为前景,降低目标检测的准确性。本发明针对该问题,本发明通过引入第二帧鬼影区域检测和局部背景模型重新初始化策略,使得在ViBe背景建模的基础上产生的前景鬼影得到实时的检测与抑制。可以有效地提高目标检测的精度,降低误检率。

(2)在视频浓缩应用方面,视频浓缩第一步往往需要对视频序列进行背景建模,当视频帧中不存在前景对象时,可以认定该帧不包含有意义的信息,因此可以将该帧略去,而鬼影的存在会导致原本不存在前景对象的视频帧被误判为含有前景对象的情况发生,从而影响了视频浓缩的效率,表现为降低了视频浓缩率,增加了视频存储的体积,而且还增加视频检索查阅的工作量。因此,本发明通过抑制鬼影的产生避免以上情况的发生,起到提高视频浓缩的效率,减少视频文件的体积,从而减少视频文件对存储的压力,降低了视频查阅人员的工作量。

附图说明

图1是本发明所述面向ViBe的前景鬼影消除方法的流程示意图。

图2是本发明所述鬼影区域检测中判为前景区域的外接矩形R1,R2示意图。

图3是本发明所述N帧后局部重新初始化区域与更新的鬼影区判定示意图。

具体实施方式

下面结合附图和具体实施方式对本发明进一步详细说明。

本发明的实现具体是依序采用如下步骤:

(1)运用OpenCV(cSource Computer VisionLibrary,开源的跨平台计算机视觉库)中包含的视频流处理的函数库,对待处理的视频序列进行逐帧读取,同时获取视频的基本编码信息。

(2)通过ViBe进行背景建模,从而对前景对象进行检测,将构成前景对象的像素集合的像素值设置为255,将构成背景区域的像素值设置为0。从而得到二值图像作为视频序列的背景掩模。

(3)利用像素点的邻接关系获取像素值为255的连通区域,并设置面积阈值AreaThreshold,当连通域面积S>AreaThreshold,则判定视频的背景模型在初始化中有运行的前景对象,在之后的检测过程中将会出现鬼影,则转到第(4)步。若不存在,则执行结束。

(4)将符合条件的连通域的外接矩形记录下,构成鬼影区域集合。具体方案为:将得到运动对象因位移产生的两个区域,记这两个区域外接矩形为R1,R2,如图2所示R1和R2是有重叠部分的,对R1和R2取外接矩形。则Rghost的个数则为鬼影的数目,且每个Rghost所在位置即为鬼影的对应位置。记满足条件的Rghost组成的集合为G。

(5)对鬼影区域进行局部初始化,在第二帧后,对每一帧的没有被前景对象遮挡的鬼影区域进行局部重新初始化,并更新鬼影区域。记局部重新初始化区域为RtoBeReinitialized,则RtoBeReinitialized=Rghost-Rforeground∩Rghost

(6)依照像素点的位置将重新初始化后的部分的矩阵填充到背景模型中去,从而更新背景模型。

(7)在对鬼影区域进行局部初始化后,需要对鬼影集合进行更新操作,将已经重新初始化的鬼影区域从集合中剔除,Rghost'=Rghost-RtoBeReinitialized。遍历Rghost中的元素当满足Sghost<AreaThreshold则将该元素从G中移除,当G为空,即card(G)=0时,可以确定鬼影区域已被完全消除,则执行结束,否则转到第(3)步。图1为本发明提出的面向ViBe的鬼影消除方法的流程示意图。

S1:视频序列的读取

运用OpenCV中包含的视频流处理的函数库,对待处理的视频序列进行逐帧读取,同时获取视频的基本编码信息。

S2:对视频序列进行背景建模

通过ViBe进行背景建模,从而对前景对象进行检测,将构成前景对象的像素集合的像素值设置为255,将构成背景区域的像素值设置为0。从而得到二值图像作为视频序列的背景掩模。

S3:检测鬼影区域

由S2获得的二值背景掩膜,利用像素点的邻接关系获取像素值为255的连通区域,并设置面积阈值AreaThreshold,当连通域面积S>AreaThreshold,则可判定视频的背景模型在初始化中有运行的前景对象的,在之后的检测过程中将会出现鬼影。

进一步优选方案,所述AreaThreshold=64。

S4:划定鬼影区域

由S3确定是否会存在鬼影区域,若不存在,则执行结束;若存在,则将符合条件的连通域的外接矩形记录下,构成鬼影区域集合。将得到运动对象因位移产生的两个区域,记这两个区域外接矩形为R1,R2,如图2所示,R1和R2存在重叠部分,对R1和R2取外接矩形。则Rghost的个数则为鬼影的数目,且每个Rghost所在位置即为鬼影的对应位置。记满足条件的Rghost组成的集合为G。

进一步优选方案,所述位置信息包括Rghost中元素左上角的坐标(x0,y0),以及其高度h和宽度w。

进一步优选方案,在X方向上,记最小值为xmin,最大值xmax;在Y方向上,记最小值为ymin,最大值为ymax记所述连通域表征鬼影区域的Rghost的左上角坐标为(x0,y0),高度为h,宽度为w,则x0=xmin,y0=ymin,h=ymax-ymin,w=xmax-xmin

S5:局部区域重新初始化

在第二帧后,对每一帧的没有被前景对象遮挡的鬼影区域进行局部重新初始化。当鬼影区域存在没有被前景对象遮挡住的背景时,对此部分的区域进行重新初始化的操作,记重新初始化的区域所构成的集合为RtoBeReinitialized,则:RtoBeReinitialized=Rghost-Rforeground∩Rghost,RtoBeReinitialized区域如图3所示。

进一步优选方案,记Rforeground的左上角坐标为(x0',y0'),高度为h’和宽度w’,则当或时矩形框Rforeground与Rghost没有重叠部分,当满足上诉条件时,则可对Rghost进行重新初始化的操作。

S6:更新背景模型

在对局部重新初始化后,依照像素点的位置将重新初始化后的部分的矩阵填充到背景模型中去,从而更新背景模型。

S7:更新鬼影区域集合

在对鬼影区域进行局部初始化后,需要对鬼影集合进行更新操作,将已经重新初始化的鬼影区域从集合中剔除,如图3所示,Rghost'=Rghost-RtoBeReinitialized。遍历Rghost中的元素当满足Sghost<AreaThreshold则将该元素从集合G中移除,当G为空,即card(G)=0时,可以确定鬼影区域已被完全消除,则执行结束,否则转到S3。

在数据集Crowd_PETS09上的对比实验表明,在使用本方法后基于ViBe前景提取在鬼影消除方面的效果上有显著提升。本方法可以有效地在第一时间对背景模型进行修正,从而起到消除鬼影的作用。在有稠密的目标经过鬼影区域的时候效果尤为明显。对比使用本方法前后背景建模的效果,可以发现,未使用本方法的实验组中,会存在前景对象不断进入鬼影区域,从而鬼影被不断被地强化而长时间不能被及时地消去的情况;而使用本方法的实验组中,鬼影在第二帧之后就得到了及时的消除,从而避免了鬼影对目标检测的影响。

以上所述仅为本发明技术方案和具体实施例的描述,并不用于限定本发明的保护范围,应当理解,在不违背本发明实质内容和精神的前提下,所作任何修改、等同替换等都将落入本发明的保护范围内。

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