Cappasity уже два года занимается разработкой технологий по 3D сканированию. В этом году мы выпускаем программный продукт по сканированию для ультрабуков и планшетов с камерой Intel RealSense – Cappasity Easy 3D Scan, а в следующем году- аппаратно-программные решения для сканирования людей и объектов.

Благодаря тому, что я являюсь Intel Software Innovator и благодаря команде Intel, которая ведет данную программу, мы получили приглашение показать наш прототип по сканированию людей значительно раньше запланированного срока. Несмотря на то, что времени на подготовку было крайне мало, мы все же решили рискнуть. И в этом материале я расскажу, как создавалась наша демонстрация для Intel Developer Forum 2015, который прошел в Сан-Франциско в 18-20 августа.



В основе нашей демонстрации лежит разработанная ранее технология объединения камер глубины и RGB камер в единый сканирующий комплекс (U.S. Patent Pending). Общий принцип работы следующий: мы калибруем позиции, наклоны и оптические параметры камер и благодаря этому можем объединять данные для последующей реконструкции 3D модели. Чтобы производить 3D съемку объекта, мы можем располагать камеры вокруг объекта съемок, вращать систему камер вокруг объекта или же вращать объект перед системой камер.

Мы решили выбрать 3D камеры Intel RealSense, так как они, на наш взгляд, являются оптимальным решением по соотношению цены и качества. Сейчас у нас разрабатываются прототипы двух систем, построенных с использованием нескольких 3D камер Intel RealSense: сканирующий бокс с несколькими 3D камерами для моментального сканирования объектов и система по сканированию человека в полный рост.

Мы показали оба прототипа на IDF 2015, и прототип по сканированию человека успешно справился с задачей сканирования достаточно большого потока посетителей стенда в течение трех дней конференции.



Теперь перейдем к тому, как все работает. На вертикальной штанге мы закрепили три камеры Intel RealSense long-range таким образом, чтобы самая нижняя снимала нижнюю часть ног, включая ступни, средняя – ноги и большую часть тела, а самая верхняя – голову и плечи.



Каждая камера была подключена к отдельному компьютеру Intel NUC, а все компьютеры объединены в локальную сеть.

Поскольку камеры прикреплены на стационарной штанге, то мы используем поворотный столик для вращения человека. Столик имеет простую конструкцию на основе оргстекла, подшипников для роликов и шагового двигателя. Посредством Intel Edison он подключен к компьютеру и получает команды через USB порт.




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

image

Наше программное обеспечение имеет клиент-серверную архитектуру, но сервер может быть запущен практически на любом современном компьютере. То есть, мы условно называем компьютер, на котором происходят вычисления, сервером и зачастую в качестве сервера используем обычный ультрабук с графической системой Intel HD Graphics. Сервер отправляет компьютерам NUC команду на запись, загружает с них данные, анализирует и реконструирует 3D модель.

Теперь перейдем к особенностям решаемой задачи. В основе 3D реконструкции, которую мы применяем в продуктах Cappasity, лежит написанная нами реализация алгоритма Kinect Fusion. Но здесь задача стояла гораздо сложнее – нужно было за месяц написать алгоритм, который мог бы реконструировать данные с нескольких источников. Мы назвали его Multi-Fusion, и в его текущей реализации он может интегрировать данные с неограниченного количества источников в единый воксельный объем. В случае сканирования человека нам хватило трех источников данных.

Итак, первым этапом является калибровка. Программное обеспечение Cappasity позволяет калибровать устройства попарно. В свое время у нас ушел год на R&D, и перед IDF 2015 нам очень пригодились старые наработки. За пару недель мы переработали калибровку и поддержали воксельные объемы, получаемые после Fusion. До этого калибровка работала в большей степени с облаками точек. Калибровку нужно выполнять всего один раз после установки камер, и она занимает не более 5 минут.

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

Камеры Intel RealSense long-range R200 лучше работают с черным цветом и сложными материалами, чем камеры Intel RealSense F200. Количество сбоев в трекинге было минимальным, что нас, разумеется, обрадовало. И главное, что камеры позволяют снимать на нужных нам дистанциях. Чтобы все реконструировалось быстро даже на HD Graphics 5500+, мы оптимизировали наш алгоритм Fusion для OpenCL. Шумы убирались посредством Fusion и дополнительной сегментацией данных после построения единого меша.

imageimage

Кроме того, мы доработали до IDF алгоритм текстурирования в высоком разрешении. Здесь у нас подход следующий: мы делаем снимки в полном разрешении цветной камеры и далее проецируем их на меш. Мы не используем воксельные цвета, так как это размывает качество текстуры. Метод проецирования крайне сложен в реализации, но это дает нам возможность в качестве источника цвета использовать не только встроенные камеры, но и внешние. Например, разрабатываемый нами сканирующий бокс использует DSRL камеры для получения текстур высокого разрешения, и это крайне важно для наших e-commerce клиентов.

Но и встроенные в RealSense RGB камеры дали отличные цвета. Вот пример модели после наложения текстур:

image

Cейчас мы работаем над новым алгоритмом, который позволил бы нам устранить сдвиги текстур и планируем закончить его до выхода нашего продукта Easy 3D Scan.

Как вы видите, за на первый взгляд несложной демонстрацией стоит множество сложного кода, благодаря которому мы можем конкурировать с системами сканирования, которые стоят порядка $100K+. Камеры Intel RealSense доступны по цене и способны изменить рынок B2B решений.

В чем преимущество разрабатываемой нами системы сканирования человека:
  • Доступное по цене решение и легкость настройки и использования – все работает по нажатию одной кнопки;
  • Компактность – сканирующий комплекс можно располагать в любых торговых залах, развлекательных центрах, медицинских центрах, казино и тп.;
  • Качество моделей подходит для 3D-печати, разработки контента для AR/VR приложений;
  • Точность получаемого меша позволяет снимать размер со сканируемого объекта.

Мы понимаем, что еще не открыли весь потенциал камер Intel RealSense, но уверены, что уже на CES 2016 мы сможем показать значительно усовершенствованные продукты все в наших руках!

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


  1. BelBES
    24.09.2015 13:45

    А где-нибудь типа скетчхаба можно полученую модельку повертеть, чтобы оценить качество?


    1. cappasity
      24.09.2015 14:02

      Страница — sketchfab.com/kpopov

      Людей еще особо не заливали, так как пока разработка в процессе. Зальем в октябре после текстурных правок. Приходите в гости на мероприятие Открытие Инновации. Отсканируем ;)


  1. mdaemon
    24.09.2015 14:22
    +1

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

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


    1. cappasity
      24.09.2015 14:37
      +1

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

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


      1. rPman
        25.09.2015 22:18

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


        1. cappasity
          28.09.2015 13:58

          ~ 2 мм. Предварительное тестирование. Подробнее расскажем ближе к CES 2016. Тема связанная с размерам находится в разработке.


          1. vaheta
            28.09.2015 18:56

            2 мм в глубине или в обхвате?


            1. cappasity
              28.09.2015 19:16

              После реконструкции. Погрешность меша относительно исходного материала.


    1. Stas911
      24.09.2015 16:16

      И к сайтам знакомств — чтобы сразу размерности теток определяли :)


    1. flasher007
      25.09.2015 15:11

      Уже есть такой магазин с виртуальной примерочной и созданием манекена: fitbuyshop.ru


      1. cappasity
        25.09.2015 15:45

        К сожалению манекен создается через вбивание параметров вручную. Что крайне неудобно.

        Будущее вот за такими примерочными, когда можно увидеть себя —


  1. cappasity
    24.09.2015 14:40

    Недавно Ракутен купил компанию, которая занимается виртуальными примерочными — fits.me


  1. i360u
    24.09.2015 15:39

    О, вижу фотопиццу! Сами собирали?


    1. cappasity
      24.09.2015 15:50
      +2

      Сами платформы для вращения человека нам делает Владимир. Доверяем профессионалам!) Но все работает на Intel Edison. Для бокса уже наша конструкция, так как там требуются особенности для установки камеры под предметом.


  1. cappasity
    24.09.2015 19:33
    +1

    Коллеги, мы будем на стенде Intel во время мероприятия mixAR 26го сентября. Кому интересно обсудить RealSense — приходите в гости. А так у нас регулярные апдейты на страничке в Facebook — www.facebook.com/cappasity


  1. Danov
    25.09.2015 11:58

    Одновременно работающие три камеры друг другу не мешали?
    В моем представлении, IR подсветка одной камеры может мешать другой камере.


    1. cappasity
      25.09.2015 12:20
      +1

      R200 не мешают. F200 мешают и приходится гасить эмиттер.


      1. Danov
        25.09.2015 12:45

        т.е. только одна камера глубины может работать в один момент? А сколько времени занимает переключение на другую камеру глубины?


        1. cappasity
          25.09.2015 12:52
          +1

          Мы для скана людей используем R200. Для сканирующих боксов — F200. Каждая F200 камера подключена к своему PC и чтобы они не мешали друг другу — то есть в каждую единицу времени работает только одна камера глубины. Если гасить полным выключением, то долго. Можно гасить регулировкой LaserPower — тогда почти моментально, но иногда может подвисать сама камера. Тайминг затрудняюсь сказать так как давно проводили эти эксперименты.


  1. Brotherofken
    25.09.2015 16:44

    В KinectFusion есть довольно сильное ограничение — объект съёмки должен быть неподвижным.
    Тоже использовал SDF volume-based методы и по моему опыту, если человек при сканировании хотя бы немного сдвинулся, то возникают проблемы с восстановлением поверхности (хотя обновляющиеся веса в SDF немного сглаживают проблему). А в вашем примере ему, похоже, приходится сохранять неподвижное положение на вращающейсвя платформе.

    Очень любопытно, сталкивались ли вы с этим и как боролись? :-)

    Пробовали ли внедрять "DynamicFusion: Reconstruction and Tracking of Non-rigid Scenes in Real-Time" или подобные методы?


    1. cappasity
      25.09.2015 17:53

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

      DynamicFusion вещь интересная, но пока детально не изучали. С подобным экспериментом можно надолго засесть, так как одно из главных для нас условий — чтобы все быстро работало на HD Graphics и на мобильных устройствах… Если бы были свободные руки — попробовали бы.