Увидел poi и открыл карточку компании что это
Osmand — программа для Android, которая позволяет работать с офлайн картами OpenStreetMap и не только, использовать голосовую навигацию, запись, отображение и навигацией GPX треков, а также ряд возможностей по редактированию OSM. Судя по предыдущему топику , среди хабровчан достаточно большое число пользователей данной программы, которые бы хотели узнать тонкости работы данной программы.
Конечно, написание руководств для пользователей в последнее время считается плохим тоном, так как пользовательский интерфейс должен быть абсолютно понятен всем и в любой ситуации, но реальность, к сожалению, говорит об обратном. Особенно это критично, когда пользователи не понимают базовых понятий приложения или руководствуются заниженной или завышенной оценкой к его возможностям.
Osmand, как и большинство Linux приложений, предназначен, для всех, поэтому конкретную целевую аудиторию даже сложно назвать. Это является и плюсом и минусом приложения. В принципе все open source развиваются по этому сценарию, потому как сообщество постоянно добавляет маленькие и нужные патчи и редко добавляет большие и нужные. Так и получаются приложения с кучей настроек, кучей перекрывающихся функций и тысячами сценариев использования.
- Карта — векторные и растровые карты, различные настройки
- Экран Карты — индикаторы на главном экране приложения и контекстное меню
- Настройки приложения — профили настроек и обзор базовых настроек
- Фоновый сервис — работа приложения с выключенным экраном и с заданным периодом включения
- Мониторинг — запись GPX треков
- Навигация — онлайн и офлайн навигация
- Поиск — поиск POI, транспорта, адреса
- OSM редактирование — POI и Osm bugs
Карта
Существует 2 вида карт: векторные и растровые. Растровые карты — это карты, которые представлены картинками (тайлами), векторные карты — это бинарный набор данных, по которым еще предстоит нарисовать тайлы для отображения. В общем принципиальное различие в том, что растровые карты рисуются очень быстро и занимают очень много места для детализированных областей. Для примера Google Maps/Yandex maps — растровые карты, Garmin/Navitel — векторные. При первой загрузке Osmand использует растровые карты, причем подгружает их из интернета на SD карточку, потом эти карты используются. Векторные карты нужно загрузить в специальном диалоге — Настройки → Индексы → Загрузить индексы. Для того, чтобы переключаться между картами, используйте меню → Слои → Карта источник…
Растровые карты
Растровые карты достаточно удобны, если вам критична скорость отображения и вы не хотите засорять SD карточку, имея под рукой интернет. По умолчанию, создается 2 источника растровых карт, но вы можете загрузить другие через «Установить..». В момент установки источника, создается папка на SD карточке (/sdcard/osmand/tiles/), куда и будут загружаться все тайлы. Удалив эту папку, программа будет считать, что источника нету. Это достаточно удобный способ составлять список источников по своему усмотрению.
Так же, существует способ для того, чтобы создать свой источник тайлов (Собственный рендеринг, WMS). Если зайти /sdcard/osmand/tiles/, то можно найти файл .metainfo, который и содержит всю необходимую информацию о загрузке тайлов. Более простой способ и лучший использовать OsmandMapCreator. При помощи этой программы можно выделить и загрузить интересуемую (большую) область, а затем скопировать ее на SD карточку. Загрузить большую область можно и используя Wifi на телефоне: контекстное меню → Загрузить карту. Главное преимущество использования PC для подготовки карты в том, что можно тайлы поместить в один файл (Create sqlite database), после этого скопировать файл в osmand/tiles/. Это очень важно для Flash Карт, так как большое количество файлов чрезмерно ухудшает работу файловой системы. SQlite файл так же будет догружать тайлы из интернета.
Существуют настройки для тех, кто следит за интернет трафиком (Настройки — Карта/Общие): можно отключить интернет вообще для загрузки тайлов и можно указать уровень детализации (zoom level), начиная с которого не надо грузить тайлы. Например, для автомобильной навигации вполне достаточно 14-15, так как Osmand может увеличивать тайлы в 2-4 раза соответственнов 16-17, экономия трафика очевидна :)
Векторные карты
Для отображения векторных карт необходимо загрузить эти самые карты. На экране отобразится огромный список загрузок с фильтром, список загрузок совпадает с Downloads. Рекомендуется загрузить помимо своего региона 1) Голосовые данные и 2) Basemap (Карту мира 1-7 зум 3 Mb). Преимущество векторных карт то, что они умеют поворачиваться и поддерживают разные стили рендеринга. Стили рендеринга зависят от текущего Профиля (описано ниже), но их можно указать вручную. Можно даже создать свой стиль и поместить его в (osmand/rendering), некоторые даже создают карты с профилем высот. Так же векторные карты меняют свой стиль в зависимости от дня и ночи (можно найти в настройках) и могут транслитерировать названия в английские.
Векторные карты могут быть достаточно медленны на маленькой детализации, поэтому существует опция, перехода в растровые карты при зуме
Карты подложки и покрытия
В приложении имеется возможность использовать любую карту в качестве подложки или покрытия с необходимым уровнем прозрачности. Естественно это замедляет процесс рендеринга + тратит очень драгоценную для приложения память (может падать).
Экран карты
На экране карты отображаются в зависимости от ситуации индикатор скорости, индикатор времени прибытия (при нажатии индикатор оставшегося времени), индикатор детализации (зум), индикатор расстояния от центра карты до точки назначения (при нажатии переходит в точку назначения), стрелка — кнопка вернуться в текущее положение, компас (при нажатии вращает карту по компасу или отключает вращение), профиль настроек (при нажатии можно выбрать).
Точка назначения отображается на карте красной точкой с флажком, когда она не видна, то появляется красная стрелка, которая указывает направление + на экране всегда видно расстояние до нее, что является достаточно удобным при пешей навигации. Точку назначения можно выбрать через любой поиск (Идти к), иногда надо использовать долгое нажатие, или через контекстное меню карты. При прокладке маршрута точка назначения должна быть выбранной. Ее можно убрать через Меню → Снять отметку.
Контекстное меню карты — это меню, действия которого привязано к выбранной точке на карте. Можно выбрать 3 способами: нажатие трекпоинта, долгое нажатие на карте + нажатие на появившейся областе (долго нажатие скрывает область), через меню. В этом меню выбранная точка 1) может быть выбрана как точка назначения 2) может использоваться как отправная точка маршрута (только для просмотра) 3) будет отправной для поиска POI, транспорта 4) может быть отправлена другу через SMS, email 5)…
Общие настройки и профили настроек
В приложение существуют общие настройки и настройки профиля. Общие настройки:
— ориентация экрана — можно установить, чтобы карта не сбивалась, когда несешь телефон в руке
— директория приложения — можно поменять /sdcard/osmand.
— локализация, единицы измерения расстояния, использование трекпоинта…
В приложении существует 4 профиля: по умолчания (обзор карты), авто, велосипед и пешеход. Все настройки выбранные в каждом профиле хранятся в нем. К примеру, для пешехода было выбрано всегда отоброжать дневной рендеринг, соответственно при смене на авто — эта настройка будет сброшена и будет установлена другая как автомасштабирование. При навигации профиль настроек меняется автоматически. Существуют настройки по умолчанию для каждого профиля, но все их можно менять и настраивать.
На данный момент карты и слои, хотя и отображаются в настройках, являются отдельными настройками приложения и не меняются по профилям.
Поиск
Искать можно по координатам, по адресу, избранные, POI, транспорт и в истории поиска. Для адреса, POI, транспорта необходимы векторные данные. Можно визуализировать поиск на карте, включив необходимые слои (Меню → Слои), слой POI фильтра, слой избранных или слой транспортных остановок. Для всех поисков активны 2 кнопки, «показать на карте» и «идти к», для избранных, истории опция «идти к» появляется при долгом нажатии. Попасть в поиск можно нажав кнопку поиск на устройстве. На поиск влияет опция «показать английские имена».
Адрес
Все довольно просто: выбираете регион (название векторных карт), город, улицу и т.д. Так же существует опция искать через Osm Nominatim, использует интернет и рекомендуется тем, кто знает как надо формировать запросы.
Для поиска POI применяются фильтры. Редактируемые и созданные пользователем, отображаются звездочкой, стандартные OSM — папкой. Для редактирования необходимо долго нажатие на фильтре или выбрать новый фильтр, далее через меню фильтр можно «сохранить как» или «удалить». При выборе фильтра появляются 2 опции: искать рядом с собой (потребуется время пока приложение найдет спутники) или искать вокруг последнего выбранного участка карты. Существует способ отфильтровать найденные POI по имени — кнопка меню → фильтр.
Избранные
Добавить в избранные можно через контекстное меню на карте. Существует также отдельная опция «заменить», для динамических избранных, таких как машина, отель, место последней встречи в лесу :) Избранные точки можно экспортировать и импортировать (файл GPX), важно при удалении приложения и установке заново. Не рекомендуется импортировать большое количество избранных точек, лучше для этого использовать слой «GPX файл».
Транспорт
Поиск транспорта можно назвать также как прокладка маршрута вручную. При поиске необходима начальная точка (конечная по усмотрению), поэтому поиск транспорта доступен из контекстного меню карты. Надпись искать транспорт до цели кликабельна, в одном случае цель учитывается, в другом нет. При поиске транспорта — результаты сортируются по наименьшей сумме от старта до маршрута + от маршрута до назначения. При выборе некоторого маршрута, предлагается выбрать остановку, на которой выходить. После этого поиск будет повторен, но начальной точкой будет уже точка остановки предыдущего маршрута (Искать после). Таким образом можно построить маршрут с пересадками, но остановки пересадок придется выбирать вручную.
Фоновый сервис
Фоновый сервис может быть полезен, если вы хотите отключить экран и не использовать GPS непрерывно. Фоновый сервис запускает позиционирование GPS через определенные промежутки времени и выполняет 2 функции: запись GPX трека и навигация (включая голосовую). Включить фоновый сервис можно в настройках.
Навигация и прокладка маршрута
Для того, чтобы проложить маршрут, необходимо выбрать точку следования, а затем Меню — маршрут. Существует 2 режима для построения маршрута: следовать (навигация) и просмотр маршрута. Посмотреть информацию о проложенном маршруте можно Меню — Маршрут — О маршруте. При выборе режима следовать — автоматически меняется профиль и маршрут прокладывается от текущего местоположения, при этом включается голосовая навигация.
Мониторинг и GPX файлы
Мониторинг и запись GPX файлов в /sdcard/osmand/tracks включена по умолчанию для некоторых профилей (авто, велосипед), поэтому история ваших движений хранится в GPX файлах по дням. Эти настройки можно отключить и включить для других профилей, выбрав желаемый интервал слежения.
В приложении можно просмотреть записанные треки, а также созданные другими пользователями. Для этого необходимо, чтобы GPX файлы находились в /sdcard/osmand/tracks. Включить можно через Слои — GPX, при этом все сегменты будут отображены линиями на карте, а все точки в треке будут отображены как избранные. Они также будут доступны в списке избранных, пока включен слой.
В любой момент в записываемый GPX файл можно добавить точку с описанием, сделать это можно через контекстное меню карты. Это бывает полезно для записи некоторых POI при отсутствии интернета.
Другое
- В приложении есть функции для редактирования и комментирования OSM карт: слой Osm bugs, создание/редактирование POI (через контекстное меню), создание Osm bugs. Для редактирования POI необходимо указать свой логин в настройках.
- Не забывайте просматривать полезные советы (иконка вопросик): там публикуются последние изменения в приложении.
- Можно создавать собственные векторные карты, например, для отображения geocaching как POI. Для этого необходимо сконвертировать исходные данные в Osm формат и проиндексировать его используя OsmAndMapCreator.
P.S. Если я что-то упустил, какие-то интересные и маленькие моменты, буду добавлять в «другое».
В прошлых двух статьях мы познакомились с основами процесса и начали разбирать кейс по работе с AR. Прочитайте, чтобы оставаться в курсе событий.
Мы рады представить заключительную третью часть (юху!), в которой подробнее обсудим возможности движка и узнаем:
- Как анимировать 3D объект для AR. Отобразим текст по нажатию на объект.
- Как показать 3D объект по заданным координатам как POI (точку интереса).
- Как показать 3D объект относительно Вас.
Выводы
Эмпирические модели могут быть полезны и эффективны на начальных этапах запуска фич и в условиях ограниченности ресурсов, потому что они могут дать результат быстро и дёшево. Главное — формировать предположения, исходя из глубокого понимания логики продукта, его природы и поведения пользователей.
POI (англ. point of interest ) — достопримечательность или другой объект, отмеченный точкой на карте.
По мнению человека, создавшего эту точку, информация о ней может оказаться интересной или полезной. К примеру, это могут быть отели, заправки, магазины, музеи, храмы, парковки, вокзалы, источники пресной воды, удачные места для фотосъёмки, памятники и т. д. [1] Термин POI широко используется в картографии, особенно в электронной, включая ГИС и GPS-навигационное программное обеспечение.
Полноценная POI содержит информацию о координатах (широта и долгота), название, описание и другие параметры, в том числе высота, номер телефона. В приложениях для навигации обычно POI отображаются в виде тематических иконок.
Примечание
Дорожные POI – это дорожные объекты и места повышегго внимания: камеры, радары, "лежачие полицейские", стационарные и передвижные посты ДПС, железнодорожные переезды и другие.
Общие POI – это все прочие точки POI: АЗС, шиномонтажи, автосалоны, автосервисы, достопримечательности, гостиницы, метро, магазины, кафе, аптеки, банкоматы и множество других объектов, включая государственные, муниципальные и социальные службы.
Результаты 1.0
Проверили алгоритм больше чем на 450 млн объектов. Среди них доля объектов с откликом, равным 1, составляет примерно 5%. Полнота алгоритма — 0.153, точность — 0.401, а F-мера — 0.303.
Качество такого алгоритма может показаться недопустимо низким. Дело в том, что в число объектов для классификации входят объекты, которые мы не можем отнести к долгосрочным интересам на основе данных метрик — пользователи интересовались ими слишком мало, чтобы делать какие-то выводы.
Только 3% объектов интересовали пользователя больше двух дней за обучающий период. В этом нет ничего удивительного: туда входят объекты из сфер с низким retention. Таких много, они могут быть очень крупными — например, аптеки, бары или просто объекты, которые не заинтересовали пользователя.
Среди объектов с откликом, равным 1, такой процент выше — 22%. Это тоже мало, но объясняется большим периодом между посещениями объекта.
Если исключить такие объекты, то при тех же параметрах модели полнота вырастает с 0.153 до 0.684 при той же точности в 0.401, а F-мера с акцентом на точности становится равной 0.437 — классическая, конечно, выше.
Однако при таком виде модели остаётся ещё две проблемы. Во-первых, у пользователей разный уровень активности: кто-то пользуется приложением раз в день, а кто-то — раз в месяц. Поэтому использование общего порогового значения и одних параметров весовой функции может занижать качество классификации.
Во-вторых, у объектов может быть разная частота посещения в зависимости от их сферы деятельности. Например, за продуктами в гипермаркет пользователь ездит стабильно раз в неделю, в парикмахерскую ходит раз в месяц, а при простуде может посещать поликлинику так часто, как скажет врач. Так что мы можем упускать объекты с большими интервалами посещения.
Содержание
POI обязательно имеют определенные географические координаты (широту и долготу), которые определяют положение данной точки на карте. Кроме этого, POI могут содержать дополнительную информацию, например:
Как правило, POI сгруппированы по типам объектов (например, «проживание», «питание», «культура» и т. д.) и отображаются на карте с помощью соответствующих иконок.
Навигационные программы поддерживают поиск POI по типу, имени и/или адресу, поэтому база POI может использоваться во время путешествий как справочник. Кроме этого, в некоторых программах ближайшие POI отображаются на карте во время движения по маршруту.
Цифровые карты для современных GPS-устройств чаще всего содержат базовую коллекцию POI для региона этой карты.
Также существуют сайты, созданные для хранения, поиска и распространения POI, благодаря которым пользователь может загрузить новые POI в своё устройство или заменить существующие [2] . Некоторые из этих сайтов являются общими, другие специализируются на отдельных категориях объектов (например, родники, тайники [3] , места отдыха) или GPS-устройствах (например, TomTom/Garmin). Владельцы устройств также могут создавать собственные коллекции.
Объекты POI или точки интереса (от англ. points of interest) – это объекты инфраструктуры, достопримечательности, природные объекты и важные точки на дорогах, координаты и информация о которых нанесены на GPS карту.
К точкам POI относятся: гостиницы, рестораны, АЗС, больницы, магазины, кинотеатры, музеи, банкоматы, аптеки и множество других объектов. Также к точкам POI относятся стенции метро, вокзалы, аэропорты и прочие транспортные узлы. Отдельно выделяются дорожные POI: это посты ДПС, "лежачие полицейские", камеры, радары, железнодорожные переезды и прочие зоны повышенного внимания. Точки POI могут сопровождаться аудио предупреждениями.
В программе АВТОСПУТНИК 5 набор объектов POI полностью интегрирован в карту. Расширение этого набора невозможно.
Для программы АВТОСПУТНИК 3 Вы можете скачать дополнительные наборы POI, который можно доустановить на навигатор.
Пара слов о 3D моделях и анимации
Мы уже видели приложение для загрузки изображений для распознавания. Так вот, у Wikitude есть редактор для загрузки моделей и анимации. Инструмент называется Wikitude 3D encoder.
С его помощью вы можете загрузить контент из файлов типа *.fbx или *.dae, и впоследствии экспортировать в дружелюбном для Wikitude формате *.wt3.
3D модель в редакторе Wikitude 3D encoder
Пример с 3D моделью мы уже разобрали, давайте поговорим об анимации. Анимацию можно экспортировать из специального ПО, или запрограммировать самостоятельно. В первом случае для этого использовалась программа Autodesk maya.
Пример анимации прямо в редакторе. Обратите внимание, в правой части появились все доступные анимации.
Немного кода никогда не помешает:
Таким образом, запустится анимация. Сам оригинал анимации заложен в файле вида *.wt3
Разнообразим задачу: запрограммируем анимацию. Сделаем так, чтобы модель появлялась с анимацией при распознавании картинки.
Остаётся чуть–чуть подредактировать функции инициализации трекера и мы получим вот такой пример:
Мы рассмотрели два подхода к анимации:
— Созданная ранее и уложенная в файл формата *.wt3
— Запрограммированная вручную
POI vs Избранное
Чтобы оценить, достаточно ли для нас таких результатов, мы решили сравнить персонализированные нами POI с объектами, которые пользователь персонализировал сам — с Избранным.
У персонализированных POI и Избранного похожая цель — запомнить места, в которые хочется вернуться. Похож и внешний вид — они отмечены иконками на карте и имеют примерно один и тот же масштаб отображения. Разница во внешнем виде: значок у всех объектов Избранного всегда один и тот же — белый флажок на оранжевом или красном фоне, а у персонализированных POI цвет и пиктограмма иконки меняется и зависит от отрасли объекта.
Персонализированные POI ещё и подскажут текстом, что за объект нас интересовал — в отличие от иконок Избранного без подписей
Оказалось, что доля пользователей с кликами в персональные POI больше, чем доля пользователей с кликами в Избранное с карты — в два раза среди тех, кому POI вообще были подобраны, и в полтора раза среди всех пользователей.
Фактически, мы сделали для пользователя обновляемое Избранное на карте, за которым ему не надо следить и вообще что-либо самому делать. Это довольно неплохой результат — поэтому есть смысл развивать персональные POI и дальше.
Пара слов о 3D моделях и анимации
Мы уже видели приложение для загрузки изображений для распознавания. Так вот, у Wikitude есть редактор для загрузки моделей и анимации. Инструмент называется Wikitude 3D encoder.
С его помощью вы можете загрузить контент из файлов типа *.fbx или *.dae, и впоследствии экспортировать в дружелюбном для Wikitude формате *.wt3.
3D модель в редакторе Wikitude 3D encoder
Пример с 3D моделью мы уже разобрали, давайте поговорим об анимации. Анимацию можно экспортировать из специального ПО, или запрограммировать самостоятельно. В первом случае для этого использовалась программа Autodesk maya.
Пример анимации прямо в редакторе. Обратите внимание, в правой части появились все доступные анимации.
Немного кода никогда не помешает:
Таким образом, запустится анимация. Сам оригинал анимации заложен в файле вида *.wt3
Разнообразим задачу: запрограммируем анимацию. Сделаем так, чтобы модель появлялась с анимацией при распознавании картинки.
Остаётся чуть–чуть подредактировать функции инициализации трекера и мы получим вот такой пример:
Мы рассмотрели два подхода к анимации:
— Созданная ранее и уложенная в файл формата *.wt3
— Запрограммированная вручную
Как обновить точки POI
Только для АВТОСПУТНИК 3
Скачайте архив c дополнительными точками POI для нужной страны. Распакуйте файл, удалите из каталога \POI-waypoints\ старый файл для обновляемой страны (road_poi* для дорожных POI или poi* для общих) и замените его новым. Если старый файл не удалить, на карте появятся дубликаты точек POI.
Искать по-русски
А как обстоят дела с POI у чисто русских оболочек? Вот аппарат с программой «Навител-Навигатор». Здесь карты России собственной разработки, база данных по точкам — тоже.
И это заметно: импортные продукты стараются не грузить водителя обилием ярлычков на экране, а «Навител» буквально пестрит ими.
Здесь есть все: рестораны и автосервисы, больницы и кладбища, религиозные организации, магазины, парковки Причем, если зарубежные аналоги хорошо знают только Москву и Питер, то здесь можно найти точки интереса даже в отдаленных городках.
Но система поиска, как и общая структура меню в «Навителе», не образец. На главном экране вместо всем известной аббревиатуры POI мы нашли только загадочный пункт «Ближайшие». Видимо, это слово, по мнению разработчиков, является синонимом точек интересов.
Поиск возле заданной точки тоже выглядит довольно странно. Сначала надо выбрать пункт «рядом с курсором», затем ткнуть в неприметный треугольничек внизу экрана. Зато больше придраться не к чему — структура поиска позволяет найти нужный объект быстро и уверенно.
Категории точек интересов прописаны как надо. А уж их количество как в поиске, так и на карте заслуживает самой высокой оценки.Категории точек интересов прописаны как надо. А уж их количество как в поиске, так и на карте заслуживает самой высокой оценки.
Еще один минус: «Навител», как и большинство других отечественных навигационных программ, отлично ориентируется на родине, но в заграничное турне с ним ехать бессмысленно. В лучшем случае найдете карты Прибалтики и Финляндии.
Данные
В качестве потенциальных объектов для POI логично брать те, к которым пользователь уже проявлял интерес. А среди них искать такие, к которым он вернётся с наибольшей вероятностью. При этом желательно, чтобы объекты интересовали пользователя как можно дольше — чтобы он привык искать их на карте.
Но как классифицировать эти данные? Можно разметить выборку объектов, обогатить множеством признаков и применить бустинг или нейронные сети. Но можно пойти другим путём — и придумать эмпирическое правило.
Угадай
Примечание
Дорожные POI — это дорожные объекты и места повышегго внимания: камеры, радары, «лежачие полицейские», стационарные и передвижные посты ДПС, железнодорожные переезды и другие.
Общие POI — это все прочие точки POI: АЗС, шиномонтажи, автосалоны, автосервисы, достопримечательности, гостиницы, метро, магазины, кафе, аптеки, банкоматы и множество других объектов, включая государственные, муниципальные и социальные службы.
Первый алгоритм
Первым делом сформировали выборку вида
— n-мерный вектор признаков i-го объекта, а в качестве объекта классификации рассматриваем все объекты, которыми интересовался пользователь за определённое время до даты расчёта. В нашем случае это два месяца.
— класс i-го объекта — отклик, который принимает значение, равное 1, если пользователь посетил фирмы в контрольный период времени, и 0, если не посетил.
Так как нам важны объекты, которые будут долго интересны пользователю, то в качестве контрольного периода выбрали месяц через две недели после даты расчёта. Этот лаг в две недели нужен, чтобы не захватить в число успешных объекты мгновенного/краткосрочного интереса — те, которые пользователь ищет прямо в дату расчёта или рядом с ней, но не факт, что вернётся к ним. Успешными считаем объекты с y=1 — то есть те, к которым пользователь вернулся во время контрольного периода.
Правило , которое множеству признаков объекта Х ставит в соответствие его класс Y, выглядит так:
где k — общее количество дней (или любой другой единицы времени) в обучающей выборке.
равно 1, если в день с номером i пользователь интересовался объектом, иначе 0. Номер дня равен 1 в первый день обучающей выборки и k в последний.
— параметр, отвечающий за скорость изменения значимости дня взаимодействия с объектом по мере удаления от даты расчёта.
Идея в том, что чем дальше день, когда пользователь интересовался объектом, тем меньший вес будет у этого дня при оценке этого объекта. Параметры функции и подбираются путём максимизации целевой переменной:
где F — это F-мера с соответствующим соотношением желаемой точности и полноты модели. В этой задаче основной акцент на точности алгоритма, поэтому брали параметр .
Ваш мир
Для первой оценки возьмем прибор с одной из самых популярных навигационных оболочек iGo и картами России и Европы от NAVTEQ. Кстати, только эта программа позволяет использовать библиотеки POI разных производителей. На тестовом аппарате нашей стране посвящено два файла — от компаний NAVTEQ и TeleAtlas. Значит, база данных будет полнее. Впрочем, это лишь полдела: не менее важно, чтобы нужный объект было легко найти.
С этим у iGo проблем нет: в первую очередь пользователю предлагают типичные для путешественника-автомобилиста запросы: АЗС, парковки, рестораны и гостиницы. Можно перейти в более глубокий поиск — вдоль проложенного маршрута, рядом с текущей или конечной позициями, а также в определенном городе. Конечно, выбор объектов интереса не ограничен жизненно необходимыми. И все же некоторые позиции озадачивают.
Кому-то не понравится, что на основном экране карты нет ярлычков интересных мест. Кому-то не понравится, что на основном экране карты нет ярлычков интересных мест.
Простой пример: в категории «Побережье» скрываются отнюдь не набережные и пляжи, а пристани и яхтклубы. Впрочем, это мелочи.
Тем более, что поставить программу в тупик непросто. Найти аэропорт, цирк, музей и гостиницу — с подобными задачами iGo справляется на «отлично». Но если туристу захочется отъехать от города, могут начаться сложности.
Например, хотите отыскать известный монастырь Оптина Пустынь? После нескольких неудачных экспериментов решение нашлось: путем поиска по имени объекта около текущей позиции.
Как обновить точки POI
Только для АВТОСПУТНИК 3
Скачайте архив c дополнительными точками POI для нужной страны. Распакуйте файл, удалите из каталога POI-waypoints старый файл для обновляемой страны (road_poi* для дорожных POI или poi* для общих) и замените его новым. Если старый файл не удалить, на карте появятся дубликаты точек POI.
Объекты POI или точки интереса (от англ. points of interest) — это объекты инфраструктуры, достопримечательности, природные объекты и важные точки на дорогах, координаты и информация о которых нанесены на GPS карту.
К точкам POI относятся: гостиницы, рестораны, АЗС, больницы, магазины, кинотеатры, музеи, банкоматы, аптеки и множество других объектов. Также к точкам POI относятся стенции метро, вокзалы, аэропорты и прочие транспортные узлы. Отдельно выделяются дорожные POI: это посты ДПС, "лежачие полицейские", камеры, радары, железнодорожные переезды и прочие зоны повышенного внимания. Точки POI могут сопровождаться аудио предупреждениями.
Как загрузить точки в Ваш Nissan Connect:
1. Вам понадобится Flash-карта, лучше всего отформатированная в формате FAT. На карте необходимо будет создать папки со следующей последовательностью
X:myPOIsmyPOIWarningsspeedcam.csv, где X — имя диска флэшки.
2. Необходимо загрузить свежие точки POI с ресурса mapcam.info/speedcam/, где вы должны зарегистрироваться, что бы получить доступ к загрузке.
Снимок
Выбираем необходимые нам данные
(Во вкладке "дополнительные опции" можно выбрать тот тип POI, которые Вам нужны)
Снимок2
После чего нажимаем кнопку ЗАГРУЗИТЬ и к вам на компьютер скачивается архив с файлом в фортмате .CSV, который нам надо будет переименовать в speedcam.csv и положить по пути, указанном выше.
3. Подключаем флешку в USB и Nissan Connect находит данные POI и спрашивает, загрузить ли их. Соглашаемся. Ждём окончания операции.
4. Вынимаем флэшку и можно ехать. Навигатор Nissan Connect будет предупреждать о радарах звуковым сигналом и надписью на экране.
Файл не должен превышать более 2мб в размере, иначе Nissan Connect не сможет их загрузить!
Что же такое POI? Система, прописанная в навигаторе, поможет быстро найти в незнакомом городе ближайшие больницу, магазин, кинотеатр и т. п. Но все это в теории — а как на деле?
Точки POI :: Объекты для карты GPS навигации АВТОСПУТНИК
Объекты POI или точки интереса (от англ. points of interest) — это объекты инфраструктуры, достопримечательности, природные объекты и важные точки на дорогах, координаты и информация о которых нанесены на GPS карту.
К точкам POI относятся: гостиницы, рестораны, АЗС, больницы, магазины, кинотеатры, музеи, банкоматы, аптеки и множество других объектов. Также к точкам POI относятся стенции метро, вокзалы, аэропорты и прочие транспортные узлы. Отдельно выделяются дорожные POI: это посты ДПС, «лежачие полицейские», камеры, радары, железнодорожные переезды и прочие зоны повышенного внимания. Точки POI могут сопровождаться аудио предупреждениями.
В программе АВТОСПУТНИК 5 набор объектов POI полностью интегрирован в карту. Расширение этого набора невозможно.
Для программы АВТОСПУТНИК 3 Вы можете скачать дополнительные наборы POI, который можно доустановить на навигатор.
Эмпирическое правило
У эмпирического правила есть и плюсы, и минусы. Да, это даст более слабое качество классификации. Но главное преимущество — мы можем быстро и легко проверить востребованность POI. Подготовка данных, обучение такой модели и её внедрение займёт значительно меньше времени, чем, например, бустинг. А если фича окажется успешной как для пользователя, так и для компании, мы всегда сможем переключиться на более сложные и затратные модели.
Для эмпирических моделей важен хороший контекст в предметной области. Исследуя поведение пользователей в продукте, мы выяснили, что вероятность повторного обращения пользователя к продукту (retention rate) имеет экспоненциальное распределение.
Такое свойство есть не только у retention rate продукта, но и у многих других явлений, связанных с повторным обращением — например, повторное обращение к объекту, как в нашем случае. Это знание помогло нам разработать алгоритмы по определению «домашнего» города для пользователя, краткосрочных и долгосрочных пользовательских интересов.
Итог эксперимента на бою
Декомпозиция данных и ввод дополнительных параметров значительно улучшили качество модели. Значит, более сложные модели могут повысить качество результата. Но прежде чем улучшать алгоритм, решили проверить фичу на бою и посмотреть, понравится ли она пользователям.
Персонализированные POI чуть больше обычных и появляются на карте раньше них
За месяц 500 000 пользователей сделали 1 млн кликов по персонализированным POI. Это примерно 12% от тех пользователей, кому мы их подобрали — но это не значит, что остальные пользователи не обратили на них внимание.
Примерно 40% от тех, кому подобрали персонализированные объекты, обращались к этим объектам другими способами. И это тоже хорошо — значит, есть потребность в персонализации не только на карте, но и в других составляющих продукта.
Как отобразить надпись
Самый частый кейс — вывести текст. Это довольно просто. Итак:
Давайте разберем, что у нас получилось:
- Создаётся окошко для текста.
- Появляется 3D модель.
- При загрузке присваивается анимация поворота.
- При нажатии на модель появляется надпись в окошке.
При нажатии на эту модель у нас появляется надпись в окошке. В окошке также есть кнопка анимации. Она появляется только при распознавании объекта и анимирует машину по-своему.
Второй алгоритм
Чтобы учесть эти проблемы, мы добавили в функцию признак, показывающий максимальный период пользовательского интереса, и немного иначе учли интенсивность посещения объекта и его актуальность. Разделили пользователей на три группы по частоте посещения продукта. Для каждой из них подобрали свои параметры этой модели:
k — количество дней в обучающей выборке.
— номер последнего дня взаимодействия пользователя с объектом (равен 1 в первый день обучающей выборки и k в последний).
— количество дней взаимодействия пользователя с объектом в рассматриваемом периоде.
— количество дней между первым и последним днём взаимодействия пользователя с объектом в рассматриваемом периоде.
— параметры функции, которые подбираются путём максимизации целевой переменной (в нашем случае это F-мера) аналогичным для первой модели образом.
Дополнительные объекты POI для АВТОСПУТНИК 3
Только для АВТОСПУТНИК 3
Результаты 2.0
Оценили параметры и получили следующие результаты по кластерам пользователей.
Кластер | Полнота | Точность | F-мера |
---|---|---|---|
1. Объекты пользователей, которые заходят в 2ГИС реже трёх раз в месяц | 0.072 | 0.349 | 0.197 |
2. Объекты пользователей, которые заходят в 2ГИС чаще трёх раз в месяц | 0.162 | 0.457 | 0.335 |
3. Объекты пользователей, которые заходят в 2ГИС чаще десяти раз в месяц | 0.194 | 0.514 | 0.386 |
Итого по 2-му алгоритму | 0.177 | 0.492 | 0.363 |
Итого по 1-му алгоритму | 0.153 | 0.401 | 0.303 |
F-мера увеличилась для всех кластеров, кроме первого — ему соответствует самая неактивная часть аудитории и на неё приходится не так много объектов.
Количество истинно-положительных объектов увеличилось на 17%. Прирост в точности составил 9.1%, а в полноте — 2.4%. Общая F-мера увеличилась на 6%.
Если исключить объекты с слишком маленьким количеством уникальных дней, то при тех же параметрах модели полнота вырастает с 0.177 до 0.802 (для первой модели 0.684, то есть прирост на 11.8%) при той же точности в 0.492 (для первой модели 0.401, то есть прирост на 9.1%). И если исходя из этого оценить F-меру , то для второго алгоритма она будет 0.533, а для первого 0.437, то есть прирост составляет 9.6%.
Геолокация и POI
POI — points of interests, объект, отмеченный на карте пином.
В нашем случае, под POI подразумеваются объект, который находится от нас слишком далеко. Когда мы находимся с ним в радиусе 100 метров, он перестаёт быть для нас точкой в мире, а преобразуется в модель внутри доп. реальности и мы получаем возможность с ним взаимодействовать.
Возникает вопрос: почему нельзя использовать модель сразу?
Как вы видели по игре Pokemon go, покемоны возникают перед вами в определённой точке. Получается, они не привязаны к своей геопозиции, они привязаны к вашей геопозиции и вы для них являетесь центром вселенной (точкой 0.0.0), от которой идет отсчет.
Это связано с несколькими моментами, самый явный — датчик GPS, по которому указываются объекты по geo. Его бросает на 50 метров туда и обратно. Это было особенно заметно на карте, когда вы сначала с одной стороны дома, а потом вдруг с другой.
Второй нюанс заключается в том, что POI мы отображаем в виде 2D картинки и его размеры не зависят от расстояния до точки. В противном случае, работая с 3D надо высчитывать размеры и динамически менять при их приближении, что на мой взгляд, значительно усложняет работу.
Прежде всего запускаем датчик отслеживания geo:
Далее, нам нужно сделать несколько вещей:
— Добавить точку интереса. Сделаем это в методе loadPoisFromJsonData
— Добавить 3D модель. Выше мы это уже сделали. Сейчас просто обернем в функцию createModelAtLocation() и добавим триггер + прикрепим к geo.
— Отслеживать расстояние до заданной точки и принимать соответствующие меры.
На расстоянии от нас видим POI
Приближаем объект и видим 3D модель с анимацией постоянного поворота
Давайте подведем итог нашей работы над кейсом. Вот что мы получили:
— Распознавание рисунка.
— Наложение анимации на 3D модель в месте распознавания.
— 3D модель, которая находится далеко от нас по геопозиции и отражается в виде POI.
— Преображение POI в 3D модель при приближении.
— Обработка нажатий, отображение надписей.
— 3D модель вместо привязки по гео привязывается к нашей геопозиции и располагается относительно нас.
При этом у нас совершенно не было никаких проблем с загрузкой картинки для распознавания или загрузкой 3D модели/анимации. Весь процесс интуитивно понятен и прост.
Надеюсь, вы сможете найти полезное применение всему, что я написал. Я понимаю, что это не единственный вариант. Поэтому, буду рад вашим предложениям в комментариях.
Всем дополненная реальность, мир и жвачка!
P.S.
Изначально я и думать не смел, что тема растянется на целых три статьи. Парадокс в том, что это далеко не всё. Данная сфера чрезвычайно интересна и трудна. Буквально вчера компания Google заявила о закрытии Google Tango, поскольку в нём отпала необходимость, ведь ARCore и так замечательно справляется с задачей. Ну, а что творится на рынке нейронных сетей тут и говорить не приходится.
Мы в 2ГИС хотим облегчить пользовательскую поисковую рутину и потому стремимся предугадывать запросы пользователей. Под катом расскажем про то, как мы придумали алгоритм для персонализации интересных мест и что из этого вышло.
POI (point of interest) — маленькая круглая иконка на карте. Обозначает место или компанию, которые могут представлять интерес для пользователя.
Вот они — POI 2ГИС. У каждой рубрики своя иконка
Объекты POI — популярные у большинства городские объекты в разных рубриках. А хочется учитывать ещё и интересы каждого пользователя отдельно. Поэтому мы решили добавить на карту персонализированные POI, которые будут отвечать за это.
Удачно подобранные POI ещё и сокращают цепочку шагов поиска на карте. Обычно пользователь ищет что-то так: открыл приложение → ввёл поисковый запрос → просмотрел выдачу → открыл карточку объекта.
С персонализированными POI пользователь может без поискового запроса сориентироваться на карте и найти информацию: открыл приложение → увидел нужный POI на карте → открыл карточку объекта.
Карта без персонализированных POI и с ними — интересными для пользователя рестораном, кофейней и клиникой
Читайте также: