• Home   /  Educacion   /  Campus   /  
  • Taller de sistemas interactivos: Visión artificial, C++ y OpenFrameworks
Taller de sistemas interactivos: Visión artificial, C++ y OpenFrameworks
14
http://libertar.io/vision

Teoría

 

 

OpenFrameworks

Basado en el tipo de sistema operativo (OSX, Linux, Windows) descarga la distribución apropiada de openFrameworks. Instrucciones http://www.openframeworks.cc/download

maluse

 

Instalación IDE

Desarrollaremos nuestros proyectos escribiendo el código, construyendo y ejecutando nuestros programas usando un IDE Integrated Development Environment.

Sigue esta guía para Instalar un IDE adecuado a tu sistema operativo O.S.

 

Generalmente la interfaz de un IDE tiene esta distribución:

INTERFACE

Guía de trabajo

1. Referencias de código ( )

2. Estructura de un proyecto en openFrameworks

EXE-_ArteCódigoC++ 050218 (7)
main.cpp Es el primer elemento en ser ejecutado en nuestro programa. Allí podemos encontrar las dimensiones de la ventana que ocupará nuestra aplicación en ejecución.
ofApp.h alberga las declaraciones de las funciones de nuestro programa.
ofApp.cpp contiene el desarrollo de dichas funciones.

ofApp.cpp y ofApp.h son partes inter conectadas de nuestro proyecto.

Una vez damos al botón “Run” las funciones se ejecutan esencialmente en esta secuencia:
EXE-_ArteCódigoC++ 050218 (8)
El origen de coordenadas se sitúa en la esquina superior izquierda de la ventana de nuestra aplicación.
EXE-_ArteCódigoC++ 050218 (9)

A través de las abstracciones de C ++ de Openframeworks podemos conocer y definir todos los aspectos del comportamiento de nuestro programa. Un ejemplo de estas abstracciones OF es ofGetWindowWidth () o ofGetScreenHeight () para conocer el ancho o el alto de nuestras pantallas.

Antes de seguir, a continuación revisaremos la sintaxis general del lenguaje C++.

 

3. Sintaxis General C++

sesion2-ofx-kin-4

sesion2-ofx-kin-3

sesion2-ofx-kin-5

sesion2-ofx-kin-6

sesion2-ofx-kin-7

sesion2-ofx-kin-9

OfxOpenNI

Empezamos descargando ofxOpenNI Development Branch.
Esta es una interfaz para la librería  openNI + NITE + SensorKinect. Comprobado en Mac OSX (10.6.8), Linux (Ubuntu 10.10 64 & 32), Windows 7 (VS2010 y Codeblocks).Creamos un proyecto nuevo, puede ser una copia de un empty project.

2018-vision (1)
Actualizamos o reemplazamos los contenidos de src con nuestro código.

 

2018-vision (2)

Desde ofxOpenNI en la carpeta addons
Copiar lib desde ‘ofxOpenNI/mac/copy_to_data_openni_path’ a la carpeta ‘bin/data/openni’ en tu proyecto.

Además debes copiar config y el Verdana.ttf del proyecto de ejemplo en la carpeta de complemento ofxOpenNI.

2018-vision (3)


Desde ofxOpenNI en la carpeta addons, copiar una carpeta src de un ejemplo. Renombrar o duplicar por ejemplo src-UserAndCloud-Medium a únicamente src.
Limpiar, reconstruir via Project Generator

2018-vision (4)

En Xcode hacemos un nuevo grupo llamado ‘ofxOpenNI’ bajo ‘Addons’ (click derecho o control click en el grupo ‘Addons’, seleccionamos Add->New Group). Arrastramos ‘src’ e ‘include’ desde ofxOpenNI en la carpeta addons en el grupo ofxOpenNI que acabas de crear en Xcode.

Arrastramos la carpeta lib desde bin/data/openni al grupo ofxOpenNI.

Añadimos #include “ofxOpenNI.h” en ofApp.h,

 

 

2018-vision (6)

Incluimos un nuevo Library Search Path

2018-vision (7)

Y arrastramos 14 elementos desde ofxOpenNI/lib a “Linked Frameworks and Libraries”

2018-vision (8)

Terminamos afinando y reemplazando funciones obsoletas.

2018-vision (9)

 

 

 

ofxFaceTracker

Primero descargar ofxCv (https://github.com/kylemcdonald/ofxCv/tree/stable) y ofxFaceTracker

Copia la carpeta libs/FaceTracker/model/ en   example-*/bin/data/model/ de cada ejemplo.

Usa el OF project generator, construye y ejecuta los ejemplos. Si aparece Assertion failed: s.is_open() debes colocar los archivos de modelos en la carpeta adecuada.

Si quieres usar ofxFaceTracker para tareas de sustitución de rostros mira FaceSubstitution.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Add-ons

 

 

 

Referencias

Teoría
Software y Hardware

 

 

Tags: , , , , , , , , ,

14 Comentarios

AlexPublicado  3:31 pm - abr 19, 2017

Muchisimas gracias, me ha sido de mucha ayuda el artículo. Un saludo

Maria JoséPublicado  10:57 am - abr 20, 2017

Me quedé con ganas de participar en la edición de abril :) Igual muchas gracias por publicar estos contenidos! Siguiendo vuestra guía ya tengo el Xcode instalado y he podido hacer funcionar un ejemplo sin errores pero no veo los resultados ¿que puede estar sucediendo?

    lablibertarioPublicado  11:04 am - abr 20, 2017

    Probar cambiar el esquema Xcode de Openframeworks a “nombre de tu proyecto” – debug o release, en el panel desplegable situado a inmediatamente a la derecha del botón Run.

JosepPublicado  5:14 pm - abr 20, 2017

En los textos de debate, el de Mariano Sardón está enlazado al mismo PDF de Claudia Gianetti,

Un Saludo!

Jaime DyanganiPublicado  1:22 pm - abr 24, 2017

Buenas, Soy jaime (Jimmie, para “los amigos”), estoy inscrito en el taller de sistemas interactivos, vision artificial, C++ y openframeworks… Esta semana no podré asistir al curso debido a un viaje personal a Londres que me he visto obligado a realizar. Por favor no piensen que he perdido interes en el curso (todo lo contrario!!). De echo, este fin de semana he estado analizando algunos de los ejemplos que están incluidos en la librería de openframeworks y creo que a grandes rasgos puedo entender la mecánica general y la distribución de información en los archivos. estos días realizaré ejercicios para poner en practica los fundamentos y seguiré el avance del curso desde la pagina del mismo.

Por cierto, he leido los textos que nos recomendasteis y es muy interesante la visión del ser desligado del cuerpo material y de como la percepción aumentada a través agentes externos (físicos o virtuales) podrían considerarse como argumento racional, una via para transcender a una nueva noción de la humanidad.

Espero ansioso regresar a Barcelona para continuar con esta formación y poder pasar algunas ideas a la practica…

Adjunto alguna referencias
https://www.youtube.com/watch?v=YERtJ-5wlhM
https://www.youtube.com/watch?v=Q4ocIIBTqLs

Te adjunto el portfolio de nuestro equipo “DOSBCNstudio”:
https://www.behance.net/dosbcn

Asi mismo, tambien te dejo dos enlaces a mis areas de interes que me gustaría conectar a través del contenido del taller:
https://www.facebook.com/DigtalTranscendence/
http://globalstreetart.com/afro-zu

Un saludo y disculpen la ausencia en estos días…

carla antunezPublicado  4:30 pm - abr 26, 2017

Muchas gracias por vuestro curso, realmente me ayuda a seguir mi aprendizaje. Seguí las instrucciones de instalación para Adafruit para instalar openFrameworks en mi RPi3 y se construye sin errores. Puedo construir una serie de ejemplos y ejecutarlos. Eso todo funciona. El problema es cuando intento construir el código de la aplicación en sí y obtengo los siguientes 2 errores de los que he intentado buscar sin éxito
../../../libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk:200: recipe for target ‘obj/linuxarmv6l/Release/src/VideoSource.o’ failed
make[1]: *** [obj/linuxarmv6l/Release/src/VideoSource.o] Error 1
make[1]: Leaving directory ‘/home/pi/openFrameworks/apps/myApps/creepyportrait’
../../../libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk:125: recipe for target ‘Release’ failed
make: *** [Release] Error 2

danotikaPublicado  3:33 pm - may 16, 2017

Gracias por esta guía:
Estoy probando el ejemplo de entrada MIDI con OF 0.98, en OS X 10.12.2.
Tengo un controlador midi conectado, y estoy recibiendo con éxito los cambios de control midi en otras aplicaciones.

Estos son los pasos que seguí:

He utilizado el generador de proyecto para hacer un nuevo proyecto que incluye el ofxMIDI
He reemplazado los tres archivos de origen (main.cpp, ofApp.h, ofApp.cpp) con los del ejemplo
He construido con éxito el proyecto no veo errores pero no hay valores.
¿qué puedo ser?

PIeGUIPublicado  10:46 am - may 18, 2017

enhorabuena chicos, una de los mejores tutoriales hasta el momento

Danielle SPublicado  11:35 am - may 31, 2017

Solo aprovechar la oportunidad de felicitaros por el buen trabajo y agradeceros este artículo que me ha hecho la tarde más feliz ayer cuando por fin pude ver mi silueta capturada por la kinect en la pantalla del ordenador. ¡Gracias! El proceso me ha dejado un buen sabor de boca y lo recomiendo a pesar de necesitar muchísmas horas y paciencia…

Larry HPublicado  8:01 pm - jul 1, 2017

He seguido estas instrucciones para instalar libfreenect 2 en mi mac os x: https://github.com/OpenKinect/libfreenect2

Sin embargo en el último paso necesito probar NiViewer y no encuentro el programa en el terminal

-bash: NiViewer: command not found

He podido encontrarlo usando este modo alternativo sin embargo aún no funciona bien, aquí la consola:

cd `brew –prefix`/share/openni2/tools
./NiViewer

[Info] [Freenect2Impl] found valid Kinect v2 @20:17 with serial 000394562647
[Info] [Freenect2Impl] found 1 devices
[Info] [Freenect2DeviceImpl] opening…
[Info] [Freenect2DeviceImpl] transfer pool sizes rgb: 20*16384 ir: 4*128*33792
[Info] [Freenect2DeviceImpl] opened
[Info] [Freenect2DeviceImpl] starting…
[Info] [Freenect2DeviceImpl] submitting rgb transfers…
[Info] [Freenect2DeviceImpl] submitting depth transfers…
[Info] [RgbPacketStreamParser] packetsize or sequence doesn’t match!
[Info] [Freenect2DeviceImpl] started
2016-09-07 11:33:40.667 NiViewer[4903:283276] GLUT Warning: glutInit being called a second time.
[Info] [VTRgbPacketProcessor] avg. time: 15.0893ms -> ~66.272Hz
[Info] [VTRgbPacketProcessor] avg. time: 15.0481ms -> ~66.4535Hz
[Info] [VTRgbPacketProcessor] avg. time: 15.1377ms -> ~66.0602Hz
[Info] [DepthPacketStreamParser] 342 packets were lost
Segmentation fault: 11

Ariel vrPublicado  5:24 pm - mar 21, 2018

Muy buenas chicos, simplemente agradecer la claridad de la guía para OpenFrameworks realmente he buscado en toda la web y la vuestra es la mejor y más sencilla de comprender. GRACIAS MIL!!!

JosePublicado  12:03 pm - mar 28, 2018

Acabo de descubrir su página gracias a este post y ya los tengo guardados. Enhorabuena!!!

Anna MaríaPublicado  9:57 am - may 9, 2018

Excelente, interesante, importante. Ha sido claro, práctico y Útil no sólo para trabajar en un proyecto escénico, sino para más tipos de creatividad y hasta aplicaciones en productos y servicios que podré ofrecer. La idea de proporcionarnos información histórica y analizar cada caso de estudio con tal nivel de profundidad me ha parecido muy buena y útil porque te permite escuchar y atender a la explicación sin agobios y poder recordar lo aprendido. He quedado muy contenta con el curso. La organización que se ha realizado me ha parecido correcta e idonea, el profesor ha explicado claramente los contenidos del curso y a su vez se ha apoyado en ejemplos prácticos haciendo mas asequibles los contenidos del curso. Muy dinámico. La atención ha sido muy buena en todo momento.

Deja un comentario

Redes