一种在运动物体检测中通用的鬼影消除方法转让专利

申请号 : CN201710343189.8

文献号 : CN107085836B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨依忠蒋靖波徐栋胡雄楼张强解光军

申请人 : 合肥工业大学

摘要 :

本发明属于数字图像处理中的运动物体检测领域,是一种能够与多种运动物体检测算法相结合,消除视频流中产生的鬼影的通用方法。本发明首先对视频流应用运动物体检测算法进行前背景分割;再对前景蒙版使用中值滤波与膨胀算法进行前处理,接着用Scatter算子与前景蒙版进行卷积,以动态打散连通的运动物体前景图;再使用基于空间相似性的更新方法进行背景模型的更新,最后读入下一帧以循环处理。有益的技术效果:本发明具有能够在检测率较高的情况下快速消除鬼影的优点。

权利要求 :

1.一种在运动物体检测中通用的鬼影消除方法;所述运动物体检测是通过计算机执行如下步骤:输入待处理视频流的步骤、获得待处理图像的步骤、从待处理图像中获取前景蒙版视频流的步骤、消除前景蒙版中鬼影的步骤、存储经过处理的前景蒙版的步骤和输出经过处理的视频流的步骤;其特征在于:所述消除前景蒙版中鬼影的步骤,包括对前景蒙版进行前处理的步骤和对经过前处理的前景蒙版进行鬼影消除的步骤;其中,前景蒙版进行前处理的步骤,由中值滤波和膨胀算法两部分构成,具体由如下步骤1至

4实现:

步骤1:人工向计算机输入待处理视频流,该待处理视频流为存在鬼影的视频流片段;

步骤2:由计算机对待处理视频流进行逐帧读取,获取每一帧的待处理图像;

步骤3:由计算机读取一帧的待处理图像,并用运动物体检测算法对待处理图像进行前背景分割,得到该待处理图像的前景蒙版;所述运动物体检测算法为前背景分割算法;

步骤4:对待处理图像的前景蒙版进行前处理,依次为中值滤波处理和膨胀算法处理,获得经过前处理的前景蒙版,随后进入步骤5;

对经过前处理的前景蒙版进行鬼影消除的步骤,由动态打散和动态检测算法更新图像两部分构成,具体由如下步骤5至7实现:步骤5:对经过前处理的前景蒙版进行鬼影消除:

首先,套用Scatter算子,对由步骤4获得的经过前处理的前景蒙版图像,进行打散,获得被打散的前景蒙版图像;动态打散的过程是对鬼影的撕裂;由Scatter算子动态打散经过前处理的前景蒙版图像的方法是;当经过前处理的前景蒙版图像中的运动物体的形状不同时,Scatter算子作用在该运动物体上所产生的打散图像也不同,从而使得经过前处理的前景蒙版图像中该运动物体的每一部分在每一时刻的更新速度都不同,导致存在更新速度快的部分和更新速度慢的部分,最终实现更新速度快的部分的前景像素有更高的概率被替代成为背景点,在运动物体内部将产生孔洞;当运动物体内的孔洞大到一定程度的时候就会撕裂该运动物体,加快“腐蚀”速度;

随后,再使用基于空间相似性的更新算法对被打散的前景蒙版图像进行样本模型的更新,获得消除鬼影的前景蒙版图;样本模型的更新,即将对被打散的前景蒙版图像中像素的信息的值融入进背景模型中的过程;样本模型更新后,原前景蒙版图像中的鬼影信息,即等同于视频序列中的鬼影信息被消除;即样本模型的更新过程是对鬼影的腐蚀;

需要强调的是,本步骤是通过对前景蒙版图像中的鬼影的“撕裂”,以及每个撕裂的鬼影从其外部轮廓向内被逐渐“腐蚀”,实现对鬼影的快速消除;

步骤6:将经过步骤5处理的消除鬼影的前景蒙版图储存;再判断由步骤2获得的每一帧的待处理图像是否处理完毕:如没有处理完,则返回步骤3,读取下一帧的待处理图像继续进行处理;

如处理完毕,则进入步骤7;

步骤7:由计算机将经过步骤5处理的消除鬼影的前景蒙版图组合成经过消除鬼影处理的视频流并输出。

2.根据权利要求1所述的一种在运动物体检测中通用的鬼影消除方法,其特征在于,样本模型的更新应满足:(1)是一种基于空间相似性的更新方法,即更新算法是利用像素与周围像素之间值的相似性来进行更新;

(2)更新算法只对前景的外部轮廓进行更新,不对前景的内部进行更新,以保证前景的形状完好。

3.如权利要求1或2所述的一种在运动物体检测中通用的鬼影消除方法,其特征为:在步骤4中,通过中值滤波,即中值滤波器消除噪声;所述中值滤波器的孔径线性尺寸的范围在3×3到7×7之间,即由中值滤波器消除前景蒙版中的单像素噪声;

通过膨胀算法消除因中值滤波而引起的像素松散化问题;此外,通过膨胀算法还起到抑制动态打散而导致的像素松散化问题。

4.根据权利要求1或2所述的一种在运动物体检测中通用的鬼影消除方法,其特征为:步骤5中的Scatter算子的构造方法为:除落在图片边缘的像素点(这些像素点不进行任何处理)外,将待处理图像上的左上方到右下方的每一像素点,均由Scatter算子处理,具体为:对前景蒙版中的每一像素点进行逐点运算,将围绕在该像素点周围的N个像素点的值求和并记为sum:若sum>magnitude·255,magnitude=0,1,…,8,则将检出图中的前景像素的值改为背景像素的值,如在即背景像素的值保持不变;其中参数magnitude称为打散强度;

若sum≤magnitude·255,magnitude=0,1,…,8,则保持原前景像素的值不变。

5.如权利要求1或2所述的一种在运动物体检测中通用的鬼影消除方法,其特征为:步骤5中的更新图像的方法,是使用基于空间相似性的样本模型;该更新方法是ViBe算法中的更新算法,具体为:对于待处理图像,若其中的某个像素点在前景蒙版中被分类为了背景点,那么它有1/δ的概率去更新自己的背景模型值,同时也有1/δ的概率用均匀分布函数随机选取其邻域的一个像素去进行更新;此处的δ,是一个参数,取值范围为1至无穷大的整数,其值越高,更新的速度就越慢;

对于待处理图像,若其中的像素均不是背景点,则不进行更新。

6.如权利要求1或2所述的一种在运动物体检测中通用的鬼影消除方法,其特征为:在步骤3中,进行的前背景分割的运动物体检测方法,是三帧差分法、改进后的ViBe、AMBER或SuBSENSE实现的。

说明书 :

一种在运动物体检测中通用的鬼影消除方法

技术领域

[0001] 本发明属于数字图像处理中的运动物体检测领域,是一种能够消除运动物体检测中产生的鬼影的通用算法。

背景技术

[0002] 运动物体检测算法,特别是基于保守更新策略的算法,如ViBe+[1]或者PBAS[2],虽然能使检出物体的边缘清晰锐利,但通常会受到鬼影现象的困扰。鬼影是一种形状与运动物体相同,但会长时间或永久停留在前景中的误检像素点合集,一般会在两种情况下产生:一是如果运动物体存在于算法的初始化帧,并在该帧中被检测为前景,那么在后续帧中,即使该运动物体已经离开该位置,其残影(前景点)仍会留在该位置不移动,形成该物体的鬼影;另外一种情况是如果运动物体在某一帧中停止,那么在帧中也会留下其鬼影。
[0003] 由于一些运动检测算法,比如保守的更新策略不将前景点加入过去的背景模型中,故一旦出现了鬼影,此类算法通常需要很长的时间才能将其消除掉,甚至会在前景蒙版中留下“永久鬼影”。目前国际上用于抑制这类算法中的鬼影的办法可分为两类:一类是使用“鬼影应与运动物体形状相似”的方法来检测鬼影[3][4],其检测方法通常包括有当前帧与过去帧的对比或运算。这种算法虽然能解决因为运动物体出现在初始化帧而产生鬼影的情形,但却无法解决因运动物体突然停止在某一帧而产生鬼影的情形。这是因为后一种情况下运动物体已经消失,当前帧中不包含任何运动物体的信息,无法进行对比运算。在另一类算法是文献[5][6]中提到了可以用边缘检测算子(如Canny算子)作用于原图后得到的边缘检测线与前景蒙版进行逐点与运算,以此“框”出正确的运动物体。虽然这种方式在物体远离鬼影运动的情况下能消除鬼影,但在其他情况中鬼影消除结果却不令人满意,如当运动物体往回走并再次经过原鬼影时会将鬼影再次显现出来,或当鬼影处有边缘检测线出现时,那么该检测线会伴随着鬼影一起存在于前景像素点集合中;最后,检测算法无法保证每一次在边缘检测线出现的地方都有前景像素出现。所以将边缘检测线与原图简单相与或者将边缘检测线作为原图模板会产生的一个不被期望的后果,就是边缘检测线处会很容易出现暂时性的断线,且由于断线的长度和持续时间不能够用通用方式表达出来,所以难以使用任何一种通用的形态学填充算法去填补运动物体的边缘检测线之间的空隙。可见,现有的鬼影消除算法是通过在原运动物体检测算法流程之外,挂接一个由通用图像处理技术构建的第三方算法实现,并未很好地融合进算法中,导致其虽然能在一部分场景中消除掉鬼影,但却很难具有通用性。
[0004] 事实上,鬼影本质上是一种误分类像素。误分类像素可以通过运动物体检测算法的更新机制来消除掉,通常分为两类:一类是盲目更新算法,即将前景蒙版中长时间存在的前景像素直接更新为背景像素,这种算法虽然能有效去除鬼影,但会导致对缓慢移动的大型物体的检测率随时间增长而降低[7],就检测结果而言看起来像是物体后进入帧内的部分溶解在了背景里。另一种是保守的更新算法,如上文提到的ViBe+或者PBAS的更新机制,能够使物体具有高的保型度,但这些处理算法往往不能很好地快速抑制大面积误分类区域。
[0005] 参考文献:
[0006] [1]Van Droogenbroeck M,Paquot O.Background subtraction:Experiments and improvements for ViBe[C]//IEEE Computer Society Conference on Computer Vision&Pattern Recognition Workshops.IEEE,2012:32-37.
[0007] [2]Hofmann M,Tiefenbacher P,Rigoll G.Background segmentation with feedback:The Pixel-Based Adaptive Segmenter[C]//IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops.IEEE,2012:38-43.
[0008] [3]Chu Y,Chen J,Chen X.An improved ViBe background subtraction method based on region motion classification[J].Proc Spie,2013:89180I-89180I-5.[0009] [4]Gu Bo,Song Kefeng,Qiu Daoyin,et al.Moving Object Detection Based on Improved ViBe Algorithm[J].International Journal of Smart Home,2015,9(12):225-232.
[0010] [5]Tomasz Kryjak,Marek Gorgon.Real-Time Implementation of Background Modelling Algorithms in FPGA Devices[M]//New Trends in Image Analysis and Processing--ICIAP 2015Workshops.Springer International Publishing,2015:519-526.
[0011] [6]Gruenwedel S,Hese P V,Philips W.An Edge-Based Approach for Robust Foreground Detection[C]//Advances Concepts for Intelligent Vision Systems-13th International Conference,ACIVS 2011,Ghent,Belgium,August 22-25,
2011.Proceedings.2011:554-565.
[0012] [7]Barnich O,Van Droogenbroeck M.ViBe:A Universal Background Subtraction Algorithm for Video Sequences[J].IEEE Transactions on Image Processing,2011,20(6):1709-1724.

发明内容

[0013] 针对现有消除鬼影方法的上述不足,本发明提出一种在运动物体检测中的鬼影消除方法,具体如下:
[0014] 一种在运动物体检测中通用的鬼影消除方法;所述运动物体检测的步骤包含:输入待处理视频流的步骤、获得待处理图像的步骤、从待处理图像中获取前景蒙版视频流的步骤、消除前景蒙版中鬼影的步骤、存储经过处理的前景蒙版的步骤和输出经过处理的视频流的步骤。其中,前处理指的是对图像的预先处理,前处理包括对图像进行中值滤波和膨胀操作;前景蒙版指的是用以区分视频流中运动物体与背景的二值图像,前景蒙版包括了待处理图像中的全部背景与前景信息;本发明中,前景蒙版就是运动检测算法的输出图像,能够从前景蒙版中直接观察到运动物体与其运动情况;鬼影是在运动物体检测算法的前景分割过程中被误分类为前景的背景像素。
[0015] 此外,通过计算机按如下步骤进行:
[0016] 消除前景蒙版中鬼影的步骤包括对前景蒙版进行前处理的步骤和对经过前处理的前景蒙版进行鬼影消除的步骤;其中,前景蒙版进行前处理的步骤,由中值滤波和膨胀算法两部分构成;对经过前处理的前景蒙版进行鬼影消除的步骤,由动态打散和动态检测算法更新图像两部分构成。
[0017] 进一步说,本发明所述的一种在运动物体检测中通用的鬼影消除方法,具体步骤如下:
[0018] 步骤1:人工向计算机输入待处理视频流,该待处理视频流为存在鬼影的视频流片段;
[0019] 步骤2:由计算机对待处理视频流进行逐帧读取,获取每一帧的待处理图像;
[0020] 步骤3:由计算机读取一帧待处理图像,并用运动物体检测算法对待处理图像进行前背景分割,得到该待处理图像的前景蒙版;所述运动物体检测算法为前背景分割算法;
[0021] 步骤4:对待处理图像的前景蒙版进行前处理,依次为中值滤波和膨胀,获得经过前处理的前景蒙版,随后进入步骤5;
[0022] 步骤5:对经过前处理的前景蒙版进行鬼影消除:
[0023] 首先,利用Scatter算子,对由步骤4获得的经过前处理的前景蒙版图像,进行打散,获得被打散的前景蒙版图像;动态打散的过程是对鬼影的撕裂;
[0024] 随后,再使用基于空间相似性的更新算法对被打散的前景蒙版图像进行样本模型的更新,获得消除鬼影的前景蒙版图;样本模型的更新,即将该帧中像素的信息的值融入进背景模型中的过程,如将该帧中的每一像素点的值都与背景模型做平均,将得到的新值作为新的背景模型。样本模型更新后,原前景蒙版图像中的鬼影信息,即等同于视频序列中的鬼影信息被消除;即样本模型的更新过程是对鬼影的腐蚀;
[0025] 本步骤,是通过对前景蒙版图像中的鬼影的“撕裂”,以及每个撕裂的鬼影从其外部轮廓向内被逐渐“腐蚀”,实现对鬼影的快速消除;
[0026] 步骤6:将经过步骤5处理的消除鬼影的前景蒙版图储存,即将更新后的前景蒙版作为结果保存并准备输出;再判断由步骤2获得的每一帧的待处理图像是否处理完毕:
[0027] 如没有处理完,则返回步骤3,读取下一帧的待处理图像继续进行处理;即对初始帧/当前帧的下一帧再进行同样的上述步骤的处理后可以使得鬼影被快速消除,获得更新后的前景蒙版图像。
[0028] 如处理完毕,则进入步骤7;
[0029] 步骤7:由计算机将经过步骤5处理的消除鬼影的前景蒙版图组合成经过消除鬼影处理的视频流并输出。
[0030] 有益的技术效果
[0031] 本发明是一种基于现广泛使用的基于空间相似性的传统运动物体检测算法而提出的改进算法,可以起到快速消除鬼影的作用。本发明是在原运动物体检测算法的基础上,采用在空间上不均匀地加快局部更新速度的方式消除鬼影的。具体机理为:
[0032] 现有(成熟)的运动物体检测算法都包含对背景模型的更新机制,这种更新机制本身已包含了能够缓慢消除鬼影的功能。但由于过快的更新会造成前景图中单像素噪声数量的上升,且对于不能直接更新前景点的运动物体检测算法来说,前景点要被更新掉只能由运动物体的外轮廓向内“腐蚀”着进行,使得这类算法的更新速度一般远远达不到快速消除鬼影的效果。而通过本发明方法,能加快更新速度,鬼影便能被原算法的更新进程更新掉。
[0033] 换言之,本发明基于现广泛使用的基于空间相似性的传统更新算法,提出了一种能够快速消除鬼影的更新算法:在将待处理图像进行前背景分割得到前景蒙版后,首先利用Scatter算子来动态打散运动物体,再使用某一基于空间相似性的传统更新算法来更新前景蒙版。比如可以使用如下在ViBe运动物体检测算法中提出的基于空间相似性的传统更新算法进行处理:对于待处理图像,若其中的某个像素点在前景蒙版中被分类为了背景点,那么它有1/δ的概率去更新自己的背景模型值,同时也有1/δ的概率用均匀分布函数随机选取其邻域的一个像素去进行更新;δ是一个参数,取值范围为1至无穷大的整数,其值越高,更新的速度就越慢;若像素不是背景点,则不进行更新。这样由于帧内的局部更新速度不同,鬼影将被撕裂,使得更新机制能够快速地腐蚀掉鬼影。
[0034] 这样的更新策略保证了运动物体,即只有Scatter算子撕裂的孔洞大到一定程度后,其中的背景像素区域才会逐渐因为腐蚀进程而扩大,否则孔洞周围的前景像素会因为空间一致性而反过来将这个小背景孔洞反腐蚀掉。
[0035] 基于此性质,相比于现同样被广泛使用的盲目的更新算法,使用本发明提出的算法进行鬼影消除时,在其他条件相同的情况下,对长时间被分类为前景的像素进行更新时不容易将其误分类为背景点。这使得本发明的算法相比于盲目更新的算法,对一些相对大型与缓慢移动的运动物体具有更高的检测率。本发明尤其使用于对其中长时间、大型、缓慢移动的运动物体的鬼影消除,即像素作为前景像素而存在的时间越长,运动物体占待检测图像面积的比例越大,移动速度越慢,在其他条件相同的情况下,使用本发明提出的算法进行鬼影消除相比于使用盲目的更新算法所得到的检测率差异越明显。
[0036] 本文所提出的Scatter算子的构造方法为,对前景蒙版中的每一像素点进行逐点运算,将围绕在该像素点周围的N个像素点的值求和并记为sum,
[0037] 若sum>magnitude·255,magnitude=0,1,…,8,则将检出图中的前景像素的值改为背景像素的值,且背景像素的值保持不变;其中参数magnitude称为打散强度;
[0038] 若sum≤magnitude·255,magnitude=0,1,…,8,则保持原前景像素的值不变。
[0039] 需注意的是Scatter算子是使用待处理图像(原始图像,为色彩或灰度图)中某一位置上的像素点周围像素点的值进行阈值运算,但最后改变的是前景蒙版(区分运动物体与背景的输出图,为二值图)中相同位置上的像素点的值。
[0040] 使用该鬼影消除算法会引入一个松散化的问题:即前景蒙版中正确的运动物体也会受到算法影响,使其内部被分类为前景的像素点变得不连续,看上去像是前景蒙版中构成运动物体的像素点变得“松散”了。另外,待处理图像中的单像素噪声也需要被抑制,否则单像素噪声其会通过更新过程加入到运动物体的样本中,使鬼影难以被完全更新完毕。为了解决这两个问题,需要引入预处理机制。
[0041] 由于在实际应用中,松散化问题可以用膨胀算法来将其抑制,而对松散化问题进行膨胀算法处理时产生的单像素噪声点可用中值滤波器消除,一般使用核心大小为2×2,形状为十字形的算子进行膨胀运算就能起到较好的抑制效果。但是由于这样做同时也会放大单像素噪声,故应在这之前使用滤波器抑制噪声。单像素噪声可用中值滤波器来抑制,中值滤波器的滤波窗口尺寸应根据图像分辨率和单像素噪声的强弱来选择:过小的尺寸无法将噪声滤除干净,而过大的尺寸会使运动物体边缘的小凸起部分被一并平滑掉,造成运动物体变形。测试图像的单像素噪声点越多,分辨率越高,使用的尺寸模板应越大。如在320×240的室内测试序列中,使用3×3的模板就能较好地抑制噪声,在同分辨率的室外测试序列中,使用5×5的模板才能达到相似的噪声抑制效果。

附图说明

[0042] 图1为本发明的流程框图。
[0043] 图2为名称为“busStation”的视频流中的第1005帧和1086帧的原图与其真值图。白色部分代表前景,黑色部分代表背景,粗线为运动物体的阴影部分,可以不予理会。图片来源于changedetection.net,该网站的标准视频序列是被广泛使用的科学合法的测试序列。
[0044] 图3使用现有的ViBe算法处理“busStation”序列第1005帧(左)和第1086帧(右)的效果:右图中鬼影几乎没有被消除。
[0045] 图4使用本发明鬼影消除算法的“busStation”序列第1005帧(左)和第1086帧(右)的效果:右图中鬼影已被完全消除。

具体实施方式

[0046] 现结合附图详细说明本发明的方法与结构特点。
[0047] 参见图1,一种在运动物体检测中通用的鬼影消除方法;所述运动物体检测的步骤包含:输入待处理视频流的步骤、获得待处理图像的步骤、从待处理图像中获取前景蒙版视频流的步骤、消除前景蒙版中鬼影的步骤、存储经过处理的前景蒙版的步骤和输出经过处理的视频流的步骤。其中,前处理指的是对图像的预先处理,前处理包括滤波算法;前景蒙版指的是用以区分视频流中运动物体与背景的二值图像,前景蒙版包括了待处理图像中的全部背景与前景信息;本发明中,前景蒙版就是运动检测算法的输出图像,能够从前景蒙版中直接观察到运动物体与其运动情况;鬼影是在运动物体检测算法的前景分割过程中被误分类为前景的背景像素。
[0048] 此外,通过计算机按如下步骤进行:
[0049] 消除前景蒙版中鬼影的步骤包括对前景蒙版进行前处理的步骤和对经过前处理的前景蒙版进行鬼影消除的步骤;其中,
[0050] 前景蒙版进行前处理的步骤,由中值滤波和膨胀算法两部分构成;
[0051] 对经过前处理的前景蒙版进行鬼影消除的步骤,由动态打散和动态检测算法更新图像两部分构成。
[0052] 参见图1,更进一步说,本发明的具体步骤如下:
[0053] 步骤1:人工向计算机输入待处理视频流,该待处理视频流为存在鬼影的视频流片段;
[0054] 步骤2:由计算机对待处理视频流进行逐帧读取,获取每一帧的待处理图像;
[0055] 步骤3:由计算机读取一帧待处理图像,并用运动物体检测算法对待处理图像进行前背景分割,得到该待处理图像的前景蒙版;所述运动物体检测算法为前背景分割算法;
[0056] 步骤4:对待处理图像的前景蒙版进行前处理,依次为中值滤波和膨胀操作,获得经过前处理的前景蒙版,随后进入步骤5;
[0057] 步骤5:对经过前处理的前景蒙版进行鬼影消除:
[0058] 首先,利用Scatter算子,对由步骤4获得的经过前处理的前景蒙版图像,进行打散,获得被打散的前景蒙版图像;动态打散的过程是对鬼影的撕裂;
[0059] 随后,再使用基于空间相似性的更新算法对被打散的前景蒙版图像进行样本进行样本模型的更新,获得消除鬼影的前景蒙版图;样本模型的更新,即将该帧中像素信息的值融入进背景模型中的过程,如将该帧中的每一像素点的值都与背景模型做平均,将得到的新值作为新的背景模型。样本模型更新后,原前景蒙版图像中的鬼影信息,即等同于视频序列中的鬼影信息被消除;即样本模型的更新过程是对鬼影的腐蚀;
[0060] 本步骤,是通过对前景蒙版图像中的鬼影的“撕裂”,以及每个撕裂的鬼影从其外部轮廓向内被逐渐“腐蚀”,实现对鬼影的快速消除;
[0061] 步骤6:将经过步骤5处理的消除鬼影的前景蒙版图储存,即将更新后的前景蒙版作为结果保存并准备输出;再判断由步骤2获得的每一帧的待处理图像是否处理完毕:
[0062] 如没有处理完,则返回步骤3,读取下一帧的待处理图像继续进行处理;即对初始帧/当前帧的下一帧再进行同样的上述步骤的处理后可以使得鬼影被快速消除,获得更新后的前景蒙版图像。
[0063] 如处理完毕,则进入步骤7;
[0064] 步骤7:由计算机将经过步骤5处理的消除鬼影的前景蒙版图组合成经过消除鬼影处理的视频流并输出。
[0065] 进一步说,样本模型的更新应满足:
[0066] (1)是一种基于空间相似性的更新方法,即更新算法是利用像素与周围像素之间值的相似性来进行更新;
[0067] (2)更新算法只对前景的外部轮廓进行更新,不对前景的内部进行更新,以保证前景的形状完好。
[0068] 进一步说,由Scatter算子动态打散经过前处理的前景蒙版图像的方法是;当经过前处理的前景蒙版图像中的运动物体的形状不同时,Scatter算子作用在该运动物体上所产生的打散图像也不同,从而使得经过前处理的前景蒙版图像中该运动物体的每一部分在每一时刻的更新速度都不同,导致存在更新速度快的部分和更新速度慢的部分,最终实现更新速度快的部分的前景像素有更高的概率被替代成为背景点,在运动物体内部将产生孔洞;当运动物体内的孔洞大到一定程度的时候就会撕裂该运动物体,加快“腐蚀”速度。
[0069] 进一步说,在步骤4中,通过中值滤波,即中值滤波器消除噪声;所述中值滤波器的滤波窗口的尺寸范围在3×3到7×7之间,即由中值滤波器消除前景蒙版中的单像素噪声;
[0070] 通过膨胀算法消除因中值滤波而引起的像素松散化问题;此外,通过膨胀算法还起到抑制动态打散而导致的像素松散化问题。
[0071] 所述的像素松散化,即使用动态打散(尤其是Scatter算子)与中值滤波器作用于待处理图像后,而导致的运动物体内部的前景像素点之间不连续的现象,该不连续前景像素点即为运动物体内部会出现细小的孔洞。
[0072] 进一步说,步骤5中的Scatter算子的构造方法为:除落在图片边缘的像素点(这些像素点不进行任何处理)外,将待处理图像上的左上方到右下方的每一像素点,均由Scatter算子处理,具体为:对前景蒙版中的每一像素点进行逐点运算,将围绕在该像素点周围的N个像素点的值求和并记为sum:
[0073] 若sum>magnitude·255,magnitude=0,1,…,8,则将检出图中的前景像素的值改为背景像素的值,且背景像素的值保持不变;其中参数magnitude称为打散强度;
[0074] 若sum≤magnitude·255,magnitude=0,1,…,8,则保持原前景像素的值不变。
[0075] 需注意的是,Scatter算子是使用待处理图像(原始图像,为色彩或灰度图)中某一位置上的像素点周围像素点的值进行阈值运算,但最后改变的是前景蒙版(区分运动物体与背景的输出图,为二值图)中相同位置上的像素点的值。待处理图像为原始图像,为色彩或灰度图。
[0076] 进一步说,步骤5中的更新图像的方法,是使用基于空间相似性的样本模型;该更新方法采用ViBe算法中的更新算法,具体为:
[0077] 对于待处理图像,若其中的某个像素点在前景蒙版中被分类为了背景点,那么它有1/δ的概率去更新自己的背景模型值,同时也有1/δ的概率用均匀分布函数随机选取其邻域的一个像素去进行更新;此处的δ,是一个参数,取值范围为1至无穷大的整数,其值越高,更新的速度就越慢;
[0078] 对于待处理图像,若其中的像素均不是背景点,则不进行更新。
[0079] 进一步说,在步骤3中,进行前背景分割的运动物体检测方法,可使用三帧差分法,或改进后的ViBe法,或SuBSENSE法。优选的方案是,选用检测率较高的算法进行前背景分割,因为若通过前背景分割得到的运动物体中存在较多大型的误分类空洞,将使得经本发明提出的算法作用后的检出图的检测率下降。
[0080] 实施例1
[0081] 本发明的作用是快速消除在运动物体检测过程中出现的鬼影现象。参见图1,整体流程如下:在前背景分割进程之后,对得到的前景蒙版进行中值滤波和膨胀处理抑制噪声,接着利用自创的Scatter算子来动态打散前景点,之后利用ViBe+中使用的更新机制来更新背景模型,最后读入下一帧以循环处理,算法具体流程见图1。下面以320×240的户外图像序列为例,详细叙述本发明的算法的实施细节:
[0082] 经过前景分割,得到前景蒙版后,先对其使用滤波窗口尺寸为3×3的中值滤波器滤波后,再对其使用核心为2×2十字的膨胀操作,接着对其使用Scatter算子——设定打散强度magnitude=5,对前景图进行逐点运算,对每一像素点,将围绕在其周围的8个像素点的值求和并记为sum8,若
[0083] sum8>magnitude*255(magnitude=5)
[0084] 且若该像素值=255,则将该像素值赋值为0;若该像素值=0,则保持其值不变。
[0085] 在实际应用中,参数往往需要进行调整,调整方向如下:若图像分辨率较高,或前景蒙版中单像素噪声较多,则中值滤波器的孔径线性尺寸应适量增加,可增加到运动物体轮廓不会模糊到无法接受为止,反之应降低孔径尺寸;若图像分辨率较高,膨胀算法的核心大小应适度调高,也以运动物体轮廓不会模糊到无法接受为佳,反之则调低核心大小。膨胀算法核心的形状以十字形为佳,其他形状如方形或者圆形会较为明显地被观察到;若不要求鬼影消除的速度很快,打散强度可以设置得较高,如为6-7,若要求鬼影被快速消除,应将其设低一些,如4-5,但是需要注意到过低的打散强度会导致算法对慢速移动物体的检测率下降。
[0086] 最后使用最早于ViBe运动物体检测算法种提出的基于空间相似性的保守更新算法来进行前景蒙版的更新:若一个像素是背景点,那么它有1/16的概率去更新自己的背景模型的值,同时也有1/16的概率用均匀分布函数随机选取其3×3邻域范围内的一个像素点,对其背景模型进行更新。
[0087] 为了验证本发明能够起到鬼影抑制效果,结合ViBe运动物体检测方法,利用changedetection.net网站提供的标准视频序列(图2,名称为“busStation”的视频流中的第1005帧和1086帧的原图与其真值图。白色部分代表前景,黑色部分代表背景,粗线为运动物体的阴影部分,可以不予理会。)与检测方法进行测试,将测试结果与原ViBe算法检测结果进行对比,以说明算法的有效性。changedetection.net网站是运动物体检测算法进行对比测试的一个标杆网站,所提供的测试序列都是科学合法的。分析如下:
[0088] 使用“busStation”序列的第1005-1086帧来对比两算法消除鬼影的速度:从第1005帧启动算法,使该帧中出现鬼影(由ViBe的初始化引起)。原ViBe算法对鬼影消除能力很弱,在1086帧中,白色粗线方框标明出的鬼影并未被消除掉,如图3所示。而在加入了本发明的鬼影消除算法后,在1086帧时鬼影被很好的消除了,如图4所示。由此可知,采用本发明的改进算法能够起到快速消除鬼影的作用。