1.一种公交客流自动计数方法,其特征在于,具体包括如下步骤:步骤一,设置前门摄像机和后门摄像机,并采集视频;对前门摄像机和后门摄像机采集的视频分别同时进行步骤二到步骤七的处理;前门摄像机和后门摄像机的处理完全相同;
步骤二,采用基于直方图统计与多帧平均混合的背景提取算法对视频进行处理,得到当前的背景边缘图像;
步骤三,对当前帧图像进行边缘检测得到当前的视频帧边缘图像,同时得到该视频帧边缘图像中每个像素点的梯度方向角;
步骤四,利用下式,对步骤二得到的背景边缘图像和步骤三得到的视频帧边缘图像进行边缘背景去除,得到目标边缘图像;
其中,Backgroud(x,y)表示当前的背景边缘图像中的像素点的像素值;I(x,y)表示当前的视频帧边缘检测图像中像素点(x,y)的像素值;ObjectEdge(x,y)表示当前的目标边缘图像中像素点(x,y)的像素值;
步骤五,对步骤四得到的目标边缘图像进行处理得到候选圆心链表,候选圆心链表中记录的所有更新后的候选圆构成可能含有虚假圆形的圆形轮廓;
步骤六,对步骤五得到的可能含有虚假圆形的圆形轮廓中的每个更新后的候选圆,进行基于置信度的头部轮廓判决,得到乘客的头部轮廓;
步骤七,候选圆的分组与合并,得到单个乘客头部对应的圆形轮廓;具体操作如下:当任意两个候选圆圆心之间的距离满足下式时,将该两个圆分到同一组:式中,i、j分别表示候选圆中的任意两个候选圆的序号;
圆形轮廓分组结束之后,对已分组的轮廓进行合并,即将同一组的候选圆的圆心坐标算术平均得到新的圆心坐标,将同一组的候选圆的半径的算术平均值作为新的圆半径,得到的该新的圆作为单个乘客头部对应的圆形轮廓;
步骤八,对步骤七得到的每个乘客头部轮廓进行标号,并对每个乘客头部轮廓跟踪得到当前乘客人数;
步骤九,返回步骤一,前门摄像机和后门摄像机继续采集视频。
2.如权利要求1所述的公交客流自动计数方法,其特征在于,所述步骤二的具体操作如下:(1)根据视频的当前帧图像中像素点(x,y)的灰度值,确定像素点(x,y)所属的灰度区间ωi;
式1
其中,N为划分的灰度区间的个数,本发明中,N为12;i为灰度区间的序号;
(2)假设当前前门摄像机或者后门摄像机采集的视频中共有M帧图像(F1,F2…FM),对于第n帧图像中的像素点(x,y),利用式2和式3分别计算μn,i(x,y)和cn,i(x,y),n=
1,......,M;
式2
式3
其中,μn,i(x,y)为区间灰度均值;cn,i(x,y)为次数均值;In(x,y)代表像素点(x,y)在视频的第n帧图像中的灰度值;μn-1,i(x,y)、cn-1,i(x,y)初始值为0;
i表示灰度区间的序号,i=1,2…N;n为视频中的图像的序号,n=1,......,M。
N为划分的灰度区间的个数,N取12,α和β均为衰减系数,α取0.6;β取0.9;
(3)取像素点(x,y)对应的cn,i(x,y)中的最大值,并将其对应的区间灰度均值μn,i(x,y)作为像素点(x,y)的背景值;
(4)重复执行以上三步,直到每个像素点都计算完毕,即得到背景图像;
(5)利用式4得到更新后的背景图像;
(式4)
其中,In(x,y)为当前图像帧的灰度值;Bn(x,y)是在第n帧图像更新背景后得到的背景图像灰度值,Bn-1(x,y)初始值为0;λ为更新系数,取为0.65;T为更新阈值,T∈(0,43);
n=1,......,M;
(6)将更新后的背景图像进行边缘检测,得到当前的背景边缘图像。
3.如权利要求1所述的公交客流自动计数方法,其特征在于,所述步骤五的具体操作如下:(1)将步骤四得到的目标边缘图像中的所有像素点映射到参数空间(a,b,r);
(2)设置参数累加器数组A,A中的任意一个数组元素A(a,b,r)表示落在以(a,b)为圆心、以r为半径的圆上的像素点的个数;A(a,b,r)的初始值为0;A(a,b,r)值越大,表示以(a,b)为圆心、以r为半径的圆存在的可能性越大,所以需要寻找最大的A(a,b,r);
(3)对于目标边缘图像中的每个像素点(x,y),在r以一定步长连续取值时,用下式计算a、b的值:a=x-rcosθ b=y-rsinθ
其中,θ表示目标边缘图像中每个像素点的梯度方向角,由于视频帧边缘图像中每个像素点的梯度方向角已知,因此θ已知;r∈(rmin,rmax),r以一定步长连续取值;
每个(a,b)作为候选圆心点,每个(a,b,r)的组合作为一个候选圆;从而得到每个像素点对应的多个候选圆;
(4)对于每一个待选圆心点(a,b),都建立一个半径直方图,其横坐标为半径r,取值为(rmin,rmax),其中,rmin取为8,rmax取为23;纵坐标为当以待选圆心点(a,b)为圆心、以r为半径画圆时,落在该圆上的像素点的个数;
(5)对每个半径直方图采用Laplacian形式的一维滤波器进行滤波,得到每个半径直方图对应的一个或多个峰值,即 的极值;
(6)如果某个A(a,b,r)的极值满足下式,则认为该A(a,b,r)的极值对应的所有像素点构成一个圆,该圆作为更新后的候选圆;
A(a,b,r)>ε
其中,ε为更新阈值,经试验,取值为160;
(7)创建候选圆心链表,该链表中的每个节点对应记录步骤(6)得到的每一个更新后的候选圆;候选圆心链表中记录的所有更新后的候选圆构成可能含有虚假圆形的圆形轮廓。
4.如权利要求1所述的公交客流自动计数方法,其特征在于,所述步骤六的具体操作如下:对步骤五得到的可能含有虚假圆形的圆形轮廓中的每个更新后的候选圆,分别计算弧长置信度μarc、分布置信度μdis和匹配误差置信度μmerr,并利用下式得到置信度μc:其中,μc为置信度;ω1、ω2和ω3为权重系数,本发明中,它们的取值均为1.0,即认为弧长置信度μarc、分布置信度μdis和匹配误差置信度μmerr的重要程度相同。置信度μc越大,表示落在该更新后的候选圆上的所有像素点组成乘客头部轮廓的可能性越大。
当μc的值满足下式时,将置信度μc对应的圆形轮廓作为对应乘客的头部轮廓:μc≥THc
式中,THc取值为0.74。
5.如权利要求1所述的公交客流自动计数方法,其特征在于,所述步骤七的具体操作如下:对步骤七得到的每个乘客头部轮廓进行标号,并对每个乘客头部轮廓分别采用基于Kalman滤波的Camshift跟踪算法进行跟踪;
根据每个乘客头部轮廓的移动方向,判断该乘客是否跨过虚拟计数线a、b,并判断乘客是上车还是下车:(1)如果前门乘客上车跨过虚拟计数线a,则乘客总人数加1,并记录该乘客的上车时间、地点;
(2)如果后门乘客下车跨过虚拟计数线b,则乘客总人数减1,并记录该乘客的下车时间、地点;
(3)如果前门乘客下车跨过虚拟计数线a,则发出报警信号,且乘客总人数减1,并记录该乘客的下车时间、地点;
(4)如果后门乘客上车跨过虚拟计数线b,则发出报警信号,且乘客总人数加1,并记录该乘客的上车时间、地点。
6.一种公交客流自动计数系统,其特征在于,包括如下单元:第一单元:用于采集视频;
第二单元:用于采用基于直方图统计与多帧平均混合的背景提取算法对视频进行处理,得到当前的背景边缘图像;
第三单元:用于对当前帧图像进行边缘检测得到当前的视频帧边缘图像,同时得到该视频帧边缘图像中每个像素点的梯度方向角;
第四单元:用于利用下式,对第二单元得到的背景边缘图像和第三单元得到的视频帧边缘图像进行边缘背景去除,得到目标边缘图像;
其中,Backgroud(x,y)表示当前的背景边缘图像中的像素点的像素值;I(x,y)表示当前的视频帧边缘检测图像中像素点(x,y)的像素值;ObjectEdge(x,y)表示当前的目标边缘图像中像素点(x,y)的像素值。
第五单元:用于对第四单元得到的目标边缘图像进行处理得到候选圆心链表,候选圆心链表中记录的所有更新后的候选圆构成可能含有虚假圆形的圆形轮廓;
第六单元:用于对可能含有虚假圆形的圆形轮廓中的每个更新后的候选圆,进行基于置信度的头部轮廓判决,得到乘客的头部轮廓;
第七单元:用于将候选圆分组与合并,得到单个乘客头部对应的圆形轮廓;具体内容如下:当任意两个候选圆圆心之间的距离满足下式时,将该两个圆分到同一组:式中,i、j分别表示候选圆中的任意两个候选圆的序号;
圆形轮廓分组结束之后,对已分组的轮廓进行合并,即将同一组的候选圆的圆心坐标算术平均得到新的圆心坐标,将同一组的候选圆的半径的算术平均值作为新的圆半径,得到的该新的圆作为单个乘客头部对应的圆形轮廓;
第八单元,用于对每个乘客头部轮廓进行标号,并对每个乘客头部轮廓跟踪得到当前乘客人数;
所述第一单元至第八单元依次首尾相连接。
7.如权利要求6所述的公交客流自动计数系统,其特征在于,所述第二单元包括如下子单元:(1)根据视频的当前帧图像中像素点(x,y)的灰度值,确定像素点(x,y)所属的灰度区间ωi;
式1
其中,N为划分的灰度区间的个数,本发明中,N为12;i为灰度区间的序号;
(2)假设当前前门摄像机或者后门摄像机采集的视频中共有M帧图像(F1,F2…FM),对于第n帧图像中的像素点(x,y),利用式2和式3分别计算μn,i(x,y)和cn,i(x,y),n=
1,......,M;
式
2
式3
其中,μn,i(x,y)为区间灰度均值;cn,i(x,y)为次数均值;In(x,y)代表像素点(x,y)在视频的第n帧图像中的灰度值;μn-1,i(x,y)、cn-1,i(x,y)初始值为0;
i表示灰度区间的序号,i=1,2…N;n为视频中的图像的序号,n=1,......,M。
N为划分的灰度区间的个数,N取12,α和β均为衰减系数,α取0.6;β取0.9;
(3)取像素点(x,y)对应的cn,i(x,y)中的最大值,并将其对应的区间灰度均值μn,i(x,y)作为像素点(x,y)的背景值;
(4)重复执行以上三个子单元,直到每个像素点都计算完毕,即得到背景图像;
(5)利用式4得到更新后的背景图像;
(式4)
其中,In(x,y)为当前图像帧的灰度值;Bn(x,y)是在第n帧图像更新背景后得到的背景图像灰度值,Bn-1(x,y)初始值为0;λ为更新系数,取为0.65;T为更新阈值,T∈(0,43);
n=1,......,M;
(6)将更新后的背景图像进行边缘检测,得到当前的背景边缘图像;
8.如权利要求6所述的公交客流自动计数方法,其特征在于,所述第五单元包括如下内容:(1)将第四单元得到的目标边缘图像中的所有像素点映射到参数空间(a,b,r);
(2)设置参数累加器数组A,A中的任意一个数组元素A(a,b,r)表示落在以(a,b)为圆心、以r为半径的圆上的像素点的个数;A(a,b,r)的初始值为0;A(a,b,r)值越大,表示以(a,b)为圆心、以r为半径的圆存在的可能性越大,所以需要寻找最大的A(a,b,r);
(3)对于目标边缘图像中的每个像素点(x,y),在r以一定步长连续取值时,用下式计算a、b的值:a=x-rcosθ b=y-rsinθ
其中,θ表示目标边缘图像中每个像素点的梯度方向角,由于视频帧边缘图像中每个像素点的梯度方向角已知,因此θ已知;r∈(rmin,rmax),r以一定步长连续取值;
每个(a,b)作为候选圆心点,每个(a,b,r)的组合作为一个候选圆;从而得到每个像素点对应的多个候选圆;
(4)对于每一个待选圆心点(a,b),都建立一个半径直方图,其横坐标为半径r,取值为(rmin,rmax),其中,rmin取为8,rmax取为23;纵坐标为当以待选圆心点(a,b)为圆心、以r为半径画圆时,落在该圆上的像素点的个数;
(5)对每个半径直方图采用Laplacian形式的一维滤波器进行滤波,得到每个半径直方图对应的一个或多个峰值,即 的极值;
(6)如果某个A(a,b,r)的极值满足下式,则认为该A(a,b,r)的极值对应的所有像素点构成一个圆,该圆作为更新后的候选圆;
A(a,b,r)>ε
其中,ε为更新阈值,经试验,取值为160;
(7)创建候选圆心链表,该链表中的每个节点对应记录步骤(6)得到的每一个更新后的候选圆;候选圆心链表中记录的所有更新后的候选圆构成可能含有虚假圆形的圆形轮廓。
9.如权利要求6所述的公交客流自动计数系统,其特征在于,所述第六单元包括如下内容:对步骤五得到的可能含有虚假圆形的圆形轮廓中的每个更新后的候选圆,分别计算弧长置信度μarc、分布置信度μdis和匹配误差置信度μmerr,并利用下式得到置信度μc:其中,μc为置信度;ω1、ω2和ω3为权重系数,本发明中,它们的取值均为1.0,即认为弧长置信度μarc、分布置信度μdis和匹配误差置信度μmerr的重要程度相同。置信度μc越大,表示落在该更新后的候选圆上的所有像素点组成乘客头部轮廓的可能性越大。
当μc的值满足下式时,将置信度μc对应的圆形轮廓作为对应乘客的头部轮廓:μc≥THc
式中,THc取值为0.74。
当任意两个候选圆圆心之间的距离满足下式时,将该两个圆分到同一组:式中,i、j分别表示候选圆中的任意两个候选圆的序号;
圆形轮廓分组结束之后,对已分组的轮廓进行合并,即将同一组的候选圆的圆心坐标算术平均得到新的圆心坐标,将同一组的候选圆的半径的算术平均值作为新的圆半径,得到的该新的圆作为单个乘客头部对应的圆形轮廓。
10.如权利要求1所述的公交客流自动计数方法,其特征在于,所述第八单元包括如下内容:对第七单元得到的每个乘客头部轮廓进行标号,并对每个乘客头部轮廓分别采用基于Kalman滤波的Camshift跟踪算法进行跟踪;
根据每个乘客头部轮廓的移动方向,判断该乘客是否跨过虚拟计数线a、b,并判断乘客是上车还是下车:(1)如果前门乘客上车跨过虚拟计数线a,则乘客总人数加1,并记录该乘客的上车时间、地点;
(2)如果后门乘客下车跨过虚拟计数线b,则乘客总人数减1,并记录该乘客的下车时间、地点;
(3)如果前门乘客下车跨过虚拟计数线a,则发出报警信号,且乘客总人数减1,并记录该乘客的下车时间、地点;
(4)如果后门乘客上车跨过虚拟计数线b,则发出报警信号,且乘客总人数加1,并记录该乘客的上车时间、地点。