2016-08-24 9 views
6

Я только что установил libfreenect2 на OSX 10.11.5, и я могу успешно запустить демонстрацию Protonect, отображающую RGB/IR/глубинные потоки, но я бы хотел использовать OpenNI/NITE для отслеживания скелета.Как настроить OpenNI2 и NITE с помощью libfreenect2 для отслеживания скелета на OSX?

Я следовал инструкциям в файле README РЭПО для OpenNI, но когда я попытался запустить NiViewer я получил это:

NiViewer 
openDevice failed: 
    DeviceOpen using default: no devices found 

Press any key to continue . . . 

я в настоящее время переживает libfreenect2 вопросы, на GitHub и документирования того, что я 'm пытается и результаты here. Любые подсказки/советы полезны.

Что является самым простым способом установки и тестирования OpenNI/NITE с помощью libfreenect2 с использованием Kinect v2 на OSX?

Оказывается, я использовал Nite 1.5, когда я должен был с помощью NiTE2.2 я просто скопировал libfreenect2-openni2.0.dylib из libfreenect2/build/lib в NiTE-MacOSX-x64-2.2/Samples/Bin/OpenNI2/Drivers/ затем побежал SimpleUserTracker образец и это сработало!

Есть еще уловка: образцы, которые просто печатаются на консоль, но те, которые открывают окно и рендер, не работают. Окно не отображается, как будто этот поток каким-то образом заблокирован. То есть, когда я использую встроенный графический процессор Intel. Если я использую дискретный GPU nVidia, приложение отключается:

./UserViewer 
    124095 INFO  New log started on 2016-08-30 20:32:19 
    124114 INFO  --- Filter Info --- Minimum Severity: VERBOSE 
    126001 VERBOSE No override device in configuration file 
    126029 VERBOSE Configuration has been read from '/Users/George/Downloads/Grouped/Projects/code+libs/NiTE-MacOSX-x64-2.2/Samples/Bin/OpenNI.ini' 
    126034 VERBOSE OpenNI 2.2.0 (Build 21)-MacOSX (May 29 2013 14:03:30) 
    126038 VERBOSE Using '/Users/George/Downloads/Grouped/Projects/code+libs/NiTE-MacOSX-x64-2.2/Samples/Bin/OpenNI2/Drivers' as driver path 
    126042 VERBOSE Looking for drivers in drivers repository '/Users/George/Downloads/Grouped/Projects/code+libs/NiTE-MacOSX-x64-2.2/Samples/Bin/OpenNI2/Drivers' 
    161329 INFO  New log started on 2016-08-30 20:32:19 
    161447 INFO  --- Filter Info --- Minimum Severity: VERBOSE 
    161457 VERBOSE Initializing USB... 
    166761 INFO  USB is initialized. 
    286714 INFO  New log started on 2016-08-30 20:32:19 
    286762 INFO  --- Filter Info --- Minimum Severity: VERBOSE 
    286781 VERBOSE Initializing USB... 
    286804 INFO  USB is initialized. 
[Info] [Freenect2Impl] enumerating devices... 
[Info] [Freenect2Impl] 7 usb devices connected 
[Info] [Freenect2Impl] found valid Kinect v2 @20:16 with serial 500722542042 
[Info] [Freenect2Impl] found 1 devices 
    5380695 INFO  Found device freenect2://0 
    5380723 INFO  Driver: register new uri: freenect2://0 
    5381065 INFO  Device connected: Microsoft Kinect (freenect2://0) 
    5381101 INFO  Device state changed: Microsoft Kinect (freenect2://0) to 0 
    5381115 INFO  Driver: register new uri: freenect2://0?depth-size=640x480 
    5381123 INFO  Device connected: Microsoft Kinect (freenect2://0?depth-size=640x480) 
    5381132 INFO  Device state changed: Microsoft Kinect (freenect2://0?depth-size=640x480) to 0 
    5381139 INFO  Driver: register new uri: freenect2://0?depth-size=512x424 
    5381149 INFO  Device connected: Microsoft Kinect (freenect2://0?depth-size=512x424) 
    5381157 INFO  Device state changed: Microsoft Kinect (freenect2://0?depth-size=512x424) to 0 
[Info] [Freenect2Impl] enumerating devices... 
[Info] [Freenect2Impl] 7 usb devices connected 
[Info] [Freenect2Impl] found valid Kinect v2 @20:16 with serial 500722542042 
[Info] [Freenect2Impl] found 1 devices 
10381916 VERBOSE Trying to open device by URI '(NULL)' 
10381940 INFO  deiveOpen: freenect2://0 
10381948 INFO  Opening device freenect2://0 
[Info] [Freenect2DeviceImpl] opening... 
[Info] [Freenect2DeviceImpl] transfer pool sizes rgb: 20*16384 ir: 4*128*33792 
[Info] [Freenect2DeviceImpl] opened 
12312037 VERBOSE Initialize: Already initialized 
12314810 INFO  Device: createStream(depth) 
12314892 INFO  Freenect2Driver::Device: start() 
[Info] [Freenect2DeviceImpl] starting... 
[Info] [Freenect2DeviceImpl] submitting rgb transfers... 
[Info] [Freenect2DeviceImpl] submitting depth transfers... 
[Info] [Freenect2DeviceImpl] started 
2016-08-30 20:32:31.847 UserViewer[7575:4995528] GLUT Warning: glutInit being called a second time. 
[Info] [VTRgbPacketProcessor] avg. time: 19.633ms -> ~50.9346Hz 
[Info] [VTRgbPacketProcessor] avg. time: 19.6306ms -> ~50.9408Hz 
[Info] [VTRgbPacketProcessor] avg. time: 19.0744ms -> ~52.4262Hz 
[Info] [DepthPacketStreamParser] 417 packets were lost 
Segmentation fault: 11 

Как я могу пройти мимо этой проблемы?

+0

Вы уверены, что ваш kinect подключен через USB-порт 3? –

+1

Да, конечно, я могу запустить образец Protonect, который поставляется с libfreenect2, и просматривать потоки RGB/IR и глубины –

ответ

3

Для справки см. Приведенные выше примечания как aswer. Это то, что я сделал, чтобы получить отслеживание скелета OpenNI2/NITE2.2 с помощью libfreenect2 и это драйвер OpenNI2. У меня:

  1. скомпилирован установлен OpenNI2 с помощью доморощенного и составил libfreenect2 с поддержкой OpenNI2 в соответствии с github repo's readme instructions
  2. загруженных NITE2.2 (замена Nite1.5 которой я missusing до того)
  3. скопирована драйвер libfreenect2 OpenNI2 (ibfreenect2/build/lib/libfreenect2-openni2.0.dylib) в папку Drivers, где мне нужно было запустить NITE2 (например, NiTE-MacOSX-x64-2.2/Samples/Bin/OpenNI2/Drivers).

Я понял, путь был не прав, установив уровень журнала в подробен OpenNI.ini:

[Log] 
; 0 - Verbose; 1 - Info; 2 - Warning; 3 - Error. Default - None 
Verbosity=0 
LogToConsole=1 
LogToFile=1 

[Device] 
;Override="" 

[Drivers] 
; Location of the drivers specified by a relative path based on OpenNI's shared library or an absolute path. 
; Path separator "/" can be used to be portable for any platforms. 
; Default - OpenNI2/Drivers 
Repository=OpenNI2/Drivers 

Сымон Kaliski последовали ноты и написал блестящую Kinect 2 on OSX with skeleton tracking пост с помощью OpenFrameworks, убедитесь, проверьте это!

OpenNI2 OpenFrameworks Skeleton tracking with Kinect v2

Кроме того, когда libfreenect2 скомпилирован с поддержкой openni2 она даже может быть использована в обработке, просто падение libfreenect2-openni2.0.dylib в /Documents/Processing3/libraries/SimpleOpenNI/library/osx/OpenNI2 (на OSX):

Kinect2 SimpleOpenNI Skeleton tracking