大家好,我是小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  ···

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐