בדף הזה מוסבר איך להגדיר את סביבת הפיתוח כדי להשתמש ב-MediaPipe Tasks באפליקציות Python.
פלטפורמות וגרסאות נתמכות
כדי לפתח אפליקציות באמצעות MediaPipe Tasks, צריך את המשאבים הבאים בסביבת הפיתוח:
- מערכת הפעלה:
- מחשב: Windows, Mac, Linux
- IoT: Raspberry OS 64-bit
- Python: גרסה 3.9 עד 3.12
- PIP: גרסה 20.3 ואילך
הגדרת סביבת פיתוח
לפני שמריצים משימת MediaPipe באפליקציית Python, צריך להתקין את חבילת MediaPipe.
$ python -m pip install mediapipe
אחרי שמתקינים את החבילה, מייבאים אותה לפרויקט הפיתוח.
import mediapipe as mp
יחסי תלות של MediaPipe Tasks
MediaPipe Tasks מספק שלוש ספריות מוכנות מראש לראייה, לטקסט ולאודיו. בהתאם למשימת MediaPipe שבה נעשה שימוש באפליקציה, מייבאים את ספריית הראייה, הטקסט או האודיו לפרויקט הפיתוח.
משימות שקשורות לראייה
מודול הראייה של MediaPipe Tasks מכיל משימות שמטפלות בקלט של תמונות או סרטונים. כדי לייבא את ספריית הראייה של MediaPipe Tasks, מייבאים את התלות הבאה לפרויקט הפיתוח.
from mediapipe.tasks.python import vision
משימות בטקסט
מודול הטקסט של MediaPipe Tasks מכיל משימות שמטפלות בקלט של מחרוזות.כדי לייבא את ספריית הטקסט של MediaPipe Tasks, מייבאים את התלות הבאה לפרויקט הפיתוח.
from mediapipe.tasks.python import text
משימות שקשורות לאודיו
מודול האודיו של MediaPipe Tasks מכיל משימות שמטפלות בקלט של צלילים. כדי לייבא את ספריית האודיו של MediaPipe Tasks, מייבאים את התלות הבאה לפרויקט הפיתוח.
from mediapipe.tasks.python import audio
הגדרה של BaseOptions
האפשרויות הבסיסיות מאפשרות הגדרה כללית של ממשקי ה-API של MediaPipe Task.
| שם האפשרות | תיאור | ערכים מותרים |
|---|---|---|
model_asset_buffer |
התוכן של קובץ הנכס של המודל. | הצגת תוכן המודל כמחרוזת בייטים |
model_asset_path |
הנתיב של נכס המודל שייפתח ויועתק לזיכרון. | נתיב הקובץ כמחרוזת |
אריזת אפליקציות של Python Tasks באמצעות PyInstaller
כשיוצרים חבילה של אפליקציית Python Tasks באמצעות PyInstaller, קובצי מודלים כמו חבילות .task לא נכללים אוטומטית. אם האפליקציה שלכם משתמשת ב-BaseOptions(model_asset_path=...), צריך לכלול את קובץ המודל בחבילה של PyInstaller ולפתור את הנתיב שלו בזמן הריצה.
לדוגמה, אפשר להשתמש בפונקציית עזר שבודקת את ספריית sys._MEIPASS
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)
לאחר מכן מעבירים את נתיב המודל שנפתר אל 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)
כשמבצעים build באמצעות PyInstaller, צריך לארוז את קובץ המודל ולאסוף קובצי חבילה של MediaPipe:
pyinstaller app.py \
--add-data "pose_landmarker.task:." \
--collect-all mediapipe \
--hidden-import mediapipe.tasks.c
ב-macOS או ב-Linux, המפריד --add-data הוא :. ב-Windows, משתמשים ב-;. ובאפליקציות ל-macOS, מוסיפים --windowed כדי ליצור חבילת .app:
פתרון בעיות
כדי לקבל עזרה בשאלות טכניות שקשורות ל-MediaPipe, אפשר להיכנס לקבוצת הדיון או ל-Stack Overflow ולקבל תמיכה מהקהילה. כדי לדווח על באגים או לשלוח בקשות להוספת תכונות, אפשר לפתוח בקשה ב-GitHub.
לקבלת עזרה בהגדרת סביבת הפיתוח בשפת Python, אפשר לעיין במדריך למפתחים בשפת Python.