company_banner

Архитектура Intel RealSense SDK

Автор оригинала: Meghana Rao
  • Перевод

Пакет 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 Perceptual Computing SDK Intel RealSense SDK Примечание
Камера Свойства только устройства Creative Не поддерживается в IVCAM
Формат вершин Depth/DepthRaw/ DepthFloat/VerticesFloat PXCImage предоставляет возможность преобразования на лету.
NOJR.MAP NO.UV.MAP REQUIREJR.MAP REQUIRE_UV_MAP Изменение значения по умолчанию
PXCProjection PXCProjection Половина функций переделана.
Компоненты MW PXCGesture PXCHandAnalysis Совершенно новый интерфейс
PXCFace PXCFace3D Совершенно новый интерфейс
UtilCapture PXCCaptureManager Новый интерфейс
UtilPipeline PXCSenseManager Новый интерфейс
Поддержка языков и платформ Поддержка платформ Unity/Java/Proce ssing на базе Pxcupipeline Оболочка P/Invoke C# Полностью переработано.
Оболочка C++/ интерфейс командной строки C# Оболочка P/Invoke C# Полностью переработано.
Поддержка Java/ Processing на базе PXCUPipeline Новая оболочка JNI Полностью переработано.
Документация Переработано.

Заключение


Пакет Intel RealSense SDK обладает целым рядом преимуществ над предыдущим поколением Intel Perceptual Computing SDK. Улучшены многие существующие режимы работы, такие как алгоритмы отслеживания лица и рук; усовершенствован механизм доступа к API для большинства поддерживаемых платформ разработки приложений. Благодаря однородности доступа к API и улучшениям на промежуточном уровне получилась очень удобная платформа, с помощью которой разработчики приложений могут осваивать новые возможности взаимодействия с пользователями.

Дополнительные материалы


Технология Intel RealSense — обзор.
Руководства по проектированию взаимодействия с пользователем.
Intel
Компания

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

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

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