KR20230068913A - 안무 동작 타임라인 생성 방법 및 장치 - Google Patents

안무 동작 타임라인 생성 방법 및 장치 Download PDF

Info

Publication number
KR20230068913A
KR20230068913A KR1020210155210A KR20210155210A KR20230068913A KR 20230068913 A KR20230068913 A KR 20230068913A KR 1020210155210 A KR1020210155210 A KR 1020210155210A KR 20210155210 A KR20210155210 A KR 20210155210A KR 20230068913 A KR20230068913 A KR 20230068913A
Authority
KR
South Korea
Prior art keywords
timeline
choreography
user
dance
starting point
Prior art date
Application number
KR1020210155210A
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 주식회사 케이티
Priority to KR1020210155210A priority Critical patent/KR20230068913A/ko
Publication of KR20230068913A publication Critical patent/KR20230068913A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/439Processing of audio elementary streams
    • H04N21/4394Processing of audio elementary streams involving operations for analysing the audio stream, e.g. detecting features or characteristics in audio streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/4662Learning process for intelligent management, e.g. learning user preferences for recommending movies characterized by learning algorithms
    • H04N21/4663Learning process for intelligent management, e.g. learning user preferences for recommending movies characterized by learning algorithms involving probabilistic networks, e.g. Bayesian networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8106Monomedia components thereof involving special audio data, e.g. different tracks for different languages

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Image Analysis (AREA)

Abstract

댄스 타임라인 생성 방법이 개시된다. 본 발명에 따른 댄스 타임라인 생성 방법은, 사용자의 댄스 영상 및 오디오를 포함하는 동영상을 획득하는 단계, 상기 오디오를 이용하여 사용자 타임라인의 시작점을 검출하는 단계, 상기 댄스 영상을 이용하여 복수의 이미지 프레임으로 각각 구성되는 시간 윈도우 별 입력 데이터를 생성하는 단계, 상기 시간 윈도우 별 입력 데이터를 인공지능 모델에 제공하고, 상기 인공지능 모델의 출력 값에 기반하여 상기 시간 윈도우 별 안무 동작 클래스를 획득하는 단계, 상기 시작점 및 상기 시간 윈도우 별 안무 동작 클래스를 이용하여 상기 사용자 타임라인을 생성하는 단계, 및, 상기 사용자 타임라인과 전문가 타임라인 간의 비교 결과를 출력하는 단계를 포함한다.

Description

안무 동작 타임라인 생성 방법 및 장치{METHOD AND APPARATUS FOR GENERATING CHOREOGRAPHY MOVEMENT TIMELINE}
본 발명은, 사용자의 댄스 영상이 담긴 동영상 내 안무 동작을 검출하여 사용자의 안무 동작의 타임라인을 생성하고, 이를 전문가의 안무 동작의 타임 라인과 비교하여 사용자의 댄스를 평가할 수 있는, 안무 동작 타임라인 생성 방법 및 장치에 관한 것이다.
케이팝(KPOP)의 글로벌 인기와 더불어, 전문댄서가 아니라도 댄스를 배우거나 추고 싶은 일반인 수요가 늘어나는 추세이다. 또한 코로나로 인하여 비대면 자가학습에 대한 요구가 늘어나고 있으며, 댄스 분야에서도 비 대면으로 댄스를 배우려는 수요가 계속적으로 증가하고 있다.
종래에는, 비전 기술을 이용하여 사용자의 안무 동작을 인식 및 분석한 후, 분석 결과를 이용하여 사용자의 댄스를 평가하였다.
다만 매우 격렬하고 빠르며, 매우 다양한 종류를 가지는 안무 동작들을 비전 기술만을 이용하여 효과적으로 인식 및 분석하는 것에는 한계가 존재하였다.
본 발명은 상술한 문제점을 해결하기 위한 것으로, 본 발명의 목적은 사용자의 댄스 영상이 담긴 동영상 내 안무 동작을 검출하여 사용자의 안무 동작의 타임라인을 생성하고, 이를 전문가의 안무 동작의 타임 라인과 비교하여 사용자의 댄스를 평가할 수 있는, 안무 동작 타임라인 생성 방법 및 장치를 제공하기 위함이다.
본 발명에 따른 댄스 타임라인 생성 방법은, 사용자의 댄스 영상 및 오디오를 포함하는 동영상을 획득하는 단계, 상기 오디오를 이용하여 사용자 타임라인의 시작점을 검출하는 단계, 상기 댄스 영상을 이용하여 복수의 이미지 프레임으로 각각 구성되는 시간 윈도우 별 입력 데이터를 생성하는 단계, 상기 시간 윈도우 별 입력 데이터를 인공지능 모델에 제공하고, 상기 인공지능 모델의 출력 값에 기반하여 상기 시간 윈도우 별 안무 동작 클래스를 획득하는 단계, 상기 시작점 및 상기 시간 윈도우 별 안무 동작 클래스를 이용하여 상기 사용자 타임라인을 생성하는 단계, 및, 상기 사용자 타임라인과 전문가 타임라인 간의 비교 결과를 출력하는 단계를 포함한다.
이 경우 상기 오디오를 이용하여 사용자 타임라인의 시작점을 검출하는 단계는, 상기 동영상에서 출력되는 오디오의 노래 정보를 획득하는 단계, 메모리로부터, 상기 노래 정보에 상응하는 오디오를 획득하는 단계, 및, 상기 동영상에서 출력되는 오디오와 상기 노래 정보에 상응하는 오디오를 비교하여, 상기 사용자 타임라인의 시작점을 검출하는 단계를 포함할 수 있다.
이 경우 상기 시작점 및 상기 시간 윈도우 별 안무 동작 클래스를 이용하여 상기 사용자 타임라인을 생성하는 단계는, 상기 시간 윈도우 별 안무 동작 클래스가 연속적으로 동일하게 획득되는 경우, 상기 연속적으로 동일하게 획득된 안무 동작 클래스에 상응하는 시간 구간 및 상기 연속적으로 동일하게 획득된 안무 동작 클래스에 상응하는 안무 동작을 포함하는 사용자 안무 정보를 생성하는 단계를 포함할 수 있다.
이 경우 상기 시작점 및 상기 시간 윈도우 별 안무 동작 클래스를 이용하여 상기 사용자 타임라인을 생성하는 단계는, 상기 사용자 타임라인의 시작점을 기준으로 복수의 사용자 안무 정보를 정렬하여 상기 사용자 타임라인을 생성하는 단계를 더 포함할 수 있다.
이 경우 상기 전문가 타임라인은, 상기 시작점을 기준으로 복수의 전문가 안무 정보를 정렬하여 생성될 수 있다.
한편 상기 시간 윈도우 별 안무 동작 클래스를 획득하는 단계는, 상기 인공지능 모델이 출력한 복수의 확률 값 중 제1 임계 값보다 높은 확률 값을 가지는 상기 안무 동작 클래스를 획득하는 단계를 포함할 수 있다.
이 경우 상기 시간 윈도우 별 안무 동작 클래스를 획득하는 단계는, 상기 사용자 타임라인의 시작점을 이용하여 복합 안무 시간 구간에 해당하는 입력 데이터를 검출하는 단계, 및, 상기 인공지능 모델이 상기 복합 안무 시간 구간 내의 입력 데이터를 이용하여 복수의 확률 값을 출력하는 경우, 제2 임계 값보다 높은 확률 값을 가지는 복수의 안무 동작 클래스를 획득하는 단계를 포함할 수 있다.
이 경우 상기 제2 임계 값은 상기 제1 임계 값보다 작을 수 있다.
한편 상기 제2 임계 값은, 상기 복합 안무 시간 구간에서 전문가에 의해 지정된 안무 동작의 개수에 따라 결정될 수 있다.
한편 본 발명에 따른 댄스 타임라인 생성 장치는, 사용자의 댄스 영상 및 오디오를 포함하는 동영상을 획득하는 동영상 수집부, 출력부, 및, 상기 오디오를 이용하여 사용자 타임라인의 시작점을 검출하고, 상기 댄스 영상을 이용하여 복수의 이미지 프레임으로 각각 구성되는 시간 윈도우 별 입력 데이터를 생성하고, 상기 시간 윈도우 별 입력 데이터를 인공지능 모델에 제공하고, 상기 인공지능 모델의 출력 값에 기반하여 상기 시간 윈도우 별 안무 동작 클래스를 획득하고, 상기 시작점 및 상기 시간 윈도우 별 안무 동작 클래스를 이용하여 상기 사용자 타임라인을 생성하고, 상기 사용자 타임라인과 전문가 타임라인 간의 비교 결과를 출력하도록 상기 출력부를 제어하는 제어부를 포함한다.
이 경우 복수의 노래 정보에 각각 대응하는 복수의 오디오를 저장하는 메모리를 더 포함하고, 상기 제어부는, 상기 동영상에서 출력되는 오디오의 노래 정보를 획득하고, 상기 메모리로부터, 상기 동영상에서 출력되는 오디오의 노래 정보에 상응하는 오디오를 획득하고, 상기 동영상에서 출력되는 오디오와 상기 노래 정보에 상응하는 오디오를 비교하여, 상기 사용자 타임라인의 시작점을 검출할 수 있다.
이 경우 상기 제어부는, 상기 시간 윈도우 별 안무 동작 클래스가 연속적으로 동일하게 획득되는 경우, 상기 연속적으로 동일하게 획득된 안무 동작 클래스에 상응하는 시간 구간 및 상기 연속적으로 동일하게 획득된 안무 동작 클래스에 상응하는 안무 동작을 포함하는 사용자 안무 정보를 생성할 수 있다.
이 경우 상기 제어부는, 상기 사용자 타임라인의 시작점을 기준으로 복수의 사용자 안무 정보를 정렬하여 상기 사용자 타임라인을 생성할 수 있다.
이 경우 상기 전문가 타임라인은, 상기 시작점을 기준으로 복수의 전문가 안무 정보를 정렬하여 생성될 수 있다.
한편 상기 제어부는, 상기 인공지능 모델이 출력한 복수의 확률 값 중 제1 임계 값보다 높은 확률 값을 가지는 상기 안무 동작 클래스를 획득할 수 있다.
이 경우 상기 제어부는, 상기 사용자 타임라인의 시작점을 이용하여 복합 안무 시간 구간에 해당하는 입력 데이터를 검출하고, 상기 인공지능 모델이 상기 복합 안무 시간 구간 내의 입력 데이터를 이용하여 복수의 확률 값을 출력하는 경우, 제2 임계 값보다 높은 확률 값을 가지는 복수의 안무 동작 클래스를 획득할 수 있다.
이 경우 상기 제2 임계 값은 상기 제1 임계 값보다 작을 수 있다.
한편 상기 제2 임계 값은, 상기 복합 안무 시간 구간에서 전문가에 의해 지정된 안무 동작의 개수에 따라 결정될 수 있다.
한편 본 발명에 따른 매체에 저장된 컴퓨터 프로그램은, 사용자의 댄스 영상 및 오디오를 포함하는 동영상을 획득하는 단계, 상기 오디오를 이용하여 사용자 타임라인의 시작점을 검출하는 단계, 상기 댄스 영상을 이용하여 복수의 이미지 프레임으로 각각 구성되는 시간 윈도우 별 입력 데이터를 생성하는 단계, 상기 시간 윈도우 별 입력 데이터를 인공지능 모델에 제공하고, 상기 인공지능 모델의 출력 값에 기반하여 상기 시간 윈도우 별 안무 동작 클래스를 획득하는 단계, 상기 시작점 및 상기 시간 윈도우 별 안무 동작 클래스를 이용하여 상기 사용자 타임라인을 생성하는 단계, 및, 상기 사용자 타임라인과 전문가 타임라인 간의 비교 결과를 출력하는 단계를 포함하는 댄스 타임라인 생성 방법을 수행한다.
본 발명에 따르면, 사용자가 전문가의 직접 지도를 받기 힘든 상황에서도, 휴대폰 등의 개인 단말로 자신의 댄스 영상을 촬영함으로써, 전문가와의 동작을 비교하고 평가를 받을 수 있는 환경을 제공할 수 있다.
본 발명에 따르면, 단순히 사용자 댄스와 전문가 댄스의 유사성을 비교하는 것이 아니라, 댄스를 구성하는 개별적인 안무 동작을 비교함으로써, 사용자가 자신의 취약점을 정확히 분석할 수 있는 장점이 있다.
도 1은 본 발명에 따른 댄스 타임라인 생성 장치를 설명하기 위한 도면이다.
도 2는 본 발명에 따른, 인공지능 모델의 트레이닝 방법을 설명하기 위한 도면이다.
도 3은 본 발명에 따른, 전문가 타임라인을 설명하기 위한 도면이다.
도 4는 본 발명에 따른 댄스 타임라인 생성 방법을 설명하기 위한 순서도이다.
도 5는 본 발명에 따른, 사용자 타임라인의 시작점을 검출하는 방법을 설명하기 위한 도면이다.
도 6은 본 발명에 따른, 시간 윈도우 별 입력 데이터를 생성하고, 안무 동작 클래스를 획득하는 방법을 설명하기 위한 도면이다.
도 7은 본 발명에 따른, 사용자 타임 라인의 일부와 전문가 타임라인의 일부를 도시한 도면이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 발명을 구현함에 있어서 설명의 편의를 위하여 구성요소를 세분화하여 설명할 수 있으나, 이들 구성요소가 하나의 장치 또는 모듈 내에 구현될 수도 있고, 혹은 하나의 구성요소가 다수의 장치 또는 모듈들에 나뉘어져서 구현될 수도 있다.
도 1은 본 발명에 따른 댄스 타임라인 생성 장치를 설명하기 위한 도면이다.
본 발명에 따른 댄스 타임라인 생성 장치(100)는, 동영상 수집부(110), 제어부(120), 메모리(130), 출력부(140)를 포함할 수 있다.
동영상 수집부(110)는 사용자의 댄스 영상 및 오디오를 포함하는 동영상을 획득할 수 있다.
구체적으로 동영상 수집부(110)는 외부 장치와 통신하기 위한 통신 회로 또는 통신 모듈을 포함할 수 있다. 그리고 동영상 수집부(110)는 외부 장치로부터 동영상을 수신할 수 있다.
예를 들어 동영상 수집부(110)는 사용자 단말과 통신할 수 있다. 그리고 사용자는 자신이 노래에 맞춰 춤을 추고 있는 동영상을 촬영하여, 실시간으로, 또는 촬영이 완료된 후, 댄스 타임라인 생성 장치(100)에 전송할 수 있다. 이 경우 동영상 수집부(110)는 사용자 단말로부터 동영상을 수신할 수 있다.
또한 동영상 수집부(110)는 촬영부를 구비하고, 동영상을 직접 촬영할 수도 있다.
한편 제어부(120)는 댄스 타임라인 생성 장치(100)의 전반적인 동작을 제어할 수 있다.
또한 제어부(120)는 메모리(130)로부터 인공지능 모델을 독출하여 실행할 수 있다. 이에 따라 아래에서 설명하는 인공지능 모델의 동작은, 제어부(120)의 동작인 것으로 볼 수도 있다.
한편 출력부(120)는 사용자 타임라인과 전문가 타임라인 간의 비교 결과를 출력할 수 있다.
이 경우 출력부(120)는 통신부를 포함할 수 있다. 이 경우 통신부는 동영상을 전송한 사용자 단말에, 사용자 타임라인과 전문가 타임라인 간의 비교 결과를 전송할 수 있다.
또한 출력부(120)는 디스플레이부를 포함할 수 있다. 이 경우 디스플레이부는 사용자 타임라인과 전문가 타임라인 간의 비교 결과를 디스플레이 할 수 있다.
메모리(130)는, 댄스 타임라인 생성 장치(100)의 동작을 위한 명령어 또는 기타 프로그램을 저장할 수 있다.
또한 메모리(130)는, 다수의 노래에 각각 대응하는 다수의 전문가 타임라인, 다수의 노래의 오디오를 저장할 수 있다,
또한 메모리(130)는 인공지능 모델을 저장하는 모델 저장부(130)를 포함할 수 있다. 구체적으로 인공지능 모델은 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있으며, 인공지능 모델을 구성하는 하나 이상의 명령어는 모델 저장부(130)에 저장될 수 있다.
한편 인공지능 모델은 인공 신경망을 포함할 수 있다. 여기서 인공신경망은 생물학적 뉴런의 동작원리와 뉴런간의 연결 관계를 모델링한 것으로 노드(node) 또는 처리 요소(processing element)라고 하는 다수의 뉴런들이 레이어(layer) 구조의 형태로 연결된 정보처리 시스템이다. 그리고 인공 신경망은 일반적으로 다음의 세가지 인자, 즉 (1) 다른 레이어의 뉴런들 사이의 연결 패턴 (2) 연결의 가중치를 갱신하는 학습 과정 (3) 이전 레이어로부터 수신되는 입력에 대한 가중 합으로부터 출력값을 생성하는 활성화 함수에 의해 정의될 수 있다.
한편 인공지능 모델은 훈련 데이터(training data)를 이용하여 학습(training)될 수 있다. 여기서 학습이란, 입력 데이터를 분류(classification)하거나 회귀분석(regression)하거나 군집화(clustering)하는 등의 목적을 달성하기 위하여, 학습 데이터를 이용하여 인공 신경망의 파라미터(parameter)를 결정하는 과정을 의미할 수 있다. 인공 신경망의 파라미터의 대표적인 예시로써, 시냅스에 부여되는 가중치(weight)나 뉴런에 적용되는 편향(bias)을 들 수 있다.
또한 인공지능 모델은 훈련 데이터로부터 하나의 함수를 유추해내기 위한 기계 학습의 한 방법인 지도 학습 알고리즘에 의해 트레이닝 될 수 있다. 이 경우 인공지능 모델은 훈련 데이터 및 레이블링 데이터(훈련 데이터가 입력되는 경우 인공지능 모델이 추론해 내야 하는 정답)을 이용하여 트레이닝 되며, 트레이닝의 반복에 따라 인공지능 모델의 파라미터(가중치, 편향 등)이 최적화 될 수 있다.
먼저 인공지능 모델의 트레이닝 방법에 대하여 설명한다. 이하에서는 인공지능 모델의 트레이닝에 사용되는 데이터에 “트레이닝용”이라는 용어를 붙이도록 한다.
도 2는 본 발명에 따른, 인공지능 모델의 트레이닝 방법을 설명하기 위한 도면이다.
제어부(120)는, 트레이닝용 댄스 영상을 획득할 수 있다. 여기서 트레이닝용 댄스 영상은 동영상으로 복수의 프레임으로 구성될 수 있으며, 전문가(전문적인 안무가 등)의 안무 동작을 포함할 수 있다.
또한 트레이닝용 댄스 영상은 스켈레톤(skeleton) 이미지일 수 있다. 즉 제어부(120)는 전문가의 안무 동작이 포함된 영상을 이용하여 스켈레톤(skeleton) 이미지를 생성할 수 있다. 또한 하나의 트레이닝용 댄스 영상은 복수의 스켈레톤(skeleton) 이미지로 구성될 수 있으며, 복수의 스켈레톤(skeleton) 이미지에는 시퀀스 정보가 할당될 수 있다
그리고 제어부(120)는, 트레이닝용 댄스 영상 및 트레이닝용 영상에 대응하는 레이블링 데이터(정답 값)를 이용하여 인공지능 모델(210)을 트레이닝 할 수 있다.
먼저 레이블링 데이터에 대하여 설명한다.
다양한 노래에 대하여 전문가들의 댄스를 분석한 결과, 댄스는 표 1과 같은 다양한 안무 동작들의 조합으로 정의될 수 있다.
동작 세부동작
1 아이솔레이션 아이솔레이션 머리
2 아이솔레이션 어깨
3 아이솔레이션 가슴
4 아이솔레이션 골반
5 웨이브 웨이브 팔
6 웨이브 몸통
7 웨이브 엉덩이
8 라이닝 라이닝 수평
9 라이닝 수직
10 라이닝 대각
11 스탭 스탭 사이드
12 스탭 앞뒤
13 바운스 바운스 업
14 바운스 다운
15
16
17 점프
18 스톱 앤 고 (break)
19 클랩
20 롤링
즉 특정 시간 구간의 댄스는, 위와 같은 하나 이상의 안무 동작이 조합된 결과물이다. 따라서 이와 같은 안무 동작이 레이블링 데이터로 사용될 수 있다.
따라서 제어부(120)는 복수의 레이블링 데이터를 획득할 수 있다. 이 경우 복수의 레이블링 데이터는, 아이솔레이션, 웨이브, 라이닝, 스텝, 바운스, 턴, 킥, 점프, 스톱 앤 고, 클랩, 롤링 중 둘 이상을 포함할 수 있다. 또한 복수의 레이블링 데이터는, 아이솔레이션 머리, 아이솔레이션 어깨, 아이솔레이션 가슴, 아이솔레이션 골반, 웨이브 팔, 웨이브 몸통, 웨이브 엉덩이, 라이닝 수평, 라이닝 수직, 라이닝 대각, 스텝 사이드, 스텝 앞뒤, 바운스 업, 바운스 다운 등의 세부 안무 동작을 더 포함할 수 있다.
또한 제어부(120)는 특정 안무 동작을 포함하는 트레이닝용 댄스 영상을 생성할 수 있다. 여기서 트레이닝용 댄스 영상은 복수의 이미지 프레임으로 구성될 수 있다.
또한 제어부(120)는 트레이닝용 댄스 영상 및 트레이닝용 댄스 영상에 포함되는 안무 동작을 나타내는 레이블링 데이터를 이용하여 하나의 트레이닝 데이터 셋을 생성하고, 트레이닝 데이터 셋을 이용하여 인공지능 모델을 트레이닝할 수 있다.
구체적으로, 제어부(120)는 트레이닝용 댄스 영상을 인공지능 모델에 입력할 수 있다. 이 경우 인공지능 모델(210)은 트레이닝용 댄스 영상을 복수의 안무 동작 클래스 중 어느 하나로 분류할 수 있다. 여기서 복수의 안무 동작 클래스는, 앞서 설명한 다양한 안무 동작들을 의미할 수 있다.
이 경우 제어부(120)는 인공지능 모델(210)이 출력한 안무 동작 클래스 및 안무 동작 클래스에 상응하는 확률 값과, 레이블링 데이터(정답 값)의 차이(손실 값)에 기반하여, 인공지능 모델(210)을 트레이닝 할 수 있다. 이에 따라 인공지능 모델(210)의 파라미터(가중치, 편향 등)가 업데이트 될 수 있다.
그리고 다양한 트레이닝 데이터 셋을 이용하여 트레이닝을 반복함에 따라 인공지능 모델(210)의 파라미터가 최적화될 수 있다.
또한 제어부(120)는 다양한 속도를 가지는 트레이닝용 댄스 영상을 생성하고, 다양한 속도를 가지는 트레이닝용 댄스 영상을 이용하여 인공지능 모델(210)을 트레이닝할 수 있다.
구체적으로 동일한 안무 동작이라고 하더라도, 그 속도는 다를 수 있다. 예를 들어 동일한 “웨이브 팔” 안무 동작이라 하더라도, 느린 웨이브 동작과 빠른 웨이브 동작이 존재할 수 있다.
따라서 제어부(120)는 동일한 안무 동작을 포함하되 다양한 속도를 가지는 트레이닝용 댄스 영상들을 생성하고, 다양한 속도를 가지는 트레이닝용 댄스 영상에 동일한 레이블링 데이터를 적용하여 인공지능 모델(210)을 트레이닝할 수 있다.
한편 인공지능 모델은, 시퀀스 정보를 가지는 복수의 스켈레톤(skeleton) 이미지를 분석하기 위해, ST-GCN(Spatial Temporal Grpah Convolutional Network)로 구성될 수 있다. 또한 인공지능 모델은, 동작과 관련된 특징을 추출하는 특징 추출부 및, 추출된 특징을 복수의 안무 동작 클래스 중 어느 하나로 분류하는 분류부를 포함할 수 있다.
도 3은 본 발명에 따른, 전문가 타임라인을 설명하기 위한 도면이다.
제어부(120)는 전문가 타임라인을 획득할 수 있다. 여기서 전문가 타임라인은, 복수의 전문가 안무 정보를 포함할 수 있다. 또한 전문가 안무 정보는, 전문가의 안무 동작 및 전문가의 안무 동작이 취해진 시간 구간을 포함할 수 있다.
예를 들어, A 노래가 시작한 후 5초 내지 10초의 시간 구간에, 전문가에 의해 아이솔레이션(Isolation) 안무 동작이 취해진 경우, 제1 전문가 안무 정보는 5초 내지 10초의 시간 구간 및 아이솔레이션(Isolation)의 안무 동작을 포함할 수 있다.
다른 예를 들어, A 노래가 시작한 후 15초 내지 30초의 시간 구간에, 전문가에 의해 아이솔레이션(Isolation) 안무 동작 및 웨이브 안무 동작이 취해진 경우, 제2 전문가 안무 정보는 15초 내지 30초의 시간 구간과 아이솔레이션(Isolation) 및 웨이브의 복합 안무 동작을 포함할 수 있다.
이 경우 전문가 타임라인은, 전문가 타임라인의 시작점을 기준으로 복수의 전문가 안무 정보를 정렬하여 생성될 수 있다.
예를 들어 전문가 타임라인의 시작점은 0초이다. 그리고 복수의 전문가 안무 정보는, 전문가 타임라인의 시작점을 기준으로 경과한 시간이 식별되도록 정렬될 수 있다. 예를 들어 도 3을 참고하면, 시작점(310)으로부터 3초가 경과한 후에, 아이솔레이션 어깨, 팝, 킥의 복합 안무 동작이 시작되었음을 알 수 있으며, 또한 이러한 복합 안무 동작은 시작점(310)으로부터 3초 내지 5초의 시간 구간(a)에 수행되었음을 알 수 있다.
한편 전문가 타임라인은 전문가의 분석에 기반하여 생성될 수 있다. 예를 들어 전문가는 A 노래의 댄스를 분석하여 다양한 안무 동작을 추출함으로써 A 노래에 대응하는 전문가 타임라인을 생성할 수 있다.
한편 메모리(130)는 복수의 노래에 각각 대응하는 복수의 전문가 타임라인을 저장할 수 있다. 또한 메모리(130)는 복수의 노래의 오디오를 저장할 수 있으며, 전문가 타임라인의 시작점을 저장할 수도 있다.
도 4는 본 발명에 따른 댄스 타임라인 생성 방법을 설명하기 위한 순서도이다.
댄스 타임라인 생성 방법은, 사용자의 댄스 영상 및 오디오를 포함하는 동영상을 획득하는 단계(S410), 상기 오디오를 이용하여 사용자 타임라인의 시작점을 검출하는 단계(S420), 상기 댄스 영상을 이용하여 복수의 이미지 프레임으로 각각 구성되는 시간 윈도우 별 입력 데이터를 생성하는 단계(S430), 상기 시간 윈도우 별 입력 데이터를 인공지능 모델에 제공하고, 상기 인공지능 모델의 출력 값에 기반하여 상기 시간 윈도우 별 안무 동작 클래스를 획득하는 단계(S440), 상기 시작점 및 상기 시간 윈도우 별 안무 동작 클래스를 이용하여 상기 사용자 타임라인을 생성하는 단계(S450), 및, 상기 사용자 타임라인과 전문가 타임라인 간의 비교 결과를 출력하는 단계(S460)를 포함할 수 있다.
S410과 관련하여, 동영상 수집부(110)는 사용자의 댄스 영상 및 오디오를 포함하는 동영상을 획득할 수 있다.
여기서 동영상은 사용자가 노래에 맞춰 춤을 춘 영상일 수 있다. 따라서 동영상은 일련의 이미지 프레임으로 구성되는 사용자의 댄스 영상 및 오디오를 포함할 수 있다.
S420과 관련하여, 제어부(120)는 동영상에 포함되는 오디오를 이용하여 사용자 타임라인의 시작점을 검출할 수 있다. 이와 관련해서는 도 5를 참고하여 설명한다.
도 5는 본 발명에 따른, 사용자 타임라인의 시작점을 검출하는 방법을 설명하기 위한 도면이다.
도 5a에서 도시된 바와 같이, 동영상(510)이 획득되면, 제어부(120)는 동영상(510)에 포함되는 영상(520)과 오디오(530)를 분리할 수 있다. 여기서 영상(520)은 일련의 이미지 프레임을 포함할 수 있다.
한편 본 발명에서는 사용자 타임라인에 포함되는 사용자 안무 정보들과, 전문가 타임라인에 포함되는 전문가 안무 정보들을 비교하여, 사용자의 댄스를 평가한다. 그리고 사용자의 댄스를 평가하는 요소는, 동일한 시간 구간에, 전문가의 안무 동작과 사용자의 안무 동작이 동일한지 여부를 포함한다.
또한 사용자가 직접 촬영하여 전송하는 동영상의 특성상, 다양한 사용자들이 촬영하여 전송하는 동영상들은 그 시작점이 제각각 다를 수 있다. 예를 들어 사용자 A가 전송한 동영상은 동영상이 촬영되기 시작한 후 5초 후에 노래가 시작될 수 있는데 반해, 사용자 B가 전송한 동영상은 동영상이 촬영되기 시작한 후 1초 후에 노래가 시작될 수 있다.
따라서 제어부(120)는 동영상에 포함되는 오디오를 이용하여 사용자 타임라인의 시작점을 검출할 수 있다.
구체적으로 메모리(130)는, 전문가 타임라인이 존재하는 노래의 오디오를 저장할 수 있다. 예를 들어 A 노래에 대한 전문가 타임라인이 존재하는 경우, 메모리(130)에는 A 노래의 오디오가 저장될 수 있다. 이 경우 A 노래의 오디오는 A 노래 오디오의 전체가 저장될 수 있으나 이에 한정되지 않으며, A 노래의 도입부의 오디오만이 저장될 수도 있다.
또한 댄스 타임라인 생성 장치(100)는 다양한 노래에 대한 전문가 타임라인을 보유할 수 있다. 이에 따라 메모리(130)는 다수의 노래의 오디오를 저장할 수 있다.
한편 제어부(120)는 동영상에서 출력되는 오디오의 노래 정보를 획득할 수 있다. 여기서 노래 정보란 동영상에서 출력되는 오디오를 식별하기 위한 정보로써, 예를 들어 노래 정보는 노래의 제목, 가수 등일 수 있다.
이 경우 제어부(120)는 다양한 방법으로 오디오의 노래 정보를 획득할 수 있다. 예를 들어 제어부(120)는 사용자 단말에서 입력되는 정보에 기초하여 오디오의 노래 정보를 획득할 수도 있다. 다른 예를 들어 제어부(120)는 동영상에서 출력되는 오디오를, 메모리(130)에 저장된 다수의 노래의 오디오와 비교하여, 오디오의 노래 정보를 획득할 수 있다.
이 경우 제어부(120)는, 메모리(130)로부터, 노래 정보에 상응하는 오디오(540)를 획득할 수 있다. 예를 들어 동영상에 포함되는 오디오의 노래 정보가 A인 경우, 제어부(120)는 메모리(130)에 저장된 복수의 노래의 오디오 중, A 노래의 오디오를 독출할 수 있다.
그리고 도 5b에 도시된 바와 같이, 제어부(120)는, 동영상에서 출력되는 오디오와 노래 정보에 상응하는 오디오를 비교하여, 사용자 타임라인의 시작점을 검출할 수 있다.
구체적으로 제어부(120)는 동영상에서 출력되는 오디오와 노래 정보에 상응하는 오디오를 비교하여 일치하는 부분을 검출하고, 일치하는 부분에 대한 정보를 이용하여 사용자 타임라인의 시작점을 검출할 수 있다.
더욱 구체적으로 전문가 타임라인의 시작점은, 전문가 타임라인의 기준이 되는 시점을 의미할 수 있다. 또한 사용자 타임라인의 시작점은, 사용자 타임라인의 기준이 되는 시점을 의미할 수 있다. 그리고 전문가 타임라인의 시작점과 사용자 타임라인의 시작점은 서로 동일할 수 있다.
예를 들어 A 노래가 시작하는 시점이 전문가 타임라인의 시작점으로 설정되는 경우, 전문가 타임라인 상에서 0초는 A 노래가 시작하는 시점일 수 있다. 이 경우 제어부(120)는 동영상에서 출력되는 오디오로부터 A 노래가 시작되는 시점을 검출하고, 검출된 시점을 사용자 타임라인의 시작점으로 설정할 수 있다.
한편 전문가 타임라인의 시작점은, 반드시 노래가 시작되는 시점일 필요는 없으며, 임의로 설정될 수도 있다. 예를 들어 A 노래가 시작한 후 4초 후의 시점이 전문가 타임라인의 시작점으로 설정되는 경우, 전문가 타임라인 상에서 0초는 A 노래가 시작한 후 4초 후의 시점일 수 있다. 이 경우 제어부(120)는 동영상에서 출력되는 오디오로부터 A 노래가 시작된 후 4초 후의 시점을 검출하고, 사용자 타임라인의 시작점으로 설정할 수 있다.
다음으로, 제어부(120)는 댄스 영상을 이용하여 복수의 이미지 프레임으로 각각 구성되는 시간 윈도우 별 입력 데이터를 생성할 수 있다(S430). 이와 관련해서는 도 6을 참고하여 설명한다.
도 6은 본 발명에 따른, 시간 윈도우 별 입력 데이터를 생성하고, 안무 동작 클래스를 획득하는 방법을 설명하기 위한 도면이다.
시간 윈도우란, 동일한 크기의 시간 구간을 가지고, 바로 이전 또는 바로 이후의 시간 윈도우와 동일한 시간 구간을 일부 공유하는 것을 의미할 수 있다.
예를 들어 제어부(120)는 제1 시간 윈도우(사용자 타임라인의 시작점(0초)로부터 5초까지)의 복수의 이미지 프레임으로 구성되는 제1 입력 데이터를 생성하고, 제2 시간 윈도우(1초부터 6초까지)의 복수의 이미지 프레임으로 구성되는 제2 입력 데이터를 생성하고, 제3 시간 윈도우(2초부터 7초까지)의 복수의 이미지 프레임으로 구성되는 제3 입력 데이터를 생성할 수 있다.
한편 도 6a를 참고하면, 제어부(120)는 시간 윈도우에 포함되는 복수의 이미지 프레임(610)을 전처리하여 전처리 이미지(620)를 생성할 수 있다. 이 경우 제어부(120)는 전처리 이미지를 입력 데이터로 사용하여 인공지능 모델(630)에 제공할 수 있다.
여기서 전처리 이미지(620)는 스켈레톤(skeleton) 이미지일 수 있다. 여기서 스켈레톤(skeleton) 이미지는 관절을 나타내는 노드 및 관절과 관절을 연결하는 엣지를 포함할 수 있다. 이 경우 제어부(120)는 복수의 이미지 프레임(610)에 대한 2D 또는 3D 포즈 추정(Pose Estimation)을 통하여, 복수의 이미지 프레임(610)에 각각 대응하는 복수의 스켈레톤(skeleton) 이미지를 생성할 수 있다.
이 경우 하나의 시간 윈도우를 구성하는 복수의 스켈레톤(skeleton) 이미지에는 시퀀스 정보가 할당될 수 있다. 그리고 제어부(120)는 시퀀스 정보를 이용하여, 복수의 스켈레톤(skeleton) 이미지가 시퀀스 정보에 따라 배열되고 서로 다른 프레임 간의 동일 관절이 연결되는 그래프를 생성할 수 있다. 이렇게 생성된 그래프는 인공지능 모델(630)에 대한 입력 데이터로 사용될 수 있다.
다음으로, 제어부(120)는 시간 윈도우 별 입력 데이터를 인공지능 모델(630)에 제공하고, 인공지능 모델의 출력 값(630)에 기반하여, 시간 윈도우 별 안무 동작 클래스를 획득할 수 있다(S440).
구체적으로 제어부(120)는 입력 데이터를 인공지능 모델(630)에 제공할 수 있다. 이 경우 인공지능 모델(630)은 제공 받은 입력 데이터와, 자신의 파라미터에 기반하여 출력 값(복수의 안무동작 클래스에 각각 대응하는 복수의 확률 값)을 출력할 수 있다.
또한 제어부(120)는 시간 윈도우 단위로, 입력 데이터를 인공지능 모델(630)에 제공할 수 있다. 이 경우 인공지능 모델(630)은 시간 윈도우 단위로, 입력 데이터에 상응하는 출력 값을 출력할 수 있다.
예를 들어 제어부(120)는 제1 시간 윈도우(0초부터 5초까지)의 제1 입력 데이터를 인공지능 모델(630)에 제공할 수 있으며, 이 경우 인공지능 모델(630)은 제1 입력 데이터에 대응하는 제1 출력 값을 출력할 수 있다. 또한 제어부(120)는 제2 시간 윈도우(1초부터 6초까지)의 제2 입력 데이터를 인공지능 모델(630)에 제공할 수 있으며, 이 경우 인공지능 모델(630)은 제2 입력 데이터에 대응하는 제2 출력 값을 출력할 수 있다.
한편 도 6a를 참고하면, 제어부(120)는 인공지능 모델이 출력한 복수의 확률 값 중 제1 임계 값보다 높은 확률 값을 가지는 안무 동작 클래스를 획득할 수 있다.
예를 들어 복수의 확률 값의 합은 1일 수 있으며, 제1 임계 값은 0.5일 수 있다. 그리고 복수의 확률 값 중 제1 안무 동작 클래스(예를 들어 아이솔레이션(Isolation))에 대응하는 확률 값이 0.87인 경우, 제어부(120)는 제1 임계 값보다 높은 확률 값을 가지는 제1 안무 동작 클래스(예를 들어 아이솔레이션(Isolation))를 획득할 수 있다.
한편 제어부(120)는 가장 높은 확률 값을 가지는 안무 동작 클래스에 상응하는 시간 구간 및 안무 동작 클래스에 상응하는 안무 동작을 포함하는 사용자 안무 정보를 생성할 수 있다.
예를 들어, 인공지능 모델(630)이 제11 시간 윈도우(10초부터 15초까지)의 입력 데이터에 기반하여 복수의 확률 값을 출력하였고, 이 중 제1 안무 동작 클래스(예를 들어 아이솔레이션(Isolation))의 확률 값이 제1 임계 값보다 크다고 가정한다.
이 경우 제어부(120)는 제1 안무 동작 클래스의 출력에 사용된 제11 시간 윈도우의 시간 구간(10초부터 15초까지) 및 제1 안무 동작 클래스에 상응하는 안무 동작(아이솔레이션(Isolation))을 포함하는 사용자 안무 정보를 생성할 수 있다.
한편 제어부(120)는 시간 윈도우 별 안무 동작 클래스가 연속적으로 동일하게 획득되는 경우, 연속적으로 동일하게 출력된 안무 동작 클래스에 상응하는 시간 구간 및 연속적으로 동일하게 획득된 안무 동작 클래스에 상응하는 안무 동작을 포함하는 사용자 안무 정보를 생성할 수 있다.
예를 들어, 인공지능 모델(630)이 제11 시간 윈도우(10초부터 15초까지)의 입력 데이터에 기반하여 복수의 확률 값을 출력하였고, 이 중 제1 안무 동작 클래스(아이솔레이션(Isolation))의 확률 값이 제1 임계 값보다 크다. 또한 인공지능 모델(630)이 제12 시간 윈도우(11초부터 16초까지), 13 시간 윈도우(12초부터 17초까지)의 입력 데이터에 기반하여 제1 안무 동작 클래스(아이솔레이션(Isolation))의 확률 값을 제1 임계 값보다 크게 출력하였다고 가정한다.
이 경우 제어부(120)는 연속적으로 동일하게 획득된 안무 동작 클래스에 상응하는 시간 구간(10초부터 17초까지)을 검출할 수 있다. 또한 제어부(120)는 연속적으로 동일하게 획득된 제1 안무 동작 클래스에 상응하는 안무 동작(아이솔레이션(Isolation))을 검출할 수 있다. 이 경우 제어부(120)는 10초부터 17초까지의 시간 구간 및 아이솔레이션(Isolation)이라는 안무 동작을 포함하는 사용자 안무 정보를 생성할 수 있다.
한편 복합 안무 시간 구간이 존재할 수 있다. 여기서 복합 안무 시간 구간이란, 복수의 안무 동작이 함께 수행되는 시간 구간을 의미한다. 예를 들어 복합 안무 시간 구간은, 여러 안무 동작 중 아이솔레이션(Isolation) 동작과 웨이브 동작이 동시에 수행되는 시간을 의미할 수 있다.
한편 메모리(130)는 복합 안무 시간 구간에 대한 정보를 저장할 수 있다. 예를 들어 메모리(130)는 전문가 타임라인의 시작점으로부터 5초 내지 15초 구간이 복합 안무 시간 구간이라는 정보를 저장할 수 있다.
한편 제어부(120)는 사용자 타임라인의 시작점을 이용하여 복합 안무 시간에 해당하는 입력 데이터를 검출할 수 있다.
구체적으로, 앞서 제어부(120)가 시간 윈도우 별 입력 데이터를 생성한다고 설명한 바 있다. 이 경우 제어부(120)는 사용자 타임라인의 시작점을 이용하여 복합 안무 시간 구간에 해당하는 입력 데이터를 검출할 수 있다.
예를 들어 제어부(120)는 사용자 타임라인의 시작점으로부터 5초 내지 15초 구간에 존재하는 입력 데이터를 검출할 수 있다. 이 경우 제어부(120)는 제6 윈도우(5초부터 10초까지) 내지 제10 윈도우(10초부터 15초까지)의 입력 데이터들을 검출할 수 있다.
한편 인공지능 모델(630)이 복합 안무 시간 구간 내의 입력 데이터를 이용하여 복수의 확률 값을 출력하는 경우, 제어부(120)는 제2 임계 값보다 높은 확률 값을 가지는 복수의 안무 동작 클래스를 획득할 수 있다. 여기서 제2 임계 값은 앞서 설명한 제1 임계 값보다 작을 수 있다.
구체적으로 제어부(120)는 시간 윈도우 별 입력 데이터를 인공지능 모델(630)에 제공할 수 있다. 이 경우 인공지능 모델(630)은 제공 받은 입력 데이터와, 자신의 파라미터에 기반하여 시간 윈도우 별 출력 값(복수의 안무동작 클래스에 각각 대응하는 복수의 확률 값)을 출력할 수 있다.
그리고, 복합 안무 시간 구간에 해당하는 입력 데이터가 인공지능 모델(630)에 제공되는 경우, 제어부(120)는 인공지능 모델(630)의 출력 값에, 제1 임계 값이 아닌 제2 임계 값을 적용할 수 있다.
도 6b에서는 제2 임계 값이 0.3인 것으로 가정하였다. 이 경우 제어부(120)는 인공지능 모델이 출력한 복수의 확률 값 중 제2 임계 값보다 높은 확률 값을 가지는 하나 이상의 안무 동작 클래스를 획득할 수 있다.
예를 들어 도 6b에 도시된 바와 같이, 복수의 확률 값 중 제1 안무 동작 클래스(아이솔레이션(Isolation))에 대응하는 확률 값이 0.41이고, 제2 안무 동작 클래스(웨이브(Wave))에 대응하는 확률 값이 0.33인 경우, 제어부(120)는 제2 임계 값보다 높은 확률 값을 가지는 제1 안무 동작 클래스(아이솔레이션(Isolation)) 및 제2 안무 동작 클래스(웨이브(Wave))를 획득할 수 있다.
이 경우 제어부(120)는, 하나 이상의 안무 동작 클래스에 상응하는 시간 구간 및 하나 이상의 안무 동작 클래스에 상응하는 하나 이상의 안무 동작을 포함하는 사용자 안무 정보를 생성할 수 있다.
예를 들어 제11 시간 윈도우(10초부터 15초까지) 내지 제13 시간 윈도우(12초부터 17초까지)의 입력 데이터에 기반하여, 제1 안무 동작 클래스(아이솔레이션(Isolation)) 및 제2 안무 동작 클래스(웨이브(Wave))가 획득되었다.
이 경우 제어부(120)는 10초부터 17초까지의 시간 구간, 그리고 아이솔레이션(Isolation) 및 웨이브(Wave)라는 복합 안무 동작을 포함하는 사용자 안무 정보를 생성할 수 있다.
한편 앞서 설명한 바와 같이, 복합 안무를 검출하기 위하여, 제2 임계 값은 제1 임계값보다 작을 수 있다. 그리고 제2 임계 값은 실험적 또는 경험적으로 최적화될 수 있다.
여기서 중요한 것은, 복합 안무 시간 구간에서 전문가에 의해 지정된 안무 동작의 개수와 동일한 개수의 복합 안무를 검출하는 것이 아니라, 제2 임계값보다 큰 확률을 가지는 복합 안무를 검출한다는 것이다.
즉 복합 안무 시간 구간에서 사용자는 실수를 할 수 있다. 예를 들어 복합 안무 시간 구간에서 전문가는 2개의 안무 동작(아이솔레이션 및 웨이브)를 지정하였으나, 실제 사용자는 1개의 안무 동작만을 수행할 수도 있다.
이 경우 제어부(120)가 확률이 가장 큰 2개의 안무 동작을 일률적으로 검출하게 되면, 사용자가 실수를 하지 않은 것 같이 인식될 수 있다. 예를 들어 아이솔레이션에 상응하는 확률 값(가장 높은 확률 값)이 0.8이고, 웨이브에 상응하는 확률 값(두번째로 높은 확률 값)이 0.1인 경우를 가정한다. 이 경우 실제 사용자는 웨이브를 제대로 수행하지 못한 것이나, 확률이 가장 큰 2개의 안무 동작을 검출하게 되면, 사용자가 실수를 하지 않은 것 같이 인식되게 된다.
따라서 제어부(120)는 제1 임계값보다 작은 제2 임계 값을 사용하고, 제2 임계 값을 실험적 또는 경험적으로 최적화함으로써, 복합 안무를 검출할 수 있다.
또한 제2 임계 값은, 복합 안무 시간 구간에서 전문가에 의해 지정된 안무 동작의 개수에 따라 결정될 수 있다.
예를 들어 전문가가 3개의 안무 동작을 지정한 복합 시간 구간에 적용되는 제2 임계 값은, 전문가가 2개의 안무 동작을 지정한 복합 시간 구간에 적용되는 제2 임계 값보다 작을 수 있다. 예를 들어 3개의 안무 동작이 지정된 복합 시간 구간에서의 제2 임계 값은 0.25이고, 2개의 안무 동작이 지정된 복합 시간 구간에서의 제2 임계 값은 0.3일 수 있다.
다음으로, 제어부(120)는 시작점 및 시간 윈도우 별 안무 동작 클래스를 이용하여 사용자 타임라인을 생성할 수 있다(S450).
구체적으로 제어부(120)는 사용자 타임라인의 시작점을 기준으로 복수의 사용자 안무 정보를 정렬하여 사용자 타임라인을 생성할 수 있다.
예를 들어 사용자 타임라인의 시작점은 0초이다. 그리고 제1 시간 구간(3초 내지 10초) 및 제1 안무 동작(아이솔레이션)을 포함하는 제1 사용자 안무 정보, 제2 시간 구간(10초 내지 15초) 및 복합 안무 동작(아이솔레이션 및 웨이브)를 포함하는 제2 사용자 안무 정보, 제3 시간 구간(20초 내지 25초) 제2 안무 동작(턴)을 포함하는 제3 사용자 안무 정보가 존재한다.
이 경우 제어부(120)는 사용자 타임라인의 시작점(0초)를 기준으로 각각의 사용자 안무 정보가 위치하는 시간 구간이 식별 가능하도록, 제1 사용자 안무 정보, 제2 사용자 안무 정보 및 제3 사용자 안무 정보를 정렬하여 사용자 타임라인을 생성할 수 있다.
다음으로, 제어부(120)는 사용자 타임라인과 전문가 타임라인 간의 비교 결과를 출력할 수 있다(S460). 이와 관련해서는 도 7을 참고하여 설명한다.
도 7은 본 발명에 따른, 사용자 타임 라인의 일부와 전문가 타임라인의 일부를 도시한 도면이다.
먼저 사용자 타임라인과 전문가 타임라인 간의 비교 결과를 출력한다는 것은, 사용자 타임라인과 전문가 타임라인을 사용자 단말에 전송하거나, 댄스 타임라인 생성 장치(100)가 직접 디스플레이 하는 것을 의미할 수 있다.
한편 사용자 타임라인과 전문가 타임라인 간의 비교 결과는, 사용자 타임라인 및 전문가 타임라인을 포함할 수 있다. 즉 제어부(120)는, 도 7에 도시된 바와 같이, 전문가 타임라인(710)과 사용자 타임라인(720)을 출력할 수 있다.
여기서 전문가 타임라인의 시작점(710)과 사용자 타임라인(720)의 시작점은 모두 동일하다. 예를 들어 전문가 타임라인의 시작점(710)과 사용자 타임라인(720)의 시작점은 모두, 노래가 시작되는 시점일 수 있다. 다른 예를 들어 전문가 타임라인의 시작점(710)과 사용자 타임라인(720)의 시작점은 모두, 노래가 시작된 후 4초가 경과한 시점일 수 있다,
따라서 사용자는 전문가 타임라인(710)과 사용자 타임라인(720)을 보고, 자신이 안무 동작을 잘못 취한 부분이 어디인지를 확인할 수 있다.
또한 사용자 타임라인과 전문가 타임라인 간의 비교 결과는, 동일한 시간 구간에, 전문가의 안무 동작과 사용자의 안무 동작이 동일한지 여부를 포함할 수 있다.
예를 들어 도 7의 a 시간 구간(예를 들어 0초 내지 3초)를 참조하면, 전문가 타임라인(710) 상에서는 라이닝 수직 안무 동작이 0초에 시작되어 3초에 종료되었다. 반면에 사용자는 박자를 놓쳐 라이닝 수직 안무 동작을 늦게 취했으며, 따라서 사용자 타임라인(720) 상에서는 라이닝 수직 안무 동작이 1.5초에 시작되어 3초에 종료되었다. 이 경우 제어부(120)는 a 시간 구간에서 동일한 안무 동작을 취했으나 동작을 취한 타이밍이 틀렸다는 것을 나타내는 비교 결과를 출력할 수 있다.
다른 예를 들어 도 7의 b 시간 구간(예를 들어 3초 내지 5초)를 참조하면, 전문가 타임라인(710) 상에서는 아이솔레이션 머리 안무 동작과 웨이브 몸통 안무 동작이 포함된다. 다만 사용자는 아이솔레이션 머리 안무 동작만을 취했으며, 웨이브 몸통 동작은 취하지 못하였다. 이 경우 제어부(120)는 b 시간 구간에서 아이솔레이션 머리 안무 동작은 맞았으나 웨이브 몸통 동작은 틀렸다는 것을 나타내는 비교 결과를 출력할 수 있다.
다른 예를 들어 도 7의 c시간 구간(예를 들어 5초 내지 9초)를 참조하면, 전문가 타임라인(710) 상에서는 아이솔레이션 머리 안무 동작과 웨이브 팔 안무 동작이 포함된다. 또한 사용자도 c 시간 구간에서, 아이솔레이션 머리 안무 동작과 웨이브 팔 안무 동작을 취하였다. 이 경우 제어부(120)는 c 시간 구간에서 정확한 안무 동작을 수행했다는 것을 나타내는 비교 결과를 출력할 수 있다.
또한 제어부(120)는 전문가 타임라인(710) 상에 포함되는 안무 동작들 및 안무 동작들의 시간 구간과, 사용자 타임라인(720) 상에 포함되는 안무 동작들 및 안무 동작들의 시간 구간을 비교하여 점수를 산출하고, 산출된 점수를 포함하는 비교 결과를 출력할 수도 있다.
이와 같이 본 발명에 따르면, 사용자가 전문가의 직접 지도를 받기 힘든 상황에서도, 휴대폰 등의 개인 단말로 자신의 댄스 영상을 촬영함으로써, 전문가와의 동작을 비교하고 평가를 받을 수 있는 환경을 제공할 수 있다.
또한 댄스 타임라인 생성 장치(100)는 다양한 사용자 단말로부터 사용자의 댄스 동영상을 수집하여 비교 결과를 전송해준다. 다만 사용자가 직접 촬영하는 동영상의 특성 상, 다양한 사용자들이 촬영하여 전송하는 동영상들은 그 시작점이 제각각 다를 수 있다. 그리고 본 발명에 따르면, 사용자 타임라인의 시작점과 전문가 타임라인의 시작점을 자동으로 일치시킨 후 비교 결과를 출력함으로써, 사용자에게 정확한 비교 결과를 전달할 수 있는 장점이 있다.
또한 본 발명에 따르면, 단순히 사용자 댄스와 전문가 댄스의 유사성을 비교하는 것이 아니라, 댄스를 구성하는 개별적인 안무 동작을 비교함으로써, 사용자가 자신의 취약점을 정확히 분석할 수 있는 장점이 있다. 예를 들어 아이솔레이션 머리, 웨이브 팔, 스탭 옆으로 구성되는 복합 안무 동작이 있는 경우, 사용자는 아이솔레이션 머리, 스탭 옆 동작은 제대로 취하였으나, 웨이브 팔 동작을 정확히 수행하지 못하였다는 것을 알 수 있다.
또한 본 발명에 따르면, 단순히 동작의 일치 여부뿐만 아니라, 동작의 시간 구간의 일치 여부를 사용자에게 제공하기 때문에, 사용자가 안무 동작의 딜레이 등을 정확하게 파악할 수 있는 장점이 있다.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 상기 컴퓨터는 서버의 프로세서(180)를 포함할 수도 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니 되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
110: 동영상 수집부 120: 제어부
130: 메모리 140: 출력부

Claims (19)

  1. 사용자의 댄스 영상 및 오디오를 포함하는 동영상을 획득하는 단계;
    상기 오디오를 이용하여 사용자 타임라인의 시작점을 검출하는 단계;
    상기 댄스 영상을 이용하여 복수의 이미지 프레임으로 각각 구성되는 시간 윈도우 별 입력 데이터를 생성하는 단계;
    상기 시간 윈도우 별 입력 데이터를 인공지능 모델에 제공하고, 상기 인공지능 모델의 출력 값에 기반하여 상기 시간 윈도우 별 안무 동작 클래스를 획득하는 단계;
    상기 시작점 및 상기 시간 윈도우 별 안무 동작 클래스를 이용하여 상기 사용자 타임라인을 생성하는 단계; 및
    상기 사용자 타임라인과 전문가 타임라인 간의 비교 결과를 출력하는 단계;를 포함하는
    댄스 타임라인 생성 방법.
  2. 제 1항에 있어서,
    상기 오디오를 이용하여 사용자 타임라인의 시작점을 검출하는 단계는,
    상기 동영상에서 출력되는 오디오의 노래 정보를 획득하는 단계;
    메모리로부터, 상기 노래 정보에 상응하는 오디오를 획득하는 단계; 및
    상기 동영상에서 출력되는 오디오와 상기 노래 정보에 상응하는 오디오를 비교하여, 상기 사용자 타임라인의 시작점을 검출하는 단계;를 포함하는
    댄스 타임라인 생성 방법.
  3. 제 2항에 있어서,
    상기 시작점 및 상기 시간 윈도우 별 안무 동작 클래스를 이용하여 상기 사용자 타임라인을 생성하는 단계는,
    상기 시간 윈도우 별 안무 동작 클래스가 연속적으로 동일하게 획득되는 경우, 상기 연속적으로 동일하게 획득된 안무 동작 클래스에 상응하는 시간 구간 및 상기 연속적으로 동일하게 획득된 안무 동작 클래스에 상응하는 안무 동작을 포함하는 사용자 안무 정보를 생성하는 단계;를 포함하는
    댄스 타임라인 생성 방법.
  4. 제 3항에 있어서,
    상기 시작점 및 상기 시간 윈도우 별 안무 동작 클래스를 이용하여 상기 사용자 타임라인을 생성하는 단계는,
    상기 사용자 타임라인의 시작점을 기준으로 복수의 사용자 안무 정보를 정렬하여 상기 사용자 타임라인을 생성하는 단계;를 더 포함하는
    댄스 타임라인 생성 방법.
  5. 제 4항에 있어서,
    상기 전문가 타임라인은,
    상기 시작점을 기준으로 복수의 전문가 안무 정보를 정렬하여 생성되는
    댄스 타임라인 생성 방법.
  6. 제 1항에 있어서,
    상기 시간 윈도우 별 안무 동작 클래스를 획득하는 단계는,
    상기 인공지능 모델이 출력한 복수의 확률 값 중 제1 임계 값보다 높은 확률 값을 가지는 상기 안무 동작 클래스를 획득하는 단계;를 포함하는
    댄스 타임라인 생성 방법.
  7. 제 6항에 있어서,
    상기 시간 윈도우 별 안무 동작 클래스를 획득하는 단계는,
    상기 사용자 타임라인의 시작점을 이용하여 복합 안무 시간 구간에 해당하는 입력 데이터를 검출하는 단계; 및
    상기 인공지능 모델이 상기 복합 안무 시간 구간 내의 입력 데이터를 이용하여 복수의 확률 값을 출력하는 경우, 제2 임계 값보다 높은 확률 값을 가지는 복수의 안무 동작 클래스를 획득하는 단계;를 포함하는
    댄스 타임라인 생성 방법.
  8. 제 7항에 있어서,
    상기 제2 임계 값은 상기 제1 임계 값보다 작은
    댄스 타임라인 생성 방법.
  9. 제 7항에 있어서,
    상기 제2 임계 값은,
    상기 복합 안무 시간 구간에서 전문가에 의해 지정된 안무 동작의 개수에 따라 결정되는
    댄스 타임라인 생성 방법.
  10. 사용자의 댄스 영상 및 오디오를 포함하는 동영상을 획득하는 동영상 수집부;
    출력부; 및
    상기 오디오를 이용하여 사용자 타임라인의 시작점을 검출하고, 상기 댄스 영상을 이용하여 복수의 이미지 프레임으로 각각 구성되는 시간 윈도우 별 입력 데이터를 생성하고, 상기 시간 윈도우 별 입력 데이터를 인공지능 모델에 제공하고, 상기 인공지능 모델의 출력 값에 기반하여 상기 시간 윈도우 별 안무 동작 클래스를 획득하고, 상기 시작점 및 상기 시간 윈도우 별 안무 동작 클래스를 이용하여 상기 사용자 타임라인을 생성하고, 상기 사용자 타임라인과 전문가 타임라인 간의 비교 결과를 출력하도록 상기 출력부를 제어하는 제어부;를 포함하는
    댄스 타임라인 생성 장치.
  11. 제 10항에 있어서,
    복수의 노래 정보에 각각 대응하는 복수의 오디오를 저장하는 메모리;를 더 포함하고,
    상기 제어부는,
    상기 동영상에서 출력되는 오디오의 노래 정보를 획득하고,
    상기 메모리로부터, 상기 동영상에서 출력되는 오디오의 노래 정보에 상응하는 오디오를 획득하고,
    상기 동영상에서 출력되는 오디오와 상기 노래 정보에 상응하는 오디오를 비교하여, 상기 사용자 타임라인의 시작점을 검출하는
    댄스 타임라인 생성 장치.
  12. 제 11항에 있어서,
    상기 제어부는,
    상기 시간 윈도우 별 안무 동작 클래스가 연속적으로 동일하게 획득되는 경우, 상기 연속적으로 동일하게 획득된 안무 동작 클래스에 상응하는 시간 구간 및 상기 연속적으로 동일하게 획득된 안무 동작 클래스에 상응하는 안무 동작을 포함하는 사용자 안무 정보를 생성하는
    댄스 타임라인 생성 장치.
  13. 제 12항에 있어서,
    상기 제어부는,
    상기 사용자 타임라인의 시작점을 기준으로 복수의 사용자 안무 정보를 정렬하여 상기 사용자 타임라인을 생성하는
    댄스 타임라인 생성 장치.
  14. 제 13항에 있어서,
    상기 전문가 타임라인은,
    상기 시작점을 기준으로 복수의 전문가 안무 정보를 정렬하여 생성되는
    댄스 타임라인 생성 장치.
  15. 제 10항에 있어서,
    상기 제어부는,
    상기 인공지능 모델이 출력한 복수의 확률 값 중 제1 임계 값보다 높은 확률 값을 가지는 상기 안무 동작 클래스를 획득하는
    댄스 타임라인 생성 장치.
  16. 제 15항에 있어서,
    상기 제어부는,
    상기 사용자 타임라인의 시작점을 이용하여 복합 안무 시간 구간에 해당하는 입력 데이터를 검출하고,
    상기 인공지능 모델이 상기 복합 안무 시간 구간 내의 입력 데이터를 이용하여 복수의 확률 값을 출력하는 경우, 제2 임계 값보다 높은 확률 값을 가지는 복수의 안무 동작 클래스를 획득하는
    댄스 타임라인 생성 장치.
  17. 제 16항에 있어서,
    상기 제2 임계 값은 상기 제1 임계 값보다 작은
    댄스 타임라인 생성 장치.
  18. 제 16항에 있어서,
    상기 제2 임계 값은,
    상기 복합 안무 시간 구간에서 전문가에 의해 지정된 안무 동작의 개수에 따라 결정되는
    댄스 타임라인 생성 장치.
  19. 사용자의 댄스 영상 및 오디오를 포함하는 동영상을 획득하는 단계;
    상기 오디오를 이용하여 사용자 타임라인의 시작점을 검출하는 단계;
    상기 댄스 영상을 이용하여 복수의 이미지 프레임으로 각각 구성되는 시간 윈도우 별 입력 데이터를 생성하는 단계;
    상기 시간 윈도우 별 입력 데이터를 인공지능 모델에 제공하고, 상기 인공지능 모델의 출력 값에 기반하여 상기 시간 윈도우 별 안무 동작 클래스를 획득하는 단계;
    상기 시작점 및 상기 시간 윈도우 별 안무 동작 클래스를 이용하여 상기 사용자 타임라인을 생성하는 단계; 및
    상기 사용자 타임라인과 전문가 타임라인 간의 비교 결과를 출력하는 단계;를 포함하는 댄스 타임라인 생성 방법을 수행하기 위하여 매체에 저장된 컴퓨터 프로그램.
KR1020210155210A 2021-11-11 2021-11-11 안무 동작 타임라인 생성 방법 및 장치 KR20230068913A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210155210A KR20230068913A (ko) 2021-11-11 2021-11-11 안무 동작 타임라인 생성 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210155210A KR20230068913A (ko) 2021-11-11 2021-11-11 안무 동작 타임라인 생성 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20230068913A true KR20230068913A (ko) 2023-05-18

Family

ID=86545460

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210155210A KR20230068913A (ko) 2021-11-11 2021-11-11 안무 동작 타임라인 생성 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20230068913A (ko)

Similar Documents

Publication Publication Date Title
Kong et al. Mmact: A large-scale dataset for cross modal human action understanding
US20210000404A1 (en) Systems and methods for automated recognition of bodily expression of emotion
US9690982B2 (en) Identifying gestures or movements using a feature matrix that was compressed/collapsed using principal joint variable analysis and thresholds
US9639746B2 (en) Systems and methods of detecting body movements using globally generated multi-dimensional gesture data
US8824802B2 (en) Method and system for gesture recognition
Rishan et al. Infinity yoga tutor: Yoga posture detection and correction system
Soomro et al. Online localization and prediction of actions and interactions
CN110298220B (zh) 动作视频直播方法、***、电子设备、存储介质
Alkabbany et al. Measuring student engagement level using facial information
US11819734B2 (en) Video-based motion counting and analysis systems and methods for virtual fitness application
CN112527113A (zh) 手势识别及手势识别网络的训练方法和装置、介质和设备
Malmir et al. Home alone: Social robots for digital ethnography of toddler behavior
US11450010B2 (en) Repetition counting and classification of movements systems and methods
Emad et al. ikarate: Karate kata guidance system
CN115331314A (zh) 一种基于app筛查功能的运动效果评估方法和***
Nan et al. Human action recognition for social robots
Li et al. Motion-decoupled spiking transformer for audio-visual zero-shot learning
Kim et al. Modeling transition patterns between events for temporal human action segmentation and classification
Li et al. Towards an “in-the-wild” emotion dataset using a game-based framework
KR20230068913A (ko) 안무 동작 타임라인 생성 방법 및 장치
Meng et al. Detection of abnormal gait from skeleton data
Benhamida et al. Theater Aid System for the Visually Impaired Through Transfer Learning of Spatio-Temporal Graph Convolution Networks
Li et al. Towards an
Roubleh et al. Video based human activities recognition using deep learning
Vrigkas et al. Human Activity Recognition Using Robust Adaptive Privileged Probabilistic Learning