2D/3D 手势关键点:《Hand Keypoint Detection in Single Images using Multiview Bootstrapping》

版权声明:未经博主允许,不得转载! https://blog.csdn.net/u011681952/article/details/83754116

《Hand Keypoint Detection in Single Images using Multiview Bootstrapping》
 作者:Tomas Simon, Hanbyul Joo, Iain Matthews, Yaser Sheikh
 机构:Carnegie Mellon University
 论文:PDF
 实现:OpenPose

1 Introduction

现状:
 1)带标签点手势关键点数据很少
 2)手势变化复杂,人工标记数据,时间和花销代价巨大
 3)特殊场景下,人工标记也无法准确标记关键点,只能大概估计,如遮挡、握拳✊等,如下图
在这里插入图片描述

思想:
 利用立体几何,以多视图作为监督信号源,生成一致的手部关键点标签,引导训练手部关键点检测器。
 本文提出的是一种弱监督训练方法,在训练数据上,只有少量标注数据,大量未标注的多视图数据

结论:
 该方法训练的关键点检测器可以实时运行在单RGB图像上,其精度可与深度传感器方法媲美;能够支持复杂对象3D无标记动作捕捉。

2 Related Work

 相关研究,略
 但它们大部分都是基于深度图,且需要大量带标记的数据来训练;当然对于深度图来说,相对容易合成,而RGB图则困难得多

3 Multiview Bootstrapped Training

 首先定义一个检测器d:
在这里插入图片描述

 其中,d表示检测器,I表示图像, x p x_p 表示预测关键点坐标, c p c_p 表示点置信度,P表示点个数
 对于初始化训练集 T 0 T_0
在这里插入图片描述
 其中f表示图像帧,每帧 N 0 N_0 个视图,y标识真实标签。初始化检测器 d 0 d_0
在这里插入图片描述
 这时给定未标定数据集 T 1 T_1 d 0 d_0 预测标记 T 1 T_1 ,再进一步训练检测器 d 1 d_1
在这里插入图片描述
 在 d 0 d_0 预测标记 T 1 T_1 需要做额外监督处理,才能保证 T 1 T_1 不包含 T 0 T_0 中已经存在的信息,才能提升 d 0 d_0 d 1 d_1
 而这个额外监督正是基于立体几何多视图。因为在多视图下,总会有某些视图较其他容易检测,那么只要至少存在2个视图检测成功,就可以利用立体几何方式三角化3D关键点,然后再重投影到检测失败样本上进行标记,进而再训练。如下图

在这里插入图片描述
 (a)图表示至少2个视图能够成功检测;(b)利用立体几何重建3D关键点;(c)检测失败视图;(d)重投影到失败视图(标记);(e)重新训练(公式4)

整体算法流程如下:
在这里插入图片描述
 其中, I v f I_v^f 表示含F帧V个视图,且未标记样本
 迭代K次:
  1)用带标签的 T 0 T_0 初始化d为弱检测器
  对每一帧f
   a)预测每一个视图
在这里插入图片描述
   b)增加3D点鲁棒性
    本文采用 σ = 4 \sigma =4 RANSAC算法来辅助3D点计算,并且要求2D点置信度大于阈值 λ \lambda 。也就是在RANSAC inliers内点p,我们最小化重投影误差(公式6, P v ( X ) P_v^{(X)} 表示重投影)来获得最终三角点:
在这里插入图片描述
在这里插入图片描述
  2)根据点置信度对视图排序,只选择成功视图进行3D重建
   用置信度和排序:
在这里插入图片描述
  3)重投影到失败视图,共生成 N V N\leq V 帧视图,并用于迭代训练检测器
   用N-best 帧参与下一轮训练:
在这里插入图片描述

4 Detection Architecture

 本文模型架构采用CPM(Convolutional Pose Machines),详见CPM
在这里插入图片描述

5 Performance

在这里插入图片描述
 实测效果见OpenPose

猜你喜欢

转载自blog.csdn.net/u011681952/article/details/83754116