kaggle新賽DFL - Bundesliga Data Shootout(德甲)基礎(chǔ)比賽思路分享
比賽介紹
本次給大家分享的是DFL - Bundesliga Data Shootout
比賽的介紹和基礎(chǔ)的解決方案,同時(shí)也會(huì)給出比賽的基礎(chǔ)baseline。 希望對(duì)各位同學(xué)有幫助。【關(guān)注“學(xué)姐帶你玩AI”公眾號(hào)回復(fù)“報(bào)名新賽”添加小享報(bào)名or領(lǐng)取基礎(chǔ)baseline】
比賽介紹Deutsche Fu?ball Liga (DFL)總部
位于法蘭克福,負(fù)責(zé)管理德國(guó)的職業(yè)足球聯(lián)賽。在本次比賽中我們將使用DFL收集的足球視頻,完成足球場(chǎng)上的自動(dòng)事件監(jiān)測(cè)。通過(guò)開(kāi)發(fā)的算法模型,有助于深入了解球隊(duì)和球員的表現(xiàn)。
比賽數(shù)據(jù)集包括分成兩半的九場(chǎng)足球比賽的視頻記錄。您面臨的挑戰(zhàn)是在這些視頻中檢測(cè)三種足球事件。
足球場(chǎng)上事件介紹:
https://www.kaggle.com/competitions/dfl-bundesliga-data-shootout/overview/event-descriptions
challenge
play
throwin
比賽數(shù)據(jù)集介紹:
train文件夾:
用作訓(xùn)練數(shù)據(jù)的視頻的文件夾,包括八場(chǎng)比賽的視頻記錄。其中四場(chǎng)比賽包括兩半,而其他四場(chǎng)比賽只包括一半。test文件夾:
用作測(cè)試數(shù)據(jù)的視頻的文件夾。公共排行榜的測(cè)試數(shù)據(jù)包括一場(chǎng)完整比賽和四場(chǎng)半場(chǎng)比賽的視頻記錄,每場(chǎng)比賽的另一半在訓(xùn)練集中。clips文件夾:
另外十場(chǎng)比賽的短片,沒(méi)有事件注釋。您可能希望使用這些剪輯來(lái)幫助您的模型泛化到訓(xùn)練數(shù)據(jù)中未表示的環(huán)境。train.csv:
train/ 文件夾中視頻的事件標(biāo)注。
評(píng)測(cè)指標(biāo)
比賽評(píng)價(jià)指標(biāo):
https://www.kaggle.com/competitions/dfl-bundesliga-data-shootout/overview/evaluation
評(píng)測(cè)腳本:
https://www.kaggle.com/code/ryanholbrook/competition-metric-dfl-event-detection-ap
檢測(cè)通過(guò)特定于類的誤差容限與真實(shí)事件匹配,并按照置信度遞減進(jìn)行排序。每個(gè)類的時(shí)間戳誤差容限(以秒為單位)為:
Challenge:
[ 0.30, 0.40, 0.50, 0.60, 0.70 ]Play:
[ 0.15, 0.20, 0.25, 0.30, 0.35 ]Throw-In:
[ 0.15, 0.20, 0.25, 0.30, 0.35 ]
提交要求
必須通過(guò)Notebook
提交本次比賽。為了在提交后“提交”按鈕處于活動(dòng)狀態(tài)!且需要注意:
CPU Notebook <= 9 hours run-time
GPU Notebook <= 9 hours run-time
Internet access disabled
Freely & publicly available external data is allowed, including pre-trained models
Submission file must be named
submission.csv
這是一場(chǎng)代碼競(jìng)賽(Kernel賽),這意味著您將提交一個(gè)對(duì)隱藏測(cè)試集進(jìn)行預(yù)測(cè)的筆記本。此處可見(jiàn)的測(cè)試集只是幫助您編寫提交代碼的示例。當(dāng)您提交筆記本進(jìn)行評(píng)分時(shí),此示例數(shù)據(jù)將替換為實(shí)際測(cè)試數(shù)據(jù)。
測(cè)試集示例測(cè)試視頻只是短片(約30秒),而真正隱藏的測(cè)試視頻是完整的一半(約50分鐘)。視頻的名稱和數(shù)量也可能不同。 為確保您的提交成功完成,您應(yīng)該使您的代碼對(duì)此類變化具有健壯性。有關(guān)提示,請(qǐng)參閱我們的代碼競(jìng)賽調(diào)試頁(yè)面。
基礎(chǔ)思路
本次比賽的任務(wù)是對(duì)足球視頻中的事件進(jìn)行檢測(cè),主要是3種類型。當(dāng)然除了3種類型事件之外還有一類背景類,也需要考慮。
我們可以從以下幾個(gè)角度解決:
思路1:從單張圖片進(jìn)行識(shí)別
思路2:從視頻角度進(jìn)行識(shí)別
思路3:從球員運(yùn)動(dòng)規(guī)律進(jìn)行識(shí)別
在本次比賽中雖然比賽數(shù)據(jù)集只有40GB以內(nèi),但由于需要對(duì)視頻的角度進(jìn)行事件監(jiān)測(cè),因此需要考慮磁盤大小和預(yù)測(cè)速度。
如果對(duì)視頻每幀進(jìn)行抽幀,則需要100GB+磁盤;
如果對(duì)視頻事件前后進(jìn)行抽幀,則需要10GB+磁盤;
如果對(duì)視頻切分為片段,也需要10GB+磁盤;
這里我們主要介紹思路1的解決方法,也就是從圖片的角度進(jìn)行解決。具體包括的步驟為:
對(duì)訓(xùn)練集進(jìn)行抽幀
對(duì)事件訓(xùn)練模型進(jìn)行分類
對(duì)測(cè)試集進(jìn)行抽幀進(jìn)行預(yù)測(cè)
步驟1:對(duì)訓(xùn)練集進(jìn)行抽幀
對(duì)于視頻事件在訓(xùn)練集中有事件的時(shí)間,結(jié)合時(shí)間的誤差范圍我們可以大致確定事件的視頻范圍,大致可以整理為如下的思路。在誤差范圍內(nèi)是一個(gè)對(duì)應(yīng)的事件,在范圍之外則為backgraund類型
。
對(duì)應(yīng)的代碼為:
步驟2:對(duì)事件訓(xùn)練模型進(jìn)行分類
接下來(lái)我們需要做的事情為定義模型,對(duì)圖像進(jìn)行分類訓(xùn)練:
常規(guī)的訓(xùn)練函數(shù),需要提前定義優(yōu)化器和訓(xùn)練過(guò)程:
步驟3:對(duì)測(cè)試集抽幀進(jìn)行預(yù)測(cè)
對(duì)測(cè)試集視頻依次進(jìn)行抽幀:
接下來(lái)需要對(duì)測(cè)試集所有的圖片依次進(jìn)行預(yù)測(cè),得到類別結(jié)果。當(dāng)然也可以考慮對(duì)視頻的類別序列進(jìn)行劃窗和過(guò)濾的后處理操作。這個(gè)我們后續(xù)將會(huì)介紹。
后續(xù)思路
如果各位同學(xué)使用視頻抽幀分類的思路,需要運(yùn)行2部分代碼:
抽幀部分代碼,4小時(shí) + 訓(xùn)練訓(xùn)練代碼,6小時(shí)
模型線上預(yù)測(cè)代碼,3小時(shí)
上述思路如果在訓(xùn)練比較完整的過(guò)程中可以取得0.3左右的分?jǐn)?shù),當(dāng)然這個(gè)比賽也是非常吃資源的。后續(xù)我們將分享更多的思路。【關(guān)注“學(xué)姐帶你玩AI”公眾號(hào)回復(fù)“報(bào)名新賽”添加小享報(bào)名or領(lǐng)取基礎(chǔ)baseline】