Taller de sistemas interactivos: Visión artificial, C++ y OpenFrameworks

Taller de sistemas interactivos: Visión artificial, C++ y OpenFrameworks














 

+ Fundamentos Programación C++

sesion2-ofx-kin

sesion2-ofx-kin-2

 

sesion2-ofx-kin-4

sesion2-ofx-kin-3

sesion2-ofx-kin-5

sesion2-ofx-kin-6

 

sesion2-ofx-kin-7

sesion2-ofx-kin-9

sesion2-ofx-kin-10

sesion2-ofx-kin-11

 

 

 

+ Instalación y configuración inicial (OF + IDE)

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

ofx kinect-8

Necesitaremos un IDE Integrated Development Environment:

ofx kinect-4

– Guía de setup con Xcode para Mac OS X

Descargar XCode desde OSX App Store
(Puedes necesitar hacer login con tu cuenta de http://developer.apple.com)

 

ofx kinect-10

 

En el terminal (Applications/Utilities/Terminal) escribimos

ofx kinect-12

– Visual Studio Community para los usuarios de Windows

Las instrucciones para descargar y configurar las versiones correctas de IDE para trabajar con OpenFrameworks están en http://www.openframeworks.cc/download/

Descargar  Download Visual Studio Community 2015

ofx kinect-6

 

vs_install

 

Video Codecs

A partir de OF 0.9.0 el video player depende de DirectShow y ya no usa QuickTime. Para poder reproducir archivos QuickTime de video como MP4 recomendamos instalar K-Lite Codec Pack – Version 12.1.0 Full April 18th 2016 soportado por OF.

Plugin openFrameworks para Visual Studio

Desde Visual Studio, ir a Tools > Extensions and Updates (Herramientas > Extensiones y Actualización)

Seleccionar “online”  y buscar openFrameworks e instalar el plugin.

Eso nos capacita para usar File > New > Project para crear Nuevo Projecto de openFrameworks y el menú contextual para remover o añadir addons de OF.

Más información Visual Studio Gallery page

 

Notas de instalación adicionales para usuarios de Windows que usan Visual Studio
– Instrucciones en http://www.openframeworks.cc/download/ hasta ‘openFrameworks plugin for Visual Studio’ para descargar y descomprimir el archivo openFramworks para Visual Studio, descargar e instalar Visual Studio e instalar los códecs.
– después de ejecutar la primera instalación de Visual Studio, el sistema tendrá que instalar para C+ +  algunas herramientas adicionales.
– Descomprimir el zip descargado de openFrameworks y colocar el contenido en alguna carpeta fácil de encontrar
– Seleccionar un ejemplo de proyecto, por ejemplo \ examples \ 3d \ 3DPrimitivesExample y haga doble clic en el archivo .vcxproj. Visual Studio debe abrir el proyecto. En Visual Studio haga clic en el botón de “Run” con el esquema ‘Local Windows Debugger’ activado junto a dicho botón. Esto provoca que Visual Studio muestre un mensaje de que descargará e instalará archivos adicionales (y pedirá cierre de Visual Studio durante el proceso). Después que se completa puedes reiniciar Visual Studio y pasar por este proceso de nuevo, el ejemplo de OpenFrameworks ahora debe compilar y ejecutar.

-Las nuevas aplicaciones deben ir a \ apps \ myApps en la carpeta openFrameworks.

 

Probar la instalación

– Ir al directorio \apps\examples en la carpeta Open Frameworks y abrir un ejemplo
– para Visual Studio, elegir file – open – project/solution y abrir el archivo .vcxproj y luego F5 (Start Debugging) o el botón “play” en la barra de herramientas
Asegurarse que hemos abierto el archivo .sln. Localizar la opción  run without debugging option, que puedes añadir al menu toolbar en la personalización de la IDE.
– para  xcode,  abrir el proyecto .xcodeproj y presionar el botón “play”. Asegurar cambiar el esquema de OpenFrameworks a el nombre de nuestro proyecto – debug, tal como indica la siguiente imagen.

 

Experimentar con los ejemplos de openFrameworks

Encontrar el paquete descargado de la página de openFrameworks y descomprimirla. Esta será la carpeta raíz de la instalación de openFrameworks. Puedes colocar la carpeta raíz oF en cualquier lugar ya que todo nuestro código estará auto contenido en una carpeta. Si descargas otra versión de openFrameworks, debe permanecer en su propia carpeta.

Dentro de la carpeta openFrameworks encontrarás varias carpetas: ir a ejemplos y vamos a intentar compilar ejemplos / graphics / graphicsExample (o similar). Si estás en OS X, haz clic en el graphicsExample.xcodeproj. Si estás utilizando Visual Studio, elija el archivo “.sln”. En Code :: Blocks, elija el archivo “.workspace”.

Ahora el IDE debe abrir y cargar este ejemplo. Localizar el botón “Run” (Ejecutar) o la opción del menú y haga clic en él. El ejemplo debería compilar, lo que podría tardar un tiempo, esto sólo sucederá la primera vez)

Si todo salió bien mostrará una nueva ventana y el ejemplo que acabamos de compilar. Si este no es el caso primero debemos comprobar haber cumplido correctamente los pasos de instalación para cada IDE y en segundo lugar, tener seleccionado el esquema de compilación correcto – ‘NombredeProyecto’ Debug ó  ‘NombredeProyecto’ Release – en el menú desplegable inmediatamente a la derecha del botón “Run”. Por último recomendamos buscar ayuda copiando literalmente los mensajes que aparecen en nuestra consola del IDE.

 

Estructura de carpetas

Además de las carpetas más importantes descritas a continuación, dentro de la carpeta raíz de oF encontrarás varias otras carpetas.

Addons
La carpeta “addons” contendrá los complementos, piezas adicionales de código que amplían las funcionalidades de OF. Los complementos “básicos”, ya vienen incluidos en la descarga. También puedes ir a ofxAddons donde encontrarás una enorme colección de complementos adicionales de la comunidad.

Ejemplos
Ordenados por tema, pueden ser un punto de partida para desarrollar aplicaciones similares.

Libs
Bibliotecas que openFrameworks utiliza para compilar los proyectos.

Project Generator
Generador de proyectos

Aplicaciones
Esta es la carpeta donde se colocan los archivos de proyecto al hacer nuevos proyectos. La descarga actual contiene la carpeta denominada “myApps” dentro de “apps y allí se alojarán los proyectos creados via Project Generator.

 

 

 

+ Visión artificial

Flow adquisición imagen via Videocámaras

ofx kinect

 

 Kinect

sp-kinect-img-672x372
El dispositivo cuenta con una cámara RGB, un sensor de profundidad,  y un procesador que ejecuta el software privativo de PrimeSense. El sensor de profundidad es un proyector de infrarrojos combinado con un sensor CMOS monocromo que permite ver en cualquier condición de luz ambiental.  La profundidad de captura va de 0.7 a 6 metros. La información es recogida a 30 frames por segundo en una resolución de 640 por 480px.

Algunos de los flujos de trabajo de visión por computadora más comunes se han encapsulado en aplicaciones que pueden detectar las cosas y transmitir los resultados via OSC a su aplicación openFrameworks.

  • Toolkit for Sensing People in Spaces (TSPS): Kit de Herramientas para Detectar Personas en Espacios
  • Community Core Vision: conjunto de herramientas completo para una amplia gama de tareas de seguimiento.
  • FaceOSC: Una aplicación que rastrea las caras (y las partes de la cara, como ojos y narices) en video, y transmite estos datos sobre OSC.
  • Reactivision TUIO:Un sistema que utiliza marcadores fiduciales para rastrear las posiciones y orientaciones de objetos, y transmite estos datos sobre OSC.
  • EyeOSC (.zip): Un eyetracker experimental, basado en la cámara web que transmite el punto de fijación del espectador sobre la OSC.
  • Synapse for Kinect: Un tracker de esqueleto basado en Kinect con OSC.
  • DesignIO kinectArmTracker: Una aplicación OSC para el seguimiento de los movimientos de los brazos con el Kinect.
  • OCR-OSC reconocimiento óptico de caracteres (OCR) en secuencias de vídeo.

Sesion4-ofx-kin-4

 

Sesion4-ofx-kin-5

ofxCv

ofxcv

fxcvv

 

 

ofxKinect

Sesion6-ofx-kin

 

ofxOpenNI

Descargar e instalar en carpeta addons
https://github.com/gameoverhack/ofxOpenNI

Captura de pantalla 2017-05-02 a las 21.26.19

 

 

OSX
1.- Copiar ofxOpenNI en la carpeta addons

Sesion7-ofx-kin

2.- Duplicar un proyecto vacío o crear uno nuevo

cop

3.- Reemplazar los contenidos de src

4.- Copiar toda la carpeta ‘data’ desde el proyecto ejemplo del addon ‘ofxOpenNI’  a tu carpeta ‘bin’ en tu proyecto

( Si la carpeta no está presente:

  • En Xcode hacer un nuevo grupo llamado  ‘ofxOpenNI’ si no existe en ‘Addons’ click -derecho ‘Addons’, selección Add->New Group.
  • Arrastrar ‘src’ e ‘include’ desde ofxOpenNI en el directorio addons de Ofx al grupo ‘ofxOpenNI’ de Xcode … )

 

Sesion7-ofx-kin-2

5.- Limpiar, reconstruir via Project Generator. Añadir addons.

limpiar, reconstruir

 

6.- En Xcode Faltan LIB, SRC, INCLUDE dentro de addons/ofxAddons en la estructura del proyecto

Xcode Projecte

7.- Obtendremos esta estructura

Captura de pantalla 2017-04-28 a las 16.08.20

8.- Añadir  un Library Search Path en Build Settings

Library Search Path

9.- Arrastrar las nuevas librerías a “Linked Frameworks and Libraries”

Link

Debe quedar así

Captura de pantalla 2017-04-28 a las 16.02.54

Build & Run….

Kinect Mano

 

 

 

Posible solución error LLVM CLAN Xcode 8

Instalar Xcode versión 7

Xcode 7 xcode 7

 

 

Windows
Instalar openNI (http://www.openni.org/Downloads/OpenNIModules.aspx O http://github.com/openni)
Instalar NITE (http://www.openni.org/Downloads/OpenNIModules.aspx)
Instalar SensorKinect drivers ( https://github.com/avin2/SensorKinect

Copiar carpeta ‘example’ a tu Ofx/apps/MyApps o similar
Copiar los contenidos de ‘ofxOpenNI/win/copy_to_data_openni_path’ a una carpeta ubicada en ‘bin/data/openni’ en tu proyecto ejemplo
Renombrar o duplicar por ejemplo src-UserAndCloud-Medium a únicamente src
Limpiar, reconstruir via Project Generator

 

-kin-2

 

Captura de pantalla 2017-04-28 a las 16.37.27

 

Fullscreen

 

Declarar en h

 en cpp

+ Aprender más

Body, Space & Tehcnology Journal de la universidad de Brunel
– El sitio web del curso Tecnologías de la imagen. Facultad de Bellas Artes Universidad Politécnica de Valencia
– Mapa conceptual de la historia del Cine-expandido
– Solución a error unsigned char * getPixels() en C++Ofx
– Addons recomendados:  ofxControlPanel
– Más de 1000 addons disponibles openFrameworks
-El libro Pensar en C++: «Thinking in C++» en castellano:
Volumen 1 (versión HTML | versión PDF)
Volumen 2 (versión HTML | versión PDF)
– El libro Apuntes de Procesamiento Digital de Imágenes de José Ramón Mejía Vilet
Vídeo – Guías para resolver diversos aspectos del trabajo con OFx
– La referencia oficial de C++ cplusplus.com y un tutorial en inglés cplusplus.com tutorial
– La performance computacional comparado entre Java y C
– Descargar OpenGL Extensions Viewer para probar compatibilidad de la tarjeta gráfica con openGL.

Re instalar libusb

El addon incluído ofxKinect tiene libusb, razón por la que si creamos un proyecto via Project Generator no tendríamos que preocuparnos por instalar libusb.

  1. Command+Space y escribir Terminal presionar enter/return
  2. En terminal copiar y dar enter
    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
  3. Una vez completado, en el terminal escribir y dar enter
    brew install libusb
    ó probar con
    brew install libusb-compat
Brew se actualiza escribiendo en Terminal
brew update
brew upgrade
Xcode 8 tiene libusb y debe funcionar out-of-the-box. Más detalles Xcode 8.1 image documentation.

, , , , ,

9 Comentarios hasta el momento

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

Deja un comentario

Redes