DOI QR코드

DOI QR Code

머신 비전 기반 당구공 검출

Machine Vision-based Billiards Ball Detection

  • 이선우 (한국공학대학교 메카트로닉스공학부) ;
  • 허헌 (한국공학대학교 메카트로닉스공학부)
  • SunWoo Lee (Dept. of Mechatronics Eng., Tech University of Korea) ;
  • Heon Huh (Dept. of Mechatronics Eng., Tech University of Korea)
  • 투고 : 2024.02.14
  • 심사 : 2024.04.05
  • 발행 : 2024.04.30

초록

코로나19 이후, 원격 비접촉 활동의 증가로 인해 온라인 플랫폼을 활용한 스포츠 활동이 급증하였다. 당구도 온라인 플랫폼에 적합한 경기로 주목 받으면서 공의 위치와 이동 궤적 검출 등에 관한 다양한 연구가 진행되어 왔다. 본 논문에서는 머신 비전 기술을 활용하여 당구공의 위치를 정확하게 검출하는 방법을 제안한다. 제안한 방법은 Canny 방식의 객체 외곽선 검출 후 공의 프로파일을 갖는 템플릿과의 상관만으로 공의 위치를 검출한다. 상관을 통한 당구공검출은 높은 시스템 성능을 보이는 동시에 구현 복잡도가 낮고 외란에 강인하기 때문에 실제 시스템에 적용이 용이한 장점이 있다.

Since the outbreak of COVID-19, there has been a surge in sports conducted through online platforms due to the increase in remote and non-contact activities. Billiards, being suitable for online platforms, has received much attention, leading to research on detecting the position and trajectory of balls. In this paper, we propose a new method utilizing machine vision to detect the position of the balls accurately. The proposed method detects the outline of the ball using the Canny edge detection and then employs simple correlation to determine its position. This correlation-based approach offers satisfactory system performance and is easily applicable in practical systems due to its low implementation complexity and robustness to noise.

키워드

Ⅰ. 서론

코로나 팬데믹 이후 온라인 원격 강의와 화상 회의 같은 다양한 비대면 활동이 우리의 새로운 일상이 되었다. 비대면 생활 증가로 인해 사람들의 신체활동량이 감소하면서 기초 체력뿐 아니라 정서적 건강도 나빠졌다[1]. 이에 스포츠나 레저 활동을 통한 건강관리의 중요성이 높아지면서 비대면 환경에서도 스포츠를 즐기고 싶은 욕구는 증가하고 있다. 대부분의 스포츠는 강습, 훈련, 시합 등의 형태로 진행되며 보통 상대방과 대면해서 경기를 진행하게 된다. 따라서 단순한 컴퓨터 게임이 아닌 실제 스포츠를 온라인이나 원격으로 진행하는 것은 기본적으로 불가능하다고 생각되었다. 최근 골프를 비롯한 일부 스포츠에서는 첨단 기술을 활용한 온라인 플랫폼 상에서 실제 경기를 수행하는 것과 같은 사용자 경험을 제공하고 있으며 공통의 가상공간에서 여러 명이 원격 비대면으로 경기를 진행하는 것도 가능하다. 특히 골프는 코로나 판데믹 이전부터 컴퓨터 비전을 기반으로 실제 골프장을 가상의 화면에 구현하여 스크린골프로 즐길 수 있었다. 코로나 기간에도 스크린골프 시장 규모는 2020년 약 1조 5304억 원에서 2021년 약 1조 8143억 원, 2022년 약 2조 1865억 원으로 각각 전년대비 6%, 19%, 21% 성장했다[2]. 골프가 온라인 플랫폼 형태로 크게 성공한 배경에는 골프는 상대방과의 직접적인 상호 작용이 제한적이고 기본적으로 각자 본인의 플레이를 한다는 특징이 있다.

이런 점에서, 당구는 골프와 유사성이 많기 때문에, 온라인 플랫폼 기반의 디지털 당구시스템이 당구의 강습 및 훈련에 성공적으로 도입될 것으로 기대된다. 최근에는 한국에서 당구에 대한 관심이 높아지고 동호인들이 증가함에 따라, 비대면 당구 강습 및 훈련 보조 시스템에 대한 수요가 상승하고 있다. 본 논문에서는 디지털 당구플랫폼 구현을 위한 핵심 기술인 당구공 위치 인식 방법을 고찰하고 새로운 위치 추정 방법을 제안한다. 본 논문의 구성은 다음과 같다. Ⅱ 장에서는 온라인 당구 플랫폼 구현에 필요한 기술과 관련된 기존 연구에 대해서 살펴본다. Ⅲ 장에서는 이미지에서 당구테이블을 검출하고 테이블 내의 당구공 위치를 추정하는 알고리즘을 제안한다. Ⅳ 장에서는 제안한 알고리즘을 실제 당구대에 적용하여 위치 추정 성능을 검증한다. 마지막으로 Ⅴ 장에서는 결론과 더불어 향후 연구 과제에 대해서 논의한다.

Ⅱ. 관련 연구

컴퓨터 비전[3]을 활용한 디지털 당구 플랫폼이 새로운 시장 기회를 제공할 것으로 예측되면서 다양한 관련 연구가 진행되고 있다. 이 장에서는 현재까지 디지털 당구 플랫폼 구현을 위해 진행된 연구 결과와 관련된 기술에 대해서 간단히 정리한다.

이미 1980년 중반에 비전 기술과 퍼지 이론을 활용하여 당구의 일종인 스누커 로봇을 만들려는 프로젝트가 있었다[4]. 당시에는 기술적 한계로 인해서 완벽한 로봇구현에 어려운 점들이 있었지만 2000년대 이후 컴퓨터 비전과 프로세서를 포함한 정보통신 기술의 비약적 발전으로 디지털 당구 플랫폼에 대한 후속 연구들이 많이 진행되었다. Larsen[5]과 Shih[6]는 비전 기술을 활용한 당구 훈련 보조 시스템을 구상했으며 Alves[7]는 증강현실을 활용한 당구 연습 장치를 제안하였다. 디지털 당구 플랫폼을 구성을 위해서는 그림 1과 같은 이미지에서 먼저 공이 움직이는 당구테이블 영역 분리, 영역 내에서 공의 위치 검출(detection), 공의 종류 확인(identification)등의 과정이 필요하다.

OTNBBE_2024_v24n2_29_2_f0001.png 이미지

그림 1. 실시간 이미지

Fig. 1. Real time Image

당구테이블 검출을 위해서 Ling[8]은 색 분할(color segmentation)로 테이블 영역을 검출한 후 휴 변환(Hough transformation)으로 테두리 직선을 구한 후 직선 간의 교차점을 계산하여 최종적으로 당구테이블의 꼭짓점을 검출하였다. Legg[9]의 경우 원본 이미지를 HSL(Hue, Saturation, Lightness) 색공간으로 변환 후 Hue에 대한 색 분할을 통해 테이블을 검출하였다. 당구테이블 내에서 공의 검출은 주로 색 분할[8][9]이나 공의 엣지 검출[10] 방법을 이용한다. 공 종류의 확인은 공의 위치 파악 후에 해당 공의 영상 정보를 이용하여 진행한다. 기존에는 머신 비전 등을 통한 이미지 매칭의 방법을 주로 사용했지만 최근 딥러닝 기반의 CNN (convolutional neural network) 분류기[10][11][12]가 사용되기도 한다.

Gao[10]의 경우 당구공 검출을 위해 이미지 전처리를 통해 배경과 객체를 분리하고 외곽선을 검출하는 방법을 사용했다. 그리고 필터링을 통해서 노이즈 픽셀을 제거하고 최종적으로 남은 외곽선 엣지 픽셀들에 대해서 최소자승법(LS-Fitting)을 통해 공의 위치 정보를 얻는다. 이때 노이즈 제거를 위해서 모든 픽셀들에 대해서 공의 외곽 가능성을 과도검색(exhaustive search)하면서 상대적으로 구현 복잡도가 커지는 문제가 있었다. 본 논문에서는 간단한 상관(correlation)을 이용하여 공검출 복잡도를 줄이는 방법을 제안한다.

Ⅲ. 제안한 당구공 검출 알고리즘

본 논문에서 입력 이미지에 대한 당구테이블과 당구공 검출은 그림 2의 과정을 거친다. 먼저 당구테이블 검출을 통해 입력 이미지는 당구테이블 영역만 포함하는 직사각형 이미지로 변환되고, 이후 당구공 검출 알고리즘을 사용하여 당구공을 인식한다.

OTNBBE_2024_v24n2_29_3_f0001.png 이미지

그림 2. 당구공 검사 블록 다이어그램

Fig. 2. The block diagram of ball detection

1. 당구테이블 검출

당구대 검출은 입력 이미지에서 가장 많은 영역을 차지하는 테이블 색을 검출하여 마스크를 생성한 뒤, 생성된 마스크를 원본 이미지에 적용시켜 당구대 영역만을 추출하는 방식을 사용한다. 원본 이미지를 그림 3 (a)의 HSV(Hue, Saturation, Value) 색 공간으로 변환하여 이미지 중앙 부분의 관심 영역에서 Hue를 기준으로 배경색을 구한다. 배경색에 대한 색 분할, 필터링, 이진화를 거쳐서 그림 3 (b)를 얻는다. 다음으로 그림 3(c)에서 테이블 영역의 외곽선을 검출하고 테이블의 모서리 좌표를 구한다. 구한 모서리 좌표를 이용하여 원본 이미지의 각 픽셀 좌표에 대한 원근변환(homography)을 거치면 최종적으로 그림 3 (d)의 당구대 영역만을 얻게 된다. 이렇게 전 처리된 이미지를 사용하여 당구공 검출을 수행하게 된다.

OTNBBE_2024_v24n2_29_3_f0002.png 이미지

그림 3. 테이블 영역 검출

Fig. 3. Detection of the table area

2. 당구공 위치 검출

전처리를 통해 구한 당구테이블 이미지에서 당구공 외곽선 검출을 위해서 그림자나 조명 변화 같은 외부 잡음에 강인한 Canny edge detection을 사용하였다.

그림 4의 (a)는 검출된 당구테이블에 Canny 연산을 적용해 객체의 외곽선을 검출한 결과이다. 이때 공의 내부 무늬도 외곽선으로 인식했지만 테이블 내의 그림자나 경계부분은 외곽선으로 인식하지 않기 때문에 공을 제외한 배경에는 노이즈가 적었다. 그림 4 (b)는 경계부분의 그림자를 외곽선으로 인식한 경우이다.

OTNBBE_2024_v24n2_29_3_f0003.png 이미지

그림 4. 공의 외곽선 검출 이미지

Fig. 4. Edge Detection Image

Gao[10]는 외곽선 검출 후 improved HT(Hough transform)에 의한 노이즈 픽셀 제거를 반복 수행하면서 LS-fitting으로 공을 순차적으로 찾아나간다. 이때 improved HT의 경우 특정 영역 내의 n개 픽셀에 대해 복잡도 O(n3)의 과도검색(exhaustive search)을 수행하면서 구현이 복잡하고 많은 연산이 요구된다. 이를 해결하기 위해서 본 논문에서는 LS-fitting을 단순한 상관(correlation)으로 대체하고 노이즈 픽셀의 제거를 위해서 그림 5와 같은 상관 템플릿[13]을 사용한다. 템플릿인 원의 지름을 실제 공과 같게 하고 외곽선만을 템플릿으로 사용하면 공의 외곽선이 아닌 노이즈 픽셀들에 대한 상관이 작아지기 때문에 명시적인 필터 없이도 노이즈 제거 효과를 얻는다.

OTNBBE_2024_v24n2_29_3_f0004.png 이미지

그림 5. 상관 템플릿 이미지

Fig. 5. Correlation template image

상관 전의 전처리 과정으로 식 (1)와 식 (2)에 의한 밝기 보정을 진행한다. 입력 이미지 T(x, y)와 상관 템플릿 I(x, y)의 각 픽셀에서 전체 픽셀의 평균값을 빼준다. 이때 W와 H는 각각 이미지의 폭과 높이이다. 평균이 0인 T'(x, y)와 I'(x, y)를 이용해서 식 (3)의 상관을 수행하여 R(x, y)구한다.

\(\begin{align}T^{\prime}\left(x^{\prime}, y^{\prime}\right)=T\left(x^{\prime}, y^{\prime}\right)-\frac{\sum_{x^{\prime \prime} y^{\prime}} T\left(x^{\prime \prime}, y^{\prime \prime}\right)}{W \cdot H}\end{align}\)       (1)

\(\begin{align}I^{\prime}\left(x^{\prime}, y^{\prime}\right)=I\left(x^{\prime}, y^{\prime}\right)-\frac{\sum_{x^{\prime \prime} y^{\prime \prime}} I\left(x^{\prime \prime}, y^{\prime \prime}\right)}{W \cdot H}\end{align}\)       (2)

\(\begin{align}R(x, y)=\sum_{x^{\prime} y^{\prime}}\left(T^{\prime}\left(x^{\prime}, y^{\prime}\right) \cdot I^{\prime}\left(x+x^{\prime}, y+y^{\prime}\right)\right)\end{align}\)       (3)

상관 연산을 통해 얻은 R(x, y) 데이터를 활용하여 그림 6의 데이터 처리 알고리즘에 따라 당구공의 위치를 추정한다. 먼저, 빈 배열 C와 배열 B를 생성하고, 특정 임계값을 설정하여 이를 기준으로 상관이 임계값보다 큰 모든 R(x, y)를 픽셀 정보와 함께 배열 C에 저장한다. 저장된 배열 C를 R(x, y) 내림차순으로 정렬하고, 가장 높은 상관 R(x, y)값을 갖는 C0 픽셀의 좌표를 공의 중심으로 간주하고 배열 B에 추가한다. C0좌표와 배열 C의 각 원소 Ci의 픽셀 좌표 간의 거리를 계산하고, 이 거리가 주어진 공의 지름 D보다 작은 Ci들을 모두 찾아서 C0와 함께 배열 C에서 제거한다. 남은 배열 C에 대해서 내림차순으로 위의 과정을 반복하면서 공의 좌표를 순차적으로 배열 B에 추가한다. 알고리즘은 공을 모두 찾거나 배열 C가 공집합이 되면 중지한다.

OTNBBE_2024_v24n2_29_4_f0001.png 이미지

그림 6. 제안한 알고리즘 플로우 차트

Fig. 6. Flowchart for the proposed algorithm

Ⅳ. 실험 및 결과

본 논문에서 제안한 방법을 실제 이미지에 적용하여 당구공 위치 추정을 수행하였다. 당구대에 16개의 공을 다양하게 배치하여 검출하는 실험을 총 100번 시행하였다. 그림 7은 4 가지 공 배치에 대한 위치 추정 결과 예시이다.

OTNBBE_2024_v24n2_29_4_f0002.png 이미지

그림 7. 공 검출 예시

Fig. 7. Ball detection examples

전체 실험을 통해 표 1에서와 같이 총 1600개의 공에 대해서 1599개를 검출하여 제안한 알고리즘은 검출 정확도 99.9%를 보였다.

표 1. 당구공의 검출 정확도

OTNBBE_2024_v24n2_29_4_t0001.png 이미지

Table 1. Detection accuracy

그림 8 (a)은 공을 검출하지 못한 유일한 공의 배치 이미지이다. 미검출 이미지를 분석한 결과 미 검출된 공과 비슷한 색깔을 공들을 인위적으로 접촉시킨 경우이다. 실제 당구 경기에서는 그림 8 (a)과 같이 공이 배치될 가능성이 매우 희박하다. 그림 8 (b)는 공을 검출은 했지만 위치 추정에서 공의 반지름 정도의 위치 추정 오차를 보였다. 이 경우는 해당하는 공의 색깔이 당구대면과 유사해서 공에 대한 외곽 검출이 어려웠으며 대신 공에 의한 그림자를 공으로 오인하여 공의 반지를 정도의 추정오차가 발생하였다. 이런 추정 오차는 1600개 중에서 4개의 공에서 발생하였다. 위와 같은 예외 상황을 고려한 알고리즘 개선을 통해 위치 추정 정밀도 개선이 가능할 것으로 예상한다. 또한 그림 6의 알고리즘에서 공을 순차적으로 추정해나가기 때문에 공이 많을수록 오류가 날 확률이 높아진다. 본 실험에서 사용한 16개의 공은 당구 종목중에서 최대로 공이 많은 경우에 해당한다. 따라서 다른 당구 종목에서는 더 높은 추정 정확도를 기대할 수 있다.

OTNBBE_2024_v24n2_29_5_f0001.png 이미지

그림 8. 공의 미검출 예시

Fig. 8. Missed detection examples

Ⅴ. 결론

본 연구에서는 Canny 방식으로 공의 외곽선을 검출하고 검출된 외곽선에 대한 간단한 상관만으로 공의 위치를 검출하는 알고리즘을 제안하였다. Canny 방식의 엣지 검출을 통해 조명과 그림자의 영향을 줄일 수 있었고 공 외곽선 모양의 상관 템플릿을 통해 상관을 수행한 후 데이터를 처리해 공을 검출하는 방법으로 만족할 만한 성능을 얻을 수 있었다. 앞으로 공의 밀집도가 높고 유사한 색의 공 검출과 구분이 필요한 경우를 위해 딥러닝 기반의 CNN 분류나 분할 등의 방법을 이용한 추가 연구가 필요하다.

참고문헌

  1. K. Lee, K. Seo, and K. An, "Effects of the Non-Face-To-Face Learning on Health-Related Physical Fitness and Balance in Adolescents According to COVID-19," Exercise Science (ES), Vol.30, No. 2, pp. 229-236, May 2021. DOI: https://doi.org/10.15857/ksep.2021.30.2.229
  2. J. Kang et al., "Korea Golf Industry White Paper 2022", L&J Books.
  3. H. S. Kim, "The implementation of interface between industrial PC and PLC for multi-camera vision systems," Journal of the Korea Academia-Industrial cooperation Society(JKAIS), Vol. 17, No. 1, pp. 453-458, Jan. 2016. DOI: https://doi.org/10.5762/KAIS.2016.17.1.453
  4. K. H. L. Ho, T. Martin and J. Baldwin, "Snooker Robot Player - 20 Years on," 2007 IEEE Symposium on Computational Intelligence and Games, Honolulu, HI, USA, 2007, pp. 1-8. DOI: https://doi.org/10.1109/CIG.2007.368072
  5. L. B. Larsen, M. D. Jensen, and W. K. Vodzi, "Multi modal user interaction in an automatic pool trainer," Proceedings. Fourth IEEE International Conference on Multimodal Interfaces, Pittsburgh, PA, USA, 2002, pp. 361-366. DOI: https://doi.org/10.1109/ICMI.2002.1167022
  6. C. Shih and W. C. Chu, "A Vision Based Interactive Billiard Ball Entertainment System," 2007 First IEEE International Workshop on Digital Game and Intelligent Toy Enhanced Learning (DIGITEL'07), Jhongli, Taiwan, 2007, pp. 200-202. DOI: https://doi.org/10.1109/DIGITEL.2007.7
  7. R. Alves, L. Sousa, and J. Rodrigues, "PoolLiveAid: Augmented reality pool table to assist inexperienced players," The 21st International conference on computer graphics, visualization and computer vision, pp. 184-193, 2013. DOI: https://doi.org/10.1007/s41095-016-0047-3
  8. Y. Ling, S. Li, P. Xu and B. Zhou, "The detection of multi-objective billiards in snooker game video," 2012 Third International Conference on Intelligent Control and Information Processing, Dalian, China, 2012, pp. 594-596. DOI: https://doi.org/10.1109/ICICIP.2012.6391406
  9. P. A. Legg et al., "Intelligent filtering by semantic importance for single-view 3D reconstruction from Snooker video," 2011 18th IEEE International Conference on Image Processing, Brussels, Belgium, 2011, pp. 2385-2388. DOI: https://doi.org/10.1109/ICIP.2011.6116122
  10. J. Gao, Q. He, H. Gao, Z. Zhan, and Z. Wu, "Design of an efficient multi-objective recognition approach for 8-ball billiards vision system," Kuwait journal of science, Vol. 45, No. 1, pp. 39-53, Jan. 2018.
  11. H. Choi, and D. Kang, "Weakly-supervised Semantic Segmentation using Exclusive Multi-Classifier Deep Learning Model," The Journal of the Institute of Internet, Broadcasting and Communication(JIIBC), Vol. 19, No. 6, pp. 227-233, 2019. DOI: https://doi.org/10.7236/JIIBC.2019.19.6.227
  12. W. Baek, and S. Kang,. "Ship Classification Method using Two-Stage CNN Model," The Journal of Korean Institute of Information Technology(JKIIT), Vol. 21, No. 8, pp. 203-210, 2023. DOI: https://doi.org/10.14801/jkiit.2023.21.8.203
  13. S. Nam, and Y. Kim, "Development of Profile Analysis-based Vision System for Parts Inspection," Journal of Korea Institute of Information, Electronics, and Communication Technology, Vol. 5, No. 2, pp. 74-80, 2012. DOI: https://doi.org/10.17661/JKIIECT.2012.5.2.074