CS663 | computer vision
  • outline
  • projects
  • syllabus
  • links
Main
Goals
Data Input
Kinect SW
Calibration
Research
Getting Started
Proposal

Implementation
Requirements AND Data Output

Deliverables
Skeleton Tracking
Other

Project 3: Cyber Physcial System (CPS)Research

 

SW Platform for programming Kinect

 

 

Middleware for Kinect (can someone else do some of the programming for you)

  • ofxKinect
    • middleware for Kinect
    • http://www.freenect.com/kinect-now-supported-in-openframeworks-cool-d


  • openKinect (openware)
    • has Java wraper if you want to program in Java

  • OpenNI http://openni.org/Documentation/ProgrammerGuide.html
    • Supports multiple languages including Java
    • Full body analysis middleware: a software component that processes sensory data and generates body related information (typically data structure that describes joints, orientation, center of mass, and so on).
    • Hand point analysis middleware: a software component that processes sensory data and generates the location of a hand point
    • Gesture detection middleware: a software component that identifies predefined gestures (for example, a waving hand) and alerts the application.
    • Scene Analyzer middleware: a software component that analyzes the image of the scene in order to produce such information as:
      • The separation between the foreground of the scene (meaning, the figures) and the background
      • The coordinates of the floor plane
      • The individual identification of figures in the scene.

       

  • Paper on one way to use Java with Kinect (note there are multiple ways listed elsewhere on this web page- openKinect+Java wraper and below JNect and OpenNI)

  • Develop Kinect with Java using JNect

    https://channel9.msdn.com/coding4fun/kinect/Jnect-for-Eclipse-The-Java-to-Kinect-for-Windows-SDK-bridge_

    • download Jnect
  • C4fKinect - middleware for use with Microsft SDK --adds some funcitonality like finding person and skeleton (joint points)
  • Many,Many more - simpleOpenNI, etc.....

 

Clarification on WHAT SDK (including middleware) to use to develop to program with Kinect sensor

The main Kinect development libraries are listed here--- I have highlighted the benefits of each in green. A problem of all except the offical SDK is they may not keep up to date with latest SDK. NOTE: they are at different levels ---you will need a dirver, and a upper level programming SDK with optional middleware (implement related algorithms that are useful on Kinect) --- NOTE: you may also want to investigate other middleware for computer vision (OpenCV,etc.) and computer graphics (OpenGL,etc.) for doing processing and displaying/drawing information to the screen.

  1. SensorKinect driver (DRIVER LEVEL)
    (thttps://github.com/avin2/ --- or search),
    • driver provided by Primesense (original Israel company developed the Kinect for Micrsoft)
    • which works across Windows, Linux and MacOS X.

  2. OpenKinect's libfreenect    (DRIVER LEVEL)
    (http://openkinect.org/wiki/Main_Page),
    • libfreenect is derived from a reverse-engineered/hacked Kinect driver, which works
      across Windows, Linux and MacOS X.
    • has wrappers for multiple languages

  3. ofxKinect (DRIVER LEVEL for C++)

  4. CLNUI (http://codelaboratories.com/nui/),    (DRIVER LEVEL, multiple Devices)
    • CLNUI (http://codelaboratories.com/nui/) is aimed at Windows only, but allows
      multiple Kinects to work together.



  5. OpenNI (http://www.openni.org/), I THINK THE MOST VERSATILE  (MIDDLEWARE, with Conversion to Multiple Languages)
    • supports many languages including C++ and Java (languages we feature in this class) ---don't need to download a separate wrapper to program in Java
    • has rich possibly useful middleware API
    • read this book to find out how to program Kinect with OpenNI ---not go to OpenNI for the latest install information
    • full version of book using Kinect with OpenNI and JavaCV including application ofr motion detection   
      can be installed on multiple operating systems.



  6. Microsoft's Kinect for Windows SDK (OFFICIAL) (DRIVER AND MIDDLEWARE LEVEL)
    (http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/default.aspx).
    • only C++, C#, Visual Basic (for this class only want C++)
    • only on Windows 7 machine (may change???search on this issue)

       

  7. OpenFrameworks (MIDDLEWARE -includes OpenGL and OpenCV for C++ --ADDS Graphics over OpenNI????)
    • only for C++ , opensource, cross-OS, use in multiple compilers including VisualStudio, XCode, Eclipse??
    • has hundreds more extensions contributed by the community at http://ofxaddons.com/

       

  8. Processing.org (MIDDLEWARE - its OWN similar to Java like language)
  • This is not actually Java ---so what is it?, opensource, cross-OS
  • provides graphics(OpenGL) and imaging software
  • has its own programming IDE ---so you can not bring in Java or other C++ libraries you ARE PROGRAMMING in a NON-Standard language

 

Microsoft's Video instructions on Kinect setup and use with THEIR SDK

  • http://channel9.msdn.com/Series/KinectSDKQuickstarts/Understanding-Kinect-Hardware?format=html5

 

Choose between Microsoft SDK or OpenNI solutions (+ driver)

           based on OS, programming language, audio support issues

POSITIVES of Microsoft SDK OVER OpenNI

>>> see some benefits of Microsoft SDK skeleton tracking

>>another nice thing is Microsoft SDK has a demo program included called 'Kinect Studio' that allows developers to record, playback, and debug clips of users interacting with applications.

 

 

 

Develop Kinect with C++ or C# or Java or using OpenNI ---but will it be current with latest Microsoft SDK functionality??? --- No, not now but, close --- is it enough??? you decide

OpenNI stack

 

What if you are a Java lover but, want to develop using Micrsoft SDK and not OpenNI ---- (need the bridge Jnect ---but will it be current with latest SDK)???

https://channel9.msdn.com/coding4fun/kinect/Jnect-for-Eclipse-The-Java-to-Kinect-for-Windows-SDK-bridge_

  • download Jnect

 

image

CS6825 Optional Slogan

 

CS6825

cs663:computer vision

  • home
  • outline
  • projects
  • syllabus
  • links