下棋機器人視覺系統

對弈機器人的視覺圖像處理和識別

張志偉 孔凡讓 趙吉文 何清波 吳增榮

(中國科學技術大學精密機械與精密儀器系 安徽合肥230027)

摘 要  基於視覺的對弈機器人在國內尚無先例,其視覺系統的實現是此研究的關鍵。提出了彩色空間變換,閾值分割、形態學

骨架化及霍夫變換等圖像處理技術對棋局中的棋子進行檢測、定位和分割的方法。在棋子識別過程中,爲克服棋子擺放方向的隨意性,提取棋子旋轉不變的徑向像素點數特徵;用BP神經網絡進行識別,並採用貝葉斯正則化方法提高了網絡的推廣性。實驗表明,該方法定位、分割棋子準確無誤,識別率較高。

關鍵詞  對弈機器人 彩色圖像處理 BP神經網絡 貝葉斯正則化

0 引 言

機器弈棋是人工智能、自動控制、計算機視覺、模式識別等理論與技術的綜合應用。最著名的例子就是1997年IBM公司的超級計算機“深藍”擊敗了國際象棋世界冠軍卡斯帕羅夫。隨着機器人和自動控制技術的發展,機器弈棋不僅是用計算機進行思考,已發展到用機器人代替人類進行弈棋過程的各種行爲[1, 2]。但目前國內還缺乏真正的具有類人形、可以獨立完成弈棋全過程的機器人。我們正在研製的仿人弈象棋機器人可以獨立完成所有弈棋動作,它具有人的外形,可以觀察識別真實棋局,思考行棋招法,並且具有可以移動棋子的手臂。主要由四個部分組成:視覺系統、博弈系統、控制系統、中樞系統。視覺系統觀察棋局圖像並加以識別;博弈系統對棋局進行分析推演;控制系統用於操縱移動棋子;中樞系統對各功能進行統一調度,並實現各部分之間的接口和通信。

本文的研究內容是機器人視覺系統的實現。視覺系統相當於機器人的眼睛,其功能是從攝像頭拍攝的棋局圖像檢測出每一個棋子,識別出其顏色和種類,並得到棋子的位置信息。其過程包括圖像處理和文字識別。本文提出的方法是:在圖像處理過程中,首先利用顏色的彩色空間變換,分割出棋局區域圖像。之後細分圖像,將棋局分割成子圖像,對每個子圖像進行棋子存在及顏色判斷。對棋子進行閾值粗分割及形態學細化處理,採用霍夫變換檢測棋子外圈,得到棋子精確定位後對棋子再次閾值分割,最終得到棋子中的文字圖像。在文字識別過程中,提取棋子文字旋轉不變的徑向像素點數特徵,用BP神經網絡進行識別,並採用貝葉斯正則化方法提高網絡的推廣性。基本步驟包括棋局區域分割、棋子粗分割、棋子細分割、棋子的漢字特徵提取和識別等,如圖1所示。


1 棋局區域分割

原始棋局圖像由CCD攝像頭在棋盤正上方拍攝所得, 24位真彩色, 640像素×480像素。原始棋局圖像超出了棋局的範圍,工作的第一步是要把棋局區域從圖像中分割出來。對於彩色圖像,如何充分利用彩色信息進行圖像分割是工作的重點。在彩色圖像處理中,最常用的顏色模型是HIS模型它比較適於描述人類的彩色感覺。將原始圖像由RGB模型轉換爲HIS模型,可以分別得到H(色調)、S(飽和度)、I(亮度)分量圖,如圖2所示。從S分量圖可以看出,棋局區域(包括棋子和棋盤上的線條)與棋局外的檯面部分的飽和度具有明顯的區別。因此可以簡單地用一個閾值把棋局區域和檯面分割開來。


2 棋子分割

將棋局區域分割出來後,下一步的工作是將棋局中的每個棋子分別分割出來。在這一步中我們仍然要利用圖像的彩色信息。

2.1 棋盤細分

注意到圖像在亮度上的不均衡性,採用了一種細分的子圖像分割方法。首先對應棋子的可能位置,將整個棋盤切割成9×10個方形的子圖像,即粗略定位後的棋子圖像。每個子圖像的中心爲棋盤上線與線的交叉點,這些交叉點是棋子應該放置的位置;邊長取值略大於棋子的直徑(這樣可以適應棋子位置稍爲偏斜的情況)。

2.2 棋子存在及顏色判斷

接下來是判斷每個子圖像中是否含有棋子。觀察棋局的I分量圖可知,黑棋相對於圖像的其他部分具有明顯偏低的I分量。因此,首先利用I分量信息判斷每個子圖像中是否含有黑棋。對於任意子圖像,用特定閾值分割其I分量圖,計算分割後的二值圖像的黑色像素數,如果大於某個設定的閾值,則判定此子圖像含有黑棋。對於不存在黑子的子圖像,則進一步判斷它是否含有紅棋。此時利用S分量信息,用類似於判斷黑子的方法可以得到正確的結果。

2.3 棋子粗分割

接下來,需要從含有棋子的子圖像中分割出棋子來。對於黑子,我們利用亮度信息進行分割。在含有黑子的子圖像中,首先進行閾值分割,如圖3所示。經過這樣分割得到的二值圖像還含有由於棋盤上線條和其他原因形成的噪聲信息,因此把這一次分割稱爲粗分割。對於紅子,我們則利用飽和度信息進行分割,可得到類似黑棋的結果。


2.4 棋子細分割

從前面的粗分割得到的圖像中含有一定的噪聲,而這些噪聲基本都位於棋子的範圍之外。如果能對棋子精確定位,僅切割出棋子範圍內的圖像,就可以去除棋子外的噪聲。注意到每個棋子的邊緣都有一個圓圈,這個圓圈可以確定棋子的範圍和位置。如果知道了該圓的半徑和圓心,就可以對棋子精確定位。

從圖像中檢測圓的一個有效方法是霍夫(Hough)變換。首先對前面粗分割後得到的二值子圖像運用形態學細化的方法,得到原圖的骨架。之後用霍夫變換檢測出子圖像中的圓,同時得到圓的圓心和直徑。以圓心的位置對每個棋子進行重定位,切割出包含僅棋子的子圖像,此時得到的子圖像稱爲精確定位棋子圖像。最後用Ostu方法[3]自動選取閾值,對子圖像進行閾值分割,得到僅含文字的子圖像。最終得到的文字圖像是27×27像素的黑白圖像。圖4顯示了這一過程。


3 棋子識別

前面一系列圖像處理的工作,目的是爲了從原圖中提取出要識別的目標———漢字。對漢字的識別技術已經比較成熟[4,5],但對中國象棋的識別,與一般的漢字識別有所不同。因爲這裏需要識別的漢字種類很少,對中國象棋來說,只需識別車,馬,砲(黑棋),炮(紅棋),象(黑棋),相(紅棋),士(黑棋),仕(紅棋),將,帥,卒,兵12種不同的漢字。所以採用的是與一般漢字識別不同的方法。

3.1 特徵提取

爲了正確的識別,文字特徵的提取至關重要。在下中國象棋時,棋子可以任意旋轉地放置。因此必須要克服由於旋轉造成的識別困難。爲此須提取圖像旋轉不變的特徵進行識別。我們首先嚐試提取具有旋轉不變特性的圖像的Hu矩和Zernike矩特徵[6]。在對各棋子圖像進行位置和尺度歸一化之後,分別計算其Hu矩的7個不變矩特徵和Zernike矩的前四階矩特徵,取對數後作爲輸入,用BP神經網絡分別進行訓練,但是結果表明,無論是Hu矩還是Zernike矩,都難以達到較高的識別率(均低於80% )。分析其原因在於,由於攝像頭本身性能和燈光等環境因素的影響,使攝像頭每次拍攝的棋局圖像存在差別,導致最終分割出的同類的棋子圖像間也存在漢字筆畫粗細、模糊程度的不同。此外,也存在圖像數字化和噪聲帶來的誤差影響。這使得同類棋子計算出的矩不變量存在較大的差別,從而造成了識別率的降低。經過對棋子圖像的分析,我們發現圖像的徑向像素點數特徵可以很好地反應某個漢字的結構特徵,並且對其歸一化後它對漢字筆畫的粗細以及噪聲的影響不敏感,此外,它還是旋轉不變的。因此,我們提取圖像的徑向像素點數作爲特徵。具體做法是:

1)平移圖像。使各棋子圖像的矩心座標與矩形中心座標重合。即作變換:

f1(x1,y1)=f(x+x,y+y),這裏(x,y)是圖像的矩心座標。

2)以圖像中心爲原點,以等間隔半徑作多個圓,計算位於相鄰兩圓間的文字像素點數Countj, (1≤j≤n)。n這裏取13。這樣對每個棋子,都得到一個13維的像素點數向量Count。

3)將像素點數進行歸一化處理。即對每個棋子的像素點數向量Count作歸一化處理得到13維的特徵向量P,其各維分量爲:



3.2 特徵識別

神經網絡是進行模式識別的常用方法。本文采用包含一個隱藏層的BP神經網絡,隱含層和輸出均採用對數S型激勵函數。樣本集爲{Pi,Ti},1≤i≤1920。輸入Pi爲13維的特徵向量。Ti爲12維的目標向量,對應12種棋子。經過實驗比較,確定網絡結構爲13-20-12,採用Levenberg-Marquardt算法[7]進行訓練。用前960個樣本作爲訓練集,後960個樣本作爲測試集。以隨機的權值初始化網絡,進行5次訓練。結果訓練集的平均正確率爲96.5%,測試集的平均錯誤率爲85.7%。可見網絡的推廣能力一般,識別率不高,有待改進。

3.2.1 貝葉斯正則化方法

如何提高神經網絡的推廣能力一直受到廣泛關注。David Mackay提出了用統計學中的貝葉斯理論來優化調整神經網絡以獲得良好推廣能力的方法[8]。通常一個BP網絡的訓練目標是減少總平方誤差:F=ED。其中



,n爲樣本數量, ti是第i個樣本的期望輸出, ai爲網絡的實際輸出。而貝葉斯正則化方法的訓練目標則是:F=βED+αEW。其中,


表示權值的平方和,N爲權值總數。α和β是目標函數的參數。權值越小,網絡的推廣能力越強。如果α<<β,則訓練注重於使訓練集的誤差最小,但是難以獲得很好的推廣性;如果α>>β,則訓練注重於提高網絡的推廣性,但是訓練集誤差將不能保證最小,網絡輸出更加平滑。通過採用新的目標函數,可以在保證網絡訓練誤差儘可能小的情況下使網絡具有較小的權值,相當於縮小了網絡的規模。

按照貝葉斯理論,求權值W的最優值即求W的後驗概率P(W|D,α,β,M)的最大值,其中D表示樣本集,M表示使用的特定網絡結構。而這等價於求目標函數F(W)=βED+αEW的最小值。Mackay經推導得到目標函數的參數α、β分別爲:


這裏


是目標函數的海森矩陣。γ稱作有效權值數,取值範圍0~N。它衡量一個BP網絡中真正有效的權值的個數。如果網絡訓練最終得到的γ值接近N,則表示現在的網絡結構還不夠複雜,可以再增加神經元數目;如果增加了網絡的複雜度,但γ值基本保持不變,就可認爲前面的網絡已可以滿足要求。

3.2.2 實驗結果與分析

Foresee和Hagan採用貝葉斯正則化方法,利用高斯牛頓法近似計算海森矩陣,並利用Levenberg-Marquardt算法對BP網絡進行訓練[9]。我們在實驗中採用同樣的算法,對隱含層神經元數S取不同的值進行訓練,表1是訓練的結果。


可見,隨着S的增大,ED、EW逐漸減小,而γ值逐漸增大。但是S在達到20以後,γ值基本保持不變,說明網絡已經足夠複雜,S取值不需要增加了;相應的,此時ED的值也已經收斂。S=20時,訓練集的正確率爲99.9%,測試集的正確率也達到了93.1%。與前面不用貝葉斯正則法的訓練相比,訓練集和測試集的正確率都有了提高,網絡的推廣能力的增強相當可觀。從實驗結果也可看出,用圖像的徑向像素點數特徵對棋子圖像進行識別,具有比用Hu矩和Zernike矩更好的效果。

4 結束語

基於視覺的仿人對弈機器人在國內尚無先例,其關鍵在於其視覺系統中的圖像處理和識別。本文提出了基於彩色圖像的,應用閾值分割、形態學細化、霍夫變換等圖像處理技術對機器人視覺圖像進行分割、提取出棋子圖像的方法。在對棋子的識別中,與一般漢字特徵提取方法不同,提取了具有旋轉不變性的像素徑向分佈點數的特徵。在用神經網絡進行訓練識別時,引入了貝葉斯正則化方法對網絡訓練進行優化,最終棋子識別率達到了93. 1%。通過與傳統BP神經網絡訓練方法的比較,證明了貝葉斯正則法在增強網絡推廣性和提高整體識別率上有明顯的優勢。實驗結果也表明用圖像的徑向像素點數特徵對棋子圖像進行識別,具有比用Hu矩和Zernike矩更好的效果。

參考文獻

[ 1 ]高志華,沈小麗.智能中國象棋棋盤的開發[J].中國計量學院學報, 2001, 12(1): 91-94.

[ 2 ]黃力波,夏庭鍇,王春香,等.實時環境下的對弈機器人控制系統設計與分析[J].機械, 2004, 31(6): 50-52.

[ 3 ] Ostu N.A threshold selection methodfrom gray-level histogram [J].IEEE Trans SystemsMan Cybernetic, 1978(8): 62-65.

[ 4 ]郭戈,閆繼宏,蔣紅梅,等.基於結構特徵的漢字識別[J].甘肅工業大學學報, 2003, 29(1): 81-85.

[ 5 ]汪芳,康慕寧,李先國.印刷體漢字識別技術[J].情報技術, 2004(2): 32-33.

[ 6 ]丁興號,鄧善熙.Hu矩和Zernike矩在字符識別中的應用[J].工具技術, 2003, 37: 16-18.

[ 7 ] Martin THagan,Mohammad B Menha.jTraining feedforward networks with theMarquardt algorithm [J]. IEEETransactions on NeuralNet- works, 1994, 5(6): 989-993.

[ 8 ] D JCMackay. BayesianInterpolation[J].NeuralComputation, 1992,4: 415-447.

[ 9 ] FDan Foresee,MartinTHagan.Gauss-Newtonapproximation toBayes-ian Learning[ J]. IEEE Transactions on Neural Networks,1997, 3:1930-1935.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章