Configurar OpenCV en Raspberry Pi 4

Sahil Bhosale 21 junio 2023
  1. Tipos y especificaciones de Raspberry Pi
  2. Primeros pasos con Raspberry Pi
  3. Conclusión
Configurar OpenCV en Raspberry Pi 4

Raspberry Pi es una secuencia de pequeñas computadoras de placa única (SBC) desarrollada por la Fundación Raspberry Pi en el Reino Unido (UK). Originalmente fue desarrollado para alentar a los niños en la escuela a aprender habilidades informáticas básicas.

Es ampliamente utilizado en muchas áreas debido a su bajo costo, diseño abierto y modularidad.

Tipos y especificaciones de Raspberry Pi

Hay tres series principales y varias actualizaciones de Raspberry Pi; ellos son:

  1. Raspberry Pi: este SBC cuenta con un sistema Broadcom en un chip (SoC) con una CPU (unidad central de procesamiento) compatible con ARM integrada y una GPU (unidad de procesamiento de gráficos) integrada en el chip
  2. Raspberry Pi Zero: presenta una competencia reducida de entrada/salida (E/S) y E/S de uso general (GPIO).
  3. Raspberry Pi Pico: cuenta con un SoC RP2040 con una CPU integrada compatible con ARM (unidad central de procesamiento).

Dado que nuestro tema está relacionado con OpenCV, utilizaremos la última Raspberry Pi, que es Raspberry Pi 4 Model B.

El Raspberry Pi 4 Modelo B contiene un procesador ARM Cortex-A72 de 64 bits que funciona con Wi-Fi 802.11ac de 1,5 GHz, Bluetooth 5, 2 puertos USB 2.0, 2 puertos USB 3.0, Gigabit Ethernet y dos puertos HDMI.

Solía haber capacidades de memoria de la versión de 1 GB, pero se ha abandonado; ahora solo hay tres versiones, versiones de 2GB, 4GB y 8GB, y sus precios se han reducido. El Pi 4 también tiene un puerto USB-C que agrega energía adicional a los periféricos posteriores.

Primeros pasos con Raspberry Pi

Antes de comenzar con la instalación de OpenCV, debemos realizar algunas configuraciones para la instalación adecuada y segura de OpenCV. Este proceso de instalación es extenso e intrincado, por lo que lo hemos dividido en pasos.

Se recomienda usar la Raspberry Pi 4 B o los modelos más nuevos porque si usamos el modelo más antiguo, el tiempo que tomará instalar OpenCV aumentará drásticamente ya que los modelos más antiguos tienen menos potencia de procesamiento que los más nuevos.

También se recomienda utilizar una versión más reciente de Windows como Windows 10 u 11; Las versiones anteriores de Windows como 7, 8 y XP también tardarían más tiempo por la misma razón.

Cada paso mencionado a continuación es esencial para el propósito de la instalación, así que asegúrese de realizar cada paso sabiamente. Primero, conecte su Raspberry Pi a su computadora portátil/PC y luego siga los pasos a continuación.

  • Expansión del sistema de archivos

    Estamos ampliando el sistema de archivos para que el proceso de instalación de las bibliotecas de OpenCV sea más fluido. Entonces, para hacer esto, debemos acceder a la terminal Raspberry Pi y escribir el comando a continuación.

    sudo raspi-config
    

    Después de escribir este comando, se abrirá un menú de configuración, seleccione la opción Opciones avanzadas y luego seleccione Expandir sistema de archivos. Después de seleccionar la opción, pedirá confirmación para reiniciar el sistema, luego seleccione Y o .

    Es importante reiniciar el sistema después de este paso para que Raspberry Pi expanda el sistema de archivos en ese momento.

  • Actualización del sistema

    Necesitamos actualizar el sistema si hay paquetes más recientes disponibles; esto también ayuda a que el proceso de instalación sea más rápido y mejor. Para esto, abra la terminal y escriba el siguiente código.

    sudo apt-get update && sudo apt-get upgrade
    

    Este paso llevará unos minutos para obtener la última versión de Raspberry Pi.

  • Instalación de Snapd y CMake.

    Necesitamos CMake para compilar las bibliotecas de OpenCV, pero para eso, primero debemos instalar Snapd, que contiene el paquete CMake. Para hacer eso, escriba el código que se muestra a continuación en la terminal.

    sudo apt install snapd
    

    Ahora instale CMake usando Snapd e ingrese el siguiente comando.

    sudo snap install cmake --classic
    

    Esto instalará CMake. Si aparece algún error al instalar CMake, puede aumentar la memoria de la GPU.

    Para ello, vaya al icono de Raspberry Pi, seleccione Preferencias, luego haga clic en Configuración de Raspberry Pi y pulse Intro. Una vez que aparezca el cuadro de diálogo, vaya a Rendimiento y aumente la memoria GPU a 256 (si es inferior a 256).

  • Instalación de Python 3

    Para instalar Python 3 en su sistema Raspberry Pi, ingrese el siguiente comando en su terminal.

    sudo apt-get install python3-dev
    
  • Descarga e instalación de paquetes OpenCV

    Para ello, se recomienda no utilizar la última versión porque no será estable; Necesitaremos una versión más estable. Así que descargaremos el paquete OpenCV y lo configuraremos en Raspberry Pi usando CMake.

    Necesitamos descargar el archivo zip de OpenCV desde el enlace de GitHub usando el código a continuación.

    wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.0.zip
    

    Ahora necesitamos descargar el archivo zip opencv-contrib. La diferencia entre OpenCV y opencv-contrib es que OpenCV solo tiene paquetes de módulos principales, mientras que opencv-contrib contiene un paquete completo que contiene los módulos principales y los módulos de contribución/extra.

    Descargamos ambos archivos zip para que OpenCV funcione correctamente.

    wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.0.zip
    

    Entonces, después de descargar estos dos archivos zip, los descomprimimos por separado usando las líneas de comando que se muestran a continuación.

    unzip opencv.zip
    
    unzip opencv_contrib.zip
    

    Ahora ambos archivos están listos para ser utilizados.

  • Instalando NumPy

    OpenCV requiere soporte de NumPy para funcionar, así que instalamos NumPy.

    pip install numpy
    
  • Construyendo un directorio

    Cuando descomprimimos los dos archivos zip, se crearon dos nuevos directorios. Necesitamos agregar un nuevo directorio llamado Build en el directorio opencv-4.5.0.

    cd ~/opencv-4.5.0
    mkdir build
    cd build
    
  • Compilando CMake y OpenCV

    Ahora compilamos CMake para OpenCV, pero primero debemos verificar si estamos en la ruta ~/opencv-4.5.0/build. Si la ruta es correcta, podemos copiar y pegar los comandos que se indican a continuación.

    cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-4.0.0/modules \
    -D ENABLE_NEON=ON \
    -D ENABLE_VFPV3=ON \
    -D BUILD_TESTS=OFF \
    -D WITH_TBB=OFF \
    -D INSTALL_PYTHON_EXAMPLES=OFF \
    -D BUILD_EXAMPLES=OFF ..
    

    Al final, muestra Configuración finalizada y Generando finalizada, lo que significa que se configuró correctamente sin ningún error.

    Para compilar OpenCV, usamos el siguiente código en la misma ruta.

    make -j4
    

    Esto compilará OpenCV por completo, pero llevará tiempo. Sin embargo, si esto no compila, entonces podemos usar make -j1; esto tomará más tiempo para compilar que j4, pero será estable.

  • Instalación de bibliotecas OpenCV

    Instale las bibliotecas de OpenCV con el siguiente fragmento de código.

    sudo apt-get install libopencv-devpython-opencv
    
  • Pruebas de OpenCV en Raspberry Pi

    Finalmente, en la terminal en la misma ruta de compilación mencionada anteriormente, escriba python y luego importar cv2, como se muestra a continuación.

    python
    import cv2
    cv2.__version__
    

    Si se importa el cv2 y la versión aparece como se esperaba, la instalación y la configuración se realizan correctamente.

Conclusión

La instalación y configuración de OpenCV implica muchos pasos diferentes. Arriba, hemos visto cómo instalar OpenCV en Raspberry Pi usando CMake.

Puede aprender, construir, trabajar y crear fácilmente proyectos OpenCV en Raspberry Pi. Aunque el proceso fue un poco complejo, valió la pena la espera.

Sahil Bhosale avatar Sahil Bhosale avatar

Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.

LinkedIn

Artículo relacionado - Raspberry Pi