PrimeSense, компания, которая изобрела оборудование Kinect, только что выпустила версию 2 своего OpenNI SDK, и это серьезная переработка. Что он может предложить для программатора Kinect или камеры глубины?
OpenNI — это платформа для датчиков 3D Natural Interaction, включая собственное эталонное устройство PrimeSense и датчик Asus Xtion. Он также поддерживает Microsoft Kinect, но в этом случае вам также необходимо установить Microsoft SDK, чтобы предоставить специальные драйверы, которые необходимы.
Новая версия доступна для 32- и 64-разрядных версий Windows, а для Linux — версия OSX, которая находится в стадии разработки. После установки вы можете создавать программы на C ++ через Visual Studio или GCC. Процитируем документацию:
«OpenNI 2.0 представляет собой серьезное изменение в философии проектирования, лежащей в основе OpenNI. Тщательный анализ существующего API показал, что у него есть много функций, которые редко или никогда не используются сообществом. При разработке OpenNI 2.0 команда OpenNI стремилась значительно улучшить упростить API. Функции были переработаны, чтобы отразить фактическое использование сообществом. Метод, используемый для связи с датчиками глубины, стал более понятным «.
Другими словами, некоторые из наиболее сложных функций были удалены из SDK и, при необходимости, перемещены в «промежуточное ПО». SDK не делает ничего больше, чем предоставляет вам доступ к необработанным данным, предоставляемым датчиком. Если вы хотите получить доступ к более высокому уровню «обработки» — обнаружению и отслеживанию жестов и скелетов, вам необходимо установить дополнительный уровень промежуточного программного обеспечения. Есть две проблемы с промежуточным программным обеспечением. Во-первых, это не открытый исходный код, как SDK, и вы должны зарегистрироваться, чтобы использовать его. Во-вторых, многие программисты Kinect считают, что «промежуточное ПО» Microsoft, включенное в Microsoft SDK, очень трудно превзойти. Собственное промежуточное ПО PrimeSense, NiTE 2.0, также было переработано для работы с новым SDK.
Другие улучшения в SDK включают упрощенный подход к типам данных и отказ от сложных метафор для использования устройства через его данные. В целом считается, что SDK проще в использовании и изучении. Это может быть правдой, но если у вас есть программное обеспечение, использующее старый SDK, вам придется немного поработать, чтобы обновить его.
Так почему бы вам выбрать OpenNI SDK вместо Microsoft SDK?
Если у вас камера глубины стороннего производителя, у вас действительно нет выбора, новый SDK — это все, что доступно. Если вы работаете с Kinect, вы можете выбрать OpenNI SDK, потому что это открытый исходный код, но его зависимость от Microsoft SDK скорее портит это преимущество. Последний Microsoft SDK также имеет больше ресурсов и функций и поставляется со встроенным «промежуточным программным обеспечением». Он также позволяет вам писать код на языках .NET, а также на C ++.
Если недавнее объявление PrimeSense о выпуске новой камеры с гораздо меньшей глубиной, подходящей для мобильных устройств, окажется удачным, тогда роль OpenNI может стать гораздо более важной.