一种公交站台候车乘客监测方法转让专利
申请号 : CN202311256861.1
文献号 : CN116994211B
文献日 : 2024-03-01
发明人 : 修科鼎 , 周益辉 , 田浩洋
申请人 : 深圳市城市交通规划设计研究中心股份有限公司 , 北京深研智慧交通科技有限公司
摘要 :
权利要求 :
1.一种公交站台候车乘客监测方法,其特征在于,包括以下步骤:S1.获取公交站台候车区域视频流,对视频流的每一帧图片进行候车人检测;
S2.利用检测到的每一帧图片中的候车人,对候车人进行目标跟踪,获取每个人的id信息;
S3.统计候车人的候车数据;
候车数据包括:公交站台进出流量、公交站台候车流量和候车时间;
公交站台进出流量包括:进入人数、出去人数;
公交站台候车流量包括:当前候车人数、最大候车人数、最小候车人数、平均候车人数;
候车时间包括:最大候车时间、最小候车时间和平均候车时间;
统计候车人的候车数据,包括以下步骤:
S31.初始设定数据采样周期T,在摄像头视频画面上,画一个多边形1包围公交站台的候车区域,并将多边形1的顶点坐标信息按照固定格式进行保存;
S32.读取多边形1的顶点坐标点信息,得到多边形1的顶点坐标集合;
S33.计算每一帧图片中人的坐标点;
S34.判断人的坐标处于多边形内还是外;
S35.设定内缩值,将多边形1的顶点坐标集合等距内缩,得到多边形2的顶点坐标集合;
S36.设定数组长度,创建2个数组集合,数组集合inside_id[length]存储多边形2内部的人id信息,数组集合outside_id[length]存储多边形1外部的人id信息;
S37.根据人的坐标和得到的多边形顶点坐标集合,判断人的坐标,如果处于多边形2的内部,并且inside_id[length]中没有这个人的id,则将这个人的id入队到inside_id[length]中;否则,如果处于多边形1的外部,并且outside_id[length]中没有这个人的id,则将此人的id入队到outside_id[length]中;
S38.再判断人的坐标,如果处于多边形2的内部,并且outside_id[length]中有这个人的id,则进入的人数累加1,并同时将这个人的id从outside_id[length]中删除;
S39.再判断人的坐标,如果处于多边形1的外部,并且inside_id[length]中有这个人的id,则出去人数累加1,并同时将此人的id从inside_id[length]中删除;
S4.将统计数据发送至信息显示设备,控制信息显示屏实时显示乘客流量信息;
S5.对现场视频进行截图,并将候车数据发送至远程云平台。
2.根据权利要求1所述的一种公交站台候车乘客监测方法,其特征在于,利用检测到的每一帧图片中的候车人,对候车人进行目标跟踪,获取每个人的id信息的方法是:S21.角点检测获取每帧图像的角点集,对角点进行id编号;
S22.在连续帧之间每一个角点通过平移或仿射进行运动估计;
S23.连接连续帧中的运动向量,得到每一个角点的轨迹;
S24.对于各角点,移除被遮挡或无法准确跟踪的角点;
S25.使用步骤S21‑S23跟踪新的和旧的角点。
3.根据权利要求2所述的一种公交站台候车乘客监测方法,其特征在于,判断人的坐标处于多边形内还是外的方法是:设多边形的n个顶点坐标集合为:point[n][2]={{x0,y0},{x1,y1},...,{xn‑1,yn‑1}},人的坐标为(x,y),判断方法为:S341.初始设定变量i=0,j=n‑1,count=0,其中i表示顶点序号,从0开始到n‑1,j表示逆时针方向与第i个顶点相邻的另一个顶点序号,n表示多边形顶点数,count表示交点数;
S342.如果i
S343.判断人坐标点(x,y)的水平射线,是否与第z条边相交,若 ;
且 ;
则相交,令count=count+1;
S344.令j=i,i=i+1,跳转到S342;
S345.判断count是否为奇数,若为奇数判断人的坐标处于某个多边形内。
4.根据权利要求3所述的一种公交站台候车乘客监测方法,其特征在于,设定内缩值,将多边形1的顶点坐标集合等距内缩,得到多边形2的顶点坐标集合的方法,包括以下步骤:S351.输入内缩值和多边形1的n个顶点坐标集合point1[n][2];
S352.设多边形1的顶点序号为i,i从0开始到n‑1;
S353.如果i顶点序号
S354.求取当前多边形1第i个顶点坐标经过偏移得到的多边形2第i个顶点坐标;
设多边形1当前第i个顶点坐标为(p.x,p.y),相邻另外两个顶点坐标分别为(p1.x,p1.y)和(p2.x,p2.y),那么:p.x=point1[i][0]
p.y=point1[i][1]
如果i等于0,即第一个顶点的相邻顶点坐标(p1.x,p1.y)为:p1.x=point1[n‑1][0]p1.y=point1[n‑1][1]否则为:
p1.x=point1[i‑1][0]p1.y=point1[i‑1][1]如果i等于(n‑1),即最后一个顶点的相邻顶点坐标(p2.x,p2.y)为:p2.x=point1[0][0]
p2.y=point1[0][1]
否则为:
p2.x=point1[i+1][0]p2.y=point1[i+1][1]将相邻的两边换算成向量P1(v1x,v1y)和向量P2(v2x,v2y)进行计算:v1x=p1.x‑p.x
v1y=p1.y‑p.y
v2x=p2.x‑p.x
v2y=p2.y‑p.y
将P1和P2转化为单位化向量,得到P1(vv1x,vv1y),P2(vv2x,vv2y):;
向量P1和P2相交于P点,平移expand距离之后,再次相交于Q点,设vectorLen为PQ两点距离,计算vectorLen值:;
根据P1和P2向量的叉乘积的值来判断夹角是凹角还是凸角:judge=v1x*v2y‑v2x*v1y若叉乘积 judge<0,向量夹角为凹角;
若叉乘积 judge>0,向量夹角为凸角;
若叉乘积judge=0,向量夹角为平角;
当向量夹角为凹角和平角时不执行操作,当向量夹角为凸角时则令:vectorLen=vectorLen*(‑1)计算当前顶点坐标,经过等距内缩之后的x坐标偏移量和y坐标偏移量,分别设为vx和vy:;
S355.根据顶点坐标的x坐标偏移量和y坐标偏移量,即可计算得到多边形2第i个顶点坐标:;
S356.跳转到S353重复执行,直至退出结束。
5.根据权利要求4所述的一种公交站台候车乘客监测方法,其特征在于,统计公交站台候车流量方法是:当前候车人数:在某帧图片中,如果人的坐标处于多边形1内,令当前候车人数累计加
1,同时,在周期时间内,每隔1秒对当前候车人数进行采集计算,共统计T次:则最大候车人数:如果最大候车人数小于当前候车人数,令最大候车人数=当前候车人数;
最小候车人数:如果最小候车人数大于当前候车人数,令最小候车人数=当前候车人数;
平均候车人数:周期时间结束后,平均候车人数= ;
其中,T表示周期时间,s表示序号,即第s秒,currentWaits表示第s秒时刻的当前候车人数。
6.根据权利要求5所述的一种公交站台候车乘客监测方法,其特征在于,统计候车时间的方法,包括以下步骤:S331.初始设定k值,k表示图片间隔数量;
S332.抽取第q帧图片,当前时间为time1,判断某个人是否处于多边形1内,如果处于多边形1内,则将这个人的id信息加入所有候车人的id数组集合中;
S333.抽取第q+k帧图片,当前时间为time2,判断某个人是否处于多边形1内,如果处于多边形1内,则将这个人的id信息加入所有候车人的id数组集合中,并循环对比判断此人id是否在第q帧图片中的所有候车人id数组集合中;
如果不在,则当前候车人的候车时间waitTime清零:waitTime=0;
如果在,则对当前候车人的候车时间waitTime进行累计: waitTime=waitTime+(time2‑time1);
S334.在某个时刻获取当前所有候车人的候车时间,筛选得到某个时刻的最大候车时间、最小候车时间和平均候车时间;
设某个时刻总候车人数为m,所有候车人候车时间的集合为waitTime[m],那么:最大候车时间:最大候车时间等于所有候车人候车时间的集合中的最大值;
最小候车时间:最小候车时间等于所有候车人候车时间的集合中的最小值;
平均候车时间:平均候车时间 = ;
其中,m表示某个时刻的总候车人数,p表示序号,waitTime[p]表示第p个人的当前候车时间。
7.一种电子设备,其特征在于,包括存储器和处理器,存储器存储有计算机程序,所述的处理器执行所述计算机程序时实现权利要求1‑6任一项所述的一种公交站台候车乘客监测方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1‑6任一项所述的一种公交站台候车乘客监测方法。