專利名稱:圍棋自動數(shù)字儀及應(yīng)用于其上的棋局勝負(fù)判斷方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種對圍棋終局進(jìn)行畫面捕捉并進(jìn)行勝負(fù)判斷的圍棋自動數(shù)字儀及應(yīng)用于該圍棋自動數(shù)字儀的棋局勝負(fù)判斷方法。
背景技術(shù):
近年來,隨著圍棋的普及與發(fā)展,學(xué)棋的少年兒童越來越多,每年各地的少兒圍棋 比賽也越來越多。由于棋手年齡小,水平低,在終局時由對局者自身進(jìn)行勝負(fù)計算比較困難;加之比賽人數(shù)多,裁判人手不足,水平有限,以人工數(shù)棋來判定勝負(fù)是既辛苦又容易出錯的事情,給比賽的正常進(jìn)行帶來了很大不便。目前,國內(nèi)外還未出現(xiàn)可以對實際棋局勝負(fù)進(jìn)行自動判斷的技術(shù)。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服上述缺陷,嘗試采用計算機(jī)圖像識別技術(shù),提供一種對圍棋終局進(jìn)行畫面捕捉并自動進(jìn)行勝負(fù)判斷的設(shè)備及應(yīng)用于該設(shè)備的棋局勝負(fù)判斷方法,具體技術(shù)方案如下
一種圍棋自動數(shù)字儀,包括視頻采集模塊,ARM微處理器模塊、LCD顯示屏和觸摸屏,視頻采集模塊利用攝像頭對圍棋終局進(jìn)行畫面捕捉,并將生成的光學(xué)圖像轉(zhuǎn)換為數(shù)字信號送A ARM微處理器模塊中,ARM微處理器模塊負(fù)責(zé)協(xié)調(diào)視頻采集模塊的工作并對圖像數(shù)據(jù)進(jìn)行分析,識別出黑白子并計算勝負(fù),然后將結(jié)果送LCD顯示屏進(jìn)行顯示,觸摸屏為人機(jī)交互介質(zhì),用于實現(xiàn)用戶對圍棋自動數(shù)字儀的操作。本發(fā)明應(yīng)用于上述圍棋自動數(shù)字儀的棋局勝負(fù)判斷方法,包括如下步驟
a.獲取圍棋終局視頻圖像;
b.確定棋盤邊界,設(shè)定棋盤四個角的位置,獲取棋盤所在位置的二維灰度矩陣;
c.棋盤識別,獲取每個棋子理想中心點的位置并識別黑白子,得到棋子狀態(tài)矩陣;
d.根據(jù)圍棋勝負(fù)計算標(biāo)準(zhǔn)判斷勝負(fù)。本發(fā)明的圍棋自動數(shù)字儀儀器輕便,操作簡單,計算準(zhǔn)確,應(yīng)用于其上的棋局勝負(fù)判斷方法可以公正、準(zhǔn)確、快速的判別勝負(fù),既節(jié)省人力,又極大地提高了比賽的公正性。
圖I是圍棋自動數(shù)子儀硬件框 圖2是圖像采集流程 圖3是棋盤識別流程 圖4是圍棋自動數(shù)子儀軟件流程圖。
具體實施例方式下面結(jié)合附圖對本發(fā)明作進(jìn)一步地說明。I.圍棋自動數(shù)子儀硬件架構(gòu)圍棋自動數(shù)子儀硬件框圖如圖I所示,圍棋自動數(shù)字儀包括視頻采集模塊,ARM微處理器模塊,IXD顯示屏和觸摸屏。系統(tǒng)通過視頻采集模塊利用攝像頭對圍棋終局進(jìn)行畫面捕捉,并將生成的光學(xué)圖像映射到光學(xué)傳感器表面,之后轉(zhuǎn)換為電信號,再經(jīng)過A/D轉(zhuǎn)換,將獲得的數(shù)字信號送入ARM微處理器模塊中。ARM微處理器模塊負(fù)責(zé)協(xié)調(diào)視頻采集模塊的工作以及對圖像數(shù)據(jù)進(jìn)行分析,識別出黑白子并計算勝負(fù),將結(jié)果送IXD顯示屏進(jìn)行顯示。觸摸屏為人機(jī)交互介質(zhì),基于Iinux系統(tǒng)編寫用戶使用界面,控制軟件終端的運(yùn)行,實現(xiàn)用戶對圍棋自動數(shù)字儀的操作。1. 1視頻采集模塊
在視頻采集方面,本發(fā)明選用了深圳展拓科技有限公司出品的ZT130G2攝像頭,該型攝像頭是一款130萬像素的手機(jī)攝像頭,輸出接口為20針,其引腳功能和電平參數(shù)與mini2440板提供的CAMERA接口完全匹配,非常適合用于采集圍棋終局時的圖像。ZT130G2能夠直接輸出YcbCr422/YUV422格式的數(shù)字圖像的特性,大大方便了用戶的使用,使用ZT130G2可以直接得到圖像的數(shù)字信號,簡化了開發(fā)工作,提高了系統(tǒng)性能。I. 2 ARM微處理器模塊
考慮到圍棋數(shù)子儀要求便于攜帶,功耗低,但對運(yùn)算速度要求不是很高,采用了S3C2440微處理器,該處理器集成了 ARM920T處理器核的32位微處理器,其采用了專業(yè)穩(wěn)定的CPU內(nèi)核電源芯片和復(fù)位芯片來保證系統(tǒng)運(yùn)行時的穩(wěn)定性。S3C2440A最突出的優(yōu)點是支持CMOS傳感器與芯片的連接,且其工業(yè)性能好,適合作為手持設(shè)備和便攜式設(shè)備的處理芯片,因此非常適合作為自動數(shù)子儀的處理器。S3C2440本身資源豐富,帶有RAM控制器、NAND閃存控制器、獨(dú)立的指令Cach和數(shù)據(jù)Cache、3路UART、4路DMA、并行I/O 口、觸摸屏、I2C接口、2個USB接口控制器等[4]。本文采用的開發(fā)板系廣東友善之臂計算機(jī)科技有限公司出品,就是采用S3C2440A芯片為微處理器,四層PCB板設(shè)計,32bit數(shù)據(jù)總線,內(nèi)存為板載64Mbytes的核心頻率100MHZ的SDR0M,存儲器方面板載了 64M的Nand Flash和2M的Nor Flash,自身配置有NEC256K色240x320/3.5英寸TFC真彩液晶觸摸屏,可以對系統(tǒng)采集到得圖像進(jìn)行播放及調(diào)試,適合開發(fā)良好的人機(jī)交互界面。2.軟件結(jié)構(gòu)設(shè)計
由于Iinux本身具有源代碼開放,內(nèi)核可裁剪,執(zhí)行效率高,內(nèi)核直接提供網(wǎng)絡(luò)支持,可以方便的滿足不同需求的嵌入式系統(tǒng)開發(fā)。因此圍棋自動數(shù)子儀選擇裁剪后的Iinux作為系統(tǒng)開發(fā)的軟件環(huán)境。由于嵌入式系統(tǒng)本身的硬件資源有限,需要重新配置內(nèi)核,使最終得到的系統(tǒng)能夠存放開發(fā)板上容量較小的Flash中。
Linux系統(tǒng)本身支持動態(tài)模塊加載,使得部件的裁剪和添加非常容易。自動數(shù)子儀的軟件采用結(jié)構(gòu)化設(shè)計方法,由圖像采集驅(qū)動模塊、棋盤邊界確定模塊、棋盤識別模塊及勝負(fù)計算模塊組成。2. I圖像采集驅(qū)動模塊 圖像采集對應(yīng)的流程如圖2所示。圖像采集驅(qū)動模塊的主要任務(wù)是為外設(shè)攝像頭在Linux內(nèi)核中加載驅(qū)動程序,二是要編寫程序?qū)崿F(xiàn)視頻采集。攝像頭驅(qū)動的加載在配置Linux內(nèi)核時已經(jīng)完成,接下來就是使用視頻采集程序來完成對視頻流的獲取。
圖像采集模塊采用了 V4L體系,它是Linux下用于獲取視頻和音頻數(shù)據(jù)的API接口。由于在Linux下,所有外設(shè)都被看成是一種特殊文件,稱為“設(shè)備文件”,可以像訪問普通文件一樣對其進(jìn)行讀寫,因此首先需要利用open (”/deV/Video0”,0_RDWR)來打開攝像頭,并獲取文件描述符,用于后續(xù)對攝像頭的操作。設(shè)置圖像參數(shù)方面,只要將圖像寬設(shè)為640,高設(shè)為480,像素格式設(shè)為YUYV即YUV422。其他參數(shù)保持默認(rèn)即可。Linux下,有兩種方法來獲取視頻圖像,分別是直接從設(shè)備讀取視頻和用_ap(內(nèi)存映射)方式截取視頻。采用內(nèi)存映射截取視頻,是將文件直接拷貝到進(jìn)程地址空間,而不同進(jìn)程訪問該文件很方便,可以直接訪問內(nèi)存,實現(xiàn)讀寫操作,效率更高,額外開銷較小,因此本文采用這種方式獲取視頻圖像。從攝像頭獲取的圖像信息采用二維灰度矩陣保存下來,用于棋子的識別。2. 2棋盤邊界確定模塊
考慮到采用圖像識別算法自動識別棋盤邊界,工作量較大,為縮短開發(fā)周期,采取人工設(shè)定棋盤邊界的方法,即將棋盤圖像顯示到屏幕上,手工在觸摸屏上定下棋盤四個角的位置,再將觸摸屏的坐標(biāo)轉(zhuǎn)換為LCD顯示屏的坐標(biāo),這樣就可以獲取到棋盤所在位置的灰度矩陣。由于攝像頭取到的圖像比顯示屏大,需要對圖像進(jìn)行縮放再送到顯示屏。當(dāng)觸摸屏感知到有按鍵時,可以從設(shè)備驅(qū)動中讀取按鍵在觸摸屏的坐標(biāo)(
,則在顯示屏上的坐標(biāo)(I3,%)可由以下公式獲取
式中=240,表不顯不屏的覽度,Afj =320,表不顯不屏的聞度,
I1Iiia表示觸摸屏返回電壓值X軸、J軸的范圍,可根據(jù)觸摸屏校準(zhǔn)算法獲得。設(shè)圖像的縮放比為1,縮放后圖像的起始點在顯示屏上的坐標(biāo)為((2,^),則圖像上任意一點(lj,Jj)在二維灰度矩陣中的坐標(biāo)為((a - a)jh,(y} - b)jb0在確定了棋盤的邊界之和,就能根據(jù)上述算法獲取到棋盤所在位置的灰度矩陣,這個矩陣是用來識別棋子的重要條件。2. 3棋盤識別模塊
棋盤識別具體流程如圖3所示。標(biāo)準(zhǔn)的圍棋盤是縱橫19道,我們可以認(rèn)為像素是均勻分布的,因此對將棋盤的縱橫方向各分18份,可以得到每個棋子理想中心點的位置。經(jīng)過多次實驗發(fā)現(xiàn),每個棋子所占的像素大約為10,設(shè)棋子理想中心點在二維灰度矩陣中的坐標(biāo)為(I,JF),因此可以在(Jfii &這個范圍進(jìn)行搜索,求平均灰度值,作為每個棋子理想中心點的灰度值。再對距離理想中心點5個像素范圍之內(nèi)的點,取距離它們3個像素范圍內(nèi)的點,求平均灰度值。在整個棋盤范圍內(nèi),對這些灰度值進(jìn)行排序,得到最大和最小灰度值,最大灰度值Iii對應(yīng)于白子,最小灰度值對應(yīng)于黑子。根據(jù)多次試驗,發(fā)現(xiàn)黑子所在位置的灰度值分布在
權(quán)利要求
1.一種圍棋自動數(shù)字儀,其特征在于包括視頻采集模塊,ARM微處理器模塊、IXD顯示屏和觸摸屏,視頻采集模塊利用攝像頭對圍棋終局進(jìn)行畫面捕捉,并將生成的光學(xué)圖像轉(zhuǎn)換為數(shù)字信號送入ARM微處理器模塊中,ARM微處理器模塊負(fù)責(zé)協(xié)調(diào)視頻采集模塊的工作并對圖像數(shù)據(jù)進(jìn)行分析,識別出黑白子并計算勝負(fù),然后將結(jié)果送LCD顯示屏進(jìn)行顯示,觸摸屏為人機(jī)交互介質(zhì),用于實現(xiàn)用戶對圍棋自動數(shù)字儀的操作。
2.應(yīng)用于權(quán)利要求I所述圍棋自動數(shù)字儀的棋局勝負(fù)判斷方法,其特征在于包括如下步 驟 a.獲取圍棋終局視頻圖像; b.確定棋盤邊界,設(shè)定棋盤四個角的位置,獲取棋盤所在位置的二維灰度矩陣; c.棋盤識別,獲取每個棋子理想中心點的位置并識別黑白子,得到棋子狀態(tài)矩陣; d.根據(jù)圍棋勝負(fù)計算標(biāo)準(zhǔn)判斷勝負(fù)。
3.根據(jù)權(quán)利要求2所述的棋局勝負(fù)判斷方法,其特征在于確定棋盤邊界具體方法是采取人工設(shè)定棋盤邊界,即將棋盤圖像顯示到LCD顯示屏上,用戶手動在觸摸屏上定下棋盤四個角的位置,ARM微處理器模塊將觸摸屏的坐標(biāo)轉(zhuǎn)換為IXD顯示屏的坐標(biāo),獲取棋盤所在位置的二維灰度矩陣。
4.根據(jù)權(quán)利要求2所述的棋局勝負(fù)判斷方法,其特征在于棋盤識別的具體方法是將棋盤的縱橫方向各分18份,設(shè)棋子理想中心點在二維灰度矩陣中的坐標(biāo)為(X’ J),在(#5,7± 5)這個范圍進(jìn)行搜索,求平均灰度值作為每個棋子理想中心點的灰度值;再對距離理想中心點5個像素范圍內(nèi)的點,取距離它們3個像素范圍內(nèi)的點,求平均灰度值,在整個棋盤范圍內(nèi),對這些灰度值進(jìn)行排序,得到最大和最小灰度值,最大灰度值Saix對應(yīng)于白子,最小灰度值對應(yīng)于黑子,黑子所在位置的灰度值分布在白子所在位置的灰度值分布在(SmxSmx),而在這兩個范圍之外的為空點,其中取40,^^_取60從而確定棋盤上每個點的狀態(tài),得到棋子狀態(tài)矩陣。
5.根據(jù)權(quán)利要求2所述的棋局勝負(fù)判斷方法,其特征在于還包括人工校準(zhǔn)環(huán)節(jié),即將已經(jīng)識別好黑白子的棋盤,送到顯示屏顯示,由用戶根據(jù)棋盤的實際情況對每個棋子進(jìn)行校準(zhǔn),校準(zhǔn)結(jié)果記錄到棋子狀態(tài)矩陣中。
6.根據(jù)權(quán)利要求2所述的棋局勝負(fù)判斷方法,其特征在于根據(jù)圍棋勝負(fù)計算標(biāo)準(zhǔn)判斷勝負(fù)的具體方法是根據(jù)圍棋計算勝負(fù)時“空屬鄰子”的規(guī)則,即棋盤上的空點屬于與它相鄰的棋子,對于棋子狀態(tài)矩陣中空點的歸屬,通過在棋盤內(nèi)搜索與它距離最近的棋子來確定,設(shè)兩個棋子在棋盤狀態(tài)矩陣中的坐標(biāo)分別為( ,乃)和( , Λ),為了計算方便,將兩個棋子之間的距離定義為J = ( - X1)2 +Cv2 - Λ)2,最后根據(jù)勝負(fù)計算標(biāo)準(zhǔn),當(dāng)黑子及所占的空點之和大于或等于185時,黑方勝,否則白方勝。
7.根據(jù)權(quán)利要求2所述的棋局勝負(fù)判斷方法,其特征在于獲取圍棋終局視頻圖像的方法采用的是內(nèi)存映射的方式。
全文摘要
本發(fā)明公開一種圍棋自動數(shù)字儀及應(yīng)用于其上的棋局勝負(fù)判斷方法,其特征在于圍棋自動數(shù)字儀包括視頻采集模塊,ARM微處理器模塊、LCD顯示屏和觸摸屏,棋局勝負(fù)判斷方法包括如下步驟a.獲取圍棋終局視頻圖像;b.確定棋盤邊界,設(shè)定棋盤四個角的位置,獲取棋盤所在位置的二維灰度矩陣;c.棋盤識別,獲取每個棋子理想中心點的位置并識別黑白子,得到棋子狀態(tài)矩陣;d.根據(jù)圍棋勝負(fù)計算標(biāo)準(zhǔn)判斷勝負(fù)。本發(fā)明的圍棋自動數(shù)字儀儀器輕便,操作簡單,計算準(zhǔn)確,應(yīng)用于其上的棋局勝負(fù)判斷方法可以公正、準(zhǔn)確、快速的判別勝負(fù),既節(jié)省人力,又極大地提高了比賽的公正性。
文檔編號G06K9/00GK102614655SQ20121005599
公開日2012年8月1日 申請日期2012年3月6日 優(yōu)先權(quán)日2012年3月6日
發(fā)明者孫禎然, 朱玉麟, 柏楠 申請人:南京航空航天大學(xué)