« Kinect » : différence entre les versions

De Wikilipo
Aller à la navigation Aller à la recherche
Ligne 3 : Ligne 3 :
=== pour Mac OS (''openkinect'' de D. Schiffman)===
=== pour Mac OS (''openkinect'' de D. Schiffman)===


* Aller sur [https://github.com/shiffman/libfreenect/downloads ce lien];
* Aller sur [https://github.com/shiffman/libfreenect/downloads ce lien] et télécharger openkinect.zip;
* Télécharger openkinect.zip et le décompresser;
* Placer le répertoire résultant de la décompression ''openkinect'' dans ../Documents/Processing/libraries
* Palcer le répertoire résultant ''openkinect'' dans ../Documents/Processing/librairies


=== pour Mac OS, Linux, Windows (''Simple OpenNI'')===
=== pour Mac OS, Linux, Windows (''Simple OpenNI'')===

Version du 28 mars 2012 à 22:57

Installation de bibliothèques kinect en Processing sous macos x, linux et windows

pour Mac OS (openkinect de D. Schiffman)

  • Aller sur ce lien et télécharger openkinect.zip;
  • Placer le répertoire résultant de la décompression openkinect dans ../Documents/Processing/libraries

pour Mac OS, Linux, Windows (Simple OpenNI)

Quelques esquisses tirant parti des librairies openkinect (reprises par 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 ac de l'Université de Genève

Le fil rouge de l'atelier

le 27 mars 2012

  • 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)
    • et voir aussi ci-dessous.
  • 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 la kinect:
    • 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

... sera mis en ligne à l'issue de celui-ci.

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

Documentation

Processing et les bibliothèques gérant la kinect

sites, blogs, réseaux sociaux

ressources bibliographiques, articles, projets