2016-08-24 5 views
6

Je viens d'installer libfreenect2 sur OSX 10.11.5 et je peux exécuter avec succès la démonstration de Protonect affichant les flux RGB/IR/profondeur, mais j'aimerais utiliser OpenNI/NITE pour le suivi du squelette.Comment configurer OpenNI2 et NITE avec libfreenect2 pour le suivi du squelette sous OSX?

J'ai suivi les instructions contenues dans le fichier README du repo pour OpenNI, mais quand j'ai essayé de courir NiViewer j'ai eu ceci:

NiViewer 
openDevice failed: 
    DeviceOpen using default: no devices found 

Press any key to continue . . . 

Je vais actuellement par libfreenect2 questions sur github et de documenter ce que je J'essaie et les résultats here. Tous les conseils/astuces sont utiles.

Quelle est la meilleure façon de configurer et de tester OpenNI/NITE avec l'aide d'un libfreenect2 v2 Kinect sur OSX?

que j'étais Transforme en utilisant Nite 1.5 quand je me sers NiTE2.2 J'ai simplement copié libfreenect2-openni2.0.dyliblibfreenect2/build/lib-NiTE-MacOSX-x64-2.2/Samples/Bin/OpenNI2/Drivers/ puis a couru l'échantillon SimpleUserTracker et cela a fonctionné!

Il y a toujours un problème: les échantillons qui s'impriment simplement sur la console s'exécutent, mais ceux qui ouvrent une fenêtre et le rendu ne fonctionnent pas. Aucune fenêtre n'est affichée, comme si ce thread était bloqué d'une manière ou d'une autre. C'est à ce moment que j'utilise le GPU Intel intégré. Si j'utilise le discret GPU nVidia, l'application se bloque:

./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 

Comment puis-je résoudre ce problème?

+0

Etes-vous sûr que votre kinect est connecté via le port USB 3? –

+1

Oui, bien sûr, je peux lancer l'exemple Protonect fourni avec libfreenect2 et voir les flux RGB/IR et de profondeur –

Répondre

3

Pour référence, voici les notes ci-dessus comme un aswer. C'est ce que j'ai fait pour obtenir le suivi du squelette OpenNI2/NITE2.2 avec libfreenect2 et son pilote OpenNI2. Je:

  1. compilé installé OpenNI2 via homebrew et compilé libfreenect2 avec support OpenNI2 selon github repo's readme instructions
  2. téléchargé NITE2.2 (remplaçant Nite1.5 qui m'a missusing avant)
  3. copié le pilote d'libfreenect2 OpenNI2 (de ibfreenect2/build/lib/libfreenect2-openni2.0.dylib) dans le dossier Drivers où j'avais besoin de NITE2 (par exemple NiTE-MacOSX-x64-2.2/Samples/Bin/OpenNI2/Drivers).

J'ai compris le chemin était mauvais en réglant le niveau de journalisation bavard dans 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 

Symon Kaliski a suivi les notes et a écrit un billet Kinect 2 on OSX with skeleton tracking brillant en utilisant OpenFrameworks, être sûr de Vérifiez-le!

OpenNI2 OpenFrameworks Skeleton tracking with Kinect v2

, une fois libfreenect2 aussi est compilé avec le soutien openni2 il peut même être utilisé dans le traitement, il suffit de déposer libfreenect2-openni2.0.dylib dans /Documents/Processing3/libraries/SimpleOpenNI/library/osx/OpenNI2 (sur OSX):

Kinect2 SimpleOpenNI Skeleton tracking