설계/프로젝트 제안서

보고서 및 논문 윤리 서약

1. 나는 보고서 및 논문의 내용을 조작하지 않겠습니다.

2. 나는 다른 사람의 보고서 및 논문의 내용을 내 것처럼 무단으로 복사하지 않겠습니다.

3. 나는 다른 사람의 보고서 및 논문의 내용을 참고하거나 인용할 시 참고 및 인용 형식을 갖추고 출처를 반드시 밝히겠습니다.

4. 나는 보고서 및 논문을 대신하여 작성하도록 청탁하지도 청탁받지도 않겠습니다.

나는 보고서 및 논문 작성 시 위법 행위를 하지 않고, 명지인으로서 또한 공학인으로서 나의 양심과 명예를 지킬 것을 약속합니다.

보고서명 : AI ROOM 프로젝트 제안서

학    과 : 컴퓨터공학과

과    목 : 캡스톤 디자인1

담당교수 : 신민호 교수님

제 출 일 : 2019년 10월 2일

팀 장  학번 : 60132297        이름 : 이광용      (서명)

팀원1  학번 : 60132238        이름 : 김영빈      (서명)

팀원2  학번 : 60132227        이름 : 권용진      (서명)

팀원3  학번 : 60132230        이름 : 김강혁      (서명)

목 차

I.	서론 : 설계/프로젝트 개요.............................................................................................................	4
II.	설계/프로젝트의 현실적 제한 조건...........................................................................................	4
III.	사용자 요구사항..................................................................................................................................	6
IV.	설계/프로젝트 목적............................................................................................................................	6
V.	프로젝트 관련 선행연구 조사 및 제안 프로젝트의 차별성............................................	7
VI.	설계/프로젝트 평가............................................................................................................................	7
VII.	설계/프로젝트 계획............................................................................................................................	8
VIII.	참고자료..................................................................................................................................................	9

설계/프로젝트 제안서

에이아이룸 (AI ROOM)

제안상품명: AI ROOM

발주자: 명지대학교 컴퓨터공학과 신민호 교수

보고기관: 명지대학교 컴퓨터공학과

설계팀: 1조 (명지대학교 컴퓨터공학과)

작성일자: 2019년 9월 17일

문서 버전: 1.0

요약문

본 프로젝트는 python과 tensorflow, keras 라이브러리와 music21툴킷을 이용하여, 사용자가 선호하는 곡(.midi파일로 제한)을 기반으로 하는 새로운 곡(.midi파일로 제한)을 생성 및 제공하는 AI 작곡 모델을 제시한다. 제공되는 곡은 순환신경망 LSTM(Long Short Term Memory)을 이용한 기계학습 모델을 통해 생성된다. 프론트엔드에는 Flask를 이용해 누구나 웹 형태로 쉽고 편리하게 사용할 수 있도록 개발한다.

기계학습 모델의 학습 소요시간과 개발환경을 고려하여 제한되는 기능에 맞는 방식을 서비스할 것이며, 사용자들은 다양한 상황에서 저작권의 제약없이 원하는 곡을 쉽게 제공받을 수 있다. 이를 위해 사용자는 제공받는 곡의 기반이 되는 곡을 직접 선택한다.

프로젝트는 4인 1조로 구성되며, 프로젝트의 일정은 일정표에 따라 2019년 9월부터 12월까지 진행된다.

Abstract

This project uses the python, tensorflow, keras libraries, and music21 toolkit to create an AI composition model that creates and provides new songs (limited to .midi files) based on the user's preferred songs (limited to .midi files). present. The provided music is generated through a machine learning model using a cyclic neural network Long Short Term Memory (LSTM). The front end is developed so that anyone can use it easily and conveniently in web form using Flask.

In consideration of the learning time and development environment of the machine learning model, the service will be provided in a way that fits the limited functions, and users can easily receive the desired songs in various situations without restriction of copyright. To this end, the user directly selects the song on which the song is provided.

The project consists of a group of 4 people, and the schedule of the project will be from September to December 2019 according to the schedule.

1. 서론 : 설계/프로젝트 개요

본 프로젝트의 프로젝트명은 ‘AIROOM’으로써 작곡을 원하는 사용자들을 대상으로 하며, 원하는 장르의 손쉬운 작곡(.midi파일로 제한)을 목표로 한다.

AI 작곡은 40년이 넘는 연구에도 명확한 결과물을 도출하는데 어려움을 겪고 있으며 음악을 만드는 방법에 대한 연구는 아직도 부족하다. 그에 반해 전 세계에서는 AI를 통한 창작물 도출에 관심이 높아지고 있다. 이에 여러 기업들이 AI 작곡이라는 산업에 선두주자로 자리매김하기 위해 집중하고 있다. 해외에서는 AI가 작곡한 멜로디를 전문 프로듀서들이 재가공하는 형태의 산업이 발전중인 반면에 국내에서는 관련 산업이 미비하다. 그래서 팀 1조는 본 프로젝트를 통해 국내에서도 AI 작곡 산업에 일조하는 것을 목표로 한다.

예술 관련 AI 산업 중 음악 산업이 가장 대중적이고 시장 가능성이 있다. 특히나 최근 영상 제작 산업의 확대와 함께 영상과 어울리는 음악들이 많이 필요로 하며 소비되고 있다. 하지만 기존의 AI 작곡 플랫폼은 장르의 한계가 있다. 그렇기 때문에 장르의 한계없이 분위기에 맞는 곡을 제공하는 AIROOM은 현 상황에 적절한 플랫폼이 될 것이다. AIROOM의 성장과 함께 작곡 산업이 활발해질 것이며 국내에서 누구나 음악을 즐겁게 작곡할 수 있는 생태계를 구축할 수 있는 효과를 볼 수 있을 것이다.

본 프로젝트는 명지대학교 컴퓨터공학과 신민호 교수님 주체 하에 이루어지며 4인 1조로 구성된 팀명 1조 팀이 진행한다. 팀 구성원은 이광용 팀장을 기반으로 김영빈, 김강혁, 권용진 총 4명의 초보 개발자로 이루어져있다.

2. 설계/프로젝트의 현실적 제한조건

2.1. 현실적 제한조건

1) 사용자가 전송하는 학습 데이터(음악 파일)의 용량을 제한해야 한다.

2) 작곡이 완료된 곡의 표절 및 저작권 유무를 확인해야 한다.

3) 학습 데이터(음악 파일)를 확보해야 한다.

4) 학습 데이터(음악 파일)를 학습시키는 개발환경을 구성하고 시간을 확보해야 한다.

2.2. 설계 교육상 제한조건

ABEEK KEC 공학인증 기준	ABEEK KCC 컴퓨터· 정보기술인증 기준	프로그램	설명
산업표준	산업표준	산업표준	- 산업표준-산업체 표준 개발 도구 및 환경을 사용한다.
경제	경제성	경제	- 개발에 필요한 PC는 기존의 장비를 사용하여 개발 환경의 불필요한 지출을 줄인다. - 광고를 통한 수익이나 개인의 후원 등으로 경제성을 높힌다.
생산성과 내구성	실행가능성		- 4명의 팀원들이 공동 협력하여 개발하기 때문에 개발/수정의 접근성을 높혀 상호보완적인 개발이 가능하게 한다. - 안정적인 설계와 부족한 부분의 피드백을 통해 프로그램의 내구성을 향상 시킨다.
미학			- Bootstrap을 이용하여 웹페이지를 만들어 편의성 및 시각적인 효과를 높힌다.
환경		환경	- 개발 과정에서 불필요한 전기 에너지의 소모를 줄인다.
윤리	윤리성	윤리	- 저작권을 침해하지 않는다. - 법률에 어긋나는 프로그램을 개발하지 않는다.
보건 및 안전	안전성	안전	- 안전한 환경 내에서 개발한다. - 건강 안전에 위해를 가할 수 있는 프로그램을 개발하지 않는다.
사회	사회적 영향	사회/정치	- 지금까지의 부족했던 정보나 자료를 체계적으로 제시함으로써 현재의 시대/사회적인 요구에 대한 시장성을 가진다.

3. 사용자 요구사항

전문적인 영상 제작 뿐 아니라 유튜브와 개인 방송 등 최근 확장하는 영상 제작 시장과 함께 영상에 쓰이는 음악 선정의 어려움도 커지고 있다. 저작권을 침해하지 않으며 영상 분위기에 맞는 음악은 찾기 힘들고 오랜 시간이 소요되기 때문이다. 그리고 작년 개정된 저작권법에 따르면 매장영업에서 음악 중요도가 높은 카페, 호프집, 헬스장 등이 공연권 행사 범위에 추가되었다. 또한 가요 시장에서 원하는 곡을 구하는 것은 쉽지 않다. 이에 따라 원하는 분위기의 무료 음악(.midi파일로 제한)을 찾는 사람들이 늘어나고 있는 추세이다.

4. 설계/프로젝트 목적

본 프로젝트는 Python – Tensorflow 및 Tensorflow와 상호작용을 단순화하는 Keras를 이용하여 AI 작곡 프로그램을 구현하는 목적으로 한다. 이때 작곡의 원리는 인공 신경망의 한 종류인 순환 신경망을 통해 순환하는 방식이다. 일반적인 순환 신경망은 매 시점에 심층 신경망이 연결되어 있을 경우 오래 전의 데이터에 의한 기울기 값이 소실되는 문제로 학습이 어려워지기 때문에, 음악 및 텍스트 생성의 경우와 같이 네트워크가 오랜 시간 동안 정보를 기억해야 하는 문제를 해결하기 위해서 Long Short-Term Memory(LSTM) 네트워크를 사용한다. LSTM 은 순환신경망의 하나로 경사 하강을 통해 효율적으로 학습하고. 게이트 메커니즘을 사용하여  장기 패턴을 인식하고 인코딩할 수 있다.  LSTM 모델을 사용하기 위해서는 모델에 맞는 데이터를 수집해야 한다.

Music21은 컴퓨터를 활용하는 음악학에 사용되는 Python 툴킷이다. 음악 이론의 기초를 이용하고, 음악 예시를 만들고, 음악을 학습할 수 있게 해준다. Music21은 MIDI 파일의 음악 표기법을 습득할 수 있는 간단한 인터페이스를 제공하고, 노트 및 코드 객체를 만들어 쉽게 MIDI 파일을 만들 수 있기 때문에 본 프로젝트에서 Music21을 데이터 세트의 콘텐츠를 추출하고, 음악 표기법으로부터 인공 신경망을 통해 결과값을 얻는데 사용할 것이다.

5. 프로젝트 관련 선행연구(제품, 기능) 조사 및 제안 프로젝트의 차별성

5.1. 프로젝트 관련 선행연구 조사

1) Amper Music

세계 최초의 종단간 AI 음악 작곡 플랫폼을 발표했다. 사용자가 선호하는 스타일, 길이 및 구조에 부합하는 맞춤형 음악을 제작할 수 있는 기능을 제공한다. 백만여 곡의 샘플과 수천 종의 악기로 구성된 자체 개발 샘플 라이브러리를 사용한다.

2) Jukedeck

영구의 인공지능 스타트업으로 사용자가 원하는 음악의 장르, 노래를 구성하는 분위기, 원하는 악기, 음악 속도 등을 입력하면 자신의 느낌에 맞는 개별 맞춤형 음악이 탄생한다. 주크덱은 이러한 AI 프로그램을 만들기 위해 인공지능에게 13개 장르 만 여곡을 학습시켰다.

5.2. 제안 프로젝트의 차별성

기존의 AI 작곡 플랫폼은 미리 곡들과 음악 장르를 학습시킨 후, 사용자가 원하는 옵션에 맞게 작곡한다. 이러한 플랫폼은 사용자가 원하는 것과 거리가 먼 곡을 제공할 수 있다. 또한 학습시킨 장르만 작곡하므로 장르의 한계가 존재한다.

하지만 본 프로젝트는 사용자가 원하는 곡(.midi파일로 제한)을 학습시키기 때문에, 사용자가 원하는 분위기와 더욱 가까운 곡을 작곡할 수 있으며, 장르의 한계도 없어 국악 및 동양 음악 등 훨씬 넓은 범위의 작곡이 가능하다.

또한 온라인 서비스가 중단되고 유료인 기존 플랫폼과 다르게 무료 온라인 서비스를 제공하며, 악보 제공 등의 추가적인 기능도 제공한다.

6. 설계/프로젝트 평가

완성된 모델이 설계목적과 일치하는지 아래의 기능 평가항목과 제품 품질 평가항목을 통해 기능과 제품 품질을 평가한다.

6.1. 기능 평가항목

기능 평가항목

다양한 노래 데이터로 학습모델을 저장하는가?

학습한 모델을 통한 결과물은 이상이 없는가?

웹 사이트는 문제없이 잘 작동하는가?

6.2. 제품 품질 평가항목

제품 품질 평가항목
기능성	기능적으로 얼마나 구현이 되었는가?
효율성	설계에 제시된 최소 사용 기준을 만족하는가?
신뢰성	생성된 음원이 얼마나 자연스러운가?
가용성	현재 국내 상황에서 사용할 수 있는가?
접근성	누구나 쉽게 사용할 수 있는가?
유지보수성	사용자의 요구에 따라 적절하게 대응할 수 있는가?

7. 설계/프로젝트 계획

7.1. 일정표

활동 주	1	2	3	4	5	6	7	8	9	10	11	12	13	14	15	16
프로젝트 기획
프로젝트 제안
개념 설계 및 개발
상세 설계 및 개발
중간발표
개발 및 제작 보고
개발 및 최종 발표

7.2. 팀원 업무 분담

4명의 조원이 공평하게 업무를 분담하고 서로 협력하여 업무를 해결한다.

- 이광용 : 개발 및 문서 작성 업무를 맡는다.

- 김영빈 : 개발 및 문서 작성 업무를 맡는다.

- 권용진 : 개발 및 문서 작성 업무를 맡는다.

- 김강혁 : 개발 및 문서 작성 업무를 맡는다.

7.3. 발생 가능한 상황에 대처방안

- 매주 진행되는 회의에 참석하지 못할 경우 온라인으로 회의 내용을 전달한다.

- 오프라인 회의가 불가능할 경우 온라인으로 회의를 대체한다.

- 개발에 사용되는 PC의 고장을 대비해 프로젝트와 관련 문서를 백업 및 공유하고,

코드를 항시 온라인으로 업데이트한다.

- 조원의 부재 시 회의를 통해 업무 분담을 재편한다.

7.4. 설계도

참고자료

https://www.globenewswire.com/news-release/2019/01/28/1705824/0/ko/Amper-Music-%EC%B5%9C%EC%B4%88%EC%9D%98-%EA%B8%B0%EC%97%85%ED%98%95-%EC%BD%98%ED%85%90%EC%B8%A0-%ED%81%AC%EB%A6%AC%EC%97%90%EC%9D%B4%ED%84%B0%EC%9A%A9-AI-%EC%9E%91%EA%B3%A1-%ED%94%8C%EB%9E%AB%ED%8F%BC-%EC%B6%9C%EC%8B%9C.html

설계/프로젝트 제안서 평가

설계/프로젝트 제안서에 대한 채점기준(Rubrics)

설계/프로젝트 제안서를 평가하기 위한 총합적 채점 기준(Holistic Rubrics)
평가항목	수행 수준
	매우 우수 5	우수 4	보통 3	개선 가능 2	개선 필요 1
목표 설정 및 필요성의 명료성과 타당성	목표가 매우 명확하게 설정되고, 그 필요성의 근거가 매우 분명하다.	목표가 명료하게 설정되고, 그 필요성의 근거가 확실하다.	목표 설정 및 그 필요성의 근거가 보통 정도이다.	목표는 제시되었으나 명확하지 않고, 그 필요성의 근거도 약간 빈약하다.	목표 설정 및 그 필요성의 근거가 제시되지 않았다.
현실적 설계 제한 요건 정의	경제성, 윤리성 등의 현실적 설계 제한 요건이 매우 잘 정의되었다.	경제성, 윤리성 등의 현실적 설계 제한 요건이 어느 정도 잘 정의되었다.	경제성, 윤리성 등의 현실적 설계 제한 요건에 대해서 보통 정도로 정의되었다.	경제성, 윤리성 등의 현실적 설계 제한 요건이 제대로 정의되지 않았다.	경제성, 윤리성 등의 현실적 설계 제한 요건이 전혀 정의되지 않았다.
자료 조사 및 분석	다양한 매체와 설문 등을 활용하여 자료를 조사하고, 이를 프로젝트와 관련하여 매우 정확히 비교 분석하였다.	매체와 설문 등을 활용하여 자료를 조사하고, 이를 프로젝트와 관련하여 비교적 정확히 비교 분석하였다.	매체와 설문 등으로 조사된 자료를 보통 정도로 비교 분석하였다.	매체와 설문 등으로 조사된 자료의 내용이 조금 부실하고, 비교 분석도 조금 명확하지 않았다.	매체와 설문 등으로 조사된 자료의 내용이 매우 부실하고, 비교 분석도 전혀 명확하지 않았다.
사용자 요구사항 분석	사용자 요구사항이 매우 명확하게 분석되었다.	사용자 요구사항이 어느 정도 명확하게 분석되었다.	사용자 요구사항에 대한 분석이 보통 정도이다.	사용자 요구사항에 대한 분석이 약간 명확하지 않다.	사용자 요구사항에 대한 분석이 전혀 명확하지 않다.
결과의 활용도 (시장성 등 기대효과)	결과물은 제품으로의 활용가능성(시장성 등)이 매우 탁월할 것으로 기대된다.	결과물은 제품으로의 활용 가능성(시장성 등)을 기대할 수 있는 수준이다.	결과물의 활용성(시장성 등)은 보통 정도이다.	결과물의 활용성(시장성 등)이 약간 떨어지는 편이다.	결과물은 전혀 활용 가능성(시장성 등)이 없다.
설계 문제 정의 및 서술의 명확성	설계 문제를 매우 명확하게 정의하고 서술하였다.	설계 문제를 어느 정도 명료하게 정의하고 서술하였다.	설계 문제 정의 및 서술 형태가 보통 정도이다.	설계 문제 정의 및 서술 형태가 약간 불명확하다.	설계 문제 정의 및 서술 형태가 불명확하여 의도하는 바를 파악할 수 없다.
수행계획(추진일정, 업무분장 등)의 적절성	프로젝트의 수행계획(추진일정, 업무분장 등)이 매우 적절하게 수립되었다.	프로젝트의 수행계획(추진일정, 업무분장 등)이 어느 정도 적절하게 수립되었다.	프로젝트의 수행계획(추진일정, 업무분장 등)이 보통 정도로 수립되었다.	프로젝트의 수행계획(추진일정, 업무분장 등)이 약간 부적절하고 무리하게 수립되었다.	프로젝트의 수행계획(추진일정, 업무분장 등)이 너무 무리하게 수립되었다.
프로젝트 개발환경과 타겟 플랫폼 등의 주요 도구 및 기술 선정	프로젝트 개발환경과 타겟 플랫폼 등의 주요 도구 및 기술을 매우 체계적으로 선정하고 설명하였다.	프로젝트 개발환경과 타겟 플랫폼 등의 주요 도구 및 기술을 어느 정도 잘 선정하고 설명하였다.	프로젝트 개발환경과 타겟 플랫폼 등의 주요 도구 및 기술을 보통 정도로 선정하고 설명하였다.	프로젝트 개발환경과 타겟 플랫폼 등의 주요 도구 및 기술을 약간 부실하게 선정하고 설명하였다.	프로젝트 개발환경과 타겟 플랫폼 등의 주요 도구 및 기술을 제대로 선정하지 못하고, 설명도 매우 부실하다.
보고서 서술 양식의 체계성	보고서 서술 양식(목차, 참고자료 등)이 매우 잘 갖추어졌다.	보고서 서술 양식(목차, 참고자료 등)이 어느 정도 잘 갖추어졌다.	보고서 서술 양식(목차, 참고자료 등)이 보통으로 갖추어졌다.	보고서 서술 양식(목차, 참고자료 등)의 체계가 조금 부족하다.	보고서 서술 양식(목차, 참고자료 등)의 체계가 거의 갖추어지지 않았다.

팀별 보고서의 자기 평가 채점표

기여도 평가 : 한 팀이 얻을 수 있는 5점 척도 평가의 총 점수는 (팀원 수 * 3)점이다. 따라서 팀원들 점수의 합이 (팀원 수 * 3)점을 넘어서는 안 된다. 이 총점을 각 팀원에게 5점 척도(1~5점)의 점수로 나누어준 후, 가중치와 5점 척도 평가결과를 곱하여 개인별 기여도 평가점수를 산출한다.

보고서 평가 : 채점기준표의 해당 평가항목 수행수준에 자기 평가한 내용을 표시(◯ 또는 ✓)한다. 그 다음에 이를 바탕으로 총합적 수행수준의 5점 척도(1~5점)의 평가결과를 정하고, 가중치와 5점 척도 평가결과를 곱하여 보고서 평가점수를 산출한다.

총점 : 기여도 평가점수와 보고서 평가점수를 곱하여 산출한다.

보고서 제목		AI ROOM 프로젝트 제안서
자기 평가하는 팀		1조						평가일		2019 년 9 월 17 일
팀원 이름	기여도 평가				보고서 평가			총점 (G = C+F)	최종 교수 평가 점수		비고
	가중치 (A)		5점 척도 평가결과 (B)	기여도 평가 점수 (C = AxB)	가중치 (D)	5점 척도 평가 결과 (E)	보고서 평가 점수 (F = DxE)
이광용	1		3	3	1	5	5	8
김영빈	1		3	3				8
권용진	1		3	3				8
김강혁	1		3	3				8
	1
	1
팀 합산 점수			12

담당교수 멘터링 Day 참가자 명단

멘터링 일자		년 월 일				담당교수				(인)
성 명	학번		서명 날인		성 명		학번		서명 날인