MoveNet流程解析

MoveNet是一个基于CenterNet模型的轻量级人体姿态估计模型,由Google于2021年提出。MoveNet采用自下而上的检测策略,能够检测人体的17个关键点,包括头部、颈部、肩部、肘部、手腕、髋部、膝盖和脚踝等关键点。其轻量级设计使其可以在计算资源受限的设备上运行,例如移动设备和嵌入式设备。此外,MoveNet还具有高效的推理速度和较低的模型大小,使其适合实时的应用场景,如健身跟踪、手势识别和虚拟试衣等。
模型主要分为三部分:Backbone、Header、后处理
Backbone:特征提取器采用MobileNet2+特征金字塔(FPN),实现高分辨率(步长为4)且语义丰富的特征图。高分辨率(步长为4)的理解:步长为4就意味着特征图上的一个像素点对应着原图像44的像素点,因此特征图具有高分辨的特征。
主干网络
Header:经过Backbone网络后输出四个Header,如下图所示:

B代表batchsize 、h,w代表特征图的宽高、k代表预测人体检测关键点的数量
Center:预测人体的几何中心点。数据预处理:官方博客采用,将所有人的关键点求算术平均数(arithmetic mean)解出中心点的坐标。
Keypoint Regression:预测特征图中每个人的k个关键点与其中心坐标偏移值,分为x,y值,所有有2k通道。
Keypoint Heatmap:当前特征图中所有人的关键点
Local Offsets:每个关键点的偏移场。降采样会导致特征图存在量化误差,即实际原图(192
192)x=0与x=3映射到特征图中(48*48)是同一个像素点,因此需要加一个偏移。
通过Backbone提取出4个Header后,通过下图的后处理部分,获取最靠近图片中心的人体所有关键点信息

第一步:对于Center Head,与一个图片中心位置加权矩阵相乘,选出最靠近图像中心的人体中心的坐标

第二步:根据选出的人体中心点坐标,从Regression Head 通道中选取对应的关键点x、y值坐标,得到最靠近图像中心的人体的粗略的关键点信息。

第三步:根据粗略的关键点信息,构造一个以这个关键点坐标为中心生成一个权重矩阵,直接以等差数列0-47(47的原因是当关键点信息在边界时能够覆盖整个特征图(48*28)),中心点最小为0,往外依次递增的权重系数矩阵。然后用Heatmap Header除于这个权重矩阵,求解出来的结果最大的就是该人体的关键点。原因:如果Heatmap中这个关键点与粗略关键点最靠近,说明这个关键点就属于最靠近图像中心的人的关键点,求解出来的结果也是最大的。

第四步:根据坐标点将Local offset Header中对应的偏移值加上就可以得到结果了

参考链接:
2021轻量级人体姿态估计模型修炼之路(附谷歌MoveNet复现经验)

Next-Generation Pose Detection with MoveNet and TensorFlow.js

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2023年8月8日
下一篇 2023年8月8日

相关推荐