Что нас ждет в Microsoft Kinect 2.0?

    Первая версия Kinect, сенсорного игрового контроллера от Microsoft, заняла второе место в рейтинге «10 самых инновационных технических продуктов 2011 года» по версии журнала Популярная Механика. К февралю 2013 года количество проданных устройств достигло 24 миллионов. При этом первые 8 миллионов были проданы в течение 60 дней с момента поступления устройства в продажу, что сделало Kinect «самым быстро продаваемым пользовательским устройством» в Книге Рекордов Гиннесса.

    Но время проходит, и не за горами выход новой версии Kinect. Мне понравилась свежая статья на TechCrunch (в оригинале «How Microsoft built the cameras in the upcoming Kinect») об улучшениях нового Kinect. Текст написан человеком, который специально посетил кампус Microsoft в Mountain View для ознакомления с новым контроллером, а также поговорил с инженерами, которые его разработали.

    Под катом 5 аргументов, почему новый Kinect имеет все шансы повторить успех первой версии.

    Рисунок 1. Режимы просмотра нового Kinect.
    Рисунок 1. Режимы просмотра нового Kinect.

    Мысль 1: Новый Kinect оказался круче, чем ожидалось, сильно опередив предшественника в техническом плане. Увеличенный угол обзора, большее число пикселей в сенсоре и улучшенное разрешение позволяют распознать движение запястья ребенка на расстоянии 3.5 метра.

    Мысль 2: Во вторую версию добавлено несколько новых режимов просмотра. Несмотря на то, что эти режимы недоступны обычным пользователям, они могут оказаться чрезвычайно полезными для разработчиков приложений для улучшения точности отслеживания движений и уменьшения погрешностей.

    Например, Режим Инфракрасного Зрения и новые инструменты моделирования человеческого тела можно использовать для отслеживания движений мышц и взаимной ориентации частей тела.

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

    Мысль 3: В новый Kinect также добавлены настройки камеры, инвариантные свету (остающиеся неизменными при изменениях света). При таких настройках Kinect дает одинаковый результат вне зависимости от особенностей освещения комнаты. На практике это означает, что вы можете использовать Kinect в темноте или помещении со световыми шумами. Например, два прожектора, направленных прямо на датчик, не повлияют на производительность устройства. Автор статьи тут же решил это протестировать, и согласно его заключению, этот механизм действительно работает, как и обещает производитель.

    Рисунок 2. Настройки нового Kinect, инвариантные свету, позволяют использовать его в темноте.
    Рисунок 2. Настройки нового Kinect, инвариантные свету, позволяют использовать его в темноте.

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

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

    Мысль 4: Минимальный размер объекта, который мог распознать Kinect первого поколения, составлял 7.5 см. Новый же Kinect одновременно с увеличением угла обзора на 60% распознает предметы размером от 2.5 см. Число одновременно отслеживаемых человек в комнате также увеличено до 6 по сравнению с 2 в предыдущей версии.

    Мысль 5: Первый Kinect стал самым быстро продаваемым пользовательским устройством в истории. Его существование помогло продлить интерес к Xbox 360, даже когда консоль морально устарела. Microsoft выпускает новый Kinect одновременно с новым Xbox One. Оба устройства будут доступны в США с середины ноября 2013 года и будут конкурировать за пользователей с готовящейся к выпуску консоли PlayStation 4 от Sony.

    Возникшие проблемы


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

    Рисунок 3. Идея «времени полета» легла в основу работы камеры нового Kinect.
    Рисунок 3. Идея «времени полета» легла в основу работы камеры нового Kinect.

    Объединив свои лучшие умы, Microsoft удалось решить задачу сбора данных, однако возникли другие проблемы, связанные с перегрузкой данными из-за больших объемов и размытием контуров объектов.

    Если коротко, требовалось выполнение одновременно двух условий:

    • Обработка около 6.5 миллионов пикселей каждую секунду;
    • Низкая нагрузка на Xbox One для сохранения его высокой производительности;

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

    Оборудование нового Kinect является мульти-компонентным, то есть существует агрегирующий узел, который собирает данные сенсоров и формирует из них отдельные потоки для каждой компоненты сигнала (Microsoft не вдается в подробности, однако есть предположение, что это отдельный чип). Также Microsoft отказался рассказать о том, где выполняется процесс «очистки» данных. Есть предположение, что для снижения на входе этот процесс, по крайней мере, частично происходит на самой консоли.

    Конечным результатом является мульти-компонентный поток данных, который может быть использован разработчиками приложений на базе Xbox или PC.

    В России новая консоль будет доступна не раньше следующего года.

    Полезные статьи


    Veeam Software
    Продукты для резервного копирования информации

    Comments 26

      +1
      В первом киннекте при первом знакомстве не понравилась слишком длинная задержка между движением и отображением, что попортило всё впечатление от устройства. Как дела обстоят в новой версии?
      –1
      Например, можно использовать Режим Инфракрасного Зрения и новые инструменты по моделированию человеческого тела для отслеживания движений мышц и ориентации частей тела человека относительно друг друга.
      Kinect 2.0 «разденет» своих пользователей.
        –6
        Мрачно подозреваю, что не так уж и долго остаётся до появления игры, внешне невинной, а внутри содержащей тайный код, служащий для сбора инфракрасно раздетых 3D-моделей реальных игроков и игруний, раскрашивающий их во взятый с обычной фотовидеокамеры цвет кожи, пытающийся по цвету губ угадать цвет сосков и гениталий, ну и так далее.
          +3
          Это практически та самая «красная пленка», которой мы пугали в школе девчонок.
            +9
            А зачем?
            В порно-индустрии, вроде бы, нет проблем с любыми моделями.
              0
              А шантаж?)
              0
              Для того чтобы сделать 3D-модели раздетых игроков и игруний, инфракрасная камера не нужна. ))
            0
            А есть какая то информация по поводу Kinect для ПК? Вроде ходили слухи…
              0
              Ну первый точно доступен, называется «Kinect for Windows». Да и обычную версию для xbox 360 можно подключить, просто переходник нужен. Второй вроде тоже обещали сделать совместимым.
                0
                Не нужен переходник, сейчас к рабочему компу подключен и функционирует без всяких переходников. Единственное ради чего можно купить именно «Kinect for Windows» это меньшее расстояние на котором он «видит», т.к. при расстоянии 1,2 м., из-за низкого разрешения изображения «глубины» пальцы и др. мелкие детали совершенно не различимы.
                  0
                  Насколько я понимаю, чем ближе предмет к камере, тем больше его угловой размер, чем больше угловой размер, тем больше деталей предмета видно при одном и том же разрешении. Так что фича Kinekt for Windows не в том, что оно видит больше деталей, а в том, что там скорее всего FOV IR-оптики другой. Ну и возможно яркость подсветки поменьше, чтобы не засвечивать и не бликовать.
                    0
                    Я про это и сказал, под расстояние на котором он «видит» я подразумевал FOV. После работы с Kinect, подумывал, о том чтобы заказать сенсор у PrimeSense, они по желанию могут любые характеристики изменить, но принцип тот же, что и у первого кинекта — сетка из точек в IR диапазоне и построение карты глубины. Но второй кинект с их «временем полета» мне кажется значительно выигрывает.
                      0
                      Разве PrimeSense новую версию сенсоров в розничную серию пустили? Вроде Cpari3D можно только от 10000 штук купить.
                        0
                        А я не Carpi3D имел ввиду, их в розницу ещё не пустили, пишут «soon». В этой PDF у них написано, что по желанию могут изменить характеристики устройства.
                0
                OpenNI, да и майкрософтовский SDK… Или Вы о чем?
                  0
                    0
                    Microsoft сказал что Kinect для XBox One нельзя будет подключить к компьютеру (там не используется USB для подключения как в первом Kinect), но они выпустят Kinect 2 для PC в следующем году.
                    +2
                    Первый кинект, безусловно, был очень крут. Купил его для игр с друзьями. Но для него вышло всего 20-30 игр, из которых реальный интерес для меня представляет не более 5 тайтлов. Поэтому было немного обидно за такую жидкую поддержку.
                    Со вторым кинектом буду более осторожен, сначала подожду и посмотрю какую поддержку получит эта версия. Ато вдруг опять новая технология никому из издателей не будет интересна.
                      +1
                      Гм. Перевод производился промтом? Один только «Или Режим Глубокого изображения» чего стоит. Тем более что этот режим и в первом кинекте был (иначе нафига вообще кинект нужен? это банальная карта глубин, оно и есть ровно то, что отличает такие камеры от обычных вебок. В Creative senz3d оно тоже есть.).

                      Ну и статья сама по себе какая-то не сильно грамотная.

                      Ну, скажем «мысль 3» — любая подобная камера всегда сама себе подсвечивает инфракрасным лазером, соответственно освещение в комнате ей не нужно. Так что Кинект 2.0 тут ну никак не уникален и не отличается от Кинекта первого, или той же Creative senz3d.

                      Далее, технология ToF (переведенное в статье как «время полета») это давно не академическая идея, это таки используется в коммерческих продуктах. Тут можно посмотреть список: en.wikipedia.org/wiki/Time-of-flight_camera#Brands (и да, похоже что Creative senz3d, с которой работает Intel PerC SDK, и для которой мы таки пишем приложение, работает именно по этой технологии). Так что ничего нового в плане использования этой технологии в коммерческих продуктах.

                      И вообще, у MS эта технология была еще в 2009 году после того, как они купили ZCam (и думаю на базе этого Kinect 2.0 и делается): en.wikipedia.org/wiki/ZCam

                      Вообще, статья сильно смахивает на технически неграмотный пиар Кинекта 2.0, рассчитанный на неграмотного же читателя.
                        +1
                        Привет, спасибо за подробные комментарии и ссылки! :) Я согласна, что перевод получился не очень техничным. Буду учиться и разбираться. Кстати, Microsoft Kinect меня интересует больше с пользовательской точки зрения, никаких таких целей не преследовалось. Жаль, что создается такое впечатление (
                          0
                          Оригинальная статья такое впечатление производит, то есть перевести так, чтобы перевод не производил такого впечатления не вышло бы. Но перевод можно было конечно сделать качественней, иначе смысл совсем теряется. Пример:
                          Таким образом, теперь разработчики могут воспринимать данные от Kinect, не волнуясь, хорошо или плохо освещен пользователь. Данные не будут искажены из-за того, что кто-то, например, включил верхний свет в комнате.
                          Оригинал:
                          So, developers can now accept motion data from the Kinect without needing to worry about the user being properly lit, or having their data go to hell if someone turns on the overhead light, or time sets the sun.

                          Ключевое тут для понимания — sets the sun. Это означает, что в Kinect 2.0 Microsoft победили таки влияние внешней засветки. То есть даже если такой мощный источник IR-излучения как солнце светит в окошко, все равно depth image будет содержать корректные данные. Эта внешняя засветка (от солнца в особенности частности) дико мешает при работе с PerC SDK/Creative senz3d. В пасмурный день и ночью все хорошо, а вот днем когда солнышко в окошко светит — могут быть проблемы.

                          То есть проблемы у подобных камер бывают не в темноте (в темноте то как раз все отлично), а в ярко освещенном солнцем помещении и, тем более, на улице.

                          PS. Вообще на перевод это все не слишком похоже, скорее похоже на вольный пересказ. В оригинале разговор ведется от первого лица, а тут от третьего.
                          PPS. А вот как мы писали приложение под подобную камеру: habrahabr.ru/post/195474/
                            0
                            Интересный проект! Спасибо за ссылку. Буду читать внимательно )
                          0
                          Признавайтесь, сколько Intel платит за каждое упоминание своего мертворожденного продукта?) Аж глаза от обилия упоминаний Intel GCC режет)
                            0
                            Intel GCC — это что-то новенькое :-) По моему, у них таки свой компилятор есть (который, кстати, оказался в нашем проекте совершенно бесполезным (по кр. мере пока), поэтому мы от него отказались).

                        Only users with full accounts can post comments. Log in, please.