
追蹤那顆消失的球:TrackNetV4 如何讓 AI 學會感受動作
TrackNetV4 的動態注意力機制用幀差分圖搭配一個只有兩個可學習參數的動態提示層,生成動態注意力地圖,再與視覺特徵融合,整個模組是即插即用的設計,可以直接套在 TrackNetV2 或 V3 上。
轉播鏡頭切到球場。一記殺球,球速超過每小時三百公里,在畫面上幾乎只是一道殘影。
場邊的分析系統在這一幀找不到球,下一幀也找不到,接著球落地了,整個軌跡的中間段是空白的。
這個場景在羽球和網球的電腦視覺系統裡一再出現。球太小、太快,而且容易被球員肢體或球網短暫遮擋。一套追蹤系統的好壞,往往就看它能不能在這種瞬間維持連貫性。
TrackNet 家族的成長史
專門處理這個問題的深度學習框架叫 TrackNet,從 2019 年的 V1 開始,到 2020 年的 V2,再到更近的 V3,每一代都在改良。
V1 的架構基礎是 VGG-16,把連續數幀的畫面當輸入,輸出一個熱圖(heatmap),標示球的預測位置。在當時已經比傳統方法好得多,但速度太慢,不適合即時分析,GPU 記憶體也消耗過高。
V2 精簡了輸入解析度,從單輸出改成多輸出,並引入跳躍連結(skip connections)來保留小物件的細節。速度大幅提升,但基本架構邏輯沒有變:輸入畫面,輸出熱圖,靠視覺找球。
V3 再加入背景估計作為輔助資訊,讓模型在球暫時消失時仍能內插補點,準確率進一步提高。
這三代都做到了同一件事:讓模型更善於從畫面中「看出」球在哪裡。
但它們共同有一個根本限制。
你能看見,但感受得到移動嗎?
V1、V2、V3 的輸入都是原始影格(RGB frames),靠的是視覺特徵,也就是球的顏色、形狀、與背景的對比。
即使是 V3 引入的背景減除,本質上也只是讓模型知道「這個位置和靜止背景有差異」,而不是真正理解「有個東西正在朝那個方向高速移動」。
當球被遮擋、當球速太快造成嚴重模糊、當球和背景的對比不夠明顯,這種純視覺方式就容易失靈。
追蹤運動中的高速小物體,有一個長期被忽略的資訊:動態本身就是線索。
兩個參數,一張注意力地圖。
TrackNetV4 的核心想法是:與其讓模型從靜態畫面中猜球在哪裡,不如先告訴模型「這個區域有東西在動」。
具體做法是把相鄰兩幀相減,取絕對值,得到幀差分圖(frame differencing map)。差異大的地方,就是有東西在移動的地方。這裡有一個細節:論文選擇取絕對值,而不是只保留正值,目的是同時捕捉亮度增加和亮度減少的變化,避免漏掉某些方向的動作。
在這個幀差分圖上,論文加入了一個叫做動態提示層(motion prompt layer)的元件。這個層只有兩個可學習參數,負責把原始的差分圖轉換成更精準的「動態注意力地圖」,強調真正重要的動態區域,同時壓制不重要的雜訊,例如觀眾的移動、相機抖動、場地照明變化。
生成動態注意力地圖後,系統把它和 TrackNet 骨幹網路提取的高層視覺特徵做逐元素乘法(element-wise multiplication),再拼接在一起送進後續層。這個融合讓視覺資訊和動態資訊可以互相增強,而不是各自孤立運作。
整個模組是即插即用的設計,可以直接套在 TrackNetV2 或 V3 上,不需要重新設計整個架構。論文把加了這套機制的版本統稱為 TrackNetV4。
數字說了什麼?
論文在兩個資料集上測試:網球追蹤資料集和羽球資料集。
網球的部分,準確率從 94.6% 提升到 95.2%,F1 分數從 97.1% 到 97.5%,漏偵測(false negative)明顯減少。羽球的部分提升幅度超過 0.8 個百分點,在本來就更困難的追蹤條件下(羽球更小、形狀不規則、速度更快),這樣的改善並不小。
TrackNetV3 套上動態注意力機制後,準確率從 95.7% 提升到 96.4%,延續了相同的趨勢。
速度幾乎不受影響。TrackNetV2+Motion 的每秒幀數從 156.9 fps 降到 155.7 fps,差距可以忽略不計。
視覺和動態是兩件不同的事
運動分析和 AI 的結合,長期面臨一個不對稱的挑戰:場上最關鍵的那顆球,往往是最難追蹤的物件。
它不是靜止的,不是大的,不是慢的。它是以物理極限速度飛行的微小物體,在轉播畫面裡可能只佔幾個像素,而且隨時可能被遮擋。
TrackNetV4 的貢獻不是解決了所有問題,而是釐清了一件事:視覺特徵和動態資訊是兩件不同的事,把它們分開提取、再融合,比混在一起讓模型自己猜,得到的結果更好。
一個只有兩個可學習參數的薄層,讓模型從只會看畫面,變成也能感受移動。多出來的那幾個百分比,就是那條細線的貢獻。