一种基于图像信息的客流量识别统计方法转让专利
申请号 : CN201510063946.7
文献号 : CN104637058B
文献日 : 2017-11-17
发明人 : 方康玲 , 何鹏 , 付晓薇
申请人 : 武汉科技大学
摘要 :
权利要求 :
1.一种基于图像信息的客流量识别统计方法,其特征在于,包括以下步骤:
1)确定目标检测区域;设置目标图像检测区域ROI的四个参数:ROI.X代表检测区域ROI左上角点的x轴坐标,ROI.Y代表检测区域ROI左上角点的y轴坐标,ROI.Width代表检测区域ROI的宽度,ROI.Height代表检测区域ROI的高度;
2)确定目标检测区域没有待检测目标存在时的背景图像;
3)对采集的视频图像的每帧图像进行处理,将存在运动目标的图像帧按顺序存入数组中;
4)判断数组中的图像帧是否连续,根据判断结果对数组中的图像帧进行分块;
所述步骤4)中判断数组中的图像帧是否连续采用以下方法:
4.1)从数组中依次取帧图像,对当前帧目标图像进行基于差分法的自适应背景分割,将获得的运动区域图像进行二值化,用2×2结构算子对目标图像的二值图像进行形态学腐蚀,以去除伪目标,再通过形态学膨胀还原实际目标的大小,获得只含有运动目标连通域的二值图像;
4.2)遍历只含有运动目标连通域的二值图像,获取各个目标连通域Area[n][i]的特征值,存入相应的链表中;其中,特征值包括以下参数:图像索引Num,目标索引Index,目标质心的横坐标X和纵坐标Y,对应原图像目标区域的灰度平均值Gray,目标区域矩形包围窗口的长度Length和宽度Width,目标区域的面积大小Space;
4.3)根据获得的目标连通域Area[n][i]的特征值,用Kalman滤波来预测下一帧图像中目标连通域Area[n+1][i]的质心运动位置p(xi,yi)的搜索区域;
4.4)计算下一帧图像的目标连通域Area[n+1][i]的特征值;
4.5)在当前帧图像的Kalman预测搜素区域匹配下一帧图像各目标连通域,计算当前帧目标连通域Area[n][i]与下一帧图像对应搜索区域内所有目标连通域的代价函数值,并找出其中最小值;
4.6)计算目标连通域Area[n][i]和下一帧图像对应搜索区域任一目标连通域Area[n+
1][j]的质心距离d,并与质心距离限定值d0作比较:
若d≤d0,则目标连通域Area[n+1][j]为目标连通域Area[n][i]的后续,用目标连通域Area[n+1][j]的特征值替代目标连通域Area[n][i]的特征值,并对目标连通域Area[n+1][j]做标记,建立目标链;
若d>d0,则目标连通域Area[n][i]在下一帧中没有后续;
4.7)根据判断结果对数组中的图像帧进行分块;
5)对分块后的图像帧进行统计计数,确定进出的客流量。
2.根据权利要求1所述的客流量识别统计方法,其特征在于,所述步骤2)中确定背景图像的方法为:采用多幅图像平均法,对多帧原始图像叠加求取平均值,获取目标不存在时视频图像的背景图像。
3.根据权利要求1所述的客流量识别统计方法,其特征在于,所述步骤3)中对采集的视频图像的每帧图像进行处理为增强图像处理,具体为:对帧图像进行二值化和距离变换后,再通过均值滤波或亚取样,得到当前帧图像的增强图像。
4.根据权利要求3所述的客流量识别统计方法,其特征在于,所述步骤3)中采集的视频图像的每帧图像是否存在运动目标的判定方法如下:
3.1)将采集到的视频图像的帧图像进行分块处理,将第i帧图像记为当前帧图像,然后选定目标图像检测区域ROI;
3.2)将第i帧图像与处理过的第i-1帧图像进行差分,将选定的目标图像检测区域ROI的差值记为NZ;
3.3)将运动检测差值NZ与设定的运动检测报警最小元素数量限定值N0作比较:若NZ<N0,则没有运动存在;若NZ≥N0,则有运动存在,保留当前帧图像;
3.4)对当前帧图像和背景图像进行差分,将选定的目标图像检测区域ROI的差值记为NB;将背景图像记为I0;
3.5)将目标检测差值NB与设定的目标检测报警最小元素数量限定值N0’作比较:若NB<N0’,则没有待检测目标存在;若NB≥N0’,则报警存在运动的目标,然后将存在运动目标的当前帧图像存入数组MovingImages[i][j]中;
3.6)遍历所有帧图像,按顺序保存所有有运动目标存在的帧图像,存入数组MovingImages[i][j]中。
5.根据权利要求1所述的客流量识别统计方法,其特征在于,所述步骤5)中,对分块后的图像帧进行统计计数,具体方法如下:
5.1)将目标图像检测区域ROI的横坐标的最小值和最大值分别保存到对应的变量xin和xout中,然后读取数组MovingImages[i][j]中的第一帧原始图像序列,记为多目标跟踪统计计数的当前帧目标图像;
5.2)定义计数变量进计数器PersonIn和出计数器PersonOut,分别记录进入和离开的目标数量,初始化设置为0,并规定沿X轴正方向为进,逆X轴正方向为出;
5.3)对目标连通域Area[n][i]的质心横坐标X的位置:
当X≤xin时,如果目标连通域Area[n][i]的运动轨迹的第一个质心横坐标X1≤xin,则说明该目标连通域Area[n][i]一直在预留区内徘徊,任何计数器不动作;如果X1>xin,则说明该目标连通域Area[n][i]离开跟踪窗口,方向为出,出计数器PersonOut加1,并清除目标连通域Area[n][i]的目标链;所述第一个质心横坐标为目标最开始进入跟踪窗口的质心横坐标,即在跟踪窗口捕捉到的该目标第一个质心横坐标;
当X>xout时,如果目标连通域Area[n][i]的运动轨迹第一个质心坐标横坐标X1≥xout,则说明该目标连通域Area[n][i]一直在预留区内徘徊,任何计数器不动作;如果X1
当xin
5.4)跟踪窗口中的所有目标连通域进行匹配后,验证当前帧中所有目标是否被跟踪;
若存在未被跟踪的目标,则判断其质心横坐标是否满足X≤xin和X>xout中的任意一个,满足则表示有新目标出现,为其建立新的目标链,获取并记录特征值,转入步骤4.3);不满足则判断为干扰,丢弃;
5.5)当前帧图像中所有目标识别计数结束后,计算当前进计数器PersonIn和出计数器PersonOut的差值,记为当前客流量CustomCounting,当前帧图像的目标识别计数结束;
5.6)依次对图像数组MovingImages[i][j]中每帧图像的目标连通域进行识别和自动计数,直到图像数组MovingImages[i][j]中的图像序列全部处理完毕,则整个目标识别计数结束。
6.根据权利要求1所述的客流量识别统计方法,其特征在于,所述步骤4.5)中采用改进的目标链代价函数对多目标进行跟踪匹配,步骤是:
4.5.1)获取第k帧图像中多个目标的三个特征值:目标质心坐标、平均灰度和目标区域的面积,其中目标i的特征值分别记为:目标质心坐标Point[k][i]、平均灰度Gray[k][i]和目标区域的面积Space[k][i];
4.5.2)利用Kalman滤波预测第k帧图像中目标i在第k+1帧图像中的搜索区域,遍历目标i在第k+1帧图像中的搜索区域,发现n个目标对象,获取他们的特征值,其中目标j的特征值分别记为:Point[k+1][j]、Gray[k+1][j]和Space[k+1][j];
4.5.3)分别求取第k+1帧图像目标i的搜索区域中n个目标对象与第k帧图像中目标i的
3个特征值的变化程度,求取最大值分别记为:质心坐标的最大值MaxPoint、平均灰度的最大值MaxGray和目标区域面积变化的最大值MaxSpace,具体计算公式如下:MaxPoint[i]=Max(sqrt((Point[k][i].x-Point[k+1][m].x)*(Point[k][i].x-Point[k+1][m].x)+(Point[k][i].y-Point[k+1][m].y)*(Point[k][i].y-Point[k+1][m].y)))
MaxGray[i]=Max(sqrt((Gray[k][i]-Gray[k+1][m])*(Gray[k][i]-Gray[k+1][m])))MaxSpace[i]=Max(sqrt((Space[k][i]-Space[k+1][m])*(Space[k][i]-Space[k+1][m])))其中,1≤m≤n,表示目标i的搜索区域中n个目标中任意一个;其中sqrt为开平方根运算;
4.5.4)求取第k帧图像中目标i和第k+1帧图像中目标j的质心距离大小D[i][j]、灰度变化程度H[i][j]和面积变化程度S[i][j],相应的计算公式如下:D[i][j]=sqrt((Point[k][i].x-Point[k+1][j].x)*(Point[k][i].x-Point[k+1][j].x)+(Point[k][i].y-Point[k+1][j].y)*(Point[k][i].y-Point[k+1][j].y))/MaxPoint[i];
H[i][j]=sqrt((Gray[k][i]-Gray[k+1][j])*(Gray[k][i]-Gray[k+1][j]))/MaxGray[i];
S[i][j]=sqrt((Space[k][i]-Space[k+1][j])*(Space[k][i]-Space[k+1][j]))/MaxSpace[i];
4.5.5)代价函数V[i][j]可由步骤4.5.4)所求三个特征值变化量求得:V[i][j]=αD[i][j]+βH[i][j]+γS[i][j];
其中α、β、γ三个参数系数表示三个特征值的影响因子,按照实际情况调整。
7.根据权利要求1所述的客流量识别统计方法,其特征在于,所述步骤4.3)采用Kalman滤波预测搜索区域的具体步骤是:
4.3.1)假设图像中各目标质心的运动为匀速运动,包围窗口面积不变,初始化目标在x方向的运动速度Vx,在y方向上的运动速度Vy,包围窗口长宽的变化速度Vt,图像采样步长T;
4.3.2)基于第k-1帧图像中的目标i,获取第k帧图像中对应目标i的特征值的最优估算结果:质心位置X坐标Point[k][i].x和Y坐标Point[k][i].y、包围窗口的长度Win[k][i].length和宽度Win[k][i].width、质心位置坐标和包围窗口的长度宽度两特征量的偏差估计;P[k][i]质心位置坐标Point[k][i]即为质心运动位置坐标p(xi,yi);
4.3.3)基于第4.3.2)步获得的结果,计算第k+1帧图像中目标i的特征值预测值和偏差估计,具体的计算公式如下:Point[k+1][i].x=Point[k][i].x+Vx*T;
Point[k+1][i].y=Point[k][i].y+Vy*T;
Win[k+1][i].length=Win[k][i].length+Vt*T;
Win[k+1][i].width=Win[k][i].width+Vt*T;
P[k+1][i]=P[k][i]+Q;
4.3.4)根据第k+1帧图像中目标i的特征值预测值和偏差估计,计算对应的Kalman增益:Kg[k+1][i]=P[k][i]/(P[k][i]+R)
计算第k+1帧图像中目标i的各个特征值和偏差估计的最优估计值,并更新他们的预测值:Point[k+1][i].x=Point[k+1][i].x+Kg[k+1][i]*(Z[k+1][i].x-Point[k+1][i].x);
Point[k+1][i].y=Point[k+1][i].y+Kg[k+1][i]*(Z[k+1][i].y-Point[k+1][i].y);
Win[k+1][i].length=Win[k+1][i].length+Kg[k+1][i]*(Z[k+1][i].length-Win[k+1][i].length);
Win[k+1][i].width=Win[k+1][i].width+Kg[k+1][i]*(Z[k+1][i].width-Win[k+1][i].width);
P[k+1][i]=(1-Kg[K+1][i])*P[k][i];
4.3.5)由此可得第k帧图像中目标i在第k+1帧中的预测搜索区域(X,Y)为:Point[k+1][i].x-1.5*Win[k+1][i].length/2≤X≤Point[k+1][i].x+1.5*Win[k+1][i].length/2;
Point[k+1][i].y-1.5*Win[k+1][i].width/2≤Y≤Point[k+1][i].y+1.5*Win[k+1][i].width/2。
8.根据权利要求1所述的客流量识别统计方法,其特征在于,所述步骤4.5)中目标的关联匹配和数据关联的算法的实现步骤是:在目标的关联匹配中,若出现第k帧图像中目标i与第k+1帧图像中目标i的预测搜索区域中第j个目标和第m个目标的代价函数值相等,且同时为最小,则此时目标的跟踪匹配会发生冲突,则采用以下改进算法,完成目标的正确跟踪匹配;
计算第k帧图像中目标i和第k+1帧图像中目标j和m的代价函数,若代价函数值相等且为最小,则将上述3个目标的灰度特征值分别记为Gray[k][i]、Gray[k+1][j]、Gray[k+1][m];
分别求取第k帧图像中目标i和第k+1帧图像中目标j、m的平均灰度变化大小,计算公式为:Value1=sqrt((Gray[k][i]-Gray[k+1][j])*(Gray[k][i]-Gray[k+1][j]));
Value2=sqrt((Gray[k][i]-Gray[k+1][m])*(Gray[k][i]-Gray[k+1][m]));
若Value1
与第k帧图像中的目标i没有匹配成功的与第k帧图像中的其他目标匹配,或者保留等待下一帧中找到匹配目标。