23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
안녕하세요!
SKT AI Fellowship 6기 슼폰지 팀입니다.
저희는 스마트폰 센서를 활용한 보행자 위치 추정(PDR: Pedestrian Dead Reckoning) AI 모델 개발을 주제로 약 5개월간 연구를 진행했습니다.
이전 포스팅에서 (1)연구 소개 (2)연구과정을 공유했는데요,
마지막 포스팅인 만큼 이번에는 저희 연구를 간략하게 다시 소개드리고, 최종 수행 과정과 결과를 공유하겠습니다.
현대 사회에서 위치 기반 애플리케이션은 우리의 일상생활에 깊숙히 자리 잡고 있습니다.
길찾기 앱부터 자전거 공유 서비스, 운동 기록 앱, 그리고 위치 기반 게임까지 GPS를 활용한 실시간 위치 추적 기술은 다양한 분야에서 사용되고 있습니다.
이러한 기술은 우리의 삶을 더욱 편리하고 풍부하게 만들어주고 있습니다.
하지만 복잡한 실내 환경에서 정확한 위치를 파악하는 것은 여전히 쉽지 않은 문제입니다.
예를 들어, 대형 쇼핑몰이나 복잡한 건물 내에서 길을 잃어본 경험이 있으신가요?
실내에서는 GPS 신호가 약하거나 수신이 불가능하여 위치 추적에 어려움이 있습니다.
위치 추정에 가장 널리 쓰이는 GPS가 이렇게 건물 내부나 지하에서는 신호가 약해지거나 수신이 불가능하기 때문에,
실내 위치 추정에서는 UWB(Ultra-Wideband), BLE(Bluetooth Low Energy), Wi-Fi 등 다양한 기술이 대안으로 사용되고 있습니다.
그러나 이들 기술은 모두 인프라 구축 비용이 높거나 정확도가 낮은 등의 한계점을 가지고 있습니다.
PDR(Pedestrian Dead Reckoning)은 스마트폰 등의 기기에 달려있는 가속도계와 자이로스코프 등의 IMU(Inertial Measurement Unit) 센서만을 사용하여 보행자의 이동 경로를 추정하는 기술입니다.
추가적인 인프라 구축이 필요 없으며, 배터리 소모도 적다는 장점을 가지고 있습니다.
하지만 PDR은 시간이 지남에 따라 오차가 누적되어 절대 오차가 커지는 문제가 있습니다.
따라서 이러한 누적 오차를 줄여 정확도를 높이는 것이 중요한 과제입니다.
저희 팀은 다음과 같은 프로세스로 연구를 진행했습니다.
지난 포스팅 이후로 모델 설계, 실험 및 학습, 모델 평가를 진행했고, 데이터 수집 또한 계속 진행했습니다.
문헌 조사 과정에서 정리한 PDR에 대한 선행 연구도 다시 한번 소개드리겠습니다.
초기에는 Strapdown Inertial Navigation과 같은 방법으로 시작되었습니다.
이 방법은 IMU 센서를 신발에 부착하여 높은 정확도를 제공하지만, 비용과 장착해야한다는 번거로움으로 인해 확장성이 낮았습니다.
이후에는 스마트폰 내장 센서를 사용하는 Step and Heading System이 고안되었습니다. 이 시스템은 사람이 스마트폰을 어떤 자세로 들고 있는지를 먼저 분류한 후,
각 자세에 맞는 모델을 사용하여 보행자의 보폭과 방향을 예측하는 방식입니다.
그러나 이 방법은 난이도가 높고 예측력이 떨어져 실용성이 낮다는 한계가 있습니다.
그래서 최근에는 딥러닝을 활용한 PDR 연구가 활발히 진행되고 있습니다.
딥러닝 기반 PDR 모델들은 충분한 양질의 데이터를 학습할 경우 높은 성능을 보여주고 있습니다
일반적인 상황에서 Robust하게 작동되는 모델을 구축하기 위해서는 데이터셋의 퀄리티가 매우 중요합니다.
따라서 기존 연구에서 사용된 다양한 데이터셋을 조사했지만, 기존 데이터셋은 모두 수집된 데이터의 양이 충분하지 않거나 다양한 포즈를 반영하지 못하는 한계가 있었습니다.
특히, 가장 유용하다고 평가되는 RoNIN 데이터셋조차도 50%만 공개되어있으며 상업적으로는 사용할 수 없게 라이센스가 걸려있는 상황입니다.
따라서 저희 팀은 기존 데이터셋을 활용하는 대신, 직접 데이터를 수집하여 고품질의 데이터셋을 구축하는 데 주력하여 본 프로젝트를 진행하였습니다.
저희는 연구 기간 동안 데이터셋을 직접 수집하여 구축했습니다.
PDR 연구에서 데이터셋 구축은 연구의 시작이자 가장 큰 도전 과제입니다.
기존의 RONIN, RIDI와 같은 데이터셋은 상업적으로 사용할 수 없거나 데이터의 양과 다양성에 한계가 있었습니다.
따라서 직접 수집하는 것이 필요한데, 이를 위해서 수집 프로세스 설계와 앱이 필요합니다.
실내에서의 정확한 위치 추정이 어렵기 때문에 PDR 연구가 필요한 것인 만큼, Ground Truth 를 기록하는 것 자체도 어려운 일입니다.
물론 직접 걸어야 하기 때문에 그에 따른 시간과 노력도 크게 들어갑니다.
저희는 두 대의 스마트폰을 사용하여 데이터를 수집했습니다.
하나는 로깅 폰으로 센서 데이터를 기록하며, 다른 하나는 그라운드 트루스(GT) 폰으로 정확한 위치 데이터를 수집합니다.
로깅 폰에서는 가속도 센서와 자이로 센서를 통해 사용자의 움직임과 회전 정보를 수집했으며, 100HZ 주기로 수집하였습니다.
모델 학습을 위해서는 보행자의 실제 이동 경로인 Ground Truth (GT) 데이터가 필요합니다.
저희는 Visual Inertial Odometry(VIO) 기술을 활용하여 카메라와 IMU 데이터를 결합해 보행자의 정확한 위치 정보를 파악하는 방식을 채택했습니다.
캘리브레이션 과정에서는 GT 폰과 센서 폰이 동일한 좌표계에서 출발하도록 설정합니다.
스마트폰을 들고 다니는 과정에서 계속 센서의 축이 회전하게 되므로 하나의 Global 축으로 맞추어 주는 것이 필요한데요,
이 때 시작 시점에 캘리브레이션을 진행해서 GT 폰과 센서 폰 간의 축도 통일해주었습니다.
다양한 환경에서 다양한 보행 패턴을 수집했습니다.
3명의 팀원이 모두 수집에 참여하여 8가지의 다양한 휴대 포즈(백팩, 손에 들고, 앞주머니 등)로 보행 데이터를 수집하고, 학교, 도서관, 공원, 백화점 등 6곳에서 데이터를 수집했습니다.
저희가 총 수집한 보행시간은 54시간이며, 프리프로세싱을 거친 후에 모델 학습에 이용가능한 데이터는 24시간이었습니다.
프리프로세싱 실패 원인을 분석해본 결과 스마트폰에서 100 HZ로 수집하는 각 센서 데이터 값이 누락 및 지연되는 현상이 발생하였습니다.
이 현상의 이유는 내장 센서 자체의 문제 및 기기의 발열이였고, 내장 센서가 불량인 해당 스마트폰들을 교체하고, 연속 수집시 스마트폰 발열을 주의 하는 등의 피드백을 거쳤습니다.
따라서 초기의 수집시간 대비 사용 가능 데이터의 비율은 30%정도의 수준이었지만, 피드백 이후엔 86퍼센트까지 끌어올릴 수 있었습니다.
수집된 데이터는 프리프로세싱을 거쳐서 모델 학습에 활용됩니다.
주요 프리프로세싱 2가지 중 Data Interpolation은 수집된 데이터를 모델에 학습 구조에 맞출 수 있도록 주기를 보간하는 것입니다.
저희는 기존의 100Hz로 수집된 센서 데이터를 200Hz로 보간하여 사용했습니다.
다음으로 Timestamp Synchronization 은 센서 데이터의 타이밍 차이를 조정하는 것입니다.
하나의 디바이스 내에서도 각각의 센서가 값을 기록(센싱)하는 시간대가 다르다는 문제점이 존재하는데요,
따라서 모두 같은 타이밍의 센서 값을 사용할 수 있도록 조정하여 TIMESTAMP를 동기화했습니다.
저희는더욱 Robust한 모델을 만들고자 데이터 증강 기법을 적용했습니다.
센서 데이터가 굉장히 빠른 속도로 수집되기 때문에 얼마 단위로 데이터를 뽑아서 사용할 것인지도 설정해야 할 파라미터로 볼 수 있습니다.
이 때 일정한 단위로 데이터를 뽑게 되면 사용하지 못하는 값들이 생깁니다.
따라서 저희는 랜덤 인덱싱(Random Indexing) 방법을 사용하여 데이터를 뽑을 때 설정한 기준 단위에서 랜덤화된 인덱스를 생성하여 각 에폭에서 데이터의 시작점을 다양하게 설정합니다.
이렇게 함으로써 모델이 다양한 데이터 패턴을 학습할 수 있도록 했고, 학습에 도움이 많이 되었습니다.
랜덤 회전(Random Rotation)도 적용하였는데, x-y 평면에서 랜덤하게 회전, 즉 z-axis를 기준으로 랜덤하게 회전하여 데이터를 증강했습니다.
저희가 기존 연구에서 가장 주목하고 있던 RoNIN 모델의 ResNet 버전을 베이스라인으로 설정했습니다.
이 모델은 일정한 길이의 시퀀스를 인풋으로 받아 ResNet을 거친 피쳐로 GT를 예측하는 단순한구조의 모델입니다.
이 때 인풋 길이를 200개로 설정하여 학습하는 것이 가장 성능이 좋았습니다.
즉, 약 1초 정도의 각속도와 가속도 시퀀스를 활용하여 학습시키는 것입니다.
저희는 간단하지만 학습이 잘되는 이 구조를 발전시켜 새로운 모델을 개발하고자 했습니다.
RoNIN 모델은 1초의 데이터만을 기반으로 학습하는데, 시간이 지남에 따라 시퀀스가 계속 쌓이므로 더 과거의 데이터를 활용하는 모델이 필요하다는 아이디어에서 출발했습니다.
저희가 고안한 인코더 기반 모델은 여러 개의 윈도우를 입력으로 받아 더 긴 시간 정보를 활용하여 학습합니다.
이 모델은 오리지널 transformer의 인코더 구조를 기반으로 하며, RoNIN 모델에서 추출한 피쳐 뒤에 연결하여 학습을 진행합니다.
또한, 일반적인 포지셔널 인코딩 대신 가우시안 레인지 인코딩을 사용하여, 노이즈가 많은 센서 데이터를 범위 기반으로 인코딩하여 성능을 향상시켰습니다.
모델의 성능은 절대 궤적 오차(ATE)와 상대 궤적 오차(RTE)를 기준으로 평가했습니다.
ATE는 전체 궤적의 예측값과 실제값 간의 오차를, RTE는 일정한 간격에서의 예측 오차를 측정합니다. 두 지표 모두 값이 작을수록 정확한 위치 추정을 의미합니다.
데이터셋을 수집한 포즈, 시간, 장소 등이 서로 달라 다른 데이터셋과의 정확한 비교는 어렵지만,
저희 데이터셋은 기존에 가장 우수하다고 평가되는 RoNIN과 비슷한 RTE를 보임을 확인했습니다.
또한 모델의 경우,
저희가 고안한 인코더 모델이 기존 RoNIN보다 ATE는 약간 떨어졌으나 RTE에서는 조금 더 나은 성능을 보였습니다.
이 결과에 대해서 직접 예측 경로를 그림으로 보면서 분석해보겠습니다.
먼저 그림을 보는 방법을 소개드리겠습니다.
왼쪽 그림을 보시면 예측된 궤적은 파란색으로, GT 궤적은 주황색으로 표시되어 있습니다.
여기에 오른쪽 그림처럼 실제 수집장소의 지도를 겹쳐보면, 주황색 GT가 잘 들어맞게 측정된 모습도 보실 수 있습니다.
우선 기존 데이터셋보다 더 다양한 패턴으로 데이터를 수집했음을 확인할 수 있습니다.
궤적을 그려 확인해 본 결과, 위와 같은 케이스들을 확인할 수 있었습니다.
그림에서 보듯이 인코더 기반 모델이 RoNIN 모델보다 궤적이 더욱 정확하게 맞아떨어졌으며, RTE와 ATE도 더 낮았습니다.
핸드백에 넣고 걷는 까다로운 포즈에서도 오차가 적게 나타났습니다.
특히 직선 보행, 90도 회전, 180도 회전과 같이 일정한 패턴이 있는 경로에서 저희 모델의 성능이 우수하게 나타났습니다.
반면에, 오차가 비슷하거나 더 증가한 사례들은 주로 랜덤하게 걷는 경로에서 많이 발생했습니다.
저희는 다양한 보행 패턴과 환경을 반영한 고품질의 데이터셋을 구축하고, 이를 기반으로 딥러닝 기반 PDR 모델을 성공적으로 학습하였습니다.
높은 정확도의 PDR 모델에 지도 정보를 결합하여 보정하는 방법을 활용하면, 실내 내비게이션이나 실시간 위치 기반 서비스 등 다양한 분야에서 활용 가능성이 높을 것으로 기대됩니다.
데이터 수집부터 모델 개발, 평가까지의 전 과정을 직접 수행함으로써 PDR 기술에 대한 깊은 이해와 경험을 쌓을 수 있었습니다.
어려운 과제였던 만큼, 5개월이라는 길다면 긴 시간이 오히려 짧게 느껴질 정도로 의미 있는 시간이었습니다.
늘 열정적으로 지도해주신 멘토님께 진심으로 감사드리며, 마지막 포스팅을 마치겠습니다. 😊
슼폰지 팀이었습니다. 감사합니다!
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.