大家好,我是小F~
今天给大家介绍一个AI体育实战的项目,足球比赛视频数据分析。
通过计算机视觉技术来检测足球比赛中的场地、运动员和足球。
使用opencv和yolo算法,实现实时分析足球比赛数据情况。
能够帮助球队优化战术、提升球员表现,为足球教练和球员提供全面且精准的数据支持,从而推动球队在比赛中取得更好的成绩。
用不同的检测模型,检测比赛中的场地、运动员和足球。
相关数据集可以在如下链接获取。
https://universe.roboflow.com/roboflow-jvuqo/football-field-detection-f07vi
https://universe.roboflow.com/roboflow-jvuqo/football-players-detection-3zvbc
https://universe.roboflow.com/roboflow-jvuqo/football-ball-detection-rejhg
主要是使用了以下模型。
YOLOv8(球员检测):检测视频中的球员、守门员、裁判和球。
YOLOv8(球场检测):检测足球场的边界和关键点。
SigLIP:从球员图像中提取特征。
UMAP:降低提取特征的维数,以便于聚类。
KMeans:聚类降维特征,将玩家分为两支球队。
整个项目是用Python3.11开发的,相关依赖可以在requirements.txt中找到。
首先使用conda,创建一个虚拟环境,Python版本3.11。
# 创建虚拟环境
conda create --name football python=3.11
# 激活虚拟环境
conda activate football
然后安装下面这些Python库依赖。
ultralytics==8.3.86
transformers==4.49.0
umap-learn==0.5.7
supervision==0.23.0
sentencepiece==0.2.0
protobuf==6.30.0
# 安装依赖
pip install -r requirements.txt
然后就可以运行代码了,main.py文件。
在命令行内执行如下命令,视频会保存在data文件夹内。
① 检测足球场的边界和关键点
python main.py --source_video_path data/2e57b9_0.mp4 --target_video_path data/2e57b9_0-pitch-detection.mp4 --device cpu --mode PITCH_DETECTION
检测足球场上的边界和关键点在视频,用于识别和可视化足球场的布局。
② 检测球员、守门员和裁判
python main.py --source_video_path data/2e57b9_0.mp4 --target_video_path data/2e57b9_0-player-detection.mp4 --device cpu --mode PLAYER_DETECTION
检测球员,守门员,裁判,和球在视频。对于识别和跟踪场上球员和其他实体的存在至关重要。
③ 检测足球
python main.py --source_video_path data/2e57b9_0.mp4 --target_video_path data/2e57b9_0-ball-detection.mp4 --device cpu --mode BALL_DETECTION
检测视频帧中的球并跟踪其位置,在比赛中跟踪球的移动很有用。
④ 球员跟踪
python main.py --source_video_path data/2e57b9_0.mp4 --target_video_path data/2e57b9_0-player-tracking.mp4 --device cpu --mode PLAYER_TRACKING
跟踪视频帧中的球员,保持一致的识别。在比赛中跟踪球员的移动和位置非常有用。
⑤ 球队分类
python main.py --source_video_path data/2e57b9_0.mp4 --target_video_path data/2e57b9_0-team-classification.mp4 --device cpu --mode TEAM_CLASSIFICATION
根据球员的视觉特征将被检测到的球员划分到各自的球队,区分不同球队的球员,并进行分析和可视化。
⑥ 足球雷达数据分析
python main.py --source_video_path data/2e57b9_0.mp4 --target_video_path data/2e57b9_0-radar.mp4 --device cpu --mode RADAR
RADAR,结合了球场检测、球员检测、跟踪和球队分类,生成足球场上球员位置(类似雷达的可视化)。
可以很方便看出球场上球员的运动和球队的阵型。
好了,今天的分享到这里结束了,感兴趣的同学可以自己去实践下~
项目源码,公众号后台回复:「足球分析01」,即可获得。
万水千山总是情,点个 👍 行不行。
推荐阅读
··· END ···