本发明属于图像处理、视频检测和人工智能交叉技术应用领域,尤其涉及一种基于三重背景更新的违章停车检测方法。
背景技术:
随着社会经济的不断发展,城市中的车辆数目快速增长。停车需求和停车场地的供给矛盾日益突出,违章停车成为城市的顽疾,对城市的整体交通环境和行人安全存在严重影响。
传统的违章停车检测主要是通过人工监管,无法实现实时监控,极大地浪费了交通管制的资源。近年来随着视频检测技术和计算机视觉技术的发展,基于监控视频的违章停车检测受到了越来越多的关注。
基于视频的违章停车检测主要包括以下步骤:建立背景模型进行车辆检测,进行车辆跟踪,进行违章停车的判断。由于运动目标处于复杂场景,背景建模过程比较复杂、跟踪过程容易出现失败,实时性监控较困难。因此,发明一种有效的违章停车检测方法意义重大。
技术实现要素:
本发明的目的在于弥补现有违章停车检测的不足,提出了一种基于三重背景更新的违章停车检测方法,通过对当前背景、缓冲背景和违停车辆背景进行更新,有效地检测出违停车辆,提高违章停车检测的准确性和实时性。
本发明为解决上述技术问题采用以下技术方案:
一种基于三重背景更新的违章停车检测方法,包括如下步骤:
步骤1,用户输入视频镜头s,定义s={f1,f2,...,fn},fn为第n个镜头帧,fn用大小为r*l的二维矩阵表示,其中,n为正整数,r为矩阵行数,l为矩阵列数;
步骤2,创建当前背景current_bg和缓冲背景buffer_bg,将第一帧图像f1灰度化处理后得到的灰度差值图像f1'作为当前背景current_bg和缓冲背景buffer_bg的初始值;其中,current_bg和buffer_bg均用大小为r*l的二维矩阵表示;所述灰度化处理是将彩色图像转化成为灰度图像的过程;
步骤3,对步骤2创建的当前背景current_bg和缓冲背景buffer_bg进行处理,进而检测出违停车辆;具体步骤如下:
定义违停车辆检测图像为fore,fore用大小为r*l的二维矩阵表示;对当前背景current_bg和缓冲背景buffer_bg中的每个像素点j进行如下计算:
fore(j)=current_bg(j)-buffer_bg(j)
若fore(j)>t',则判定j为前景点;
若fore(j)≤t',则判定j为背景点;
则fore(j)>t'的构成检测出的违停车辆;
其中,fore(j)为违停车辆检测图像第j个像素点的色彩值,current_bg(j)为当前背景current_bg第j个像素点的色彩值,buffer(j)为缓冲背景buffer_bg第j个点的像素值,t'为色差阈值;
步骤4,将第k帧当前背景current_bg各像素值与第k+1帧图像fk+1对应像素值进行比较:
若当前背景current_bg各像素值小于图像fk+1对应像素值,则当前背景current_bg对应像素值增加1个单位;
若当前背景current_bg各像素值大于图像fk+1对应像素值,则当前背景current_bg对应像素值减少1个单位;
若当前背景current_bg各像素值等于图像fk+1对应像素值,当前背景current_bg对应像素值保持不变;
步骤5,通过违停车辆的缓存背景判断违停车辆何时离开:具体步骤如下:定义违停车辆背景为abandon_bg,abandon_bg用大小为r*l的二维矩阵表示,r为矩阵行数,l为矩阵列数;设置定时器inter,以固定时间隔作为违停车辆背景abandon_bg的更新周期,对当前背景current_bg和缓冲背景buffer_bg中的每个像素点j进行如下计算:
abandon_bg(j)=current_bg(j)-buffer_bg(j)
若abandon_bg(j)>t”,则判定j为前景点;
若abandon_bg(j)≤t”,则判定j为背景点;
其中,abandon_bg(j)为违停车辆背景abandon_bg第j个像素点的色彩值,current_bg(j)为当前背景current_bg第j个像素点的色彩值,buffer(j)为缓冲背景buffer_bg第j个点的像素值,t”为色差阈值;
步骤5.1,若违停车辆背景abandon_bg与当前背景current_bg对应区域背景像素不同,则判定违停车辆未离开,反之判定违停车辆离开;
步骤5.2,若违停车辆离开,则用当前背景current_bg的像素值更新违停车辆背景abandon_bg对应区域,同时缓冲背景buffer_bg完全复制当前背景current_bg;若违停车辆未离开,则用违停车辆背景abandon_bg像素值更新缓冲背景buffer_bg的对应区域,同时重新设置定时器inter;
步骤6,通过八连通序贯算法对检测到的违停车辆进行区域连通性分析,进而构建出最小外接矩阵。
作为本发明所述的一种基于三重背景更新的违章停车检测方法进一步优化方案,所述步骤6具体包含如下步骤:
步骤6.1,从左至右,从上到下对图像进行搜索,寻找灰度值为255且没有标记过的像素点,标记该像素点为a,记录其坐标值;
步骤6.2,在像素点a附近按八个方向进行搜索,寻找灰度值为255且没有标记过的像素点,将该像素送入堆栈;所述八个方向包含上、下、左、右、左斜上、左斜下、右斜上、右斜下;
步骤6.3,搜索像素点a的八个方向结束后,取出栈顶的像素点,重复步骤6.1、步骤6.2直至无法搜索到没有标记的像素点为止;
步骤6.4,完成上述过程后,统计标记的像素点并与设定的像素阈值相比较,如果大于该阈值,则检测到运动目标;
步骤6.5,区域标记完成后,对整个图像从左到右,从上到下进行一次扫描,找出每个区域中横纵坐标的最大值和最小值,构建出运动目标最小外接矩形。
作为本发明所述的一种基于三重背景更新的违章停车检测方法进一步优化方案,步骤3中色差阈值t'取95。
作为本发明所述的一种基于三重背景更新的违章停车检测方法进一步优化方案,步骤5中定时器inter时间间隔取15s。
作为本发明所述的一种基于三重背景更新的违章停车检测方法进一步优化方案,步骤5中色差阈值t”取60。
本发明提出的一种基于三重背景更新的违章停车检测方法,具体有益效果如下:
1、本发明采用像素比较法对当前背景模型进行背景更新,降低了计算量,提高检测算法的实时性;
2、本发明对缓冲背景和违停车辆检测背景进行更新,从而避免违停车辆的停留时间过长而融入背景;
3、本发明采用严格的筛选方法,消除干扰目标(静止行人、静止自行车)对违停车辆的影响,提高算法的准确度,尽量减少漏检和误检率。
附图说明
图1是一种基于三重背景更新的违章停车检测方法实现流程图。
具体实施方式
下面对本发明附图的某些实施例作更加详细的描述。
根据附图1,本发明具体实施方式为:
1)输入一个视频序列s={f1,f2,...,f30},fi为第i个镜头帧,用大小为30*30的二维矩阵表示,创建当前背景和缓冲背景并进行初始化;具体如下:
创建当前背景current_bg和缓冲背景buffer_bg,current_bg和buffer_bg均用大小为30*30的二维矩阵表示;将第一帧视频图像f1进行灰度化处理后得到的灰度差值图像f1'作为当前背景和缓冲背景的初始值。
2)对1)创建的当前背景和缓冲背景进行处理检测出违停车辆;具体如下:
定义违停车辆检测图像为fore,fore用大小为30*30的二维矩阵表示;对当前背景current_bg和缓冲背景buffer_bg中的每个像素点j进行如下计算:
fore(j)=current_bg(j)-buffer_bg(j)
若fore(j)>t',则判定j为前景点;
若fore(j)≤t',则判定j为背景点;
其中,fore(j)为违停车辆检测图像第j个像素点的色彩值,forecurrent_bg(j)为当前背景current_bg第j个像素点的色彩值,buffer(j)为缓冲背景buffer_bg第j个点的像素值,t'为色差阈值;
3)以第一帧中当前背景current_bg各像素值与第二帧图像f2对应像素值进行比较为例。如果前者偏小,则当前背景current_bg对应像素值增加1个单位;如果前者偏大,则当前背景current_bg对应像素值减少1个单位;在两者相等的情况下,当前背景current_bg对应像素值保持不变。即使视频中运动目标快速变化也不会影响当前背景current_bg,但如果视频中的运动目标是静止的,它将逐渐融入到当前背景current_bg中;
4)违停车辆背景用于记录违停车辆的缓存背景,由此能够判断出遗留物什么时候离开并且停留了多久。定义违停车辆背景为abandon_bg,abandon_bg用大小为30*30的二维矩阵表示;设置定时器inter,以固定时间隔20秒作为违停车辆背景abandon_bg的更新周期,对当前背景current_bg和缓冲背景buffer_bg中的每个像素点j进行如下计算:
abandon_bg(j)=current_bg(j)-buffer_bg(j)
若abandon_bg(j)>t”,则判定j为前景点;
若abandon_bg(j)≤t”,则判定j为背景点;
其中,abandon_bg(j)为违停车辆背景abandon_bg第j个像素点的色彩值,current_bg(j)为当前背景current_bg第j个像素点的色彩值,buffer(j)为缓冲背景buffer_bg第j个点的像素值,t”为色差阈值;
5)如果违停车辆背景abandon_bg与当前背景current_bg对应区域背景像素不同,判定违停车辆未离开,否则判定离开;
6)如果违停车辆离开了,则用当前背景current_bg的像素值更新违停车辆背景abandon_bg对应区域,同时缓冲背景buffer_bg完全复制当前背景current_bg。如果违停车辆未离开,则用违停车辆背景abandon_bg像素值更新缓冲背景buffer_bg的对应区域,同时重新设置定时器inter。
7)为了提取到完整的运动目标,往往需要对图像进行区域连通性分析,当连通区域的面积大于设定的阈值时,认为是运动目标,接着求取其最小外接矩阵。对检测到的违停车辆基于八连通序贯算法进行区域连通性分析构建出运动目标的外接矩阵,具体过程如下:
(1)从左至右,从上到下对图像进行搜索,寻找灰度值为255且没有标记过的像素点,标记该像素点为a,记录其坐标值;
(2)在像素点a附近按八个方向进行搜索,寻找灰度值为255且没有标记过的像素点,将该像素送入堆栈;所述八个方向包含上、下、左、右、左斜上、左斜下、右斜上、右斜下。
(3)搜索像素点a的八个方向结束后,取出栈顶的像素点,重复步骤(1)、(2)直至无法搜索到没有标记的像素点为止;
(4)完成上述过程后,统计标记的像素点并与设定的像素阈值1000相比较,如果大于该阈值,则检测到运动目标;
(5)区域标记完成后,对整个图像从左到右,从上到下进行一次扫描,找出每个区域中横纵坐标的最大值和最小值,构建出运动目标最小外接矩形。