Google street view машина
Что такое Просмотр улиц
Просмотр улиц в Google Картах – это представление окружающей реальности, созданное на основе миллионов панорамных фотографий. Снимки создаются не только компанией Google, но и нашими пользователями. Благодаря этим совместным усилиям каждый из нас получает возможность совершать виртуальные путешествия по разным странам.
Где будет следующая панорамная съемка
Узнайте, куда отправится съемочная машина или трекер Google в следующий раз
Добавить фотографии
Покажите свой район, поделитесь панорамами родного города, отметьте дороги или добавьте сведения о местных компаниях в Google Карты с помощью сервиса «Просмотр улиц». Есть несколько способов публикации контента в Google Картах – выберите тот, который подходит именно вам.
Становитесь сертифицированным партнером
Сертифицированные фотографы создают качественные снимки экстерьеров и интерьеров для публикации в Просмотре улиц. Обратитесь к этим специалистам, чтобы пользователи Google Карт знали, как выглядит ваша компания.
Публикуйте серии фотографий
В приложении «Просмотр улиц» появилась бета-версия функции, с помощью которой вы можете создавать новые материалы на смартфоне Android
Делайте снимки и сразу публикуйте их
Скачать приложение «Просмотр улиц»
Привлекайте клиентов и повышайте продажи
Чтобы сразу заинтересовать потенциальных клиентов, покажите свою компанию с разных сторон. Снимите вид с улицы, вход в здание и интерьер, создайте качественный виртуальный тур.
Для поиска информации о компаниях потребители в 44 % случаев используют карты.
Исследование Ipsos [PDF-файл на английском языке]
По статистике, в 41 % случаев поиск на картах приводит к посещению компании.
Исследование Ipsos [PDF-файл на английском языке]
Страницы с фотографиями и виртуальным туром привлекают внимание клиентов в два раза чаще, чем остальные.
Данные исследования приведены на следующем слайде
Об исследовании
Источники фотографий
Снимки в Просмотре улиц публикуют компания Google и пользователи
Контент Google
Материалы, являющиеся собственностью компании Google, содержат пометку «Google Карты» или «Просмотр улиц». Лица и номерные знаки автомобилей на изображениях размываются автоматически.
Пользовательский контент
Для контента, добавленного пользователями, показывается название аккаунта, на которое можно нажать, а в некоторых случаях – также фото профиля.
Как создаются панорамы для Просмотра улиц
Над панорамами для Просмотра улиц трудится целая команда инженеров. Вы можете посмотреть, в чем заключается их работа.
ШАГ 1
Съемка и сбор изображений
Все начинается с фотосъемки. Чтобы получить качественные панорамы, необходимо учесть множество факторов: время суток, погоду, количество людей вокруг и т. п.
ЭТАП 2
Геопозиционирование
Фотографии нужно правильно разместить на карте. Чтобы восстановить маршрут поездки, а также выровнять и соединить снимки, мы используем сигналы специальных датчиков, установленных на автомобиле. Они собирают данные спутников GPS, запоминают скорость, направление движения и даже угол наклона дороги.
ШАГ 3
Создание панорам
Чтобы в панорамах не было пробелов, наши камеры делают перекрывающиеся фото. После совмещения кадров специальный алгоритм удаляет повторяющиеся участки, и получается непрерывный снимок.
ШАГ 4
Моделирование
Лазерные датчики позволяют определить расстояние между камерами, зданиями и другими объектами, а затем построить трехмерную модель пространства. Благодаря ей мы определяем, какую панораму показывать, когда вы перемещаетесь в Просмотре улиц.
Съемка и сбор изображений
Все начинается с фотосъемки. Чтобы получить качественные панорамы, необходимо учесть множество факторов: время суток, погоду, количество людей вокруг и т. п.
Геопозиционирование
Фотографии нужно правильно разместить на карте. Чтобы восстановить маршрут поездки, а также выровнять и соединить снимки, мы используем сигналы специальных датчиков, установленных на автомобиле. Они собирают данные спутников GPS, запоминают скорость, направление движения и даже угол наклона дороги.
Создание панорам
Чтобы в панорамах не было пробелов, наши камеры делают перекрывающиеся фото. После совмещения кадров специальный алгоритм удаляет повторяющиеся участки, и получается непрерывный снимок.
Моделирование
Лазерные датчики позволяют определить расстояние между камерами, зданиями и другими объектами, а затем построить трехмерную модель пространства. Благодаря ей мы определяем, какую панораму показывать, когда вы перемещаетесь в Просмотре улиц.
Куда мы направляемся
Автомобили Просмотра улиц путешествуют по разным странам, делая снимки, которые помогают нашим пользователям исследовать окружающий мир. Посмотрите список стран, которые мы планируем посетить.
Иногда плохая погода, ремонт дорог или другие обстоятельства могут помешать работе, поэтому планы съемок могут измениться. Обратите также внимание, что определенный город в списке может также включать и небольшие населенные пункты в его окрестностях.
Где мы побывали
Синим цветом на карте обозначены районы, которые доступны в Просмотре улиц. Увеличьте карту, чтобы увидеть более подробную информацию, или найдите нужное место на наших сайтах или в приложениях.
Наше оборудование
Посмотрите, какое оборудование мы используем для съемки.
Автомобиль
Летом 2007 года, когда был запущен Просмотр улиц, в нем можно было увидеть панорамы лишь нескольких городов США. Сейчас мы уже отсняли множество мест на всех семи континентах.
Трекер
Там, где не проедет ни автомобиль, ни велотрайк, ни снегоход, ни тележка, нас выручает трекер. Это закрепляемая на спине переносная система для создания панорамных снимков. Она очень компактна, поэтому мы можем фотографировать даже самые узкие улочки и места, добраться до которых можно только пешком. Впервые трекер был испытан во время похода по скалам Гранд-Каньона в штате Аризона.
Тележка
Однажды сотрудники Google, неравнодушные к искусству, подумали, что было бы неплохо использовать технологии Просмотра улиц для съемки музеев изнутри. Для этого мы разработали передвижную установку, которая могла бы легко проходить в двери и перемещаться вокруг скульптур. Камера и другое оборудование поместились на небольшой тележке, которая теперь используется не только в музеях. Например, с ее помощью мы сфотографировали Белый дом в Вашингтоне и несколько стадионов.
Снегоход
«А почему бы не сфотографировать горы для Просмотра улиц?» – подумали мы и принялись за дело. Нам потребовались несколько выходных, пара снегоходов, доски, клейкая лента и жесткие диски, завернутые в горнолыжные куртки для защиты от холода. Теперь любители зимних видов спорта могут исследовать склоны Уистлер-Блэккомб и соседних горнолыжных курортов.
Трицикл Просмотра улиц
Чтобы снимать узкие улочки, нам не хватало компактного транспортного средства, на котором трекер держался бы устойчиво. Мы взяли за основу скутер Selis Robin, популярный в Индонезии, и получили трайк для Просмотра улиц. Для большей стабильности трекера был изготовлен специальный штатив.
Записываем видео из Google Street View
Сама по-себе возможность, конечно же замечательная, но сайт не позволяет сохранять результаты экспериментов в виде роликов. Вот эту досадную неприятность решено было исправить, и не просто исправить, а реализовать в виде программки для iOS, помогая тем самым, превратить iPhone или iPad в устройство для создания, а не потребления, контента.
Как всё устроено
Итак, на сегодняшний день у нас есть несколько ресурсов, позволяющих снимать Стрит Видео. В первую очередь, это, hyperlapse.tllabs.io, который позволяет отметить 2 точки, проложить между ними маршрут и наслаждаться зацикленной анимацией.
Второй сайт, который позволяет смотреть стрит видео это http://track-kit.net
Этот сайт позволяет просматривать видео для созданных или импорированных треков. Несмотря на то, что Стрит Видео здесь не является основной функцией, можно сгенерировать прямую ссылку именно на видео для тека. Например, такую:
http://track-kit.net/maps_s3/index.php?track=8821.gpx&svv=134
Правда, на моём Маке более-менее работает только в Хроме.
Прокладываем маршрут
Для этого мы используем Google Maps SDK for iOS и Google direction API
С помощью Google direction API запрашиваем у Google набор точек между начальной и конечно точек пути в закодированном виде.
Google Maps SDK for iOS (класс GMSPath) понадобится чтобы перевести закодированый список точек который получили от Google в широту и долготу.
Для общения с Google используется AFNetworking.
Если загрузка прошла успешно в списке coordinatesArr мы храним набор координат точек нашего пути.
P.S. у Google direction API есть 1 нюанс — если необходимо провести маршрут не через 2, а скажем, через 20 точек, то придется делать несколько запросов для интервалов точек пути так как если передать в запрос через «&waypoints» большое количество промежуточных точек, Google может вернуть ошибку.
Загружаем панорамы
Для загрузки панорамы можно использовать запрос вида cbk0.google.com/cbk?output=json&ll=latitude,longitude
Он нам вернет информацию о ближайшей к точке панораме с координатами latitude,longitude.
Самое важное что мы можем получить это «panoId» — id нужной нам панорамы (помимо panoID мы можем получить так же информацию об углах смещения панорамы, которые могут пригодиться если надо будет повернуть панораму в определенном направлении):
Далее с помощью полученного ID панорамы мы можем через запрос:
cbk0.google.com/cbk?output=tile&panoid=panoid&zoom=zoom&x=x&y=y
получить уже необходимые нам тайлы панорамы, где panoId — это полученный ранее идентификатор панорамы, zoom — это масштаб панорамы (ее размер), x и y — это номера тайла панорамы по вертикали и горизонтали, при этом количество тайлов панорамы зависит от введенного нами зума. Например, если мы выберем zoom = 3, то панорама будет состоять из 7 тайлов в ширину и 3 в высоту.
То есть чтобы получить целую панораму нам надо загрузить все тайлы:
Таким образом, пройдясь по всем точкам полученного от Google маршрута, мы можем загрузить для них панорамы и далее отобразить их пользователю в виде видео.
Генерируем видео
Для этого нам понадобится библиотека AVFoundation:
От туда берем всего 3 класса:
AVAssetWriter — запись медиа данных в файл
AVAssetWriterInput — Добавляет пакет медиаданных в AVAssetWriter для записи в файл
AVAssetWriterInputPixelBufferAdaptor — предоставляет пакет видеоданных (CVPixelBuffer) для AVAssetWriterInput
Соответственно нам надо их где-то определить:
После этого все готово к записи видео.
В AVAssetWriterInput имеется функция:
(void)requestMediaDataWhenReadyOnQueue:(dispatch_queue_t)queue usingBlock:(void (^)(void))block
Которая, вызывает Block каждый раз когда нужна новая порция данных.
Скорость проигрывания видео контролируется с помощью переменной presentationTime, которая указывает время кадра в выходном файле
UIImage *image — это текущий кадр
Когда все кадры записаны в видео, мы сообщаем videoWriter и writerInput о том что необходимо остановить запись видео:
Функция получения CVPixelBufferRef с изображения:
Работа в фоновом режиме
Чтобы видео продолжало генерироваться когда наше приложение находится в фоновом режиме, можно использовать long-running background task для этого советую использовать неплохой класс
https://github.com/vaskravchuk/VideoMaker/
Добавляя немножко опций, получаем такой вот программный продукт.
itunes.apple.com/us/app/street-video-maker-free-create/id788610126?mt=8
Вот пример видео, созданного при помощи такой программы:
Как снимаются панорамы Google Street View?
Теперь, чтобы посмотреть график работы ближайшего магазина, можно даже не вставать из-за стола: просто открыть Google-панорамы, найти нужное здание и постараться разобрать буквы на вывеске. А как происходят съёмки этих панорам?
Кое-что можно узнать в официальном разделе «Под капотом» на сайте Google. Но пользователям Quora в своё время стало мало этой информации, и они поделились друг с другом своими знаниями. Основная часть информации предоставлена пользователем Арши де Круз, дизайнером и писателем: он сделал сводку ответов водителя автомобиля Google Street View на Reddit и дополнил данные материалом из интервью журнала TechCrunch с занимающими управляющие инженерные должности в Google Maps.
Что находится внутри машины?
Самая видимая часть съёмочного оборудования находится на крыше автомобилей Google Street View — это оборудование, регистрирующее данные. Оно включает в себя 15 камер и три лазерных сканера, надёжно закреплённых на высоте приблизительно 2,5 метра. Также автомобили оснащены 4G-доступом в интернет.
С помощью лазерных сканеров система получает данные о габаритах фотографируемых объектов: скорость, с которой лазерные лучи отражаются от поверхности, говорит об удалённости здания или объекта. Потом эта информация используется для построения 3D-моделей.
В камерах нет никаких механических элементов, даже затвора. Вместо этого в них используются CMOS-датчики изображения (на основе технологии КМОП комплементарный металл-оксидный полупроводник) и электронный затвор. Камеры соединены с панелью управления внутри автомобиля, а данные записываются на SSD-диски.
По словам водителя автомобиля, процесс записи проще быть просто не может: «Я просто нажимаю на кнопку, а камеры делают своё дело».
Какого объёма SSD-диски? Как хранятся данные? Как и когда они загружаются на сервер?
На борту автомобиля самые стандартные SSD-диски — общим объёмом памяти 50-100 ТБ. Этого хватает на неделю записи. Все записываемые данные автоматически резервируются на втором SSD-диске.
Регистрация данных о среднестатистическом городском здании занимает приблизительно 2-3 ГБ. В течение одного дня расходуется 50-100 ГБ места на диске (в зависимости от уровня населённости пункта). Но, скажем, на один день записи в Нью-Йорке уходит около 800 ГБ.
Одна из задач водителя — следить за заполненностью дисков; после того как заполнятся все пять дисков, водитель отвозит их в офис Google.
Что происходит в перерывах между съёмками?
В конце рабочего дня водители снимают съёмочное оборудование с крыши и кладут его в багажник. При длительной поездке водители останавливаются на ночь в отеле, автомобиль паркуют на местной стоянке. В некоторых крупных городах у Google есть гаражи для съёмочных автомобилей. Водителям не разрешается оставлять машину на ночь у своего дома.
Если же в пути случается поломка, съёмка просто приостанавливается, а на подмогу высылаются коллеги с нужными запчастями.
Насколько быстро движется автомобиль? Какова максимально допустимая скорость?
Камеры успевают фиксировать данные на любой скорости, разрешённой правилами дорожного движения в США (120 км/час). Тем не менее, если у водителя есть возможность двигаться чуть медленнее, им рекомендуется замедлять движение. Чем медленнее едет автомобиль, тем выше качество полученных изображений.
В плохую погоду съёмки не ведутся. Дождь и сильный ветер могут повредить камеры и также отрицательно сказываются на качестве картинки.
Какие камеры используются?
Камеры разработаны специально для проекта Google Street View. Первые версии съемочной установки (под названием R2) использовали восемь CCD-датчиков разрешением 11 мегапикселей и широкоугольные объективы. В следующих версиях (R5) использовалось 8 CMOS-датчиков, объективы с антибликовым покрытием и объективы «fisheye» для захвата многоэтажных зданий. В версии R7 использовалось уже 15 CMOS-датчиков, и объектива «fisheye» уже не понадобилось.
Откуда водитель знает, куда ехать или не ехать?
На основе анализа высокочастотных поисковых запросов специалисты Google решают, какие области планеты стоит покрыть панорамами прежде всего.
Когда водитель заступает на смену, ему выдаётся информация о начальном и конечном пункте, а также ключевые пункты на пути. Несмотря на то, что водителю даётся достаточно инструкций, он волен выбирать для себя более удобный маршрут следования между ключевыми пунктами.
Именно по этой причине вы иногда не можете попасть в виртуальную прогулку по маленьким незаметным переулкам. Недостающие данные об этих пропущенных местах могут появиться после следующей поездки в эту зону. В этом случае разница между новым и старым изображениями, а также разница в освещении нивелируется программными средствами.
Что происходит с изображением до его появления в готовой панораме?
Водителям автомобиля Google Street View нужно быть начеку: следить за тем, чтобы в обозрение камеры не попало то, что не нужно, например, дорожной аварии или уличной драки.
Если всё-таки в кадр попало что-то не слишком достойное, водитель должен удалить запись, вернуться и перезаписать фрагмент. Водителям предоставляется специальное программное обеспечение, с помощью которого они просматривают и совершают простую редактуру полученных изображений. На один день езды приходится в среднем по два дня редактирования. Данные GPS встраиваются в каждое фото автоматически.
После редактуры водителя диски поставляются в дата-центр, где информация загружается в базу данных и там же обрабатывается. Обработка включает в себя замыливание лиц и номерных автомобильных знаков.
Тем не менее, не всегда алгоритмы замыливания справляются с задачей, и на панорамах Google часто встречаются забавные ляпы. На ресурсе StreetViewFun собирают подобные оплошности и недоделки.
Для каждого фрагмента панорамы делается 15 изображений; программное обеспечение Google сводит эти изображения вместе, регулирует уровень экспозиции, светотени, цветовые различия и яркость.
С момента совершения водителем поездки до появления готовой панорамы проходит около шести месяцев.
Если интересно, посмотрите на автомобиль Google Street View вблизи:





