이 페이지에서는 Python 애플리케이션에서 MediaPipe Tasks를 사용하도록 개발 환경을 설정하는 방법을 보여줍니다.
지원되는 플랫폼 및 버전
MediaPipe Tasks로 애플리케이션을 빌드하려면 다음 개발 환경 리소스가 필요합니다.
- OS:
- 데스크톱: Windows, Mac, Linux
- IoT: Raspberry OS 64비트
- Python: 버전 3.9~3.12
- PIP: 버전 20.3 이상
개발자 환경 설정
Python 애플리케이션에서 MediaPipe 작업을 실행하기 전에 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 구성
BaseOptions를 사용하면 MediaPipe Task API를 일반적으로 구성할 수 있습니다.
| 옵션 이름 | 설명 | 허용되는 값 |
|---|---|---|
model_asset_buffer |
모델 애셋 파일 콘텐츠입니다. | 바이트 문자열로 된 모델 콘텐츠 |
model_asset_path |
열고 메모리에 매핑할 모델 애셋의 경로입니다. | 문자열 형식의 파일 경로 |
PyInstaller를 사용하여 Python Tasks 앱 패키징
PyInstaller로 Python Tasks 앱을 패키징할 때 .task 번들과 같은 모델 파일은 자동으로 포함되지 않습니다. 앱에서 BaseOptions(model_asset_path=...)를 사용하는 경우 PyInstaller 번들에 모델 파일을 포함하고 런타임에 경로를 확인합니다.
예를 들어 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)
그런 다음 확인된 모델 경로를 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)
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 개발자 가이드를 참고하세요.