用機(jī)器學(xué)習(xí)識(shí)別排球比賽的階段
排球比賽的階段
用人工智能分析排球比賽有多種方法。我過去常常跟蹤球,以便將比賽時(shí)間從整個(gè)視頻中分離出來。
另一種方法是確定游戲階段,并根據(jù)階段流程做出決策。
讓我們假設(shè)排球比賽包括4個(gè)階段:
· 沒有開始。沒有人或少數(shù)人在場上徘徊。
· 靜止階段。人們在比賽前站著不動(dòng)。
· 比賽階段。
· 歡呼階段。即使比賽輸了,人們也會(huì)聚在一起互相歡呼。
所有這些階段都因人們相對于場和彼此的位置而不同。這意味著我們首先要做的是在圖片中找到人。
人員檢測
人員檢測器生成帶有玩家坐標(biāo)的方框。該信息將作為階段分類模型的輸入。
有時(shí)探測器會(huì)漏掉人,這會(huì)給數(shù)據(jù)增加一些噪音。
數(shù)據(jù)準(zhǔn)備
出于手動(dòng)分類圖片所需的訓(xùn)練目的,請將其移動(dòng)到4個(gè)不同的文件夾中。
還有一個(gè)很好的問題是如何表示機(jī)器學(xué)習(xí)的輸入數(shù)據(jù)。有兩個(gè)主要選項(xiàng):
· 使用檢測到的框的數(shù)字表示
· 使用圖片
我決定使用圖片選項(xiàng),因?yàn)椋?/p>
· 輸入大小應(yīng)該是穩(wěn)定的,但我們事先不知道檢測的數(shù)量。球場上最多可能有12名球員,但球迷、裁判和替補(bǔ)球員可能會(huì)增加這個(gè)數(shù)字。圖片大小是固定的。
· 檢測是無序的。為了將它們用作數(shù)組輸入,我們需要以某種方式對它們進(jìn)行排序,例如,從左到右、按大小等。
· 人性化。盒子上的數(shù)字是很難理解的。圖片化顯示能提供一個(gè)很好的線索。
為了將檢測結(jié)果表示為輸入圖片,我在黑色背景上繪制了白色實(shí)心矩形,并將其大小調(diào)整為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
然后為每個(gè)階段準(zhǔn)備了掩碼:
歡呼階段:
沒有開始階段:
比賽階段:
靜止階段:
選擇分類方法
多標(biāo)簽分類有多種方法,因此選擇并不容易。最后,選擇了兩種最基本也是最流行的方法:
· sklearn的近鄰(又名KNN)
· 具有Tensorflow Keras(又名TFK)的簡單神經(jīng)網(wǎng)絡(luò)
KNN對相同數(shù)據(jù)的準(zhǔn)確率為81%,對隨機(jī)樣本的準(zhǔn)確率為66%。
TFK也穩(wěn)定在80%左右。
測試分類
讓我們挑選一段排球測試視頻。用的是格拉茨計(jì)算機(jī)視覺研究所提供的奧地利業(yè)余聯(lián)賽的開放式視頻。
1. 從游戲中提取幀。人的移動(dòng)速度不是很快,所以每秒2幀就足夠了:
ffmpeg -i video.mp4 -r 2 frames/%05d.jpg
2. 在幀上運(yùn)行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.a(chǎn)rray([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.a(chǎn)ppend(box.a(chǎn)stype("int"))
scores.a(chǎn)ppend(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. 將檢測轉(zhuǎn)換為輸入掩碼
4. 對輸入掩碼進(jìn)行分類
兩種方法的表現(xiàn)都比訓(xùn)練期間差:
· KNN-72%
· TFK-70%
5. 預(yù)測階段
令人驚訝的是,KNN的表現(xiàn)也略好于TFK
結(jié)論
分類結(jié)果令人鼓舞,即使它們不夠精確,這也可以為視頻編輯器和觀眾節(jié)省一些時(shí)間。
減少視頻大小有多種原因:
加密整個(gè)游戲記錄。它使視頻變得更。s占原始視頻的30%),存儲(chǔ)成本更低,加載速度更快,對觀眾更具吸引力。
將漫長的游戲分成有意義的部分。這對球員、他們的父母和球迷都很重要——小型視頻可以很容易地分享或保存在個(gè)人照片中。
參考文獻(xiàn):
(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
原文標(biāo)題 : 用機(jī)器學(xué)習(xí)識(shí)別排球比賽的階段

請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個(gè)字
最新活動(dòng)更多
-
6月20日立即下載>> 【白皮書】精準(zhǔn)測量 安全高效——福祿克光伏行業(yè)解決方案
-
7月3日立即報(bào)名>> 【在線會(huì)議】英飛凌新一代智能照明方案賦能綠色建筑與工業(yè)互聯(lián)
-
7月22-29日立即報(bào)名>> 【線下論壇】第三屆安富利汽車生態(tài)圈峰會(huì)
-
7.30-8.1火熱報(bào)名中>> 全數(shù)會(huì)2025(第六屆)機(jī)器人及智能工廠展
-
7月31日免費(fèi)預(yù)約>> OFweek 2025具身機(jī)器人動(dòng)力電池技術(shù)應(yīng)用大會(huì)
-
免費(fèi)參會(huì)立即報(bào)名>> 7月30日- 8月1日 2025全數(shù)會(huì)工業(yè)芯片與傳感儀表展
推薦專題
- 1 AI 眼鏡讓百萬 APP「集體失業(yè)」?
- 2 大廠紛紛入局,百度、阿里、字節(jié)搶奪Agent話語權(quán)
- 3 深度報(bào)告|中國AI產(chǎn)業(yè)正在崛起成全球力量,市場潛力和關(guān)鍵挑戰(zhàn)有哪些?
- 4 上海跑出80億超級(jí)獨(dú)角獸:獲上市公司戰(zhàn)投,干人形機(jī)器人
- 5 國家數(shù)據(jù)局局長劉烈宏調(diào)研格創(chuàng)東智
- 6 一文看懂視覺語言動(dòng)作模型(VLA)及其應(yīng)用
- 7 下一代入口之戰(zhàn):大廠為何紛紛押注智能體?
- 8 百億AI芯片訂單,瘋狂傾銷中東?
- 9 Robotaxi新消息密集釋放,量產(chǎn)元年誰在領(lǐng)跑?
- 10 格斗大賽出圈!人形機(jī)器人致命短板曝光:頭腦過于簡單