4.최종 보고

                    종합설계 프로젝트 최종보고서 요약

팀명

 GoldenTimer 

제출일

2014 11 27

프로젝트 제목

 MotionDariy

설계 프로젝트 개요

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

프로젝트 요약문

1.1 프로젝트 개요

스마트 폰의 내장된 센서를 이용하여 걷기/뛰기/서기/수면 등의 행위를 인식하고 지도를 통하여 이동 상황 등을 화면상에 표시해주어 사용자에게 자신의 생활 패턴을 자각할 수 있게 함으로써 계획적이며 자기주도적인 생활을 할 수 있게 하는 어플리케이션 개발이다.

1.2 추진 배경 및 필요성 

우리는 빠르게 변화하는 현대 정보사회시대에 살고 있다. 이에 따라서 하루하루가 짧고 또한 매일매일 어떠한 일이 일어났는지 기억조차 못 할 때도 많다.

옛 고사성어 중 수신제가치국평천하라는 말이 있다. 즉 자신이 무엇을 했는지, 또한 무엇을 해야 할지 아는 것 즉, 자신의 시간을 알고 관리하는 것만큼 중요한 것은 없다.

이에 저희 ‘Golden Timer’조는 걷기/서기/뛰기/수면여부 등의 행위인식을 기반으로, 자신이 어느 위치를 어떻게 다녀왔는지 이동상황을 지도에 표시하며, 또한 메모를 남기며, 자신의 생활패턴을 다시 확인하여 계획적이며, 자기주도적인 생활을 할 수 있게 하는 어플리케이션을 개발하기로 정하였다.

현재 이 걷기/뛰기/서기/수면여부를 인식할 수 있게 하려는 노력은 많은 논문에서도 살펴볼 수 있었고, 또한 평균보다 높은 인식률을 가지고 있었다. 하지만 이러한 논문의 공통점은 여러 센서의 조합으로 인하여, 배터리의 소모가 크다는 것이다.
예전 피쳐폰과 다르게 여러 스마트 폰 제조사에서는 현재에는 배터리의 충전속도와 용량 또한 최적화에 초점을 맞추고 있다. 우리 조 또한 이러한 시대의 흐름을 반영하듯, 충분한 최적화와 센서 수의 최소화로 배터리소모의 최소화를 통하여, 효율성을 극대화 하려고 한다.

이를 가지고 시장으로 나아간다면, 아직까지 보지 못한, 새로운 첨단 다이어리를 소유할 수 있다는 장점뿐 아니라 사용자 중심의 UI가 추가된다면 충분한 시장성도 있을 것 이라고 예측된다.


마일스톤 수행 내용

2.1 목표

캡스톤디자인2를 진행하면서 우리 조가 목표로 세웠던 것은 2가지이다. 첫 번째, 캡스톤디자인1 때 진행했던 Motion Diary의 모션인식 정확도를 상승 시키는 것이다. 우리가 인식하려던 모션은 서기, 걷기, 뛰기로 총 3가지였다. 안드로이드 스마트폰에 내장되어있는 가속도 센서를 이용하여 기존의 13가지의 특징을 추출했었다. 우리는 이 13가지의 특징을 변형하여 새로운 특징을 추출하고, 이를 통해서 모션인식도를 향상시키는 것을 목표로 하였다. 둘째, SW공모전에 작품을 출시하는 것이다. 국내 여러 공모전을 알아보았지만 캡스톤디자인2 일정과 잘 맞는 공모전으로 정하기 위해 일정을 맞췄다.


2.2 시스템 기능 및 구조 설계도


전체적인 시스템 구조는 크게 2가지로 나누어진다. 우선 안드로이드 SDK를 이용하여 애플리케이션을 제작하였다. 특히 가속도 센서를 이용한 행위 인식을 하였고 GraphView를 통해 통계적인 지표를 보여주었다. Google Map v2를 이용하여 사용자에게 하루 간 이동경로를 보여주었다.

본 시스템에서 가장 중요한 기능인 행위 인식을 하기 위하여 Lib SVM이라는 라이브러리를 사용하였다. 분류 정확도를 높이기 위해 [-1, 1] Scaling Model을 사용하였고 서기, 걷기, 뛰기 3가지 클래스로 분류기를 구성하였다. 분류기를 구성할 때 사용되는 특징벡터는 평균, 평균편차, 표준편차, RMS,   5가지 통계적 특징을 사용하였다.

 

위의 그림은 행위를 인식하는 SVM 분류기의 전체적인 구조이다. 먼저 안드로이드 디바이스 가속도 센서를 이용하여 센서 데이터를 수집한다. 수집한 x, y, z 3축의 데이터를 벡터화하여 벡터거리로서 전처리를 한다. 또한 불균형한 데이터를 처리하기 위하여 이동평균 필터링 기법을 이용하여 2번째 전처리 과정을 진행한다. 전처리 된 데이터를 이용하여 통계적인 특징 5가지(평균, 평균편차, 표준편차, RMS, )을 추출한 뒤 SVM 분류기를 이용하여 행위를 서기, 걷기, 뛰기로 판단한다. SVM 분류기를 제작하기 위해서 분류기 생성 모듈을 따로 개발하였다. 여러 학습 데이터를 모은 학습파일을 Scaling, SVM 커널 함수를 통해 SVM 분류기를 구축한다

2.3 모션 정확도 향상

2.3.1 가속도 데이터 스케일링

분류 정확도를 높이기 위해 [-1, 1] Scaling Model을 사용하였다. 여러 가지 스케일링 방법이 있었지만 가장 일반적인 스케일링 방법인 [-1, 1]을 사용하기로 하였다. 디바이스로부터 가속도 데이터를 입력 받은 이후로 각각의 x, y, z 축의 데이터를 [-1, 1]로 정규화 시켰다. 이를 위해 각각의 가속도 데이터들의 최소, 최대 값을 -1, 1로 설정을 하고, 이 비율을 바탕으로 모든 데이터를 -1 1 사이로 정규화시켰다. 정규화를 통해서 모션 데이터를 정확하게 받아서 정확도를 높일 수 있었다.

2.3.2 특징 벡터 수정

기존에 13가지의 특징을 설정하고 이를 토대로 프로젝트를 진행하였다. 하지만 통계적인 특징 5가지가 걷기에 대한 움직임을 정확하게 잡지 못한다는 연구적 결과를 얻었다. 따라서 기존의 13가지 특징에서 통계적 특징이 제외한 8가지의 특징으로 특징벡터를 잡기로 하였다. 특징 수가 줄면서 정확도가 떨어지지 않겠냐는 팀원의 의견이 있었지만, 교수님 조언에 의하면 특징 수가 중요한 것이 아니라 특징 수가 적더라도 정확한 특징이 중요하다는 사실을 알게 되었다. 따라서 우리는 5가지의 특징을 가지고 분류를 하기로 결정하였다. 최종 특징은 특징 5가지(평균, 평균편차, 표준편차, RMS, )이며 통계적인 방식을 채택하였다

2.3.3 학습 옵션 변경

SVM 학습 시에 여러 가지 옵션을 설정할 수가 있다. 최적의 옵션을 찾기에는 수많은 실험이 필요했다. 이를 자동으로 돌려주는 프로그램도 있었지만 안드로이드 프로젝트인 우리에게 적합하지 않았다. 따라서, 실제로 가능한 실험에 의해서 학습 옵션을 수정해 나갔다. 우선 가장 중요한 gamma값을 조정하였다. 기존에 디폴트 값이 0.5인 것을 고려해 0.05씩 단위로 하였을 때, 0.35로 학습하였을 때 가장 좋은 인식률을 보였다. 따라서 학습기를 구현할 시에 0.35 gamma값을 맞추었다. 그리고 실제 분류기를 작동할 시에는 0.5로 올리는 것이 좋다고 판단되어 0.5 값을 사용하였다. 이외에 멀티클래스의 특성 상 nu, C 옵션도 중요하게 작용하였다. Nu, C 옵션 값은 우선 디폴트 값인 1, 1 로 설정하였다. Nu, C의 값을 변경할 수도 있었지만 gamma 값을 0.35로 하였을 시에 가장 좋은 결과를 보였기 때문에 Nu, C 값을 변경하지 않기로 하였다. Gamma, nu, C의 값이 각각 독립적이지 않기 때문이다.


3. 공모전 참가

3.1 참가 공모전 설명

우리가 참가한 공모전은 디지털 창의 학생 공모전이다. 대회의 규모가 꽤 크게 때문에 도전적인 정신을 가지고 참가하였다. 참가대상은 디지털분야 전공의 고등학생, 대학생이다. 우리 팀원들 모두 국민대학교 컴퓨터공학부 소속이므로 참가가 적절하였다. 공모분야에는 SW프로그래밍, 웹사이트 제작, 임베디드시스템, 프로그래밍, 웹디자인 등이 있었는데 우리는 모바일 프로그래밍으로 지원하였다. 공모전 일정은 작품 접수는 2014.11.03 ~ 2014.11.28이고, 심사기간은 2014.12.08 ~ 2015.01.02이다. 수상작 발표는 2015.01.06으로 예정되어있다.


프로젝트의 최종 결과물

기존의 캡스톤디자인1에서 진행했던 Motion Diary는 모션인식 정확도가 80%정도였다. 모션인식 정확도는 우리 프로젝트에서 상당히 중요한 부분이다. 사용자의 모션을 정확하게 판단하는 것이 우리 프로젝트의 1차적인 목표였고, 정확한 판단이 보장되어야 Diary의 활용도가 높아지기 때문이다. 따라서, 우리는 캡스톤디자인2에서 이 모션 정확도를 높이기 위해 Scaling Model, 특징 선정 등 여러 방법을 이용하였다. 그 결과 85 ~ 90%의 모션인식 정확도를 얻을 수 있었다. 이를 통해서 좀 더 Motion Diary의 사용성을 높일 수 있었다.



참고 문헌

번호

종류

제목

출처

발행년도

저자

기타

1

서적

Do it 안드로이드 앱 프로그래밍

서점

2013

정재곤

 

2

서적

안드로이드 프로그래밍 정복 1, 2

서점

2013

김상형

 

3

논문

모바일 가속도 데이터를 사용한 SVM기반의 사용자행위

DB Pia

2012

전명중, 바트셀램, 박영택

 

4

서적

패턴인식과 기계학습

서점

2011

박혜영, 이관용

 

 

동영상

YouTube 동영상





Ċ
10조 캡스톤,
2014. 11. 25. 오전 4:49
Ċ
10조 캡스톤,
2014. 11. 25. 오전 4:49
Ċ
10조 캡스톤,
2014. 11. 25. 오후 8:43
Comments