Благодаря тому, что я являюсь 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 порт.
Кроме этого, используется простая система постоянного освещения, которая позволяет равномерно освещать фронтальную часть человека. Разумеется, в будущем все описанные выше элементы будут заключены в единый корпус, но пока мы демонстрировали ранний прототип системы сканирования, и поэтому все было собрано на основе имеющихся в продаже элементов.
Наше программное обеспечение имеет клиент-серверную архитектуру, но сервер может быть запущен практически на любом современном компьютере. То есть, мы условно называем компьютер, на котором происходят вычисления, сервером и зачастую в качестве сервера используем обычный ультрабук с графической системой 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 и дополнительной сегментацией данных после построения единого меша.
Кроме того, мы доработали до IDF алгоритм текстурирования в высоком разрешении. Здесь у нас подход следующий: мы делаем снимки в полном разрешении цветной камеры и далее проецируем их на меш. Мы не используем воксельные цвета, так как это размывает качество текстуры. Метод проецирования крайне сложен в реализации, но это дает нам возможность в качестве источника цвета использовать не только встроенные камеры, но и внешние. Например, разрабатываемый нами сканирующий бокс использует DSRL камеры для получения текстур высокого разрешения, и это крайне важно для наших e-commerce клиентов.
Но и встроенные в RealSense RGB камеры дали отличные цвета. Вот пример модели после наложения текстур:
Cейчас мы работаем над новым алгоритмом, который позволил бы нам устранить сдвиги текстур и планируем закончить его до выхода нашего продукта Easy 3D Scan.
Как вы видите, за на первый взгляд несложной демонстрацией стоит множество сложного кода, благодаря которому мы можем конкурировать с системами сканирования, которые стоят порядка $100K+. Камеры Intel RealSense доступны по цене и способны изменить рынок B2B решений.
В чем преимущество разрабатываемой нами системы сканирования человека:
- Доступное по цене решение и легкость настройки и использования – все работает по нажатию одной кнопки;
- Компактность – сканирующий комплекс можно располагать в любых торговых залах, развлекательных центрах, медицинских центрах, казино и тп.;
- Качество моделей подходит для 3D-печати, разработки контента для AR/VR приложений;
- Точность получаемого меша позволяет снимать размер со сканируемого объекта.
Мы понимаем, что еще не открыли весь потенциал камер Intel RealSense, но уверены, что уже на CES 2016 мы сможем показать значительно усовершенствованные продукты все в наших руках!
Комментарии (21)
mdaemon
24.09.2015 14:22+1Когда уже прикрутят эту фичу к интернет магазинам одежды.
Можно сделать сеть центров по созданию моделей, и заливкой их в какое нить облако. И АПИ для магазинов.
Потом в инет магазине указал Id модели, и сразу четко определился с размерами, и даже посмотрел как оно примерно выглядеть будет.cappasity
24.09.2015 14:37+1Мы как раз сейчас обсуждаем пилот с одной европейской сетью. В следующем году запустим свое облако для хранения моделей. Пока же магазины могут использовать платный аккаунт на sketchfab. Там достаточно простая интеграция.
Но вот с виртуальной примерочной все еще вопрос открыт. Очень сложно технологически реализовать полноценную примерочную. Чаще всего все сводится к снятию размером со скана, чтобы потом сделать поиск вещей по базе товаров.rPman
25.09.2015 22:18Снятие размеров это уже замечательно (кстати а какая погрешность?), именно отсутствие размеров не позволяет существовать облачным услугам пошива-на-заказ, сейчас это все-таки премиум сегмент и требование личного присутствия, но спрос в нижнем ценовом диапазоне будет огого.
flasher007
25.09.2015 15:11Уже есть такой магазин с виртуальной примерочной и созданием манекена: fitbuyshop.ru
cappasity
25.09.2015 15:45К сожалению манекен создается через вбивание параметров вручную. Что крайне неудобно.
Будущее вот за такими примерочными, когда можно увидеть себя —
cappasity
24.09.2015 19:33+1Коллеги, мы будем на стенде Intel во время мероприятия mixAR 26го сентября. Кому интересно обсудить RealSense — приходите в гости. А так у нас регулярные апдейты на страничке в Facebook — www.facebook.com/cappasity
Danov
25.09.2015 11:58Одновременно работающие три камеры друг другу не мешали?
В моем представлении, IR подсветка одной камеры может мешать другой камере.cappasity
25.09.2015 12:20+1R200 не мешают. F200 мешают и приходится гасить эмиттер.
Danov
25.09.2015 12:45т.е. только одна камера глубины может работать в один момент? А сколько времени занимает переключение на другую камеру глубины?
cappasity
25.09.2015 12:52+1Мы для скана людей используем R200. Для сканирующих боксов — F200. Каждая F200 камера подключена к своему PC и чтобы они не мешали друг другу — то есть в каждую единицу времени работает только одна камера глубины. Если гасить полным выключением, то долго. Можно гасить регулировкой LaserPower — тогда почти моментально, но иногда может подвисать сама камера. Тайминг затрудняюсь сказать так как давно проводили эти эксперименты.
Brotherofken
25.09.2015 16:44В KinectFusion есть довольно сильное ограничение — объект съёмки должен быть неподвижным.
Тоже использовал SDF volume-based методы и по моему опыту, если человек при сканировании хотя бы немного сдвинулся, то возникают проблемы с восстановлением поверхности (хотя обновляющиеся веса в SDF немного сглаживают проблему). А в вашем примере ему, похоже, приходится сохранять неподвижное положение на вращающейсвя платформе.
Очень любопытно, сталкивались ли вы с этим и как боролись? :-)
Пробовали ли внедрять "DynamicFusion: Reconstruction and Tracking of Non-rigid Scenes in Real-Time" или подобные методы?cappasity
25.09.2015 17:53Вы совершенно правы, поэтому наш fusion можно лишь условно называть KinectFusion. Проблемы с текстурами решаем способом похожим на одно из выступлений сотрудника Артека. Потом еще двигаем, чтобы править швы. Веса действительно могут решить проблему, но лицо является самым больным местом.
DynamicFusion вещь интересная, но пока детально не изучали. С подобным экспериментом можно надолго засесть, так как одно из главных для нас условий — чтобы все быстро работало на HD Graphics и на мобильных устройствах… Если бы были свободные руки — попробовали бы.
BelBES
А где-нибудь типа скетчхаба можно полученую модельку повертеть, чтобы оценить качество?
cappasity
Страница — sketchfab.com/kpopov
Людей еще особо не заливали, так как пока разработка в процессе. Зальем в октябре после текстурных правок. Приходите в гости на мероприятие Открытие Инновации. Отсканируем ;)