3.2차 중간 보고


                 종합설계 프로젝트 2차 중간보고서 요약

팀명

GoldenTimer

제출일

2014 4 31

프로젝트 제목

MotionDiary

설계프로젝트 개요

프로젝트 수행 내용 및 중간 결과

프로젝트 요약문

(폰트 10pt, 100자 이상, 1000자 이내) 

본 프로젝트는 사용자가 자기주도적인 생활을 할 수 있도록 도움을 주는 어플리케이션 개발을 목표로 하여 진행하였다. 걷기/뛰기/서기/수면여부 판단이라는 주요기능을 구현하기 위하여 분담하여 개발을 시작했다. 그 동안의 다른 과목에서 했던 프로젝트와는 달리 소프트웨어 개발을 체계적인 절차를 통해 진행하였고, 분석, 설계, 구현, 테스트 및 디버깅이라는 큰 순서에 따라 각 단계마다 문서작업을 통해 보다 완성도 있는 개발을 위하여 노력하였다. 각 단계에서 산출된 문서들(DFD, DD, SRS )을 작성하면서 시스템 전체에 대한 이해와 분석 및 설계를 진행함에 있어 조원 모두가 상의하며 작성함으로써 역할 분담이나 계획 설립과정에서 수월함을 느낄 수 있었다. 12 월에 처음으로 모여서 교수님과의 면담과정을 거치고 2 월까지는 분석에 초점을 맞추어 진행하였다. 프로젝트에 쓰이는 스마트 폰 내장센서나 분류기, 특징추출 과정들에 대해 상세하게 조사를 하였고 그 과정에서 얻은 지식을 바탕으로 시스템의 필요기능, 사용자의 요구, 제한사항들을 확실하게 정한 후 개발을 진행하고 있다.

개발과정에 있어서는 크게 학습 및 분류, 행위인식이라는 파트로 나누어 진행하고 있다. 분석하는 과정에서는 관련 논문을 읽어보거나 검색을 통하여 필요한 정보를 얻을 수 있었고 구현에 있어서는 어플리케이션 개발을 위한 기술적 공부 역시 병행하며 프로젝트를 수행하고 있다. 본 시스템은 생활간에 센서를 통해 데이터를 얻고 전처리 및 특징 추출과정을 통해 분류에 쓰일 유 의미 데이터를 얻어 내어 분류기를 통해 행위정보로 분류를 한다. 분류된 정보를 저장하고 그 정보를 이용해 사용자의 이동경로 및 행위 정보 등을 구글맵, 그래프 등을 이용하여 사용자에게 제공한다. 이 과정에서 전 처리는 이동평균 필터 링 및 단위시간 별 데이터 검출작업을 진행한다. 검출된 데이터를 평균, 분산, 표준편차, 왜도 등의 통계적 특징으로 추출하고 이 과정에서 추출된 통계적 특징들을 통하여 결과적으로 분류기에서 분류하는 과정을 거치게 된다. 분류함에 있어서 사용자 스스로 기계학습을 하여야 하는 시스템이므로 분류하기 전까지의 과정을 통해 얻은 데이터를 사용자가 학습시켜 스마트 폰의 SD Card 에 저장하고 이 정보를 이용하여 분류작업을 진행할 수 있게 설계하였다. 분류기로는 SVM 을 이용하기 때문에 분류기의 input 으로 사용하게 될 벡터를 만들어야 했다.

사용자에게 제공할 구글맵이나 그래프 사용을 하여야 했기 때문에 여러 절차를 통하여 구현했다. 구글맵을 사용하기 위하여 구글 서비스를 통해 인증키를 받았고 키 인증을 통하여 Google Map V2 서비스를 사용할 수 있었다. 그래프 등 그래픽적인 제공을 위하여서는 라이브러리로 제공되는 UseChart 를 이용하여 개발 중에 있다.

 

마일스톤 수행 내용

(폰트 10pt, 100자 이상, 1000자 이내) 

1.1.1   센서 데이터 수집

걷기, 뛰기, 서기 행위 인식을 위해서 안드로이드의 가속도 센서로부터 데이터를 수집하였다. 센서로부터 입력 받은 데이터를 활용하기 위해서는 전처리 과정을 진행하였다. 우선 센서 데이터를 각 x, y, z 축 별로 이동평균 필터링을 적용시켜 튀는 값을 최소화시키는 작업을 진행하였다. 이동평균의 주기는 우선 15로 선정하였고 추후 개발이 진행과정에서 최적의 값을 찾아 적용할 것이다. 이동평균 필터링을 마친 후 전처리 과정을 진행하였다. 선택한 전처리 방법은 가장 대중적으로 이용되고 있는 벡터의 거리 공식을 사용하였다.


위의 수식을 이용하여 x, y, z 축의 데이터를 A로 전처리한다.

1.1.2   특징 추출

 앞 서 전처리된 데이터들의 특징을 추출하는 과정이다. 특징 추출은 기계학습을 하기 위해 진행되는 과정이며 특징벡터를 만들어낸다. 13개의 통계적인 특징을 추출하였다. 사용된 특징으로는 합, 평균, 평균편차, 표준편차, 분산, RMS, LPC[7]가 사용되었다. LPC 7가지 특징을 가지며 주로 음성 신호 분석에 사용되는데 이 프로젝트에 적용해보았다그 외의 특징인 , 평균, 제곱평균, 표준편차, 분산, RMS는 통계적인 방법으로써 센서 데이터들의 특징을 잘 표현할 수 있을 것이라 판단하여 넣게 되었다 이렇게 추출된 특징들은 특징벡터로 만들어져 SVM 기계학습에 사용된다.

걷기와 뛰기의 특징 data sample과 같이 두 행위를 구분 가능한 특징들을 사용하였다. 다음에 보이는 그래프는 위의 특징들을 가지고 분류한 것을 보여 준다.

1.1.3   SVM 학습기

 사용자로부터 걷기, 뛰기, 서기를 학습 받아 학습 모델 파일을 생성하는 모듈을 개발하였다. 사용자가 걷기 학습 버튼을 누르고 걸으면 3초간 센서 데이터 수집 및 특징 추출이 진행된다. 이 후 추출된 특징벡터를 Scaling을 진행한다. Scaling의 이유는 SVM의 정확도를 높이기 위함이다. Scaling된 특징벡터을 이용하여 학습 모델 파일을 생성한다. 학습 모델 파일은 스마트 폰 SD Card에 저장된다. 학습기는 C-SVC (Multi Class)와 가우시안 라디얼 커널을 사용하였고 기타 다른 옵션 값들은 추후 개발과정에서 실험적으로 최적값을 찾아낼 예정이다.


1.1.4   지도

 스마트폰의 gps 센서 값을 받아서 서비스로 받아온 google map fragment상에 현재의 위치를 불러온다. 모션 인식을 통한 결과물인 걷기, 뛰기, 서기, 수면의 데이터를 DB에서 가져와 각각의 모션들을 선의 색을 구분하여 이동한 위치와 취합하여 표시해주는 기능을 수행한다. 이 과정에서 일정한 시간간격 마다 경로들을 표시해주고, 행동이 변경되었을 시 변경된 행동에 대한 이미지를 구글맵상에 나타내주어 사용자가 행동을 구분하는데 있어 편이하게 되었다. 이때 이미지를 클릭하는 이벤트가 발생했을 시에 실제로 이동한 시간을 보여준다.


1.1.5   달력

프로젝트의 주된 내용이 되는 모션 분류를 이용 지도 경로 표시하는 기능을 날짜별로 저장하여 원하는 날짜의 데이터를 볼 수 있도록 하기 위해 달력을 만들었고, 추가 기능으로 일정 기록이 있다. 지도 및 그래프 분석을 하나로 이어주는 중간 역할을 맡는 엑티비티 역할이 된다.



1.1.6   그래프

하루 동안에 인식된 걷기, 뛰기, 서기, 수면 등의 인식된 모션을 분석 통계를 하여 횟수와 활동량들을 눈에 보기 쉽게 표현해주는 역할을 한다.


1.1.7  DB 설계 및 구현

1) DB 설계 및 구현

 1차 중간보고 때까지는 아직 정확히 어떤 항목들을 DB에 저장하고 불러와야 할지 명확하지 않았다. 이번 2차보고에서는 월, , , , , 행위정보, 위도, 경도 등을 DB에 저장하는 것으로 결정하였다. 원하는 날짜에 대한 정보를 얻고자 할 때 지도와 그래프에서 정확한 정보를 주기 위한 항목들이므로 필요하다.

 

동영상

  • YouTube 동영상

다음 마일스톤 일정

항목

세부내용

1

2

3

4

5

비고

요구사항분석

요구 분석

 

 

 

 

 

 

SRS 작성

 

 

 

 

 

 

관련분야연구

주요 기술 연구

 

 

 

 

 

 

관련 시스템 분석

 

 

 

 

 

 

설계

시스템 설계

 

 

 

 

 

 

 

 

구현

코딩 및 모듈 테스트

 

 

 

 

 

 

 

 

테스트

시스템 테스트

 

 

 

 

 

 

 




첨부화일 (아래 안내는 첨부 후에 삭제할 것)

1. 동영상 (위 본문 페이지에 삽입)
2. 중간 보고서(PDF)
Ċ
10조 캡스톤,
2014. 5. 1. 오전 12:56