一种基于运动轨迹分析的道路行人事件检测方法
技术领域
本发明属于视频检测领域,具体涉及一种基于运动轨迹分析的道路行人事件检测方法。
背景技术
道路行人事件是指行人在机动车道上没有任何保护措施的情况下进入,干扰机动车正常行驶的行为。虽然交管部门已经采取措施,但行人闯入机动车道的情况时有发生,其危险性非常大,容易造成交通拥堵,甚至酿成交通事故,给人们正常生活造成严重的影响。传统的行人事件检测方法主要有温度检测方法、电子线圈检测方法、数字视频检测方法,其中温度检测方法容易受到车辆干扰;电子线圈可扩展性差,安装维护时必须中断交通、破坏路面,这些方法在实际生活中并不能得到广泛应用。
目前的新建项目越来越多地采用安装、维护不需要破坏路基、检测区域大、实施方便灵活的基于视频的交通信息检测技术。基于视频的行人检测方法成为研究的热点,现有的方法主要有基于神经网络行人检测,基于小波变换的模板匹配检测方法等。这些方法虽然能够实现行人事件报警,但视频数据的处理过程复杂,可靠性差,不能满足检测的实时性要求,无法满足实际应用的要求。
发明内容
针对现有技术的不足和缺陷,本发明的目的在于,提供一种基于运动轨迹分析的道路行人事件检测方法,该方法可以对视频范围内所有行人事件实现实时、可靠的检测。
为了实现上述任务,本发明采用如下技术方案予以实现:
一种基于运动轨迹分析的道路行人事件检测方法,该方法按照以下步骤进行:
步骤一,建立图像像素到路面实际距离的映射关系,即映射表;
步骤二,将第一帧图像和背景图像在相同的块坐标系下都划分成多个块区域,背景的大小为W*H,划分的块大小为w*h,划分的块区域个数T为T=(W/w)*(H/h),第i个块内所有像素值用Bi表示,第i个块内像素点的总个数N=w*h,Bi中保存w*h个像素值,以第i个块的左下角为原点建立直角二维坐标系Y,第i个块内(m,n)点的像素值用Bi(m,n)表示,其中:
W为背景水平方向的像素;
H为背景竖直方向的像素;
w为第i个块的宽度方向的像素;
h为第i个块的高度方向的像素;
i=1,2,3…T;
m代表第i个块中任一像素点在坐标系Y下的横坐标,m=0,1,2...w-1;
n代表第i个块中任一像素点在坐标系Y下的纵坐标,n=0,1,2...h-1;
步骤三,对第一帧图像中的每个块,在背景图像中找到与该块位置相同的背景块,并计算该块与其相应的背景块之间各相同像素位置处的灰度差值的绝对值之和;
当所得的绝对值之和大于设定的阈值A,则该块为目标块,将该目标块内所有像素的灰度值赋值为255,
当所得的绝对值之和小于或等于设定的阈值A,则该块为背景块,将背景块内所有像素的灰度值赋值为0,其中:
所述的阈值A的取值范围为(10~20)×块的面积;
最后将第一帧图像中的背景与目标分离开,得到第一帧图像的二值化图像;
步骤四,对得到的二值化图像按照从左到右,从上到下的顺序以块为单位扫描,将相邻的目标块标记为同一目标,同时计算每个标记目标的高度和宽度,当高度/宽度的值在阈值B范围内时,对该二值化图像进行边缘检测,寻找最佳角点,即当横向检测数据与纵向检测数据同时大于阈值T时,判定该点为候选角点,其中:
所述的阈值B的范围为2~10;
所述的阈值T的取值为180;
步骤五,选择这些角点中横向检测数据与纵向检测数据和最小的点作为目标的特征点,同时创建一个目标结构体,记录这些目标的特征点位置以及匹配跟踪计数器信息,匹配跟踪计数器R第一次初始化为零,特征点坐标为(x1,y1),同时记录以该特征点为中心一个块大小的图像作为模板,该模板内所有像素点的像素值用二维数组Bt[N]表示,该块内像素点(m,n)的像素值为Bt(m,n);
步骤六,在第二帧图像中,以第一帧记录的图像块Bt[N]为模板,以该模板的特征点位置(x1,y1)为中心,在当前帧图像中选取4个块大小的正方形区域作为搜索区域,按照从左到右,从上到下的方法,逐个搜索,待搜索块的个数记为N,用Bj[N]表示当前搜索区域中的任意一个搜索块,得到两者绝对值差和SAD,
其中:
j=1,2,3....N
以绝对差值和最小作为匹配准则,选取N个绝对值差和中最小的块为匹配块,记为Bs[N],即在当前帧中找到了匹配特征点,同时记录新的匹配特征点的位置(x2,y2),并用以新的特征点为中心的块图像Bs[N]作为新的模板Bt[N],同时匹配跟踪计数器R加1;
步骤七,从第三帧图像到第M帧图像,M为大于60的正整数,重复步骤六,当R等于阈值C时,执行步骤八;
步骤八,当匹配跟踪计数器R等于阈值C时,所有的特征点(x1,y1)...(x60,y60)构成目标的跟踪轨迹,通过查找步骤一中建立的映射表,得到跟踪轨迹对应的实际距离,相邻点的间隔为每帧时间,如此可以得到一组时间和实际距离的数组,利用最小二乘法拟合可求得跟踪轨迹的速度,当该速度满足阈值D的范围时,即确定该目标为行人,其中:
所述的阈值C的取值为60;
所述的阈值D的范围为(0.3~2.0)m/s。
本发明的基于视频的道路行人事件检测方法,与现有技术相比,可对视频范围内所有行人目标进行检测,不受环境限制,能够对实时视频进行检测,且检测时间短、易于实现、准确性较高,很适合于实时检测行人事件,具有广阔的应用前景。
附图说明
图1为第一帧视频图像。
图2为连通域标记示意图,图中a为第一块连通域,b为第二块连通域。
图3为第一帧图像二值化标记结果图像,图中白色区域为当前帧的二值化标记目标。
图4为第二帧视频图像,图中的白色十字点为求取的目标特征点。
图5为滑动搜索示意图,实线矩形框为待搜索块,虚线举行表示搜索区域,其中心点A为上一帧特征点的位置,实线矩形框依一个像素为步长,按照从左到右,从上到下滑动搜索。
图6为第60帧二值化标记图,图中的白色线条为跟踪轨迹线。
图7为图6中跟踪轨迹对应的实际运动轨迹曲线图,图中的横坐标为时间,单位时间为0.04s,纵坐标为实际距离,单位为cm。
图8为行人事件检测结果。
以下结合附图和实施例对本发明的内容作进一步详细说明。
具体实施方式
本实施例给出一种基于运动轨迹分析的道路行人事件检测方法,通过基于块的二值化分割、基于块的连通域标记、特征点选取、目标轨迹匹配跟踪以及用最小二乘法拟合求取行人目标速度从而判断是否为行人事件。需要说明的是,本发明的方法过程中所处理的图像是视频中的沿正时间序列的第一帧图像、第二帧图像、第三帧图像、…、第M(M为正整数)帧图像。
设每一帧视频图像的大小为W*H,每个块的面积大小为w*h,其中W为每一帧视频视频图像水平方向的像素,H为每一帧视频图像垂直方向的像素,w为每个块区域的宽度,h为每个块区域的高度。
需要说明的是本实施例中的映射表采用发明专利“一种线性模型下的摄像机几何标定方法”(公开(公告)号:CN102222332A)中所述的摄像机几何标定方法得到。
本实施例的方法具体采用以下步骤实现:
步骤一,建立图像像素到路面实际距离的映射关系,即映射表;
步骤二,将第一帧图像和背景图像在相同的块坐标系下都划分成多个块区域,背景的大小为W*H,划分的块大小为w*h,划分的块区域个数T为T=(W/w)*(H/h),第i个块内所有像素值用Bi表示,第i个块内像素点的总个数N=w*h,Bi中保存w*h个像素值,以第i个块的左下角为原点建立直角二维坐标系Y,第i个块内(m,n)点的像素值用Bi(m,n)表示,其中:
W为背景水平方向的像素;
H为背景竖直方向的像素;
w为第i个块的宽度方向的像素;
h为第i个块的高度方向的像素;
i=1,2,3…T;
m代表第i个块中任一像素点在坐标系Y下的横坐标,m=0,1,2...w-1;
n代表第i个块中任一像素点在坐标系Y下的纵坐标,n=0,1,2...h-1;
步骤三,对第一帧图像中的每个块,在背景图像中找到与该块位置相同的背景块,并计算该块与其相应的背景块之间各相同像素位置处的灰度差值的绝对值之和,
当所得的绝对值之和大于设定的阈值A,则该块为目标块,将该目标块内所有像素的灰度值赋值为255,
当所得的绝对值之和小于或等于设定的阈值A,则该块为背景块,将背景块内所有像素的灰度值赋值为0,其中:
所述的阈值A的取值范围为(10~20)×块的面积;
最后将第一帧图像中的背景与目标分离开,得到第一帧图像的二值化图像;
步骤四,对得到的二值化图像按照从左到右,从上到下的顺序以块为单位扫描,将相邻的目标块标记为同一目标,同时计算每个标记目标的高度和宽度,当高度/宽度的值在阈值B范围内时,对该二值化图像进行边缘检测,寻找最佳角点,即当横向检测数据与纵向检测数据同时大于阈值T时,所述的阈值T的取值为180,就判定该点为候选角点,其中:
所述的阈值B的范围为2~10;
步骤五,选择这些角点中横向检测数据与纵向检测数据和最小的点作为目标的特征点,同时创建一个目标结构体,记录这些目标的特征点位置以及匹配跟踪计数器信息,匹配跟踪计数器R第一次初始化为零,特征点坐标为(x1,y1),同时记录以该特征点为中心一个块大小的图像作为模板,该模板内所有像素点的像素值用二维数组Bt[N]表示,该块内像素点(m,n)的像素值为Bt(m,n);
步骤六,在第二帧图像中,并以第一帧记录的图像块Bt[N]为模板,以该模板的特征点位置(x1,y1)为中心,在当前帧图像选取4个块大小的正方形区域作为搜索区域,按照从左到右,从上到下的方法,逐个搜索,待搜索块的个数记为N,用Bj[N]表示当前搜索区域中的任意一个搜索块,得到两者绝对值差和SAD,
其中:
j=1,2,3....N
以绝对差值和最小作为匹配准则,选取N个绝对值差和中最小的块为匹配块,记为Bs[N],即在当前帧中找到了匹配特征点,同时记录新的匹配特征点的位置(x2,y2),并用以新的特征点为中心的块图像Bs[N]作为新的模板Bt[N],同时匹配跟踪计数器R加1;
步骤七,从第三帧图像到第M帧图像,M为大于等于60的正整数,重复步骤六,当R等于阈值C时,执行步骤八;
步骤八,当匹配跟踪计数器R等于阈值C时,所有的特征点(x1,y1)...(x60,y60)构成目标的跟踪轨迹,通过查找步骤一中建立的映射表,得到跟踪轨迹对应的实际距离,相邻点的间隔为每帧时间,如此可以得到一组时间和实际距离的数组,利用最小二乘法拟合可求得跟踪轨迹的速度,当该速度满足阈值D的范围时,即确定该目标为行人,其中:
所述的阈值C的取值为60;
所述的阈值D的范围为(0.3~2.0)m/s;
以下给出本发明的具体实施例,需要说明的是本发明并不局限于以下具体实施例,凡在本申请技术方案基础上做的等同变换均落入本发明的保护范围。
实施例:
实施例中处理过程中视频的采样频率是25帧每秒,每帧图像大小为720×288,每块区域的大小为8×6,将帧图像分成90×48个块区域,目标区域二值化分割阈值A为576,阈值B的范围为2~10,阈值T的取值为180,阈值C的取值为60,阈值D的范围为(0.3~2.0)m/s,如图1至图8所示,遵从上述方法依次对第一帧至第六十帧图像进行处理。
从图6可以看出图中白色线为行人从第一帧到第六十帧的运动轨迹,该轨迹的下端为行人第一次进入场景,找到的特征点位置,最上端点为第60帧匹配找到的特征点。
图7为图6跟踪轨迹对应的实际距离曲线图,采用最小二乘法对该段轨迹拟合,即可求得行人的实际运动速度1.46m/s,如图8所示,该运动速度在阈值D的范围内,因此检测结果为该道路的行人事件。