一种基于人体姿态估计的视频教学方法、系统和存储介质转让专利

申请号 : CN202210228951.9

文献号 : CN114333071B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 徐天禹王丙海郑贝贝

申请人 : 天津市天泽恒升科技有限公司

摘要 :

本发明提供了一种基于人体姿态估计的视频教学方法、系统和存储介质,涉及图像处理技术领域,包括:在教学视频上传阶段首先生成教学视频数据文件,再获取全部视频帧的时间戳,并建立时间戳‑编号文件;在第一程序中加载与显示教学视频,根据时间戳‑编号文件获取教学视频图像帧编号,并将帧编号发送至第二程序;在第二程序中,采集实时动作视频,接收帧编号,根据帧编号建立实时动作视频与教学视频之间的对应关系;对实时动作进行姿态估计,生成姿态数据;根据帧编号读取教学视频数据文件,获取与该帧编号对应的标准姿态数据;分析姿态数据与标准姿态数据,生成姿态对比结果。本发明适用于多种教学场景,其运算速度快,便于轻量化部署。

权利要求 :

1.一种基于人体姿态估计的视频教学方法,其特征在于,包括:检测到有教学视频上传,调用FFmpeg库获取所述教学视频每一帧的时间戳,并对所有时间戳进行编号并保存,生成时间戳‑编号文件;

在第一程序中加载所述教学视频,并预先加载所述时间戳‑编号文件,ffpyplayer库加载每一帧视频画面,ffpyplayer库除了返回每一帧图像,还将返回其对应的时间戳,根据时间戳‑编号文件中时间戳与编号的对应关系,获取该帧的编号,并将编号发送至第二程序;

在所述第二程序中,首先加载上传阶段保存的所述教学视频,然后启动摄像头采集实时动作视频,读取每一帧实时画面并接收来自第一程序的编号,接收编号这一过程即建立了教学视频帧与实时画面帧间的对应关系;

按帧分析实时动作视频,对实时动作进行姿态估计,生成姿态数据;

根据编号读取教学视频中对应的图像帧,获取标准姿态数据;

分析姿态数据与标准姿态数据,生成姿态对比结果;

根据姿态对比结果对实时动作视频中的图像帧添加标记,多种颜色的标记表示多种对比结果;

其中,进行姿态估计的具体步骤包括:采用人体目标检测模型处理实时动作视频的图像,得到人体目标;采用人体姿态检测算法检测人体目标的姿态。

2.根据权利要求1所述的基于人体姿态估计的视频教学方法,其特征在于,所述得到人体目标的步骤,具体包括:

根据目标检测模型的输出结果,得到多个人体框;

建立对全部人体框的跟踪并得到各自的id;

设置参数track_ID用于保存所需跟踪的id;

其中,参数track_ID初始状态为空,因此完成建立跟踪关系的第一帧需要根据预先设置的筛选条件对人体框进行筛选,只保留满足条件的人体框送入接下来的姿态估计网络,同时,所保留人体框的id将做为track_ID保存,下一帧图像的全部人体框经过目标跟踪算法匹配后只需要根据track_ID决定送入下一环节的人体框。

3.根据权利要求1所述的基于人体姿态估计的视频教学方法,其特征在于,检测人体姿态的具体步骤包括:

采用bottleneck堆叠结构,利用PixelShuffle方法做上采样,PixelUnshuffle方法做下采样,其中,大幅减少了网络中的通道数,bottleneck结构中的expansion参数从4降为1;

引入深度可分离卷积的思想,利用Depthwise卷积,降低参数量;引入GC block结构,应用于每个bo ttleneck中;激活函数为Hard Swish。

4.根据权利要求1所述的基于人体姿态估计的视频教学方法,其特征在于,还包括:将所述第一程序中的教学视频以及所述第二程序中的实时动作视频显示在同一界面中,其中,所述实时动作视频带有标记。

5.根据权利要求1所述的基于人体姿态估计的视频教学方法,其特征在于,还包括:在采用人体姿态检测算法检测人体目标姿态之前引入卡尔曼滤波算法对目标检测模型输出的人体框进行补偿和修正。

6.根据权利要求1所述的基于人体姿态估计的视频教学方法,其特征在于,所述生成姿态对比结果的步骤,具体包括:

根据所述姿态数据,获取人体关节点;

计算每一对相邻关节点的连线的角度;

关节点连线角度与教学视频中对应的标准关节点连线角度之间的差值作为姿态对比结果。

7.根据权利要求1至6中任一项所述的基于人体姿态估计的视频教学方法,其特征在于,还包括:

接收标准动作视频,对所述标准动作视频中的人体动作进行姿态估计,生成标准姿态数据;

根据所述标准姿态数据获取人体在画面中的最大活动范围,并根据所述最大活动范围裁剪所述标准动作视频;

裁剪后的标准动作视频作为所述教学视频。

8.根据权利要求1至6中任一项所述的基于人体姿态估计的视频教学方法,其特征在于,使用TensorRT引擎对姿态检测过程中所利用的网络模型进行转换,以提升运算速度。

9.一种基于人体姿态估计的视频教学系统,其特征在于,包括:图像采集器,用于采集实时动作;

显示器,用于显示视频;

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的所述程序指令以实现如权利要求1至8中任一项所述的基于人体姿态估计的视频教学方法。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序代码,所述程序代码用于实现如权利要求1至8中任一项所述的基于人体姿态估计的视频教学方法。

说明书 :

一种基于人体姿态估计的视频教学方法、系统和存储介质

技术领域

[0001] 本发明涉及图像处理技术领域,具体而言,涉及一种基于人体姿态估计的视频教学方法、系统和存储介质。

背景技术

[0002] 目前,以武术为代表的部分体育课程的教学是以面授或是学员对照视频进行学习。在面授教学中,往往一个教师负责多名学生,学员在学习过程中依照老师的指点、示范
与自身理解等方式对动作的标准程度进行判断。由于教师精力有限,无法做到对每一位学
员进行实时指导,指导过程中也会有不够直观的问题出现。在学员视频学习的过程中,由于
只是跟随视频进行学习,一些技巧性动作的展示不够直观性、学习效率低下,且极易做错动
作,造成肌肉损伤。
[0003] 因此,如何设计一种能够实时评价学员动作的教学系统,并优化系统运行速度,使其便于轻量化部署,进而帮助提升教学训练效果,成为需要解决的技术问题。

发明内容

[0004] 本发明旨在至少解决现有技术或相关技术中存在的技术问题之一,公开了一种基于人体姿态估计的视频教学方法、系统和存储介质,基于低算力平台也能够实现在播放标
准视频的同时实时检测使用者的姿态,并与对应视频数据进行对比,最终达到方便教学的
目的。
[0005] 本发明的第一方面公开了一种基于人体姿态估计的视频教学方法,包括:检测到有教学视频上传,调用FFmpeg库获取教学视频每一帧的时间戳,并对所有时间戳进行编号
并保存,生成时间戳‑编号文件;在第一程序中加载教学视频,并预先加载时间戳‑编号文
件,ffpyplayer库加载每一帧视频画面,ffpyplayer库除了返回每一帧图像,还将返回其对
应的时间戳,根据时间戳‑编号文件中时间戳与编号的对应关系,获取该帧的编号,并将编
号发送至第二程序;在第二程序中,首先加载上传阶段保存的教学视频,然后启动摄像头采
集实时动作视频,读取每一帧实时画面并接收来自第一程序的编号,接收编号这一过程即
建立了教学视频帧与实时画面帧间的对应关系;按帧分析实时动作视频,对实时动作进行
姿态估计,生成姿态数据;根据编号读取教学视频中对应的图像帧,获取标准姿态数据;分
析姿态数据与标准姿态数据,生成姿态对比结果;根据姿态对比结果对实时动作视频中的
图像帧添加标记,多种颜色的标记表示多种对比结果;其中,进行姿态估计的具体步骤包
括:采用人体目标检测模型处理实时动作视频的图像,得到人体目标;采用人体姿态检测算
法检测人体目标的姿态。
[0006] 在该技术方案中,一路流程(程序)加载标准教学视频,为每一帧视频编号,并将编号送去另一路;另一路流程首先加载保存于本地的标准教学视视频数据,然后获取摄像头
采集的每一帧实时画面并接收来自另一路的编号,接收编号这一过程即建立了两路间的对
应关系,每一帧在完成姿态估计后将与标准数据中编号对应数据进行比对,实时展示动作
准确度,有助于提升教学质量。此外,检测学习者动作并与标准动作(教学视频)进行比较需
要就有一定实时性,人体检测模型选择网络最大输入尺寸为1×3×480×480,在NVIDIA 
GTX 1050平台上使用COCO 2017 val数据集进行测试,每张图片推断用时仅10.8ms(不含图
片前、后处理时间)。
[0007] 根据本发明公开的基于人体姿态估计的视频教学方法,优选地,得到人体目标的步骤,具体包括:根据目标检测模型的输出结果,得到多个人体框;建立对全部人体框的跟
踪并得到各自的id;设置参数track_ID用于保存所需跟踪的id;其中,参数track_ID初始状
态为空,因此完成建立跟踪关系的第一帧需要根据预先设置的筛选条件对人体框进行筛
选,只保留满足条件的人体框送入接下来的姿态估计网络,同时,所保留人体框的id将做为
track_ID保存,下一帧图像的全部人体框经过目标跟踪算法匹配后只需要根据track_ID决
定送入下一环节的人体框。
[0008] 在该技术方案中,考虑到系统使用过程摄像头前可能有多人存在,此时对系统而言,除学员外,其余人即为干扰项。通过在人体检测器与人体姿态估计网络间添加单一条件
进行人体框筛选可能会导致人体框的跳变,这将带来不需要的人体姿态估计结果。因此,该
技术方案设计了人体框筛选环节,该环节位于目标检测器与姿态估计网络之间,对目标检
测模型输出的人体框跟踪与筛选。能够使系统在边缘计算设备上也能做到具有一定实时
性,提升了系统的处理速度。
[0009] 根据本发明公开的基于人体姿态估计的视频教学方法,优选地,对姿态检测的运算过程改进,设计了一种FPEstimation网络框架,框架通过采用bottleneck堆叠结构,利用
PixelShuffle方法做上采样,PixelUnshuffle方法做下采样。其中,大幅减少了网络中的通
道数,bottleneck结构中的expansion参数从4降为1;引入深度可分离卷积的思想,利用
Depthwise卷积,降低参数量;引入GC block结构,应用于每个bo ttleneck中;激活函数采
用的是Hard Swish。对于步长为2的bottleneck,输入的特征图首先经过卷积核尺寸为1×1
的标准卷积处理,再经由PixelUnshuffle与卷积核尺寸为3×3的Depthwise卷积处理实现
降采样,经1×1的标准卷积处理后再由GC block处理,特征图还将与shortcut路径的特征
图的数据相加,最终经激活函数处理得到bottleneck结构的输出。
[0010] 在该技术方案中,通过修改网络结构,有效减小了模型尺寸,提升了系统实时性,原先数据通过TensorRT加速后的网络约16毫秒,通过本发明设计、再经TensorRT加速后的
FPEstimation网络仅需约8毫秒,大幅提升了网络速率。
[0011] 根据本发明公开的基于人体姿态估计的视频教学方法,优选地,还包括:将第一程序中的教学视频以及第二程序中的实时动作视频显示在同一界面中,其中,实时动作视频
带有标记。
[0012] 根据本发明公开的基于人体姿态估计的视频教学方法,优选地,还包括:在采用人体姿态检测算法检测人体目标姿态之前引入卡尔曼滤波算法对目标检测模型输出的人体
框进行补偿和修正。
[0013] 在该技术方案中,由于在非专业摄像头拍摄的图像中随机噪声与运动模糊很常见,他们影响了深度学习网络的特征提取结果,导致帧与帧间人体框相关坐标可能会出现
较大变动,在视觉上体现为抖动。而人体姿态估计网络输入的是根据人体框坐标扩展、剪裁
与缩放的图像,人体框的抖动会加剧关节点检测结果的抖动,因此引入卡尔曼滤波算法对
目标检测模型输出的人体框进行补偿和修正,能够减小人体框抖动对关节点带来的影响。
[0014] 根据本发明公开的基于人体姿态估计的视频教学方法,优选地,生成姿态对比结果的步骤,具体包括:根据姿态数据,获取人体关节点;计算每一对相邻关节点的连线的角
度;关节点连线角度与教学视频中对应的标准关节点连线角度之间的差值作为姿态对比结
果。
[0015] 在该技术方案中,计算每一对相邻关节点连线的角度并绘制关节点连线,该连线能够对应躯干,关节点连线角度获取简单、具有较好的唯一性、且不受人与摄像头距离影
响。采用关节点连线角度作为动作评判标准能够快速准确地对实时动作进行评价。
[0016] 根据本发明公开的基于人体姿态估计的视频教学方法,优选地,还包括:接收标准动作视频,对标准动作视频中的人体动作进行姿态估计,生成标准姿态数据;根据标准姿态
数据获取人体在画面中的最大活动范围,并根据最大活动范围裁剪标准动作视频;裁剪后
的标准动作视频作为教学视频。
[0017] 在该技术方案中,支持自定义添加教学视频,并对视频素材进行裁剪,减少了因画面人物过小而影响教学训练过程的问题。
[0018] 根据本发明公开的基于人体姿态估计的视频教学方法,优选地,使用TensorRT引擎对姿态检测过程中所利用的网络模型进行转换,以提升运算速度。
[0019] 在该技术方案中,基于TensorRT引擎对于网络结构进行了优化,把一些能够合并的运算合并在了一起,有效提升了模型的计算速度,提升了系统的实时性,使得系统部署在
算力较低设备时依旧能够实现实时姿态估计。
[0020] 本发明的第二方面公开了一种基于人体姿态估计的视频教学系统,包括:图像采集器,用于采集实时动作;显示器,用于显示视频;存储器,用于存储程序指令;处理器,用于
调用存储器中存储的程序指令以实现如上述任一技术方案的基于人体姿态估计的视频教
学方法。
[0021] 本发明的第三方面公开了一种计算机可读存储介质,该计算机可读存储介质存储有程序代码,程序代码用于实现如上述任一技术方案的基于人体姿态估计的视频教学方
法。
[0022] 本发明的有益效果至少包括:基于姿态估计算法实现动作姿态识别,通过帧编号建立教学视频与实时视频之间的对应关系,在播放标准视频(教学视频)的同时实时检测使
用者的姿态,并与对应视频数据进行对比,实现教学指导。为避免画面中人物过小对教学视
频画面进行剪裁,提升教学视频与实时视频的同屏展示效果。本发明还改进了姿态估计算
法网络,使其满足轻量化要求。

附图说明

[0023] 图1示出了根据本发明的一个实施例的基于人体姿态估计的视频教学方法的示意流程图。
[0024] 图2示出了根据本发明的一个实施例的人体框筛选流程图。
[0025] 图3示出了根据本发明的一个实施例的FPEstimation的部分网络结构示意图。
[0026] 图4示出了根据本发明的一个实施例的自定义教学视频添加流程图。

具体实施方式

[0027] 为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。
[0028] 在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实
施例的限制。
[0029] 本发明由于不仅需要通过人体姿态估计方法获取用户的实时动作,还需要获取标准动作视频中的动作信息以作对比,因此对姿态估计的精度要求较高,故采用自顶向下的
人体姿态估计方法,先检测人体,再根据得到的人体目标检测其姿态。
[0030] 如图1所示,本发明公开的基于人体姿态估计的视频教学方法具体包括:整个流程可分为两路,启动检测后,一路流程加载标准教学视频,获取每一帧视频编号,并将编号送
去另一路;另一路流程首先加载保存于本地的标准教学视视频数据,然后启动摄像头、读取
的每一帧实时画面并接收来自另一路的编号,接收编号这一过程即建立了两路间的对应关
系,每一帧在完成姿态估计后将与标准数据中编号对应数据进行比对;最后,两路流程的图
像将一起在界面中呈现。本发明采用关节点连线角度作为动作评判标准,通过比较每帧学
员图像中的关节点连线角度与标准动作数据中的对应连线角度,实现对用户动作的评判,
并根据差值大小用不同颜色绘制用户关节点连线,以直观表现各躯干动作是否到位。
[0031] 如图3所示,为提升系统检测速度,本发明设计了一种FPEstimation网络框架,框架通过对采用bottleneck堆叠结构,利用PixelShuffle方法做上采样,PixelUnshuffle方
法做下采样。其中,大幅减少了网络中的通道数,bottleneck结构中的expansion参数从4降
为1;引入深度可分离卷积的思想,利用Depthwise卷积,降低参数量;引入GC block结构,应
用于每个bo ttleneck中;激活函数采用的是Hard Swish。
[0032] 在该实施例中,对于步长为2的bottleneck,输入的特征图首先经过卷积核尺寸为1×1的标准卷积处理,再经由PixelUnshuffle与卷积核尺寸为3×3的Depthwise卷积处理
实现降采样,经1×1的标准卷积处理后再由GC block处理,特征图还将与shortcut路径的
特征图的数据相加,最终经激活函数处理得到bottleneck结构的输出。
[0033] 如图2所示,本实施例还公开了一种人体框筛选方法,该环节位于目标检测器与姿态估计网络之间,当用户启动系统开始学习,摄像头将捕捉的画面送入模型进行检测,检测
的结果按类别筛选只保留人体框。将全部人体框进行处理,建立对全部人体框的跟踪并得
到各自的id。系统设置了参数track_ID用于保存所需跟踪的学员id,其初始状态为空
(None),因此完成建立跟踪关系的第一帧需要根据预先设置的筛选条件对人体框进行筛
选,只保留满足条件的学员人体框送入接下来的姿态估计网络,同时,所保留人体框的id将
做为track_ID保存,下一帧图像的全部人体框经过目标跟踪算法匹配后只需要根据track_
ID决定送入下一环节的人体框。
[0034] 根据本发明的另一个实施例还公开了抖动抑制的方案:姿态估计结果会有抖动现象,即使画面中人物相对静止,这一现象依然存在。这是因为帧与帧之间的姿态估计结果存
在偏差,因此在展示效果上呈现出抖动。图像中的随机噪声与运动模糊是导致这一现象的
主要原因,即使帧与帧间人物动作相对静止,但由于随机噪声与模糊的存在,人体检测网络
特征提取结果存在差异,导致了人体框的位置与尺寸的差异,系统将人体框范围的图片剪
裁送入姿态估计网络,最终姿态估计结果出现抖动。由于在非专业摄像头拍摄的图像中随
机噪声与运动模糊很常见,他们影响了深度学习网络的特征提取结果,导致帧与帧间人体
框相关坐标可能会出现较大变动,在视觉上体现为抖动。而人体姿态估计网络输入的是根
据人体框坐标扩展、剪裁与缩放的图像。于是,人体框的抖动加剧了关节点检测结果的抖
动,因此加入对人体框的抖动抑制环节很有必要。本发明针对这种情况,引入卡尔曼滤波对
目标检测网络输出的人体框进行补偿和修正,减小人体框抖动对关节点带来的影响。
[0035] 如图4所示,本发明还公开了在上述实施例的基础上增加课程添加功能:在系统界面中选择需要添加的课程视频,通过对检测结果进行保存得到标准动作数据,用于在用户
练习进行对比。考虑到在教学阶段需要同时展示两幅视频画面,因此教学视频的呈现空间
有限,同时部分标准视频画面较大而人物较小,这样在有限区域呈现时会出现人物过小的
情况;因此,在完成这个视频检测后,将对得到的数据进行筛选,得到人物在画面中的最大
活动范围,并以此为标准对视频帧进行剪裁,这样确保了不会因画面人物过小影响教学训
练过程。
[0036] 根据本发明的另一个实施例还公开了:为了使系统能够运行于相对算力较低的设备(如边缘计算设备)上,对系统用到的深度学习模型进行速度优化。优化方法如下:
[0037] a)使用TensorRT对模型进行转换,TensorRT是一种高性能神经网络推理引擎,通常用于在生产环节中部署深度学习应用程序,其用于模型的推理阶段。当在GPU上进行网络
推断时,需要不断调用CUDA核心进行计算,CUDA核心计算速度本身很快,但是对各个CUDA核
心的启动和对网络中各层输入/输出张量的读写操作却占用了大量时间。TensorRT首先将
卷积层、激活层、bias层合并成CBR层,再将输入相同且执行相同操作的CBR层进行合并,最
后取消了concat层。这样实现了对网络中张量与层的融合(Layer & Tensor fusion),这提
高了GPU利用效率,减少了网络的数据读写次数,使网络推断过程更加高效。本发明将人体
检测与姿态估计的原始模型(darknet模型、pytorch模型)先转为onnx格式文件,再转化为
TensorRT的trt格式文件,通过调用TenosrRT的python API实现对优化后模型的调用。
[0038] b)使用TensorRT工具对模型进行量化,将数据类型由单精度浮点数FP32降为半精度浮点数FP16,这将使模型占用的存储空间更小,同时降低内存占用与延迟。
[0039] 根据本发明的又一个实施例还公开了一种基于人体姿态估计的视频教学系统,包括:图像采集器,用于采集实时动作;显示器,用于显示视频;存储器,用于存储程序指令;处
理器,用于调用存储器中存储的程序指令以实现如上述实施例的基于人体姿态估计的视频
教学方法。
[0040] 根据本发明的又一个实施例还公开了一种计算机可读存储介质,该计算机可读存储介质存储有程序代码,程序代码用于实现如上述实施例的基于人体姿态估计的视频教学
方法。
[0041] 根据本发明的上述实施例,本发明基于深度学习的姿态估计算法根据实际应用场景对算法中存在的问题进行优化:针对姿态估计算法的潜在应用领域,本发明决定深入研
究并建立一套视频学习系统,其可应用于视频教育、康复训练等领域。关于视频学习系统的
建立,首先针对最核心的动作指导问题,提出了用户动作检测、比对反馈流程,使得学习者
或训练者可以在进行视频学习或练习时,实时得到自己动作与标准动作的比对结果图像,
对比的依据采用相邻关节点连线的对地夹角。其次是系统进行功能上的完善,包括添加新
视频课程、获得新课程标准数据、多课程管理等功能,采用PyQt5框架实现系统界面。姿态估
计算法优化方面,本发明着重对算法进行了速度优化,本发明设计了一种FPEstimation网
络的轻量化模型进行姿态估计,并采用TensorRT工具实现算法模型的格式转换与量化,以
实现进一步的轻量化。
[0042] 上述实施例的各种方法中的全部或部分步骤是可以通过程序来控制相关的硬件来完成,该程序可以存储于可读存储介质中,存储介质包括只读存储器(Read—Only 
Memory,ROM) 、随机存储器(Random  Access Memory,RAM) 、可编程只读存储器
(Programmable  Read‑only  Memory,PROM)  、可擦除可编程只读存储器
(ErasableProgrammable Read Only Memory,EPROM) 、一次可编程只读存储器(One‑
timeProgrammable Read‑Only Memory,OTPROM) 、电子抹除式可复写只读存储器
(Electrically‑Erasable Programmable Read‑Only Memory,EEPROM) 、只读光盘
(CompactDisc Read—Only Memory,CD‑ROM) 或其他光盘存储器、磁盘存储器、磁带存储
器、或者能够用于携带或存储数据的可读的任何其他介质。
[0043] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修
改、等同替换、改进等,均应包含在本发明的保护范围之内。