使用OpenCV和YOLO算法,分析足球比赛(附源码)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值