DOI QR코드

DOI QR Code

Random Sample Consensus (RANSAC)-based Automatic (game of) Go Recording System

Random Sample Consensus(RANSAC) 기반 자동 바둑 기보 시스템

  • Park, D.J. (Dept. of Embedded Systems Engineering, Incheon National University) ;
  • Jun, Kyungkoo (Dept. of Embedded Systems Engineering, Incheon National University)
  • Received : 2014.02.27
  • Accepted : 2014.06.19
  • Published : 2014.07.30

Abstract

This paper develops an automatic go recording system based on image processing. We use Random Sample Consensus to detect the circular shape of stone and propose a set of methods to improve the computational overhead of RANSAC. The proposed scheme is not affected by the changes of stone location, illumination, and camera distance, which is different from existing methods. We implemented the proposed scheme into a working system and confirmed that the recording is feasible and the problems have been improved.

Keywords

1. 서 론

기보란 그림과 문자로 바둑의 기본 기술과 전략, 유명한 대국의 전체적인 수순 등을 정리해 놓은 문서다. 바둑을 익힘에서 명인들의 기보를 익히는 연구회가 있을 정도로 기보는 중요한 역할을 한다. 현재 바둑은 온라인으로도 많이 즐길 수 있어, 편하게 기보를 작성할 수 있다. 하지만 프로들의 대국은 오프라인으로 진행되고, 이 같은 경우는 여전히 수작업으로 기보를 불편하게 작성하고 있다.

수작업 기보 작성의 어려움 때문에, 자동으로 기보를 작성하기 위한 몇 가지 시도가 있었다. [1]과 [2]에서는 바둑판에 장치를 설치해 기보를 작성하는 시스템을 구현했다. 바둑판에는 총 38개의 직선과 이직선의 접점인 361개의 교점이 있다. [1]에서는 이교점에 버튼을 설치해 기보를 작성한다. [2]에서는 바둑판에 전기적인 장치를 설치하고, 전기신호를 이용해 바둑돌의 위치를 감지해, 기보를 작성한다. 하지만 [1]과 [2]는 별도로 제작된 바둑판을 이용해야 하므로 대중화되기는 어렵다. 이러한 문제로 [3], [4]는 영상처리를 통해 별도의 장치에 의존하지 않는 방법을 제안한다.

[3]은 대국영상에서 바둑판 위의 교차점을 찾아내고, 해당 좌표의 색상정보를 이용해 기보를 작성한다. 교차점 검출 과정은 그림 1과 같다. 대국영상에서 canny edge detection[5]를 통해 바둑판의 선들을 검출한다. 이는 그림 2의 2번 영상과 같다. 2번의 영상에서 이진화를 통해 노이즈를 제거한 것이 3번이다. 3번에서 hough transform[6]을 이용해 38개의 직선을 검출하면, 각 직선의 좌표들을 얻을 수 있다. 이를 통해 361개의 교차점을 구해낸 것이 4번 영상이다. 하지만 바둑판 위의 노이즈로 직선의 위치가 미세하게 어긋나 잘못 검출된 교차점이 있다. 이를 제거하기 위해 교차점을 수정하는 과정이 5, 6, 7번의 영상들이다. 5번 영상에서 바둑판의 네 개의 꼭지점을 검출하고, 대각의 교차점을 이용해 중심점을 찾아낸다. 이 점들의 좌표를 이용해 각 교차점 사이의 거리를 계산하고, 잘못 검출된 교차점의 위치를 삭제하거나, 수정한다. 일련의 과정들을 통해 361개의 교차점을 검출한 것이 8번 영상이다. 검출해낸 교차점 좌표들의 색상정보를 통해 바둑돌의 존재 여부, 흑 혹은 백의 여부를 결정할 수 있다.

Fig 1.Crossing detection process of [3].

Fig. 2.Automatic Go recording system.

[3]과 본 논문은 바둑 자동기보시스템이라는 공통점이 있으나, 기보작성 시 핵심기술인 바둑돌 검출방법이 다르다. [3]의 경우 바둑판의 교차점을 통해 바둑돌의 위치를 파악하지만, 본 논문은 바둑돌의 원모양을 이용해 검출하는 방식이다.

[4]는 바둑돌의 위치변화를 감지하기 위해 새로운 바둑돌을 놓기 전과 후의 영상 차이를 이용한다. 시간 t에 획득한 2차원 영상을 It라 하고, 이 영상의 좌표 (x,y)의 픽셀값을 It(x,y)라 하자. 이때 It는 그레이스케일 영상이고, 노이즈제거를 위해 가우시안 필터링이 적용된 상태라고 가정한다. 시간 i에 새로 놓인 바둑돌의 위치를 검출하기 위한 Ii-1와 Ii영상 간의 차이, Di는 각 픽셀 (x,y)에 대해서 다음과 같이 계산된다.

이 때, 집합 Si를 Ii-1와 Ii간의 픽셀값 차이가 있는 (x,y)들의 집합이라고 하자.

[4]는 다음 식을 만족하는 양의 정수 k가 존재하면 Ii에 새로운 바둑돌이 놓였다고 판단한다.

여기서 n은 차 영상에서 하나의 바둑돌을 나타내는 데 필요한 픽셀 개수이다. 카메라와 바둑판 간의 거리가 고정되었다는 가정하에 n은 실험을 통해 구할 수 있다. 따라서 Ii-1와 Ii간에 값이 변화된 전체 픽셀의 개수 |Si|가 n의 k 정수배일 경우, 바둑돌 k개가 새로 놓였다는 것을 의미한다. 그리고 이들이 놓인 위치는 Di(x,y)>0인 픽셀 간의 근접 정도를 고려하여 계산한다.

앞서 설명한 [3]의 방법은 새로 바둑돌을 놓을 때마다 361개의 교점의 정보를 매번 검사해야 하는 문제가 있다. 이는 [4]의 방법을 사용할 경우 간단히 해결할 수 있는 문제지만, 이 방법 또한 몇 가지 문제점을 가지고 있다. 첫 번째는 조도 변화에 취약하다는 것이다. Ii-1과 Ii 영상 간에 조도변화가 있으면, 바둑돌을 인식하지 못할 수도 있다. 두 번째는 카메라와 바둑판 간의 거리를 미리 알고 있어야 한다. 세번째는 바둑돌의 미세한 위치 변화에 취약하다. 새로운 바둑돌을 놓으면서 주변 돌을 움직일 경우, 위치 변화된 바둑돌이 재인식되는 상황이 발생한다.

본 논문은 조도변화와 미세 위치변화, 카메라와 바둑판 간 높이 변화가 허용되는 상황에서도 동작하는 자동기보시스템을 제안한다. 문제점을 극복하기 위해 노이즈를 제거하는 필터링 방법, 바둑돌의 원모양을 검출하는 Random Sample Consensus[7], 높이 변화를 고려하는 방법 들을 제안한다.

본 논문은 다음과 같이 구성된다. 2장에서는 제안하는 자동 기보 시스템의 특징적인 방법들을 설명한다. 3장에서는 제안한 방법들을 이용한 기보 시스템을 구현하여 성능 평가를 시행하고 그 결과를 제시한다. 4장에서는 논문을 결론짓는다.

 

2. RANSAC 기반 자동기보시스템

제안하는 자동기보시스템은 그림 2와 같이 바둑판 전체를 촬영하는 카메라를 이용한다. 시스템의 동작 순서는 그림 3과 같고, 그림 3에 메겨진 번호를 통해 자동기보시스템을 설명한다. 카메라가 획득한 바둑판 RGB 영상은 그레이스케일 변환시켜 흑백 영상을 만든다. 이것이 그림 3의 2번에 해당한다. 흑백영상은 두 가지 용도로 쓰이는데, 바둑돌 위치를 검출하는 용도와 검출된 바둑돌의 흑백 여부를 구분하는 용도이다. 흑백 여부 구분은 흑백영상을 이진화 영상으로 변환하여 진행하며, 이 영상은 별도로 저장한다. 그림 4는 이러한 일련의 과정을 보여준다.

Fig. 3.Flow chart of Automatic Go recording system.

Fig. 4.(A) Gray Image, (B) Canny Edge detection image of (A), (C) Binary image of (A).

다음 과정 설명에 앞서 RANSAC에 대한 설명이 필요해 먼저 서술한다. 제안방식은 바둑돌 위치 검출을 위해 RANSAC을 이용한다. RANSAC은 영상처리에서 다양한 방법으로 응용되는 기술[8]로써, 무작위로 선택한 데이터로부터 수학모델을 구성하고, 나머지 데이터들이 이 모델을 만족하는 비율을 근거로 모델이 적합한지를 판단하는 방법이다. 이때 모델을 만족하는 데이터들을 inlier, 그렇지 않은 것들을 outlier라고 한다. 제안방법은 영상에서 추출된 에지들의 픽셀들을 데이터로 이용하여 원에 대한 수학모델을 구한다. 원 모델은 바둑돌을 나타내는데, 충분한 개수의 inlier들이 이 모델을 만족하면 그 위치에서 바둑돌이 검출된 것이다.

위에서 inlier들의 개수가 바둑돌 검출의 중요한조건이다. 제안하는 시스템에서 inlier들이란 바둑대국영상에 찍힌 바둑돌의 에지 픽셀들이다. 하지만 픽셀들의 개수는 카메라의 높이에 따라 변화하기가 쉽다. 그래서 우리는 그림 3의 3번 바둑돌의 크기를 추정하는 과정을 거쳐야 한다. 카메라 높이 변화에 따라 바둑돌 픽셀 개수를 결정하는 것은 미리 알려진 값에 대한 비례식으로 계산할 수 있다. 미리 알려진 카메라 높이에서의 바둑판 한 변을 나타내는 에지 픽셀 개수를 W, 바둑돌 에지 픽셀 개수를 N이라 하자. 카메라 높이가 변화되어, 바둑판 한 변의 픽셀 개수를 w로 변하면, 바둑돌 에지 픽셀 개수 n은 다음과 같이 계산된다.

예를 들어, 본 논문에서는 실험을 통해 카메라 높이가 54cm일 때, 바둑판 한 변 픽셀 개수는 368pixels, 바둑돌 에지 픽셀 수가 48pixels인 것을 이용한다.

우리는 RANSAC 효율성을 높이기 위한 전처리과정을 제안한다. 우선 outlier 에지들을 제거한다. Canny edge detection[5]에 의해 검출된 에지들은 바둑돌 에지 이외에 바둑판의 선, 기타 테두리들의 에지들도 포함한다. RANSAC 입장에서 바둑돌의 에지에 해당하는 픽셀들이 inlier, 이외의 픽셀들은 outlier가 된다. 원 검출 성공확률을 높이려면, outlier 에지들을 최대한 제외시키는 것이 유리하다. 이를 위해 에지검출 전에 가우시안 필터링을 수행하고, 에지 검출 후에는 테두리 꼭지점 판단 등을 이용해서 outlier들을 최대한 제거한다.

또한 대국이 진행될수록 바둑판에 놓여지는 바둑돌의 수가 많아지므로 RANSAC 연산량이 증가하는 단점이 있다. 이를 개선하기 위해 차 영상에 대해서 RANSAC을 수행하는 방법을 제안한다. 이것은 그림 3의 4번에 해당하는 과정이다. 이전 바둑돌 위치 검출에 사용된 canny edge 영상을 Ei-1이라 하고, 현재 영상을 Ei할 때, 두 영상간의 차이, Ci에 대해서 RANSAC을 적용한다.

Ci에서는 이전 바둑돌들의 에지가 모두 제거되기 때문에 새로 놓여진 바둑돌의 에지만 남게 되어 RANSAC 연산량이 감소한다.

하지만 차 영상 Ci에 항상 하나의 바둑돌에 해당하는 에지만 존재하지는 않는다. 대국자들이 주변 바둑돌을 건드려 원래 위치에서 벗어나는 미세변화 때문에 새로운 에지가 생기기도 한다. 또한 E(i-1)과 E(i)를 얻기 위해 사용한 원래 영상들 간에 조도가 다를 경우에도 에지가 생길 수 있다. 이러한 에지들은 바둑돌에 해당하는 것이 아니므로 노이즈 에지들이다.

이러한 노이즈 에지들을 제거하기 위해 제안방법에서는 필터링을 사용한다. 이것은 그림 3의 5번에 해당되는 과정이다. 그림 5와 같이 별도의 필터 영상을 생성하고, 새로운 바둑돌이 검출될 때마다 누적해서 원을 그려 넣는다. 이 필터영상과 차 영상 Ci의 차이를 구함으로써 노이즈 에지들을 제거할 수 있고, RANSAC은 이 결과에 대해서 수행된다. 그림 6는 이와 같은 RANSAC 효율성을 높이기 위한 전처리 과정을 순서대로 보여준다.

Fig. 5.Filter image.

Fig. 6.Preprocessing procedure for performing RANSAC.

앞서 RANSAC을 효율적으로 사용하기 위한 전처리 과정들을 수행했다. 이제부터는 실질적으로 바둑돌을 검출하는 과정에 대해 설명한다. RANSAC을 실행시키기 위해서는 우선 바둑돌 픽셀 데이터들을 입력해야한다. 그림 3의 5번의 결과영상을 canny edge detection을 거쳐 에지들을 얻어내고, 에지정보를 벡터에 저장한다. 이 과정을 그림 3의 6번 결과영상 mapping이라 한다.

지금까지 RANSAC을 실행하기 위한 준비과정을 모두 마쳤다. 이제는 RANSAC으로 어떻게 바둑돌을 검출하는지를 설명한다. 우리는 RANSAC에서 바둑돌 위치 검출을 위한 수학 모델로 삼각형의 외접원을 이용한다. 바둑돌의 에지를 구성하는 세 픽셀 A(x1,y1), B(x2,y2), C(x3,y3)로 삼각형을 만든다면, 그 외접원의 중심 O(x,y)와 반지름 r은 다음과 같다.

외접원 모델을 구하기 위해, 우선 픽셀데이터 중 임의로 세 개를 뽑아 외접원 모델을 구성하고, 나머지 픽셀데이터들이 이를 만족하는 비율을 계산한다. 이 때 만족비율을 consensus라 한다. RANSAC에서는 이 과정을 N번 반복하고, 이 중 가장 consensus가 높은 모델을 반환한다. 이 때, N은 다음과 같이 결정된다. 한 번에 뽑는 픽셀데이터의 개수를 m, 데이터 중 inlier의 비율을 α라 하면, N번 수행하면서 m개를 모두 inlier로만 선택할 확률 p는 다음과 같다.

따라서, m과 α가 결정된다면, N은 다음과 같이 계산된다.

α는 전체 픽셀 데이터 개수 대비 바둑돌 에지의 픽셀 개수의 비율이다. α를 결정하기 위해서는 카메라 높이가 고려되어야 한다. 왜냐하면 바둑판 위에 설치되는 카메라 높이에 따라 에지를 구성하는 픽셀들의 개수가 변하기 때문이다. 특히 하나의 바둑돌의 에지를 구성하는 픽셀 개수는 높이에 따라 변한다. 이는 앞서 그림 3의 3번 과정에서 식 4를 통해 구했다. 식 7을 통해 계산한 N이 그림 3의 7번 과정이다.

구성된 수학모델이 적합한지는 모델에 대한 다른 픽셀들의 inlier 비율로 결정한다. 임의의 픽셀이 inlier인지를 판단하기 위해서, 수학모델이 나타내는 원의 중심 좌표를 c, 반지름을 r, 픽셀 p의 좌표를 cp라 할 때, 두 좌표간의 거리 d= |c-cp|가 다음 조건을 만족하면, 픽셀 p는 inlier이다.

inlier 픽셀들의 개수가 하나의 바둑돌 에지 픽셀수 n의 90% 이상이면 수학모델이 적합하다고 결정된다. 이러한 과정이 그림 3의 8번에 해당한다.

마지막 단계에서는 검출된 바둑돌의 위치를 기보에 기록한다. 그림 3의 마지막 단계 9번에 해당한다. 이때 앞서 별도로 저장해 두었던 이진화 영상의 픽셀정보를 이용해 흑과 백을 결정한다.

 

3. 자동 기보 시스템 성능 평가

제안한 자동기보시스템 성능을 평가하기 위한 환경은 그림 2와 같다. 바둑판 전체를 촬영하기 위해 카메라를 바둑판 위에 설치하였다. 카메라의 높이는 임의로 조절할 수 있다. 실험에서는 바둑 대신 오목에 대한 기보를 작성했다. 영상처리 관점에서 두 게임 간에 큰 차이가 없으므로, 바둑 기보작성과 큰 차이가 없으리라 생각된다. 실험에 사용된 RANSAC 파라미터값은 표 1과 같다.

Table 1.RANSAC parameter values

그림 6은 서로 다른 카메라 높이에서 작성된 기보들이다. 카메라 높이를 54, 69, 82cm로 각각 설정한 이후에 실험을 진행하였다. 이는 제안방식이 카메라 높이가 달라질 경우에도 성공적으로 기보 작성이 가능하다는 것을 보여준다.

Fig. 7.(A) Detection image in 54cm, (B) Detection image in 69cm, (C) Detection image in 82cm.

앞서 1장에서 바둑돌 위치의 미세변화와 조도변화에 따른 기존 방식의 문제점들을 언급했다. 여기서는 인위적으로 이러한 변화 상황을 만들어, 기존 방법 [4]와 제안방식의 성능을 평가한다. 첫 번째 실험에서는 바둑돌 위치의 미세변화에 대한 실험이다. 본 실험에서는 기존에 놓여있는 바둑돌 사이에 새로운 바둑돌을 놓으면서, 주변 바둑돌이 위치 이동되도록 하였다. 그림 8A, 8B는 바둑돌을 놓기 전후의 영상이다. 새로 놓인 바둑돌의 위치를 사각형으로 표시했다. 그림 9A는 기존의 방법을 사용했을 때 차 영상 결과이다. 그림 9B는 제안 방식의 결과로, 필터영상을 이용하여 노이즈 에지들을 상당 부분 제거된 것을 볼 수 있다.

Fig. 8.Before and after image of stone dislocation by player. (A) Image before dislocation, (B) Image after dislocation.

Fig. 9.Binary image in dislocation experiment. (A) Binary image of past method, (B) Binary image of proposed method.

두 번째 실험은 조도변화에 대한 실험이다. 바둑돌을 놓기 전과 후에 급격한 조도변화를 주었다. 바둑돌의 위치는 첫 번째 실험과 같다. 그림 10A는 기존방법을 사용했을 때, 차 영상을 이진화한 영상이다. 기존 방법의 경우 조도변화로 생긴 그림자 때문에, 검출한 새 바둑돌을 찾을 수가 없다. 그림 10B는 제안방식의 결과로 그림자 노이즈 들이 상당부분 제거된 것을 볼 수 있다.

Fig. 10.Binary image in illumination change experiment. (A) Binary image of past method, (B) Binary image of proposed method.

마지막 실험은 기존 방법과 제안 방법의 바둑돌 검출 속도와 정확도를 비교한 실험이다. 실험의 객관성을 높이기 위해 실제 바둑 대국 영상에서 바둑판 화면을 캡쳐해 실험했다. 대국 영상은 총 303수로 이뤄졌고, 303장의 캡쳐 사진을 자동바둑기보시스템에 입력해 바둑돌 검출 여부와 검출 속도를 측정했다. 기존 방법은 오차율을 0.1로 적용해, 차영상의 크기가 식 3을 만족하는지의 여부로 검출여부와 속도를 측정했다. 그림 11과 그림 12는 기존방법과 제안방법의 검출률과 검출 속도를 보여준다. 총 303번의 시도 중 제안방법은 291번을 성공해 96%의 성공률을 보였고, 기존 방법의 경우 96번을 성공해 35%의 성공률을 보여준다. 기존 방법의 경우 대부분 대국자의 바둑돌 건드림으로 검출에 실패했고, 바둑돌이 많아질수록 더 자주 발생했다. 검출 속도의 경우 제안 방법은 평균 검출 속도가 0.0314, 기존 방법은 0.0227임을 확인했다. 기존의 방법보다 0.0087초 느리지만, 그 차이가 작은 것을 알 수 있다.

Fig. 11.Stone detection experiment result. (A) Result of past method, (B) Result of proposed method.

Fig. 12.Detection speed comparison about past method and proposed method.

 

4. 결 론

본 논문에서는 영상처리를 통해 바둑대국을 자동으로 기록하는 시스템을 개발하였다. 이 시스템은 RANSAC알고리즘을 통해 기보를 작성하며, 바둑돌 위치의 미세변화나 조도변화, 카메라 높이 변화에 의한 영향을 받지 않는다. 제안방식은 필터 영상을 통해 노이즈 에지들을 효과적으로 제거할 수 있다. 또한, RANSAC 연산량의 개선을 위한 방법들도 제안하였다. 제안한 방법을 구현하여 기보 작성이 가능함을 보였고, 기존 방식의 문제점들도 극복했음을 확인했다. 향후연구에서는 제안방법을 이용하여 전체적인 자동기보시스템을 구현하는 것을 목표로 한다. 여기에는 죽은 돌 검출, GUI 구축, 바둑연구를 돕는 복기시스템 등이 있고, 성능검증을 위해 실제 바둑대국 영상을 통한 정량적 자료를 제시할 것이다.

References

  1. R. Cheni, Baduk Record Device, 20-0152326, Korea, 1999.
  2. J.S. Na, Automatic Order Recording Badook Table, 20-0200127, Korea, 2000.
  3. A. Srisuphab, P. Silapachote, T. Chaivanichanan, W. Ratanapairojkul, and W. Porncharoensub, "An Application for the Game of Go: Automatic Live Go Recording and Searchable Go Database," Proceeding of IEEE Region 10 Conference, pp. 1-6, 2012.
  4. H.Y. Kim, Sihong Park, and Seokhwan Jang, Method and Device for Creating Paduk Record of Go, 10-0472102, Korea, 2005.
  5. J. Canny, "A Computational Approach to Edge Detection," IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 8, No. 6, pp. 679-698, 1986.
  6. R.O. Duda and P.E. Hart, "Use of Hough Transformation to Detect Line and Curves in Picture," Communications of the ACM, Vol. 15, No. 1, pp. 11-15, 1972. https://doi.org/10.1145/361237.361242
  7. Fischler, A. Martin, Bolles, and C. Robert, "Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography," Communications of the ACM, Vol. 24, No. 6, pp. 381-395, 1981. https://doi.org/10.1145/358669.358692
  8. S.H. Oh and S.K. Jung, "Ransac-based Or thogonal Vanishing Point Estimation in the Equirectangular Images," Journal of Korea Multimedia Society, Vol. 15, No. 12, pp. 1430- 1441, 2012. https://doi.org/10.9717/kmms.2012.15.12.1430