YOLOPose:除了目标检测,YOLO还能不花代价地估计人体姿态,对实时性能有要求必看!

这篇具有很好参考价值的文章主要介绍了YOLOPose:除了目标检测,YOLO还能不花代价地估计人体姿态,对实时性能有要求必看!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

YOLOPose:除了目标检测,YOLO还能不花代价地估计人体姿态,对实时性能有要求必看!

导读:

YOLO,是一种流行的目标检测框架。如果将YOLO引入姿态检测任务中,将取得什么结果呢?这篇文章实现了单阶段的2D人体姿态检测,与自上而下或自下而上的方法不同,该方法将人体检测与关键点估计联合实现,在不采用数据增强如翻转、多尺度等情况下,实现COCO keypoint上领先的性能,并且该方法可以集成中其他目标检测算法中实现姿态估计,而几乎不增加运算量,对实时估计人体姿态非常关键。


ArXiv:https://arxiv.org/abs/2204.06806

Open Code(Pose已开源): https://github.com/TexasInstruments/edgeai-yolov5/tree/yolo-pose


摘要

这篇文章介绍了YoLoPose,基于流行的YOLO框架,实现了一种新颖的无热力图的关节检测与2D多人姿态估计。当前,基于热力图的方法是两个阶段,这个方法并不是最优的,因为他们不是端到端训练的,并且训练依赖于可替代的L1损失,它并不等同于最大化评估策略,即目标关键点相似度(object keypoint similarity,OKS)。该文章实现了一种端到端训练的模型,并优化OKS指标本身。这个模型在单向前向传播过程中,可以实现联合检测人体框以及对应的2D姿态,因此对于自上而下或自下而上的方法中是最好的。该方法不需要自下而上方法的后处理过程,即将检测到的关键点分组到一个骨架中,因为每个检测框都有一个相关的姿态,从而导致了关节点的固有分组。也不像自上而下的方法,多个前向传播被取消,因为所有人与他们的姿态在一个单向推理中一起被定位。YOLOPose在COCO val上取得了领先的结果,在AP50上取得了90.5%以及test-dev上取得了90.3% 的AP50,超过了当前所有的基于自下而上的方法,在单次的前向传播中,不使用翻转、多尺度或其他数据增强方式。
YOLOPose:除了目标检测,YOLO还能不花代价地估计人体姿态,对实时性能有要求必看!
YOLOPose在密集人群上的姿态估计效果图

YOLOPose:除了目标检测,YOLO还能不花代价地估计人体姿态,对实时性能有要求必看!
与YOLOPose对比,HigherHRNet-w32处理密集人群效果不佳

一、介绍

多人2D姿态估计,是理解图像中人体的一种任务。输入一张图片,其目标是检测每一个人和定位到他们对应的关节点。推测图片中多人的姿态是有挑战的,由于图像中存在人体数量的变化,尺度变化,身体部位遮挡,人体非刚性等因素。

当前对于姿态估计的方法主要分为两大类:自下而上,和自上而下的。自上而下或者双阶段的方法是目前最领先的方案。他们首先采用一个强大的人体检测器,然后针对每个人体做单人的姿态估计。自上而下的方法的复杂度随着图像中人体数量而线性增加。多数实时应用需要限制运行时间,不倾向于采用自上而下的方法,由于其复杂度较高。反而,自下而上的方法提供了恒定的运行时间,因为他们在单次检测中依赖热力图检测所有关键点,然后进行复杂的后处理将他们分组成个体。后处理可能涉及到如像素级别的NMS,线积分,细化,分组等步骤。坐标调整和细化减少了下采样热力图的量化误差,其中NMS用于寻找热力图中的局部最大值。即使经过后处理,热力图也许不够清晰,去区分同一类型的两个靠得很近的关键点。同样,自下而上的方法也不能端到端训练,因此后处理步骤是不可差分的,因此在卷积网络之外发生。他们在方法上存在很大差异,从线性规划到各种启发式算法。很难用CNN加速器去加速他们,因此速度也很慢。有单次推理的方法,虽然避免了分组任务,但不能与自下而上的方法相提并论。他们依赖额外的后处理来提升性能。

这篇文章的动机,是解决姿态估计不使用热力图,而与目标检测保持一致,因为目标检测中的挑战与姿态估计类似,例如尺度多样性,遮挡,人体非刚性等。因此,如果一个人体检测网络能够处理这些问题,它也能处理姿态估计。例如,最近的目标检测框架尝试解决尺度变化的问题,通过在多个尺度上做预测。这里,我们采用相同的策略去针对每个检测去预测多尺度的人体姿态。相似地,在目标检测领域中所有主要的进展,无缝传递给姿态估计。该论文提出的姿态估计方法能够轻松集成到计算机视觉系统中其他运行目标检测的方法中,计算量增加几乎为0。

该方法YOLOPose,基于当前流行的YOLOv5框架。这是首次提出解决2D姿态估计不使用热力图的方法,并且摆脱当前常用的很多非标准化的后处理操作。该方法使用目标检测中相同的后处理,在COCO上取得了领先性能。

在YOLOPose中,每一个anchor框或锚点,与真实标记框匹配,存储着其完整的2D姿态以及边界框位置。来自不同人体的两个相似关节点在空间上可以互相靠近。使用热力图很难区分这种情况。但是,如果这两个人通过不同的anchor匹配,这将很容易区分空间上靠近的相似关节点。再次强调,与锚点关联的关键点已经分组。在自下而上的方法中,一个人的关节点很容易被另一个人弄混淆,如上图所示,然而该方法能够本质上解决这个问题。不同于自上而下的方法,YOLO-Pose的复杂度与图像中人体数量是无关的。因此,我们具有了自上而下,自下而上的方法中最好的:恒定的运行时间,简单的后处理。贡献总结如下:

  • 我们将多人姿态估计与目标检测任务保持一致,因为相似的挑战如多尺度、遮挡等都存在。因此,迈出了统一这两个领域的第一步。该方法直接从目标检测领域的任何进步中收益。
  • 该方法基于无热力图,使用标准的目标检测后处理步骤,替代了自下而上的复杂预处理步骤,以端到端方式训练而不采用独立的后处理。
  • 将目标框检测的IoU损失扩展到关键点估计上。OKS不仅用于评估,也用于训练的误差。OKS损失是尺度不变的,固有地为不同关节点提供了不同的权重。
  • 与领先的DEKR算法相比,在少4倍运算量情况下,获得了89.8%的AP50,还高了0.4%。
  • 将检测与姿态估计联合的框架,在目标检测框架上几乎不额外增加运算实现了姿态估计。
  • 提出了低复杂度的模型变体,明显超过了EfficientHRNet等关注实时的模型。

二、相关工作

主要调研了自上而下、自下而上的两类方法。这里省略,要看具体的工作,参考原文。

三、YOLO-Pose

YOLO-Pose是一中single shot的方法如同其他自下而上的方法。但是,它不使用热力图。相反,它利用anchors去关联人体的关节点。它基于YOLO5检测框架,也能扩展到其他框架。作者也在YOLOX上有限地验证。下图展示了整体架构,包含关键点检测头。
YOLOPose:除了目标检测,YOLO还能不花代价地估计人体姿态,对实时性能有要求必看!
YOLO-pose architecture based on YOLOv5. Input image is passed through darknetcsp backbone that generates feature maps at various scales {P3, P4, P5, P6}. PAnet is used for fusing these feature maps across multiple scales. Output of PANet is fed to detection heads. Finally each detection head branches into box head and keypoint head.
基于YOLOv5的YOLO-Pose架构。输入图像经过darknet骨架,产生不同尺度的特征图(P3,P4,P5,P6)。PANet被采用来融合不同尺度的特征图。PANet的输出作为检测头的输入。最后,每个检测头分支到检测框头和关键点头中。

3.1 概述

为了展示该方法的潜力,作者需要选择一个检测人体效果好的框架。YOLOv5是当前领先的检测器,在考虑精度和运算量方面。因此YOLOv5被选取,并作为基础去构建。它主要关注COCO数据集上的80个类别检测,其中每个anchor上的box head去预测85个元素。他们分别对应边界框(4),目标分数(1),80个类别的置信度(80)。每个格子位置,会有不同形状的三种anchor。

问:YOLOv5的box head输出为什么有85个元素?
其中,80个元素对应类别,边界框对应4个元素,1个目标分数

对于人体姿态估计,它就检测一种类别即人体,每个人体有17个关节点,并且每个关节点被位置和置信度 { x , y , c o n f } \{x,y,conf\} {x,y,conf}所确定。因此,每一个anchor,将会关联17个关节点的51个元素。因此,对于每个anchor,关键点头预测51个元素,框头预测6个元素。对于n个关节点的anchor,所有需要的元素可以表达成一个向量,即:
P v = { C x , C y , W , H , b o x c o n f , c l a s s c o n f , K x 1 , K y 1 , K c o n f 1 , ⋅ ⋅ ⋅ , K x n , K y n , K c o n f n } P_v=\{C_x,C_y,W,H,box_{conf},class_{conf},K^1_x,K^1_y,K^1_{conf},\cdot \cdot \cdot, K^n_x,K^n_y,K^n_{conf}\} Pv={Cx,Cy,W,H,boxconf,classconf,Kx1,Ky1,Kconf1,,Kxn,Kyn,Kconfn}

问:YOLOPose,在YOLOv5基础上增加了什么?
答:YOLOPose,除了YOLOv5原有的box head,还增加了keypoint head。box head只检测人体类别,输出6个元素;keypoint head检测关键点,输出x和y位置、置信度共三个元素。一种17个关键点,输出51个元素。

关键点置信度是基于其是否可见来训练的。如果一个关键点是可见的或者遮挡了,那么人工标注置信度设置1;如果它在视野范围之外,则设置为0。在推理阶段,我们保留置信度大于0.5的关键点。其他预测的关键点被丢弃。预测的关键点置信度不用于评估。但是,由于网络针对每一个检测都输出17个关键点,我们需要过滤掉视野范围外的关键点。否则,会有悬空的关键点导致骨架变形。当前的自下而上的方法基于热力图需要这个操作,因为视野外的关键点在第一阶段就不会被检测到。

YOLOPose采用CSP-darknet53作为骨架,PANet融合多尺度特征。遵从四个检测头在不同尺度的做法。最后,有两个耦合的头用于预测边界框与关键点。

本架构限制其运算量在150 GMACS(乘法累加运算量,约等1~1.2倍GFLOPs浮点数运算)内,也能达到有竞争力的结果。在进一步增加运算量的情况下,能够缩小与自上而下方法的差距。但是,我们不追求那个,而关注实时模型。

3.2 基于Anchor的多人姿态表述

对于给定一张图片,一个anchor匹配到一个人体,它包含了人体的2D姿态和位置框。位置框的坐标会根据anchor中心进行转换,而位置框尺度会被anchor的宽高归一化。同样地,关键点的位置会根据anchor中心进行转换,但关键点不会被anchor的宽高所归一化。由于这样的改进是独立于anchor的宽高,所以扩展到其他anchor-free的框架如YOLOX和FCOS上也比较容易。

3.3 基于IoU的边界框损失函数

多数现代目标检测器会采用会优化后的IoU变体,如GIoU,DIoU和CIoU等损失,替代了基于距离的损失,以用于更好检测边界框,因为这些损失是尺度不变的,并能够直接优化评估策略本身。作者使用CIoU损失用于边界框的监督。对于一个给定的真实边界框,它与第 k t h k^{th} kth个anchor匹配在位置 ( i , j ) (i,j) (i,j),其尺度为 s s s,那么,他们之间的损失可以定义为:
L b o x ( s , i , j , k ) = ( 1 − C I o U ( B o x g t s , i , j , k , B o x p r e d s , i , j , k ) ) L_{box}(s,i,j,k)=(1-CIoU(Box^{s,i,j,k}_{gt},Box^{s,i,j,k}_{pred})) Lbox(s,i,j,k)=(1CIoU(Boxgts,i,j,k,Boxpreds,i,j,k))

其中, B o x p r e d s , i , j , k Box^{s,i,j,k}_{pred} Boxpreds,i,j,k是第 k t h k^{th} kth个anchor在位置 ( i , j ) (i,j) (i,j),尺度为 s s s的预测框。在作者的设计中,每个位置有三个anchors,预测有四个尺度。

3.4 人体姿态损失函数表述

OKS是评估关键点最流行的策略。传统上讲,基于热力图的自下而上的方法采用L1损失去检测关键点。但是,L1损失可能不合适去获取优化的OKS。因为L1损失是最朴素的,并不考虑一个物体的尺度或者关键点的类型。由于热力图是概率图,不可能去使用OKS作为纯热力图方法的损失函数。OKS能当做损失函数仅当关键点位置在回归的情况下。有人提出尺度归一化的L1损失用于关键点回归,这是迈向OKS损失的一步。

因此,我们直接回归关键点,即anchor中心,我们能够优化评估策略自身而不是一中损失函数。我们扩展了从边界框的IoU损失到关键点中来。在关键点中,OKS被当做IoU。因此OKS损失本质上是尺度不变的,针对特定的关键点倾斜重要性。例如,一个人头部的关键点如耳朵、鼻子和眼睛等,会比身体如肩膀,膝盖和臀部等在像素级别上受到更多的错误惩罚。这个权重因子是COCO作者从冗余的标注验证集中根据经验选择的。不像原始的IoU损失,会在非重叠情况下出现梯度消失,OKS损失不会停滞。因此,OKS损失更像dIoU损失。针对每一个单独的关键点计算OKS,并累加到最终的OKS损失或者关键点IoU,即:
YOLOPose:除了目标检测,YOLO还能不花代价地估计人体姿态,对实时性能有要求必看!
针对每一个关键点,作者学习了一个置信度参数,它能够表示该人是否存在该关键点。因此,关键点是否可见的标志,作为真实标注。可得:
YOLOPose:除了目标检测,YOLO还能不花代价地估计人体姿态,对实时性能有要求必看!
如果真实标注的边界框与第 K t h K^{th} Kth个anchor匹配了,那么在位置 ( i , j ) (i,j) (i,j),尺度 s s s以及那个anchor的损失将会有效。最后,在所有尺度、anchors和位置上的整体损失表示为:
YOLOPose:除了目标检测,YOLO还能不花代价地估计人体姿态,对实时性能有要求必看!

2.5 测试时间增强策略

图像翻转与多尺度测试是两个常用的方法。翻转,将会增加2倍运算量,而多尺度通常在三个尺度上如 ( 0.5 × , 1 × , 2 × ) (0.5\times,1\times,2\times) (0.5×,1×,2×)等,对应增加运算量为 ( 0.25 + 1 + 4 ) (0.25+1+4) (0.25+1+4)即为原始运算量的5.25倍。本方法不使用任何的数据增强策略。

2.6 边界框外的关键点

自上而下的方法在遮挡情况下表现不佳。YOLOPose比自上而下方法好的一点是对于在边界框内的关键点没有约束。因此,如果由于遮挡而位于边界框外的关键点,仍然能够检测正确。但是,在自上而下的方法中,如果人体检测不正确,姿态估计也会失败。对于遮挡和不正确的边界框检测等挑战在该方法中得到一定缓解。

YOLOPose:除了目标检测,YOLO还能不花代价地估计人体姿态,对实时性能有要求必看!YOLOPose:除了目标检测,YOLO还能不花代价地估计人体姿态,对实时性能有要求必看!
我们可以看到,在边界框外的关键点也能检测到。这对于自上而下的方法,肯定会漏检。

实验

数据集:

COCO数据集。包含200,000张图片,和250,000个人体实例。

评估策略:

采用标准的评估策略,使用OKS策略用于姿态估计。评估了精度和召回率,在不同的阈值和尺度上。

训练:

我们采用与 YOLOv5 [1] 类似的增强、锚选择和损失加权策略。我们使用随机尺度 ([0.5, 1.5]) 的数据增强、随机平移 [-10, 10]、概率为 0.5 的随机翻转、概率为 1 的马赛克增强以及各种颜色增强。

测试:

我们首先将输入图像的大边调整为所需的大小,保持纵横比。图像的下侧被填充以生成方形图像。这确保所有输入图像具有相同的大小。

结果:

YOLOPose:除了目标检测,YOLO还能不花代价地估计人体姿态,对实时性能有要求必看!
YOLOpose取得了领先的性能,并且运算量比同期最领先的DEKR节省近一半的运算量。

总结

该文提出了一个端到端的基于 YOLOv5 的联合检测和多人姿态估计框架。它已经证明,YOLOPose在复杂性显着降低的情况下优于现有的自下而上方法。此工作是统一目标检测和人体姿态估计领域的第一步。到目前为止,姿态估计的大部分进展都是作为一个不同的问题独立发生的。我们相信,这个SOTA 结果将进一步鼓励研究界探索共同解决这两项任务的潜力。此工作的主要动机是将对象检测的所有好处传递给人体姿势估计,因为我们正在目睹对象检测领域的快速进展。我们已经为 YOLOX 目标检测框架扩展了这种方法进行了初步实验,并取得了可喜的成果。作者也将把这个想法扩展到其他对象检测框架,并进一步推动有效人体姿态估计的极限。文章来源地址https://www.toymoban.com/news/detail-461789.html

到了这里,关于YOLOPose:除了目标检测,YOLO还能不花代价地估计人体姿态,对实时性能有要求必看!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • YOLO目标检测——天气检测数据集下载分享

    天气检测数据集可以用于训练天气预报模型,帮助预测未来的天气情况,包含了晴天、雨天、雾天、雪天 数据集点击下载 :YOLO天气检测数据集+2300图片+4类别.rar

    2024年02月11日
    浏览(37)
  • YOLO v5 实现目标检测

    本文用于学习记录 YOLO v5 实现目标检测 安装完成以后,按下开始键( win 键)出现 anaconda3 这个文件夹,说明 anaconda 已经安装好了 点击左下图中标红的图标,就可打开 anaconda 的终端如右下图: 输入 conda create -n pytorch1 python=3.9,在 base 环境中这条命令,就会创建一个新的虚拟

    2024年01月16日
    浏览(46)
  • 目标检测网络YOLO进化之旅

    yolo系列网络在目标检测领域取得了巨大的成功, 尤其是在工程实践中, 以其出色的性能优势获得了广泛的应用落地。 YOLO的前3个版本是由同一个作者团队出品, 算是官方版本。 之后的版本都是各个研究团队自己改进的版本, 之间并无明显的继承关系。 其中v5和v8 版本由

    2024年04月22日
    浏览(27)
  • 开集目标检测-标签提示目标检测大模型(吊打YOLO系列-自动化检测标注)

    大多数现有的对象检测模型都经过训练来识别一组有限的预先确定的类别。将新类添加到可识别对象列表中需要收集和标记新数据,并从头开始重新训练模型,这是一个耗时且昂贵的过程。该大模型的目标是开发一个强大的系统来检测由人类语言输入指定的任意对象,而无需

    2024年01月23日
    浏览(62)
  • YOLO目标检测——花蕊分类检测数据集下载分享

    花蕊分类检测数据集共同7300图片,103类别,分别放在103个文件夹中,可应用于:植物学研究、花卉市场和园艺业、智能农业、视觉搜索引擎、等等 数据集点击下载 :YOLO花蕊分类检测数据集+7300图片+102种类别.rar

    2024年02月11日
    浏览(34)
  • 目标检测YOLO实战应用案例100讲-森林野火预警的小目标检测

    目录 前言 传统目标检测算法  基于深度学习的目标检测算法  两阶段目标检测算法 

    2024年02月09日
    浏览(49)
  • 目标检测YOLO实战应用案例100讲-SAR图像多尺度舰船目标检测

    目录 前言 SAR舰船目标检测  基于背景特性的舰船目标检测方法 

    2024年02月09日
    浏览(50)
  • 目标检测网络系列——YOLO V1

    2024年02月07日
    浏览(43)
  • YOLO v2实现图像目标检测

    熊文博,男,西安工程大学电子信息学院,2020级硕士研究生,张宏伟人工智能课题组。 研究方向:机器视觉与人工智能 电子邮件:996270714@qq.com 师兄的CSDN主页:欢迎关注和相互交流学习. YOLO系列学习-主要熟悉各个模型的改进 YOLO英文名字为Yolo Only Look Once,意为你只看一次,

    2024年02月09日
    浏览(44)
  • 深度学习|目标检测与YOLO算法

    目标检测(object detection)是在给定的图片中精确找到物体所在位置,并标注出物体的类别。物体的尺寸变化范围很大,摆放物体的角度、姿态不确定,而且可以出现在图片任何地方,同时物体也可是多个类别的。 目标检测在多个领域中被广泛使用。例如,在无人驾驶领域,

    2024年02月04日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包