Configuración de Raspberry Pi para Prototipo de Aplicación Tensorflow de Visión Artificial
Por Pablo Diego Rosell | | Visión Artificial
En Rosan International, recientemente nos hemos interesado por los modelos de Tensorflow para Raspberry Pi. Para aquellos de vosotr@s con mejores cosas que hacer en vuestro tiempo libre que cacharrear con ordenadores de placa simple, permitidme presentaros a la mayestática Raspberry Pi: el ordenador más barato del mundo. Raspberry Pi es una computadora del tamaño de una tarjeta de crédito desarrollada por la Raspberry Pi foundation, una organización benéfica con sede en el Reino Unido con la misión de permitir que los jóvenes desarrollen todo su potencial a través del poder de la informática y las tecnologías digitales.
El modelo más básico, Raspberry Pi Zero, incluye una CPU de un solo núcleo de 1 GHz, 512 MB de RAM, puerto Mini HDMI, puerto Micro USB OTG, alimentación Micro USB, encabezado de 40 pines compatible con HAT, video compuesto y encabezados de reinicio, y CSI conector de cámara, ¡todo por la disparatada cantidad de 5.00 euros! Pensamos en optar por una versión un poco más currada para facilitarnos la conectividad, y nos acabamos decantando por el Modelo 3 A+, con un puerto HDMI de tamaño completo, ranura para tarjeta microSD, puerto micro USB, conector de audio de 3,5 mm y 40 pines GPIO, para la integración con dispositivos externos, una propuesta mucho más elitista que la Zero: 37,90€, gastos de envío incluidos.
Para facilitarnos la vida y mantener la RPi como dispositivo de escritorio autónomo e independiente, invertimos en algunos periféricos adicionales, incluyendo una tarjeta Kingston microSD con SDCS2/32GB Class 10 para ejercer las funciones de «disco duro» de la RPi , y un cargador Micro USB dedicado AptoFun 5V 2A para obtener un suministro de corriente fiable. Dado que queremos usar la RPi para crear prototipos de aplicaciones de visión por computadora, también pillamos una cámara externa Raspberry Pi NoIR Camera Module V2 de 8 megapixels. Finalmente, queríamos brindar cierta protección a la delicada placa base y un ventilador para enfriar el procesador, así que compramos una eleUniverse Case for Raspberry Pi 3A+. En total, la factura de nuestra súper computadora ascendió a la escalofriante suma de ¡99.87 euros!
Raspberry Pi 3 A+ | € 37.90 |
SD card | € 4.59 |
Charger | € 10.00 |
Camera | € 32.90 |
Case and fan | € 14.48 |
Total | € 99.87 |
Configurar una RPi requiere un poco de trabajo adicional. Por fortuna, el proceso está ampliamente documentado en la Getting started guide. Te lo resumimos aquí:
Paso 1: Instalación del sistema operativo Raspberry en la tarjeta SD
Para comenzar, deberás instalar el sistema operativo Raspberry en la tarjeta SD. Para hacer esto, puedes usar la herramienta OS imager , que simplifica el proceso y garantiza una instalación sin problemas. Elegimos la versión ‘Buster’ del sistema operativo, ya que queremos hacer un prototipo de las aplicaciones de Tensorflow que se desarrollaron con esa versión.
Paso 2: Conexión de periféricos
Una vez que hayas instalado el sistema operativo, toca conectar la Raspberry Pi a los periféricos necesarios. Conecta el monitor, teclado/ratón USB, cámara y fuente de alimentación a los puertos apropiados en la placa Raspberry Pi. El más complicado es la cámara, pero vamos, que tampoco es tan dificil.
Paso 3: Encendido
Con todo conectado, es hora de encender tu RPi enchufando la fuente de alimentación. Siéntata y deja que la magia suceda ante tus ojos cuando aterrices en el templo de RPi.
Paso 4: Habilitar la Cámara
Lo siguiente será habilitar la cámara. Ve al menú principal y abre la herramienta de configuración de RPi. Selecciona la pestaña «Interfaces» y asegúrate de que la cámara esté habilitada, y finalmente reinicia su Raspberry Pi.
Conexión a iPad/iPhone: Un paso adicional que me pareció potencialmente util es tener la RPi como una unidad remota a controlar desde un dispositivo más fácil de usar, como una tableta. Te cuento la movida aqui:
Paso 1: Habilitar SSH
Para establecer una conexión entre la RPi y iPad/iPhone, primero deberás habilitar SSH (Secure Shell). Esto permite un acceso remoto seguro a la interfaz de línea de comandos de la Raspberry Pi. Habilitar SSH.
Paso 2: Encontrar la Dirección IP de Raspberry Pi
Para conectar un iPad/iPhone a tu Raspberry Pi, necesitarás saber la dirección IP de la RPi. Para encontrarlo, abre el símbolo del sistema y pon el siguiente comando para mostrar la dirección IP:
hostname -I
Paso 3: Instalar PiHelper y Agregar una Nueva Conexión
En el iPad o iPhone, instala la aplicación PiHelper desde la App Store. Una vez instalada, abre la aplicación y agrega una nueva conexión usando la dirección IP que obtuviste en el paso anterior.
Paso 4: Instalación de TightVNC en Raspberry Pi
Para habilitar el acceso remoto al escritorio, deberás instalar TightVNC en tu Raspberry Pi. Abre la terminal y escribe el siguiente comando: $ sudo apt install tightvncserver
para instalarlo.
Paso 5: Configuración de la contraseña
Después de instalar TightVNC, configura una contraseña escribiendo el comando $ tightvncserver
. Sigue las indicaciones para crear una contraseña segura para el acceso remoto.
Paso 6: Instalación de «VNC Viewer – Remote Desktop» en iPad/iPhone
Para conectarte a tu Raspberry Pi desde tu iPad o iPhone, instala la aplicación «VNC Viewer – Remote Desktop» desde la App Store. Esta aplicación te permitirá acceder al escritorio gráfico de Raspberry Pi de forma remota.
Ejecutar modelos de Tensorflow: Por último, queremos clonar algunos ejemplos de Tensorflow y comprobar que todo funcione como se espera.
Paso 1: Instalar tflite-runtime
Para empezar, abre la Terminal de Raspberry Pi y ejecuta el siguiente comando para instalar el paquete tflite-runtime:
python3 -m pip install tflite-runtime
Paso 2: Descargar los archivos de ejemplo
A continuación, clona el repositorio de ejemplos de TensorFlow ejecutando el siguiente comando:
git clone https://github.com/tensorflow/examples --depth 1
Paso 3: Modificar requirements.txt
Ve a la carpeta «examples/lite/examples/image_classification/raspberry_pi» y abre el archivo «requirements.txt». Modifica su contenido de la siguiente manera:
argparse
numpy==1.20.0 # To ensure compatibility with OpenCV on Raspberry Pi.
opencv-python==4.5.5.62
tflite-runtime>=2.7.0
Paso 4: Instalar libatlas
Vuelve a la terminal y ejecuta el siguiente comando para instalar la biblioteca libatlas:
sudo apt-get install libatlas-base-dev
Paso 5: Instalar paquetes de Python
Accede a la carpeta «examples/lite/examples/image_classification/raspberry_pi» usando la terminal y ejecuta el script de configuración con los siguientes comandos:
Y con eso, ¡a funcionar!
¿Mola, no? Yo no dudaría en responder con un enfático «sí». ¿Salió todo como esperaba? No del todo. A toro pasado hay dos cosas que habría hecho de otra forma.
Arrepentimiento 1: El modelo A+ solo tiene un puerto USB. Puedes hacer la mayoría de las cosas con un combo teclado/ratón inalámbrico, pero hubo algunas ocasiones en las que eché de menos un puerto USB adicional. Por ejemplo, podría haber utilizado una de mis cámaras web USB en lugar de tener que comprar la cámara RPi, ¡que casi cuesta tanto como la placa! Además, el modelo A+ tiene una cantidad de RAM muy limitada, lo que hace casi imposible navegar por Internet, por ejemplo. El siguiente modelo, el RPI B, representa un avance significativo en términos de conectividad, procesamiento y RAM. Para ser justos, también en precio. Aunque la página web de Raspberry Pi diga que puedes encontrarlo «a partir de $35», es difícil encontrar por este precio a día de hoy.
Arrepentimiento 2:la carcasa eleUniverse para Raspberry Pi 3A+. Es barata y funciona bien. Luego ¿cuál es el problema?
¡Digamos que no luce mucho cuando le añadimos la cámara externa! Aunque la carcasa tiene una ranura para pasar el cable de la cámara, todo queda colgando por fuera de la carcasa, de una manera un tanto grotesca. Sin embargo, no hay muchas opciones de carcasa realmente buenas para el A+. Así que, ¡a tirar de esparadrapo!
Bueno, pues ya estamos listos para empezar a prototipar nuestros modelos de visión artificial personalizados en la RPi. Espero que os haya sido útil y ¡Estad atentos a futuras actualizaciones!
Sobre Rosan International
ROSAN es una empresa tecnológica especializada en el desarrollo de soluciones de Data Science e Inteligencia Artificial con el objetivo de ayudar a resolver algunos de los más desafiantes retos globales. Contáctanos para descubrir cómo podemos ayudarte a extraer la información más valiosa de tus datos y optimizar tus procesos.