本发明涉及一种背景建模方法,特别涉及应用于安防系统视频监控中的多场景的无参数背景建模方法。
背景技术:
近年来,随着社会对公共安全的不断重视,具有智能分析功能的视频监控已经成为安全防范系统不可或缺的部分。绝大部分的智能分析都是建立在背景建模的基础之上的,而一般的背景建模方法都存在一些技术上的不足,主要体现在:具有复杂的参数,不同的场景需要重新调整;对有抖动的图像误报比较多;建立背景模型的时间较长,往往需要几十帧甚至上百帧的视频,这样不仅会耗费比较多的时间,如果在这些帧中有运动目标,则会丢失这些目标,不能很好的检测出来;Ghost区域难以消除,如果在背景建模期间有暂时待在原地的目标,之后再运动则会引入Ghost区域;Ghost过早消除,现在的一些背景建模算法有一些可以很快的消除Ghost区域,但是过早的消除并不一定就是好事,对于物品看护来说,这会对算法的准确性产生严重的影响;闪光点难以消除,波纹,随风摆动的树叶,都会带来一些闪光点,被认为是运动物体,这些往往都是无用的;大部分只适用于枪机,会转动的球机则无法使用。
为了克服以上技术不足,本发明提出了一种基于可变学习速率和随机邻域像素点的无参数背景建模方法。
技术实现要素:
本申请的目的在于提供了一种适用多场景的无参数背景建模方法,其特征在于,包括步骤:a)对图像做初始化处理,判断所取帧图像是否为图像的第一帧,若是第一帧,进入步骤h,否则,进入步骤b;b)查找帧图像的运动点,然后进入步骤c;c)判断是否需要重新建立模型,若不需要重新建立模型则进入步骤d,否则,进入步骤h;d)根据先前处理的处理结果,有条件的更新模型;e)根据先前处理的结果,查找出闪光点,并将其去除;f)对于处理产生的噪点逐一去除;g)对算法生成的运动前景和静止背景进行平滑处理,然后进入步骤i;h)建立一个背景模型序列,然后进入步骤i;i)输出结果。
优选地,所述步骤a中图像初始化处理的具体方法为:a1)输入图像序列;a2)针对RGB图像,对于每一个像素点(x,y)进行灰度化处理,每一个像素点(x,y)的像素值都在0~255之间;a3)把灰度图像的直方图变换为均匀分布的形式,增加灰度值得动态范围,从而达到增强图像对比度的效果;a4)输出每一个像素点(x,y)的灰度值都在0-255之间的灰度图像。
优选地,所述步骤b中运动点的查找方法为:b1)读取新的灰度图像的每一个像素点(x,y);b2)读取背景模型序列和颜色矩R,颜色距R表示灰度图像中的像素点(x,y)与背景序列模型中同位置(x,y)点的灰度值的差值;b3)判断背景模型中位置为(x,y)的像素点是否全部读取结束,若全部读取结束,则灰度图像的像素点(x,y)为非运动点,否则,进入步骤b4;b4)判断颜色矩R是否大于颜色矩阈值,若是,进入步骤b5,否则,返回步骤b3;b5)判断颜色矩R大于颜色矩阈值的计数是否大于计数阈值,若是,则该点为运动点,否则,返回步骤b3。
优选地,所述步骤d中的更新模型的方法为:d1)读取非运动像素点(x,y);d2)有SUBSAMPLE_FACTOR的概率用现在像素点(x,y)的像素值随机替换背景模型序列中的其中之一;d3)SUBSAMPLE_FACTOR的概率用现在像素点(x,y)的像素值的邻域随机替换背景模型序列中的其中之一。
优选地,所述步骤f中的去噪点的方法采用水漫法,具体步骤为:f1)读取二值图像;f2)对图像进行闭操作;f3)将图像宽度为1的内边全部涂黑,即将像素值设置为0;f4)以图像左上角的点(x0,y0)为原点,利用水漫法,将与点(x0,y0)所连通的像素值为0的区域,及相连通的黑色区域都涂为白色,即像素值为255;f5)现在图像上的黑色区域的像素点(x,y)的像素值都改为255,即白色;f6)输出黑白二值图。
优选地,所述步骤h中的建立背景模型序列的方法为:h1)读取灰度值在0-255间的灰度图;h2)遍历灰度图说有的像素点,并判断灰度图所有像素点是否遍历完全,若未遍历完全,进入步骤h3,否则,进入步骤h4;h3)背景模型序列中同位置的像素值随机为原始像素本身或者其邻域;h4)输出背景模型序列。应当理解,前述大体的描述和后续详尽的描述均为示例性说明和解释,并不应当用作对本发明所要求保护内容的限制。
附图说明
参考随附的附图,本发明更多的目的、功能和优点将通过本发明实施方式的如下描述得以阐明,其中:
图1示出了根据本发明的适用多场景的无参数背景建模方法的流程图;
图2示出了根据本发明的适用多场景的无参数背景建模方法中图像的初步处理流程图;
图3示出了根据本发明的适用多场景的无参数背景建模方法中建立背景模型序列的流程图;
图4示出了根据本发明的适用多场景的无参数背景建模方法中运动点的判断方法流程图;
图5示出了根据本发明的适用多场景的无参数背景建模方法中颜色阈值及学习率动态更新方法流程图;
图6示出了根据本发明的适用多场景的无参数背景建模方法中水漫法去误删的流程图。
具体实施方式
通过参考示范性实施例,本发明的目的和功能以及用于实现这些目的和功能的方法将得以阐明。然而,本发明并不受限于以下所公开的示范性实施例;可以通过不同形式来对其加以实现。说明书的实质仅仅是帮助相关领域技术人员综合理解本发明的具体细节。
在下文中,将参考附图描述本发明的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。
为了便于本领域普通技术人员理解和实施本发明,下面结合附图对本发明作进一步的详细描述。
图1示出了根据本发明的适用多场景的无参数背景建模方法的流程图;
步骤101:对图像做初始化处理,判断所取帧图像是否为图像的第一帧,若是第一帧,进入步骤108,否则,进入步骤102;步骤102:查找帧图像的运动点,然后进入步骤103;
步骤103:判断是否需要重新建立模型,若不需要重新建立模型则进入步骤104,否则,进入步骤108;
步骤104:根据先前处理的处理结果,有条件的更新模型;
步骤105:根据先前处理的结果,查找出闪光点,并将其去除;
步骤106:对于处理产生的噪点逐一去除;
步骤107:对算法生成的运动前景和静止背景进行平滑处理,然后进入步骤109;
步骤108:建立一个背景模型序列,然后进入步骤109;
步骤109:输出结果。
图2示出了根据本发明的适用多场景的无参数背景建模方法中图像的初步处理流程图;
步骤201:首先要对图像做初步处理,输入图像序列;
步骤202:针对RGB图像,对于每一个像素点(x,y)进行灰度化处理,每一个像素点(x,y)的像素值都在0~255之间;
步骤203:把灰度图像的直方图变换为均匀分布的形式,增加灰度值得动态范围,从而达到增强图像对比度的效果;
步骤204:输出每一个像素点(x,y)的灰度值都在0-255之间的灰度图像。
之后利用第一幅图像建立一个背景模型序列,图3示出了根据本发明的适用多场景的无参数背景建模方法中建立背景模型序列的流程图;步骤如图3所示:
步骤301:读取灰度值在0-255间的灰度图;
步骤302:以图像的左上角为起点,右下角为终点,遍历灰度图说有的像素点,并判断灰度图所有像素点是否遍历完全,若未遍历完全,进入步骤303,否则,进入步骤304;
步骤303:背景模型序列中同位置的像素值随机为原始像素本身或者其邻域,详细方法如下:
背景序列模型由20幅与原图大小相同的图像组成,若记现在读取的位置为(x,y),那么,在这20幅背景模型中,在同样的(x,y)位置的像素值可能为其领域的任何一个,及可能为(x-1,y-1)、(x-1,y)、(x-1,y+1)、(x,y-1)、(x,y)、(x,y+1)、(x+1,y-1)、(x+1,y)、(x+1,y+1)中的任何一个,如果某些领域不存在,则随机为其他邻域的任何一个。遍历完成后则形成一个有20幅图像组成的背景模型序列,这样的话,即使画面有一些抖动,算法也能稳定的检测出运动的目标,同时对Ghost区域的消除也会又很大的影响;
步骤304:输出背景模型序列。
然后对运动点进行检测,图4示出了根据本发明的适用多场景的无参数背景建模方法中运动点的判断方法流程图;具体步骤如图4所示:
步骤401:读取新的灰度图像的每一个像素点(x,y);
步骤402:读取背景模型序列和颜色矩R,颜色距R表示灰度图像中的像素点(x,y)与背景序列模型中同位置(x,y)点的灰度值的差值;
步骤403;判断背景模型中位置为(x,y)的像素点是否全部读取结束,若全部读取结束,则灰度图像的像素点(x,y)为非运动点,否则,进入步骤404;
步骤404:判断颜色矩R是否大于颜色矩阈值,若是,进入步骤405,否则,返回步骤403;
步骤405:判断颜色矩R大于颜色矩阈值的计数是否大于计数阈值,若是,则该点为运动点,否则,返回步骤403。
实施例如下所示:
当遍历到点(x,y)时,(x,y)处的像素值与模型序列逐个做差,如果差值大于累计阈值Value_thre,则开始计数,如果模型已经全部对比完毕累计还没有达到Frame_change_num,则判定为背景点,否则就判定为运动点,建立一幅新的图像m_cfg,运动点的像素值为255,背景点的为0。
Value_thre和Frame_change_num也不是一成不变的,每个位置的的运动位置都会被记录,当运动的时间过长是就会出现经常出现运动的区域,此时适当的增大Frame_change_num和Value_thre的值以减少误检测。同样的如果长期的为非运动点,则需要减小Value_thre和Frame_change_num,使更多的点能够被检测出来,并算法提高效率。
图5示出了根据本发明的适用多场景的无参数背景建模方法中颜色阈值及学习率动态更新方法流程图;如图5所示,步骤为:读取非运动像素点(x,y);有SUBSAMPLE_FACTOR的概率用现在像素点(x,y)的像素值随机替换背景模型序列中的其中之一;有SUBSAMPLE_FACTOR的概率用现在像素点(x,y)的像素值的邻域随机替换背景模型序列中的其中之一。
根据本发明的一个实施例,具体方法为:
步骤501:输入像素点;
步骤502:判断像素点是否为运动点,若是,则进入步骤503a;若不是,则进入步骤503b;
步骤503a;运动点累计值增大;若判断为运动点累计值增大过大,进入步骤504a;
步骤503b;运动点累计值减小;若判断为运动点累计值减小过小,进入步骤504b;
步骤504a:增大颜色矩阈值、增大颜色矩累计阈值;
步骤504b:减小颜色矩阈值、减小颜色矩累计阈值。
之后背景的更新也是遵循策略如下,如果点(x,y)被认定为非运动点,那么它将有1/SUBSAMPLE_FACTOR的概率随机去更新背景模型中的某一帧,是其像素值与当前点的相素值相同,同时它也有1/SUBSAMPLE_FACTOR的概率随机去更新背景模型中的某一帧,是其像素值与当前点邻域的相素值相同,这样背景既不会一成不变也不会变化过快,同时提高了运行效率。
接下来要进行一个运动点数量的判断,如果连续多帧运动的点数过多,则就可能出现了摄像头位置变化的等情况使得背景模型变化较多,这样便立刻建立起一个新的模型序列出来,否则就认为是背景。
下面要进行的便是Ghost区域的消除,对于Ghost区域的消除的策略是更新Ghost区域的背景,使用一个特定的值Ghost_value来记录各个点的运动状态,当然,这个值始从重新建立起背景模型序列之后开始计数的,同时在运动模型重新建立时也会重新计数。如果是运动状态,Ghost_value就会有所增加,反正则会减小,但是增加的速度要快于减小的速度,当这个值达到一个可调节的阈值NUM_REFERSH之后,则会被定为是Ghost点。但这并不是要更新这些点的必要条件,还有一个条件就是此时的运动区域也达到了一个阈值,否则这些点即使不重新建立模型,也会被背景的随机变化而慢慢被替换。
然后进行闪光点的消除,比如说随风摆动的树叶,粼粼的波光,本发明便使用了一个波动计数的方法,如果点(x,y)的前后两帧的状态不同,波动计数器就会增加,反之就会减小。当累计到一定的值得时候,就把值写点记录下来,再通过膨胀的方式扩大区域,再将其从运动的点中剔除掉。
闪光点的腐蚀操作无疑会增大其闪光点的误报面积,下面将利用水漫的方法来填充一些区域,图6示出了根据本发明的适用多场景的无参数背景建模方法中水漫法去误删的流程图;具体方法所下:步骤601:输入二值图像;
步骤602:对图像进行一次闭操作,是白色区域闭合,然后将图像拷贝一份,称之为m_flood;
步骤603:然后对m_flood图像宽度为1的内边缘进行赋值,赋值为0,即黑色;
步骤604:以图像左上角的点(x0,y0)为原点,利用水漫法,将与点(x0,y0)所连通的像素值为0的区域,及相连通的黑色区域都涂为白色,即像素值为255;
步骤605:然后拿m_cfg与m_flood作比对,两幅图像中同时为黑色的区域也就是误删的或者漏检测的区域,在m_cfg上将这些区域填充为白色;
步骤606:输出黑白二值图。
之后是中值滤波,经过上述处理的处理已经可以形成一个清晰的黑白二值图像,对m_cfg进行中值滤波后的二值图便会更加清晰。
最后便是m_cfg与原图进行合并,m_cfg的白色区域为运动的区域,黑色为静止区域。
本专利能适用于不同的场景,且不需要调节参数,建模时间短,能消除图像的抖动,以及闪光点,对Ghost区域消除的时间可自由设定,对会能动的球机也能有一个很好的建模效果。
结合这里披露的本发明的说明和实践,本发明的其他实施例对于本领域技术人员都是易于想到和理解的。说明和实施例仅被认为是示例性的,本发明的真正范围和主旨均由权利要求所限定。