Guía de configuración de Python

En esta página, se muestra cómo configurar tu entorno de desarrollo para usar las tareas de MediaPipe en tus aplicaciones de Python.

Plataformas y versiones compatibles

Para compilar aplicaciones con las tareas de MediaPipe, se requieren los siguientes recursos del entorno de desarrollo:

  • SO:
    • Computadora: Windows, Mac y Linux
    • IoT: Raspberry OS de 64 bits
  • Python: versión 3.9 a 3.12
  • PIP: versión 20.3 o superior

Configuración del entorno de desarrollo

Antes de ejecutar una tarea de MediaPipe en una aplicación de Python, instala el paquete de MediaPipe.

$ python -m pip install mediapipe

Después de instalar el paquete, impórtalo a tu proyecto de desarrollo.

import mediapipe as mp

Dependencias de las tareas de MediaPipe

Las tareas de MediaPipe proporcionan tres bibliotecas precompiladas para visión, texto y audio. Según la tarea de MediaPipe que use la app, importa la biblioteca de visión, texto o audio a tu proyecto de desarrollo.

Tareas de visión

El módulo de visión de las tareas de MediaPipe contiene tareas que controlan las entradas de imágenes o videos. Para importar la biblioteca de visión de las tareas de MediaPipe, importa la siguiente dependencia a tu proyecto de desarrollo.

from mediapipe.tasks.python import vision

Tareas de texto

El módulo de texto de las tareas de MediaPipe contiene tareas que controlan las entradas de cadenas.Para importar la biblioteca de texto de las tareas de MediaPipe, importa la siguiente dependencia a tu proyecto de desarrollo.

from mediapipe.tasks.python import text

Tareas de audio

El módulo de audio de las tareas de MediaPipe contiene tareas que controlan las entradas de sonido. Para importar la biblioteca de audio de las tareas de MediaPipe, importa la siguiente dependencia a tu proyecto de desarrollo.

from mediapipe.tasks.python import audio

Configuración de BaseOptions

BaseOptions permite la configuración general de las APIs de tareas de MediaPipe.

Nombre de la opción Descripción Valores aceptados
model_asset_buffer El contenido del archivo de recursos del modelo. Contenido del modelo como una cadena de bytes
model_asset_path La ruta de acceso del recurso del modelo para abrir y asignar a la memoria. Ruta de acceso del archivo como una cadena

Cómo empaquetar apps de tareas de Python con PyInstaller

Cuando empaquetas una app de tareas de Python con PyInstaller, los archivos de modelo, como los paquetes .task, no se incluyen automáticamente. Si tu app usa BaseOptions(model_asset_path=...), incluye el archivo de modelo en el paquete de PyInstaller y resuelve su ruta de acceso en el tiempo de ejecución.

Por ejemplo, usa un auxiliar que verifique el directorio sys._MEIPASS de PyInstaller:

import os
import sys

def resource_path(relative_path: str) -> str:
    base_path = getattr(sys, "_MEIPASS", os.path.abspath("."))
    return os.path.join(base_path, relative_path)

Luego, pasa la ruta de acceso del modelo resuelta a BaseOptions:

from mediapipe.tasks import python
from mediapipe.tasks.python import vision

model_path = resource_path("pose_landmarker.task")
base_options = python.BaseOptions(model_asset_path=model_path)
options = vision.PoseLandmarkerOptions(base_options=base_options)
pose_landmarker = vision.PoseLandmarker.create_from_options(options)

Empaqueta el archivo de modelo y recopila los archivos del paquete de MediaPipe cuando compiles con PyInstaller:

pyinstaller app.py \
  --add-data "pose_landmarker.task:." \
  --collect-all mediapipe \
  --hidden-import mediapipe.tasks.c

En macOS o Linux, el separador --add-data es :. En Windows, usa ;. Y, para las apps de escritorio de macOS, agrega --windowed para crear un paquete .app:

Solución de problemas

Si necesitas ayuda con preguntas técnicas relacionadas con MediaPipe, visita el grupo de debate o Stack Overflow para obtener asistencia de la comunidad. Para informar errores o realizar una solicitud de función, informa un problema en GitHub.

Para obtener ayuda para configurar tu entorno de desarrollo de Python, visita la guía para desarrolladores de Python.