新闻中心

MoveNet-谷歌轻量级人体姿态估计算法

2025-07-23
浏览次数:
返回列表
MoveNet是基于heatmap的bottom-up人体姿态估计模型,含Backbone、Header和PostProcess三部分。Backbone采用Mobilenetv2+FPN;Header有四个,输出Center、KeypointHeatmap等特征图。损失函数用加权MSE和L1 Loss,权重1:1:1:1。提供训练、测试流程,可导出模型,Google有在线演示。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

movenet-谷歌轻量级人体姿态估计算法 -

MoveNet

Google提供的在线演示:https://storage.googleapis.com/tfjs-models/demos/pose-detection/index.html?model=movenet

MoveNet 是一个 Bottom-up estimation model, 使用heatmap。

网络架构

主要分为三个部分:Backbone、Header、PostProcess

  • Backbone:Mobilenetv2 + FPN
  • Header:输入为Backbone的特征图,经过各自的卷积,输出各自维度的特征图。共有四个Header:分别为Center、KeypointRegression、KeypointHeatmap、Local Offsets
    • Center:[N, 1, H, W], 这里1代表当前图像上所有人中心点的Heatmap,可以理解为关键点,只有一个,所以通道为1。提取中心点两种方式:
      • 一个人所有关键点的算术平均数。
      • 所有关键点最大外接矩形的中心点。(效果更好)
    • KeypointHeatmap:[N, K, H, W] N:Batchsize、K:关键点数量,比如17。H、W:对应特征图的大小,这里输入为192×192192×192 , 降采样四倍就是48×4848×48 。代表当前图像上所有人的关键点的Heatmap
    • KeypointRegresssion:[N, 2K, H, W] K个关键点,坐标用x,yx,y表示,那么就有2K个数据。这里x,yx,y 代表的是同一个人的关键点对于中心点的偏移值。原始MoveNet用的是特征图下的绝对偏移值,换成相对值(除以48转换到0-1),可以加快收敛。
    • LocalOffsets:[N, 2K, H, W] 对应K个关键点的坐标,这里是Offset,模型降采样特征图可能存在量化误差,比如192分辨率下x = 0 和 x= 3映射到48分辨率的特征图时坐标都变为了0;同时还有回归误差。
class MoveNet(nn.Layer):
    def __init__(self, num_classes=17, width_mult=1.,mode='train'):
        super(MoveNet, self).__init__()

        self.backbone = Backbone()

        self.header = Header(num_classes, mode)
        

        self._initialize_weights()    def forward(self, x):
        x = self.backbone(x) # n,24,48,48
        # print(x.shape)

        x = self.header(x)        # print([x0.shape for x0 in x])

        return x

       

损失函数

KeypointHeadmap 和 Center 采用加权MSE,平衡了正负样本。 KeypointRegression 和LocalOffsets 采用了 L1 Loss。 最终各个Loss权重设置为1:1:1:1

美图云修 美图云修

商业级AI影像处理工具

美图云修 50 查看详情 美图云修
loss = paddle.pow((pre-target),2) weight_mask = target*k+1paddle.pow(torch.abs(target-pre), 2) loss = loss*weight_mask

       

参考文献

  1. 2025轻量级人体姿态估计模型修炼之路(附谷歌MoveNet复现经验) - 知乎 (zhihu.com)
  2. fire717/movenet.pytorch: A Pytorch implementation of MoveNet from Google. Include training code and pre-train model. (github.com)
  3. https://storage.googleapis.com/tfjs-models/demos/pose-detection/index.html?model=movenet

快速开始

全流程引导进行项目生成,实现数据生成、训练、测试一体化

解压数据集

# 无需运行# !mkdir /home/aistudio/data/coco# !unzip /home/aistudio/data/data97273/annotations_trainval2017.zip -d /home/aistudio/data/coco# !unzip /home/aistudio/data/data97273/train2017.zip -d /home/aistudio/data/coco# !unzip /home/aistudio/data/data97273/val2017.zip -d /home/aistudio/data/coco# 新数据时用# Make data to adapt the data format.# %cd /home/aistudio/work/# !python scripts/make_coco_data_17keypooints.py
       

配置项目环境

pip install yacs
       

训练

cd /home/aistudio/work/
python train.py
       

测试

进入config.py 修改配置文件,修改测试图片路径。

cd /home/aistudio/work.
python predict.py
       

测试结果

MoveNet-谷歌轻量级人体姿态估计算法 -        

Heatmap

MoveNet-谷歌轻量级人体姿态估计算法 -        

导出模型

pip install paddle2onnx
python pd2onnx.py
   

以上就是MoveNet-谷歌轻量级人体姿态估计算法的详细内容,更多请关注其它相关文章!


# git  # 两种  # 就有  # 是一个  # 官网  # 的是  # 美图  # 一言  # 中文网  # coco  # fig  # udio  # red  # ai  # 谷歌  # python  # 中心点  # 怎么推广网站设计师呢  # 丹东营销推广哪个好  # 广丰区网站建设推广公司  # 南京网站推广技巧  # 玉溪营销推广加盟店电话  # 肇庆网站建设营销策划  # 推广营销公司哪家专业好  # 广东网站建设地址  # 推广网站运营面试题答案  # 个人网站如何做定位推广  # 相关文章 


相关栏目: 【 行业资讯67740 】 【 技术百科0 】 【 网络运营39195


相关推荐: 43寸电视长宽多少厘米  如何查找固态硬盘  linux命令行如何使用中文输入法  windows 如何连接ftp命令行  wps中datediff函数怎么用 WPS中DATEDIFF函数的语法和用法分享  ai文件在线打开工具有哪些  阿里云盘扩容工具怎么用  新三板市盈率是什么意思  如何用固态硬盘做缓存  市盈率pe是什么意思  摄像机的power chg是什么意思中文  空调控制面板power灯一直亮是什么意思  选哪个折叠屏手机好  满射为什么没有逆映射  苹果16多有哪些功能  苹果怎么没出5g手机  typescript学会要多久  固态硬盘如何下载网页  划水是什么意思  early什么意思  苹果16有哪些自带配件  电脑显示器上power是什么意思  问一下市盈率是什么意思  debian和ubuntu命令一样吗  市盈率为负数是什么意思  typescript怎么用  哪些框架支持typescript  启辰星power标志是什么意思  华为的type-c接口是什么接口  远程桌面如何发送命令  尼桑越野车中控前power是什么意思  单片机怎么连接电路图  j*a对数组怎么使用  typescript在浏览器里怎么用  typescript和es6先学哪个  sqlite中datediff函数怎么用 SQLite中DATEDIFF()函数的用法分享  如何查看bash内置的命令  苹果16有哪些系统  shell如何注释所有命令  如何加装固态硬盘  8k是多少钱  固态硬盘4k如何看  win10windows资源管理器在哪里打开  雅迪电动车上的power是什么意思  苹果16系统多了哪些  faq是什么意思  如何弄坏固态硬盘  make命令如何使用  喇叭上标的power30w是什么意思  市盈率百分位roe是什么意思 

搜索