🎯 MediaPipe 介紹:Google 開源的跨平台視覺 AI 框架
一、什麼是 MediaPipe?
MediaPipe 是由 Google Research 開發的一個 跨平台、模組化的機器學習框架,專門用來構建與部署即時的多媒體管道。它支援電腦視覺(Computer Vision)、姿態追蹤(Pose Tracking)、手勢辨識、人臉偵測等功能,且適用於 桌面、行動裝置與網頁。
MediaPipe 的最大特色是提供即時、高效能且容易部署的解決方案,讓開發者能快速導入 AI 模型至各種應用中。
二、主要特點
| 特點 | 說明 |
|---|---|
| 📦 模組化設計 | 使用 Graph 結構組成,可快速配置與擴充 |
| ⏱ 即時處理 | 設計用於低延遲的處理管道,適合手勢、姿勢等互動應用 |
| 🌐 多平台支援 | 支援 Android、iOS、Web(MediaPipe.js)、Raspberry Pi、桌面平台 |
| 🧠 AI 模型內建 | 提供已訓練好的模型如手部追蹤、臉部偵測、人體姿勢等 |
| 🔧 C++/Python/JavaScript API | 可用 C++ 開發核心,也支援 Python 和 JS 呼叫 |
三、常見應用場景
| 應用 | 說明 |
|---|---|
| 👋 手勢辨識(Hand Tracking) | 可追蹤 21 個手部關鍵點,用於手勢控制、AR 應用 |
| 🧍♀️ 姿勢偵測(Pose Estimation) | 可偵測人體 33 個關鍵點,應用於健身追蹤、運動分析 |
| 😊 臉部偵測與表情分析 | 提供臉部邊界、表情特徵點(468 點) |
| 👁️ 物體偵測與追蹤 | 可進行多物件追蹤(Objectron) |
| 🗣️ 聲音與視訊結合應用 | 融合音訊與視訊資訊的多模態分析 |
四、支援平台
-
行動裝置:
-
Android(支援 Java/C++)
-
iOS(支援 Swift/Objective-C)
-
-
桌面平台:
-
Windows、macOS、Linux(使用 Python 或 C++)
-
-
Web 平台:
-
使用 MediaPipe.js,在瀏覽器中即時推論
-
-
IoT 與嵌入式裝置:
-
Raspberry Pi、Nvidia Jetson Nano 等設備支援
-
五、常用套件/模組介紹
| 模組 | 說明 |
|---|---|
FaceMesh |
偵測臉部 468 個特徵點 |
Hands |
偵測單手或雙手的 21 個關鍵點 |
Pose |
人體姿勢的全身關鍵點追蹤 |
Holistic |
整合臉、手與姿勢追蹤的模組 |
Objectron |
3D 物體偵測與追蹤(例如鞋子、椅子等) |
Selfie Segmentation |
拍照背景虛化或替換功能 |
六、如何開始使用?(以 Python 為例)
pip install mediapipe opencv-python
範例程式(偵測手部):
import cv2
import mediapipe as mp
mp_hands = mp.solutions.hands
hands = mp_hands.Hands()
mp_draw = mp.solutions.drawing_utils
cap = cv2.VideoCapture(0)
while cap.isOpened():
ret, img = cap.read()
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
result = hands.process(img_rgb)
if result.multi_hand_landmarks:
for hand_landmarks in result.multi_hand_landmarks:
mp_draw.draw_landmarks(img, hand_landmarks, mp_hands.HAND_CONNECTIONS)
cv2.imshow('MediaPipe Hands', img)
if cv2.waitKey(1) & 0xFF == 27:
break
cap.release()
cv2.destroyAllWindows()
七、優點與挑戰
✅ 優點:
-
計算效能高,支援即時應用
-
多平台跨語言支援
-
提供完整的預訓練模型與範例
⚠️ 挑戰:
-
Graph 結構較複雜,不熟悉的開發者上手需要時間
-
模型較偏向 Google 自家格式(如 TFLite)
八、學習資源
PS: MediaPipe 目前僅支持python 3.9~3.12
文章標籤
全站熱搜
