kinect-mssdk-openni-bridge Supplemental Diagrams Tomoto Shimizu Washio (en) (ja) Rev 1: 9/15/2012
SensorKinect Driver and K4W Driver cannot coexist Problem Image Node User Node OpenNI App Depth Node KinectSDK App Image UserID+ Skeleton Depth SensorKinect Driver Avin2’s SensorKinect NITE OpenNI FW K4W Driver Image Stream Depth Stream Skeleton Stream Image Depth Skeleton User ID Kinect SDK
Bridge alters SensorKinect by providing OpenNI-complient nodes that wrap Kinect SDK, so that OpenNI/KinectSDK apps can coexist Bridge Solution Image Node User Node OpenNI App Depth Node KinectSDK App Image UserID+ Skeleton Depth Bridge NITE OpenNI FW K4W Driver Image Stream Depth Stream Skeleton Stream Image Depth Skeleton User ID Kinect SDK User Node UserID+ Skeleton Kinect Studio.xed
Bridge Solution (cont.) App can apply NITE’s algorithms (e.g. User node) upon Bridge’s Depth node App can choose either User node of NITE’s or bridge’s ◦ User “query” on node creation ◦ Bridge’s User node works by itself but requires no depth node ◦ App can even use both at the same time if needed Compatible with recording/playback with Kinect Studio ◦ Because it is totally transparent under Kinect SDK
Recorder node can apply on bridges Depth and Image node ◦ So XED -> ONI conversion is possible ONI Recording Image Node User Node OpenNI App Depth Node UserID+ Skeleton Bridge NITE OpenNI FW K4W Driver Skeleton User ID Kinect SDK User Node UserID+ Skeleton Kinect Studio.xed Recorder Node Image Stream Depth Stream Skeleton Stream.oni Image Depth Image
Bridge does not do anything with ONI playback ◦ Kinect SDK’s skeleton tracking cannot be applied on ONI ONI Playback User Node OpenNI App Bridge NITE OpenNI FW User Node S S.oni Mocks Depth Node Image Node Depth Node Image Node D D I I K4W Driver Skeleton User ID Depth Image Kinect SDK Image Depth UserID+ Skeleton
Misc Audio node is supported ◦ Wrapping DMO Device node is supported ◦ App can choose one of multiple connected Kinect Sensors ◦ Kind of hack, not perfect at all Design policy ◦ Stay upon Kinect SDK as possible rather than working around it