代码编织梦想

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45950842/article/details/129833525

pytorch——MobileNet详解及PyTorch实现-爱代码爱编程

MobileNet详解及PyTorch实现 pytorch11 MobileNet详解及PyTorch实现 MobileNet详解及PyTorch实现背景深度可分离卷积一般卷积计算量深度可分离卷积计算量网络结构PyTorch实现 背景 Mobile是移动、手机的概念,MobileNet是Google在2017年提出的轻量级深度神经网络,专门

关键点检测模型中的loss详解-爱代码爱编程

heatmap 如果网络要输出N种分类的关键点,就输出N维的特征图,同时我们根据关键点的位置在N维label的特征图上造高斯核,如果每一个像素点对应的只有一种分类,此时我们可以采用softmax Loss,如果不止一个分类,我们就只能MSE Loss. heatmap+focal loss 我们假设一张特征图的大小是800600,上面有一个关键点,其

小程序动作识别 - 使用谷歌推出最新动作检测模型Movenet,开发小程序-爱代码爱编程

背景 谷歌刚刚推出了一款能够检测人体姿态的 MoveNet 模型,并且提供了相应的 TensorFlow.js 应用程序接口(API)。官方宣称 MoveNet 能够非常快速、准确地检测人体的 17 个关键节点,此外通过与 InclueHealth 的合作,该公司还将确定 MoveNet 是否能够为患者的远程护理提供帮助。 全文地址(国内):谷歌研究院

使用 MoveNet 和 TensorFlow.js 的下一代姿态检测-爱代码爱编程

发布人:Ronny Votel 和 Na Li,Google Research 团队 今天,我们很高兴推出最新的姿态检测模型 MoveNet,并在 TensorFlow.js 中添加了新的姿态检测 API。MoveNet 是一种非常快速和准确的模型,可检测人体的 17 个关键点。该模型已在 TF Hub 上提供,有两个变体,分别称为“Li

SOTA方法!谷歌实时姿态检测MoveNet 、BlazePose 、PoseNet-爱代码爱编程

转自:机器之心 近日,来自谷歌的研究者更新了用于实时姿态检测的项目,该项目包含 3 种 SOTA 模型,其中 MoveNet 模型可检测人体 17 个关键点、并以 50+ fps 在电脑和手机端运行;BlazePose 可检测人体 33 个关键点;PoseNet 可以检测人体多个姿态,每个姿态包含 17 个关键点。 不久之前谷歌研究院推

MoveNet 姿态估计,树莓派上也能跑!-爱代码爱编程

关注公众号,发现CV技术之美 发布人:TensorFlow 技术推广工程师 Khanh LeViet 和软件工程师 Yu-hui Chen 自年初在 Google I/O 大会上宣布推出 MoveNet 以来,我们已经收到了众多积极反馈和功能请求。今天,我们很高兴能与大家分享以下几项技术更新: ● MoveNet 的 TensorFlow L

2021/12/02 初次做动作识别项目经历和总结(二)-爱代码爱编程

1.前言 上节,我们说到反编译了别人的小程序,拿到了核心技术,poseNet,TensorFlowJS的姿态识别模型,正因为发现了这个模型,证实了能在小程序客户端识别姿态,因此,接下来,就是用这一门技术,TensorFlowJS 2. 小程序阶段(初步) TensorFlowJS,这个名字,在我脑海里一直留存着,并且这也是我的微信名称。 说起来也是

实时姿态识别-爱代码爱编程

1、姿态识别项目 2、姿态估计模型选取 3、分类模型选取 4、姿态识别实验 1、姿态识别项目 需求: 自然场景实时检测人体的关键点位置并判断人体的动作。即fps>=30。 思路: 1、首先利用姿态估计模型判断关键点位置并保存关键点位置坐标 2、将关键点保存,并利用分类模型对其进行训练以分类 关键点: 由于要实时即终端部署,所

记一次坎坷的算法需求实现:轻量级人体姿态估计模型的修炼之路(附MoveNet复现经验)...-爱代码爱编程

点击上方“计算机视觉工坊”,选择“星标” 干货第一时间送达 作者丨Fire 编辑丨极市平台 导读  本文记录了作者实现轻量级人体姿态估计模型的全过程,从方案的选取到尝试复现等,详细的叙述了一个项目需求完成的整体思路,并附有谷歌开源的MoveNet的复现经验。本文能给处在CV各个阶段的朋友们带来帮助! 一、需求背景 这天接到个新需