Введение
Пакет Intel® RealSense™ SDKпо своей архитектуре отличается от своего предшественника — пакета Intel® Perceptual Computing SDK. Если вы, будучи разработчиком, использовали Intel Perceptual Computing SDK для разработки приложений, вы быстро оцените улучшенную модель программирования в новом SDK, предоставляющую доступ к поддерживаемым режимам работы через несколько популярных платформ разработки приложений. В этой статье мы описываем основные изменения в Intel RealSense SDK.
Содержание
Обзор архитектуры
Ядро SDK, модуль ввода-вывода и модули алгоритмов образуют основу SDK. Ядро SDK помогает управлять конвейером выполнения приложения и модулями ввода-вывода (камеры). Модули алгоритмов образуют промежуточный уровень для отслеживания рук, распознавания жестов, отслеживания лица, распознавания речи и других режимов работы. Эти алгоритмы предоставляют интерфейсы для разработки приложений с помощью платформ разработки — C++, C#, Unity*, Java*, Processing* и т. д. На верхней ступени этого набора технологий находятся приложения Intel RealSense SDK (рис. 1).
Рисунок 1.Архитектура Intel® RealSense™ SDK
Это улучшение будет весьма очевидным для разработчиков приложений, знакомых с Intel Perceptual Computing SDK. Прежние версии интерфейсов SDK можно было использовать только на платформах Unity и Java (рис. 2).
Рисунок 2.Архитектура Intel® Perceptual Computing SDK
Большая часть функций SDK была доступна только для разработчиков на C++/C#, из-за чего Unity и другие платформы разработки приложений оказывались в неблагоприятных условиях. В Intel RealSense SDK это ограничение устраняется за счет однородного доступа к возможностям ядра и промежуточного уровня посредством интерфейсов, разработанных для каждой платформы. На рис. 3 видно, что поддержка DLL-библиотек для всех платформ была полностью переделана. Интерфейс C++/C# теперь доступен через интерфейс PInvoke вместо оболочки C++/CLI C# в Intel Perceptual Computing SDK. Если говорить о Unity, интерфейс на базе PXCUPipeline в прежнем SDK заменен на интерфейс C# на базе PInvoke. Для платформ Java и Processing интерфейс на базе PXCUPipeline заменен полностью переработанной оболочкой JNI.
Рисунок 3. Однородный доступ к API во всех платформах разработки приложений
Упрощенная иерархия классов
Рисунок 4.Иерархияклассов Intel® RealSense™ SDK
Структура интерфейсов в Intel Perceptual Computing SDK отличалась высоким уровнем иерархичности. Для выполнения простых задач требовалась длительная последовательность операций инициализации, настройки и получения данных. В Intel RealSense SDK эта иерархическая структура упрощена, обеспечивается более удобный доступ к разным функциям и режимам работы.
Как показано выше на рис. 4, PXC[M]SenseManager заменяет класс UtilPipeline ядра SDK. SenseManager отвечает за организацию и управление конвейером выполнения. PXC[M]CaptureManager осуществляет управление всеми устройствами камер и потоков вместо интерфейса UtilCapture в Perceptual Computing SDK. Обратите внимание, что интерфейс PXC[M]Capture также обеспечивает более удобный доступ к данным о глубине. В Intel Perceptual Computing SDK для получения данных глубины и вершин требовалось получать доступ к двум разным потокам. В Intel RealSense SDK эти данные доступны в одном потоке. Интерфейс PXC[M]Face3D управляет модулем отслеживания лица вместо интерфейса PXC[M]Face, а PXC[M]HandAnalysis занимается отслеживанием жестов и рук вместо интерфейса PXC[M]Gesture.
Более подробные сведения об этих модуля см. в следующем разделе — руководстве по переходу на новые API.
Руководство по переходу на новые API
Переработан не только весь набор SDK, но и свыше 50 % API из Intel Perceptual Computing SDK переделаны в Intel RealSense SDK. Большинство изменений обусловлены появлением поддержки трехмерных сцен в Intel RealSense SDK: за счет этого улучшены некоторые существующие режимы, такие как отслеживание лица и рук. Рассмотрим некоторых из этих усовершенствований.
Модуль отслеживания лица
С точки зрения возможностей в модуле отслеживания лица теперь поддерживается 78 реперных точек с различными значениями определения выражения лица в двухмерном и трехмерном режимах. Для сравнения: в Intel Perceptual Computing SDK поддерживалось не более 7 реперных точек. Благодаря введению параметра глубины повышается достоверность полученных данных. Кроме того, в Intel Perceptual Computing SDK требовалось по отдельности настраивать обнаружение лица, обнаружение реперов и распознавание лица, из‑за чего весь процесс анализа лиц был крайне громоздким. Модуль анализа лица и связанные с ним API были переработаны с учетом этих аспектов. Вместо модуля PXC[M]FaceAnalysis используется модуль PXC[M]Face3D с одноуровневой структурой. Этот модуль достаточно настроить всего один раз перед получением значений обнаружения лица, реперных точек, выражения лица и значений распознавания лица (рис. 5).
Рисунок 5.Сравнениемодуляанализалицав Intel® Perceptual Computing SDK ив Intel® RealSense™ SDK
Модуль отслеживания рук
Модуль отслеживания рук был значительно доработан в Intel RealSense SDK. По сравнению с данными для 7 реперных точек руки и 10 стандартными жестами в Intel RealSense SDK теперь поддерживаются данные для 22 точек, идентификация пальцев, идентификация правой и левой руки с параметрами ориентации и поворота для трехмерного взаимодействия, а также набор стандартных жестов. Интерфейс PXC[M]Gesture, применявшийся в Intel Perceptual Computing SDK, заменен интерфейсом PXC[M]HandAnalysis для более удобного доступа к данным о руках.
В таблице 1 (см. ниже) приведена сводка основных улучшений в Intel RealSense SDK. Рекомендуем разработчикам прочесть справочное руководство по SDK, входящее в состав бета-версии, для получения более подробной информации о каждом API в этих интерфейсах.
Таблица 1.Сравнение Intel® Perceptual Computing SDK и Intel® RealSense™ SDK
Заключение
Пакет Intel RealSense SDK обладает целым рядом преимуществ над предыдущим поколением Intel Perceptual Computing SDK. Улучшены многие существующие режимы работы, такие как алгоритмы отслеживания лица и рук; усовершенствован механизм доступа к API для большинства поддерживаемых платформ разработки приложений. Благодаря однородности доступа к API и улучшениям на промежуточном уровне получилась очень удобная платформа, с помощью которой разработчики приложений могут осваивать новые возможности взаимодействия с пользователями.
Дополнительные материалы
Технология Intel® RealSense™ — обзор: https://software.intel.com/ru-ru/articles/realsense-overview
Руководства по проектированию взаимодействия с пользователем: https://software.intel.com/ru-ru/articles/realsense-ux-design-guidelines
Об авторе
Мегана Рао (Meghana Rao) работает техническим маркетинговым инженером в подразделении Intel Software and Services. Она помогает разработчикам понимать возможности платформ Intel и писать приложения, удобные для пользователей.
Intel, эмблема Intel, Ultrabook и RealSense являются товарными знаками корпорации Intel в США и в других странах.
© Intel Corporation, 2015. Все права защищены.
* Прочие наименования и товарные знаки могут быть собственностью третьих лиц.