O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

맵매칭 (부정확한 GPS포인트들로부터 경로 추정하기)

3.207 visualizações

Publicada em

김상균(curt.k) / kakaomobility corp.(데이터랩)
---
맵매칭은 도로 네트워크에 차량의 위치 측정치를 매핑하여 정확한 모빌리티 사용자의 위치와 이동경로를 추정하는 과정으로, 내비게이션 길안내, 택시/대리 등의 이동경로 기반한 요금 산정, 교통흐름 분석, 이동 방향 결정 등에 활용된다.
GPS 위치가 정확하고 업데이트 주기가 빠른 경우 GPS를 가까운 도로 네트워크 상에 매핑만 하면 되지만, 실 서비스에서는 실내, 도심, 터널 등의 환경에서 GPS 위치가 부정확하고, 수 십 초 이상 수신기 되지 않는 상황이 빈번하게 발생되어 확률 모델 적용이 필요하다.
발표에서는 위 같은 상황에 대응 가능하도록 자체 개발된 Hidden Markov Model(HMM) 기반 맵매칭 알고리즘과 일평균 수백만 이동 경로에 적용된 서비스 시스템에 대해 설명하고, 실 데이터 처리 분석 결과를 공유한다.

Publicada em: Software
  • Entre para ver os comentários

맵매칭 (부정확한 GPS포인트들로부터 경로 추정하기)

  1. 1. 맵매칭 (부정확한 GPS포인트들로 부터 경로 추정하기) 김상균(curt.k) kakaomobility corp.(데이터랩)
  2. 2. 1000원
  3. 3. 맵매칭 - 일련의 gps point를 - 도로네트웍의 link에 매칭하는 작업
  4. 4. 맵매칭 ▲ GPS 포인트 — GPS 라인
  5. 5. 맵매칭 ▲ GPS 포인트 — GPS 라인 맵매칭 포인트 — 맵매칭 라인
  6. 6. 맵매칭 ▲ GPS 포인트 — GPS 라인 맵매칭 포인트 — 맵매칭 라인 ● 도로네트웍 노드 — 도로네트웍 링크
  7. 7. 맵매칭 ▲ GPS 포인트 — GPS 라인 맵매칭 포인트 — 맵매칭 라인 ● 도로네트웍 노드 — 도로네트웍 링크
  8. 8. 맵매칭 방식 버스 / 내비처럼 정해진 경로를 가정할때
  9. 9. 맵매칭 방식 버스 / 내비처럼 정해진 경로를 가정할때
  10. 10. 맵매칭 방식 버스 / 내비처럼 정해진 경로를 가정할때
  11. 11. 맵매칭 방식 정해진 경로없이 전체 네트웍을 대상으로 할때
  12. 12. 어떻게 할까? ▲ ▲ ▲ ▲ ▲ ▲ ▲ t=0 t=1 t=2 t=3 t=4 t=5 t=6
  13. 13. 어떻게 할까? ▲ ▲ ▲ ▲ ▲ ▲ ▲ 가장 가까운 노드에 붙여보자
  14. 14. 어떻게 할까? ▲ ▲ ▲ ▲ ▲ ▲ ▲ 가장 가까운 노드에 붙여보자 t=2, 3 네트웍상 이동거리가 0이다 t=5, 6 네트웍상 이동거리가 0이다 t=0 t=1 t=2 t=3 t=4 t=5 t=6
  15. 15. 어떻게 할까? ▲ ▲ ▲ ▲ ▲ ▲ ▲ 가장 가까운 노드에 붙여보자 t=0 t=1 t=2 t=3 t=4 t=5 t=6
  16. 16. 어떻게 할까? ▲ ▲ ▲ ▲ ▲ ▲ ▲ 가장 가까운 노드에 붙여보자 t=0 t=1 t=2 t=3 t=4 t=5 t=6 t=4, 5 네트웍상 이동거리가 다른 것에 비해 크다 이 구간이 중복됨
  17. 17. 어떻게 할까? ▲ ▲ ▲ ▲ ▲ ▲ ▲ 가장 가까운 링크에 붙여보자 t=0 t=1 t=2 t=3 t=4 t=5 t=6
  18. 18. 어떻게 할까? ▲ ▲ ▲ ▲ ▲ ▲ ▲ 가장 가까운 링크에 붙여보자 t=0 t=1 t=2 t=3 t=4 t=5 t=6
  19. 19. 어떻게 할까? ▲ ▲ ▲ ▲ 가장 가까운 링크에 붙여보자 t=0 t=1 t=2 t=3 t=3까지만 데이터가 있으면 이 경로가 맞을 수도 있다.
  20. 20. 어떻게 할까? ▲ ▲ ▲ ▲ ▲ ▲ ▲ 가장 가까운 링크에 붙여보자 t=0 t=1 t=2 t=3 t=4 t=5 t=6 t=4,5,6을 보면 이 경로의 확률이 낮아짐
  21. 21. 어떻게 할까? ▲ ▲ ▲ ▲ ▲ ▲ ▲ 가장 가까운 링크에 붙여보자 t=0 t=1 t=2 t=3 t=4 t=5 t=6 ● ●
  22. 22. 어떻게 할까? ▲ ▲ ● ● ● t=3 t=4 이전 포인트와의 관계를 고려하자 C31 C32 C4
  23. 23. 어떻게 할까? - 도로네트웍 노드 보다는 링크에 붙이자 - 링크에 가까우면 확률이 높다 - 가장 가까운 한점 보다는 GPS에러를 고려하여 여러 후보를 유지하자 - 이전 포인트와의 관계를 고려하자
  24. 24. Hidden Markov Model L1 L2 L3 L5 L4 L6 L7 — link
  25. 25. Hidden Markov Model ▲▲ ▲ t=3 t=2 t=1 — link ▲ gps L1 L2 L3 L5 L4 L6 L7
  26. 26. Hidden Markov Model ▲▲ ▲ t=3 t=2 t=1 — link ▲ gps L1 L2 L3 L5 L4 L6 L7
  27. 27. Hidden Markov Model ▲▲ ▲ t=3 t=2 t=1 ● — link ▲ gps ● candidate L1 L2 L3 L5 L4 L6 L7
  28. 28. Hidden Markov Model ▲▲ ▲ t=3 t=2 t=1 ● ● ● — link ▲ gps ● candidate L1 L2 L3 L5 L4 L6 L7
  29. 29. Hidden Markov Model ▲▲ ▲ t=3 t=2 t=1 ● ● ● ● ● — link ▲ gps ● candidate L1 L2 L3 L5 L4 L6 L7
  30. 30. Hidden Markov Model ▲▲ ▲ t=3 t=2 t=1 ● ● ● ● ● ● ● ● ● ● — link ▲ gps ● candidate t=1 t=2 t=3 L1 L2 L3 L5 L4 L6 L7 L1 L4 L3 L5 L7
  31. 31. Hidden Markov Model ● ● ● ● L1 L4 L3 L5 ● L7 — link ▲ gps ● candidate t=1 t=2 t=3 ▲▲ ▲ t=3 t=2 t=1 ● ● ● ● ● L1 L2 L3 L5 L4 L6 L7
  32. 32. Hidden Markov Model ▲▲ ▲ t=3 t=2 t=1 ● ● ● ● ● ● ● ● ● ● — link ▲ gps ● candidate t=1 t=2 t=3 L1 L2 L3 L5 L4 L6 L7 L1 L4 L3 L5 L7
  33. 33. Hidden Markov Model ▲▲ ▲ t=3 t=2 t=1 ● ● ● ● ● ● ● ● ● ● — link ▲ gps ● candidate t=1 t=2 t=3 L1 L2 L3 L5 L4 L6 L7 L1 L4 L3 L5 L7
  34. 34. Hidden Markov Model ▲▲ ▲ t=3 t=2 t=1 ● ● ● ● ● ● ● ● ● ● — link ▲ gps ● candidate t=1 t=2 t=3 L1 L2 L3 L5 L4 L6 L7 L1 L4 L3 L5 L7
  35. 35. ● ● ● ● L1 L4 L3 L5 ● L7 t=1 t=2 t=3 ● ● ● ● ● t=1 t=2 t=3 L1 L4 L3 L5 L7 ● ● ● ● ● t=1 t=2 t=3 L1 L4 L3 L5 L7 ● ● ● ● ● t=1 t=2 t=3 L1 L4 L3 L5 L7
  36. 36. ▲▲ ▲ ● ● ● ● ● ▲▲ ▲ ● ● ● ● ● ▲▲ ▲ ● ● ● ● ● ▲▲ ▲ ● ● ● ● ●
  37. 37. ▲ ● 거리(d) gps candidate Emission확률) gps-candidate 거리에 따른 확률
  38. 38. Transition확률) candidate 사이의 확률 ▲ ▲ t=2 t=1 ● ● ● | gps사이의 거리 - 네트웍이동경로의 거리 | C11 C21 C22
  39. 39. ▲▲ ▲ t=3 t=2 t=1 ● ● ● ● ● ● ● ● ● ● — link ▲ gps ● candidate t=1 t=2 t=3 L1 L2 L3 L5 L4 L6 L7 L1 L4 L3 L5 L7 가장 확률이 높은 path?
  40. 40. 가장 확률이 높은 path? ● ● ● ● ● L1 L4 L3 L5 L7
  41. 41. ● ● ● ● ● 0.9 0.6 L1 L4 L3 L5 L7 0.9 0.7 0.5 0.8 0.7 0.5 0.8 0.5 0.3 Emission 확률 & Transition확률
  42. 42. ● ● ● ● ● 0.9 0.6 L1 L4 L3 L5 L7 0.9 0.7 0.5 0.8 0.7 0.5 0.8 0.5 0.3 0.9 * 0.7 * 0.6 * 0.8 * 0.7 최적경로
  43. 43. ▲▲ ▲ t=3 t=2 t=1 ● ● ● ● ● ● ● ● ● ● — link ▲ gps ● candidate t=1 t=2 t=3 L1 L2 L3 L5 L4 L6 L7 L1 L4 L3 L5 L7 가장 확률이 높은 path?
  44. 44. ● ● ● ● ● L1 L4 L3 L5 L7 Viterbi(Dynamic Programming) t=1 t=2 t=3 ● ● L8 L9 t=4 새로운 점이 추가
  45. 45. ● ● Viterbi(Dynamic Programming) t=n-1 ● ● t=n 0.8 0.7 0.5 0.8 0.5 0.3 누적된 확률 0.4938 0.3464
  46. 46. 맵매칭 예제
  47. 47. 맵매칭 예제
  48. 48. 맵매칭 예제 복잡한 도로 네트웍(램프구간)
  49. 49. 맵매칭 예제
  50. 50. 맵매칭 예제
  51. 51. 예제
  52. 52. 예제 판교-광교(운행시간 40분)
  53. 53. 예제
  54. 54. 메모리 적게 사용하기
  55. 55. viterbi incremental viterbi 이미지 출처 : Jason Bobbin. An Incremental Viterbi Algorithm for Large Sequence Hidden Markov Models 마지막 노드들이 모두 하나의 부모에 연결될때 Window를 나눈다. Window1 Window2
  56. 56. viterbi incremental viterbi 이미지 출처 : Jason Bobbin. An Incremental Viterbi Algorithm for Large Sequence Hidden Markov Models Window1 Window2 window2의 마지막 노드들의 어떤 노드가 선택되더라도 window1의 최적 path변하지 않는다.
  57. 57. viterbi 실 그래프
  58. 58. viterbi 현재 flush incremental viterbi
  59. 59. viterbi 현재 flush incremental viterbi
  60. 60. 맵매칭 정리 • 일정반경(gps정확도에 따라 다름)안에서 link로 가장 가까운 점을 찾는다 • emission확률 : gps와 link사이의 거리 (정규분포) • transition확률 : gps직선거리와 네트웍경로거리의 차이 (지수분포) • 최대확률(viterbi) • 메모리 적게 사용(incremental viterbi)
  61. 61. PreFilter GPS 튀는 현상
  62. 62. PreFilter GPS 튀는 현상
  63. 63. PreFilter GPS 튀는 현상
  64. 64. PreFilter GPS 튀는 현상 속도(km/h) 버림
  65. 65. PreFilter 안정 불안정 튐: 버퍼를 비움 튐 정상 정상 버퍼에 저장된 포인트가 n개이상 정상이면 예 아니오: 버퍼에 포인트를 추가
  66. 66. PostFilter 차량 진행방향의 좌우 GPS오류
  67. 67. PostFilter 차량 진행방향의 GPS오류
  68. 68. PostFilter 중복 차량 진행방향의 GPS오류
  69. 69. PostFilter ▲ ▲ ▲ ▲ ● ●● ● t=1 t=2 t=3 t=4 맵매칭이후 중복제거
  70. 70. PostFilter ▲ ▲ ▲ ● ● t=1 t=2 t=3 ● 맵매칭이후 중복제거
  71. 71. 맵매칭 Pipe PreFilter MapMatcher PostFilter
  72. 72. 맵매칭 Pipe PreFilter MapMatcher PostFilter▲▲▲▲ ● ● ● ● ● ● ●
  73. 73. 맵매칭 구현 Kafka Hazelcast: 분산Map Kafka gps topic 맵매칭 topic 맵매칭 프로세스 (1) (2) (3) (4) PipePipe
  74. 74. 맵매칭 활용 - Raw gps로 부터 운행경로의 gps오류를 보정 (앱미터기) - Raw gps로 부터 도로 네트웍 Link의 속도를 집계 - Raw gps로 부터 좌회전, 우회전 가능 여부 판단
  75. 75. 맵매칭 활용 Raw GPS 경로
  76. 76. 맵매칭 활용 현재위치 정확도 개선 A B C
  77. 77. 맵매칭 활용 내비 속도 정확도 개선 안내경로 GPS경로
  78. 78. 맵매칭 활용 내비 속도 정확도 개선 안내경로 GPS경로 [기존 Link 속도 데이터] [기존 Link 속도 데이터]
  79. 79. 정리 - GPS오류 - 정확한 요금산정 - Hidden Markov Model(Emission확률, Transition확률) - 가장 확률이 높은 경로(viterbi) - PreFilter - PostFilter
  80. 80. Hidden Markov Map Matching Through Noise and Sparseness by Paul Newson & John Krumm An Incremental Viterbi Algorithm for Large Sequence Hidden Markov Models by Jason Bobbin Reference
  81. 81. Q/A
  82. 82. 카카오모빌리티 데이터랩에서는

×