Journal of Institute of Control, Robotics and Systems (2015) 21(6):547-552
http://dx.doi.org/10.5302/J.ICROS.2015.15.9030 ISSN:1976-5622 eISSN:2233-4335
항법 기반 웨어러블 스마트 디바이스 동작 카운트 알고리즘
Navigation based Motion Counting Algorithm
for a Wearable Smart Device
박 소 영, 이 민 수, 송 진 우, 박 찬 국*
(So Young Park1, Min Su Lee1, Jin Woo Song1, and Chan Gook Park1,*)
1Department of Mechanical & Aerospace Engineering, Seoul National University, ASRI
Abstract: In this paper, an ARS-EKF based motion counting algorithm for repetitive exercises such as calisthenics is proposed using a smartwatch. Raw sensor signals from accelerometers and gyroscopes are widely used for conventional smartwatch counting algorithms based on pattern recognition. However, generated features from raw data are not intuitive to reflect the movement of motions. The proposed motion counter algorithm is composed of navigation based feature generation and counting with error correction. The candidate features for each activity are velocity and attitude calculated through an ARS-EKF algorithm. In order to select those features which reveal the characteristics of each motion, an exercise frame from the initial sensor frame is introduced.
Counting processes are basically based on the zero crossing method, and misdetected counts are eliminated via simple classification algorithms considering the frequency of the counted motions. Experimental results show that the proposed algorithm efficiently and accurately counts the number of exercises.
Keywords: Attitude Reference System (ARS), Extended Kalman Filter (EKF), motion counting algorithm, smartwatch, wearable device
I. 서론
기술의 발달로 인구가 고령화됨에 따라[1,2], 규칙적인 운 동을 통해 건강을 유지하고 질병을 예방하는 것에 대한 대중 의 관심이 커지게 되었다[3]. 하지만 자의로 규칙적인 운동을 하는 것이 쉽지 않기에 이를 보조하기 위한 보조 장치들이 시장에 등장했고 그와 관련된 연구가 활발하게 진행되었다.
초기에는 보수계나 GPS를 이용하여 보행 횟수나 사용자가 야외에서 얼마나 이동하였는지를 추적해주는 제품들이 등장 했고, 2000년대에 들어서면서 실내에서 게임을 하며 동시에 운동도 하는 엑서게이밍(exergaming) 제품들이 크게 발달하기 시작했다. 대표적인 제품으로는 Microsoft사의 Xbox Kinect나 Nintendo사의 Wii로, 동작인식을 통한 게임구현이 이루어진다 [4]. 또한 스마트폰의 등장으로 실내외에서 사용자의 몸에 부 착하여 운동을 추적할 수 있는 웨어러블 장치(wearable device)와 관련된 연구가 활발하게 진행되었다[5-7]. 그 중에 서도 스마트워치는 사용자의 손목에 부착하여 손쉽게 운동 을 수행할 수 있다는 장점 덕분에 최근 건강 모니터 장치 (health monitoring device)에 각광받고 있다[8,9].
스마트워치에는 MEMS급 가속도 센서, 자이로 센서가 내장 되어있어, 이 센서에서 출력되는 신호들을 이용하여 사용자의
건강 상태 및 운동 상황 등을 인식할 수 있게 된다. 현재 시판 중인 Nike사의 FuelBand나 Fitbit과 같은 웨어러블 운동 보조 제품들은 대부분 유산소 운동을 추적하는 기능만을 포함하고 있다. 하지만 근력 운동이나 반복적인 미용 체조와 같은 운 동들 역시 그 중요성이 부각됨에 따라 반복적인 운동 추적의 필요성이 대두되고 있다. 그 중에서도 사용자가 행하는 운동 횟수를 검출하여 알려줌으로써 사용자가 정확히 동작을 수 행하였는지, 몇 번 수행하였는지를 확인 할 수 있도록 도와 주는 기능에 초점을 맞추어 본 논문의 연구를 수행하였다.
스마트 워치를 이용한 기존의 운동 횟수 검출 연구는 주로 패턴인식 이론을 도입하여 반복적인 운동을 세기 위한 특징 점들을 생성하였다. Morris는 팔뚝에 MEMS급 가속도계, 자 이로 센서 모듈을 장착한 후 서포트 벡터 머신(SVM)을 이용 해 운동 중인지 아닌지 판단을 하고, 현재 수행되고 있는 운 동이 어떤 운동인지 판별을 한다[10]. 그리고 서포트 벡터 머 신을 통해 생성된 특징점들을 이용해 피크 검출 방식으로 반 복적인 운동을 세었다. Mortazavi는 반복적인 운동을 수행할 때, 가장 영향력 있는 한 축을 선택하여 전처리와 특징점 추 출 시 계산량을 효과적으로 줄여줄 수 있는 카운트 알고리즘 을 제안하였다[11]. 하지만 카운트를 위한 특징점을 추출할 때 앞서 말한 패턴인식 방법은 센서 미가공 데이터를 그대로 사용하여 생성된 특징점들이 직관적이지 않다. 그렇기 때문 에 본 논문에서는 항법 알고리즘을 사용하여 직관적인 속도 와 자세 특징점들을 생성하였고[12,13], 운동 좌표계를 도입 함으로써 특정 운동 동작을 고려한 특징점들을 생성하였다.
생성된 특징점들을 이용해 각 동작별 동작의 횟수를 정확하 게 세기 위해 기본적인 영점 교차 방법에 복합 동작에서의 오검출 보정 알고리즘과 주기를 고려한 오검출 보정 알고리 즘을 추가한 정확도가 높은 카운트 알고리즘을 제안하였다.
Copyright© ICROS 2015
* Corresponding Author
Manuscript received February 15, 2015 / revised March 10, 2015 / accepted March 15, 2015
박소영, 이민수, 송진우, 박찬국: 서울대학교 기계항공공학부 ([email protected]/[email protected]/[email protected]/chanpark
@snu.ac.kr)
※ 본 연구는 미래창조과학부 및 정보통신기술진흥센터의 정보통신
·방송 연구개발사업의 일환으로 수행하였음 [10044844, 병사들에 게 실전과 같은 가상훈련 환경을 제공하기 위한 전 방향 이동 지 원 상호작용 소프트웨어 기술 개발].
박 소 영, 이 민 수, 송 진 우, 박 찬 국 548
본 논문의 구성은 다음과 같다. II 장에서는 자세추정시스 템과 확장칼만필터를 결합한 자세-속도 추정 항법 알고리즘을 이용하여 운동의 양태를 보다 잘 표현할 수 있는 특징점을 추 출하는 알고리즘을 제시하였다. III 장에서는 추출된 특징점 정 보를 이용하여 동작을 분할, 카운팅 및 보정하는 알고리즘을 제시하였다. 실험을 통하여 제시한 알고리즘의 성능을 IV 장 에서 검증하였고, 마지막으로 V 장에서 결론을 맺는다.
II. 자세추정시스템 -확장칼만필터 기반 특징점 생성 본 논문에서 사용한 전반적인 알고리즘은 그림 1과 같다.
가속도와 자이로 센서 출력 값을 자세 추정 시스템(ARS)과 확장칼만필터(EKF)를 결합한 알고리즘을 통해 속도와 자세 와 같은 특징점을 추출한 후, 영점 교차(zero crossing) 방법을 이용 해 카운트를 수행한다.
1. 자세 추정 시스템-확장칼만필터 결합 속도-자세 추정 항 법 알고리즘
스마트워치를 이용한 카운트 알고리즘을 구성하기에 앞서 기준이 되는 특징점을 생성해주는 과정이 필요하다. 기존의 연구에서는 가속도나 자이로에서 출력되는 센서 신호를 그 대로 사용하였는데, 스마트워치에 내장된 센서들은 저가의 센서들로 센서 바이어스 및 환산계수 비선형성(scale factor nonlinearity) 오차 등으로 인한 노이즈가 많이 섞여 있다. 또 한 손목은 운동 동작 중 가장 동적 특성이 강한 몸의 부위 중 하나이기 때문에 운동자의 동작을 구분하기 위해서 단순 히 이 신호를 사용하게 되면 오검출이 많이 발생할 수 있다 따라서 본 연구에서는 자세 추정 시스템과 확장칼만필터를 결합한 알고리즘을 통해 계산된 속도와 자세를 특징점으로 사용하였다. 식 (1): 상태변수 (dxk)는 식 (1)과 같이 각각 3 차인 자세 오차 (dφk), 자이로 바이어스 (dbg k, ), 속도 오 차 (dvk)의 9차 벡터로 구성된다.
[ , , , ]
k k g k k
dx = dφ db dv (1)
각 상태변수들은 식 (2), (3), (4)와 같은 관계식을 가지게 되 며, 이 관계식을 이용하여 시스템 행렬을 구성하면 식 (5)와 같다.
1 ˆn, b
k k b k k t
dφ+ =dφ -C dw D (2)
1
b b
k k
dw+ =dw (3)
1 , ,
,
ˆ ˆ ˆ ( )
n
k k k b k b k
k n k k
t t
d d d
d d
+ = - ´ D
= + ´ D
v v φ C a
v a φ (4)
3 3 3 3
3 3 3 3 3 3
3 3 3 3
ˆ
(ˆ )
n b k
nn
t
t
´ ´
´ ´ ´
´ ´
é - D ù
ê ú
= ê ú
ê ´ D ú
ë û
I C 0
Φ 0 I 0
a 0 I
(5)
여기서 ˆn,
Cb k은 센서 좌표계( ,b body frame)에서 항법 좌표계 ( ,n navigation frame)으로의 자세 변환 행렬, dw 는 자이로bk 에서 출력된 각속도 변화량, aˆb k, 는 가속도계 출력값, Φ 는 k 시스템 행렬을 각각 의미한다. 확장 칼만필터의 측정치의 경 우, 가속도의 크기가 0에 가까울 때 자세 값을 계산할 수 있
다는 것과 자이로 데이터의 크기와 분산이 0에 가까울 때의 속도가 0이라는 점에 착안하였다. 센서가 정지 상태에 있을 때, 가속도계로부터 roll ( )f 과 pitch ( )q 를 식 (6)과 같이 계산 할 수 있다. 정지 상태를 판단하기 위해, 식 (7)과 같이 가속도 오차를 나타내었다. 이 때, rk 은 정지 상태에서의 가속도 오차, g 는 중력 가속도, a 는 가속도계 출력 값, b C 는 항법 좌표bn 계에서 센서 좌표계로의 자세변환 행렬을 각각 의미한다.
1
1
2 2
tan
tan
y z
x
y z
a a
a
a a
f
q
-
-
æ ö
= ç ÷
è ø
æ ö
ç ÷
= ç + ÷
è ø
(6)
[0 0 ]'
b
k = n -g - b
r C a (7)
자이로 센서의 출력값의 크기와 분산이 0에 가까울 때는 속도가 0이라고 가정하여 측정치로 사용하면 식 (8)과 같다.
측정치 모델 ( )zk 은 식 (7)과 식 (8)을 이용하여 실제 센서로 부터 측정된 값과 예측값의 차로 식 (9)와 같이 구성할 수 있 으며, 측정치 행렬 ( )H 은 식 (10)과 같이 나타낼 수 있다.
| 1 [0 0 0]'
k = k k - -
m v (8)
k k
k
é ù
= ê ú ë û z r
m (9)
3 3 3 3
3 3 3 3 3 3
an ´ ´
´ ´ ´
é ù
= ê ú
ë û
H 0 0
H 0 0 I (10)
0 c 0 c / c s / c 0
c c s s 0 s c 0
s c c s 0 t c t s 1
an
g
g g
g g
q y q y q
f q f q y y
f q f q q y q y
- -
é ù é ù
ê ú ê ú
= -ê ú ê - ú
ê ú ê - ú
ë û ë û
H (11)
식 (11)의 Han은 가속도를 항법 좌표계의 자세로 변환시켜 주는 행렬로, sf=sin ,f cf=cos ,f sq=sin ,q cq=cos ,q
tq=tan ,q sy =sin ,y cy =cosy 를 나타낸다. 자세 추정 시스템과 확장칼만필터를 통해 스마트 워치, 즉 손목의 속도 와 자세 값을 구할 수 있기 때문에 이를 특징점으로 사용할 수 있게 된다.
2. 운동 좌표계(exercise frame)의 도입
자세 추정 시스템과 확장칼만필터 기반의 항법 알고리즘
mk
dxk
rk
k, k
φ v
그림 1. 자세 추정 시스템 - 확장칼만필터 기반 카운트 알고 리즘.
Fig. 1. ARS-EKF based counting algorithm.
So Young Park, Min Su Lee, Jin Woo Song, and Chan Gook Park
항법 기반 웨어러블 스마트 디바이스 동작 카운트 알고리즘 549
을 통해 항법 좌표계에서의 속도와 자세를 구할 수 있다. 하 지만 항법 좌표계에서 나타낸 특징점들의 경우 사용자가 바 라보고 있는 방향에 따라 그 값이 달라지게 되므로 사용할 수 없게 된다. 따라서, 사용자가 정지 상태에서 운동을 시작 하기 전까지의 동체 좌표계를 기준으로 하는 고정된 좌표계 인 운동 좌표계를 도입하여 그 좌표계에서의 속도와 자세를 특징점으로 사용하였다.
사용자가 시계를 착용하여 시계를 볼 때, 정면으로 향하는 방향을 x축, 손가락 쪽 방향을 y축, 바닥을 향하는 방향을 z 축으로 하는 센서 좌표계를 지정한다. 사용자가 운동을 시작 하기 전 준비 자세를 취할 때의 센서 좌표계를 고정된 운동 좌표계를 x 좌표계로 나타내면, 식 (12)와 같은 관계식을 가 진다. 식 (12)의 관계식을 이용하여 고정된 운동 좌표계와 항 법 좌표계 사이의 자세 변환 행렬 (Cxn)을 식 (13)과 같이 구 할 수 있다.
( )0
(0) (0)
{ }: initialsensor frame (fixed)
x b
x n x
n b b
x
ì =
ïí ï = î
C I
C C C (12)
(0) (0) (fixed)
x x b
n= b × n
C C C (13)
III. 카운트 알고리즘
전반적인 카운트 알고리즘은 그림 2와 같다. II에서 자세추 정시스템-확장칼만필터를 결합하여 속도와 자세를 도출한 특 징점들은 각 동작의 물리적 특성을 직관적으로 반영하기에 그 동작에 적합한 특징점을 용이하게 추출할 수 있다는 장점 이 있다. 이 항법 알고리즘을 통해 추정된 속도 ( )vk 와 자세 (φk)는 우선적으로 분할 과정을 거쳐 사용자가 운동 중인지 아닌지를 판별할 수 있다. 그 후 영점 교차를 통해 카운트를 수행하고 그 중에서 오검출된 횟수를 제거해주는 알고리즘 을 거쳐 정확한 카운트 결과를 얻을 수 있게 된다.
1. 분할(segmentation) 과정
사용자가 정지해 있을 때, 특징점이 센서 노이즈로 인해 0 근처의 값을 가지게 되면 영점을 교차하기 때문에 그 횟수가 증가하게 된다. 따라서 사용자가 운동 중인지 아닌지를 결정 하는 분할 알고리즘은 정확한 카운트를 하기 위해서는 필수 적인 과정이다.
각 동작에 대해 사용되는 특징점의 분산을 이용하여 분할 과정을 수행할 수 있다. 사용자가 정지해 있을 경우에는 분 산이 거의 변화되지 않지만, 사용자가 반복적인 동작을 수행 하는 경우에는 분산 값이 크게 증가하게 된다. 이 점에 착안 하여 분산을 이용해 동작과 비동작을 분할하였다.
2. 영점 교차 방법 및 오검출 보정 알고리즘 2.1 영점 교차 방법
영점 교차 방법은 특정 동작에 대한 특징점이 0을 지날 때 즉, 신호의 부호가 바뀌는 부분에서 카운트를 해주는 방법이 다. 한 손 아령 동작의 경우, 0과 180사이의 각에서 운동을 수행하므로 예외적으로 중간 값인 90도를 기준으로 부호가 바뀔 때 카운트를 수행하였다. 기본적으로 영점 교차 방법을 사용하되, 그 값이 일정한 조건을 만족하는 경우에만 동작을 카운트 해 주어 동작이 제대로 이루어졌는지 확인하고 오검 출율을 감소시킬 수 있는 보정 알고리즘을 추가하였다.
2.2 복합 동작 시의 오검출 보정 알고리즘
실제로 사용자가 운동을 할 때, 지시된 사항대로 운동을 수행하기 어려운 상황들이 존재한다. 예를 들어, 줄넘기 동작 을 수행하다가 발에 걸릴 수도 있고, 스쿼트 동작이 힘들어 잠시 휴식을 취하거나 수분을 섭취하기 위해 운동 중에 움직 일 수도 있다. 분할 과정의 경우, 특징점의 분산만을 관찰하 여 정지와 운동 동작의 두 가지 상황만을 정확히 판별할 수 있게 되며 비운동 동작이지만 움직임이 큰 경우는 운동인지 아닌지 제대로 판단할 수 없다. 그리고 영점 교차 방법을 이 용하여 카운트를 수행하게 되면, 운동 동작 사이의 운동이 아닌 구간에서도 오검출이 발생할 수 있기 때문에 운동 주기 를 이용한 오검출 보정 알고리즘을 제안하였다.
운동동작 가이드라인에 따르면 분당 최소 운동 횟수가 지 정되어 있기 때문에 초기 주기 (Pini)를 지정할 수 있다. 동 작에 따른 평균적인 초기 주기를 사전에 지정한 상태에서 사 용자가 운동을 시작하게 되면 영점 교차 방법을 통해 동작이 검출 (cnt 되고 그 시점 ) stepP cnt 을 알 수 있다. ( )
운동이 힘든 경우에 사용자의 속도가 느려지므로 데이터 의 주기도 커지게 된다. 그렇기 때문에 고정된 주기를 사용 해서 동작을 구분하는 것은 오검출의 원인이 되므로 본 알고 리즘에서는 주기를 업데이트 해주는 방법으로 구성하였다.
하지만 주기를 업데이트해서 복합 동작을 구분할 때에도 오 차가 발생할 수 있다. 그로 인해 동작이 끝나지 않았는데도 잘못된 검출이 일어나게 되면 주기를 업데이트 하는 과정에 서 동작의 중단을 정해주는 기준인 주기 (Tcur)가 잘못된 값으 로 바뀌게 된다. 그렇게 되면 아직 운동 동작을 수행하고 있 을 때에도 알고리즘은 운동이 끝났다고 나타낼 수 있다는 오 류가 발생한다. 따라서 본 알고리즘은 주기 (Pcur)를 현재 주 기 (Tcur)와 이전 주기 (Pprev)의 평균 값으로 아래의 수식 (14) 과 같이 업데이트 해주어 앞에서 언급한 여러 오차 발생 경 우들을 제거해주었다.
k, k
φ v
그림 2. 카운트 알고리즘.
Fig. 2. Overall counting algorithm.
Navigation based Motion Counting Algorithm for a Wearable Smart Device
박 소 영, 이 민 수, 송 진 우, 박 찬 국 550
diff th
T >
Tdiff
Pprev cur, diff
T T
그림 3. 복합 동작 시의 오검출 보정 알고리즘.
Fig. 3. Glitch removal algorithm in complex motions.
60%
cur prev
T < of T
Tcur
prev cur
T =T Tcur
그림 4. 주기를 고려한 오검출 보정 알고리즘.
Fig. 4. Glitch removal algorithm using motion period.
( )
where
( ) ( _ )
cur cur prev
cur
diff cur prev
P average T P
T stepP cnt stepP pre cnt
T T P
= +
= -
= -
(14)
그리고 현재 주기 (Tcur)와 이전 주기 (Pprev)와의 차 (Tdiff) 를 계산하여 그 값이 기준 값을 넘게 되면 아래의 그림 3과 같은 논리로 동작이 중단 되었다고 판별함으로써 복합 동작 을 구분해주었다.
2.3 주기를 고려한 오검출 보정 알고리즘
앞에서 설명한 복합 동작을 판별할 때에 주기가 커지면 동 작을 멈추는 알고리즘 외에도 나와야 될 값보다 작게 나오는 경우에도 잘못 동작이 검출되었다고 판별하는 알고리즘을 추가하여 정확도를 높여주었다. 갑자기 주기가 작아지게 되 는 경우에는 노이즈로 인한 오검출일 가능성이 크다. 그렇기 때문에 본 알고리즘에서는 그림 4와 같이 현재 업데이트 된 주기 (Tcur)가 이전 주기 (Tprev)의 60%가 되지 않으면 잘못 검 출되었다고 판단하고 주기를 업데이트하지 않고 이전 주기 를 그대로 사용하여 오검출율을 줄여주었다.
IV. 성능평가 및 분석
제안한 알고리즘의 성능을 확인하기 위해 손목에 장착한 스마트워치의 관성센서를 바탕으로 특정 행위(줄넘기, 스쿼 트, 윗몸 일으키기, 아령)를 통한 신호를 획득한다. 데이터는 40Hz 속도로 휴대폰에 전송을 하게 되고, 휴대폰에서는 안드
로이드 앱을 이용하여 입력데이터의 확인 및 실시간 데이터 저장이 가능하다.
우선 자세 추정 시스템과 확장칼만필터를 결합하여 추정 된 각 동작에서의 속도와 자세는 그림 5와 같다. 줄넘기와 스쿼트의 경우 지구 중심을 향하는 방향으로의 속도 (Vd) 변 화량이 뚜렷하기 때문에 이를 특징점으로 잡았다. 그리고 윗 몸 일으키기와 아령 들기의 경우, 운동 프레임을 도입하여서 주된 특징점인 Roll (fexer)과 앞쪽으로의 속도 (Vfront)를 특 징점으로 채택하였다. 항법 알고리즘을 통해 데이터를 처리 하면, 속도와 자세로 물리적으로 직관적인 특징점을 선택할 수 있다는 장점과 노이즈에도 미가공 데이터보다 강인하다 는 장점이 있음을 확인하였다.
각 동작별 분할 과정을 거친 센서 신호는 그림 6과 같다.
그림 6의 운동 동작을 수행할 때 사용자는 정지 상태에서 운 동을 시작하였고 운동을 마친 후에도 정지한 데이터를 획득 하였다. 분할된 구간은 그림 6에서 점선으로 표시되어 있으 며, 정지 상태에서 동작을 수행 시 성공적으로 분할이 이루 어지는 것을 확인할 수 있다.
그림 7에서 10은 각각 줄넘기, 스쿼트, 윗몸 일으키기, 아 령 들기의 특징점에 영점 교차 방법과 오검출 보정 방법을 적용하여 각 동작별로 카운트를 수행한 결과이다. 실험을 수 행할 때, 줄넘기 동작과 아령 들기는 각 15회씩, 스쿼트와 윗 몸 일으키기는 각 10회씩 수행하고 동작 수행 후 자유롭게 주위를 걸었다.
각 그림에서 x표는 영점 교차 방법만을 수행하였을 때의 카운트 결과이며, O표는 오차 보정 알고리즘을 통해 오차율 을 줄인 결과이다. 그림 7에서 그림 10의 결과들을 보면, 동 작이 하나씩 추가될 때마다 이전 동작과의 주기를 고려하기 때문에 단순히 영점 교차 방법만을 수행했을 때보다 향상된 결과를 보임을 확인할 수 있다.
0 5 10 15 20 25 30 35
-13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3
time[sec]
[m/s]
0 100 200 300 400 500 600 700
-2 0 2
Vn
0 100 200 300 400 500 600 700
-5 0 5
Ve
0 100 200 300 400 500 600 700
-2 0 2
Vd
0 5 10 15 20 25 30 35
-13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3
time[sec]
[m/s]
0 200 400 600 800 1000 1200 1400
-2 0 2
Vn
0 200 400 600 800 1000 1200 1400
-2 0 2
Ve
0 200 400 600 800 1000 1200 1400
-5 0 5
Vd
0 5 10 15 20 25 30 35
-13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3
time[sec]
[m/s]
0 500 1000 1500 2000 2500
-2 0 2
Vfront
0 500 1000 1500 2000 2500
-0.5 0 0.5
Vright
0 500 1000 1500 2000 2500
-2 0 2
Vup
0 5 10 15 20 25 30 35
-13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3
time[sec]
[deg]
0 200 400 600 800 1000 1200 1400 1600 1800
0 100 200
rollexer
0 200 400 600 800 1000 1200 1400 1600 1800
-50 0 50
pitchexer
0 200 400 600 800 1000 1200 1400 1600 1800
-50 0 50
yawexer
time [sec]
그림 5. 줄넘기, 스쿼트, 윗몸, 아령 특징점 (위에서부터).
Fig. 5. Jump rope, squat, sit-up, and bicep curls features (from top to bottom).
항법 기반 웨어러블 스마트 디바이스 동작 카운트 알고리즘 551
0 100 200 300 400 500 600 700 800
-2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2
segmentation
segmentation feature: vd
0 200 400 600 800 1000 1200
-2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2
segmentation
segmentation feature: vd
0 200 400 600 800 1000 1200 1400 1600 1800
-20 0 20 40 60 80 100 120 140 160
segmentation
segmentation feature: rollexer
0 200 400 600 800 1000 12001400 1600 18002000 -1.5
-1 -0.5 0 0.5 1 1.5 2
segmentation
segmentation feature: vfront
0 5 10 15 20 25 30 35
-13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3
time[sec]
[m/s]
0 5 10 15 20 25 30 35
-13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3
time[sec]
[m/s]
0 5 10 15 20 25 30 35
-13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3
time[sec]
[m/s]
0 5 10 15 20 25 30 35
-13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3
time[sec]
[deg]
0 5 10 15 20 25 30 35
-13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3
time[sec]
[m/s]
0 5 10 15 20 25 30 35
-13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3
time[sec]
[m/s]
0 5 10 15 20 25 30 35
-13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3
time[sec]
[m/s]
0 5 10 15 20 25 30 35
-13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3
time[sec]
[m/s]
그림 6. 각 동작별 분할 과정을 거친 특징점 (왼쪽 위부터 시 계방향으로 줄넘기, 스쿼트, 덤벨, 윗몸 일으키기).
Fig. 6. Feature with segmentation stage (clockwise from top left:
jump rope, squat, bicep curls, and sit-up).
0 5 10 15 20 25 30 35
-13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3
time[sec]
[m/s]
0 100 200 300 400 500 600 700 800 900
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3
Vd
time [sec]
그림 7. 줄넘기 카운트 알고리즘 결과(특징점: Vd).
Fig. 7. Counting algorithm result for jump rope with Vd.
0 5 10 15 20 25 30 35
-13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3
time[sec]
[m/s]
0 200 400 600 800 1000 1200
-2 -1.5 -1 -0.5 0 0.5 1 1.5
Vd
time [sec]
그림 8. 스쿼트 카운트 알고리즘 결과(특징점: Vd).
Fig. 8. Counting algorithm result for squat with Vd.
0 5 10 15 20 25 30 35
-13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3
time[sec]
[m/s]
0 200 400 600 800 1000 1200
-1 -0.5 0 0.5 1 1.5 2
Vfront
time [sec]
그림 9. 윗몸 일으키기 카운트 알고리즘 결과(특징점: Vfront).
Fig. 9. Counting algorithm result for sit-up with Vfront.
0 5 10 15 20 25 30 35
-13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3
time[sec]
[deg]
0 500 1000 1500 2000 2500 3000
-200 -150 -100 -50 0 50 100 150 200
rollexer
time [sec]
그림 10. 한 손 아령 카운트 알고리즘 결과(특징점: fexer).
Fig. 10. Counting algorithm result for bicep curls with fexer. 표 1. 동작 카운트 알고리즘 성능 결과.
Table 1. Result of motion counting algorithm.
Motions Jump rope Squat Sit-up Bicep curls Accuracy 97.66 % 96.67 % 96.50 % 99.51 %
표 1은 총 30명의 피실험자를 대상으로 줄넘기, 스쿼트, 윗 몸 일으키기, 한 손 아령 들기 동작을 수행했을 때의 평균적 인 정확도를 나타낸 것이다. 줄넘기 동작의 오차의 경우, 대 부분 동작의 시작과 끝에서 발생한 오차이며 운동 중에는 정 확한 카운트가 이루어짐을 확인하였고, 스쿼트는 운동 횟수 가 증가하면서 사용자가 제대로 된 동작을 수행하지 못하면 서 발생하는 오차가 있었다. 윗몸 일으키기의 경우에는 사용 자가 가이드 라인에 따른 초기 자세를 정확히 잡아주지 않아 서 발생하는 오차가 주된 요인으로 전반적인 알고리즘 정확 도는 97.59%로 매우 높은 카운트 정확도를 보인다.
V. 결론
본 논문에서는 사용자의 손목에 착용한 스마트워치의 가 속도와 자이로 신호를 이용해 항법 알고리즘을 구성하고, 이
박 소 영, 이 민 수, 송 진 우, 박 찬 국 552
특징점을 사용해 반복적인 운동을 카운트해주는 알고리즘을 제안하였다. 가속도와 자이로 신호를 그대로 사용하게 되면 센서의 여러 오차요인들로 인해 오검출이 발생하며 생성하 는 특징점들이 물리적인 동작과 연관시키기에는 직관적이지 않다. 따라서 자세 추정 시스템과 확장 칼만 필터를 구성하 여 속도와 자세를 카운트 알고리즘을 위한 특징점으로 사용 하였다. 또한 고정된 항법 좌표계가 아닌 운동 좌표계를 도 입함으로써 운동 방향과 관련된 특징점을 획득할 수 있다.
생성된 특징점들을 영점 교차 방법과 오검출 보정 알고리즘 을 통해서 운동 동작을 카운트 한다. 오검출 보정 알고리즘 의 경우, 사용자의 운동 주기를 매회 업데이트하여 사용자와 사용자의 운동 주기에 강인하도록 알고리즘을 구성하였으며, 업데이트된 주기를 통해 영점 교차 방법으로 오검출을 제거 할 수 있다. 제안된 알고리즘을 여러 복합 동작과 다양한 피 실험자를 대상으로 한 실험들을 통해 정확도 97.6%의 효과 적인 카운트 수행이 이루어짐을 확인할 수 있었다.
REFERENCES
[1] T. W. Lee, I. S. Ko, and K. J. Lee, “Development of health strategies and programs for the elderly,” Health Promotion Foundation Program Support Group, Yonsei University, South Korea, Report (in Korean), 2005.
[2] K. A. Park and H. B. Hwang, “Estimated future population,”
Korea National Statistical Office, South Korea, Report (in Korean), 2006.
[3] S. H. Seo, “Effects of regular walking exercise on physical performance and physiological function in the elderly,” Health Promotion Foundation Program Support Group, Yonsei University, South Korea, Report (in Korean), 2007.
[4] H. Geon and J. E. Ha, “Analysis of table tennis swing using action recognition,” Journal of Institute of Control, Robotics and Systems (in Korean), vol. 21, no. 1, pp. 40-45, 2015.
[5] K. Lorincz, et al., “Mercury: a wearable sensor network platform for high-fidelity motion analysis,” SenSys’09, Berkeley, CA, USA , pp. 183-196, Nov. 2009.
[6] T. Pascu, et al., “Ambient Health Monitoring: The smartphone as a body sensor network component,” InImpact: The Journal of Innovation Impact, vol. 6, no. 1, pp. 62-65, Nov. 2013.
[7] C. Zhu and W. Sheng, “Wearable sensor-based hand gesture and daily activity recognition for robot-assisted living,” Systems, Man and Cybernetics, Part A: Systems and Humans, IEEE Transactions, vol. 41, no. 3, pp. 569-573, May 2011.
[8] J. Lockman, R. S. Fisher, and D. M. Olson, “Detection of seizure-like movements using a wrist accelerometer,” Epilepsy
& Behavior, vol. 20, no. 4, pp. 638-641, Apr. 2011.
[9] G. Appelboom, et al., “Smart wearable body sensors for patient self-assessment and monitoring,” Archives of Public Health, vol.
72, no. 1, 2014.
[10] D. Morris, T. S. Saponas, A. Guillory, and I. Kelner, “RecoFit:
using a wearable sensor to find, recognize, and count repetitive exercises,” in Proc. of the 32nd Annual ACM Conference on Human Factors in Computing Systems, Toronto, ON, Canada, pp. 3225-3234, Apr. 2014.
[11] B. J. Mortazavi, et al., “Determining the single best axis for exercise repetition recognition and counting on smartwatches,”
International Conference on Wearable and Implantable Body
Sensor Networks, Zurich, Switzerland, pp. 33-38, Jun. 2014.
[12] K. J. Kim, D. J. Lee, Y. K. Kim, and J. M. Lee, “Outdoor localization for a quad-rotor using extended Kalman filter and path planning,” Journal of Institute of Control, Robotics and Systems (in Korean), vol. 20, no. 11, pp. 1175-1180, 2014.
[13] S. H. Choi, G. J. Kim, Y. K. Kim, and J. M. Lee, “Outdoor positioning estimation of multi-GPS/INS integrated system by EKF/UPF filter conversion,” Journal of Institute of Control, Robotics and Systems (in Korean), vol. 20, no. 12, pp. 1284- 1289, 2014.
박 소 영
2013년 한동대학교 기계제어공학부 졸 업. 2013년~현재 서울대학교 기계항공공 학부 박사과정 재학 중. 관심분야는 관 성항법 및 보행자 항법, 실내 항법, 웨 어러블 센서.
이 민 수
2008년 서울대학교 기계항공공학부 졸 업. 2008년~현재 서울대학교 기계항공 공학부 박사과정 재학 중. 관심분야는 관성항법시스템 및 보행자 항법 시스템 개발.
송 진 우
1995년 서울대학교 제어계측공학과(공 학사). 1997년 서울대학교 제어계측공학 과(공학석사). 2002년 서울대학교 전기 컴퓨터공학부(공학박사). 2003년~2014년
㈜마이크로인피니티 CTO. 2014년~현재 서울대학교 기계항공공학부 BK21+ 융 합지식기반 창조형 기계항공인재 양성사업단 연구교수. 관심 분야는 항법, 최적/강인 제어, MEMS 및 관성센서.
박 찬 국
1985년 서울대학교 공과대학 제어계측 공학과 졸업. 1987년 동 대학원 졸업(공 학석사). 1993년 동 대학원 졸업(공학박 사). 1993년 서울대학교 제어계측신기술 연구센터 Post Doc. 1994년~2002년 광운 대학교 정보제어공학과 조교수/부교수.
1998년 미국 UCLA 기계항공공학과 방문연구원. 1994년~2003 년 서울대학교 자동제어특화연구센터 책임연구원. 2003년~현 재 서울대학교 기계항공공학부 부교수/교수. 2009년 미국 Georgia Tec. 방문교수. 관심분야는 INS/GPS 결합 알고리즘, MEMS IMU 응용 시스템 개발, 영상항법시스템, USN을 이용 한 Ubiquitous Positioning, 필터링 기법, FDIR 시스템.
So Young Park, Min Su Lee, Jin Woo Song, and Chan Gook Park