본문 바로가기

딥러닝 & 머신러닝/프로젝트

YasuoNet : 딥러닝을 활용한 리그 오브 레전드 경기 영상 하이라이트 추출

 

이 연구는 작년 8월 "2020년도 AI 양재 허브 인공지능 실무자 양성 과정"에서 진행했던 프로젝트였으며, 서울특별시의 지원을 받았습니다. 이번 게시물은 해당 프로젝트의 연장선 상에서 작성한 논문을 좀 더 보기 편하게 재작성하고 내용을 추가한 것입니다. 해당 논문의 제목은 "3D CNN과 Bi-LSTM을 이용한 리그 오브 레전드 경기 영상 하이라이트 추출 (Highlight Extraction of League of Legends Game Video using 3D CNN and Bi-LSTM)"이며, "제 22회 전자정보통신 학술대회"에 제출된 바 있습니다.


0. 초록

 

최근 영상 스트리밍 시장의 규모가 증가함에 따라 시청자들의 서비스 이용 시간도 날이 갈수록 길어지고 있습니다. 그런데 게임 영상의 경우 전체 영상 길이에 비해 유의미한 하이라이트 부분의 비중이 매우 작은 편입니다.

 

이에 본 연구에서는 편리하고 일관성 있게 게임 영상의 하이라이트만을 추출하기 위한 딥러닝 기반 하이라이트 추출 모델을 제안합니다. 제안하는 모델은 영상의 순간적인 상황을 파악하기 위한 3D CNN[1]과 일정 시간 동안의 맥락을 파악하기 위한 Bi-LSTM[2]을 함께 사용하였습니다. 모델의 학습과 평가는 리그 오브 레전드 경기 영상을 대상으로 하였고, 다른 3개의 모델과 함께 비교 평가했습니다. 그 결과, 3D CNN과 Bi-LSTM을 함께 사용한 모델이 가장 우수한 성능을 나타내는 것을 확인했습니다.

 

1. 서론

 

최근 Youtube, Afreeca TV, Twitch 등의 개인방송 플랫폼이 발전함에 따라, 게임 동영상 스트리밍 시장 또한 날로 성장하고 있어 일반인들의 게임 동영상 시청 시간이 기하급수적으로 증가하고 있습니다. 한편 게임 영상의 경우 중요한 하이라이트 부분보다 특별한 의미가 없는 상황이 훨씬 많습니다. 리그 오브 레전드(League of Legends, 이하 LoL)의 경우 한 경기의 소요 시간이 약 40분 정도로 매우 긴 편이고, 이 중 하이라이트라고 할 수 있는 부분은 전체의 약 10%에 불과합니다.

 

따라서 시청자들의 불필요한 시청 시간을 줄이기 위해 경기 주최 측이나 개인 편집자들은 원본 영상의 하이라이트만 편집해서 제공하기도 합니다. 그러나 이 경우 편집자의 많은 시간과 노력이 투입되고, 개인의 주관이 작용하여 편집의 일관성이 부족해집니다. 따라서 본 연구에서는 딥러닝을 사용하여 게임 원본 영상에서 하이라이트를 추출하는 모델을 제안하여, 하이라이트 영상 제작의 편의성과 일관성을 제공하고자 합니다.

 

본 게시글에서는 먼저 데이터 수집 및 전처리 방법에 대해 설명합니다. 학습 및 평가 대상으로 LoL 게임 영상을 채택했는데, 그 이유는 원본 영상에 대해 이미 잘 편집된 하이라이트 영상의 수가 다른 게임에 비해 많아 지도 학습에 적합하다고 판단했기 때문입니다. 또한 하이라이트 장면에서 두드러지는 화면 효과와 해설자들의 목소리 톤 변화 등을 활용하기 위해 영상의 비디오와 오디오 정보를 모두 사용하였습니다.

 

그 다음으로 본 연구에서 제안하는 모델의 구조를 설명합니다. 우리는 3D CNN(Convolutional Neural Network) 모델이 영상의 짧은 구간을 처리하는데 효과적일 것이고, Bi-LSTM(Bidirectional Long Short-Term Memory) 모델은 조금 더 긴 구간의 맥락을 파악하는데 도움이 될 것이라고 판단했습니다. 따라서 이 두 모델을 조합한 모델을 제안하고자 하며, 비교 평가를 위해 총 4개의 모델을 설계했습니다.

 

그 다음 장에서는 앞서 제시한 4가지 모델의 실제 실험 결과를 살펴보고 각 모델의 특성과 성능 차이에 대해 설명합니다. 최종적으로 우리가 제안하는 모델의 실제 예측 결과를 그래프와 샘플링을 통해 좀 더 구체적으로 분석합니다. 마지막 장에서는 본 연구의 결론을 도출하고 한계점과 향후 연구 방향을 정리합니다.

 

2. 관련 연구

 

딥러닝을 활용하여 원본 영상의 하이라이트를 추출하는 연구는 이전부터 많이 이루어졌습니다.

 

S. H. Yoon 등은 이미지와 음성 데이터를 기반으로 3D CNN과 Bi-LSTM, 오토 인코더를 활용해서 LoL 영상의 하이라이트를 추출하는 모델을 제안했습니다[3]. E. Y. Kim 등은 음성과 스트리밍 서비스의 채팅 데이터를 기반으로 LSTM과 Bi-LSTM을 활용해서 LoL 영상 및 전통 스포츠 경기 영상의 하이라이트를 예측하는 모델을 제시했습니다[4]. J. T. Hsieh 등은 이미지 데이터만을 기반으로 3D CNN, Inception-V3, SqueezeNet, LSTM 등을 활용하여 일반 동영상의 하이라이트를 추출하는 모델을 제안했습니다[5].

 

우리는 하이라이트 추출 모델의 성능 향상을 위해 영상의 비디오 및 오디오 데이터를 모두 활용했고 3D CNN과 Bi-LSTM을 함께 적용했습니다. 또한 이미 제작된 하이라이트 영상을 이용하여 지도 학습을 진행할 수 있었습니다. 이러한 점이 본 연구의 차별점이라고 할 수 있겠습니다.

 

3. 본론

 

A. 데이터 수집 및 전처리

 

자체 제작한 크롤러를 이용하여 ‘2020 LoL 챔피언스 코리아 2020 스프링’의 원본 영상과 하이라이트 영상 240쌍을 ‘네이버 스포츠’에서 수집했습니다. 수집한 영상들에 대해 두 종류의 영상을 비교하며 원본 영상에서 정확히 어느 구간이 하이라이트에 해당하는지 확인하는 코드를 통해 하이라이트 구간을 찾아낸 후, 이 작업이 원활히 진행된 120쌍의 영상만을 데이터 셋으로 활용했습니다.

 

 

그림 1. 데이터 전처리 시각화

 

영상 데이터는 용량이 크고 연속적 정보를 담고 있기 때문에 이를 고려한 전처리 방식이 필요합니다. 본 연구에서는 전체 영상을 3초 단위의 작은 세그먼트로 잘라서 처리했습니다. 한 세그먼트에서 영상을 0.5초마다 캡처한 이미지 6장을 묶어서 3D 형태의 비디오 데이터를 구성했습니다. 이때 각 이미지의 크기는 64×64로 조절하였으며, RGB 3개의 채널로 구성됩니다.

 

또한, 이 세그먼트의 오디오 데이터에 MFCC(Mel Frequency Cepstral Coefficient) 필터를 적용하여 하나의 2D 이미지로 추출하였고, 영상이 하이라이트인지 아닌지를 구분하기 위한 레이블 (0: 일반 장면, 1: 하이라이트 장면) 데이터를 추가하였습니다. 이렇게 하나의 세그먼트에 대한 비디오, 오디오, 레이블 세 종류의 데이터를 묶어서 피클 형태로 저장하고, 각 피클 데이터를 하나의 입력값으로 사용했습니다. [그림 1]은 위 과정을 시각화 한 것입니다.

 

B. 모델 설계

 

본 연구에서 사용한 기법은 지도 학습의 분류 모델입니다. 즉 비디오 이미지와 오디오 MFCC 이미지를 사용하여 0 또는 1로 하이라이트를 예측하고자 합니다.

 

표 1. 비교 평가할 4개의 모델

 

[표 1]은 이번 연구에서 설계한 총 4가지의 모델을 나타냅니다.

 

모델 1은 비디오의 3D 데이터와 오디오의 2D 데이터를 각각 기본적인 3D, 2D 컨볼루션 레이어를 통과시킨 뒤 이를 앙상블 (Ensemble)하는 모델입니다. 한 번에 한 개의 세그먼트만을 볼 수 있기 때문에 긴 흐름의 맥락을 파악하지 못하는 단점이 있을 것으로 보입니다.

 

모델 2는 모델 1과 마찬가지로 비디오의 3D 데이터는 기본적인 3D 컨볼루션 레이어에 통과시키되, 오디오의 2D 데이터는 pre-trained 2D CNN 모델을 통과시키고 이를 앙상블하는 모델입니다. 이때 사용한 2D CNN 모델은 VGG16[6]입니다.

 

모델 3은 하이라이트 예측을 일정 시간 동안의 영상 세그먼트 단위가 아닌, 각각의 프레임 단위로 하였을 때의 결과를 확인하기 위해 사용된 모델입니다. 즉, 이 모델은 이미지 한 장 한 장이 하이라이트인지 아닌지를 예측합니다. 따라서 이 모델에서는 비디오와 오디오의 2D 데이터가 각각 다른 pre-trained 2D CNN 모델에 입력됩니다. 이때 비디오에 대해 Xception[7]모델을, 오디오에 대해 VGG16 모델을 각각 사용했습니다. 그리고 CNN 모델을 통과한 각 이미지들은 LSTM 레이어를 거친 뒤 앙상블됩니다.

 

 

그림 2. 모델 4의 신경망 구조

 

모델 4는 모델 1을 발전시킨 형태로서, 더 많은 세그먼트 데이터와 Bi-LSTM을 사용합니다. 예측하고자 하는 세그먼트에 앞뒤로 각각 2개의 세그먼트를 더 붙여서 총 5개의 세그먼트를 하나의 입력 데이터로 구성하고, 각 세그먼트가 CNN 계층을 통과하여 출력된 값에 Bi-LSTM을 적용하여 하이라이트를 예측합니다. 이를 통해 더 긴 시간 동안의 영상의 맥락을 파악할 수 있을 것으로 기대합니다. [그림 2]는 모델 4의 신경망 구조를 나타냅니다.

 

그림 3. 야스오(Yasuo)

 

여담이지만, 우리 팀은 모델 4를 "YasuoNet"으로 칭했습니다. [그림 3]의 야스오(Yasuo)는 조작하는 사람의 실력에 따라 최고의 하이라이트를 만들어내고 경기를 승리로 이끌어갈 수 있는 능력을 가진 캐릭터(챔피언)입니다. 또한 대중에게 인지도가 높은 캐릭터이기도 해서, 야스오의 이름을 딴 신경망 모델을 만들고자 모델 이름을 YasuoNet으로 지었습니다. 참고로, YasuoNet은 우리의 팀명이기도 했습니다.

 

4. 실험 및 평가

 

A . 실험 조건

 

운이 좋게도, 팀원이 재학 중인 학교에서 대여한 서버 2대와 AI 양재 허브 측에서 제공해주신 서버 1대를 사용할 수 있었습니다. 서버 1과 2는 GPU : nVidia Tesla V100 32G, RAM : 252GB 였으며, 서버 3은 GPU : nVidia Tesla T4 16G, RAM : 26GB 였습니다. 이외에도, 팀원들 개인적으로 구글 코랩(Google Colab)을 사용하기도 했습니다. 사용한 언어는 Python, 사용한 딥러닝 프레임워크는 Keras와 Tensorflow였습니다.

 

B. 모델 학습

 

전체 데이터 셋을 6:2:2의 비율로 나누고 각각 학습, 검증 및 테스트에 사용했습니다. 데이터는 레이블 0과 1의 비율이 9:1로 불균형 문제를 갖고 있어서 모델 학습 시에 클래스 가중치를 1:4로 적용했고, 오버 피팅의 억제를 위해 드롭 아웃(p=0.3)을 추가했습니다. 모델 4를 학습할 때는 이미 학습된 모델 1의 3D, 2D CNN 계층을 활용하여 전이 학습(Transfer Learning)을 진행했습니다. 이를 통해 매우 짧은 시간 동안에 높은 성능의 모델을 얻을 수 있었습니다.

 

C. 모델 평가

 

표 2. 모델 별 평가 결과

 

[표 2]는 해당 모델의 검증 데이터 셋과 테스트 데이터 셋에 대한 accuracy, precision, recall, f1 score를 나타냅니다.

 

먼저, 모델 1과 모델 3을 비교하면 모델 1의 성능이 압도적으로 앞서는 것을 알 수 있습니다. 즉, 2D CNN 기반의 모델에 비해 3D CNN 기반의 모델이 게임 영상 분류에 더 적합하다고 할 수 있습니다.

 

다음으로, 모델 1과 모델 4를 비교하면 모델 4의 성능이 전반적으로 모두 좋아진 것을 볼 수 있습니다. precision과 recall 모두 높게 나타났고, 이 둘을 종합적으로 볼 수 있는 f1 score 또한 모델 4 쪽이 월등히 높게 나타났습니다.

 

따라서 3D CNN과 Bi-LSTM을 모두 사용했을 때 게임 영상 하이라이트 추출 성능이 전반적으로 대폭 향상되는 것을 알 수 있습니다.

 

D. 예측 결과 시각화

 

그림 4. 하이라이트 예측 결과 비교 (좌: 모델 1, 우: 모델 4)

 

[그림4]는 모델 1과 모델 4를 이용해 샘플 경기의 하이라이트 예측 결과를 시각화한 그래프입니다.

 

X 값은 시간(초), Y=1은 하이라이트 장면, Y=0은 일반 장면을 의미합니다. 파란색 선은 실제 하이라이트를 의미하고, 주황색 선은 모델이 예측한 하이라이트를 의미합니다. 각 그래프의 상단에 있는 제목은 경기 일시와 두 팀명, 경기의 세트 수를 의미합니다. 예를 들어 맨 위 그래프는 2020년 2월 5일, T1 팀과 DWG 팀 경기의 2번째 세트에 관한 것입니다.

 

두 모델 모두 실제 하이라이트에 매우 근접하게 예측 결과를 출력하고 있는 것을 볼 수 있습니다. 또한 두 그래프를 비교해보면, 모델 4가 모델 1에 비해 더욱 정확하고 안정적으로 하이라이트를 예측하는 것을 확인할 수 있습니다. 특히 짧은 시간 동안 0과 1을 반복해서 예측하는 상황이 현저히 줄어들었는데, 이것은 모델 4가 Bi-LSTM을 통해 더 긴 시간 동안의 맥락을 파악할 수 있기 때문으로 보입니다.

 

E. 주요 장면 검출 평가

 

그림 5. 하이라이트 예측

 

[그림5]는 다대다 전투, 일대다 전투, 몬스터 처치 등 하이라이트에 해당하는 부분을 잘 검출해낸 모습을 보여줍니다.

 

그림 6. 경기 승부 장면, 통계 장면 예측

 

경기 마지막 승부 장면과 경기 결과를 보여주는 통계 장면은 하이라이트에 필수적으로 포함되어야 합니다. [그림 6]과 같이 모델 4는 2개 경기를 제외한 나머지 경기에서 해당 장면들을 모두 검출했습니다.

 

그림 7. 경기 리플레이 예측

 

원본 영상에는 해당 경기의 주요 장면 리플레이가 포함되어 있는데, 이 구간은 하이라이트로 포함되지 않아야 합니다. [그림 7]과 같이 모델 4는 해당 리플레이 장면들을 하이라이트로 검출하지 않았습니다.

 

그림 8. 선수들의 캐릭터 결정 장면 예측

 

각 팀에서 캐릭터를 결정하는 장면 또한 하이라이트에 해당하나, [그림 8]과 같이 모델 4가 정상적으로 검출하지 못한 경우도 다수 존재했습니다. 선수들이 결정한 캐릭터를 촬영하는 화면의 각도 및 캐릭터들의 모습이 상이하여 발생한 결과로 추측합니다.

 

5. 결론

 

A. 결론 및 한계점

 

본 논문에서는 3D CNN과 Bi-LSTM 모델을 사용하여 하이라이트 추출 연구를 진행했습니다.

 

데이터 전처리 단계에서는 영상을 세그먼트 단위의 피클 파일로 정리하여 학습 시간과 메모리를 절약할 수 있었습니다.

 

모델 설계 단계에서는 2D 또는 3D CNN 사용 여부, 사전 학습된 모델 사용 여부 그리고 Bi-LSTM 사용 여부에 따른 성능을 비교할 수 있도록 4개의 모델을 준비했습니다.

 

모델 실험 단계에서는 클래스 가중치 1:4라는 최적값을 찾아 데이터 불균형 문제를 해결했습니다. 또한 LSTM 적용 시 깊은 층의 CNN 모델보다 얇은 층의 CNN 모델 성능이 더욱 좋았는데, 이는 세그먼트에 대한 정확한 분류보다 장면들 간의 맥락을 보는 것이 더 중요함을 보여주는 것으로 추측했습니다. 모델 4의 학습 단계에서는 전이 학습을 통해 효율적인 실험을 진행할 수 있었습니다.

 

모델 평가 단계에서는 2D CNN을 프레임 단위로 학습한 모델에 비해 3D CNN을 세그먼트 단위로 학습한 모델의 성능이 더 우수함을 확인했고, 최종적으로 Bi-LSTM을 추가하여 긴 시간 동안의 맥락을 함께 파악할 수 있도록 설계한 모델이 게임 영상 하이라이트 추출이라는 목적에 가장 적합하다는 것을 보였습니다.

 

한편 레이블 추출용으로 사용된 기존의 하이라이트 영상에서, 편집자의 주관에 따른 하이라이트 편집이 노이즈가 되어 모델 성능을 저해하는 요소로 작용했다는 점은 지도 학습의 한계점으로 볼 수 있습니다.

 

B. 향후 연구 방향

 

본 연구에서는 학습 시간과 메모리 제약 문제로 인해 비디오 이미지의 크기를 64×64로 축소하여 사용했습니다. 이후 더 큰 크기의 이미지로 후속 연구를 진행할 필요가 있습니다. 또한 영상과 음성뿐만 아니라 실시간 채팅 데이터를 함께 사용할 경우 모델 성능에 유의미한 향상이 있을 것이라 기대됩니다. 더 나아가, 이번 연구 결과는 LoL뿐만 아니라 다른 게임에도 적용해볼 가치가 있다고 판단합니다.

 

C. 구현 소스 코드

 

본 논문에서 작성하고 활용한 코드들은 다음 링크에서 확인할 수 있습니다.

https://github.com/VideoHighlightTeam/YasuoNet

 

6. 참고 문헌

 

[1] Tran, Du, et al. “Learning Spatiotemporal Features With 3D Convolutional Networks”, IEEE, 2015.

[2] M. Schuster and K. K. Paliwal, “Bidirectional recurrent neural networks”, IEEE, 1997.

[3] 윤성훈, 이승진, 김경중, “오토 인코더 모델을 이용한 리그 오브 레전드 게임 동영상 하이라이트 추출”, 한국소프트웨어 종합학술대회 논문집, 701-703, 2018.

[4] 김은율, 이계민, “채팅과 오디오의 다중 시구간 정보를 이용한 영상의 하이라이트 예측”, 방송공학회논문지 제24권 제4호, 553-563, 2019.

[5] Jung-Ting (Tim) Hsieh, Chengshu (Eric) Li, Wendi Liu, Kuo-Hao Zeng, “Spotlight: A Smart Video Highlight Generator”, Stanford University CS231N Final Project Report, 2017.

[6] K. Simonyan and A. Zisserman, “Very deep convolutional networks for large-scale image recognition”, ICLR, 2015.

[7] F. Chollet, “Xception: Deep Learning with depthwise separable convolution”, CVPR, 2017.