Podcast: Descargar (27.8MB)
Seguramente el tema del que te voy a hablar hoy en el podcast te suene a ciencia ficción y creas que es algo que solo lo podemos ver en las películas del mismo género. Sin duda alguna, no estamos en lo más alto en la gráfica de desarrollo en cuanto a soluciones y aplicaciones en esta materia, pero esto no quiere decir que no podamos investigar y aprender de esta ciencia. Ya te conté ¿por qué debemos aprender visión artificial? y hoy te voy a hablar como podemos introducirnos en la visión artificial, OpenCV y Python.
Antes de continuar quiero hablarte del Campus de Programarfacil. Si quieres crear tus propios proyectos con Arduino o algún dispositivo Open Hardware, debes dominar dos disciplinas, la programación y la electrónica. En el Campus estoy volcando todo mi conocimiento en estas materias con cursos de diferentes niveles, básico, intermedio y avanzado.
Este tema no es nuevo en el podcast. Ya he hablado en diferentes capítulos:
- 18. Realidad aumentada
- 44. Tratamiento de imágenes con JavaScript
- 64. Proyectos curiosos con Arduino
- 67. Big Data y visión artificial
Hoy voy a profundizar en la materia y te voy a dar los pasos necesarios para empezar a programar con la biblioteca más famosa de visión artificial, OpenCV.
Indice de contenidos
¿Qué es OpenCV?
OpenCV es una biblioteca libre desarrollada originalmente por Intel. Vio la luz en el año 1999. Escrita originalmente en C/C++, su mejor virtud es que es multiplataforma, se puede ejecutar en diferentes sistemas operativos (Linux, Windows, Mac OS X, Android e iOS). También la podemos utilizar en diferentes lenguajes de programación como Java, Objective C, Python y mi favorito C#. Precisamente para este último existe una versión que se llama EmguCV.
En junio de 2015 se produjo un hito importante, por fin la versión 3.0 estaba disponible. Si hechas números, en 16 años (de 1999 a 2015) solo ha habido 3 versiones. Esto es debido a que desde un principio esta biblioteca ha sido robusta y muy eficiente.
En esta última versión cabe destacar que por fin es compatible con la última versión de Python, la 3.0. Esto permite aprovechar todas las ventajas de la última versión de este lenguaje.
Quizás sea la biblioteca de visión artificial más importante y más usada del mundo. Es utilizada por universidades, empresas y gente del movimiento Maker para dar rienda suelta a su imaginación al tratarse de un software libre.
Pasos para instalar OpenCV y Python
Te preguntarás ¿por qué Python? Aunque todavía no he tratado este lenguaje de programación ni en el blog, ni en el podcast, si que te puedo contar que Python es muy sencillo de usar, favoreciendo el código legible gracias a su sintaxis sencilla.
Debemos ser conscientes que el lenguaje nativo de OpenCV es C/C++, con la complejidad que ello conlleva si queremos utilizar esta biblioteca en nuestros proyectos.
Lo que más me gusta de Python es que es un lenguaje fácilmente portable a otras plataformas entre las que se incluye Raspberry Pi. Si además disponemos de una cámara conectada, imagínate lo que podemos llegar a conseguir.
Aunque en mi día a día yo utilizo Windows y en el Campus he decidido empezar a con este sistema operativo, se puede hacer de igual manera con Linux y OS X.
La decisión de empezar por Windows es muy sencilla. Es el sistema operativo más utilizado del mundo y no porque lo diga yo, solo tienes que ver los datos estadísticos que nos proporciona Net Market Share. Según esta empresa, más del 90% de usuarios utilizan Windows.
Aún así podemos pensar que es una estrategia de ventas y que esta empresa puede pertenecer al magnate de Redmond. Por eso voy a compartir los datos estadísticos obtenidos de Google Analytics sobre el uso de sistemas operativos en esta web osea, vosotros los usuarios.
Como puedes ver hay una diferencia aplastante con el resto de perseguidores. Por eso he optado empezar por Windows, para poder llegar al mayor número de gente y que nadie se sienta excluido.
Lo primero que debemos saber antes de empezar con los pasos a seguir para instalar OpenCV y Python, es que esto ya no es una tecnología plug and play. Estamos acostumbrados a hablar de Processing, Arduino, Scratch y las tecnologías fáciles de usar. Con OpenCV la cosa se complica, sobre todo a la hora de preparar el sistema. Pero yo te voy a dar los pasos necesarios para que empieces de una forma muy sencilla. La instalación consta de 3 pasos.
Paso 1: Instalación de Python 3.0 con paquetes adicionales
Ya no solo tenemos que instalar el lenguaje de programación, para utilizar OpenCV necesitamos instalar, además, ciertos paquetes de Python que nos hará la vida más fácil cuando desarrollemos aplicaciones en visión artificial.
NumPy: es una biblioteca de código abierto que da soporte a vectores y arrays para Python.
SciPy: es una biblioteca de código abierto que contiene herramientas y algoritmos matemáticos para Python.
Matplotlib: es una biblioteca de código abierto para la generación de gráficos a partir de vectores y arrays.
Pip: gestor de paquetes para Python.
Se puede instalar cada paquete por separado, pero existen plataformas como Anaconda 3 donde viene todo integrado en un único instalador. Te recomiendo que lo hagas con este tipo de plataformas.
Paso 2: Instalar OpenCV para Python 3
Quizás este paso pudiera ser el más complicado pero gracias al gestor de paquetes Pip se hace muy sencillo. Solo debemos de descargar la versión para nuestro sistema operativo en formato whl y luego instalarlo. Es muy simple gracias al gestor de paquetes.
Paso 3: Instalar el entorno de desarrollo (Opcional)
Este paso es opcional, podemos utilizar el bloc de notas de Windows para programar en Python. Mi consejo es utilizar Sublime Text 3 y el plugin Anaconda, que convierte este IDE en un entorno de desarrollo optimizado para Python con todas sus funcionalidades.
Y estos serían los 3 pasos recomendados para configurar el sistema. Puedes ver cómo instalar OpenCV paso a paso con imágenes y el código necesario para que todo funcione correctamente.
El recurso del oyente
Hoy traigo un recurso del oyente especial, el email recibido por Antonio Otero. Ha significado mucho par mi porque el objetivo de este proyecto es precisamente ese, ayudar a la gente y en este caso se ha conseguido. Muchas gracias por el e-mail Antonio.
Gracias señores por su buena labor.
Siento la necesidad de comentarles una situación. (ya os di las gracias en un comentario, pero quiero extenderme mas)
Aparte de mi trabajo como desarrollador web, soy formador de inserción para el empleo.
Este año me a tocado dar un curso de microsistemas a un grupo algo especial. (Jóvenes entre 18 y 22 años que digamos andan un poco perdidos por no decir nada mas, unos panoramas….).
Acostumbrado a mis clases habituales (para «adultos»), no daba con la manera de interesarles en la materia. El temario es muy variado, SO, hardware, electrónica muy básica, scripts mantenimiento…. todo básico pero muy amplio.
No encontraba la manera y estaba sufriendo porque no conseguía enderezarlos, estando al borde de la expulsión de algunos alumnos.
El caso es que como todas las mañanas en mi hora de trafico hacia el curso y harto de las noticias de política, se me ocurrió poner vuestros podcasts, y habéis sido una inspiración para mi. Habéis cambiado mi forma de ver algunas cosas, me habéis contagiado vuestra ilusión (quiza ya habia perdido alguna) y como buen virus yo se la he trasmitido a mis alumnos.
Con scratch he conseguido que se interesen por la programación, y ahora me hacen script de linux bastante majos. incluso hemos estado con ensamblador (muy básico). Pero espero que me programen arduino con c :-)
Con arduino están emocionados (he comprado 4 de mi bolsillo pues el centro no los pone). y eso que aún no los han tocado, pero aprenden la teoría con gran interés deseando ponerla en practica :-)
En fin, han cambiado de comportamiento completamente, están involucradisimos y no faltan a una clase, y quiero haceros participes de este éxito.
La única mala noticia es que estoy llegando al posdcast de esta semana y no se si aguantare a esperar una semana para escucharos de nuevo :-)
Gracias,
Antonio Otero
Ya me despido por esta semana, recuerda que nos puedes encontrar en Twitter y Facebook.
Cualquier duda o sugerencia en los comentarios de este artículo o a través del formulario de contacto.