本发明属于计算机视觉技术领域,特别涉及了一种利用人头点定位和关节点信息的单相机多目标跟踪方法及系统。
背景技术:
近年来,随着人们对城市管理、数字化楼宇、智能场景分析等领域的重视程度的提高,监控相机的安装数量不断的增加且覆盖的范围越来越广。对于具有多个相机的庞大监控网络,短时间内就会产生海量的数据,而每个相机下存在着各种复杂多样的监控行人目标,如果依赖于人工对各个行人目标进行管理和跟踪,则会造成增加管理成本、跟踪难度高、追踪效率低下以及出错率高等问题。
因此如何高效、准确地解决多目标行人跟踪过程的漏检和关联失误、行人姿态变化对于行人间匹配困难、以及由于遮挡导致的跟踪过程中的行人互换,轨迹漂移等问题成为一个亟待解决的问题。
技术实现要素:
为了解决上述技术问题,本发明提供一种利用人头点定位和关节点信息的单相机多目标跟踪方法及系统,在单相机多目标跟踪过程中的目标检测和轨迹关联两方面对于多目标行人跟踪算法进行优化,有效的减少多目标行人跟踪过程中行人间互相遮挡导致的漏检误检现象,以及由于遮挡导致的跟踪过程中的行人互换,轨迹漂移等问题。
本发明技术解决方案为:一种利用人头点定位和关节点信息的单相机多目标跟踪方法,包括:
步骤s1:构建人头点定位深度学习网络模型;
步骤s2:根据人头点定位深度学习网络,对视频帧进行人头点定位,得到每帧图像中每个行人头部的位置,同时,通过目标检测算法得到行人包围框,利用人头点位置优化行人包围框,得到最终行人目标检测包围框结果;
步骤s3:根据行人目标检测包围框,提取行人表观特征和关节点信息;
步骤s4:根据行人的表观特征和关节点信息,对行人进行轨迹关联,获取行人轨迹信息。
本发明与现有技术相比,具有以下优点:
1、通过构建人头点定位深度学习网络,可以更好的处理行人未被完全遮挡的情况,在行人检测中有更好的灵活性,利用人头点的定位很好弥补由于部分遮挡导致的漏检和误筛除的问题。
2、利用卡尔曼滤波后的轨迹帧回归和关节点相似性度量的方法可以快速将行人历史轨迹与当前帧进行度量,引入关节点信息以使得轨迹关联更为准确。
3、本发明在轨迹关联部分,将关节点特征与表观特征结合,充分利用了关节点信息,避免了表观特征识别错误导致的误匹配。
附图说明
图1为本发明一种利用人头点定位和关节点信息的单相机多目标跟踪方法的总体流程图;
图2为本发明实施例中利用人头点定位和关节点信息的单相机多目标跟踪方法中步骤s1的流程图;
图3为本发明实施例中利用人头点定位和关节点信息的单相机多目标跟踪方法中步骤s11的流程图;
图4为本发明实施例中人头点坐标标签图;
图5为本发明实施例中利用人头点定位和关节点信息的单相机多目标跟踪方法中步骤s12的流程图;
图6为本发明实施例中利用人头点定位和关节点信息的单相机多目标跟踪方法中步骤s2的流程图。
图7为本发明实施例中行人目标检测框的筛选图;
图8为本发明实施例中生成行人目标检测框的流程图;
图9为本发明实施例中人头点定位以及行人目标检测框的效果图;
图10为本发明实施例中利用人头点定位和关节点信息的单相机多目标跟踪方法中步骤s3的流程图。
图11为本发明实施例中利用人头点定位和关节点信息的单相机多目标跟踪方法中的步骤s4的流程图;
图12为本发明实施例中利用人头点定位和关节点信息的单相机多目标跟踪方法的流程图。
具体实施方式
本发明提供了一种利用人头点定位和关节点信息的单相机多目标跟踪方法。在行人目标检测方面,可以更好的处理行人未被完全遮挡的情况,在行人检测中有更好的灵活性,利用人头点的定位很好弥补由于部分遮挡导致的漏检和误筛除的问题。本发明在轨迹关联部分,将关节点特征与表观特征结合,充分利用了关节点信息,利用卡尔曼滤波后的轨迹帧回归和关节点相似性度量的方法可以快速将行人前一帧轨迹与当前帧检测进行相似性度量,从而避免了表观特征识别错误导致的误匹配,使得轨迹关联更为准确。
为了使本发明的目的、技术方案及优点更加清楚,以下通过具体实施,并结合附图,对本发明进一步详细说明。
实施例
如图1所示,本发明实施例提供的一种利用人头点定位和关节点信息的单相机多目标跟踪方法,包括下述步骤:
步骤s1:构建人头点定位深度学习网络模型;
步骤s2:根据人头点定位深度学习网络,对视频帧进行人头点定位,得到每帧图像中每个行人头部的位置,同时,通过目标检测算法得到行人包围框,利用人头点位置优化行人包围框,得到最终行人目标检测包围框结果;
步骤s3:根据行人目标检测包围框,提取行人表观特征和关节点信息;
步骤s4:根据行人的表观特征和关节点信息,对行人进行轨迹关联,获取行人轨迹信息;
首先,构建人头点定位深度学习网络模型,利用训练数据对该模型进行训练。然后,输入视频帧至该模型,对帧中的行人头部进行识别,其输出为图片中行人的人头点定位坐标,根据人头点定位信息和通过目标检测得到的包围框信息,利用人头点位置优化行人包围框,得到最终行人目标检测包围框结果。再对该行人的目标检测框中的表观特征和人体关节信息进行提取,得到与该行人的表观特征和关节点组。最后利用表观特征和关节点信息,计算联合相似度,对行人进行轨迹关联,最终得出行人的轨迹信息。
如图2所示,在一个实施例中,上述步骤s1:构建人头点定位深度学习网络模型,包括:
步骤s11:训练数据预处理,生成标签;
步骤s12:构建人头点定位深度学习网络模型,所述人头点定位深度学习网络模型的输入为图片,输出为人头点位置坐标。
如图3所示,其中,上述步骤s11:训练数据预处理,生成标签,包括:
步骤s111:利用数据标注软件对输入图片中人头点进行标注,得到人头点坐标;
在本步骤中,采用公开的行人跟踪数据集motchallenge中的mot16作为输入图片进行训练,并使用labelme数据标注软件,对输入图片中人头点进行标注,得到人头点坐标。
步骤s112:将人头点坐标转化为与输入图片大小相同的坐标图,并对人头点坐标的区域进行局部扩张,生成人头点坐标标签图;
首先将人头点坐标转化为与输入图片大小相同的坐标图。由于经过标注软件标注出的人头点的坐标只是人头中心的一个像素点,训练的时候难以确定出人头点的位置,因此需要对人头点坐标的区域进行局部扩张,如图4所示,以人头点为中心,对其进行5*5的星状扩张,生成人头点坐标标签图。
步骤s113:通过高斯膨胀将所述人头点坐标标签图转化为密度图,通过密度图阈值筛选,生成注意力标签图。
将人头点坐标标签图利用高斯卷积进行滤波,转化为密度图,并通过密度图阈值筛选生成值为0或1的注意力标签图。
其中,注意力标签图可通过如下述公式(1)和公式(2)得到:
其中,公式(1)中
如图5所示,上述步骤s12:构建人头点定位深度学习网络模型,所述人头点定位深度学习网络模型的输入为图片,输出为人头点位置坐标,包括:
步骤s121:利用编码器解码器模型,提取所述图片的特征,将所述图片特征分为两个分支,分别通过反卷积还原为与所述图片尺寸相同的大小,分别得到特征图1和特征图2;
本步骤采用inception网络,构建编码器解码器模型,用于提取输入图片的特征,将该特征分为两个分支,分别通过反卷积还原为与输入图片尺寸相同的大小,上分支得到特征图1,作为注意力标签图,下分支得到特征图2,作为定位标签图。
步骤s122:将所述特征图1与步骤s113中所述注意力标签图进行二分类交叉熵损失训练;
本步骤通过上分支网络对输入图片中有人头点的区域赋予更多的权重,从而对注意力标签图进行训练。
步骤s123:将所述特征图2与步骤s121中所述特征图1相乘,再与步骤s112的所述人头点坐标标签图进行二分类交叉熵损失训练,输出为所述人头点位置坐标;
本步骤中,将特征图2与步骤s121中所述特征图1相乘的结果,与步骤s112的人头点坐标标签图进行二分类交叉熵损失训练,从而对定位图标签进行训练,最终得到人头点位置坐标。
上述步骤s122和步骤s123均采用二分类交叉熵损失进行训练,损失函数下述公式(3)所示:
其中,pi为该像素是人头点的概率,
步骤s124:重复步骤s121~s123,得到所述人头点定位深度学习网络模型。
重复步骤s121~s123,直到完成人头点定位深度学习网络模型的训练。
如图6所示,在一个实施例中,上述步骤s2:根据人头点定位深度学习网络,对视频帧进行人头点定位,得到每帧图像中每个行人头部的位置,同时,通过目标检测算法得到行人包围框,利用人头点位置优化行人包围框,得到最终行人目标检测包围框结果,包括:
步骤s21:根据目标检测算法,对图片进行行人目标检测,设置nms的筛选阈值和置信度阈值,得到初始的行人目标检测框;
在本步骤中,利用faster-rcnn算法对图片进行行人目标检测,检测过程中设置faster-rcnn实际检测阶段的nms阈值为0.3,置信度阈值为0.4,利用faster-rcnn算法粗略得到行人目标检测框。
步骤s22:将图片输入步骤s12中的所述人头点定位深度学习网络模型,得到人头点位置坐标;
将上述图片输入步骤s12中的所述人头点定位深度学习网络模型,得到人头点位置坐标。
步骤s23:对所述人头点位置坐标进行筛选以及合并;
首先,根据人头点位置坐标进行计算,将人头点间欧式距离小于3像素的点进行合并。然后,将所有检测出的行人目标检测框进行网格划分,水平划分为5等分,竖直划分为1:2:1的三份,当人头点出现在网格中水平最上网格的中间部分,如图7中x所示,则判定该人头点有效。如果一个人头点对应多个行人目标检测框,则选择与行人目标检测框中心位置最近的行人目标检测框进行关联。
步骤s24:提高包含所述人头点位置坐标的行人目标检测框的置信度阈值,根据softnms算法,对行人目标检测框进行筛选,得到包含行人的有效的行人目标检测框。
在本步骤中,选择包含人头点的有效的行人目标检测框,将其置信度提升0.3,若行人目标检测框信度大于1,则将其置信度值置为1。
利用softnms算法对行人目标检测框进行过滤,先选出置信度最大的行人目标检测框,而后计算其余每个行人目标检测框与该行人目标检测框的nms,如果超过阈值,则利用高斯函数降低该行人目标检测框的置信度,最后删除所有置信度低的行人目标检测框。最终得到通过人头点位置坐标进行优化后的目标检测结果。其中,softnms算法如下述公式(4):
其中,si表示行人目标检测框的置信度分数;m为当前得分最高的行人目标检测框;bi为待处理的行人目标检测框,d表示检测框集合,σ表示高斯函数的方差,用于控制分数缩小的比例;bi和m的iou越大,si的值就越小。
如图8所示,描述了步骤s2中的生成行人目标检测框的流程图。可将如图9左边的原始图片,经过步骤s2,对其中的3个人头点进行定位,并最终标识出其对应的如右边图片的3个行人目标检测框。
通过构建人头点定位深度学习网络,可以更好的处理行人未被完全遮挡的情况,在行人检测中有更好的灵活性,利用人头点的定位很好弥补由于部分遮挡导致的漏检和误筛除的问题。
如图10所示,在一个实施例中,上述步骤s3:根据行人目标检测包围框,提取行人表观特征和关节点信息,包括:
步骤s31:对行人目标检测包围框进行表观特征提取;
在本步骤中,在获得行人目标检测包围框后,利用行人重识别(reid)的网络模型提取该行人目标检测框的表观特征。所选取的reid网络是yifansun于2018年eccv提出的名为pcb的baseline网络,该网络训练阶段利用resnet作为特征提取的骨干网络,通过resnet卷积网络后,将特征进行水平分割,而后分别进行池化,再通过全连接层进行分类,在market数据集上其行人重识别指标rank1可以达到94左右的水平。本发明采用训练好的reid网络模型提取行人目标检测框的表观特征。
步骤s32:通过深度学习网络对行人检测包围框进行关节点检测,得到各个关节点的位置和置信度值,并筛选得出与所述行人目标检测框相关的关节点组,得到所述行人关节点信息。
利用步骤s31得到的行人目标检测框的表观特征,通过pifpaf关节点提取网络提取行人的17个关节点,包括脖子、鼻子,以及左右肩、肘、腕、膝、踝、胯、肩、眼睛、耳朵等,得到的17个关节点分别为p={x1,y1,c1……,x17,y17,c17},其中x,y分别代表关节点的横纵坐标,c代表的是关节点的置信度。对于置信度小于0.2的关节点直接舍弃,置为0。如果一个行人目标检测框中包含多组行人关节点,则计算出关节点重心,比较其与行人目标检测框中心的距离,选择与中心距离近的为对应该行人目标检测框的关节点组。
如图11所示,在一个实施例中,上述步骤s4:根据行人的表观特征和关节点信息,对行人进行轨迹关联,获取行人轨迹信息,包括:
步骤s41:利用步骤s2和步骤s3,对于当前帧进行检测,分别得到所述行人目标检测包围框、表观特征和行人关节点信息;
步骤s42:对前一帧的行人目标检测框进行卡尔曼滤波,得到其在当前帧的预测结果;
在本步骤中,对前一帧所有行人目标检测框进行卡尔曼滤波,卡尔曼滤波是一个递归评估器,通过上一个时间戳上的评估状态和当前测量状态就可以计算出当前的评估状态。对于卡尔曼滤波,新的最佳估计是基于原最佳估计和已知外部影响校正后得到的预测,而不需要更远的历史观察和历史评估。卡尔曼滤波表示如下述公式(5)和公式(6):
其中公式(5)中
经过卡尔曼滤波,得到每一个行人目标检测框中心点预测后的结果,其位置坐标为
步骤s43:将前一帧的预测结果作为当前帧感兴趣区域,计算检测的分类置信度;
将卡尔曼滤波预测的行人目标检测框结果
步骤s44:计算相邻两帧关节点之间的相似度,并与检测的分类置信度加权作为联合相似度;
对于行人目标,除了考虑步骤s43中得到的检测分类的置信度c外,鉴于在短时间间隔内行人不会有较大姿态变化,在检测置信度基础上,加上关节点在短时间段内的相似度进行度量,结合人体姿态语义的约束完成空间亲和力的度量。本发明使用关节点间的相似度的度量方法进行关节点的相似度计算,如下述公式(7)~公式(9)所示:
公式(7)和公式(8)中,p1,p2表示需要计算距离的两组关节点;ssoft(·)表示关节点的软相似度,由来自n对关节点的置信度分数得出;
将检测置信度c与关节点相似度spose(·)相加,作为联合相似度。
步骤s45:如果所述联合相似度大于等于预设的相似度阈值,则用上一帧的检测结果作为当前帧的检测的结果,利用nms算法进行轨迹关联和重叠框的筛除;
根据步骤s44得到的联合相似度值进行判断,如果联合相似度大于等于预设的相似度阈值,则直接用上一帧的检测的卡尔曼滤波预测结果,作为将当前帧的检测结果,并通过nms算法进行轨迹关联和重叠框的筛除。
步骤s46:当联合相似度小于预设的相似度阈值时,将当前帧的行人目标检测框中历史帧中的表观特征进行相似度计算,通过匈牙利算法进行轨迹关联。
对于联合相似度值小于预设的相似度阈值,通过将该行人目标检测框的特征与轨迹中所有特征进行余弦距离计算,如果特征距离超过阈值,说明该行人在之前的轨迹出现过,此时通过匈牙利算法进行轨迹关联。如果特征距离未超过阈值,说明该行人为新出现的,则在轨迹中新建一个行人id,存储该行人的轨迹信息。如果历史轨迹帧的特征长时间未与新的检测相匹配,认为该行人在相机下已经消失,删除掉其轨迹。
如图12所示,表示了本发明利用人头点定位和关节点信息的单相机多目标跟踪方法详细流程图。
本发明利用卡尔曼滤波后的轨迹帧回归和关节点相似性度量的方法可以快速将行人历史轨迹与当前帧进行度量,引入关节点信息以使得轨迹关联更为准确。
提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。
1.一种利用人头点定位和关节点信息的单相机多目标跟踪方法,其特征在于,包括:
步骤s1:构建人头点定位深度学习网络模型;
步骤s2:根据人头点定位深度学习网络,对视频帧进行人头点定位,得到每帧图像中每个行人头部的位置,同时,通过目标检测算法得到行人包围框,利用人头点位置优化行人包围框,得到最终行人目标检测包围框结果;
步骤s3:根据行人目标检测包围框,提取行人表观特征和关节点信息;
步骤s4:根据行人的表观特征和关节点信息,对行人进行轨迹关联,获取行人轨迹信息。
2.根据权利要求1所述的利用人头点定位和关节点信息的单相机多目标跟踪方法,其特征在于,所述步骤s1:构建人头点定位深度学习网络模型,包括:
步骤s11:训练数据预处理,生成标签;
步骤s12:构建人头点定位深度学习网络模型,所述人头点定位深度学习网络模型的输入为图片,输出为人头点位置坐标。
3.根据权利要求2所述的利用人头点定位和关节点信息的单相机多目标跟踪方法,其特征在于,所述步骤s11:训练数据预处理,生成标签,包括:
步骤s111:利用数据标注软件对输入图片中人头点进行标注,得到人头点坐标;
步骤s112:将所述人头点坐标转化为与所述输入图片大小相同的坐标图,并对所述人头点坐标的区域进行局部扩张,生成人头点坐标标签图;
步骤s113:通过高斯膨胀将所述人头点坐标标签图转化为密度图,通过密度图阈值筛选,生成注意力标签图。
4.根据权利要求2所述的利用人头点定位和关节点信息的单相机多目标跟踪方法,其特征在于,所述步骤s12,构建人头点定位深度学习网络模型,所述人头点定位深度学习网络模型的输入为图片,输出为人头点位置坐标,包括:
步骤s121:利用编码器解码器模型,提取所述图片的特征,将所述图片特征分为两个分支,分别通过反卷积还原为与所述图片尺寸相同的大小,分别得到特征图1和特征图2;
步骤s122:将所述特征图1与步骤s113中所述注意力标签图进行二分类交叉熵损失训练;
步骤s123:将所述特征图2与步骤s121中所述特征图1相乘,再与步骤s112的所述人头点坐标标签图进行二分类交叉熵损失训练,输出为所述人头点位置坐标;
步骤s124:重复步骤s121~s123,得到所述人头点定位深度学习网络模型。
5.根据权利要求1所述的利用人头点定位和关节点信息的单相机多目标跟踪方法,其特征在于,所述步骤s2:根据人头点定位深度学习网络,对视频帧进行人头点定位,得到每帧图像中每个行人头部的位置,同时,通过目标检测算法得到行人包围框,利用人头点位置优化行人包围框,得到最终行人目标检测包围框结果,包括:
步骤s21:根据目标检测算法,对视频帧图片进行行人目标检测,设置非极大值抑制nms的筛选阈值,得到初始的行人目标检测框;
步骤s22:将每张视频帧图片输入步骤s12中的所述人头点定位深度学习网络模型,得到人头点位置坐标;
步骤s23:对所述人头点位置坐标进行筛选以及合并;
步骤s24:提高包含所述人头点位置坐标的所述行人目标检测框的所述置信度阈值,根据softnms算法,对所述行人目标检测框进行筛选,得到包含行人的有效的所述行人目标检测框。
6.根据权利要求1所述的利用人头点定位和关节点信息的单相机多目标跟踪方法,其特征在于,所述步骤s3:根据行人目标检测包围框,提取行人表观特征和关节点信息,包括:
步骤s31:对所述行人目标检测包围框进行表观特征提取;
步骤s32:通过深度学习网络对行人检测包围框进行关节点检测,得到各个关节点的位置和置信度值,并筛选得出与所述行人目标检测框相关的关节点组,得到所述行人关节点信息。
7.根据权利要求1所述的利用人头点定位和关节点信息的单相机多目标跟踪方法,其特征在于,所述步骤s4:根据行人的表观特征和关节点信息,对行人进行轨迹关联,包括:
步骤s41:利用步骤s2和步骤s3,对于当前帧进行检测,分别得到所述行人目标检测包围框、表观特征和行人关节点信息;
步骤s42:对前一帧的所述行人目标检测框进行卡尔曼滤波,得到其在当前帧的预测结果;
步骤s43:将前一帧的所述预测结果作为当前帧感兴趣区域,计算该预测结果的分类置信度;
步骤s44:计算相邻两帧关节点之间的相似度,并与所述检测的分类置信度加权作为联合相似度;
步骤s45:如果所述联合相似度大于等于预设的相似度阈值,则用上一帧的预测结果作为当前帧的检测的结果,利用nms算法进行轨迹关联和重叠框的筛除;
步骤s46:对于所述联合相似度小于预设的相似度阈值,则将当前帧的所述行人目标检测框中所有表观特征进行相似度计算,通过匈牙利算法进行轨迹关联。
技术总结