top of page

如何純用軌跡對齊足球事件與 tracking 數據

9月7日
讀畢需時 13 分鐘

足球分析常用的兩份數據,各自有各自的缺陷。Event data 由人手標註,記錄每一次傳球、射門、攔截由誰做出;但標註員按鍵的一刻,往往與球員真正觸球的一刻有幾十幀的落差。Tracking data 每秒 25 幀記錄全場球員與足球位置,精確但沒有語義。兩者要合起來用,第一步就是把每個事件對回正確的一幀。對錯了,下游模型看到的球員站位就是錯的。

Hyunsung Kim 等人(KAIST、AFC Ajax、Fitogether,CIKM 2026,arXiv:2608.30227v1)提出的 ELASTIC,全名 Event-Location-AgnoSTIC synchronizer,用意寫在名字裏:完全不使用人手標註的事件位置,只靠球員與足球的軌跡推斷事件的開始與結束時刻。在他們重新標註的公開基準上,事件起點對齊到兩幀(0.08 秒)以內的比率是 96.5%,對照的三個基線分別是 54.4%、67.1% 與 74.8%。


本文重點

這篇文章處理的問題,表面上是「時間軸校正」這種前處理細節,但作者想證明的是兩件事。第一,既有同步方法依賴人手標註的事件座標作為主要評分依據,而這個座標本身就有雜訊,會把演算法引向錯誤的一幀;只用軌跡特徵反而更穩。第二,大部分數據供應商不記錄「接球」事件,所以現有方法都不知道每個球員何時開始控球;ELASTIC 在事件序列之間插入虛擬的終止事件,令每個事件的起點與終點一次過對齊。

文章另有兩項實務貢獻:一份在 Sportec Open DFL Dataset 上重新標註的公開基準,以及一組下游任務實驗,證明對齊質素直接影響 GNN 模型的預測表現。


一、為何既有方法會對錯幀

論文以一個實例開場。球員 #12 在第 38 幀接球,第 79 幀傳出。人手標註的傳球位置(圖中的星號)卻更接近接球點,而非真正傳球的位置。ETSY、DataBallPy 等方法都以「標註位置與足球距離最小」作為選幀準則,於是它們選中的是第 38 幀,即接球的一刻,而不是傳球的一刻。

這不是個別失誤。標註員在比賽片段中按下事件的位置,本身就有空間誤差;用它作為主要依據,誤差會直接進入同步結果。Biermann 等人的方法避開了標註位置,改為純用 tracking 特徵,但要有真值標籤才能訓練分類器,而且以滑動窗口的聚合特徵運作,只能做到窗口級的粗解析度。

第二個共通缺口是接球。Anzer 等人只同步射門,Biermann 等人只做傳球,DataBallPy 覆蓋傳球、射門、攔截與盤球,但沒有一個能找出球員接到足球的一刻。沒有接球時間,就無法重建每個球員的控球區間,也不能按目的地分析傳球。


二、五個階段總覽

ELASTIC 的輸入是一場比賽的事件序列 E = (e_1, …, e_M) 與 tracking 快照序列 X = (x_1, …, x_T),輸出是每個事件的起止幀對 (t_start_i, t_end_i),並要求所有起止時刻保持事件原有次序。

整條管線分五步:數據前處理,包括切段、事件分類與插入虛擬終止事件;抽取候選幀;為每一對事件與候選幀計算 0 至 1 之間的相容分數;用擴充版的 Needleman-Wunsch 演算法做保序對齊;最後做後處理。以下逐段講。


三、前處理:切段、分類、補回接球

切段。 沿用 Oonk 等人的做法,先把比賽按連續的 in-play 幀切成多個 episode,每段獨立對齊。直接對整場比賽做動態規劃是 O(MT),切段後變成 O(K M' T'),其中 K ≈ 100 是一場比賽的段數,M' 與 T' 分別是最長一段的事件數與幀數,兩者都遠小於全場總數。

事件分類。 原始事件先轉成 SPADL 格式,再按 tracking 訊號的行為模式分成四類:開放比賽出球(pass、cross、clearance、shot 等)、定位球出球(throw_in、goal_kick、corner、freekick、penalty 等)、入球類(interception、ball_recovery、keeper_save 等),以及次要事件(tackle、dispossessed)。每一類之後套用不同的評分規則。

插入虛擬終止事件。 這是 ELASTIC 找回接球的關鍵。在每對相鄰事件 (e_i, e_i+1) 之間,按條件插入三種虛擬事件之一:

  • e_i 是成功射門而 e_i+1 是開球傳球,插入 goal;

  • e_i+1 是界外球、龍門球或角球,插入 out;

  • 兩者屬同一 episode 且由不同球員執行,插入 control,代表下一位球員接球;

  • 其餘情況不插入。

擴充後的序列變成「起點(原始)→ 終點(插入)→ 起點 → 終點」交替排列。這樣每個 episode 只需做一次對齊,就能同時決定每個原始事件的開始與結束時刻。


四、候選幀:只看物理上可能觸球的時刻

DataBallPy 把每一個 in-play 幀都當作潛在匹配對象。以 25 FPS 計,一場比賽約有 90,000 個 in-play 幀,動態規劃表格填滿要不少時間;更重要的是,大部分幀根本不可能發生觸球事件,足球離所有球員都很遠,或者運動狀態沒有變化。把這些幀放進候選集,只會增加誤配機會。

ELASTIC 改為先抽一個稀疏的候選集。三類幀會被視為候選:

  • (a) 足球與某球員距離的局部極小值,捕捉該球員可能觸球的時刻;

  • (b) 足球與邊線或底線距離的局部極小值,捕捉出界與入球的時刻;

  • (c) 足球加速度的局部極大值,捕捉方向突變但未必伴隨距離谷底的情況。

(a) 與 (b) 對每個球員、每條邊線獨立計算,(c) 則配上加速度峰值時最接近足球的球員。之後丟棄球員與足球距離超過 3 米或足球高度超過 4 米的(幀,球員)組合。餘下的組合按幀編號分組,每個候選記為 c = (t_c, P_c),其中 P_c 是該幀關聯的球員與邊線集合。

分組這一步有實際意義。保序對齊會對同一幀出現的多個候選強加任意次序,若這個次序與同時發生的事件次序衝突,就會配錯;先按幀合併,衝突就不會出現。


五、五種特徵評分

每一對事件與候選幀的分數,是若干個特徵分數的加權和,每個特徵分數都由同一個截斷線性函數產生。這個函數只做一件事:把原始量度在兩個門檻之間線性映射到 0 至 1,門檻以外截斷。

f(x; x0, x1) = 0                      若 x <= x0
             = 1                      若 x >= x1
             = (x - x0) / (x1 - x0)   若 x0 < x < x1

五個特徵如下。

足球加速度(BA)。 事件發生時足球通常改變方向,加速度越大分數越高,上限設在 30 m/s²。

球員與足球距離(PBD)。 執行事件的球員必須觸到足球,距離越小分數越高,3 米以外為零分。

踢球距離(KD)。 出球或入球事件都涉及足球在觸球前後移動一段有意義的距離。Pre-KD 取當前候選與上一個關聯同一球員的候選之間,球員與足球的最大距離;Post-KD 則取當前候選與下一個候選之間的最大距離。入球事件用 Pre-KD,出球事件用 Post-KD,兩者都用來區分真正的接球或踢球與隨後的小觸碰。

距離斜率(PBDS)。 觸球前後,球員與足球距離應呈 V 形。以 h = 0.2 秒計算前斜率與後斜率;出球事件若前斜率為正(足球已在遠離),入球事件若後斜率為負(足球仍在接近),都會被扣分,斜率上限為 7 m/s。

對手距離(OD)。 tackle 與 dispossessed 涉及兩名球員爭球,足球應同時接近最近的對手,這個分數只用於次要事件,取代 PBDS。

組合時有一個硬約束:執行事件的球員 p_e 必須屬於 P_c,否則分數直接為零。出球事件用 BA、PBD、Post-KD、前斜率;入球事件用 BA、PBD、Pre-KD、後斜率;次要事件用 BA、PBD、KD 與 OD,其中 tackle 取 Pre-KD,dispossessed 取 Post-KD。五個權重全部設為 0.25,令總分落在 0 至 1 之間。


六、加入 down-match 的 Needleman-Wunsch

Needleman-Wunsch 原本是生物資訊學中對齊兩條蛋白質或 DNA 序列的演算法,透過 gap penalty 決定哪些元素留空而非強行配對。在這裏,事件側的 gap 吸收找不到相容候選的模糊事件,候選側的 gap 吸收沒有事件發生的幀。

原版遞迴有三個選項:對角匹配(e_i 配 c_j)、向右留空(c_j 不匹配)、向下留空(e_i 不匹配)。這個結構強制一對一,每個候選幀最多只能配一個事件。足球卻經常出現兩個連續事件對應同一時刻:一方失球與另一方搶截分別記錄為 dispossessed 與 tackle,實際上是同一次爭球;一腳出球中的 control 與緊接的 pass 也是同一幀。

作者因此加入第四個選項 down-match:像向下留空一樣移動索引,但不留空,而是把當前事件再配到上一個已匹配的候選幀,代價是一個常數 repeat penalty r <= 0。擴充後的遞迴式如下,F 是動態規劃表,s(e_i, c_j) 是第五節的配對分數:

F[i][j] = max(
    F[i-1][j-1] + s(e_i, c_j),        # diag-match:e_i 配 c_j
    F[i][j-1]   + g_c,                # right-gap:c_j 不匹配
    F[i-1][j]   + g_e,                # down-gap:e_i 不匹配
    F[i-1][j]   + s(e_i, c_j) + r,    # down-match:e_i 再配 c_j
)

三個懲罰參數的設定都有理由。候選側 gap penalty g_c = 0,因為候選數目本來就多於事件數,至少有 n - m 個候選必然留空,用分數本身決定留哪些即可。事件側 g_e = 0,容許事件在沒有相容候選時留空,低信心匹配的剔除交給後處理。Repeat penalty r = -0.1,只有兩個事件的分數都夠高才會被合併到同一幀。

後處理有三步。相鄰的 dispossessed 與 tackle 若配到不同幀,統一到分數較高的一幀;分數低於 0.5 的匹配標記為未同步,寧願留空也不污染下游;最後把擴充序列折回原始事件,每個原始事件從自身匹配的幀取起點,從其後插入的虛擬終止事件取終點。


七、基準:重新標註 Sportec Open DFL

先前的同步研究依賴私有數據或間接評估,難以復現。作者在 Sportec Open DFL Dataset(德甲及德乙七場比賽的公開事件與 tracking 數據)中選取三場,由三位具足球分析經驗的作者以 25 FPS 解析度獨立重新標註每個事件的時間戳,並補上原數據沒有的 control、out 與 goal 事件。標註工具與結果已公開。

三人標註的一致度相當高:95.0% 的事件三人給出完全相同的幀,平均兩兩差距 0.521 幀(0.0208 秒);99.3% 的事件至少兩人的標註落在兩幀(0.08 秒)之內。作者以三人標註的中位數作為真值。整個基準共 6,470 個時間標籤,其中 3,498 個事件起點,2,972 個事件終點。

評估以 W2 為主指標,即預測落在真值兩幀之內算命中。作者的理由是,一兩幀的差距常源於不同供應商或標註員對「事件時刻」定義不同,或 tracking 數據平滑後局部極值偏移,與真正的同步誤差無關;而標註員之間 99.3% 都在兩幀內一致,這個容差是可靠的。


八、主結果

三個基線與兩個 ELASTIC 變體的比較如下。ELASTIC-Greedy 與 ELASTIC-NW 共用候選幀抽取與評分,只是把 NW 對齊換成順序貪婪匹配。

類別

方法

W2 準確率

平均誤差(幀)

開放比賽出球(2,690)

ETSY

56.1%

10.076


Biermann et al.

78.2%

15.268


DataBallPy

86.0%

4.381


ELASTIC-Greedy

86.1%

7.251


ELASTIC-NW

97.8%

1.050

定位球出球(282)

DataBallPy

93.6%

3.280


ELASTIC-NW

97.9%

0.060

入球類(295)

ETSY

45.8%

23.287


Biermann / DataBallPy

0.0%

不支援


ELASTIC-NW

90.2%

5.799

次要事件(231)

DataBallPy

16.9%

15.284


ELASTIC-NW

87.9%

2.883

事件起點(3,498)

ETSY

54.4%

13.030


Biermann et al.

67.1%

14.201


DataBallPy

74.8%

4.703


ELASTIC-Greedy

84.1%

8.572


ELASTIC-NW

96.5%

1.495

事件終點(2,972)

ELASTIC-Greedy

77.8%

13.092


ELASTIC-NW

93.6%

1.937

事件起點的 96.5% 與基線的差距,部分反映 Biermann 等人與 DataBallPy 只覆蓋部分事件類型。但在所有基線都設計覆蓋的出球事件上,ELASTIC-NW 仍是最準:開放比賽 97.8% 對 DataBallPy 的 86.0%,定位球 97.9% 對 93.6%。事件終點,即先前方法一律留空的接球時刻,W2 準確率是 93.6%。整體 6,470 個標籤中 95.2% 落在兩幀內,平均誤差 1.697 幀,約 0.068 秒。

兩個 ELASTIC 變體的比較,說明了全局對齊的價值。Greedy 用同一批候選幀,但順序匹配會把早期錯誤傳給後續事件,事件起點準確率只有 84.1%。差距在次要事件最明顯:62.3% 對 87.9%。tackle 與 dispossessed 的運動模式本來就最模糊,保序的 NW 能一併化解這些歧義,貪婪法做不到。


九、候選覆蓋與超參數

由於 ELASTIC 只在候選幀之中對齊,候選集的覆蓋率是準確率的天花板。作者定義 W2 coverage 為:真值時刻兩幀之內存在一個關聯執行球員的候選幀的比率,這等於一個永遠選對候選的 oracle 的 W2 準確率。

預設配置下覆蓋率為 98.4%,候選數 16,979。三個偵測條件互補:只用距離條件 (a)+(b) 覆蓋率跌到 77.2%,只用加速度條件 (c) 跌到 88.5%。前者漏掉距離沒有形成局部極小的觸球,後者漏掉沒有引起足球運動突變的軟觸球。

兩個門檻的掃描結果顯示一個平台。距離門檻收到 1 米,覆蓋率跌到 94.0%,因為軌跡雜訊會把真實觸球的量度距離推高;高度門檻低於 3 米會漏掉空中觸球。兩者到 3 米之後就飽和;完全不設距離門檻,候選數升到 220,812,每場運算時間由 37.62 秒升到 115.82 秒,準確率沒有改善。

特徵權重方面,把任何一個權重設為零都會令對應類別退步。KD 的權重影響最廣,關掉後所有類別下跌,事件起點由 96.5% 跌到 89.4%。PBDS 的權重對其他類別影響不大,但關掉後定位球準確率崩到 38.7%:定位球通常在 episode 開頭由靜止起動,真幀附近會出現多個幾乎一模一樣的候選,唯一能分辨它們的就是前斜率。把單一權重加到 0.5 同樣有害,次要事件對權重變動最敏感。等權重的 0.25 在所有類別都是最一致的設定。

對齊懲罰方面,事件側 gap penalty g_e 從 -0.3 到 +0.3 準確率完全不變,全部是 95.2%。候選側 g_c 往兩邊偏都會退步:負值強迫誤配,正值鼓勵漏掉真候選。Repeat penalty r = 0 會過度合併連續事件,r <= -0.3 則會阻止合理的一腳出球合併。

運算時間上,ELASTIC-NW 每場平均 37.62 秒,比 Biermann 等人的 1.39 秒與 DataBallPy 的 4.00 秒慢得多。作者的立場是,一場 90 分鐘比賽在一分鐘之內處理完,這個差距對賽後分析沒有實際影響,而換來的是覆蓋所有事件類別加上接球偵測。


十、下游任務:對齊質素會傳到模型表現

同步準確率本身是間接指標。作者進一步測試兩個以事件時刻球員站位為輸入的 GNN 任務,看不同同步方法會否改變模型表現。兩個任務都沿用 Kim 等人的架構,把每個比賽狀態表示成球員與兩個球門的全連接圖,以 GAT 層產生節點嵌入。

下一動作預測:預測控球者會傳給哪位隊友、自己盤球(視為傳給自己)或射門,以 softmax 在隊友與目標球門的節點上輸出機率分布,用準確率、交叉熵與 MRR 評估。傳球成功預測:對每位隊友獨立以 sigmoid 輸出「若傳給他能否成功」的機率,用 F1、AUC 與 Brier score 評估。

由於 Sportec 只有七場,這部分改用荷蘭 Eredivisie 的私有數據:2023–24 球季 200 場訓練、50 場驗證,2024–25 球季 157 場測試。三個版本的數據各自獨立訓練與評估。

方法

準確率 ↑

CE ↓

MRR ↑

F1 ↑

AUC ↑

Brier ↓

未同步

0.5796

1.2148

0.7354

0.9031

0.9028

0.1013

ELASTIC-Greedy

0.6759

0.9114

0.8017

0.9072

0.9103

0.0966

ELASTIC-NW

0.6863

0.8773

0.8087

0.9155

0.9172

0.0899

下一動作預測的準確率由未同步的 0.5796 升到 0.6759(Greedy),再到 0.6863(NW),接近十個百分點的改善。傳球成功預測的基線本來已高,改善幅度較小,但六個指標全部同向。NW 在所有指標都優於 Greedy,與第八節的直接評估結果一致,而且是在 407 場的更大樣本上得出。


十一、限制

論文沒有獨立的限制章節,以下幾點是從實驗設定本身可以讀出的邊界。

直接評估的基準只有三場比賽。 三位標註員的一致度很高,但 6,470 個標籤全部來自德甲德乙三場,能否推廣到其他聯賽、其他 tracking 供應商的數據品質,論文沒有測試。

下游評估用的是私有數據。 Eredivisie 的 407 場比賽不公開,這部分結果目前不能由他人復現,與作者強調公開基準的初衷有一定張力。

超參數全部由作者手動設定並在同一基準上驗證。 敏感度分析顯示準確率在預設值附近有一個寬平台,這是好消息,但門檻與權重是否需要按不同 FPS 或 tracking 系統重新調整,論文未有討論。

運算時間偏慢。 每場 37.62 秒對賽後分析無礙,作者亦如此表明;若要用於即時或近即時場景,候選幀抽取與 DP 表格填充的成本會成為考慮。


總結:把座標拿走,反而更準

ELASTIC 的核心判斷是:人手標註的事件座標不是可靠的對齊依據,足球與球員的軌跡才是。這個判斷在基準上得到支持,事件起點 W2 準確率由最強基線的 74.8% 升到 96.5%,而且首次把接球時刻也同步出來。

方法層面有三個可以單獨帶走的設計。虛擬終止事件令一次對齊同時解決起點與終點;稀疏候選幀把搜尋空間縮到物理上可行的時刻;down-match 選項容許兩個事件共用一幀,處理爭球與一腳出球。三者之中,NW 全局對齊對 Greedy 的優勢在最模糊的次要事件上最大,這一點值得記住。

程式碼與基準已在 GitHub 公開,標註工具亦可在線使用。

技術概念

實務作用

章節位置

虛擬終止事件(goal / out / control)

補回接球時刻,起止一次對齊

第三節

稀疏候選幀

只保留距離 3 米、高度 4 米內的可行觸球時刻

第四節

五種軌跡特徵評分

BA、PBD、KD、PBDS、OD,等權重 0.25

第五節

down-match 擴充

容許連續事件共用同一幀

第六節

g_c = g_e = 0、r = -0.1

由分數主導對齊,輕度懲罰重複匹配

第六節

三人標註中位數基準

6,470 個標籤,99.3% 在兩幀內一致

第七節

W2 coverage

候選集的準確率上限,預設 98.4%

第九節

GNN 下游驗證

下一動作準確率 0.5796 升至 0.6863

第十節

Reference

  1. H. Kim, H. Choi, K. Lee, S. Seo, T. Boomstra, J. Yoon, C. Park. ELASTIC: Trajectory-Based Synchronization of Event and Tracking Data in Soccer. CIKM 2026. arXiv:2608.30227v1 [cs.DB], 31 Aug 2026.

  2. M. Van Roy, L. Cascioli, J. Davis. ETSY: A rule-based approach to event and tracking data synchronization. ECML PKDD Workshop on Machine Learning and Data Mining for Sports Analytics, 2023.

  3. H. Biermann, R. Komitova, D. Raabe, E. Müller-Budack, R. Ewerth, D. Memmert. Synchronization of passes in event and spatiotemporal soccer data. Scientific Reports 13, 2023.

  4. A. Oonk, D. Grob, M. Kempe. DataBallPy: Load, synchronize, and analyse your soccer data. Journal of Open Source Software 11(120), 2026.

  5. A. Oonk, M. Kempe, D. Grob. The right way to synchronize tracking and event data: Using domain knowledge to optimize algorithms. MathSports Conference, 2025.

  6. S. Needleman, C. Wunsch. A general method applicable to the search for similarities in the amino acid sequence of two proteins. Journal of Molecular Biology 48(3), 1970.

  7. M. Bassek, R. Rein, H. Weber, D. Memmert. An integrated dataset of spatiotemporal and event data in elite soccer. Scientific Data 12, 2025.

  8. T. Decroos, L. Bransen, J. Van Haaren, J. Davis. Actions speak louder than goals: Valuing player actions in soccer. KDD 2019.

  9. H. Kim, S. Seo, H. Choi, T. Boomstra, J. Yoon, C. Park. Better prevent than tackle: Valuing defense in soccer based on graph neural networks. MIT Sloan Sports Analytics Conference, 2026.

  10. ELASTIC 程式碼與基準:https://github.com/hyunsungkim-ds/elastic

  11. 標註工具:https://elastic-annotator.com


原文 Paper



bottom of page