Знаете ли вы, что можно определить место съемки только по пикселям вашей фотографии?

219 прочитали

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

Типичные пляжные сцены могут быть сняты на многих побережьях по всему миру
Типичные пляжные сцены могут быть сняты на многих побережьях по всему миру

Даже наличие на фотографии какой-либо достопримечательности не гарантирует однозначности при определении места её съёмки. Например, фотография моста Риальто может быть сделана как на его родине в Венеции, либо в Лас-Вегасе, где есть копия этого моста.

Мост Риальто в Венеции. Самый известный мост Венеции и один из символов города.
Мост Риальто в Венеции. Самый известный мост Венеции и один из символов города.
Копия моста Риальто в Лас-Вегасе
Копия моста Риальто в Лас-Вегасе

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

Отгадай местоположение панорамы

Создатели таких сайтов, как GeoGuessr и View from your Window предполагают, что люди довольно хорошо умеют интегрировать такие сигналы и определять с их помощью место съемки. GeoGuessr предлагает такую игру: участника помещают в случайное место на виртуальной поверхности Земли и он должен отметить свое предполагаемое положение на электронной карте. Для этого можно оглядеться вокруг, используя панорамы Google Street View. После этого на карте отображается верное местоположение и рассчитывается насколько игрок промахнулся.

Игроку предлагается внимательно рассмотреть панораму,  а затем указать на карте, где именно находится это место.
Игроку предлагается внимательно рассмотреть панораму, а затем указать на карте, где именно находится это место.
После того, как игрок сделает предположение, система выводит на карте вместе с меткой, поставленной им, верную метку (которую должен был отгадать) . Расстояние между ними является мерой ошибки, которую допустил пользователь.
После того, как игрок сделает предположение, система выводит на карте вместе с меткой, поставленной им, верную метку (которую должен был отгадать) . Расстояние между ними является мерой ошибки, которую допустил пользователь.

Традиционный подход и информационный поиск

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

Это можно проиллюстрировать поиском по картинке в Яндексе. Пусть у нас есть изображение и мы хотим найти похожее на него. Видно, что поисковая система не только нашла похожие изображения этого объекта, снятого с разных ракурсов. Но также и сделала предположение о том, что на картинке Эйфелева башня.

Иллюстрация поиска изображения по визуальному сходству
Иллюстрация поиска изображения по визуальному сходству

Применение свёрточной нейронной сети

Tobias Weyand (Google), Ilya Kostrikov (RWTH Aachen University), James Philbin (Google) предложили проблему определения местоположения решать, как задачу классификации. Они разделили виртуальную поверхность Земли на множество географических ячеек, которые составляют целевые классы.

Для обучения сверточной нейронной сети (CNN) авторы использовали миллионы изображений с геометками. Для принятия решения модель определяет дискретное распределение вероятностей по земле, присваивая каждой географической ячейке вероятность того, что обрабатываемая фотография была сделана внутри нее.

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

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

Для исходной фотографии PlaNet выводит распределение вероятности по поверхности земли (справа). Эйфелева башня уверенно закреплена за Парижем.
Для исходной фотографии PlaNet выводит распределение вероятности по поверхности земли (справа). Эйфелева башня уверенно закреплена за Парижем.
PlaNet  считает, что фотография фьорда могла быть сделана в Новой Зеландии или Норвегии.
PlaNet считает, что фотография фьорда могла быть сделана в Новой Зеландии или Норвегии.
Для пляжной фотографии PlaNet  присваивает наибольшую вероятность Южной Калифорнии (правильно), но некоторыми вероятностями также выводят места с похожими пляжами — Мексика и Средиземное море.
Для пляжной фотографии PlaNet присваивает наибольшую вероятность Южной Калифорнии (правильно), но некоторыми вероятностями также выводят места с похожими пляжами — Мексика и Средиземное море.

Комбинация CNN и LSTM

Иногда изображение не дает никаких полезных сигналов о месте его съёмки: это часто бывает с портретами или фотографиями домашних животных и обычных продуктов.

Фотографии, на которых нет подсказок о месте их съемки
Фотографии, на которых нет подсказок о месте их съемки

Тем не менее, мы все еще можем делать прогнозы о месте съёмки таких фотографий, если мы также рассмотрим фотографии, сделанные примерно в одно и то же время, до или после запроса. Вместо одиночных изображений в этом случае используются фотоальбомы. Для этого в исходную модель PlaNet авторы добавили LSTM. Это привело к существенному улучшению за счёт того, что LSTM учится использовать временную когерентность в фотоальбомах для правильной геолокации даже тех фотографий, для которых модель не сможет уверенно поставить геометку. Например, фотография круассана может быть сделана в любой точке мира, но если она находится в том же альбоме, что и фотография Эйфелевой башни, модель LSTM будет использовать этот сигнал для назначения геометки "Париж".

Фотография круассана в том же альбоме, что и фотография Эйфелевой башни. 
Модель LSTM будет считать что круассан снят в Париже.
Фотография круассана в том же альбоме, что и фотография Эйфелевой башни. Модель LSTM будет считать что круассан снят в Париже.

Примеры верно локализованных фотографий

LSTM способна локализовать фотографии известных достопримечательностей (верхний ряд). Часто она дает удивительно точные результаты для изображений с более тонкими географическими подсказками. Модель учится распознавать типичные для местности ландшафты, объекты, архитектурные стили и даже растения и животных.

Примеры верно локализованных фотографий
Примеры верно локализованных фотографий

Примеры ошибок локализации

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

Примеры неверно локализованных изображений
Примеры неверно локализованных изображений

Сравнение с работой человека

Чтобы узнать, насколько предсказания PlaNet похожи на человеческую интуицию, ей позволили конкурировать с 10 хорошо натренированными людьми в игре Geoguessr. Игроки могут масштабировать панораму, но не могут переходить к смежным панорамам. Они могут изменять масштаб карты, поэтому указать местоположение могут именно так, как они хотят. Для этого эксперимента использовался соревновательный режим работы "challenge mode", при котором двум игрокам показывают один и тот же набор из пяти панорам.

Для того, чтобы получить предсказание положения от PlaNet, снимали скриншот окружающего пространства в Geoguessr и затем вручную указывали на карте то положение, которое предсказала модель. Для справедливого сравнения, людям, участвовавшем в этом сравнении, не разрешали панорамировать и масштабировать данные об окружающем пространстве на фото. В итоге PlaNet и человек были в одинаковых условиях.

Верхний ряд: панорама GeoGuessr. 
Нижний ряд: желтый — правильное положение, зеленый — метка человека, синий — метка PlaNet .
Верхний ряд: панорама GeoGuessr. Нижний ряд: желтый — правильное положение, зеленый — метка человека, синий — метка PlaNet .
Верхний ряд: панорама GeoGuessr. 
Нижний ряд: желтый — правильное положение, зеленый — метка человека, синий — метка PlaNet .
Верхний ряд: панорама GeoGuessr. Нижний ряд: желтый — правильное положение, зеленый — метка человека, синий — метка PlaNet .

В общей сложности PlaNet выиграла 28 из 50 раундов со средней ошибкой локализации 1131,7 км. Средняя ошибка локализации человека составила 2320,75 км.

Когда людей спросили, какие сигналы они использовали, они сказали, что искали любые признаки: виды растительности, архитектурные стили, цвета разметки полосы движения и направление движения на улице. Кроме того, люди знали, что street view не доступен в некоторых странах (например, в Китае). Это позволяло им еще больше сузить свои догадки. Можно было бы ожидать, что эти сигналы (особенно уличные знаки) совместно со знаниями мира и здравым смыслом должны дать людям преимущество над PlaNet, которая обучалась исключительно на пикселях изображений и метках геолокации. Однако, PlaNet смогла превзойти человека со значительным отрывом. Авторы эксперимента считают, что PlaNet имеет преимущество перед людьми, потому что она видела гораздо больше мест, чем любой человек может когда-либо посетить и научилась тонким сигналам различных сцен, которые даже трудно отличить много путешествовавшему человеку.

Читать детали: PlaNet - Photo Geolocation with Convolutional Neural Networks

Понравилась статья? Ставьте лайк и подписывайтесь на наш канал, чтобы не пропустить ни одной интересной публикации :)