Используем глубокое обучение, чтобы отгадывать страны по фотографиям в GeoGuessr / Блог компании  / Хабр

Используем глубокое обучение, чтобы отгадывать страны по фотографиям в GeoGuessr / Блог компании / Хабр

5 географических игр, для того чтобы интересно провести время — офтоп на dtf

Представляю небольшую подборку, для тех, кто хочет провести время задействовав логику, память, познания о мире, а также провериться на «географический кретинизм» =)

Игра от Яндекса, где участникам предлагается пройти тест из 12 фотографий, сделанных в разных частях мира. Нужно выбрать страну из четырех вариантов ответа, из какой именно страны была сделана фотография. А еще с вами будет соревноваться Алиса, которая пытается определить правильный ответ с помощью машинного обучения (И она тоже ошибается). А так же у Яндекса есть такая же игра, где вместо стран нужно определить российские города – Игра угадай город по фото.

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

  • пазлы стран по материкам, пазлы регионов нескольких стран.

  • игра «викторина» – поиск страны по флагу, гербу или столице,

  • игра «Города» – поиск города по названию,

  • «Природа» – поиск морей, островов, пустынь и т.д.

Перейти

Игра на умение ориентироваться на карте, игроку нужно найти место на карте, откуда сделана отображаемая фотография в ограниченном радиусе (300м, 700м, 3км, 15км). Можно повернуть карту относительно фото.

Перейти

На выбор очень много географических викторин с поиском объектов на карте. Страны в мире, страны по регионам, водные объекты, горы, города, столицы, регионы.

Перейти

Игра, которая показывает случайную панораму google street view и игрок должен указать местоположение на карте. В зависимости от того, как точно указана точка, ему(игроку) дается определенное количество очков. Довольно популярная игра, но к сожалению в последнее время из неё выжимают все соки, настойчиво требуя задонатить.

Перейти

10 советов для игры в geoguessr

Хочу рассказать про свой опыт игры в GeoGuessr. Об этой игре я узнал 5 лет назад от моего коллеги (Лёня, привет, если это читаешь!). С тех пор это одна из самых моих любимых игр вообще. Эта игра — самое то людям, любящим новые места, страны, культуры…

Суть игры в том, что вы смотрите фотографии, снятые Google для проекта Street View, он же “Режим просмотра улиц”, он же “жёлтый человечек” на Google Maps. В правом нижнем углу вы будете видеть мини-карту, но на ней будет масштаб всего мира и не будет маркера. Ваша задача как раз и поставить этот маркер на мини-карте как можно ближе к истинному местоположению. Чем ближе вы отгадаете к заданной точке, тем больше получите очков. Чтобы узнать местность, можно шагать вперёд-назад (иногда ещё вбок) используя стелки на клавиатуре или кликая мышкой в направлении, куда хотите переместиться, тогда фотографии сменяются на соответствующий следующий кадр. Ещё можно приближать/удалять вид, вращая колёсиком мыши или соответствующим жестом тачпада. Мини-карту можно аналогично приближать/удалять, а также перемещаться по ней.

Есть разные режимы игр: случайно выбранные места или выбранные пользователями места, объединённые какой-то тематикой (например, достопримечательности, только города или, наоборот, лесные дороги); есть игры с таймером, а есть без ограничения времени.

Чаще всего я играю в режиме Daily Challenge. В этом режиме 5 раундов, в каждом из них нужно определить местоположение случайно выбранной локации по всему миру, на каждую локацию даётся по 3 минуты.

Сейчас ищут техподдержку:  Техподдержка Телеграмма на русском: как и куда обратиться

Важное замечание. В GeoGuessr можно играть по-разному. Например, можно кликаете (“шагаете”) к ближайшему дорожному указателю и гуглите его. Второй способ игры гораздо сложнее, но и на мой взгляд куда интереснее: для обнаружения местоположения вы используете то, что видете в окне игры (включая мини-карту) и ваш опыт из жизни, уроков географии и предыдущих игр. Для такого способа игры я подготовил несколько советов:

1. Оглядитесь по сторонам. Часто бывает, что в первом же кадре вдалеке виден дорожный указатель и, устремившись к нему, вы обнаруживаете на нём ни о чём не говорящие названия местных деревень. А в это время на точке старта за вашей спиной был указатель на крупный город, а то и туристический билборд с указанием конкретного места.

2. Определите направление движения. В подавляющем большинстве случаев ваша стартовая точка окажется на дороге. Поэтому знание того, правостороннее или левосторонее здесь движение, поможет сильно сузить круг подозреваемых стран. Направление движения можно определить по окружtraffic signающим машинам или по расположению лицевой стороны дорожных знаков (у правой или левой обочины). Карта из Википедии поможет вспомнить, где в мире какое движение.

3. Узнавайте дорожную разметку и дизайн дорожных знаков. Через некоторое время вы по первому кадру будете отличать Швецию от Норвегии и США от Канады по одному виду дорожной разметки! А ещё удивитесь, сколь много информации содержится в дорожных знаках. К счастью, дизайн знаков-номеров маршрута практически уникален. Поэтому очень ценно встретить такой знак: одним махом можно сразу определить и страну и дорогу на ней. Останется только найти ближайший населённый пункт.

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

5. Оцените принадлежность места к национальной культуре и уровень экономического развития. Допустим, вы обнаружили надпись на испанском. Это может быть Испания, Латинская Америка, некоторые острова в Атлантике или Экваториальная Гвинея в Африке. Стоит присмотреться к качеству дорог, к машинам, к тому, какие дома стоят вокруг. Иногда в сельской местности можно разглядеть людей в национальных костюмах.

6. Какая вокруг природа и климат. Вспоминаем школьный курс географии: климатические пояса и природные зоны суши. Поможет эта схема из Википедии.

7. “Статистический совет”. Когда вы играете на случайных картах, действительно, выбирается случайное место, но это не то же самое, что случайное место на Земле! Потому что плотность дорожной сети в разных странах неодинакова, как неодинаково покрытие снимков Street View. Поэтому на случайных картах вам чаще всего будут попадаться места в США, Канаде, Западной и Северной Европе, Австралии, ЮАР, реже в Восточной Европе, России, Латинской Америке, Японии, Юго-Восточной Азии, и совсем редко в остальных странах Африки, Азии и Океании. Если есть две страны-кандидата в разных концах света, выигрышной стратегией будет прорабатывать вариант страны из первых двух категорий.

8. Далеко шагайте. Чтобы “шагать” далеко, нужно сделать минимальный зум и кликать в область на 70-80% длины дороги от вас до горизонта.

9. Прочитайте замазанные надписи. Пять лет назад Google во многих странах не замазывал на снимках номерные знаки машин. И тогда можно было догадаться по ним о стране. Сейчас иногда можно разглядеть номер, если увидеть его под острым углом, почти поравнявшись с машиной. Алгоритм замазывания иногда ошибочно применяется на дорожных знаках. Чаще всего помогает смена точки, откуда этот знак видно.

Сейчас ищут техподдержку:  Отзывы о Тинькофф Банке: «Сняли деньги через какой-то сервис XSOLLA » | Банки.ру

10. Не забывайте про таймер. Иногда очень легко увлечься. Знаешь, что осталось 30 секунд, решаешь “прошагать” вон до того знака. А от знака видишь ещё две подсказки. Пока решаешь к какой из них идти, время раунда кончается.

Чуть не забыл. Для игры требуется лишь браузер и быстрый интернет. От скорости интернета зависит, как далеко вы сможете “прошагать” и сколько информации успеете увидеть за 3 минуты.

Для тех, кто дочитал, бонусные картинки-скриншоты из недавних игр:

Надеюсь, эти советы помогут получить больше удовольствия от игры в GeoGuessr и чуть лучше узнать прекрасную и такую разную планету Земля!

Автоматизируем geoguessr с помощью selenium

Для скрейпинга скриншотов из текущего внутриигрового местоположения я создал программу на Selenium, четыре раза выполняющую следующие действия:

  • Сохраняем скриншот canvas
  • Делаем шаг вперёд
  • Поворачиваем обзор примерно на 90 градусов

Количество повторов этих действий можно настроить через

NUMBER_OF_SCREENSHOTS

в показанном ниже коде.

Веб-демо


Авторы статьи

Geolocation Estimation of Photos using a Hierarchical Model and Scene Classification

создали довольно милый веб-инструмент. Я проверил его на одном из скриншотов Selenium.

На правах рекламы

Закажите сервер и сразу начинайте работать! Создание

любой конфигурации в течение минуты. Эпичненько 🙂

Немного глубокого обучения

Однажды я прочитал, что машинное обучение уже умеет делать всё, что и человек, но меньше чем за одну секунду. Распознать лицо, выбрать текст из изображения, повернуть, чтобы не врезаться в другую машину. Это заставило меня задуматься, а размышления привели к статье под названием

Geolocation Estimation of Photos using a Hierarchical Model and Scene Classification

, написанной Эриком Мюллером-Будаком, Кадером Пусту-Иреном и Ральфом Эвертом. В этой статье геолокализация рассматривается как «задача классификации, в которой Земля подразделена на географические ячейки».

Она прогнозирует GPS-координаты фотографий.

Даже по фотографиям, которые сделаны в помещении! (Daily Challenge игры GeoGuessr часто засовывает игрока внутрь музеев).

https://www.youtube.com/channel/UCcb0afbuq1Ux8rW1gWc061g/videos

Недавно авторы статьи выпустили реализацию на PyTorch и указали веса для обученной модели base(M, f*) с внутренней архитектурой ResNet50.

Я предположил, что обученная модель не очень хорошо будет соответствовать тем частям фотосфер, которые я смогу получить от GeoGuessr. В качестве данных обучения авторы использовали «подмножество набора данных из 100 миллионов фотографий Yahoo Flickr Creative Commons (YFCC100M)».

Любопытно было то, что в наборе данных Im2GPS люди определяли местоположение изображения с точностью на уровне страны (в пределах 750 км) в 13,9% случаев, а Individual Scene Networks справлялись с этой задачей в 66,7% случаев!


Итак, возник вопрос: кто лучше в GeoGuessr, моя жена (потрясающий игрок) или машина?

Обучаемость geoguessr

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

В отличие от обобщённого определения геолокации, в GeoGuessr мы (почти всегда) пытаемся выяснить, на какой дороге находимся. Это означает, что можно предпринять больше усилий для распознания всегда присутствующих элементов, например, дорожной маркировки, марок и моделей автомобилей (и то, и другое часто выдаёт страну).

Существуют и другие маркеры (кое-кто в сообществе GeoGuessr считает их жульничеством), которые может распознавать фреймворк обучения.

Сейчас ищут техподдержку:  Березовые бруньки лечебные свойства и противопоказания

Если в street view посмотреть вниз то можно увидеть часть машины, снимавшей текущую фотосферу. Например, в Кении спереди у машины есть чёрная труба. Основная часть Вьетнама была снята с мотоцикла, и часто можно увидеть шлем водителя. Страны часто снимаются одной машиной с уникальным цветом или антенной.

В других местах в небе есть место, где сшитая фотосфера выглядит разорванной (в основном в Сенегале, Черногории и Албании). В Африке за автомобилем Street View иногда едут машины сопровождения. Есть разные поколения камер, с разным разрешением, типами гало, цветопередачей и размытием в нижней части сферы.

Если использовать эти подсказки, то я не удивлюсь, что машина когда-нибудь в соревнованиях на время победит даже лучших пользователей GeoGuessr. На самом деле, я считаю, что было бы достаточно одного исследовательского гранта, чтобы мы стали играть в GeoGuessr существенно хуже, чем машины.

Приблизительное определение геолокации

Я перешёл к ветке

, скачал обученную модель и установил зависимости с помощью

conda

. Мне понравился README репозитория. Раздел

был достаточно понятным и на новом Ubuntu 20.04 у меня не возникло никаких проблем.

Для выяснения отношений между человеком и машиной я выбрал в GeoGuessr карту World. Отправив URL своей программе Selenium, я прогнал её для четырёх скриншотов, сделанных в GeoGuessr.

Ниже представлены сокращённые результаты работы машины.

python -m classification.inference --image_dir ../images/

                                lat        lng
canvas_1616446493 hierarchy     44.002556  -72.988518
canvas_1616446507 hierarchy     46.259434  -119.307884
canvas_1616446485 hierarchy     40.592514  -111.940224
canvas_1616446500 hierarchy     40.981506  -72.332581

Я показал те же четыре скриншота своей жене. Она предположила, что точка находится в Техасе. На самом деле место находилось в Пенсильвании. Машина сделала для каждого из четырёх скриншотов четыре различные догадки. Все догадки машины находились в США. Две достаточно близко друг к другу и две подальше.

Если взять усреднённое местоположение, то машина в этом раунде побеждает!

Мы сыграли ещё два последующих раунда, и окончательный счёт оказался 2-1 в пользу машины. Машина довольно близко подобралась к улице в Сингапуре, но не смогла опознать заснеженную улицу в Канаде (Мэделин назвала город за считанные секунды).

После написания этого поста я узнал о потрясающей предыдущей работе со сравнением результатов человека и машины на поле боя GeoGuessr. В статье PlaNet — Photo Geolocation with Convolutional Neural Networks Тобиас Вейанд, Илья Костиков и Джеймс Филбин пытались определить местоположение фотографии всего по нескольким пикселям.

Решил поиграть в

Так ты с экскурсионных-то маршрутов сойди, да! В метро, например, спустись – в Лондоне, там, или в Париже. Ну, или хотя бы просто в подземный переход. Или просто отойди от “парадного” фасада метров на 50 – туда, где местные не просто “пробегают”, а живут.

Как говорится, не путайте экскурсию с эмиграцией, и добро пожаловать в реальный мир.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 4,00 из 5)
Загрузка...

Оставьте комментарий

Adblock
detector