839305e29d30921fba19c48863d6288c.gif

大家好,我是小F~

今天给大家介绍一个AI体育实战的项目,排球比赛视频数据分析。

AI在体育分析中的应用,尤其是视频分析在排球中的应用,已经成为提升球队表现的关键工具。

它在多个方面展现出独特价值:

  • 技术与战术分析

  • 球员表现评估

  • 伤病预防与健康管理

  • 实时决策支持

  • 训练效率提升

  • 球员发展与人才选拔

  • 多维度数据整合

5806b9e5360e7c7c42c61f8e434e45cb.gif

使用了2个深度学习模型,视频分类模型和目标检测模型。

其中视频分类模型可以检测比赛状态,主要有以下三种状态:

  • service:比赛发球阶段

  • play:比赛进行阶段

  • no-play:比赛暂停阶段

70ddf548e66fbba55aac635f914b78a1.jpeg

这就是VideoMAE架构。

目标检测模型使用的是Yolov8模型,可以检测排球以及球员动作,下面是yolov8的架构图。

5f0bf5c94ad68aa99a3499deeb48ff7d.png

主要有以下几类目标框:

  • 红色框:排球

  • 棕色框:发球动作

  • 绿色框:接球动作

  • 蓝色框:二传动作

  • 紫色框:拦网动作

  • 橙色框:扣球动作

视频分类模型的结果可以在视频的左上角看到,目标检测结果则是各种颜色的检测框了~

e7b380a5c607d5e33f8cf762eb37438c.png

通过使用不同的检测和分割模型,分割球场以及识别球员。

cf6db423c45b5a4a7da2dd5cd098fea6.jpeg

8d79251eb4c5025dd29eecfc39d85420.jpeg

8448e5df3e3e774b638c3d3219c8f0bd.jpeg

实现实时分析排球比赛数据情况。

整个项目是用Python3.11开发的,相关依赖可以在requirements.txt中找到。

首先使用conda,创建一个虚拟环境,Python版本3.11。

# 创建虚拟环境
conda create --name volleyball python=3.11
# 激活虚拟环境
conda activate volleyball

然后安装下面这些Python库依赖。

opencv-python~=4.9.0.80
tqdm~=4.66.1
ultralytics~=8.0.220
numpy~=1.24.3
pyyaml~=6.0.1
pandas~=2.1.3
torch~=2.1.1
pytorchvideo~=0.1.5
torchvision~=0.16.1
imageio~=2.33.0
matplotlib~=3.8.2
seaborn~=0.13.0
scikit-learn~=1.3.2
norfair~=2.2.0
ipywidgets
widgetsnbextension
pandas-profiling
transformers~=4.36.2
natsort~=8.4.0
albumentations~=1.3.1
sqlalchemy~=2.0.24
pydantic~=2.5.2
fastapi~=0.109.2
ruff~=0.2.2
pendulum~=3.0.0
requests~=2.31.0
pika~=1.3.2
uvicorn~=0.26.0
pytube~=15.0.0
mathutils~=3.3.0
httpx~=0.27.0
loguru~=0.7.2
pydantic-settings~=2.2.1
# 安装依赖
pip install -r requirements.txt

然后就可以运行代码了,主要是court_annotation.py和demo.py文件。

849309a70bfded45afe6722332f8a33b.png

4d34c97276f91c675f82913e4044953f.png

其中court_annotation.py文件用来标注排球场地的,设置检测区域。

可以在命令行中这样执行。

c4eb2f4e7445c293372bf778ee0e6fda.png

# 绘制检测区域
python -m src.gui.court_annotation

使用机器学习模型检测场地的四个角点,在Tkinter界面中手动调整角点位置,保存标注结果到JSON文件中(按s键保存)。

其中绿色区域为排球场地边界位置,黄色区域为排球场地中的攻击线位置,红色区域为排球网的位置。

9636f1a5dbe27547b7d762a36b21083a.png

绘制好检测区域以后,就可以运行demo.py,得到实时结果。

# 运行程序
python -m src.demo

会将排球球场数据进行分析显示。

c71f62b6b3c7923921cb4cb15b2b3e25.gif

好‍了,今天的分享到这里结束了,感兴趣的同学可以自己去实践下~

项目源码,公众号后台回复:「排球」,即可获得。

万水千山总是情,点个 👍 行不行

推荐阅读

d244fcdb38edc635a647d95523406715.jpeg

7de3a9631b6f1e6a107048a0899e8935.jpeg

d829db409192d509f6c85b03d0a70706.jpeg

···  END  ···

749e1eeba31277c906f0e2b135cac165.jpeg

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐