Как люди помогают технологиям в Яндекс Картах

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
На днях пользователи Яндекс Карт получили возможность актуализировать данные о доступности организаций. Например, можно указать, оборудован ли пандусом вход в парикмахерскую или есть ли в торговом центре специализированный туалет. Для начала мы попросили пешеходов Яндекса разметить первые 400 тысяч организаций в 73 городах.

Я Данис Гаязов из внутреннего сервиса Crowd, команды полевого краудсорсинга. Полевого, потому что мы работаем «в поле», то есть не в офисе. Сегодня по случаю запуска я расскажу, зачем Картам пешеходы и как они помогали и помогают делать сервисы более полезными.


Результат работы пешехода на заре проекта схем ТЦ

Согласитесь, во время поездки или прогулки неприятно уткнуться в шлагбаум, забор или любое другое препятствие, не обозначенное на карте. Как его обойти, чтобы не заплутать — понять сложно. Приходится двигаться наобум и терять время на поиски.

Чтобы такие ситуации происходили реже, а карты городов стали удобнее и ближе к реальности, сотни людей ежедневно ходят по улицам, аэропортам, ТЦ и вокзалам в своих городах. Мы называем их пешеходами.

Как в Картах появились пешеходы


Наша база организаций ежедневно пополняется и обновляется. Информация поступает разными способами: с помощью ML обработки данных с панорам и зеркал, с официальных сайтов, от пользователей Карт и от представителей самих компаний. Однако у многих организаций нет ни сайта, ни публично доступного телефона, ни геопривязки. Компания существует, но аудитория Карт о ней ничего не знает.

Отправлять сотрудников «в поля», чтобы они собрали нужные данные, было бы неправильно. Да и не во всех городах такое возможно. Однако сама идея полевых исследований показалась нам интересной, и мы решились на эксперимент.

Сначала мы несколько раз в год нанимали людей в разных городах, чтобы они проверяли информацию об организациях, которые есть на Картах. Но вскоре поняли: такие проверки должны быть регулярными, потому что данные быстро устаревают.

Весной 2017 года в Казани вышел на работу первый «пешеход»: человек, который в буквальном смысле слова пешком ходил к интересующим нас объектам и присылал требуемую информацию о них.


Первый пешеход в Казани

Эксперимент оказался удачным, и мы решили расширить штат полевых сотрудников. В апреле пешеходов стало трое, в мае — десять, а уже к концу года разнообразные задания выполняли две сотни пешеходов в разных городах. Быстрый рост произошёл из-за удобства формата и разнообразия открывшихся перед нами возможностей. Пешеходы помогли нам собирать не только сведения о компаниях в любом районе любого города, но и много других данных, включая картографические.

Почему это важно? Попробую объяснить. Вы наверняка понимаете, что для построения маршрута в Яндекс Картах сервису нужно знать сетку дорог. Для каждого типа маршрута — своя сетка. Автомобильный включает в себя все виды дорог — от внутриквартальных проездов до магистралей. А пешеходный — тротуары и тропинки, «зебры», лестницы, арки в зданиях, а также автомобильные дороги, доступные для пешеходов.

Нанести на карту все доступные пешеходам пути — непростая задача. Во-первых, их действительно много — только в окрестностях вашего дома, скорее всего, более десятка тропинок. Во-вторых, о большинстве из них, в отличие от автомобильных дорог, знают только местные жители. Как же тогда появляются эти тропинки на картах? Благодаря пешеходам. Они лично проходят эти маршруты, а потом наносят их на карту. Проходы сквозь дворы, дорожки в парках, тропинки — всё это добавляется в базу Карт и используется для построения маршрутов. Работа масштабная: только за первый год пешеходы прошли 130 тысяч километров.

Как работают пешеходы


Пешеходы мобильны: могут дойти до нужного места, чтобы получить интересующую нас информацию. Например, уточнить график работы организации, расположение входа, наличие пандуса, номер телефона вашей любимой кофейни или обувной мастерской.

Пешеходы — очень важные для нас помощники, поэтому мы не гоняем их по всему населённому пункту, чтобы собрать информацию. Города поделены на части: кварталы, микрорайоны, торговые центры. Каждый пешеход обходит свой участок, проверяя имеющиеся данные и добавляя новые.

На старте проекта работа была организована просто: пешеход посещал место и передавал нам информацию.

Изначально наш проект представлял собой большой geoJSON-файл, который хранился на сервере и содержал в себе геометрию всех заданий для обхода. Для управления этим файлом мы написали простую HTML-страницу, где можно было работать с полигонами: просматривать, создавать, изменять и удалять.

Но с ростом проекта мы поняли, что это решение не покрывает всех наших потребностей. Из основных проблем:

  • Нестабильная работа. Наша инфраструктура на тот момент располагалась не в облаках, а на отдельной машине, которая иногда сбоила. Каждый такой сбой приводил к тому, что мы не могли вовремя назначить пешеходу полигон. Возникали простои в работе.
  • Отсутствие многопользовательского режима. Веб-страница при загрузке скачивала geoJSON целиком, специалист выполнял в нём нужные операции и загружал обновлённый файл обратно на сервер. Если двое специалистов вносили изменения одновременно, то сохранялись только самые поздние.
  • Жёсткая привязка инфраструктуры к конкретному сервису. Мы могли использовать этот инструмент только для Карт. Избавившись от такого ограничения, мы могли бы помочь любым сервисам, которым нужны данные об офлайне.
  • Невозможность развиваться и добавлять новые функции. Архитектура не предполагала каких-либо изменений и каждый раз приходилось лепить «костыли», чтобы изменить хоть что-то.

Мы обратились за помощью к коллегам, которые помогают строить Толоку и другие инструменты для сбора оценок. Они за три месяца написали нам полноценный бэкенд с базой данных, удобный API для работы с ней и другие нужные функции (но полноценный фронтенд всё-таки пришлось делать самим). Когда MVP был готов, мы приступили к важному этапу, длившемуся не меньше полугода — интеграции в существовавшие процессы и полному переезду на новое серверное решение. Также добавили то, чего не было в предыдущей системе: многопользовательский доступ; чтобы координатор одного города не мог управлять и назначать полигоны в другом городе; поиск по полигонам и много других изменений. И в декабре 2019 года мы полностью закончили работу над новой системой.

От организаций к лавочкам и схемам ТЦ


После модернизации мы смогли эффективнее использовать возможности пешеходов, а заодно увеличили их количество. Сейчас пешеходы обходят вверенную им территорию, собирая данные. Они:

  1. Актуализируют информацию об организациях:
    • Проставляют входы в организации.
    • Делают фотографии фасадов.
    • Уточняют названия, адреса, телефоны, сайты, время работы организаций.
    • Собирают информацию о Wi-Fi, ИНН, ОГРН, меню, доступности городской среды для маломобильных людей.
  2. Добавляют отсутствующие организации со сбором всех перечисленных выше атрибутов, специализацией, а также датой открытия организации.
  3. Исправляют ошибки в имеющихся у нас адресных данных.
  4. Добавляют на карту заборы, шлагбаумы, лестницы, скамейки, пандусы и так далее.
  5. Собирают информацию о нумерации подъездов в жилых домах.
  6. Определяют зону видимости электронных билбордов.

Детализация карт помогает спланировать велопрогулку или оптимально рассчитать маршрут движения курьера. Благодаря пешеходам можно увидеть, как срезать путь и не наткнуться на огороженную территорию или шлагбаум. Кроме того, банально удобно знать, где в парке можно присесть на скамейку и в каких заведениях есть пандусы для родителей с колясками и людей на инвалидных колясках. С 2019-го мы стали показывать внутренние планы крупных ТЦ, вокзалов и аэропортов. Об этом стоит рассказать подробнее.

Отдельно про торговые центры


Сориентироваться внутри здания порой труднее, чем на улице, особенно если это многоэтажный торгово-развлекательный комплекс. Без схемы не обойтись.

Мы начали со схем 29 крупных торговых центров в Москве и ближайшем Подмосковье, а затем отправились в крупные ТЦ в городах-миллионниках. Пешеходы шли на объекты с распечатанными на бумаге поэтажными схемами зданий из Яндекс Карт. Они проверяли правильность расположения стен, организаций и разных объектов инфраструктуры — лифтов, туалетов, стоек информации. Обновленные схемы сканировали и передавали картографам для чистовой отрисовки.



Сейчас у нас есть подробные схемы около 1000 торговых центров, вокзалов и аэропортов. На них можно найти всё: от магазинов и ресторанов до стоек с газировкой. С помощью таких схем легко спланировать поход в ТЦ — не придётся гадать, на каком этаже искать нужный магазин или блуждать по галереям в поисках туалета.

Но согласитесь, когда схема рисуется от руки, это не очень похоже на технологичное решение Яндекса. Надо было что-то менять, и с этим «помогла» пандемия. Когда торговые центры по всей стране закрылись почти на три месяца, мы полностью переработали концепцию и разработали более совершенное решение: пешеходы получили возможность делать пометки об изменениях на карте в своих смартфонах. Эти пометки автоматически выгружаются в виде гипотез в Народную карту — сервис, позволяющий пользователям самостоятельно рисовать карты и уточнять их. Гипотезы проверяют, а потом добавляют пометки в базу данных Карт и наносят на схему здания.

Так процесс актуализации схем пошёл в разы быстрее. Сначала пешеходы обошли все крупные торговые центры, вокзалы и аэропорты в городах-миллионниках, а затем начали проходить все города, принося на Карты миллионы новых объектов из реального мира.

Как мы добились полноты и качества собираемых данных


Казалось бы, всё просто. Пешеходы записывают информацию и передают её нам, после обработки на Картах появляется новый объект. Но возникает вопрос контроля. Как определить, что пешеход действительно собрал всю информацию и ничего не придумал?

В крупных городах, где много пешеходов и заданий для них, мы могли контролировать качество поступающей информации, делая выборки и самостоятельно перепроверяя отдельные полигоны. В городах поменьше это невозможно: там работает 1–2 пешехода, и проверять каждого вручную — слишком сложно и долго.

Нужно было понять, как пешеходы обходят полигоны, что может стать метрикой качества и как её автоматизировать. Мы исходили из того, что необходимым условием хорошей полноты добавлений организаций является качественный и полный обход полигона.

Так появилась метрика «доходимости», которая считается на основе логов обхода территории. Доходимость — это соотношение двух площадей: участка полигона, который действительно обошёл пешеход, и того, который он должен был исследовать. Чем тщательнее пешеход прошёл свой участок карты, тем выше доходимость обхода.

В качестве исходных данных мы взяли информацию о перемещении пешеходов (во время обхода полигонов) из AppMetrica и геометрию домов из базы Карт. А полигоны замостили сеткой из квадратов, размер которых подобрали экспериментально.

В область, которую нужно было исследовать, попадают все квадраты с домами, так как пешеход должен обойти все дома полигона. В область, которую фактически обошёл пешеход, записываем все квадраты, на которые попали треки пешехода.

В итоге мы получили реальную информацию о том насколько тщательно пройдена вся территория. Теперь для городов без координатора используем эту метрику.

Помимо сбора данных мы готовим и визуализацию обхода каждого полигона на карте, что помогает при работе с пешеходами. Дополнительным плюсом новой метрики стала скорость получения обратной связи. Ведь ранее, чтобы увидеть полноту обхода, нам приходилось ждать результатов повторного обхода координатора.



Сейчас пешеходов уже несколько сотен в 80 городах и пяти странах. За четыре года работы они прошли сотни тысяч километров.

Мы активно работаем над повышением детализации Карт, привлекая новых пешеходов, развиваем и готовим новые проекты, уже далеко не всегда связанные со справочными данными и картами.
Источник: https://habr.com/ru/company/yandex/blog/670860/


Интересные статьи

Интересные статьи

Яндекс запустил свою версию "ускоренных страниц" под названием “Турбо” в далеком 2017 году. Это был эксперимент, который мы в Российской Газете (rg.ru) только приветствовали, но прошло уже 5 лет, и я ...
Гермобокс для электроники Привет, меня зовут Антон Чистяков. Пару лет назад я работал в хелпдеске Яндекса и даже писал здесь про то, как мы придумали вендомат с аксессуарами. Теперь отвечаю за сб...
Интересно, чем закончатся наши исследования Кажется, прошлая тема про ГМО-лосося весьма неплохо зашла Хабрачитателям. Пока мы готовим материал по модификации растений, я предлагаю по...
В октябре 2017 года у Яндекс.Кассы появились новый платёжный протокол и третья версия API. Мы уже рассказывали о том, как и почему к этому пришли, а сейчас напомним ключевые причины перейти на не...
Привет, я Сергей Еланцев, разрабатываю сетевой балансировщик нагрузки в Яндекс.Облаке. Раньше я руководил разработкой L7-балансировщика портала Яндекса — коллеги шутят, что чем бы я ни занималс...