一、项目概述
该工程实践的任务是基于深度学习和机器视觉进行超高精度运动表现分析,利用图像语义和多内容信息注意力等技术进行战术、技术、身体、骨骼、肌肉的运动表现分析。需要用到两个现有的工具yolo和alphapose。
二、YOLO和alphapose总览
下图是YOLOv1的网络结构。
下图是alphapose网络结构。
三、用例图
用足球比赛举例,上传一个足球比赛视频,先通过YOLO检测到每一帧的人和足球,再由alphapose检测每个人的骨骼。由YOLO得到的结果可以分析出双方球员所在的位置,进而分析当前控球球员的最优选择(比如传球或者继续带球)。由alphapose可以分析出球员重心所在位置,并且分析出球员跑动姿势是否标准(标准的动作可以增加运动员的运动寿命)。用例图如下。
四、业务类图
首先是上传视频之后需要解析视频并抽取出每一帧,需要设计一个VideoLoader类完成这两个功能。然后需要设计一个YoloDriver类用来运行YOLO网络。因为alphapose需要在YOLO的结果上进行人体骨骼预测,所以设计一个AlphaposeDriver继承YoloDriver用一个类完成运行YOLO和alphapose的功能。类图如下。
五、数据模型
视频在项目中以数据流形式保存,抽取出的每一帧以及网络运行得到的图片都是由numpy二维数组形式保存,没有办法抽象出数据类型。数据分析的结果是以在视频中标注的形式出现。
六、总结
第一步,上传视频到系统,系统解析视频并抽出视频中的每一帧。
第二步,YOLO网络对视频帧预测,框出每一帧中的球员和足球。
第三步,alphapose网络在YOLO运行的结果上标注出每个球员的骨骼。
第四步,根据第二、三步的结果,分析出每个球员的重心、位置以及身体的速度。
第五步,通过重心分析球员的重心起伏是否在标准范围内。
第六步,通过球员位置和速度分析战术,分析防守球员的防守范围,在图像视频中标注出带球球员可以做出的选择,并选择最优的选择。
参考资料:https://gitee.com/mengning997/se/blob/master/README.md#%E4%BB%A3%E7%A0%81%E4%B8%AD%E7%9A%84%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B