打篮球的友友们应该知道,走步是比赛中最常见的违规之一。
为了更好地监测篮球比赛中球员是否出现走步行为,一位网名叫 @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/