Smart court · Match recognition
比賽辨識 Demo
2 分鐘的季打比賽:攝影機自動標出發球、觸球和落點,並算出比分。
速度
0:00.0
影片裡的標註:近側隊(靠攝影機)遠側隊(網子另一邊)球的軌跡
回合時間軸
一行一回合;橫條是這一球在整段影片裡的位置,點一下就從發球前開始播。
回合判讀表
| 回合 | 發球方/發球者 | 死球原因 | 落點 | 得分 | 比分(近:遠) | 依據 | 信心 |
|---|
這段影片沒有記分板,比分是從片段開始自己累計的,不是正式比分。
詳細說明一球的流程、怎麼判斷死球、下一球誰發、這支影片怎麼做出來的
一球的流程
- 準備發球方拿球走到底線後,接發方站好位置。
- 發球發球員擊球的瞬間,這一球才算開始。
- 進行中每隊最多碰 3 次就要把球打過網,同一人不能連碰兩次(攔網不算次數)。
- 死球出現下面任一種情況,這一球結束,判一方得分。
- 下一球得分的隊伍發下一球;如果是接發方得分,要先輪轉一位。
怎麼判斷死球
- 球落地在界內:落地那一方失分(第 7 球)。
- 接噴:防守或接發有碰到球,但球從手臂噴出去、隊友救不回來,算碰到球的那一方失分(第 2、4 球;第 5 球近側撲救沒接起也屬於這類)。
- 球落在界外:最後碰到球的那一方失分(第 3 球扣球過長)。邊線、底線本身算界內。
- 球員判斷會出界而直接接住:等於認定出界,打出去的那一方失分(第 1 球,推測)。
- 接球失誤:球碰到人後彈開落地,算碰到球的那一方失分(第 6 球)。
- 犯規:四次擊球、連擊、持球、觸網、過中線、發球踩線等,都是對方得分。
下一球怎麼開始
- 發球方得分 → 同一位發球員繼續發(第 2→3 球、第 6→7 球都是同一人續發)。
- 接發方得分(Side-out) → 拿到發球權,全隊順時針轉一個位置,由轉到右後方(1 號位)的人發球。
- 看不到落點時,也能用「下一球誰發」反推上一球誰得分,第 5 球就是這樣判斷的。
這支影片怎麼做出來的
影片左邊是原始畫面加標註(球的軌跡、骨架、發球者、每一下觸球在做什麼、落點),右邊是即時俯視圖(球員站位、球的路線、每一球的落點),下方是比分、死球原因和下一球由誰發。白骨架是偵測到的球員,白框是發球者,彩色框是正在觸球的人。
- 追球:每一格找黃藍色、會動的小圓形,前後格連成軌跡;軌跡突然轉向的地方就是一次觸球,貼近地板又反彈的點就是落點。
- 追人:YOLO 姿態模型抓每個人的 17 個關節點並持續追蹤,觸球時找離球最近的人。
- 補償手晃:用背景特徵點估計鏡頭位移,讓落點標記黏在地板上。
- 俯視圖:用球場線和網柱位置算出地板的透視轉換,把每個球員腳的位置換算成球場座標;球的位置用「觸球的人站的位置」連成路線,所以是估計值。
- 人工確認:觸球是哪一隊、哪一種動作、死球原因都有逐格看過;網子另一邊被網子擋住的球員偵測率較低,畫面外的發球員只標方向。
鍵盤:空白鍵播放/暫停、← → 跳 5 秒、逗號與句號逐格。