Генерация 3D-моделей по фотографиям

    Доктор Дэвид Маккиннон (David McKinnon) из Технологического университета в Квинсленде (Австралия) разработал революционную программу 3DSee, которая генерирует 3D-модели на основе обычных фотографий — автоматически, без человеческого участия. Для работы движку нужно 5-15 фотографий, которые соответствуют требованиям, в том числе должны пересекаться как минимум на 80-90%.

    Система работает примерно так же, как майкрософтовский Photosynth. Тот анализирует пачку фотографий, находит точки пересечения и автоматически склеивает из них круговую панораму. Здесь нечто похожее: берётся пачка фотографий, ищутся точки пересечения, анализируются характеристики оптической системы (фокусное расстояние камеры и проч.), создаётся файл геометрии сцены и происходит 3D-реконструкция. От пользователя требуется только предоставить контент и нажать одну кнопку — всё!

    Автоматическое 3D-моделирование — очень сложная и важная задача, ибо теперь на эти цели тратится уйма вычислительных и трудовых ресурсов. Учитывая сложность задачи, неудивительно, что Маккиннону потребовалось аж восемь лет, чтобы довести проект до приемлемого уровня (программа 3DSee — часть проекта ACID Vision). Теперь он хочет усовершенствовать технологию, чтобы генерация 3D-моделей в картинах высокого разрешения происходила автоматически (как в знаменитой сцене с пулями из «Матрицы»).

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

    Эта технология может найти применение в медицине, военном деле, образовании, электронной коммерции, кинематографе, анимации, дизайне, индустрии развлечений, играх для взрослых и т.д. Более того, теперь 3D-графика может стать обыденным и повсеместным инструментом и найти применение в принципиально новых сферах, где раньше её не было и близко. Например, можно без труда закачать 3D-модель своего тела в Second Life (кстати, в 3DSee эта фича скоро появится) или в любую другую игру, где используется 3D-графика. Можно делать 3D-сканеры для аутентификации личности. Можно заказывать у портного одежду по интернету. Наверняка каждый может без труда придумать ещё десяток применений этой революционной технологии.

    via PhysOrg.com
    Поддержать автора
    Поделиться публикацией

    Комментарии 48

      0
      Что тут революционного, я лет 5 назад в институте пописывал такое
        0
        для использования морды лица в качестве пароля
          0
          тоже строили 3д модель?
            +4
            Простейший алгоритм реализуется за пару часов. Идем ко каждой строке фотографий и динамическим программированием линию примерно как на картинке, вот я накалякал:

            Таким образом мы знаем какая точка левой картинки соответствует точке на правой, а «глубина» этой точки пропорциональна расстоянию между пикселями
              +1
              Только надо сперва аккуратно ректифицировать пару, а это задача простая только в первом приближении, да и эта самая «динамика» довольно далеко уже уползла от классического варианта.
                0
                gl.ict.usc.edu/Research/DigitalEmily/
                и вообще Paul Devebec можно всякое посмотреть, кстати, интересное.

                В общем не так все просто, если нужно качественно.
                0
                Кстати, недавно обратил внимание что на GoogleEarth снимки разных годов сделаны с разных ракурсов. Может быть получится выцепить третье измерение?
                Кто умеет программировать — попробуйте ради интереса :)
                  0
                    0
                    Это я видел, но там только один поселок. А тех мест, которые мне нужны там нет.
            +1
            что-то я сомневаюсь…
              +3
                0
                А я не сомневаюсь, так как тоже занимался получением 3д профиля по фотографии. (правда у меня было по одной, но зато нужно было освещение специальное)
                  0
                  Да о такой штуке слышал, интересная вещь
              • НЛО прилетело и опубликовало эту надпись здесь
                –2
                Интересно, только пока не пойму, как фоткам спереди, пусть и с разных ракурсов, моделируется задняя часть 3d фигуры
                  0
                  Прочитайте число фотографий. Их как минимум 5.
                    0
                    Ах да, это не только фотки спереди. А еще сзади, сверху и снизу.
                      0
                      нет, чтобы восстановить только один ракурс в 3д нужно много фотографий (по тексту статьи 5-15шт). Посмотрите 3д модели на сайте (они там в ява-апплете открываются)
                  0
                  Похоже что тут не совсем важно условие «в разных ракурсах» – можно поставить камеру на штативе, и меняя позицию доп.вспышки сделать 5 кадров (вспышка: вперед, сверху, снизу, справа, слева).
                    0
                    Таким макаром снимается карта нормал-бампа, который давно используется в трехмере. Мало того, вспышка спереди не нужна — она не даст информации о реальной глубине объекта — проще его задать вручную.
                      +1
                      читаем внимательнее:
                      «Для работы движку нужно 5-15 фотографий, которые соответствуют требованиям, в том числе должны пересекаться как минимум на 80-90%.»
                      т.е. для данного метода это важное условие. Вы про другой метод какой-то, в котором самозатенения явно не позволят получить множества опорных точек для восстановления 3д.
                      +2
                      Это все, конечно, хорошо, но для «правильных» поверхностей, т.е. выпуклых: лицо, кувшин, скульптура, здание. Но очень сильно сомневаюсь, что программа выдаст приемлемый результат, если, скажем, облетев на вертолете башенный кран или Эйфелеву башню и сделав необходимые снимки, использовать их. Я говорю про объекты, которые сами по себе являются каркасными и сетчатыми структурами.

                      На мой взгляд, тут можно получить не готовый результат, а, скажем, грубый 3D-эскиз, на основе которого в Максе или Майе создавать конечную модель старыми добрыми средствами — слайсом, экструдом и сабдивайдингом. А 3D-эскиз использовать для контроля пропорций, как вариант.
                        0
                        Я, конечно же, говорю не о ширпотребе, а о профессиональном применении.
                          0
                          Ну такие разработки дальше ширпотреба пока не особо продвинулись
                            0
                            Да, вот только практика показывает, что использовать подобную рыбу для дальнейшего причесывания практически невозможно, ибо сетка получается просто чудовищной. Так что да, скорее всего использовать так как вы написали, в качестве образца
                              0
                              Кстати, для образца можно вполне обойтись и без этого, расположив в сцене две плоскости с фотографиями фас и профиль в качестве текстур, или там прямо есть режим соответствующий. Ну это известный прием при вытягивании головы из кубика, например.
                            0
                            Ага. Смотрел как-то урок по Зед Брашу, лепили они там тело человеческое, анатомически правильное. Лепили-лепили, лепили-лепили… долго очень лепили. А потом импортировали меш в майу и давай по нему заново всю модель делать, только такую чтобы потом анимировать можно было.

                            У меня такие уроки вообще все желание ЗД заниматься отбивают. Сидишь учишься рисовать, анатомию учишь, потом Зед Браш, потом Майу, потом MEL, чтобы скрипты в ней писать, потом ментал рей, чтобы это отрендерить. Так, пока что-то толком научишься делать, жизнь и пройдет.
                              0
                              Ну есть же специальные 3D-сканеры для людей, если денег на сканирование хватит. А бюджетники нехай пыхтят. Такие решения, как описал ТС, конечно, помогут и ускорят процесс, но ручками поработать тоже придется.
                                0
                                Для людей есть, а для монстров нет :) И всеравно потом заново весь меш делать.
                                  0
                                  А как же концепт-арт и пластилин? ;-)
                                    0
                                    т.е. лишь бы нам не работать, пусть другие пыхтят? =)
                                0
                                редко кто умеет всё хорошо делать в мае. помню смотрел один урок гномонов, там Алекс Альварес говорил о том что он работает в мая 10 лет, но всё равно не знает всех особенностей, скажем, анимации. чтобы в индустрию пробиться вполне додаточно знать или моделлинг + скульптинг, или текстуринг, или риг с анимацией, или рендеринг
                            • НЛО прилетело и опубликовало эту надпись здесь
                                0
                                Из галереи хотел посмотреть пример модели, джава что-то долго грузила (скайлинк, чтобы его), потом, вытянув метров 10, похоже, убилась об стенку. Обидно.
                                0
                                У меня был плагин к максу, который по двум фоткам (фас, профиль) делал модель головы и вполне сносную — для 3D аватар — самое оно.
                                Ах да! Забыл:) Было это в 2000г под 3D Studio Max 3.
                                В общем, решение может и хорошее, но явно не новое.
                                  0
                                  нет такой кнопки сделать красиво (смоделировать, настроить рендер, продолжите сами...) и никогда не будет, всё нужно делать руками и включать голову)
                                    0
                                    Все равно после таких сканов работать и работать ручками.
                                    Так было и есть для MoCap (захват движения), когда после него нужно хорошенько все вычищать. Не особо вникал в детали, как там обстоят дела с Emotion Capture, но думаю тоже не все так гладко. Также обстоят дела и со всевозможными 3d-сканерами. Правильную сетку, которая особенно важна в анимации, машина сама еще не строит.
                                      0
                                      Вот когда напишут прогу, снимающую реальный объем по одной фотографии — тогда от неё будет толк — создавай карты бампа или дисплейсмента на основе фотографии. Именно реального бампа а не того, что получается перегоном просто в ч/б. Ну или нормал бампа. т.к. используя две фотографии с разным светом можно уже начинать строить карту нормал бампа, но в 90% есть лишь одна фота и всё делать приходится ручками.
                                        0
                                        В SDK DirectX 11 видел подобную фичу с созданием 3d называется parallax bump-mapping, в новом железе (видеокартах) будет поддерживаться аппаратно, там реально объем из пустоты делается, причем 3d строится в плоскости, но когда сбоку смотришь, то псевдо-3d ведет себя как настоящее 3d в отличии от классического bump-mapping'а, где просмотр сбоку сразу выдает всю правду.
                                          0
                                          ну так это и есть normal bump и, в отличии от обычного ч/б бампа он выглядит вот так

                                          и в нем как раз заложена реальная информация об объеме. Только вот получить его с одной картинки весьма проблематично — а работает он весьма эффектно — гораздо лучше обычного бампа
                                            +1
                                            параллакс это не есть normal bump. Параллаксу нужна карта высот (дисплейсмента).
                                            Но параллакс тоже не панацея, на границах полигонов фейк всегда виден.

                                              –1
                                              Normal bump это и есть _почти_ паралакс. Карты используются одинаковые — отличается лишь немного алгоритм просчета, да и результат, в принципе, очень схож.
                                                0
                                                Может господа минусующие обоснуют в чем я не прав?
                                                0
                                                Карта высот — см выше — она одинакова для нормал бампа и паралакса, а на границах полигонов — на крутых гранях даже дисплейс порой глюки выкидывает такие, что мама не горюй!
                                            0
                                            а как вам crazy bump? не смотря на то, что строит она карту нормалей по 1 картинке, результат довольно впечатляющий
                                            +2
                                            «Эта технология может найти применение в медицине, военном деле, образовании, электронной коммерции, кинематографе, анимации, дизайне, индустрии развлечений, играх для взрослых и т.д.»

                                            внезапно!
                                              0
                                              Не приходит мыл на подтверждение регистрации… Наверно хабраэффект
                                                0
                                                может быть к тому времени, как подобные технологии войдут в широкое использование процессоры будут настолько быстрые, что им будет наплевать на ± лишний миллион полигонов, но пока что минус этой технологии в том что результат получается чудовищно неоптимизированным: просто нагромаждение полигонов. граммотный моделлер потратит конечно больше времени, но сможет сделать самую сложную модель с максимально оптимизированными поверхностями и polygon flow — то, на что машина сейчас неспособна

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

                                                Самое читаемое