本文目录导读:

这是一个关于足球数据统计的问题。
在足球比赛中,脚后跟传球(Heel Pass)通常被归类为“创造性传球”或“关键传球”的子集。目前并没有单一、通用的官方“实用脚本”可以一键统计所有比赛(因为数据源和比赛定义不同),但我可以为你提供3种最实用的方法,取决于你手头有什么工具:
使用 Python + 公开数据集(适合程序员/数据分析师)
如果你有比赛事件数据(如 StatsBomb、Wyscout 导出的 JSON/CSV),可以用脚本筛选。
核心逻辑:
- 事件类型(type)为“Pass”(传球)。
- 传球身体部位(body_part)为“Heel”(脚后跟)。
- 统计该条件下的传球次数,并筛选出
pass_complete(成功)为 True 的。
示例代码(假设你有 StatsBomb 格式数据):
import json
# 加载比赛事件
with open('events.json', 'r', encoding='utf-8') as f:
events = json.load(f)
heel_passes = []
successful_heel_passes = []
for event in events:
if event.get('type', {}).get('name') == 'Pass':
body_part = event.get('pass', {}).get('body_part', {}).get('name', '')
if body_part == 'Heel':
# 记录一次脚后跟传球
heel_passes.append(event)
# 判断是否成功
if event.get('pass', {}).get('outcome', {}).get('name') == 'Complete':
successful_heel_passes.append(event)
print(f"总脚后跟传球:{len(heel_passes)} 次")
print(f"成功脚后跟传球:{len(successful_heel_passes)} 次")
使用足球数据 API(如 StatsBomb 免费公开数据)
StatsBomb 提供免费的公开数据集,包含英超、西甲等比赛,且数据中有 “Heel” 这个身体部位标签。
脚本思路(Python):
- 从
github.com/statsbomb/open-data下载events数据。 - 使用
pandas筛选:import pandas as pd import json
加载某场比赛的 event 数据
with open('data/events/3735295.json') as f: events = pd.json_normalize(json.load(f))
筛选脚后跟传球(身体部位为 Heel)
heel = events[ (events['type.name'] == 'Pass') & (events['pass.body_part.name'] == 'Heel') ]
统计成功(outcome.name 为 Complete)
successful = heel[heel['pass.outcome.name'] == 'Complete']
print(f"总次数:{len(heel)},成功次数:{len(successful)}")
---
### 方法三:视频分析脚本(适合已有比赛视频)
如果你只有视频,需要结合 **计算机视觉(如姿态识别)**,但实现较复杂:
1. **检测球员脚部**:用 YOLO 训练或预训练模型检测“脚后跟”触球关键点。
2. **判断传球意图**:若触球发生在脚后跟且球飞向队友,则计一次。
3. **统计**:记录触球瞬间和球是否到达队友脚下。
⚠️ 这种方法对硬件和模型要求较高,且容易误判,通常只有专业数据分析公司(如 Opta)使用人工+半自动工具。
---
### 最省事的方法(人工辅助工具)
如果你没有代码基础,**最简单的方式**是:
1. 打开比赛录像,找到**传球统计面板**(如 FIFA 游戏内统计、Opta 数据网站)。
2. 搜索 **“Heel Pass”** 或 **“Flick”**(脚后跟)标签。
3. 查看该标签下的 **“Completed”** 数量。
---
###
- **如果你有数据**:使用 Python 脚本(方法一/二)是最精确、最实用的。
- **如果你只有视频**:很难有现成的“脚本”一键完成,建议手动数或者借助慢放+Excel记录了。
如果你能告诉我具体的数据格式(比如来自哪个数据源),我可以帮你写一段**量身定制**的脚本。