点击上方“PaperEveryday”,选择加"星标"或“置顶”
顶刊论文解读,第一时间分享
题目:BPJDet: Extended Object Representation for Generic Body-Part Joint DetectionBPJDet:用于通用身体部位关节检测的扩展对象表示
作者:H. Zhou; F. Jiang; J. Si; Y. Ding; H. Lu
源码链接: https://hnuzhy.github.io/projects/BPJDet
摘要
人体及其部位的检测一直是计算机视觉领域的研究热点。然而,大多数基于CNN的检测器独立训练,使得检测到的部位与人体关联困难。在本文中,我们专注于人体及其部位的联合检测。具体来说,我们提出了一种新颖的扩展对象表示方法,集成了部位的中心偏移量,并构建了一个端到端的通用人体部位联合检测器(BPJDet)。这样,部位的关联被整齐地嵌入到包含语义和几何内容的统一表示中。因此,我们可以优化多损失函数,协同处理多任务。此外,这种表示适用于基于锚点和无锚点的检测器。BPJDet不会产生错误倾向的后匹配问题,并且在速度和精度之间保持了更好的平衡。此外,BPJDet可以推广到检测人类或四足动物的个别部位或部位。为了验证BPJDet的优越性,我们在人体部位(CityPersons、CrowdHuman 和 BodyHands)和部位(COCOHumanParts 和 Animals5C)的数据集上进行了实验。在保持高检测精度的同时,BPJDet 在所有数据集上都实现了最先进的关联性能。此外,我们展示了高级部位关联能力通过提高两个代表性下游应用的性能带来的好处:准确的人群头部检测和手部接触估计。
关键词
部位关联 (Body-part association)
部位联合检测 (body-part joint detection)
手部接触估计 (hand contact estimation)
头部检测 (head detection)
对象表示 (object representation)
I. 引言
人体检测[1][2][3][4][5]是计算机视觉领域长期研究的热点。在任意场景中准确快速地检测到人体可以支持许多下游视觉任务,例如行人重识别(ReID)[6][7]、行人跟踪[8][9][10]和人体姿态估计[11][12]。同样,检测身体部位如面部[13][14]、头部[15][16]和手部[17][18]也同样重要,并已被广泛研究。它们可能作为特定任务的先决条件,如面部识别[19]、人群计数[20][21]和手部姿态估计[22]。尽管对人体及其相关部位的独立检测已有显著改进,但由于深度CNN基础的通用目标检测器(例如,Faster R-CNN[23]、FPN[24]、RetinaNet[25]和YOLO[26])的突破以及大规模高质量数据集(例如,COCO[27]、CityPersons[28]和CrowdHuman[29])的构建,更具挑战性的人体及其部位的联合检测问题较少被解决,但却很有意义。作为证明,最近我们可以发现许多与人体相关的应用挖掘了身体部位的联系效应,包括机器人遥控[30]、人员监控[31][32]、鲁棒人员ReID[33][34]、人体解析[35][36][37]、手部相关物体接触[38][39][40][41][42]、人体-物体交互(HOI)[43][44][45][46]、基于部位的3D人体模型[47][48][49]和人体姿态估计[50][51][52][53]。
在本文中,我们研究了身体部位联合检测任务。身体部位可以是面部、头部、手部或如图1所示的任意组合。我们的主要目标是在确保检测精度的前提下提高身体部位关联的准确性。在我们之前,一些文献已经尝试用两个独立的阶段解决联合身体和部位检测任务。DA-RCNN[54]、PedHunter[4]和JointDet[55]专注于通过假设人头可以为被遮挡的身体提供补充空间信息来联合检测身体和头部。BFJDet[56]专注于类似的身体-面部联合检测任务,这更加困难,因为身体和面部并不总是一一对应。BodyHands[18]和Zhou等人[17]解决的问题是检测手部并找到相应人体的位置。与只有一个身体部位不同,DID-Net[57]通过构建HumanParts数据集,考虑到身体与其两个部位(手和面部)之间的固有相关性。Hier R-CNN[58]基于COCO[27]扩展HumanParts到COCOHumanParts,并定义了多达六个身体部位。然而,如图1所示,两阶段方法使用显式策略通过利用启发式后匹配规则或学习分支关联网络来建模身体部位关系。与它们不同,我们提出了一种新颖的单阶段人体部位联合检测器(BPJDet),它能够在统一框架中联合检测和关联身体与一个或多个部位。
我们提出的BPJDet的关联能力主要依赖于我们精心设计的扩展对象表示(见图4),它可以无损地应用于像YOLO系列[26][59][60][61][62][63][64]这样的单阶段锚点基础或无锚点检测器。除了传统对象表示中包含的边界框、置信度和目标性,我们的扩展增加了身体部位的位置偏移量。中心偏移回归在现代单阶段对象检测器[65][66]和人体姿态估计器[67][68][69][70]中很流行。这个简单而高效的创新至少有三个优点。(1) 身体部位的关系学习可以从一般检测器的训练中受益,无需额外的关联子网络。(2) 最终预测自然地暗示了检测到的身体边界框及其相关联的部位,避免了容易出错和繁琐的关联后处理。(3) 这种通用表示使我们能够联合检测任意身体部位或部位,如面部和手部,而无需进行重大修改。在实验中,我们在包括CityPersons[28]、CrowdHuman[29]、BodyHands[18]和COCOHumanParts[58]的多个公共数据集上进行了广泛的测试,用于人类,以及为四足动物构建的数据集Animals5C(从AnimalPose[71]和AP-10K[72]构建)来验证我们方法的优越性。为了进一步反映我们先进的BPJDet的潜在价值,我们已经将其应用于两个密切相关的任务:准确的拥挤人群头部检测和手部接触估计。
总结来说,我们主要有以下五个贡献:
我们提出了一种新颖的端到端可训练的人体部位联合检测器(BPJDet),通过扩展身体部位偏移量的经典对象表示。
我们通过设计合适的多任务损失函数,使用锚点基础或无锚点检测器,揭示了联合训练边界框和偏移量的可行性和便捷性。
我们验证了BPJDet是一个统一的、通用的框架,可以支持人体和某些四足动物的身体与一个或多个身体部位的联合检测。
我们在四个公共基准测试中实现了最先进的身体部位关联性能,同时保持了身体和部位的高检测精度。
我们展示了BPJDet在两个下游任务中的显著好处,即通过建立我们提出的更强大的身体部位关联来提升性能。
为了激发未来对通用身体部位联合检测和关联的研究和应用,我们开源了BPJDet的实现。在这项工作中,我们对早期会议论文[73]进行了几个主要扩展:
6. 在第I节和第II节中,对与身体部位联合检测任务及其下游应用相关的工作进行了更深入的介绍。
7. 在第III-A节和第III-B节中,对提出的扩展对象表示的灵感和类似变体进行了更详细的讨论。
9. 正如图3和算法1所示,更新了联合解码算法的总体程序,没有限制身体部位的数量和类别。
10. 在第IV-E节中,通过使用无锚点检测器对BPJDet进行了无缝修改,并且在第IV-F节中,通过进一步扩展对象表示以支持更多任务的新版本BPJDetPlus。
11. 在第V-C3节和第V-C4节中,分别在CrowdHuman和COCOHumanParts上进行了人体头部和身体部位联合检测的人体实验,并在第V-C5节中为五个四足动物的身体部位联合检测构建了新的Animals5C。还报告了更多消融和无锚点BPJDet的实验结果。
12. 在第V-D1节和第V-D2节中,包括准确的拥挤人群头部检测和手部接触估计在内的两个下游应用,分别解释了使用先进的身体头部和身体手部关联能力的好处。
III. 预备工作和动机
在本节中,我们介绍并讨论了大量激励我们通过提出扩展的对象表示来联合检测人体及其部位的工作。
A. 对象表示法
大多数现代的对象检测器可分为三类:基于框的[23][24][25][26][61],使用预定义的锚点;基于点的[63][64][65][66][82][83][84],无需锚框;基于查询的[76][78][79][80][85],用一组查询表示对象。基于框的检测器在很大程度上依赖于手工制定的锚点,包括数量、大小和纵横比等参数。它们的对象表示是稀缺的,并且难以扩展。而基于点的检测器直接使用关键点或中心点回归来预测对象,无需锚框。这种机制可以消除锚点超参数的微调,以较低的计算成本实现与基于锚点的检测器相似的性能,并保持更好的泛化能力。最后,基于查询的DETRs放弃了传统的对象表示,并通过将检测训练流程简化为一组预测问题来简化检测训练流程。然而,它们隐式的编码器-解码器设计并不符合我们扩展表示的概念。相反,我们通过探索基于框(基于锚点)和基于点(无锚点)的检测器,提出了一种新颖的扩展对象表示。
在我们之前,一些文献已经尝试扩展基于点的对象表示,尤其是对于与对象检测任务有本质重叠的人体姿态估计。例如,CenterNet[65]使用基于热图的中心点来模拟对象,并将人体姿态巧妙地表示为中心点的2K维属性。同样,FCPose[69]采用了单阶段无锚点FCOS[66],并提出了动态滤波器来通过预测关键点热图和回归偏移量来处理人员检测。其他单阶段姿态估计器如SPM[68]、AdaptivePose[70]和YOLO-Pose[86]也学习回归关键点作为一系列关节偏移。最近,ED-Pose[87]提出了一个显式的框检测框架,它基于DN-DETR[85]统一了全局人体级别和局部关键点级别之间的上下文学习。它重新考虑了人体姿态估计任务作为两个显式的框检测过程,具有统一的表示和回归监督,这与我们的联合身体(全局)和部位(局部)检测设计非常相似。
B. 身体部位关联
目前,大多数身体部位联合检测方法[18][55][56][57][58]都是基于两个独立的阶段,包括检测和后匹配。后匹配的身体部位关联的固有缺点通常是不可避免的。例如,一旦一个检测到的身体部位的真实主体未被检测到或被错误地框起来,将这个部位错误地分配到它所落入的某个人的边界框中,即使这个错误非常明显或不合理,也将是一个高概率事件。在第V-C节中,我们给出了一些图8中的body-hand和图9中的身体部位的常见失败案例,以明确反映它们的缺陷。为了缓解这个问题,我们现在至少有三种最初为人体姿态估计设计的策略来完成单阶段身体部位关联。它们是(1) CenterNet[65]和FCOS[66]中的中心偏移回归,(2) OpenPose[53][67]和OpenPifPaf[52]中的部件亲和场,以及(3) SPM[68]中的分层偏移回归。我们在图2中说明了它们的差异。这些相关方法极大地启发了我们的工作。我们应用了第一种直观但仍然足够有效的中心偏移回归策略,以验证将这种单阶段关联扩展到传统对象表示的合意性。
IV. 我们的方法
A. 扩展的对象表示
在提出的BPJDet中,我们训练了一个密集的单阶段基于锚点的检测器,直接预测一组对象集合 ,它同时包含人体集合 和身体部位集合 。一个典型的扩展对象预测 是由边界框 和相应的中心点偏移 连接而成的。它使用紧凑的边界框 定位一个对象,其中坐标 ( ) 是中心位置, 和 分别是 的宽度和高度。它还记录了身体部位的中心点或附属身体的中心点相对于每个 的相对偏移 。这里, 是身体部位的数量。考虑到身体部位可能是一个或多个组件(例如,两只手 k=2,COCOHumanParts 中 k=6),我们允许 与动态2D偏移兼容。 和 分别是预测的对象性和分类分数。对于这些回归的偏移,我们将在第四节中解释如何将它们解码以融合检测到的身体部位集合 ,以进行身体部位关联。直观地说,我们可以从这种扩展表示中受益匪浅。一方面,适当大的身体边界框 具有其身体部位 偏移回归的强烈局部特征和弱全局特征(例如周围背景和解剖位置)。这使得网络能够学习它们之间的固有关系。另一方面,与训练多个子网络或阶段的方法 [18], [55], [56], [58] 相比,混合 和 进行同步学习可以在 BPJDet 中直接利用,无需复杂的后处理。通过设计一个使用共享头部联合预测 和 的单阶段网络,我们的方法可以在训练和推理期间以较小的计算负担实现高精度。B. 整体网络架构
其中 φ 是限制模型预测在 (0,1) 范围内的 sigmoid 函数。同样,这种检测策略可以扩展到身体部位的偏移。身体部位的中间偏移 是在网格坐标中预测的,相对于网格单元格原点 (x, y) 使用:通过这种方式, 和 分别被限制在 和 的范围内。为了学习 和 ,在网格空间中应用了损失。b 和 d 的样本目标如图 4 所示。C. 多损失函数
对于一组预测的网格 ,我们首先根据第四节 B 节中介绍的格式构建目标网格集合 G。然后,我们主要计算以下四个损失分量:对于边界框回归损失 ,我们采用四个网格 上的完整交并比 (CIoU)。在对象性损失 和分类损失 中,BCE 是二元交叉熵。 中的乘数 o 用于惩罚未击中目标网格单元格的候选项 (o=0),并鼓励接近目标锚点真实值的候选项 (o=1)。权重 是 YOLOv5 中不同网格级别的平衡权重。对于身体部位偏移损失 ,我们使用均方误差 (MSE) 来衡量偏移输出 和归一化目标 。在此之前,我们应用了一个过滤器 ,使用身体部位的可见性标签来移除 中的假阳性偏移预测。最后,我们计算总训练损失 如下:D. 关联解码
在推理中,我们处理预测的对象集合 以获得最终结果。首先,我们应用传统的非极大值抑制 (NMS) 来过滤身体和部位对象的假阳性和冗余边界框:其中 和 分别是对象置信度和 IoU 重叠的阈值。考虑到不同的识别难度和重叠水平,我们为过滤身体和部位框定义了不同的阈值 和 。然后,我们通过以下转换重新调整 和 中的 和 以获得真实的 和 :其中 和 是从网格单元格中心的偏移量。标量 s 将框和偏移的下采样大小映射回原始图像形状。最后,我们通过融合其回归中心点偏移 ( ) 和剩余的候选部位对象 来更新 中每个剩余身体对象的相关联的身体部位。具体来说,我们搜索每个部位对象的框 ,找到其最近的身体偏移 属于身体对象。具有较大内部 IoU ( ) 与身体框的身体部位框将被选中。这里的内部 IoU 表示较小的身体部位边界框上的交并比而不是身体部位和人体较大的并集。IoU 定义如下:我们这里自然假设较小的身体部位框应该完全在其关联的较大的人体框内,如果使用地面真实标签。在预测阶段,检测到的框并不总是紧密地围绕对象。它可能太大或太小。我们不能简单地设置 。相反,一个非常小的 显然会导致许多错误的身体部位配对候选项。因此,我们应该分配一个合理的 以在匹配对的数量和质量之间保持平衡。这个实验讨论在第五节 B2 中呈现。我们在算法 1 中总结了整体解码过程。我们在最终更新的身体和部位框对集合 上报告所有评估结果。E. 使用无锚点检测器的 BPJDet
为了揭示我们提出的扩展表示的通用性,我们这里解释如何将其与先进的无锚点检测器 YOLOv5u [61] 和 YOLOv8 [64] 集成。YOLOv8 是 YOLO 系列的最新迭代,它采用了最先进的骨干 [83], [84] 和颈部架构。它采用了无对象性分割头部,有助于提高准确性和更有效的检测过程。YOLOv5u 通过起源于 YOLOv5 的基础架构,并采用 YOLOv8 中的无锚点头部而现代化。这些相似之处允许我们大量重用前一子节中的详细设计,重点关注表示调整。具体来说,在无锚点范式中,检测被制定为在特征图的每个像素上的密集推理。对于 Fs 中的每个位置 ,预测头部回归一个 4D 向量 ,它表示从 pi 锚定的边界框的四侧(左、上、右和下)的相对偏移。我们重新制定基于锚点的扩展表示 如下:其中对象性分数 被省略了。 和 的含义与 和 完全相同。边界框 是基于点检测器的独特设计。在 YOLOv5u 和 YOLOv8 中,它们采用了与 TOOD [83] 中相同的任务对齐分配器来学习目标边界框 周围的连续位置的概率值,包括 CIoU 损失 和分布聚焦损失 (DFL) 。请参考 [83] 和 [84] 获取这两个损失的明确定义。分类损失 使用二元交叉熵。对于身体部位偏移损失 ,我们使用相同的框分配器同步生成目标 GT,并使用 MSE 优化相应的输出 。最终的总训练损失 如下:这是 L(如公式 8 所示)的更新。 是批量大小。 和 是每个损失的权重。在推理中,关联解码部分保持不变。F. BPJDetPlus:进一步扩展表示
为了支持手部接触估计的下游应用,我们通过向所提出的对象表示中添加额外的空间来估计检测到的手的接触状态,构建了一个新的架构。我们将这个新框架重命名为 BPJDetPlus。具体来说,我们继续扩展对象表示 ,添加 表示两只手的四种接触状态。新的典型预测 继承自公式 (1) 中的 ,构成如下:其中 包含手的接触状态。 或 是手部分的一个特定接触状态 ( )。按照 [39] 的定义,我们定义了一个新的手接触状态损失 ,作为四个可能类别对应的四个独立的二元交叉熵损失的总和。其中 是预测的手接触状态,范围从 0 到 1, 是真实状态,为 0、1 或 2,分别表示无接触、接触或不确定。我们不对不确定状态的 进行惩罚。BPJDetPlus 的最终损失更新如下:这是公式 (8) 中多损失函数 L 的扩展。 是批量大小。损失权重 为 Lcts 通过在线搜索类似地设置为 0.01,如第五节 B1 中的 。我们在 ContactHands [39] 的训练集上训练 BPJDetPlus,并在测试集上评估其性能。在推理中,最终预测的手接触状态分数是手及其相关联的身体实例中嵌入的两个概率的加权和。更多结果在第五节 D2 中。V. 实验结果
A. 实验设置
1)数据集:身体部位联合检测:我们首先期望评估所提出的BPJDet的关联质量,同时保持高目标检测精度。我们选择了四个广泛使用的基准测试,包括CityPersons [28]、CrowdHuman [29]、BodyHands [18]和COCOHumanParts [58]。前两个是用于行人检测任务的。CityPersons有2,975张和500张图像用于训练和验证,它仅提供行人的边界框标签。在CrowdHuman中,有15,000张图像用于训练,4,375张图像用于验证。它提供了身体和头部的边界框标签。按照BFJDet [56]的后续操作,我们使用其重新注释的可见面部的边界框标签来进行相应的身体-面部联合检测实验。此外,我们还提供了在CrowdHuman上进行身体-头部联合检测实验作为强基线。第三个数据集BodyHands用于手-身体关联任务。它在训练集和测试集中分别有18,861张和1,629张图像,带有手和身体位置及对应关系的注释。我们在其中实现身体-手联合检测任务进行比较。最后一个数据集COCOHumanParts包含66,808张图像,其中64,115张在训练集中,2,693张在验证集中。它继承了官方COCO的人类别的边界框,并标注了每个实例中六个身体部位(面部、头部、左右手和左右脚)的位置(如果可见)。我们在其中执行身体部位联合检测任务,并与Hier R-CNN [58]进行比较。这些四个数据集的统计信息总结在表I中。此外,为了验证BPJDet关于身体-部位关联的通用性,我们在AnimalPose[71]和AP-10K[72]的基础上,重建了包含狗、猫、羊、马和牛等五种四足动物的数据集Animals5C。我们采用他们的动物身体的包围盒标签,并使用关键点生成由五个部位(例如头部和四个脚)组成的盒子。最后,我们在AnimalPose中得到了4,608幅图像和6,117个人体实例作为训练集,在AP-10K中得到了2,000幅图像和7,962个人体实例作为Val集。请注意,我们不再学习区分动物类别。下游应用:(1)我们选择了三个数据集CrowdHuman Val-Set[29]、SCUT Head Part_B[81]和Crowd of Heads(CroHD)Train-Set[9]用于准确的人群头部检测应用。最后两个数据集不包括身体框,最初分别发布用于头部检测和密集头部跟踪任务。因此,直接在它们上训练BPJDet是不可行的。取而代之的是,我们决定将基于CrowdHuman训练的身体-头部关节检测模型以跨域推广的方式应用于它们。Scut Head Part_B主要关注教室和会议室等室内场景。CroHD是从更高的视角捕获的9个HD序列中收集的。所有的场景都是开放的场景,比如人流密度极高的十字路口和火车站。CroHD仅在4个列车集序列中提供注释。它们的统计数据和样本见表I和图11。(2)对于第二个应用程序的手接触估计,我们选择专用数据集ContactHands[39],以利用BPJDet的高级体手关联能力来提高性能。ContactHands是一个大规模的野外图像数据集,用于手部检测和接触识别。它对20,506幅图像进行了标注,其中18,877幅形成了训练集,1,629幅形成了测试集。训练集和测试集分别有52,050个和5,983个手写实例。一些样品如图12所示。2)评估指标:对于身体和部位的检测评估,我们报告标准的VOC平均精度(AP)指标,IoU=0.5。我们还展示了在每张图像的误报数量(FPPI)范围内[10^-2 , 100] 的对数平均未命中率(MR^-2),简称MR^-2 [1],用于评估身体及其部位。为了评估BPJDet的关联质量,我们报告FPPI在[10^-2, 100]范围内的对数平均未匹配率(mMR^-2),这最初是由BFJDet [56]提出的,用于展示身体-面部对配对被未匹配的比例:其中 是在边界框IoU阈值为0.5时匹配的身体-部位对的数量, 代表总对数。mMR^-2的最终值可以通过对FPPI范围内的所有mMR值进行对数平均自然获得。对于BPJDet在身体-手联合检测任务上,我们展示了BodyHands [18]定义的条件精度和联合AP。最后,在COCOHumanParts上的身体部位联合检测任务中,我们遵循Hier R-CNN [58]定义的评估协议。我们报告了一系列APs(AP.5:.95, AP.5, AP.75, APM, APL)作为COCO指标,以及基于从属关系的APsub s,这些反映了身体部位的关联状态。尽管Hier R-CNN进一步将小目标划分为新的小和微小类别,它并没有在APsub s中一致地测量它们,因此我们放弃了APS和APsub的比较,以显示公平。在Animals5C上的评估与COCOHumanParts类似。对于准确的人头检测任务,我们报告了各种衡量标准,包括精确度、召回率、F1得分和CroHD之后的可可平均精确度(MAP)[9]。对于手部接触估计任务,遵循Contact Hands[39]中的设置,我们报告对应于四种物理手部接触状态(包括无接触、自我接触、人-接触和物体-接触)的四个平均精度(AP)值,以及它们的AP值。3)实现细节:我们采用PyTorch 1.10和4个RTX-3090 GPU进行训练。根据数据集的复杂性和规模,我们分别在CityPersons、CrowdHuman、BodyHands、COCOHumanParts和Animals5C数据集上训练了100、150、100、150和100个周期,使用SGD优化器。按照原始的YOLOv5 [61]架构,我们训练了三种模型,包括BFJDet-S/M/L,通过控制N中瓶颈层的深度和宽度。所有输入图像都被调整大小并零填充到1536×1536×3,以与JointDet [55]、BFJDet [56]、BodyHands [18]和Hier R-CNN [58]中的输入形状设置保持一致。我们采用了有效的数据训练增强,包括马赛克、混合和随机缩放,但省略了测试时增强(TTA)。YOLOv5u [61]和YOLOv8 [64]与YOLOv5类似,除了预测头部和损失函数。我们仅使用大型参数BFJDet-L5u和BFJDet-L8u在它们的基础上训练BPJDet。至于许多超参数,对于YOLOv5,我们保持大多数不变,例如自适应锚点框Bs、网格平衡权重ws和损失权重α=0.05、β=0.7和γ=0.3。我们根据消融研究将λ设置为0.015(见第五节B1)。对于无锚点检测器YOLOv5u和YOLOv8,损失权重αu=7.5、β=1.5、γu=0.5和λu=1.0/k。在测试中,我们使用阈值τb_conf=0.05、τb_iou=0.6、τp_conf=0.1、τp_iou=0.3和τinner_iou=0.6来应用NMS于O。τinner_iou的值是一个折衷选择,将在第五节B2中讨论。此外,由于BodyHands中没有手的左右注释,我们必须将身体部位数量k设置为2,但将身体部位类别从2减少到1。对于COCOHumanParts和Animals5C,我们将身体部位数量(类别)分别设置为6和5。B. 消融研究
1)损失权重 λ:我们首先调查超参数λ。为了简单起见,我们在CityPersons数据集上使用BPJDet-S进行了所有的消融实验,并训练了大约150个周期的联合身体-面部检测任务。输入尺寸为1280×1280×3。我们在λ上均匀采样了0.005到0.030的值,步长为0.005,并报告了每个最佳模型的MR^-2和平均mMR^-2指标。如图5(a)所示,我们可以清楚地发现,当λ=0.015时,模型的性能最佳。更大的或更小的λ会导致较差的结果。除了研究λ对MR^-2和平均mMR^-2的影响外,我们还报告了身体和面部的AP指标,以反映其影响。如图5(b)所示,当λ=0.015时,我们仍然获得面部的最佳AP。尽管我们在图5(c)中通过设置λ=0.015并没有获得身体的最佳AP,但我们决定在检测和关联之间权衡后,优先确保身体部位匹配的准确性。2)内部IoU阈值τinner_iou:在第四节中,我们引入了一个新的重要阈值τinner_iou,以便更好地将部分框分配给它们所属的身体框。我们在BodyHands [18]验证集上使用已经训练好的身体-手联合检测模型BPJDet-S进行了阈值搜索任务。如图6所示,我们选择了τinner_iou从0.4到0.8,步长为0.05,并观察了条件精度和联合AP的变化趋势。最后,我们将τinner_iou设置为0.6,以在条件精度和联合AP之间取得更好的折衷。3)关联任务的影响:为了研究身体部位关联任务的扩展表示对检测精度的影响,我们额外训练了所有模型,包括BPJDet-S/M/L/L5u/L8u,在移除关联任务(λ=λu=0)的情况下在CityPersons数据集上。所有身体和部分(面部)的AP结果如图7顶部所示。我们可以观察到,无论使用哪种类型的检测器,引入扩展表示前后的检测精度没有显著差异,即BPJDet中的身体部位关联的增加。即使在某些情况下,尤其是对于无锚点检测器,关联任务可能会导致更高的检测性能。这些结果表明,我们提出的扩展表示确实无害且对主干不敏感。此外,我们还评估了在不使用我们的扩展表示进行联合学习关联任务时BPJDet的平均mMR^-2。如图7底部所示,它们在身体部位匹配方面的平凡结果非常差,这揭示了关联设计的必要性。C. 定量和可视化比较
1)身体-面部联合检测:我们在两个基准上比较了我们的BPJDet与BFJDet [56]在身体-面部联合检测性能上的对比。CityPersons: 表II展示了CityPersons验证集上的结果。按照[3]、[56]中的策略,我们根据遮挡程度报告了四个子集的结果:合理(occlusion < 35%)、部分(10% < occlusion ≤ 35%)、裸体(occlusion ≤ 10%)和重度(occlusion > 35%)。我们也报告了这四个结果的平均值(Average)。BPJDet-L使用YOLOv5与RetinaNet+BFJ相比,在所有子集上 都有所提高,后者在身体AP上与我们相似,但面部AP较差。具体来说,BPJDet-L在四个子集上分别提高了13.1%、13.8%、13.0%和16.9%。与FPN+BFJ相比,后者在面部AP上与我们相似,但在身体AP上更高,BPJDet-L在四个子集上的分别提高了6.3%、2.9%、7.5%和7.3%。特别是在重度子集上,我们的关联优势最为明显,这表明BPJDet在处理拥挤场景中的匹配错误方面具有优势。使用先进的无锚点检测器,其身体和面部AP结果优于BPJDet-L,BPJDet-L5u和BPJDet-L8u在四个子集上的关联能力进一步提高。我们还获得了比基于锚点的BPJDet-L更低的平均结果,分别为29.3%和30.6%,而之前的结果是31.5%。这证明了扩展表示的泛化能力。CrowdHuman: 表III展示了在更具挑战性的CrowdHuman上的结果。我们的方法BPJDet使用基于锚点的YOLOv5或无锚点检测器(YOLOv5u和YOLOv8)在所有指标上与基于一阶段RetinaNet [25]或两阶段FPN [24]和CrowdDet [5]的BFJDet相比都取得了相当的增益。值得注意的是,BPJDet-L8u实现了最低的值49.9%,比之前最好的方法CrowdDet+BFJ低2.4%。此外,我们的BPJDet在保持身体和面部检测性能较高的前提下,超越了CrowdDet+BFJ在身体-面部关联上的表现,这意味着处理更多的实例匹配问题。这些结果再次证明了我们方法的通用性和优越性。2)身体-手部联合检测:我们在BodyHands [18]上进行了身体-手部联合检测实验,并将我们的BPJDet与BodyHands中提出的方法进行了比较。如表IV所示,我们的BPJDet使用基于锚点或无锚点的检测器在所有方面都优于其他方法。以实现最高的手部AP 87.6%和身体条件精度86.93%,BPJDet-L5u大幅提高了先前最佳的体手联合AP 21.55%。我们在图8中提供了在BodyHands上训练的BPJDet的联合身体-手部检测的更多定性比较。比较的遮罩图像直接取自BodyHands论文。我们的BPJDet能够检测到许多未标记的物体,并将BodyHands方法未能匹配的手部关联起来。这解释了我们为何在联合AP上有压倒性优势。所有这些结果进一步验证了我们扩展对象表示的通用性以及在身体和部分关系发现方面的卓越能力。3)身体-头部联合检测:为了进一步验证我们提出的BPJDet的强大适应性,我们在CrowdHuman [29]数据集上实施了身体-头部联合检测测试,并将我们的身体AP和MR^-2结果与其他面向拥挤场景的流行行人检测方法进行了比较。所有实验设置与身体-面部对训练相同。结果如表V所示。为了比较其与身体-面部联合检测任务的关联差异,我们复制了BPJDet的身体面部对检测结果以供参考。我们观察到,与身体-面部联合检测任务相比,AP和MR^-2结果都变差了,尽管mMR^-2显示出更好的身体-头部关联效果(从49.9提高到46.1)。一方面,这可能反映出头部检测比面部检测更难,因为当面部区域不可见时,它显示的外观特征更少。另一方面,将具有挑战性的身体部位(例如,全视图头部)与身体检测一起训练可能是对其AP(从最佳结果91.8下降到87.4)和MR^-2 (从最佳结果36.9下降到41.1)性能的负担。尽管如此,与先前最佳的身体-头部联合检测方法相比,包括DA-RCNN [54]和JointDet [55],我们仍然在MR^-2 性能上展现出相当的优越性。最后,我们还报告了专注于拥挤人群中独立检测身体对象的最新技术方法。迄今为止,身体最低的MR^-2 由PedHunter [4]保持。我们针对身体-面部联合检测任务的BPJDet-L8u模型实现了比它更低的结果(36.9对39.5)。身体的最佳AP由基于笨重DETR的Iter-E2EDET [80]保持。然而,这类基于查询的方法在身体MR^-2性能上略逊于基于框的对应方法。我们考虑通过探索DETR用于身体部位联合检测来解决这一缺陷。4)身体-部位联合检测:我们在COCOHumanParts [58]数据集上进行了身体-部位联合检测实验,以解释我们的通用BPJDet不仅限于身体部位的数量和类别。所有结果如表VI所示。在类似参数的前提下,基于YOLOv5-S的模型BPJDet-S在所有和每个类别的AP指标上都远远优于一系列基于ResNet-50的基线(例如,Faster R-CNN [23]、Mask R-CNN [11]、RetinaNet [25]、FCOS [66]和Hier R-CNN [58])。尽管Mask R-CNN [11]和Hier R-CNN [58]采用了更大参数的主干,如ResNet-101和ResNeXt-101,我们的BPJDet-S仍然保持着领先优势。在采用各种增强组件之后,包括高容量主干、可变形卷积[92]和训练时间增强,Hier R-CNN实现了其所有类别AP的最佳结果(HierX101†‡),这仍然与BPJDet-M/L/L5u/L8u非常接近。并且请注意,代价是更复杂的结构设计和更大的计算量。在检测精度方面,我们揭示了探索先进检测器如YOLOv5和YOLOv8的必要性和紧迫性,而不是过时的Faster R-CNN及其变体。此外,对于身体和部位的从属关系,可以观察到我们的模型在所有类别APsub指标下仅有轻微下降,并在多个子指标上取得了明显的领先优势,反映了我们方法在身体-部位关联任务上的优势。我们还报告了身体-头部mMR^-2 结果。与在CrowdHuman数据集上的结果表V所示类似,BPJDet-L可能不一定比BPJDet-M获得更好的关联结果,因为其检测到的具有挑战性的身体和头部实例更多。不同之处在于这里的mMR^-2 值要低得多,证实了COCOHumanParts数据集比人口密度相对较高的CrowdHuman简单得多。最后,在图9中,我们展示了一些比较示例,其中我们的BPJDet-L的检测结果优于Hier-X101。我们可以直观地看到,我们的方法可以轻松避免一些明显不合理的关联对,这对于像Hier R-CNN这样具有独立设计的检测和关联方法来说是麻烦的。5)动物的身体-部位联合检测:为了探索性目的,我们选择了重构的数据集Animals5C来进行动物的身体-部位联合检测。由于每个动物部位的GT框是通过2D关键点和身体尺寸自动生成的,它们并不紧密地包围物体。因此,尽管BPJDet的每个损失在训练中都可以收敛,但最终的APs并不令人满意。然而,我们可以定量地证实BPJDet确实有效,并在验证集中产生了相对较高的精度和召回率(约80%)。此外,如图10所示,我们在验证集图像上的定性结果也证明了动物的身体-部位联合检测是成功的。这些结果表明,我们在四足动物上的BPJDet的初步泛化测试是具有说服力和意义的。D. 通用BPJDet的优势
将每个检测到的部位(例如,头和手)与人体相关联对于许多下游任务是有益的。这一小节展示了我们提出的通用BPJDet在两个这样的任务中所具有的能力的好处:准确的人群头部检测和手部接触估计。在不失去一般性的情况下,在这些应用程序中,我们只使用基于锚点的检测器来训练BPJDet。1)身体-头部用于准确的人群头部检测:如第V-A1节中所讨论的,所选的两个数据集SCUT Head dataset [81]和CroHD train-set [9]不适合重新训练或微调BPJDet。尽管更大的野外CrowdHuman数据集与之相比有类似的拥挤人群,但它们之间存在场景级别的跨域差异。因此,我们尝试在这两个特定领域的目标数据集上进行跨域泛化实验。所有结果总结在表VII和图11中。我们还报告了在CrowdHuman val-set上的非跨域评估结果。具体来说,为了评估在CrowdHuman上训练的BPJDet直接在两个未知目标领域上的表现,我们需要降低NMS置信度阈值以更好地泛化,而不是使用监督学习测试中的更大阈值(例如,0.5或0.9)。在这里,我们设置置信度阈值为0.2用于NMS过滤。然而,仅仅依赖较低的阈值并不稳健,这将导致获得更多的候选项,同时也会引入更多的假阳性预测。这意味着更好的召回率、F1分数和mAP,但精确度会迅速下降。我们可以在表VII中查看BPJDet-S†(τb_conf =τp_conf =0.5)和BPJDet-S‡(τb_conf =τp_conf =0.2)在三个数据集上的相关指标变化,以获取更多详细信息。尽管召回率、F1分数和mAP有所提高,但精确度却在迅速下降。图11左列显示了跨域测试的假阳性的更多定性可视化。幸运的是,我们提出的BPJDet能够预测身体-头部对,而不仅仅是应用头部检测。为了减少假阳性,我们可以利用这些对进行双重检查,只保留同时检测到身体和头部的候选项。使用这种策略,我们可以在三个测试集中显著提高精确度,并在最小化召回率和mAP的下降的同时略微提高F1分数,如表VII(BPJDet-S†/M†/L†与BPJDet-S/M/L)所示。定性比较如图11所示。所有这些令人印象深刻的改进都得益于BPJDet可靠的身体-头部关联能力。这个实验探索了我们提出的BPJDet,利用身体-头部联合检测模型实现稳定、健壮和准确的拥挤场景中的人头检测。它还展示了BPJDet在头部检测跨域泛化方面的巨大潜力,这对于随后的野外应用,如监控、人群计数和一般头部跟踪,是有意义的。2)身体-手部用于手部接触估计:按照BodyHands [18]中物理接触分析的测试设置,我们在这里探索利用身体-手部联合检测来识别或估计数据集ContactHands [39]中手的物理接触状态的好处。手部接触估计是一个高级任务,对于人类理解、活动识别和AR/VR等许多进一步应用都有益处。通用手部接触估计是一个复杂的问题。ContactHands定义了四种接触状态:无接触、自我接触、人接触和物体接触。它们在考虑一只手的多种状态时不是相互排斥的。而且人接触类别最具挑战性,因为很难将其与自我接触区分开来。确定一只手是属于同一身体(自我接触)还是不同身体(人接触)是不容易的。通过利用手的视觉外观及其周围的局部上下文,BodyHands [18]提出了两种方法,如表VIII所列,以利用身体-手部关联来专门提高人接触估计的基线。[18]和[39]中的方法都是基于ResNet-101的。同样,我们在ContactHands上实现了我们的BPJDetPlus,如第IV-F节所述。如表IX所示,我们通过线下搜索基于训练好的BPJDetPlus-S模型来经验性地分配手和身体实例的权重wh和wb,分别为0.6和0.4。仅依靠紧密的手实例(wh =1.0)或宽松的身体实例(wb =1.0)来估计手的接触状态是不够的,也不是最优的。最后,我们在表VIII中总结了我们的结果。无需像[18]、[39]中那样精心设计的关注机制或许多额外的调整步骤,我们的方法BPJDetPlus-L将最具挑战性的APPC从最佳47.09%提高到50.32%,这得益于更强的身体-手部关联能力。最大的差距出现在APOC值(69.55%对比74.32%)上,因为[18]、[39]中的方法应用了预训练的通用目标检测器来检测图像中的所有其他常见对象。尽管如此,我们达到了与SOTA 60.56%相当的mAP 60.06%。我们的方法与ContactHands [39]中的SOTA方法的更多定性结果比较如图12所示。这些结果证明了我们提出的扩展表示的强大适应性,以及使用身体-手对进行手部接触估计任务的轻松性能提升。VI. 讨论和结论
在本文中,我们指出了许多现有身体部位联合检测方法的问题,包括检测和关联的低效分离分支、依赖于启发式规则来设计关联模块,以及对过时检测器的依赖。与一些流行的以人为中心的主题,如行人检测、面部检测和姿态估计相比,身体部位的联合检测还较少被探索。因此,我们深入研究了与身体部位联合检测相关的技术困难及其潜在的对下游任务的帮助。为了推动这个社区,我们提出了一种新的通用单阶段身体部位联合检测器BPJDet,以解决具有挑战性的成对对象检测和关联问题。受到一般目标检测和人体姿态估计中中心偏移回归的启发,我们通过添加身体部位偏移来扩展传统对象表示,并设计了有利的多损失函数,以实现检测和关联任务的联合训练。此外,BPJDet不仅限于特定的或单一的身体部位。它也不挑剔使用基于锚点或无锚点的检测器。定量的最新技术结果和在四个公共身体部位或身体部位数据集上的人体以及一个四足动物身体部位数据集上的印象深刻的定性表现足以证明我们提出的BPJDet的鲁棒性、适应性和优越性。此外,我们还对两个密切相关的下游应用进行了测试,包括准确的人群头部检测和手部接触估计,以进一步验证BPJDet的先进身体部位关联能力的明显好处。总之,我们设想我们的BPJDet可以作为身体部位联合检测基准的强大基线,并且可能对许多其他应用有益。然而,BPJDet在一些困难场景中的性能并不令人满意,如图8、9和12中的一些遗漏和失败案例所示。我们认为这些挑战可能通过使用更强大的主干,如基于变换器的DETRs,应用大规模未标记图像的无监督学习,或探索更健壮的多任务联合学习的先进策略来缓解。此外,身体部位对可以帮助许多流行任务,如稳定的多人/头部跟踪、细粒度的人体对象交互(HOI)和通用的人体对象接触检测。我们将在未来研究它们。声明
本文内容为论文学习收获分享,受限于知识能力,本文对原文的理解可能存在偏差,最终内容以原论文为准。本文信息旨在传播和学术交流,其内容由作者负责,不代表本号观点。文中作品文字、图片等如涉及内容、版权和其他问题,请及时与我们联系,我们将在第一时间回复并处理。