【实战】使用YOLO进行排球比赛数据分析【附源码与详细说明】
大家好,我是小F~今天给大家介绍一个AI体育实战的项目,排球比赛视频数据分析。AI在体育分析中的应用,尤其是视频分析在排球中的应用,已经成为提升球队表现的关键工具。它在多个方面展现出独特价值:技术与战术分析球员表现评估伤病预防与健康管理实时决策支持训练效率提升球员发展与人才选拔多维度数据整合使用了2个深度学习模型,视频分类模型和目标检测模型。其中视频分类模型可以检测比赛状态,主要有以下三种状态:s

大家好,我是小F~
今天给大家介绍一个AI体育实战的项目,排球比赛视频数据分析。
AI在体育分析中的应用,尤其是视频分析在排球中的应用,已经成为提升球队表现的关键工具。
它在多个方面展现出独特价值:
-
技术与战术分析
-
球员表现评估
-
伤病预防与健康管理
-
实时决策支持
-
训练效率提升
-
球员发展与人才选拔
-
多维度数据整合

使用了2个深度学习模型,视频分类模型和目标检测模型。
其中视频分类模型可以检测比赛状态,主要有以下三种状态:
-
service:比赛发球阶段
-
play:比赛进行阶段
-
no-play:比赛暂停阶段

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

主要有以下几类目标框:
-
红色框:排球
-
棕色框:发球动作
-
绿色框:接球动作
-
蓝色框:二传动作
-
紫色框:拦网动作
-
橙色框:扣球动作
视频分类模型的结果可以在视频的左上角看到,目标检测结果则是各种颜色的检测框了~

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



实现实时分析排球比赛数据情况。
整个项目是用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文件。


其中court_annotation.py文件用来标注排球场地的,设置检测区域。
可以在命令行中这样执行。

# 绘制检测区域
python -m src.gui.court_annotation
使用机器学习模型检测场地的四个角点,在Tkinter界面中手动调整角点位置,保存标注结果到JSON文件中(按s键保存)。
其中绿色区域为排球场地边界位置,黄色区域为排球场地中的攻击线位置,红色区域为排球网的位置。

绘制好检测区域以后,就可以运行demo.py,得到实时结果。
# 运行程序
python -m src.demo
会将排球球场数据进行分析显示。

好了,今天的分享到这里结束了,感兴趣的同学可以自己去实践下~
项目源码,公众号后台回复:「排球」,即可获得。
万水千山总是情,点个 👍 行不行。
推荐阅读
··· END ···

更多推荐



所有评论(0)