Компьютерра: как превратить карту в виртуальный город
На сайте Компьютерра.Блоги рамзещен материал Олега Парамонова «Как превратить карту в виртуальный город: brute force, уловки и роботы». Ознакомиться с публикацией, посвященной трехмерной картографии и компьютерным играм, можно по ссылке - http://blogs.computerra.ru/13004
Теперь объёмные модели городов нужны не только разработчикам игр. Дело медленно, но верно идёт к тому, что собственная трёхмерная карта появится на каждом уважающем себя картографическом сайте. Во-первых, такие карты удобнее обычных. По ним можно составить представление о том, как выглядят здания с точки зрения прохожего, а не пилота-бомбардировщика. Во-вторых, данные такого рода не помешают некоторым приложениям в качестве «сырья» (например, для отображения дополненной реальности). Наконец, есть третья причина: мода. Спутниковые карты, которые вызывали восторг лет пять назад, когда открылся Google Maps, давно приелись. Теперь нужно нечто большее, чтобы поразить пользователя.
Проблема в том, что получить нечто большее не так-то просто. Разработчики компьютерной игры GTA 4 тратили миллионы на сотни тысяч фотографий и нарисованные вручную модели не потому, что им некуда девать деньги. Другого решения просто не было. Даже для Google – компании, склонной автоматизировать всё, что поддаётся автоматизации, модели зданий для Google Earth рисовали не роботы, а обычные художники, а то и добровольцы-любители. Это не тот способ, который легко масштабируется, сколько денег ни вкладывай, поэтому объёмные здания на гугловском глобусе по-прежнему одиноко возвышаются посреди двумерной пустыни.
Москва в Google Earth
Почти каждое решение этой проблемы вынуждает чем-то жертвовать: либо точностью, либо покрытием, либо полезностью. Вот, например, какой выход нашли в Microsoft: вместо того, чтобы добиваться полной объёмности, компания научилась делать псевдоизометрические карты из авиасъёмки. На них тоже можно разглядеть здания со стороны, но они лишены всех других потенциально полезных свойств, которыми обладают трёхмерные карты.
И если уж речь пошла о полумерах и суррогатах, то нельзя не упомянуть о картах китайских городов, которые рисуют в Baidu. Они сделаны настолько лобовым методом, что невольно вспоминаются анекдоты о Китае, но эффектность пиксельных картинок, напоминающих о «Сим-Сити», с лихвой компенсирует все минусы.
Пиксельная карта Baidu
Самый перспективный подход к задаче нашли шведы из фирмы C3 Technologies, отпочковавшейся от автокомпании Saab. Они тоже, как и Microsoft, используют авиаснимки, но строят на их основе не статичную карту, а полноценные трёхмерные модели. Процесс, как утверждают его создатели, автоматизирован на 98 процентов.
Самолёт снимает город с помощью конструкции, собранной из четырёх цифровых зеркальных фотоаппаратов, направленных в противоположные стороны (интересно, что оборудование автомобилей, которыми «Яндекс» снимает панорамы, устроено похожим образом – оно тоже основано на обычных зеркалках, а не на специализированных камерах). Кроме того, есть несколько дополнительных камер, количество и размещение которых в C3 Technologies держат в секрете.
Затем специальное программное обеспечение отыскивает в отснятом материале кадры, которые можно считать стереопарами. Оно сопоставляет правую и левую половину каждой стереопары и по различиям вычисляет предположительные трёхмерные координаты каждого пикселя. После автоматического и ручного отсева брака у программы накапливается достаточно данных, чтобы получить на их основе трёхмерные модели, которые не стыдно показывать людям.
О существовании этой технологии было известно ещё несколько лет назад, но тогда посмотреть на её работу можно было только на видео. Теперь карты C3 Technologies можно увидеть на сайте Nokia в действии, нужно только установить специальный плагин. Ограничения предсказуемы: самолёт с оборудование C3 Technologies пока побывал не в каждом городе и даже не в каждом мегаполисе. До Москвы он, например, пока не долетел.
Очевидное, что будущее не за brute force в духе Baidu, а за этой и подобными технологиями. Наверняка в Google и других компаниях уже копают в том же направлении, и можно даже предположить, как именно. Известно, что при съёмке панорам StreetView автомобили Google попутно прощупывают окрестности с помощью лазерных дальномеров. Не для того ли, чтобы добавить третье измерение в отснятые кадры? Отсюда один шаг до перевода собранных данных в трёхмерную форму – правда, возможно, не самый простой шаг, раз в Google до сих пор его не сделали.