Kinect

De Wikilipo.

Sommaire

Installation de bibliothèques kinect sous macos x, linux et windows et maxmsp®

pour Mac OS et Processing

openkinect de D. Schiffman

  • lien où télécharger le fichier openkinect.zip;
  • placer le répertoire résultant de la décompression (openkinect) dans ../Documents/Processing/libraries.
  • le wiki de openinect.org.

pour Mac OS, Linux, Windows

simple openNI (Processing)

ROS openNI

  • site de ros.org;
  • les procédures y sont expliquées pour les principaux systèmes d'exploitation.

NB: Ce package devrait permettre l'accès aux données son de la kinect (fonctionnalité non testée).

la kinect et max/msp/jitter® sous mac osx

Quelques esquisses Processing tirant parti des librairies openkinect

(reprises de D.E. Stanley, HEAD, 2011, Genève)

  • pour en tirer parti, mettre ces sketches dans le répertoire par défaut de processing (../Documents/Processing/)
  • Lancer ces sketches dans Processing via le menu File/Sketchbook/votreRepertoire

Canevas

Ce sketch ne fait rien... sauf initialiser l'espace de travail; il montre la structure de base d'un programme Processing utilisant la Kinect.

import librarytests.*;
import org.openkinect.*;
import org.openkinect.processing.*;

Kinect kinect;

void setup() {
 kinect = new Kinect(this);
 kinect.start();
}

void draw() {

}


void stop() {
 kinect.quit();
 super.stop(); 
}

Varicelle

Fait deux choses:

  1. capte et renvoie l'image formée par la Kinect
  2. contrôle l'orientation angulaire verticale de la kinect par l'intermédiaire de la souris (kinect.tilt)

NB: il s'agit aussi de tester la caméra infrarouge. Essayez avec une télécommande de télé ou une led infrarouge quelconque

import librarytests.*;
import org.openkinect.*;
import org.openkinect.processing.*;

Kinect kinect;

void setup() {
  size(640,480);  //standard kinect screen
 kinect = new Kinect(this);
 kinect.start();
 kinect.enableIR(true);
}

void draw() {
  PImage img = kinect.getVideoImage();
  image(img,0,0);
}

void mouseMoved() {
 float t = map(mouseY, 0,height,30,-30);
 println(t);
 kinect.tilt(t);
}

void stop() {
 kinect.quit();
 super.stop(); 
}

Le plus proche

Repère le point le plus proche de la Kinect, et le marque d'un rond rouge, plus ou moins gros selon la distance.

import librarytests.*;
import org.openkinect.*;
import org.openkinect.processing.*;

Kinect kinect;

void setup() {
  size(640, 480);
 kinect = new Kinect(this);
 kinect.start();
 kinect.enableDepth(true);
}

void draw() {
  int closestValue = 4096;
  int closestIndex = -1;
  
  // draw the raw image
  int[] rawDepth = kinect.getRawDepth();
  
  for (int i=0; i <640*480; i++) {
    if (rawDepth[i] > 0 && rawDepth[i] < closestValue) {
      closestValue = rawDepth[i];
     closestIndex = i; 
    }
  }
  
  image(kinect.getDepthImage(),0,0,640,480);
  
  if (closestIndex > -1) {
    fill(255,0,0);
    ellipse(closestIndex % 640, closestIndex / 640, closestValue*0.1, closestValue*0.1);
  
  }
}

void stop() {
 kinect.quit();
 super.stop(); 
}

Le stage de mars-avril 2012 aux Activités culturelles de l'Université de Genève

Le fil rouge de l'atelier

le 27 mars 2012, animé par Nicals Szilas et Pierre Dunand Filliol

  • Exemples d'utilisation de la kinect dans les arts électroniques et numériques
    • Emoshan, voir l'applet web publiée par Nicolas Szilas sous coaltar.ch;
    • Hélice sur l'utilisation fine de la reconnaissance du skelette, de Nicoals
    • Project Sound Design la kinect comme outil de transformation de composantes spectrales de documents sonores (Cécile Picard L., Pierre Dunand Filliol, Nicolas Szilas et d'autres du mapping festival 2011, Genève).
  • Mise en place de l'IDE sous Processing, revue des principales bibliothèques gérant la kinect de ce langage disponibles à ce jour
  • Initiation à la programmation des principales données accessibles au travers de Simple openNI:
    • l'image vidéo rgb;
    • la Depth Image (mesure de distance et reconnaissance de proximité par IR en 2D);
    • les Point Clouds (nuages de points IR, la 3D et ses applications interactives);
    • la reconnaissance du corps et ses mouvements: openNI et les Skeleton Data.
  • Préparation de la séance du 3 avril

le 3 avril 2012

  • Projets à réaliser en cours de soirée, quelques pistes:
    • tirant parti de la Depth Image, le crayon invisible et les sélecteur d'images;
    • tirant parti du Point Cloud, le clavier virtuel;
    • tirant parti des Skeleton Data, l'accordéon virtuel et le mouvement de la danse comme instrument de musique
    • plus tous les projets personnels (et réalisables) proposés par les stagiaires.

L'ensemble du code étudié au cours de l'atelier

... est disponible en ligne ici.

Ces sketches Processing, utilisés pour l'atelier, ont été pour la plupart empruntés à l'ouvrage Making Things See de Greg Borenstein adaptés et commentés par P. Dunand Filliol. Exception faite du sketch hélice rédigé par Nicolas Szilas.

Documentation

Processing et les bibliothèques gérant la kinect

sites, blogs, réseaux sociaux

projets spécifiques

ressources bibliographiques, articles, projets

++ Pierre Dunand Filliol 11.4.12 à 00:30 (UTC)