首页 > 其他 > 详细

运动表现——软件系统设计方案

时间:2020-12-27 21:18:54      阅读:37      评论:0      收藏:0      [点我收藏+]

一、项目介绍

  该项目基于深度网络、机器视觉对人物运动的分析。比如,在足球比赛中,运动员奔跑时重心高度的变化。以及对战术的分析(控球球员可以传球的范围、应该选择传球还是继续带球等)和技术分析(传球的距离和落点)。

  意义:运动员在比赛过程中经常会受伤,除去因碰撞和意外的受伤之外,长期的过度运动也会导致骨骼和肌肉的损伤。在长时间的比赛中,因为疲劳而导致的动作变形也会增大骨骼和肌肉的损伤,甚至是由于动作变形导致摔伤或扭伤。该项目就是通过机器视觉,分析人物关节点,再对关节点的位置分析出人物的重心位置变化。针对分析出的问题进行训练,降低损伤,增加运动寿命。

二、设计方案与结构特点

  项目分成三个部分,首先DeepSort算法追踪视频中的人物,根据生成的文件将每帧中人物截取出来。然后Alphapose实别每张图中人物的关节点。最后,从第一步的人物框和第二步的关节点中分析出人物重心的变化、战术和技术。还有一些细节,不光是追踪人物,还要追踪足球,但是足球的运动速度快、体积小,难以实别和追踪,需要专门针对足球的实别调整YOLO的网络参数并训练权重。由于视频清晰度的限制,人物截取之后,图像会模糊,关节点的实别效果不好,需要使用超分辨率算法处理图像。对于战术的分析,还需要实别人物球衣的颜色,实别出同队的球员。

三、API

  ImageLoader类,继承DataLoder类,加载图片数据。

  VideoLoader类,继承DataLoder类,加载视频数据。

  DetectionLoader类,加载yolo模型,调用DataLoder子类对象。

  DetectionProcessor类,调用DetectionLoader类对象,预测人物框。

技术分享图片

 
技术分享图片

四、目录文件结构

技术分享图片

 

 

 技术分享图片

 

 

 技术分享图片

 

技术分享图片

 

 

 五、运行环境

    torch==0.4.0

  torchvision==0.2.0

  visdom

  nibabel

  pandas

  tqdm

  matplotlib

  opencv-python

  ntpath

六、核心工作机制

  先将视频输入deepsort,得到人物框和id组成的文件。再根据文件将视频中每帧的人物截取下来(一个23秒的视频能截取2万多张人物图像)。Alphapose既可以对图像中的人物标关节点,也可以对视频中的人物标关节点,但是alphapose没有追踪功能,所以暂时只使用对图像人物标关节点的部分。alphapose对人物图像标处理之后,得到一个json文件,里面包括图片中人物的所有关节点信息。

  重心分析部分:根据两个结果文件,得到每帧人物框的信息和关节点信息。通过手动标出球场的四个点,使用opencv的投影变换功能,将图像中梯形的球场映射成真实的矩形球场,这里只要拿到映射关系的矩阵即可。在人物是与球场垂直的前提下,通过映射矩阵可以算出人物框底边中心像素代表的实际长度,根据此长度乘以重心的到底边的像素个数,可以得到人物重心的高度。由此,得到人物每帧的重心高度,进而分析重心高度的变化是否由超过身高的8%。

  战术分析部分:使用opencv得到映射矩阵。识别球员队服颜色,分出两队成员。调整yolo的网络参数,重新训练用来专门识别足球。假设人与球的距离小于1.5米且保持2秒,就认为当前球员正在控球。然后,计算出20米内的所有球员(对手和队友),根据不同的距离,得到队友的接球范围和对手的防守范围的大小(近似看成一个圆形)。用控球球员的位置和防守范围做切线,得到不可以传球的范围。在剩下可选的范围里,找到一个最优的队友,选择传球(先考虑进攻,再考虑防守)。

运动表现——软件系统设计方案

原文:https://www.cnblogs.com/dudulududu/p/14198254.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!