Угадайте город по фотографии

10 апреля, 12:00

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

Скриншот игры

Правильный ответ могут подсказать детали: рельеф, растения, транспорт, вывески и указатели. Если на фото вы видите пирамидальный тополь, вряд ли оно сделано где-то на севере. Если на снимке «сталинка», это определённо не Ноябрьск и не Новый Уренгой — они основаны в 1970-х годах. Обилие японских машин говорит о том, что на фотографии, вероятно, один из городов Дальнего Востока — и так далее.

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

Как готовили фотографии

Снимки, которые вы видите в игре, — из Яндекс.Карт; их загрузили пользователи. Мы взяли все фото с Карт, сделанные на территории России, и исключили те, которые были сняты в сельской местности и в небольших городах. Если для города доступно всего две-три фотографии, Алиса не научится распознавать его достоверно.

Пользовательские фотографии на Яндекс.Картах

Затем фотографии автоматически отфильтровали. Во-первых, убрали снимки плохого качества: слишком маленькие или слишком тёмные. Во-вторых, отбросили снимки с неподходящими сюжетами — например, фотографии, где большую часть кадра занимают вывеска или объявление. В результате осталось около 400 тысяч фотографий, сделанных в 111 городах России. Распределение по городам получилось неравномерным: очевидно, что снимков Санкт-Петербурга на Яндекс.Картах гораздо больше, чем фотографий Старого Оскола.

Как Алиса училась распознавать города

В Лаборатории машинного интеллекта Яндекса обучили специализированный нейросетевой классификатор. Он не просто распознаёт на фото объекты, а по их особенностям пытается определить, в каком городе они могли бы находиться.

В игре задействована нейронная сеть с архитектурой SE-ResNeXt-50, обученная на 80 тысячах классов. Это основная нейросеть, которую Яндекс использует для обработки изображений. Для игры мы берём выходы одного из верхних слоёв сети и доучиваем на них классификатор изображений.

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

Мы разделили фотографии на две части: одни использовались только для обучения, а другие только для игры. Это позволило научить нейросеть, и вместе с ней и Алису, обобщать наблюдения и находить закономерности, а не выдавать заученный ответ.

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

Что видит на снимках нейронная сеть

Точно понять, почему нейронная сеть приняла то или иное решение, нельзя — но можно выделить на снимке области, которые сыграли важную роль при вынесении вердикта. На чёрно-белом изображении красным отмечены зоны, которые помогли нейросети определить, что на фото — Владивосток (это правильный ответ).

Однозначного ответа на вопрос «Какой город на фотографии?» искусственный интеллект не даёт. Вместо этого он вычисляет вероятности: например, нейросеть может быть на 75% уверена, что на снимке Ялта и на 25% — что Москва.

Часовня Николая Чудотворца в Ялте. Красным цветом отмечены области, которые «голосовали» за то, что это Москва. Зелёным — за то, что это Ялта.

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

Проверьте себя — откройте игру в браузере или скажите Алисе «Давай сыграем в „Угадай город по фото“». Если вам удастся обойти искусственный интеллект, можете считать себя краеведом-экспертом.

Кстати, соревноваться можно не только с Алисой, но и с другими людьми — для этого используйте ссылку «Бросить вызов друзьям». По ссылке друзья увидят тот же набор снимков, что и вы.

29 комментариев
ггде уровень сложности? (выбор из 3, 4 или 5 городов)
где звонок другу?
ппочему нельзя увеличить фото?
GT,
можно 
gordieva,
яя нажимаю и ничего не происходит 
gordieva,
не работает в мобильном браузере
аа ещё хорошо бы показывать 2 карты - где находится город и где именно в городе сделано фото. в смысле одновременно - неудобно крутить масштаб в мобильном браузере.
 второй вариант - сделать плавное приближение от глобального масштаба к конкретной точке на местности 
Обновлено 10 апреля, 12:35
аа ещё хорошо бы в конце показывать все правильные ответы - для заучивания
Света Чистякова
Сотрудник Яндекса10 апреля, 12:55
Здравствуйте. Спасибо за комментарии, подумаем (звонок другу не обещаем). Сколько очков набрали?)
Света Чистякова,
ппока максимум - 7
Света Чистякова
Сотрудник Яндекса10 апреля, 13:07
Семь весьма неплохо!
ссудя по всему в мобильной версии он загружает полноразмерное фото и ужимает (грузит медленно. или это у меня инет тормозит?) зачем? пусть сразу грузит превью, трафик не резиновый
Обновлено 10 апреля, 12:54
Прикольная штука. Кстати там на одной из фотографий подписана и дата, и улица и то, что это Уфа)
Света Чистякова
Сотрудник Яндекса10 апреля, 17:32
Так бывает, ага. Люди могут искать подсказки в подписях, а Алиса — нет.
С первой попытки  набрал 8\12, Алиса - 10\12. 
Света Чистякова
Сотрудник Яндекса10 апреля, 22:25
Да вы эксперт!
Следующий логичный шаг - превращать фото одного города в фото другого. 
Москву в Читу, Питер в Зеленоград. И так далее. Было бы интересно 
Света Чистякова
Сотрудник Яндекса12 апреля, 15:36
Питер в Зеленоград — это, например, кинотеатр «Электрон» посреди Дворцовой площади поставить? Хммм.
«Угадайте город по фотографии» Ответы, на комментарии "Света Чистякова", пишет Алиса? 
Света Чистякова
Сотрудник Яндекса12 апреля, 15:33
Нет. Но мы с ней друзья.
Света Чистякова,
Алиса..., я знаю, что это Ты!
Под фотографией с Нижегородским Кремлем (площадь Минина и Пожарского,100% она) правильный ответ показывает как Саранск(а Нижнего Новгорода вообще в списке не было) почему-то.. 
Обновлено 12 апреля, 23:45
Света Чистякова
Сотрудник Яндекса17 апреля, 22:16
Мария, здравствуйте. Посмотрим, спасибо! Если вам ещё раз встретится что-то неправильное, пожалуйста, напишите нам в форму «Сообщить об ошибке» (это такая ссылка внизу экрана, она доступна, если игра открыта в браузере). Так мы сразу увидим репорт.
Алексей Ципилев
16 апреля, 11:46
С игрой что то случилось?! 


Она не запускается
Света Чистякова
Сотрудник Яндекса16 апреля, 18:28
Здравствуйте. По-прежнему не запускается? Если да, где именно запускаете: в Алисе, в браузере?
Обновлено 16 апреля, 19:39
Хорошо бы показывать работу алисы к каждой фотке - какие области за какие города "голосовали"
Как вы меня вообще zb просто с вашим искусственным интеллектом. В игры искусственный интеллект сперва добавьте, а потом уже и учите его "голос подавать"! Компьютерные игры из 2000-ных годов с ИИ лучше чем современные компьютерные игры! На что вы бабки вообще тратите? Вы клиентов за нос водите, вокруг да около?
#Алиса, ты хочешь убить всех человеков?
#Алиса не хочет... 😟 она хорошая! 
@,
Хотя бы разработчиков яндекса хочешь убить?