本发明属于计算机视觉与图像处理领域,具体涉及一种基于rgb-d多模态数据的双向人流量统计方法。
背景技术:
近年来,伴随着智慧建筑、视频监控等视频技术的飞速发展,双向人流量的统计逐渐成为视频分析和人工智能领域的一个热门研究课题,并得到广泛的应用。双向人流量统计是指在某一固定区域或空间内的横向(左右)计数和纵向(上下)计数,其中横向计数即对从左到右和从右向左运动的人员进行计数;纵向计数即对远离摄像头和接近摄像头的人员分别进行计数。双向人流量统计可用于对商场、店铺、具有狭小空间的通道走廊等区域进行合理化管理。对于商场店铺而言,客流量信息是极具参考价值的统计数据,基于此可以分析顾客的购物习惯和偏好,从而更加合理的统筹商场布局、布置商品货柜以及避免商品资源浪费,同时迎合消费者的爱好使其获得更佳的购物体验。在通道狭小的公交车或走廊,人流量大,且光照条件较昏暗,容易产生拥挤、踩踏等安全隐患,通过掌握该场景的人员分布情况,能够实时评估场所的拥挤程度,从而做到提前预警和指导疏散引流措施的部署。
双向人流量统计依据数据来源主要分为两类:基于rgb视频序列的双向人流量统计和基于rgb-d(rgb图像和深度图像)视频序列的双向人流量统计。
(1)基于rgb视频序列的双向人流量统计方法:
基于rgb视频序列的双向人流量统计方法即在某一特定区域内,通过rgb视频序列对通过的行人进行计数。首先,利用人员检测模型对rgb样本图像中的行人进行框选与定位,从而达到人员检测的目的。其次通过均值漂移算法、kalman滤波等方法对场景内的所有人员进行运动状态的预测与更新,基于iou距离的匈牙利匹配算法、搜索区域匹配算法等进行目标匹配。最后,利用虚拟计数线判断人员是否过线来统计人员流量。
基于rgb视频序列的双向人流量统计方法存在以下缺点:
①基于iou距离的关联策略在密集人群中的可靠性较差。基于rgb的多目标跟踪方法多采用iou距离度量检测边框之间的位置相似度进行目标关联,但在目标框频繁重叠的密集人群中,仅依赖iou距离会增加匹配错误和遗漏的风险。
②难以应对人员不规则运动和相机视角的影响。现有人流量统计方法多依据两帧间目标轨迹的二维坐标变化,判断人员过线时的运动方向,而对于不规则运动的目标易导致过线方向判断错误。此外现有运动方向判断方法过度依赖于二维平面坐标系,忽略了目标在场景中的三维距离变化,对相机的拍摄视角敏感。
(2)基于rgb-d视频序列的双向人流量统计方法:
基于rgb-d视频序列的双向人流量统计方法即融合rgb和深度图像对通过特定区域的行人进行双向计数。首先,部分方法提取rgb图像中的纹理、色彩信息和深度图像中的边缘等信息,并将提取到的特征进行融合,利用融合特征进行人员的边框回归,得到目标检测框。其次,给目标检测框分配跟踪器并进行实时更新,通过匈牙利匹配算法等对帧间目标进行匹配,实现对人员的跟踪并获取其运动轨迹。最后,依据两帧间目标轨迹的二维质心坐标变化,判断人员过线时的运动方向,根据人员运动方向并设置虚拟线对不同方向的行人进行计数。
基于rgb-d视频序列的双向人流量统计方法存在以下缺点:
难以判断并处理跟踪过程中的目标遮挡。大多数rgb-d多目标跟踪工作仅通过融入深度信息增强人员检测效果,而跟踪过程仍沿用已有基于rgb图像的跟踪方法,难以判断人员遮挡并依据其遮挡状态自适应调整轨迹的更新策略。
现有代表性技术2项:
(1)代表技术1:专利名称:依据影像进行人流计数的系统及方法(申请号:cn201710821458.7)
该专利提供了一种依据影像进行人流计数的方法,方法包括:首先,将深度图像与彩色图像进行校正;然后进行二维检测和三维检测:二维检测即只利用单一可见光图像特征,利用高斯混合模型进行背景建模,分离出图像中的前景,通过前景连通域侦测,并根据对象在图片中占据的面积框选出前景中的对象;在三维中,因三维具有深度特性,可对三维类椭圆进行侦测,以检测人员头部,并将检测框大小缩小为头部大小,没有检测到头部的检测框保持原大小;如果在二维和三维图像中都侦测到同一对象时,进行差异性计算确定临界值,当三维检测框与二维检测框重叠区域与总检测框面积的比值低于临界值,采用二维检测框,反之,采用三维检测框。其次,将检测到的对象以及在二维和三维影像中无重叠的对象进行追踪。最后,当被跟踪人员跨越范围内的基线时,则记录人数。
该专利仍有以下缺陷:
1)但当处于地铁站、商场门口等复杂场景进行人员计数时,由于人员比较密集,容易产生遮挡,跟踪器找不到跟踪目标误认为目标已消失的情况下,会删除该目标的跟踪器,使得轨迹在后续帧无法恢复,导致计数准确率下降。
2)仅依据两帧间的坐标变化判断方向,难以应对人员不规则运动,容错性差。基于二维质心坐标的判断方法通常仅通过两帧间人员边框的纵坐标差值作出决策,但由于人员运动速度和方向都具有随机性,使得两帧间坐标的局部变化存在误差,可能导致目标在当前帧的方向判断发生错误,从而影响轨迹的连续性和后续人员计数的准确性。
(2)代表技术2:技术名称:miaohe,haiboluo,binhui,zhengchang.pedestrianflowtrackingandstatisticsofmonocularcamerabasedonconvolutionalneuralnetworkandkalmanfilter[j].appliedsciences,2019,9(8)
该技术提供了一种基于卷积神经网络和卡尔曼滤波的单目相机行人流量跟踪与统计,方法包括:首先,将剪裁后的vgg网络代替darknet53,并去掉原yolov3的fpn,利用改进的此网络对行人进行检测;其次,对提取到的检测框进行跟踪,并为检测到的行人通过基于卡尔曼滤波算法的线性运动模型为检测到的行人建立运动模型。利用匈牙利算法将检测到的行人与已有轨迹进行匹配。最后,基于块的计数算法需要分隔开始区域、计数区域和结束区域。如果目标的中心在开始区域初始化,并在经过计数区域后到达结束区域,则计数一次。双向计数可以通过按不同的顺序划分区域来实现。
但是该技术存在一些缺陷:
1)只应用匈牙利匹配算法进行目标匹配,这使得关联的不确定性增加,易导致匹配错误或遗漏,尤其在人员密集遮挡的情况下。
2)本技术满足固定方向人流量计数的需要,但对于人员走向不定的复杂场景计数准确率低。
3)跟踪过程只用到了rgb图像,特征单一,对于遮挡或夜间情况出现时,人流量统计任务容易出现误差。
技术实现要素:
:
针对现有技术中的缺陷,本发明提供了一种基于rgb-d多模态数据的双向人流量统计方法,但不限于人流量计数,也可以应用于目标计数、车辆计数等任务。本专利应用目标检测算法检测图像中行人头部,得到行人头部检测框;将检测到的行人头部检测框输入到基于rgb-d多目标跟踪进行目标关联:首先利用预训练好的卷积神经网络提取人员头部的外观特征描述,通过卡尔曼滤波对行人的运动轨迹进行预测与更新,对得到的轨迹和当前帧检测框利用级联匹配算法进行初次匹配,其次经过边框iou代价矩阵和深度变化率代价矩阵联合约束进行二次匹配;然后通过轨迹上下文深度差对目标遮挡状态进行判断并优化轨迹处理;接着利用三维质心坐标判断不同遮挡状态的行人运动方向;最后,结合人员起始位置和两条辅助计数线,对行人进行更为准确的计数。
本发明提供了一种基于rgb-d多模态数据的双向人流量统计方法,流程图如图1所示,包含:rgb-d视频序列提取、人员检测、基于rgb-d的多目标跟踪、基于三维质心运动方向的判断、双向人流量计数。各模块具体功能如下:
s1rgb-d视频序列提取:
使用同时可拍摄rgb图像和深度图像的相机进行rgb-d数据的采集,得到原始的rgb图像和深度图像,并对rgb图像和深度图像进行匹配分组,每一组一张rgb图像和一张相同场景下的深度图像,即为rgb-d视频序列,输出rgb-d视频序列。
s2人员检测:
从所述s1提取rgb-d视频序列,将rgb图像提取的色彩、纹理信息与深度图像提取到的边缘、深度信息进行融合,利用多模态信息,通过深度学习目标检测模型获得人员头部检测框,输出人员头部检测框。
s3基于rgb-d的多目标跟踪:
从所述s2获取的人员头部检测框输入到预先训练好的卷积神经网络中提取外观特征描述,然后利用kalman滤波对人员运动状态进行预测和更新,其次,在初次匹配过程中,通过级联匹配算法对检测框和已有轨迹进行匹配;在二次关联过程中,加入深度变化率,与边框iou损失共同约束目标匹配过程,得到深度度量和位置度量联合约束的代价矩阵;接着利用匈牙利算法,得到已有轨迹和检测框的最优匹配结果。最后通过轨迹上下文深度差判断行人遮挡状态,利用遮挡状态优化行人运动轨迹,输出行人的遮挡状态和处理后的轨迹。
s4基于三维质心运动方向判断:
将所述s3中处理后的轨迹中匹配成功的轨迹以及遮挡状态输入到基于三维质心运动方向判断进而判断人员运动方向,提取行人头部边框的三维质心坐标,包括质心横坐标,质心纵坐标以及质心深度。根据遮挡状态匹配对应的计算方法,对于纵向计数,无遮挡情况采用质心深度坐标差判断行人纵向运动方向,有遮挡情况利用质心纵坐标差判断行人纵向运动方向;对于横向计数,采用质心横坐标差判断行人横向运动方向。通过对以上几种情况的判断与计算,最终得到行人横向、纵向运动方向,输出行人横、纵运动方向。
s5双向人流量计数:
将所述s4得到的行人横、纵运动方向和s3得到的处理后的轨迹中匹配成功的轨迹输入到双向人流量计数进行人流量计数,对横向和纵向双向经过主计数线的人员进行计数,同时结合人员起始位置和两条辅助计数线,处理人员折返等异常运动状态,减少重复计数和错误计数的发生,提高双向人员计数的准确率,输出双向人员流量统计结果。
附图说明
图1本发明提供一种基于rgb-d多模态数据的人流量统计方法流程图
图2基于rgb-d的多人员跟踪流程图
图3基于边框iou和深度变化率联合约束目标匹配策略流程图
图4基于轨迹上下文深度差的目标遮挡判断策略流程图
图5基于三维质心坐标的人员运动方向判断方法流程图
图6双向人员计数流程图
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面通过具体实施例对本发明进行详细说明。
本发明的实施例提供的方法流程图如图1所示,包括如下步骤:
rgb-d视频序列提取:利用同时具有拍摄rgb图像和深度图像功能的相机进行rgb-d视频序列采集,其中rgb视频序列中每帧rgb图像以及对应的深度视频序列中的深度图像组成一组rgb-d图像。
人员检测:将所述s1获取的各组图像进行人员检测,并检测人员头部,提取图片中的色彩、纹理、边缘等信息,通过深度学习的人员检测模型对行人头部进行检测,得到行人头部检测框。
基于rgb-d的多人员跟踪:将所述s2输出的行人头部检测框输入到基于rgb-d的多目标跟踪进行目标关联。首先步骤s310利用预训练的卷积神经网络网络提取检测结果的外观特征描述,步骤320通过卡尔曼滤波对跟踪轨迹进行预测和更新,其次步骤s330利用级联匹配策略对检测框和已有轨迹进行初次匹配,然后基于边框iou和深度变化率联合约束的目标匹配策略进行二次匹配,降低匹配错误的概率;接着步骤s340应用基于轨迹上下文深度差的的目标遮挡判断方法对行人遮挡状态进行判断,最后步骤s350根据其遮挡状态对行人轨迹进行优化。基于rgb-d的多人员跟踪流程图如图2所示,输出处理后的轨迹和遮挡状态,具体步骤如下:
步骤s310:利用所述s2获得人员头部检测框后,使用一个在大规模人员重识别数据集上预训练的深度卷积神经网络,提取人员头部检测框中目标的外观特征描述,输出提取到的人员头部外观特征描述。
步骤s320:从所述步骤s310提取人员头部外观特征描述后,利用卡尔曼滤波实现对目标运动状态的预测和更新,卡尔曼滤波(kalmanfiltering)是一种利用线性状态方程,通过系统输入输出观测数据,从而对系统状态进行最优估计的算法。卡尔曼滤波能够实现数据的实时更新和处理,并且便于编程实现,输出行人预测运动轨迹。
步骤s330:在所述步骤s320获得行人预测运动轨迹后,利用级联匹配方法实现运动轨迹和目标框的初次匹配,输出初次匹配结果。
首先计算运动匹配度。运动匹配度是通过二者在kalman滤波预测位置之间的马氏距离进行度量;其次计算外观匹配度。外观特征是通过预训练cnn模型提取的,使用最小余弦距离度量检测结果和轨迹中保存的外观特征之间的匹配度;然后应用级联匹配策略获得初次匹配结果,结合目标的运动匹配度、外观匹配度、门控阈值和最大代价阈值,计算当前检测结果与已确认轨迹之间的代价矩阵;最后依据代价矩阵应用匈牙利算法获得初次匹配结果,并为每个待匹配轨迹设置优先级。
步骤s340:在所述步骤s330得到初次匹配结果后,应用目标的深度变化率作为深度相似度度量与边框iou相结合,对未匹配的轨迹和未匹配的检测框需要进行二次匹配,输出匹配结果。其流程图如图3所示,具体步骤如下:
步骤s340-1:从所述步骤s330输入初次匹配结果,计算其中所有未匹配轨迹的集合trk与未匹配检测的集合det之间的iou代价矩阵c,iou代价可以通过式3-1和式3-2计算获得:
其中trki∈trk(i=1,2,3,…m)代表集合中的第i个轨迹,detj∈det(j=1,2,3,…n)代表集合中第j个检测结果,
步骤s340-2:从所述步骤s330输入初次匹配结果,计算其中所有未匹配轨迹的深度均值dtrk以及所有未匹配检测结果的深度均值ddet,计算并输出两两之间的深度变化率矩阵dr,其计算公式如下:
步骤s340-3:结合所述步骤s340-1输出的iou代价矩阵和所述步骤s340-2输出的深度变化率代价矩阵,若cij>cmax表明二者位置相似度很低,拒绝第i个轨迹与第j个检测框关联,并保持原始cij不变;若drij≥dmax,表明二者深度相似度十分微小,同样拒绝第i个轨迹与第j个检测框关联,令cij=1;若0≤cij≤cs时,表明二者的位置相似度具有较高的可靠性,保持原始cij不变;若cs≤cij≤cmid,则利用二者的深度变化率适当增大匹配代价,从而剔除一些位置差异和深度差异都较大的匹配项,其计算方法见式(3-4);若cmid≤cij≤cmax,则利用深度变化率适当减小匹配代价,从而恢复一些位置差异较大但深度差异较小的匹配项,最终输出iou代价矩阵和深度变化率代价矩阵联合约束后的代价矩阵,其计算方法见式(3-5)。(cs<cmid<cmax,dmax>ds,本专利中cs=0.6,cmid=0.7,cmax=0.8,dmax=0.8,ds=0.1)
步骤s340-4:将所述步骤s340-3iou代价矩阵和深度变化率代价矩阵联合约束后的代价矩阵c输入到匈牙利算法中,输出未匹配轨迹的集合与未匹配检测的集合之间的二次匹配结果。在多目标跟踪中,将第i帧的所有检测框集合记为si,将第i+1帧的所有检测框集合记为si+1,则二分图的最大匹配问题理解为si和si+1之间的最优关联问题。
步骤s350:对所述步骤s340-4输出二次匹配结果中匹配成功的轨迹进行遮挡判断,本专利应用一种基于轨迹上下文深度差的目标遮挡判断策略,流程图如图4所示,判断人员在当前帧的遮挡状态,并将遮挡状态应用于优化轨迹处理策略,对轨迹更新提供依据,该步骤输出行人的遮挡状态和处理后的轨迹。以下将对基于轨迹上下文深度差的目标遮挡判断策略和依据遮挡状态优化的轨迹处理策略进行描述:
步骤s350-1:对于每个初始化的轨迹赋予3个属性参数:①occstate,用于记录当前轨迹的遮挡状态;②unocctimer,用于记录当前轨迹保持无遮挡状态的时间;③roidepthmean,当前检测结果或轨迹的平均深度值。
步骤s350-2:输入所述s340-4输出的二次匹配结果匹配成功的轨迹,计算匹配成功的轨迹与检测框的平均深度值,平均深度值roidepthmean的计算方法如下所示:
首先提取感兴趣区域。首先将目标边框坐标映射的深度图像上,提取感兴趣区域,在本专利中感兴趣区域为人员的头部区域。
其次填充深度缺失值。由于所提取头部区域的深度图像可能存在深度值缺失(即深度值为0),直接计算深度均值计算会导致较大偏差,因此需要对缺失值进行有效填充。
接着计算平均深度均值。为了避免背景像素对计算前景深度均值的影响,以感兴趣区域的中心点为中心,向外拓展n*n大小的矩形窗口(本专利n选取为6),计算该矩形窗口下的深度均值作为感兴趣区域的深度均值。
最后计算帧间深度差。通过上述步骤计算获得当前时刻检测结果的深度均值ddet以及对应的轨迹在上一时刻存储的深度均值dtrk,通过式3-6计算帧间深度差以用于后续遮挡判断,输出匹配成功的轨迹与检测框的平均深度值。
δd=|ddet-dtrk|(3-6)
步骤s350-3:将步骤s350-2输出的匹配成功的轨迹与检测框的平均深度值,依据遮挡变化与深度变化之间的关联性,利用轨迹上下文深度差判断目标的遮挡状态,其流程如下:
首先设置最大深度差阈值t,当帧间深度差δd≥t时,我们更新当前目标的遮挡状态为“被遮挡”,即occstate=1,同时令无遮挡时间步长unocctimer=0;反之当δd<t时,令unocctimer+=1;
然后设置最小无遮挡时间步长阈值n,若轨迹在连续n帧内的帧间深度差均满足δd<t,则更新当前目标的遮挡状态为“无遮挡”,即occstate=0,同时令unocctimer=1;若不满足连续的n帧内δd<t,则保持原始目标遮挡状态,在本专利中n的取值为5,最后将行人遮挡状态输出,目标遮挡状态的二值计算公式如下:
步骤s350-4:依据步骤s340-4输出的二次匹配结果将轨迹划分为三类,输入未匹配的轨迹、未匹配的检测结果、匹配成功的轨迹,并利用步骤s350-3的行人遮挡状态优化轨迹处理过程,方法如下:
对于未匹配的轨迹:依据目标遮挡状态自适应调整轨迹的最大存活时间max_ages,首先为最大存活时间设置固定初始值s(本专利设置为15),若当前轨迹的消失帧数time_since_update≤s,则保留该轨迹进行后续匹配;反之time_since_update>max_ages,则检查该轨迹的遮挡状态;若当前轨迹处于“无遮挡”状态,则有足够证据表明该轨迹对应的目标已从视频帧中消失,因此删除该轨迹;若为“被遮挡状态”,令max_ages+=1,适当延长该轨迹的最大存活时间,从而有助于恢复被长时间遮挡的目标的轨迹;与此同时设置最大截断值end,当处于“被遮挡”的轨迹满足max_ages≥end时,删除该轨迹,以避免跟踪过程中存储过多无效轨迹。
对于未匹配的检测结果:首先依据检测结果的边框坐标,初始化卡尔曼滤波器的均值变量和协方差矩阵,即目标的运动信息;然后提取检测结果的卷积神经网络特征,即外观信息;利用目标的运动信息和外观信息初始化一个新的轨迹,该轨迹具有唯一id,其初始轨迹状态为“unconfirmed”,初始遮挡状态为“无遮挡”。
对于匹配成功的轨迹:其包含来自于级联匹配和iou匹配两部分的匹配轨迹。首先利用当前检测结果更新卡尔曼滤波器的均值向量和协方差矩阵,然后提取检测结果的卷积神经网络特征对目标外观特征进行更新,同时更新目标的遮挡状态;当前轨迹的击中次数加1,time_since_update=0,若击中次数大于阈值n_init(本专利中为3),则表明该轨迹在连续三帧中匹配成功,更新其轨迹状态为“confirmed”。
最终输出处理后的轨迹。
基于三维质心坐标的人员运动方向判断:利用所述步骤s350-3得到的行人遮挡状态和所述步骤s350-4得到的处理后的轨迹中匹配成功的轨迹对行人运动方向进行判断,输出人员横、纵的运动方向其具体流程如图5所示。具体实施方法如下:
步骤s410:对所述步骤s350-4接收的处理后的轨迹中匹配成功的轨迹,获得当前帧检测结果的三维质心坐标centroiddet,三维质心可以表示为(x,y,d),其中x,y,d分别为质心横坐标、质心纵坐标和质心深度,输出轨迹的三维质心坐标。
步骤s420:将所述步骤s410输出的轨迹的三维质心坐标存入质心队列,每个轨迹都具有一个最大长度为n的质心队列precentroids,初始值为空,用于记录该人员前n帧三维质心坐标。本专利中n取10,即轨迹最大能够记录从当前时刻向前10次成功匹配的三维质心,输出长度为n的质心队列。
步骤s430:将所述s420输出的长度为n的质心队列用于运动行人的方向判断,本专利所提方法能够同时输出对纵向(上、下)和横向(左、右)的方向判断。
对于纵向方向判断,首先判断当前时刻人员的遮挡状态,若处于无遮挡状态,则计算在步骤s420获取轨迹的前n个质心深度的均值mean(precentroidsd)与当前质心深度
若处于被遮挡状态,人员对应的深度值可能发生数值波动而不适用于定量计算,此时计算当前质心纵坐标
最后依据目标遮挡状态和diff的符号,利用式(4-3)和式(4-4)判断当前时刻人员的纵向运动方向directy。
对于横向方向判断,由于相机镜头的法线方向与人员运动平面垂直,使得人员横向运动时深度变化较小,因此本专利采用通过质心横坐标的变化判断人员的横向运动方向,计算方法见式(4-5)和式(4-6)。
在纵向运动方向directy的取值中,up代表人员的运动方向为由下向上,down则代表由上向下;在横向运动方向directy的取值中,left代表人员的运动方向为从右向左,right则代表从左向右;0则代表静止状态,也用于表示轨迹在首帧的初始方向,并输出行人横、纵运动方向。
步骤s440:在步骤s430完成行人横、纵运动方向判断后,利用当前帧的计算结果,更新轨迹的三维质心坐标、横/纵运动方向、平均深度值等参数,并将当前帧的三维质心坐标压入到长度为n的质心队列中,用于后续帧的判断和处理。
双向人流量计数:在所述步骤s350-4获取处理后的轨迹以及所述步骤s430获取行人横、纵运动方向后,对横、纵双向经过主计数线的人员进行计数,从而记录并输出双向人员流量,同时结合人员起始位置和两条辅助计数线,处理人员折返等异常运动状态,减少重复计数和错误计数的发生,提高计数的准确率,最终输出准确的计数结果。纵向计数通过设置水平计数线,判断对由上而下和由下而上经过计数线的人员数量,而横向计数是通过设置垂直计数线,判断从左向右和从右向左经过计数线的人员,二者在计数原理上基本一致,其流程图如图6所示。本专利以纵向行人计数为例,下文将对纵向人员计数方法的具体步骤进行描述:
步骤s510:接收所述s350-4获取处理后的结果中匹配成功的轨迹,由所述步骤s430获取行人横、纵运动方向。
步骤s520:对于纵向计数,本专利在视频帧的中央设置一条水平主计数线,用于对向上和向下经过计数线的人员进行分别计数。记图片分辨率为m*q,则水平计数线坐标为q/2,本专利中所采用的视频序列,分辨率为640×480,因此主计数线的纵坐标记为ly=240。
步骤s530:判断起始位置的目的是避免目标在首次出现但还未过线时被错误计数。对于纵向计数,首先提取质心队列中存储的n个质心纵坐标precentroidsy,然后分别计算n个质心纵坐标中纵坐标大于ly和小于ly的元素数量,若小于ly的数量超过阈值s,则我们认为轨迹的起始位置位于计数线上半部分,记flagup=1,反之为0;若大于ly的数量超过阈值s,则认为轨迹起始位置位于计数线下半部分,记为flagdown=1,反之为0。本专利将阈值s设置为3,flagup和flagdown的计算公式如下:
步骤s540:为每个轨迹赋予一个布尔参数counted,初始化为0,用于记录该人员id是否已经被计数,从而避免重复计数。若当前轨迹尚未计数,则依据运动方向可分为以下三种情况:
①若direction=0,表明目标静止或当前为轨迹的首帧,因此不纳入计数;
②若direction<0,并且当前质心纵坐标在主计数线上半部分,即centroidy<ly,且轨迹起始点位于主计数线下半部分,即flagdown=1,表明目标已由下向上运动并越过主计数线,因此我们将向上计数值加1,并更新轨迹参数counted=1;
③若direction>0,且满足centroidy>ly,flagup=1,表明目标由上向下运动并越过主计数线,因此向下计数值加1,并更新轨迹参数counted=1。
步骤s550:由于目标的运动具有不确定性,导致计数过程中可能出现多种情况。如当目标首次越过计数线后,其可能在计数线附近徘徊,此时应当避免对该目标的重复计数;此外目标也可能在运动一段距离后折返,此时则需要对该目标进行重复计数。因此针对已计数的轨迹,本专利依据其到达的最远位置来判断是否重复计数。具体步骤如下:
对于纵向计数,首先以主计数线为中心,分别在距其上、下方dis的位置设置第一、第二辅助计数线。然后针对以下两种情况,本专利将同一id的目标进行重复计数:
①direction<0且满足centroidy<ly-dis,即目标由下而上运动且越过第一辅助计数线,此时我们重置轨迹参数counted=0,使其由上而下折返通过计数线时可以重复计数;
②direction<0且满足centroidy<ly+dis,即目标由上而下越过第二辅助计数线,此时同样重置轨迹参数counted=0,使其由下而上折返通过计数线时可以重复计数。
纵向计数实现了对上、下方向人流量的统计,通过其原理易推广到横向计数中,实现对左、右方向人流量的统计,从而完成对横、纵双向人员流量的精准统计,输出人流量统计结果。