用機器學習識別排球比賽的階段
排球比賽的階段
用人工智能分析排球比賽有多種方法。我過去常常跟蹤球,以便將比賽時間從整個視頻中分離出來。
另一種方法是確定游戲階段,并根據階段流程做出決策。
讓我們假設排球比賽包括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
原文標題 : 用機器學習識別排球比賽的階段

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