SlideShare a Scribd company logo
MAP MATCHING
определяем популярность дорог по GPS трекам
В чём проблема?
● GPS возвращает координаты, а у нас ГИС
● Данные приходят пачкой (трек из кучи точек)
● В каждой точке 6 знаков после запятой и шумы
○ GPS – не основная функция телефона
○ Город – это сложная среда для GPS
Что будет в докладе
● OSRM
● История моих ошибок при его использовании
● Теория на границе математики и machine learning
● Минимум кода, только ссылки куда смотреть
Копия презентации
http://dragunov.pro/bygis-conference
http://bit.ly/2lHP6ig
Map matching
Map matching is the problem of how to match recorded
geographic coordinates to a logical model of the real world,
typically using some form of Geographic Information System.
The most common approach is to take recorded, serial
location points (eg. from GPS) and relate them to edges in an
existing street graph (network), usually in a sorted list
representing the travel of a user or vehicle.
Где интерес? Посчитаем популярность дорог в NY
https://github.com/Project-OSRM/osrm-backend
РисованиеОбработка
Подготовка
Схема работы
OSM extract contract routed
car.lua
GPX привязка Проездыфильтр
Карта
Подготовка данных
Подготовка данных
- Надо понимать язык программирования Lua
- И объектную модель OSM
+ Язык не сложный
+ Почти всё настраивается в одном файле
+ Есть готовые популярные конфигурации
По пунктам
● Качаем планету или выгрузку с GIS lab
● Правим файл запретов
● Вызываем osrm-extract
● Вызываем osrm-contract
● Запускаем сервер osrm-routed
Правка файла. Зачем?
Задать граф с которым дальше будем работать
● Выкинуть лишние дороги
● Максимально облегчить граф для скорости
● Исправить популярные ошибки и особенности карт
OSM
Граф привязки и роутинга могут различаться
Пример правила которые нужно учитывать
Long Island Expressway HOV-3 Lane Into Queens-Midtown Tunnel
The existing bus and taxi high occupancy vehicle lane (HOV) into the
Queens-Midtown Tunnel is open for any motorists who have three or more
persons in their vehicle (HOV 3+). Motorcycles are permitted and must obey the
same rules as other motorists. The hours of operation are 7:00 am to 10:00 am on
the westbound LIE from Calvary Cemetery to the tunnel.
Правка файла. Где?
Файл osrm-backend/profiles/car.lua
Можно выбрать наиболее подходящий файл для своей
задачи.
Правка файла. Что?
● use_turn_restrictions=false
● oneway=’conditional’
● Убрать строку tolls из секции avoid.
● Обратить внимание на barrier_whitelist,
access_tag_whitelist, access_tag_blacklist
● Speeds не очень важен
Запуск сервера
--max-matching-size arg (=100)
--port (=5000)
--threads (=8)
ЧИТ! Tile plugin
Привязка
Match
● Координаты
● Точность
● Время
● Направление
Как работает match
Каждая точка в отдельности попадает дороги
Проекции на дорогу не равновероятны
GPS1
P1
P2
P3
P4
Каждая точка трека получает свои проекции
GPS1
P1
P2
P3
P4
GPS2
P1
P2
P3
P4
GPS3
P1
P2
P3
P4
GPS4
P1
P2
P3
P4
Переходы между состояниями не равновероятны
GPS2
P1
P2
P3
P4
GPS3
P1
P2
P3
P4
GPS4
P1
P2
P3
P4
GPS1
P2
P3
P4
P1
Задача - найти наиболее вероятный путь
GPS2
P1
P2
P3
P4
GPS3
P1
P2
P3
P4
GPS4
P1
P2
P3
P4
GPS1
P2
P3
P4
P1
Матчер держит в памяти несколько дорог
Теория
Скрытые цепи Маркова
Алгоритм вывода Витерби
Подробнее:Hidden Markov map matching through noise and
sparseness. [Newson, Krumm]
Грабли привязки
Match
● Координаты
● Точность
● Время
● Направление
Координаты
● Должны быть одной природы
● Нужно устранить дребезг
● Лучше всего оставить одну координату на 20 секунд
● На остановках GPS сходит с ума
Точность
Чем точнее координата, тем быстрее работает
На самом деле точность умножается на 3 под капотом
Очень большие значения могут заставить сервер уйти в
себя на часы
Время
● Без времени - петли
● С временем - разрыв трека
если задержка больше 3х
медиан
Направление
● Градусы от севера по часовой
● Точность в градусах
● Фильтрует кандидатов дорог
● Может ускорить при низкой точности
● Нет достоверных источников направления в телефоне
В итоге
● Фильтруем жестоко
● Стараемся стоянки не привязывать
● Ограничиваем максимальную точность
● Дорабатываем алгоритм по выходным данным
Парсим ответ
Ответ OSRM’a тоже настраивается
● Geometries
● Overview
● Steps
● Annotations
Geometries
● Polyline (по умолчанию)
● Polyline6
● GeoJSON -- наш выбор
Overview
● Simpilfied (по умолчанию)
● Full
● False
Steps
Annotations
Время в matching не зависит от timestamps
This is not the function of the match plugin. The result
should always reflect the state of the internal data. It
does not interpolate trace data, it uses it as input to
compute the most probable route given its current
knowledge of the road network. It is basically like asking
OSRM "Hey what do you think this route would look
like".
[Patrick Niklaus (TheMarex)]
Nodes
● Соотносятся с osm_id
● Зная настоящие timestamp’ы можно вычислить
реальную скорость на участке.
● Используются в дополнительных настройках contract
Сбор базы данных
Идентификатор ребра node_id1 - node_id2
Итоговый запрос:
SELECT node_1, node_2, count(*) as cnt from edges_db
group by 1,2;
Визуализация на QGIS
Что я хотел сказать
● Map matching - лучший способ ввести GPS в систему
● Обработанный трек привязывается лучше
● OSRM - одна из самых мощных систем для привязки
● Для работы с GPS не нужен платный софт
Вопросы?
Dragunov.pro
facebook.com/LevDragunov

More Related Content

Similar to Map matching

Слава Машканов - Стартап: опыт разработки GPS/GLONASS трекера на Android
Слава Машканов - Стартап: опыт разработки GPS/GLONASS трекера на AndroidСлава Машканов - Стартап: опыт разработки GPS/GLONASS трекера на Android
Слава Машканов - Стартап: опыт разработки GPS/GLONASS трекера на Android
Minsk Linux User Group
 
ИАСУ железнодорожная логистика
ИАСУ железнодорожная логистикаИАСУ железнодорожная логистика
ИАСУ железнодорожная логистика
Денис Евдокимов
 
Принципы и модели оптимизации логистических систем крупных грузовладельцев
Принципы и модели оптимизации логистических систем крупных грузовладельцевПринципы и модели оптимизации логистических систем крупных грузовладельцев
Принципы и модели оптимизации логистических систем крупных грузовладельцев
Александр Головизнин
 
Автоматизация транспорта
Автоматизация транспортаАвтоматизация транспорта
Автоматизация транспортаsystemgroups
 
ALMADA 2013 (computer science school by Yandex and Microsoft Research)
ALMADA 2013 (computer science school by Yandex and Microsoft Research)ALMADA 2013 (computer science school by Yandex and Microsoft Research)
ALMADA 2013 (computer science school by Yandex and Microsoft Research)Alexey Zinoviev
 
TMPA-2015: Formal Methods in Robotics
TMPA-2015: Formal Methods in RoboticsTMPA-2015: Formal Methods in Robotics
TMPA-2015: Formal Methods in Robotics
Iosif Itkin
 

Similar to Map matching (6)

Слава Машканов - Стартап: опыт разработки GPS/GLONASS трекера на Android
Слава Машканов - Стартап: опыт разработки GPS/GLONASS трекера на AndroidСлава Машканов - Стартап: опыт разработки GPS/GLONASS трекера на Android
Слава Машканов - Стартап: опыт разработки GPS/GLONASS трекера на Android
 
ИАСУ железнодорожная логистика
ИАСУ железнодорожная логистикаИАСУ железнодорожная логистика
ИАСУ железнодорожная логистика
 
Принципы и модели оптимизации логистических систем крупных грузовладельцев
Принципы и модели оптимизации логистических систем крупных грузовладельцевПринципы и модели оптимизации логистических систем крупных грузовладельцев
Принципы и модели оптимизации логистических систем крупных грузовладельцев
 
Автоматизация транспорта
Автоматизация транспортаАвтоматизация транспорта
Автоматизация транспорта
 
ALMADA 2013 (computer science school by Yandex and Microsoft Research)
ALMADA 2013 (computer science school by Yandex and Microsoft Research)ALMADA 2013 (computer science school by Yandex and Microsoft Research)
ALMADA 2013 (computer science school by Yandex and Microsoft Research)
 
TMPA-2015: Formal Methods in Robotics
TMPA-2015: Formal Methods in RoboticsTMPA-2015: Formal Methods in Robotics
TMPA-2015: Formal Methods in Robotics
 

Map matching