訂閱
糾錯
加入自媒體

用機器學習識別排球比賽的階段

排球比賽的階段

人工智能分析排球比賽有多種方法。我過去常常跟蹤球,以便將比賽時間從整個視頻中分離出來。

另一種方法是確定游戲階段,并根據階段流程做出決策。

讓我們假設排球比賽包括4個階段:

· 沒有開始。沒有人或少數人在場上徘徊。

· 靜止階段。人們在比賽前站著不動。

· 比賽階段。

· 歡呼階段。即使比賽輸了,人們也會聚在一起互相歡呼。

所有這些階段都因人們相對于場和彼此的位置而不同。這意味著我們首先要做的是在圖片中找到人。

人員檢測

人員檢測器生成帶有玩家坐標的方框。該信息將作為階段分類模型的輸入。

有時探測器會漏掉人,這會給數據增加一些噪音。

數據準備

出于手動分類圖片所需的訓練目的,請將其移動到4個不同的文件夾中。

還有一個很好的問題是如何表示機器學習的輸入數據。有兩個主要選項:

· 使用檢測到的框的數字表示

· 使用圖片

我決定使用圖片選項,因為:

· 輸入大小應該是穩(wěn)定的,但我們事先不知道檢測的數量。球場上最多可能有12名球員,但球迷、裁判和替補球員可能會增加這個數字。圖片大小是固定的。

· 檢測是無序的。為了將它們用作數組輸入,我們需要以某種方式對它們進行排序,例如,從左到右、按大小等。

· 人性化。盒子上的數字是很難理解的。圖片化顯示能提供一個很好的線索。

為了將檢測結果表示為輸入圖片,我在黑色背景上繪制了白色實心矩形,并將其大小調整為64x64。

def get_mask(boxes):  
   

 pic = np.zeros((H,W,1), np.uint8)  


 clr = 255  
   

 for r in boxes:    

   cv.rectangle(pic, (r[0], r[1]), (r[0] + r[2], r[1] + r[3]), clr, thickness=-1)  
   

 pic = cv.resize(pic, (64, 64))  

 return pic

然后為每個階段準備了掩碼:

歡呼階段:

沒有開始階段:

比賽階段:

靜止階段:

選擇分類方法

多標簽分類有多種方法,因此選擇并不容易。最后,選擇了兩種最基本也是最流行的方法:

· sklearn的近鄰(又名KNN)

· 具有Tensorflow Keras(又名TFK)的簡單神經網絡

KNN對相同數據的準確率為81%,對隨機樣本的準確率為66%。

TFK也穩(wěn)定在80%左右。

測試分類

讓我們挑選一段排球測試視頻。用的是格拉茨計算機視覺研究所提供的奧地利業(yè)余聯(lián)賽的開放式視頻。

1. 從游戲中提取幀。人的移動速度不是很快,所以每秒2幀就足夠了:

ffmpeg -i video.mp4 -r 2 frames/%05d.jpg

2. 在幀上運行MobileSSD檢測器并生成json文件。

def detect_pic(ssd, img, thr = 0.3):

 rows = img.shape[0]

 cols = img.shape[1]
 

 ssd.setInput(cv.dnn.blobFromImage(img, 1.0/127.5, (600, 600), (127.5, 127.5, 127.5), swapRB=True, crop=False))

 out = ssd.forward()

 r = np.array([cols, rows, cols, rows])
 

 boxes = []

 scores = []

 for d in out[0,0,:,:]:

   score = float(d[2])

   cls = int(d[1])
   

   if cls 。 1:

     continue
   

   if score < thr:

     continue
     

 box = d[3:7] * r

   box[2] -= box[0]

   box[3] -= box[1]

   boxes.append(box.astype("int"))

   scores.append(score)
   

 if len(boxes) < 1:

   return []
   

 dxs = cv.dnn.NMSBoxes(boxes, scores, thr, 0.1)

 return [boxes[i].tolist() for i in dxs.flatten()]

3. 將檢測轉換為輸入掩碼

4. 對輸入掩碼進行分類

兩種方法的表現(xiàn)都比訓練期間差:

· KNN-72%

· TFK-70%

5. 預測階段

令人驚訝的是,KNN的表現(xiàn)也略好于TFK

結論

分類結果令人鼓舞,即使它們不夠精確,這也可以為視頻編輯器和觀眾節(jié)省一些時間。

減少視頻大小有多種原因:

加密整個游戲記錄。它使視頻變得更小(約占原始視頻的30%),存儲成本更低,加載速度更快,對觀眾更具吸引力。

將漫長的游戲分成有意義的部分。這對球員、他們的父母和球迷都很重要——小型視頻可以很容易地分享或保存在個人照片中。

參考文獻:

(Required by video dataset owner)

Improved Sport Activity Recognition using Spatio-temporal ContextGeorg Waltner, Thomas Mauthner and Horst BischofIn Proc. DVS-Conference on Computer Science in Sport (DVS/GSSS), 2014

Indoor Activity Detection and Recognition for Automated Sport Games AnalysisGeorg Waltner, Thomas Mauthner and Horst BischofIn Proc. Workshop of the Austrian Association for Pattern Recognition (AAPR/OAGM), 2014

       原文標題 : 用機器學習識別排球比賽的階段

聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權或其他問題,請聯(lián)系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

    掃碼關注公眾號
    OFweek人工智能網
    獲取更多精彩內容
    文章糾錯
    x
    *文字標題:
    *糾錯內容:
    聯(lián)系郵箱:
    *驗 證 碼:

    粵公網安備 44030502002758號