DOI QR코드

DOI QR Code

제한된 화면에 광류 기술을 적용한 스마트폰 이동 거리 추정에 관한 연구

A Study on the Estimation of Smartphone Movement Distance using Optical Flow Technology on a Limited Screen

  • 정근영 (한성대학교 전자정보공학과) ;
  • 오종택 (한성대학교, 전자정보공학과)
  • 투고 : 2019.07.17
  • 심사 : 2019.08.02
  • 발행 : 2019.08.31

초록

스마트폰을 이용한 실내 위치 추적 기술에 관한 연구가 활발하게 진행되고 있다. 특히 스마트폰의 이동 거리를 정확하게 측정하여 사용자의 이동 경로를 지도에 표시하여야 한다. 스마트폰에 탑재 되어있는 센서를 이용한 위치 추적 기술은 오래 전부터 사용 되어 왔으나, 센서만 이용하여 사용자의 이동 거리를 측정하기에는 정확하지 못하다. 따라서 사용자가 스마트폰을 일정한 자세로 들고 이동할 때, 이동 거리를 정확하게 측정할 수 있는 적절한 알고리즘을 연구 개발해야 한다. 본 논문에서는 피라미드 기반 광류 추정 방법에서 스마트폰의 화면을 제한하여 사용자의 발모양을 제거함으로써 이동거리 추정 오차를 줄이기 위한 방법을 제안하고, 실험으로 그 성능을 검증하였다.

Research on indoor location tracking technology using smartphone is actively being carried out. Especially, the movement distance of the smartphone should be accurately measured and the movement route of the user should be displayed on the map. Location tracking technology using sensors mounted on smart phones has been used for a long time, but accuracy is not good enough to measure the moving distance of the user using only the sensor. Therefore, when the user moves the smartphone in a certain posture, it must research and develop an appropriate algorithm to measure the distance accurately. In this paper, we propose a method to reduce moving distance estimation error by removing user 's foot shape by limiting the screen of smartphone in pyramid - based optical flow estimation method.

키워드

Ⅰ. 서론

최근 다양한 실내 위치 추적 기술에 관한 연구가 진행 되고 있다. 그 예로 임의의 위치에서 무선랜의 신호를 측정하여 사전에 측정된 값과 비교하는 WiFi fingerprint 방식과 가속도 및 자이로 센서를 이용하여 이동 방향과 보폭을 검출하는 보행 추측 항법(Pedestrian Dead Reckoning: PDR)방식들이 제안되고 있다.[1~2] 그 중 이동 거리를 측정하는 방법으로는 가속도를 이중 적분하는 방법도 있지만[3], 가속도 센서의 경우 센서 자체의 바이어스 오차와 중력가속도 및 측정 잡음으로 인해 이동할 때의 가속도 값만을 정확하게 측정하기가 어렵다. 이런 점을 해결하기 위해 PDR 방식에서는 일정한 수식을 이용하여 보폭을 검출하는데[4], 이 방법은 적분 방식에 비해 오차가 누적되지 않는다는 장점이 있고 한 걸음마다 보폭을 계산하여 누적하여 더하면 이동 거리를 알 수 있다.

그러나 이 PDR 방법은 제한적인 상황에서는 우수한 모습을 보이고 있지만 사용자의 키나 보행 자세, 속도 등에 따라 이동 거리가 수식에 정확하게 일치하지 않는다. 한편, 최근 차량이나 드론의 이동을 파악하기 위해 영상처리 방법 중 한가지인 피라미드 기반 광류 추정 방법을 이용하여 이동 거리를 계산하는 기술이 제안되고 있다[5].

따라서 본 논문에서는 스마트폰을 가슴 앞에서 손으로 들고 이동하는 경우에 대하여, 광류 추정 방법에서 스마트폰 화면에 표시되는 사용자의 발모양이 이동거리 추정에 미치는 영향을 분석하고, 스마트폰 화면을 제한하는 알고리즘을 제안하였으며, 그 성능과 효과를 실험적으로 검증하였다.

Ⅱ. 스마트폰 이동거리 측정 방법

1. Pedestrian Dead Reckoning(PDR)

실내 위치 추적을 위한 연구에서 이동 거리를 추정하기 위하여 다양한 방법이 제시되고 있다. 그 중 가속도 센서 값만을 이용하여 거리를 산출할 경우 오차가 생기는 문제를 해결하기 위해 PDR방법이 많이 사용 되고 있다[2]. PDR방법 중 주파수 검출 방식, 최대 최소 가속도의 합 방식 그리고 적응형 임계값 방식을 그 예로 들 수 있다.

2. 영상 처리 (Image Processing)

최근 실내 위치 추적 연구에서 영상 정보를 이용하여 실내 위치를 추적하는 다양한 방법이 제시되고 있다. 대표적으로 두 가지 방법이 있는데, 첫 번째 방법은 실내의 CCTV를 이용하여 사용자의 위치를 파악하는 방법이다. 특정 실내의 내부 구조도를 미리 구축하여 좌표를 생성한 상태에서 카메라를 통해 사용자의 위치를 파악하여 특정 좌표를 서버에 보내면 그 서버가 사용자의 이동경로 및 이동거리를 다시 화면에 표시하는 방식이다[6]. CCTV를 이용한 다른 방법에는 Histogram of Oriented Gradients(HOG)나 객체 추적을 이용하여 실내에 있는 카메라에 사용자가 인지되면 사용자를 추적하며 사용자의 위치와 이동경로 및 거리를 계산하여 구축해 놓은 실내 지도에 표시해주는 방법이다.

두 번째 방법은 광류(Optical Flow: OF)를 이용하여 실내의 위치를 파악하고 거리를 측정하는 방법이다. 이 방법은 소실점을 스마트폰 카메라로 촬영하며 이동하여, 이동거리와 이동방향을 모두 파악하여 실내위치를 추적한다[7].

또는, 드론이나 로봇을 이용하여 실내의 바닥을 촬영하며 드론이나 로봇의 위치를 파악하는 방법이 제안되고 있다.

3. 광류 (Optical Flow)

광류를 계산하는 목적은 운동계를 찾기 위한 것인데 운동계란 3차원 물체를 2차원에 투영한 영상의 각 화소에 운동속도를 부여한 것이다. 실세계인 3차원의 운동계는 시간에 따른 밝기 분포만으로는 계산 될 수 없다. 하지만 물체가 카메라에 대하여 상대적으로 움직일 때에 관찰되는 밝기 패턴의 이동인 광류는 계산 될 수 있다.

Horn과 Schunck[9]는 광류를 수학적으로 정의하였다. 먼저 물체의 어떤 점에 대응하는 영상의 밝기 E는 E(x(t),y(t),t)가 시간 t에서의 위치 (x,y)의 밝기를 나타낸다면, 밝기의 변화율은 다음 식(1)과 같다.

\(\frac{d E(x(t), y(t), t)}{d t}=\frac{\partial E}{\partial x} \frac{d x}{d y}+\frac{\partial E}{\partial y} \frac{d y}{d t}+\frac{\partial E}{\partial t}=0\)       (1)

식 (1)을 다시 쓰면, (2)와 같이 표현할 수 있다.

\(\left[\begin{array}{l} \frac{\partial E}{\partial x} \\ \frac{\partial E}{\partial y} \end{array}\right]^{T}\left[\begin{array}{l} \frac{d x}{d t} \\ \frac{d y}{d t} \end{array}\right]+\frac{\partial E}{\partial t}=0\)       (2)

Lucas-Kanade[10]는 영상 피라미드를 이용하여 반복 적인 방법으로 광류를 계산하였다. 영상 시퀀스에서 연속된 두 영상 I와 J를 가정하면 광류는 영상 I의 한 점 (x,y)와 동일한 영상 값을 갖는 두 번째 영상 J에서의 동일한 점(x+vx,y+vy)를 계산하는 것이다. 이 때, 점 I(x,y)가 점J(x+vx,y+vy) 주위의 탐색 영역을 벗어날 수 없다고 가정한다. 그렇다면 화소의 움직임은 이 영역 내에서 두 점의 영상 값들의 차이를 최소화 하는 벡터 (vx,vy)를 구하는 것으로 나타낼 수 있다. 영상에서 임의의 점을 p = (px,py)라 하고 탐색 영역(Searching Window) 크기를 (ωxy)라고 할 경우 이 관계를 수식 적으로 나타내면,

\(\epsilon\left(v_{x}, v_{y}\right)=\sum_{x=p_{x}-w_{x} y=p_{y}-w_{y}}^{p_{x}+w_{x}}\left\{I(x, y)-J\left(x+v_{x}, y+v_{y}\right)\right\}^{2}\)       (3)

와 같이 오차 함수로 나타낼 수 있으며 여기서 이 함수를 최소화하는(vx,vy)를 구한 것이 광류를 나타내는 벡터이다. 광류 벡터의 올바른 해를 구하기 위해서는 오차함수가 최소가 되는 값을 구해야하므로, 이는 식 (3)을 편미분 해서 0이 되는 값을 찾은 후 v = (vx,vy)라고 했을 때, v가 작지 않은 경우 반복적인 계산을 통해 해를 구할 수 있다.

먼저, vx를 구하는 경우 I(x)와 J(x)의 위치차인 v0를 구한다. 그 후 J를 v0만큼 이동시킨 후 v0를 더해 v1을 구할 수 있다. 그림 1과 같이 v2,v3⋯을 반복적인 계산을 하며 올바른 해를 계산할 수 있다[11]. y좌표의 경우에도 같은 방법으로 계산하여 올바른 해를 계산한다.

OTNBBE_2019_v19n4_71_f0001.png 이미지

그림 1. 반복을 통해 올바른 해를 계산

Fig. 1. Calculate correct solution through iteration

4. 광류를 이용한 스마트폰에서의 이동거리 측정 알고리즘

계산된 광류와 Shi-Tomashi 알고리즘(GoodFeatureToTrack)을 이용하여 영상 내에서 카메라의 이동 거리를 파악할 수 있다. 먼저 Shi-Tomashi 알고리즘을 이용하여 현재 프레임에서 특징점을 검출한다. 그 후에 다음 프레임에서 Lucas-Kanade알고리즘을 통하여 검출한 특징점의 광류 값을 계산하여 점을 찍어 준다. Shi-Tomashi 알고리즘을 통해 검출한 특징점과 그 특징점이 계산 되었다고 판단되는 광류 값 계산을 통해 구한 새로운 점을 하나의 쌍으로 묶어준 후, 잘 못 묶였다고 판단되는 오류 쌍을 제거해준다.

오류 쌍이 제거된 쌍들을 식 (4)를 이용하여 두 점의 사이의 거리를 구해준 후, 그 들의 모든 값을 Median filter를 통과시켜 나온 중간 값 식 (5)를 이용하여 구한 dframe을 frame의 이동 거리로 판단한다.

\(d=\sqrt{\left(x_{2}-x_{1}\right)^{2}+\left(y_{2}-y_{1}\right)^{2}}\)       (4)

\(\begin{array}{l} d_{\text {array }}=\left[d_{1}, d_{2}, \cdots, d_{\text {lastframe }}\right] \\ d_{\text {frame }}=\operatorname{Median}\left(d_{\text {array }}\right) \end{array}\)       (5)

마지막으로, frame의 이동 거리를 사용자의 이동거리로 변환하기 위해 실세계 변환 상수인 realvalue와 자이로 센서를 통해 구한 스마트폰의 yaw각(회전각)을 곱해 주어 실세계의 거리로 변환시켜준다.

그것을 식으로 표현하면,

\(d_{\text {total }}=\sum_{f r a m e=1}^{\text {lastframe }}\left(d_{\text {frame }} \times \cos (\text { Yew }) \times \text { realvalue }\right)\)       (6)

로 표현할 수 있다. realvalue는 사전에 직접 일정 거리를 걸어본 후, 추정된 광류 값과의 비율로 구했다. 전체 흐름도는 그림 2와 같고, 그림 3은 실험하는 자세와 광류의 모습이다.

OTNBBE_2019_v19n4_71_f0002.png 이미지

그림 2. 광류를 이용한 이동거리 측정 알고리즘의 순서 흐름도

Fig. 2. Flowchart of moving distance measurement algorithm using optical flow

OTNBBE_2019_v19n4_71_f0003.png 이미지

그림 3. 스마트폰을 들고 이동하는 실험 자세 (a)와 스마트폰에 표시되는 광류의 모습 (b)

Fig. 3. Experiment posture to move with smartphone (a) and appearance of optical flow on smartphone (b)

Ⅲ. 제한된 화면에 광류를 이용한 이동거리 측정 방법

1. 기존 방법의 문제점

PDR 방법의 경우 이동 거리를 추정하기 위한 주파수 검출 방식, 최대 최소 가속도의 합 방식 그리고 적응형 임계값 방식 모두 가속도 센서를 이용하므로 센서 자체의 오차가 있고, 사용자의 보폭을 계산하여 거리를 측정하기에는 사용자 모두의 다리 길이가 다르므로 정확한 거리를 측정할 수 없다. 또한 걷는 속도와 자세, 패턴에 따라서 이동 거리 추정 오차가 매우 크다.

영상 처리 방법의 경우, 기존에 제안되고 있는 CCTV를 이용하는 방식은, 적용하려는 모든 실내의 지도를 미리 구축해야 한다는 점과 구역마다 CCTV를 설치하여야 한다는 점에서 비용과 시간적으로 효율적인 방법이라고 할 수 없다.

광류를 이용하는 방법에는 스마트폰을 사용하여 거리와 경로를 측정하는 방법이 제시되고 있지만, 소실점을 카메라 영상에 만들어주어야 하고 카메라는 정면을 바라보는 형태가 될 수밖에 없다. 하지만 일반적인 스마트폰 사용자를 고려할 때 스마트폰의 뒷면은 바닥을 바라보고 걷는 경우가 많다. 이러한 이유로, 소실점을 바라보고 걷는 방법은 실용적이지 못하다. 또한 드론과 로봇을 이용 하는 방법의 경우에는 실제 사용자가 스마트폰을 휴대하고 보행하는 경우와 다르다.

2. 제한된 화면에 의한 이동 거리 추정 오차 감소 방법

본 논문에서는 사용자가 스마트폰을 가슴 앞에 거의 수평으로 들고 스마트폰의 뒷면은 바닥을 향해 있는 상태에서, 사용자가 실내에서 걸어갈 때 그 이동거리를 측정하는 방법을 제안한다.

이 경우에 그림 4처럼 스마트폰의 화면에 사용자의 움직이는 발과 다리 모양이 포함되며, 따라서 광류를 이용 하여 이동 거리를 추정할 때에 큰 오차의 요인이 된다. 즉, 이동거리 측정을 위해서는 계산되는 광류의 값은 카메라의 이동만을 계산할 필요가 있다. 그러나 사용자의 발과 다리가 노출되는 경우에는 오류 쌍을 제거하여 발과 다리 주변의 점들의 쌍이 제거 된다 하더라도, 발과 다리의 움직임은 바닥과 독립적이므로 이동 거리 측정에오차를 발생시키는 원인이 된다.

OTNBBE_2019_v19n4_71_f0004.png 이미지

그림 4. 바닥의 광류의 움직임과는 다르게 발과 다리의 광류가 독립적으로 나타나는 모습.

Fig. 4. Unlike the motion of optical flow on the floor, optical flow on the feet and the legs appear independently.

그러므로 오차를 줄이기 위해 오류 쌍 제거뿐 만아니라 발과 다리의 노출도를 최소화 하고 바닥만을 이용하여 계산해야 한다. 본 논문에서는 발과 다리가 광류를 이용한 이동 거리 추정에 미치는 영향을 실험적으로 분석하고, 화면의 크기를 제한하여 발과 다리의 모양을 제거함으로써, 이동 거리 추정 오차를 줄이는 방법을 제안하였다.

Ⅳ. 실험 결과 및 분석

한 가지의 바닥 패턴으로는 알고리즘의 성능을 일반적으로 판단할 수 없으므로, 그림 5와 같이 다양한 바닥의 패턴을 고려하여 실험 장소를 선정하였다. 정확한 거리 측정을 위해 카메라 프레임의 크기는 640x480, 실험자의 실제 이동거리는 10 m로 고정하고, A의 경우는 실험자의 걸음속도를 보통 걸음 (약 30~40 cm/s)으로 걷는 경우이고, B의 경우는 실험자의 걸음속도를 빠른 걸음 (약 50~60 cm/s) 으로 걷는 경우이다. A, B의 경우 모두 3번씩 실험을 진행 하였다. 표 1을 보면, 바닥 배경의 패턴이 강할수록 이동 거리 추정 오차가 작은 것을 확인할 수 있다.

표 1. A 경우 및 B 경우에 대한, 패턴(a)~(d)까지의 3번의 측정값의 평균과 오차율

Table 1. The average of the three measured values from the patterns (a) to (d) and the error rate for case A and case B.

OTNBBE_2019_v19n4_71_t0001.png 이미지

 

OTNBBE_2019_v19n4_71_f0005.png 이미지

그림 5. (a), (b), (c), (d) 실험에 사용된 바닥의 패턴 (a)부터 (d)까지 바닥의 패턴 강도가 강해지도록 선정 하였다.

Fig. 5. (a), (b), (c) and (d) From the bottom (a) to (d) of the floor used in the experiment, the pattern intensity of the floor was selected to be strong.

본 논문에서는 광류를 이용한 거리 측정 시 실험자의 발과 다리의 노출이 오차의 원인이 되므로 영상을 잘라 내어 발과 다리의 노출을 제거하는 정확한 측정 방법 제안하였다. 또한 발 노출에 따른 거리 측정의 성능을 비교 및 분석하기 위해 3가지의 화면 크기에 대해 측정되는 이동 거리를 비교하였다.

크기 1은 영상의 크기가 250x480으로 발의 노출을 모두 제거하여 바닥의 패턴만을 사용하여 거리를 측정한 경우이고, 크기 2는 445x480로 발만 영상에 포함된 경우, 크기 3은 640x480으로 발과 다리가 모두 노출 되는 기존의 영상을 그대로 사용하였다.

표 2와 그림 6의 실험 결과에 의하면, 스마트폰 화면 크기를 제한하여 발과 다리의 모양을 제거할수록 광류를 적용한 이동 거리 추정 오차가 크게 줄어드는 것을 확인할 수 있다.

표 2. 패턴 (b)의 A 및 B 경우에 대한, 크기에 따른 3번의 측정값의 평균과 오차율

Table 2. The average of the three measured values and the error rate according to the size for case A and case B in pattern (b).

OTNBBE_2019_v19n4_71_t0002.png 이미지

OTNBBE_2019_v19n4_71_f0006.png 이미지

그림 6. 크기 1, 2, 및 3에 대한 각각의 이동 거리 추정오차율의 누적분포함수 그래프.

Fig. 6. A cumulative distribution function(CDF) graph of the distance estimation error rate for each for the size 1, 2, and 3.

Ⅴ. 결론

스마트폰 실내위치 추적에 PDR 기술이 많이 적용되지만, 유도된 보폭 수식은 매우 제한적으로만 적용된다. 본 논문에서는 스마트폰 영상에 광류 기술을 적용하여 이동 거리를 추정하였고, 영상에 포함되는 사용자의 발과 다리에 의한 오차를 감소시키기 위해서 제한된 화면만 사용하는 방법을 제안하였다. 실험으로 그 성능이 검증되었으며, 향후에는 발과 다리에 의한 광류의 영향도 분석 하여 이동 거리 추정에 활용하면 더욱 정확도가 향상될 것이다.

참고문헌

  1. Jong Taek Oh, “A Study on Average Range Setting in Adaptive KNN of WiFi Fingerprint Location Estimation Method,” The Journal of The Institute of Internet, Broadcasting and Communication, Vol. 18, No. 1, pp. 129-134, Dec. 2017. /10.7236/JIIBC.2017.17.6.105
  2. Kwon Hee Lee, Kwang Hyun Kim, and Jong Taek Oh, “A Study on step number detection using smartphone sensors for position tracking,” The Journal of The Institute of Internet, Broadcasting and Communication, Vol. 18, No. 3, pp. 119-125, June 2018. 10.7236/JIIBC.2018.18.3. 119
  3. Yun Ki Kim, Jae Hyun Park, Hwy Kuen Kwak, Sang Hoon Park, Choon Woo Lee, and Jang Myung Lee, “Performance Improvement of Pedestrian Dead-Reckoning System using a Low Cost,” Journal of Institute of Control, Robotics and Systems, Vol. 19, No. 6, pp. 569-575, June 2013. IMU 10.5302/J.ICROS.2013.12.1767
  4. I. W. Jung, I. Youn, H. S. Park, and Y. J. Lee, "Step count Detection Algorithm Compare frequency-time domain using 3-axial Accelerometer," The Journal of Korean Society Of Precision Engineering, pp. 922-923, May 2015.
  5. Reuben Strydom, Saul Thurrowgood, Mandyam V.Srinivasan, "Visual Odometry: Autonomous UAV Navigation using Optic Flow and Stereo," Proceedings of Australian Conference on Robotics and Automation, pp. 2-4, Dec. 2014.
  6. Jaime Duque Domingo, Carlos Cerrada, Enrique Valero, and Jose A. Cerrada, "Locating Multiple Camera Sensor and Wireless Access Points for a Generalized Indoor Positioning System," The Thirteenth International Conference on Wireless and Mobile Communications, pp. 51-56, July 2017.
  7. Laura Ruotsalainen, Heidi Kuusniemi, Ruizhi Chen, “Visual-aided Two-dimensional Pedestrian Indoor Navigation with a Smartphone,” Journal of Global Positioning Systems, Vol. 10, No. 1, pp. 11-18, 2011. https://doi.org/10.5081/jgps.10.1.11
  8. B.K.P Horn and B.G. Schunck, "Determining Optical Flow," Artificial Intelligent, Vol. 17, pp. 185-203, 1981. https://doi.org/10.1016/0004-3702(81)90024-2
  9. B. Lucas and T. Kanade, "An Iterative Image Registration Technique with an Application to Stereo Vision," International Joint Conference on Artificial Intelligence, pp. 674-679, 1981.
  10. Jae Kwang Lee and Chang Joon Park, " Algorithm for Arbitrary Point Tracking using Pyramidal Optical Flow," The Journal of Korea Multimedia Society, Vol. 10 No. 11 pp. 1407-1416, Nov. 2007.