2019.07.09 AI

게임과 AI #10 이미지 인식 기술을 이용한 야구 하이라이트 클립 생성

게임 AI에 대한 R&D 연구를 선도해오고 있는 엔씨.

엔씨는 AI센터 내에 비전(Vision) AI랩을 설립, 컴퓨터 비전 기술과 게임 개발 과정의 접점을 찾기 위해 다양한 연구 개발을 진행하고 있습니다.

‘게임과 AI’ 10편에서는 컴퓨터 비전 분야의 이미지 인식 기술에 대해 알아보고, 해당 기술을 활용해 야구 하이라이트 클립을 생성하는 방법과 과정에 대해 살펴보겠습니다.


게임과 AI #10 이미지 인식 기술을 이용한 야구 하이라이트 클립 생성

이미지 인식 기술은 이미지의 정보를 식별하는 기술로서 컴퓨터 비전 분야에서 가장 오랫동안 연구된 기술 중 하나입니다. 오랜 역사만큼 기술의 성숙도도 높은 편이라 보안 감시, 의료, 자율주행, 로봇, 우주 항공 등의 산업 분야뿐만 아니라, 헬스케어, 스마트 홈, 엔터테인먼트 등의 우리 주변 실생활 곳곳에도 많이 활용되고 있습니다.

이미지 인식 기술의 과제는 크게 네 가지로 나눌 수 있습니다. ‘카테고리 분류(Classification)’, ‘위치 추정(Localization)’, ‘객체 검출(Object Detection)’, ‘객체 분할(Instance Segmentation)’ 등이 이에 해당됩니다.

‘카테고리 분류’는 대상 이미지를 정해진 카테고리 후보 중 하나로 분류하는 과제입니다. ‘위치 추정’은 이미지상에서 관심 대상의 위치를 찾는 과제이며, 주로 Bounding Box를 사용하여 그 위치를 표현합니다.

‘객체 검출’은 카테고리 분류와 위치 추정이 혼합된 형태의 과제로서, 활용 목적에 따라 한 종류의 객체(사람 또는 얼굴)만 검출하기도 하며, 여러 종류의 객체(사람, 자동차, 동물 등)를 함께 검출하기도 합니다. ‘객체 분할’은 Bounding Box로 표현했던 객체의 위치를 실제 객체의 모양에 따라 정확하게 추출하는 과제를 의미합니다. (관련 링크)

이미지 인식 기술의 네 가지 과제

이미지 인식 기술의 네 가지 과제.


이미지 인식 기술의 발전

이미지 인식 기술은, 인식하고자 하는 대상을 포함하는 데이터를 수집하고 수집된 데이터를 통해 분류기를 학습하는, 이른바 머신러닝을 통해 발전했습니다. 머신러닝 기반의 이미지 인식 기술은 이미지로부터 특징 정보를 추출하는 단계, 분류 모델을 통해 추출된 특징을 식별하는 단계로 구성되어 있습니다.

HOG(Histogram Of Gradients), SIFT(Scale Invariant Feature Transform), LBP(Local Binary Pattern) 등은 대표적인 이미지 특징 정보이며, SVM(Support Vector Machine), AdaBoost(Adaptive Boosting), Decision Tree 등은 대표적인 분류 모델입니다.

최근 대세를 이루고 있는 딥러닝의 신경망(Neural Network) 기반 분류 모델은, 불과 몇 년 전까지만 해도 극소 함정(Local Minimum), 과적합(overfitting) 등의 한계 때문에 SVM 등의 다른 분류 모델에 비해 크게 주목받지 못했습니다. 딥러닝 기술이 다른 머신러닝 기법보다 높은 성능을 보이며 크게 발전할 수 있게 된 이유는 무엇일까요?

이미지 인식 기술의 기반이 되는 딥러닝 기술을 포함하여 머신러닝, 더 나아가 인공지능이 급격히 발전할 수 있었던 요인으로는 ‘신경망 모델의 발전’, ‘컴퓨팅 성능 향상’, ‘빅데이터의 등장과 활용’, 이렇게 세 가지를 들 수 있습니다.

딥러닝 기술의 발전 요인.

딥러닝 기술의 발전 요인.


첫 번째, 신경망 모델의 암흑기에도 불구하고 AI 분야 연구자들은 꾸준한 연구를 통해 신경망 모델이 가지는 문제를 해결할 방안을 찾아냈습니다. 특히 CNN(Convolutional Neural Network) 모델은 머신러닝의 ‘특징 추출’, ‘분류’의 두 단계를 ‘특징 추출과 분류’의 한 단계로 통합했습니다. 다시 말해, 머신러닝의 성능을 크게 좌우했던 특징 추출 문제조차 사람의 예측이 아닌, 데이터를 이용한 학습을 통해 접근하게 된 것이죠.

두 번째, 2000년대 초반에는 450MHz CPU, 32MB RAM, 4GB HDD 사양만 되어도 최고 사양의 컴퓨터라는 소리를 들을 수 있었습니다. 하지만 지금은 4.5GHz CPU, 32GB RAM, 4TB HDD 사양의 컴퓨터가 보급되고 있습니다. 특히 GPU의 등장과 분산처리 환경의 발전은 동시에 많은 일을 할 수 있는 강력한 병렬 처리를 지원하게 되었습니다. 이로 인해 예전에는 수일, 수개월이 걸렸던 학습 과정을 지금은 수시간, 수분 단위로 줄일 수 있게 되었습니다.

세 번째, 과거에는 머신러닝 기술의 가장 중요한 요소인 데이터를 수집하기 위해서 디지털 카메라를 들고 다니며 필요한 이미지를 직접 촬영하러 다녀야 했지만, 지금은 앉은 자리에서 검색을 통해 하루에도 수백 장 혹은 그 이상의 이미지 데이터를 획득할 수 있습니다. 이른바 빅데이터의 시대가 된 것이죠. 다양한 분야의 정보를 가진 대용량의 빅데이터를 학습에 사용함으로써 분류 모델은 과거처럼 정해진 분야에 한정되지 않고, 실제 환경에 일반적으로 적용할 수 있는 수준으로 발전할 수 있었습니다.


야구와 이미지 인식 기술의 만남

야구를 좋아하는 올드팬 분들은 어릴 때 전날 프로야구 경기 결과를 확인하기 위해서 뉴스나 신문을 기다린 경험이 한번쯤 있으실 겁니다. 당시에는 직접 야구장에 가지 않으면 야구 경기를 볼 수 없었고, 중계 방송도 인기 구단의 경기나 특별한 날에만 간혹 볼 수 있었습니다. 그래서 내가 응원하는 팀의 결과는 그날 저녁 뉴스나 다음 날 신문을 통해서만 확인할 수 있었죠.

하지만 지금은 다른 세상이 되었습니다. 모바일 기기 보급 확대, 데이터 통신 고속화, 미디어 플랫폼 다양화 등의 기술 발전은 야구 팬들의 야구 경기에 대한 접근성을 크게 향상시켜, 누구나 경기가 있는 날이면 시간과 장소에 구애받지 않고 실시간으로 야구 경기를 볼 수 있고, 경기가 끝난 이후에도 지난 경기의 동영상을 언제 어디서나 쉽게 찾아볼 수 있게 됐죠.

이렇듯 기술의 발전으로 좋아하는 야구를 자유롭게 즐길 수 있게 되었지만 현대인들은 바쁜 일상 속에서 3시간이 넘는 야구 중계에만 집중하는 것은 어렵습니다. 그래서 일부 플랫폼 업체들은 경기 종료 후에 해당 경기의 주요 장면과 요약을 담은 하이라이트 클립을 만들어 제공하고 있습니다. (관련 링크1, 관련 링크2).

하지만 하이라이트 클립을 만들기 위해서는 전문가가 직접 하이라이트 구간을 선정하여 편집하는 과정이 필요하고, 이러한 수동적 방식은 많은 양의 콘텐츠를 처리하기에는 시간적, 비용적 소모가 클 수밖에 없습니다.

엔씨에서는 이렇듯 꼭 필요하지만 접근하기 쉽지 않은 기술들에 대해 여러 가지 프로젝트를 진행해 왔는데요. 이번에는 그 중에서도 이미지 인식 기술을 활용한 게임이 아닌 야구 하이라이트 클립을 자동으로 생성하는 기술에 대해 소개해보려 합니다.


태깅(tagging)과 검색(retrieval)

이미지 인식 기술을 활용하여 어떻게 야구 하이라이트 클립을 생성할 수 있을까요?

이 프로젝트에서는 태깅(tagging) 및 검색(retrieval) 방법을 통해 문제에 접근하였습니다. 쉽게 설명하면, 이미지 인식 기술을 통해 야구 중계 동영상의 각 시점에 대한 정보를 기록하고, 기록된 정보 하이라이트 검색 키워드를 통해 하이라이트 구간의 시작과 끝 지점을 찾는 방법입니다.

먼저, 야구는 경기 진행에 따라 여러 가지 상황들이 변화하는 스포츠입니다. 이닝이 1회부터 9회까지 진행되며, 투수와 타자의 대결 결과에 따라 볼, 스트라이크, 아웃 등의 볼카운트와 팀의 점수도 변화합니다. 또한, 마운드에 투수, 타석에 타자, 누상에 주자, 마운드에 투수가 현재까지 던진 투구 수 등도 상황을 설명하는 중요한 정보입니다.

야구 경기에서 상황의 변화는 경기의 흐름을 가장 잘 표현할 수 있는 요소이기 때문에, 경기에서 발생한 이벤트에 따라 그 상황을 순차적으로 기록하여 경기 로그 정보를 생성합니다. 우리가 야구 중계 동영상과 더불어 많이 보는 문자 중계도 이렇게 기록된 경기 로그 정보를 기반으로 생성됩니다.

경기 로그 예시.

경기 로그 예시.

1. 검색(retrieval)

먼저, 하이라이트 클립 생성을 위한 ‘태깅’과 ‘검색’의 과정 중 검색 과정에 대해 설명하려 합니다. 검색 과정은 찾고자 하는 하이라이트 이벤트를 키워드 입력으로 받아 해당 구간을 야구 중계 동영상으로부터 찾아내는 과정입니다.

검색 키워드는 ‘이닝, 볼카운트, 주자, 타자, 투수, 이벤트’ 등의 필드로 구성했다고 가정하겠습니다. 각 필드는 단독으로 사용하여 검색 범위를 광범위하게 지정할 수도 있고, 서로 조합하여 검색 범위를 한정할 수도 있습니다. 예를 들어 검색 키워드를 {이벤트: 홈런}으로 입력하여 해당 경기의 모든 홈런 장면 구간을 찾을 수 있으며, {이닝: 6T, 타자: 나성범, 이벤트: 홈런}으로 입력하여 여러 홈런 장면 중 특정 장면 구간을 한정해 찾을 수도 있습니다.

검색 키워드가 입력되면 경기 로그 정보로부터 키워드와 일치하는 상황을 아래의 예시 그림처럼 모두 찾아서 정리합니다. 하지만, 경기 로그에는 절대 시간 정보가 포함되어 있지 않고, 포함되어 있다 하더라도 그 정보가 부정확하기 때문에 찾아낸 각 상황에 대한 시점을 특정하기가 어렵습니다. 그렇기 때문에 하이라이트 클립 생성을 위해 야구 중계 동영상의 어떤 구간을 잘라내야 할지에 대한 정보가 추가로 필요합니다.

검색 키워드와 대응 상황 예시.

검색 키워드와 대응 상황 예시.

2. 태깅(tagging)

‘태깅’ 과정은 야구 중계 동영상의 각 시점이 어떤 상황인지를 파악하고 기록하는 작업입니다. 검색 과정에 앞서 야구 중계 동영상에 대해 태그 정보를 만들어 놓으면, 경기 로그에서 찾은 각 상황이 야구 중계 동영상에서 어떤 시점에 발생했는지를 알 수 있습니다.

야구 중계 동영상 태깅 예시.

야구 중계 동영상 태깅 예시.


그렇다면 태그 정보는 어떻게 만들 수 있을까요?

바로 중계 정보 자막을 활용하는 것입니다. 중계 정보 자막은 야구 중계 동영상에서 방송사가 송출하는 경기 정보로서 방송사에 따라 자막의 위치나 디자인이 다를 수 있습니다. 하지만 이닝, 점수, 볼카운트, 주자상황, 투구 수 등의 중요한 상황 정보를 대부분 포함하고 있습니다. 따라서, 이미지에 나타나는 자막을 인식하면 해당 이미지의 상황 정보를 파악할 수 있습니다.

다만, 중계 정보 자막이 야구 중계 동영상에 항상 나타나 있지는 않기 때문에 이미지에서 중계 정보 자막 유무를 먼저 판별하고 중계 정보 자막이 있는 경우에만 상황 정보를 인식합니다. 야구 중계 동영상의 모든 프레임 또는 주기적으로 샘플링 된 프레임에 대해 중계 정보 자막의 정보 검출 및 인식 결과를 얻으면 동영상의 각 상황들이 시간 순서에 따라 기록되고 태깅 과정이 완료됩니다.

방송사 별 중계 정보 자막 예시(2018년).

방송사 별 중계 정보 자막 예시(2018년).

중계 정보 자막 유무 예시.

중계 정보 자막 유무 예시.

3. 하이라이트 클립 생성 과정

앞서 설명드린 태깅과 검색을 활용하여 하이라이트 클립을 생성 과정을 정리하면 다음과 같습니다.

우선, 찾고자 하는 하이라이트 검색 키워드에 대해 경기 로그 정보로부터 검색 키워드에 대응하는 상황 정보를 찾습니다. 찾아낸 상황 정보에 대해 동영상 태그 정보로부터 해당 구간의 시작과 종료 시점 정보를 찾고 그 구간에 대한 하이라이트 클립 결과물을 생성합니다.

예를 들어 하이라이트 검색 키워드 {이벤트: 득점}에 대해 {이닝: 3B, 아웃: 2아웃, 주자: 2루, 타자: 강백호, 투수: 박세웅, 이벤트: 득점, 투구 수: 50개}의 상황이 발견되었다고 가정하겠습니다. 이 상황 정보에 의하면 해당 하이라이트는 3회말 타자 강백호가 투수 박세웅의 50번째 투구를 상대할 때 일어난 하이라이트입니다.

따라서, 50번째 투구 장면과 이후 벌어지는 장면을 하이라이트 구간에 포함하기 위해, 하이라이트의 시작 시점은 50번째 투구를 던지기 전, 즉, 태그 정보의 투구 수가 49인 지점의 시작 시점으로 결정하고, 종료 시점은 51번째 투구를 던지기 전, 즉, 태그 정보의 투구 수가 50인 지점의 마지막 시점으로 결정합니다.

동영상 태그 정보의 예시.

동영상 태그 정보의 예시.


위 그림은 동영상 태그 정보의 예시입니다. 각 행은 하나의 상황 정보를 표현합니다. 각각의 값은 왼쪽부터 프레임 번호, 원정 팀 점수, 홈 팀 점수, 이닝, 볼, 스트라이크, 아웃, 주자, 투구 수 정보를 의미합니다.

50번째 투구 장면을 포함하기 위해 시작 시점을 투구 수 49의 시작 지점인 106320번째 프레임으로 결정하고 종료 시점을 투구 수 50의 마지막 지점인 109170번째 프레임으로 결정합니다. 해당 구간을 참고하여 생성한 하이라이트 클립은 아래와 같습니다.

하이라이트 클립 생성 결과. (출처: SBS Sports, 2018)


하이라이트 구간 정교화

위의 생성된 하이라이트 클립을 보니 필요한 장면은 포함되어 있는데 앞뒤로 불필요한 장면도 많이 포함되어 있습니다. 시청자에게 불편함이 없는 하이라이트 클립을 제공하기 위해서는 보다 정교하게 분할 구간을 결정해야 합니다. 장면 전환 검출(Scene Change Detection) 기술과 장면 분류(Scene Classification) 기술은 하이라이트 분할 구간을 정교화 하는데 큰 역할을 할 수 있습니다.

1. 장면 전환 검출 기술

먼저, 장면 전환 검출이란 동영상의 재생 과정에서 장면이 갑자기 전환되는 시점을 찾는 것으로 야구 중계 동영상에서는 중계 방송으로 송출되는 화면을 촬영하는 카메라가 바뀌는 순간을 찾는 것과 동일합니다.

장면 전환 검출을 위해서는 먼저 동영상의 각 프레임으로부터 특징 정보량을 추출하는데 일반적으로 색상 정보, 엣지(edge) 정보를 많이 사용합니다. 그리고 인접한 프레임 간의 특징 정보량의 차이를 구합니다. 일반적으로 동일한 장면 내에서는 특징 정보량의 차이가 크지 않지만 장면이 전환되면 이전과 많이 다른 장면이 비교되기 때문에 특징 정보량의 차이가 크게 나타납니다.

아래 그림의 그래프는 한 야구 중계 동영상에서 프레임 번호에 따른 특징 정보량의 차이를 나타낸 것입니다. 녹색 세로 점선은 실제 장면이 전환되는 순간을 나타낸 것이며, 해당 순간 마다 특징 정보량의 차이가 다른 부분에 비해 크게 나타나는 것을 볼 수 있습니다. 차이 값에 대해 적색 가로 실선과 같은 기준 값을 설정하고, 기준 값보다 높은 차이 값이 나타나는 지점 검출을 통해 장면 전환 시점을 확인할 수 있습니다.

장면 전환 검출 및 프레임 번호에 따른 특징 정보량 변화 예시 1

장면 전환 검출 및 프레임 번호에 따른 특징 정보량 변화 예시 2

장면 전환 검출 및 프레임 번호에 따른 특징 정보량 변화 예시.

2. 장면 분류 기술

장면 분류란 서두에서 소개 드린 이미지 인식 분야 중 ‘카테고리 분류’ 기술을 활용하여 야구 중계 동영상에서 보여지는 장면이 어떤 장면인지를 구분하는 것입니다.

장면 종류를 분류하기 위한 모델은 한 프레임을 입력 받고 해당 프레임이 어떤 장면인지 판단할 수 있도록 설계하고 학습합니다. 장면의 종류는 아래와 같이 ‘투구’, ‘클로즈업’, ‘필드’ 등의 야구 경기와 관련된 장면과 ‘광고’, ‘해설자막’, ‘관중석’, ‘더그아웃(dugout)’ 등의 경기 외적인 부분으로 나눌 수 있습니다.

야구 중계 장면 종류 예시.

야구 중계 장면 종류 예시.


일반적으로 야구 경기에서 하이라이트 클립으로 생성하고자 하는 이벤트들은 대부분 투수가 공을 던지는 장면에서 시작합니다. 따라서, 동영상 태그 정보를 이용해 찾은 하이라이트 구간 안에서 투구 장면을 찾고 그 지점을 구간의 시작과 종료 시점으로 선택하면 보다 정교한 구간 분할이 가능합니다.

먼저, 동영상 태그 정보로 찾은 구간의 동영상에 대해 장면 전환을 검출하여 이를 여러 장면 구간으로 나눕니다. 다음, 각 장면 구간에 포함되는 프레임들에 대해 장면 분류 모델을 적용하고 결과 투표(voting)를 통해 각 장면 구간의 종류를 결정합니다. 이 결과를 활용하여 하이라이트에 대응하는 투구 장면 이전에 포함된 장면들과, 하이라이트 이후 나타나는 투구 장면과 그 뒤의 장면들을 삭제하면 보다 정교한 하이라이트 클립이 생성됩니다.

앞서 동영상 태그 정보를 이용하여 만든 하이라이트 클립에 대해 장면 전환 검출과 장면 분류를 적용하여 개선한 하이라이트 클립은 아래와 같습니다. 더 깔끔하고 정교해진 게 느껴지시나요?

정교화된 하이라이트 클립 생성 결과. (출처: SBS Sports, 2018)


하이라이트 클립 생성 기술의 활용

엔씨에서는 AI 기반의 야구 정보 앱 ‘페이지(PAIGE)’를 서비스하고 있습니다. 올 하반기에는 페이지에서 야구와 관련된 다양하고 재미있는 소식에 더해 자동으로 추출된 실시간 경기 하이라이트 클립도 감상하실 수 있습니다.

진짜 야구팬들의 놀이터 - 페이지(PAIGE).

진짜 야구팬들의 놀이터 – 페이지(PAIGE).


태깅과 검색 기반의 하이라이트 추출 기술은 앞서 소개 드린 한 경기의 하이라이트 클립 생성 시스템뿐만 아니라 경기 동영상 검색 시스템에도 활용할 수 있습니다. 아래 그림은 그 예시를 설명하는 것입니다. 검색하고자 하는 동영상 내용을 입력하면 중간 단계에서 입력한 내용에 대한 검색 키워드를 추출하고, 저장된 동영상 태깅 정보를 활용하여 검색 키워드에 대응하는 동영상을 불러올 수 있습니다.

태깅과 검색을 활용한 동영상 검색 시스템 예시.

태깅과 검색을 활용한 동영상 검색 시스템 예시.


하이라이트 추출 기술의 미래

하나의 이벤트에 대한 하이라이트 클립 생성을 넘어 여러 하이라이트들을 요약하여 한 경기를 대표할 수 있는 이른바 ‘컨덴스드(Condensed) 클립’ 생성을 위해서는 보다 더 정교한 구간 분할이 필요합니다. 이를 위해서는 동일한 장면 내에서도 불필요한 부분을 삭제한 최적의 구간을 찾아야 합니다.

한 예로, 투구 모션을 인식하는 기술을 활용하여 아래와 같이 투구를 위한 준비 동작 과정은 생략하고 실제 투구가 발생하는 시점을 구간 시작 지점으로 설정할 수 있습니다.

투구 모션 인식을 이용한 하이라이트 구간 시작점 검출 전과 후. (출처: MBC Sports, 2019)

태깅과 검색 기반의 하이라이트 추출 기술은 별도로 원본 동영상에서 어떤 부분이 하이라이트인지 판단하는 과정을 통해 하이라이트 검색 키워드를 지정해줘야 하는 한계점이 있습니다. 또한 동영상 외에 경기 로그 정보도 추가로 필요합니다.

이러한 방식의 한계점을 극복하고 궁극적인 하이라이트 추출을 하기 위해서는 순수하게 영상 정보만을 활용하여 하이라이트 구간을 판단하고 이를 잘라내든 요약하든 원하는 형태로 출력할 수 있어야 합니다.

“Temporal Event(Action) Localization (관련 링크1, 관련 링크2)”, “Video Highlight Detection(관련 링크1, 관련 링크2)” 등의 주제는 궁극적인 하이라이트 추출에 다가가는 연구 분야 입니다. 앞으로 연구 진행을 통해 아래와 같이 경기 로그에서는 찾을 수 없는 흥미로운 장면들에 대해 하이라이트 클립을 생성하는 것을 목표로 하고 있습니다.

흥미로운 하이라이트 클립 예시.

흥미로운 하이라이트 클립 예시.


Video Understanding의 중요성

미래에 비전 기술을 통해 만들고자 하는 것은 컴퓨터가 사람처럼 시각 정보를 처리하고 이를 기반으로 판단할 수 있는 방법과 장치일 것입니다. 지금보다 높은 수준의 비전 기술을 확보하기 위해서는 이미지 처리 보다는 비디오 처리가 중요할 것이고, 인식(Recognition)의 문제 보다는 이해(Understanding)의 문제를 푸는 것이 중요할 것입니다.

Action Recognition, Video Question Answering, Video Captioning, Video Summarization 등의 연구 분야는 Video Understanding 기술을 완성하기 위한 중요한 요소 기술이며, AI Center Vision AI Lab Understanding팀에서 연구를 진행하고 있습니다.

다음에 기회가 된다면 더 높은 수준의 비전 기술을 연구하고 아래와 같은 재미있는 비디오 문제를 풀 수 있는 방법을 소개하도록 하겠습니다.


1. Video Question Answering

– 예/아니오 질문: 타자는 홈런을 쳤습니까? (정답: 아니오)

Video Question Answering 예시. (출처: SPOTV2)

– 카운팅 질문: 투수는 몇 개의 공을 던졌습니까? (정답: 15개)

Video Question Answering 예시. (출처: SBS Sports)


– 분류 질문: 타격의 결과는 무엇입니까? (정답: 삼중살)

Video Question Answering 예시. (출처: YTN)


2. Video Captioning

– 정답: 엔씨 타자 나성범이 두산 투수 장원준으로부터 홈런을 치다.

Video Captioning 예시. (출처: MBC)


이영현

이영현

AI Center Vision AI Lab Recognition팀.
영상 처리와 영상 인식 기술을 활용하여
사람들을 도우며 즐거움과 재미도 함께 줄 수 있는
물건을 만들어가고 있습니다.

TOP