人体部位检测:BodyHands

Whose Hands are These? Hand Detection and Hand-Body Association in the Wild解读

  • 摘要
  • 1. 简介
  • 2. Related Work
    • 2.1 Hand Analysis
  • 3. Problem Definition and Proposed Method(问题定义和建议方法)
    • 3.1 Problem Definition
    • 3.2 Architecture Overview
    • 3.3 Hand-Body Association Network
      • Overlap Estimation Module
      • Positional Density Module
    • 3.4 Training Objective
    • 3.4 Hungarian Hand-Body Assignment
  • 4. BodyHands Dataset
    • 4.1 Dataset Source
    • 4.2 Annotation and Quality Control
    • 4.3 Statistics
  • 5. Experiments
    • 5.1 Hand-Body Association Experiments
      • 5.1.1 Evaluation Metrics
      • 5.1.2 Competing Methods and Comparison Results
      • 5.1.3 Ablation Studies
      • 5.1.4 Qualitative Results

论文地址:https://openaccess.thecvf.com/content/CVPR2022/papers/Narasimhaswamy_Whose_Hands_Are_These_Hand_Detection_and_Hand-Body_Association_in_CVPR_2022_paper.pdf
论文代码:https://github.com/cvlab-stonybrook/BodyHands
论文出处:CVPR2022

摘要

  • 我们研究了一个新的人手检测问题,并为每只被检测的人手找到相应的人的位置
  • 该任务对许多下游任务(如hand tracking和hand contact estimation)很有帮助。
  • 难点:在不受约束的条件下,将手与人联系起来是一种挑战,因为多个人可以出现在不同的重叠和遮挡的场景中。
  • 我们提出了一种全新的端到端可训练卷积网络,可以同时检测相应的人的手和身体的位置。
  • 我们的方法首先检测一组手和身体,并使用一个新的Hand-Body关联网络来预测它们之间的关联分数。
  • 我们使用这些关联分数来找到body位置 for 每个检测到的hand。
  • 我们还引入了一个新的具有挑战性的数据集BodyHands,其中包含无约束的手图像和相应的身体位置注释。
  • 最后,我们在两个关键应用中演示了手-身体关联的好处: 手跟踪和手接触估计。
  • 实验表明,通过对手-体关联的推理,手部跟踪和手部接触估计方法得到了明显的改进。

1. 简介

  • Hand analysis 是计算机视觉和应用在人类理解、动作、手势和手语识别中的一项重要问题。

  • 人手的视觉分析对于VR和AR应用也至关重要。

  • 虽然计算机视觉界已经研究了手的检测、手的姿势估计、手的跟踪和手的接触估计等问题,但在研究手与身体的关联方面还没有显著的努力。

  • 在这项工作中,我们研究了在图像中检测手的问题,并为每只被检测到的手找到相应的人的位置。

  • 在不受约束的条件下,检测手并将其与合适的身体联系起来是一项挑战。如图1所示,一个图像可能包含多个人,手和身体之间有大量的重叠和遮挡。
    人体部位检测:BodyHands_第1张图片

  • 一种方法是分别检测手和人,并使用基于它们的大小、距离或重叠区域的启发式方法来建立手和身体之间的对应关系。 然而,由于手和身体的极端连接,导致手和相应的人体之间的相对位置和大小有巨大的差异,这种方法不能很好地执行。

  • 另一种方法是使用人体姿态检测器来找到人体的骨架,并在图像中找到每一个被检测到的姿势的手。 然而,姿态检测本身是不可靠的。在人群聚集或互动的场景中,一个人的手和胳膊可能会与另一个人的骨架纠缠在一起。此外,姿态检测器可能无法检测图像中每个人的姿态,特别是那些部分被遮挡或部分在相机视野之外的人。因此,我们不能仅仅依靠姿态检测来将手与人联系起来。

  • 这项工作提出了一种新的卷积体系结构,可以联合检测手和身体并将它们关联起来。

  • 具体地说,我们在MaskRCNN(一个最先进的对象检测器)的基础上进行构建,并通过添加一个新的HandBody Association Network模块对其进行扩展。

  • 我们首先使用一个Region Proposal Network (RPN)生成候选人的手和身体proposal boxes。然后利用bounding box regression和mask generation heads得到手和身体的边界盒和分割图。检测到的手和身体然后被传递到Hand-Body Association Network 来获取它们之间的关联。

  • Hand-Body Association Network有两个新颖的模块。
    (1)第一个模块是Overlap Estimation Module,它使用手和身体的视觉特征来估计它们是否可以重叠。直觉上,如果手和身体没有重叠,它们就不可能属于同一个人。然而,反过来就不成立了,手和身体可以重叠,即使它们属于不同的人。例如,在提出的BodyHands数据集中,超过33%的人的手与他人重叠。
    (2)第二个模块是Positional Density Module ,它使用手的特征来估计每只被检测到的手的可能身体位置的密度。直观地说,手的外观和位置为估计其身体位置提供了一些线索。然而,由于手和身体之间的相对比例的巨大变化和人与人之间的相互咬合,直接从手定位身体可能是困难的。因此,我们首先估计可能位置上的密度,并使用这些密度值使用匈牙利(Hungarian)算法找到所有手-体对的兼容匹配。

  • 我们还提供了一个大规模的无约束图像数据集,其中包含手部位置和相应身体位置的注释。该数据集有大约20K个带边界框注释的图像,用于57K多个手实例和63K多个身体实例。

  • 最后,我们在两个关键的下游任务中演示了手-身体关联的好处:hand tracking and hand physical contact estimation.

2. Related Work

2.1 Hand Analysis

  • 计算机视觉对hand进行了广泛的研究,有手检测方法(hand detection),手姿势估计方法(hand pose estimation),手跟踪(hand tracking),手接触估计(hand contact estimation)。
  • 然而,以往的研究没有考虑hand-body association的问题。
  • 尽管有一些带有手部位置注释的数据集,如Hand-CNN,ContactHands但它们没有对应身体位置的注释。
  • 另一种选择是使用人体姿势数据集,其中包含人体关节位置。然而,这样的数据集没有手部的边界框注释。
  • Egohands提出了一个包含48个两个人之间第一人称互动视频的数据集。但是,它们只提供手部位置的注释,而不提供身体位置的注释。
  • COCO-WholeBody dataset 通过在COCO数据集上标记手的关键点开发。
  • 与这些数据集相比,提出的BodyHands数据集有大量拥挤的图像,在人之间有显著的重叠和遮挡,34%的BodyHands用户的手与不同的人重叠,而COCOWholeBody用户的这一比例为19%。

3. Problem Definition and Proposed Method(问题定义和建议方法)

3.1 Problem Definition

  • 给定一个图像I∈RH×W×3,我们的目标是:
    (1)检测边界盒位置 H = {h_i∈R4: 1 ≤ i ≤ m} 和 B = {b_j∈R4: 1 ≤ j ≤ n}。
    这里,m和n表示图像I中的手和身体的数量。
    每个边界框由其左、上、右、下位置的4维向量表示。
    (2) 对于每只被检测的手 h∈H,我们需要关联一个物体 b∈B,满足以下两个约束条件: a) 每只手h∈H恰好与一个身体b∈B相关联; b) 每个体b∈BH中最多可与两个hand相关联。
    注意,我们把人的任何可见区域都看作是身体。
    因此,当检测器未检测到任何人时,即B =∅,我们将手边界框作为其对应的人边界框。

3.2 Architecture Overview

  • 我们在图2中说明了所提议的体系结构。
    人体部位检测:BodyHands_第2张图片
  • 给定一个输入图像,我们使用ResNet获取主干特征,使用Region Proposal Network获取对应于两个对象类的建议: 手和身体。
  • 然后,我们使用RoIAlign操作提取与这些建议对应的特征,并执行bounding box回归和mask生成。
  • 对于每只检测到的手 h∈H ,我们使用新的HandBody Association Network来估计条件似然 P(b|h),在所有被检测物体 b∈B上。
  • 条件P(b|h)表示身体b与手h相关联的概率。
  • 我们使用P(b|h)作为手和身体之间的二部图(bipartite graph)的权重,并提出手-身体关联问题,以寻找满足第3.1节中问题定义所描述的约束条件的最大权重分配。
  • 最后我们使用匈牙利算法 (Hungarian Matching)得到了该匹配问题的解。
  • 我们实现了Hand-Body Association Network作为MaskRCNN的一个新分支,并与MaskRCNN的其他组件端到端一起训练这个模块。

3.3 Hand-Body Association Network

  • Hand-Body Association Network的输入是被检测到的手H和身体B的集合。
  • 对于每个检测到的手实例 h∈H,输出条件似然 P(b|h) 在所有物体 b∈B上。
  • 当身体b属于手h时,概率P(b|h)是高的,否则它是低的。
  • 我们证明,在一些独立的假设下,项P(b|h)可以分解为两个项的乘积: h和b之间重叠(overlap)的和b上的位置密度 (positional density):
    在这里插入图片描述
  • 要明白这一点,我们首先注意到属于同一个人的手和身体之间的重要关系。由于手是人体的一部分,属于同一个人的手边界框和身体边界框必须有正重叠。换句话说,如果手和身体没有重叠,它们就不可能属于同一个人。然而,反过来就不成立了,手和身体可以重叠,即使它们属于不同的人。
  • 形式上,如果我们让 I_h,b是一个指示随机变量,表示是否h和b有重叠,我们有
    在这里插入图片描述
  • 我们可以用I_h,b∈{0,1}的总概率和条件定律来表示
    在这里插入图片描述
  • 结合式(2)和式(3),得到
    在这里插入图片描述
  • 独立假设P(I_h,b = 1|h) = P(I_h,b =1)将式(4)化简为式(1)。
  • 我们学习概率P(I_h,b = 1)使用Overlap Estimation Module和P(b | h, I_h,b = 1)使用 Positional Density Module

Overlap Estimation Module

  • 该模块以手部边界框h和身体边界框b对应的视觉特征为输入,估计它们重叠的概率。
  • 具体来说,我们使用神经网络 f_overlap来建模 P(I_h,b = 1):= foverlap(h, b)。
  • 我们执行 f_overlap 为MaskRCNN一个附加的分支,使用卷积和全连接层
  • 该网络模块计算量小,我们在训练过程中使用以下binary cross-entropy loss与MaskRCNN一起学习它们的参数:
    人体部位检测:BodyHands_第3张图片
    在上面,Yh,b(gt)表示groundtruth,如果h和b重叠,Yh,b(gt)等于1,否则等于0。
  • 注意,我们使用手和身体的外观特征来预测f_overlap(h, b),而不是直接计算边界框h和b之间的重叠。这是因为重叠是两个区域之间相互的几何信息。利用手和身体的外观特征学习手和身体之间的相互几何信息,使学习丰富的判别表示对手和身体的关联有用。我们在实验中证明了这一点。

Positional Density Module

  • 我们使用这个模块来建模Eq.(1)中的项P(b | h, I_h,b = 1)。
  • 具体地说,给定任意手h,对于任意可能的身体位置b和I_h,b = 1,我们使用以下分布来建模该概率
    人体部位检测:BodyHands_第4张图片
  • 在上式中,µh/body∈R4是相对于手h的平均身体位置,bh是相对于手h的body box 坐标b的编码,σ是一个可调的超参数。
  • 更具体地说,受FasterRCNN中的边界盒回归公式的启发,我们使用
    在这里插入图片描述
    (hx, hy)表示h的中心坐标(x, y), hw和hh表示h的宽和高。
    同理,(bx, by)表示b中心的(x, y)坐标,bw和bh表示b的宽度和高度。
    我们利用手h的外观特征和边界框位置来预测公式(6)中的u_h/body.
  • 直观地说,手的外观特征和位置为估计其身体位置提供了一些线索。
  • 然而,直接从手的特征定位身体可能是困难的,因为手和身体之间的相对比例的巨大变化和人与人之间的相互遮挡。
  • 因此,我们首先在可能的位置上估计一个密度,并使用这些密度值使用匈牙利算法找到所有手-身体对的兼容匹配。
  • 如果身体b远离估计的平均身体位置µ_h/body,则P(b|h, I_h,b = 1)较小,因此根据Eq. (1), P(b|h)也较小。
  • 我们可以有效地实现网络f_density作为MaskRCNN的一个附加分支使用卷积和全连接层
  • 我们将f_density与MaskRCNN端到端训练在一起,通过最小化smooth-L1 loss between预测的µ_h/body和与手h相关的groundtruth body bh (gt):
    在这里插入图片描述

3.4 Training Objective

  • 通过优化以下多任务丢失,我们将提出的手-身体关联网络与MaskRCNN端到端一起训练:
    在这里插入图片描述
    在这里,Lcls, Lbox, Lmask表示分类,边界盒回归,以及检测的分割掩码损失。
  • 手部关联损失,定义为
    在这里插入图片描述
    标度因子λ1和λ2是可调超参数,表示重叠估计和位置密度估计之间的相对重要性。

3.4 Hungarian Hand-Body Assignment

  • 给定一组被检测的手H = {hi: 1≤i≤m},身体B = {bj: 1≤j≤n},以及从手-身体关联网络中估计的条件分布P(b | h),我们需要一种分配策略来匹配手和身体的约束条件,这些约束条件在3.1节中描述。
  • 我们遵循bipartite matching strategy和使用P(b|h)为bipartite graph中手h与身体b之间的权重。
  • 我们使用匈牙利算法(Hungarian Algorithm)在被检测的手H和身体B之间获得了一个最大的加权分配。
  • 注意,匈牙利算法只匹配一只手和一个身体,但它也产生了一个不希望的结果:每个身体最多只能匹配一只手。然而,我们需要身体和双手的灵活性。
  • 我们为此提供了一个简单的解决方案,即复制B,以确保每个主体在运行匈牙利算法。这确保了一个身体可以有两个与之相关联的手。

4. BodyHands Dataset

  • 本节描述BodyHands,为开发和评估手-身体关联方法而收集的新数据集。
  • BodyHands是一个大规模的数据集,包含无约束的图像,带有手部和身体位置和对应关系的注释

4.1 Dataset Source

  • 我们从ContactHands数据集的图像开始构建BodyHands数据集. ContactHands是一个大型数据集,包含无约束的图像,用手多边形位置及其接触状态注释。
  • 它的图像来自流行的数据集,比如MS COCO, PASCAL VOC, Oxford-Hand,TV-Hand和COCO-Hand。

4.2 Annotation and Quality Control

  • 我们雇佣了几个注释工人来注释我们的数据集。
  • 在ContactHands数据集中每个人的手部注释实例中,我们要求注释器在人周围画一个矩形边框,并输入手部和身体的识别号。
  • 属于同一个人的手和身体具有相同的识别号码,因此充当手和身体之间的联系
  • 我们要求注释人员画出人的边界框,以包括人的所有可见部分。
  • 我们还指示注释者确保每个主体最多有两只手与之关联,而且每只手恰好与一个主体关联。因此,我们数据集中的每个手部实例都有一个与之相关的身体。
  • 当手是人的唯一可见区域时,我们使用手边界框作为人的边界框。
  • 我们批量收集注释,并亲自手工验证注释结果。

4.3 Statistics

  • BodyHands数据集有20,490张图片,其中手部有57,898个带注释的多边形,人体有63,095个轴平行矩形边界框。
  • 19,810人有一只手有注释,19,044人有两只手有注释,24,241人没有注释手(因为他们的手要么遮挡要么太小)。
  • 我们使用相同的训练和测试分割ContactHands数据集向后兼容。图3显示了一些代表性的图像。

5. Experiments

5.1 Hand-Body Association Experiments

5.1.1 Evaluation Metrics

  • 我们使用标准VOC平均精度(AP)度量来测量手部检测性能。
  • 为了衡量手-身体关联的表现,我们考虑了两个指标
    (1)Conditional Accuracy for body association
    我们将其定义为在正确检测到的手实例中正确关联的体的百分比。
    这里我们定义,如果关联体框和对应的GT体框之间的交集/并(IoU)大于0.5,则该体与手相正确关联。
    我们称之为条件精度,因为我们只考虑与正确检测到的手实例相对应的关联体。
    需要注意的是,如果检测到的手部边界框与GT边界框之间的 IoU大于0.5,则手部检测是正确的。
    (2) Joint AP for hand detection and body association
    在这个度量中,如果检测到一只手被认为是true positive,如果:(a)被检测手的边界盒与GT边界盒之间的交并(IoU)大于0.5;(b)被检测手实例关联的身体边界框与GT身体边界框之间的IoU大于0.5。

5.1.2 Competing Methods and Comparison Results

  • 我们在表1中总结了结果。该方法的性能明显优于其他方法。
    人体部位检测:BodyHands_第5张图片

我们将在下面的比较中描述这些方法。

  • 2D Human Pose
    我们运行不同的2D姿态估计方法,如OpenPose、Keypoint Communities和DOPE来获取手部关键点和身体关节。
    利用这些关键点和节点,我们得到了手部边界框和相应的身体边界框。
    我们使用一个不那么严格的评估协议,因为检测到的手的关键点可能非常嘈杂:我们认为一个手是真正的,如果它的边界框有正IoU和一个GT边界框。
    这些方法不能很好地执行,因为在无约束条件下获得准确的手和身体姿势是具有挑战性的
  • MaskRCNN + X
    我们使用ResNet101主干来训练MaskRCNN来检测手和身体。
    然后我们使用匈牙利匹配算法来匹配手和身体,使用几个成本函数(cost functions):
    (1)Feature Distance:首先提取MaskRCNN的手和身体的bbounding回归1024维特征向量,然后使用这些特征向量之间的L2距离。
    (2)Feature Similarity:首先提取MaskRCNN的手和身体的bbounding回归1024维特征向量,然后使用这些特征向量的内积。
    (3)Location Distance:使用被检测到的手和身体边界框之间的L2距离。
    (4)IoU:使用检测到的手和身体边界框之间的IoU。

5.1.3 Ablation Studies

  • 我们进行了消融研究,以研究所提出的方法的不同成分的影响。
  • 具体来说,我们使用BodyHands训练集训练三个不同的模型:
    (1)the proposed method without the Overlap Estimation Module
    (2)the proposed method without the Positional Density Module
    (3)the proposed method using overlap computed from hand and bounding boxes instead of Overlap Estimation Module
  • 这些方法在BodyHands测试集上的Joint AP分别为59.03%,50.29%、60.34%。
  • 这些结果表明,Overlap Estimation Module和Positional Density Module都有助于手-体关联。

5.1.4 Qualitative Results

  • 图4显示了我们方法的一些定性结果和失败案例。失败的情况主要是由于错误的手检测和错误的身体关联,特别是在拥挤的图像。

你可能感兴趣的:(论文笔记,计算机视觉,深度学习,python,手检测)