【CVPR2022】基于视频的人体姿态估计中的时间特征对齐和互信息最大化

Temporal Feature Alignment and Mutual Information Maximization for
Video-Based Human Pose Estimation


Abstract

多帧人体姿态估计是具有挑战性的,因为快速运动和姿态遮挡经常发生在视频中。最先进的方法努力结合来自邻近帧(支持帧)的额外视觉证据,以促进对当前帧(关键帧)的姿态估计。到目前为止已经排除的一个方面是,当前的方法直接跨帧聚合未对齐的上下文。当前帧与相邻帧的姿态特征之间的空间偏差可能会导致不令人满意的结果。更重要的是,现有的方法建立在直接的姿态估计损失之上,不幸的是,这不能限制网络充分利用来自邻近帧的有用信息。

为了解决这些问题,我们提出了一种新的层次对齐框架,它利用从粗到细的变形来逐步更新相邻的帧,以便在特征级别上与当前的帧对齐。我们进一步提出明确地监督从相邻框架中提取知识,确保有用的互补线索被提取。为了实现这一目标,我们从理论上分析了帧之间的互信息,并得到了一个最大化与任务相关的互信息的损失。这使得我们能够在2017年基准测试数据集的多帧人物姿态估计挑战中对No.1进行排名,并在Sub-JHMDB和2018年的基准测试中获得最先进的性能。


一、方法

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

1.Feature Alignment

特征对齐从特征提取开始,这是以HRNet-W48网络[52]作为主干来完成的。然后将提取的特征zti和zti+δ通过全局变换模块和局部校准模块,逐步将zti+δ与zti对齐。我们想强调的是,我们并不追求图像级对齐,而是由我们驱动网络来学习支持帧和关键帧之间的特征级对齐。
Global Transformation
在这里插入图片描述
Local Calibration
在这里插入图片描述

2.Mutual Information Objective

我们可以将特征级目标表示为支持帧特征zti+δ和关键帧特征zti之间的L1或L2差异。然而,这种严格的对齐可能导致支持框架的互补任务特定信息的侵蚀。因此,这样优化的时间特征将不足以提供相关的支持信息。
为此,在[21,72]的启发下,我们提出了一个互信息目标,旨在在增强特征z˜t中最大化互补任务相关信息的数量

互信息(MI)是衡量随机变量之间共享的信息量的一种度量。形式上,MI量化了两个随机变量v1和v2的统计依赖性:
在这里插入图片描述
式中,p(v1、v2)为v1和v2之间的联合概率分布,而p(v1)和p(v2)是它们的边值。
Mutual Information Loss我们学习有效的时间特征对齐的主要目标:
在这里插入图片描述
其中yit表示标签,I表示增强的特征Zti中与任务相关的信息的量。
直观地说,优化这个目标将最大限度地增加我们试图从邻近帧中提取的额外的相关和互补的信息,以支持姿态估计任务。
由于条件MI计算的难度,特别是在神经网络[21,53]中,我们进行了简化。我们首先分解等式5、具体内容如下:
在这里插入图片描述
第一项表示测量标签yit和特征z˜ti的相关性,第二项表示这两个特征之间的依赖性,第三项表示˜zit和zti中与任务无关的信息。启发式地,当优化任务目标时,任务特定的信息将在与任务无关的信息上有压倒性的存在。因此,我们可以假设与任务无关的信息在超有效的训练[14,72]中可以忽略不计。这简化了等式6至:
在这里插入图片描述
此外,我们还引入了两个正则化项来缓解信息下降:
在这里插入图片描述
这两项分别测量了特征对齐过程中zti+δ和zti中消失的任务相关信息。它们可以促进信息的非破坏性传播。同时最小化这两项可以防止zti+δ和zti的过度信息丢失,同时最大限度地提高主要的互补的与任务相关的互信息目标。类似于等式7,我们简化了等式中的两个正则化项8,如下:
在这里插入图片描述
最后,我们同时优化了等式中的互补信息项5和等式中的两个正则化项8、提供功能级监督:

在这里插入图片描述
其中,α作为我们网络中的一个超参数来平衡不同项的比率。这些MI项可以通过现有的MI估计器[4,9,53,55]进行估计。在我们的实验中,我们使用变分自蒸馏(VSD)[53]来估计每一项的MI。

我们的培训目标包括两部分。(1)我们采用热图估计损失函数LH来监督最终姿态估计的学习:
在这里插入图片描述

二、实验

在这里插入图片描述


  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
卷积神经网络(Convolutional Neural Network,CNN)可以用于视频特征提取。在视频,一帧都可以看作是一张图片,因此可以使用卷积神经网络对每一帧进行特征提取,然后将这些特征进行融合,得到整个视频特征表示。 具体来说,可以使用3D卷积神经网络(3D CNN)对视频进行特征提取。3D CNN与2D CNN类似,只是在卷积和池化操作多了一个时间维度。通过3D CNN,可以对视频的每一帧进行特征提取,然后将这些特征进行融合,得到整个视频特征表示。 除了3D CNN,还可以使用其他的方法进行视频特征提取,例如光流法(Optical Flow)和循环神经网络(Recurrent Neural Network,RNN)。光流法可以用于提取视频物体的运动信息,而RNN可以用于对视频序列进行建模,从而得到视频特征表示。 ```python # 以3D CNN为例,对视频进行特征提取 import tensorflow as tf # 定义3D CNN模型 model = tf.keras.models.Sequential([ tf.keras.layers.Conv3D(32, (3, 3, 3), activation='relu', input_shape=(None, 224, 224, 3)), tf.keras.layers.MaxPooling3D((2, 2, 2)), tf.keras.layers.Conv3D(64, (3, 3, 3), activation='relu'), tf.keras.layers.MaxPooling3D((2, 2, 2)), tf.keras.layers.Conv3D(128, (3, 3, 3), activation='relu'), tf.keras.layers.MaxPooling3D((2, 2, 2)), tf.keras.layers.Conv3D(256, (3, 3, 3), activation='relu'), tf.keras.layers.MaxPooling3D((2, 2, 2)), tf.keras.layers.Flatten(), tf.keras.layers.Dense(256, activation='relu'), tf.keras.layers.Dense(10, activation='softmax') ]) # 加载视频数据 video_data = ... # 对视频进行特征提取 features = model.predict(video_data) # 将特征进行融合,得到整个视频特征表示 video_features = ... ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值