前言:
零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、 计算机视觉、机器学习、神经网络以及人工智能相关知识,成为学习学习和学业的先行者!
【优惠信息】 • 新专栏订阅前200名享9.9元优惠 • 订阅量破200后价格上涨至19.9元 • 订阅本专栏可免费加入粉丝福利群,享受:
- 所有问题解答
-专属福利领取欢迎大家订阅专栏:零基础学Python:Python从0到100最新最全教程!
多人姿态跟踪可以分为自下而上和自上而下的方法。自下而上的方法先估计每一帧的所有关节,然后通过时空优化的方式关联每个人的关节,无需检测人体边界框。而自上而下的方法首先检测每个人的边界框,然后估计姿态。
一、背景介绍
由于近年来目标检测器的进步,自上而下的流程已经取得了巨大进步,并已成为主流。然而,遮挡和快速运动是阻碍这些方法完美的两个障碍。自上而下的方法根据由姿态估计器预测的热图过滤关键点,这些估计器针对图像而非视频帧进行优化。估计器受到运动模糊的影响,因此很难产生准确的关节点。此外,相邻人员之间的遮挡可能会误导估计器做出错误的预测。
二、算法介绍
在本文中,通过一种新颖的置信度估计和时间校正策略来解决这两个问题。具体来说,实验设计了一个置信度网络来测量关键点的可见性,以及热图中的位置概率。然后,实验构建了一个姿态跟踪流程来执行多人姿态跟踪,包括三个模块:Human Association模块、ID-retrieve模块和Bbox-revision模块。下面我将详细介绍这两个部分。
1.关键点置信度网络(KCN)
目的:KCN旨在提高姿态估计中关键点的检测准确性,特别是在关节被遮挡的情况下。
KCN由关键点预测模块和关键点可用性模块组成。[F1, F2, F3, F4]为与交换单元多尺度融合后的高分辨率表示。同时包括用于提取特征的主干和用于姿态估计的两个并行分支:用于预测关键点位置和位置概率的关键点预测模块(KPM)和用于估计关键点可用概率的关键点可用模块(KAM)。
组成:
- 特征提取器(Backbone Network):使用HRNet作为特征提取的基础,用于提取输入帧的特征。
- 关键点预测模块(Keypoint Prediction Module, KPM):通过反卷积层生成关键点的热图,预测关键点的位置以及位置概率。关键点预测模块由三个3×3反卷积层组成,生成K张热图,其中K为每个人的关键点数量。
- 关键点可用性模块(Keypoint Availability Module, KAM):评估每个关键点的可用性概率,即关键点是否被遮挡。关键点可用性模块由瓶颈层[57]和K个分类器头组成,以获得关键点可用性概率pavl。瓶颈层由大小分别为1 × 1、3 × 3和1 × 1的三个卷积层组成
关键点置信度计算:
结合关键点的位置概率(ploc
)和可用性概率(ploc
),计算出关键点的置信度(pconf
):
pconfi=pavli×ploci
2.姿态跟踪流程(PTP)
目的:PTP用于在视频帧之间保持人物姿态的连贯性,提高跟踪的准确性。
在跟踪阶段,我们首先使用Human Association模块来匹配人。可能发生两种情况:1)一个人在之前的画面中消失了,但在当前的画面中又出现了;2)由于遮挡或运动过快,检测器可能无法检测到人。为了解决以上两个难题,我们提出了ID-retrieve模块和Bbox-revision模块。
ID-retrieve模块使用人员重新识别技术检索丢失的id,使用Bbox-revision模块生成检测器在当前帧中遗漏的边界框。每个模块的详细信息如下所示。
在第一阶段,使用关键点置信网络检测人物并估计他们的姿势。然后,在跟踪阶段,(1)执行帧与帧之间的身份关联,(2)从前一帧生成不匹配轨迹的边界框。最后,(3)标识当前帧中在前一帧中没有匹配ID但在历史中可能匹配的人。
组成:
- 人体关联模块(Human Association Module):使用匈牙利算法解决加权二分图匹配问题,为每个人分配一个唯一的标识符,以关联前后帧中的人物。
- 边界框修正模块(Bbox-revision Module):用于修正当前帧中由于遮挡或快速运动而漏检的人物。通过光流估计上一帧中人物的位置,并使用关键点置信度进行过滤。
- ID检索模块(ID-retrieve Module):当人物在当前帧中没有匹配到ID,但可能在历史帧中有匹配时,该模块会通过特征匹配技术检索丢失的ID。
3.算法流程
- 检测与特征提取:使用HTC检测器检测帧中的所有人,并提取特征。
- 关键点置信度估计:通过KCN预测每个人物的关键点位置和置信度。
- 姿态跟踪:
- 使用人体关联模块在前后帧之间关联人物。
- 使用边界框修正模块修正漏检的人物。
- 使用ID检索模块检索丢失的人物ID。
- 性能评估:使用mAP(mean Average Precision)和MOTA(Multiple Object Tracking Accuracy)等指标评估姿态估计和跟踪的性能。
三、实验验证
1.实验评估
评估所提出的方法在PoseTrack上,这是一个用于视频中多人姿态估计和姿态跟踪的大规模基准。PoseTrack有2017年和2018年的版本,每个数据集都有一个公开的训练集和验证集,以及一个用于在保留的测试集上进行基准测试的评估服务器。
评估指标:
- mAP(mean Average Precision):用于评估多人姿态估计的准确性。
- MOTA(Multiple Object Tracking Accuracy):用于评估跟踪器在保持轨迹方面的性能,包括假阳性、漏检和身份交换的性能。
2.具体操作
- 人体检测:使用HTC检测器检测帧中的所有人,并提取裁剪区域作为KCN的输入。
- 预训练模型:使用在COCO数据集上预训练的模型进行人体检测,没有在PoseTrack数据集上进行额外的微调。
- 非极大值抑制(NMS):在人体检测中,将IoU(交并比)替换为OKS(Object Keypoint Similarity)度量,并设置阈值为0.6。
3.训练过程
-
KCN训练:
- 首先训练关键点预测模块(KPM)。
- 然后附加关键点置信度模块(KAM)并一起微调。
- 使用COCO数据集的训练集和验证集以及PoseTrack数据集的训练集进行模型训练。
- 对于关键点置信度模块的训练,进行了20个epoch的微调。
-
ID检索模块训练:
- 构建了一个基于PoseTrack 2018的数据集,包含119656张图像和4613个人标签。
- 使用欧几里得距离度量两个特征之间的相似性,当相似性小于阈值(例如100)时,认为是同一个人。
4.消融实验
置信度阈值分析:分析了关键点置信度阈值对最终性能的影响,在置信阈值范围为0.25至0.55的情况下,实验分别比较了KCN与PoseTrack 2017和PoseTrack 2018上的基线的多人姿态跟踪性能变化:
将结果可视化成曲线:
关键点置信度网络(KCN)分析:评估了KCN在PoseTrack数据集验证集上的有效性,并与基线方法进行了比较:
为了进一步证明KCN的有效性,实验统计了PoseTrack 2018数据集上错误检测和缺失检测的关键点数量,与基线方法相比,KCN显示错误检测减少11.6%,缺失检测减少9.0%,总减少9.9%。这是因为基线方法只使用了位置概率,在过滤关键点时可能会出现故障。例如,模糊的关键点可能会有很高的定位概率,因为它们被错误地标记为其他人,因此它们将被错误地检测到;在帧模糊的情况下,关键点的位置概率很低,因此会被错误地过滤,从而导致漏检。
姿态跟踪流程(PTP)分析:使用不同的检测器(HTC和YOLOv5)评估了PTP中各个组件对最终性能的贡献:
ID-retrieve模块并没有提高多人姿态估计的性能。而Bbox-revision模块则有效地提高了多人姿态估计和姿态跟踪任务的性能,并且id检索模块提高了MOTA中两个检测器的性能。同时,在mAP和MOTA上,使用HTC探测器的Bboxrevision带来的改进都明显超过使用YOLOv5探测器。原因可能是YOLOv5探测器比HTC探测器有更多的缺失检测。
四、实验结果与总结
将提出的方法与现有的多人姿态跟踪方法在PoseTrack验证集和测试集上进行了比较。该种方法优于其他方法,并在PoseTrack 2018验证集上取得了最佳性能,在PoseTrack 2017上,也取得了很好的姿态跟踪性能。
总结
本文提出了一种改进的多人姿态跟踪方法,通过关键点置信度网络(KCN)和姿态跟踪流程(PTP),有效解决了遮挡和快速运动带来的挑战。KCN提升了关键点检测的准确性,而PTP通过人体关联、ID检索和边界框修正增强了跟踪连贯性。实验结果在PoseTrack数据集上显示了该方法在多人姿态估计和跟踪方面的优越性能,特别是在处理遮挡和快速运动时,消融实验进一步验证了所提方法各组件的有效性。总体而言,该方法为复杂场景下的多人姿态跟踪提供了一种有效的解决方案。