打籃球的友友們應該知道,走步是比賽中最常見的違規之一。為更好地監測籃球比賽中球員是否出現走步行為,一位網名叫@AyushPai的小哥(我們就叫他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/