读书笔记23:Recognizing Human Actions as the Evolution of Pose Estimation Maps(CVPR2018)

http://openaccess.thecvf.com/content_cvpr_2018/papers/Liu_Recognizing_Human_Actions_CVPR_2018_paper.pdf

这篇文章和skeleton based action recognition有关系,差别在于这篇文章不使用pose estimation估计好的人体关节坐标值,而是使用pose estimation得到的probability heatmap,考虑这个heatmap的演化进行动作识别。

摘要首先介绍大多数动作识别方法都是从整个video中识别人体动作,但是这种方法会受到很多影响,例如混乱的背景和一些non-action的动作,都会限制模型的表现。背景介绍完毕,开始介绍自己的工作,本文提出通过将人体动作视作pose estimation map的演化来进行动作识别,并且,本文不依赖于那些不精确的姿态估计结果,而是依赖于姿态估计的副产品——pose estimation map。

这个pose estimation map其实是pose estimation最终产物的前驱。从一个静态的图片中估计人体的关节的过程如下:首先,表示人体的K个关节的坐标,,表示第k个关节的坐标值。对每一个关节位置的估计都是不断迭代的过程,迭代T次,就表示在第t个阶段预测第k个关节的函数。对第k个关节位置的预测方式就是对图片中的每一个像素都计算pose estimation map,表示每个像素属于关节k的可能性大小。对于image中的位置z来说,将它分配给第k个关节的pose estimation map可以表示为

                                                                     

表示的是位置z的color feature,得到的pose estimation map,∪表示的是向量的联结,表示从上一个pose estimation map中计算得到contextual features的feature function。在T次迭代完成后,就得到了对第k个关节的最终的pose estimation map。而从中用下式得到的

对于video第n帧,有K个不同的pose estimation map分别对应不同的关节,为了减少冗余,将用这些map生成一个表示全身所有关节的heatmap 

                                                                                     

如上图所示的a到b的过程就是将每个关节的map取平均得到全身的map。而得到最终每个关节位置的预测值,其实就是从estimation map中取最大值就可以

                                                                         

也就是从所有像素中选取值最大的,这个像素的坐标值作为第k个关节位置的预测。至此,video的每一帧都表示为一个heatmap和一个pose,video也就转化为了heatmap和poses的演化。

接下来介绍pose estimation map的演化。主要是将得到的heatmap的evolution压缩,每一个video变成一个body pose evolution image。首先介绍temporal rank pooling,对于一个video的heatmap的序列,包含N帧的heatmap,代表一帧heatmap,可以通过下式变成一个vector,也就是一个video转化为了一个vector

                                                                              

V是将一个matrix转化为,一个自然的约束是,temporal rank pooling会优化一个线性方程的参数,这个线性函数是,这个函数会保证,而这个优化过的参数u用来作为temporal rank pooling方法的一个表示,它编码了序列的演化信息。这个u就是我们要的表示video的信息,将其转换成原本的image应有的尺寸,可以得到下图中图(d)中的效果,很神奇,难道真的只需要使得u满足上面说的这个保证顺序的条件就能得到这种效果吗?

接着介绍spatial rank pooling,这个是考虑到temporal rank pooling主要保留了spatial的信息,而忽略了大多数temporal信息(作者对此的解释是让看上图的(d),看起来没有什么temporal的信息保留了,能看出来的是空间形状,这个理由是不是有点随意,还是我理解不够深?)。在每一个heatmap中,其实都有大量的冗余信息,因此,利用这种learning to rank的方法来将每一个heatmap表示成一个紧凑的compact feature,这个feature可以保留spatial的顺序。而将这些feature vector连起来就成了一个matrix,称为body shape evolution image,可以以一种紧凑的形式保留heatmap的时间和空间信息。下图展示了生成body shape evolution map的流程图

heatmap序列的第n帧被划分成P行,也就是说,或者是Q列,,前文所述的函数V被应用在这里将映射到,对目标的优化按下式

                                                           

这里面,给人的感觉是在保证每一对的相对关系的情况下,使得的元素值最小化,将对于所有的N帧生成的按帧的顺序连接起来就得到,最终由rank pooling得到的U定义为,也称之为body shape evolution image,这一个image就包含了整个video的信息。

有了body shape evolution image,作者认为还是不够,认为这个image只是抓取了形状的信息,而没有考虑到每一个节点,因此又提出按照pose estimation的结果,将每一个节点编号,生成body pose image

这个body pose image包含两个channel,每一个channel是根据x,y两个方向之一的坐标生成的。首先,所有的xy坐标值都被标准化为0,1之间的数,之后,按照人体的结构给关节编号,然后每个肢体(例如胳膊,腿这种两个关节之间的骨骼部分称之为肢体limb)都用两端的两个关节的坐标值进行线性插值增加五个节点(如上图所示,按照顺序在每两个原有的关节之间进行插值),这样,一帧人体骨架的一个坐标就处理好了,它构成了body pose image的一个channel的一行或一列,将所有帧都按此方法处理,就得到了body pose image的一个channel,xy坐标值都处理了就得到了完整的两个channel的body pose image。

最终进行分类的时候就是分别对body shape image和body pose image应用CNN,本文使用了imagenet上训练好的CNN模型,为了和这个已有的模型相适应,body shape image将自己的一个channel复制三份形成三个channel,body pose image通过添加一个全是0的channel得到三个channel。

总结:video中的每一帧确实都是有大量的冗余信息,本文巧妙地发现了这个问题,将每一帧有用的信息抓取出来,压缩成一个vector,然后将整个video转化为image,既保留了信息,又去除了大量冗余,还能利用已有的模型进行action识别。这里面有一点弄的不是很明白,就是temporal rank pooling和spatial rank pooling,temporal rank pooling具体是怎么优化的,能够让u包含了原image的信息,感觉文中写的好像有点太简单了,这样真的够吗?还有一个就是spatial rank pooling是怎么优化的,那个risk minimization和max-margin framework都是什么意思?

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited是libpng库给出的一个警告信息,意味着在处理图像时,libpng无法识别已经编辑过的已知sRGB配置文件。 这个警告通常出现在使用libpng处理图像时,由于sRGB配置文件的编辑而导致的不匹配。这可能是由于图像编辑软件或编码器修改了sRGB配置文件的内容,使其与标准配置文件不匹配。 要解决这个警告,可以尝试以下几个方法: 1. 使用标准的sRGB配置文件:确保图像使用的sRGB配置文件是标准的,没有进行任何编辑或修改。这样可以避免出现不匹配的问题。 2. 更新libpng库版本:检查你正在使用的libpng库版本是否是最新的,如果不是,可以尝试更新到最新版本,以获取更好的兼容性和修复问题的可能性。 3. 检查图像编辑软件设置:如果你使用的是图像编辑软件进行编辑和保存图像,确保软件设置中的颜色配置选项与sRGB一致,并且没有进行任何修改。 总之,libpng warning: iCCP: Not recognizing known sRGB profile that has been edited是一个警告信息,提示libpng无法识别已经编辑过的sRGB配置文件。可以通过使用标准的sRGB配置文件、更新libpng库版本或检查图像编辑软件设置来解决这个问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [处理libpng warning: "iCCP: Not recognizing](https://blog.csdn.net/chibi2732/article/details/100597525)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [解决 libpng warning: iCCP: known incorrect sRGB profile](https://download.csdn.net/download/sirkang/13753429)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [libpng warning: iCCP: Not recognizing known sRGB profile that has been edited](https://blog.csdn.net/qq_20670449/article/details/51576621)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值