基于图像分割的Vibe运动目标检测算法的制作方法

文档序号:16812986发布日期:2019-02-10 13:55阅读:237来源:国知局
基于图像分割的Vibe运动目标检测算法的制作方法

本发明属于图像处理技术领域,进一步涉及运动目标检测,具体为一种基于图像分割的vibe运动目标检测算法,可用于可见光静止背景下的运动目标实时检测。



背景技术:

运动目标检测是运动目标追踪、运动目标行为分析的基础,在智能视频监控系统中处于关键地位。现有的实时运动目标检测算法有高斯背景建模gmm、帧间差分法和基于光流技术的运动目标检测算法等。其中:

高斯背景建模gmm是由stauffer等人提出的经典的自适应背景建模方法,假设每个像素在时域上符合正态分布,则将在一定阈值范围内的像素判定为背景,并用其更新模型,不符合该分布的像素即为前景;该方法实时性较差,在处理运动速度较慢的物体时,提取效果欠佳。

帧间差分法是一种通过对视频图像序列中相邻两帧作差分运算来获得运动目标轮廓的方法,它可以很好地适用于多个运动目标和摄像机移动的情形。当监控场景中出现异常物体运动时,帧与帧之间会出现较为明显的差别,将其相减得到两帧图像亮度差的绝对值,判断该值是否大于阈值,分析视频或图像序列的运动特性,从而确定图像序列中有无物体运动。图像序列逐帧的差分,相当于对图像序列进行了时域下的高通滤波。然而,邻帧间差分法会存在检测到的物体边界不够精准的情况,其漏检、误检情况太多。

基于光流技术的运动目标检测算法,首先计算图像中每一个像素点的运动向量,即建立整幅图像的光流场,如果场景中没有运动目标,则图像中所有像素点的运动向量应该是连续变化的;如果有运动目标,由于目标和背景之间存在相对运动,目标所在位置处的运动向量必然和邻域的运动向量不同,从而检测出运动目标。通过计算光流场得到的像素运动向量是由目标和摄像机之间的相对运动产生的,因此该类检测方法可以适用于摄像机静止和运动两种场合。但是光流场的计算过于复杂,而且在实际情况中,由于光线等因素的影响,目标在运动时,其表面的亮度并不是保持不变的,这就不满足光流基本约束方程的假设前提,导致计算会出现很大的误差;并且该算法需要专用硬件支撑才能达到实际使用的实时效果。

vibe算法是一种基于像素为背景建模的前景检测算法,用于运动目标的检测。该算法仅依靠首帧图像的信息进行背景建模,并采用随机更新的策略建立更新模型,从而实现前景运动目标的检测。该算法用于运动目标检测时具有占用内存小、能够迅速建立背景模型的特点。同时vibe算法也存在一些问题,即检测过程中易出现“鬼影”的现象,严重影响了前景检测的准确性。



技术实现要素:

本发明的目的在于提供一种基于图像分割的vibe运动目标检测算法,解决现有技术中使用vibe算法进行运动目标检测时易出现“鬼影”的问题,从而提升可见光下运动目标检测的效果。

本发明技术思路是对遗传算法中的适应度函数进行改进,即利用平均灰度值以及绝对值运算来定义适应度函数;并通过“折半策略”进行选择运算,同时在变异过程中加入限定迭代次数后再采用变异算法,筛选出适应度较好的个体,以获取每代的最佳适应度以及最佳阈值,最终在满足迭代次数后得到的最佳阈值,用于对输入视频流的第一帧的灰度图像进行分割,使用得到的最佳阈值,结合本发明所设计的判别规则,对vibe算法检测出前景点进行再次判别,最终筛选出符合要求的点作为前景点。

其实现步骤包括如下:

(1)将输入视频流的第一帧彩色rgb图像转为灰度图pic;

(2)在灰度图pic中随机选取部分个体构造初始种群p,并将初始种群p中的每一个个体值从十进制转换到八位二进制;

(3)按照如下步骤构造个体适应度函数fitness(1,i):

3a)对初始种群p中的所有个体值求和,得到求和结果csum;

3b)根据下式计算初始种群p中第i个个体的阈值b(1,i):

b(1,i)=csum*255/(28-i),

其中,psize为种群规模,1≤i≤psize;

3c)遍历灰度图pic的每个像素点pic(x,y),统计得到低于阈值b(1,i)像素点数的个数总和ll,及这些像素点数对应的像素值之和ls;统计得到高于阈值b(1,i)像素点数的个数总和hn,及这些像素点数对应的像素值之和hs,

3d)根据步骤3c)的统计结果,分别获得低于阈值b(1,i)的像素平均灰度值low与高于阈值b(1,i)的像素平均灰度值high:

3e)通过下式,计算得到个体适应度函数fitness(1,i):

fitness(1,i)=|ll·hn(low-high)|;

(4)将fitness(1,i)作为遗传算法中的适应度函数,对种群中的个体进行迭代运算,获得分割图像的最佳阈值g;

(5)根据如下步骤,从输入视频流的第二帧开始,依次对输入视频流每帧的前景点进行检测,获取符合要求的点:

5a)对当前帧的每个像素,分别取其周围的8个点构成该像素点的背景样本集sample(x,y);

5b)将当前帧内的每个像素点与其对应的sample(x,y)中的8个像素点分别计算欧拉距离l,并设欧拉距离l大于20的像素组对数为sum,且sum的初始值为0,进行如下处理:

当l大于20时,对sum的取值加1;

当l小于或等于20时,则不进行处理;

5c)判断sum的值是否大于2,若是,则初步判定该点为前景点,反之则为背景点,从而得到当前帧内的前景点集合v(x,y)以及背景点集合b(x,y),同时统计背景点个数count;

5d)计算当前帧背景点的灰度平均值

5e)通过比较灰度平均值与最佳阈值g的大小,对像素点进行归类,得到新前景点集合vv(x,y)、新背景点集合bb(x,y)以及需要剔除的鬼影点集合ghost(x,y);

5f)若视频流内所有帧均已检测完,则执行步骤5g);否则,将下一帧作为当前帧,返回步骤5b);

5g)输出新前景点集合vv(x,y),即符合要求的点。

本发明与现有技术相比具有如下优点:

1.本发明利用平均灰度值以及绝对值运算来定义适应度函数,使获得的每一代种群的适应度最佳;

2.本发明由于采用“折半策略”进行选择算法,从而能够根据优良的个体适应度快速选取个体组,用以更新种群;

3.本发明由于在加入了限定迭代次数之后才进行变异运算,从而提高了变异过程中迭代运算的速度,同时使新产生的个体能够体现出上一代个体的部分特征;

4.本发明采用改进的遗传算法得到分割输入视频流第一帧图像的最佳阈值,并结合vibe算法检测得到的背景像素点的平均灰度值,通过设计出再次判别vibe算法检测前景点的规则,获得符合要求的新前景点,从而能够达到快速去除“鬼影”的效果。

附图说明

图1为本发明的实现流程图;

图2为本发明中进行每一次迭代得到的最佳适应度仿真结果图;

图3为本发明中进行每一次迭代得到的最佳阈值仿真结果图;

图4为本发明与基本vibe算法100帧内“鬼影”点数仿真结果图;

图5为本发明与基本vibe算法的仿真结果对比图,包括视频原文件、前景点、背景点以及“鬼影”点。

具体实施方式

以下结合附图对本发明的技术方案和效果作进一步详细描述。

参照图1,本发明的实施步骤如下:

步骤1,输入视频流文件,并进行处理。

1a)将输入视频流文件的第一帧rgb彩色图像作为输入的原始图像;

1b)采用加权平均算法0.2989r+0.5870g+0.1140b对原始图像的每个像素点进行处理,使其成为灰度点,即生成原始图像的灰度图pic;

步骤2,根据遗传算法生成种群,并进行初始化。

2a)在原灰度图pic中,随机选取部分个体构造初始种群p,选取的个体数目按输入的视频流有所不同,可以随机选取总像素点数目的1/10个像素点到1/4个像素点来为构成初始种群p的个体,本实施例按随机选取1/4个像素点来构成初始种群p的个体,并将这些个体对应的像素值定义为个体的值;

2b)根据灰度图像的像素值取值范围为0~255,可使用八位二进制表达十进制的信息,故将每个个体值进行十进制到八位二进制的转换。

步骤3,构造个体适应度函数fitness(1,i)。

3a)对步骤2中生成初始种群p中的所有个体值进行求和,得到求和结果csum;

3b)根据下式计算初始种群p中第i个个体的阈值b(1,i):

b(1,i)=csum*255/(28-i)

其中,psize为种群规模,1≤i≤psize;

3c)遍历灰度图pic的每个像素点pic(x,y),进行如下参数统计:

统计得到低于阈值b(1,i)像素点数的个数总和ll,及这些像素点数对应的像素值之和ls;

统计得到高于阈值b(1,i)像素点数的个数总和hn,及这些像素点数对应的像素值之和hs;

3d)根据3c)的统计结果,分别获得低于阈值b(1,i)的像素平均灰度值low与高于阈值b(1,i)的像素平均灰度值high:

3e)根据3c)和3d)的结果,得到改进后的个体适应度函数:

fitness(1,i)=|ll·hn(low-high)|。

步骤4,将改进后的个体适应度函数作为遗传算法中的适应度函数,对种群中的个体进行迭代运算,获得最佳分割图像的阈值g。

将改进后的个体适应度函数作为遗传算法中的适应度函数,即实现对现有遗传算法的改进,再利用改进的遗传算法对种群中的个体进行迭代运算,其实现步骤如下:

(4a)设置迭代运算次数为150;

(4b)利用步骤3得到的个体适应度函数fitness(1,i),计算出种群中个体的适应度值;

(4c)选取最大的适应度值为本次迭代的最佳适应度值fitness,同时设置该最大适应度值所对应的个体的阈值为本次迭代的最佳阈值gate;

(4d)在第一次迭代时,设置本次迭代的最佳适应度值fitness为最佳适应度值fits,同时设置本次迭代最佳阈值gate为最佳阈值g;当迭代次数超过1时,将本次迭代的最佳适应度值fitness与最佳适应度值fits进行比较,令较大者为最佳适应度值fits,同时令最佳适应度fits对应的阈值为最佳阈值g;

(4e)当迭代次数不超过总迭代次数的二分之一时,选择本次迭代种群中个体适应度值较大的一半个体,随机替换本次迭代种群中的个体,更新种群;

(4f)对种群中相邻的两个个体,随机生成个体二进制编码上的交换点位置,并对位置上的两个点的值进行交换;

(4g)当迭代次数超过总迭代次数的二分之一时,随机生成0到1的实数,并判断该实数是否大于0.2:

若大于0.2,则进行变异运算mutation,即随机选取种群中的个体,随机生成该个体二进制编码上的变异位置,将该位置上的值进行取反;

若小于等于0.2,则不进行任何处理;

(4h)判断是否满足迭代次数:

若不满足迭代次数,则返回步骤(4b)。

若满足迭代次数,则获得最佳适应度fits和最佳分割阈值g,并执行步骤5。

图2为本发明中进行每一次迭代得到的最佳适应度仿真结果图,从中可以看出,经过150次迭代后,得到的最佳适应度为94,图3所示为每一次迭代后得到的最佳阈值仿真结果图,可以看出经过150次迭代后,得到的最佳阈值g是123。

步骤5,设计判别规则,从输入视频流的第二帧开始,依次对输入视频流每帧的前景点进行检测,获得符合要求的点作为新的前景点。

5a)统计当前帧内的所有像素点个数count,并对当前帧的每个像素,分别取其周围的8个点构成该像素点的背景样本集sample(x,y);

5b)将当前帧内的每个像素点与其对应的sample(x,y)中的8个像素点分别计算欧拉距离l,并设欧拉距离l大于20的像素组对数为sum,且sum的初始值为0,进行如下处理:

当l大于20时,对sum的取值加1;

当l小于或等于20时,则不进行处理;

5c)判断sum的值是否大于2,若是,则初步判定该点为前景点,反之则为背景点,从而得到当前帧内的前景点集合v(x,y)以及背景点集合b(x,y);

5d)计算当前帧背景点的灰度平均值

5e)通过比较灰度平均值与最佳阈值g的大小,对像素点进行归类,得到新前景点集合vv(x,y)、新背景点集合bb(x,y)以及需要剔除的鬼影点集合ghost(x,y):

时,若v(x,y)>g,判v(x,y)为前景点,存入vv(x,y)中;

若v(x,y)≤g,判v(x,y)为背景点,存入bb(x,y)中;

时,若v(x,y)<g,判v(x,y)为前景点,存入vv(x,y)中;

若v(x,y)≥g,判v(x,y)为背景点,存入bb(x,y)中;

若vv(x,y)与v(x,y)判断的类型不同,则将其存入鬼影点集合ghost(x,y)中。

5f)若视频流内所有帧均已检测完,则执行步骤5g);否则,将下一帧作为当前帧,返回步骤5b);

5g)步骤5e)中得到的vv(x,y)为最终判断后的新前景点集合,bb(x,y)为最终判断后的新背景点集合;输出新前景点集合vv(x,y),即符合要求的点。将所获得符合要求的点作为新的前景点。

图4所示为本发明与基本vibe算法100帧内“鬼影”点数仿真结果图,从本发明与基本vibe算法的“鬼影”点数目对比可以看出在第15帧后,本发明能快速消除“鬼影”点,而基本vibe算法“鬼影”点的消除速度很慢。

图5所示为对输入视频流使用基本vibe算法与本发明算法进行处理后,第一帧到第五帧时效果对比图,可以看出在第十五帧时使用本发明的方法已经基本能够消除“鬼影”。

综上,本发明是通过平均灰度值以及绝对值运算来定义适应度函数,在选择运算时利用“折半策略”进行选择运算,同时在变异过程中加入限定迭代次数后才采用变异算法,得到分割输入视频流的第一帧图像的最佳阈值,并且结合vibe算法检测得到的背景像素点的平均灰度值,设计出再次判别vibe算法检测前景点的规则,获得符合要求的新的前景点,因此即使在复杂背景下,也能够快速去除“鬼影”。

以上描述仅是本发明的一个具体实例,并未构成对本发明的任何限制。显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修正和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。

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