【深度学习】这个CV模型,让你猜球必赢
新智元报道
编辑:Aeneas
【新智元导读】这位外国小哥,使用了YOLOv5和ByteTRACK的组合来跟踪球场上的球员。网友大呼:妥妥的赌球王者了。
前天,C罗的球迷们伤心惨了。
12月11日的卡塔尔世界杯上,葡萄牙不敌摩洛哥止步八强,C罗的世界杯之旅,就这样画上了遗憾的句号。
#C罗说梦想结束了#的这个热搜下,集结了不知多少心碎的球迷。
葡萄牙对摩洛哥的这场比赛,出现了0:1的爆冷结果。C罗哭了,内马尔哭了,下一个会是谁呢?
不过,还没来得及从为C罗伤心中走出来,今晚又要迎来梅西和莫德里奇的对决了!
怕心脏受不了?
现在,有了这么一个模型,没准能让你在比赛开始的5分钟内,就提前知道这场球会不会爆冷。
当计算机视觉用于足球
国外的这位机器学习工程师,一直希望把计算机视觉(CV)和自己热爱的足球相结合。
在三年前,他就曾尝试用YOLOv3来把篮球场上的运动员进行检测和分类。
而眼下的FIFA世界杯,让他重新捡起了这个想法。
这次,他使用的是YOLOv5和ByteTRACK的组合,来跟踪球场上的足球运动员。
第1步:构建预训练检测器
最初,Skalski希望能跳过自定义模型训练。
他希望从开始到结束只花几个小时,速战速决。
因为用于训练YOLOv5和YOLOv7模型的流行COCO数据集包含他最感兴趣的两个类 — person和sports ball,这就让他非常乐观,认为可以从COCO检查点进行训练。
他从Kaggle的德甲数据大战中快速下载了几十个简短的足球比赛视频,并将预训练模型用于测试。
在尝试了iou_threshold,confidence_threshold,input_resolution等各种配置后,他得到的结果令人失望。
在这个模型上,仅仅在几个视频帧上能检测到球,因为数量太少,模型无法可靠地跟踪如此小且快速移动的物体。
另一方面,这个模型会检测到场外的许多冗余对象——教练、球迷、维修人员、摄像人员等。为了这些冗余对象,需要编写额外的检测过滤逻辑,太过麻烦。
可见,即使数据集包含所需要的类,但用于推理的视频肯定与用于训练的图像有很大不同。
在这种情况下,Skalski只能创建自己的数据集,并训练自定义模型。
第2步:构建自定义检测器
而训练自定义模型,就需要付出很多努力。
最主要的原因是,为了注释图像,必须完成大量的手动工作。
由于时间匆忙,需要尽可能的简化流程。
Skalski从前面提到的Kaggle数据集中选择了几十个视频,并使用FFmpeg从每个视频中提取10帧——每3秒一个。
接下来,就是对图像执行自动初步注释,并将检测到的对象保存到txt文件,来利用预训练的YOLOv5 模型。
接下来,第2阶段就是要完善数据了。
虽然计算机已经完成了90%的工作,但人工更正仍然花了Skalski将近5个小时的时间。
同时,他还引入了两个额外的对象类——裁判和守门员。他的工作成果,在Roboflow Universe上可见。该数据集是开源的,任何人都可以免费使用。
预训练vs自定义足球运动员检测器
自定义训练的结果让Skalski对于解决上述两个问题充满自信。
但不幸的是,可能是由于分类不平衡,该模型在检测goalkeeper类时仍然存在问题。
于是,在接下来,Skalski将每个守门员都视为一名普通的足球运动员。
Skalski的模型和他的数据集一样,在Roboflow Universe上都是可用的。只需拖放测试图像即可。
第3步:跟踪对象
Skalski使用的是ByteTRACK(SOTA多对象跟踪器之一)来跟踪视频中的对象。
ByteTRACK在内部并不使用任何神经网络。这个模型的强大功能完全来自于简单的数学计算:比较各个帧上的边界框位置。
最重要的是,ByteTRACK不负责检测,只负责跟踪。因此,它不需要像其他一些跟踪器那样进行单独训练。
因而,ByteTRACK允许我们轻松地更换检测器,而无需重新设计整个代码的架构。
下面是一段简化的代码片段,在自己的项目中,您需要利用ByteTRACK的起始代码。
在ByteTRACK项目中,框架上的每个对象都有一个唯一的ID。
这是模型的结果:
ByteTRACK单帧结果
可以看到,每个玩家都被分配了一个唯一的编号,并在帧之间进行跟踪。
当然,检测和跟踪仅仅是个开始。
有了这些,我们就可以更上一层楼了!
比如,现在可以快速分析动作的过程,了解球是如何在球员之间移动的,计算球员移动的距离,或者定位他们最常出现的场地区域。
网友:不去赌球可惜了
有网友表示:既然你掌握了这么多信息,不去赌球真的亏了。
对此,有激动的网友表示:「这也太梦幻了!我一直就想做出这样一个东西卖给赌球的人。」
「你可以呈现出每个进攻球员的每一秒的传球状态和准备状态。甚至可以对从未被传球的球员进行360 度的表现评估,这比估计的赔率准确多了!」
也有网友表示:dream一个足球比赛的实时小地图。
有严谨的网友询问道:「这个脚本是否只适用于一个固定的摄像机角度,比如从覆盖整个地面的一侧?可不可以用在其他摄像角度上,例如对3-4位球员进行对焦拍摄。」
对此帖主回复:「我认为我们可以添加来自其他角度的用例的数据,重新训练模型,它应该表现得一样好。」
而该网友表示:「我感觉换个角度的训练数据是行不通的。我的想法是,继续在全摄像机角度拍摄时运行脚本,但要记下球的位置和球周围的球员,并在任何其他提要上标记数据。」
参考资料:
https://blog.roboflow.com/track-football-players/
https://youtu.be/QCG8QMhga9k
往期精彩回顾适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑机器学习交流qq群955171419,加入微信群请扫码
【深度学习】这个CV模型,让你猜球必赢相关推荐
- 今晚,为梅西和莫德里奇熬夜!这个CV模型,让你猜球必赢
视学算法报道 编辑:Aeneas [导读]这位外国小哥,使用了YOLOv5和ByteTRACK的组合来跟踪球场上的球员.网友大呼:妥妥的赌球王者了. 前天,C罗的球迷们伤心惨了. 12月 ...
- 从零开始搭建深度学习验证码识别模型
文章目录 从零开始搭建深度学习验证码识别模型 CNN模型与图像识别 验证码数据集介绍 生成数据集 生成EasyCaptcha 生成Kcaptcha 搭建模型 EasyNet模型 KCapNet模型 模 ...
- R使用LSTM模型构建深度学习文本分类模型(Quora Insincere Questions Classification)
R使用LSTM模型构建深度学习文本分类模型(Quora Insincere Questions Classification) Long Short Term 网络-- 一般就叫做 LSTM --是一 ...
- 深度学习100+经典模型TensorFlow与Pytorch代码实现大合集
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! [导读]深度学习在过去十年获得了极大进展,出现很多新的模型,并且伴随TensorF ...
- 深度学习CTR预估模型凭什么成为互联网增长的关键?
本文是王喆在InfoQ开设的原创技术专栏"深度学习CTR预估模型实践"的第一篇文章(以下"深度学习CTR预估模型实践"简称"深度CTR模型" ...
- 深度学习的seq2seq模型——本质是LSTM,训练过程是使得所有样本的p(y1,...,yT‘|x1,...,xT)概率之和最大...
from:https://baijiahao.baidu.com/s?id=1584177164196579663&wfr=spider&for=pc seq2seq模型是以编码(En ...
- 深度学习 vs. 概率图模型 vs. 逻辑学
深度学习 vs. 概率图模型 vs. 逻辑学 发表于2015-04-30 21:55|6304次阅读| 来源quantombone|1 条评论| 作者Tomasz Malisiewicz 深度学习de ...
- [caffe]深度学习之图像分类模型VGG解读
一.简单介绍 vgg和googlenet是2014年imagenet竞赛的双雄,这两类模型结构有一个共同特点是go deeper.跟googlenet不同的是.vgg继承了lenet以及alexnet ...
- CCAI 2017 | 香港科技大学计算机系主任杨强:论深度学习的迁移模型
CCAI 2017 | 香港科技大学计算机系主任杨强:论深度学习的迁移模型 原2017.07.22AI科技大本营 作者 | 贾维娣 7月23日,由中国人工智能学会.阿里巴巴集团 & 蚂蚁 ...
最新文章
- 关于《写给青少年的数学故事:代数奇思》“二维码”一文的声明
- Nature:揭示大脑中的免疫记忆
- Winform中设置ZedGraph的曲线为散点图
- Flutter 中的Error的捕获及处理
- 王者荣耀交流协会第四次Scrum立会
- php错误403_phpstudy访问文件报错403/Forbidden解决办法
- 局域网linux唤醒windows,局域网唤醒 (WOL - Wake on LAN) | 远程启动计算机- ManageEngine OpUtils...
- SqlPackage.exe –使用bacpac和PowerShell或Batch技术自动执行SQL Server数据库还原
- bzoj 1093 [ ZJOI 2007 ] 最大半连通子图 —— 拓扑+DP
- Java Web从前端到后台常用框架介绍
- FastReport浏览器直接打印无须预览(2023终版)
- 关于Linux下ISE和vivado安装cable usb驱动的问题
- 如何给三线表格(图片)添加标题?
- 学习笔记 Tianmao 篇 SliderLayout 的使用
- Syzmlw蜗居在线播放
- 【无标题】输入圆锥体半径r以及高度h,并计算它的体积。
- 访问者模式---萝卜青菜各有所爱
- php模板如何使用,PHP自定义模板标签详细解答,让你轻松驾驭
- 博应用官网揭露不为所知的iPhone手机搜索框使用教程
- uni-app中自定义图表(canvas实现chart图表)开发篇(5)-圆环进度条添加动画效果