Skip to content

woogieme/DrumComeTrue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

405 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Drums Come True: 초보자를 위한 AI 모션인식 드럼 연주 서비스


🥁 프로젝트 소개

SSAFY 9기 특화프로젝트 : 모션인식 모델을 사용한 드럼 연주 서비스 앱

Drums Come True는 사용자에게 모션 인식을 통한 드럼을 연주할 수 있는 경험을 제공합니다.

Drums Come True는 크게 다음과 같은 기능을 지원합니다.


자유 연주 튜토리얼 연습하기

📺 [Drums Come True 프로젝트 소개 UCC 보러가기](https://www.youtube.com/watch?v=0o1SzXWC2Oo)


📅 프로젝트 기간

23.08.21 ~ 23.10.06(7주)


👨‍👩‍👧‍👧 팀 소개



우수인
(FrontEnd)



김나연
(FrontEnd)



이상욱
(FrontEnd)



이진서
(BackEnd)



정재욱
(BackEnd)



천지호
(FrontEnd)


📃 시작 가이드

요구사항

버전에 맞는 환경이 필요합니다.

FE

사용기술 버전
Kotlin
SDK 33

BE

사용기술 버전
JDK 11
Springboot 2.7.14
gradle 8.1.1

⚙ 사용 기술

Back-End
Front-End
Infra
외부 SDK
VC
Tools

⛏ 주요 활용 기술

모션인식을 사용한 이유

  1. 드럼 연주 모션을 학습시키고자 했으나
    • 티쳐블 머신으로 만들고자 했으나 손목까지만 모션을 학습시킴
      → TensorFlow를 통해 학습을 시켜봤으나 유의미한 결과를 얻지 못함
      → 전문가 미팅을 통해 의미있는 모델을 구성하려면 최소 1만장은 학습을 시켜야 함을 알게 됨

ML_Kit SDK를 사용한 이유

포즈 감지를 안드로이드에서 지원하는 모델을 찾아봤을 때

  • MediaPipe와 ML_Kit가 있음
  1. 가장 유명한 MediaPipe를 통해 진행을 하였으나 정확성을 비교적 높으나 가장 Lite한 모델로도 실시간으로 사용시 0.5초 이상의 delay를 보임 delay를 줄이기 위해

    1. 해상도 낮춰봄
    2. MediaPipe의 모델 변경해봄
  2. ML_Kit를 사용하면 인식된 Pose가 계속 떨리면서 정확성이 너무 떨어졌음 하지만 0.1초 이하의 delay를 보임

실시간으로 드럼을 연주하는 경험을 주기 위해서는 delay가 가장 중요하다고 보고 ML_Kit를 사용하여 진행하게 됨.


🎵 주요 기능

1. 자유 연주

  • AI 모션인식을 통해 8가지의 가상 드럼을 실제처럼 연주
  • 사용자가 보유한 음원파일을 선택해 사용자가 연주하고 싶은 곡의 음악을 들으며 연주
  • 메트로놈을 이용해 정확한 박자 연습

1-1. 자세 잡기

  • 10초 동안 초록색 선에 맞춰 자세 잡기

1-2. 자유 연주

  • 8가지의 가상 드럼을 자유자재로 연주


2. 연습하기

2-1. 동요 연주하기

  • 단계 별 4가지 동요 제공
  • 동요 음원과 악보를 통한 리듬 게임
  • Good, Great, Perfect로 hit 판정
  • hit 수에 따른 별점 매기기

2-2. 스네어 연주하기

  • 메트로놈과 스네어 한개를 통해 기본적인 스냅과 박자를 익히기


3. 튜토리얼

  • 스네어, 하이햇, 베이스 연주 익히기
    • 드럼에서 가장 기본적이고 많이 사용되는 구성 요소로 드럼에 대해 집중적으로 연습
  • 실제 드럼 연주 영상과 설명을 통한 기본 지식 습득
  • 연습하기를 클릭해 해당하는 드럼 연주
스네어 연주법 하이햇 연주법 베이스드럼 연주법

ERD

ERD

About

모션인식 드럼 연주 플랫폼

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors