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

Я пытался использовать «Kinect для Windows» на своем Mac. Настройка среды, кажется, прошла хорошо, но что-то, кажется, не так. Когда я запускаю некоторые образцы, такие как

OpenNI-Bin-Dev-MacOSX-v1.5.4.0/Samples/Bin/x64-Release/Sample-NiSimpleViewer

или другие, пример приложения запускается и, кажется, работает довольно хорошо в начале, но через несколько секунд (от 10 до 20 секунд) движение, наблюдаемое на экране приложения, останавливается и больше никогда не работает. Кажется, что приложение не может получить данные из Kinect с определенного момента, когда прошло несколько секунд.

Я не знаю, то ли библиотеки, то ли их зависимость, то ли само аппаратное обеспечение Kinect работает неправильно (что касается аппаратного обеспечения, оно невидимо сломано или что-то в этом роде), и я действительно хочу знать, как определить, что именно.

Может ли кто-нибудь сказать мне, как я могу решить проблему, пожалуйста?

Моя среда показана ниже:

  • Mac OS X v10.7.4 (MacBook Air, core i5 1,6 ГГц, 4 ГБ памяти)
  • Xcode 4.4.1
  • Кинект для Windows
  • OpenNI-Bin-Dev-MacOSX-v1.5.4.0
  • Сенсор-Бин-MacOSX-v5.1.2.1
  • Я следовал инструкциям здесь о libusb: http://openkinect.org/wiki/Getting_Started#Homebrew

и когда я пытаюсь использовать libfreenect (я знаю, что это отдельно от OpenNI+SensorKinect), его примеры приложений говорят «Количество найденных устройств: 0», что для меня не имеет смысла, поскольку я определенно подключил свой Kinect к MBA...)


person takuma7    schedule 20.09.2012    source источник
comment
Я думаю, что ваша проблема заключается в следующем: я пытался использовать Kinect для Windows на своем Mac. Это для Windows, а Mac — это НЕ Windows.   -  person Tony The Lion    schedule 20.09.2012
comment
@TonyTheLion спасибо за комментарии, но на самом деле это не имеет значения, на Mac или Windows. Kinect для Windows означает, что он предназначен для разработчиков, а не для использования с Xbox. Платформы, отличные от Windows, официально не поддерживаются, но благодаря OpenNI и SensorKinect вы можете использовать Kinect на Mac и Linux и так далее.   -  person takuma7    schedule 20.09.2012
comment
Я думаю, Тони пытался сказать, что вы не можете использовать драйверы и библиотеки Kinect для Windows на OSX. (Вы можете использовать Bootcamp и Windows7 на Mac, если хотите). Libfreenect отделен от OpenNI. Когда вы говорите OpenNI, я думаю, вы имеете в виду: SensorKinect, OpenNI и NITE. Ошибка, которую вы получаете с libfreenect, может означать, что что-то не так с драйвером libfreenect (который отличается от SensorKinect, используемого OpenNI, и поэтому вы можете запустить образец OpenNI). Мне удалось использовать как libfreenect, так и OpenNI на OSX (хотя и на 10.6.8)...   -  person George Profenza    schedule 20.09.2012
comment
Спасибо @GeorgeProfenza, я знаю, что они разные. И я знаю, что вы можете запускать эти примеры на Mac с помощью OpenNi для Mac, SensorKinect для Mac, хотя доступны только нестабильные версии, как я вижу на некоторых веб-страницах и в некоторых книгах по взлому Kinect. Проблема в том, что они, кажется, работают довольно хорошо в начале запуска образцов, но через несколько секунд они перестают работать, по-видимому, не в состоянии получить данные из Kinect (поскольку они говорят, что Ошибка чтения: истекло время ожидания при ожидании новых данных! на консоли после остановки движения.) И я не знаю, в чем причина этой проблемы...   -  person takuma7    schedule 21.09.2012
comment
Я понимаю. Испытываете ли вы замедление работы независимо от драйвера/библиотеки (это происходит только с образцами OpenNI или с любым другим образцом kinect)?   -  person George Profenza    schedule 21.09.2012
comment
@GeorgeProfenza, возможно, ответ - да. Я немного не уверен, потому что образец libfreenect не открывается, просто говоря, что kinect не найден. Что касается сэмпла SensorKinect и NITE, то они тормозят (точнее, останавливают)   -  person takuma7    schedule 21.09.2012
comment
У меня появился еще один Kinect, предназначенный для Xbox, а не для Windows, и он работал хорошо! Возможно, это проблема совместимости оборудования или драйверов, хотя я не уверен. В любом случае, спасибо всем ребятам, которые принимали участие в этом вопросе.   -  person takuma7    schedule 14.12.2012
comment
У меня точно такая же проблема, но я использую Xbox Kinect, 13 MBPr. Камера kinect исчезает из моего USB-списка в системном профилировщике примерно через 10-20 секунд. Зеленый индикатор на Kinect перестанет мигать в ходе того же процесса. Если я запускаю такую ​​программу, как Skanect, я получаю изображение глубины максимум около 20 секунд, после чего программа вылетает. Если я быстро снова открою программу, я получу сообщение об ошибке, что датчик Kinect не подключен. Используя libfreenect и пример «glview», я получаю только сообщение о том, что одно устройство подключено, но его невозможно открыть. Очень расстраивает,   -  person user1459424    schedule 29.12.2012
comment
У меня такая же проблема с Kinect для Windows Model 1517 в Mac OS 10.9 Mavericks. работает как шарм 10-20 секунд и отключается. Я также обнаружил, что устройство фактически отключается и снова подключается в это время, поэтому оно в основном продолжает делать это все время, что также случалось даже до того, как я устанавливал какие-либо драйверы/библиотеки. Для меня это больше похоже на проблему с USB, а не на несовместимость, потому что, когда USB подключен, он просто работает. Какие-либо предложения ?   -  person MohamedEzz    schedule 12.06.2014


Ответы (2)


Если вы не загружаетесь в Windows, забудьте о Kinect для Windows.

Что касается libfreenect и OpenNI, в большинстве случаев вы будете использовать один или другой, поэтому подумайте, какие функции вам нужны.

Если это базовое изображение RGB+Depth (и, возможно, мотор и акселерометр), доступ к libfreenect — ваш выбор.

Если вам нужно изображение RGB+Depth и отслеживание скелета и жесты (руки) (но без мотора, доступа к акселерометру), используйте OpenNI. Обратите внимание: если вы используете нестабильные (dev) версии, вам следует использовать драйвер Avin SensorKinect.

Проще всего сделать чистую установку OpenNI.

Кроме того, если это поможет, вы можете использовать творческую среду кодирования, такую ​​как Processing или OpenFrameworks.

  • Для обработки я рекомендую SimpleOpenNI.
  • Для OpenFrameworks вы можете использовать ofxKinect, который связан с libfreenect или ofxOpenNI. Загрузите пакет OpenFrameworks с вики-сайта FutureTheatre Kinect Workshop, так как он включает в себя как дополнения, так и некоторые действительно полезные функции. Примеры.
person George Profenza    schedule 20.09.2012
comment
Я думаю использовать SensorKinect от Avin, чтобы я мог использовать OpenNI и NITE. Я показываю консольное сообщение libfreenect, чтобы предоставить больше информации о моей проблеме, а не потому, что думаю использовать его. - person takuma7; 21.09.2012
comment
Только образцы OpenNI замедляют или даже освобождают образцы? - person George Profenza; 21.09.2012
comment
Образцы SensorKinect и NITE перестают работать через несколько секунд, а что касается libfreenect, образцы не открываются, говоря, что kinect не подключен - person takuma7; 21.09.2012
comment
Вы пытались сами составить базовый пример? Это также имеет замедление или только предварительно скомпилированные образцы, которые поставляются с OpenNI? Можете ли вы быстро попытаться скомпилировать образец Processing+SimpleOpenNI или образец openframeworks+ofxOpenNI? Я не уверен, что проблема с образцами, библиотекой или самим устройством. - person George Profenza; 21.09.2012
comment
Нет, я просто использовал бинарные файлы, распространяемые на веб-сайте OpenNI и на странице Avin на github. Ок, попробую скомпилить и потом тут расскажу :) Спасибо - person takuma7; 21.09.2012

Когда вы подключаете устройство Kinect к компьютеру, подключали ли вы к нему внешнее питание? Устройство будет подключено к компьютеру только через USB, но не сможет передавать данные, так как ему требуется внешний источник питания.

И какой датчик Kinect вы используете? Если это новое устройство Kinect (разработанное для Windows), оно может иметь другую сигнатуру устройства, что может привести к срабатыванию драйверов OpenNI. Я не уверен в этом на 100%, но я когда-либо пробовал OpenNI только с датчиком XBox 360.

person LewisBenge    schedule 21.09.2012
comment
да, внешнее питание предусмотрено, как доказательство, реально работает пару десятков секунд. Я использую Kinect для Windows, который невозможно подключить к Xbox. Это для разработчиков, и я использую последнюю версию каждого драйвера. - person takuma7; 21.09.2012