BlazePose: On-device Real-time Body Pose tracking
一. 论文简介
主要做的贡献如下(可能之前有人已提出):
这里不说跟踪,仅关注关键点估计部分
- 通过关键点检测到人手大概位置,在做手回归,最后再做估计
- 通过heatmap辅助训练回归关键点
注意:Holistic mode 是这篇论文的一个整体应用,其中跟踪部分可以使用任何跟踪方法,注意创新点是关键点估计
二. 模块详解
2.1 heatmap和直接回归同时使用
论文使用的网络很清晰明了,类似hourglas结构
- heatmap+offset
这部分是谷歌在2017年的论文:Towards Accurate Multi-person Pose Estimation in the Wild,使用了自家的方法,但是从现在的论文和开源代码来看,offset使用率基本没有。所以大家复现此论文都是直接使使用heatmap来替代heatmap+offset
- 关于梯度传播问题
这部分真是一个创新点,虚线部分只进行前向传播,实线部分进行前向+反向。tensorflow的实现:tensorflow1、tensorflow2,pytorch的实现如何?
其实实现很容易,就是直接把输入当做是一个值(requires_grad=False)即可,但是你得考虑不再下一层传播,但是在当前层传播。
# 这里给出笔者想法,未实际使用
# 方法一:
#直接创建一个新的值
input_public = Tensor([2,64,64,32])#公用的数据
data_forward = deepcopy(input_public)
data_forward.require_grad = False # 就是复制一份,然后将梯度去除即可
# 方法二:
#直接使用分离值
input_public = Tensor([2,64,64,32])#公用的数据
data_forward = input_public.detach()#直接将数据分离出来
- 关于网络复现
完全按照论文去复现基本不可能,因为网络小模块未给出,skip-gate也未给出。这是是查看google-media 给出的模型进行构建。其实按照这种思路,直接使用shufflenet、mobilenet进行构建也完全可以,但是得有时间尝试模型的优劣。
2.4 总结
- 挺好的一篇工业级论文,数据未开源、代码未开源,复现很难