上传比赛视频,AI 自动检测球场标线 + 追踪球与球员位置,实时测量球→人墙距离、球→球门距离、人墙人数,判定是否满足 IFAB 9.15m 退距要求。
基于 IFAB Law 13 官方规则,YOLO 球员检测 + 场地标定 + 距离计算,逐帧测量球与人墙、球门的实际距离。
拖拽任意球视频,系统自动检测球场标线作为距离测量的基准参考,无需手动操作。
YOLO 检测球员与球位置,结合场地标定数据逐帧计算球→人墙、球→球门实际距离(单位:米)。
自动比对球→人墙距离与 IFAB 9.15m 标准,统计人墙人数,输出逐帧测量报告与标注截图。
支持 MP4、AVI、MOV、MKV 等常见格式,最大 200MB。上传后自动检测球场标线,无需手动标定,分析约需 30~60 秒。
或点击选择本地文件
MP4 / AVI / MOV / MKV / WebM(最大 200MB)IFAB Law 13 规定:任意球时防守方人墙必须距离球至少 9.15m(10 码)。系统自动测量球与人墙、球门的实际距离。
📋 IFAB Laws of the Game 2025/26任意球距离分析系统的处理流程、架构设计、参数配置与核心模块说明
| 参数路径 | 默认值 | 说明 |
|---|---|---|
models.pose | yolo11n-pose.pt | YOLO 姿态估计模型,检测球员关键点用于标定 |
models.detect | yolo11n.pt | YOLO 目标检测模型,识别球员 / 球 / 守门员 |
foul.forward_move_threshold_px | 30 px | 守门员前移判定阈值,超过此像素数视为犯规 |
foul.lookback_frames | 60 帧 | 回溯窗口(约 2 秒 @30fps),用于判定发球前位置 |
foul.ball_speed_threshold_px | 6.0 px/f | 球速阈值,超过此值判定为已开出 |
foul.line_tolerance_px | 5 px | 门线判定容差,判断守门员是否踩线 |
output.dir | data/results | 分析结果(截图/视频/数据)输出目录 |
| ⚖️ IFAB Law 13 | 915 cm | 人墙必须距离球 ≥ 9.15m(10 码) |
主控管线,串联全部模块。支持单图/视频/手动标定三种模式,统一调度标定→检测→测量全流程。
analyze_frame(frame, idx) → FrameResult
YOLO 检测封装(Ultralytics)。球员检测 + 球场关键点检测(32 点),为标定和距离测量提供坐标输入。
detect_players(frame, conf=0.15) → List[Detection]
高精度单应性标定。≥4 点 + RANSAC 外点剔除,重投影误差 ~68cm。输出像素→cm 转换矩阵。
auto_calibrate(frame) → dict
人墙检测:DBSCAN 聚类球员后 RANSAC 拟合人墙线段。识别离球最近的进攻方球员为发球员。
detect(players, ball_xy) → WallInfo
基于单应性矩阵的精确距离测量。支持球→人墙、球→球门、人墙长度的厘米级计算。
measure(ball, wall, goal) → FreeKickDistances
可视化渲染引擎。球员框、球标注、人墙线、距离标注、2D 战术板俯视图,输出标注截图与视频。
draw_all_annotations(frame, results)