Instalar OpenCV en Raspberry Pi: La Guía Que Necesitas
OpenCV se utiliza a menudo para promover las capacidades de Raspberry Pi. Incluso si Raspberry Pi es un hardware económico, mostrarlo con una cámara, utilizando inteligencia artificial y electrónica es bastante impresionante. Pero antes de hacer todo esto, tienes que configurarlo correctamente, y no es fácil para principiantes. Por eso escribí este tutorial, para ayudarte a empezar con OpenCV.
La forma más fácil de instalar OpenCV en un Raspberry Pi es usar el gestor de paquetes (APT). Pero para obtener una versión reciente, se recomienda usar PIP, ya que la versión disponible con apt generalmente está desactualizada.
Empecemos con una breve introducción a OpenCV y sus características principales, y luego te mostraré cómo instalarlo en tu Raspberry Pi y cómo crear tus primeros scripts con él.
Si estás empezando con Raspberry Pi o Linux, tengo algo que puede ayudarte de inmediato.
Descarga mi hoja de trucos de comandos Linux gratis – es una guía de referencia rápida con todos los comandos esenciales que necesitas para avanzar con tu Raspberry Pi. Haz clic aquí para obtenerla gratis!
¿Qué es OpenCV?
OpenCV es una biblioteca de código abierto, compatible con lenguajes como Python o C++, que te permite construir proyectos de visión por computadora y aprendizaje automático.
Por cierto, CV significa “Computer Vision”. En resumen, te proporcionará funciones interesantes para manipular imágenes y videos. Si estás leyendo esto, probablemente ya has visto algunos proyectos interesantes usándolo.
Ejemplos típicos del uso de OpenCV son la manipulación de imágenes (te daré algo de código básico para hacerlo más adelante), la detección de objetos (reconocer un tipo específico de objeto, como una cara o una mascota) o el seguimiento de objetos (un robot puede seguirte, por ejemplo).
Un proyecto clásico de OpenCV usará otras características de la Raspberry Pi, como el módulo de cámara y los pines GPIO. Puedes, por ejemplo, hacer que la cámara detecte cuando tu coche aparece frente al garaje (detección de objetos), encontrar la matrícula y leer el número de esta (reconocimiento de texto). Si coincide, puedes enviar una señal a los pines GPIO (o a un dispositivo inteligente) para abrir la puerta del garaje.
Bueno, este no es exactamente el proyecto más fácil para comenzar con OpenCV, pero te da una idea. Primero, aprendamos cómo instalar el software en tu sistema.
Espera, ¡tengo algunas recomendaciones para ti!
Antes de continuar, te invito a descubrir algunos productos que he seleccionado cuidadosamente para ti. Creo que son esenciales para tu Raspberry Pi. Échales un vistazo y pídelos directamente en Amazon.
Una caja silenciosa y práctica | Un SSD de alto rendimiento para potenciar tu Pi | Una pantalla genial para liberar el televisor | Un teclado dedicado con touchpad |
Instalar OpenCV en Raspberry Pi
Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi.
Descargar
Obtener Raspberry Pi OS
La manera más fácil de usar OpenCV en Raspberry Pi es usar el sistema operativo oficial: Raspberry Pi OS. Viene con Python preinstalado, así que solo necesitarás agregar la biblioteca de OpenCV antes de crear tu primer script.
Si necesitas ayuda instalando Raspberry Pi OS, puedes hacer clic en el enlace para leer mi tutorial donde te explico todo paso a paso. Una versión de escritorio es probablemente mejor, ya que lo probaremos con imágenes y el módulo de cámara, pero elige la versión que tenga más sentido para ti.
Independientemente de si lo estás instalando desde cero, asegúrate de hacer los siguientes pasos antes de continuar:
- Conectar a Internet (vía Ethernet o Wi-Fi).
- Hacer las actualizaciones del sistema:
sudo apt update
sudo apt upgrade - Habilitar SSH y/o VNC probablemente sea una buena idea si quieres seguir este tutorial directamente desde tu computadora.
Una vez listo, puedes pasar a la instalación de OpenCV.
Método 1 – Instalar OpenCV vía APT
Instalar OpenCV en Raspberry Pi OS se puede hacer directamente con apt. Abre una terminal y escribe este comando:sudo apt install python3-opencv
He visto muchos tutoriales donde realizan la instalación desde el código fuente, pero es bastante complicado, y no necesitas instalarlo de esa manera ya. Este comando instalará todas las dependencias, y funcionará directamente después de eso.
Voy a usar Python para este tutorial, ya que es la manera más fácil de empezar (todo está listo para Python en Raspberry Pi OS, en inglés), pero OpenCV también se puede usar con otros lenguajes. Por ejemplo, instala libopencv-dev en su lugar para usarlo con C++.
Una vez que OpenCV está instalado en tu Raspberry Pi, hagamos una prueba rápida para asegurarnos de que funciona como se espera. Crea un nuevo archivo y copia las siguientes líneas en él:import cv2
print(cv2.__version__)
Cuando ejecutes este script, debería mostrar la versión actual de OpenCV instalada en tu sistema:
Estoy usando Thonny ya que está preinstalado en Raspberry Pi OS, pero puedes hacer la misma prueba en una terminal, vía SSH, o en Raspberry Pi OS Lite si quieres. Crea el archivo con nano y ejecútalo con:python3 <yourscript.py>
Si obtienes el número de versión en tu pantalla, estás listo para comenzar a usar OpenCV.
El problema con este método, sin embargo, es que es muy probable que obtengas una versión desactualizada de OpenCV. Consulta el siguiente método para aprender cómo instalar algo más reciente.
Método 2 – Usar PIP para Instalar OpenCV
Nota: Antes de obtener la última versión, es mejor evitar mezclar cuando sea posible. Así que si ya instalaste OpenCV siguiendo el método anterior, elimínalo con APT antes de cualquier otra cosa:sudo apt remove python3-opencv
Al momento de escribir esto, la versión de OpenCV disponible a través de APT es 4.6.0 (lanzada en 2022), mientras que la última versión disponible en el sitio web oficial es 4.10 (lanzada en el verano de 2024).
Si usas APT para instalar OpenCV, no obtendrás la última versión con correcciones de errores y mejoras. También puedes encontrar incompatibilidades con otras bibliotecas que usarás con OpenCV.
Es por eso que crear entornos virtuales (en inglés), especialmente cuando se trabaja en Python, es ahora la forma recomendada de instalar bibliotecas como OpenCV. Los entornos virtuales evitan conflictos al mantener conjuntos de bibliotecas y dependencias aislados e independientes para cada proyecto.
Para obtener la última versión de OpenCV, vamos a instalarlo dentro de un entorno virtual de Python. Así se hace:
- Instalar venv si no lo tienes ya:
sudo apt install python3-venv
- Hacer un directorio para almacenar tus proyectos de Python:
mkdir python_projects
- Crear un entorno virtual dentro de este directorio:
cd python_projects
python3 -m venv myproject1 - Activar tu entorno virtual:
source myproject1/bin/activate
Fíjate en el nuevo prefijo en el indicador de tu terminal. Significa que todos los comandos de Python que ejecutes desde ahí solo se aplicarán a ese entorno virtual. - Desde este entorno, instala la última versión de OpenCV usando pip (en inglés):
pip install opencv-python
Podría tardar un poco dependiendo de tu hardware y la versión del sistema, así que ten paciencia. Me tomó unos segundos en mi configuración de Pironman (en inglés) (RPI OS 64), pero tomó más de 10 minutos en mi instalación nueva con Raspberry Pi OS 32-bit.
Si obtienes un error, es posible que necesites ejecutar este comando para actualizar pip y wheel:pip install --upgrade pip setuptools wheel
Luego ejecuta la instalación nuevamente:pip install opencv-python
Y si todavía obtienes un error después de eso, probablemente sea porque intentaste instalar una versión que es demasiado reciente y aún no es compatible con tu sistema. En este caso, puedes intentar especificar una versión más antigua con algo como:pip install opencv-python==4.7.0.72
Una lista de versiones que puedes instalar con pip está disponible aquí.
Ahora, ¿cómo ejecutar código de OpenCV desde este entorno virtual? Puedes hacerlo desde la línea de comandos o un IDE gráfico como Thonny.
Para probar si la última versión de OpenCV está funcionando desde la línea de comandos:
- Crear un archivo en tu nuevo directorio de entorno virtual:
nano test.py
- Pegar estas líneas:
import cv2
print (cv2.__version__) - Ejecutar el código:
python3 test.py
Para comprobar si la última versión de OpenCV está funcionando desde Thonny:
- Cargar tu entorno virtual cambiando el intérprete con el menú en la esquina inferior derecha.
- Navegar al directorio con tu entorno virtual, entrar en la carpeta “bin” y seleccionar el archivo “python3”. Presionar OK.
- Ahora puedes escribir tu código en Thonny. Pegar estas líneas:
import cv2
print(cv2.__version__) - Presionar el botón Run.
Cualquiera de los métodos que elijas arriba, si ves una salida mostrando la versión más reciente de OpenCV, ¡éxito!
El objetivo principal de este tutorial era hacer que OpenCV funcionara con Python, pero como un extra, también te mostraré tres ejemplos a continuación para ir un poco más allá.
Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi.
Descargar
3 Ejemplos para Comenzar con OpenCV en Raspberry Pi
Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi.
Descargar
Primer Script: Manipular Imágenes con OpenCV
La mayoría de los proyectos que usan OpenCV se basan en la manipulación de imágenes. Podrían ser fotos almacenadas en tu computadora o una transmisión en vivo de una cámara (en inglés). OpenCV es bastante útil para cargarlas en un script, cambiar algo y mostrarlas o analizarlas después de eso.
Si eres completamente nuevo en Python, te recomiendo mucho leer este artículo primero (en inglés), donde explico los conceptos básicos de Python en Raspberry Pi. También pienso que el leer mi libro “Master Python on Raspberry Pi” es casi obligatorio antes de intentar cualquier proyecto con OpenCV si no quieres perderte rápidamente.
Pero de todas formas, si tienes una mínima experiencia con Python, aquí hay unos pocos métodos que puedes probar para tener una idea de lo que OpenCV puede hacer.
La primera prueba que puedes hacer es cargar una imagen guardada en tu Raspberry Pi (funciona con archivos JPG y PNG).
Puedes hacer esto con:cv2.imread(
Una vez que la imagen está cargada, puedes usar varias funciones incluidas en la biblioteca OpenCV para obtener más datos sobre el archivo, como sus dimensiones, por ejemplo:
Puedes mostrar la imagen en la pantalla usando:cv2.imshow(<window title>
Algo como:
Las dos líneas después de eso se utilizan para mantener la ventana abierta hasta que presionas una tecla. Si presionas “Space”, por ejemplo, cerrará la imagen y el script continuará.cv2.waitKey(0)
cv2.destroyAllWindows()
Otra función útil es el método “resize”.
Puedes redimensionar la imagen a un tamaño específico (como 200x200px en este ejemplo):cv2.resize(image, (x, y))
O usar un coeficiente, como el 50% del tamaño original en este ejemplo:cv2.resize(image, (0, 0), fx=X, fy=Y)
Usar 0.5 significa que la nueva imagen será 50% del tamaño original. Puedes usar un coeficiente diferente para el ancho (X) y la altura (Y).
Finalmente, puedes guardar la imagen modificada en algún lugar de tu Raspberry Pi, usando la función “imwrite”, así:cv2.imwrite(<filename>
Solo asegúrate de usar la misma extensión de archivo y de tener acceso a la ubicación especificada.
Estas funciones son una buena introducción para asegurarte de que OpenCV funciona correctamente en tu sistema y acostumbrarte a las características que usarás para la mayoría de los proyectos. Pero luego OpenCV se puede usar con inteligencia artificial (especialmente, aprendizaje automático), el módulo de cámara y pines GPIO para construir impresionantes proyectos en Python. Te presentare dos de ellos.
Reconocimiento Facial: Usar la Cámara de Raspberry Pi
Si aún no tienes una cámara instalada en tu Raspberry Pi, mira mi guía aquí.
En resumen, la idea para este tipo de proyecto es revisar constantemente la transmisión del módulo de cámara en la Raspberry Pi y hacer algo cuando se detecte una cara. Una vez entrenado correctamente, OpenCV no solo puede detectar una cara en la cámara sino también reconocer quién es.
Básicamente, tomas de 10 a 20 fotos de tu cara con la cámara desde varios ángulos y luego entrenas OpenCV, para que pueda reconocerte en una transmisión en vivo. Esto hace posible muchos proyectos interesantes, donde puedes programar tu Raspberry Pi para hacer algo cuando aparezcas.
Ese fue uno de los ejemplos dados con el kit de robot PiCar-X que probé recientemente (en inglés). Puedes encontrar el script que usan para hacer esto en la documentación de SunFounder. Este dibujará un rectángulo alrededor de la cara detectada, pero puedes hacer cualquier cosa desde allí.
El mejor tutorial que he encontrado para ir un poco más allá en una Raspberry Pi es este de Tim en Core Electronics. Puedes seguir los pasos o descargar el código para el proyecto completo directamente (para que puedas probar incluso si no todo está claro para ti).
La idea de este proyecto simple es iniciar un servo motor cuando se detecte su cara, pero puede ser cualquier cosa (¿reproducir música? ¿Encender las luces de tu casa? No hay límite).
Detección/Identificación de Objetos
Otro proyecto divertido que puedes probar es la detección o el seguimiento de objetos. Es básicamente la misma idea, pero en lugar de detectar una cara, tratarás de identificar los objetos en una foto (o en transmisión de cámara).
Si tu Raspberry Pi está montada en un kit de robot, incluso puedes programarlo para seguir este objeto (eso es posible con el kit del Robot Dog que también probé en este sitio web, en inglés). Tienes una pelota roja que puedes lanzar, y el robot la seguirá.
Para empezar, encuentro que este tutorial es bastante bueno para darte una idea de las posibilidades. Como con el proyecto anterior, puedes seguirlo paso a paso para tratar de entender todo o simplemente ejecutar el script completo para verlo en acción.
Tengo muchos otros proyectos en Python listados aquí (en inglés) si quieres experimentar cosas divertidas con tu Raspberry Pi. Y déjame saber si necesitas más ayuda con OpenCV, puedo escribir tutoriales paso a paso si estás interesado.
Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi.
Descargar
FAQ: OpenCV en Raspberry Pi
¿Cómo comprobar si OpenCV ya está instalado en Raspberry Pi?
Para comprobar si OpenCV está instalado, puedes ir a “Add/Remove software” y buscar “OpenCV”. Si algunos paquetes están instalados, habrá una casilla marcada a la izquierda. Este comando también se puede usar para listar los paquetes OpenCV instalados:sudo dpkg -l | grep "python-opencv\|python3-opencv"
¿Puedo usar OpenCV con C++?
Los desarrolladores de OpenCV lo están creando con C++, por lo que OpenCV se puede usar con la mayoría de los lenguajes, incluyendo C++, Java y Python. En un Raspberry Pi (con cualquier distribución basada en Debian), OpenCV se puede instalar para C++ con:sudo apt install libopencv-dev
Puedes iniciar tu script con:#include <opencv2.opencv.hpp>
para usar OpenCV en un script C++.
Lee mi artículo sobre C++ en Raspberry Pi (en inglés) si necesitas ayuda para comenzar.
¿Cuánta Memoria Necesita OpenCV?
1 GB de memoria debería ser suficiente para la mayoría de proyectos usando OpenCV en tu Raspberry Pi.
Obviamente, la cantidad de memoria que necesitas dependerá de lo que hace tu programa (analizar una transmisión de video de alta calidad en tiempo real no necesita la misma cantidad que redimensionar una imagen pequeña), pero cualquier modelo de Raspberry Pi debería ser suficiente para la mayoría de los proyectos.
También puede variar dependiendo de la distribución que uses, y otras aplicaciones.
Cuando estés preparado, aquí tienes un atajo para ti:
Domina tu Raspberry Pi en 30 días: Si buscas los mejores consejos para convertirte en un experto en Raspberry Pi, este libro es para ti. Aprende habilidades útiles de Linux y practica múltiples proyectos con guías paso a paso.