top of page
Buscar
  • Foto del escritorDavid Andrés Vega Monsalve

Base de datos sobre los kinetics

Actualizado: 20 oct 2020

El kinect es una compilación de cámaras, en las cuales están ubicadas las cámara infrarroja, de profundidad y de color estas se desarrollan con la idea de crear una nueva cámara la cual hace un track de movimiento y escaner 3D. Todo esto en un dispositivo de infimas dimensiones en el que se plasman más de 30 años de investigación sobre la dimensión misma.

Actualmente existe un kinect mucho más avanzado que es el kinect azure, el cual desarrolla un espectro de profundidad y desarollo más profundo a partir de la IA que permite separar le fondo y excrutar los objetos de mejor manera a paritr de varios escaneos y creación de aproximaciones as cuales completa la IA, en este espectro el movimiento y los objetos son analizados con gran exactitud.


Pero este salto no se alcanzo solo, a lo largo de diez años desde el primer kinect hasta hoy se crearon varios códigos los cuales iban alimentando la librería sdk, y as cuales alimentaban la base de datos frente a lo que se realiza con el reconocimiento de cuerpo y reconociendo el objeto mismo.



El futuro esta dado en la realidad aumentada o mejor dicho mixta en donde estos aparatos nos permiten interactuar en el mismo espacio virtual y físico. En mi trabajo sobre los kinects, se basa en adquirir una base de datos sobre los archivos digitales sobre lo que es el kinect point cloud los cuales se basan en una base de processing las cuales se ajustan por medio de la librería sdk y se empieza a programar los ajustes de la imagen que se muestra en ejes xyz.


El kinect en este ámbito emplea una base de datos de por si para su propio funcionamiento y maneras de entender el espacio, en donde el entendimiento del espacio.


// Daniel Shiffman// Kinect Point Cloud example// https://github.com/shiffman/OpenKinect-for-Processing// http://shiffman.net/p5/kinect/
importorg.openkinect.freenect.*;
importorg.openkinect.processing.*;
// Kinect Library object
Kinect kinect;
// Angle for rotation
float a =0;
// We'll use a lookup table so that we don't have to repeat the math over and over
float[] 
depthLookUp =newfloat[2048];
voidsetup() {
// Rendering in P3Dsize(800, 600, P3D); 
 kinect =newKinect(this);  
 kinect.initDepth();
 // Lookup table for all possible depth values (0 - 2047)for (int i =0; i < depthLookUp.length; i++) {    depthLookUp[i] = rawDepthToMeters(i);  }}voiddraw() {background(0);
 // Get the raw depth as array of integers
 int[] depth = kinect.getRawDepth();
 // We're just going to calculate and draw every 4th pixel (equivalent of 160x120)
 int skip =4;
 // Translate and rotatetranslate(width/2, height/2, -50);//rotateY(a);// Nested for loop that initializes x and y pixels and, for those less than the// maximum threshold and at every skiping point, the offset is caculated to map// them on a plane instead of just a 
line for (int x =0; x < kinect.width; x += skip) 
{for (int y =0; y < kinect.height; y += skip) 
{int offset = x + y*kinect.width;// Convert kinect data to world xyz coordinateint rawDepth = depth[offset];
PVector v = depthToWorld(x, y, rawDepth);
stroke(255);pushMatrix();
// Scale up by 200

float factor =200;translate(v.x*factor, v.y*factor, factor-v.z*factor);

// Draw a pointpoint(0, 0);
popMatrix();    }  }// Rotate  a +=0.015f;}// These functions come from: http://graphics.stanford.edu/~mdfisher/Kinect.html
floatrawDepthToMeters(intdepthValue)
 {if (depthValue <2047) {return (float)
 (1.0/ ((double)(depthValue) *-0.0030711016+3.3309495161));  }return0.0f;}
 
 // Only needed to make sense of the ouput depth values from the kinect
 
 PVectordepthToWorld(intx, inty, intdepthValue)
  {finaldouble 
  fx_d =1.0/5.9421434211923247e+02;finaldouble fy_d =1.0/5.9104053696870778e+02;finaldouble cx_d =3.3930780975300314e+02;
  finaldouble cy_d =2.4273913761751615e+02;
  // Drawing the result vector to give each point its three-dimensional space
  PVector result =newPVector();
 double depth = depthLookUp[depthValue];
 //rawDepthToMeters(depthValue);  
 result.x = (float)((x - cx_d) * depth * fx_d);  
 result.y = (float)((y - cy_d) * depth * fy_d); 7
  result.z = (float)(depth);return result;}

Código sacado de github para kinect point cloud


El proyecto se basa en la creación de un espacio 360 donde se crea una sub base de datos sobre la investigación del point cloud y se crea de manera estática ya que es una investigación sobre el depth en donde se muestra de manera compositiva y visual el espacio para crear pequeños espacios en donde se muestra la profundidad a partir del negro.


Esta base de datos que expreso esta dada por el interés particular de algunos los cuales iré referenciando a lo largo de esto, en donde empleo investigaciones en institutos japoneses, hasta personas en diferentes espacios en su cotidianidad.


10 visualizaciones0 comentarios

Entradas Recientes

Ver todo
bottom of page