论文研读:Camera Distance-aware Top-down Approach for 3D Multi-person Pose
Estimation from a Single RGB Image
粗读10篇文献。
通过图2 我可以知道这个论文大概实现的这个姿态估计效果的方法,首先是把图片输入到DetectNet网络,该网络的作用是将人从图片中识别出来,然后根据识别出来的人物框图,分别送入到RootNet和PoseNet网络中去,RootNet是根节点识别网络,能够将这个图像的根节点信息估计出来,得到根节点的坐标(x,y,z)。PoseNet网络是来估计人的姿态,估计出的也是人的3d姿态。最后整合整个图的对应的3d人体姿态的空间系。
LCR-net:单张图的进行3d多人姿态估计的。
(对抗性)Wei Yang, Wanli Ouyang, Xiaolong Wang, Jimmy Ren,
Hongsheng Li, and Xiaogang Wang. 3d human pose esti-
mation in the wild by adversarial learning. In CVPR, 2018.
联合训练姿势回归和身体部位检测器的多任务框架。
Sijin Li and Antoni B Chan. 3d human pose estimation from
monocular images with deep convolutional neural network.
In ACCV, 2014.
自身编码器结构对高维关节依赖进行建模。
Bugra Tekin, Isinsu Katircioglu, Mathieu Salzmann, Vincent
Lepetit, and Pascal Fua. Structured prediction of 3d human
pose with deep neural networks. BMVC, 2016.
单阶段和两阶段方法。
贡献:
1.一种新的通用框架,用于从单个RGB图像中估计3D多人姿势。该框架是第一个完全基于学习的、相机距离感知的自上而下方法。
2.作者的框架输出多个人体关键点的绝对以相机为中心的坐标。为此,提出了一个3D人体根部定位网络(RootNet)。该模型可以很容易地将3D单人姿态估计技术扩展到多人的绝对3D姿态估计。
3.在几个公开可用的数据集上显著优于以前的3d多人姿态估计。
模型概述:
该方法由DetectNet、Root-Net和PoseNet组成。DetectNet检测输入图像中每个人的人类绑定框。
RootNet从DetectNet上截取人的图像,并定位人的根R =(xR,yR,ZR),其中xR和yR是像素坐标,ZR是绝对深度值。将相同的裁剪后的人体图像馈送到PoseNet,它估计根相对三维姿态Prelj = (xj, yj, Zjrel),其中xj和yj是裁剪后的图像空间中的像素坐标,Zjrel是根相对深度值。我们将Zjrel转换为Zjabs,方法是在原始输入图像空间中加入ZR并变换xj和yj。然后,通过简单的反投影得到最终的绝对3D位姿{Pabsj}Jj=1。
DetectNet
第一部分是backbone,通过使用深度残差网络(ResNet)[12]和特征金字塔网络从输入图像中提取有用的局部和全局特征。基于提取的特征,
第二部分,区域提议网络,提出人类边界框候选。
RoIAlign层提取每个提议的特征并将它们传递给第三部分,即分类头网络。头部网络判断给定的提议是否为人类,并估计边界框的细化偏移量。
RootNet
这个是解释了k的方程的由来,其实就是用了小孔成像的原理,用相似三角形,在已知相机的焦距情况下,
+
图4说明了,在不同的实际面积情况下,相同的距离;相同的实际面积和不同的距相机的距离。这也就说明如果单纯用假设实际面积和其在图片中的边界框里之间的比值来模拟实际的深度信息是存在问题的,如上图4a所示,蹲下的小孩距离相机显然是比站起的小孩近的,因此存在问题的。
网络结构
RootNet的网络架构由三个组件组成,
骨干网使用ResNet提取输入人体图像的有用全局特征。
其次,二维图像坐标估计部分从主干部分提取特征映射,并使用三个连续的去卷积层进行上采样,使用批处理归一化层和ReLU激活函数。然后,
应用1 × 1卷积生成根的2D热图。Soft-argmax从2D热图中提取2D图像坐标xR,yR。
第三个组件是深度估计部分。它也从骨干部分取一个特征图,应用全局平均池化。然后,池化后的特征图经过1 × 1的卷积,输出单个标量值γ。最后的绝对深度值ZR通过k乘以√ γ得1到。在实践中,我们实现了RootNet输出γ0并将其与k相乘以获得绝对深度值ZR=ZR = γ’k。
损失函数:我们通过最小化估计坐标和groundtruth坐标之间的L1距离来训练RootNet。损失函数Lroot定义如下:
其中*表示接地真值。
PoseNet
第一部分是主干,利用ResNet从裁剪后的人类图像中提取有用的全局特征。其次,姿态估计部分从主干部分提取特征映射,并使用三个连续的反卷积层对其进行上采样,并使用批处理归一化层和ReLU激活函数。对上采样的特征图进行1 × 1卷积,生成每个关节的3D热图。使用soft-argmax操作提取二维图像坐标(xj,yj)和根相对深度值Zjrel。
实验
数据集与评价指标:
1.Human3.6m:首先用MPJPE来衡量关键点预测的误差:。第一个是平均每个关节位置误差
(MPJPE),它是在对估计的和真实的三维姿态的人根对齐后计算的;第二个是进一步校准后的MPJPE。这个度量被称为PA-MPJPE。为了评估绝对三维人体根的定位,我们引入根R的估计坐标与基真R *之间的欧几里得距离的平均
值,即根位置误差的平均值(MRPE)作为一个新的度量。
其中上标i为样本指标,N为测试样本总数。
2.MuCo-3DHP和MuPoTS-3D数据集:为了进行评估,在与groundt
ruth进行根对齐后,使用来自各种阈值的正确关键点的3D百分比(3DPCKrel
)和3DPCK曲线下的面积。当预测值与真实坐标之间的欧几里得距离小于25cm时,认为预测值的平均精度(AP25root)是正确的。
3.方案:(1)方案1使用6名受试者(S1、S5、S6、S7、S8、S9)进
行训练,S11进行测试。PA MPJPE用作评估指标。
方案2使用5名受试者(S1、S5、S6、S7、S8)进行训练,
2名受试者(S9、S11)进行测试。MPJPE被用作评估指
标。我们在视频中每隔第5帧和第64帧进行训练和测
试,分别如下[43,44]。在训练时,除了Human3.6M数
据集外,我们还使用了后续的MPII 2D人体姿态估计
数据集[1][37,43,44,52]。每个小批由一半Human3.6M
数据和一半MPII数据组成。对于MPII数据,在Sun et
al.[44]之后,RootNet和PoseNet的z轴损失值都变为零。
(2)MuCo-3DHP和MuPoTS-3D数据集。按照之前的协议,我们合成了400K帧,其中一半是背景增强的。为了增强,我们使用COCO数据集中的图像,除了人类图像。在Mehta等人的MuCo-3DHP数据集上训练我们的模型时,我们使用了额外的COCO 2D人类关键点检测数据集。每个小批由一半MuCo-3DHP和一半COCO数据组成。对于COCO数据,在Sun et al.之后,RootNet和PoseNet的z轴损失值都变为零。
消融研究
将RootNet和PoseNet组合成一个共享骨干部分的单一模型(即ResNet)。来自主干的图像特征以并行方式馈送到RootNet和PoseNet的每个分支。与联合学习相比,在相似的运行时间下,作者的脱节学习给出了更低的误差。作者认为这是因为RootNet和PoseNet的每个任务不是高度相关的,所以联合训练所有的任务会增加训练的难度,导致准确率降低。
DetectNet的作用。为了展示人体检测的性能如何影响最终的3D人体根定位和3D多个人姿态估计的准确性,我们在表2的第二,第三和第四行中使用DetectNet在各种主干(即ResNet-50 [48], ResNeXt-101-32[48]) 和 groundtruth box 中比较了aprot25, AUCrel和3dpckab。由表可知,基于相同的RootNet,更好的人体检测模型提高了三维人体根定位和三维多人姿态估计的性能。然而,与其他Detect-Net模型相比,groundtruth box并没有显著提高整体精度。因此,我们有足够的理由相信,给定的框覆盖了大多数具有如此高检测AP的人实例。我们也可以得出结论,边界框估计精度对3D多人姿态估计精度没有太大的影响。
RootNet的影响。为了展示3D人体根定位的性能如
何影响3D多人姿势估计的准确性,我们使用表2中的各
种RootNet设置比较AUCrel和3DPCKabs。第一行和第二行
显示,基于相同的DetectNet,我们的RootNet显示出显着与直接使用k作为深度值的设置相比,aprot25和3dpckab更高。当k用作深度值时,我们使用RootNet的x和y。这个结果表明,RootNet成功地纠正了k值。第四行和最后
一行显示,与我们的RootNet相比,groundtruth人类根提
供了类似的AUCrel,但显着更高3DPCKabs
。这一发现表明,为了获得更准确的绝对3D多人姿态估计结果,需
要更好的人类根定位。
PoseNet的影响。表2中的所有设置都提供类似
AUCrel。特别是,表的第一行和最后一行显示,使用
groundtruth box和human root并没有提供明显更高的
AUCrel。
由于表中的结果是基于相同的PoseNet,我们可
以得出结论,AUCrel,这是对根相对3D人体姿态估计的
评估,高度依赖于PoseNet的准确性。
论文研读:BlazePose: On-device Real-time Body Pose tracking
摘要:
提出了BlazePose,这是一种用于人体姿势估计的轻量级卷积神经网络架构,专为移动设备上的实时推理而定制。在推理过程中,该网络为单个人生成33 个身体关键点,并在Pixel 2 手机上以每秒30 帧以上的速度运行。这使得它特别适合于健身跟踪和手语识别等实时用例。
贡献:
我们的主要贡献包括一个新颖的身体姿势跟踪解决方案和一个轻量级的身体姿势估计神经网络,它同时使用热图和回归到关键点坐标。
图1意思是,这一帧的目标位置(锚框)是由上一帧来的,也就是说不是每一帧都是执行Face detector识别人要检测的人,触发face detector的条件是当整个画面没有锚框时,再把当前帧送入face detector中,获得锚框。
在目标检测中,我们多数使用的是NMS,非极大值抑制的方法(生成很多框,取交并比最大的)去得到合适的锚框,但是这种方法是适合于刚性物体。而人体是非刚性的物体,比如说人招手、拥抱的时候,这个锚框就没法被交并比来筛选出来。因此作者们提出了一个观点:在单人人体检测中,即对于我们的单人用例,人的头部应该总是可见的。而人的脸是特征很鲜明的,五官位置也相当固定的,两个眼睛一个鼻子,相对位置信息是比较全面的。作者使用了一个人脸检测器,并且它还能识别出人的肩膀的中部和臀部的连线。这样所构成的圆圈,能够包含整个人体进去。
网络结构
仅在训练阶段使用热图和偏移损失,并在运行推理之前从模型中删除相应的输出层。因此,我们有效地使用热图来监督轻量嵌入,然后由回归编码器网络利用。训练用两个方法,预测用一个方法(回归),减少了计算量。**由图可以见,不同层块是进行跨层连接的,这样做的好处是,既发挥深层网络的语义信息,又能发挥浅层网络提取出的边缘、细粒度等底层的图像信息。图片中的实线是能够反向回传梯度的,虚线是不能回传的。**这个结构是受沙漏文献的启发。
对齐和咬合增强
作者认为在关键点检测中至关重要的是姿势的先验,也就是能否正确输入检测框,检测框的位置是精确的。因此需要对检测框进行处理。作者提出了对齐的操作。基于检测阶段或前一帧关键点,对人进行对齐,使臀部之间的点位于作为神经网络输入传递的方形图像的中心。估计旋转为臀部中部和肩部中部点之间的直线 L,并旋转图像,使 L 平行于 y 轴。对尺度进行估计,使所有的身体点都适合在身体周围划定的方形边界框中,如所示。最重要的是,应用 10%的缩放和移位增强,以确保跟踪器处理帧之间的身体运动和扭曲的对齐。
实验
手动标注了两个数据集,AR 数据集,而第二个数据集仅由瑜伽/健身姿势组成,使用了MS coco支持的17个关键点,用预测关键点和目标实际的关键点之间的欧氏距离来判断预测精确度。如果小于如果二维欧几里得误差小于相应人躯干尺寸的 20%,我们假设正确检测到的点。
我们训练了两个不同容量的模型:BlazePose Full (6.9MFlop, 3.5M Params)和 BlazePose Lite (2.7 MFlop, 1.3MParams)。尽管我们的模型表现出比 OpenPose 模型稍差的性能在 AR 数据集上,BlazePose Full 在瑜伽/健身用例上优于OpenPose。与此同时,BlazePose 在单个中间层手机 CPU上的执行速度比在 20 核桌面 CPU 上的 OpenPose 快 25-75倍,具体取决于所要求的质量。
BlazePose的两个大小模型与OpenPose在两个数据集的效果对比。其实精度是差不多的,但是帧数得到大幅度提升,因此这个方法可以用于轻量化应用。
本周总结:花了大量的时间在准备复现Camera Distance-aware Top-down Approach for 3D Multi-person Pose Estimation from a Single RGB Image上,最终因数据集没下载好,导致只能跑demo,没有办法自己训练走一编流程。下周安排,找一篇容易复现的文献,粗读2013年左右的文章。