自動籃球計分暨追蹤系統
Automatic Basketball Scoring and Tracking System
指導教授:方瓊瑤
組員姓名:劉良謙、李偉嘉
(一) 研究動機:
籃球,1891 年由史奈密斯博士發明,從一群人把皮球丟進牆上的籃子
開始,發展成一項專業運動,甚至到二十世紀中葉發展出了各式各樣的籃球
聯盟。而「三分線」最早起源於美國的 ABL 聯盟,之後在 1980 年被 NBA
採用,直到 1984 年被 FIBA(國際籃球協會)採用,三分球才真正被正式帶入
籃球這個領域。但正也因為有它的存在,才會常常發生一些分數上的爭議判
決,時常關心美國職籃的我們,常常看到球員或教練和裁判爭論分數判決,
而裁判為了確認剛剛的判決而中斷比賽,在重複看過各種角度拍攝的影片
後,維持原判或改判。不僅是時間的耗費更有可能改變一場比賽的勝負,並
且對於籃球這種講究節奏的運動來說,幾分鐘的中斷就很有可能影響球員對
比賽的感覺和士氣。
(二) 問題/系統簡介:
根據以往的資料及經驗,下列幾點為在開發此系統時可能會遇到的問題:
1. 光線和陰影:
籃球場包含室內和室外,室外會受天氣與陽光,室內則會因每座球場光線
的不同影響,球場上球員及籃框產生的陰影也會造成影響,而且球員的影子
不是固定的,在針對球場標線偵測時肯定會造成更多困難。
2. 即時性:
籃球是兼具力量與速度的運動,球不僅在流動時(傳球間)速度非常快,
即使在一位球員掌控時,他也可以對球做出方向的改變而且其路徑是無可預
測的,同時球員也是,每個人在場上的位置和動作也是無時無刻都會改變的,
若不能及時掌控球場上的瞬息萬變,此系統將會變得無用武之地。
3. 背景及場地:
每座球場的背景肯定不同,本計畫從較單純的師大分部室外籃球場著手,分
部室外的籃球場地標線地非常清楚,而且籃板並不是透明的,而是白色會比較容
易來做,而且場地也是單純的綠色,但一樣會有光影變化來造成本計畫的困難性。
另外,像 NBA這種職業聯盟,每支球隊的主場地板顏色都不同,將來這是會是
本研究向下延伸後所會面臨的問題。
4. 球員的動作:
每個人就算是做同一種動作也都會有些微的差別,更何況是投籃這種要運用
全身的動作,如何判斷出手的瞬間以及起跳位置將會是本研究最大的困難所在。
5. 是否得分:
雖然有籃網輔助但由於時間短暫,籃球是否有進籃框有時人類在判斷上也會
有失誤的時候,而有時候球在籃框裡打轉了好幾圈又滾了出來,此種情形將會提
升研究的困難度,也是本系統需要克服的問題。
以上五種情形為本計畫最主要的研究重心。
系統簡介:
本計畫是利用攝影機 1和攝影機 2對球場上的動態進行追蹤,由於此系統處
於基礎開發階段,因此以單人在球場跑動做三分、二分球的投射,偵測球員移動
路徑、起跳的瞬間、起跳的位置及球在出手後是否有進框為研究內容。將來以這
套系統作為基礎即可推廣到五對五的正式籃球比賽,結合可轉動式的攝影機即可
自動對焦(看是要以球或者是某球員為鏡頭中心進行拍攝),多台攝影機的狀況下
更可建構出 3D球場環境如網球運動中的鷹眼系統,作為裁判在吹判時的參考。
而對球場上球員的追蹤也可以讓大家更明瞭球隊戰術的走位,對比賽做及時文字
轉播的網站也可以建立出球場平面圖讓即使只是看文字轉播也能清楚比賽的實
況。圖 1即為以此系統為基礎推廣到即時轉播網站上的假想圖,同時我們也對球
場上的標線進行說明。
(三) 相關文獻探討
以下為本計畫開發時可能需要的技術及針對已發表的論文進行之回顧:
1.球場三分線:
在張傑閔和張厥煒[1]中對羽球場有類似的偵測,他們採用霍夫轉換法[2]
為主體,對影像做霍夫轉換之前,必須先對影像做邊緣偵測,並且轉成二值影像
作為霍夫轉換的輸入。邊緣偵測影像的結果將影響到霍夫轉換直線偵測的好壞,
因此他們配合 Canny邊緣偵測演算法[3],由於 Canny邊緣偵測結果會包含畫面
中球場邊框和非球場邊框物體的邊緣,過多邊緣像素會造成球場邊框偵測的錯誤,
所以他們進一步地採用 Gaussian Color Classifier[4]方法進一步過濾掉非球
場邊框。最後再針對前面各步驟所保留下來的白色邊緣像素點進行霍夫轉換直線
偵測,找出顏色的邊緣像素。最後再如圖 2中,依各直線的相關位置,找出畫面
中球場邊框,進一步得到球場位於畫面中位置。
(圖 1)
邊界線
三分線
罰球線
中線
籃框
(圖 2) 羽球場邊線偵測及標示之結果[1]
2.前景擷取:
在溫致絹[5]中提到,利用目標前景物尚未進入畫面前的影像建立背景模
型,並利用建立好的背景模組對包含完整目標前景物的影像像素利用計算機率值
進行判斷分類,當屬於背景的機率值高於前景物的機率值,則判斷為前景。他們
並使用外型特徵訓練的方式,利用訓練所得之外形階層模組對於前景區域進行搜
尋辨識,找出目標前景物最相似之群組,再與其群組中所有外型進行比對,若比
對出之最相似外型與目標前景物差距超過所設定值,則將此前景物排除,不列為
目標物。最後再與[6]比對找出準確的目標物。圖 3 為[6]中提到之外型階層訓練
之流程。
(圖 3) 外型特徵訓練流程圖[5]
3.運動物體追蹤:
[1]中以核心為基礎(kernel-based)追蹤方法再利用核心函數(Kernel-function)
建立物體特徵模型,之所以採用核心為基礎追蹤方法是在於它消耗計算量較少,
效能較佳。根據[1]中核心為基礎方法首先將目前時間欲追蹤物體(目標物體,
target object)透過核心函數建立代表該物體的目標物模型(Target Model)。接著依
輸入人
類影像
外型階
層模型
K-means
分群
Canny edge
detect
取得外型
特徵點
各種追蹤法中定義的候選物體(Candidate Object)搜尋方式選定位於下一時間點
時的候選物體,同時使用核心函數建立候選物模型(Candidate Model)。之後利用
相似度關係量度方法量度目標物和候選物相似度關係。若相似度關係符合預先定
義條件,則表示找到下一時間時的目標物體,並結束追蹤工作,否則再回到搜尋
下一時間點候選物程序,重複上述相似度量度比較動作。
4.人體動作偵測:
廖啟邑[7]在先取得頭部與身體的狀態之下,以身體的位置為基礎取出手臂
資訊。手臂資訊包括了手臂各關節的位置及手臂與各軸之間的角度。先從影像中
取出手臂的影像區域;然後再調整手臂 Cardboard model[8] 的角度,慢慢往正確
方向旋轉,並將結果與影像做確認;最後再重新建立手臂 Cardboard model。腳
部資訊則利用相同的方式取得。圖 4為 Cardboard model 示意圖。
(圖 4) Cardboard model[7]
(四) 開發系統
系統開發環境:一開始採用之開發環境是 Visual Basic C#,是因為上學期軟體
工程課程所使用的是 Visual Basic C#,但我們蒐集資料過後,發現 OpenCV 在
C#上的運用資料較少,而使用 C 或是 C++的較多,經過考量之後,使用了 Visual
Studio 2010 來開發我們的系統。圖 5為利用 Visual Studio 2010 開發之介面。
(圖 5) Visual Studio2010的開發環境
(五) 軟硬體需求
在經過上學期的實驗後,我們對於籃球場上的拍攝有了新的設置,原本的示
意圖如(圖 6),後方的攝影機 1 不變,一樣是放在對面球場,並用排球裁判椅加
上攝影機腳架達到接近的高度來拍攝半個球場,拍攝結果如(圖 7),但前方拍攝
籃框的攝影機 2,為了能清楚拍攝籃框進球的畫面,改為在籃球場出界線外的右
方來拍攝,對於籃框的追蹤會少了很多雜訊,也容易判別球是否進籃框,拍攝結
果如(圖 8)
(圖 6)
(圖 7)
(圖 8)
攝影機 2 攝影機 1
(六) 研究步驟及方法
(圖 9)為本計畫的研究步驟及方法:
(圖 9)
1. 連續影像輸入:
影像輸入,由架設在場邊的攝影機 1連續取得影像,進一步由系統來對每張
影像進行分析辨識。
連續影像輸入
前景物偵測
前景物驗證
前景物追蹤
球場標線偵測
球場標線驗證
起跳點定位
是否在三分線
外 Yes No
進球與否 進球與否
Yes Yes
兩分 三分
No No
輸出判定結果
攝影機 1
攝影機 2
2. 球場標線:
利用[1]中的方法找出球場中的線條,再經由相關位置比對及利用三分線在
場中屬於拋物線的性質找出球場邊線及三分線以內的區域如圖 10所示。
(圖 10)球場邊界及三分線邊式之結果
3.前景物偵測:
利用[5]的方法分辨前景與背景,找出欲偵測之前景物(球與球員),圖11為
前景物偵測後之結果。
(圖11)前景物偵測之結果
4.前景物追蹤:
偵測出前景物後,利用[1]中以核心為基礎(kernel-based)追蹤方法再利用核
心函數(Kernel-function)建立物體特徵模型進行前景物之追蹤,圖 12A 及圖 12B
為兩張對前景物追蹤之示意圖。
(圖 12A)向右移動中之前景物
5.球員出手及起跳位置:
球員要進行投籃的動作時,腳部會因跳在空中而自然的下垂,而手也會舉到
高過肩的高度。因此可以進行手臂及腳部的分析,來判斷球員是否起跳投籃,並
搭配前一個步驟所得到的球員位置資訊,來得知其起跳位置。關於建立手部及腳
部的模型及球員出手的連續偵測如圖 13及圖 14所示。
6.進球與否之辨識:
由於球的體積小,且形狀固定,因此使用攝影機 2 找出籃框與籃網的位置,
再由類似[5]的方法,可追蹤進入畫面的球是否有進框。圖 15為進球判斷的流程
圖,圖 16~18則為攝影機 2偵測進球之圖示。
(圖 12B)圖 7A前景物向右移動後之路
徑紀錄
(圖 13)球員準備起跳姿勢 (圖 14)球出手,腳在空中自然下垂
(圖 15) 進球判斷的流程圖
(七) 研究方法與說明
1. 球場邊線偵測:
(圖 16) 球來之前網子呈靜止狀態 (圖 17) 偵測到球接近網子
(圖 18) 球進且籃網將球覆蓋
取圖片下半部最多的 pixel值作為 threshold
的值 ,圖片中所有小於 threshold的 pixel
皆變成 0 。
載入圖片 化為灰階
標出球場內的標線:
由前面找出之球場底線往下將 pixel非 0
的地方標成紅色,另外,從底線開始到三
分線弧頂非 0的 pixel數會遞減成 0 ,所
以可弧頂以下的區域刪除。
找出球場的底線:
從圖片的一半開始,累計每一行的非 0
pixel,找到第一條累計大於 2/5圖片寬
度的列,用紅色線標示。
三分線弧頂
三分線
利用球場的對稱性,可將兩邊三分線外
的球場邊線刪除。
將三分線以內之區域填滿,之後只要是
在紅色區域出手投籃就會判定為二分。
2. 球員偵測
建立背景 :
利用統計的方式建立背景模型(background model),這邊採用的是一種
non-parametrically的背景模型[9]。在 non-parametrically的背景模型中,會事先
記錄一組的背景影像,當需要判斷一個點是否屬於背景時,可以計算這個點和
這些背景影像相對應位置之顏色的差異,利用一個核心函數(Kernel function)將這
些顏色差異換算成機率值,這些機率值的平均即為此點屬於背景的機率。
起跳點判斷:
與球場邊線偵測的程式整合,即可看出球場邊線以及人物的相對位置,觀察球
員的腳步及三分線的對應位置,即可得知是否於三分線外投球。
整合
顯示於同一視窗
3. 籃球框偵測進球與否
籃框偵測:
因上學期偵測到的籃框,雜訊很多,籃框跟籃網都會一起被偵測到,籃框也
沒有很清楚地顯示,所以打算在拍攝的角度上動手腳,以下為失敗範例。
最後的選擇為,影片要能夠清楚地、明顯地看到籃框,和背景單純。以及影片中
的籃框能盡量在畫面的中間,而且籃框呈現原本的橢圓形的形狀,讓較容易定位
動態籃框的位置。如圖 19
(圖 19)
這學期使用了新工具 OpenCV,環境的建置讓我們頭痛許久,最後選定 Visual
Studio 2010 裡來使用此工具,並輔助定位動態的籃框位置。因為背景單純,所
以用了 Canny Edge Detection,去尋找籃框,要把影片 Canny前要先灰階化。
如此一來就完成了 Edge Detection 的偵測。以上圖來看籃框的邊緣非常清楚、辨
識度很高,並且籃框就是一個橢圓形,所以只要找畫面中最左邊以及最上面的兩
白點,就能夠找到此橢圓形的中心以及長、短軸,即可用白色或紅色畫出此橢圓
形,顯示在灰階影片或原影片上。如圖 20、圖 21
(圖 20) (圖 21)
籃球偵測:
目前的想法是使用人物追蹤的演算法,去找出進入畫面中的球,之後再判斷
是否有無進球。
(八) 實驗記錄:
1.球員追蹤
在球員追蹤的部分,參考過一些 Paper得到了下列的演算法,如此可以更準
確地去得到分割的前景與背景,讓球員得以明顯的出現在畫面上,並且就處理過
的影像去判斷起跳點
圖 21為我所建立的背景圖像,而圖 22則為處理過後的影像,圖中可清楚的看到
球員之人影,並可對這影像作進一步地處哩,圖 23則為圖 22處理後所產生的影
像,只留下腳部的部分,結合標線偵測的位置即可方便地去判斷起跳點的位置。
(圖 21)
將背景與下一張進來的 frame相減做 Histogram,分別得到 RGB的常態分佈曲線
(圖 22、23、24)
(圖 22) (圖 23) (圖 24)
做完了發現他不是一般的常態分佈曲線,會因為前景的關係,造成左右兩次各有
一個小凸點,因此由中間開始往兩邊走,當曲線再次凸起的那一點,即為前景的
開始點,並且把該點跟中心相減取距離,即得到我的 Threshold 值,以此 Threshold
值來處理每一張進來的 frame可得出圖 25 之結果。
(圖 25)
得到圖 25的結果後,就是試著去把腳部描繪出來,如此與標線偵測系統整合時,
即可判定該球員是在三分線內或外。(圖 26)
(圖 26)
2.籃框偵測和籃球偵測
籃框偵測在上一章節已經抓到,這邊有做一些修改,就是影片一開始取
30~100張 frames(可自行設定要取幾張)找籃框並記錄下來,再把這 70 個籃框取
平均,即可得到較準確的籃框,如圖 27。
(圖 27)
接下來要追蹤籃球,所以要先建立背景,但影片的前面因人為因素,手會稍
微晃動一下,造成後面取背景的困難,所以取前面 30~100張 frames(可自行設定
要取幾張)並累加每點的 pixel 值,最後在除以 70,取得平均後的背景,如圖 28。
建立完背景後,使用影像相減法,進來的影像每點的 pixel 減去平均背景影
像的每點 pixel,減完後需取絕對值,屬於前景設 pixel 為 255,背景的即設成 0,
因為風的吹動使攝影機、籃網、籃框的晃動,會造成許多雜訊,如圖 29,使球
的位置判斷很難達成,所以要先用 erosion去除籃框和籃網的晃動,再用 dilation
讓球能在畫面上更明顯,即可找到球,如圖 30。
(圖 29) (圖 30)
找到籃框以及籃球後,即要判斷籃球有沒有進籃,因籃球進框一定會遮住後
面的籃框且經過籃框的圓心,而沒進的話就有三種可能,例:沒經過籃框的圓心、
經過圓心但遮住前後的籃框、經過圓心但沒遮住籃框,前後籃框的示意圖,如圖
31。
(圖 28)
(圖 31)
沒進的球做 sobel處理後的畫面,如圖 32;進了的球做 sobel後的畫面,如圖 33
(圖 32) (圖 33)
沒進的球並不會因為碰到籃框或籃網而減速,所以 frame很大的機率是一
張,且若球有經過圓心的話,則一定會把很多白點擋住;而進框的球會因碰觸到
籃框或籃網而慢速下來,所以球經過圓心時會有 2~4張 frames,並且只會把籃網
上的白點遮住些許,沒有像沒進的球遮欄框的點那麼多,如此就可依據籃球是否
到中心點和籃框上的白點的多寡及球經過圓心後的總共 frames 數得知籃球是否
有進框裡。
前框
後框
把影像做 Sobel,並把之前找到的籃框對應到 Sobel 的圖上即可知道籃框上
的白點數共有幾個,如圖 34,取 100~125frames 的平均籃框上的白點,如圖 35。
(圖 34)
每張圖片進來後,檢查圓心上是否有籃球,有的話即開始記錄它總共在圓心
上有幾張 frames,當它離開圓心後才開始分析記錄的資料,一張的話,代表球沒
進,而兩張以上就開始算白點是否有小於原本計算好的籃框的白點,若小於很
多,即是籃球沒進所以擋住了兩邊的框,若只小於一些,球就進了,系統顯示如
圖 36。
(圖 36)
(圖 35)
(九) 結論:
這個系統已經大致完成了,雖然有一位同學在這學期退出了,以致我們無法
整合我們的系統,但在各部分的成果都已成形,期待以後有時間能去做整合,完
成我們在大學期間第一個自己寫的影像處理系統。
在球員追蹤的部分,希望能夠有更快的效率,目前仍無法去達到 Real time
的效果,期望透過演算法的更新去得到更快的速度,也能改善背景更新的演算
法,目標是達到畫面上完全是前景在移動。
在籃框偵測和判斷有無進球的部分,雖然已經有寫出來,但是能跑的影片有
限,目前拍的影片,還是會有判斷錯誤的地方,但只限特殊狀況才會產生判斷錯
誤,若能把背景從原本的平均背景轉成動態的擷取背景,一定能大大的改善錯誤
率。而籃框偵測也是需要動態的擷取背景,才能真正的精準地判斷此時的籃框位
置在哪裡,目標是做到動態且即時地更新背景。
(十) 參考文獻:
[1] 張傑閔和張厥煒,運動視訊場景中動態物件搜尋與追蹤方法(A Dynamic
Object Searching and Tracking Approach in Sports Video Scenes) 臺北科技大學學
報第四十之一期,2006,pp.63-66.
[2] X. Yu and H.W. Leong, “A Robust Hough-based Algorithm for Partial Ellipse
Detection in Broadcast Soccer Video,” Proc. of IEEE Intl. Conf. on Computer Vision,
Vol. 3, 2004, pp.27-30.
[3] J. F. Canny, “A Computational Approach to Edge Detection,” IEEE Trans. on
Pattern Analysis and Machine Intelligence, Vol. PAMI-8, No.6, 1986, pp.679-698.
[4] M. Jones and J. Rehg, “Statistical Color Models with Application to Skin
Detection,” Proc. of Computer Vision and Pattern Recognition (CVPR),1999,
pp.274-280.
[5] 溫致絹,利用外形及紋理特徵做入侵者偵測 (Invader Detection based on
Shape and Texture),碩士論文,2009,pp.28-31.
[6] http://www.cbsr.ia.ac.cn/english/Gait%20Databases.asp
[7] 廖啟邑,透過視訊影像取得人體動作資訊 (Obtaining of Human Motion
Parameters from Video Sequences),碩士論文,2002.
[8] S. Ju, M. Black and Y. Yacoob, “Cardboard People: A Parameterized Model of
Articulated Image Motion” International Conference on Face and Gesture
Recognition, 1996, 38-44
[9] 郭文傑、黃一哲、李金翰,多攝影機環境中人體追蹤及樣式比對之研究 交
大資工所