Indoor Multi-Floor Localization Based on Location Calibration Combined with Magnetic Maps and Deep Learning Models

Jin-Woo Kim♦ and Yoan Shin°

Abstract

Abstract: In this paper, we propose a method to address the issues in smartphone-based pedestrian dead reckoning (PDR) by combining magnetic maps and deep learning models to calibrate the current location using calibration nodes when floor transitions are detected, thereby improving localization accuracy. In addition, we verified the localization performance of the proposed method by connecting the server and smartphone via socket communication, allowing real-time localization tracking.

Keywords: Pedestrian dead reckoning , Smartphone-based multi-floor indoor localization, , Deep learning , Magnetic field map , Real-time , location tracking

Ⅰ. 서 론

최근 스마트폰을 이용한 실내 측위 (Indoor Localization) 기술이 활발히 연구되고 있다. 실외 측위에서는 GPS (Global Positioning System) 신호를 사용하지만, 실내에서는 GPS 신호가 제대로 수신되지 않는 경우가 많아 정확한 위치를 파악하기 어렵다. 따라서, 실내 측위에서 외부 자원을 활용하지 않고 스마트폰 내부의 관성 측정 장치 (Inertial Measurement Unit; IMU) 센서만을 사용하는 고도화된 보행자 관성 항법 (Pedestrian Dead Reckoning; PDR) 기법이 요구된다[1]. PDR 기법은 가속계 (Accelerometer) 센서를 활용하여 사용자의 보폭을 측정하고, 가속계와 지자기 (Magnetometer) 센서를 융합하여 활용하거나, 또는 자이로스코프 (Gyroscope) 센서를 활용해서 방향을 측정하여 이에 따라 이전 위치에서 변화된 현재 위치를 추정한다[2]. 이 기법에서는 이동 거리가 길어짐에 따라 자이로스코프 센서의 드리프트 (Drift) 현상이 발생하는데, 이는 자이로스코프 각속도 측정값을 적분할 때 발생하는 누적오차로서, 실내 측위 성능을 감소시키는 요인이다. 다층 측위에서 PDR의 드리프트 문제 해결을 위해 필터를 적용하여 방향 추정에서의 잡음을 제거하는 방법과 보정 노드 (Calibration Node; CN)를 가상적으로 설정해 경로를 보정하는 방법[3,4] 등 다양한 연구가 진행되고 있다.

본 논문에서는 스마트폰 기반 PDR 기법의 문제점을 해결하기 위해, 층 이동 수단 (계단, 엘리베이터 등) 근처에서 미리 지자기 센서값을 수집하고, 딥러닝 (Deep Learning) 모델을 통해 층 이동을 감지하여, 미리 수집된 자기장 맵과의 결합을 통해 경로를 보정함으로써, PDR 기법에서 발생하는 자이로스코프의 드리프트 문제를 해결한다. 이를 통해 외부 자원을 활용하지 않고 스마트폰 센서만을 사용하는 다층 실내 측위 방법을 제시한다. 또한, 소켓 통신을 사용하여 서버와 스마트폰을 연결하여 실시간으로 현재 위치를 스마트폰 화면으로 확인하였으며, 이를 통해 실시간으로 위치 추정 정확성을 검증하였다.

Ⅱ. 자기장 맵과 딥러닝 모델 기반 측위 방법

다층 실내 측위에서 층을 구분하는 것은 일반적으로 스마트폰 내부 기압계 (Barometer) 센서를 사용한다[5,6]. 기압계 센서는 사용자 현재 위치의 대기압을 측정한다. 따라서 사용자가 계단이나 엘리베이터를 통해 층을 이동할 때 기압계 센서값의 변화를 이용하여 현재 층을 파악할수 있다. 기압계 센서는 대기압을 측정하므로 날씨에 의해 같은 층에서도 날마다 다른 값이 측정된다. 그러나 각 층마다의 고도 “차이”는 어느 정도 일정하기 때문에, 기압 맵을 설정하여 기압값 자체가 아니라 기압의 “변화량”으로 층을 감지하는 것이 유리하다.

이러한 층 구분 방식의 구현을 위해, 먼저 전형적인 대형 사무용 건물인 숭실대학교 형남공학관에서 평지, 계단을 이용한 층간 이동을 통해 훈련 데이터를 수집하였다. 이 때 기압 데이터는 스텝이 발생할 경우에만 수집되며, 수집한 데이터에서 각 데이터의 평균값을 빼서 전처리 후, 슬라이딩 윈도우 (Sliding Window) 기법을 통해 다시 한번 처리하여 딥러닝 모델이 시계열 데이터인 기압계 센서 데이터를 효과적으로 학습할 수 있게 하였다. 여기서 윈도우 크기는 15로 설정하였고, 각 기압계 데이터의 레이블로 클래스가 0, 1, 2인 분류 문제로 접근하였다. 여기서, 각 클래스는 0일 때 Flat 상태, 1일 때 Down 상태, 2일 때 Up 상태를 나타낸다.

데이터 학습은 Seq2Seq[7] 딥러닝 모델을 사용하였다. 모델은 15개의 기압 차이를 입력값으로 하여 사용자의 현재 행동을 예측한다. 사용자가 앱을 시작하고 종료할 때까지 스텝마다의 기압 차는 길이가 15인 큐(Queue)에 저장된다. 기압 변화량이 적다면 Flat 상태로 분류되고, 만약 기압 변화량이 크다면 Up, Down으로 분류된다. 여기서 엘리베이터를 이용하여 층 이동을 했을 때는 임계값을 사용하여 구분한다. 기압계 센서는 mbar 단위로 기압을 나타낸다. 경험적으로 엘리베이터를 이용하여 층 이동을 시도했을 때 한 개 층 이동에서 0.3mbar (약 2.49m)을 임계값으로 설정하였다. 모델이 Up 상태 또는 Down 상태로 예측하였을 때, 현재 스텝의 기압과 이전 스텝의 기압 차이가 0.3mbar 이상의 변화량을 보인다면 사용자가 엘리베이터를 이용하였다고 판단한다. 예측된 모델의 결과는 이후 보정 노드를 매칭할 때 사용된다.

앞서 언급한 스마트폰 기반 PDR 기법은 드리프트 문제로 인해 측위 정확도가 낮아지는 문제가 있는데, 본 논문에서는 층 이동 수단 마다에 설정된 보정 노드를 통해 사용자의 위치를 보정하여 측위 정확성 감소 문제를 해결한다. 본 연구에서 제안된 보정 노드는 참고 문헌 [3,4]에서 고려된 단순한 보정 노드와는 다르게, 보정 노드에 자기장 데이터를 추가하여 보정 노드 집합을 자기장 맵으로 설정하였다. 보정 노드는 자기장 데이터, 방향, 위치, 층 번호에 대한 정보가 저장되어 있다. 그림 1에서는 미리 수집된 자기장 맵을 나타낸다. 사용자가 스마트폰에서 실시간 측위 앱을 시작하고 딥러닝 모델에 의해 층 이동이 감지되면, 해당 층에 있는 자기장 맵의 보정 노드 중 사용자의 지자기 센서값과 자기장 데이터가 가장 유사한 노드를 선택한다. 이 때, 유사도 측정은 유클리디안 거리 계산을 통해 측정한다. 선택된 노드를 기준으로 사용자의 현재 위치를 보정하여, PDR 기법으로 사용자 이동 경로를 추정할 때 발생하는 드리프트 문제를 극복한다. 스마트폰 센서 기반 PDR 기법은 아래 식에 따라 사용자의 현재 위치를 추정한다.

그림(Fig.) 1.
각 층 마다의 보정 노드 (Calibration nodes on each floor)

(1)
[TeX:] $$P_k=P_{k-1}+\lambda_k \cdot\left(\sin \left(\theta_k\right), \cos \left(\theta_k\right)\right).$$

위 식은 k번째 스텝에서 방향각 [TeX:] $$\theta_k$$와 보폭 [TeX:] $$\lambda_k$$를 사용하여 사용자의 현재 위치 [TeX:] $$P_k$$를 추정함을 나타낸다. 이때 방향각과 보폭 측정은 각각 스마트폰 내부 자이로스 코프와 가속계 센서를 사용한다[8].

Ⅲ. 실험 결과

제안 방식에 대한 실제 측위 정확성을 확인하기 위해, 본 논문에서는 소켓 통신을 활용하여 서버와 스마트폰 간의 데이터를 실시간으로 주고받는 방식을 사용하였다[9]. 웹소켓 서버는 Python의 asyncio와 websockets 라이브러리를 사용하여 구현하였으며, 서버는 클라이언트인 스마트폰으로부터 받은 데이터를 처리하여 위치를 추정하고 그 결과를 스마트폰으로 전송한다. 이를 통해 현재 위치를 지속적으로 업데이트하고, 스마트폰 화면을 통해 서버로부터 전달받은 시각화된 현재 위치를 1초 이내의 간격으로 확인하여, 사용자의 측위 정확성을 실시간으로 검증하였다.

실험은 숭실대학교 형남공학관의 2층, 3층, 7층을 활용하였는데, 3층과 7층은 복도 형태의 구조이지만 2층은 넓은 강당 형태의 구조이다. 그림 2에서는 형남공학관 7층→3층→2층 순서대로 스마트폰 화면이 하늘을 향하게 들고 이동한 경로를 도시하였다. 매칭된 보정 노드는 주황색으로 표시하였으며, S1은 7층에서 계단을 이용하여 내려가는 행동을 딥러닝 모델이 감지하여 매칭되었고, S2는 계단을 이용하여 3층으로 진입하는 행동을 감지하여 매칭되었다. 또한 E1은 3층에서 엘리베이터를 이용하여 2층으로 진입할 때 매칭된 것을 확인할 수 있다. 실제 경로는 초록색 경로와 같이 이동하였으며, 제안 방식을 통한 측위 결과는 파란색 경로로 나타내었다. 제안된 보정 노드를 통해 층 이동이 정확히 분간되었고, 이를 통해 실제 경로와 유사하게 안정되고 높은 측위 성능을 보이는 것을 확인하였다.

그림(Fig.) 2.
실시간 다층 측위 실험 결과 (Results of real-time multi-floor localization experiments)

Ⅳ. 결 론

본 논문에서는 스마트폰을 이용한 PDR 기법에서 발생하는 드리프트 문제를 해결하기 위해, 스마트폰 내부 기압계 센서 데이터로 학습을 진행한 딥러닝 모델과 사전 구성된 자기장 맵을 결합하여 사용자 위치 보정을 통한 향상된 성능의 실내 다층 측위 기법을 제안하였다. 실험 결과를 통해 실제 사용자 경로와 제안 방식을 비교하였을 때 제안 방식이 높은 정확성을 보이는 것을 확인하였으며, 기존의 단순 보정 노드와 달리 자기장 데이터를 추가하여 외부 자원이 없는 상황에서 스마트폰 센서만을 사용한 측위 가능성을 확인하였다. 향후에는 자기장 맵의 활용도를 높여 보정 노드 이외에도, PDR 기법과의 결합 방법에 대한 연구를 진행할 예정이다.

References

  • 1 K.-S. Kim and Y. Shin, "Deep learning-based PDR scheme that fuses smartphone sensors and GPS location changes," IEEE Access, vol. 9, no. 1, pp. 158616-158631, Dec. 2021.custom:[[[-]]]
  • 2 T. D. Vy, T. L. N. Nguyen, and Y. Shin, "Pedestrian indoor localization and tracking using hybrid Wi-Fi/PDR for iPhones," in Proc. IEEE VTC-Spring, pp. 1-7, Helsinki, Finland, Apr. 2021. 그림 2. 실시간다층측위실험결과 Fig.2. Results of real-time multi-floor localization experiments 1357custom:[[[-]]]
  • 3 C. Lin and Y. Shin, "Deep learning-based direction estimation scheme using smartphone inertial sensors," J. KICS, vol. 47, no. 6, pp. 898-907, Jun. 2022.custom:[[[-]]]
  • 4 C. Lin and Y. Shin, "Multi-floor indoor localization scheme using a Seq2Seq-based floor detection and particle filter with clustering," IEEE Access, vol. 11, no. 1, pp. 66094-66112, Jun. 2023.custom:[[[-]]]
  • 5 C. Yi, W. Choi, Y. Jeon, and L. Liu, "Pressure-pair-based floor localization system using barometric sensors on smartphones," Sensors, vol. 19, no. 16, pp. 3622-3640, Aug. 2019.custom:[[[-]]]
  • 6 H. Ye, T. Gu, X. Tao, and J. Lu, "B-Loc: Scalable floor localization using barometer on smartphone," in Proc. IEEE MASS2014, pp. 127-135, Philadelphia, USA, Jan. 2014.custom:[[[-]]]
  • 7 I. Sutskever, O. Vinyals, and Q. V. Le, "Sequence to sequence learning with neural networks," in Proc. NeurIPS 2014, pp. 3104-3112, Montreal, Canada, Dec. 2014.custom:[[[-]]]
  • 8 J. W. Lee, Android Sensor Story, Chapters 4-6, Freelec, 2014.custom:[[[-]]]
  • 9 S. Guan, W. Hu, and H. Zhou, "Real-time data transmission method based on websocket protocol for networked control system laboratory," in Proc. CCC 2019, pp. 5339-5344, Guangzhou, China, Jul. 2019.custom:[[[-]]]
각 층 마다의 보정 노드 (Calibration nodes on each floor)
실시간 다층 측위 실험 결과 (Results of real-time multi-floor localization experiments)