• 【人体骨骼点】算法综述


    2013

    DeepPose(2013.12,google)

    • 第一个将深度学习应用于humanPose,fc层后面直接暴力回归xy坐标。

    2014

    Joint-cnn-mrf(2014.06,纽约大学的LeCun组)

    • 第一个采用heatmap的方式来回归出关键点。

    SpatialDropout(2014,纽约大学的LeCun组)

    • 第一个采用多尺度fm。

    MPII 数据集(2014)

    • 此前的大部分paper都是基于FLIC以及LSP来做评估的,但是在深度学习时代,数据量还是相对偏少(K级别)。
    • MPII把数据量级提升到W级别,同时因为数据是互联网采集,同时是针对activity来做筛选的,所以无论从难度还是多样性角度来讲,都比原来的数据集有比较好的提升。

    2016

    CPM(Convolutional Pose Machines,2016.02,CMU)

    • 通过multi-stage来不断把空间信息喂给更深的层。有skip-connect的影子,但是每次喂入都要先过一个降采样小网络,很低效。
    • 采用了 intermediate supervision(提供和最后面一样的heatmap来做中间监督) ,来解决梯度消失的问题。(网络越深,越容易梯度消失。在中间加点监督,可以有效缓解梯度消失)。这也成为了后续的标配。
    • 这个工作提出了很重要的一点:使用神经网络同时学习图片特征(image features)和空间信息(spatial context),这是处理姿态估计问题必不可少的两样信息。
    • 从CPM开始,神经网络已经可以e2e的把feature representation以及关键点的空间位置关系建模进去(隐式的建模),输入一个图片的patch, 输出带spatial信息的tensor,channel的个数一般就是人体关键点的个数(或者是关键点个数加1)。空间大小往往是原图的等比例缩放图。通过在输出的heatmap上面按channel找最大的响应位置(x,y坐标),就可以找到相应关键点的位置。这种heatmap的方式被广泛使用在人体骨架的问题里面。
    • 后续2D的人体姿态估计方法几乎都是围绕heatmap这种形式来做的(3D姿态估计将会是另外一条路),通过使用神经网络来获得更好的feature representation,同时把关键点的空间位置关系隐式的encode在heatmap中,进行学习。大部分的方法区别在于网络设计的细节。

    Hourglass(2016.04,Princeton的Deng Jia组)

    • 设计了hourglass block(本质上就是unet+残差),以resblock的方式串接。
    • Stacked Hourglass Networks是首个以模块形式堆叠形成的humanPose网络。
    • 最大改进是网络结构更简单,更优美。效果惊艳。
    • 这个网络由多个堆叠起来的Hourglass module组成(因为网络长的很像多个堆叠起来的沙漏)。一开始先是快速降采样到1/4,之后每个Hourglass module都包含一个对称的U-Net过程,且size一致,前者通过卷积和pooling将图片从高分辨率降到低分辨率,后者通过upsample将图片从低分辨率恢复到高分辨率。
    • 从MPII上的结果来看,明显提升,达到90.9的PCKh。

    COCO数据集(2016)

    • 这个时间点也是非常好的时间点。一方面,MPII已经出现两年,同时有很多非常好的工作,比如CPM, Hourglass已经把结果推到90+,数据集已经开始呈现出一定的饱和状态。另外一方面,物体检测/行人检测方面,算法提升也特别明显,有了很多很好的工作出现,比如Faster R-CNN和SSD。所以COCO的团队在COCO的数据集上面引入了多人姿态估计的标注,并且加入到了2016年COCO比赛中,当成是一个track。从此,多人姿态估计成为学术界比较active的研究topic。

    OpenPose(2016.11,CMU,COCO 2016 Keypoints冠军)

    • 输出为 heatmap(K维) + PAF(K-1维)
    • PAF:Part Affinity Fields,在关键点之间建立的一个向量场(K-1维)。
    • 在当时来讲,这个工作效果是非常惊艳的,特别是视频的结果图(Openpose的Github官网)。
    • 在COCO的benchmark test-dev上面的AP结果大概是61.8。

    AE(Princeton的Deng Jia组)

    • Associative Embedding。
    • 大概想法是希望对每个关键点输出一个embedding,使得同一个人的embedding尽可能相近,不同人的embedding尽可能不一样。
    • 在COCO2016比赛后,这个工作持续的在提升。文章发表的时候,COCO test-dev上面的结果在65.5。

    2017

    CPN(Cascaded Pyramid Network,2017.11,旷视,COCO 2017 Keypoint冠军)

    • 网络分为两部分:GlobalNet(FPN+resBlock)和RefineNet。
    • GlobalNet仰仗FPN,特征提取能力明显增强。RefineNet将pyramid结构中不同分辨率下的特征进行了一个整合,兜底没有检测到的那些被遮挡的、难以定位的关键点,相当于在前半部分的基础上做refinement。
    • loss:L2

    2018

    Simple Baselines(2018,MSRA)

    • 网络是最简单的,仅在ResNet的基础上接了一个由多个deconvolutional layer组合成的head。
    • deconvolutional layer(封装了transpose convolution逆向卷积->BatchNorm->ReLU),目的是通过上采样fm,得到姿态估计所需的更高分辨率。
    • 这样一个简单的架构不输于使用保留每个分辨率信息的skip-connet的架构。(存疑🤨)

    MSPN(2018.01,旷视,COCO 2018 Keypoints冠军)

    • 在CPN的globalNet基础上面,做了多个stage的堆叠,类似于Hourglass的结构。
    • 2018年的COCO比赛中,旷视发现如果仅仅把CPN的backbone不停的扩大,发现效果提升很不明显。单个globalNet的模型能力可能已经比较饱和了,需要串联更多的globalNet。
    • COCO test-dev上76.1。

    2019

    HRNet(2019.02,MSRA wang jingdong组)

    • High-Resolution Net 结构很新颖,不再u-net结构(之前的比如Hourglass、Simple Baselines),避免了频繁上下采样造成的信息损失。
    • 由并行的高到低分辨率子网组成,并在多分辨率子网之间进行重复的信息交换(多尺度融合)。
    • 在这篇工作之前,我们往往会暴力的放大图片来保留更多信息,同时给出更精准的关键点定位,比如从256x192拉大到384x288。这样对效果提升还是很明显的,但是对于计算量的增加也是非常大的。而HRNet从另外一个角度,抛出了一个新的可能性。
    • 结构最简单,效果和hourglass一样惊艳。
    • 由于偏并行,工程优化的时候很容易加速
    • 一开始先快速降采样到1/4。随着网络的深入,逐渐添加低分辨率的分支。在并行的多分辨率子网之间反复通过fusion交互信息,且始终保留着最大分辨率(1/4)的分支。
    • 虽然fusion的次数多,但计算量、参数量却很低。
    • 网络分为4个stage,每添加一个新的低分辨率分支时视为一个新stage的开始。每个stage比上一个stage多一条分支,新增分支是对上一个stage所有fm进行strided convolution融合后的结果,分辨率大小是上一个分支分辨率size的一半,通道数double。每个stage由mutil-resolution block组成。
    • HRNet是目前SOTA的backbone,也可拓展到其他高分辨率的任务如语义分割。
    • 最后只采用最高分辨率的特征图作为输出,经过1*1卷积,softmax层生成分割预测图。
    • 从这篇论文开始直到至今(2022),基本上所有刷榜的2D姿态估计论文都会以HRNet作为主干网络,而之前的论文主要以ResNet为主。2D姿态估计任务上采用HRNet主干网普遍都会比ResNet主干网高数个百分点。
    • 无中间监督(但是可以自己添加上)。
    • loss:MSE

    HigherHRNet

    • 在HRNet原来输出的fm(1/4)基础上,加了一个反卷积使模型多输出一个fm(1/2),有助于改善小目标预测。

    HRNetv2

    • 利用所有分辨率的特征图(HRNetV1只采用最高分辨率的特征图作为最后输出),对低分辨率fm upsamle后与高分辨率fm concat在一起。
    • 在object detection、semantic segmentation、facial landmark detection等其他任务的多个数据集上达到了SOTA。

    2020

    BlazePose(2020.06,google)

    2021

    RLE(ICCV2021 Oral)

    • Residual Log-likelihood Estimation
  • 相关阅读:
    新研一暑假计划
    【开源】基于Vue.js的快递管理系统的设计和实现
    音视频项目—基于FFmpeg和SDL的音视频播放器解析(十五)
    餐饮机器人AB面:有人离场、有人挺进
    SwiftUI Swift iOS iPadOS 实现更改 App 图标
    20240425金融读报:银行绿色数据收集ESG&银行物联网智慧贵金属案例
    单目3D目标检测——MonoCon 模型训练 | 模型推理
    Document:visibilitychange 事件
    Python基础教程:XML操作详解与XPath高级查询
    Win11内存管理错误怎么办?
  • 原文地址:https://blog.csdn.net/JNingWei/article/details/127414075