Archive | May 2012

Probador virtual Kinect

En el 2009 empece a sentir mucho interés por la realidad aumentada, para esos días no existía el kinect y solo se podía lograr con la web cam, el detalle era que yo no sabía nada de AS3 que es el lenguaje de programación que me permitio hacer todo lo que he venido haciendo.

En esos días trabajaba para Yannick Warnier en su empresa llamada Beeznest, fomentaban mucho la investigación y yo como siempre curioso aprovechaba el tiempo que nos permitian para investigar, eso fue  bueno ya que me permitio experimentar mucho.

para el 2010 logre desarrollar un probador virtual con muy pocos conocimientos de programación y gracias a la ayuda de mi amigo Christian Fasanando, hablo de este probador :

Luego logramos mejorar la detección de movimiento con esta librería :

http://blog.soulwire.co.uk/code/actionscript-3/webcam-motion-detection-tracking

y quedo perfecto a pesar de que yo no sabía nada de programación as3 me metí y logre hacerlo, el detalle era que consumia recursos, sobre todo procesador.

ya para el 2011 conocí a quien es mi actual empleador, le mostre la beta del proyecto con la detección de movimiento y le gusto, nos ofrecio el 30% del monto total de la venta que le hiciera a Saga Falabella ya que el consideraba que era super bueno el producto, así pasaron los meses y Saga Falabella adquirio el primer probador virtual en el Perú, pero no lo desarrolle yo ya que andaba compeltamente ocupado con el proyecto mistura, así que  mi empleador decidío contratar a un Desarrollador as3 para que mejorara el rendimiento de mi beta, y allí empezó el caos , en lugar de mejorarla la detección era pésima, tanto que el probador virtual que usamos en saga falabella los usuarios tenían que usar unos objetos en sus manos ya que eso permitía mejorar un poco la detección, tengo tantos emails que cruce ese día con el desarrollador  que aún los guardo como el recuerdo de que quien se supone era el mejor no pudo estar a la altura.

En fin Saga Falabella el primer día se quejo con quien es mi empleador y yo tuve que ir a reunirme con mi amigo Christian Fasando a poner el diseño a nuestra beta ya que el que hizo el desarrollador no funciono, pero para el día siguiente se decidío de que a pesar el probador virtual no funcionaba bien se utilizaría como comente unos objetos «pin» en la mano, aunque el inicio no era mas que un sujetador de cabello que entregabamos a los usuarios para que se lo pusieran en  la mano, pienso en eso y siento tanta verguenza.

Este fué el probador virtual noten que no detecta bien :

Para solucionar ello se decidió colocar estos pines que el usuario tiene en la mano además de contratar a una persona para que ayudara a los usuarios, ella hizo un buen trabajo :

En fin esta es la historia del primer probador virtual, y vale decir que del 30% que me ofrecieron no cobre nada y es que ese fue otro tema que he dejado pasar ya que creo que el destino y el tiempo se encarga de devolvernos el favor.

hace 3 días decidí hacer un probador virtual Kinect, esto fué motivado por un Argentino que me contacto y con el cual llegamos a un acuerdo. Kinect permite ya no depender de los botones y manejarlo todo a nivel de gestos y eso es lo bueno, he trabajado aquí el seguimiento del cuerpo, además de escalar en base a la proporción, tambien el reconocimiento de gestos y si que ha sido divertido utilizar airkinect que es la librería que utilice para comunicar el kinect con Adobe Flash, Gracias nuevamente al equipo de as3nui.com por hacer esta librería que es tan maravillosa como el kinect.

les muestro las 2 betas del nuevo Probador Virtual Kinect, cada una con su propia funcionalidad, recomiendo verlas ya que quedaron muy bonitas .

TEKI el doctor desde tu casa

Suelo escribir en este blog solo sobre los proyectos en los que vengo trabajando, pero ayer me di con la noticia que el País Vasco invertira 1.5 millones de Euros en un proyecto llamado TEKI, Teki es un proyecto el cual pretende llevar el doctor a casa de pacientes crónicos.

La iniciativa es grandiosa, el uso mucho mas aún , la cantidad de dinero que ahorrarán el paciente al no tener que movilizarse a la clínica pues es beneficiosos.

Me gustaría ver a Kinect Intervention en los hogares de las personas, creo que el inicio de TEKI impulsado por el País Vasco es el inicio de lo que serán los doctores en casa, y con el creo que se abre una gran puerta para que llevemos tambien kinect intervention a muchos hogares.

https://emedesing.wordpress.com/2012/05/04/kinect-intervention-ocupo-el-2do-puesto-en-la-competencia-imagine-cup-2012/

Airkinect 2 en FlashDevelop

Mi mayor problema siempre ha sido el día en que se vencio mi licencia de prueba de Flash Builder, es por eso que busque una manera de correr Airkinect en Flash Develop, encontre mucha documentación para la version 7.1 de airkinect pero no para la versión 2, es así que decidí hacer un tutorial de como correr airkinect 2 en Flash Develop, para todos aquellos que quieran iniciarse en la programación con Kinect y Air.

Primero deben considerar que deben tener un kinect y el sdk instalado en su máquina, la manera de instalar y de donde sacar el sdk se encuentra aquí :

http://www.kinectforwindows.org/

Lo segundo que deben considerar es que deben tener el core de airkinect y lo descargan de aquí :

http://as3nui.github.com/airkinect-2-core/

Este es el vídeo tutorial :

El código con el que llame a la cámara depth es el siguiente

package
{
import flash.display.Sprite;

import com.as3nui.nativeExtensions.air.kinect.Kinect;
import com.as3nui.nativeExtensions.air.kinect.KinectSettings;
import com.as3nui.nativeExtensions.air.kinect.data.SkeletonJoint;
import com.as3nui.nativeExtensions.air.kinect.data.User;
import com.as3nui.nativeExtensions.air.kinect.events.CameraImageEvent;

import flash.display.Bitmap;
import flash.display.Sprite;
import flash.display.Stage;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;

/**
* …
* @author Luis Rodriguez
*/
public class Main extends Sprite
{
private var kinect:Kinect;
private var bmp:Bitmap;
private var skeletonContainer:Sprite;

public function Main():void
{
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.nativeWindow.visible = true;
if(Kinect.isSupported())
{
bmp = new Bitmap();
addChild(bmp);

skeletonContainer = new Sprite();
addChild(skeletonContainer);

kinect = Kinect.getDevice();

kinect.addEventListener(CameraImageEvent.DEPTH_IMAGE_UPDATE, depthImageHandler);

var settings:KinectSettings = new KinectSettings();
settings.depthEnabled = true;

kinect.start(settings);

addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
}

protected function depthImageHandler(event:CameraImageEvent):void
{
bmp.bitmapData = event.imageData;

}

protected function enterFrameHandler(event:Event):void
{
skeletonContainer.graphics.clear();

for each(var user:User in kinect.usersWithSkeleton)
{
for each( var joint:SkeletonJoint in user.skeletonJoints)
{
skeletonContainer.graphics.beginFill(0xff0000);
skeletonContainer.graphics.drawCircle(joint.depthPosition.x, joint.depthPosition.y , 3);
skeletonContainer.graphics.endFill();
}
}

}

}

}

Kinect Intervention ocupo el 2do puesto en la competencia Imagine Cup 2012

equipo Kinect Intervention , Luis Rodriguez,Goycko, Fernando, Eduardo

 

Imagine cup es una competencia mundial organizada por Microsoft en la cual se premia a la innovación tecnológica, junto a un grupo de estudiantes de el instituo IDAT logramos sacar adelante un proyecto que idee y se llama Kinect Intervention.

Les cuento un poco la historia, los estudiantes de IDAT me invitarón a ser «mentor» de su grupo que pretendía presentarse al Imagine Cup, ellos pretendían grabar con el kinect vídeos de las «nanas» que cuidan a los niños y las cuales muchas veces no estimulan el desarrollo psicomotriz de los mismos.

Yo plantie en lugar de grabar y violar la privacidad tanto de los niños como de la «nana» el detectar la hiperactividad del niño, todo esto sucedió después de que visite a una psicóloga para preguntar sobre los trastornos del comportamiento, ella en un inicio menciono la hiperquinecia, autismo, esquizofrenia catatoide y yo ante todo ello quede admirado, fui con esta idea de detectar a través del kinect datos de posición y movimiento para armar un patrón definido que nos permitiera detectar a tiempo y desde la comodidad de casa la Hiperquinesia.

Fue así que empezamos a desarrollar nuestro proyecto, en un inicio recuerdo haber hecho una prueba simplemente con Jquery, para luego pasar a c# utilizando un ejemplo de Microsoft, era necesario utilizar las tecnologías de Microsoft para poder participar, pero hoy despues de esa competencia estamos pensando pasar todo a sof libre.

Para poder sacar adelante el proyecto tuve que pensar en una estregia de negocio que permitiera llegar al usuario de manera gratuita, con el fin de ayudar a las personas, el único modelo que nos permite ello es el de la publicidad y es allí donde ví que lo que en comun tienen las empresas de alimentos, clínicas, psicólogos y laboratorios es buscar «clientes» a los cuales vender a través de la publicidad su producto, al tener nosotros una plataforma donde registramos los datos estaríamos construyendo un mercado específico para estas industrias, además de los planes de licenciamiento para clínicas para el uso de kinect intervention.

También me puse a investigar sobre la competencia y note que la mayoría de los aparatos que existen son intrusivos y costosos, además desarrolle la idea de un vídeo en el cual se muestre de manera clara y facil como iba a funcionar kinect intervention, para ello tuve que hacer un guion que explicara de manera sensilla y eficaz el proyecto.

Kinect intervention gracias al esfuerzo de los estudiantes y a todas estas ideas que detallo logro el 2do puesto en la competencia nacional Imagine Cup 2012, nos apena no haber obtenido el primer puesto y poder ir representando al Perú a Australia, creemos que el primer puesto carece de todo lo que nosotros no carecíamos pero asi son las competencias.

Dejo con ustedes un resumen de tecnología 21 donde se menciona al equipo clase 75 como ganadores del 2do puesto :

Y nuestro vídeo bandera Kinect Intervention :