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

Чтобы понять, насколько хорошую точность можно получить в архитектуре и инженерных изысканиях подобного рода, мы решили отснять свой 11-этажный офис и создать 3D-модель. В конце работы мы получили модель здания и замерили по ней пару окон. Потом пошли и измерили эти же окна в реальном мире — среднее расхождение было в пределах сантиметра, максимум — двух.

Кстати, в чём-то похожая задача была у одного из наших партнёров — нужно было снять карьер площадью 470 Га и:
  1. Определить объёмы выработки породы.
  2. Подсчитать объём склада продукции.
  3. Получить поверхность для уточнения уровня гидроотвала.
  4. Получить 3D-модель всей территории.



Часть маршрутов

Её решили с помощью беспилотника, длинных гвоздей, GPS-приёмника и двух пачек пластиковых тарелок за 5 рублей за штуку.

Задачи и вендоры


Задача получения 3D-модели по прототипу объекта или самому объекту достаточно легко решается в игровой индустрии и других подобных сферах путём 3D-сканирования объекта. У нас есть свои 3D-сканеры, но засунуть в них что-то крупнее собаки представляется довольно сложным. Большинство зданий, увы, крупнее собаки. Конечно, есть ещё ручные сканеры и промышленные технологии, куда можно загнать хоть вертолёт, но это всё достаточно отдельная специализированная область. Кстати говоря, для зданий тоже пригодная. Но использование фотограмметрии и беспилотников более выигрышно по времени.

В случае здания матмодель используется такая же, как для сканера, но есть нюансы:
  • Обе технологии предполагают наличие множества изображений с различных точек, причём для каждого изображения есть метаинформация с расположением камеры.
  • Сканер работает в «стерильных» условиях, поэтому фильтрация и подготовка изображений не нужна. Для крупных съёмок освещение бывает разным (элементарно — во время съёмки облако закрыло солнце), поэтому алгоритмы требуют более явных опорных точек.
  • Съёмка инженерных объектов делается обычно с дронов, вертолётов или разных высоток, поэтому набор точек съёмки куда более ограничен, и плюс нам нужна фильтрация изображений, выполненных во время противоракетного манёвра дрожания платформы.

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



Найденные соответствия становятся ключевыми точками. Если есть хотя бы три опорных фотографии, эта точка строится уже в 3D-модели. Пространственные координаты триангулируются: от каждой точки съёмки к выбранной точке проводятся директрисы, и их пересечение даёт искомое значение.


Эти плоскости — расчётные планы съёмки, а в середине — крокодил. Ниже пример, как это выглядит для здания.

Для улучшения показателя «сигнал/шум» также используются методы фильтрации. Наиболее популярен алгоритм Левенберга-Марквардта (или метод связок) для уточнения координат точек. Затем на основании опорных точек с некоторой точностью восстанавливаются остальные точки, и всё это покрывается полигонами.



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





Нашей задаче наиболее отвечали готовые пакеты Photoscan от Agisoft, Pix4Dmapper от Pix4D, ContexCapture от Bentley.

Photoscan — это российский «полупрофессиональный» пакет, который довольно доступен, но с трудом применим на фермах. Pix4Dmapper — швейцарский продукт для обработки данных воздушной разведки беспилотниками. Считается одним из лучших решений для работы с ортофотопланами, облаками точек и цифровыми моделями местности. Как правило, хорошо «из коробки» забирает метаданные из дронов. Медленный, дорогой. ContexCapture — универсальный французский продукт. Сложен в конфигурировании, но очень удобен для работы, потому что умеет работать с очень шумными данными и хорошо ложится на большие инфраструктуры, явно промышленный. В итоге мы остановились на нём.


Полученная голографическая 3D-модель на основе 290 фотографий. Её мы использовали для демонстрации на 3D-столах.

Практика


В первую очередь мы начали не со здания, а с тестов в лаборатории. Нужно было понять, какое количество фотографий на сложный объект минимально и достаточно. Оказалось, что очень малое количество фотографий, естественно, ведёт к ухудшению модели (это понятно интуитивно), но и большое количество тоже. Важно не переборщить, потому что при существенно избыточном количестве исходных изображений алгоритмы фильтрации начинают чудить и «размывать» координаты. Выливается это в неровные контуры объектов. Наверняка это решается точным тюнингом входных параметров, но гораздо проще отбирать только подходящие изображения хорошего качества в нужном количестве.


Тестовый крокодил

На кластере из 6 машин сложный рельеф просчитывался за ночь.

В итоге вся работа по зданию заняла меньше одного рабочего дня. Естественно, полученная модель пока не может заменить проработанную модель, созданную инженером вручную, поскольку есть довольно много ошибок или неточностей изображения в макете. Отсюда выросла третья задача — сделать красиво, то есть доработать руками после просчёта. Дело в том, что мы показывали результаты разным людям, и они реагировали по-разному.
  1. Показываем реконструкцию археологической находки представителю музея. Реакция — просто вау.
  2. Показываем котлован инженеру — живо интересуется, можно ли будет дроном летать ещё изнутри здания (нельзя, для этого правильно использовать лазерные сканеры).
  3. Показываем здание архитектору — в восторге.
  4. Показываем его же финдиректору стройкомпании: «Что за мультяшный отстой?»

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

Карьер


Пока мы экспериментировали со зданием, выяснили, что похожая задача решалась уже нашими партнёрами — ООО «Фотометр». Их задача была в том, что нужно было быстро и дёшево снять карьер на 4 квадратных километра:
  1. Определить объёмы выработки породы.
  2. Подсчитать объём склада продукции.
  3. Получить поверхность для уточнения уровня гидроотвала.
  4. Получить 3D-модель всей территории.

Конечно, задача вычисления объёма склада сулила отличное гражданское и не очень применение. Для решения был взят Квадрокоптер DJI Fantom 3, 5 батарей, ноутбук и GPS-приёмник для координации на местности. На месте решили расставить «маяки» для большей точности: на 470 Га взяли 24 белые пластиковые одноразовые тарелки, которые крепились гвоздями-сотками. Координаты каждой тарелки взяли с приёмника с минимальной возможной погрешностью.


План полётов

Дул сильный ветер (около 10 м/с) и шёл снег. Летать было трудно, поэтому на съёмки было потрачено примерно 5 часов, израсходованы все 5 батарей, отснято 27 Гб материала. Общая длина маршрута 45 км.


Пример изображения из видеоряда

В тот же Context Capture загрузили 27 Гб видео и координаты в системе WGS 84. Запустили процесс обработки видео и процесс аэротриангуляции. Расчёт — 2,5 часа на двухъядерном офисном компьютере. Потом ещё 28 часов на 3D-модель. Машина обработала в итоге 1860 фотографий и построила трёхмерную модель всего карьера (470 Га). Из данной модели были получены необходимые форматы: Las (облако точек), OBJ (текстурированная модель), FBX (трёхмерная графика) и ортофотоплан. На этом этап обработки фотоматериала закончился.

Las на 1,5 Гб был передан заказчику для сравнения результатов аэрофотосъёмки и классического метода, применяемого на карьере. К сожалению, данный файл на месте у них не получилось открыть, поскольку AutoCAD Civil 3D при попытке его «пережевать» отказывался подавать хоть какие-то признаки жизни. Было принято решение разрядить облако точек в 300 раз.



Итог — вот по этому упрощённому файлу разница между работой маркшейдера с тахеометром и аэрофотосъёмкой составили 0,5% при допуске в горном деле до 5% (по нормативу в зависимости от объёма).



Точность аэрофотосъёмки получается выше, поскольку модель строится по поверхности с миллионами точек, тогда как маркшейдер набирает их значительно меньше. С другой стороны, 3 дня на всю работу (или 1–2 дня при расчёте в кластере) вместо месяца, а из оборудования — доступный дрон за 100 тысяч рублей, и запускался чуть ли не с коленки.

Резюме


Раньше фотограмметрия применялась в геологии, топографии и археологических раскопках. Затем — после одной эпичной съёмки развязки для восстановления проекта и ещё нескольких досъёмкок для контроля состояния проекта — приобрела известность в строительстве. Недавно фотометрию начали применять в киноиндустрии. Как видите, кое-что поменялось с 1852 года, с тех пор как французский инженер Э. Лосседа снимал с воздушного шара Париж.

Ссылки


Поделиться с друзьями
-->

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


  1. Deamon87
    19.05.2016 11:43
    +1

    Я просто оставлю этот ролик здесь: https://www.youtube.com/watch?v=M0xL04wg3X4
    ЗЫ: к этим ребятам я никакого отношения не имею


    1. Seekeer
      19.05.2016 14:56
      +1

      Цена этого девайса $170к :)


      1. JStingo
        19.05.2016 18:19

        Есть сканеры гораздо дешевле. Можно в 20$ уложится. При этом у лазерного сканера гораздо большая точность. Строительная индустрия уже давно в полную мощь их использует.


    1. YuChaly
      19.05.2016 16:53
      +2

      Лазерное сканирование, бесспорно, тоже отличный способ захвата реальности, и мы даже использовали его для определенных целей.
      Но этот способ требует ручной пост-обработки. На видео это заняло 6 часов, сколько времени заняла бы съемка и обработка нашего объекта — неизвестно.
      А софт для фотограмметрии ручной корректировки не требует, на фото показана первичная модель, которую собрало ПО. Т.е. сняв днём объект, мы оставили на ночь работающую машину (а не человека) с полной уверенностью, что утром у нас будет модель. Так собственно и вышло.
      В целом, затраты на получение модели под наши требования в случае применения технологи лазерного сканирования значительно выше, чем при получения 3D модели по фото. Плюс есть сложности в сканировании дорожных развязок.
      К тому же фотореалистичность у фотограмметрии выше (по моему субъективному мнению), да и крышу снять проще.
      Так что выбор беспилотников и фотограмметрии в нашем частном случае считаю абсолютно верным.


    1. roller
      20.05.2016 19:49

      респект гуглу и тесле что уместили эту бандурину (лазерный сканер) в изящные форматы автомобиля


  1. Superblaze
    19.05.2016 11:55
    +1

    Вынес мусор, помыл посуду, и оцифровал мир


  1. dmitry_ch
    19.05.2016 12:28
    +3

    Крутое описано и приятно написано!

    Молодцы, спасибо!


  1. mikkab
    19.05.2016 12:36

    Для точной съёмки лучше работать в паре с геодезистами, они снимают несколько точек, и по их данным делается привязка к местности. Тарелочки с гвоздями надо будет попробовать :) но обычно приязку делаем по существующим объектам на местности. wgs84 нужна далеко не всем, часто работы ведут в локальных координатах.
    Я все собираюсь RTK поставить на коптер, что бы положения камер сразу задавались в точных координатах, расчет должен ускорится и привязка к местности упростится в разы.

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


    1. YuChaly
      19.05.2016 15:57

      Равномерно летать можно, если для этого есть условия. Можно быстро отлетать по радиусу или задать эллипсоид для прямоугольного здания. Для такого здания, как офис КРОК – неправильной формы, контролируемое расстояние задать проблематично, тем более, что соседнее здание в 15 метрах. Проще было снимать вручную, тем более, что даже при выдерживании равных расстояний до объекта точность останется в пределах требуемого масштаба. Съемка с автофокусом.


      1. mikkab
        19.05.2016 18:25

        По радиусу летать вокруг здания не очень хорошо, особенно если рядом есть здания или деревья, или провода висят. в городской застройке даже gps-lock не всегда будет доступен. Искажения и разница снимков на углах и плоскости при таком облете довольна большая, те точности сравнимой с тахеометрами таким образом не добится, но для «посмотреть» или распечатать уменьшенную копию на 3d-принтере вполне. если же выдерживать расстояние до объекта, то точность повышается, при условии правильной камеры и всего остального.


  1. TimsTims
    19.05.2016 14:20

    > Пример изображения из видеоряда
    Совсем не видно на кадре хоть 1 тарелочку на гвозде. Или тарелки очень маленькие?

    Подскажите, а ведь с такими ресурсами вы запросто можете отцифровать целый город, построить его 3D-модель и устраивать виртуальные экскурсии по городу! Не задумывались о новом проекте Fly Street View?


    1. YuChaly
      19.05.2016 15:54

      Да, тарелки маленькие, плюс на скриншот они не попали, т.к. их использовалось совсем немного.
      Технология 100% позволяет получить модель города, если у кого-то будет интерес к такой работе, то мы, конечно, готовы взяться и за такую задачу.


  1. semenyakinVS
    19.05.2016 14:33
    +1

    Глядишь, годика через два гугл и яндекс выкатят дроновую армию для снимания 3Д-моделей городов. Самое крутое, что это дело автоматизировать не сложно: полетели, обсняли что надо, вернулись на базу, переписали то, что обснято в общую базу данных, подзарядились — и снова полетели снимать 3Д-модель мира.


    1. GG003
      19.05.2016 15:52

      У гугла уже многие города (в США) отсняты в 3d. Технология вроде не такая как в посте, но тоже очень впечатляюще.


      1. TimsTims
        19.05.2016 16:15
        +1

        Не совсем. Там они просили «энтузиастов» и частично своими силами создавали 3д-модели зданий, а затем почти вручную накладывали текустуры со снимков со спутника. Поэтому, тот-же самый о.Манхэттен — здания в 3д-режиме выглядят довольно страшновато, т.к. качество текустур ужасное.


        1. semenyakinVS
          19.05.2016 16:19

          Вот-вот. Я тоже видел эти 3Д-модельки — явно не с помощью описанных в статье технологий делались, слишком страшненько… Кстати, а вот такой ещё вопрос, может знаете: google дронов для панорам пока не пробовал использовать?


        1. khayrov
          19.05.2016 19:16

          Детальная 3D-карта собирается машинами Street View с лидарами (http://static.googleusercontent.com/media/research.google.com/ru//pubs/archive/36899.pdf), этих данных много больше, чем вручную созданных моделей. Найдите в Maps город с более-менее свежим покрытием Street View и перейдите в 3D-режим, хорошо видно каждое дерево.


          1. semenyakinVS
            20.05.2016 17:44

            Глянул. Действительно, некоторая эволюция есть, но всё-таки выглядит это по-прежнему страшновато.

            Улочка Нью-Йорка


  1. infraredled
    19.05.2016 15:52

    «от каждой точки съёмки к выбранной точке проводятся директрисы, и их пересечение даёт искомое значение.»
    Можно пояснить, как именно они строились? Полагаю, что относительный угол отсчитывался в зависимости от положения точна на кадре относительно центра, но вот откуда брали вектор, под которым смотрит камера? Сам дрон по GPS определялся и с какой погрешностью?


    1. YuChaly
      19.05.2016 16:28

      Это автоматизированный алгоритм программы.
      Она обрабатывая фото, ищет одинаковые точки объекта. На основе найденных соответствий составляет и решает систему нелинейных уравнений, определяет параметры камеры (фокусное расстояние и т.д.) и положение/ориентацию камеры в моменты фотографирования каждого из снимков относительно одного из них.


  1. Mordva_givi
    19.05.2016 15:52
    +2

    Красиво, вот эта та самая тема, которую можно демонстрировать в разделах «IT делает нам приятно» :)

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


    1. YuChaly
      19.05.2016 18:03

      Да, для объектов культурного наследия данную технологию тоже применяют. Но сразу надо оговориться, что в нашем случае это не просто визуализация, а 3D модель фотографического качества. У модели можно померить размеры, объёмы, причём с хорошей точностью.


  1. bengan777
    19.05.2016 15:52

    Мы тоже тарелки используем для съемки коптером, прибиваем их и сразу координируем с помощью Topcon GR5. Со стороны наверное забавно выглядят люди прибивающие тарелки к земле :)


  1. rolling_robot
    19.05.2016 15:53
    +1

    Во сколько обошлась закупка ContexCapture, если не секрет?
    Ведь стоимость системы это не только стоимость коптера. А ПО, я полагаю, примерно на порядок дороже будет.


    1. YuChaly
      20.05.2016 11:58

      При подготовке этих моделей использовалось ПО, которое было предоставлено вендором на тестирование. Но в целом цена на Context Capture зависит от конкретной конфигурации, которая подбирается индивидуально. А конфигурация зависит от того, какие задачи будут решаться. В целом, мы можем предложить разовые работы как услугу — здесь, фактически, ПО не покупается, поскольку расчёты ведутся на нашей ферме по модели SaaS.


      1. Svrg
        20.05.2016 12:03

        Интересно, а можно в данное ПО подсунуть координаты фоток от GPS с сантиметровой точностью, чтоб тарелки не прибивать?


        1. YuChaly
          20.05.2016 16:42

          Существуют три варианта получения размеров объекта.

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

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

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


          1. Svrg
            20.05.2016 17:45

            Очень интересует первый вараинт. Пробовали ли вы такую схему в действии?


  1. Stas911
    19.05.2016 16:20
    +1

    А насколько хорошо эти продукты работают в облаках? Типа вместо расчета за ночь взять сотню spot-машин на амазоне и посчитать за час можно?


    1. YuChaly
      20.05.2016 12:21

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


  1. trir
    19.05.2016 19:59

    AutoCAD Civil 3D нормально переварит такой объём, просто грузить надо как облако, а не cogo-точки
    хотя разредить тоже полезно


  1. SKolotienko
    19.05.2016 20:45

    del


  1. Procyon_lotor
    20.05.2016 11:57

    А еще ведь есть VisualSFM. Экспериментировал с ним как-то. Самый крутой вариант получился, что очевидно, с гранитной скульптурой. По облаку точек с помощью Meshlab удалось сделать модель миллиона на три полигонов.

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