Использование нескольких Kinect v2 на одном ПК

В настоящее время я пытаюсь использовать несколько Kinect v2.0 в рамках своей диссертации. Я изучил эту тему и знаю о проблеме с пропускной способностью USB, поэтому два Kinect, которые я сейчас использую, находятся на разных контроллерах USB.

Проблема, с которой я сталкиваюсь, заключается в том, что как часть функции GetDefault() (2.0 SDK) он, как следует из названия, просто получает Kinect по умолчанию. Есть ли способ определить, какой Kinect «получить», или определить, какой Kinect является «по умолчанию»? (Я знаю, что SDK допускает только одно, но я изучаю идею иметь отдельное приложение, обрабатывающее каждый Kinect).

Спасибо заранее за любые данные.


person Champion26    schedule 22.02.2017    source источник
comment
Вы когда-нибудь получали что-нибудь по этому поводу?   -  person Jacksonkr    schedule 21.06.2019


Ответы (3)


Используя Microsoft SDK, вы не сможете использовать несколько Kinect2 на одном ПК:

Получение данных и запуск датчика
Kinect для Windows поддерживает один датчик, который называется датчиком по умолчанию. Класс KinectSensor имеет статические члены, помогающие настроить датчик Kinect и получить доступ к данным датчика.

Обзор API Kinect

Мы пробовали подобные вещи, но в итоге остановились на клиент-серверном решении, в котором к клиентским ПК подключаются дополнительные Kinect. Но даже здесь нужно быть осторожным, если эти Kinect используются в одной комнате — датчики могут улавливать свет от других излучателей! (см. здесь, например: Интерференция между несколькими Kinects).

Еще одна вещь, которую вы должны иметь в виду при работе с клиент-серверным решением — Kinect не очень хорошо обрабатывает подключения к удаленному рабочему столу:

Удаленный рабочий стол
Если вы получаете доступ к Kinect с помощью удаленного рабочего стола, вы должны изменить настройки звука удаленного рабочего стола на «воспроизведение на удаленном компьютере». Если этого не сделать, среда выполнения не сможет увидеть аудиоустройство и может запретить подключение к Kinect. (2.0 SDK и известные проблемы разработчиков)

Вы также можете использовать OpenKinect, который должен поддерживать несколько камер (здесь, здесь, здесь, ...), но всего этого тоже не так-то просто добиться. Кроме того, во время наших тестов мы заметили, что значения глубины отличаются при использовании официального Microsoft SDK или библиотеки с открытым исходным кодом, поскольку в официальном SDK происходит много магии черного ящика.

person DIF    schedule 22.02.2017

Рассматривали ли вы запуск виртуальной машины параллельно на своей машине? Просто заставьте виртуальную машину игнорировать USB-порт, на котором находится один из кинектов, поэтому виртуальная машина вынуждена использовать другой.

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

person Flotolk    schedule 10.07.2017

Kinect для Windows поддерживается только для виртуальных машин (не включая kinect для xbox one и kinect для 360 с адаптерами).

person FireCraft    schedule 07.12.2017