MENU

论文阅读笔记(7月)

July 31, 2021 • Read: 552 • 计算机视觉阅读设置

近期的一些论文笔记 ,为了基于计算机视觉实现运动动作的计数与错误动作的纠正。包括姿态估计以及一些软件设计相关的论文

姿态估计

Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields

多人姿态估计

存在的一些问题:

  • 图像包含人数以及人出现位置未定
  • 人与人之间的干扰,复杂的空间关系(接触......)
  • 计算成本随着人数增加而增加(实时性问题)

方法:

  1. 自顶向下:使用单人姿态检测器,然后再估计检测器检测出的每个人的关节,进而恢复每个人的姿态。存在问题包括计算成本以及人离得很近的时候失效。
  2. 自底向上:先检测所有关键点,再将检测出的关键点分组,从而找出属于各个人的关节。不直接使用来自其它人或者身体部位的信息,但效率不高(求解完全连通图上的整数线性规划问题)

一般来说:自顶向下的方法比自底向上的方法更容易实现,因为添加检测算法比增加连接/分组算法容易

当前论文核心技术:Part Affinity Fields(PAFs) 关键点的亲和力场 通过PAF描述节点之间的亲和力,用于节点之间的配对

主要方法

输入输出

img

输入:image(w*h) 输出:每个关键点的2D位置

步骤:

  1. 前馈网络同时生成S和L

    • S:身体部位的2D置信度图 $S=(S_1,S_2,\cdots,S_J) S_j\in R^{w*h}$
    • L:关键点的亲和度向量 $L=(L_1,L_2,\cdots,L_C)$: $L_c\in R^{w*h*2}$
  2. 通过贪婪推理解析置信度图和亲和度场,从而输出图中所有人的2D关键点信息。
网络结构

img

输入原始图,由VGG-19的前10层初始化并进行微调,生成一组特征映射F作为第一阶段的输入。整个网络包含多个Stage串行模块,每个模块的结构和功能都一样,为二分支的CNN。Brach1用于生成PCM(Part confidence map)即关键点的热力图,用以表征关键点的位置。Branch2用于生成PAF(Part Affinity Fields),h即关键点的亲和力场,用以描述节点之间的亲和力,用于节点配对。每个阶段中间都有监督。

存在t个阶段

$$ S^1=\rho^1(F)\\ T^1=\phi^1(F)\\ S^t=\rho^t(F,S^{t-1},L^{t-1}),\forall t\ge2\\ T^t=\phi^t(F,S^{t-1},L^{t-1}),\forall t\ge2 $$

其中$\rho^t,\phi^t$为CNN网络在t阶段的推断

关于每个分支的损失函数与总的损失函数

$$ f_S^t=\sum_{j=1}^J\sum_pW(p)\cdot||S_{j}^t(p)-S_{j}^*(p)||_2^2\\ f_L^t=\sum_{c=1}^C\sum_pW(p)\cdot||L_{c}^t(p)-L_{c}^*(p)||_2^2\\ f=\sum_{t=1}^T(f_S^t+f_L^t) $$

其中$S_j^*$和$L_j^*$是为真实值

W is a binary mask,当图像的位置信息丢失时W(p)=0,W可以用来避免在训练过程中对正确预测结果的惩罚。

每个阶段的中间监督通过周期性地补充梯度来解决梯度消失地问题。

1626701743517

整体逻辑

  1. 神经网络预测

输入原始图,由VGG-19的前10层初始化并进行微调,生成一组特征映射F作为第一阶段的输入。然后进入Stage模块。整个网络包含多个Stage串行模块,每个模块的结构和功能都一样,为二分支的CNN。Brach1用于生成PCM(Part confidence map)即关键点的热力图,用以表征关键点的位置。Branch2用于生成PAF(Part Affinity Fields),h即关键点的亲和力场,用以描述节点之间的亲和力,用于节点配对。输入img(3通道) 输出PCM_avg(19) PAF_avg(19) 包括18个人体关键点信息,最后一个通道输出背景(背景用于增加监督信息,有利于网络更好学习;背景输出继续作为下一个Stage的输入,有利于下一个stage获得更好的语义信息。)。

  1. 寻找关键点

应用非最大抑制(NMS)算法来获得PCM中的峰值,值为置信度作为该part的score。

  1. 关键点拼接

确定每一肢体所对应的两个part和PAF,将两个part之间的PAF信息进行积分所得结果作为该肢体的置信度,通这一步可以获得所有连接信息。使用图论中的 Bipartite Matching(偶匹配) 求出Part Association,将同一个人的关节点连接起来,由于PAF自身的矢量性,使得生成的偶匹配很正确,最终合并为一个人的整体骨架

  1. 拼接肢体

基于PAFs求Multi-Person Parsing—>把Multi-person parsing问题转换成graphs问题—>Hungarian Algorithm(匈牙利算法)(匈牙利算法是部图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法。)

关于姿态估计

网络发展

1626701743517

  • 单人姿态估计:

Benchmark: MPII (2014)

代表作: CPM (CVPR 2016), Hourglass (ECCV 2016)

  • 多人姿态估计:

Benchmark: COCO (2016), CrowdPose (2018)

    • 自底向上: OpenPose (CVPR 2017), Associative Embedding (NIPS 2017)
    • 自顶向下: CPN (CVPR 2018), MSPN (Arxiv 2018), HRNet (CVPR 2019)
    • 人体姿态跟踪:

    Benchmark: PoseTrack (2017)

    代表作: Simple Baselines (ECCV 2018)

    人体姿态估计方法与人体模型的分类

    人体姿态估计方法分类

    本节根据不同的特点总结了基于深度学习的人体姿态估计方法的不同分类:1)生成方法(基于人体模型)和判别方法(无人体模型);2)自上而下(从高级抽象到低级像素证据)和自下而上(从低级像素证据到高级抽象);3)基于回归(从输入图像直接映射到身体关节位置)和基于检测(生成关节位置的中间图像块或热图);4)单阶段(端到端培训)和多阶段(分阶段培训)。

    (1)生成方法 V.S. 判别方法

    生成方法和判别方法之间的主要区别是方法是否使用人体模型。根据人体模型的不同表示,可以以不同的方式处理生成方法,例如关于人体模型结构的先验知识,从不同视图到2D或3D空间的几何投影,高维参数化空间回归方式的优化。

    判别方法直接学习从输入源到人体姿势空间的映射(基于学习)或搜索不存在的示例(基于示例),而无需使用人体模型。判别方法通常比生成方法要快,但对于从未受过训练的姿势而言,判别方法的鲁棒性较差。

    (2)自顶向下V.S.自底向上

    对于多人姿态估计,人体姿态估计方法通常可以根据预测的出发点分为自顶向下和自底向上两种:高层抽象或低层像素。自顶向下的方法从高层抽象开始,首先检测人并在边界框中生成人的位置。然后对每个人进行姿态估计。相反,自底向上的方法首先预测输入图像中每个人的所有身体部位,然后通过人体模型拟合或其他算法对它们进行分组。请注意,根据不同的方法,身体部位可以是关节、四肢或小模板贴片。随着图像中人数的增加,自顶向下方法的计算量显著增加,而自底向上方法的计算量保持稳定。然而,如果有一些人有一个很大的重叠,自下而上的方法面临的挑战,分组相应的身体部位。

    (3) 基于回归 V.S. 基于检测

    基于不同问题的表述,基于深度学习的人体姿态估计方法可以分为基于回归的方法和基于检测的方法。基于回归的方法直接将输入图像映射到人体关节坐标或人体模型参数。基于检测的方法将人体各部位作为检测目标,基于两种常用的表示方法:图像块和关节位置热图。从图像到关节坐标的直接映射是一个非常困难的问题,因为它是一个高度非线性的问题,而小区域表示提供了具有更强鲁棒性的密集像素信息。与原始图像尺寸相比,小区域表示的检测结果限制了最终关节坐标的精度。

    (4) 单阶段 V.S. 多阶段

    基于深度学习的一阶段方法旨在通过使用端到端网络将输入图像映射到人体姿势,而多阶段方法通常在多个阶段中预测人体姿势,并伴有中间监督。例如,一些多人姿势估计方法首先检测人的位置,然后为每个检测到的人估计人的姿势。其他3D人姿势估计方法则首先在2D平面中预测关节位置,然后将其扩展到3D空间。单阶段方法的训练比多阶段方法更容易,但中间约束更少。

    人体模型

    人体模型是人体姿态估计的关键组成部分。人体是一个柔性的、复杂的非刚性物体,具有运动结构、体形、表面纹理、各部位或各关节的位置等特性。

    一个成熟的人体模型不一定要包含所有的人体属性,而应该满足特定任务的要求来建立和描述人体姿势。基于不同层次的表示和应用场景,如图所示,人体姿态估计中有三种常用的人体模型:基于骨架的模型、基于轮廓的模型和基于体积的模型。

    img

    (1) 基于骨架的模型:基于骨架的模型,也称为棍状模型或运动学模型,表示一组关节(通常在10到30之间)的位置以及人体骨架结构之后相应的肢体方向。基于骨架的模型也可以描述为一个图,其中顶点指示骨骼结构中关节的约束和边缘编码约束或关节的先验连接。这种人体拓扑结构非常简单和灵活,广泛用于2D和三维人体姿态估计。它具有表示简单、灵活的优点,但也存在着缺乏纹理信息,即没有人体的宽度和轮廓信息等缺点。

    (2) 基于轮廓的模型:基于轮廓的模型广泛应用于早期的人体姿态估计方法中,它包含了人体肢体和躯干的大致宽度和轮廓信息。人体各部分用人体轮廓的矩形或边界近似表示。广泛使用的基于轮廓的模型包括纸板模型和活动形状模型。

    (3) 基于体积的模型:三维人体形状和姿势通常由具有几何形状或网格的基于体积的模型来表示。早期用于建模身体部位的几何形状包括圆柱、圆锥等。基于体积的现代模型以网格形式表示,通常通过3D扫描捕获。广泛使用的基于体积的模型包括人的形状完成和动画,蒙皮多人线性模型和统一的变形模型。

    人体骨骼关键点检测综述

    人体骨骼关键点对于描述人体姿态,预测人体行为至关重要。因此人体骨骼关键点检测是诸多计算机视觉任务的基础,例如动作分类,异常行为检测,以及自动驾驶等等。近年来,随着深度学习技术的发展,人体骨骼关键点检测效果不断提升,已经开始广泛应用于计算机视觉的相关领域。本文主要介绍2D人体骨骼关键点的基本概念和相关算法,其中算法部分着重介绍基于深度学习的人体骨骼关键点检测算法的两个方向,即自上而下(Top-Down)的检测方法和自下而上(Bottom-Up)的检测方法。

    相关介绍

    人体骨骼关键点检测,即Pose Estimation,主要检测人体的一些关键点,如关节,五官等,通过关键点描述人体骨骼信息;

    img

    应用与挑战

    人体骨骼关键点检测是计算机视觉的基础性算法之一,在计算机视觉的其他相关领域的研究中都起到了基础性的作用,如行为识别、人物跟踪、步态识别等相关领域。具体应用主要集中在智能视频监控,病人监护系统,人机交互,虚拟现实,人体动画,智能家居,智能安防,运动员辅助训练等等。

    由于人体具有相当的柔性,会出现各种姿态和形状,人体任何一个部位的微小变化都会产生一种新的姿态,同时其关键点的可见性受穿着、姿态、视角等影响非常大,而且还面临着遮挡、光照、雾等环境的影响,除此之外,2D人体关键点和3D人体关键点在视觉上会有明显的差异,身体不同部位都会有视觉上缩短的效果(foreshortening),使得人体骨骼关键点检测成为计算机视觉领域中一个极具挑战性的课题。

    其它

    基于Kano模型的运动健身类APP用户需求分析及功能设计

    需求分析

    必须型需求:便捷性(APP的本质优势 对比健身房)、专业运动知识

    期望型需求:成本低、运动数据记录(运动数据 消耗热量数据)

    魅力型需求:动作标准与否反馈、锻炼效果反馈、专业锻炼指导

    系统设计

    实现用户需求(专业运动知识+运动数据记录+动作反馈+效果反馈......)

    用户激励(积分、完美动分享、点赞......)良性循环的运动机制

    数据存储与分析

    界面设计

    功能流程图

    img

    一种用于运动姿态评估的视觉伺服机器人

    其中机器人端主要用于实现对运动目标的追踪和利用空间注意力机制去除冗余空间信息,而电脑端主要用于实现三维姿态估计、关键帧匹配和姿态评估的功能。机器人端与电脑端之间可以通过 USB 接口进行数据传输。

    img

    标准姿视频与待测姿态视频的关键帧匹配

    论文中有关键帧匹配的算法,可以学习。

    该方法主要通过计算两组姿态序列的匹配程度,寻找最优关键帧匹配路径,实现对两组长度不同的姿态序列的规整。核心在于动态时间规整方法。

    运动场景下人体动作分析算法研究

    对跳绳过程中的运动分析问题,开发了安卓端的智慧跳绳教学系统,用于帮助分析跳绳运动员的一些问题,从而改正跳绳中的一些错误。

    有一些关于姿态估计方面的算法综述,可以后面深入了解,方便找论文。

    img

    服务器端采用SSM框架和Mysql数据库。APP端采用MVP的基础模式。用户通过摄像头传输数据,Mysql数据库存储数据,服务器端接受用户的数据请求,处理并将结果反馈给用户。

    论文中还包括系统数据库构建的内容。

    基于人体姿态识别的运动辅助评测系统研究与应用

    介绍了一些单目标人体识别的算法,对Openpose文档的一些中文解读。

    包括求解角度(余弦值求解)以及动作相似度(欧氏距离)的方法。

    建立标准动作库的方法

    广播体操辅助教学系统

    连续动作评价

    (1)欧氏距离阈值的设定
    最小欧氏距离,即两个动作间的相似性度量评判标准。系统可以允许训练者
    的做出的动作与标准动作之间每一个关节角都有相同的误差范围,在这个范围标
    准内找出连续动作中与标准动作最相似的动作,具体实现可以是,实现准备 m 个
    标准动作数据,随后在一段包含 n(其中 n>m)个动作的运动视频中分别找出与
    标准动作最相似的 x(其中 x≤m)个关键动作。
    (2)详细的评价步骤
    首先,选取一段运动中具有代表性的关键动作作为标准动作,并准备好包含
    标准动作的图片,利用人体姿态识别技术分别对图片中人物的关节点进行提取,
    计算出各自的关节角,按动作先后进行排序(如动作 1,动作 2,…)保存到数
    据库中。
    然后,使用拍摄设备录制运动员做出这段动作的完整视频,并导入系统,系
    统提取出整段视频中所有动作的关节角数据。
    最后,系统自动根据标准动作数据库对测试动作关节角数据进行筛选,最后
    找出与标准动作最相似并且数量一致的测试动作,并向用户展示测试动作与标准
    动作间的差异,用户可根据查看展示的差异找到测试者的问题所在。

    基于视觉的人体动作识别研究

    提供了一些动作数据库

    • KTH动作数据库
    • Weizmann动作数据库
    • UCF Sports动作数据库
    • HMDB动作数据库
    • UCF101动作数据库

    包括很多运动目标检测技术、动作特征提取技术。

    讲述了在多种算法下的动作检测与识别

    • 运动能量流
    • 梯度特征转换算法
    • 图像势能差分模板
    • 三通道卷积神经网络

    参考链接

    https://cloud.tencent.com/developer/article/1802595

    https://open.youtu.qq.com/#/open/developer/join

    https://cloud.tencent.com/developer/article/1179216

    https://zhuanlan.zhihu.com/p/66803058

    https://www.jianshu.com/p/98c11545d4fb

    https://blog.csdn.net/surserrr/article/details/90371238

    Last Modified: November 9, 2021