คู่มือการตั้งค่าสำหรับ Python

หน้านี้จะแสดงวิธีตั้งค่าสภาพแวดล้อมในการพัฒนาซอฟต์แวร์เพื่อใช้ MediaPipe Tasks ในแอปพลิเคชัน Python

แพลตฟอร์มและเวอร์ชันที่รองรับ

การสร้างแอปพลิเคชันด้วย MediaPipe Tasks ต้องใช้ทรัพยากรในสภาพแวดล้อมการพัฒนาต่อไปนี้

  • ระบบปฏิบัติการ
    • เดสก์ท็อป: Windows, Mac, Linux
    • IoT: Raspberry OS 64 บิต
  • Python: เวอร์ชัน 3.9 - 3.12
  • PIP: เวอร์ชัน 20.3 ขึ้นไป

การตั้งค่าสภาพแวดล้อมของนักพัฒนาซอฟต์แวร์

ก่อนเรียกใช้ MediaPipe Task ในแอปพลิเคชัน Python ให้ติดตั้งแพ็กเกจ MediaPipe

$ python -m pip install mediapipe

หลังจากติดตั้งแพ็กเกจแล้ว ให้นำเข้าแพ็กเกจไปยังโปรเจ็กต์การพัฒนา

import mediapipe as mp

ทรัพยากร Dependency ของ MediaPipe Tasks

MediaPipe Tasks มีไลบรารีที่สร้างไว้ล่วงหน้า 3 รายการสำหรับวิชัน, ข้อความ และเสียง นำเข้าไลบรารี Vision, Text หรือ Audio ไปยังโปรเจ็กต์การพัฒนาของคุณ ทั้งนี้ขึ้นอยู่กับ MediaPipe Task ที่แอปใช้

งานด้านการมองเห็น

โมดูล Vision ของ MediaPipe Tasks มีงานที่จัดการอินพุตรูปภาพหรือวิดีโอ หากต้องการนำเข้าไลบรารีการมองเห็นของ MediaPipe Tasks ให้นำเข้าทรัพยากร Dependency ต่อไปนี้ไปยังโปรเจ็กต์การพัฒนา

from mediapipe.tasks.python import vision

งานข้อความ

โมดูลข้อความของ MediaPipe Tasks มีงานที่จัดการอินพุตสตริง หากต้องการนำเข้าไลบรารีข้อความของ MediaPipe Tasks ให้นำเข้าทรัพยากร Dependency ต่อไปนี้ไปยังโปรเจ็กต์การพัฒนาของคุณ

from mediapipe.tasks.python import text

งานเสียง

โมดูลเสียงของ MediaPipe Tasks มีงานที่จัดการอินพุตเสียง หากต้องการนำเข้าไลบรารีเสียงของ MediaPipe Tasks ให้นำเข้าทรัพยากร Dependency ต่อไปนี้ลงในโปรเจ็กต์การพัฒนาของคุณ

from mediapipe.tasks.python import audio

การกำหนดค่า BaseOptions

BaseOptions ช่วยให้กำหนดค่าทั่วไปของ MediaPipe Task API ได้

ชื่อตัวเลือก คำอธิบาย ค่าที่ยอมรับ
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)

รวมไฟล์โมเดลและรวบรวมไฟล์แพ็กเกจ MediaPipe เมื่อสร้างด้วย PyInstaller โดยทำดังนี้

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