Пользователь
0,0
рейтинг
17 декабря 2011 в 16:55

Дизайн → Сканируем в 3D с помощью фотоаппарата или 123D Catch

В современном мире трехмерные технологии стали очень популярны. 3D стремительно и разнообразно входит в жизнь даже обычного человека. Начиная от 3D телевизоров, 3D сканеров и даже принтеров. Хотя последние два устройства в большей степени пока доступны только специалистам. Но технологии не стоят на месте. Появляются трехмерные принтеры стоимостью около $2000, что уже приближает время, когда они появятся, если не у каждого школьника/студента на столе, то как минимум, у каждого инженера или дизайнера. Что касается методов получения трехмерной модели с реального физического объекта, то тут тоже не все однозначно. Требуются наличие либо дорогостоящего лазерного сканера, либо можно попытать счастье с помощью лазерного строительного уровня, веб-камеры и специального программного обеспечения. Наличием всех этих вещей тоже не может похвастаться абсолютно любой человек.
Однако есть очень простой способ “сканировать” объект в 3D модель, используя обычный цифровой фотоаппарат. Как это сделать? Об этом и пойдет речь далее.


Компания Auotodesk, разработала облачный сервис под названием 123D Catch, который позволяет в автоматическом режиме построить 3D модель объекта по набору фотоизображений. Как подсказывает Википедия, данная технология называется Фотограмметрия.
И так что же нам нужно, чтобы получить 3D модель объекта по фотографиям?

Для эксперимента я взял небольшую морскую ракушку.

Скачиваем и устанавливаем программу 123D Catch. Тут нужно отметить два момента, которые немного усложнили мне жизнь, прежде чем я разобрался в чем было дело.
  • Время на компьютере должно быть синхронизировано через интернет! В случае малейшего расхождения от “идеально” времени, программа будет оказываться запускаться.
  • Программа очень не любит кириллицу в любых путях. Как в пути до папки установки, так и до папки с исходными фотографиями.

Программа установлена и запускается.



Далее производим фотосъемку объекта. На этом этапе тоже необходимо придерживаться некоторых правил:
  • Сначала производится съемка объекта со всех сторон, а затем делаются более детальные виды (если требуется);
  • Объект должен быть неподвижен. Необходимо перемещаться вокруг него, а не вращать объект;
  • Каждый последующий кадр должен накладываться/пересекать предыдущий;
  • Сервис не работает с прозрачными объектами;
  • Количество фотографий не должно превышать 70 штук;
  • Размер фото уменьшается на серверах сервиса до 3 мегапикселей. Для экономии времени закачки фото на сервера, нет смыла делать их большего размера.

Закончив фото сессию, загружаем фото в программу, нажав на кнопку “Create a new Photo Scene”. Отправляем все фотографии на в облачный сервис для просчета нашей сцены, нажав кнопку “Compute Photo Scene”.



Далее нас попросят ввести свой емайл и выбрать вариант дальнейших действий
Кнопка “Wait” — ожидать завершения процесса просчета. При этом будет отображаться шкала прогресса.
Кнопка “Email Me” — закрыть программу и ожидать уведомления по эл. почте.



В моем случае процесс ожидания не занял более двух минут.



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



Можно создать анимацию перемещение камеры вокруг объекта. Выгрузить в avi файл, либо напрямую из программы загрузить на YouTube.

На мой взгляд, большую ценность представляет возможность экспортировать сцену в файл и использовать для дальнейших манипуляций в редакторах трехмерной графики (например Blender3D или 3D Max).
Поддерживаются следующие форматы: Autodesk Drawing (dwg), Autodesk FBX (fbx), OBJ, RZI, IPM, LAS.




Получившаяся 3D модель в формате OBJ (2.64 Mb)
http://narod.yandex.ru/disk/34643353001/123D%20Example.zip

Самые разнообразные примеры можно найти на YouTube по ключевым словам “123D Catch” и “Project Photofly”.

Удачи в 3D сканировании!
@Cadog
карма
30,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Дизайн

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

  • +3
    Спасибо. Очень полезная программа, в избранное однозначно.
  • +8
    Я ж два года ждал такую программу!
    • +15
      Не два, а джва
      • +11
        Это же хабр, напижешь «джва» — уже схватишь минусов. Говорят, это плохо.
        • +20
          А напишешь «джва скрипт» — схватишь плюсов =)
          • 0
            Это от зависти. Надо же при идеальном коде к чему-то дое, а то зазнается.
            • 0
              Зависть кстати тоже разная бывает, иногда она приводит к стрессу и негативу, а иногда мотивирует на саморазвитие…
  • +1
    Черт возьми, но ведь круто, я так понимаю все же лучше делать фон однородным?
    • +1
      Трудно ответить однозначно. Например, в обучающем видео при съемки комнаты с однотонными белыми стенами и белой дверью рекомендовали наклеить на стены маркеры (разноцветные листы бумаги). Похоже что так программе проще «зацепиться» за разные кадры и связать их во едино.
  • –2
    Не очень понятно, что значит «следующий кадр должен перекрывать предыдущий»?
    • +3
      Насколько я понял — часть предыдущего кадра должна находиться в текущем кадре. Иначе программа не сможет просто связать два кадра между собой.
    • +2
      Использовать наложение по краям, как при панорамах.
  • +1
    Если такое получается автоматически www.youtube.com/watch?v=3IW-dNpEo2A&feature=related,
    то StreetView может (в теории) все в 3D перевести )
    • +2
      Да, меня давненько такая идея посещает. Снимки StreetView должно быть особенно удобно использовать из-за того, что у них и так уже есть довольно точная привязка к географическим координатам и углам поворота камеры.

      Жаль, руки так и не дошли до алгоритма — было бы интересно попытаться целый город в автоматическом режиме перегнать в 3D (и загрузить в какую-нибудь GTA :)
      • +3
        Детализация не та для GTA.
    • +3
      maps.nokia.com/3D/
      уже!
      ТОлько плагин нужно поставить к браузеру для отображения 3D
      • +2
        причем тут Нокиа со своими картами? Я говорю в принципе о применении данной технологии в автоматическом, а не о возможности в целом создавать 3D-панорамы.
        • +1
          Компания Transas Vision занимается применением аналогичной технологии к картографии: www.transas.ru/vision/geoinfo/topoaxis/
        • 0
          Так там они и высчитываю рельеф автоматически из аэрофотографий.
      • 0
        Да, принцип тот же. Тут в комментариях дали ссылку на компанию Transas Vision, которая изобрела/использует эту технологию для карт. Я где-то читал, что изначально это была разработка для военных.
        • 0
          Я все напутал. Копания из Финляндии — C3 Technologies. Разработчик C3 Technologies использует технологию, используемую для наведения ракет, для построения моделей зданий с погрешностью не больше 15 см. Потом они собираются продавать уже обработанные наборы моделей сетевым картографическим сервисам – и первым их клиентом стала Nokia.
          И читал я это тут http://habrahabr.ru/blogs/nokia/118325/
    • 0
      Street view камера в центре, а тут (как и у майкрософтовской подобной технологии ) камера вокруг летает.
  • +1
    Спасибо, это очень круто.
  • +2
    Жаль, что для обработки нужно загружать фотографии в облако Автодеск.
    Отладят технологию и будут брать деньги за подписку :(

    Специально посмотрел — все инструменты либо платные (и не дешевые), либо веб-базед, т.е. в любой момент могут стать платными. Значит, в реальной практике использовать боязно.
    • +2
      Нет, я сам себя обманул. Есть опенсурс
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        Это не совсем то же, что в топике.
        На видео — точечное моделирование, подходящее больше для создания стереопанарам по базовым изображениям, а необходимо полигональное, без которого не сделаешь модель для 3D редактора.
        • НЛО прилетело и опубликовало эту надпись здесь
          • 0
            Похоже на воксели по точкам, только «шиворот-навыворот» — построили треугольники по имеющимся точкам. Но есть ведь текстурная интерполяция — и «узнаваемость» объектов получается значительно выше.

            Но согласен, все очень «сырое».
          • +1
            Мне кажется проблема в Вашем случае это слишком сильный угол поворота объекта в разных кадрах. Рекомендуют 10-15 градусов. Но как его отмерять — черт его знает! :)
            • +1
              Делается поворотный стол, нет?
              Была программа, для неё нужно было печатать специальный круг для этого.
  • 0
    Почему так поздно?
    • +1
      Уж лучше поздно, чем никогда.
  • +2
    А программа не различает подложку и объект? Получилось, что раковина вросла в подстилку.
    • +2
      Я тоже подумал, как получить отдельный обьект без врастания, пока пришла идея подвешивать на нитке(верёвке) и делать снимки так же и снизу.
      • +1
        Скорее проблема тени сыграла свое, попробуйте осветить объект снизу, а лучше, положите объект на матовый акрил и направьте снизу хорошую ртутную лампу строго по центру объекта. Должно получиться намного лучше.
        • 0
          Да тут и тень сыграла, то есть программе не хватило данных. Но даже если осветить повсюду, а обьект всё равно будет на чём-то не прозрачном лежать, то данных о нижней части обьекта всё равно не будет.
      • 0
        С ниткой должно получиться. Вот так снимают нижнюю часть кресла
        http://www.youtube.com/watch?feature=player_detailpage&v=7TfXXJxDsXw#t=193s
        А любые прозрачные, зеркальный и бликующие объекты крайне не рекомендуют использовать.
      • 0
        Возможно, если положить объект на стеклянный стол, на котором не будет бликов, то программа стол и не заметит.
    • 0
      Нет, подложку не отделяет. Можно удалить лишние полигоны либо прямо в программе 123D Catch в ручную, либо в любом редакторе доводить до ума.
  • +7
    Даёшь сиськи в 123D! :-)
  • +1
    3DSOM, PhotoSculpt Textures — вот ещё пара программ с подобным функционалом.
  • –2
    а у меня висит при установке .NET Framework 4 Update (KB2468871)
    • –2
      всё, пошел дальше :)
  • +2
    Как обычно юзеров линукса обидели. Если сервис облачный, неужели было трудно сделать клиент кросплатформенным.
    • +1
      www.hypr3d.com
      Тут все делается вообще только через web интерфейс. Пойду попробую и сравню результат.
      • +1
        Мда… Результат оказался так себе. Построилась только половина ракушки. Время на обработку около 12 мин, против 2 мин в 123D Catch. Но самое главное результат нельзя экспортировать для дальнейшей работы с ним.
        https://www.hypr3d.com/models/4eed78a9db1220000100000c
    • 0
      К сожалению Autodesk`у нет смысла делать под Linux отдельно взятую программу, потому как подразумевается ее использование в комплексе с остальными их продуктами.
  • 0
    вот еще очень крутой проект на эту тему www.youtube.com/watch?v=ncCT-P4pQcQ
    • 0
      Проект звучит очень интересно. Но по данному видео мало что понятно. Презентация не заснята.
      Надо капнуть глубже в интернетах. Спасибо
      • 0
        я этот проект на CGEvent год назад видел. там по 2м фоткам восстанавливалась 3д модель лица достаточно точно. Ну не всего лица, конечно, той части, что есть на фотографии. Плюс написано на cuda
  • 0
    Вчера попробовал получить некоторые модельки. Результаты так себе, но и условия эксперимента были далеки от идеальных.
    • 0
      Честно говоря, у меня тоже не с первого раза получился хороший результат. Главное приноровиться. Нужно один раз «прочувствовать» процесс и следующие модели будут получаться без проблем.
  • 0
    У меня результаты похуже получились, но с программой поработать было интересно.
    energokot.blogspot.com/2011/12/autodesk-123d-catch.html
  • 0
    Для получения сколь адекватного (рабочего) варианта геометрии с хорошо простроенной текстурой перед тем как загружать снятые картинки в приложение (на сервер, если используется веб-сервис) стоит их поправить. Наверное, сразу с CR2- или NEF-файлами приложение работать не будет, потребует JPEG (так ли это?), а раз конвертировать все равно нужно, то и поправить стоит. Правиль в первую очередь нужно геометрические искажения (Lens Distortion). Можно воспользоваться готовыеми схемами в Photoshop или ином приложении, понимающим по EXIF данные вашего объектива и имеющем корректный профайл для правки дисторсии.

    Съемку лучше всего делать на камеры, у которых есть режим M (manual). Выставьте одно значение экспозиции (выдержка, диафрагма, ISO) для всех кадров при съемке объекта. Желательно заранее промерить экспонометром что у вас будет в светах и тенях, чтобы не получить слишком темные и слишком светные участки, которые превратятся в нередактируемую кашу после конвертации в JPEG.

    Любопытно, а как приложение это отдает текстуры? Оно может записть файл с текстурой в PSD или многослойный TIFF? А принимает ли оно изображения на вход в Open EXR (полный диапазон света, снятый с применением брекетинга в 5 ступеней, например)?

    Еще очень интересно посмотреть как потом этот волшебный результат, демонстрируемый на страницах 123dapp.com, можно использовать в композитинге. Например, взять и сделать 3D-пространство для задница (backdrop), потом отснять материал на хромакее и накинуть оттреченный хромак на этот фон в 3D-пространство Nuke. Должно быть крайне полезно для достижения какого-то определенного результата, надо попробовать.

    В общем, заинтриговали. Уже скачал, осталось только дождаться вечера, когда будет время поснимать объект.
    • 0
      Чувствуется грамотный подход к фотосъемке. Очень интересно посмотреть на то, что у Вас получится!
      Про текстуры и входные файлы, думаю, сами увидите.
      Про определенный результат
      ivmotion.com.au/index.php/2011/08/hunz-i-get-chills/
      Одна из музыкальных групп снимала свой клип, используя эту технологию. Моделька угловатая. Так было задумано или несовершенство алгоритма на тот момент времени — не известно.

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