Reemplace el texto “pibot##” con la etiqueta en el pibot
La contraseña para ingresar cuando se le solicite es “DogsAndCatsAreNice2.” sin las comillas. Los '.' al final es importante!
Es posible que tarde un par de minutos en instalar algunos archivos en PiBot.
sudo apt-get update sudo apt-get install python3-picamera python3-pil python3-opencv libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev libwebp-dev libopenjp2-7-dev libatlas-base-dev fonts-freefont-ttf git
sudo pip3 install --upgrade numpy sudo pip3 install imutils
sudo pip3 install https://github.com/google-coral/pycoral/releases/download/v2.0.0/tflite_runtime-2.5.0.post1-cp37-cp37m-linux_armv7l.whl
git clone https://git.jonathan.struebel-family.net/robot-club/pibot/lesson5.git
cd lesson5
curl -L 'https://tfhub.dev/tensorflow/lite-model/efficientdet/lite0/detection/metadata/1?lite-format=tflite' -o efficientdet_lite0.tflite curl -L 'https://storage.googleapis.com/download.tensorflow.org/models/tflite/edgetpu/efficientdet_lite0_edgetpu_metadata.tflite' -o efficientdet_lite0_edgetpu.tflite
python3 webstreaming.py
Reemplace el texto “pibot##” con la etiqueta en el pibot
Verifique que PiBot detecte objetos frente a la cámara dibujando un cuadro alrededor de ellos
cd osoyoowebcar sudo python3 webcar.py
Reemplace el texto “pibot##” con la etiqueta en el pibot
El archivo webstreaming.py es otra aplicación de Flask que transmite imágenes desde la cámara CSI conectada a la Raspberry Pi a su navegador web después de buscar objetos dentro de la imagen.
Si necesitas un repaso de lo que son los decoradores, revisa Lección 4
outputFrame es un búfer global que almacena exactamente una imagen de la cámara. La función cv2.imencode convierte (codifica) un marco de imagen en un formato estándar, en este caso el formato JPEG
La función de rendimiento detiene temporalmente el ciclo en el que se encuentra y devuelve los datos que se pasan como parámetro a la función de rendimiento.
El bucle while lee cada imagen de la cámara, realiza la detección de objetos en ella, dibuja cuadros alrededor de los objetos e imprime algunas estadísticas sobre la imagen antes de guardar la imagen en el búfer de cuadro de salida global
La variable del detector es una instancia de la clase ObjectDetector. Se inicializa en la línea 127
La función detect_objects se ejecuta como un hilo independiente. Mire la línea 221 para ver cómo hacer eso. Los subprocesos son una forma poderosa de permitir que diferentes funciones en el código se ejecuten en paralelo. El uso de subprocesos puede ayudar a que su código se ejecute más rápido.
Cuando se usa self delante de una llamada de función, se está refiriendo a una función definida dentro de esa misma clase
La función de detección utiliza la biblioteca Tensorflow Lite (o TFLite) para ejecutar redes neuronales de aprendizaje automático que procesan datos y brindan información sobre lo que hay en esos datos. Tensorflow Lite fue desarrollado por Google. Obtenga más información sobre el aprendizaje automático y las redes neuronales en Explicación del Algoritmo.
sudo shutdown -h now