23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
안녕하세요! AI Fellowship 6기에 참여하고 있는 슼폰지 팀입니다.
저희는 딥러닝을 기반으로 PDR(Pedestrian Dead Reckoning) 시스템의 정확도를 향상시키는 방법을 연구하고 있습니다.
이번 포스팅에서는 중간 발표 내용을 공유하고, 피드백 세션에서 논의된 사항을 바탕으로 향후 연구 방향을 제시하겠습니다.
저희는 프로젝트를 여섯 단계로 나누어 진행 중입니다.
현재는 세 번째 단계인 데이터 전처리 및 모델 테스트까지 마치고, 네 번째 단계인 모델 학습 및 최적화를 진행하고 있습니다.
PDR(Pedestrian Dead Reckoning)은 스마트폰의 IMU(Inertial Measurement Unit) 센서를 사용하여 사용자의 위치를 추정하는 기술입니다.
최근 실내 환경에서의 위치 기반 서비스에 대한 수요가 증가하면서, PDR 시스템의 정확도를 향상시키는 연구도 활발히 진행되고 있습니다.
우리도 일상생활에서 위치기반 시스템을 쓰고 있는데요, 이 때 GPS를 쓰는 것을 많이 보셨을 것 같습니다.
GPS는 실외에서 효과적인 위치 추정 방법이지만, 실내에서는 오차가 크거나 신호 수신이 불가능한 한계가 있습니다.
이 때문에 실내 위치 추정에서는 UWB, BLE, Wi-Fi와 같은 다른 기술들이 대안으로 사용되고 있습니다.
하지만 이들 역시 인프라 구축의 한계나 간섭에 취약한 면이 있고, 정확도 문제 등 각각 명확한 단점을 가지고 있습니다.
PDR은 이에 비해 인프라 구축이 필요하지 않고, 비용이 낮으며 배터리 소모가 적다는 장점이 있습니다.
하지만 오차가 누적되는 특성으로 인해 정확도를 높이는 것이 중요한 과제입니다.
초기 PDR 연구는 Strapdown Inertial Navigation과 같은 방법으로 시작되었습니다.
이 방법은 IMU 센서를 신발에 부착해 높은 정확도를 제공하지만, 비용과 번거로움으로 인해 확장성이 낮았습니다.
따라서 보다 편리하게 활용할 수 있는 방법이 연구되다가, 스마트폰 내장 센서를 사용하는 Step and Heading System이 고안되었습니다.
Step and Heading 은 사람이 어떤 자세로 스마트폰 들고 있는지 먼저 분류한 다음에, 자세마다 다른 모델을 사용해서 보행자의 보폭과 방향을 예측하는 방법입니다.
하지만 이 방법은 난이도가 높고 예측력이 떨어져 실용성이 낮습니다.
최근에는 딥러닝을 활용한 PDR 연구가 활발히 진행되고 있습니다.
딥러닝 기반 PDR 모델들은 충분한 양질의 데이터를 학습할 경우 높은 성능을 보여주고 있습니다.
Robust한 모델을 구축하기 위해서는 데이터셋의 퀄리티가 굉장히 중요합니다. 이를 위해 저희는 기존의 연구에서 사용된 다양한 데이터셋을 조사했습니다.
그러나 대부분의 기존 데이터셋은 수집된 데이터의 양이 충분하지 않거나, 다양한 포즈를 반영하지 못하는 등의 한계가 있었습니다.
특히, 가장 유용하다고 평가되는 RoNIN 데이터셋조차도 50%만 공개되어 있어 충분한 학습에 어려움이 따릅니다.
결정적으로 상업적으로 사용할 수 있는 데이터셋은 없는 실정입니다.
따라서 저희 팀은 기존 데이터셋을 활용하는 대신, 직접 데이터를 수집하여 고품질의 데이터셋을 구축하는 데 주력하고 있습니다.
저희 팀이 주목하고 있는 모델은 RoNIN과 CTIN입니다.
RoNIN은 시퀀스를 윈도우 단위로 레즈넷 모델에 넣어서 그 순간의 속도를 계산하는 단순한 구조의 모델이지만, 충분한 데이터셋과 특유의 Normalization 방법으로 강력한 성능을 보여줍니다.
그러나 너무 단순하기 때문에 각 IMU 샘플 시퀀스들간의 spatial 한 knowledge를 학습하기에는 한계가 있습니다.
반면에 CTIN은 ResNet 구조에서 convolution 레이어를 셀프 어텐션으로 바꾸어 더욱 높은 학습 성능을 보이고 있습니다.
저희는 이 두 모델의 장점을 결합할 수 있는 최적의 PDR 모델을 개발하고 있습니다.
PDR(Pedestrian Dead Reckoning) 연구에서 데이터셋 구축은 연구의 시작이자 가장 큰 도전 과제입니다.
먼저, 기존 RONIN, RIDI 와 같은 데이터셋은 상업적으로 사용이 불가능하기 때문에, 저희는 처음부터 데이터를 직접 수집하고 있습니다.
또한 데이터 수집 시스템 구축 자체에 어려운 점이 많습니다. 기존 연구들이 성공적이지 못했던 주된 이유도 바로 이 문제 때문입니다.
우선 스마트폰 센서 데이터를 연구에 활용할 수 있는 형태로 수집할 수 있는 특화된 앱 시스템이 필요합니다.
이러한 시스템을 구축하더라도, GT(Ground Truth) 정보를 얻는 것이 여전히 어려운 과제입니다.
실내 환경에서 보행자의 정확한 경로를 파악하는 것이 어렵기 때문에 저희가 PDR 모델을 개발하고 있다고 소개드렸는데요,
하지만 모델 학습을 위해서는 이 정확한 GT 정보가 필수적이게 됩니다.
마지막으로 데이터를 수집하려면 직접 걸으며 기록해야 하기 때문에 물리적인 어려움이 따릅니다.
저희의 수집 시스템은 안드로이드 기기의 내장된 각속도, 가속도, 중력 센서를 사용하며, 100HZ로 기록합니다.
또한 데이터셋 퀄리티를 결정하는 가장 큰 요인이 GT인데요, 저희는 정확도 높은 GT를 구축하기 위해서 컴퓨터비전 기술을 이용하였습니다.
구체적으로는 VIO (Visual Inertial Odometry) 기술을 제공하는 AR Core 라이브러리를 이용하였습니다.
이는 카메라로부터 들어오는 정보를 바탕으로 상대위치를 계산하는 방식입니다.
아래 그림을 보면에서 저희가 데이터를 수집하는 모습과,
GT 데이터를 위해 카메라가 보행자가 걷는 방향의 이미지 정보를 받아올 수 있도록 휴대폰을 신체에 부착하여 수집하는 모습을 확인하실 수 있습니다.
또한 아래 사진에서처럼 휴대폰을 가방 속에 넣어두거나, 바지 주머니에 넣어두는 등의 포즈 총 11가지를 가정하여 수집하였습니다.
장소는 일상생활에서 방문하기 쉬운 학교, 도서관, 백화점, 공원에서 주로 수집하고 있습니다.
이렇게 수집한 데이터셋들은 모델 학습에 이용하기 위해 전처리(Preprocessing)를 거쳤습니다.
먼저 왼쪽 그림의 경우 189 hz로 수집된 GT 휴대폰의 센서 값을 로닌의 모델에 맞추어 200HZ로 interpolation 한 것입니다.
또한 100 헤르츠에 맞추어 수집되는 다른 IMU 센서값들도 200HZ로 interpolation 하였습니다. 추후 다른 모델에 맞추어 50HZ 등 다른 값으로도 맞출 수 있습니다.
오른쪽 그림은 time paring 을 한 결과입니다.
하나의 스마트폰 기기에서도 각각의 센서가 센싱 하는 시각이 미세하게 다릅니다. 우리의 기준으로는 미세한 차이임에도, 100헤르츠로 수집되는 센서의 세계에서는 매우 큰 차이입니다.
따라서 타임을 싱크하여 정확히 같은 시각에서 인터폴레이션된 센서값들을 사용하였습니다.
이번 프로젝트에서 저희의 목표 보행 데이터셋 수집 시간은 40시간입니다.
지금까지 수집한 raw 데이터는 34h이며, 그 중 전처리에 성공한 After preprocessing 데이터 11h 내외입니다.
즉, 많은 데이터가 전처리 과정에서 실패하여, 수집 시간 대비 학습에 사용 가능한 데이터가 33퍼센트밖에 되지 않았습니다.
각 스마트폰에서 100 HZ로 수집하는 각 센서 데이터 값이 누락 및 지연되는 현상이 발생한 것인데요,
이에 대해서 센서 자체의 문제 및 기기의 발열이 원인이라고 추론하였습니다.
따라서 내장 센서가 불량인 해당 스마트폰들을 교체하고, 연속 수집시 스마트폰 발열을 주의 하는 등의 피드백을 거쳤습니다.
결과적으로 피드백 이후엔 56퍼센트까지 끌어올릴 수 있었습니다.
수집한 데이터로 RoNIN모델에 학습한 결과 그림입니다.
주황색 선이 AR Core로 구한 GT를 나타내는 것이고, 파란색 선은 추론된 값입니다
해당 장소의 실내 도면과 GT를 비교해보았을 때, GT가 적절하게 맞고 있다는 것을 알 수 있고, 인퍼런스된 값은 방향이 틀어져 있는 상태를 알 수 있습니다.
이는 학습이 다소 부족한 면을 보여주지만,
어느정도 궤적의 형태가 유사하다는 점을 확인하여 모델 학습이 가능한 상태임을 확인할 수 있습니다.
기존 PDR 연구에서 사용하는 ATE(Absolute Trajectory Error)와 RTE(Relative Trajectory Error)를 사용하여 현재까지의 데이터셋을 평가한 결과는 다음과 같습니다.
즉 다른 데이터셋에서 평가한 것보다 오차가 큰 양상을 보이고 있습니다.
이는 학습 데이터가 다소 부족하기 때문이라고 보고 있으며, 학습 데이터를 늘려가면서 에러가 줄어드는 추이를 살펴 볼 예정입니다.
다만 RoNIN 데이터셋도 기존에 가장 긴 수집 시간과 정밀한 수집 시스템을 가지고 있음에도
RIDI, OXIOD 보다 오차율이 크게 나타나는 것을 보실 수 있는데요,
RoNIN의 경우 다른 데이터셋보다 더욱 자연스럽고 자유로운 모션을 사용했고, 다양한 패턴과 건물에서 데이터를 수집한 측면이 있습니다.
저희 또한 기존 데이터셋보다 난이도가 높은 데이터셋을 구축하고자 하고 있습니다.
아래 그림에 저희 데이터셋과 기존 데이터셋의 궤적 차이를 나타내 보았습니다.
다른 데이터셋에 비해 왼쪽의 저희 데이터셋은 걷는 패턴이나 장소가 다양하게 나타나는 것을 살펴볼 수 있습니다.
현재의 시스템을 기반으로 After Preprocessing 40시간을 목표로 데이터 수집을 추가로 진행할 예정입니다.
또한 RoNIN과 CTIN 모델의 장점을 모두 가져가는 모델을 개발하고, 정확도를 향상시키기 위해 전처리와 센서 보정에서도 여러 방법을 시도하며 성능 최적화를 목표로 달려가겠습니다.
이후 실험 및 평가 후 최종 모델 통합과 실용화까지 이루어내고자 합니다.
중간 발표를 통해 AI Fellowship 멘토님들과 다른 팀의 피드백을 받았고, 연구 방향에 대해 깊이 있는 고민을 할 수 있었습니다.
받은 피드백과 그에 따른 반영 계획을 아래와 같이 정리했습니다.
지도 정보를 활용한 보정 (Map matching)
오차가 누적되는 것을 해소하기 위해 기존의 지도 정보를 활용하여 보정하면 좋을 것이라는 의견이 있었습니다.
예를 들어, 기존의 차량 네비게이션에서 도로를 벗어나면 다시 도로로 복귀시키는 것처럼, 실제 이동 가능한 영역과 불가능한 영역의 정보를 활용해 보정하는 방법입니다
이러한 Map matching 방법은 저희가 현재 진행하고 있는 PDR 모델 고도화와는 별개로, PDR과 결합할 수 있는 방법이라고 할 수 있습니다.
따라서 모델 고도화를 계속 진행하면서 피드백 주신 보정 방법에 대해서도 병렬적으로 진행할 계획입니다.
Noise 를 추가한 Augmentation 방법
불완전한 인풋이 들어와도 정확하게 예측할 수 있도록 Noise 를 활용한 데이터 Augmentation 을 시도할 수 있을 것이라는 피드백을 받았습니다.
센서 자체의 오차가 항상 존재하기 때문에 노이즈를 추가하여 보정하면 더욱 robust 한 모델을 만들 수 있을 것으로 기대됩니다.
따라서 이 방법도 도입하여 결과를 비교해 볼 예정입니다.
또한 스마트폰 센서가 오차가 많은 점을 고려해서, 이를 극복할 수 있는 방법을 포괄적으로 고민해 보면 좋을 것 같다는 의견이 있었습니다.
저희도 이 점에 적극 공감하여 피드백 주신 Augmentation 방법과 더불어 필터링, 정규화(Normalization) 등의 방법도 시도할 예정입니다
추가 데이터 확보
현재 확보하고 있는 데이터 이외에도 기존 연구 데이터를 활용하거나 추가 센서 데이터를 확보하여 모델 성능을 개선할 수 있는 가능성을 제시해 주셨습니다.
이에 대해서는 현재 상업적으로 사용 가능한 기존 데이터셋이 부재하고, 추가 센서 데이터를 확보하기 어려운 상황입니다.
대신 남은 기간동안 기존 모델을 고도화하고 딥러닝 모델의 성능을 극대화하는 방향으로 연구를 진행하고자 합니다.
일반적인 보행자 상황 데이터 추가 수집
일반적인 보행자의 움직임을 고려한 데이터 수집의 중요성에 대한 의견이 있었습니다.
저희도 이에 공감하며, 다양한 포즈와 장소, 걷는 패턴을 반영하기 위해 노력하고 있습니다.
이를 통해 일반적인 보행자 상황을 보다 잘 모델링할 수 있는 데이터셋을 구축하려고 합니다.
남은 기간에는 기존보다 더욱 자연스러운 상황을 반영한 데이터 수집도 추가로 진행할 계획입니다.
이외에도 생소한 분야인 만큼 발표 시 더욱 명확하고 적절한 설명이 필요하다는 피드백이 있었습니다.
최종 발표에서는 더 좋은 발표와 결과를 공유하도록 하겠습니다! 😊
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.