Search

KR-20260061842-A - Method and Apparatus for Generating Music Reflecting Dynamics of Image

KR20260061842AKR 20260061842 AKR20260061842 AKR 20260061842AKR-20260061842-A

Abstract

본 개시는 입력 이미지에 포함된 사람의 인체 주요 위치를 나타내는 다수의 키포인트를 추출하고, 추출된 다수의 키포인트를 잇는 라인 사이의 각도를 기반으로 다수의 라인-라인 각도(이하 LLA)를 획득하는 단계, 다수의 LLA의 평균값을 계산하여 생성할 음악의 템포를 설정하는 단계, 다수의 LLA의 분포를 기반으로 LLA 히스토그램을 생성하고, 생성된 LLA 히스토그램을 분석하여 생성할 음악의 밀도를 설정하는 단계 및 신경망 연산으로 설정된 템포와 밀도에 따른 음악을 생성하는 단계를 포함하여, 2차원 이미지의 역동성이 반영된 음악을 생성할 수 있는 음악 생성 방법 및 장치를 제공한다.

Inventors

  • 이보경

Assignees

  • 연세대학교 산학협력단

Dates

Publication Date
20260506
Application Date
20241028

Claims (20)

  1. 입력 이미지에 포함된 사람의 인체 주요 위치를 나타내는 다수의 키포인트를 추출하고, 추출된 다수의 키포인트를 잇는 라인 사이의 각도를 기반으로 다수의 라인-라인 각도(이하 LLA)를 획득하는 단계; 상기 다수의 LLA의 평균값을 계산하여 생성할 음악의 템포를 설정하는 단계; 상기 다수의 LLA의 분포를 기반으로 LLA 히스토그램을 생성하고, 생성된 상기 LLA 히스토그램을 분석하여 생성할 음악의 밀도를 설정하는 단계; 및 신경망 연산으로 설정된 상기 템포와 상기 밀도에 따른 음악을 생성하는 단계를 포함하는 음악 생성 방법.
  2. 제1항에 있어서, 상기 LLA를 획득하는 단계는 골격 데이터의 다수의 키포인트 중 3개의 키포인트를 인체 구조를 고려한 다수의 조합으로 선택하고, 선택된 각 조합에서 3개의 키포인트를 잇는 2개의 라인 사이의 각도를 계산하여 상기 LLA를 획득하는 음악 생성 방법.
  3. 제1항에 있어서, 상기 템포를 설정하는 단계는 상기 다수의 LLA의 평균값을 정규화하고, 정규화된 평균값에 LLA와 템포 사이의 상관도를 나타내는 하이퍼파라미터를 가중하여 상기 템포를 나타내는 BPM(Beats Per Minute)를 획득하는 음악 생성 방법.
  4. 제1항에 있어서, 상기 밀도를 설정하는 단계는 상기 LLA가 가질 수 있는 값의 범위를 다수의 구간으로 구분하고, 구분된 각 구간에 해당하는 값을 갖는 LLA의 개수를 카운트하여, 각 구간별로 카운트된 LLA 개수에 따라 상기 LLA 히스토그램을 생성하는 음악 생성 방법.
  5. 제4항에 있어서, 상기 밀도를 설정하는 단계는 상기 LLA 히스토그램에서 다수의 구간 각각의 LLA 개수 중 문턱값 이상인 LLA 개수를 갖는 구간의 개수를 카운트하여 상기 밀도로 설정하는 음악 생성 방법.
  6. 제4항에 있어서, 상기 밀도를 설정하는 단계는 상기 LLA가 가질 수 있는 값의 범위를 생성할 음악의 각 악구에 포함될 수 있는 음표의 개수에 따라 다수의 구간으로 구분하는 음악 생성 방법.
  7. 제4항에 있어서, 상기 밀도를 설정하는 단계는 다수의 구간 각각에 할당된 LLA 개수가 문턱값 이상인지 여부에 따라 이진값이 할당된 벡터 형식의 노트 마스크를 생성하는 음악 생성 방법.
  8. 제1항에 있어서, 상기 LLA를 획득하는 단계는 상기 입력 이미지에 포함된 사람을 검출하여 관심 영역을 설정하고, 상기 관심 영역에 포함된 사람에 대한 상기 다수의 키포인트를 추출하되, 상기 입력 이미지에서 다수의 사람이 검출되면, 가장 큰 관심 영역으로 설정된 사람에 대한 다수의 키포인트를 추출하는 음악 생성 방법.
  9. 제1항에 있어서, 상기 음악 생성 방법은 상기 입력 이미지의 다수의 픽셀의 픽셀값을 기반으로 다수의 대표 컬러를 추출하고, 컬러-코드 매칭 표를 이용하여 추출된 다수의 대표 컬러에 대응하는 코드를 획득하는 단계를 더 포함하는 음악 생성 방법.
  10. 제9항에 있어서, 상기 코드를 획득하는 단계는 상기 다수의 대표 컬러 중 가장 높은 빈도로 출현한 컬러의 색상 및 채도로부터 생성될 음악의 루트 노트의 코드와 스케일을 설정하고, 나머지 대표 컬러 중 출현 빈도에 따라 가중 랜덤 샘플링된 컬러의 색상에 따라, 생성되는 음악의 이후 악구에 적용될 코드를 설정하는 음악 생성 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서, 상기 음악 생성 방법은 메모리, 및 프로세서를 포함하는 장치의 상기 프로세서에 의해 수행되는 음악 생성 방법.
  12. 메모리; 및 상기 메모리에 저장된 프로그램에 따른 동작의 적어도 일부를 실행하는 프로세서를 포함하는 장치로서, 입력 이미지에 포함된 사람의 인체 주요 위치를 나타내는 다수의 키포인트를 추출하고, 추출된 다수의 키포인트를 잇는 라인 사이의 각도를 기반으로 다수의 라인-라인 각도(이하 LLA)를 획득하는 단계, 상기 다수의 LLA의 평균값을 계산하여 생성할 음악의 템포를 설정하는 단계, 상기 다수의 LLA의 분포를 기반으로 LLA 히스토그램을 생성하고, 생성된 상기 LLA 히스토그램을 분석하여 생성할 음악의 밀도를 설정하는 단계, 및 신경망 연산으로 설정된 상기 템포와 상기 밀도에 따른 음악을 생성하는 단계를 수행하는 음악 생성 장치.
  13. 제12항에 있어서, 상기 프로세서는 골격 데이터의 다수의 키포인트 중 3개의 키포인트를 인체 구조를 고려한 다수의 조합으로 선택하고, 선택된 각 조합에서 3개의 키포인트를 잇는 2개의 라인 사이의 각도를 계산하여 상기 LLA를 획득하는 음악 생성 장치.
  14. 제12항에 있어서, 상기 프로세서는 상기 다수의 LLA의 평균값을 정규화하고, 정규화된 평균값에 LLA와 템포 사이의 상관도를 나타내는 하이퍼파라미터를 가중하여 상기 템포를 나타내는 BPM(Beats Per Minute)를 획득하는 음악 생성 장치.
  15. 제12항에 있어서, 상기 프로세서는 상기 LLA가 가질 수 있는 값의 범위를 다수의 구간으로 구분하고, 구분된 각 구간에 해당하는 값을 갖는 LLA의 개수를 카운트하여, 각 구간별로 카운트된 LLA 개수에 따라 상기 LLA 히스토그램을 생성하는 음악 생성 장치.
  16. 제15항에 있어서, 상기 프로세서는 상기 LLA 히스토그램에서 다수의 구간 각각의 LLA 개수 중 문턱값 이상인 LLA 개수를 갖는 구간의 개수를 카운트하여 상기 밀도로 설정하는 음악 생성 장치.
  17. 제15항에 있어서, 상기 프로세서는 상기 LLA가 가질 수 있는 값의 범위를 생성할 음악의 각 악구에 포함될 수 있는 음표의 개수에 따라 다수의 구간으로 구분하는 음악 생성 장치.
  18. 제15항에 있어서, 상기 프로세서는 다수의 구간 각각에 할당된 LLA 개수가 문턱값 이상인지 여부에 따라 이진값이 할당된 벡터 형식의 노트 마스크를 생성하는 음악 생성 장치.
  19. 제12항에 있어서, 상기 프로세서는 상기 입력 이미지에 포함된 사람을 검출하여 관심 영역을 설정하고, 상기 관심 영역에 포함된 사람에 대한 상기 다수의 키포인트를 추출하되, 상기 입력 이미지에서 다수의 사람이 검출되면, 가장 큰 관심 영역으로 설정된 사람에 대한 다수의 키포인트를 추출하는 음악 생성 장치.
  20. 제12항에 있어서, 상기 프로세서는 상기 입력 이미지의 다수의 픽셀의 픽셀값을 기반으로 다수의 대표 컬러를 추출하고, 컬러-코드 매칭 표를 이용하여 추출된 다수의 대표 컬러에 대응하는 코드를 획득하는 단계를 더 수행하는 음악 생성 장치.

Description

이미지의 역동성이 반영된 음악 생성 방법 및 장치{Method and Apparatus for Generating Music Reflecting Dynamics of Image} 본 개시는 음악 생성 방법 및 장치에 관한 것으로, 이미지에 포함된 인물의 포즈에 기반하여 역동성이 반영된 음악 생성 방법 및 장치에 관한 것이다. 시각적 예술 작품을 감상하는 방식에서 최근 멀티 모달 체험(multi-modal experience)이 대두되면서, 예술 작품 감상의 시각적 느낌(visual perception)을 청각적 경험으로까지 확장하려는 시도가 많이 이루어지고 있는 상황이다. 이러한 멀티 모달 체험의 일환으로 정보 데이터를 소리로 전사하는 소니피케이션(Sonification)이라는 기술이 예술 분야에까지 활발하게 확장되고 있다. 그 결과로 2차원의 이미지를 시각적으로 감상하는 동안, 해당 이미지에 어울리는 음악을 생성하여 청각적으로도 함께 감상하도록 하는 연구가 진행되고 있다. 다만 기존 연구에서는 단순한 시각적 요소, 즉 색상과 같이 2차원 이미지에서 직접적으로 용이하게 추출할 수 있는 저차원의 정보 데이터를 소리로 변환하여 음악을 생성하였다. 그러나 이러한 저차원의 정보 데이터로부터 생성되는 음악은 2차원 이미지에 대해 감상하는 사람이 체감하는 느낌이나 감성과 상이한 경우가 많아, 2차원 이미지를 감상하기 위한 환경의 장애 요소로서 작용하게 될 수 있다. 따라서 2차원 이미지로부터 사람이 체감하게 되는 느낌이나 분위기와 같은 고차원 정보 데이터를 잘 표현하는 음악을 생성하는 방법이 요구되고 있다. 즉 2차원 이미지가 갖는 컨텍스트를 표현할 수 있는 음악을 생성할 수 잇는 기법이 요구되고 있다. 도 1은 일 실시예 따른 음악 생성 장치를 동작에 따라 구분한 구성을 나타낸다. 도 2는 도 1의 음악 생성 장치에서 수행되는 동작을 개략적으로 나타낸 도면이다. 도 3은 LLA 히스토그램의 예를 나타낸다. 도 4는 일 실시예 따른 음악 생성 방법을 나타낸다. 도 5는 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 설명하기 위한 도면이다. 이하, 도면을 참조하여 본 개시의 실시예에 따른 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다. 본 개시의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 일 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, “포함” 또는 “구비”와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다. 또한, 명세서에 기재된 “...부”, “...기”, “모듈”, “블록” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 사진이나 그림과 같은 2차원 이미지를 감상할 때 주요 감정 중 하나인 역동성(Sense of Dynamics)이다. 그리고 역동성은 비록 2차원 이미지가 평면에 존재함에도 불구하고, 사람들이 그 평면으로부터 움직임을 느끼게 하는 다양한 시각 요소로부터 기인한다. 예로서 사람이 발레를 하는 순간을 그린 2차원 이미지를 감상할 때, 사람들은 그림에 포함된 사람의 동작의 전후 시간대를 상상해서 받아들이기 때문에 역동성을 느끼게 된다. 이에 여기서는 2차원 이미지에 포함된 사람의 포즈를 분석하여 역동성을 수치화하고, 수치화된 역동성을 음악 생성 시에 반영함으로써 2차원 이미지에 잘 어우러질 수 있는 음악을 생성할 수 있도록 한다. 도 1은 일 실시예 따른 음악 생성 장치를 동작에 따라 구분한 구성을 나타내고, 도 2는 도 1의 음악 생성 장치에서 수행되는 동작을 개략적으로 나타낸 도면이며, 도 3은 LLA 히스토그램의 예를 나타낸다. 도 1을 참조하면, 일 실시예의 음악 생성 장치는 이미지 입력 모듈(10), 포즈 추정 모듈(20), LLA 추출 모듈(30), 템포 결정 모듈(40), 밀도 결정 모듈(50), 코드 생성 모듈(60) 및 음악 생성 모듈(70)을 포함할 수 있다. 이미지 입력 모듈(10)은 음악을 생성하기 위한 2차원 이미지를 획득한다. 여기서 2차원 이미지는 사진이나 그림 등의 다양한 데이터가 활용될 수 있다. 이미지 입력 모듈(10)은 직접 이미지를 획득하는 카메라 등으로 구현되거나, 이미 획득된 적어도 하나의 이미지가 저장된 메모리와 같은 저장 모듈, 또는 다른 장치로부터 이미지를 전달받는 통신 모듈 등으로 구현될 수 있다. 포즈 추정 모듈(20)은 이미지 입력 모듈(10)로부터 이미지를 인가받고, 인가된 이미지에 포함된 사람의 자세를 추정하여 골격 데이터를 획득한다. 여러 연구를 통해 2D 이미지에 사람이 포함된 경우, 이미지를 관찰하는 관찰자는 이미지에 포함된 사람에 주의를 기울이게 되며, 이때 사람의 포즈로부터 역동성을 느끼게 되는 경우가 많다는 것을 알게 되었다. 이에 포즈 추정 모듈(20)은 이미지의 역동성을 분석하기 위해, 이미지에 포함된 사람의 자세를 추정한다. 포즈 추정 모듈(20)은 관심 영역 추출 모델(21) 및 골격 데이터 획득 모델(23)을 포함할 수 있다. 관심 영역 추출 모델(21)은 이미지 입력 모듈(10)에서 인가된 이미지에 대해 신경망 연산을 수행하여 사람이 포함된 영역을 추정하여 관심 영역으로 추출한다. 그리고 추출된 관심 영역을 골격 데이터 획득 모델(23)로 전달한다. 관심 영역 추출 모델(21)은 인가된 이미지에서 사람을 검출하고, 검출된 사람이 포함된 영역에 경계 박스를 설정하여 관심 영역을 추출할 수 있다. 골격 데이터 획득 모델(23)은 관심 영역 추출 모델(21)로부터 관심 영역을 인가받고, 인가된 관심 영역에 대해 신경망 연산을 수행하여 관심 영역에 포함된 사람의 자세를 추정하여 골격 데이터를 획득한다. 골격 데이터 획득 모델(23)은 도 2의 (a)에 도시된 바와 같이, 추출된 관심 영역에서 인체의 머리, 목, 양 어깨, 허리, 골반, 고관절, 팔꿈치, 손목, 무릎 및 발목 등과 같은 주요 위치를 나타내는 다수의 키포인트(Keypoint)를 추출하여 골격 데이터를 획득할 수 있다. 한편 이미지에 다수의 사람이 포함된 경우, 관심 영역 추출 모델(21)은 다수의 관심 영역을 추출하여 포즈 추정 모듈(20)으로 인가하고, 포즈 추정 모듈(20)은 다수의 관심 영역 각각에서 자세를 추정하여 각 사람에 대한 골격 데이터를 획득할 수도 있다. 다만, 이미지에 다수의 사람이 포함된 경우, 이미지에서 가장 큰 영역을 차지하는 사람의 포즈가 이미지의 역동성에 가장 큰 영향을 미칠 수 있다. 이에 관심 영역 추출 모델(21)은 추출된 다수의 관심 영역 중 가장 큰 크기를 갖는 관심 영역만을 선택하여 골격 데이터 획득 모델(23)로 전달할 수도 있다. 관심 영역 추출 모델(21)과 골격 데이터 획득 모델(23)은 각각 학습된 신경망 모델로 구현될 수 있으며, 이미 공개된 신경망 모델이 이용될 수 있다. 또한 여기서는 관심 영역 추출 모델(21)과 골격 데이터 획득 모델(23)을 구분하였으나, 2D 이미지로부터 직접 사람의 골격 데이터를 추출하는 단일 신경망 모델로 구현될 수도 있다. LLA 추출 모듈(30)은 포즈 추정 모듈(20)에서 획득된 골격 데이터를 인가받고, 인가된 골격 데이터에서 다수의 키포인트를 잇는 라인들을 기반으로 다수의 라인-라인 각도(Line-Line-Angle: LLA)를 계산하여 획득한다. LLA 추출 모듈(30)은 골격 데이터의 다수의 키포인트 중에서 3개의 키포인트를 인체 구조를 고려한 다양한 조합으로 선택하고, 선택되는 3개의 키포인트에 의해 생성되는 2개의 라인 사이의 각도로 계산되어 획득될 수 있다. 이때 LLA는 2개의 선 사이에서 획득될 수 있는 2개의 각도 중 작은 각도로서 0 ~ π(3.14)사이의 값으로 획득될 수 있다. 여기서는 일 예로 포즈 추정 모듈(20)이 17개의 키포인트를 추출하고, LLA 추출 모듈(30)은 추출된 17개의 키포인트에서 3개씩의 키포인트에 대한 91개 조합을 획득하여, 91개의 LLA를 획득하는 것으로 가정한다. LLA 추출 모듈(30)이 포즈 추정 모듈(20)에서 획득된 골격 데이터로부터 다수의 LLA를 추출하는 것은 2D 이미지의 역동성을 수치화하기 위해서이다. 상기한 바와 같이 사람이 포함된 2D 이미지를 감상하는 경우, 이미지의 역동성은 이미지에 포함된 사람의 포즈가 가장 큰 영향을 미칠 수 있다. 즉 사람의 포즈가 동적인지 또는 정적인지에 따라 그림의 역동성을 크게 체감할 수 있다. 또한 여러 실험을 통해, 사람의 포즈를 표현하는 골격 데이터의 키포인트들 사이의 위치 관계에 따라 사람의 포즈가 동적인지 정적인지를 판단하는 것으로 확인되었다. 구체적으로 0 ~ π(3.14)사이의 값으로 획득되는 다수의 LLA에서 0 ~ π/2범위(즉 90도 이하 각도)의 값을 갖는 LLA의 개수가 많을수록 정적인 이미지로 판단하는 반면, π/2 ~ π범위(90도 초과, 180도 미만 각도)의 값을 갖는 LLA의 개수가 많을수록 동적인 이미지로 판단한다는 것이 확인되었다. 그러므로 다수의 LLA는 이미지의 역동성을 수치적으로 표현한 결과라고 볼 수 있다. 이에 LLA 추출 모듈(30)은 다수의 LLA를 획득하여 다수의 LLA