介绍一下这篇论文的次要内容给诸位读者。
论文地址:https://arxiv.org/abs/2204.06806
1. 介绍
多人2D姿势预计是了解图像中人类的工作。给定一个输出图像,指标是检测每个人并定位他们的身材关节。推断图像中多人的姿势即可具备挑战性是因为图像中的人数可变,尺度变动,身材部位的遮挡,人体的非刚性,以及各种其余起因。
图1所示。在拥挤的COCO val2017样本图像上的定性后果。上图:yolov5m6-pose的输入显示了咱们办法的鲁棒性。一个人的关键点永远不会因为固有的分组而与另一个人产生谬误。下图:HigherHRNetW32的输入,显示即便关键点地位根本正确,分组算法也很容易失败。自底向上的办法在拥挤的场景中容易呈现这样的分组谬误。
现有的姿势预计解决方案分为自上而下和自下而上。自上而下的[30]、[8]、[12]、[13]、[19]或两阶段办法是目前最先进的办法。他们首先采纳重型人体检测器并执行对每个检测进行单人姿势预计。自顶向下办法的复杂度随着图像中人数的减少而线性减少。大多数须要恒定运行工夫的实时应用程序不喜爱自上而下的办法,因为高复杂度和可变的运行工夫。相比之下,自下而上的[4],[5],[14],[23],[25]办法提供恒定的运行工夫,因为它们依赖于热图在单次拍摄中检测所有关键点,而后进行简单的后处理,将它们分组为集体。自下而上的办法中的后处理能够波及像像素级NMS,线积分,细化,分组等步骤。坐标调整和细化缩小了下采样热图的量化误差,而NMS用于在热图中找到部分最大值。即便通过后处理,热图也可能不够尖利,无奈辨别同一类型的两个十分严密的关节。同样,自下而上的办法无奈进行端到端的训练,因为后处理步骤是不可微的,并且产生在卷积网络之外。它们在不同的办法中有很大的不同,从线性规划[29]到各种启发式[4]。很难应用CNN加速器对它们进行减速,因而速度相当慢。One-shot办法[34,35]尽管防止了分组工作,但与自下而上的办法体现不一样。它们进一步依赖于额定的后处理来进步性能。
本文工作的动机是解决在没有热图的状况下进行姿势预计并合乎指标检测的问题,因为指标检测中的挑战与姿势预计相似,例如尺度变动、遮挡、人体的非刚性等。因而,如果一个人体检测器网络能够解决这些挑战,那么它也能够解决姿势预计。例如,最新的指标检测框架试图通过在多个尺度上进行预测来缓解尺度变动的问题。在这里,咱们采纳雷同的策略,在每个检测对应的多个尺度上预测人体姿势。同样,指标检测畛域的所有重大进展都无缝地传递到姿势预计的问题上。咱们提出的姿势预计技术能够很容易地集成到任何运行指标检测的计算机视觉零碎中,而计算量简直为零增长。
咱们将咱们的办法称为YOLO-Pose,基于风行YOLOv5[1]框架。这是第一次专一于解决没有热图的2D姿势预计问题的尝试,并强调解脱目前应用的各种非标准化的后处理。咱们的办法应用了与指标检测中雷同的后处理。咱们在具备挑战性的COCO关键点数据集[7]上验证了咱们的模型,并在AP方面展现了有竞争力的准确性,在AP50方面比具备相似复杂性的模型有显著的改良。
在咱们的办法中,与高空实在框匹配的锚框或锚点存储其残缺的2d姿势以及边界框地位。来自不同人的两个类似关节能够在空间上彼此靠近。应用热图,很难辨别来自不同人的两个空间上靠近的类似关节。然而,如果将这两个人与不同的锚点进行匹配,则很容易辨别空间上靠近和类似的关键点。同样,与锚点相干的关键点曾经被分组了。因而,不须要进一步分组。
在自下而上的办法中,一个人的关键点很容易被误认为另一个人,如图1所示,而咱们的工作自身就解决了这个问题。与自上而下的办法不同,YOLO-Pose的复杂性与图像中的人数无关。因而,咱们领有自上而下和自下而上两种办法的长处:恒定的运行工夫以及简略的后处理。
总的来说,咱们做出了以下奉献:
- 倡议解决与指标检测相一致的多人姿势预计,因为尺度变动和遮挡等重大挑战对两者都是独特的。因而,迈出了对立这两个畛域的第一步。咱们的办法将间接受害于指标检测畛域的任何提高。
- 无热图办法应用规范的OD后处理,而不是波及像素级NMS、调整、细化、线积分和各种分组算法的简单后处理。该办法是鲁棒的,因为没有独立的后处理的端到端训练。
- 将IoU loss的思维从框检测扩大到关键点。对象关键点类似度(ok)不仅用于评估,还作为训练的损失。OKS损失是尺度不变的,实质上给不同的关键点不同的权重。
- 以约4倍的计算量实现了SOTA AP50。例如,在coco test-dev2017 上 ,Yolov5m6-pose 在 66.3 GMACS下实现了89.8的AP50,而SOTA DEKR[30]在283.0 GMACS下实现了89.4的AP50。
- 提出了一种联结检测和姿势预计框架。通过OD网络,姿势预计简直是收费的。
- 提出了模型的低复杂度变体,其性能显著优于像EfficientHRNet[15]这样的实时聚焦模型。
2. 相干工作
多人2D姿势预计可分为自上而下和自下而上两种办法。
2.1. 自上而下的办法
Top-down[8],[12],[13],[19],[20],[21]或两阶段办法首先应用较重的人体检测器(如Faster RCNN[21])进行人体检测,而后为每个检测到的人预计2d姿态。
因而,计算复杂度随人数线性减少。现有的自上而下的办法大多集中在设计网络架构上。mask - rcnn[20]检测关键点作为宰割掩码。Simple Baseline[8]提出了一个简略的架构,具备一个深度骨干和几个反卷积层,以扩充输入特色的分辨率。这些办法具备尺度不变性,因为它们以雷同的尺度解决所有受试者,在风行的基准上实现了最先进的性能。然而,它们在解决遮挡方面体现不佳。咱们的办法在肯定水平上克服了遮挡的挑战,如图3所示。
2.2. 自底向上的办法
Bottom-up办法[4],[5],[14],[23],[25]在一个镜头中找出图像中所有人物的无关关键点,而后将它们分组为单个人物实例。自下而上的办法工作在一个被称为热图的概率图上,它预计每个像素蕴含特定关键点的概率。关键点的确切地位是通过NMS找到的热图的部分最大值。自底向上的办法通常复杂度低,具备恒定运行工夫的长处。然而,与自上而下的办法相比,准确性有很大的降落。还有各种其余的调整和细化步骤,以从热图中提取更好的关键点。各种办法不同的局部是用于对图像中检测到的身材部位进行分组的策略。OpenPose[4]构建了一个蕴含两个分支的模型,用于预测关键点热图和局部亲和场,后者是建模关节之间关联的2D向量。在分组过程中应用局部亲和场。在联想嵌入[5]中,Newell等人训练网络来预测每个关节的关键点热图和标签值。定义损失函数,预测属于同一个人的关节的类似标签值,以及属于不同人的关节的不同标签值。Chen等人提出了更高的HRNet[9],它应用更高的输入分辨率来大幅提高预测的精度。耿等人[30]最近提出了DEKR,提出了应用偏移图的间接回归办法。它提出了一种k分支构造,应用自适应卷积来回归相应关键点的偏移量。这种办法须要关键点热图和一个核心热图,用于后处理中的各种NMS操作。即便后处理没有任何分组,也不像咱们的那样含糊其辞。
3. YOLO-Pose
和其余自下而上的办法一样,YOLO-pose是一种单镜头办法。然而,它不应用热图。相同,它将一个人的所有关键点与锚相关联。它基于YOLOv5[1]指标检测框架,也能够扩大到其余框架。咱们也在YOLOX[2]上进行了无限水平的验证。图2阐明了用于姿势预计的要害拍板的整体架构。
3.1. 概述
为了展现咱们解决方案的全副后劲,咱们必须抉择一个善于检测人类的架构。OLOv5在准确性和复杂性方面都是当先的检测器。因而,咱们抉择它作为咱们的根底,并在其根底上进行构建。YOLOv5次要专一于80级COCO[7]指标检测,盒头预测每个锚点85个元素。它们别离对应80类的边界框、对象得分和置信度得分。对应于每个网格地位,有三个不同形态的锚点。
对于人体姿势预计,它归结为一个单类人检测问题,每个人有17个相干的关键点,每个关键点再次用地位和置信度标识:{,,}。因而,与锚点相干的17个关键点总共有51个元素。因而,对于每个锚点,要害拍板预测51个元素,盒子头预测6个元素。对于具备n个关键点的锚点,整体预测向量定义为:
关键点置信度是基于该关键点的可见性标记进行训练的。如果一个关键点是可见的或被遮挡的,那么ground truth置信度被设置为1否则如果它在视线之外,置信度被设置为0。在推理过程中,咱们保留置信度大于0.5的关键点。所有其余预测的关键点都被回绝。预测关键点置信度不用于评估。然而,因为网络预测了每个检测的所有17个关键点,咱们须要过滤掉视线之外的关键点。否则,就会呈现悬空的关键点,导致骨骼变形。现有的基于热图的自底向上办法不须要这一点,因为视线之外的关键点一开始就没有被检测到。YOLO-Pose 使 用 CSP-darknet53[27] 作 为 骨 干 ,PANet[6]用于交融来自骨干的各种尺度的特色。接下来是4个不同尺度的检测头。最初,有两个解耦的头用于预测框和关键点。
在这项工作中,咱们将复杂度限度在150 gmac,在此范畴内,咱们可能获得有竞争力的后果。随着复杂性的进一步减少,有可能用自上而下的办法进一步弥合差距。然而,咱们并不谋求这条路线,因为咱们的重点是实时模型。
图2。基于YOLOv5的YOLO-pose架构。输出图像通过darknetcsp骨干传递,该骨干生成各种尺度的特色图{P3, P4, P5, P6}。PAnet用于跨多个尺度交融这些特色图。PANet的输入被馈送给检测头。最初每个检测头分支成盒子头和要害拍板。
3.2. 基于锚的多人姿势生成
对于给定的图像,与人匹配的锚点将其整个2D姿势连同边界框一起存储。框坐标依据锚点核心进行转换,而框尺寸依据锚点的高度和宽度进行归一化。相似地,关键点地位被转换为锚点核心。然而,关键点并没有依照锚点的高度和宽度进行归一化。关键点和框都被预测到锚点的核心。因为咱们的加强与锚点宽度和高度无关,它能够很容易地扩大到无锚点的指标检测办法,如YOLOX [2], FCOS[28]。
3.3. 基于IoU的Bounding-box损失函数
大多数古代指标检测器优化IoU损失的高级变体,如GIoU [36], DIoU或CIoU[37]损失,而不是基于间隔的框检测损失,因为这些损失是尺度不变的,并间接优化评估指标自身。咱们应用CIoU损失进行边界框监督。对于与地位(,)和尺度s的锚点匹配的高空真值边界框,损失定义为
是地位(,)
和尺度s
的锚点预测框。在咱们的例子中,每个地位有三个锚点,预测产生在四个尺度上。
3.4. 人体姿势损失函数公式
传统上,基于热图的自底向上办法应用L1损失来检测关键点。然而,L1损失不肯定适宜取得最优的ok。同样,L1损耗是奢侈的,没有思考到对象的尺度或关键点的类型。因为热图是概率图,在纯基于热图的办法中不可能应用ok作为损失。只有当咱们回归关键点地位时,OKS能力用作损失函数。耿等人[30]应用尺度归一化的L1损失用于关键点回归,这是走向ok损失的一步。因为,咱们间接依据锚点核心对关键点进行回归,所以咱们能够优化评估指标自身,而不是代理损失函数。
咱们将IOU损失的思维从box扩大到关键点。在关键点的状况下,对象关键点类似度(ok)被视为IOU。OKS损失具备固有的尺度不变性,并赋予某些关键点比其余关键点更多的重要性。例如,一个人头部(眼睛,鼻子,耳朵)上的关键点比一个人身材上的关键点(肩膀,膝盖,臀部等)上的关键点更容易受到像素级谬误的惩办。这些权重因子是COCO的作者从冗余中教训地抉择的标注的验证图像。与vanilla IoU损失不同,它蒙受非重叠状况下的梯度隐没,OKS损失从未安稳。因而,OKS损失更相似于dIoU[37]损失。
对应于每个边界框,咱们存储整个姿势信息。因而,如果一个高空真值边界框与地位(,)上的锚点匹配,并缩放s,咱们就预测对于锚点核心的关键点。别离计算每个关键点的OKS,而后求和,以给出最终的OKS损失或关键点IOU损失。
对应于每个关键点,咱们学习一个置信度参数,它显示了这个人是否存在一个关键点。这里,关键点的可见性标记被用作ground truth。
如果高空真值边界框与锚点匹配,地位(,)的损失对尺度s的锚点无效。最初,对所有尺度、锚点和地位的总损失进行求和:
= 0.5, = 0.05, = 0.1和_ = 0.5是为了均衡不同尺度的损失而抉择的超参数。
3.5. 测试工夫增广
所有用于姿势预计的SOTA办法都依赖于测试工夫加强(TTA)来进步性能。翻转测试和多尺度测试是两种罕用的技术。翻转测试的复杂度减少了2倍,而多尺度测试在3个尺度{0.5X, 1X, 2X}上进行推理,复杂度减少了(0.25X + 1X+4X) = 5.25X。当flip test和multiscale test同时开启时,复杂度减少了5.25*2x=10.5X。在咱们的比照表中,咱们相应地调整了复杂度。
除了减少计算复杂度之外,筹备加强后的数据自身就很低廉。例如,在翻转测试中,咱们须要翻转图像,这会减少零碎的提早。同样,多尺度测试须要对每个尺度进行调整大小操作。这些操作可能十分低廉,因为它们可能不像CNN操作那样被减速。交融各种前向传球的输入会带来额定的老本。对于一个嵌入式零碎来说,如果咱们能够在没有任何TTA的状况下取得有竞争力的后果,这是最合乎咱们利益的。咱们所有的后果都是没有任何TTA的。
3.6. 关键点外边框
自上而下的办法在遮挡下体现不佳。绝对于自上而下的办法,YOLO-Pose的劣势之一是没有束缚关键点必须在预测的边界框内。因而,如果关键点因为遮挡而位于边界框之外,它们依然能够被正确辨认。然而,在自上而下的办法中,如果行人检测不正确,姿势预计也会失败。在咱们的办法中,遮挡和不正确的框检测的这些挑战都在肯定水平上失去了缓解,如图3所示。
图3。应答自上而下办法的挑战。上图:YOLO-pose正确预测了位于边界框外的被遮挡关键点。下:对于两头的人来说,框检测并不准确。然而,这并没有限度右脚踝出错的关键点。它的预测是跳出框框的。自上而下的办法会齐全错过右脚踝的关键点。
表1:与SOTA自下而上的办法在COCO2017 val集上的比照。翻转测试和多尺度测试后果的复杂度别离调整了2倍和5.25倍。
3.7. ONNX导出不便部署
ONNX [32] (Open Neural Network Exchange)用于神经网络的框架无关示意。将深度学习模型转换为ONNX,使其可能无效地跨各种HW平台部署。现有的自底向上办法中的后处理不是标准化的,并且应用的操作不是规范深度学习库的一部分。例如,基于关联嵌入的自下而上办法应用Kuhn-Munkres算法[29]进行分组,这是不可微的,不属于任何深度学习库的一部分。
咱们模型中应用的所有操作符都是规范深度学习库的一部分,并且与ONNX兼容。因而,整个模型能够导出到ONNX,使其易于跨平台部署。这个独立的ONNX模型能够应用ONNX Runtime[33]执行,将图像作为输出,并推断图像中每个人的边界框和姿态。没有其余自底向上的办法能够端到端导出到两头的ONNX示意。
4. 试验
4.1. COCO关键点检测
数据集。 咱们在COCO数据集[7]上评估了咱们的模型。它由超过20万张图像、25万个person实例和17个关键点组成。train2017集包含57K张图像,而val2017和testdev2017集别离由5K和20K张图像组成。咱们在train2017集上训练模型,并在val2017和test-dev2017集上报告后果。
评估指标。 咱们遵循规范的评估指标,并应用基于oks的指标进行COCO姿态预计。咱们报告了不同阈值和不同对象大小的均匀准确率和均匀召回率得分:AP, AP50, AP75, APL, AR。
训练。 咱们采纳相似YOLOv5[1]的加强、锚点抉择和损失加权策略。咱们应用随机尺度[0.5,1.5])的数据加强,随机平移[-10,10],概率为0.5的随机翻转,概率为1的马赛克加强,以及各种色彩加强。
咱们应用带有余弦调度器的SGD优化器。根底学习率设置为1e-2。咱们对模型进行300个epoch的训练。抉择损失权重来均衡3.4节中探讨的各种损失。测试。咱们首先在放弃长宽比的状况下,将输出图像的大边调整为所需的尺寸。图像的下半局部进行填充,生成方形图像。这保障了所有输出图像都有雷同的大小。
4.2. COCO val2017上的后果
表1将咱们的办法与其余基于Higher HRNet和EfficientHRNet的SOTA办法进行了比拟。咱们所有的模型在AP方面都与现有的相似计算方法相竞争。咱们的成就在AP50中最为显著,如图5所示。例如,YOLOv5m6-pose获得了比SOTA DEKR[30]模型更好的AP50,其复杂度、高出4倍。YOLOv5l6-Pose比任何其余自下而上的办法获得了更好的AP50。APL也是如此。例如,YOLOv5l6-Pose实现了比SOTA DEKR[30]模型更好的APL,其复杂度比SOTA DEKR[30]模型高2倍。COCO数据集上的这些结果表明,YOLO-Pose是现有的基于更高HRNet的最先进的自下而上办法的无力代替。
表2:在COCO2017 test-dev set上与自下而上办法的比照。翻转测试和多尺度测试后果的复杂度别离调整了2倍和5.25倍。
4.3. 融化钻研:ok损失vs L1损失
ok损失是咱们工作的次要奉献之一。因为这种损失与L1损失不同是受约束的,因而训练动静要稳固得多。在应用L1损失进行训练时,咱们必须略微调整损失权重。通过在YOLv5-s6_960上的测试,ok损失的性能显著优于L1损失。咱们应用[30]中的尺度归一化L1损失来训练咱们的模型,以查看尺度不变性对咱们损失公式的影响。
表3:各种损失函数的比拟。在损失函数中退出尺度信息能够进步精度。然而,OKS损失是取得最优OKS度量的最合适抉择。
4.4. 融化钻研:跨分辨率
咱们曾经在各种分辨率下训练了咱们的模型。咱们抉择960作为根底分辨率,因为咱们可能在此分辨率下取得有竞争力的性能。除此之外,性能增益在很大水平上达到饱和,如下图YOLOv5-s6模型:
表4:与SOTA低复杂度(少于30 gmac)模型在COCO2017 val数据集上的比照
在较低分辨率下,YOLOv5s6-pose在COCO val2017上的体现显著优于现有的最先进的低复杂度模型,如EfficientHRNet[15]。
图4。COCO val2017上低复杂度模型的mAP vs GMACS(少于30GMACS)。
4.5. 融化钻研:量化
YOLOv5模型基于sigmoid-weighted linear unit (SiLU)[39]激活。正如Renjie Liu等人察看到的[38],像SiLU或硬swish[40]这样的无界激活函数对量化不敌对,而具备ReLUX激活的模型对量化是鲁棒的,因为它们的有界性质。因而,咱们用ReLU激活从新训练了咱们的模型。咱们察看到从SiLU到ReLU的激活变动降落了约1-2%。咱们将这些模型称为YOLOv5_relu。咱们对这些模型进行了量化,以进一步将它们定位为嵌入式敌对型。这些模型能够以能够忽略不计的精度降落(~1.2%)进行量化,如下表所示,以YOLOv5-s6_960_relu为例。
表5:咱们的模型在各种量化计划下的精度。
在16位量化的状况下,AP有0.1%能够忽略不计的降落,AP50没有降落。8位量化时,精度有显著降落。然而,应用混合精度,其中只有选定的多数卷积层在16位,其余层在8位,咱们可能从float到1.2%的降落相当大的桥梁。在咱们的混合精度设置中,咱们必须将所有层的~30%设置为16位。因为大多数CNN加速器都针对整数运算进行了优化,因而用8位量化或混合精度实现良好的精度对于在嵌入式零碎中部署任何模型都至关重要。量化模型导致更低的提早和更少的功耗。
以上后果是应用后训练量化(PTQ)而不是量化感知训练(QAT)。
4.6. COCO test-dev2017上的后果
test-dev数据集的后果如表2所示。与相似计算的SOTA自下而上的办法相比,咱们的模型在mAP指标上具备竞争力。YOLO-Pose对AP50显示了弱小的后果,超过了图6所示的所有自下而上的办法。这能够归因于端到端的训练,其中咱们的办法具备固有的分组,这比图1所示的其余自底向上办法中的独立分组更鲁棒。YOLO-Pose具备联结学习的益处。因为咱们的模型能够正确定位每个人的实例,它可能以相当好的精度预测相干的关键点,从而显著进步AP50。例如,YOLOv5m6-Pose达到了89.8的AP50。而采纳HRNetW48骨干网络的DEKR则达到了89.4的AP50。在计算方面,YOLOv5m6-Pose在AP50方面的复杂性超过了模型的4倍。图5和图6为AP50提供了一个简略的比照。
5. 论断
咱们提出了一个端到端的基于YOLOv5的联结检测和多人姿势预计框架。咱们曾经表明,咱们的模型在显著升高复杂度的状况下优于现有的自底向上办法。咱们的工作是朝着对立指标检测和人体姿势预计畛域迈出的第一步。到目前为止,姿势预计的大多数停顿都是作为一个不同的问题独立产生的。咱们置信,咱们的SOTA后果将进一步激励钻研界摸索联结解决这两项工作的后劲。咱们工作背地的次要动机是将指标检测的所有益处传递给人体姿势预计,因为咱们正在见证指标检测畛域的疾速提高。咱们曾经对扩大YOLOX指标检测框架的这种办法进行了初步试验,并获得了有心愿的后果。咱们也将把这个想法扩大到其余物体检测框架,进一步推动高效人体姿势预计的极限。
本文参加了SegmentFault 思否写作流动,欢送正在浏览的你也退出。