打篮球的友友们应该知道,走步是比赛中最常见的违规之一。

为了更好地监测篮球比赛中球员是否出现走步行为,一位网名叫@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上了,感兴趣的伙伴们可以去看看~

推荐内容