KR20220112305A - 스포츠 동영상 기반 플랫폼 서비스를 제공하는 서버의 동작 방법 - Google Patents

스포츠 동영상 기반 플랫폼 서비스를 제공하는 서버의 동작 방법 Download PDF

Info

Publication number
KR20220112305A
KR20220112305A KR1020227026043A KR20227026043A KR20220112305A KR 20220112305 A KR20220112305 A KR 20220112305A KR 1020227026043 A KR1020227026043 A KR 1020227026043A KR 20227026043 A KR20227026043 A KR 20227026043A KR 20220112305 A KR20220112305 A KR 20220112305A
Authority
KR
South Korea
Prior art keywords
player
video
cluster
service server
server
Prior art date
Application number
KR1020227026043A
Other languages
English (en)
Inventor
김지훈
Original Assignee
주식회사 리티브
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 리티브 filed Critical 주식회사 리티브
Publication of KR20220112305A publication Critical patent/KR20220112305A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/41Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/41Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items
    • G06V20/42Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items of sport video content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/783Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/7837Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using objects detected or recognised in the video content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/71Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/75Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/783Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/7837Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using objects detected or recognised in the video content
    • G06F16/784Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using objects detected or recognised in the video content the detected or recognised objects being people
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0207Discounts or incentives, e.g. coupons or rebates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration by the use of local operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/26Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/62Extraction of image or video features relating to a temporal dimension, e.g. time-based feature extraction; Pattern tracking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/762Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/945User interactive design; Environments; Toolboxes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/46Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/103Static body considered as a whole, e.g. static pedestrian or occupant recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/23Recognition of whole body movements, e.g. for sport training
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20092Interactive image processing based on input by user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30221Sports video; Sports image
    • G06T2207/30224Ball; Puck

Abstract

스포츠 동영상 기반 플랫폼 서비스를 제공하는 서버의 동작 방법은 스포츠 동영상에 대응하여 플레이어 별 주요 장면에 관한 구간 정보를 포함하는 클러스터들을 데이터베이스에 저장하고, 구간 정보를 사용자 단말에 제공하며, 구간 정보에 따라 스포츠 동영상으로부터 추출되는 비디오 클립들을 플레이어들 별로 제공받은 사용자 단말로부터 적어도 하나의 클러스터의 정보를 수정하는 입력을 수신하여 해당 클러스터의 정보를 데이터베이스에 갱신하는 단계들을 포함한다.

Description

스포츠 동영상 기반 플랫폼 서비스를 제공하는 서버의 동작 방법{METHOD TO OPERATE SERVER PROVIDING SPORTS VIDEO BASED PLATFORM SERVICE}
아래 실시예들은 스포츠 동영상 기반 플랫폼 서비스를 제공하는 서버의 동작 방법에 관한 것이다.
스포츠 동영상을 분석하기 위하여 전문 인력에 의한 인적 자원이 상당 수준으로 요구된다. 스포츠 동영상을 분석하는 몇몇 솔루션이 제시되었으나, 이러한 솔루션들은 여전히 전용 촬영 장비를 요구하거나, 전담 팀을 요구한다. 따라서, 자원 효율적으로 스포츠 동영상을 분석하는 기술이 요구된다.
실시예들은 인공지능 기술을 이용함으로써, 스포츠 동영상을 분석하는데 요구되는 인적 자원을 현저하게 감소시키는 기술을 제공한다. 또한, 실시예들은 스포츠 동영상의 분석 결과를 해당하는 장면과 연동시켜 데이터베이스화 함으로써, 스포츠 동영상을 디테일 하게 검색하는 기술을 제공한다.
일 측에 따른 동영상 분석 서버의 동작 방법은 스포츠 동영상에 액세스하는 정보를 수신하는 단계; 상기 수신된 정보에 기초하여 상기 스포츠 동영상을 획득하는 단계; 상기 스포츠 동영상의 주요 장면에 연관된 비식별 플레이어를 결정하는 단계; 상기 비식별 플레이어를 식별 가능한 인접 프레임까지 상기 비식별 플레이어를 추적함으로써, 상기 비식별 플레이어를 식별하는 단계; 및 상기 주요 장면에 대응하여, 상기 스포츠 동영상의 시간 구간 및 상기 비식별 플레이어의 식별 정보를 출력하는 단계를 포함한다.
상기 주요 장면에 연관된 비식별 플레이어를 결정하는 단계는 상기 주요 장면에 포함된 적어도 하나의 비식별 플레이어의 외형 특징 및/또는 모션 특징을 추출하는 단계; 및 상기 적어도 하나의 비식별 플레이어의 외형 특징 및/또는 모션 특징에 기초하여, 상기 주요 장면에 연관된 비식별 플레이어를 결정하는 단계를 포함할 수 있다.
상기 스포츠 동영상이 구기 종목의 스포츠 동영상인 경우, 상기 주요 장면에 연관된 비식별 플레이어를 결정하는 단계는 상기 주요 장면에서 공을 검출하는 단계; 및 상기 검출된 공에 기초하여, 상기 주요 장면에 연관된 비식별 플레이어를 결정하는 단계를 포함할 수 있다.
상기 비식별 플레이어를 식별하는 단계는 상기 결정된 비식별 플레이어로부터 특징을 추출하는 단계; 상기 추출된 특징을 기 등록된 플레이어들의 특징들과 비교하는 단계; 상기 비교 결과 상기 비식별 플레이어를 식별 가능한지 여부를 판단하는 단계; 및 상기 비식별 플레이어를 식별할 수 없다는 판단에 따라, 인접 프레임을 인스턴스 세그먼테이션 함으로써 상기 비식별 플레이어를 추적하는 단계를 포함할 수 있다.
일 측에 따른 스포츠 동영상 기반 플랫폼 서비스를 제공하는 서버의 동작 방법은 스포츠 동영상에 대응하여, 플레이어 별 클러스터들(player-specific clusters)-상기 클러스터들은 플레이어 별 주요 장면에 관한 구간 정보를 포함함-을 데이터베이스에 저장하는 단계; 상기 데이터베이스에 기초하여, 상기 스포츠 동영상으로부터 플레이어 별 비디오 클립들(player-specific video clips)을 추출하기 위한 상기 구간 정보를 사용자 단말에 제공하는 단계; 스트리밍 서버로부터 상기 비디오 클립들-상기 비디오 클립들은 상기 구간정보에 따라 상기 스포츠 동영상으로부터 추출됨-을 상기 플레이어들 별로 제공받은 상기 사용자 단말로부터 적어도 하나의 클러스터의 정보를 수정하는 입력을 수신하는 단계; 및 상기 입력에 기초하여, 적어도 하나의 해당하는 클러스터의 정보를 상기 데이터베이스에 갱신하는 단계를 포함한다.
상기 스포츠 동영상 기반 플랫폼 서비스를 제공하는 서버의 동작 방법은 상기 사용자 단말에게 플레이어들의 기여도를 나타내는 통계를 제공하는 단계; 상기 사용자 단말로부터 상기 통계에 포함된 세부기록을 선택하는 입력을 수신하는 단계; 상기 데이터베이스에 기초하여 상기 선택된 세부기록과 관련된 적어도 하나의 서브-클러스터를 획득하는 단계; 및 상기 적어도 하나의 서브-클러스터에 기초하여, 상기 스포츠 동영상으로부터 비디오 클립을 추출하기 위한 정보를 상기 사용자 단말에 제공하는 단계를 더 포함할 수 있다.
상기 스포츠 동영상 기반 플랫폼 서비스를 제공하는 서버의 동작 방법은 상기 사용자 단말로부터 검색 대상 플레이어 및 상기 검색 대상 장면을 포함하는 검색 쿼리를 수신하는 단계; 상기 데이터베이스로부터, 상기 검색 쿼리에 대응하는 서브-클러스터를 검색하는 단계; 및 상기 검색된 서브-클러스터에 기초하여, 상기 스포츠 동영상으로부터 비디오 클립을 추출하기 위한 정보를 상기 사용자 단말에 제공하는 단계를 더 포함할 수 있다.
상기 스포츠 동영상 기반 플랫폼 서비스를 제공하는 서버의 동작 방법은 상기 클러스터들의 신뢰도에 기초하여, 과금 레벨을 결정하는 단계; 및 상기 클러스터들을 수정하는 피드백 입력에 기초하여, 보상 레벨을 결정하는 단계 중 적어도 하나를 더 포함할 수 있다.
상기 적어도 하나의 클러스터의 정보를 수정하는 입력을 수신하는 단계는 상기 사용자 단말로부터 상기 적어도 하나의 클러스터에 포함된 적어도 하나의 구간의 플레이어가 해당 클러스터에 속하지 않는다는 피드백 입력을 수신하는 단계를 포함할 수 있다. 상기 적어도 하나의 해당하는 클러스터의 정보를 상기 데이터베이스에 갱신하는 단계는 상기 피드백 입력에 기초하여, 해당 구간을 해당 클러스터에서 배제하는 단계를 포함할 수 있다.
상기 스포츠 동영상 기반 플랫폼 서비스를 제공하는 서버의 동작 방법은 상기 사용자 단말로부터 상기 적어도 하나의 클러스터에 포함된 적어도 하나의 구간의 플레이어가 다른 클러스터에 속한다는 피드백 입력을 수신하는 단계; 및 상기 피드백 입력에 기초하여, 해당 구간을 해당 클러스터에서 배제하고 상기 다른 클러스터에 포함시키는 단계를 더 포함할 수 있다.
상기 스포츠 동영상 기반 플랫폼 서비스를 제공하는 서버의 동작 방법은 상기 갱신된 데이터베이스에 의존하는 트레이닝 데이터를 생성하는 단계; 및 상기 트레이닝 데이터에 기초하여, 플레이어들의 검출 정보, 식별 정보 및 모션 유형 정보 중 적어도 하나를 추정하는 특화 모델을 학습하는 단계를 더 포함할 수 있다.
도 1은 일 실시예에 따른 스포츠 동영상 기반 플랫폼 서비스를 제공하는 시스템을 설명하는 도면.
도 2는 일 실시예에 따른 스포츠 동영상 기반 플랫폼 서비스를 제공하는 서비스 서버의 동작 방법을 나타낸 동작 흐름도.
도 3은 일 실시예에 따른 클러스터링 동작을 설명하는 도면.
도 4는 일 실시예에 따른 스포츠 동영상 기반 플랫폼 서비스를 설명하는 도면.
도 5는 일 실시예에 따른 스포츠 동영상 기반 플랫폼 서비스를 설명하는 도면.
도 6은 일 실시예에 따른 모션 유형에 따른 특징 벡터들의 분포를 설명하는 도면.
도 7은 일 실시예에 따른 모션 유형에 따른 클러스터링 동작을 설명하는 도면.
도 8은 일 실시예에 따른 범용 모델 및 특화 모델을 설명하는 도면.
도 9는 일 실시예에 따른 농구 경기의 플레이어 별 기여도를 나타내는 통계와 연동하여 제공되는 비디오 클립들을 설명하는 도면.
도 10은 일 실시예에 따른 비디오 클립에 대한 사용자의 피드백을 반영하는 기능을 설명하는 도면.
도 11은 일 실시예에 따른 검색 기능을 설명하는 도면.
도 12는 일 실시예에 따른 추적 클러스터들을 생성하는 동작을 설명하는 도면.
도 13은 일 실시예에 따른 추적 클러스터들을 매칭하는 동작을 설명하는 도면.
도 14는 일 실시예에 따른 득점 이벤트를 감지하는 동작을 설명하는 도면.
본 명세서에서 개시되어 있는 특정한 구조적 또는 기능적 설명들은 단지 기술적 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 실시예들은 다양한 다른 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
제1 또는 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 이해되어야 한다. 예를 들어 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~간에"와 "바로~간에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
실시예들은 퍼스널 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트 폰, 텔레비전, 스마트 가전 기기, 지능형 자동차, 키오스크, 웨어러블 장치 등 다양한 형태의 제품으로 서비스될 수 있다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일 실시예에 따른 스포츠 동영상 기반 플랫폼 서비스를 제공하는 시스템을 설명하는 도면이다. 도 1을 참조하면, 일 실시예에 따른 시스템은 서비스 서버를 포함하고, 시스템의 설계에 따라 스트리밍 서버, 스토리지 서버, 소셜 네트워크 서비스(SNS) 서버 및 인스턴트 메시징 서비스(IMS) 서버 중 적어도 하나를 더 포함할 수 있다. 서비스 서버는 사용자 단말에 설치되는 어플리케이션과 통신하는 프론트-엔드 서버와 스포츠 동영상을 분석하는 동영상 분석 서버를 포함할 수 있다. 시스템의 설계에 따라, 프론트-엔트 서버와 동영상 분석 서버는 동일한 서버 내에서 모듈의 형태로 구현될 수도 있고, 서로 다른 독립적인 서버로 구현되어 네트워크를 통하여 서로 통신하는 형태로 구현될 수도 있다.
서비스 서버는 스포츠 동영상을 수신한다. 스포츠 동영상은 스포츠 경기를 촬영한 영상으로, 복수의 프레임들을 포함한다. 스포츠 경기는 농구, 축구, 배구, 핸드볼, 하키, 아이스하키, 테니스 등 실시간 구기종목, 미식축구, 럭비, 야구, 크로캣, 골프 등 턴제 구기종목, 및 다이빙, 수영, 스키, 스노우 보드 등 비구기종목 중 어느 하나에 해당할 수 있다. 이하, 농구 경기를 예로 들어 설명하나, 실시예들은 농구 경기 이외의 다른 스포츠 경기에도 실질적으로 동일한 방식으로 적용될 수 있다.
스포츠 동영상은 스트리밍 서버나 스토리지 서버에 이미 업로드된 것일 수 있다. 이 경우, 서비스 서버는 스트리밍 서버나 스토리지 서버를 통하여 스포츠 동영상에 액세스하는 정보(예를 들어, URL 등)를 수신할 수 있다. 또는, 서비스 서버는 스포츠 동영상을 업로드하는 요청을 수신할 수도 있다. 서비스 서버는 업로드 요청된 스포츠 동영상을 스트리밍 서버나 스토리지 서버에 업로드를 할 수 있다. 스토리밍 서버나 스토리지 서버는 서비스 서버와 동일한 주체에 의하여 운영될 수도 있고, 실시예에 따라 상이한 주체에 의하여 운영될 수도 있다.
스포츠 동영상은 복수의 비식별 플레이어들을 포함한다. 비식별 플레이어는 해당 플레이어의 신원이 식별되지 않은 플레이어로, 예를 들어 해당 플레이어의 식별 정보가 설정되지 않은 플레이어를 포함할 수 있다. 스포츠 동영상에 포함된 복수의 비식별 플레이어들은 스포츠 경기를 위한 다양한 움직임들을 수행하고, 스포츠 동영상을 분석함으로써 해당하는 스포츠 경기에 참여한 플레이어들의 개인 차원의 능력이나 팀 차원의 능력이 평가될 수 있다. 다만, 스포츠 동영상을 분석하기 위해서는 해당하는 스포츠 경기의 규칙을 숙지하는 한 명 이상의 전문가가 해당하는 스포츠 경기의 전 시간에 걸쳐 플레이어들 각각을 위한 기록을 수행해야 한다.
아래에서 설명하는 실시예들은 인공지능 기술을 이용함으로써, 스포츠 동영상을 분석하는데 요구되는 인적 자원을 현저하게 감소시키는 기술을 제공한다.
일 실시예에 따르면, 동영상 분석 서버는 프론트-엔트 서버로부터 구기종목의 스포츠 동영상의 링크를 포함하는 분석 요청 신호를 수신할 수 있다. 동영상 분석 서버는 스포츠 동영상에 포함된 복수의 프레임들에서 정적 픽셀들을 필터링 아웃하여, 동적 픽셀들을 남기는 전처리를 수행할 수 있다. 예를 들어, 스포츠 동영상이 고정 시점으로 촬영된 동영상 (고정된 카메라 앵글로 촬영된 동영상) 인 경우, 미리 정해진 범위의 인접 프레임들 사이에서 픽셀 값의 변화를 기초로 정적 픽셀들을 필터링 아웃(filtering out)할 수 있다. 인접 프레임들 사이에서 동일한 위치의 픽셀 값이 미리 정해진 임계범위를 초과하여 변하는 경우 동적 픽셀로 분류될 수 있다.
만약 스포츠 동영상이 이동 시점으로 촬영된 동영상 (공을 따라서 이동하는 카메라 앵글로 촬영된 동영상) 인 경우, 프레임 내 픽셀들의 옵티컬 플로우(optical flow)의 통계 값을 기초로 정적 픽셀들을 필터링 아웃할 수 있다. 카메라 앵글의 이동으로 인하여 프레임 내 픽셀들은 공통된 옵티컬 플로우의 성분을 가질 수 있다. 픽셀들에 포함된 공통 성분의 옵티컬 플로우를 제거하면, 실제로 움직이는 객체 (움직이는 선수, 움직이는 공 혹은 진동하는 림 등) 에 해당하는 픽셀들의 옵티컬 플로우의 성분을 획득할 수 있다. 공통 성분의 옵티컬 플로우가 제거된 이후 미리 정해진 임계 크기를 초과하는 크기의 옵티컬 플로우를 가지는 픽셀이 동적 픽셀로 분류될 수 있다.
동영상 분석 서버는 전처리된 동영상에 기초하여 스포츠 동영상의 공을 추적할 수 있다. 예를 들어, 동영상 분석 서버는 스포츠 동영상의 프레임들 각각에 대응하여, 해당하는 프레임의 동적 픽셀들에 기초하여 공을 검출함으로써, 스포츠 동영상의 공을 추적할 수 있다. 스포츠 동영상에 포함된 공은 영상에서 다른 객체들 (선수 혹은 골대 등)에 비하여 상대적으로 작게 촬영되므로, 기존의 객체 추적 모델을 통하여 공을 추적하기 어렵다. 실시예들은 전처리를 통하여 획득되는 동적 픽셀들을 이용하여 공을 추적하도록 학습된 인공 신경망을 이용하여, 공 추적의 성능을 현저하게 향상시킬 수 있다.
동영상 분석 서버는 전처리된 동영상으로부터 스포츠 동영상의 득점 관련 장면을 검출할 수 있다. 예를 들어, 동영상 분석 서버는 프레임들 각각에 대응하여, 해당하는 프레임의 동적 픽셀들에 기초하여 림(rim)을 검출하고, 림이 검출된 프레임과 인접한 프레임들을 득점 관련 장면으로 결정함으로써, 스포츠 동영상의 득점 관련 장면을 검출할 수 있다.
림은 구기종목 스포츠 경기에서 공이 통과하여 득점 여부를 판별하기 위한 미리 정해진 형상의 구조물을 의미하며, 이하 림에 부착된 그물도 림에 포함되는 것으로 이해될 수 있다. 림은 평상시에는 움직이지 않아 정적 픽셀로 분류되다가, 공이 림에 맞아 실제로 림이 움직이는 경우 혹은 움직이는 공이 림을 통과하는 경우 등 득점과 관련된 장면에서 동적 픽셀로 분류될 수 있다. 따라서, 전처리된 영상에서 림이 검출되면, 득점과 관련된 장면이라고 판단될 수 있다.
동영상 분석 서버는 득점 관련 장면의 검출에 반응하여, 공의 추적 결과를 이용하여 득점 관련 장면에 연관된 비식별 플레이어를 결정할 수 있다. 예를 들어, 동영상 분석 서버는 공의 추적 결과를 이용하여, 득점 관련 장면에 포함된 프레임들에서 득점을 시도한 선수와 관련된 동적 픽셀들을 검출하고, 득점을 시도한 선수와 관련된 동적 픽셀들이 검출된 프레임을 인스턴스 세그먼테이션(instance segmentation) 함으로써, 득점 관련 장면에 연관된 비식별 플레이어를 결정할 수 있다.
동영상 분석 서버는 전처리된 영상에서 공을 추적하므로, 전처리된 영상에서 림이 검출되면, 림이 검출된 프레임을 시작으로 그 이전의 인접 프레임들에 포함된 공의 이동 궤적을 획득할 수 있다. 동영상 분석 서버는 공의 이동 궤적을 탐색하면서, 인접 프레임들에 포함된 선수의 동적 픽셀들 중 공과 미리 정해진 기준거리 이내로 가까워지는 동적 픽셀들을 선별할 수 있다. 선별된 동적 픽셀들은 득점 시도를 한 비식별 플레이어를 포함할 수 있다.
동영상 분석 서버는 공과 미리 정해진 기준거리 이내로 가까워지는 동적 픽셀들이 선별되면, 해당하는 프레임을 인스턴스 세그먼테이션 하여, 득점 시도를 한 비식별 플레이어의 마스크(mask)를 획득할 수 있다. 이 때, 인스턴스 세그먼테이션을 수행하는 신경망 모델의 입력으로 전처리 되지 않은 원본 프레임의 영상이 입력될 수 있다.
동영상 분석 서버는 비식별 플레이어를 식별 가능한 인접 프레임까지 비식별 플레이어를 추적함으로써, 비식별 플레이어를 식별할 수 있다. 예를 들어, 동영상 분석 서버는 결정된 비식별 플레이어로부터 특징(feature)을 추출할 수 있다. 동영상 분석 서버는 비식별 플레이어의 마스크를 이용하여 비식별 플레이어에 해당하는 픽셀 값들을 획득하고, 획득된 픽셀 값들을 기초로 특징을 추출할 수 있다.
동영상 분석 서버는 추출된 특징을 기 등록된 플레이어들의 특징들과 비교하여 비식별 플레이어를 식별 가능한지 여부를 판단할 수 있다. 동영상 분석 서버는 서비스 서버로부터 분석 요청된 스포츠 경기에 참여한 선수들의 등록 정보를 수신할 수 있다. 등록 정보는 선수들의 명단 및 선수들의 사진들을 포함할 수 있다. 동영상 분석 서버는 기 등록된 선수들의 사진들로부터 특징들을 추출하고, 비 식별 플레이어의 특징과 비교할 수 있다. 동영상 분석 서버는 비교 결과에 따라 비식별 플에이어를 기 등록된 선수 중 한 명과 매칭할 수 있다.
비교 결과 비식별 플레이어를 식별할 수 없다고 판단되는 경우, 동영상 분석 서버는 인접 프레임(과거 혹은 미래의 인접 프레임)을 인스턴스 세그먼테이션 함으로써 비식별 플레이어를 추적할 수 있다. 비식별 플레이어가 다른 선수에게 가려지는 등 다양한 요인으로 인하여, 슈팅을 시도하는 프레임에서 비식별 플레이어를 식별하기에 충분한 영상 정보가 포함되지 않을 수 있다. 동영상 분석 서버는 비식별 플레이어를 식별하기에 충분한 영상 정보가 포함된 인접 프레임까지 비식별 플레이어를 추적할 수 있다. 동영상 분석 서버는 인접 프레임에서 비식별 플레이어를 추적한 뒤, 해당하는 인접 프레임에서 추적된 비식별 플레이어의 영상 정보를 기초로 비식별 플레이어의 식별 가부를 판단할 수 있다. 동영상 분석 서버는 비식별 플레이어를 식별 가능할 때까지 인접 프레임에서의 추적 동작 및 식별 동작을 반복적으로 수행할 수 있다.
동영상 분석 서버는 득점 관련 장면에서 득점에 성공하였는지, 아니면 득점에 실패하였는지 여부를 판단할 수 있다. 예를 들어, 동영상 분석 서버는 득점 관련 장면에 포함된 복수의 프레임들에서 림의 위치를 기준으로 하는 공의 이동 궤적을 입력으로 득점 성공 여부를 판단하도록 학습된 신경망 모델을 이용할 수 있다.
동영상 분석 서버는 득점 관련 장면들 각각에 대응하여, 스포츠 동영상의 시간 구간, 비식별 플레이어의 식별 정보 및/또는 득점 성공 여부를 출력하여 프론트-엔트 서버의 분석 요청 신호에 응답할 수 있다. 프론트-엔드 서버는 응답 신호에 기초하여 데이터베이스를 구축할 수 있다.
일 실시예에 따르면, 서비스 서버는 비지도식 학습 기법을 이용하여 스포츠 동영상에 포함된 비식별 플레어어들을 서로 구별할 수 있다. 서비스 서버는 비식별 플레이어들이 각각 누구인지를 식별할 수 없는 상황에서도, 제1 비식별 플레이어와 제2 비식별 플레이어가 서로 다르다는 것을 구별할 수 있다. 예를 들어, 스포츠 동영상 내에서 제1 비식별 플레이어의 외형 특징과 제2 비식별 플레이어의 외형 특징이 서로 구별될 수 있다. 외형 특징은 비식별 플레이어의 외형적 특징으로, 예를 들어 체격, 키, 피부색, 머리 스타일, 얼굴 등 비식별 플레이어 자체의 외형적 특징뿐 아니라, 운동복, 등번호, 신발, 보호대, 악세서리의 외형적 특징을 포함할 수 있다. 또한, 제1 비식별 플레이어의 모션 특징과 제2 비식별 플레이어의 모션 특징이 서로 구별될 수 있다. 모션 특징은 비식별 플레이어의 움직임 특징으로, 예를 들어 농구 경기에서 점프슛 모션, 세트슛 모션, 레이업 모션, 덩크 모션, 드리블 모션, 패스 모션, 픽 모션, 리바운드 모션, 블로킹 모션, 수비 모션 등 다양한 모션에서 해당하는 비식별 플레이어 고유의 자세나 움직임에 따른 특징을 포함할 수 있다. 서비스 서버는 외형 특징 및/또는 모션 특징을 이용하여, 비식별 플레이어들을 서로 구별할 수 있다.
서비스 서버는 서로 구별된 비식별 플레이어들 별로 비디오 클립을 생성할 수 있다. 예를 들어, 서비스 서버는 전체 경기 영상 중 제1 비식별 플레이어의 영상만을 선별적으로 포함하는 제1 비디오 클립을 생성하고, 제2 비식별 플레이어의 영상만을 선별적으로 포함하는 제2 비디오 클립을 생성할 수 있다. 서비스 서버는 비식별 플레이어 별 비디오 클립들을 사용자에게 제공함으로써, 사용자로부터 비디오 클립의 비식별 플레이어를 식별하는 정보를 수신할 수 있다. 사용자는 해당하는 스포츠 동영상 내 비식별 플레이어들 중 하나일 수도 있고, 경우에 따라 사용자는 스포츠 동영상 내 비식별 플레이어는 아니지만 해당하는 스포츠 동영상 내 비식별 플레이어들을 식별할 수 있는 사람일 수 있다.
사용자는 복수의 비디오 클립들 중 적어도 하나의 비디오 클립에 대응하는 비식별 플레이어를 식별하는 정보를 입력할 수 있다. 예를 들어, 사용자는 비디오 클립들 중 자기 자신의 비디오 클립에 자기 자신임을 확인하는 입력을 하거나, 혹은 비디오 클립들 중 자신이 식별할 수 있는 비식별 플레이어의 비디오 클립에 해당 비식별 플레이어를 식별하는 정보를 입력할 수 있다.
서비스 서버는 비디오 클립 별로 입력되는 식별 정보에 기초하여, 스포츠 동영상을 분석할 수 있다. 대다수의 스포츠 경기는 미리 정해진 규칙 기반으로 진행되기 때문에, 스포츠 경기의 규칙에 따라 허용되는 모션 유형들이 미리 정해질 수 있다. 이로 인하여, 하나의 모션 유형과 다른 모션 유형은 서로 구별될 수 있다. 예를 들어, 농구 경기에서 슛 모션과 드리블 모션은 서로 구별될 수 있다. 더 나아가, 슛 모션 중에서도 점프 슛 모션과 덩크 슛 모션은 서로 구별될 수 있다. 따라서, 서비스 서버는 스포츠 동영상에서 특징 장면들 혹은 프레임들을 추출하고, 추출된 장면들의 모션 유형들을 분류할 수 있다. 아래에서 상세하게 설명하겠으나, 서비스 서버는 장면이나 프레임 전체가 아닌 일부 영역들을 추출하고, 추출된 영역들의 모션 유형들을 분류할 수도 있다.
이로 인하여, 실시예들은 사용자로부터 비디오 클립 별로 식별 정보를 수신하는 것만으로, 스포츠 경기 내 다양한 순간들(moments)을 분석하는 기술을 제공할 수 있다. 더 나아가, 동일한 플레이어라고 식별되는 영상 데이터가 누적됨에 따라, 해당 플레이어를 자동으로 식별하는 특화 모델이 학습될 수 있다. 특화 모델은 해당 플레이어를 자동으로 식별할 뿐 아니라, 해당 플레이어의 움직임을 보다 정확하게 분류하도록 학습될 수도 있다.
또한, 서비스 서버는 스포츠 동영상에서 검출되는 순간들에 식별 정보 및 모션 유형 정보를 태깅하여, 데이터베이스를 구축할 수 있다. 사용자는 다양한 쿼리를 통하여 데이터베이스에서 원하는 영상을 검색할 수 있다. 예를 들어, 사용자는 i)플레이어를 지정하여 ii)원하는 장면을 검색하는 쿼리를 입력할 수 있다. 서비스 서버는 데이터베이스로부터 쿼리에 대응하는 장면들이 어느 스포츠 동영상 내 어느 시점(프레임)에 해당하는지 검색하고, 검색 결과를 기초로 비디오 클립을 생성하여 사용자에게 제공할 수 있다. 실시예에 따라, 복수의 플레이어들을 지정하여 원하는 장면, 예를 들어, 플레이어 A에게 어시스트를 받아 플레이어 B가 득점한 장면, 혹은 플레이어 C가 플레이어 D에게 블록 당한 장면 등이 검색될 수도 있다.
아래에서 상세히 설명하겠으나, 서비스 서버는 스포츠 경기에서 플레이어 별 기여도를 나타내는 통계를 생성할 수 있다. 예를 들어, 서비스 서버는 농구 경기의 결과를 수치화하여 표현하는 박스 스코어를 생성할 수 있다. 서비스 서버는 박스 스코어 내 세부기록마다 그 세부기록의 장면들을 연동하는 서비스를 제공할 수 있다. 예를 들어, 박스 스코어에서 특정 플레이어의 '스틸' 세부기록이 선택되면, 해당 플레이어가 '스틸' 한 장면들을 포함하는 비디오 클립을 제공할 수 있다. 일 실시예에 따르면, 프론트-엔드 서버는 특정 경기의 박스 스코어에서 '스틸'의 선택 입력에 반응하여, 해당 경기의 스틸 관련 클러스터들을 검색할 수 있다. 프론트-엔드 서버는 검색된 클러스터들에 기초하여, 관련 비디오 클립을 스트리밍 받을 수 있는 정보(예를 들어, 영상 URL 및 적어도 하나의 시간 구간)를 사용자 단말에 제공할 수 있다.
서비스 서버는 사용자에게 제공되는 비디오 클립을 소셜 네트워크 서버나 인스턴트 메시징 서버로 공유할 수 있다. 서비스 서버는 웹 인터페이스를 통하여 사용자에게 서비스를 제공하거나, 혹은 앱 인터페이스를 통하여 사용자에게 서비스를 제공할 수 있다.
도 2는 일 실시예에 따른 스포츠 동영상 기반 플랫폼 서비스를 제공하는 서비스 서버의 동작 방법을 나타낸 동작 흐름도이다. 도 1을 통하여 전술한 것과 같이 서비스 서버는 프론트-엔드 모듈 및 동영상 분석 모듈의 단일 서버로 구현되거나, 혹은 프론트-엔드 서버 및 동영상 분석 서버의 별개 서버들로 구현될 수 있다. 이하, 설명의 편의를 위하여 단일 서버로 구현되는 실시예를 기준으로 설명한다.
도 2를 참조하면, 서비스 서버의 프론트-엔드 모듈은 스포츠 동영상의 링크에 기초하여, 스포츠 동영상의 분석을 요청하는 신호를 동영상 분석 모듈에 전송한다(210). 서비스 서버의 프론트-엔드 모듈은 동영상 분석 모듈로부터 수신되는 플레이어 별 클러스터들(player-specific clusters)을 데이터베이스에 저장한다(220). 플레이어 별 클러스터들은 플레이어 별로 경기 내 기여도로 산출 가능한 장면들(예를 들어, 득점 관련 장면, 수비 관련 장면, 실책이나 반칙 관련 장면 등)에 관한 구간 정보를 포함할 수 있다.
서비스 서버의 프론트-엔드 모듈은 데이터베이스에 기초하여, 스포츠 동영상으로부터 플레이어 별 비디오 클립들(player-specific video clips)을 추출하기 위한 정보를 사용자 단말에 제공한다(230). 사용자 단말에 제공되는 정보는 동영상의 링크 및 플레이어 별 주요 장면을 위한 시간 구간을 포함할 수 있다. 사용자 단말은 수신된 정보에 기초하여, 스트리밍 서버에 해당하는 주요 장면에 해당하는 시간 구간만을 선별적으로 스트리밍 요청할 수 있다.
서비스 서버의 프론트-엔드 모듈은 사용자 단말로부터 적어도 하나의 클러스터의 비식별 플레이어를 식별하는 입력을 수신한다(240). 서비스 서버의 프론트-엔드 모듈은 사용자 입력에 기초하여, 적어도 하나의 해당하는 클러스터의 식별 정보를 데이터베이스에 갱신한다(250).
서비스 서버는 사용자로부터 적어도 하나의 클러스터의 비식별 플레이어를 식별하는 입력을 수신한다. 사용자는 비식별 플레이어들 별로 비디오 클립을 제공받게 되므로, 비디오 클립 별로 비식별 플레이어를 식별하는 입력을 할 수 있다. 비디오 클립은 클러스터 단위로 추출되거나 생성되는 바, 수신된 입력은 해당하는 클러스터에 대응하는 비식별 플레이어를 식별하는 정보에 해당한다.
서비스 서버는 사용자의 입력에 기초하여, 적어도 하나의 해당하는 클러스터의 식별 정보를 설정한다. 일 실시예에 따르면, 클러스터는 {스포츠 동영상의 액세스 정보, 식별 정보, 영역들의 인덱스들}의 필드들을 포함할 수 있다. 이 경우, 서비스 서버는 사용자의 입력에 기초하여, 클러스터의 식별 정보를 설정할 수 있다. 식별 정보는 스포츠 동영상 기반 플랫폼 서비스의 계정 정보에 해당할 수 있다. 또는, 식별 정보는 스포츠 동영상 기반 플랫폼 서비스와 연동하는 소셜 네트워크 서비스의 계정 정보, 혹은 스포츠 동영상 기반 플랫폼 서비스와 연동하는 인스턴트 메시징 서비스의 계정 정보에 해당할 수도 있다. 식별 정보는 비식별 플레이어를 식별하기 위한 미리 정해진 템플릿의 정보(예를 들어, 성, 이름, 닉네임, 소속 팀, 등번호, 성별, 나이, 키, 몸무게, 포지션 등)를 포함할 수 있다. 실시예에 따라, 식별 정보는 영역에 저장될 수도 있다. 이 경우, 클러스터는 {영역들의 인덱스들}의 필드들을 포함하고, 각 영역들이 {식별 정보}의 필드를 포함할 수 있다.
또는, 서비스 서버는 사용자 단말로부터 적어도 하나의 클러스터에 포함된 적어도 하나의 구간의 플레이어가 해당 클러스터에 속하지 않는다는 피드백 입력을 수신하여, 해당 구간을 해당 클러스터에서 배제할 수 있다.
또는, 서비스 서버는 사용자 단말로부터 적어도 하나의 클러스터에 포함된 적어도 하나의 구간의 플레이어가 다른 클러스터에 속한다는 피드백 입력을 수신하여, 해당 구간을 해당 클러스터에서 배제하고 다른 클러스터에 포함시킬 수 있다.
또한, 서비스 서버의 프론트-엔드 모듈은 스포츠 동영상 기반 플랫폼 서비스를 제공할 수 있다(260). 예를 들어, 서비스 서버는 식별 정보가 설정된 클러스터들(혹은 영역들)에 기초하여, 스포츠 동영상 기반 플랫폼 서비스를 제공할 수 있다. 서비스 서버는 스포츠 경기를 자동으로 분석하거나, 스포츠 경기의 내용을 지표화 하는 통계 정보를 제공하거나, 통계 정보와 연동하는 비디오 클립을 제공하거나, 스포츠 동영상의 세부적(detail) 검색 기능을 제공하거나, 검색 결과에 해당하는 비디오 클립을 제공하는 등의 다양한 서비스를 제공할 수 있다. 또한, 서비스 서버는 비디오 클립을 소셜 네트워크 서비스나 인스턴트 메시징 서비스에 공유하는 기능도 제공할 수 있다.
서비스 서버는 사용자 단말에게 플레이어들의 기여도를 나타내는 통계를 제공하고, 사용자 단말로부터 통계에 포함된 세부기록을 선택하는 입력을 수신할 수 있다. 서비스 서버는 데이터베이스에 기초하여 선택된 세부기록과 관련된 적어도 하나의 서브-클러스터를 획득하고, 적어도 하나의 서브-클러스터에 기초하여, 스포츠 동영상으로부터 비디오 클립을 추출하기 위한 정보를 사용자 단말에 제공할 수 있다.
또는, 서비스 서버는 사용자 단말로부터 검색 대상 플레이어 및 검색 대상 장면을 포함하는 검색 쿼리를 수신하고, 데이터베이스로부터, 검색 쿼리에 대응하는 서브-클러스터를 검색할 수 있다. 서비스 서버는 검색된 서브-클러스터에 기초하여, 스포츠 동영상으로부터 비디오 클립을 추출하기 위한 정보를 사용자 단말에 제공할 수 있다.
또는, 서비스 서버는 클러스터들의 신뢰도에 기초하여, 과금 레벨을 결정하거나, 클러스터들을 수정하는 피드백 입력에 기초하여, 보상 레벨을 결정할 수 있다.
뿐만 아니라, 서비스 서버는 갱신된 데이터베이스에 의존하는 트레이닝 데이터를 생성하여, 플레이어들의 검출 정보, 식별 정보 및 모션 유형 정보 중 적어도 하나를 추정하는 특화 모델을 학습할 수 있다.
서비스 서버는 식별 정보가 설정된 클러스터들(혹은 영역들)에 기초하여, 식별된 플레이어를 위한 특화 모델을 학습할 수 있다. 또는, 서비스 서버는 복수의 식별된 플레이어들이 속한 팀을 위한 특화 모델을 학습할 수 있다. 특화 모델은 스포츠 동영상에서 플레이어들의 영역들을 검출하는 검출 모듈, 영역들을 분류하는 분류 모듈, 영역들을 식별하는 식별 모듈, 또는 전술한 기능들의 다양한 조합을 위한 복합 모듈 등으로 학습될 수 있다.
서비스 서버는 특화 모델을 이용하여 식별 정보가 입력된 플레이어에 관한 보다 높은 품질의 서비스를 제공할 수 있다. 일 예로, 식별 정보가 설정된 데이터가 축적되어 특화 모델이 학습됨에 따라, 새로운 스포츠 동영상에서 해당 플레이어의 식별 정보까지 자동으로 설정될 수 있다. 또한, 특화 모델을 통하여 해당 플레이어의 경기 내용이 보다 정확하게 분석될 수 있다.
도면에 도시하지 않았으나, 일 실시예에 따르면, 서비스 서버는 비식별 플레이어들을 촬영한 스포츠 동영상으로부터 비식별 플레이어들에 대응하는 영역들을 검출한다. '검출'이란 영상 내 검출 대상에 해당하는 일부 영역을 결정하는 동작일 수 있다. 스포츠 동영상은 복수의 프레임들을 포함하고, 서비스 서버는 개별 프레임에서 개별 비식별 플레이어가 차지하는 영역을 검출할 수 있다. 서비스 서버는 스포츠 동영상에서 해당하는 스포츠 경기를 플레이하는 플레이어들을 검출하는 검출기를 이용하여, 비식별 플레이어들에 대응하는 영역들을 검출할 수 있다. 비식별 플레이어들에 대응하는 영역들은 미리 정해진 형상을 가질 수 있으며, 예를 들어 사각형의 윈도우 형상을 가질 수 있다. 서비스 서버는 스포츠 동영상의 개별 프레임 단위로, 해당 프레임에서 비식별 플레이어들에 대응하는 윈도우들을 검출할 수 있다. 일 예로, 서비스 서버는 프레임을 지시하는 프레임 인덱스, 검출된 윈도우의 위치를 지시하는 정보인 (x, y)-좌표와 검출된 윈도우의 크기를 지시하는 정보인 (width, height)를 획득할 수 있다. 이 경우, 개별 영역은 {frame_index, x-coordinate, y-coordinate, width, height}로 정의될 수 있다. 서비스 서버는 검출 모듈을 직접 구동할 수도 있고, 서비스 서버와 연동되어 검출 모듈을 구동하는 다른 서버로 검출을 요청할 수도 있다.
서비스 서버는 비식별 플레이어들을 서로 구별하도록 검출된 영역들을 클러스터링하여, 비식별 플레이어 별 클러스터들(unidentified player-specific clusters)을 생성한다(220). 서비스 서버는 비지도식 학습 기법에 기반하여 영역들을 클러스터링 할 수 있다. 예를 들어, 서비스 서버는 K-means clustering 기법으로 대표되는 군집 분석(cluster analysis) 기법을 이용하여 영역들을 클러스터링 할 수 있다. 생성된 클러스터는 해당하는 클러스터에 속한 영역들을 지시하는 정보(예를 들어, 영역들의 인덱스들 등)을 포함할 수 있다.
클러스터링을 위한 K 파라미터는 경기에 참여한 플레이어들의 수를 사용자로부터 입력 받아 설정될 수 있다. 혹은, 스포츠 경기에 따라 동시에 참여 가능한 플레이어들의 수(예를 들어, 농구의 경우 한 팀당 5명씩 총 10명)를 K 파라미터의 초기 값으로 설정하고, K 파라미터의 값을 조절하면서 반복적으로(iteratively) 클러스터링을 수행함으로써, 해당하는 스포츠 동영상에서 스포츠 경기에 참여한 플레이어들의 수를 추정할 수도 있다. 교체 멤버까지 고려하면, 스포츠 경기에 참여한 플레이어들의 수는 동시에 참여 가능한 플레이어들의 수보다 많을 수 있다. 아래에서 상세하게 설명하겠으나, 실시예에 따라, 서비스 서버는 군집 분석 기법으로 계층적 군집화 기법을 이용할 수도 있다.
서비스 서버는 클러스터링을 위하여 영역의 특징을 추출할 수 있다. 일 실시예에 따르면, 서비스 서버는 개별 영역으로부터 외형 특징을 추출할 수 있다. 외형 특징은 다양한 방식으로 정의될 수 있다. 일 예로, 외형 특징은 다차원의 벡터로, 각각의 차원에서 체격, 키, 피부색, 머리 스타일, 얼굴, 운동복, 등번호, 신발, 보호대, 및/또는 악세서리 등과 관련된 정보를 포함할 수 있다. 또는, 서비스 서버는 영역들의 시퀀스로부터 모션 특징을 추출할 수 잇다. 모션 특징은 다양한 방식으로 정의될 수 있다. 일 예로, 모션 특징은 다차원의 벡터로 비식별 플레이어의 자세로부터 추출되는 정보나 비식별 플레이어의 움직임으로부터 추출되는 정보 등을 포함할 수 있다.
서비스 서버는 외형 특징이나 모션 특징에 기초하여, 영역들을 클러스터링 할 수 있다. 예를 들어, 서비스 서버는 외형 특징이 서로 유사한 영역들을 동일한 클러스터로 분류하고, 외형 특징이 서로 다른 영역들을 상이한 클러스터로 분류할 수 있다. 또는, 서비스 서버는 모션 특징이 서로 유사한 영역들을 동일한 클러스터로 분류하고, 모션 특징이 서로 다른 영역들을 상이한 클러스터로 분류할 수 있다. 실시예에 따라, 서비스 서버는 외형 특징과 모션 특징의 조합에 기초하여, 영역들을 클러스터링 할 수 있다. 예를 들어, 도 3을 참조하면, 서비스 서버는 외형 특징과 모션 특징의 조합이 서로 유사한 영역들을 동일한 클러스터로 분류하고, 외형 특징과 모션 특징의 조합이 서로 다른 영역들을 상이한 클러스터로 분류할 수 있다. 설명의 편의 상 도 3에서는 세 개의 클러스터들만 도시되었으나, 앞서 설명한 것과 같이 스포츠 동영상에 포함된 비식별 플레이어들의 수만큼의 클러스터들이 생성될 수 있다. 또한, 도 3에서는 외형 특징과 모션 특징을 각각 단일 차원으로 도시하였으나, 앞서 설명한 것과 같이 외형 특징이나 모션 특징은 다차원 정보를 포함할 수 있다.
일 실시예에 따르면, 외형 특징은 단일 프레임의 영역에서 추출되고, 모션 특징은 복수 프레임들의 영역 시퀀스에서 추출될 수 있다. 이 경우, 영역과 영역 시퀀스 사이의 동기화 작업이 요구될 수 있다. 일 예로, 특정 프레임에서 검출된 영역의 외형 특징은 해당 영역을 중심으로 이전 프레임 및 이후 프레임에서 검출된 영역들의 외형 특징들과 함께 통계 처리(평균 등)될 수 있다. 이전 프레임 및 이후 프레임의 범위는 모션 특징을 추출하기 위한 영역 시퀀스의 프레임 범위에 대응될 수 있다.
서비스 서버는 생성된 클러스터들에 기초하여, 스포츠 동영상으로부터 비식별 플레이어 별 비디오 클립들(unidentified player-specific video clips)을 추출한다(230). 서비스 서버는 각각의 클러스터에 대응하여, 해당 클러스터에 포함된 영역들의 프레임 인덱스들, 및 각 프레임 내에서 영역의 위치와 크기 등을 획득할 수 있다. 서비스 서버는 스포츠 동영상으로부터 개별 클러스터에 해당하는 프레임 인덱스들의 프레임들을 추출함으로써, 해당 클러스터를 위한 비디오 클립을 생성할 수 있다.
일 실시예에 따르면, 서비스 서버는 비디오 클립에 시각적 효과를 부여할 수 있다. 서비스 서버는 프레임 내 영역의 위치와 크기에 기초하여, 스포츠 동영상에서 추출되는 프레임을 절단할 수 있다. 또는, 서비스 서버는 프레임 내 영역의 위치와 크기에 기초하여, 해당 프레임에서 해당 영역을 강조하는 시각적 효과를 부여할 수 있다. 또는, 서비스 서버는 클러스터와 관련된 정보나 영역에 관련된 정보를 자막 등의 형태로 부가할 수 있다.
서비스 서버는 추출된 비디오 클립들을 비식별 플레이어들 별로 사용자에게 제공한다. 서비스 서버는 웹 인터페이스 및/또는 앱 인터페이스를 통하여 비디오 클립들을 사용자에게 제공할 수 있다. 실시예에 따라, 서비스 서버는 비디오 클립들을 소셜 네트워크 서비스 및/또는 인스턴트 메시징 서비스를 통하여 사용자에게 제공할 수도 있다.
도 4는 일 실시예에 따른 스포츠 동영상 기반 플랫폼 서비스를 설명하는 도면이다. 도 4를 참조하면, 스포츠 동영상은 복수의 프레임들(..., k, k+1, ..., l, l+1, ??, m, m+1, ...)을 포함할 수 있다. 서비스 서버는 복수의 프레임들에서 복수의 비식별 플레이어들의 영역들(401 내지 416)을 검출할 수 있다.
서비스 서버는 비지도식 학습 기법을 이용하여, 영역들(401 내지 416)을 클러스터링 할 수 있다. 예를 들어, 서비스 서버는 영역(401), 영역(403), 영역(413) 및 영역(416)을 제1 클러스터(C1)로 분류하고, 영역(405), 영역(408), 영역(411) 및 영역(414)을 제2 클러스터(C2)로 분류하며, 영역(402), 영역(404), 영역(406) 및 영역(409)을 제3 클러스터(C3)로 분류하고, 영역(407), 영역(410), 영역(412) 및 영역(415)을 제4 클러스터(C4)로 분류할 수 있다.
서비스 서버는 제1 클러스터 내지 제4 클러스터에 기초하여, 스포츠 동영상으로부터 비식별 플레이어 별 비디오 클립들을 추출할 수 있다. 예를 들어, 서비스 서버는 제1 클러스터에 대응하는 프레임들(k, k+1, m, m+1)을 추출하여 제1 비식별 플레이어를 위한 비디오 클립을 생성할 수 있다. 또한, 서비스 서버는 제2 클러스터에 대응하는 프레임들(l, l+1, m, m+1)을 추출하여 제2 비식별 플레이어를 위한 비디오 클립을 생성할 수 있다. 서비스 서버는 제3 클러스터에 대응하는 프레임들(k, k+1, l, l+1)을 추출하여 제3 비식별 플레이어를 위한 비디오 클립을 생성할 수 있다. 서비스 서버는 제4 클러스터에 대응하는 프레임들(l, l+1, m, m+1)을 추출하여 제4 비식별 플레이어를 위한 비디오 클립을 생성할 수 있다.
서비스 서버는 비식별 플레이어 별로 생성된 비디오 클립들을 사용자에게 제공함으로써, 비디오 클립 별로 식별 정보를 수신할 수 있다. 예를 들어, 서비스 서버는 제1 클러스터에 대응하여 팀A의 제1 플레이어라는 식별 정보를 수신하고, 제2 클러스터에 대응하여 팀A의 제2 플레이어라는 식별 정보를 수신하며, 제3 클러스터에 대응하여 팀B의 제1 플레이어라는 식별 정보를 수신하고, 제4 클러스터에 대응하여 팀B의 제2 플레이어라는 식별 정보를 수신할 수 있다.
서비스 서버는 복수의 사용자들로부터 수신되는 식별 정보를 수집할 수 있다. 예를 들어, 서비스 서버는 제1 사용자로부터 제1 클러스터의 비디오 클립을 식별하는 입력을 수신하고, 제2 사용자로부터 제2 클러스터의 비디오 클립을 식별하는 입력을 수신할 수 있다. 또는, 서비스 서버는 동일한 클러스터의 비디오 클립을 식별하는 정보를 복수의 사용자들로부터 수신하고, 가장 높은 신뢰도의 식별 정보를 채택할 수 있다. 예를 들어, 서비스 서버는 복수의 사용자들로부터 동일한 클러스터의 비디오 클립에 서로 다른 식별 정보를 수신할 수 있다. 이 경우, 서비스 서버는 가장 많은 사용자들에 의하여 입력된 식별 정보를 채택할 수 있다. 또는, 서비스 서버는 신뢰도가 가장 높은 사용자에 의하여 입력된 식별 정보를 채택할 수 있다. 또는, 서비스 서버는 사용자의 신뢰도를 기반으로 해당 사용자에 의하여 입력된 식별 정보에 점수를 부여하고, 가장 높은 점수를 가지는 식별 정보를 채택할 수도 있다. 사용자의 신뢰도는 해당 사용자가 기존에 스포츠 동영상 기반 플랫폼 서비스를 이용한 이력이나 해당 사용자의 본인 인증 레벨 등에 기초하여 결정될 수 있다.
도 5는 일 실시예에 따른 스포츠 동영상 기반 플랫폼 서비스를 설명하는 도면이다. 서비스 서버는 모션 유형들 별로 클러스터링을 수행할 수 있다. 이를 위하여, 서비스 서버는 스포츠 동영상에서 검출되는 비식별 플레이어들의 영역들을 미리 정해진 모션 유형 별로 분류하고, 모션 유형 별 영역들(motion type-specific regions)을 클러스터링 할 수 있다. 또는, 서비스 서버는 계층적 군집화 기법을 이용하여 영역들을 계층적으로 클러스터링 할 수 있다.
스포츠 경기에서 나타나는 모션 유형들 별 모션 특징은 비식별 플레이어들에 공통적으로 포함될 수 있다. 예를 들어, 제1 비식별 플레이어의 덩크 슛 모션과 제2 비식별 플레이어의 덩크 슛 모션은 공통적으로 덩크 슛을 위한 모션 특징을 포함할 수 있다. 또한, 제1 비식별 플레이어의 점프 슛 모션과 제2 비식별 플레이어의 점프 슛 모션은 공통적으로 점프 슛 모션을 위한 모션 특징을 포함할 수 있다. 도 6을 참조하면, 제1 비식별 플레이어의 덩크 슛 모션은 모션 벡터(610)로 표현되고, 제1 비식별 플레이어의 점프 슛 모션은 모션 벡터(620)으로 표현되며, 제2 비식별 플레이어의 덩크 슛 모션은 모션 벡터(630)으로 표현되고, 제2 비식별 플레이어의 점프 슛 모션은 모션 벡터(640)으로 표현될 수 있다.
도 6의 실시예에서, 모션 벡터(610)과 모션 벡터(620) 사이의 거리는 모션 벡터(610)과 모션 벡터(630) 사이의 거리보다 멀고, 모션 벡터(640)과 모션 벡터(630) 사이의 거리는 모션 벡터(640)과 모션 벡터(620) 사이의 거리보다 멀 수 있다. 이 경우, 비식별 플레이어들 별로 클러스터링이 수행되지 못하고, 모션 유형 별로 클러스터링 될 수 있다.
일 실시예에 따르면, 서비스 서버는 영역들의 모션 유형들을 분류한 뒤, 동일한 모션 유형에 해당하는 영역들 사이에서 클러스터링을 수행할 수 있다. 이 경우, 영역들은 덩크 슛 모션에 해당하는 제1 클러스터(650) 및 점프 슛 모션에 해당하는 제2 클러스터(660)로 분류될 수 있다. 실시예에 따라 영역 검출 및 모션 유형 분류는 동시에 수행될 수도 있다. 예를 들어, 스포츠 동영상으로부터 비식별 플레이어들을 검출하면서 해당하는 영역의 모션 유형을 분류(classify)하도록 학습된 검출 모듈이 이용될 수 있다. 물론 실시예에 따라 영역 검출 및 모션 유형 분류는 별도의 모듈(혹은 신경망)에 의하여 수행될 수도 있다. 영역들이 모션 유형들 별로 분류된 이후, 서비스 서버는 모션 유형들 별로 비식별 플레이어들을 서로 구별하도록 모션 유형 별 영역들(motion type-specific regions)을 클러스터링할 수 있다.
일 실시예에 따르면, 서비스 서버는 계층적 군집화 기법을 이용하여, 우선 1차적 클러스터링을 수행한 뒤, 각 클러스터 내에서 2차적 클러스터링을 수행할 수 있다. 이 경우, 1차적 클러스터링을 통하여 제1 클러스터(650) 및 제2 클러스터(660)가 생성되고, 2차적 클러스터링을 통하여 제1 클러스터(650) 내에서 제1 비식별 플레이어와 제2 비식별 플레이어가 구별되고, 제2 클러스터(660) 내에서 제1 비식별 플레이어와 제2 비식별 플레이어가 구별될 수 있다. 1차적 클러스터링을 위한 K1은 해당 스포츠 경기에서 허용되는 모션 유형들의 수에 대응할 수 있고, 2차적 클러스터링을 위한 K2는 해당 스포츠 경기에 참여한 플레이어들의 수에 대응할 수 있다.
도 7을 참조하면, 모션 유형, 모션 특징 및 외형 특징에 따라 영역들이 클러스터링 되어 서브-클러스터들이 생성되는 실시예가 도시된다. 다시 도 6을 참조하면, 아래에서 상세히 설명하겠으나, 제1 클러스터(650) 내 제1 비식별 플레이어에 해당하는 서브-클러스터와 제2 클러스터(660) 내 제1 비식별 플레이어에 해당하는 서브-클러스터는 트래킹 정보, 외형 정보 또는 이들의 조합에 기초하여 서로 매칭될 수 있다. 물론 제1 클러스터(650) 내 제2 비식별 플레이어에 해당하는 서브-클러스터와 제2 클러스터(660) 내 제2 비식별 플레이어에 해당하는 서브-클러스터도 트래킹 정보, 외형 정보 또는 이들의 조합에 기초하여 서로 매칭될 수 있다.
도 5를 참조하면, 서비스 서버는 영역들(501 내지 516)을 모션 유형 별로 분류할 수 있다. 예를 들어, 영역(501) 및 영역(511)은 드리블 모션으로 분류되고, 영역(503), 영역(510) 및 영역(514)는 슛 모션으로 분류되며, 영역(504)는 블록 모션으로 분류되고, 영역(506)은 패스 모션으로 분류되며, 영역(513) 및 영역(516)은 스크린 모션으로 분류될 수 있다.
서비스 서버는 모션 유형들 별로 비식별 플레이어들을 서로 구별하도록 모션 유형 별 영역들을 클러스터링 할 수 있다. 예를 들어, 서비스 서버는 드리블 모션으로 분류된 영역(501)과 영역(511)을 서로 다른 서브-클러스터들(DR1, DR2)로 클러스터링 할 수 있다. 서비스 서버는 슛 모션으로 분류된 영역(503), 영역(510) 및 영역(514)를 서로 다른 서브-클러스터들(SH1, SH2, SH3)로 클러스터링 할 수 있다. 서비스 서버는 스크린 모션으로 분류된 영역(513) 및 영역(516)을 동일한 서브-클러스터(SC1)로 클러스터링 할 수 있다.
서비스 서버는 영역들의 트래킹 정보를 이용하여 서로 다른 모션 유형의 서브-클러스터들을 매칭할 수 있다. 예를 들어, 서비스 서버는 영역(501)과 영역(503)이 서로 연속된 영역들이라는 트래킹 정보에 기초하여, DR1과 SH1을 매칭하여 동일한 클러스터(C1)로 분류할 수 있다. 서비스 서버는 영역(511)과 영역(514)가 서로 연속된 영역들이라는 트래킹 정보에 기초하여, DR2와 SH3을 매칭하여 동일한 클러스터(C2)로 분류할 수 있다.
서비스 서버는 영역들의 외형 정보를 이용하여 서로 다른 모션 유형의 서브-클러스터들을 매칭할 수 있다. 예를 들어, 서비스 서버는 영역(514)의 외형 특징과 영역(506)의 외형 특징이 유사하다는 판단에 따라, BR1과 PA1을 동일한 클러스터(C3)로 분류할 수 있다. 서비스 서버는 영역(513)의 외형 특징과 영역(502) 혹은 영역(503)의 외형 특징이 유사하다는 판단에 따라, SC1을 클러스터(C1)으로 분류할 수 있다.
도 5의 실시예에서, 영역들이 모션 유형들 별로 분류된 뒤 클러스터링 되는 예시를 설명하였으나, 전술한 것과 같이 계층적 군집화 기법을 이용하는 경우에도 실질적으로 동일하게 동작될 수 있다. 또한, 서브-클러스터들의 매칭을 위하여 트래킹 정보를 적용한 이후 외형 정보를 적용하는 예시를 설명하였으나, 트래킹 정보와 외형 정보를 적용하는 순서나 방식은 다양하게 변형될 수 있다.
일 실시예에 따르면, 서비스 서버는 미리 정해진 모션 유형에 따른 서브-클러스터들을 이용하여 비디오 클립을 생성할 수 있다. 예를 들어, 서비스 서버는 공격 모션에 해당하는 모션 유형들의 서브-클러스터들 만을 이용하여 비디오 클립을 생성할 수 있다. 더 나아가, 서비스 서버는 공격 모션 중 득점에 성공한 장면에 해당하는 영역 시퀀스 만을 이용하여 비디오 클립을 생성할 수도 있다.
도 8은 일 실시예에 따른 범용 모델 및 특화 모델을 설명하는 도면이다. 도 8을 참조하면, 범용 모델은 스포츠 동영상으로부터 비식별 플레이어들을 범용적으로 검출하는 검출기 및 검출된 영역의 모션 유형을 범용적으로 분류하는 분류기를 포함할 수 있다. 범용 모델은 비식별 플레이어들의 데이터에 독립적으로 학습된 검출기 혹은 분류기를 포함할 수 있다.
특화 모델은 스포츠 동영상 기반 플랫폼 서비스에 따라 식별 정보가 설정된 데이터베이스를 활용하여, 특정 플레이어나 특정 그룹, 혹은 특정 팀에 특화되어, 플레이어를 검출하는 검출기, 모션 유형을 분류하는 분류기, 플레이어를 식별하는 식별기, 또는 검출 기능, 분류 기능 및/또는 식별 기능이 다양하게 조합된 혼합 모듈을 포함할 수 있다. 범용 모델과 특화 모델은 인공 신경망 기반의 모델일 수 있다. 이 경우, 데이터베이스는 식별 정보가 설정되는 플레이어들의 데이터에 의존하는 트레이닝 데이터를 포함할 수 있다.
특화 모델은 특정 그룹에 새롭게 학습된 모델일 수 있으며, 실시예에 따라 범용 모델을 기반으로 특정 그룹에 적합하게 추가로 학습된 모델일 수 있다. 예를 들어, 국적, 연령대, 성별 등에 따라 특정 그룹에 특화되어 더 높은 성능을 내도록 범용 모델이 추가적으로 학습됨으로써, 특화 모델이 생성될 수 있다.
서비스 서버는 특화 모델을 이용하여 새롭게 수신되는 스포츠 동영상으로부터 비식별 플레이어 별 클러스터들의 식별 정보를 자동으로 설정할 수 있다. 스포츠 동영상은 라이브 스트리밍 영상일 수 있으며, 이 경우 서비스 서버는 특화 모델에 기초하여, 스포츠 동영상으로부터 자동으로 식별되는 플레이어들의 기여도를 나타내는 통계를 실시간으로 생성할 수 있다. 플레이어들의 기여도를 나타내는 통계는 농구 경기 중인 양 팀의 점수뿐 아니라, 개별 플레이어의 득점 성공 횟수, 득점 시도 횟수, 출전시간 중 팀 득실, 총 득점 수, 공격 리바운드 수, 수비 리바운드 수, 어시스트 수, 스틸 수, 블록 수, 피 블록 수, 파울 수, 턴오버 수 등의 세부기록들을 포함할 수 있다.
도 9는 일 실시예에 따른 농구 경기의 플레이어 별 기여도를 나타내는 통계와 연동하여 제공되는 비디오 클립들을 설명하는 도면이다. 도 9을 참조하면, 서비스 서버는 농구 동영상에서 검출되는 영역의 식별 정보와 영역의 모션 유형에 따라 플레이어 별 경기 기여도를 통계적으로 나타내는 박스 스코어(box score)를 생성할 수 있다.
서비스 서버는 영역의 모션 유형에 따라, 추가적으로 스포츠 동영상을 분석할지 여부를 결정할 수 있다. 예를 들어, 서비스 서버는 모션 유형이 슛 모션이라는 판단에 따라, 슛이 성공하였는지 여부를 추가적으로 분석할 수 있다. 서비스 서버는 슛 모션의 프레임 이후 공이 림을 통과하였는지를 여부를 확인할 수 있다. 서비스 서버는 슛 모션 이후의 프레임들에서 림에 해당하는 영역들을 검출할 수 있고, 검출된 영역들에서 공이 통과하였는지 여부를 판단할 수 있다.
서비스 서버는 박스 스코어를 제공함과 함께, 박스 스코어 내 세부기록의 선택에 반응하여 선택된 세부기록의 장면들을 포함하는 비디오 클립을 제공할 수 있다. 예를 들어, 박스 스코어 내 FG은 08-14와 같이 '득점 성공 횟수'-'득점 시도 횟수'로 표시될 수 있다. 사용자가 '득점 성공 횟수'에 해당하는 08을 선택하는 경우, 서비스 서버는 해당하는 플레이어가 해당 경기에서 득점에 성공한 장면들을 포함하는 비디오 클립을 생성하여 사용자에게 제공할 수 있다.
보다 구체적으로, 박스 스코어의 세부기록들은 해당하는 영역들(혹은 서브-클러스터)을 연결 리스트 등의 자료구조로 저장할 수 있다. 서비스 서버는 연결 리스트를 따라서 관련된 영역들을 획득하고, 각 영역에 저장된 정보(프레임 인덱스, 윈도우 위치, 윈도우 크기 등)에 기초하여 농구 동영상으로부터 비디오 클립을 추출할 수 있다. 전술한 것과 같이 서비스 서버는 비디오 클립에 시각적 효과를 부여할 수도 있다.
도 10은 일 실시예에 따른 비디오 클립에 대한 사용자의 피드백을 반영하는 기능을 설명하는 도면이다. 도 10을 참조하면, 서비스 서버는 비디오 클립에 대한 사용자의 피드백을 수신할 수 있다. 예를 들어, 서비스 서버는 사용자로부터 비디오 클립의 클러스터에 포함된 적어도 하나의 영역의 비식별 플레이어가 해당 클러스터에 속하지 않는다는 피드백 입력(1010)을 수신할 수 있다. 서비스 서버는 해당 영역을 해당 클러스터에서 배제 혹은 제거하거나, 더 나아가 해당 영역을 포함하는 서브-클러스터(1015)를 해당 클러스터에서 배제 혹은 제거할 수 있다. 이 경우, 실시예에 따라 서비스 서버는 배제된 영역이나 서브-클러스터를 미분류 풀(pool)에 임시로 저장할 수 있다. 서비스 서버는 미분류 풀에 임시로 저장된 서브-클러스터들의 비디오 클립들을 사용자에게 제공하면서, 해당 서브-클러스터들이 어느 클러스터에 속하는지 여부를 문의할 수 있다.
또는, 서비스 서버는 사용자로부터 비디오 클립의 클러스터에 포함된 적어도 하나의 영역의 비식별 플레이어가 다른 클러스터에 속한다는 피드백 입력(1020)을 수신할 수 있다. 서비스 서버는 해당 영역이나 해당 영역을 포함하는 서브 클러스터(1025)를 해당 클러스터에서 배제 혹은 제거할 수 있다. 서비스 서버는 배제된 영역이나 서브-클러스터를 사용자에 의하여 지정된 다른 클러스터에 포함시킬 수 있다.
도면에 도시하지 않았으나, 서비스 서버는 서비스의 정확도(혹은 신뢰도)에 따라 차등적으로 과금 레벨을 결정할 수 있다. 예를 들어, 서비스 서버는 한 경기당 서비스 비용(예를 들어, 1달러)을 기준으로, 검출 정확도, 분류 정확도 또는 이들의 조합에 따라 서비스 비용을 할인할 수 있다. 검출 정확도 및/또는 분류 정확도는 클러스터의 정확도라고 지칭될 수 있다.
또한, 서비스 서버는 사용자의 피드백 입력에 따라 보상 레벨을 결정할 수 있다. 예를 들어, 서비스 서버는 사용자의 피드백 입력에 따라 클러스터의 정확도(혹은 신뢰도)가 향상되는 정도에 따라, 혹은 사용자의 피드백 입력에 따라 특화 모델의 성능이 향상되는 정도에 따라, 다음 번 서비스에 이용 가능한 포인트를 해당 사용자에게 적립할 수 있다.
도 11은 일 실시예에 따른 검색 기능을 설명하는 도면이다. 서비스 서버는 스포츠 동영상의 검색을 위한 데이터베이스를 구축할 수 있다. 서비스 서버는 사용자 단말로부터 검색 쿼리를 수신할 수 있다. 검색 쿼리는 검색 대상 플레이어 및 검색 대상 장면을 포함할 수 있다. 서비스 서버는 데이터베이스로부터 검색 쿼리에 대응하는 스포츠 동영상의 URL 및 해당하는 스포츠 동영상 내 시간 구간(들)을 검색할 수 있다.
서비스 서버는 스트리밍 서버로 비디오 클립을 추출하기 위한 정보를 제공함으로써, 스트리밍 서버에서 사용자에게 비디오 클립이 바로 전송되도록 할 수 있다. 서비스 서버는 스포츠 동영상의 URL 및 시간 구간(들)을 포함하는 검색 결과를 사용자 단말에 제공할 수 있다. 사용자 단말은 검색 결과에 기초하여 스트리밍 서버 혹은 스토리지 서버에 스포츠 동영상의 해당 시간 구간의 영상을 요청할 수 있다.
도면에 도시하지 않았으나, 실시예에 따라, 서비스 서버는 검색된 서브-클러스터(혹은 구간 시퀀스)를 포함하는 클러스터의 {스포츠 동영상의 액세스 정보}에 기초하여 스트리밍 서버 혹은 스토리지 서버로부터 비디오 클립을 추출할 수 있다. 서비스 서버는 비디오 클립을 사용자에게 제공할 수 있다. 서비스 서버는 기 생성된 비디오 클립을 캐싱 할 수 있다. 서비스 서버는 데이터베이스에 비디오 클립의 캐싱 여부를 저장할 수 있다. 서비스 서버는 쿼리 처리 결과 캐싱 된 비디오 클립을 제공하면 되는 것으로 판단되는 경우, 비디오 클립을 추출(혹은 생성)하는 동작을 생략하고 바로 캐싱 된 비디오 클립을 사용자에게 제공할 수 있다.
일 실시예에 따르면, 스포츠 동영상을 촬영한 카메라의 시점에 따라 외형 특징이나 모션 특징이 다르게 추출될 수 있다. 여기서, 카메라의 시점(viewpoint)은 카메라의 3차원 위치 및 카메라의 3차원 오리엔테이션으로 6 자유도(Degree of Freedom; DOF)의 값을 가질 수 있다.
서비스 서버는 카메라의 시점 변화에 강건한 외형 특징이나 모션 특징을 이용할 수 있다. 예를 들어, 서비스 서버는 다차원 외형 벡터에 포함되는 정보가 카메라의 시점에 의존하지 않고 독립적이 되도록 외형 특징(appearance feature)을 인코딩할 수 있다. 카메라 시점에 독립적인 외형 특징은 헤어 스타일, 피부 스타일(혹은 피부타입) 및/또는 문신 스타일 등 플레이어 자체의 스타일 특징; 저지 스타일, 농구화 스타일, 및/또는 기타 악세서리 스타일 등 플레이어가 착용한 물체의 스타일 특징; 및/또는 기준 객체에 기초하여 정규화 된 플레이어의 키나 체격 등 플레이어의 피지컬(physical) 특징을 포함할 수 있다.
플레이어 자체의 스타일 특징과 플레이어가 착용한 물체의 특징은 카메라의 시점에 독립적인 형태로 정의될 수 있다. 기준 객체는 해당하는 스포츠 경기에서 규격화된 외형을 포함하는 객체로, 예를 들어 골대나 경기장에 그려진 라인들을 포함할 수 있다. 스포츠 동영상에 촬영된 기준 객체의 크기를 기준으로 플레이어의 키나 체격 등 피지컬 특징이 정규화 될 수 있다. 기준 객체의 크기는 해당 스포츠 경기에서 규격화되어 있으므로, 기준 객체를 기준으로 정규화 되는 피지컬 특징은 카메라의 시점에 의존하지 않고 독립적일 수 있다.
또한, 서비스 서버는 다차원 모션 벡터에 포함되는 정보가 카메라의 시점에 의존하지 않고 독립적이 되도록 모션 특징(motion feature)을 인코딩할 수 있다. 카메라 시점에 독립적인 모션 특징은 기준 객체를 기준으로 정규화 된 모션(예를 들어, 방향, 크기, 속도 등)이나 포즈를 포함할 수 있다. 플레이어의 관절을 인식 가능한 경우, 모션 특징은 주요 관절 별로 정규화 된 모션이나 포즈를 포함할 수 있다. 여기서, 모션 특징에 활용되는 주요 관절은 모션 유형 별로 정의될 수 있다.
일 실시예에 따르면, 스포츠 동영상이 경기장의 일부가 잘린 채로 촬영될 수 있다. 서비스 서버는 영역 시퀀스를 활용하여, 촬영되지 못하고 잘린 공간에서의 플레이어의 동작을 추정할 수 있다. 예를 들어, 슛 모션이 감지되지 않은 상태에서 공이 림을 통과하거나, 공이 림에 맞는 이벤트가 감지되는 경우, 서비스 서버는 촬영되지 못하고 잘린 공간에서 슛 모션이 발생하였다고 추정할 수 있다. 더 나아가, 서비스 서버는 해당 프레임의 인접한 이전 프레임들로부터 촬영되지 못하고 잘린 공간으로 이동한 플레이어를 찾아, 해당하는 플레이어에 의하여 슛 모션이 발생하였다고 추정할 수 있다.
일 실시예에 따르면, 서비스 서버는 심판의 모션, 심판의 휘슬 소리, 혹은 점수 시스템의 부저 소리 등을 추가로 활용하여, 스포츠 동영상을 분석할 수 있다. 예를 들어, 서비스 서버는 심판의 모션을 이용하여 2점 슛인지 3점 슛인지 여부를 구별할 수 있다. 또는, 서비스 서버는 휘슬 소리나 부저 소리 등을 활용하여, 해당하는 시점에 경기 진행이 중지되었는지 여부를 판단할 수 있다.
일 실시예에 따르면, 서비스 서버는 모션 유형에 따른 연계 상황을 인식할 수 있다. 예를 들어, 서비스 서버는 슛 모션 이전의 패스 모션과 연계하여 어시스트 상황을 인식할 수 있다. 또는, 서비스 서버는 슛 모션 이후의 블록 모션과 연계하여 블록 상황을 인식할 수 있다. 블록 상황의 경우, 슛 모션 이후의 공의 진행 방향을 함께 고려하여 인식할 수도 있다.
도 12는 일 실시예에 따른 추적 클러스터들을 생성하는 동작을 설명하는 도면이다. 도 12를 참조하면, 사용자는 스트리밍 서버(1210)에 스포츠 동영상을 업로드할 수 있다. 사용자는 스트리밍 서버의 링크를 서비스 서버로 제공할 수 있다. 전술한 것과 같이, 스포츠 동영상은 스트리밍 서버(1210) 이외에 스토리지 서버에 업로드 될 수도 있고, 서비스 서버에 직접 업로드 될 수도 있다.
서비스 서버는 해당 링크를 이용하여 스트리밍 서버(1210)에 접속함으로써, 스포츠 동영상을 수신할 수 있다. 실시예에 따라, 서비스 서버는 스포츠 동영상을 스트리밍 받으면서 처리를 하거나, 스포츠 동영상을 다운로드 받은 뒤 처리를 할 수도 있다.
서비스 서버의 전처리 모듈(1220)은 스포츠 동영상을 전처리 할 수 있다. 예를 들어, 서비스 서버는 스포츠 동영상에서 휴식 시간을 제외하고, 경기 시간의 영상을 추출할 수 있다. 만약 스포츠 경기가 4 쿼터로 이루어지는 경우, 서비스 서버는 1 내지 4 쿼터의 경기 영상들을 추출할 수 있다. 또한, 서비스 서버는 경기 영상들에서 경기 비 진행 영상을 제외하고 경기 진행 영상을 추출할 수 있다. 예를 들어, 한 쿼터 내에서도 반칙이나 작전 타임 등으로 인하여 경기가 중단될 수 있다. 서비스 서버는 경기가 중단되는 경기 비 진행 영상을 제외하고, 경기가 진행 중인 경기 진행 영상을 추출할 수 있다. 경기 진행 영상은 스포츠 경기의 규칙에 따라 세분화될 수 있다. 예를 들어, 농구 경기의 경우 반칙을 당한 플레이어에게 프리 드로우가 주어질 수 있고, 축구 경기의 경우 프리 킥이 주어질 수 있다. 서비스 서버는 해당하는 스포츠 경기의 규칙에 따라, 프리 드로우 영상이나 프리 킥 영상을 추출할 수 있다.
서비스 서버는 스포츠 동영상 내 프레임 구간이나 시간 구간을 추출하는 방식으로 영상을 추출할 수 있다. 스포츠 동영상의 전처리는 자동으로 처리되는 자동 모드, 자동으로 처리된 후 사용자의 피드백을 받는 반자동 모드, 혹은 사용자에게 입력 받는 수동 모드로 동작될 수 있다. 예를 들어, 서비스 서버는 1 내지 4 쿼터의 시작 시간 및 종료 시간을 사용자로부터 입력 받을 수 있다. 또는, 서비스 서버는 동영상 분석을 통하여 1 내지 4 쿼터의 시작 장면 후보들 및 종료 장면 후보들을 자동으로 추출하고, 사용자로부터 각 쿼터의 실제 시작 장면 및 실제 종료 장면을 선택 받을 수 있다. 또한, 서비스 서버는 심판의 휘슬 소리나, 심판의 모션을 분석함으로써 반칙으로 인한 경기 중단 상황을 인식할 수 있다. 물론 서비스 서버는 동영상 분석을 통하여 경기 중단 상황을 인식할 수 있다. 예를 들어, 경기 진행 중 플레이어들의 모션 양과 경기 중단 상황에서 플레이어들의 모션 양에 차이가 날 수 있다. 서비스 서버는 동영상 분석을 통하여 플레이어들의 모션 양을 획득함으로써, 경기 중단 상황을 인식할 수 있다.
서비스 서버는 전처리 된 동영상에서 비식별 플레이어들을 검출 및 추적(1230)할 수 있다. 서비스 서버는 스포츠 동영상으로부터 비식별 플레이어들에 대응하는 영역들을 추적하여, 추적 클러스터들(i0, i1, j0, k0)을 생성할 수 있다. 스포츠 동영상은 복수의 프레임들을 포함하고, 추적 클러스터는 복수의 프레임들 중 적어도 일부의 연속된 프레임들에 포함되는 동일한 비식별 플레이어의 영역들을 포함할 수 있다.
서비스 서버는 추적 클러스터들(i0, i1, j0, k0)에 고유한 식별자를 부여할 수 있다. 예를 들어, 서비스 서버는 시작 프레임 및 고유 번호의 조합으로 추적 클러스터에 식별자를 부여할 수 있다. 만약 i번째 프레임에서 시작되는 추적 클러스터가 존재하면, i0의 식별자가 부여될 수 있다. 만약 i번째 프레임에서 시작되는 다른 추적 클러스터가 존재하면, i1의 식별자가 부여될 수 있다. 마찬가지로, j번째 프레임에서 시작되는 추적 클러스터에는 j0의 식별자가 부여되고, k번째 프레임에서 시작되는 추적 클러스터에는 k0의 식별자가 부여될 수 있다.
또한, 서비스 서버는 추적 클러스터의 종료 프레임이나 추적 클러스터의 프레임 수를 지시하는 정보를 식별자에 추가할 수 있다. 아래에서 설명하겠으나, 추적 클러스터들 사이의 매칭을 수행할 때, 일부의 프레임이라도 겹치는 경우 매칭을 생략할 수 있다. 서비스 서버는 식별자에 추가된 종료 프레임이나, 프레임 수를 이용하여 추적 클러스터들이 서로 겹치는지 여부를 용이하게 판단할 수 있다.
스트리밍 방식으로 스포츠 동영상을 처리하는 경우, 서비스 서버는 현재 프레임에서 추적 클러스터가 여전히 유효한지 여부를 지시하는 정보를 식별자에 추가할 수도 있다.
스포츠 동영상에서 비식별 플레이어들을 추적하는 과정에서, 다양한 요인으로 인하여 비식별 플레이어의 추적이 끊길 수 있다. 예를 들어, 카메라의 시점에 따라 비식별 플레이어들끼리 서로 겹치는 경우가 발생할 수 있다. 또는, 비식별 플레이어가 카메라의 시점에서 벗어나는 경우가 발생할 수 있다. 또는, 스포츠 동영상의 촬영 중 장애물로 인하여 화면의 일부 또는 전부가 가려지는 경우가 발생할 수 있다. 또는, 기타 기술적인 이유로 추적 모듈이 비식별 플레이어의 추적을 놓칠 수 있다. 이러한 경우, 추적이 끊기기 전까지의 제1 추적 클러스터가 생성되고, 추적이 끊기고 난 이후 새롭게 추적되는 제2 추적 클러스터가 생성될 수 있다. 아래 도 13에서는 동일한 비식별 플레이어에 대응하여 분리되어 생성되는 추적 클러스터들을 매칭을 통하여 병합하는 실시예를 설명한다.
도 13은 일 실시예에 따른 추적 클러스터들을 매칭하는 동작을 설명하는 도면이다. 도 13을 참조하면, 서비스 서버는 추적 클러스터 별로 모션 유형을 분류(1310)하고 특징을 추출(1320)할 수 있다. 서비스 서버는 추적 클러스터에 포함된 비식별 플레이어의 외형 특징을 추출할 수 있다. 전술한 것과 같이 외형 특징은 카메라의 시점에 독립적인 다차원 특징 벡터를 포함할 수 있다.
서비스 서버는 미리 정해진 모션 유형들에 기초하여 추적 클러스터에 포함된 적어도 일부의 구간의 모션 유형을 분류할 수 있다. 예를 들어, 서비스 서버는 추적 클러스터에 포함된 복수의 영역들 중 미리 정해진 모션 유형들 중 어느 하나에 해당하는 적어도 일부의 연속된 영역들을 검출할 수 있다. 일 예로, 추적 클러스터(i0)를 참조하면, 서비스 서버는 드리블 구간과 패스 구간을 검출할 수 있다. 서비스 서버는 추적 클러스터에 포함되는 연속된 장면들을 시퀀셜하게(sequentially) 입력 받아, 미리 정해진 모션 유형들 중 적어도 하나를 출력하는 신경망 모델을 이용할 수 있다. 서비스 서버는 모션 유형에 기초하여 추적 클러스터 내 해당 구간에 포함된 비식별 플레이어의 모션 특징을 추출할 수 있다. 전술한 것과 같이 모션 특징은 카메라의 시점에 독립적인 다차원 특징 벡터를 포함할 수 있다.
서비스 서버는 슛 구간이 검출되는 경우, 해당하는 비식별 플레이어가 슛을 시도한 코트 상 위치를 별도로 태깅할 수 있다. 아래에서 설명하겠으나, 서비스 서버는 득점 이벤트를 감지하여, 비식별 플레이어의 슛 시도가 성공하였는지 여부를 추가로 태깅할 수 있다.
실시예에 따라, 서비스 서버는 추적 클러스터에 포함된 복수의 영역들 중 공을 소유한 상태에 해당하는 영역들을 추출하고, 추출된 영역들 중 미리 정해진 모션 유형들 중 어느 하나에 해당하는 적어도 일부의 연속된 영역들을 검출할 수도 있다.
도 13의 실시예에서, 서비스 서버는 추적 클러스터(i0)에서 외형 특징 af_i0를 추출할 수 있다. 서비스 서버는 추적 클러스터(i0)에 포함된 드리블 구간에서 모션 특징 mf_i0_dribble을 추출하고, 패스 구간에서 모션 특징 mf_i0_pass를 추출할 수 있다. 실질적으로 동일한 방식으로, 서비스 서버는 추적 클러스터(i1)에서 외형 특징 af_i1을 추출하고, 모션 특징 mf_i1_shoot을 추출할 수 있다. 또한, 서비스 서버는 추적 클러스터(j0)에서 외형 특징 af_j0 및 모션 특징 mf_j0_shoot을 추출하고, 추적 클러스터(k0)에서 외형 특징 af_k0 및 모션 특징 mf_k0_block을 추출할 수 있다.
서비스 서버는 외형 특징들 및 모션 특징들 중 적어도 하나에 기초하여, 추적 클러스터들을 매칭(1330)할 수 있다. 서비스 서버는 프레임 구간이 일부라도 겹치는 추적 클러스터들 사이에는 매칭을 수행하지 않을 수 있다. 프레임 구간이 일부라도 겹치는 서로 다른 추적 클러스터들은 서로 다른 비식별 플레이어들로 간주할 수 있기 때문이다. 이에 따라, 서비스 서버는 추적 클러스터(i0)와 추적 클러스터(i1) 사이의 매칭을 생략할 수 있다. 서비스 서버는 추적 클러스터(i0)의 외형 특징과 추적 클러스터(j0)의 외형 특징을 매칭한 뒤, 매칭에 실패(Failure)하였다고 판단할 수 있다. 서비스 서버는 추적 클러스터(i0)의 외형 특징과 추적 클러스터(k0)의 외형 특징을 매칭한 뒤, 매칭에 성공(Success)하였다고 판단할 수 있다. 매칭에 성공하는 경우, 서비스 서버는 추적 클러스터(i0)와 추적 클러스터(k0)를 병합할 수 있다. 여기서 병합은 추적 클러스터(i0)와 추적 클러스터(k0)를 동일한 비식별 플레이어를 위한 비식별 플레이어 별 클러스터에 포함시키는 동작으로 이해될 수 있다.
또한, 서비스 서버는 프레임 구간이 서로 겹치지 않는 추적 클러스터들 사이에서 동일한 모션 유형의 모션 특징들을 매칭할 수 있다. 예를 들어, 서비스 서버는 추적 클러스터(i1)의 슛 구간에서 추출된 mf_i1_shoot과 추적 클러스터(j0)의 슛 구간에서 추출된 mf_j0_shoot을 매칭한 뒤, 매칭에 실패(Failure)하였다고 판단할 수 있다.
서비스 서버는, 전술한 매칭 동작을 통하여 비식별 플레이어 별 클러스터들을 생성할 수 있다. 이상의 실시예들에서 '클러스터'는 비식별 플레이어 별 클러스터를 지칭하며, '추적 클러스터'와 구별되는 개념으로 이해될 수 있다. 서비스 서버는 클러스터들에 기초하여 비식별 플레이어 별 비디오 클립들을 생성(1340)할 수 있다. 비식별 플레이어별 클러스터들이 생성된 이후의 동작들에는 도 1 내지 도 11을 통하여 전술한 사항들이 그대로 적용될 수 있는 바, 보다 상세한 설명은 생략한다.
도 14는 일 실시예에 따른 득점 이벤트(scoring event)를 감지하는 동작을 설명하는 도면이다. 도 14를 참조하면, 서비스 서버는 스포츠 동영상에서 골대에 공이 통과하는 득점 이벤트를 감지할 수 있다. 농구 경기의 경우 골대의 림(rim)에 공이 통과하는지 여부를 감지할 수 있다. 서비스 서버는 스포츠 동영상에서 골대 영역 혹은 골대의 림 영역을 검출하고, 프레임이 진행됨에 따라 검출된 영역에서 공이 통과하는 득점 이벤트가 감지되는지 여부를 판단할 수 있다.
서비스 서버는 득점 이벤트가 감지되는 경우, 해당 프레임에 기초하여 추적 클러스터들 중 해당 이벤트와 연관된 추적 클러스터를 식별할 수 있다. 예를 들어, 서비스 서버는 추적 클러스터들 중, 해당 프레임 및 그 이전 프레임들에서 해당 이벤트와 연관된 모션 유형의 구간을 포함하는 추적 클러스터를 식별할 수 있다. 득점 이벤트가 감지되는 경우, 서비스 서버는 슛 구간을 포함하는 추적 클러스터를 식별할 수 있다. 서비스 서버는 득점 이벤트의 이전 프레임들에서 가장 가까운 슛 구간을 포함하는 추적 클러스터를 식별할 수 있다. 서비스 서버는 해당하는 슛 구간에서 시도된 슛이 성공하였다는 정보를 태깅할 수 있다.
일 실시예에 따르면, 비식별 플레이어 별 비디오 클립들을 생성할 때, 서비스 서버는 득점 이벤트와 연관된 서브-클러스터들을 선별적으로 획득한 뒤, 득점 이벤트와 연관된 서브-클러스터들에 기초하여 스포츠 동영상으로부터 비디오 클립을 추출할 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 인한 처리 장치로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.

Claims (13)

  1. 스포츠 동영상에 액세스하는 정보를 수신하는 단계;
    상기 수신된 정보에 기초하여 상기 스포츠 동영상을 획득하는 단계;
    상기 스포츠 동영상의 주요 장면에 연관된 비식별 플레이어를 결정하는 단계;
    상기 비식별 플레이어를 식별 가능한 인접 프레임까지 상기 비식별 플레이어를 추적함으로써, 상기 비식별 플레이어를 식별하는 단계; 및
    상기 주요 장면에 대응하여, 상기 스포츠 동영상의 시간 구간 및 상기 비식별 플레이어의 식별 정보를 출력하는 단계
    를 포함하는 동영상 분석 서버의 동작 방법.
  2. 제1항에 있어서,
    상기 주요 장면에 연관된 비식별 플레이어를 결정하는 단계는
    상기 주요 장면에 포함된 적어도 하나의 비식별 플레이어의 외형 특징 및/또는 모션 특징을 추출하는 단계; 및
    상기 적어도 하나의 비식별 플레이어의 외형 특징 및/또는 모션 특징에 기초하여, 상기 주요 장면에 연관된 비식별 플레이어를 결정하는 단계
    를 포함하는, 동영상 분석 서버의 동작 방법.
  3. 제1항에 있어서,
    상기 스포츠 동영상이 구기 종목의 스포츠 동영상인 경우,
    상기 주요 장면에 연관된 비식별 플레이어를 결정하는 단계는
    상기 주요 장면에서 공을 검출하는 단계; 및
    상기 검출된 공에 기초하여, 상기 주요 장면에 연관된 비식별 플레이어를 결정하는 단계
    를 포함하는, 동영상 분석 서버의 동작 방법.
  4. 제1항에 있어서,
    상기 비식별 플레이어를 식별하는 단계는
    상기 결정된 비식별 플레이어로부터 특징을 추출하는 단계;
    상기 추출된 특징을 기 등록된 플레이어들의 특징들과 비교하는 단계;
    상기 비교 결과 상기 비식별 플레이어를 식별 가능한지 여부를 판단하는 단계; 및
    상기 비식별 플레이어를 식별할 수 없다는 판단에 따라, 인접 프레임을 인스턴스 세그먼테이션 함으로써 상기 비식별 플레이어를 추적하는 단계
    를 포함하는, 동영상 분석 서버의 동작 방법.
  5. 하드웨어와 결합되어 제1항 내지 제4항 중 어느 한 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
  6. 스포츠 동영상에 대응하여, 플레이어 별 클러스터들(player-specific clusters)-상기 클러스터들은 플레이어 별 주요 장면에 관한 구간 정보를 포함함-을 데이터베이스에 저장하는 단계;
    상기 데이터베이스에 기초하여, 상기 스포츠 동영상으로부터 플레이어 별 비디오 클립들(player-specific video clips)을 추출하기 위한 상기 구간 정보를 사용자 단말에 제공하는 단계;
    스트리밍 서버로부터 상기 비디오 클립들-상기 비디오 클립들은 상기 구간정보에 따라 상기 스포츠 동영상으로부터 추출됨-을 상기 플레이어들 별로 제공받은 상기 사용자 단말로부터 적어도 하나의 클러스터의 정보를 수정하는 입력을 수신하는 단계; 및
    상기 입력에 기초하여, 적어도 하나의 해당하는 클러스터의 정보를 상기 데이터베이스에 갱신하는 단계
    를 포함하는 스포츠 동영상 기반 플랫폼 서비스를 제공하는 서버의 동작 방법.
  7. 제6항에 있어서,
    상기 사용자 단말에게 플레이어들의 기여도를 나타내는 통계를 제공하는 단계;
    상기 사용자 단말로부터 상기 통계에 포함된 세부기록을 선택하는 입력을 수신하는 단계;
    상기 데이터베이스에 기초하여 상기 선택된 세부기록과 관련된 적어도 하나의 서브-클러스터를 획득하는 단계; 및
    상기 적어도 하나의 서브-클러스터에 기초하여, 상기 스포츠 동영상으로부터 비디오 클립을 추출하기 위한 정보를 상기 사용자 단말에 제공하는 단계
    를 더 포함하는 스포츠 동영상 기반 플랫폼 서비스를 제공하는 서버의 동작 방법.
  8. 제6항에 있어서,
    상기 사용자 단말로부터 검색 대상 플레이어 및 상기 검색 대상 장면을 포함하는 검색 쿼리를 수신하는 단계;
    상기 데이터베이스로부터, 상기 검색 쿼리에 대응하는 서브-클러스터를 검색하는 단계; 및
    상기 검색된 서브-클러스터에 기초하여, 상기 스포츠 동영상으로부터 비디오 클립을 추출하기 위한 정보를 상기 사용자 단말에 제공하는 단계
    를 더 포함하는 스포츠 동영상 기반 플랫폼 서비스를 제공하는 서버의 동작 방법.
  9. 제6항에 있어서,
    상기 클러스터들의 신뢰도에 기초하여, 과금 레벨을 결정하는 단계; 및
    상기 클러스터들을 수정하는 피드백 입력에 기초하여, 보상 레벨을 결정하는 단계
    중 적어도 하나를 더 포함하는 스포츠 동영상 기반 플랫폼 서비스를 제공하는 서버의 동작 방법.
  10. 제6항에 있어서,
    상기 적어도 하나의 클러스터의 정보를 수정하는 입력을 수신하는 단계는
    상기 사용자 단말로부터 상기 적어도 하나의 클러스터에 포함된 적어도 하나의 구간의 플레이어가 해당 클러스터에 속하지 않는다는 피드백 입력을 수신하는 단계
    를 포함하고,
    상기 적어도 하나의 해당하는 클러스터의 정보를 상기 데이터베이스에 갱신하는 단계는
    상기 피드백 입력에 기초하여, 해당 구간을 해당 클러스터에서 배제하는 단계
    를 포함하는,
    스포츠 동영상 기반 플랫폼 서비스를 제공하는 서버의 동작 방법.
  11. 제6항에 있어서,
    상기 사용자 단말로부터 상기 적어도 하나의 클러스터에 포함된 적어도 하나의 구간의 플레이어가 다른 클러스터에 속한다는 피드백 입력을 수신하는 단계; 및
    상기 피드백 입력에 기초하여, 해당 구간을 해당 클러스터에서 배제하고 상기 다른 클러스터에 포함시키는 단계
    를 더 포함하는 스포츠 동영상 기반 플랫폼 서비스를 제공하는 서버의 동작 방법.
  12. 제6항에 있어서,
    상기 갱신된 데이터베이스에 의존하는 트레이닝 데이터를 생성하는 단계; 및
    상기 트레이닝 데이터에 기초하여, 플레이어들의 검출 정보, 식별 정보 및 모션 유형 정보 중 적어도 하나를 추정하는 특화 모델을 학습하는 단계
    를 더 포함하는 스포츠 동영상 기반 플랫폼 서비스를 제공하는 서버의 동작 방법.
  13. 하드웨어와 결합되어 제8항 내지 제12항 중 어느 한 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
KR1020227026043A 2020-02-15 2021-01-30 스포츠 동영상 기반 플랫폼 서비스를 제공하는 서버의 동작 방법 KR20220112305A (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR20200018665 2020-02-15
KR1020200018665 2020-02-15
KR20200031651 2020-03-14
KR1020200031651 2020-03-14
PCT/KR2021/001263 WO2021162305A1 (ko) 2020-02-15 2021-01-30 스포츠 동영상 기반 플랫폼 서비스를 제공하는 서버의 동작 방법
KR1020217038998A KR102427358B1 (ko) 2020-02-15 2021-01-30 스포츠 동영상 기반 플랫폼 서비스를 제공하는 서버의 동작 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020217038998A Division KR102427358B1 (ko) 2020-02-15 2021-01-30 스포츠 동영상 기반 플랫폼 서비스를 제공하는 서버의 동작 방법

Publications (1)

Publication Number Publication Date
KR20220112305A true KR20220112305A (ko) 2022-08-10

Family

ID=77292715

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217038998A KR102427358B1 (ko) 2020-02-15 2021-01-30 스포츠 동영상 기반 플랫폼 서비스를 제공하는 서버의 동작 방법
KR1020227026043A KR20220112305A (ko) 2020-02-15 2021-01-30 스포츠 동영상 기반 플랫폼 서비스를 제공하는 서버의 동작 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020217038998A KR102427358B1 (ko) 2020-02-15 2021-01-30 스포츠 동영상 기반 플랫폼 서비스를 제공하는 서버의 동작 방법

Country Status (4)

Country Link
US (2) US11810352B2 (ko)
KR (2) KR102427358B1 (ko)
CN (1) CN115104137A (ko)
WO (1) WO2021162305A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114827478B (zh) * 2022-01-05 2022-09-16 深眸科技(北京)有限公司 一种自动跟踪拍摄体育比赛的智能系统及其控制方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5363297A (en) * 1992-06-05 1994-11-08 Larson Noble G Automated camera-based tracking system for sports contests
US20150297949A1 (en) * 2007-06-12 2015-10-22 Intheplay, Inc. Automatic sports broadcasting system
KR20000064088A (ko) * 2000-08-21 2000-11-06 주진용 스포츠 영상 분석 방송 시스템 및 방법
KR100474848B1 (ko) * 2002-07-19 2005-03-10 삼성전자주식회사 영상시각 정보를 결합하여 실시간으로 복수의 얼굴을검출하고 추적하는 얼굴 검출 및 추적 시스템 및 방법
KR20040054960A (ko) 2002-12-20 2004-06-26 현대자동차주식회사 테일게이트 도어의 길이 조절형 가스리프트 장치
CA2563478A1 (en) * 2004-04-16 2005-10-27 James A. Aman Automatic event videoing, tracking and content generation system
US20070060380A1 (en) * 2005-02-11 2007-03-15 The Score Line Channel, Llc Fantasy sports television programming systems and methods
KR100785076B1 (ko) * 2006-06-15 2007-12-12 삼성전자주식회사 스포츠 동영상에서의 실시간 이벤트 검출 방법 및 그 장치
KR101918057B1 (ko) * 2011-11-30 2019-01-30 삼성전자주식회사 이미지의 깊이 정보를 복원하는 방법 및 장치
CN103959802B (zh) * 2012-08-10 2018-01-26 松下电器(美国)知识产权公司 影像提供方法、发送装置以及接收装置
US8948457B2 (en) * 2013-04-03 2015-02-03 Pillar Vision, Inc. True space tracking of axisymmetric object flight using diameter measurement
KR101272645B1 (ko) 2013-04-24 2013-06-10 (주)나인정보시스템 시공간 가우시안 혼합 배경모델을 이용한 영상내 물체 탐지 장치 및 방법
US9700781B2 (en) * 2015-06-26 2017-07-11 Lawrence Maxwell Monari Sports entertainment tracking system for mobile sports spectators
US11263461B2 (en) * 2015-10-05 2022-03-01 Pillar Vision, Inc. Systems and methods for monitoring objects at sporting events
JP6720587B2 (ja) * 2016-03-08 2020-07-08 富士通株式会社 映像処理装置、映像処理方法および映像処理プログラム
JP6922369B2 (ja) * 2017-04-14 2021-08-18 富士通株式会社 視点選択支援プログラム、視点選択支援方法及び視点選択支援装置
US10489656B2 (en) 2017-09-21 2019-11-26 NEX Team Inc. Methods and systems for ball game analytics with a mobile device
AU2017272325A1 (en) * 2017-12-08 2019-06-27 Canon Kabushiki Kaisha System and method of generating a composite frame
US11048977B1 (en) * 2018-09-27 2021-06-29 Apple Inc. Method and device for pixel-level object segmentation
US11157742B2 (en) * 2019-09-04 2021-10-26 NEX Team Inc. Methods and systems for multiplayer tagging for ball game analytics generation with a mobile computing device
US11113535B2 (en) * 2019-11-08 2021-09-07 Second Spectrum, Inc. Determining tactical relevance and similarity of video sequences

Also Published As

Publication number Publication date
CN115104137A (zh) 2022-09-23
US20230072888A1 (en) 2023-03-09
US20230377336A1 (en) 2023-11-23
KR20210151232A (ko) 2021-12-13
WO2021162305A1 (ko) 2021-08-19
KR102427358B1 (ko) 2022-08-01
US11810352B2 (en) 2023-11-07

Similar Documents

Publication Publication Date Title
US11157742B2 (en) Methods and systems for multiplayer tagging for ball game analytics generation with a mobile computing device
US11755952B2 (en) System and method for predictive sports analytics using body-pose information
US11594029B2 (en) Methods and systems for determining ball shot attempt location on ball court
Shih A survey of content-aware video analysis for sports
Andriluka et al. Posetrack: A benchmark for human pose estimation and tracking
Tuyls et al. Game Plan: What AI can do for Football, and What Football can do for AI
US10719712B2 (en) Classify actions in video segments using play state information
US10965886B2 (en) System and method of generating a composite frame
Wei et al. Large-scale analysis of formations in soccer
US10529077B2 (en) System and method for detecting interaction
CN116370938A (zh) 在定位进攻期间对球队队形进行识别的方法、系统、介质
Wei et al. Predicting serves in tennis using style priors
WO2021016901A1 (en) Player trajectory generation via multiple camera player tracking
CN113574866A (zh) 校准捕捉广播视频的移动相机的系统及方法
JP6488295B2 (ja) 映像処理方法、映像処理装置
US20180349704A1 (en) Interaction classification using the role of people interacting over time
US20230377336A1 (en) Method of operating server providing sports video-based platform service
Akan et al. Use of deep learning in soccer videos analysis: survey
Markoski et al. Application of adaboost algorithm in basketball player detection
Gupta et al. Learning cricket strokes from spatial and motion visual word sequences
Amirli et al. Prediction of the ball location on the 2D plane in football using optical tracking data
Gerats Individual action and group activity recognition in soccer videos
Cheng et al. Automatic data volley: game data acquisition with temporal-spatial filters
Yu Automatic basketball tracking in broadcast basketball video
Ivankovic et al. Adaboost in basketball player identification

Legal Events

Date Code Title Description
A107 Divisional application of patent