第三章 基於棋子相對位置之定位
3.1 偵測新置放棋子
3.2.1 建立棋子間的相對位置
建立棋子間 是針對每
的棋子,並判斷每一顆相鄰棋子與 S 的關係,是水平或垂直的相鄰,還是斜角的 相鄰,如圖 3-2 所示。若是水平或垂直的相鄰,則我們可以知道該相鄰棋子與 S 在相對於棋盤格線的座標上,x 或 y 座標相差 1;若是斜角的相鄰,則 x 及 y 座 標均相差
盤之棋子定位」系統一
之方法,僅利用棋子間
棋子間的相對位置
一顆棋子 S,找到所有與 S 相鄰 相對位置的實際作法,
1。
圖 3-2 棋子之間的相鄰情形。
(a) 水平相鄰 (b) 斜角相鄰
建立棋子間相對位置所需要用到的資訊,是記錄器中每一手棋子在影像平面
離正規化。對於S1與S2來說,我們把 R 的大小定為兩棋子的平均大小,且S 的i 大小為C 與1i C 的距離i2 d
(
C1i, Ci2)
,亦即:( ) ( )
( )
R= d C11,C12 +d C21,C22 2 (3.1) 最後,把兩棋子間的輪廓距離正規化,即為:
contourdist =contourdist′ R (3.3)
圖 3-4 兩棋子距離的計算方式。圖中灰色線為 l,紅色點為輪廓與 l 之交點。
接著我們就用兩顆棋子正規化後的輪廓距離,來判斷兩棋子之間的關係。已 知棋盤格線一格的寬度,約為棋子的大小 R,所以,若兩顆棋子為水平或垂直相 鄰,則理論上輪廓距離接近 0,若為斜角相鄰,則理論上輪廓距離為
(
2−1)
R。於是 , 以上到 為斜
棋子區域 ,定
下此數值的相關討論請見附錄。
我們以 第二屆交通大學盃六子棋公開賽之決賽的實況錄影為例,實作
兩棋子被判定為水平或垂直相鄰,則
,我們定棋子之間的距離小於TH1為水平或垂直相鄰 TH1 TH2
0.8 角相鄰,TH2以上不相鄰。由於 R 在畫面中的大小約為 10 個像素,且系統偵測
有少許誤差,所以在實作上,我們定TH 為 0.35,定TH 為
會 1 2
2007
所提出的“建立棋子間相對位置"方法。圖 3-5 為決賽之最後畫面,圖 3-6 表示 用距離資訊建立棋子間相對位置的結果,若
其質心以綠色線段連接,若被判定為斜角相鄰,則以紅色線段連接。
圖 3-5 第二屆交通大學盃六子棋公開賽決賽之最後畫面。
間相
由圖 的結果,我們發現有幾處發生位置關係之判斷錯誤,這是因為棋子 放置在棋盤上的位置會有些許偏斜,以及偵測棋子區域的少許誤差所造成的。因 此,我們不能完全只憑棋子間的距
圖 3-6 使用距離資訊建立棋子 對位置的結果。橘色箭頭所指處為關係判斷錯誤之 線段。
3-6
離資訊,建立棋子間的相對位置,於是,我們 針對不易使用距離資訊判斷關係的棋子,也就是距離很接近臨界值TH1者,再利 用角度資訊判斷他們的關係。我們稍微改變上述的作法,定棋子之間的距離小於
H1
T ′為水平或垂直相鄰,T ′H1以上到T ′H2為不易以距離判斷關係,T ′H2以上到 H3
T ′ 為斜角相鄰,T ′ 以上不相鄰。我們的系統定H3 T ′H1為 0.3,T ′H2為 0.45,T ′H3 為 0.8,相關討論請見附錄。改良後的判斷結果如圖 3-7 所示,若兩棋子被判定
為“不易以距離判斷關係"者,其質心以黃色線段相連,會發現原本判斷錯誤的
度,判斷S1與S2的關係。
圖 3-9 本例中棋盤格線的變形情況。棋盤格線的線條(綠色線條)依然是完全筆直,
但夾角已經明顯不是 90°;而棋盤格線的斜角連線(紅色線條)大致還是成一直線,其
發現,圖 3-7 中原本不易以距離判斷關係的黃色線段,全都藉由棋子間的角度資 訊,被標記上正確的顏色。尤其是,圖 3-10 中圓圈範圍內的棋子,原本就擺放 雜亂,連肉眼都不易
夾角偏離 90°更多。
執行了上述以角度判斷其關係的方法之後,結果如圖 3-10 所示,我們可以
正確判斷它們之間的關係,也可以藉由棋子間距離及角度資 訊,建立起正確的關係。
圖 3-10 使用距離及角度資建立棋子間相對位置的結果。
但是,圖 3-10 結果仍然存在一處關係錯誤,就在箭頭所指處。雖然這兩顆 棋子為斜角相鄰,但由於它們距離過近,所以在第一階段用距離資訊判斷關係 時,就被判定為水平會垂直相鄰。於是為了解決這類問題,在做完距離及角度兩 階段的判斷之後,我們最後再對於每一條棋子關係連線,做一次利用角度資訊的 判斷。這樣一來所有的關係又再被角度檢查一次,可以排除掉在第一階段用距離 判斷時發生的錯誤。最後結果如圖 3-11 所示,棋盤上的棋子已經建立起完全正 確的相對位置。在下一節,我們將介紹如何使用棋子間的相對位置,重建出棋子 相對於棋盤格線的座標。
圖 3-11 建立棋子間相對位置的最後結果。