趙 祥,趙新龍
(浙江理工大學機械與自動控制學院,浙江 杭州 310018)
1546688451@qq.com;zhaoxinlong@zstu.edu.cn
圍棋機器人是新興的娛樂機器人之一,一般應用于家庭娛樂、棋院、少年宮等教育機構。識別棋盤棋子是圍棋機器人的關鍵技術,其識別準確率直接決定了圍棋機器人的正常運行狀況與用戶的體驗質量。傳統方法主要是在光照恒定的條件下利用圖像識別方法提取并匹配特征來檢測棋子,例如定向梯度直方圖(Histogram of Oriented Gradients,HOG)和尺度不變特征變換(Scale-Invariant Feature Transform,SIFT)。但是由于圍棋棋子的紋理不多,很難從中提取特定的特征,而且各部分之間的相似特征會使得匹配過程復雜化。NHAT等提出一種利用顏色空間識別棋子的直接方法,但只能得出棋子的大致位置。DEY等提出通過檢測形狀并融合顏色空間來識別圍棋棋子,提升了棋子識別率。但當棋子的位置偏離棋盤線角點時,該方法的準確率下降。上述棋子識別方法的實驗環境是光照恒定的,缺乏對復雜光照情況的研究。但是人們日常生活中的圍棋運動所處環境的光照條件是不均勻的,而不均勻光照會在棋盤上產生陰影、光斑、噪點等,從而影響棋子識別的準確率。本文結合神經網絡和圖像處理的相關技術,分析了光照不均勻對圍棋棋子識別率的影響,并進行了不同光照強度下的測試,優化了識別算法,提高了棋子識別率。
為了解決不均勻光照對棋子識別的影響,更好地提取圖像特征,研究人員借助圖像增強技術來凸顯低亮度區域的細節信息并提升圖像的對比度。圖像分割為常用方法之一,能夠有效提取特征,并且在一定程度上減輕光照不均勻帶來的影響,常用的分割技術有自適應閾值分割、形態學和模糊C均值聚類方法。以上方法在光照不均勻的環境下識別圖像特征時有一定效果,但是應用于圍棋棋子識別時,由于棋盤上的高亮區域和陰影區域分布不規律,影響了棋子識別的準確率。
本文首先利用邊緣檢測和閾值分割法來提取棋盤圖像并轉化為標準圖像,然后利用神經網絡的方法來識別黑白棋子,通過提取更多的有效特征,解決不均勻光照條件下圍棋棋子識別率較低的問題。實驗表明:這種方法在強光、室內燈光、暗光等三種光照不均勻情況下,對圍棋棋子的平均識別準確率可達到98%以上,驗證了該方法的有效性。
在采集到的原始圖像中,棋盤是我們所需要的部分,因此我們需要將圖像中的棋盤部分提取并保留,非棋盤部分進行舍棄。本文提出了基于邊緣檢測和閾值分割的棋盤提取方法。
在實驗過程中,首先利用高斯濾波來減少噪聲從而得到矯正后的原始圖像,如圖1(a)所示。然后利用Canny算子處理后得到圖1(b),并辨識出圖像中最大的四邊形輪廓,即得到棋盤區域圖像如圖1(c)所示。最后利用閾值分割法對棋盤區域存在的標定點進行讀取,得出標定點對應的位置如圖1(d)所示。

圖1 棋盤識別流程Fig.1 Checkerboard recognition process
棋盤提取只保留標定點中間的區域,所得圖像如圖2(a)所示。設標定點為、、、,構成一個不規則四邊形。為了方便對棋盤上的棋子進行識別處理,需要將圖2(a)通過透視變換轉換為標準棋盤圖像。透視變換關系如圖2(b)所示。

圖2 透視變換流程Fig.2 Perspective transformation process

根據透視變換矩陣,可以將圖2(a)中的棋盤提取圖像轉換為圖2(c)所示的標準棋盤圖像。整個棋盤提取的標準流程如圖3所示。

圖3 棋盤提取流程Fig.3 Checkerboard extraction process
針對不均勻光照下的棋子特征識別,本文通過采集不均勻光照條件下的棋盤棋子圖像,構建合適的神經網絡來進行棋子圖像的特征提取和分類,降低不均勻光照對棋子特征識別的影響。通過采集不同光照強度下的棋盤棋子圖像作為數據集,共得到3,000 張標準棋盤圖像,光照強度在10 Lux至3,500 Lux。本文按照9:1的比例劃分訓練集和測試集,對數據集中的圖像分成黑、白和空三類并進行標注,然后將訓練集輸入神經網絡分類器進行訓練。
本文利用多層感知器(Multilayer Perceptron,MLP)來實現對圍棋圖像的分類。多層感知器是由輸入層、隱含層及輸出層構成的神經網絡模型,其內部神經網絡結構如圖4所示,層與層的關系為全連接關系。

圖4 神經網絡結構Fig.4 Neural network architecture
在圖4的神經網絡結構中,輸入層神經元接收圖像數組,輸出層神經元設置為3,用于對棋子的類型進行判斷。MLP的輸出計算步驟如下。
首先,計算得到輸入的加權和為

利用自適應矩陣估計(Adaptive Momentum,Adam)來調整MLP的權重。Adam優化器可以替代傳統隨機梯度下降過程的一階優化算法,基于訓練數據迭代更新神經網絡權重。
訓練出的分類器封裝為H5文件并保存,利用Python調用此分類器對棋盤圖像進行分類。首先將圖5(a)的標準棋盤圖像分割為20 px×20 px的單個棋子圖像,并依次加入data數據集,作為分類器的輸入。然后直接在Python中調用分類器,將結果導出為數據矩陣并轉換為識別后的棋盤圖像,如圖5(b)所示。

圖5 圖像對比Fig.5 Image comparison
整個棋子特征識別流程如圖6所示。

圖6 棋子特征識別流程Fig.6 Recognition process of chess pieces features
本實驗以不均勻光照下的圍棋棋子作為研究對象,在處理器為Inter Core i5-10210U、16 GB內存的計算機上,利用PyCharm作為開發工具運行實驗程序。實驗數據來源于三種不均勻光照環境下采集的原始棋盤圖像。實驗光照條件分別為強光照環境下、室內燈光環境下和暗光環境下,整體光照范圍為10—3,500 Lux。
圖7展示了不同光照環境下圍棋棋子的識別結果,實驗共得到20,000 張圍棋圖像,下面找一些典型的圖片作為說明。圖像中的圓圈標注為出現識別錯誤的位置。
圖7(a)采集于強光照環境下,棋盤的光照范圍為1,000—3,500 Lux,光照強度從上到下逐漸減弱。由于光照強度較高,且棋子有反光的現象存在,識別難度增大,主要原因是強光下黑棋的反光導致程序將黑棋錯認成白棋,另外白棋在強光下的反光也對識別效果有很大影響。經過實驗測試,棋子在強光照環境下識別率在97%以上。
圖7(b)采集于室內燈光環境下,棋盤的光照范圍為300—1,000 Lux。相對于強光照環境,室內燈光下的棋盤表面會反射燈光從而出現光照不均勻現象。當棋盤有明顯的反光時會增大棋子的識別難度。經過實驗測試,棋子在室內燈光環境下識別率在99%以上。
圖7(c)采集于暗光環境下,棋盤的光照范圍為10—300 Lux。由于環境光照強度過低,可以發現棋子周圍存在明顯陰影。此時圓圈標注位置的光照強度為46 Lux,白色棋子并未識別出來,原因是在光線昏暗的情況下,白子的灰度特征不明顯,因而影響了棋子的識別率。經過實驗測試,棋子在暗光環境下識別率在98%以上。
圖7(d)采集于正常的均勻光照環境下,作為實驗中的對照組,棋盤的光照范圍為300—1,000 Lux。均勻光照下的棋盤圖像中的棋子輪廓清晰,棋盤沒有明顯的反光與陰影,因此算法處理這類圖像的識別效率很高,基本上所有棋子都可以識別。

圖7 不同光照條件下的圍棋棋子識別結果Fig.7 Recognition results of Weiqi pieces under different lighting conditions
不同的光照強度下,圍棋棋子識別準確率如圖8所示。

圖8 圍棋識別準確率Fig.8 Weiqi recognition accuracy
為了進一步說明本文所提出的神經網絡方法的有效性,使用相同的圍棋圖像樣本與傳統的邊緣檢測算法進行比較。所識別的圍棋圖像樣本共100 個,分別為暗光環境下采集的圖像30 張,室內燈光環境下采集的圖像40 張,強光環境下采集的圖像30 張。表1顯示兩種方法在識別不均勻光照環境下棋子的準確率。實驗結果表明神經網絡方法在三種不同光照條件下的圍棋識別準確率均高于邊緣檢測算法。

表1 不同方法下圍棋識別準確率Tab.1 Weiqi recognition accuracy in different lighting conditions
識別棋盤棋子是圍棋機器人系統中非常重要的研究內容,本文重點研究了不均勻光照下棋盤提取與棋子識別的處理方法。棋盤提取主要包括識別標定點和透視變換,提出了基于邊緣檢測和閾值分割方法來提取棋盤圖像,并利用透視變換轉換為標準棋盤圖像的方法。另外,利用多層感知器和神經網絡方法來訓練棋子分類器,對標準棋盤圖像上的棋子進行識別和分類。通過實驗驗證,對于不均勻光照環境下的棋子識別,本文所提出的方法優于傳統的邊緣檢測算法。