KR101467318B1 - 위치정보 보정방법 - Google Patents
위치정보 보정방법 Download PDFInfo
- Publication number
- KR101467318B1 KR101467318B1 KR1020130072364A KR20130072364A KR101467318B1 KR 101467318 B1 KR101467318 B1 KR 101467318B1 KR 1020130072364 A KR1020130072364 A KR 1020130072364A KR 20130072364 A KR20130072364 A KR 20130072364A KR 101467318 B1 KR101467318 B1 KR 101467318B1
- Authority
- KR
- South Korea
- Prior art keywords
- value
- tuple
- speed
- error
- algorithm
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/023—Services making use of location information using mutual or relative location information between multiple location based services [LBS] targets or of distance thresholds
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/13—Receivers
- G01S19/20—Integrity monitoring, fault detection or fault isolation of space segment
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/03—Cooperating elements; Interaction or communication between different cooperating elements or between cooperating elements and receivers
- G01S19/05—Cooperating elements; Interaction or communication between different cooperating elements or between cooperating elements and receivers providing aiding data
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/38—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
- G01S19/39—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/40—Correcting position, velocity or attitude
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Position Fixing By Use Of Radio Waves (AREA)
Abstract
본 발명은 위치정보 수집장치로부터 수집한 위도, 경도, 및 타임스탬프를 포함하여 이루어지는 튜플에 관한 정보를 처리하는 방법으로서, 현재 튜플에 오류가 존재하는지 여부를 판단하기 위해, 과거 튜플들의 속도의 통계값을 계산하기 위한 유의수준값을 변경하는 단계를 포함한다.
Description
본 발명은 사용자기기에 의해 수집된 위치데이터에 오류가 있는지 여부를 판단하는 방법 및 오류가 존재하는 위치값을 보정하는 기술에 관한 것이다.
사람들은 빈번하게 방문하지 않는 장소를 목적지로서 선택하는 것을 꺼리는 경향이 있다. 이에 관하여, 사람의 방문 목적지를 예측하기 위한 다양한 연구결과가 존재한다. 사람의 이동을 예측하기 위해서는 우선 그 사람에 대한 정확한 위치데이터를 얻어야 한다. 이를 위하여, GPS, GLONASS 및 Galileo와 같은 잘 알려진 위치데이터 시스템을 이용할 수 있다. 또는, 이동통신 기지국 또는 크라우드 소스(crowd source)로서의 WiFi 위치 접근법을 이용한 무선 통신망 포지셔닝을 이용할 수 있다. 이러한 방법들은 이동형 사용자기기에 구현될 수 있다. 그러나 실제로 측정된 위치데이터(raw position data)에는 오류가 존재할 수 있다. 특정 회사에서 제조한 이동형 사용자기기에서 측정한 위치데이터에는 많은 오류가 존재한다. 명백한 오류들을 필터링하고, 나아가 오류라고 판단된 위치를 보정할 필요가 있다.
실험에 따르면, 상용의 스마트폰, 휴대용 GPS 장치, 크라우드 소싱(crowd sourcing)을 위한 WiFi 위치검출장치, 및 셀룰러 네트워크 장치 등으로부터 수집한 실측 위치데이터의 12% 이상에 오류가 나타난다. 따라서 오류가 있는 위치데이터를 필터링 아웃할 필요가 있다. 나아가 단순히 오류가 있는 위치데이터를 보정할 필요가 있다. 또한, 현재 사용하고 있는 위치 데이터들은 환경적 요소 등에 의해 상당수 오류를 포함하고 있다. 이는 현재 위치 데이터를 사용하는 시스템에 상당히 치명적이다. 따라서 이러한 오류를 올바로 찾아내고 교정할 수 있어야 한다. 또한, 위치 획득 시스템의 실시간 오류 확률을 획득함으로써 특정 시간대의 시스템 교란 등을 검출해 낼 수 있어야 한다.
본 발명에서는 이러한 문제점을 해결하기 위한 방법을 제공하고자 한다. 또한 이러한 문제점을 해결하기 위한 방법이 컴퓨팅 능력이 제한된 사용자기기에서 잘 수행될 수 있도록 실시간으로 구현하는 방법을 제공하고자 한다.
상술한 과제를 해결하기 위하여, 본 발명에서는 이동 윈도우 메커니즘을 통한 위치 데이터 오류 검출 및 교정 알고리즘을 제공한다. 이때, 각 위치 데이터 노드는 <위도, 경도, 시간>의 형태로 되어있고, 이 데이터를 바탕으로 노드 간의 속도, 가속도를 도출해내어 이것을 바탕으로 오류를 검출한다. 오류 데이터는 속도가 현재의 경향에서 월등히 벗어났거나, 가속도가 현실세계에서 불가능한 값을 가질 경우를 기준으로 할 수 있다. 이를 위해 이동 윈도우 개념을 사용하여 현재 경향을 분석할 수 있다. 또한 많은 임의 분포 중에 현 경향을 벗어나는 값을 찾는데 유용한 정규 분포를 이용할 수 있다.
또한, 본 발명에서는 이동 평균, 신뢰도, 이동 표준편차를 이용하여 이동 유의 구간을 구성할 때 실제 데이터의 오류 확률을 실시간으로 계산하여 그 결과를 신뢰도 값에 반영, 더 정확한 오류분석을 실시하고, 실시간 단위의 오류율을 측정 가능하도록 한다.
한편, 사용자기기에 의해 실측된 위치데이터에 오류가 있는지 여부를 판단하기 위한 본 발명의 일 양상에 따른 방법은 실측된 속도에 대하여 계산된 평균값(mean, expectation) 및 표준편차(standard deviation)를 이용하는 통계적 기법을 이용할 수 있다. 또한 실측된 가속도의 값을 이용하는 기법을 이용할 수 있다.
그리고 오류가 있다고 판단된 위치값을 보정하기 위한 본 발명의 일 양상에 따른 방법은 실측된 위치값에 대하여 계산된 차이(difference)에 기반을 두는 통계적 기법을 이용할 수 있다.
본 명세서에서 '실측'이라 함은, 본 발명에 따른 위치데이터 필터링방법 및 위치데이터 보정방법을 이용하지 않은 사용자기기로부터 위치, 속도, 가속도에 관한 정보를 직접 획득하는 것을 의미할 수 있다.
사용자기기로부터 실측된 <위도, 경도, 시간>의 형식을 갖는 이동 위치데이터로부터 사용자의 속도 및 가속도의 실측값을 얻을 수 있다. 이하, <위도, 경도, 시간>의 형식을 갖는 이동 위치데이터를 '튜플(tuple)' 또는 '위치데이터 튜플'이라고 지칭할 수 있다.
본 발명에서는 이동윈도우(또는, 슬라이딩 윈도우)에 의하여 선택된 데이터를 이용하여 위치 및 속도의 통계량을 계산하고 이 계산값들을 반복적으로 갱신할 수 있다. 그리고 제어 가능한 파라미터를 이용하여 실측된 위치데이터에 대한 필터링을 수행할 수 있다. 본 발명의 일 실시예에 따른 알고리듬은 간단하기 때문에, 본 발명은 계산능력(computing power)이 작은 이동형 사용자기기에도 적용될 수 있다.
본 발명의 일 실시예에서는 성능의 향상을 위하여 이동윈도우의 크기를 최적화할 수 있다. 또한 오류가 있다고 판단된 속도값 및/또는 위치값을 적당한 추정값으로 교체하기 위해 백트래킹(backtracking) 인터폴레이션 방법이 사용될 수 있다.
속도는 일정 수준 이상으로 급격하게 증가하지 않는다고 볼 수 있기 때문에, 일정 시구간에서의 속도의 평균값과 표준편차를 알 수 있다면, 예컨대 정규분포를 따르는 유의구간(significant interval)을 설정하고 이 유의구간을 넘어가는 속도는 오류값이라고 판단할 수 있다.
본 발명의 일 양상에 따른 위치정보 처리방법은, 위치정보 수집장치로부터 수집한 위도, 경도, 및 타임스탬프를 포함하여 이루어지는 튜플에 관한 정보를 처리한다. 이때, 타임스탬프[i]에서의 현재의 속도(Vi)가, 타임스탬프[i-1]를 포함하는 윈도우에 포함된 과거의 속도들로부터 계산된 통계값보다 큰 경우, 상기 타임스탬프[i]에서의 튜플[i]에 오류가 존재하는 것으로 판단하는 제1 단계; 및 상기 오류가 존재하는 것으로 판단된 경우에는, 상기 튜플[i]에 관한 정보를 추정값으로 대체하는 제2 단계를 포함한다. 이때, 상기 제2 단계는 상기 제1 단계가 수행된 타임스탬프의 바로 다음 타임스탬프에서 수행될 수 있다.
이때, 상기 통계값은, 상기 과거의 속도들로부터 얻은 이동신뢰구간일 수 있다. 구체적으로는, 상기 이동신뢰구간은, 상기 과거의 속도들의 표준편차에 비례하는 제1 값(s × MSDspeed)에 상기 과거의 속도들의 평균값(MAspeed)을 더한 값일 수 있다.
이때, 이 처리방법은, 상기 추정값을 계산하기 이전에, 타임스탬프[i+1]에서의 속도[i+1]가, 타임스탬프[i-n+1] 내지 타임스탬프[i]를 포함하는 윈도우에 포함된 과거의 속도들로부터 계산된 제2 통계값보다 큰 경우, 상기 속도[i+1]에 오류가 존재하는 것으로 판단하는 단계; 및 상기 속도[i+1]에 오류가 존재하는 것으로 판단된 경우에는, 상기 추정하는 단계 이전에 상기 속도[i+1]를 상기 제2 통계값으로 미리 대체하는 단계를 더 포함할 수 있다. 여기서 상기 제2 통계값은 MAspeed + s99.5 × MSDspeed 일 수 있다. 여기서 s99 .5 는 99.5%의 신뢰구간을 의미하는 것이지만, 이와 다른 범위의 신뢰구간을 의미하는 다른 파라미터, 예컨대, 99.9%의 신뢰구간을 의미하는 s99 .9 가 이용될 수도 있다.
또한, 이 처리방법은, 상기 타임스탬프[i-1]에서의 튜플[i-1]에 대한 오류가 발생했는지 여부를 판단하는 단계; 상기 튜플[i-1]에 대한 가속도 오류는 발생하지 않고 상기 튜플[i-1]에 대한 속도 오류가 발생한 경우에, 상술한 통계값을 계산하여, 상기 타임스탬프[i-1]에서의 실측된 속도값이 상술한 통계값보다 작은지 여부를 결정하는 단계; 및 상기 실측된 속도값이 상술한 통계값보다 작은 경우에는, 상기 타임스탬프[i-1]에 대한 속도, 위도, 및 경도를 상기 타임스탬프[i-1]에서 실측된 값으로 대체하는 단계를 더 포함할 수 있다. 이때, 위의 n은 윈도우의 크기이다.
본 발명의 다른 양상에 따른 위치정보 처리방법은, 현재 튜플에 오류가 존재하는지 여부를 판단하기 위해, 과거 튜플들의 속도의 통계값을 계산하기 위한 유의수준값을 변경하는 단계를 포함한다. 이때, 상기 통계값은, 상기 과거 튜플들의 속도로부터 얻은 이동신뢰구간일 수 있다. 또한, 상기 통계값은 상기 과거 튜플들의 속도의 평균값, 상기 과거 튜플들의 속도의 표준편차값, 및 유의수준값에 의해 산출되는 값이며, 상기 유의수준값은 수집된 튜플들의 오류율(error rate)에 의해 조절될 수 있다.
상기 유의수준값을 변경하는 단계는, 수집된 데이터들의 오류율이 상기 유의수준값의 오류 확률보다 낮은 경우, 상기 유의수준값을 증가시키는 단계; 및 상기 오류율이 상기 유의수준값의 오류 확률보다 높은 경우, 상기 유의수준값을 감소시키는 단계를 포함한다. 이때, 현재까지 수집된 데이터의 수가 최소표본크기를 넘을 경우에만 상기 유의수준값이 변경되도록 되어 있다. 이때, 상기 유의수준값이 변경된 경우에는, 상기 최소표본크기 및 다음최소표본크기 중 하나 이상이 상기 변경된 유의수준값에 기초하여 변경되도록 되어 있다.
한편, 본 발명의 다른 양상에 따른 위치정보 추정방법은, 상기 현재 튜플의 속도가 상기 과거 튜플들의 속도로부터 계산된 통계값보다 큰 경우, 상기 현재 튜플에 오류가 존재하는 것으로 판단하는 단계를 더 포함할 수 있다. 이때, 상기 현재 튜플에 오류가 존재하는 것으로 판단된 경우에는, 상기 현재 튜플에 관한 정보를 추정값으로 대체하는 단계; 및 Ecount값을 증가시키는 단계를 더 포함할 수 있다. 이때, 상기 추정값은 상기 현재 튜플을 제외한 두 개 이상의 다른 튜플의 속도를 이용하여 선형 인터폴레이션 된 값일 수 있다.
본 발명에 따르면 오류가 있는 위치데이터를 실시간으로 필터링 아웃할 수 있으며, 오류가 있다고 판단된 위치데이터를 버리는 것이 아니라 보정한 새로운 위치데이터를 이용하여 실시간으로 대체하는 기술을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 속도교정 알고리듬을 설명하기 위한 것이다.
도 2는 본 발명의 다른 실시예에 따라, 최소 자승법으로 속도값을 인터폴레이션하는 속도교정방법을 설명하기 위한 것이다.
도 3 내지 도 5는 본 발명의 일 실시예에 따른 위치튜플 필터링 방법, 인터폴레이션을 이용한 속도 추정방법, 및 속도오류 교정방법을 설명하기 위한 것이다.
도 6은 본 발명의 일 실시예에 따른 속도보정없이 검출한 속도오류를 설명하기 위한 것이다.
도 7은 본 발명의 일 실시예에 따른 인터폴레이션 기법에 따른 속도교정을 적용하여 검출한 속도오류를 설명하기 위한 것이다.
도 8은 상용의 위치검출장치를 이용하여 실측한 속도를 나타낸 것이다.
도 9 및 도 10은 본 발명에 따른 이동유의구간, 가속도 오류 검출, 및 교정속도의 개념을 적용하여 도출한 그래프이다.
도 11은 본 발명의 일 실시예에 따른 알고리듬 4에 따라 가공된 데이터의 예를 나타낸 것이다.
도 12는 본 발명의 또 다른 실시예에 따라 실시한 실험을 통해 얻은 위치데이터의 필터링 결과를 나타낸 그래프이다.
도 2는 본 발명의 다른 실시예에 따라, 최소 자승법으로 속도값을 인터폴레이션하는 속도교정방법을 설명하기 위한 것이다.
도 3 내지 도 5는 본 발명의 일 실시예에 따른 위치튜플 필터링 방법, 인터폴레이션을 이용한 속도 추정방법, 및 속도오류 교정방법을 설명하기 위한 것이다.
도 6은 본 발명의 일 실시예에 따른 속도보정없이 검출한 속도오류를 설명하기 위한 것이다.
도 7은 본 발명의 일 실시예에 따른 인터폴레이션 기법에 따른 속도교정을 적용하여 검출한 속도오류를 설명하기 위한 것이다.
도 8은 상용의 위치검출장치를 이용하여 실측한 속도를 나타낸 것이다.
도 9 및 도 10은 본 발명에 따른 이동유의구간, 가속도 오류 검출, 및 교정속도의 개념을 적용하여 도출한 그래프이다.
도 11은 본 발명의 일 실시예에 따른 알고리듬 4에 따라 가공된 데이터의 예를 나타낸 것이다.
도 12는 본 발명의 또 다른 실시예에 따라 실시한 실험을 통해 얻은 위치데이터의 필터링 결과를 나타낸 그래프이다.
이하, 본 발명의 실시예를 첨부한 도면을 참고하여 설명한다. 그러나 본 발명은 본 명세서에서 설명하는 실시예에 한정되지 않으며 여러 가지 다른 형태로 구현될 수 있다. 본 명세서에서 사용되는 용어는 실시예의 이해를 돕기 위한 것이며, 본 발명의 범위를 한정하고자 의도된 것이 아니다. 또한, 이하에서 사용되는 단수 형태들은 문구들이 이와 명백히 반대의 의미를 나타내지 않는 한 복수 형태들도 포함한다.
<위도, 경도, 시간>의 형식으로 실측되어 수집된 한 세트의 튜플(즉, 이동데이터 튜플)를 이용하여 사용자의 이동궤적(자취)을 나타낼 수 있다. 이 튜플에 각 튜플을 식별할 수 있는 식별 파라미터를 결합함으로써 사용자 이동성을 나타내는 데이터 세트를 얻을 수 있다. 본 명세서에서 시각 t에 대해 얻은 하나의 튜플을 Pt 라고 지칭하고, Pt 에 의해 제공되는 위도 및 경도를 각각 latt , lont 라고 지칭할 수 있다.
아래 표시한 참조문헌 [1]에 공개된 내용을 이용하여, 두 개의 연속적인 튜플인 <lati -1 ,loni -1>와 <lati ,loni>를 이용하여 시각 ti 에서의 이동거리 Di 와 속도 Vi, 및 가속도 ai를 계산할 수 있다. 그러므로 튜플 Pt 는 부가적인 속성을 포함하는 <t, latt , lont, Dt, Vt, at>와 같은 코어 형식(core form)을 가질 수 있다. 상술한 t, latt , lont, Dt, Vt, at 은 본 명세서에서 실측값이라고 지칭될 수 있다.
* 참조문헌 [1]: T. Vincenty, "Direct and Inverse Solutions of Geodesics on the ellipsoid with Application of Nested Equations," Survey Review, Volume 23, Number 176, April 1975 , pp. 88-93(6).
표 1에는 운송수단에 따라 나타날 수 있는 일반적인 최대속도를 조사하여 나타냈다. 예컨대 본 발명의 일 실시예에 적용하기 위한 최대속도 MAXspeed 을 250m/s로 정의할 수 있다. 또한 일상 환경에서 가능하다고 여겨지는 가속도의 최대값을 정의하여 MAXacceleration 라고 표기할 수 있다. 실측된 속도 또는 가속도가 MAXspeed 또는 MAXacceleration보다 큰 경우에는 오류가 발생한 것으로 판단할 수 있다.
그 다음, 실측되거나 저장되어 있는 속도의 이동평균(moving average of speed)을 계산할 수 있고, 속도의 이동표준편차(moving standard deviation of speed)를 계산할 수 있다.
임의의 시각 t에서 속도의 이동평균 값과 이동표준편차 값을 각각 MAspeed(n)과 MSDspeed(n)라고 표기할 수 있다. 여기서 n은 튜플의 집합인 {Px : t-n+1 ≤ x < t}의 과거 데이터의 수를 나타낸다. 이때, 과거의 n개의 데이터는 크기 'n'의 윈도우를 적용함으로써 얻을 수 있다.
일단 새로운 튜플 Pt 를 얻게 되면, 튜플 Pt 로부터 계산된 Vt 및 at 가 일상 환경에서 용인될 수 있는 값인지 여부를 확인할 수 있다. 계산된 Vt 가 속도의 이동평균값 MAspeed(n)과 속도의 이동표준편차 MSDspeed(n)에 따른 정규분포(normal distribution)의 범위 밖에 존재하는 경우에는 튜플 Pt 가 일련의 자취로부터 필터링 아웃(즉, 제거)될 수 있다. Pt를 제거하기 위한 조건은 수학식 1과 같이 주어질 수 있다.
[수학식 1]
Vt > MAspeed(n)+ s * MSDspeed(n)
수학식 1에서 's'는 필터링의 민감도를 나타내며 사용자가 통제 가능한 파라미터이다.
만일 Vt가 수학식 1을 만족하지 않는다면, 새로운 튜플 Pt 이 유효한 값을 갖고 있다고 판단하고, 이 새로운 값을 이용하여 MAspeed(n)와 MSDspeed(n)의 값을 갱신할 수 있다. 이 계산은 비교적 간단하기 때문에 이동형 사용자기기와 같은 저전력 장치에서 실시간으로 수행될 수 있다.
상술한 윈도우의 크기 n에 따라 필터링 특성이 달라질 수 있다. 따라서 윈도우의 크기에 따른 영향을 파악하기 위한 실험을 수행하기 위하여 상용의 이동형 사용자기기에 의해 실측된 값을 수집할 수 있다. 사용자기기는 위치변화를 감지할 때마다 위치데이터를 저장하고 출력할 수 있다. 또는 사용자기기가 정지 상태에 있다면 사용자가 정의한 매 간격, 예컨대 3초에서 60초마다 위치데이터를 저장하고 출력할 수 있다. 이렇게 획득한 위치데이터들을 다양한 기법을 이용하여 지도(map) 상에 표시할 수 있다.
본 발명을 위한 실험에 따르면, 상용의 사용자기기는 3개의 서로 다른 방식에 따라 얻은 위치데이터를 가끔 동시에 제공하였다. 즉, 셀룰러 기지국을 이용한 위치, 크라우드 소스(crowd source)를 위한 WiFi 장치를 이용한 위치, 및 GPS를 이용한 위치가 동시에 제공되었다. 이때 동일한 시각에 제공된 3가지 종류의 위치데이터의 값이 서로 다른 값을 나타내는 경우가 발생했다. 동시에 다수의 위치값들을 얻게 되는 경우, 경험에 따르면 가장 작은 속도값을 가진 위치데이터가 유효한 데이터일 확률이 크다. 그러므로 위치데이터를 필터링하기 위한 첫 단계에서는 같은 시간에 서로 다른 방식에 의해 제공된 다수의 위치데이터 중 이전의 위치에 대해 가장 조금 이동한 위치데이터를 고르는 방식을 선택할 수 있다.
위치데이터 필터링을 위하여 사용되는 알고리듬에 적용되는 윈도우의 크기 n 의 최적값을 결정하기 위하여 n의 크기를 변화시키면서 다양한 실험을 수행하였다.
윈도우 크기가 큰 경우에 상기 알고리듬은, 이동이 없는 상태에서는 연속적인 오류들에 대해 성공적으로 대처할 수 있지만, 속도가 빠르게 변하는 상황에는 반응하지 못할 것이라고 예상할 수 있다.
반면에, 윈도우의 크기가 작은 경우라면, 연속적인 오류 튜플들을 포함하는 것으로 여겨지는 이동 상태에 대한 갑작스런 속도 변화에 대한 빠른 반응을 보여줄 것이다. 그러나 m개의 연속적인 오류가 존재하는 경우에 m > n이라면, 즉 윈도우의 크기가 작다면 상기 오류들을 필터링할 수가 없다.
이를 확인하기 위하여, 상기 실측된 한 세트의 데이터세트에 대하여 윈도우 크기 n울 변경하면서 다양한 실험을 하였다. 각 실험에서 n = 5, 10, 25, 50, 100로 설정하였으며, 각 경우에 대하여 속도의 이동평균과 속도의 이동표준편차를 계산했다.
윈도우 크기가 클수록, 실측된 속도값에 매우 큰 오류가 있는 데이터가 입력되는 경우 오류의 영향이 더 긴 시간 동안 유지된다. 그 결과 오류가 있는 데이터에 대한 언더 필터링(under filtering) 현상이 발생한다. 윈도우 크기가 100 또는 50인 경우에, 테일링 효과(tailing effect)가 있음을 확인하였다.
반면에, 윈도우 크기가 작은 경우에는, 특히 속도변화의 시작단계에서, 속도 변화에 빠르고 민감하게 반응한다. 그러나 올바른 데이터를 오버 필터링하여 제거하는 경향이 있다. 윈도우 크기가 5 또는 10과 같이 작을 때에, 올바른 속도 데이터인 것으로 보이는 2개 이상의 튜플들이 제거되는 경우가 발생한다.
위의 현상을 통해, 윈도우 크기에 따른 테일링 효과(tailing effect)를 피하기 위해서는 이동윈도우에 대한 조절 메커니즘을 도입해야만 한다는 점을 알 수 있다.
이하 실측된 위치데이터의 오류를 파악하기 위한 사전실험(pre-experiments)에 대해 설명한다.
이 사전실험에서 위치검출 장치들을 실외와 실내에 고정한 상태에서 수 시간 동안 위치데이터를 수집하였다. 첫 번째 위치검출 장치는 상용의 Garmin GPSMAP62s 으로서 순수하게 GPS 데이터 수집을 위해 사용되었다. 두 번째 위치검출 장치는 상용의 삼성 갤럭시 탭으로서, 이 장치에 연결된 3G 기지국(3GBS)으로부터 위치검출 데이터를 얻기 위해 사용되었다. 3GBS를 이용하여 얻은 위치데이터에 더 많은 오류를 나타낼 것이라고 추측하였으며, GPS 및 3GBS로부터 얻은 위치데이터 모두 오류를 나타낼 것이라고 추측하였다. 특히 실내에서도 위치검출 오류를 보일 것이라고 추측하였다. 이 사전실험의 결과는 표 2에 표시되어 있다. 표 2는 위치데이터 실측 시 발생하는 오류를 나타낸 것이며, 표기 단위는 미터(meter)이다.
위치데이터로부터 오류거리가 계산되며, 오류거리의 분산(variance)과 평균을 계산할 수 있다. 추측한 바와 같이, 3GBS가 더 큰 오류율을 나타냈으며, 오류의 크기도 더 컸고, 오류 크기의 최대값도 더 컸으며, 오류 크기의 표준편차도 더 컸다. Garmin GPSMAP62s 에서는 GPS 신호를 잃은 경우에도 과거의 속도에 근거하여 사용자의 위치를 계산하도록 되어 있는데, 이 때문에 실내에서도 매우 큰 오류를 나타냈다. 따라서 실내의 GPS 데이터는 의미 있는 데이터가 아닌 것으로 생각할 수 있다. 실외에서의 GPS 데이터는 정교한 위치데이터를 얻기 위하여 충분한 수준의 정확성을 나타내며, 최대 오류 크기도 52 미터라는 합리적인 수준의 범위 내에 들어왔다.
이하 본 발명의 일 실시예에 따른 필터링 알고리듬을 설명한다. 표 3의 [알고리듬 1]은 실측된 위치데이터에 오류가 있는지 여부를 판단하고, 오류가 있는 위치데이터를 필터링하기 위한 것이다. 새로운 위치데이터 Pi +1 를 획득하면, 이 [알고리듬 1]은 Pi +1 를 필터링할지 여부를 결정할 수 있다.
표 3의 [알고리듬 1]의 각 부분의 기능을 아래에 설명한다.
* [알고리듬 1]의 3~6 번째 중 : n개 미만의 튜플이 존재하는 경우, 크기 n의 윈도우를 채우기 위한 완전한 데이터를 준비할 수 있다. 대신에 적은 수의 정보를 이용하여 불완전한 윈도우를 구성할 수 있다.
* [알고리듬 1]에서 8~10 번째 줄 : 가속도와 속도는 필터링을 위한 파라미터로 사용될 수 있으며 서로 다른 방식으로 사용될 수 있지만, 모두 조절 파라미터(throttling parameter)로서 간주될 수 있다. 속도 Vi +1 이 MAspeed + s * MSDspeed 로 표현되는 소위 '이동유의구간(moving significant interval)'의 값을 범위를 벗어나거나 지나친 가속도를 가진 튜플은 필터링 된다. s는 정규분포의 유의수준(significant level)을 나타낸다.
* [알고리듬 1]에서 11~13 번째 줄 : 하나의 튜플의 속도가 너무 크면 MAspeed와 MSDspeed 값에 영향을 주게 되며 신뢰구간(confidence interval)의 확장과 같은 필터링 오류를 초래하기 때문에, 필터링-아웃되어야 하는 튜플이 필터링-인(filter-in) 되는 결과가 나타난다. 이와 같이 하나의 튜플의 속도가 너무 크면, 가능한 빠른 속도의 변화를 포함하고 신뢰구간의 확장 오류를 피하기 위해, MAspeed(n) + s99 .5 * MSDspeed = MAspeed(n) + 2.57 * MSDspeed를 이용하여 속도값을 수정할 수 있다.
* [알고리듬 1]의 11~13 번째 줄에서 s99 .5 : s99 .5 = 2.57은 정규분포의 99.5%의 신뢰구간을 나타낸다. 이것은 이동윈도우에 대한 오류가 있는 속도의 영향을 감소시키는 조절 파라미터이다.
* [알고리듬 1]에서 12 번째 줄 : 어떤 하나의 튜플이 수학식 1에 의하여 필터링 아웃(filtered out)되어야 하는 경우라고 하더라도, 이 튜플의 속도를 이동 윈도우에 반영하기 위하여 정규분포의 99.5% 신뢰구간 내에 있도록 제한(restriction) 또는 교정(calibration)하여, 이 튜플의 속도를 포함할 수 있다. 이는 속도의 빠른 변화에 대처하기 위해 이동윈도우가 빠른 속도값을 포함하여 업데이트 되도록 의도한 것이다. 즉, 오류가 없는 튜플이라고 하더라도 급격한 속도 변화가 있는 것은 필터링 아웃될 수 있다. 그러한 경우에, 튜플이 필터링 되더라도, 이동윈도우는 이 튜플에 대한 용납할 수 있는 가능한 최대치의 속도 변화를 반영할 수 있다.
* [알고리듬 1]에서 11번째 줄 MINvelocity : 인간 보행은 보통 2.77m/s (10Km/h)보다 작은 속도 내에서 가능하며 또한 GPS 오류범위에 있기 때문에, 2.77m/s (10Km/h)보다 적은 속도는 필터링 아웃되지 않는다.
* [알고리듬 1]에서 14번째 줄 MAXacceleration : 비현실적인 가속도를 가진 튜플들은 필터링 아웃된다.
* [알고리듬 1]에서 12~16 번째 줄 : 일단 과도한 가속도를 갖는 튜플은 필터링 아웃되고, 이 튜플의 가속도 값은 MAXacceleration 으로 교정(calibration)되며, 속도값은 비현실적인 속도값의 영향을 무효화시키기(nullify) 위해 MAspeed(n)으로 교정된다.
* 차량이 커다란 음의 가속도를 가지고 급하게 멈추는 것은 항상 가능하기 때문에, 음의 가속도 값들을 가진 튜플들은 오류가 없는 유효한 것으로 간주된다. 반면에, MAXacceleration보다 더 큰 양의 가속도값을 가진 튜플들은 오류가 있는 것으로 간주된다.
[알고리듬 1]에서 2개의 변수인 n과 s는 사용자에 의해 설정될 수 있다. n은 윈도우 내의 튜플의 개수, 즉 윈도우의 크기이고, s는 필터링의 민감도 수준(즉, 정규분포의 유의수준)이다. 사용자 민감도 수준 s는 상대적으로 간단히 결정할 수 있다. 정규분포의 특성으로부터 적절한 신뢰구간을 갖는 s를 얻을 수 있다. 필터링을 위해 정규분포의 양의 영역만을 사용할 것이기 때문에, 95%의 신뢰구간에 대해서는 s=1.64로 설정하고, 99%의 신뢰구간에 대해서는 s=2.33으로 설정할 수 있다. 사용자들은 그들 자신의 목적에 따라 s를 결정할 수 있다. 예를 들어, 민감도 수준 s를 아래와 같이 선택할 수 있다. [표 2]는 기기가 움직이지 않을 때, 위치데이터 수집에 대한 보통의 오류율(error rate)을 보여준다. GPS의 경우에 대하여, 12.3%의 위치데이터에 오류가 존재하였고, 3GBS 셀룰러 위치검출 시스템에 대하여는 36.75%의 위치데이터에 오류가 존재하였다. 따라서 이 경우, GPS 데이터에 대하여는 s=1.16으로 설정하고, 셀룰러 위치검출 데이터에 대해서는 s=0.34로 설정할 수 있다.
상술한 바와 같이 윈도우의 크기가 크면 트레일링 효과가 발생하기 때문에 이를 피하기 위하여 윈도우의 크기를 더 작게 할 수 있다. [알고리듬 1]에 의해 부정확한 속도 값이 교정(calibrate)되고, 비정상적인(abnormal) 가속도 값은 제한되며, 속도 값은 이동윈도우에 의해 산출된 평균속도로 대체될 수 있다. 이러한 교정 방식(calibration mechanism)에 따른 윈도우 크기의 효과를 살펴보기 위해 몇 가지 실험을 하였다. 첫 번째 실험에서는 윈도우 크기를 n = 5, 10, 25, 50, 100으로 선택하였고, 민감도 수준을 s=1.16으로 선택하여 실측된 위치데이터 중의 88%가 정확한 데이터라고 가정하고 필터링하였다. 윈도우 크기가 작은 경우 트레일링 효과가 제한되지만 속도변화에 따른 반응(reaction)이 더 유연한 결과를 얻었다. 첫 번째 실험에서 윈도우의 크기가 5 또는 10인 경우 좋은 결과를 얻었다.
두 번째 실험에서는 연속적인 오류의 효과를 고려하였다. 연속적인 오류들은 본 알고리듬에서 사용되는 이동평균과 이동표준편차에 영향을 줄 수 있다. 실제 실험에서 사용한 위치검출 데이터 세트에서 최대 4개의 연속적인 오류가 존재하였다. 따라서 두 번째 실험에 대하여는 n=5로는 부족하다는 결론을 내렸고, n=10인 경우에 연속적인 오류에 대하여 대응할 수 있으며 더 큰 윈도우 크기에 의한 테일링 효과(tailing effect)를 줄일 수 있다고 결론 내렸다. 따라서 이 실험에 있어서 윈도우 크기는 최종적으로 10으로 결정되었다. 더 많은 개수의 연속적인 오류를 경험한다면 이에 적합한 윈도우 크기를 선택하거나 윈도우의 크기를 동적으로 증가시킬 수 있다.
본 발명에 따른 [알고리듬 1]을 이용한 다양한 실험 결과 두 가지 결론을 얻을 수 있다. 첫째, 윈도우 크기와 민감도 수준을 적절히 선택하면 적절한 필터링 결과를 얻을 수 있다. 둘째, 윈도우 크기와 민감도 수준의 여러 가지 조합에 따라, 모든 위치검출 데이터 세트에 대해 필터링을 수행할 수 있다.
표 4는 파라미터들의 각 조합에 대하여 필터링-아웃된 튜플들의 백분율을 나타낸다. 본 발명의 일 실시예에 따른 알고리듬의 사용자는 그들의 환경에 따라 표 4에 따른 윈도우 크기와 민감도 수준을 선택할 수 있다. [알고리듬 1]에서 윈도우 크기, 민감도 수준, 최대 속도 및 최대 가속도와 같은 알고리듬의 다양한 파라미터들은 사용자에 의해 정의될 수 있다. 사용자가 MAXaccelertaion, s99 .5(=최대 민감도 수준), 및 MINvelocity(=필터링을 위한 속도의 최소 임계값)와 같은 알고리듬의 상수(constant)를 변화시키는 것도 가능하다.
[알고리듬 1]은 아래와 같은 사항을 고려하여 변형할 수 있다.
첫째, 윈도우의 크기를 하나의 윈도우 내의 튜플들의 개수로 정의하는 대신에 윈도우가 포함하는 시간 간격으로 정의할 수 있다. 속도는 시간의 함수라는 점을 고려하면, 위치데이터를 규칙적으로 수집할 때에 이 변형된 방식이 효과적이며 또한 정확할 것이라는 것을 알 수 있다.
둘째, 윈도우 크기를 동적으로 교정(dynamic calibration)할 수 있다. [알고리듬 1]로부터 변형된 다른 실시예에서는 연속적인 오류의 개수에 따라 윈도우 크기를 동적으로 증가 또는 감소시킬 수 있다. 일단 연속적인 오류의 개수가 많다는 것을 발견하면, 연속적인 오류가 이동평균과 이동표준편차에 미치는 영향을 최소화하기 위하여 윈도우 크기를 증가시킬 수 있다. 만일 연속적인 오류의 개수가 작은 경우에는 윈도우 크기를 감소시킴으로써 급격한 속도 변화에 대해 적절한 반응을 보일 수 있고 필터링을 위한 계산량을 감소시킬 수 있다.
셋째, [알고리듬 1]을 실시간 알고리듬이 아닌 의사 실시간 알고리듬(pseudo real time)으로 변형할 수 있다. 윈도우 크기 n에 대해 우리는 (n+1)번째 튜플을 필터링하는 것 대신에 윈도우의 대략 중간에 있는 번째 튜플을 필터링할 수 있다. 이 방법은 완벽하게 실시간으로 구현될 수 없을지라도 언더 필터링과 오버 필터링의 경향을 줄일 수 있다.
넷째, [알고리듬 1]에 인터폴레이션(interpolation) 기법을 추가할 수 있다. 아래 표 5에 제시한 [알고리듬 2]는 인터폴레이션을 위한 단계를 [알고리듬 1]에 추가한 것이다([알고리듬 2]의 18~21번째 행 참조). 새로운 튜플(인덱스 i+1)을 획득하였을 때에, 현재 존재하는 윈도우 내의 마지막 튜플(인덱스 i)이 필터링 아웃된 것으로 확인된다면, 이 마지막 튜플의 속도를 인터폴레이션된 값으로 대체할 수 있다. 이러한 인터폴레이션을 이용하면, 튜플의 필터링을 위해 도입된 이동윈도우를 더 정밀하게 제공할 수 있다([알고리듬 2]의 18~21행 참조). 즉, [알고리듬 2]의 가장 마지막 부분에 의해, 새로운 튜플을 얻을 때마다 윈도우 내의 필터링 아웃되었다고 마킹된 마지막 튜플을 인터폴레이션 할 수 있다. 좀 더 정밀한 근사화를 위한 이동윈도우 구성을 위한 또 다른 변형예는, 윈도우의 대략적 중간지점에 있는 번째 튜플을 윈도우 내의 n개의 튜플들을 이용하여 인터폴레이션 하는 것이다. 더 정밀하게 추정(estimation)하기 위하여 n개의 튜플들로부터 추정된 점근 곡선(asymptotic curve)을 이용하여 윈도우 내의 중앙 튜플(middle tuple)을 인터폴레이션하여 더 정밀한 인터폴레이션을 가능하게 할 수 있다. 그러나 이 때문에 계산 오버헤드(computational overhead)가 발생할 수 있기 때문에 이동형 사용자기기에 적용하기 어려울 수 있다.
도 1은 본 발명의 일 실시예에 따른 속도보정 알고리듬을 설명하기 위한 것이다.
도 1의 가로축은 연속적으로 얻은 튜플의 인덱스(즉, 타임스탬프)를 나타내며, 세로축은 메모리에 저장된 각 튜플에 따른 속도이다. 도 1에서는 이동윈도우의 크기 n이 10인 것으로 예시되어 있다. 이동윈도우 내에 존재하는 10개의 속도들로부터 MAspeed와 MAspeed + s99 .5 × MSDspeed를 계산할 수 있으며, 이 값의 예가 도 1에 표시되어 있다. 도 1에서 인덱스 [i+1]에서의 가속도 ai + 1는 MAXacceleration 보다 큰 것으로 가정하였다. 따라서 인덱스 [i+1]에서의 속도 Vi + 1는 MAspeed으로 보정되었다([알고리듬 2]의 제15행). 도 1에서 인덱스 [i]에 대한 이동 데이터 튜플 Pi는 [알고리듬 2]에 따라 이미 필터링 아웃된 것으로 마킹되었다고 가정하였다([알고리듬 2]의 제18행). 어떤 튜플이 필터링 아웃되었다는 것은 그 튜플이 나타내는 위치에 오류가 있다고 판단했다는 뜻이지만, 그 튜플로부터 계산된 속도나 가속도 값은 여전히 저장되어 있을 수 있다. 따라서 [알고리듬 2]의 제19행에 따라, 이동 데이터 튜플 Pi의 속도 Vi는 이동 데이터 튜플 Pi -1의 속도 Vi -1과 이동 데이터 튜플 Pi +1의 속도 Vi + 1를 이용하여 선형 인터폴레이션 된 값으로 대체된다. 이와 같이 [알고리듬 2]에 의하면 새로 획득한 튜플의 속도는 [알고리듬 2]의 제10~17행에 의해 1차적으로 교정되고, 그 후 또 다른 새로운 튜플이 획득될 때에 이 교정된 속도는 [알고리듬 2]의 제18~21행에 의해 2차적으로 교정될 수 있다. 임의의 튜플의 속도에 대하여 상술한 1차적 교정과 2차적 교정이 모두 일어나거나, 둘 중 하나만 일어나거나 또는 전혀 일어나지 않을 수 있음을 이해할 수 있다.
상술한 튜플 Pi의 속도 Vi가 인터폴레이션되어 교정된 값은 [알고리듬 2]의 제11행에 의해 교정된 값( MAspeed + s99 .5 × MSDspeed )보다 작은 것이 보통이지만, 그 다음 타임스탬프에서의 이동유의구간 또는 교정된 값에 따라 더 크게 나올 수도 있다.
[알고리듬 2]에서는 새롭게 획득한 이동 데이터 튜플(Pi +1) 및 이동윈도우에 존재하는 가장 최신의 이동 데이터 튜플(Pi)에 대한 처리가 이루어졌다. 이와 달리 본 발명의 다른 실시예에서는 이동윈도우 내의 임의의 타임스탬프에 대한 이동 데이터 튜플(Pm)에 대한 처리를 수행하도록 변형될 수 있다. 이를 위하여 [알고리듬 2]의 제18~21행을 표 6과 같이 변형할 수 있다.
도 2는 본 발명의 다른 실시예에 따라, 최소 자승법으로 속도값을 인터폴레이션하는 속도보정방법을 설명하기 위한 것이다.
도 2에서는 [알고리듬 2]의 제18행 내지 제21행에 의한 인터폴레이션 방법으로부터 변형된 인터폴레이션 방법을 사용한 결과를 나타낸다. 도 2에서는 이동 윈도우 내의 복수 개의 데이터를 이용한 비선형 인터폴레이션 방법을 이용한다. 예컨대, 이동 윈도우 내에 포함된 복수 개의 데이터와 최소 자승법을 이용하여 근사화한 점근선에 해당하는 값을 이용하여 인덱스 [i-4]를 갖는 이동 데이터 튜플을 보정할 수 있다.
도 3 내지 도 5는 본 발명의 다른 실시예에 따른 위치튜플 필터링 방법, 인터폴레이션을 이용한 속도 추정방법, 및 속도오류 교정방법을 설명하기 위한 것이다.
도 3 내지 도 5의 가로축은 타임스탬프의 인덱스를 나타내며 세로축은 속도를 나타낸다. 참조번호 100은 해당 타임스탬프에서 실측된 속도를 나타내며, 참조번호 101은 본 명세서에 공개한 알고리듬 중 하나를 사용하여 필터링 아웃한 튜플로부터 얻은 실측속도를 나타낸다. 도 3 내지 도 5에서는 윈도우 크기가 10인 예를 나타내었다. 참조번호 103은 윈도우 내의 속도의 평균값을 나타내며 참조번호 102는 상술한 이동유의구간(moving significant value)의 값(102)을 나타낸다. 도 3에 나타낸 참조번호 101의 위치튜플은, 그 속도가 상기 이동유의구간의 값(102)보다 크기 때문에 필터링 아웃되었다.
도 4의 참조번호 101(인덱스 i)은 본 발명의 알고리듬에 따라 필터링 아웃된 위치튜플로부터 얻은 실측속도를 나타낸다. 도 4의 참조번호 200은 인덱스 i의 속도값이 그 전후의 인덱스 i-1 및 인덱스 i+1의 속도값들에 의해 선형 인터폴레이션되어 제공된 속도의 추정값(estimated value)을 나타낸다.
도 5의 경우에는 인덱스 i 및 인덱스 i+1의 튜플이 모두 필터링 아웃된 경우를 나타낸다. 이때, 인덱스 i의 실측속도(인덱스 i의 참조번호 101 참조)가 이동유의구간의 값보다 크기 때문에 소정의 크기(인덱스 i의 참조번호 300 참조)로 이미 교정(calibration)되었다. 그 다음, 인덱스 i+1의 실측속도(인덱스 i+1의 참조번호 101 참조) 역시 이동유의구간의 값보다 크기 때문에 소정의 크기로 교정(calibration)된다(인덱스 i+1의 참조번호 300 참조). 그 다음, 인덱스 i의 튜플은 필터링 아웃되었기 때문에, 인덱스 i의 속도는 인덱스 i+1과 인덱스 i-1의 속도를 이용하여 인터폴레레이션 된다. 말하자면, 본 발명의 일 실시예에서는, 속도의 교정(calibration)이 속도의 추정(estimation)을 정확하게 하기 위한 전단계로서 이용될 수도 있다.
[알고리듬 2]를 이용하면 실측된 튜플 중 필터링 아웃된 튜플에 대한 속도를 추정할 수 있지만, 필터링 아웃된 튜플의 위치값은 단순히 제거된 상태에 불과하다. 아래 표 7 및 표 8에 나타낸 [알고리듬 3]을 이용하면 상기 필터링 아웃된 튜플에 대한 위치값을 추정할 수 있다. [알고리듬 2]의 속도 추정에서는 양(+)의 속도값만을 고려하면 되었지만, 이에 비하여 위도와 경도에는 방향성이 존재하기 때문에 [알고리듬 3]에 추가된 위치 추정에서는 위도와 경도의 음(-)의 차이(difference)를 무시할 수 없다는 차이점이 있다.
이하 상기 [알고리듬 3]의 내용을 이용하여 본 발명의 일 실시예에 따른 위치교정방법을 설명한다.
[알고리듬 3]에서는 통상의 거리오류를 허용하기 위한 파라미터 ETD가 도입된다(4행). 통상의(usual) 포지셔닝 시스템의 CEP(Circular Error Probable) 개념으로부터, 예컨대 SA가 활성화된 GPS 시스템에 대하여 ETD를 15m로 설정할 수 있다. 물론 포지셔닝 시스템의 정확성에 따라 ETD의 값을 변경할 수도 있다. ETD에 의해 최저속도 및 위도와 경도의 최소 차이(difference)가 결정될 수 있으며, 이동 표준편차에 영향을 줄 수 있으며, 그 결과 이동 유의구간이 0이 아닌 값을 갖도록 할 수 있다. 즉, ETD를 이용함으로써 포지셔닝 시스템의 CEP라는 개념을 본 발명의 일 실시예에 따른 [알고리듬 3]에 도입할 수 있으며, 포지셔닝 시스템의 정확도 내의 작은 가능한 속도 오류 때문에 튜플들을 오버필터링(overfiltering)하는 것을 회피할 수 있다.
[알고리듬 3]에 따르면, [알고리듬 2]의 속도추정 프로세스와 비슷하게, 필터링 된 튜플에 대하여 위치추정 프로세스를 도입할 수 있다. [알고리듬 3]에 포함된 위치추정 프로세스의 주된 다른 점은 위도와 경도의 방향성에 있다. 즉, 속도값에 대해서는 양의 값만을 고려하면 되었으나, 위치를 추정하기 위해서는 위도와 경도의 음의 차이(difference)를 무시할 수 없다. [알고리듬 3]은 위치 추정에 대한 전체 프로세스를 나타낸 것이며, 이는 [알고리듬 2]의 속도 추정을 위한 전체 프로세스에 대응한다.
[알고리듬 3]의 Vlat와 Vlon은 각각 위도와 경도의 차이(difference)를 지칭한다. [알고리듬 3]은 Vlat와 Vlon의 이동 평균을 계산한다. 하나의 튜플이 과다한 속도에 의해 필터링되는 경우 이는 위치의 차이가 과다함을 나타낸다. 일단 이렇게 되면, 올바른 위치를 추정할 필요가 있다. 가속도 오류가 발생한 경우에는, 속도에 대하여 수행한 것과 마찬가지로, 위치 데이터를 차이값의 이동평균(MA of difference) 값으로 보정한다(25 및 26행). 마지막으로, 속도 추정에 대하여 수행한 바와 마찬가지로, 이동 윈도우의 끝에서 위도와 경도에 대하여 인터폴레이션한다(31 및 32행). 그리고 차이값(difference)의 방향성도 보존된다(25, 26, 31, 및 32행).
4행에서 위치 튜플의 시간 간격이 커지는 경우 ETD에 의한 MINspeed 값이 매우 작아지는 경우가 있다. 이 때 MINspeed 값의 일정 하한선을 보장하기 위하여 4행의 코드를 "Set MINspeed = (ETD/(ti +1-ti) > MINSPEED) ? ETD/(ti +1-ti) : MINSPEED"로 변경 가능하다. 여기서 MINSPEED는 발명의 사용자가 임의로 정한 최저 속도이다.
도 6은 실측된 데이터로부터 얻은 속도오류를 설명하기 위한 것이고, 도 7은 본 발명의 일 실시예에 따른 인터폴레이션 기법에 따른 속도보정을 적용하여 검출한 속도오류를 설명하기 위한 것이다. 각각의 도면은 실측 속도(original speed), 가속도, 이동유의구간, 교정속도(calibrated speed), 추정속도(estimated speed), 및 검출된 가속도 오류에 관한 정보를 포함한다. 가속도 오류는 역삼각형 모양으로 도시된다. 다만, 도 6은 인터폴레이션된 속도에 관한 정보를 포함하지 않는다. 속이 빈 사각형(empty rectangle)은 본 발명의 일 실시예에 따른 교정기법(calibration mechanism)에 따라 제한된 속도를 나타내며, 검은색 사각형(dark rectangle)은 인터폴레이션 기법에 의한 추정속도를 나타낸다. y축의 속도는 m/s 단위이고, x축은 하루 중의 시각을 나타낸다. 13:33:06 근처에서 실측 속도가 이동 유의 구간의 바깥에 위치하는 오류가 발견되었음에도 불구하고, 본 발명의 일 실시예에 따른 알고리듬은 가능한 속도값을 잘 추정하였다. 2012년 12월 18일 13:32:59에 가속도 제한에 의한 명백한 오류가 발행하였지만, 본 발명의 교정방식에 의해 적절한 범위 안으로 속도 오류가 제한되었으며, 그 다음에는 속도 추정 방식에 의해 속도가 보정된다. 오류 속도를 교정하는 방법보다는, 인터폴레이션 방식에 의해 속도를 추정하는 방법이 이동 윈도우에 미치는 영향을 더 줄일 수 있다. 따라서 도 7에서 인터폴레이션을 뒤따르는 이동 유의 구간은 차이점을 나타내는데, 이는 인터폴레이션된 속도 값에 의해 이동 윈도우의 통계값이 달라지기 때문이다. 13:33:04에서의 차이점은 상당히 크다.
표 9 내지 표 11은 본 발명의 다른 실시예에 따른 위치추정에 관한 4번째 알고리듬을 설명하기 위한 것이다.
[알고리듬 4]는, [알고리듬 4]의 라인 2, 5, 6, 17~25, 28~32, 38을 제외하고는 [알고리듬 3]과 동일하다. 이하, [알고리듬 4]의 라인 5, 6, 17~25, 28~32, 38에 대하여 설명한다.
*[알고리듬 4]의 라인 2: 연속적인 오류의 개수를 세기 위하여 NCE(Number of Continuous Error)라는 파라미터를 도입하고 그 값을 0으로 초기화한다.
*[알고리듬 4]의 라인 5: [알고리듬 4]의 다른 부분에 의해 V가 다른 값으로 변경될 수 있다. 예컨대 [알고리듬 4]의 라인 35, 39, 45에서 V가 다른 교정된 값이나 추정된 값으로 대체될 수 있다. 그런데 [알고리듬 4]의 라인 20에서는, 이 대체된 추정값을 원래값(=실측값에서 계산된 후 저장된 값)으로 다시 대체할 수 있는데, 이러한 작업을 수행하기 위하여 라인 5에서는 V의 원래값을 따로 저장해 둔다.
*[알고리듬 4]의 라인 6: 최소속도에 관한 MINspeed를 ETD/(ti +1-ti) 미리 결정된 최소값 MINSPEED 중 더 작은 값으로 설정한다. 즉 이동 표준 편차의 최소값을 결정 해준다.
*[알고리듬 4]의 라인 17, 18: [알고리듬 4]의 다른 부분에 의해 lat과 lon이 다른 값으로 변경될 수 있다. 예컨대 [알고리듬 4]의 라인 41, 42, 47, 48에서 lat과 lon이 다른 교정된 값이나 추정된 값으로 대체될 수 있다. 그런데 [알고리듬 4]의 라인 21, 22에서는, 이 대체된 값을 원래값으로 다시 대체할 수 있는데, 이러한 작업을 수행하기 위하여 라인 17, 18에서는 lat과 lon의 원래값을 따로 저장해 둔다.
*[알고리듬 4]의 라인 19: [알고리듬 4]의 라인 19는 [알고리듬 4]의 라인 20~22에 나타낸 백트래킹을 수행하기 위한 조건을 나타낸다. 이때 3가지 조건을 검토하는데, 첫째, 백트래킹 검토 대상 타임스탬프(=i-1)에서의 튜플(Pi-1)이 필터링되었거나 인터폴레이션되었어야 하고, 둘째, 백트래킹 검토 대상 타임스탬프(=i-1)에서의 튜플(Pi -1)이 가속도 오류에 의해 필터링(accel_filtered)되지 않았어야 하고, 셋째, 백트래킹 검토 대상 타임스탬프(=i-1)에서의 튜플의 원래 속도(Vi -1,original)가 타임스탬프 [i-n+1, ..., i]로 정의되는 윈도우에 의해 결정되는 이동유의구간(MAspeed + s × MSDspeed)에 속해 있어야 한다는 조건을 만족해야 한다.
*[알고리듬 4]의 라인 20~24: [알고리듬 4]의 라인 20~22에서는 [알고리듬 4]의 라인 19의 조건이 만족되는 경우에, V, lon, lat 값을 원래값으로 다시 대체하도록 되어 있다. 즉, [알고리듬 4]의 다른 부분에 의해 교정되거나 추정되었던 V, lon, lat 값보다 원래의 V, lon, lat 값이 더 정확한 것으로 판단하여, 실측 데이터로 복귀시킨다(백트래킹, backtracking). 백트래킹이 일어나는 경우에는, 라인 23에서 NCE를 0으로 초기화하고, 라인 24에서 윈도우 크기 n을 감소시킨다. 단, 윈도우 크기 n은 최소값 IWS보다 작을 수 없다.
*[알고리듬 4]의 라인 28, 29: 튜플 Pi +1이 필터링되는 경우에는 라인 28에서 NCE를 증가시킨다. 즉 연속적 오류의 개수를 증가시킨다. 그리고 라인 29에서는 윈도우 크기 n을 증가시킨다. 단, 윈도우 크기 n은 최대값 MWS보다 클 수 없다.
*[알고리듬 4]의 라인 31, 32: 튜플 Pi +1이 필터링되지 않은 경우에는 라인 31에서 NCE를 0으로 초기화한다. 그리고 라인 32에서는 윈도우 크기 n을 감소시킨다. 단, 윈도우 크기 n은 최소값 IWS보다 작을 수 없다.
*[알고리듬 4]의 라인 38: 새로 측정된 가속도가 최대가속도보다 큰 경우 새로 실측된 튜플을 필터링하되, 가속도 오류에 의한 필터링(accel_filtered)이라고 기록한다.
도 8은 상용의 위치검출장치인 iPhone과 Garmin을 이용하여 실측한 속도를 나타낸 것이다. 이 실측 실험에서 속도가 시간에 따라 연속적인 값을 가지고 변화하였지만, iPhone과 Garmin의 실측 데이터에서는 갑작스런 속도의 증감이 때때로 일어나는 것을 확인할 수 있으며, 이는 오류에 해당한다.
도 9 및 도 10은 상술한 본 발명의 실시예에서 설명한 이동유의구간(Moving significant interval), 가속도 오류 검출(Acceleration error detected), 및 교정속도(Calibrated speed)의 개념을 적용하여 도출한 그래프이다. 도 9는 윈도우 크기를 5로 설정한 것이고, 도 10은 윈도우 크기를 100으로 설정한 결과를 나타낸다. 도 9 및 도 10은 2012년 2월 27일에 획득한 287개의 실측위치 데이터를 이용한 것이다.
도 9와 같이 윈도우 크기가 작은 경우(n=5), 이동유의구간과 교정속도가 속도의 변화를 민감하게 반영한다. 그러나 도 10과 같이 윈도우 크기가 큰 경우(n=100), 테일링 효과에 의하여 이동유의구간과 교정속도가 속도 변화를 민감하게 반영하지 못하는 것을 알 수 있다.
도 11은 [알고리듬 4]에 따라 가공된 데이터의 예를 나타낸 것이다. 이 그래프는 2012년 8월 28일에 실측한 9개의 위치데이터를 이용하여 생성한 것으로서, 필터링된 원래 속도(filtered original speed), 이동유의구간(moving significant interval), 가속도(acceleration), 가속도 오류 검출(acceleration error detected), 인터폴레이션된 속도(interpolated speed), 교정속도(calibrated speed), 및 백트래킹에 의해 재생된 속도(revived)에 관한 정보를 포함하고 있다. 시각 08:49:54에서, 필터링된 원래 속도는 이동유의구간의 범위를 벗어나 있을 뿐만 아니라 가속도 오류가 검출되어 있는 상태이므로, 인터폴레이션된 속도를 그대로 유지하고 있다. 반면, 시각 08:49:56 및 시각 08:49:59에서는 원래 속도가 이동유의구간의 범위에 속해 있으며, 가속도 오류가 검출되지 않았기 때문에 [알고리듬 4]에 의해 인터폴레이션된 속도를 대체하여 재생되었음을 확인할 수 있다.
이하, 본 발명의 다른 실시예에 따른 위치교정방법을 [알고리듬 4]를 참조하여 설명한다.
위치정보 수집장치로부터 수집한 위도, 경도, 및 타임스탬프를 포함하여 이루어지는 튜플에 관한 정보를 처리하기 위하여 후술하는 단계를 수행할 수 있다.
단계(S11)에서, 타임스탬프[i+1]에서의 속도[i+1](Vi +1)에 오류가 있는지 여부를 결정할 수 있다(라인 34 참조).
단계(S12)에서는, 단계(S11)에서 속도[i+1]에 오류가 있는 것으로 판단된 경우(Vi +1 ≥ MAspeed + s99 .5 × MSDspeed), 속도[i+1]를 미리 교정(calibration) 또는 제한(restriction)한다(라인 35 참조). 이때, 속도[i+1]가 미리 결정된 최저속도(MINspeed) 이하인 경우에는 속도[i+1]에 오류가 없는 것으로 판단한다(라인 35 참조). 이때, 상기 최저속도는 허용오차거리(error tolerance of distance, ETD) 또는 미리 설정한 최소값(MINSPEED)에 의해 결정될 수 있다(라인 6 참조).
단계(S13)에서는, 타임스탬프[i+1]에서의 가속도[i+1](ai +1)에 오류가 있는지 여부를 결정한다(라인 37 참조). 이때, 가속도[i+1]가 미리 설정된 최대가속도(MAXacceleration) 이상인 경우에는 상기 가속도[i+1]에 오류가 있는 것으로 결정할 수 있다(라인 37 참조).
단계(S14)에서는, 단계(S13)에서 가속도[i+1]에 오류가 있는 것으로 판단된 경우, 위도[i+1] 및 경도[i+1]를 미리 교정하도록 되어 있다(라인 41, 42 참조). 이때, 타임스탬프[i]까지의 평균경도차이(MAVlongitude) 및 타임스탬프[i]에서의 경도[i](loni)를 이용하여 경도[i+1]를 교정하고, 타임스탬프[i]까지의 평균위도차이(MAVlatitude) 및 타임스탬프[i]에서의 위도[i](lati)를 이용하여 위도[i+1]를 교정할 수 있다(라인 41, 42 참조). 여기서 알고리듬 4의 16행에서 설정되는 평균경도차이(MAVlongitude)는 14행에서 설정되는 각 타임스탬프에서의 경도차이를 시간에 따라 평균한 값을 의미하며, 13행에서 설정되는 평균위도차이(MAVlatitude)는 11행에서 설정되는 각 타임스탬프에서의 위도차이를 시간에 따라 평균한 값을 의미한다.
단계(S21)에서는, 타임스탬프[i](ti)에서의 튜플[i](Pi)에 오류가 있는지 여부를 확인한다(라인 44 참조). 이때, 오류가 있다는 것은 튜플[i](Pi)이 상술한 바와 같이 속도 오류에 의하여 필터링 되었다는 것을 의미한다.
단계(S22)에서는, 상기 오류가 존재하는 것으로 확인된 경우에는, 타임스탬프[i+1](ti +1)에서의 위도[i+1](lati +1)와 상기 타임스탬프[i] 이전에 획득한 한 개 이상의 위도들을 인터폴레이션하여 상기 타임스탬프[i]에서의 위도[i](lati)를 추정(estimation)하고, 상기 타임스탬프[i+1]에서의 경도[i+1](loni +1)와 상기 타임스탬프[i] 이전에 획득한 한 개 이상의 경도들을 인터폴레이션하여 상기 타임스탬프[i]에서의 경도[i](loni)를 추정한다(라인 47, 48 참조). 이때, '획득'했다는 것은 [알고리듬 4]에 의해 처리되어 메모리에 저장되어 있다는 것을 의미할 수 있다.
이때, 단계(S21)에서 상기 오류가 존재하는 것으로 확인된 경우에는, 상기 일 실시예에 따른 위치교정방법은 단계(S23)를 더 포함할 수 있다.
단계(S23)에서는, 타임스탬프[i+1]에서의 속도[i+1](Vi +1)와 타임스탬프[i] 이전에 획득한 한 개 이상의 속도들을 인터폴레이션하여 상기 타임스탬프[i]에서의 속도[i](Vi)를 추정(estimation)할 수 있다(라인 45 참조).
단계(S31)에서는, 타임스탬프[i-1]에서의 상기 오류가 속도에 의한 오류에 의해 발생한 것이고 가속도에 의한 오류에 의해 발생한 것이 아닌 경우에, 타임스탬프[i-n+1] 내지 타임스탬프[i]에 대해 저장된 속도들의 평균(MAspeed) 및 표준편차(MSDspeed)를 이용한 통계값을 계산하여, 상기 타임스탬프[i-1]에서의 실측된 속도값이 상기 통계값보다 작은지를 결정할 수 있다(라인 19 참조). 여기서 '저장된 속도'는 [알고리듬 4]에 의해 처리되어 메모리에 저장되어 있는 값을 의미한다.
단계(S32)에서는, 단계(S31)에서 상기 실측된 속도값이 상기 통계값보다 작다고 판단한 경우에, 상기 타임스탬프[i]에 대한 속도, 위도, 및 경도는 실측된 원래 값으로 대체할 수 있다(라인 20~22 참조). 이때, 상기 n은 윈도우의 크기이다.
단계(S33)에서는, 단계(S31)에서 상기 실측된 속도값이 상기 통계값보다 작다고 판단한 경우에, n값을 감소시킬 수 있다(라인 24 참조).
단계(S34)에서는, 타임스탬프[i]에 상기 오류가 있는 것으로 확인된 경우에는 윈도우의 크기를 증가시키고(라인 29 참조), 타임스탬프[i]에 상기 오류가 없는 것으로 확인된 경우에는 윈도우의 크기를 감소시킬 수 있다(라인 32 참조). 여기서 오류가 있다는 것은, 속도에 오류가 있는 경우와 가속도에 오류가 있는 경우를 모두 포함할 수 있다.
본 발명의 다른 실시예에 따른 사용자기기는, 위도, 경도, 및 타임스탬프를 포함하여 이루어지는 튜플에 관한 정보를 수집하도록 되어있는 위치정보 수집부; 및 상기 튜플에 관한 정보를 처리하도록 되어 있는 처리부를 포함할 수 있다.
이때, 상기 처리부는, [알고리듬 4]의 라인 19, 20~22, 24, 29, 32, 34, 35, 37, 41, 42, 44, 45, 47, 48을 수행할 수 있다.
상술한 각 단계들은 매 타임스탬프에서 실행될 수 있다. 알고리듬 4는 새로운 튜플이 획득되는 타임스탬프[i+1]의 시점을 기준으로 기술한 것인데, 알고리듬 4를 타임스탬프[i+2]의 시점으로 기술할 수 있다. 이렇게 하면, 예컨대 상술한 단계(S31)에 대한 설명에 있어서 타임스탬프의 인덱스가 +1만큼 증가하게 된다.
표 12 및 표 13은 본 발명의 또 다른 실시예에 따른 위치추정에 관한 [알고리듬 5]를 설명하기 위한 것이다.
[알고리듬 5]는, [알고리듬 5]의 라인 2~5, 24, 28, 29~34를 제외한 부분은 [알고리듬 4]와 동일하다. 이하, [알고리듬 5]의 라인 2~4, 24, 28~34에 대하여 설명한다.
* [알고리듬 5]의 라인 2: [알고리듬 5]의 라인 2는 [알고리듬 5]의 라인 3~4에 나타낸 최소표본크기 및 다음 최소표본크기를 변경하기 위한 조건을 나타낸다. 즉, 유의수준 s 값이 변경되었다는 조건을 만족해야 ms(minimum size, 최소표본크기) 및 nms(next minimum size, 다음 최소표본크기) 값 중 하나 이상이 상기 변경된 유의수준 s 값에 기초하여 변경되도록 되어 있다. 이때, 상기 유의수준 s 값이 변경되는 경우는, 이하 [알고리듬 5]의 라인 28 내지 34를 참조하여 설명한다.
* [알고리듬 5]의 라인 3~4: [알고리듬 5]의 라인 3~4는 [알고리듬 5]의 라인 2의 조건이 만족되는 경우에, ms 값은 1/(1-f(s))2 값으로 변경되며, nms 값은 1/(1-f(s+0.01))2 값으로 변경된다. 이때, 상기 함수 f(s)는 아래의 수학식 2와 같이 주어질 수 있다.
[수학식 2]
* [알고리듬 5]의 라인 24: [알고리듬 5]의 라인 24는 [알고리듬 5]의 라인 22의 조건이 만족되는 경우에, Ecount 값을 중가 시키도록 되어 있다. 즉, 타임스탬프[i](ti)에서의 튜플[i](Pi)에 오류가 있는지 여부(즉, 필터링되었는지 여부)를 확인하여 상기 튜플[i]에 오류가 존재하는 경우에는, Ecount 값을 증가시킨다. 이때, 상기 Ecount 값은 오류가 발생한 튜플의 총 개수를 나타낸다. 이때, [알고리듬 5]의 라인 22는 상술한 [알고리듬 4]의 라인 44에 대응된다.
* [알고리듬 5]의 라인 27: 오류율에 관한 Erate 값은 Ecount 값과 타임스탬프[i+1]까지 수집한 튜플의 개수에 따라 결정된다. 즉, Erate 값을 Ecount/(i+1)으로 설정한다.
* [알고리듬 5]의 라인 28: [알고리듬 5]의 라인 28은 [알고리듬 5]의 라인 29~34에 나타낸 유의수준 s 값을 변환하기 위한 조건을 나타낸다. 즉, 타임스탬프[i+1]까지 수집한 데이터(튜플)의 수가 ms 값을 넘을 경우에만 Erate 값을 고려하여 유의수준 s 값을 변환하도록 되어 있다. 이때, Erate 값을 고려하여 유의수준 s 값을 변환하기 위한 조건은 두 가지로 나뉠 수 있다. 이에 대해, 이하 [알고리듬 5]의 라인 29 내지 34를 참조하여 설명한다.
* [알고리듬 5]의 라인 29~31: [알고리듬 5]의 라인 29는, [알고리듬 5]의 라인 28의 조건이 만족되는 경우, 유의수준 s 값을 변환하기 위한 첫 번째 조건이다. 즉, 타임스탬프[i+1]까지 수집한 데이터의 오류율(Erate)이 유의수준 s 값의 오류 확률보다 낮고 타임스탬프[i+1]까지 수집한 데이터의 수가 nms 값을 넘는 경우에는, 유의수준 s 값을 0.01만큼 증가시킨다. 이때, 유의수준 s 값이 증가함에 따라 ms 값이 증가하므로 상술한 바와 같이 nms 값을 함께 고려해야 한다. 이때 +0.01이라는 값은 다른 값으로 대체될 수도 있다.
* [알고리듬 5]의 라인 32~34: [알고리듬 5]의 라인 32는, [알고리듬 5]의 라인 28의 조건이 만족되는 경우, 유의수준 s 값을 변환하기 위한 두 번째 조건이다. 즉, 타임스탬프[i+1]까지 수집한 데이터의 오류율이 유의수준 s 값의 오류 확률보다 높은 경우에는, 유의수준 s 값을 0.01만큼 감소시킨다. 이때 -0.01이라는 값은 다른 값으로 대체될 수도 있다.
이하 도 12 및 표 14를 참조하여 본 발명의 또 다른 실시예에 따른 [알고리듬 5]를 적용하여 실시한 실험 결과를 설명한다.
도 12는 본 발명의 또 다른 실시예에 따라 실시한 실험을 통해 얻은 위치데이터의 필터링 결과를 나타낸 그래프이다. 이 실험은 2012년도 서울(대한민국)에서 Iphone 4s, Garmin의 위치 정보 수집 프로그램을 이용해 수집된 데이터를 사용하였다. 해당 프로그램은 사용자의 위치가 바뀔 때마다 해당 위치를 기록하도록 되어 있다. 또한 위치가 변하지 않을 시에는 미리 지정한 시간간격에 따라 위치를 기록하도록 되어 있다. 또한, 이 실험에서는 다양한 방법으로 해당 데이터를 시각화 할 수 있는데 Gnuplot을 이용하여 결과를 그래프로 나타내었다. 또한 ETD값은 7.0으로 설정하였는데 이는 실험에 사용한 위치 정보 수집 시스템의 거리에 대한 허용 오차가 7.0으로 설정되었기 때문이다.
도 12에 도시한 그래프는 2012년 9월 26일 11:00:00부터 24:00:00까지 획득한 실측위치 데이터의 필터링 결과를 나타낸 것이다. 도 12에서, 유의수준(Significant Level)은 해당 시간의 오류 확률을 대변하는 변수이다. 이때, 도 12에 도시한 바와 같이, 각각 11시 10분경, 14시 30분경에서 유의수준이 급격히 하락하는 결과를 확인할 수 있는데 이는 그 시점에 오류율이 급격히 늘어나는 것을 의미한다.
이하 표 14를 참고하여 본 발명의 또 다른 실시예에 따른 유의 수준의 변화 여부에 따른 오류율의 통계량을 비교하여 설명한다.
표 14는 각각 유의수준이 변할 때와 고정되었을 때의 통계량을 비교한 것이다.
표 14를 참고하여 설명하면, 유의수준이 고정되어 있을 때보다 유의수준이 변화할 때 총 데이터의 개수 중 검출된 오류의 개수가 더 많이 검출되는 것을 확인할 수 있다.
이하 본 발명의 또 다른 실시예에 따른 위치교정방법을 [알고리듬 5]를 참조하여 설명한다.
타임스탬프[i+1]에서의 튜플[i+1](Pi +1)의 오류를 검출하기 위한 유의수준 s 값을 변경하기 위해, 후술하는 단계를 수행할 수 있다.
단계(S41)에서, 타임스탬프[i+1]에서의 속도[i+1](Vi +1)에 오류가 있는지 여부를 확인하여 상기 속도[i+1]에 오류가 존재하는 경우, 속도[i+1]를 미리 교정 또는 제한한다(라인 14 내지 16 참조). 이는 또한, 상술한 알고리듬 4의 단계(S11) 및 단계(S12)에 대응된다.
단계(S42)에서는, 타임스탬프[i+1]에서의 가속도[i+1](ai +1)에 오류가 있는지 여부를 확인하여 상기 가속도[i+1]에 오류가 존재하는 경우, 가속도[i+1] 및 속도[i+1]를 미리 교정한다(라인 17 내지 21 참조). 이는 또한, 상술한 알고리듬 4의 단계(S13)에 대응된다.
단계(S43)에서는, 타임스탬프[i](ti)에서의 튜플[i](Pi)에 오류가 있는지 여부를 확인하여 상기 튜플[i]에 오류가 존재하는 경우, 타임스탬프[i+1]에서의 속도[i+1](Vi +1)와 타임스탬프[i] 이전에 획득한 한 개 이상의 속도들을 선형 인터폴레이션하여 상기 타임스탬프[i]에서의 속도[i](Vi)를 추정할 수 있다(라인 22 내지 23 참조). 이는 또한, 상술한 알고리듬 4의 단계(S21) 및 단계(S23)에 대응된다.
이때, 단계(S43)에서 상기 튜플[i]에 오류가 존재하는 경우, 본 발명의 또 다른 실시예에 따른 위치교정방법은 단계(S44)를 더 포함할 수 있다.
단계(S44)에서는, 오류가 존재하는 튜플의 개수를 나타내는 Ecount 값을 증가시킨다(라인 24 참조).
단계(S51)에서는, 타임스탬프[i+1]까지 수집된 튜플의 오류율이 유의수준 s 값의 오류 확률보다 낮은 경우에는 유의수준 s 값을 0.01만큼 증가시킨다(라인 29~31 참조).
단계(S52)에서는, 타임스탬프[i+1]까지 수집된 튜플의 오류율이 유의수준 s 값의 오류 확률보다 높은 경우에는 유의수준 s 값을 0.01만큼 감소시킨다(라인 32 내지 34 참조).
이때, 단계(S51) 및 단계(S52)에서, 타임스탬프[i+1]까지 수집된 튜플의 총 개수가 최소표본크기(ms)를 넘을 경우에만 유의수준 s 값의 변경이 가능하다(라인 28 참조).
단계(S61)에서는, 단계(S51) 및 단계(S52)에 따라 유의수준 s 값이 변경된 경우에는, 최소표본크기 및 다음 최소표본크기 중 하나 이상이 상기 변경된 유의수준 s 값에 기초하여 변경된다(라인 2 내지 4 참조).
이하 표 15 내지 표 18을 참조하여 본 발명의 또 다른 실시예에 따른 위치추정에 관한 [알고리듬 6]을 설명한다.
알고리듬 6은 알고리듬 4에 알고리듬 5의 내용을 결합한 것이다.
한편, 상술한 각 단계들은, 위도, 경도, 및 타임스탬프를 포함하여 이루어지는 튜플에 관한 정보를 수집하도록 되어 있는 위치정보 수집부 및 상기 튜플에 관한 정보를 처리하도록 되어 있는 처리부를 포함하는 사용자기기에서 실행될 수 있다.
상술한 본 발명의 또 다른 실시예에 따른 알고리듬을 통해 2가지 목표를 달성할 수 있다. 첫 번째는 ETD 값의 도입과 실시간 이동 유의 구간 조정을 통해 환경적 변화에 더 유연한 교정을 수행하는 것이다. 두 번째는 유의 수준의 변경을 통해 실시간으로 오류율을 변경하는 것이다. 이러한 결과는 앞으로 위치정보를 이용하는 많은 시스템의 오류를 제거할 수 있을 것이고 또한 실시간 오류율 검출은 국방 시스템 등에서 특정 시간대의 위치 정보 시스템 교란 등을 발견해 내는데 유용할 것이다.
앞으로는 이동 윈도우 크기 변화나 교정하는 방식(현재 선형보간법)의 변화 등을 통해 더 세련된 알고리듬을 개발할 수 있을 것이다. 또한 실시간 오류 확률을 더 사실에 가깝게 추출해 낼 수 있을 것이다.
상술한 알고리듬들에서는 속도가 정규분포를 따르는 것으로 전제로 하여 유의수준값을 설정하였다. 그러나 실제로 속도는 정규분포가 아닌 다른 종류의 분포에 더 잘 피트(fit)될 수 있다. 예컨대 속도가 레일레이(Reyleigh) 분포를 따른다고 가정하면, 이동 윈도우 크기 N에 대하여 이동 윈도우 내부의 속도값 x_i를 이용하여 레일레이 분포의 파라미터를 추정할 수 있다. 그리고 추정된 파라미터와 PDF를 이용하여 확률값 을 실제로 계산할 수 있다. 이때 속도값을 확률변수 X로 나타낼 수 있고, 이동평균 과 이동표준편차 와 이동표준편차 를 구할 수 있다. 실제 계산을 위해서는 CDF()를 이용할 수 있으며, 주어진 파라미터 s에 대하여 확률값, 즉 이동평균 + s*이동표준편차에 해당하는 값을 구할 수 있다. 이에 관한 방정식을 풀면 주어진 확률분포에서 현재의 에러값을 만족하는 s값을 구할 수 있다. 위에 설명한 바와 같이 유의 수준에 관한 파라미터 s값은 속도가 정규 분포 및 레일레이 분포가 아닌 다른 분포를 만족하다는 가정 하에 찾아낼 수 있다.
상술한 본 발명의 실시예들을 이용하여, 본 발명의 기술 분야에 속하는 자들은 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에 다양한 변경 및 수정을 용이하게 실시할 수 있을 것이다. 특허청구범위의 각 청구항의 내용은 본 명세서를 통해 이해할 수 있는 범위 내에서 인용관계가 없는 다른 청구항에 결합될 수 있다.
Claims (9)
- 위치정보 수집장치로부터 수집한 위도, 경도, 및 타임스탬프를 포함하여 이루어지는 튜플에 관한 정보를 처리하기 위해 복수 개의 상기 튜플들에 관한 속도들을 이용하여 생성한 이동유의구간에 관한 값을 이용하는 위치정보 처리방법으로서,
수집된 튜플들에 관한 오류율을 산출하는 단계;
상기 이동유의구간에 관한 값을 산출하는 산출식에 포함되는 유의수준값을, 상기 오류율과 비교하기 위한 비교값으로 변환하는 단계;
상기 오류율과 상기 비교값의 비교결과에 따라 상기 유의수준값을 변경하는 단계;
상기 변경된 유의수준값 및 과거에 수집된 튜플들에 관한 속도들을 이용하여 상기 이동유의구간에 관한 값을 갱신하고, 상기 갱신된 이동유의구간에 관한 값을 새로 수집된 튜플의 속도와 비교하여, 상기 새로 수집된 튜플에 오류가 존재하는지 여부를 판단하는 단계
를 포함하는, 위치정보 처리방법. - 제1항에 있어서,
상기 이동유의구간에 관한 값은, 상기 수집된 튜플들의 속도의 평균값, 상기 수집된 튜플들의 속도의 표준편차값, 및 상기 유의수준값에 의해 산출되는 값인,
위치정보 처리방법. - 제1항에 있어서,
상기 유의수준값을 변경하는 단계는,
상기 오류율이 상기 비교값보다 작은 경우, 상기 유의수준값을 증가시키는 단계; 및
상기 오류율이 상기 비교값보다 큰 경우, 상기 유의수준값을 감소시키는 단계
를 포함하는,
위치정보 처리방법. - 제1항에 있어서,
상기 유의수준값을 변경하는 단계는, 상기 수집된 튜플의 획득 시점까지 모아둔 튜플의 개수가 미리 결정된 규칙에 의해 결정된 최소표본크기보다 큰 경우에만 실행되며,
상기 유의수준값이 변경된 경우에는, 상기 최소표본크기가 상기 변경된 유의수준값에 기초하여 변경되도록 되어 있는,
위치정보 처리방법. - 제1항에 있어서, 상기 유의수준값은 정규분포 또는 레일레이 분포에 기초한 값인, 위치정보 처리방법.
- 제1항에 있어서,
타임스탬프[i+1]에서의 가속도[i+1](ai+1)에 오류가 있는 것으로 판단된 경우; 상기 타임스탬프[i+1](ti+1)에서 획득한 위도[i+1](lati+1)를, 상기 타임스탬프[i]에서의 위도[i](lati)에 상기 타임스탬프[i] 이전의 한 개 이상의 위도값들의 대표값을 적용하여 생성한 보정위도[i+1]로 대체하고; 상기 타임스탬프[i+1]에서 획득한 경도[i+1](loni+1)를, 상기 타임스탬프[i]에서의 경도[i](loni)에 상기 타임스탬프[i] 이전의 한 개 이상의 경도값들을 대표값을 적용하여 생성한 보정경도[i+1]로 대체하는 단계; 및
타임스탬프[i](ti)에서의 튜플[i](Pi)에 오류가 존재하는 것으로 확인된 경우에는, 상기 보정위도[i+1]와 상기 타임스탬프[i] 이전에 획득한 한 개 이상의 위도들을 인터폴레이션하여 상기 타임스탬프[i]에서의 위도[i](lati)를 추정(estimation)하고, 상기 보정경도[i+1]와 상기 타임스탬프[i] 이전에 획득한 한 개 이상의 경도들을 인터폴레이션하여 상기 타임스탬프[i]에서의 경도[i](loni)를 추정하는 단계;
를 더 포함하는,
위치정보 처리방법. - 제1항에 있어서,
상기 새로 수집된 튜플의 속도가, 상기 갱신된 이동유의구간에 관한 값보다 큰 경우, 상기 새로 수집된 튜플에 오류가 존재하는 것으로 판단하는 단계;
상기 새로 수집된 튜플에 오류가 존재하는 것으로 확인된 경우, 상기 새로 새로 수집된 튜플에 관한 정보를 추정값으로 대체하는 단계;
를 더 포함하는,
위치정보 처리방법. - 위치정보 수집장치로부터 수집한 위도, 경도, 및 타임스탬프를 포함하여 이루어지는 튜플에 관한 정보를 처리하기 위해 복수 개의 상기 튜플들에 관한 속도들을 이용하여 생성한 이동유의구간에 관한 값을 이용하도록 되어 있는 위치정보 수집부; 및
상기 수집된 튜플에 관한 정보를 처리하도록 되어 있는 처리부;
를 포함하며,
상기 처리부는,
수집된 튜플들에 관한 오류율을 산출하는 단계;
상기 이동유의구간에 관한 값을 산출하는 산출식에 포함되는 유의수준값을, 상기 오류율과 비교하기 위한 비교값으로 변환하는 단계;
상기 오류율과 상기 비교값의 비교결과에 따라 상기 유의수준값을 변경하는 단계;
상기 변경된 유의수준값 및 과거에 수집된 튜플들에 관한 속도들을 이용하여 상기 이동유의구간에 관한 값을 갱신하고, 상기 갱신된 이동유의구간에 관한 값을 새로 수집된 튜플의 속도와 비교하여, 상기 새로 수집된 튜플에 오류가 존재하는지 여부를 판단하는 단계
를 수행하도록 되어 있는,
위치정보 처리를 수행하는 사용자 기기.
- 삭제
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130072364A KR101467318B1 (ko) | 2013-06-24 | 2013-06-24 | 위치정보 보정방법 |
US14/312,764 US9185523B2 (en) | 2013-06-24 | 2014-06-24 | Method of correcting global position error |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130072364A KR101467318B1 (ko) | 2013-06-24 | 2013-06-24 | 위치정보 보정방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101467318B1 true KR101467318B1 (ko) | 2014-12-02 |
Family
ID=52111340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130072364A KR101467318B1 (ko) | 2013-06-24 | 2013-06-24 | 위치정보 보정방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9185523B2 (ko) |
KR (1) | KR101467318B1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101365993B1 (ko) * | 2011-12-29 | 2014-02-21 | 홍익대학교 산학협력단 | 데이터처리방법, 데이터처리장치, 데이터수집방법, 및 정보제공방법 |
WO2019194764A2 (en) * | 2017-10-25 | 2019-10-10 | Turkcell Teknoloji Arastirma Ve Gelistirme Anonim Sirketi | A system and method for compensating for reduction of measurement precision in location services |
US11429302B2 (en) * | 2020-07-29 | 2022-08-30 | Dell Products L.P. | Data mover selection system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100535394B1 (ko) * | 2003-08-21 | 2005-12-08 | 현대자동차주식회사 | Gps 신호 처리방법 |
JP4119256B2 (ja) * | 2001-03-05 | 2008-07-16 | クゥアルコム・インコーポレイテッド | 初期粗位置推定値に基づいて改良された位置推定値を供給する方法および装置 |
KR20090089343A (ko) * | 2006-11-07 | 2009-08-21 | 스카이후크 와이어리스, 인크. | Wlan 기반의 위치 확인 시스템 내에서 위치 확인 에러를 추정하기 위한 시스템 및 방법 |
JP4348441B2 (ja) * | 2007-01-22 | 2009-10-21 | 国立大学法人 大阪教育大学 | 位置検出装置、位置検出方法、データ判定装置、データ判定方法、コンピュータプログラム及び記憶媒体 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003207556A (ja) * | 2002-01-10 | 2003-07-25 | Hitachi Ltd | 端末位置情報システムにおける端末およびサーバ装置 |
JP4609231B2 (ja) * | 2005-08-05 | 2011-01-12 | 株式会社日立製作所 | 無線位置検出方法およびそのシステム |
JP2012244368A (ja) * | 2011-05-19 | 2012-12-10 | Sony Corp | 無線通信装置、情報処理装置、通信システムおよび位置決定方法 |
GB201200831D0 (en) * | 2012-01-18 | 2012-02-29 | Sensewhere Ltd | Improved positioning system |
CN104205961A (zh) * | 2012-03-29 | 2014-12-10 | 英特尔公司 | 移动设备位置估计的设备、系统和方法 |
-
2013
- 2013-06-24 KR KR1020130072364A patent/KR101467318B1/ko not_active IP Right Cessation
-
2014
- 2014-06-24 US US14/312,764 patent/US9185523B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4119256B2 (ja) * | 2001-03-05 | 2008-07-16 | クゥアルコム・インコーポレイテッド | 初期粗位置推定値に基づいて改良された位置推定値を供給する方法および装置 |
KR100535394B1 (ko) * | 2003-08-21 | 2005-12-08 | 현대자동차주식회사 | Gps 신호 처리방법 |
KR20090089343A (ko) * | 2006-11-07 | 2009-08-21 | 스카이후크 와이어리스, 인크. | Wlan 기반의 위치 확인 시스템 내에서 위치 확인 에러를 추정하기 위한 시스템 및 방법 |
JP4348441B2 (ja) * | 2007-01-22 | 2009-10-21 | 国立大学法人 大阪教育大学 | 位置検出装置、位置検出方法、データ判定装置、データ判定方法、コンピュータプログラム及び記憶媒体 |
Also Published As
Publication number | Publication date |
---|---|
US20140378160A1 (en) | 2014-12-25 |
US9185523B2 (en) | 2015-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10492022B2 (en) | System and method for robust and accurate RSSI based location estimation | |
US9053632B2 (en) | Real-time traffic prediction and/or estimation using GPS data with low sampling rates | |
US9582819B2 (en) | Automated-valuation-model training-data optimization systems and methods | |
EP3045919B1 (en) | System and method for estimating speed of a vehicle | |
CN104994539A (zh) | 一种基于arima模型的无线传感器网络流量异常检测方法 | |
US10382892B2 (en) | Bluetooth device locator | |
JP6159594B2 (ja) | 観測値処理装置、観測値処理方法及び観測値処理プログラム | |
US10356556B2 (en) | Method for locating mobile devices in a common frame of reference | |
KR101467318B1 (ko) | 위치정보 보정방법 | |
CN112954589B (zh) | 一种基于wifi-rtt测距的监听定位系统 | |
TW201335572A (zh) | 目的地估測及顯示方法、裝置及電腦程式產品 | |
JP6541044B2 (ja) | モバイルコンピューティング装置の位置検出方法、及びこれを行うモバイルコンピューティング装置 | |
US9572126B2 (en) | Determining effects on communication signals | |
Ventura et al. | Estimation of urban noise with the assimilation of observations crowdsensed by the mobile application Ambiciti | |
US20150087333A1 (en) | Method for correcting position information | |
KR102155419B1 (ko) | 인공신경망을 기반으로 하는 적응형 거리측정장치 | |
KR101447582B1 (ko) | 위치정보 보정방법 | |
JP5746255B2 (ja) | 訪問poi推定装置、方法、プログラム、及びプログラムを記録したコンピュータ読取り可能な記録媒体 | |
JP2013015418A (ja) | 位置推定サーバ、位置推定方法および位置推定プログラム | |
CN104502889A (zh) | 指纹定位中基于参考点最大距离的定位可信度计算方法 | |
CN110519788B (zh) | 一种物理环境传感器辅助的无线通信链路质量估计方法 | |
KR102580937B1 (ko) | 위치 기반 서비스를 위한 측위 데이터 보정 장치, 방법 및 이를 이용한 측위 데이터 제공 시스템 | |
CN115412852A (zh) | 移动终端的运动轨迹确定方法及系统 | |
US11769518B2 (en) | Sound analysis system, sound analysis method, and program | |
TW201423439A (zh) | 計算隨機誤差的方法與系統 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |