当前位置:网站首页>AI篮球裁判火了,走步算得特别准,就问哈登慌不慌
AI篮球裁判火了,走步算得特别准,就问哈登慌不慌
2022-08-09 11:55:00 【QbitAl】
Alex 发自 凹非寺
量子位 | 公众号 QbitAI
打篮球的友友们应该知道,走步是比赛中最常见的违规之一。
为了更好地监测篮球比赛中球员是否出现走步行为,一位网名叫@Ayush Pai的小哥(我们就叫他AP哥吧)搞出了一个AI裁判。
如你所见,计算机时刻“盯着”打篮球的人,并且立马能判断出这个人是否走步了。
这个AI篮球裁判很快吸引了一批网友前来围观。
有人调侃道,如果NBA用了该AI裁判,他们就完了。(因为NBA裁判有时候不吹走步)
也有人说,这个AI看起来对规范小孩子打篮球很有帮助。
还有位大聪明建议AP哥再设计一个奥斯卡奖的失误检测AI。(Doge)
所以话说回来,这个AI裁判是怎么具备如此“火眼金睛”的呢?
主要追踪球运动轨迹和步数
你可能已经猜到了,这个AI裁判就是主要基于计算机视觉(CV)创造出来的。
该AI主要跟踪两个东西:球的运动轨迹和人的步数。
为了达此目的,首先将检测运球的时间。
首先,AP哥编写了一套CV算法来检测球的弹跳情况,将摄像机的视图流化,即:按顺序提取视频帧。
然后,AP哥创建了一个Aegis v图片颜色掩码,来识别并筛选出篮球的颜色。
在计算机后台程序中,篮球显示为白色,而其其他和篮球不同色的物体都呈现为黑色;因为只有球被识别出并被放在遮罩中。
不过,干扰色彩导致篮球周围出现了一些不规则的像素块,为了优化这个问题,AP哥删除了一些后处理代码,并且在球周围做了一个圆,使其看起来更规整。
为了更好地跟踪篮球弹跳情况,AP哥测出了其半径,根据球的半径和中心点得出的一个顶点,然后用抛物线函数来表示球的运动轨迹。当顶点达到最小值时,说明篮球触地了。
搞定篮球识别问题后,下面还要计数人在运球过程中走了几步。
AP哥起初认为使用苹果手表上现成的步数计数器就行,不过事实证明他太天真了——
苹果手表上的计步器并不能实时更新。
所以AP哥干脆自己动手,设计出一个实时计数的计步器。
他创建了一个安卓应用程序,根据x、y、z三个轴上的加速度检测并计数步数,并将这些数据反馈给Python程序。
最后,将监测球运动轨迹和步数的两个数据集结合起来,即可判断出人是否出现走步行为。
不过,目前这个AI裁判还不够“完美”,有网友指出,这个AI貌似识别不到现在NBA里当今盛行的gather step(哈登应该比较熟悉这个)。
对此,AP哥表示,他之后将为其加上这个功能。
你是否看好这个AI篮球裁判?对了,AP哥已其算法开源在GitHub上了,感兴趣的伙伴们可以去看看~
传送门:
https://github.com/ayushpai/Basketball-Detector
参考链接:
[1]https://www.youtube.com/watch?v=3UeoKxw8UYs
[2]https://www.reddit.com/r/MachineLearning/comments/wbwkwb/i_created_a_cvbased_automated_basketball_referee_p/
边栏推荐
猜你喜欢
专业人士使用的 11 种渗透测试工具
曲鸟全栈UI自动化教学(八):框架代码讲解和进一步优化
Chinese valentine's day?Programmers don't exist
Senior told me that the giant MySQL is through SSH connection
在北京参加UI设计培训到底怎么样?
Semaphore SIGCHLD use, how to make the parent that the child performs over, how to make the distinction between multiple child processes. The end
阿里云新增三大高性能计算解决方案,助力生命科学行业快速发展
一甲子,正青春,CCF创建六十周年庆典在苏州举行
Too much volume... Tencent was asked on the side that the memory was full, what would happen?
太卷了... 腾讯一面被问到内存满了,会发生什么?
随机推荐
LeetCode_单调栈_中等_456.132 模式
【Robustness of VQA-1】——2019-EMNLP-Don’t Take the Easy Way Out
IDEA close/open reference prompt Usages
智驾科技完成C1轮融资,此前2轮已融4.5亿元
Shell之常用小工具(sort、uniq、tr、cut)
WeChat side: what is consistent hashing, usage scenarios, and what problems does it solve?
香港服务器如何进行加密?
IDEA 关闭/开启引用提示Usages
【概率论】一元概率分布的平均化
LeetCode #101. Symmetric Binary Tree
父类的main方法可以被继承么?有什么特殊?
预置第三方apk到MTK项目相关问题总结
【重要】C语言进阶 -- 自定义类型:结构体、枚举、联合
Win10调整磁盘存储空间详解
【小程序】低代码+小游戏=小游戏可视化开发
Programmer's Exclusive Romance - Use 3D Engine to Realize Fireworks in 5 Minutes
Fapi_StatusType Fapi_issueProgrammingCommand使用注意事项
Semaphore SIGCHLD use, how to make the parent that the child performs over, how to make the distinction between multiple child processes. The end
从零开始Blazor Server(9)--修改Layout
C# async 和 await 理解