"Observatory조"의 두 판 사이의 차이

cdc wiki
이동: 둘러보기, 검색
(기능 구현을 위한 세부기술 선택사항)
(완료작품의 평가)
242번째 줄: 242번째 줄:
  
 
===완료작품의 평가===
 
===완료작품의 평가===
[[파일:checklist_8.png]]
+
[[파일:checklist.png]]

2019년 6월 19일 (수) 06:44 판

프로젝트 개요

기술개발 과제

국문 : AI를 이용한 게임 옵저빙 시스템

영문 : Game Observer System Using AI

과제 팀명

Observatory

지도교수

홍의경 교수님

개발기간

2019년 3월 ~ 2019년 6월 (총 4개월)

구성원 소개

서울시립대학교 컴퓨터과학부 20139200** 마**(팀장)

서울시립대학교 컴퓨터과학부 20139200** 권**

서울시립대학교 컴퓨터과학부 20139200** 유**

서울시립대학교 컴퓨터과학부 20159200** 오**

서론

개발 과제의 개요

개발 과제 요약

◇ AI를 활용한 게임 옵저빙 시스템을 구축한다.

◇ 처음엔 1가지게임으로 시작하여 구현하고, 추후 다양한 게임에 적용할 수 있도록 한다.

◇ 주요 기술로는 AI의 딥러닝, 컴퓨터 비전, 영상 분석 기술 등이 사용될 예정이다.

개발 과제의 배경

◇ 게임 중계 시장의 규모가 점점 커지고 있음

◇ 실제로 2018년 RiotGames의 League of Legends 결승전 시청자 수는 9960만명이며, 최고 동시 시청자 수는 4400만 명이었다.

◇ 크고 작은 대회의 수 또한 많아지고 있음. 유명 스트리머가 주최하는 대회나 pc방 홍보용 대회 등

◇ 대회는 많은 반면, 전문적인 옵저버는 부족한 상황

◇ 다대다 게임들이 유행하면서 동시에 여러 가지 상황이 발생, 한 화면에 담아내기가 힘든 경우가 많음

◇ 게임은 접근성이 낮아 시청자들의 수준이 상당히 높음

◇ SPOTV Games에서 활동하는 옵저버의 경우 선수들의 습관과 최근 경기의 추세 등을 파악하여 주요 장면들을 예측하고 장면을 이동함

◇ 게임 내에서 여러 상황이 동시에 발생할 경우, 중요한 장면을 놓치는 경우가 있음

◇ 이 뿐만 아니라, 옵저버가 실수를 하는 방송사고도 발생하는 경우가 있음

◇ 독일 쾰른에서 열린 게임스컴에서 PUBG 경기 진행 중 옵저버가 플레이어의 탈락 장면을 놓치고 단순히 이동하는 장면을 중계하는 등 실수를 하기도 함.

◇ AI 옵저빙 시스템을 이용하여 사람의 실수로 인한 방송사고 빈도를 줄이고, 중요한 장면을 놓치지 않고 원활한 게임 중계 환경을 구축할 수 있을 것으로 예상

◇ 옵저버를 위한 인건비 지출이 없으므로, 여러 명의 옵저버를 투입하여 다양한 화면 연출 가능

개발 과제의 목표 및 내용

◇ 사람이 하는 옵저빙보다 더 나은 퍼포먼스를 가진 AI 옵저빙 시스템 구축

◇ 복잡한 게임 플레이 상황에도 적용 가능해야함

◇ 추후, 특정 게임이 아닌 여러 게임에 확장할 수 있는 여지를 만들어야함

관련 기술의 현황

관련 기술의 현황 및 분석(State of art)

  • 전 세계적인 기술현황

◇ 현재 Observing 기술은 사람이 직접 플레이어로 게임에 참여하여 게임 내 관전 시스템을 이용하여 화면을 전환하며 중계

◇ 게임 내 관전 시스템을 이용하면 같은 시간에 한 화면만 중계할 수 있음

◇ Lehigh University의 Daniel Wei-Shen Phang은 게임 Dota2에서 활용할 수 있는 관전자 AI에 관련된 논문을 2014년에 발표

◇ RiotGames의 League of Legends의 경우 게임 내의 replay 기능에서 주요 상황 발생(챔피언이 피해를 입는 상황 등)에 따라 카메라가 자동으로 이동하도록 함

  • 특허조사 및 특허 전략 분석

◇ Google – 자동 영상 사물 인식(Automatic Large Scale Video Object Recognition, 8,792,732, 29 Jul 2014)

Automatic Large Scale Video Object Recognition.png

그림 1은 객체 인식 시스템의 블록 다이어그램이다. Object Recognition System(100)은 비디오 및 이미지 콘텐츠 모음으로 구성되며, 나아가 이미지를 분석하여 서로 다른 개체의 특성을 학습하고 학습된 특성을 바탕으로 개체를 인식할 수 있는 모듈로 구성된다. PC(170)는 Network(180)를 통해 Object Recognition System과 통신할 수 있으며, 시각적 콘텐츠 제출 또는 특정 개체를 표시하는 비주얼 콘텐츠 요청과 같은 작업을 수행할 수 있다. 통신 방법은 어떤 특정 사용자 인터페이스나 네트워크 프로토콜에만 국한되는 것이 아니라, 일반적인 구현에서는 표준 인터넷 프로토콜을 채용하는 Client의 재래식 웹 브라우저를 통해 사용자가 비디오 호스팅 서비스와 상호작용한다. Object Recognition System은 서로 다른 실제 개체를 나타내는 개체 이름을 Object Name Repository(105)에 저장한다.

Object Recognition System은 추가로 Visual Content Repository(110)으로 구성된다. Visual Content Repository은 비디오, 스틸 이미지 또는 둘 다와 같이 개체를 인식할 수 있는 이미지 데이터를 저장한다. 각 데이터들은 Recognition Repository(120)에 저장된다. Analysis Module(130)은 Object Name Repository에서 개체 이름을 선택한 다음 선택한 개체 이름에 해당하는 Visual Content Repository에서 60개의 시각적 콘텐츠 항목을 선택한다. Analysis Module은 이들 선택된 영상의 시각적 내용을 분석하여 영상 특성 데이터를 추출하여 처리한 후 Object Features Repository와 Recognition Repository에 저장한다. Visual Content Repository는 또한 주어진 물체를 묘사하는 시각적 콘텐츠 항목에 응답하는 Object Request Module(145)로 구성된다. User Interface Server(150)은 웹 기반 인터페이스와 같은 사용자 인터페이스를 제공하며, 사용자가 Object Recognition System과 상호작용하는 데 사용할 수 있다. 그림 2는 개체 ID에 대한 감시되지 않는 학습을 수행하기 위해 분석 모듈에 의해 수행된 이미지 처리 파이프라인의 높은 수준의 보기를 보여 주는 다이어그램이다.

Automatic Large Scale Video Object Recognition 2.png

그림 3과 4는 구현 시 따라 특징 벡터 집합에 대한 차원의 감소 및 일관성 학습의 적용을 나타내는 표다. 그림 5는 구현 시 객체 이름에 대한 최적의 모델을 찾기 위한 데이터 구조를 나타낸 표다. 그림 6은 하나의 구현에 따라 Recognition Repository의 개념 구조를 나타낸 표다.

  • 기술 로드맵

Roadmap 8.png

시장상황에 대한 분석

  • 경쟁제품 조사 비교

◇ 현재 시장에 AI Observing과 유사한 경쟁 제품이 출시 되어 있지 않음

◇ 현재 옵저빙은 방송국 PD가 직접 옵저버 역할을 하거나, 전 프로게이머 출신 등에서 전문 옵저버를 고용하는 형태로 이루어짐

◇ 대회는 많아지는 반면 옵저버 관련 인력은 부족

  • 마케팅 전략 제시

Swot 8.png

개발과제의 기대효과

기술적 기대효과

◇ Game Observing의 자동화

◇ 추후 축구, 농구 등의 스포츠 중계로의 응용 및 확장 가능성

◇ 현재 Observing은 사람이 보이지 않는 플레이어로 직접 게임에 참가하는 방식으로 이루어지고 있음

◇ AI Observing을 이용하여 사람이 할 수 있는 실수를 방지하여 좀 더 정확하고 원활한 중계가 이루어질 수 있음

◇ 최종적으로 Game Observing의 완전 자동화를 기대

◇ 추후 축구, 농구 등의 스포츠 중계로의 응용 가능성

◇ 축구, 농구 등의 스포츠와 같이 동시에 여러 화면을 중계 할 수 있는 기술로도 발전 가능

경제적, 사회적 기대 및 파급효과

◇ 기존 시장에 유사한 경쟁 제품이 전무하기 때문에 새로운 시장을 형성 가능

◇ 자동화된 Observing 기술을 개인 방송 중계 플랫폼과 연계 가능

◇ 요즘에도 Twitch, Afreeca, Youtube와 같은 플랫폼을 통해서 개인이 주최하는 크고 작은 게임 대회가 많이 열리고 있음

◇ 이와 관련 하여 Observing 부분의 어려움을 해소하여 이런 작은 규모의 E-Sports 대회 횟수 증가와퀄리티 향상에 기여할 수 있을 것으로 예상

◇ 작은 규모 대회 횟수 증가가 이루어진다면 이를 통해 많은 사람들이 대회 시청자 입장에서 참가자 입장으로 참여 가능

◇ 중소단위의 대회 증가는 기존의 큰 대회 위주의 게임 대회 및 중계 산업과 차별화 되는 시장이 열릴 수 있음

기술개발 일정 및 추진체계

개발 일정

Plan 8.png

구성원 및 추진체계

◇ 마** – 프로젝트 전체 기획을 주도하여, 소프트웨어 형상 관리와 개발된 모델의 테스트와 발표를 주도한다.

◇ 권** – AI 옵저빙에 사용할 게임에 대해 조사를 선행한다. 플레잉 상황에 따른 중요도 설정, 세부 상황 분류 등을 진행을 주도한다.

◇ 유** – 게임 옵저빙을 효율적으로 수행할 수 있는 학습 모델을 연구하고, 설계를 주도한다.

◇ 오** – AI 옵저빙 모델 학습에 필요한 데이터를 수집하고, 필요에 따른 분류를 주도한다.

설계

설계사양

제품의 요구사항

◇ RPG 게임을 대상으로 한 Observing System

◇ 게임 환경에 대한 감시 및 통제 능력

◇ 자유시점 카메라로 움직일 수 있는 AI를 기반으로 한 옵저버

◇ 주요 장면을 선택하여 포착 할 수 있는 판단능력

◇ 다양한 기법을 통해 특정 상황을 극대화하여 묘사하는 옵저버

◇ 중계 플랫폼과의 연계를 통한 활용성 증대

기능 구현을 위한 세부기술 선택사항

  • 가. 컴퓨터 비전(Computer Vision) 기술

◇ 기계의 시각에 해당하는 부분을 연구하는 컴퓨터 과학의 최신 연구 분야 중 하나임

◇ 쉽게 말하면 인공지능이라고 말할 수도 있지만, 시각적인 입력 데이터, 즉 영상을 주로 다룬다는 것이 차이점

◇ OpenCV 등의 Open Source Library 등이 존재


  • 나. Open Source Library – [OpenCV]

◇ OpenCV(Open Source Computer Vision)은 주로 실시간 컴퓨터 비전을 목적으로 한 프로그래밍 라이브러리

◇ 본래 인텔에서 개발한 Open Source Library로. 실시간 이미지 프로세싱에 중점을 두고 있음

◇ 인텔 CPU에서 사용되는 경우 속도의 향상을 볼 수 있는 IPP(Intel Performance Primitives)를 지원

◇ 윈도, 리눅스 등에서 사용 가능한 크로스 플랫폼이며 오픈소스 BSD 허가서 하에서 무료로 사용할 수 있음

◇ OpenCV는 TensorFlow , Torch / PyTorch 및 Caffe의 딥러닝 프레임워크를 지원


  • 다. 영상 분석 기술

◇ 최근 AI를 활용한 영상 분석 기술이 CCTV 분석, 스마트 도시 건설 등에 사용되고 있음

◇ 얼굴과 사물 인식, 공간 인식, 상황정보 및 모션 인식 등 다양한 분야에서 폭넓게 활용 가능


  • 라. 인공지능(Artificail Intelligence) - 딥 러닝(Deep Learning) 기술

◇ 여러 비선형 변환기법의 조합을 통해 높은 수준의 추상화를 시도하는 기계학습 알고리즘의 집합으로 정의됨

◇ 다층 인공신경망을 이용해 유용한 특징들을 데이터로부터 직접 학습하는 방식을 취함


  • 마. 각종 촬용기법을 응용

◇ 버즈 아이 뷰(Bird’s eye view) – 새가 공중에서 지상을 내려보듯이 높은 위치에서 아래를 조망하는 기법. 무대가 되는 건물들이나 자연의 웅장함, 규모감을 나타낸다. 핵심 피사체는 주변과 대조되어 더더욱 초라해진다.

◇ 롱 쇼트(Long Shot) – 피사체를 원경에서 찍는 것. 피사체가 작아지는 대신 배경이 두드러진다. 주변의 분위기를 강조하며 인물의 동선을 포착하기 쉽게 한다.

◇ 클로즈 업(Close Up) – 피사체를 근경에서 찍는 것. 피사체의 특징을 살릴 수 있고 강조 가능. 처음부터 카메라가 피사체 근경에 위치하여 촬영하는 기법.

◇ Zolly Effect – 피사체의 크기는 유지되고, 화각이 넓어지면서 배경이 멀어지는 듯한 효과를 내거나, 피사체는 그대로 유지되고 배경이 점점 가까워지는 효과를 낸다.

소프트웨어 구조

Structure 8.png

유스케이스 다이어그램

Usecase 8.png

결과 및 평가

완료 작품의 소개

프로토타입 사진 혹은 작동 장면

Unity 8.png

Unity4를 기반으로 제작된 3D 게임 “UNIDRA”는, 아래 참고 문헌으로 제시된 도서에서 제공하는 오픈소스 기반의 게임이다. 개발 과제에 걸맞은 ‘옵저빙 시스템’의 구현에 집중하기 위해, 이와 같은 오픈 소스를 활용하였다. (https://github.com/gilbutITbook/006762)

게임 서버 접속시 옵저빙 모드의 선택 여부를 추가하여, 옵저버로서도 누구나 플레이 해볼 수 있도록 수정한 것이 완료작품의 가장 큰 특징이다. 또한 기존의 “UNIDAR”와는 다르게, 본 팀의 완료작품에서는 600초간 플레이를 진행하게 된다.

게임은, 자체 네트워크를 이용해 다중 플레이어의 접속이 가능하다. 몬스터로는 늑대와 보스몹(용)이 존재하고, 보스몹이 잡히거나 시간이 모두 경과할 경우 게임은 종료된다. AI 옵저버의 핵심은 대결 발생과 같은 이벤트가 발생했을 때 이를 인식하여 이동하는 것인데, 완료작품에서는 보스몹과 플레이어 사이의 거리, 플레이어의 상태 등 다양한 Factor 등을 종합적으로 고려하여 이를 결정하도록 했다. 또한, 옵저버 역할 자체의 다분화를 통해, 이용자가 원하는 옵저빙 시스템을 더욱 구체적으로 이용할 수 있도록하였다.

선택 가능한 옵저빙 모드는 총 3가지로, 카메라를 들고 뛰는 기본 옵저버, 플레이어의 시점을 주로 따라가는 플레이어 옵저버, 보스몹의 상황을 주로 따라가는 보스 옵저버가 존재한다. 각 옵저버는 자신의 특성에 따라 최대한 적합한 화면을 송출하도록 구현되었다. 이 모든 옵저버들을 하나의 화면에 분할하여 나타내는 것이 마스터 옵저버 모드이다. 더불어 다양한 촬영 기법 등을 더해 상황의 효율적인 묘사와 극대화가 가능하도록 했다.

실행화면

Bo 8.png

<Boss Observer>

Po 8.png

<Player Observer>

Mo 8.png

<Master Observer Mode>

완료작품의 평가

Checklist.png