Пользователь
0,0
рейтинг
28 мая 2008 в 14:33

Разное → Наша «Street View» — история создания kartamania.ru

Перед тем как рассказать, как мы создавали наш ответ гуглу, Street View по-русски,  в ответ на замечания, прозвучавшие в комментариях к нашему первому посту, хотим сообщить, что проект неспешно развивается, и мы сделали новую версию обозревателя панорам.

Главное новшество, требующее обсуждения — перспективные искажения.

При просмотре панорам на основе кубической проекции мы реализовали так называемые перспективные искажения, которые при вращении панорамы создают эффект глубины или объема. Кроме того, добавили эффект «смешения» при замещении панорам во время движения.

История о том, как мы это делали.


Перед нами было два пути: купить готовое решение на западе, например, у Immersive Media, или же сделать все самим.

Мы выбрали второй вариант по нескольким причинам.

Первая причина — мы хотели попробовать это сделать хоть в каком-то виде. Необходимо было пройти все технические этапы для того, чтобы осознать на собственном опыте проблемы и нюансы. Мы не планировали сделать из этого какой-то коммерческий проект, для нас это было нечто вроде хобби.

Вторая причина — это различные непрогнозируемые препятствия (офлайнового характера). Например, что будет, если вы будете целый день кружить по центру Москвы с камерами на крыше автомобиля? Могу сказать, что поначалу ощущения были не самые приятные. :-)

Третья причина — это отсутствие на рынке готового решения, полностью удовлетворяющего нашим требованиям. Например, доступная и известная на западе система от «Immersive Media», которую вначале использовал Google (и как мы понимаем, отказался от нее потом), не обеспечивает того качества, которого мы хотели, если бы после пилотного проекта решили продолжить заниматься этим всерьез. Их система имеет 12 камер с разрешением всего 640×480 или 360×290 градусов. Этого мало, и качество такое же, как у нашей «пилотной» установки (только вертикальный охват больше и, может, стичер и оптика получше). Другие устройства — видеорегистраторы, доступные в продаже, также не подходят по целому ряду причин.

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

Какие же минимальные требования были к пилотной системе?
  1. Возможность делать круговой снимок хотя бы раз в секунду с минимальным разрешением одного кадра 640×480. То есть, двигаясь со скоростью в 50 км/ч, мы должны получать снимки каждые 15 метров.
  2. Делать снимки, пригодные для склейки в панораму, на скорости до 60-70 км/ч.
    Тут надо пояснить, что при движении на скорости в 50 км/ч машина проходит приблизительно 14 м/c секунду и если камеры, которые расположены по кругу, делают снимок с разницей хотя бы в ½ секунды, то точки съемки могут отличаться на 7 метров. Если мы снимаем широкий проспект, то это может не сказаться на качестве панорамы, но если мы снимаем небольшие улицы или в поле зрения камеры есть близкие объекты, то разница в 7 метров может быть очень существенна.
    На наших панорамах есть такие бракованные снимки, из-за сбоев в работе системы и из-за наглого нарушения скоростного режима — мы пробовали снимать на скорости до 100 км/ч.
  3. Работа системы от бортовой сети автомобиля.

Сказано — сделано. Мы подобрали web-камеры (USB) с максимально широким углом (52 градуса по горизонтали) с автоэкспозицией и позволяющей снимать видео с разрешением 640×480. Для получения панорамы с учетом перекрытия соседних кадров (это необходимо для склейки) и с учетом возможной временной разсинхронизации камер при движении нам понадобилось 8 таких камер. Мы разобрали готовые камеры и собрали из них и подручных материалов (лома и паяльника) вот такую штуку.


Следующая проблема — крепление устройства к автомобилю. Наш админ, ученик старой школы, собрал конструкцию:


Вся конструкция для защиты от дождя, ветра и прочих неприятностей была спрятана в кофр:


А это уже на крыше автомобиля:



Далее мы разработали программное обеспечение, которое позволяло синхронизировать и сохранять снимки с привязкой к GPS координатам. Вся система работала на двух ноутбуках от бортовой сети автомобиля.
По ходу мы обошли две серьезные проблемы:
  • Ограничение пропускной способности USB 2.0 на ноутбуках при подключении многих камер.
  • Максимальную синхронизацию кадров на разных камерах и более того, на разных ноутбуках.
Для склейки панорам мы использовали абсолютно простой стичер безо всяких ручных настроек.

Планы на будущее


Итак, что дальше? После того как мы изобрели велосипед в пилотном проекте, у нас появились новые требования к головной системе. Конечно, требований намного больше, но вот основные:
  1. 16 камер с разрешением 1280×1024;
  2. хардверная синхронизация камер;
  3. качественная оптика.

По нашему мнению, такое устройство позволит делать панорамы не хуже чем у Google (новой его версии). Чем мы неспешно и занимаемся … все-таки хобби :-)

Всем спасибо, надеюсь было интересно.
estarter @estarter
карма
22,1
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разное

Комментарии (32)

  • 0
    Давно слежу за вашим проектом и он мне очень нравиться
    Ваш огромный плюс - софт для мобилок для получения снимков от юзверей обыкновенных..
    Эх пойду чтоли вам письмо напишу...
  • 0
    Самые лучшие вещи создаются именно такими энтузиастами, которые прибыль не выносят на первое место в своей деятельности, хотя и её исключать тоже глупо.
    А вообще - очень приятно видеть людей, которые занимаются любимым делом.)
    Успехов вам в вашем деле.
  • 0
    Очень интересно, пишите ещё, в деталях.

    Были ли какие-то эксцессы, сколько это всё сейчас занимает место, как составлялся маршрут, как победили возникшие проблемы?
    • 0
      Кстати да - вы пишете что вся система работала на двух ноутбуках от бортовой сети.
      Это 60-80 ватт на ноут(12-160) и ммм по 5 ватт.. хм даж представить не могу сколько кушает камера, много ватт по USB то и не прокинешь
      Но чтобы подключить трансформатор такой мощности требуется подрубать его напрямую к аккумулятору.
      Иначе прикуриватель расплавиться(ну или его провода)
      • 0
        На самом деле, один работал от сети, а другой от собственной (улучшенной батареи) , а потом на ходу переключали второй к сети а первый начинал работать от своей батареи . И этого хватало минимум на 4 часа , а потом просnо надоедало ездить и мы шли домой пить пиво.
  • 0
    Интересный ответ гуглу =)
    Не хватает возможности крутить панораму стрелками с клавиатуры (лево, право) + перемещение по улице стрелками вперёд, назад.

    p.s.
    Очень не удобно на ноуте крутить её тачпадом =(
  • –3
    Что-то очень медленный стартап у вас и ошибок много. У меня вроде и не такой слабый компьютер...
    • 0
      ошибки есть, но это же вечная beta :)
      • 0
        А зачем широко рекламировать бету, которая в самом начале загрузки выдаёт кучу ошибок? Исправить их для начала, оптимизировать алгоритмы и тогда уже...

        Всем спасибо за минусы!
        • +2
          нуу, нормальное поведение осознается только с опытом :) http://webo.in в начале тоже не очень хорошо работал :)
  • +1
    жесть. а зачем было ставить custom control для зума? и даже если и ставить, то почему он столь крив?
    почему при даблклике у вас вылазит алерт?
    ...и еще много почему и зачем...
  • НЛО прилетело и опубликовало эту надпись здесь
    • +2
      Я даже хз ... выкиньте ваш комьютер и браузеры ))
      • 0
        Хотя есть косяки, иногда натыкаешь по карте и выслывает)
        Но всё равно ведь ответ))
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Все дело в качестве прокрутки панорамы и специфическом отображении. Можно сделать прокрутку только на javascript`е, но
      перспективные искажения нормально можно сделать только на flash`е ну или на java (из того, что браузер обычно поддерживает)
  • 0
    Все замечательно, только мне выдает error load objects постоянно.
    • 0
      Такая же борода. При отзуме начинает в цикле алертить:

  • 0
    все эти ошибки связаны с хабраэффектом.. мы подтюнили сервер, теперь должно работать нормально.. (спасибо за терпение ;-)
  • 0
    Кстати, если скролить по карте и следить за ползунком можно сделать интересное наблюдение...
    • 0
      :-)
      спасибо за найденный баг...
  • 0
    "Прокатился" сейчас по ТТК в районе савеловской эстакады, все думал, кто же быстрее - вы или грузовик по соседней полосе :)
  • 0
    ну что сказать, молодцы ребята! так держать!
    • 0

      такая бага
    • 0
      упс, слчайно вам ответил, пардон :)
  • 0
    Авторы красава! Респект и уважуха! Продолжайте в том же духе :)
  • 0
    Эх, а панорамы как не кешировались, так и не кешируются. При перемещении туда-сюда каждый раз заново подгружаются.
  • +1
    ответ гугл, работающий на картах гугл, логично +)
  • 0
    главное не написал: спасибо, очень понравилось, заедьте как нибудь на мою родною Филёвскую пойму.
    http://maps.google.com/maps?t=h&key=ABQIAAAA2IY7koZ5dURcYTaeMnngXRTJW59LIKS1cgFFRO2YcdsuL7DWsBTEWwSCqBTydjIOU4yqilanfmVqUA&ie=UTF8&ll=55.765541,37.487454&spn=0.017093,0.040169&z=15
  • –1
    Не очень понял цель - для чего это затевалось.
    Может ответ Microsoft сделаем ? :)
  • 0
    Ребят, а что за камеры использовали? линзы кастомные были или меняли на широкоугольные?

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.