足球场上的黑科技:图神经网络优化角球

在高水平的体育比赛中,对手之间的差距往往不大,基于AI的比赛战术优化可能会起到关键作用。在英国,不少足球俱乐部不仅有专家和分析师团队为每场比赛设计战术,而且也使用了视频分析、时空模型、对策论、统计学习、神经网络等技术,用于捕捉赛场规律,预测制胜时机[1]。

前不久,《自然》杂志旗下的子刊《自然通讯》刊登了一篇论文[2],介绍了如何通过图神经网络来分析足球中的角球战术,具体的角球战术分析包括:

  • 预测角球发出后抢先接到球的球员;
  • 预测角球能否带来射门;
  • 优化球门前队员的站位和跑动;
  • 通过 embedding,精确地从过去的比赛中搜索出相似的角球。

基于上述的分析,足球教练可以比较不同球员的不同部署,并评估各种部署的可能结果。上述分析功能经过了英国利物浦足球俱乐部多位专业人员的评测,实用性和准确性都得到了验证。

这篇论文的作者来自于谷歌DeepMind、英国利物浦足球俱乐部、以及加拿大阿尔伯塔大学。根据该论文的补充讨论[3]介绍,世界上尚未存在其它类似的基于图神经网络的足球角球战术分析模型。

为什么要分析角球战术呢?在足球赛场上,执行教练的既定战术往往受到球员的体力、球队在球场上的动态情况、对手情况、球场情况、甚至天气等多种因素的影响,教练既定战术的执行结果一般会有偏差。相对而言,足球中的角球、点球、任意球、边线球等机会则比较容易按战术计划排兵布阵。角球更容易产生射门机会,因此角球显得格外重要。角球因为发生的频率较高、位置比较固定、对于进球的影响容易评估等因素,进行角球数据分析也更容易一点。

这篇论文也指出,针对足球中的边线球等也可以采用论文中介绍的研究方法。

接下来是这篇论文的更多一些细节。

图数据结构

这篇论文使用了图数据结构来表示角球数据,其中:

  • 图的顶点表示双方的球员(共有22个顶点),每个顶点包含球员的位置、跑动速度和方向、是否持球、身高、体重等属性;
  • 每两个顶点之间都有边相连接,每条边可以包含一个逻辑型的属性,用来表示两个球员是否属于同一支球队;也可以将两个球员之间的距离添加到边的属性之中;
  • 图的属性可以包括当前比赛时间、当前比赛分数、当前球的位置等等。

数据

有关模型所使用的数据包括:

  • 近年来英超联赛视频中的角球部分;
  • 伴随上述视频的标注数据,例如是否射门、是否得分等;
  • 球员的身高、体重、角色数据;
  • 其它有关比赛的数据,包括比赛的日期、比赛场馆的信息、以及比赛场地的长宽。

论文的代码

论文中的模型采用了图神经网络,同时结合使用了几何深度学习的方法,用以利用足球场地的对称性,解决数据稀疏的问题。基础的图神经网络库已经放在了 github 上,但是足球战术分析的代码没有公开。

模型的训练

论文中的图神经网络的层数不是很多。图神经网络模型的训练使用的是英伟达的 P100 GPU。


参考文献:
[1] Tuyls, K., Omidshafiei, S. et al. (2020). Game Plan: What AI can do for Football, and What Football can do for AI. https://arxiv.org/pdf/2011.09192.pdf
[2] Wang, Z., Veličković, P., Hennes, D. et al. (2024). TacticAI: an AI Assistant for Football Tactics. Nature Communications 15, 1906
[3] Wang, Z., Veličković, P., Hennes, D. et al. (2024). Supplementary Information for “TacticAI: an AI Assistant for Football Tactics”. https://static-content.springer.com/esm/art%3A10.1038%2Fs41467-024-45965-x/MediaObjects/41467_2024_45965_MOESM1_ESM.pdf

封面图:Vienna Reyes、Unsplash

  • 15
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 首先,我们需要使用 Python 中的 requests 库来获取网页内容,然后使用 BeautifulSoup 库来解析网页内容。 以下是示例代码: ```python import requests from bs4 import BeautifulSoup # 获取网页内容 url = "https://www.zhibo8.cc/zuqiu/2019/1027-liwupi.htm" r = requests.get(url) html_content = r.content # 解析网页内容 soup = BeautifulSoup(html_content, "html.parser") table = soup.find("table", class_="bf_tablelist03") # 获取半场主客场攻防角球数据 rows = table.find_all("tr") for row in rows: cols = row.find_all("td") if len(cols) > 0 and cols[0].text == "角球": print("主队角球:", cols[1].text) print("客队角球:", cols[2].text) print("主队攻击:", cols[3].text) print("客队攻击:", cols[4].text) print("主队防守:", cols[5].text) print("客队防守:", cols[6].text) ``` 请注意,此示例代码仅适用于特定的网页,如果您要抓取其他网页上的数据,可能需要进行一些修改。 ### 回答2: 使用 Python 抓取球探足球网站上半场主客场攻防角球数据可以通过以下步骤实现: 1. 导入所需的库:首先,我们需要导入一些 Python 库,如 requests 和 BeautifulSoup。Requests 库用于发送 HTTP 请求,而 BeautifulSoup 库用于解析 HTML 页面。 2. 发送 HTTP 请求获取网页内容:使用 requests 库发送一个 GET 请求,获取球探足球网站上半场主客场攻防角球数据所在的网页内容。我们可以使用 requests.get() 方法来完成此操作。 3. 解析 HTML 页面:将获取的网页内容解析为一个 BeautifulSoup 对象,以便于后续查找和提取角球数据。我们可以使用 BeautifulSoup() 方法将网页内容和解析器(如 "html.parser")作为参数传递。 4. 查找角球数据:通过分析球探足球网站的 HTML 结构,我们可以使用 BeautifulSoup 对象来查找和提取上半场主客场攻防角球数据所在的 HTML 元素。我们可以使用 BeautifulSoup 对象的 find() 方法,通过指定标签名称和其他属性(如 class)来定位和提取数据。 5. 提取数据并进行处理:一旦我们定位到角球数据所在的 HTML 元素,我们可以使用 BeautifulSoup 对象的方法(如 text)来提取其中的文本内容。我们可以进一步对提取的数据进行处理,如转换为整数类型或其他格式。 6. 展示或保存数据:最后,我们可以选择将提取的角球数据展示在控制台上或保存到文件中,以便进一步分析或使用。 通过以上步骤,我们可以使用 Python 抓取球探足球网站上半场主客场攻防角球数据,并对其进行后续处理和展示。 ### 回答3: 使用 Python 抓取球探足球网站上半场主客场攻防角球数据可以通过以下步骤实现: 1. 导入必要的库:首先需要导入所需的库,如requests用于发送HTTP请求,beautifulsoup4用于从HTML中提取数据。 2. 发送HTTP请求并获取网页内容:使用requests库发送GET请求,将球探足球网站上半场主客场攻防角球数据的URL作为参数传入,获取返回的网页内容。 3. 解析HTML并提取数据:使用beautifulsoup4库对返回的网页内容进行解析,提取所需的数据。根据网页结构和标签等信息,找到包含主客场角球数据的HTML标签,使用beautifulsoup4库提供的方法进行解析,并提取出数据。 4. 数据处理和存储:将提取到的数据进行处理,如去除多余的空格、换行符等。根据需求可以选择将数据存储在文件中,如CSV格式或数据库中,或者直接进行后续的数据分析和处理。 5. 异常处理和错误提示:在代码中添加适当的异常处理机制,处理可能出现的网络错误、解析错误等异常情况,并给出错误提示信息,以便及时进行调试和修复。 总结:使用Python编写程序,可以通过发送HTTP请求获取球探足球网站上半场主客场攻防角球数据的网页内容,并使用beautifulsoup4库对网页内容进行解析和提取,最后进行数据处理和存储等操作。这样就能实现获取球探足球网站上半场主客场攻防角球数据的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

算AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值