点击上方“计算机视觉工坊”,选择“星标”

干货第一时间送达

作者丨ChaucerG

来源丨集智书童

本文介绍了YOLO-Pose,一种新的无Heatmap联合检测方法,是基于YOLOv5目标检测框架的姿态估计。

现有的基于Heatmap的两阶段方法并不是最优的,因为它们不是端到端训练的,且训练依赖于替代L1损失,不等价于最大化评估度量,即目标关键点相似度(OKS)。

YOLO-Pose可以进行端到端训练模型,并优化OKS度量本身。该模型学习了在一次前向传递中联合检测多个人的边界框及其相应的二维姿态,从而超越了自上而下和自下而上两种方法的最佳效果。

YOLO-Pose不需要对自底向上的方法进行后处理,以将检测到的关键点分组到一个骨架中,因为每个边界框都有一个相关的姿态,从而导致关键点的固有分组。与自上而下的方法不同,多个前向传播被取消,因为所有人的姿势都是局部化的。

YOLO-pose在COCO验证(90.2%AP50)和测试开发集(90.3%AP50)上获得了新的最先进的结果,在没有翻转测试、多尺度测试或任何其他测试时间增加等Trick的情况超过了所有现有的自底向上的方法。本文中报告的所有实验和结果都没有任何测试时间的增加,而不像传统的方法使用翻转测试和多尺度测试来提高性能。

1YOLO-Pose方法

YOLO-Pose与其他Bottom-up的方法一样,也是一种Single Shot的方法。然而,它并不使用 Heatmaps。相反,YOLO-Pose将一个人的所有关键点与Anchor联系起来。

YOLO-Pose基于YOLOv5目标检测框架,也可以扩展到其他框架。YOLO-Pose也在YOLOX上在有限程度上进行了验证。图2说明了具有用于姿态估计的总体架构。

2.1 总览

YOLOv5在精度和复杂性方面都是一个非常不错的检测器。因此,选择它作为搭建的基础,并在其之上构建。YOLOv5主要关注于80个类COCO目标检测,Box head预测每个Anchor的85个元素,分别对应于80个类的边界框、目标分数和置信度得分。而对应于每个网格位置都有3个不同形状的Anchor

对于Human Pose Estimation可以看作为一个单类的Person detection问题,每个人有17个相关的关键点,每个关键点有再次识别的位置和可信度:。所以,与一个Anchor关联的17个关键点总共有51个元素。

因此,对于每个AnchorKeypoint Head预测51个元素,Box head预测6个元素。对于具有n个关键点的Anchor,总体预测向量定义为:

关键点置信度是基于关键点的可见性标志进行训练的。如果一个关键点是可见的或被遮挡的,那么Ground Truth置信度设置为1,否则,如果关键点在视场之外,置信度设置为0。

在推理过程中要保持关键点的置信度大于0.5。所有其他预测的关键点都被屏蔽的。预测的关键点置信度不用于评估。然而,由于网络预测了每个检测的所有17个关键点,需要过滤掉视场之外的关键点。否则,就会有置信度第的关键点导致变形的骨架。现有的基于HeatmapBottom-up方法不需要这样做,因为视野外的关键点一开始就不会被检测到。

YOLO-Pose使用CSP-darknet53作为Backbone,用PANet来融合来自Backbone的不同尺度的特征。接下来是4个不同尺度的Head。最后,有2个Decoupled Heads用于预测box和keypoints。

在这项工作中将YOLO-Pose的复杂性限制在150个GMACS之内,在这个范围内,YOLO-Pose能够实现具有竞争力的结果。随着复杂性的进一步增加,可以进一步弥补与Top-down方法的差距。然而,YOLO-Pose并不追求这条道路,因为YOLO-Pose的重点是实时模型。

2.2 Anchor based multi-person pose formulation

对于给定的图像,与一个人匹配的Anchor将存储其整个2D posebounding boxbounding box的坐标被转换为Anchor中心,而bounding box的尺寸则根据Anchor的高度和宽度进行规范化。同样,关键点位置将w.r.t转换为Anchor中心。然而,关键点并没有与Anchor的高度和宽度进行标准化。Key pointbox都被预测在Anchor的中心。

由于YOLO-Pose的改进与Anchor的宽度和高度无关,所以YOLO-Pose可以很容易地扩展到Anchor Free的目标检测方法,如YOLOX, FCOS

2.3 IoU Based Bounding-box Loss Function

大多数目标检测器优化了IoU Loss的变体,如GIoUDIoUCIoU Loss,而不是Distance-based Loss,因为这些损失是尺度不变的,并直接优化了评估度量本身。而YOLO-Pose使用CIoU Loss来进行bounding box监督。对于在位置和scale s上的第k个Anchor所匹配的Ground Truth bounding box,损失定义为:

为第k个Anchor在位置(i,j)和scale s的预测框。在YOLO-Pose中,每个位置有3个Anchor,并且预测发生在4个cale上。

2.4 Human Pose Loss Function Formulation

OKS是评估关键点的比较常用的指标。传统上,Heat-map based Bottom-up方法使用L1损失来检测关键点。然而,L1损失并不一定适合获得最佳的OKS。同样,L1损失并没有考虑目标的尺度或关键点的类型。由于Heat-map是概率图,因此在基于纯Heat-map的方法中不可能使用OKS作为损失。只有当回归到关键点位置时,OKS才能被用作损失函数。耿等人使用尺度归一化L1损失进行关键点回归,这是迈向OKS损失的一步。

因此,作者直接将回归的关键点直接定义为Anchor中心,于是便可以优化评估度量本身,而不是一个surrogate loss。这里将IoU损失的概念从box扩展到关键点。

在出现关键点的情况下,目标关键点相似度(OKS)被视为IOU。OKS损失本质上是尺度不变的,比某些关键点更重要。例如,一个人头部上的关键点(眼睛、鼻子、耳朵)比他身体上的关键点(肩膀、膝盖、臀部等)受到的惩罚更多。

基于YOLOv5的Yolo姿态架构。输入图像通过CSP-darknet53主干,生成不同尺度的特征图{P3、P4、P5、P6}。PANet用于跨多个尺度融合这些特征图。PANet的输出被输入到检测头。最后,每个检测头分支到Box Head和关键点Head。

与标准的IoU损失不同,IoU损失在不重叠的情况下,其梯度会消失,而OKS损失永远不会。因此,OKS损失更类似于DIoU损失。

对应于每个边界框,存储整个姿态信息。因此,如果一个GT边界框在位置和scale s上与Anchor相匹配,将预测相对于Anchor中心的关键点。对每个关键点分别计算OKS,然后求和,给出最终的OKS损失或关键点IOU损失。

对应于每个关键点,学习一个置信参数,显示那个人是否存在一个关键点。在这里,关键点的可见性标志被用作GT。

其中超参数:,,,。主要是用来平衡损失。

2.5 Test Time Augmentations

所有用于姿态估计的SOTA方法都依赖于测试时间增强(TTA)来提高性能。翻转测试和多尺度测试是两种常用的测试技术。翻转测试增加了2X的复杂度,而多尺度测试在三个尺度{0.5X, 1X, 2X}上运行推理,增加复杂度(0.25X+1X+4X)=5.25X。随着翻转测试和多尺度测试的进行,复杂性将增加5.25*2x=10.5X。

除了增加计算复杂度外,准备扩充数据本身也很昂贵。例如,在翻转测试中,需要翻转图像,这会增加系统的延迟。类似地,多尺度测试需要对每个尺度进行调整大小操作。这些操作可能非常昂贵,因为它们可能不会加速,不像CNN的操作。融合各种前向传播的输出需要额外的成本。对于嵌入式系统来说,在没有任何TTA的情况下,能够获得具有竞争力的结果才是最重要的。

因此,YOLO-Pose的所有结果都没有任何TTA。

2.6 Keypoint Outside Bounding Box

top-down的方法在遮挡下表现很差。与top-down的方法相比,YOLO-Pose的优势之一是:关键点没有限制在预测的边界框内。因此,如果关键点由于遮挡而位于边界框之外,它们仍然可以被正确地识别出来。然而,在top-down的方法中,如果人的检测不正确,姿态估计也会失败。在YOLO-Pose方法中,遮挡和不正确的框检测在一定程度上减轻了这些挑战,如图3所示。

2.7 ONNX Export for Easy Deployability

YOLO-Pose中使用的所有ops都是标准深度学习库的一部分,并且与ONNX兼容。因此,整个模型可以导出到ONNX中,这使得它很容易跨平台部署。这个独立的ONNX模型可以使用ONNXRUNTIME执行,以图像为输入,并推断图像中每个人的边界框和姿势。没有其他top-down的方法可以端到端地导出到中间的ONNX表示。

2实验结果

3.1 消融实验

1、OKS Loss vs L1 Loss

2、Across Resolution

3、量化操作

YOLOv5模型是sigmoid-weighted linear unit (SiLU)。Liu等观察到,像SiLU或HardSwish这样的无界激活函数对量化不友好,而具有ReLUX激活的模型由于其具有有限性,对量化具有鲁棒性。

因此,用ReLU激活对模型进行了重新训练。我们观察到从SiLU到ReLU的活化降低了1-2%。我们称这些模型为YOLOv5_relu。

3.2 COCO结果

3参考

[1].YOLO-Pose: Enhancing YOLO for Multi Person Pose Estimation Using Object Keypoint Similarity Loss

本文仅做学术分享,如有侵权,请联系删文。

干货下载与学习

后台回复:巴塞罗自治大学课件,即可下载国外大学沉淀数年3D Vison精品课件

后台回复:计算机视觉书籍,即可下载3D视觉领域经典书籍pdf

后台回复:3D视觉课程,即可学习3D视觉领域精品课程

3D视觉精品课程推荐:

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现

11.自动驾驶中的深度学习模型部署实战

12.相机模型与标定(单目+双目+鱼眼)

13.重磅!四旋翼飞行器:算法与实战

14.ROS2从入门到精通:理论与实战

15.国内首个3D缺陷检测教程:理论、源码与实战

重磅!计算机视觉工坊-学习交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有ORB-SLAM系列源码学习、3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、深度估计、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列三维点云系列结构光系列手眼标定相机标定、激光/视觉SLAM、自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~

YOLOv5永不缺席 | YOLO-Pose带来实时性高且易部署的姿态估计模型!!!相关推荐

  1. 今日 Paper | 模态平衡模型;组合语义分析;高表达性SQL查询;多人姿态估计模型等

    2020-02-07 14:23 导语:为了更好地服务广大 AI 青年,AI 研习社正式推出全新「论文」版块.   目录 视觉对话的模态平衡模型 对注意力的通用攻击和对应的数据集DAmageNet 半 ...

  2. 论文阅读笔记--Monocular Human Pose Estimation: A Survey of Deep Learning-based Methods 人体姿态估计综述

    趁着寒假有时间,把之前的论文补完,另外做了一点点笔记,也算是对论文的翻译,尝试探索一条适合自己的论文阅读方法. 这篇笔记基本按照原文的格式来,但是有些地方翻译成中文读起来不太顺,因此添加了一些自己的理 ...

  3. 天下武功,唯快不破,论推荐系统的“实时性”

    作者 | 王喆转载自知乎王喆的机器学习笔记 导读:周星驰著名的电影<功夫>里面有一句著名的台词--"天下武功,无坚不摧,唯快不破".如果说推荐系统的架构是那把" ...

  4. 加密初衷是什么?安全性or实时性

    实时性定义:在规定时间内系统的反应能力.要求在一定的时间内自外部环境收集信息,再及时作出响应.实时性越高,代表系统响应越快. 针对于嵌入式系统来讲,不能单纯以实时性判断产品好坏.要在稳定,安全的基础上 ...

  5. 《Towards Viewpoint Invariant 3D Human Pose Estimation》--深度图领域人体姿态估计的CNN算法

    <Towards Viewpoint Invariant 3D Human Pose Estimation>–深度图领域人体姿态估计的CNN算法 这篇文章是ECCV 2016的一篇3D人体 ...

  6. 实时人体姿态估计!Efficient-HRNet:更快!更强!!

    作者 | 小书童 编辑 | 集智书童 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心[姿态估计]技术交流群 许多新兴智能物联网应用对轻 ...

  7. 人体姿态估计(人体关键点检测)2D Pose训练代码和Android源码

    人体姿态估计(人体关键点检测)2D Pose训练代码和Android源码 目录 人体姿态估计(人体关键点检测)2D Pose训练代码和Android源码 1.人体姿态估计2D Pose方法 2.人体姿 ...

  8. YOLOv7姿态估计pose estimation(姿态估计+目标检测+跟踪)

    概述 YOLOv7姿态估计:一种快速准确的人体姿态估计模型 ​ 人体姿态估计是计算机视觉中的一项重要任务,具有各种应用,例如动作识别.人机交互和监控.近年来,基于深度学习的方法在人体姿态估计方面取得了 ...

  9. 2D/3D人体姿态估计 (2D/3D Human Pose Estimation)

    1. 基本概念 算法改进入口 网络设计 特征流 损失函数 数据集的重要性:只要有一个好的.针对性的数据集,问题都可以解决 过集成新一代AutoML技术,可降低算法试错成本 人体姿态估计(Human P ...

  10. 人体姿态估计技术的理解(Human Pose Estimination)

    本人毕设题目是人体姿态估计技术的相关课题,本人按照自己对人体姿态估计技术的学习和理解进行论述,如有不足,请大家指正!!! 首先讨论一个问题:什么是姿态估计? "姿势估计?--姿势这个词对不同 ...

最新文章

  1. /etc/passwd文件小析
  2. CSS知识点——可替换元素vs不可替换元素
  3. 一流人才在军界和商界,二流人才在政界,三流人才在学术界;男孩子,可以什么都不会,但是必须会挣钱...
  4. 显示内容长时,显示部分内容,鼠标移入显示全部内容
  5. 跨服务器Session共享的四种方法
  6. 怀卡托大学硕士计算机科学,2020年怀卡托大学研究生一般几年毕业
  7. Silverlight WCF 上传实现
  8. LevelDB 源码剖析(一)准备工作:环境搭建、接口使用、常用优化
  9. 【数论】YY的GCD(P2257)
  10. Python之%s%d%f使用实例
  11. ajax和php没反应,PHP和AJAX没有更新发生
  12. sap把系统内部直接写入到自建表_特斯拉放弃SAP后,仅四个月就开发了套ERP
  13. matlab拟合出余弦曲线,如何用matlab做正弦曲线拟合?
  14. 原子变量与非阻塞同步机制
  15. 前端代码审查利器:vscode插件GitLab Workflow
  16. Vue3使用echarts教程
  17. 硬件防火墙销售 Apache 遭遇DDOS攻击!!!!!!!!!!
  18. 【flv解析】Audio Specific Config 协议及解析
  19. 输入年份和月份输出该月有多少天python_输入年份和月份,输出该月有多少天,判断这一天是该年的第几天...
  20. 计算机常年开机,电脑长时间开机的危害

热门文章

  1. python--时间日期
  2. 实现jQuery在vs2008下的智能提示
  3. C# .net 多线程中集合数据同步
  4. 终结者:HTTPS在Tomcat中的使用(三)——Java代码生成密钥库文件及其对应的安全证书
  5. jquery对象与js对象的相互转换
  6. Windws Server 2012 Server Backup(备份与还原)
  7. JS实现查找数组中对象的属性值是否存在
  8. 修改双系统启动的名称
  9. MySQL VARCHAR的说明信息
  10. 大学使用python 编辑器_Python数据分析|最多人用的代码编辑器推荐