行人轨迹线处理方法/***、计算机可读存储介质及设备
技术领域
本发明属于图像处理技术领域,涉及一种处理方法和***,特别是涉及一种行人轨迹线处理方法/***、计算机可读存储介质及设备。
背景技术
在O2O时代,商业客流分析越来越受到更多企业的重视。购物中心、品牌连锁店、超市等作为与顾客直接接触线下零售场所,能提供大量高价值商业数据。
顾客的行为轨迹为商业数据分析和挖掘提供事实依据,比如顾客在购物中心内有什么样的移动轨迹,顾客关注哪些购物区域,促销活动是否增加客流量等等。透彻了解顾客行为,是提高企业竞争力和增强盈利能力的关键。
客流计数***作为商业客流分析的数据提供端,其中一个重要的考察指标就是客流数据的准确性。由于实际应用场景复杂多变,现有技术无法稳定准确的行人运动轨迹线,客流计数***的跟踪精度不高。
因此,本发明提供一种行人轨迹线处理方法/***、计算机可读存储介质及设备,以解决现有技术在实际应用场景复杂多变的情况下,无法稳定准确的行人运动轨迹线,客流计数***的跟踪精度不高等缺陷,实已成为本领域技术人员亟待解决的技术问题。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种行人轨迹线处理方法/***、计算机可读存储介质及设备,用于解决现有技术中在实际应用场景复杂多变的情况下,无法稳定准确的行人运动轨迹线,客流计数***的跟踪精度不高的问题。
为实现上述目的及其他相关目的,本发明一方面提供一种行人轨迹线处理方法,包括:获取待处理图像数据;检测所述待处理图像数据,从所述待处理图像数据中提取行人检测框,并利用所述行人检测框中所包含的行人轨迹信息,生成零散轨迹线;分块跟踪所述行人检测框,以生成跟踪轨迹线,通过所述跟踪轨迹线连接所述零散轨迹线,以形成初始行人轨迹线;
对所述初始行人轨迹线进行精细化处理,以获取待处理图像数据中真实的行人轨迹线。
于本发明的一实施例中,在获取待处理图像数据过程中,所述行人轨迹线处理方法包括:
在预定采集时间内,从图像采集设备中获取图像数据;计算所述图像数据的前景图像,以获取包括所述图像数据和所述前景图像的待处理图像数据。
于本发明的一实施例中,所述检测所述待处理图像数据,从所述待处理图像数据中提取行人检测框的步骤包括:对所述待处理图像数据中所有图像数据进行基于方向梯度直方图特征的行人检测,以检测出所述图像数据的行人检测框;利用所述前景图像的前景比例,对所述行人检测框进行筛选,以提取前景比例大于预定前景比例阈值的行人检测框。
于本发明的一实施例中,所述对所述待处理图像数据中所有图像数据进行基于方向梯度直方图特征的行人检测的步骤包括:对所述图像数据进行颜色空间归一化处理,形成预处理图像数据;所述颜色空间归一化处理包括对图像数据进行图像灰度化和伽马校正;获取预处理图像数据的梯度及其梯度方向;将所述预处理图像数据划分成若干图像单元,统计每个图像单元的梯度直方图;将多个图像单元组成图像块,每个图像块内所有图像单元的特征向量串联起来,以获取该图像块的方向梯度直方图特征;将所述图像数据内所有的方向梯度直方图特征组合,形成所述图像数据的特征向量,用以表征该图像数据;利用用支持向量机分类器,对所述图像数据的特征向量进行判别,以检测出所述图像数据的行人检测框;所述行人检测框包括当前检测的行人检测框尺寸、置信度和/或预定采集时间内的当前检测时刻。
于本发明的一实施例中,利用所述行人检测框中所包含的行人轨迹信息,生成零散轨迹线的步骤包括:利用所述行人检测框,将符合连接规则的行人检测框连接在一起,形成零散轨迹线;所述零散轨迹线中包含在预定采集时间内行人轨迹线信息,包括:k条零散轨迹线,每一条零散轨迹线在当前检测时刻的属性信息,该属性新消息包括第i条零散轨迹线在当前检测时刻的位置坐标,第i条零散轨迹线的置信度,及当前检测的行人检测框尺寸;其中,所述连接规则包括:确保当前时刻的行人检测框与上一时刻的行人检测框的时差在三帧以内;行人检测框前后运动方向变化不超过预定角度;每一时刻的行人检测框的置信度不低于置信度阈值。
于本发明的一实施例中,所述分块跟踪所述行人检测框,以生成跟踪轨迹线的步骤包括:
将当前时刻的行人检测框按照头部、身体部、左臂部、右臂部、腿部进行图像分块,形成头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块;其中,所述当前时刻的行人检测框中存在一条零散轨迹线的末端;所述头肩分块采用第一跟踪方式,所述身体部分块、左臂部分块、右臂部分块、腿部分块采用第二跟踪方式分别进行跟踪,以获取头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块的更新分块在下一时刻行人检测框中的位置;根据头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块的更新分块在下一时刻行人检测框中的位置,和头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块与当前时刻的行人检测框的中心的相对位移,计算出下一时刻行人检测框的中心;计算每一更新分块与下一时刻行人检测框的中心的偏移;若头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块与当前时刻的行人检测框的中心的偏移,分别与每一更新分块与下一时刻行人检测框的中心的偏移满足预定偏移判定条件,则将每一更新分块校正为下一次分块跟踪的初始位置:循环执行以上步骤,每完成行人检测框的更新后,将更新后的行人检测框连接起来,形成跟踪轨迹线,同时在更新的行人检测框中搜索与该跟踪轨迹线的末端适配的另一条零轨迹线的头端,若存在,将该跟踪轨迹线与所述另一条零轨迹线连接,在另一零轨迹线的末端继续分块跟踪;若不存在,则继续更新行人检测框。
于本发明的一实施例中,计算出下一时刻行人检测框的中心的计算公式为:C=∑(yi+di)×wi;其中,C表示下一时刻行人检测框的中心;i表示头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块的编号;yi表示头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块的更新分块在下一时刻行人检测框中的位置;di表示头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块与当前时刻的行人检测框的中心的相对位移;wi表示头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块对应的权重。
于本发明的一实施例中,所述预定偏移判定条件为:其中,zi表示头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块的更新分块与下一时刻行人检测框的中心的偏移,di表示头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块的与当前时刻的行人行人检测框的中心的相对位移。
于本发明的一实施例中,所述行人轨迹线处理方法还包括,当所有零散轨迹线通过生成的跟踪轨迹线两两连接,或仅与跟踪轨迹线完成连接后,将所述零散轨迹线的状态标注为完成状态,否则,标注为未完成状态。
于本发明的一实施例中,所述对所述行人轨迹线进行精细化处理,以获取待处理图像数据中真实的行人轨迹线的步骤包括:对所述初始行人轨迹线进行平滑处理;将平滑处理后的初始行人轨迹线进行切断;根据预设重连接判定条件,将切断后的初始行人轨迹线进行重新连接,以形成真实的行人轨迹线。
于本发明的一实施例中,所述对所述初始行人轨迹线进行平滑处理的步骤包括:将所述初始行人轨迹线上的坐标点作为控制点,来计算样条曲线,令该样条曲线替换所述初始行人轨迹线。
于本发明的一实施例中,所述将平滑处理后的初始行人轨迹线进行切断的步骤包括:设置一滑动窗口,并判断该样条曲线的长度是否大于预定窗口长度;若否,则不切断该样条曲线;若是,则执行下一步骤;截取长度为预定窗口长度的部分样条曲线,获取前二分之一部分样条曲线的平均运动方向,和后二分之一部分样条曲线的平均运动方向,且两者平均运动方向的夹角大于预定切断夹角,则将二分之一部分样条曲线所在点设定为切断点,形成切断线;滑动窗口向后滑动预定窗口长度,并返回判断滑动预定窗口长度后样条曲线的长度是否大于预定窗口长度。
于本发明的一实施例中,所述根据预设重连接判定条件,将切断后的初始行人轨迹线进行重新连接,以形成真实的行人轨迹线的步骤包括:将切断线设置为初始状态;
查找两条处于初始状态的切断线,判断处于初始状态的切断线是否满足所述预设重连接判定条件,若是,将切断线两两连接,形成真实的行人轨迹线;若否,则继续查找;
于本发明的一实施例中,所述预设重连接判定条件包括:时刻判定条件:先查找的切断线的末端时刻先于后查找的切断线的头端时刻;运动方向夹角判定条件:先查找的切断线的运动方向与后查找的切断线的运动方向小于预设运动方向夹角;若满足时刻判定条件和运动方向夹角判定条件,将后查找的切断线判定为候选连接线;距离判定条件:在所述候选连接线中,查找先查找的切断线的末端与候选连接线的头端的距离小于预设距离阈值的切断线。
本发明另一方面提供一种行人轨迹线处理***,包括:获取模块,用于获取待处理图像数据;检测模块,用于检测所述待处理图像数据,从所述待处理图像数据中提取行人检测框,并利用所述行人检测框中所包含的行人轨迹信息,生成零散轨迹线;轨迹线初始形成模块,用于分块跟踪所述行人检测框,以生成跟踪轨迹线,通过所述跟踪轨迹线连接所述零散轨迹线,以形成初始行人轨迹线;精细化模块,用于对所述初始行人轨迹线进行精细化处理,以获取待处理图像数据中真实的行人轨迹线。
本发明又一方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述行人轨迹线处理方法。
本发明最后一方面提供一种设备,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述设备执行所述行人轨迹线处理方法
如上所述,本发明的行人轨迹线处理方法/***、计算机可读存储介质及设备,具有以下有益效果:
本发明所述行人轨迹线处理方法/***、计算机可读存储介质及设备选择一次性处理一个时间段内的行人运动轨迹线,能有效提高行人运动轨迹线的稳定度,并对同时出现大量行人的场景保持很高的跟踪精度,获取高质量的行人运动轨迹线。
附图说明
图1A显示为本发明的行人轨迹线处理方法于一实施例中的流程示意图。
图1B显示为本发明的行人轨迹线处理方法中S12的流程示意图。
图1C显示为本发明的行人轨迹线处理方法中S13的流程示意图。
图1D显示为本发明的行人轨迹线处理方法中S14的流程示意图。
图2显示为本发明的行人检测框的分块示意图。
图3显示为本发明的零线轨迹线的连接示意图。
图4显示为本发明的未经过精细化处理的初始行人轨迹线的示意图。
图5显示为本发明的轨迹线切断示意图。
图6显示为本发明的经过精细化处理后的行人轨迹线示意图。
图7显示为本发明的行人轨迹线处理***于一实施例中的原理结构示意图。
元件标号说明
7 行人轨迹线处理***
71 获取模块
72 检测模块
73 轨迹线初始形成模块
74 精细化模块
S11~S14 步骤
S121~S123 步骤
S131~S136 步骤
S141~S143 步骤
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
实施例一
本实施例一种行人轨迹线处理方法,包括:
获取待处理图像数据;
检测所述待处理图像数据,从所述待处理图像数据中提取行人检测框,并利用所述行人检测框中所包含的行人轨迹信息,生成零散轨迹线;
分块跟踪所述行人检测框,以生成跟踪轨迹线,通过所述跟踪轨迹线连接所述零散轨迹线,以形成初始行人轨迹线;
对所述初始行人轨迹线进行精细化处理,以获取待处理图像数据中真实的行人轨迹线。
以下将结合图示对本实施例所提供的行人轨迹线处理方法进行详细描述。请参阅图1A,显示为行人轨迹线处理方法于一实施例中的流程示意图。如图1A所示,所述行人轨迹线处理方法包括以下几个步骤:
S11,获取待处理图像数据。在本实施例中,从图像数据采集设备(例如,摄像机)获取的视频流解码后的待处理图像数据。
具体地,本步骤包括在预定采集时间T内,从图像采集设备中获取图像数据IT,并计算所述图像数据IT的前景图像FGT,以获取包括所述图像数据和所述前景图像的待处理图像数据D={IT,FGT}。在本实施例中,采用单高斯模型计算所述图像数据IT的前景图像FGT。单高斯背景建模是一种常用的背景建模算法,即将图像中每一个像素点的颜色分布单独建立对应的单高斯分布模型。
S12,检测所述待处理图像数据,从所述待处理图像数据中提取行人检测框,并利用所述行人检测框中所包含的行人轨迹信息,生成零散轨迹线。
请参阅图1B,显示为S12的流程示意图。如图1B所示,所述S12包括以下几个步骤:
S121,对所述待处理图像数据中所有图像数据进行基于方向梯度直方图特征(HOG特征)的行人检测,以检测出所述图像数据的行人检测框。
具体地,所述S121包括以下内容:
第一,对所述图像数据进行颜色空间归一化处理,形成预处理图像数据;所述颜色空间归一化处理包括对图像数据进行图像灰度化和伽马校正。
在本实施例中,图像灰度化是指对于彩色图像,将RGB分量转化成灰度图像,其转化公式为:
Gray=0.3*R+0.59*G+0.11*B 公式(1)
伽马校正是指在图像照度不均匀的情况下,可以通过Gamma校正,将图像整体亮度提高或降低。在实际中可以采用两种不同的方式进行Gamma标准化,平方根、对数法。例如,平方根的办法,公式如下(其中γ=0.5):
Y(x,y)=I(x,y)γ 公式(2)
第二,获取预处理图像数据的梯度及其梯度方向。在本实施例中,分别在水平和垂直方向进行计算,梯度算子为:水平方向:[-1 0 1];垂直方向:[-1 0 1]T。
Gx(x,y)=I(x+1,y)-I(x-1,y) 公式(3)
Gy(x,y)=I(x,y+1)-I(x,y-1) 公式(4)
第三,将所述预处理图像数据划分成若干图像单元(ceil),统计每个图像单元的梯度直方图。
第四,将多个图像单元组成图像块(block),每个图像块内所有图像单元的特征向量串联起来,以获取该图像块的方向梯度直方图特征(HOG特征)。
第五,将所述图像数据内所有的方向梯度直方图特征组合,形成所述图像数据的特征向量,用以表征该图像数据。
第六,利用用支持向量机(SVM)分类器,对所述图像数据的特征向量进行判别,以检测出所述图像数据的行人检测框Pi;所述行人检测框包含行人轨迹信息,即当前检测的位置、置信度和/或预定采集时间T内的当前检测时刻t,其中,表示当前检测时刻t的行人检测框尺寸,表示当前检测时刻t的行人检测框的置信度。
S122,利用所述前景图像FGT的前景比例,对所述行人检测框进行筛选,以提取前景比例大于预定前景比例阈值的行人检测框。
S123,利用所述行人检测框中所包含的行人轨迹信息,将符合连接规则的行人检测框连接在一起,形成零散轨迹线。所述零散轨迹线中包含在预定采集时间内行人轨迹线信息,包括:k条零散轨迹线,每一条零散轨迹线在当前检测时刻的属性信息,该属性新消息包括第i条零散轨迹线在当前检测时刻的位置坐标,第i条零散轨迹线的置信度及当前检测的行人检测框尺寸其中,所述连接规则包括:
确保当前时刻的行人检测框与上一时刻的行人检测框的时差在三帧以内;
行人检测框前后运动方向变化不超过预定角度(于本实施例中,预定角度为60度);
每一时刻的行人检测框的置信度不低于置信度阈值(于本实施例中,置信度阈值为0.9)。所述连接规则特别地,记录每条零散轨迹线的头端和末端的位置 为第i零散轨迹线的头端坐标,为第i零散轨迹线的末端坐标。
S13,分块跟踪所述行人检测框,以生成跟踪轨迹线,通过所述跟踪轨迹线连接所述零散轨迹线,以形成初始行人轨迹线。请参阅图1C,显示为S13的流程示意图。如图1C所示,所述S13具体包括以下几个步骤:
S131,将当前时刻的行人检测框按照头部、身体部、左臂部、右臂部、腿部进行图像分块,形成头肩分块、左臂部分块、右臂部分块、身体部分块、腿部分块。其中,所述当前时刻的行人检测框中存在一条零散轨迹线的末端。请参阅图2,显示为行人检测框的分块示意图。如图2所示,将行人检测框R分块为头肩分块R1、左臂部分块R2、右臂部分块R3、身体部分块R4、腿部分块R5,行人检测框的中心C。
S132,所述头肩分块R1采用第一跟踪方式,所述左臂部分块R2、右臂部分块R3、身体部分块R4、腿部分块R5采用第二跟踪方式分别进行跟踪,以获取头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块的更新分块在下一时刻行人检测框中的位置Y={yi},i表示头肩分块R1、左臂部分块R2、右臂部分块R3、身体部分块R4、腿部分块R5的编号。在本实施例中,所述第一跟踪方式使用KCF跟踪算法,所述第二跟踪方式使用粒子滤波跟踪算法。在本实施例中,采用准确率和计算速率的折中选择,KCF跟踪算法在跟踪精度上优于粒子滤波跟踪算法,由于头肩分块的表观信息比较丰富,且不容易遮挡,所以采用KCF跟踪算法来跟踪头肩分块。在本实施例中,头肩分块R1、左臂部分块R2、右臂部分块R3、身体部分块R4、腿部分块R5于行人检测框R的相对位移di。
S133,根据头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块的更新分块在下一时刻行人检测框中的位置Y={yi},和头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块与当前时刻的行人检测框的中心的相对位移di,计算出下一时刻行人检测框的中心。在本实施例中,计算出下一时刻行人检测框的中心的计算公式为:
C=∑(yi+di)×wi 公式(7)
其中,C表示下一时刻行人检测框的中心;i表示头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块的编号;yi表示头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块的更新分块在下一时刻行人检测框中的位置;di表示头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块与当前时刻的行人检测框的中心的相对位移;wi表示头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块对应的权重。头肩分块的权重是其他分块的权重的两倍,且∑wi=1。
S134,计算每一更新分块与下一时刻行人检测框的中心的偏移。如图2所示,z1至z5表示头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块的更新分块与与下一时刻行人检测框的中心的偏移。
S135,若头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块与当前时刻的行人检测框的中心的偏移,分别与每一更新分块与下一时刻行人检测框的中心的偏移满足预定偏移判定条件,则将每一更新分块校正为下一次分块跟踪的初始位置。在本实施例中,所述预定偏移判定条件为:
其中,zi表示头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块的更新分块与下一时刻行人检测框的中心的偏移,di表示头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块的与当前时刻的行人行人检测框的中心的相对位移。
S136,循环执行以上步骤,每完成行人检测框的更新后,将更新后的行人检测框连接起来,形成跟踪轨迹线,同时在更新的行人检测框中搜索与该跟踪轨迹线的末端适配的另一条零轨迹线的头端,若存在,将该跟踪轨迹线与所述另一条零轨迹线连接,在另一零轨迹线的末端继续分块跟踪;若不存在,则继续更新行人检测框。在零散轨迹线连接的过程中,当所有零散轨迹线通过生成的跟踪轨迹线两两连接,或仅与跟踪轨迹线完成连接后,将所述零散轨迹线的状态标注为完成状态,当所有零散轨迹线都标注为完成状态时,结束轨迹线的连接阶段,形成初始行人轨迹线;否则,标注为未完成状态。请参与图3,显示为零线轨迹线的连接示意图。如图3所示,h1和h2表示行人检测框f1和f2中对应的行人。实线s1,s2,s3表示S12中生成的零线轨迹线,虚线j1,j2,j3表示S13中生成的跟踪轨迹线。其中,虚线的头端是虚线的末端,例如,q12和q31对应跟踪轨迹线j1的头端和末端,虚线j1将实现s1和s3,然后实线s3的末端q32又开始跟踪跟踪轨迹线j3。若零散轨迹线连接不上,便结束该连接过程。例如,跟踪轨迹线j2,j3,末端e2和e1。
请参阅图4,显示为未经过精细化处理的初始行人轨迹线的示意图。如图4所示,S1和S2为初始行人轨迹线,该初始行人轨迹线需要进行精细化处理。
S14,对所述初始行人轨迹线进行精细化处理,以获取待处理图像数据中真实的行人轨迹线。请参阅图1D,显示为S14的流程示意图,如图1D所示,所述S14具体包括以下几个步骤:
S141,对所述初始行人轨迹线进行平滑处理。
具体地,将所述初始行人轨迹线上的坐标点作为控制点,来计算B样条曲线,令该样条曲线替换所述初始行人轨迹线。若控制点的数量为m,则设定阶次n=ceil(m*0.8),用于获取低阶次样条曲线。通过样条曲线替换所述初始行人轨迹线,达到平滑初始行人轨迹线的目的。
S142,将平滑处理后的初始行人轨迹线进行切断。
具体地,所述将平滑处理后的初始行人轨迹线进行切断的步骤包括:
设置一滑动窗口,并判断该样条曲线的长度是否大于预定窗口长度w;若否,则不切断该样条曲线;若是,则执行下一步骤;
截取长度为预定窗口长度w的部分样条曲线,获取前二分之一部分样条曲线(前w/2,即W1)的平均运动方向,和后二分之一部分样条曲线(后w/2,即W2)的平均运动方向,且两者平均运动方向的夹角大于预定切断夹角(于本实施例中,所述预定切断夹角为60度),则将二分之一部分样条曲线所在点(w0点)设定为切断点,形成切断线。如图5显示的轨迹线切断。在本实施例中,平均运动方向的获取方法为在样条曲线上设连续两点为p1(x1,y1),p2(x2,y2),运动方向用向量V表示,点p1和p2的向量V12=(x2-x1,y2-y1),平均运动方向该向量的均值。
滑动窗口向后滑动预定窗口长度w,并返回判断滑动预定窗口长度后样条曲线的长度是否大于预定窗口长度。
在本实施例中,若一条初始行人轨迹线被切断后,切断线具有初始状态和保留状态。
S143,根据预设重连接判定条件,将切断后的初始行人轨迹线进行重新连接,以形成真实的行人轨迹线。在重新连接中,会对所有切断的轨迹线进行重连接判断,符合预设重连接判定条件的切断线会两两连接。本步骤完成对交错的行人轨迹线的优化处理,减少错误轨迹线生成的概率。同时本步骤通过有效地连接尚未被连接的轨迹线,保证行人运动轨迹的完整性。
具体地,将切断线设置为初始状态(能否解释一下初始状态的内容);在本实施例中,初始状态就是指未连接状态。
查找两条处于初始状态的切断线S1和S2,判断处于初始状态的切断线是否满足所述预设重连接判定条件,若是,将切断线两两连接,形成真实的行人轨迹线;若否,则继续查找。
所述预设重连接判定条件包括:
时刻判定条件:先查找的切断线的末端时刻先于后查找的切断线的头端时刻;
运动方向夹角判定条件:先查找的切断线的运动方向与后查找的切断线的运动方向小于预设运动方向夹角th_theta;
若满足时刻判定条件和运动方向夹角判定条件,将后查找的切断线判定为候选连接线;
距离判定条件:在所述候选连接线中,查找先查找的切断线的末端与候选连接线的头端的距离小于预设距离阈值th_dist的切断线。
具体地,判断处于初始状态的切断线是否满足所述预设重连接判定条件的过程为:
1)查找一条处于初始状态的切断线S1,若存在,执行2),若不存在,则执行5),即所有切断线两两匹配,且满足一切断线的末端时刻先于另一切断线的头端时刻,两个切断线头端距离小于预设距离阈值(即最小距离阈值th_dist)。在本实施例中,遍历所有切断线,若切断线的状态为初始状态,则表示成功查找到一条切断线S1。
2)查找另一条处于初始状态的切断线S2,满足先查找的切断线S1的末端时刻先于后查找的切断线S2的头端时刻;若满足,则进入下一步骤3),若不满足,则执行步骤4)。
3)计算切断线S1末端和S2头端的运行方向,判断两者是否满足运动方向夹角判定条件,若小于,则将切断线S2加入切断线S1的候选切断线,并记录S1末端和S2头端的距离d,并返回步骤2)。
4)若切断线S1有候选切断线S2,则查找S1末端和S2头端的距离d为最小距离阈值th_dist的切断线,若存在,则两两连接得到新的轨迹线S1’,并将新的轨迹线S1’的状态设置为初始状态,将切断线两两连接,形成真实的行人轨迹线,如图6所示,经过精细化处理后的行人轨迹线S1’和S2’;若不存在,则将候选切断线S2设置为保留状态,返回步骤1)。
本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述行人轨迹线处理方法。本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例所述的行人轨迹线处理方法和计算机可读存储介质选择一次性处理一个时间段内的行人运动轨迹线,能有效提高行人运动轨迹线的稳定度,并对同时出现大量行人的场景保持很高的跟踪精度,获取高质量的行人运动轨迹线。
实施例二
本实施例提供一种行人轨迹线处理***,包括:
获取模块,用于获取待处理图像数据;
检测模块,用于检测所述待处理图像数据,从所述待处理图像数据中提取行人检测框,并利用所述行人检测框中所包含的行人轨迹信息,生成零散轨迹线;
轨迹线初始形成模块,用于分块跟踪所述行人检测框,以生成跟踪轨迹线,通过所述跟踪轨迹线连接所述零散轨迹线,以形成初始行人轨迹线;
精细化模块,用于对所述初始行人轨迹线进行精细化处理,以获取待处理图像数据中真实的行人轨迹线。
以下将结合图示对本实施例所提供的行人轨迹线处理***进行详细描述。需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,x模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上x模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(ApplicationSpecificIntegratedCircuit,简称ASIC),或,一个或多个微处理器(digitalsingnalprocessor,简称DSP),或,一个或者多个现场可编程门阵列(FieldProgrammableGateArray,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessingUnit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上***(system-on-a-chip,简称SOC)的形式实现。
请参阅图7,显示为行人轨迹线处理***于一实施例中的原理结构示意图。如图7所示,所述行人轨迹线处理***7包括:获取模块71、检测模块72、轨迹线初始形成模块73及精细化模块74。
所述获取模块71获取待处理图像数据。在本实施例中,从图像数据采集设备(例如,摄像机)获取的视频流解码后的待处理图像数据。
具体地,所述获取模块71在预定采集时间T内,从图像采集设备中获取图像数据IT,并计算所述图像数据IT的前景图像FGT,以获取包括所述图像数据和所述前景图像的待处理图像数据D={IT,FGT}。
与所述获取模块71耦合的检测模块72检测所述待处理图像数据,从所述待处理图像数据中提取行人检测框,并利用所述行人检测框中所包含的行人轨迹信息,生成零散轨迹线。
具体地,所述检测模块72用于对所述待处理图像数据中所有图像数据进行基于方向梯度直方图特征(HOG特征)的行人检测,以检测出所述图像数据的行人检测框;利用所述前景图像FGT的前景比例,对所述行人检测框进行筛选,以提取前景比例大于预定前景比例阈值的行人检测框;利用所述行人检测框中所包含的行人轨迹信息,生成零散轨迹线。利用所述行人检测框,将符合连接规则的行人检测框连接在一起,形成零散轨迹线;所述零散轨迹线中包含在预定采集时间内行人轨迹线信息,包括:k条零散轨迹线,每一条零散轨迹线在当前检测时刻的属性信息,该属性新消息包括第i条零散轨迹线在当前检测时刻的位置坐标,第i条零散轨迹线的置信度及当前检测的行人检测框尺寸其中,所述连接规则包括:
确保当前时刻的行人检测框与上一时刻的行人检测框的时差在三帧以内;
行人检测框前后运动方向变化不超过预定角度(于本实施例中,预定角度为60度);
每一时刻的行人检测框的置信度不低于置信度阈值(于本实施例中,置信度阈值为0.9)。所述连接规则特别地,记录每条零散轨迹线的头端和末端的位置 为第i零散轨迹线的头端坐标,为第i零散轨迹线的末端坐标。
与所述获取模块71和检测模块72耦合的轨迹线初始形成模块73用于分块跟踪所述行人检测框,以生成跟踪轨迹线,通过所述跟踪轨迹线连接所述零散轨迹线,以形成初始行人轨迹线。
具体地,所述轨迹线初始形成模块73用于将当前时刻的行人检测框按照头部、身体部、左臂部、右臂部、腿部进行图像分块,形成头肩分块、左臂部分块、右臂部分块、身体部分块、腿部分块。其中,所述当前时刻的行人检测框中存在一条零散轨迹线的末端。所述头肩分块R1采用第一跟踪方式,所述左臂部分块R2、右臂部分块R3、身体部分块R4、腿部分块R5采用第二跟踪方式分别进行跟踪,以获取头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块的更新分块在下一时刻行人检测框中的位置Y={yi},i表示头肩分块、左臂部分块、右臂部分块、身体部分块、腿部分块的编号。在本实施例中,所述第一跟踪方式使用KCF跟踪算法,所述第二跟踪方式使用粒子滤波跟踪算法。在本实施例中,采用准确率和计算速率的折中选择,KCF跟踪算法在跟踪精度上优于粒子滤波跟踪算法,由于头肩分块的表观信息比较丰富,且不容易遮挡,所以采用KCF跟踪算法来跟踪头肩分块。在本实施例中,头肩分块、左臂部分块、右臂部分块、身体部分块、腿部分块于行人检测框的相对位移di。根据头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块的更新分块在下一时刻行人检测框中的位置Y={yi},和头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块与当前时刻的行人检测框的中心的相对位移di,计算出下一时刻行人检测框的中心。计算每一更新分块与下一时刻行人检测框的中心的偏移。若头肩分块、身体部分块、左臂部分块、右臂部分块、腿部分块与当前时刻的行人检测框的中心的偏移,分别与每一更新分块与下一时刻行人检测框的中心的偏移满足预定偏移判定条件,则将每一更新分块校正为下一次分块跟踪的初始位置。循环执行以上功能,每完成行人检测框的更新后,将更新后的行人检测框连接起来,形成跟踪轨迹线,同时在更新的行人检测框中搜索与该跟踪轨迹线的末端适配的另一条零轨迹线的头端,若存在,将该跟踪轨迹线与所述另一条零轨迹线连接,在另一零轨迹线的末端继续分块跟踪;若不存在,则继续更新行人检测框。在零散轨迹线连接的过程中,当所有零散轨迹线通过生成的跟踪轨迹线两两连接,或仅与跟踪轨迹线完成连接后,将所述零散轨迹线的状态标注为完成状态,当所有零散轨迹线都标注为完成状态时,结束轨迹线的连接阶段,形成初始行人轨迹线;否则,标注为未完成状态。
与所述轨迹线初始形成模块73耦合的精细化模块74用于对所述初始行人轨迹线进行精细化处理,以获取待处理图像数据中真实的行人轨迹线。
所述精细化模块74用于对所述初始行人轨迹线进行平滑处理。具体地,将所述初始行人轨迹线上的坐标点作为控制点,来计算B样条曲线,令该样条曲线替换所述初始行人轨迹线。若控制点的数量为m,则设定阶次n=ceil(m*0.8),用于获取低阶次样条曲线。通过样条曲线替换所述初始行人轨迹线,达到平滑初始行人轨迹线的目的。
所述精细化模块74用于将平滑处理后的初始行人轨迹线进行切断。具体地,所述精细化模块74设置一滑动窗口,并判断该样条曲线的长度是否大于预定窗口长度w;若否,则不切断该样条曲线;若是,截取长度为预定窗口长度w的部分样条曲线,获取前二分之一部分样条曲线(前w/2,即W1)的平均运动方向,和后二分之一部分样条曲线(后w/2,即W2)的平均运动方向,且两者平均运动方向的夹角大于预定切断夹角(于本实施例中,所述预定切断夹角为60度),则将二分之一部分样条曲线所在点(w0点)设定为切断点,形成切断线;滑动窗口向后滑动预定窗口长度w,并返回判断滑动预定窗口长度后样条曲线的长度是否大于预定窗口长度。在本实施例中,若一条初始行人轨迹线被切断后,切断线具有初始状态和保留状态。
所述精细化模块74还用于根据预设重连接判定条件,将切断后的初始行人轨迹线进行重新连接,以形成真实的行人轨迹线。在重新连接中,会对所有切断的轨迹线进行重连接判断,符合预设重连接判定条件的切断线会两两连接。本步骤完成对交错的行人轨迹线的优化处理,减少错误轨迹线生成的概率。同时本步骤通过有效地连接尚未被连接的轨迹线,保证行人运动轨迹的完整性。
具体地,所述查找两条精细化模块74处于初始状态的切断线S1和S2,判断处于初始状态的切断线是否满足所述预设重连接判定条件,若是,将切断线两两连接,形成真实的行人轨迹线;若否,则继续查找。
所述预设重连接判定条件包括:
时刻判定条件:先查找的切断线的末端时刻先于后查找的切断线的头端时刻;
运动方向夹角判定条件:先查找的切断线的运动方向与后查找的切断线的运动方向小于预设运动方向夹角th_theta;
若满足时刻判定条件和运动方向夹角判定条件,将后查找的切断线判定为候选连接线;
距离判定条件:在所述候选连接线中,查找先查找的切断线的末端与候选连接线的头端的距离小于预设距离阈值th_dist的切断线。
实施例三
本实施例提供一种设备,包括:处理器、存储器、收发器、通信接口和***总线;存储器和通信接口通过***总线与处理器和收发器连接并完成相互间的通信,存储器用于存储计算机程序,通信接口用于和其他设备进行通信,处理器和收发器用于运行计算机程序,使设备执行如上行人轨迹线处理方法的各个步骤。
上述提到的***总线可以是外设部件互连标准(PeripheralPomponentInterconnect,简称PCI)总线或扩展工业标准结构(ExtendedIndustryStandardArchitecture,简称EISA)总线等。该***总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于实现数据库访问装置与其他设备(例如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(RandomAccessMemory,简称RAM),也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
上述的处理器可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DigitalSignalProcessing,简称DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-ProgrammableGateArray,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
综上所述,本发明所述行人轨迹线处理方法/***、计算机可读存储介质及设备选择一次性处理一个时间段内的行人运动轨迹线,能有效提高行人运动轨迹线的稳定度,并对同时出现大量行人的场景保持很高的跟踪精度,获取高质量的行人运动轨迹线。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。