¡Bienvenidos a esta nueva serie!
No hay duda de que las redes neuronales han revolucionado prácticamente cada área que tocan. Sin embargo, no son, ni mucho menos, el Santo Grial. De manera más específica, no son la solución a todos los problemas.
Si bien es cierto que deep learning constituye una herramienta versátil y, a su vez, poderosa, hay problemas que no requieren la asistencia de la artillería pesada para ser resueltos.
Si tu problema es una mosca, es más efectivo usar un matamoscas que una bazooka.
Subáreas de la inteligencia artificial, como la visión computarizada o el procesado de lenguaje natural han existido durante décadas, y avances en estos sectores se han producido mucho antes de la llegada de los GPUs y el vasto poder de cómputo con el que hoy día contamos.
En el caso particular de computer vision, existen un sinfín de técnicas que podemos aprovechar para resolver infinidad de problemas.
Por supuesto, si bien es útil implementar esto algoritmos desde cero, no es una manera escalable de resolver problemas en este dominio.
Afortunadamente, existen numerosas librerías dispuestas a facilitarnos la vida, tales como scikit-image, mahotas u OpenCV.
Es esta última la que centrará nuestra atención en este y los artículos venideros, ya que es la más antigua y la que cuenta con la mayor adopción actualmente.
Honestamente, es difícil desacoplar el campo de la visión computarizada de OpenCV. Así de importantes es.
Instalación
En esta serie de artículos trabajaremos con la versión de Python de OpenCV.
En sus orígenes, OpenCV fue escrita en C++, pero desde 2009 contamos con bindings para Python, lo cual es una fabulosa noticia, puesto que nos permite concentrarnos en los aspectos de alto nivel de la librería, dejando las tareas pesadas a C++. En resumidas cuentas, Python no es más que una interfaz de alto nivel del verdadero OpenCV, el cual sigue siendo ejecutado en C++.
Para instalar OpenCV en Ubuntu, usaremos pip.
No obstante, hay una serie de versiones distintas de la librería. ¿Cuál debemos usar? Veamos:
- opencv-python: Sólo contiene los módulos principales.
- opencv-contrib-python: Contiene los módulos principales y los módulos de contribución. Esta es la versión más completa y la que instalaremos en este tutorial.
- opencv-python-headless: Idéntica a opencv-python, pero sin soporte para GUI. Ideal para sistemas headless.
- opencv-contrib-python-headless: Idéntica a opencv-contrib-python, pero sin soporte para GUI. Ideal para sistemas headless.
Para instalar en tu sistema, ejecuta el siguiente comando:
1 |
pip install opencv-contrib-python |
Deberías ver algo similar a estas líneas en tu consola:
1 2 3 4 5 6 7 8 9 |
Collecting opencv-contrib-python Cache entry deserialization failed, entry ignored Cache entry deserialization failed, entry ignored Downloading https://files.pythonhosted.org/packages/af/0a/50a827d13a75754a8500fa854517f09886027005b09ac5210dca9f0aa101/opencv_contrib_python-4.1.0.25-cp36-cp36m-manylinux1_x86_64.whl (32.6MB) 100% |████████████████████████████████| 32.6MB 55kB/s Collecting numpy>=1.11.3 (from opencv-contrib-python) Using cached https://files.pythonhosted.org/packages/35/d5/4f8410ac303e690144f0a0603c4b8fd3b986feb2749c435f7cdbb288f17e/numpy-1.16.2-cp36-cp36m-manylinux1_x86_64.whl Installing collected packages: numpy, opencv-contrib-python Successfully installed numpy-1.16.2 opencv-contrib-python-4.1.0.25 |
Una vez completada la instalación, entra en el REPL de Python e importa cv2. No debería darte problemas:
1 2 3 4 5 6 |
$ python Python 3.6.7 (default, Oct 22 2018, 11:32:17) [GCC 8.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import cv2 >>> |
¡Esto es todo por hoy! En la próxima entrada en la serie empezaremos a explorar funcionalidades básicas de OpenCV, como cargar y guardar imágenes.
¡Nos vemos!