Przewodnik po konfiguracji Pythona

Na tej stronie dowiesz się, jak skonfigurować środowisko programistyczne, aby używać interfejsu MediaPipe Tasks w aplikacjach napisanych w Pythonie.

Obsługiwane platformy i wersje

Tworzenie aplikacji za pomocą interfejsu MediaPipe Tasks wymaga tych zasobów środowiska programistycznego:

  • System operacyjny:
    • Komputery: Windows, Mac, Linux
    • IoT: Raspberry OS 64-bitowy
  • Python: obsługuje wersję 3.9 i nowsze
  • PIP: wersja 20.3 lub nowsza

Konfigurowanie środowiska programistycznego

Zanim uruchomisz zadanie MediaPipe w aplikacji w Pythonie, zainstaluj pakiet MediaPipe.

$ python -m pip install mediapipe

Po zainstalowaniu pakietu zaimportuj go do projektu deweloperskiego.

import mediapipe as mp

Zależności MediaPipe Tasks

MediaPipe Tasks udostępnia 3 gotowe biblioteki do przetwarzania obrazu, tekstu i dźwięku. W zależności od zadania MediaPipe używanego przez aplikację zaimportuj do projektu deweloperskiego bibliotekę vision, text lub audio.

Zadania związane z widocznością

Moduł wizyjny MediaPipe Tasks zawiera zadania, które obsługują dane wejściowe w postaci obrazów lub filmów. Aby zaimportować bibliotekę MediaPipe Tasks Vision, zaimportuj do projektu programistycznego tę zależność:

from mediapipe.tasks.python import vision

Zadania tekstowe

Moduł tekstowy MediaPipe Tasks zawiera zadania, które obsługują dane wejściowe w postaci ciągów znaków. Aby zaimportować bibliotekę tekstową MediaPipe Tasks, zaimportuj do projektu deweloperskiego tę zależność:

from mediapipe.tasks.python import text

Zadania audio

Moduł audio MediaPipe Tasks zawiera zadania, które obsługują dane wejściowe dźwięku. Aby zaimportować bibliotekę audio MediaPipe Tasks, dodaj do projektu deweloperskiego tę zależność:

from mediapipe.tasks.python import audio

Konfiguracja BaseOptions

BaseOptions umożliwiają ogólną konfigurację interfejsów MediaPipe Task API.

Nazwa opcji Opis Akceptowane wartości
model_asset_buffer Zawartość pliku zasobu modelu. Treść modelu jako ciąg bajtów
model_asset_path Ścieżka do zasobu modelu, który ma zostać otwarty i zmapowany w pamięci. Ścieżka pliku jako ciąg znaków

Pakowanie aplikacji Python Tasks za pomocą PyInstallera

Podczas pakowania aplikacji Python Tasks za pomocą PyInstaller pliki modeli, takie jak pakiety .task, nie są uwzględniane automatycznie. Jeśli Twoja aplikacja korzysta z BaseOptions(model_asset_path=...), dołącz plik modelu do pakietu PyInstaller i rozwiąż jego ścieżkę w czasie działania.

Użyj na przykład narzędzia sprawdzającego katalog PyInstaller:sys._MEIPASS

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)

Następnie przekaż rozwiązaną ścieżkę modelu do funkcji 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)

Spakuj plik modelu i zbierz pliki pakietu MediaPipe podczas tworzenia za pomocą PyInstallera:

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

W systemie macOS lub Linux separatorem --add-data jest :. W systemie Windows użyj ;. W przypadku aplikacji na komputery z macOS dodaj --windowed, aby utworzyć pakiet .app:

Rozwiązywanie problemów

Jeśli masz pytania techniczne dotyczące MediaPipe, odwiedź grupę dyskusyjną lub Stack Overflow, aby uzyskać pomoc od społeczności. Aby zgłosić błąd lub poprosić o dodanie funkcji, utwórz zgłoszenie na GitHubie.

Aby uzyskać pomoc w konfigurowaniu środowiska programistycznego w Pythonie, zapoznaj się z przewodnikiem dla programistów Pythona.