一种用于分割监控视频中存在粘连车辆的方法与流程

文档序号:13179408阅读:161来源:国知局
技术领域本发明涉及图像处理领域和计算机领域的技术,具体的讲是一种用于分割监控视频中存在粘连车辆的方法。

背景技术:
在基于视频的运动车辆检测中,由监控摄像机扑捉到的视频图像中的车辆有大致有三种情况:1)单独车辆;2)车辆间存在遮挡;3)对二值化图像腐蚀膨胀操作后相距较近的两辆车发生粘连。在这里,后两种情况统称为车辆粘连。车辆粘连严重影响车辆跟踪和车流量检测,亟待一种可靠、实用的车辆分割方法。目前,粘连车辆分割的方法包括:1、基于特征的分割算法:利用车辆的特征点建立特征模型,可以有效解决粘连问题,然而,现存的此类算法运算量大,并且容易受到复杂场景中不相关物体的影响。2、基于推理模型的分割算法:根据车辆的位置、速度、运动方向等先验知识来解决粘连问题,这种方法很多时候都能够有效地分割车辆,但不适于环境复杂多变的室外交通场景。3、基于凹性分析的分割算法:直接寻找到深度最大点作为预选分割点,这种方法在细胞、谷物等分离中用的非常广泛,但它们寻找分割点的方法过于复杂。

技术实现要素:
为解决上述现有的缺点,本发明的主要目的在于提供一种实用的用于分割监控视频中存在粘连车辆的方法,算法简单,分割效果合理。为达成以上所述的目的,本发明的一种用于分割监控视频中存在粘连车辆的方法采取如下技术方案:一种用于分割监控视频中存在粘连车辆的方法,其特征在于,包括如下步骤:(1)车辆区域检测:从视频图像中通过高斯背景建模获取前景图像,对获取的前景图像进行空洞填充并利用腐蚀、膨胀操作消除噪声,再用四连通域标记的方法得到车辆区域;(2)粘连车辆区域判断:由车辆区域占据其外接矩形的面积比,以及其外接矩形的长宽比判断是否粘连;(3)对粘连的车辆区域用“火烧法”提取骨架,若不粘连执行步骤(7);(4)检测骨架角点并聚类:对提取出来的骨架进行Shi-Tomasi角点检测,并用K均值聚类方法把检测出的角点分类;(5)确定分割线:根据不同的粘连情况,用不同的方法确定分割线;(6)分割粘连车辆;(7)结束。所述步骤(1)中车辆区域检测的方法为:利用混合高斯建模的方法获取视频背景,视频帧减去背景便得到了前景,对获取的前景进行空洞填充、腐蚀膨胀预处理,预处理后再用四连通域标记的方法标记出每一个连通域,去掉面积较小或是像素个数较少的区域,剩下的连通区域即为车辆区域。所述步骤(2)中粘连车辆区域判断方法为:定义车辆区域的面积比外接矩形的长宽比其中Ac是车辆区域的面积,Ar是车辆区域外接矩形的面积,Ah是车辆区域外接矩形的高,Aw是车辆区域外接矩形的宽。所述步骤(2)中粘连车辆区域判断方法为:设定一个面积比阈值Aat,和一大一小两个长宽比阈值Alt1、Alt2来判断,当Aa>Aat且Alt2<Al<Alt1时为非粘连车辆区域,否则为粘连车辆区域;同时对于粘连车辆Al<Alt2为左右粘连车辆区域,Al>Alt1为前后粘连车辆区域。所述面积比指车辆区域面积与其外接矩形面积的比值,长宽比指外接矩形的长与宽的比;在多数情况下,非粘连车辆的形状成凸形,与外接矩形之间的空隙小,即占空比较大;并且外接矩形的长宽比在一定的范围内。所述步骤(3)中对粘连的车辆区域用“火烧法”提取骨架的方法为:从原来的图中去掉一些点,但仍保持原来的形状;对于二值图像,判断一个点是否去掉是以周围八个相连通点(八连通)的情况作为依据的,具体判断依据为:1)内部点不能删除;2)孤立点不能删除;3)直线端点不能删除;4)去掉连通分量增加的点不能删除;图像中的任意非零像素点P,P周围的八连通点,顺时针绕P点分别记为P0,P1,…,P7,其中P0位于八连通的左上方处;根据像素值,P0P1P2P3P4P5P6P7会组成一个二进制序列,把二进制序列转换为十进制便会得出0~255的某一个数,由以上四个判断依据可以得到一个索引表,该表是一长度为256的数组,该数组中只包含0或1,当数组中第n个数为1,则删除该点;为0则不删除;图像中的每一个点都对应索引表里面的数组标号,根据数组标号对应的0、1判断该点是否删除。所述步骤(3)中对粘连的车辆区域用“火烧法”提取骨架的方法为:首先确定边界点的八邻域对应的二进制序列,转化成十进制N,根据N值查找索引表,当表中第N个数为1则删除,为0则不删除,然后再对下一个边界点进行判断,以此循环,层层删除,直到没有可删除的边界点为止。所述步骤(5)中确定分割线的方法为:对于前后粘连的车辆,寻找位于上面的一类的位置最低的角点和下面一类位置最高的角点,在两个点的中点处做一条水平线,这条水平线就是辆车的分割线;对于左右粘连的车辆,用两类聚类中心连线的垂直平分线作为分割线。本发明的原理在于:一个图像的“骨架”是指图像中央的骨骼部分骨架既能保留图像拓扑性质又能减去图像中干扰因素,降低噪声对图像的干扰。角点是指图像中边界曲线上具有曲率极大值的点,或者说,在该点附近的灰度值会发生剧烈变化,是一幅图像的显著特征。检测粘连车辆区域骨架的角点,可以将同一车内的角点聚集在一起,然后利用K均值把角点聚类,根据聚类的角点很容易能得到分割线,算法简单有效。采用如上技术方案的本发明,具有如下有益效果:在基于视频的车辆跟踪中,多数车辆分割算法需要车速、车辆粘连前状况等先验知识,而本方法不需要任何先验知识,同时本方法充分利用粘连车辆的骨架特征,能有效抑制噪声对图像的影响。附图说明图1为本发明的车辆分割流程图。图2为本发明的检测车辆区域流程图。图3(a)为本发明的前后粘连车辆区域图。图3(b)为本发明的左右粘连车辆区域图。图4(a)为本发明的粘连车辆区域骨架图。图4(b)为本发明的粘连车辆区域骨架角点图。图5为本发明的角点聚类骨架图。图6为本发明的前后粘连车辆区域分割图。图7为本发明的左右粘连车辆区域分割图。图8(a)为本发明的第一组实验结果(用时11.10ms)图。图8(b)为本发明的第二组实验结果(用时10.41ms)图。图8(c)为本发明的第三组实验结果(用时8.96ms)图。具体实施方式为了进一步说明本发明,下面结合附图进一步进行说明:本文提出的算法对各种情况下的粘连车辆进行了实验,实验是在VS2008平台上,基于OpenCV2.4.4库完成的。如图1所示,本发明车辆分割的流程包括:车辆区域检测、粘连车辆区域判断、粘连车辆区域骨架提取、检测骨架角点并进行聚类、确定分割线、分割粘连的车辆。接下来是对每一个流程的说明。步骤1、检测车辆区域:如图2所示,本发明中的检测车辆区域流程为:用混合高斯建模的方法获取视频背景,视频帧减去背景便得到了前景,对获取的前景进行空洞填充、腐蚀膨胀等预处理,预处理后再用4连通域标记的方法标记出每一个连通域,去掉面积较小或是像素个数较少的区域,剩下的连通区域即为车辆区域。步骤2、判断车辆是否粘连:定义车辆区域的占空比外接矩形的长宽比其中Ac是车辆区域的面积,Ar是车辆区域外接矩形的面积,Ah是车辆区域外接矩形的高,Aw是车辆区域外接矩形的宽。对于非粘连车辆,Aa很大,而对于粘连车辆则较小,同时非粘连车辆的Al大小在一定的范围内,由经验设定一个面积比阈值Aat,和一大一小两个长宽比阈值Alt1、Alt2来判断,当Aa>Aat且Alt2<Al<Alt1时为非粘连车辆区域,否则为粘连车辆区域。同时对于粘连车辆Al<Alt2为左右粘连车辆区域,如图3(b)所示;Al>Alt1为前后粘连车辆区域,如图3(a)所示。步骤3、提取粘连车辆区域骨架:有很多提取骨架的方法,其中“火烧法”是一种比较实用的提取二值图像目标区域的算法。将目标边界各处同时点燃,火的前沿以匀速向目标内部蔓延,当前沿相交时火焰熄灭,火焰熄灭点的集合就构成了中轴,便形成了目标图像的骨架。“火烧法”的具体算法如下:对于二值图像,判断一个点是否去掉是以周围8个相连通点(八连通)的情况作为依据的,具体判断依据为:1)内部点不能删除;2)孤立点不能删除;3)直线端点不能删除;4)去掉连通分量增加的点不能删除。图像中的任意非零像素点P,P周围的八连通点,顺时针绕P点分别记为P0,P1,…,P7,其中P0位于八连通的左上方处。根据像素值,P0P1P2P3P4P5P6P7会组成一个二进制序列,把二进制序列转换为十进制便会得出0~255的某一个数,由以上四个判断依据我们可以得到一个索引表,索引表是一个长为256的数组,该数组中只包含0或1。图像中的每一个点周围八连通情况都对应索引表里面的数组标号,根据数组标号对应的0、1判断该点是否删除,0表示不删除,1表示删除。“火烧法”便是对边界点做处理,首先确定边界点的八邻域对应的二进制序列,转化成十进制N,根据N值查找索引表,当表中第N个数为1则删除,为0则不删除,然后再对下一个边界点进行判断,以此循环,层层删除,直到没有可删除的边界点为止,如图4(a)为粘连车辆区域骨架图,其中白色区域为骨架,黑色部分为背景。步骤4、检测骨架角点:角点是指图像中边界曲线上具有曲率极大值的点,或者说,在该点附近的灰度值会发生剧烈变化,是一幅图像的显著特征。由于步骤3中得到的是单像素骨架,为了突出非关键点处的平滑性,我们把获取的骨架经过腐蚀膨胀过后再进行Shi-Tomasi角点检测,Shi-Tomasi角点检测是Harris算法的改进,很多情况下,可以得到比使用Harris算法更好的效果。如图4(b)为粘连车辆区域骨架角点图,其中白色区域为骨架,骨架上面的圆点即为检测出来的角点。图像上的各点在水平方向和垂直方向的一阶导数是算法的基础,对于图像中任意一点I(u,v),其对应水平方向和垂直方向的一阶导数为:Ix(u,v)=∂I∂x(u,v)]]>和Iy(u,v)=∂I∂y(u,v)]]>令A(u,v)=Ix2(u,v)B(u,v)=Iy2(u,v)C(u,v)=Ix(u,v)Iy(u,v)这些值便称为局部结构矩阵的元素:M=A(u,v)C(u,v)C(u,v)B(u,v)]]>然后再把A(u,v),B(u,v),C(u,v)用高斯滤波器HG平滑得到:M‾=A*HGC*HGC*HGB*HG]]>由于矩阵是对阵矩阵,所以可对角化为:M‾,=λ100λ2]]>其中λ1、λ2为矩阵的两个特征根,其定义为:λ1,2=trace(M‾)2±(trace(M‾)2)2-det(M‾)=12(A‾+B‾A‾2-2A‾B‾+B‾2+4C‾2)]]>在平坦的图像区域中因而λ1=λ2=0。Shi和Tomasi认为,若两个特征值中较小的一个大于最小阈值,则会得到角点。如图5所示为粘连车辆区域角点图。步骤5、骨架角点的聚类:Kmeans聚类算法描述:(1)任意选择2个初始聚类中心;(2)计算每个对象与两个聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心所在的类;(3)利用类对象与类中心距离差分最小的原则重新调整类中心;(4)对于所得2个聚类中心,如果利用(2)、(3)的迭代法更新后,值保持不变,则迭代结束,否则继续迭代。该算法的最大优势在于简洁和快速。算法的关键在于距离公式的选择,本发明选择欧式距离。如图5所示,图4(b)中的圆点角点被分成图5中圆点和三角两类。步骤6、确定分割线:在步骤2粘连车辆区域判断中,根据外接矩形长宽比可以判断粘连区域属于前后车辆粘连还是左右车辆粘连,根据这两种粘连形式,分别用不同的方法确定分割线。6-1前后粘连分割:通过步骤5,我们可以得到经过角点聚类的骨架图,如图5所示,可以发现两类角点上下分离,而在前后车辆的连接区域,几乎没有角点。而用一条水平线就能把两类分开,于是我们就寻找位于上面的一类的最下面的角点和下面一类最上面的角点,在两个点的中点处做一条水平线,这条水平线就是我们的分割线,如图6为本发明前后粘连车辆分割的示意图。6-2左右粘连分割:由步骤5,我们可以得到两类角点的聚类中心,由于人类视觉问题,左右粘连的分割线并不是单纯的垂直线段,而斜线居多。所以对于这类情况,我们用两类聚类中心连线的垂直平分线作为分割线。如图7,为本发明左右粘连车辆分割示意图。图8(a)、图8(b)、图8(c)为本发明部分实测结果图,其中(ai)(本文i均为1、2、3)表示各原始车辆图;(bi)为前景粘连图,图中白色部分表示提取的车辆前景,黑色部分表示背景;(ci)表示通过骨架提取、角点检测及聚类后经过分割的车辆前景,白色区域的分割线即为根据车辆粘连情况确定的分割线;(di)为前景骨架图,白色部分是车辆区域的骨架,圆点和三角分别代表一类角点;(ei)为分割后的车辆图,分割出来的车辆分别用方框框处,每一个方框中只有一辆车。以上通过对所列实施方式的介绍,阐述了本发明的基本构思和基本原理。但本发明绝不限于上述所列实施方式,凡是基于本发明的技术方案所作的等同变化、改进及故意变劣等行为,均应属于本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1