SlideShare uma empresa Scribd logo
1 de 83
Baixar para ler offline
맵매칭
(부정확한 GPS포인트들로 부터 경로 추정하기)
김상균(curt.k)
kakaomobility corp.(데이터랩)
1000원
맵매칭
- 일련의 gps point를
- 도로네트웍의 link에 매칭하는 작업
맵매칭
▲ GPS 포인트
— GPS 라인
맵매칭
▲ GPS 포인트
— GPS 라인
맵매칭 포인트
— 맵매칭 라인
맵매칭
▲ GPS 포인트
— GPS 라인
맵매칭 포인트
— 맵매칭 라인
● 도로네트웍 노드
— 도로네트웍 링크
맵매칭
▲ GPS 포인트
— GPS 라인
맵매칭 포인트
— 맵매칭 라인
● 도로네트웍 노드
— 도로네트웍 링크
맵매칭 방식
버스 / 내비처럼 정해진 경로를 가정할때
맵매칭 방식
버스 / 내비처럼 정해진 경로를 가정할때
맵매칭 방식
버스 / 내비처럼 정해진 경로를 가정할때
맵매칭 방식
정해진 경로없이 전체 네트웍을 대상으로 할때
어떻게 할까?
▲
▲
▲
▲ ▲
▲ ▲
t=0
t=1
t=2
t=3
t=4
t=5 t=6
어떻게 할까?
▲
▲
▲
▲ ▲
▲ ▲
가장 가까운 노드에 붙여보자
어떻게 할까?
▲
▲
▲
▲ ▲
▲ ▲
가장 가까운 노드에 붙여보자
t=2, 3 네트웍상
이동거리가 0이다
t=5, 6 네트웍상
이동거리가 0이다
t=0
t=1
t=2
t=3
t=4
t=5 t=6
어떻게 할까?
▲
▲
▲
▲ ▲
▲ ▲
가장 가까운 노드에 붙여보자
t=0
t=1
t=2
t=3
t=4
t=5 t=6
어떻게 할까?
▲
▲
▲
▲ ▲
▲ ▲
가장 가까운 노드에 붙여보자
t=0
t=1
t=2
t=3
t=4
t=5 t=6
t=4, 5 네트웍상 이동거리가
다른 것에 비해 크다
이 구간이 중복됨
어떻게 할까?
▲
▲
▲
▲ ▲
▲ ▲
가장 가까운 링크에 붙여보자
t=0
t=1
t=2
t=3
t=4
t=5 t=6
어떻게 할까?
▲
▲
▲
▲ ▲
▲ ▲
가장 가까운 링크에 붙여보자
t=0
t=1
t=2
t=3
t=4
t=5 t=6
어떻게 할까?
▲
▲
▲
▲
가장 가까운 링크에 붙여보자
t=0
t=1
t=2
t=3
t=3까지만 데이터가
있으면 이 경로가 맞을 수도
있다.
어떻게 할까?
▲
▲
▲
▲ ▲
▲ ▲
가장 가까운 링크에 붙여보자
t=0
t=1
t=2
t=3
t=4
t=5 t=6
t=4,5,6을 보면 이 경로의
확률이 낮아짐
어떻게 할까?
▲
▲
▲
▲ ▲
▲ ▲
가장 가까운 링크에 붙여보자
t=0
t=1
t=2
t=3
t=4
t=5 t=6
●
●
어떻게 할까?
▲ ▲
●
●
●
t=3 t=4
이전 포인트와의 관계를 고려하자
C31
C32 C4
어떻게 할까?
- 도로네트웍 노드 보다는 링크에 붙이자

- 링크에 가까우면 확률이 높다

- 가장 가까운 한점 보다는 GPS에러를 고려하여 여러 후보를 유지하자

- 이전 포인트와의 관계를 고려하자
Hidden Markov Model
L1
L2
L3
L5
L4
L6
L7
— link
Hidden Markov Model
▲▲
▲
t=3
t=2
t=1
— link
▲ gps
L1
L2
L3
L5
L4
L6
L7
Hidden Markov Model
▲▲
▲
t=3
t=2
t=1
— link
▲ gps
L1
L2
L3
L5
L4
L6
L7
Hidden Markov Model
▲▲
▲
t=3
t=2
t=1
●
— link
▲ gps
● candidate
L1
L2
L3
L5
L4
L6
L7
Hidden Markov Model
▲▲
▲
t=3
t=2
t=1
●
●
●
— link
▲ gps
● candidate
L1
L2
L3
L5
L4
L6
L7
Hidden Markov Model
▲▲
▲
t=3
t=2
t=1
●
●
●
●
●
— link
▲ gps
● candidate
L1
L2
L3
L5
L4
L6
L7
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
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
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
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
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
● ●
●
●
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
▲▲
▲
●
●
●
●
●
▲▲
▲
●
●
●
●
●
▲▲
▲
●
●
●
●
●
▲▲
▲
●
●
●
●
●
▲
●
거리(d)
gps
candidate
Emission확률) gps-candidate 거리에 따른 확률
Transition확률) candidate 사이의 확률
▲
▲
t=2
t=1
●
●
●
| gps사이의 거리 - 네트웍이동경로의 거리 |
C11
C21
C22
▲▲
▲
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?
가장 확률이 높은 path?
● ●
●
●
●
L1 L4
L3
L5
L7
● ●
●
●
●
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확률
● ●
●
●
●
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
최적경로
▲▲
▲
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?
● ●
●
●
●
L1 L4
L3
L5
L7
Viterbi(Dynamic Programming)
t=1 t=2 t=3
●
●
L8
L9
t=4
새로운 점이 추가
●
●
Viterbi(Dynamic Programming)
t=n-1
●
●
t=n
0.8
0.7
0.5
0.8
0.5
0.3
누적된 확률
0.4938
0.3464
맵매칭 예제
맵매칭 예제
맵매칭 예제
복잡한 도로 네트웍(램프구간)
맵매칭 예제
맵매칭 예제
예제
예제
판교-광교(운행시간 40분)
예제
메모리 적게 사용하기
viterbi
incremental viterbi
이미지 출처 : Jason Bobbin. An Incremental Viterbi Algorithm for Large Sequence Hidden Markov Models
마지막 노드들이 모두 하나의 부모에 연결될때 Window를 나눈다.
Window1 Window2
viterbi
incremental viterbi
이미지 출처 : Jason Bobbin. An Incremental Viterbi Algorithm for Large Sequence Hidden Markov Models
Window1 Window2
window2의 마지막 노드들의 어떤 노드가 선택되더라도 window1의 최적 path변하지 않는다.
viterbi
실 그래프
viterbi
현재
flush
incremental viterbi
viterbi
현재
flush
incremental viterbi
맵매칭 정리
• 일정반경(gps정확도에 따라 다름)안에서 link로 가장 가까운 점을 찾는다
• emission확률 : gps와 link사이의 거리 (정규분포)
• transition확률 : gps직선거리와 네트웍경로거리의 차이 (지수분포)
• 최대확률(viterbi)
• 메모리 적게 사용(incremental viterbi)
PreFilter
GPS 튀는 현상
PreFilter
GPS 튀는 현상
PreFilter
GPS 튀는 현상
PreFilter
GPS 튀는 현상
속도(km/h)
버림
PreFilter
안정 불안정 튐: 버퍼를 비움
튐
정상
정상
버퍼에 저장된 포인트가 n개이상 정상이면
예
아니오: 버퍼에 포인트를 추가
PostFilter
차량 진행방향의 좌우 GPS오류
PostFilter
차량 진행방향의 GPS오류
PostFilter
중복
차량 진행방향의 GPS오류
PostFilter
▲ ▲
▲ ▲
● ●● ●
t=1 t=2
t=3 t=4
맵매칭이후 중복제거
PostFilter
▲
▲
▲
● ●
t=1
t=2
t=3
●
맵매칭이후 중복제거
맵매칭 Pipe
PreFilter MapMatcher PostFilter
맵매칭 Pipe
PreFilter MapMatcher PostFilter▲▲▲▲
● ●
●
●
●
● ●
맵매칭 구현
Kafka
Hazelcast: 분산Map
Kafka
gps topic 맵매칭 topic
맵매칭 프로세스
(1)
(2)
(3)
(4)
PipePipe
맵매칭 활용
- Raw gps로 부터 운행경로의 gps오류를 보정 (앱미터기)
- Raw gps로 부터 도로 네트웍 Link의 속도를 집계
- Raw gps로 부터 좌회전, 우회전 가능 여부 판단
맵매칭 활용
Raw GPS 경로
맵매칭 활용
현재위치 정확도 개선
A
B
C
맵매칭 활용
내비 속도 정확도 개선
안내경로
GPS경로
맵매칭 활용
내비 속도 정확도 개선
안내경로
GPS경로
[기존 Link 속도 데이터] [기존 Link 속도 데이터]
정리
- GPS오류
- 정확한 요금산정
- Hidden Markov Model(Emission확률, Transition확률)
- 가장 확률이 높은 경로(viterbi)
- PreFilter
- PostFilter
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
Q/A
카카오모빌리티 데이터랩에서는

Mais conteúdo relacionado

Mais procurados

[0903 구경원] recast 네비메쉬
[0903 구경원] recast 네비메쉬[0903 구경원] recast 네비메쉬
[0903 구경원] recast 네비메쉬
KyeongWon Koo
 
Ndc2012 최지호 텍스쳐 압축 기법 소개
Ndc2012 최지호 텍스쳐 압축 기법 소개Ndc2012 최지호 텍스쳐 압축 기법 소개
Ndc2012 최지호 텍스쳐 압축 기법 소개
Jiho Choi
 
일관된 경험을 주는 브랜드 만들기.pdf
일관된 경험을 주는 브랜드 만들기.pdf 일관된 경험을 주는 브랜드 만들기.pdf
일관된 경험을 주는 브랜드 만들기.pdf
Tac Min Oh
 
이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012
devCAT Studio, NEXON
 

Mais procurados (20)

스타트업은 데이터를 어떻게 바라봐야 할까? (개정판)
스타트업은 데이터를 어떻게 바라봐야 할까? (개정판)스타트업은 데이터를 어떻게 바라봐야 할까? (개정판)
스타트업은 데이터를 어떻게 바라봐야 할까? (개정판)
 
데이터는 차트가 아니라 돈이 되어야 한다.
데이터는 차트가 아니라 돈이 되어야 한다.데이터는 차트가 아니라 돈이 되어야 한다.
데이터는 차트가 아니라 돈이 되어야 한다.
 
[0903 구경원] recast 네비메쉬
[0903 구경원] recast 네비메쉬[0903 구경원] recast 네비메쉬
[0903 구경원] recast 네비메쉬
 
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편
 
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
 
공간정보, 디지털 트윈, 그리고 스마트 시티
공간정보, 디지털 트윈, 그리고 스마트 시티공간정보, 디지털 트윈, 그리고 스마트 시티
공간정보, 디지털 트윈, 그리고 스마트 시티
 
인프런 - 스타트업 인프랩 시작 사례
인프런 - 스타트업 인프랩 시작 사례인프런 - 스타트업 인프랩 시작 사례
인프런 - 스타트업 인프랩 시작 사례
 
Ndc12 이창희 render_pipeline
Ndc12 이창희 render_pipelineNdc12 이창희 render_pipeline
Ndc12 이창희 render_pipeline
 
자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.
자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.
자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.
 
개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro
 
QGIS를 활용한 공간분석 입문(1일 6시간)
QGIS를 활용한 공간분석 입문(1일 6시간)QGIS를 활용한 공간분석 입문(1일 6시간)
QGIS를 활용한 공간분석 입문(1일 6시간)
 
오픈소스 GIS의 이해와 활용(육군사관학교 특강)
오픈소스 GIS의 이해와 활용(육군사관학교 특강)오픈소스 GIS의 이해와 활용(육군사관학교 특강)
오픈소스 GIS의 이해와 활용(육군사관학교 특강)
 
서비스 기획자를 위한 데이터분석 시작하기
서비스 기획자를 위한 데이터분석 시작하기서비스 기획자를 위한 데이터분석 시작하기
서비스 기획자를 위한 데이터분석 시작하기
 
Massive service basic
Massive service basicMassive service basic
Massive service basic
 
Facebook prophet
Facebook prophetFacebook prophet
Facebook prophet
 
Ndc2012 최지호 텍스쳐 압축 기법 소개
Ndc2012 최지호 텍스쳐 압축 기법 소개Ndc2012 최지호 텍스쳐 압축 기법 소개
Ndc2012 최지호 텍스쳐 압축 기법 소개
 
Recast Detour.pptx
Recast Detour.pptxRecast Detour.pptx
Recast Detour.pptx
 
일관된 경험을 주는 브랜드 만들기.pdf
일관된 경험을 주는 브랜드 만들기.pdf 일관된 경험을 주는 브랜드 만들기.pdf
일관된 경험을 주는 브랜드 만들기.pdf
 
이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012
 
로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법
 

Mais de if kakao

Mais de if kakao (20)

바닥부터 시작하는 Vue 테스트와 리팩토링
바닥부터 시작하는 Vue 테스트와 리팩토링바닥부터 시작하는 Vue 테스트와 리팩토링
바닥부터 시작하는 Vue 테스트와 리팩토링
 
카카오커머스를 지탱하는 Angular
카카오커머스를 지탱하는 Angular카카오커머스를 지탱하는 Angular
카카오커머스를 지탱하는 Angular
 
프렌즈타임 웹앱 삽질기
프렌즈타임 웹앱 삽질기프렌즈타임 웹앱 삽질기
프렌즈타임 웹앱 삽질기
 
카프카 기반의 대규모 모니터링 플랫폼 개발이야기
카프카 기반의 대규모 모니터링 플랫폼 개발이야기카프카 기반의 대규모 모니터링 플랫폼 개발이야기
카프카 기반의 대규모 모니터링 플랫폼 개발이야기
 
TOROS N2 - lightweight approximate Nearest Neighbor library
TOROS N2 - lightweight approximate Nearest Neighbor libraryTOROS N2 - lightweight approximate Nearest Neighbor library
TOROS N2 - lightweight approximate Nearest Neighbor library
 
딥러닝을 이용한 얼굴 인식
딥러닝을 이용한 얼굴 인식딥러닝을 이용한 얼굴 인식
딥러닝을 이용한 얼굴 인식
 
딥러닝을 활용한 뉴스 메타 태깅
딥러닝을 활용한 뉴스 메타 태깅딥러닝을 활용한 뉴스 메타 태깅
딥러닝을 활용한 뉴스 메타 태깅
 
눈으로 듣는 음악 추천 시스템
눈으로 듣는 음악 추천 시스템눈으로 듣는 음악 추천 시스템
눈으로 듣는 음악 추천 시스템
 
Keynote / 2018
Keynote / 2018Keynote / 2018
Keynote / 2018
 
카카오 봇 플랫폼 소개
카카오 봇 플랫폼 소개카카오 봇 플랫폼 소개
카카오 봇 플랫폼 소개
 
다음웹툰의 UX(Animation, Transition, Custom View)
다음웹툰의 UX(Animation, Transition, Custom View)다음웹툰의 UX(Animation, Transition, Custom View)
다음웹툰의 UX(Animation, Transition, Custom View)
 
모바일 게임플랫폼과 인프라 구축 경험기
모바일 게임플랫폼과 인프라 구축 경험기모바일 게임플랫폼과 인프라 구축 경험기
모바일 게임플랫폼과 인프라 구축 경험기
 
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
 
카카오뱅크 모바일앱 개발 이야기
카카오뱅크 모바일앱 개발 이야기카카오뱅크 모바일앱 개발 이야기
카카오뱅크 모바일앱 개발 이야기
 
다음 모바일 첫 화면 개선기
다음 모바일 첫 화면 개선기다음 모바일 첫 화면 개선기
다음 모바일 첫 화면 개선기
 
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
 
액티브X 없는 블록체인 기반 PKI 시스템
액티브X 없는 블록체인 기반 PKI 시스템액티브X 없는 블록체인 기반 PKI 시스템
액티브X 없는 블록체인 기반 PKI 시스템
 
Klaytn: Service-Oriented Enterprise-Grade Public Blockchain Platform
Klaytn: Service-Oriented Enterprise-Grade Public Blockchain PlatformKlaytn: Service-Oriented Enterprise-Grade Public Blockchain Platform
Klaytn: Service-Oriented Enterprise-Grade Public Blockchain Platform
 
Kakao Cloud Native Platform, 9rum
Kakao Cloud Native Platform, 9rumKakao Cloud Native Platform, 9rum
Kakao Cloud Native Platform, 9rum
 
카프카, 산전수전 노하우
카프카, 산전수전 노하우카프카, 산전수전 노하우
카프카, 산전수전 노하우
 

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